@quadnix/octo 0.0.21 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.type.d.ts +3 -1
- package/dist/app.type.js +7 -7
- package/dist/app.type.js.map +1 -1
- package/dist/decorators/action.decorator.d.ts +6 -6
- package/dist/decorators/action.decorator.js +9 -9
- package/dist/decorators/action.decorator.js.map +1 -1
- package/dist/decorators/anchor.decorator.js +1 -1
- package/dist/decorators/anchor.decorator.js.map +1 -1
- package/dist/decorators/factory.decorator.d.ts +34 -15
- package/dist/decorators/factory.decorator.js +36 -13
- package/dist/decorators/factory.decorator.js.map +1 -1
- package/dist/decorators/model.decorator.js +1 -1
- package/dist/decorators/model.decorator.js.map +1 -1
- package/dist/decorators/module.decorator.d.ts +36 -32
- package/dist/decorators/module.decorator.js +2 -2
- package/dist/decorators/module.decorator.js.map +1 -1
- package/dist/decorators/overlay.decorator.js +1 -1
- package/dist/decorators/overlay.decorator.js.map +1 -1
- package/dist/decorators/resource.decorator.js +1 -1
- package/dist/decorators/resource.decorator.js.map +1 -1
- package/dist/{decorators → functions/container}/container.d.ts +2 -33
- package/dist/{decorators → functions/container}/container.js +8 -63
- package/dist/functions/container/container.js.map +1 -0
- package/dist/{decorators → functions/container}/test-container.d.ts +2 -6
- package/dist/{decorators → functions/container}/test-container.js +7 -14
- package/dist/functions/container/test-container.js.map +1 -0
- package/dist/functions/dependency/dependency.d.ts +6 -6
- package/dist/functions/dependency/dependency.js.map +1 -1
- package/dist/functions/diff/diff-metadata.d.ts +2 -2
- package/dist/functions/diff/diff-metadata.js +1 -1
- package/dist/functions/diff/diff-metadata.js.map +1 -1
- package/dist/functions/diff/diff.d.ts +4 -4
- package/dist/functions/diff/diff.js +6 -10
- package/dist/functions/diff/diff.js.map +1 -1
- package/dist/functions/diff/diff.utility.d.ts +23 -23
- package/dist/functions/diff/diff.utility.js +23 -23
- package/dist/functions/diff/diff.utility.js.map +1 -1
- package/dist/functions/hook/commit.hook.js.map +1 -1
- package/dist/functions/hook/model-action.hook.js +1 -1
- package/dist/functions/hook/model-action.hook.js.map +1 -1
- package/dist/functions/node/node.abstract.d.ts +84 -0
- package/dist/functions/node/node.abstract.js +275 -0
- package/dist/functions/node/node.abstract.js.map +1 -0
- package/dist/functions/node/node.interface.d.ts +176 -0
- package/dist/functions/node/node.interface.js +2 -0
- package/dist/functions/node/node.interface.js.map +1 -0
- package/dist/index.d.ts +11 -12
- package/dist/index.js +10 -11
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +7 -9
- package/dist/main.js +51 -24
- package/dist/main.js.map +1 -1
- package/dist/models/app/app.model.d.ts +1 -3
- package/dist/models/app/app.model.js +5 -8
- package/dist/models/app/app.model.js.map +1 -1
- package/dist/models/deployment/deployment.model.d.ts +1 -3
- package/dist/models/deployment/deployment.model.js +5 -8
- package/dist/models/deployment/deployment.model.js.map +1 -1
- package/dist/models/environment/environment.model.d.ts +1 -3
- package/dist/models/environment/environment.model.js +5 -9
- package/dist/models/environment/environment.model.js.map +1 -1
- package/dist/models/execution/execution.model.d.ts +1 -3
- package/dist/models/execution/execution.model.js +2 -6
- package/dist/models/execution/execution.model.js.map +1 -1
- package/dist/models/image/image.model.d.ts +1 -3
- package/dist/models/image/image.model.js +5 -8
- package/dist/models/image/image.model.js.map +1 -1
- package/dist/models/model-action.interface.d.ts +2 -6
- package/dist/models/model.abstract.d.ts +7 -307
- package/dist/models/model.abstract.js +20 -560
- package/dist/models/model.abstract.js.map +1 -1
- package/dist/models/model.interface.d.ts +36 -21
- package/dist/models/pipeline/pipeline.model.d.ts +1 -3
- package/dist/models/pipeline/pipeline.model.js +5 -9
- package/dist/models/pipeline/pipeline.model.js.map +1 -1
- package/dist/models/region/region.model.d.ts +1 -3
- package/dist/models/region/region.model.js +5 -8
- package/dist/models/region/region.model.js.map +1 -1
- package/dist/models/server/server.model.d.ts +1 -3
- package/dist/models/server/server.model.js +5 -8
- package/dist/models/server/server.model.js.map +1 -1
- package/dist/models/service/service.model.d.ts +1 -3
- package/dist/models/service/service.model.js +3 -7
- package/dist/models/service/service.model.js.map +1 -1
- package/dist/models/subnet/subnet.model.d.ts +3 -4
- package/dist/models/subnet/subnet.model.js +9 -18
- package/dist/models/subnet/subnet.model.js.map +1 -1
- package/dist/modules/module.container.d.ts +2 -2
- package/dist/modules/module.container.js.map +1 -1
- package/dist/modules/test-module.container.d.ts +2 -2
- package/dist/modules/test-module.container.js +8 -10
- package/dist/modules/test-module.container.js.map +1 -1
- package/dist/overlays/overlay-data.repository.d.ts +2 -4
- package/dist/overlays/overlay-data.repository.js +8 -33
- package/dist/overlays/overlay-data.repository.js.map +1 -1
- package/dist/overlays/overlay.abstract.d.ts +6 -7
- package/dist/overlays/overlay.abstract.js +20 -42
- package/dist/overlays/overlay.abstract.js.map +1 -1
- package/dist/overlays/overlay.service.d.ts +0 -1
- package/dist/overlays/overlay.service.js +1 -5
- package/dist/overlays/overlay.service.js.map +1 -1
- package/dist/resources/resource-data.repository.d.ts +16 -6
- package/dist/resources/resource-data.repository.js +115 -15
- package/dist/resources/resource-data.repository.js.map +1 -1
- package/dist/resources/resource.abstract.d.ts +23 -6
- package/dist/resources/resource.abstract.js +144 -10
- package/dist/resources/resource.abstract.js.map +1 -1
- package/dist/resources/shared-resource.abstract.d.ts +2 -2
- package/dist/resources/shared-resource.abstract.js +2 -2
- package/dist/resources/shared-resource.abstract.js.map +1 -1
- package/dist/services/capture/capture.service.d.ts +1 -2
- package/dist/services/capture/capture.service.js +2 -2
- package/dist/services/capture/capture.service.js.map +1 -1
- package/dist/services/event/event.service.js +1 -1
- package/dist/services/event/event.service.js.map +1 -1
- package/dist/services/input/input.service.js +2 -2
- package/dist/services/input/input.service.js.map +1 -1
- package/dist/services/serialization/model/model-serialization.service.js +4 -11
- package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
- package/dist/services/serialization/resource/resource-serialization.service.d.ts +4 -4
- package/dist/services/serialization/resource/resource-serialization.service.js +15 -18
- package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
- package/dist/services/state-management/state-management.service.d.ts +1 -1
- package/dist/services/state-management/state-management.service.js +6 -7
- package/dist/services/state-management/state-management.service.js.map +1 -1
- package/dist/services/transaction/transaction.service.d.ts +2 -3
- package/dist/services/transaction/transaction.service.js +88 -90
- package/dist/services/transaction/transaction.service.js.map +1 -1
- package/package.json +1 -1
- package/dist/decorators/container.js.map +0 -1
- package/dist/decorators/test-container.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-module.container.js","sourceRoot":"","sources":["../../src/modules/test-module.container.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"test-module.container.js","sourceRoot":"","sources":["../../src/modules/test-module.container.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,8 @@ import { type UnknownOverlay } from '../app.type.js';
|
|
|
2
2
|
import { Diff } from '../functions/diff/diff.js';
|
|
3
3
|
import type { IOverlay } from './overlay.interface.js';
|
|
4
4
|
export declare class OverlayDataRepository {
|
|
5
|
-
private oldOverlays;
|
|
6
5
|
private newOverlays;
|
|
7
|
-
constructor(
|
|
6
|
+
constructor(newOverlays?: UnknownOverlay[]);
|
|
8
7
|
add(overlay: UnknownOverlay): void;
|
|
9
8
|
diff(): Promise<Diff[]>;
|
|
10
9
|
getById(overlayId: IOverlay['overlayId']): UnknownOverlay | undefined;
|
|
@@ -12,9 +11,8 @@ export declare class OverlayDataRepository {
|
|
|
12
11
|
key: string;
|
|
13
12
|
value: any;
|
|
14
13
|
}[]): UnknownOverlay[];
|
|
15
|
-
remove(overlay: UnknownOverlay): void;
|
|
16
14
|
}
|
|
17
15
|
export declare class OverlayDataRepositoryFactory {
|
|
18
16
|
private static instance;
|
|
19
|
-
static create(forceNew
|
|
17
|
+
static create(forceNew?: boolean): Promise<OverlayDataRepository>;
|
|
20
18
|
}
|
|
@@ -4,17 +4,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import {
|
|
7
|
+
import { NodeType } from '../app.type.js';
|
|
8
8
|
import { Factory } from '../decorators/factory.decorator.js';
|
|
9
9
|
import { Diff, DiffAction } from '../functions/diff/diff.js';
|
|
10
10
|
export class OverlayDataRepository {
|
|
11
|
-
constructor(
|
|
12
|
-
this.oldOverlays = oldOverlays;
|
|
11
|
+
constructor(newOverlays = []) {
|
|
13
12
|
this.newOverlays = newOverlays;
|
|
14
|
-
Object.freeze(this.oldOverlays);
|
|
15
13
|
}
|
|
16
14
|
add(overlay) {
|
|
17
|
-
if (overlay.
|
|
15
|
+
if (overlay.NODE_TYPE !== NodeType.OVERLAY) {
|
|
18
16
|
throw new Error('Adding non-overlay model!');
|
|
19
17
|
}
|
|
20
18
|
if (!this.getById(overlay.overlayId)) {
|
|
@@ -23,20 +21,9 @@ export class OverlayDataRepository {
|
|
|
23
21
|
}
|
|
24
22
|
async diff() {
|
|
25
23
|
const diffs = [];
|
|
26
|
-
for (const overlay of this.oldOverlays) {
|
|
27
|
-
const newOverlay = this.newOverlays.find((o) => o.overlayId === overlay.overlayId);
|
|
28
|
-
if (!newOverlay || newOverlay.isMarkedDeleted()) {
|
|
29
|
-
diffs.push(new Diff(overlay, DiffAction.DELETE, 'overlayId', overlay.overlayId));
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
const oDiff = await newOverlay.diff(overlay);
|
|
33
|
-
diffs.push(...oDiff);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
24
|
for (const overlay of this.newOverlays) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
25
|
+
const oDiff = await overlay.diff();
|
|
26
|
+
diffs.push(...oDiff, new Diff(overlay, DiffAction.ADD, 'overlayId', overlay.overlayId));
|
|
40
27
|
}
|
|
41
28
|
return diffs;
|
|
42
29
|
}
|
|
@@ -46,26 +33,14 @@ export class OverlayDataRepository {
|
|
|
46
33
|
getByProperties(filters = []) {
|
|
47
34
|
return this.newOverlays.filter((o) => filters.every((c) => o.properties[c.key] === c.value));
|
|
48
35
|
}
|
|
49
|
-
remove(overlay) {
|
|
50
|
-
if (overlay.MODEL_TYPE !== ModelType.OVERLAY) {
|
|
51
|
-
throw new Error('Removing non-overlay model!');
|
|
52
|
-
}
|
|
53
|
-
if (!overlay.isMarkedDeleted()) {
|
|
54
|
-
overlay.remove();
|
|
55
|
-
}
|
|
56
|
-
const overlayIndex = this.newOverlays.findIndex((o) => o.overlayId === overlay.overlayId);
|
|
57
|
-
if (overlayIndex > -1) {
|
|
58
|
-
this.newOverlays.splice(overlayIndex, 1);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
36
|
}
|
|
62
37
|
let OverlayDataRepositoryFactory = class OverlayDataRepositoryFactory {
|
|
63
|
-
static async create(forceNew
|
|
38
|
+
static async create(forceNew = false) {
|
|
64
39
|
if (!this.instance) {
|
|
65
|
-
this.instance = new OverlayDataRepository(
|
|
40
|
+
this.instance = new OverlayDataRepository();
|
|
66
41
|
}
|
|
67
42
|
if (forceNew) {
|
|
68
|
-
const newInstance = new OverlayDataRepository(
|
|
43
|
+
const newInstance = new OverlayDataRepository();
|
|
69
44
|
Object.keys(this.instance).forEach((key) => (this.instance[key] = newInstance[key]));
|
|
70
45
|
}
|
|
71
46
|
return this.instance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay-data.repository.js","sourceRoot":"","sources":["../../src/overlays/overlay-data.repository.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"overlay-data.repository.js","sourceRoot":"","sources":["../../src/overlays/overlay-data.repository.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAuB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,OAAO,qBAAqB;IAChC,YAAoB,cAAgC,EAAE;QAAlC,gBAAW,GAAX,WAAW,CAAuB;IAAG,CAAC;IAE1D,GAAG,CAAC,OAAuB;QACzB,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1F,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,SAAgC;QACtC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,eAAe,CAAC,UAAyC,EAAE;QACzD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/F,CAAC;CACF;AAGM,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IAGvC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK;QAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,IAAI,qBAAqB,EAAE,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF,CAAA;AAbY,4BAA4B;IADxC,OAAO,CAAwB,qBAAqB,CAAC;GACzC,4BAA4B,CAaxC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NodeType, type UnknownModel, type UnknownOverlay } from '../app.type.js';
|
|
2
2
|
import { Diff } from '../functions/diff/diff.js';
|
|
3
3
|
import { AModel } from '../models/model.abstract.js';
|
|
4
4
|
import { type AAnchor } from './anchor.abstract.js';
|
|
@@ -6,16 +6,15 @@ import type { IOverlay } from './overlay.interface.js';
|
|
|
6
6
|
export declare abstract class AOverlay<T> extends AModel<IOverlay, T> {
|
|
7
7
|
readonly overlayId: IOverlay['overlayId'];
|
|
8
8
|
readonly properties: IOverlay['properties'];
|
|
9
|
-
abstract readonly
|
|
10
|
-
readonly
|
|
9
|
+
abstract readonly NODE_NAME: string;
|
|
10
|
+
readonly NODE_TYPE: NodeType;
|
|
11
11
|
protected constructor(overlayId: IOverlay['overlayId'], properties: IOverlay['properties'], anchors: AAnchor[]);
|
|
12
12
|
addAnchor(anchor: AAnchor): void;
|
|
13
|
-
diff(
|
|
14
|
-
diffAnchors(
|
|
15
|
-
diffProperties(
|
|
13
|
+
diff(): Promise<Diff[]>;
|
|
14
|
+
diffAnchors(): Promise<Diff[]>;
|
|
15
|
+
diffProperties(): Promise<Diff[]>;
|
|
16
16
|
getAnchor(anchorId: string, parent: UnknownModel): AAnchor | undefined;
|
|
17
17
|
getAnchorIndex(anchorId: string, parent: UnknownModel): number;
|
|
18
|
-
remove(ignoreDirectRelationships?: boolean): void;
|
|
19
18
|
removeAnchor(anchor: AAnchor): void;
|
|
20
19
|
setContext(): string;
|
|
21
20
|
synth(): IOverlay;
|
|
@@ -1,64 +1,46 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NodeType } from '../app.type.js';
|
|
2
2
|
import { Diff, DiffAction } from '../functions/diff/diff.js';
|
|
3
|
-
import { DiffUtility } from '../functions/diff/diff.utility.js';
|
|
4
3
|
import { AModel } from '../models/model.abstract.js';
|
|
5
4
|
export class AOverlay extends AModel {
|
|
6
5
|
constructor(overlayId, properties, anchors) {
|
|
7
6
|
super();
|
|
8
7
|
this.overlayId = overlayId;
|
|
9
8
|
this.properties = properties;
|
|
10
|
-
this.
|
|
9
|
+
this.NODE_TYPE = NodeType.OVERLAY;
|
|
11
10
|
for (const anchor of anchors) {
|
|
12
11
|
this.addAnchor(anchor);
|
|
13
12
|
}
|
|
14
13
|
}
|
|
15
14
|
addAnchor(anchor) {
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
super.addAnchor(anchor);
|
|
16
|
+
const anchorParent = anchor.getParent();
|
|
17
|
+
const anchorParentField = anchorParent.deriveDependencyField();
|
|
18
|
+
if (!anchorParentField) {
|
|
19
|
+
throw new Error('Cannot derive anchor parent field!');
|
|
18
20
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
const { thisToThatDependency, thatToThisDependency } = this.addRelationship(anchor.getParent());
|
|
25
|
-
thisToThatDependency.addBehavior('overlayId', DiffAction.ADD, 'MODEL_NAME', DiffAction.ADD);
|
|
26
|
-
thisToThatDependency.addBehavior('overlayId', DiffAction.ADD, 'MODEL_NAME', DiffAction.UPDATE);
|
|
27
|
-
thatToThisDependency.addBehavior('MODEL_NAME', DiffAction.DELETE, 'overlayId', DiffAction.DELETE);
|
|
21
|
+
const { thisToThatDependency, thatToThisDependency } = this.addRelationship(anchorParent);
|
|
22
|
+
thisToThatDependency.addBehavior('overlayId', DiffAction.ADD, anchorParentField, DiffAction.ADD);
|
|
23
|
+
thisToThatDependency.addBehavior('overlayId', DiffAction.ADD, anchorParentField, DiffAction.UPDATE);
|
|
24
|
+
thatToThisDependency.addBehavior(anchorParentField, DiffAction.DELETE, 'overlayId', DiffAction.DELETE);
|
|
28
25
|
}
|
|
29
|
-
async diff(
|
|
26
|
+
async diff() {
|
|
30
27
|
const diffs = [];
|
|
31
|
-
const
|
|
32
|
-
diffs.push(...propertyDiffs);
|
|
33
|
-
const anchorDiffs = await this.diffAnchors(previous);
|
|
28
|
+
const anchorDiffs = await this.diffAnchors();
|
|
34
29
|
diffs.push(...anchorDiffs);
|
|
30
|
+
const propertyDiffs = await this.diffProperties();
|
|
31
|
+
diffs.push(...propertyDiffs);
|
|
35
32
|
return diffs;
|
|
36
33
|
}
|
|
37
|
-
async diffAnchors(
|
|
34
|
+
async diffAnchors() {
|
|
38
35
|
const diffs = [];
|
|
39
|
-
// Compare previous anchors with current anchors.
|
|
40
|
-
const previousAnchors = previous.getAnchors();
|
|
41
|
-
for (const previousAnchor of previousAnchors) {
|
|
42
|
-
const currentAnchor = this.getAnchor(previousAnchor.anchorId, previousAnchor.getParent());
|
|
43
|
-
if (!currentAnchor) {
|
|
44
|
-
diffs.push(new Diff(this, DiffAction.DELETE, 'anchor', previousAnchor));
|
|
45
|
-
}
|
|
46
|
-
else if (!DiffUtility.isObjectDeepEquals(previousAnchor.properties, currentAnchor.properties)) {
|
|
47
|
-
diffs.push(new Diff(this, DiffAction.UPDATE, 'anchor', currentAnchor));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
// Add new anchors not in previous.
|
|
51
36
|
const currentAnchors = this.getAnchors();
|
|
52
37
|
for (const currentAnchor of currentAnchors) {
|
|
53
|
-
|
|
54
|
-
if (!previousAnchor) {
|
|
55
|
-
diffs.push(new Diff(this, DiffAction.ADD, 'anchor', currentAnchor));
|
|
56
|
-
}
|
|
38
|
+
diffs.push(new Diff(this, DiffAction.ADD, 'anchor', currentAnchor));
|
|
57
39
|
}
|
|
58
40
|
return diffs;
|
|
59
41
|
}
|
|
60
|
-
async diffProperties(
|
|
61
|
-
return
|
|
42
|
+
async diffProperties() {
|
|
43
|
+
return [];
|
|
62
44
|
}
|
|
63
45
|
getAnchor(anchorId, parent) {
|
|
64
46
|
return super.getAnchor(anchorId, parent);
|
|
@@ -66,10 +48,6 @@ export class AOverlay extends AModel {
|
|
|
66
48
|
getAnchorIndex(anchorId, parent) {
|
|
67
49
|
return super.getAnchorIndex(anchorId, parent);
|
|
68
50
|
}
|
|
69
|
-
remove(ignoreDirectRelationships = false) {
|
|
70
|
-
this.removeAllAnchors();
|
|
71
|
-
super.remove(ignoreDirectRelationships);
|
|
72
|
-
}
|
|
73
51
|
removeAnchor(anchor) {
|
|
74
52
|
const overlayParentDependencyIndex = this.getDependencies().findIndex((d) => d.to.getContext() === anchor.getParent().getContext());
|
|
75
53
|
if (overlayParentDependencyIndex > -1) {
|
|
@@ -85,7 +63,7 @@ export class AOverlay extends AModel {
|
|
|
85
63
|
super.removeAnchor(anchor);
|
|
86
64
|
}
|
|
87
65
|
setContext() {
|
|
88
|
-
return `${this.
|
|
66
|
+
return `${this.NODE_NAME}=${this.overlayId}`;
|
|
89
67
|
}
|
|
90
68
|
synth() {
|
|
91
69
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.abstract.js","sourceRoot":"","sources":["../../src/overlays/overlay.abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"overlay.abstract.js","sourceRoot":"","sources":["../../src/overlays/overlay.abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { Container } from '../
|
|
7
|
+
import { Container } from '../functions/container/container.js';
|
|
8
8
|
import { Factory } from '../decorators/factory.decorator.js';
|
|
9
9
|
import { OverlayDataRepository } from './overlay-data.repository.js';
|
|
10
10
|
export class OverlayService {
|
|
@@ -24,10 +24,6 @@ export class OverlayService {
|
|
|
24
24
|
getOverlaysByProperties(filters = []) {
|
|
25
25
|
return this.overlayDataRepository.getByProperties(filters);
|
|
26
26
|
}
|
|
27
|
-
removeOverlay(overlay) {
|
|
28
|
-
overlay.remove();
|
|
29
|
-
this.overlayDataRepository.remove(overlay);
|
|
30
|
-
}
|
|
31
27
|
}
|
|
32
28
|
let OverlayServiceFactory = class OverlayServiceFactory {
|
|
33
29
|
static async create() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.service.js","sourceRoot":"","sources":["../../src/overlays/overlay.service.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"overlay.service.js","sourceRoot":"","sources":["../../src/overlays/overlay.service.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,OAAO,cAAc;IACzB,YAA6B,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAAG,CAAC;IAE7E,UAAU,CAAC,OAAuB;QAChC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,mBAAmB,CAAC,QAAgB,EAAE,MAAoB,EAAE,oBAA8B,EAAE;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAChD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,uBAAuB,CAAC,UAAyC,EAAE;QACjE,OAAO,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;CACF;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAGhC,MAAM,CAAC,KAAK,CAAC,MAAM;QACjB,MAAM,qBAAqB,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF,CAAA;AAVY,qBAAqB;IADjC,OAAO,CAAiB,cAAc,CAAC;GAC3B,qBAAqB,CAUjC"}
|
|
@@ -2,19 +2,29 @@ import { type UnknownResource } from '../app.type.js';
|
|
|
2
2
|
import { Diff } from '../functions/diff/diff.js';
|
|
3
3
|
import type { IResource } from './resource.interface.js';
|
|
4
4
|
export declare class ResourceDataRepository {
|
|
5
|
+
private actualResources;
|
|
5
6
|
private oldResources;
|
|
6
7
|
private newResources;
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
private dirtyResources;
|
|
9
|
+
constructor(actualResources: UnknownResource[], oldResources: UnknownResource[], newResources: UnknownResource[]);
|
|
10
|
+
addActualResource(resource: UnknownResource): void;
|
|
11
|
+
addNewResource(resource: UnknownResource): void;
|
|
9
12
|
diff(): Promise<Diff[]>;
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
diffDirty(): Promise<Diff[]>;
|
|
14
|
+
ensureDiffsNotOperatingOnDirtyResources(diffs: Diff[]): void;
|
|
15
|
+
getActualResourceById(resourceId: IResource['resourceId']): UnknownResource | undefined;
|
|
16
|
+
getNewResourceById(resourceId: IResource['resourceId']): UnknownResource | undefined;
|
|
17
|
+
getActualResourcesByProperties(filters?: {
|
|
12
18
|
key: string;
|
|
13
19
|
value: any;
|
|
14
20
|
}[]): UnknownResource[];
|
|
15
|
-
|
|
21
|
+
getNewResourcesByProperties(filters?: {
|
|
22
|
+
key: string;
|
|
23
|
+
value: any;
|
|
24
|
+
}[]): UnknownResource[];
|
|
25
|
+
removeNewResource(resource: UnknownResource): void;
|
|
16
26
|
}
|
|
17
27
|
export declare class ResourceDataRepositoryFactory {
|
|
18
28
|
private static instance;
|
|
19
|
-
static create(forceNew
|
|
29
|
+
static create(forceNew?: boolean, actualResources?: UnknownResource[], oldResources?: UnknownResource[], newResources?: UnknownResource[]): Promise<ResourceDataRepository>;
|
|
20
30
|
}
|
|
@@ -4,18 +4,43 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import {
|
|
7
|
+
import { NodeType } from '../app.type.js';
|
|
8
8
|
import { Factory } from '../decorators/factory.decorator.js';
|
|
9
9
|
import { Diff, DiffAction } from '../functions/diff/diff.js';
|
|
10
10
|
export class ResourceDataRepository {
|
|
11
|
-
constructor(oldResources
|
|
11
|
+
constructor(actualResources, oldResources, newResources) {
|
|
12
|
+
this.actualResources = actualResources;
|
|
12
13
|
this.oldResources = oldResources;
|
|
13
14
|
this.newResources = newResources;
|
|
14
|
-
|
|
15
|
+
this.dirtyResources = [];
|
|
16
|
+
for (const resource of oldResources) {
|
|
17
|
+
const actual = actualResources.find((r) => r.resourceId === resource.resourceId);
|
|
18
|
+
if (!resource.isDeepEquals(actual)) {
|
|
19
|
+
this.dirtyResources.push(resource);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
for (const resource of actualResources) {
|
|
23
|
+
if (!oldResources.find((r) => r.resourceId === resource.resourceId)) {
|
|
24
|
+
this.dirtyResources.push(resource);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
addActualResource(resource) {
|
|
29
|
+
if (resource.NODE_TYPE !== NodeType.RESOURCE && resource.NODE_TYPE !== NodeType.SHARED_RESOURCE) {
|
|
30
|
+
throw new Error('Adding non-resource node!');
|
|
31
|
+
}
|
|
32
|
+
// Insert or replace resources.
|
|
33
|
+
const rIndex = this.actualResources.findIndex((r) => r.resourceId === resource.resourceId);
|
|
34
|
+
if (rIndex === -1) {
|
|
35
|
+
this.actualResources.push(resource);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
this.actualResources[rIndex] = resource;
|
|
39
|
+
}
|
|
15
40
|
}
|
|
16
|
-
|
|
17
|
-
if (resource.
|
|
18
|
-
throw new Error('Adding non-resource
|
|
41
|
+
addNewResource(resource) {
|
|
42
|
+
if (resource.NODE_TYPE !== NodeType.RESOURCE && resource.NODE_TYPE !== NodeType.SHARED_RESOURCE) {
|
|
43
|
+
throw new Error('Adding non-resource node!');
|
|
19
44
|
}
|
|
20
45
|
// Insert or replace resources.
|
|
21
46
|
const rIndex = this.newResources.findIndex((r) => r.resourceId === resource.resourceId);
|
|
@@ -25,11 +50,28 @@ export class ResourceDataRepository {
|
|
|
25
50
|
else {
|
|
26
51
|
this.newResources[rIndex] = resource;
|
|
27
52
|
}
|
|
53
|
+
// Clone response from old.
|
|
54
|
+
const oIndex = this.oldResources.findIndex((r) => r.resourceId === resource.resourceId);
|
|
55
|
+
if (oIndex > -1) {
|
|
56
|
+
for (const key of Object.keys(this.oldResources[oIndex].response)) {
|
|
57
|
+
resource.response[key] = JSON.parse(JSON.stringify(this.oldResources[oIndex].response[key]));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
28
60
|
}
|
|
29
61
|
async diff() {
|
|
30
62
|
const oldResources = this.oldResources.reduce((accumulator, current) => ({ ...accumulator, [current.resourceId]: current }), {});
|
|
31
63
|
const newResources = this.newResources.reduce((accumulator, current) => ({ ...accumulator, [current.resourceId]: current }), {});
|
|
32
64
|
const diffs = [];
|
|
65
|
+
for (const oldResource of Object.values(oldResources)) {
|
|
66
|
+
if (oldResource.isMarkedDeleted()) {
|
|
67
|
+
delete oldResources[oldResource.resourceId];
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
for (const newResource of Object.values(newResources)) {
|
|
71
|
+
if (newResource.isMarkedDeleted()) {
|
|
72
|
+
delete newResources[newResource.resourceId];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
33
75
|
for (const oldResourceId of Object.keys(oldResources)) {
|
|
34
76
|
if (!newResources[oldResourceId] || newResources[oldResourceId].isMarkedDeleted()) {
|
|
35
77
|
diffs.push(new Diff(oldResources[oldResourceId], DiffAction.DELETE, 'resourceId', oldResourceId));
|
|
@@ -45,7 +87,54 @@ export class ResourceDataRepository {
|
|
|
45
87
|
}
|
|
46
88
|
const newResource = newResources[newResourceId];
|
|
47
89
|
// A shared resource is being added, but shared resources don't have diffs.
|
|
48
|
-
if (newResource.
|
|
90
|
+
if (newResource.NODE_TYPE === 'shared-resource') {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
const sharedResource = newResource.getSharedResource();
|
|
94
|
+
if (sharedResource !== undefined) {
|
|
95
|
+
// If a new resource is being added, and it has a shared resource,
|
|
96
|
+
// we expect the resource to override diff() and diff against the shared resource.
|
|
97
|
+
// The custom diff() would decide diff actions.
|
|
98
|
+
const rDiff = await newResource.diff(sharedResource);
|
|
99
|
+
diffs.push(...rDiff);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
// The resource is a normal resource, and just needs to be added.
|
|
103
|
+
diffs.push(new Diff(newResource, DiffAction.ADD, 'resourceId', newResource.resourceId));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return diffs;
|
|
107
|
+
}
|
|
108
|
+
async diffDirty() {
|
|
109
|
+
const actualResources = this.actualResources.reduce((accumulator, current) => ({ ...accumulator, [current.resourceId]: current }), {});
|
|
110
|
+
const newResources = this.newResources.reduce((accumulator, current) => ({ ...accumulator, [current.resourceId]: current }), {});
|
|
111
|
+
const diffs = [];
|
|
112
|
+
for (const actualResource of Object.values(actualResources)) {
|
|
113
|
+
if (actualResource.isMarkedDeleted()) {
|
|
114
|
+
delete actualResources[actualResource.resourceId];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
for (const newResource of Object.values(newResources)) {
|
|
118
|
+
if (newResource.isMarkedDeleted()) {
|
|
119
|
+
delete newResources[newResource.resourceId];
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
for (const actualResourceId of Object.keys(actualResources)) {
|
|
123
|
+
if (!newResources[actualResourceId] || newResources[actualResourceId].isMarkedDeleted()) {
|
|
124
|
+
diffs.push(new Diff(actualResources[actualResourceId], DiffAction.DELETE, 'resourceId', actualResourceId));
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
const rDiff = await newResources[actualResourceId].diff(actualResources[actualResourceId]);
|
|
128
|
+
diffs.push(...rDiff);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
for (const newResourceId of Object.keys(newResources)) {
|
|
132
|
+
if (actualResources[newResourceId]) {
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
const newResource = newResources[newResourceId];
|
|
136
|
+
// A shared resource is being added, but shared resources don't have diffs.
|
|
137
|
+
if (newResource.NODE_TYPE === 'shared-resource') {
|
|
49
138
|
continue;
|
|
50
139
|
}
|
|
51
140
|
const sharedResource = newResource.getSharedResource();
|
|
@@ -63,15 +152,26 @@ export class ResourceDataRepository {
|
|
|
63
152
|
}
|
|
64
153
|
return diffs;
|
|
65
154
|
}
|
|
66
|
-
|
|
155
|
+
ensureDiffsNotOperatingOnDirtyResources(diffs) {
|
|
156
|
+
if (diffs.some((d) => this.dirtyResources.some((dr) => d.node.hasAncestor(dr)))) {
|
|
157
|
+
throw new Error('Cannot operate diff on dirty resources!');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
getActualResourceById(resourceId) {
|
|
161
|
+
return this.actualResources.find((r) => r.resourceId === resourceId);
|
|
162
|
+
}
|
|
163
|
+
getNewResourceById(resourceId) {
|
|
67
164
|
return this.newResources.find((r) => r.resourceId === resourceId);
|
|
68
165
|
}
|
|
69
|
-
|
|
166
|
+
getActualResourcesByProperties(filters = []) {
|
|
167
|
+
return this.actualResources.filter((r) => filters.every((c) => r.properties[c.key] === c.value));
|
|
168
|
+
}
|
|
169
|
+
getNewResourcesByProperties(filters = []) {
|
|
70
170
|
return this.newResources.filter((r) => filters.every((c) => r.properties[c.key] === c.value));
|
|
71
171
|
}
|
|
72
|
-
|
|
73
|
-
if (resource.
|
|
74
|
-
throw new Error('Removing non-resource
|
|
172
|
+
removeNewResource(resource) {
|
|
173
|
+
if (resource.NODE_TYPE !== NodeType.RESOURCE && resource.NODE_TYPE !== NodeType.SHARED_RESOURCE) {
|
|
174
|
+
throw new Error('Removing non-resource node!');
|
|
75
175
|
}
|
|
76
176
|
if (!resource.isMarkedDeleted()) {
|
|
77
177
|
resource.remove();
|
|
@@ -83,12 +183,12 @@ export class ResourceDataRepository {
|
|
|
83
183
|
}
|
|
84
184
|
}
|
|
85
185
|
let ResourceDataRepositoryFactory = class ResourceDataRepositoryFactory {
|
|
86
|
-
static async create(forceNew, oldResources, newResources) {
|
|
186
|
+
static async create(forceNew = false, actualResources = [], oldResources = [], newResources = []) {
|
|
87
187
|
if (!this.instance) {
|
|
88
|
-
this.instance = new ResourceDataRepository(oldResources, newResources);
|
|
188
|
+
this.instance = new ResourceDataRepository(actualResources, oldResources, newResources);
|
|
89
189
|
}
|
|
90
190
|
if (forceNew) {
|
|
91
|
-
const newInstance = new ResourceDataRepository(oldResources, newResources);
|
|
191
|
+
const newInstance = new ResourceDataRepository(actualResources, oldResources, newResources);
|
|
92
192
|
Object.keys(this.instance).forEach((key) => (this.instance[key] = newInstance[key]));
|
|
93
193
|
}
|
|
94
194
|
return this.instance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-data.repository.js","sourceRoot":"","sources":["../../src/resources/resource-data.repository.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAsB,
|
|
1
|
+
{"version":3,"file":"resource-data.repository.js","sourceRoot":"","sources":["../../src/resources/resource-data.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,41 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NodeType, type UnknownResource } from '../app.type.js';
|
|
2
2
|
import { type Dependency } from '../functions/dependency/dependency.js';
|
|
3
3
|
import { Diff } from '../functions/diff/diff.js';
|
|
4
|
-
import {
|
|
4
|
+
import { ANode } from '../functions/node/node.abstract.js';
|
|
5
5
|
import type { IResource } from './resource.interface.js';
|
|
6
6
|
import type { ASharedResource } from './shared-resource.abstract.js';
|
|
7
|
-
export declare abstract class AResource<T> extends
|
|
7
|
+
export declare abstract class AResource<T> extends ANode<IResource, T> {
|
|
8
8
|
readonly resourceId: IResource['resourceId'];
|
|
9
9
|
readonly properties: IResource['properties'];
|
|
10
|
-
abstract readonly
|
|
11
|
-
readonly
|
|
10
|
+
abstract readonly NODE_NAME: string;
|
|
11
|
+
readonly NODE_TYPE: NodeType;
|
|
12
|
+
private _deleteMarker;
|
|
12
13
|
readonly response: IResource['response'];
|
|
13
14
|
protected constructor(resourceId: IResource['resourceId'], properties: IResource['properties'], parents: UnknownResource[]);
|
|
14
|
-
addAnchor(): void;
|
|
15
15
|
addRelationship(): {
|
|
16
16
|
thatToThisDependency: Dependency;
|
|
17
17
|
thisToThatDependency: Dependency;
|
|
18
18
|
};
|
|
19
|
+
static cloneResource<T extends AResource<T>>(sourceResource: T, deReferenceResource: (resourceId: string) => Promise<UnknownResource>): Promise<T>;
|
|
20
|
+
cloneResourceInPlace(sourceResource: UnknownResource, deReferenceResource: (resourceId: string) => Promise<UnknownResource>): Promise<void>;
|
|
19
21
|
diff(previous: T | ASharedResource<T>): Promise<Diff[]>;
|
|
22
|
+
diffInverse(diff: Diff, deReferenceResource: (resourceId: string) => Promise<UnknownResource>): Promise<void>;
|
|
20
23
|
diffProperties(previous: T | ASharedResource<T>): Promise<Diff[]>;
|
|
21
24
|
getSharedResource(): ASharedResource<T> | undefined;
|
|
25
|
+
isDeepEquals(other?: UnknownResource): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* To check if self is marked as deleted.
|
|
28
|
+
* A deleted node will be removed from the graph after the transaction.
|
|
29
|
+
*/
|
|
30
|
+
isMarkedDeleted(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* To mark self as deleted.
|
|
33
|
+
* A deleted node will be removed from the graph after the transaction.
|
|
34
|
+
* - A node cannot be deleted if it has dependencies.
|
|
35
|
+
*
|
|
36
|
+
* @throws {@link Error} If node contains dependencies to other nodes.
|
|
37
|
+
*/
|
|
38
|
+
remove(): void;
|
|
22
39
|
setContext(): string;
|
|
23
40
|
synth(): IResource;
|
|
24
41
|
static unSynth(deserializationClass: any, resource: IResource, parentResourceIds: string[], deReferenceResource: (resourceId: string) => Promise<UnknownResource>): Promise<UnknownResource>;
|