@quadnix/octo 0.0.20 → 0.0.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/dist/app.type.d.ts +5 -0
- package/dist/app.type.js +6 -0
- package/dist/app.type.js.map +1 -1
- package/dist/decorators/action.decorator.d.ts +17 -0
- package/dist/decorators/action.decorator.js +23 -0
- package/dist/decorators/action.decorator.js.map +1 -1
- package/dist/decorators/anchor.decorator.d.ts +13 -0
- package/dist/decorators/anchor.decorator.js +13 -0
- package/dist/decorators/anchor.decorator.js.map +1 -1
- package/dist/decorators/container.d.ts +60 -0
- package/dist/decorators/container.js +63 -2
- package/dist/decorators/container.js.map +1 -1
- package/dist/decorators/enable-hook.decorator.d.ts +14 -0
- package/dist/decorators/enable-hook.decorator.js +14 -0
- package/dist/decorators/enable-hook.decorator.js.map +1 -1
- package/dist/decorators/event-source.decorator.d.ts +15 -0
- package/dist/decorators/event-source.decorator.js +15 -0
- package/dist/decorators/event-source.decorator.js.map +1 -1
- package/dist/decorators/factory.decorator.d.ts +30 -0
- package/dist/decorators/factory.decorator.js +30 -0
- package/dist/decorators/factory.decorator.js.map +1 -1
- package/dist/decorators/model.decorator.d.ts +13 -0
- package/dist/decorators/model.decorator.js +13 -0
- package/dist/decorators/model.decorator.js.map +1 -1
- package/dist/decorators/module.decorator.d.ts +52 -0
- package/dist/decorators/module.decorator.js +60 -1
- package/dist/decorators/module.decorator.js.map +1 -1
- package/dist/decorators/on-event.decorator.d.ts +17 -0
- package/dist/decorators/on-event.decorator.js +17 -0
- package/dist/decorators/on-event.decorator.js.map +1 -1
- package/dist/decorators/overlay.decorator.d.ts +13 -0
- package/dist/decorators/overlay.decorator.js +13 -0
- package/dist/decorators/overlay.decorator.js.map +1 -1
- package/dist/decorators/resource.decorator.d.ts +13 -0
- package/dist/decorators/resource.decorator.js +13 -0
- package/dist/decorators/resource.decorator.js.map +1 -1
- package/dist/decorators/test-container.d.ts +52 -0
- package/dist/decorators/test-container.js +54 -2
- package/dist/decorators/test-container.js.map +1 -1
- package/dist/decorators/validate.decorator.d.ts +9 -0
- package/dist/decorators/validate.decorator.js +23 -0
- package/dist/decorators/validate.decorator.js.map +1 -0
- package/dist/events/error.event.d.ts +30 -0
- package/dist/events/error.event.js +30 -0
- package/dist/events/error.event.js.map +1 -1
- package/dist/events/event.model.d.ts +27 -0
- package/dist/events/event.model.js +27 -3
- package/dist/events/event.model.js.map +1 -1
- package/dist/events/hook.event.d.ts +167 -0
- package/dist/events/hook.event.js +167 -0
- package/dist/events/hook.event.js.map +1 -1
- package/dist/events/module.event.d.ts +12 -0
- package/dist/events/module.event.js +12 -0
- package/dist/events/module.event.js.map +1 -1
- package/dist/events/registration.event.d.ts +90 -0
- package/dist/events/registration.event.js +90 -0
- package/dist/events/registration.event.js.map +1 -1
- package/dist/events/serialization.event.d.ts +61 -0
- package/dist/events/serialization.event.js +61 -0
- package/dist/events/serialization.event.js.map +1 -1
- package/dist/events/transaction.event.d.ts +41 -0
- package/dist/events/transaction.event.js +41 -0
- package/dist/events/transaction.event.js.map +1 -1
- package/dist/functions/dependency/dependency.js +1 -8
- package/dist/functions/dependency/dependency.js.map +1 -1
- package/dist/functions/diff/diff-metadata.d.ts +3 -0
- package/dist/functions/diff/diff-metadata.js +5 -10
- package/dist/functions/diff/diff-metadata.js.map +1 -1
- package/dist/functions/diff/diff.d.ts +3 -0
- package/dist/functions/diff/diff.js +3 -4
- package/dist/functions/diff/diff.js.map +1 -1
- package/dist/functions/diff/diff.utility.d.ts +32 -0
- package/dist/functions/diff/diff.utility.js +49 -0
- package/dist/functions/diff/diff.utility.js.map +1 -1
- package/dist/functions/hook/commit.hook.js +6 -3
- package/dist/functions/hook/commit.hook.js.map +1 -1
- package/dist/functions/hook/model-action.hook.js +6 -3
- package/dist/functions/hook/model-action.hook.js.map +1 -1
- package/dist/functions/hook/resource-action.hook.js +6 -3
- package/dist/functions/hook/resource-action.hook.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +4 -1
- package/dist/main.js +27 -15
- package/dist/main.js.map +1 -1
- package/dist/models/app/app.interface.d.ts +5 -0
- package/dist/models/app/app.model.d.ts +29 -0
- package/dist/models/app/app.model.js +40 -3
- package/dist/models/app/app.model.js.map +1 -1
- package/dist/models/deployment/deployment.interface.d.ts +5 -0
- package/dist/models/deployment/deployment.model.d.ts +15 -0
- package/dist/models/deployment/deployment.model.js +20 -3
- package/dist/models/deployment/deployment.model.js.map +1 -1
- package/dist/models/environment/environment.interface.d.ts +5 -0
- package/dist/models/environment/environment.model.d.ts +18 -0
- package/dist/models/environment/environment.model.js +33 -4
- package/dist/models/environment/environment.model.js.map +1 -1
- package/dist/models/execution/execution.interface.d.ts +5 -0
- package/dist/models/execution/execution.model.d.ts +23 -0
- package/dist/models/execution/execution.model.js +39 -2
- package/dist/models/execution/execution.model.js.map +1 -1
- package/dist/models/image/image.interface.d.ts +5 -0
- package/dist/models/image/image.model.d.ts +35 -0
- package/dist/models/image/image.model.js +25 -6
- package/dist/models/image/image.model.js.map +1 -1
- package/dist/models/model-action.interface.d.ts +21 -0
- package/dist/models/model.abstract.d.ts +265 -0
- package/dist/models/model.abstract.js +274 -5
- package/dist/models/model.abstract.js.map +1 -1
- package/dist/models/model.interface.d.ts +25 -0
- package/dist/models/pipeline/pipeline.interface.d.ts +5 -0
- package/dist/models/pipeline/pipeline.model.d.ts +15 -0
- package/dist/models/pipeline/pipeline.model.js +25 -4
- package/dist/models/pipeline/pipeline.model.js.map +1 -1
- package/dist/models/region/region.interface.d.ts +5 -0
- package/dist/models/region/region.model.d.ts +18 -0
- package/dist/models/region/region.model.js +29 -3
- package/dist/models/region/region.model.js.map +1 -1
- package/dist/models/server/server.interface.d.ts +5 -0
- package/dist/models/server/server.model.d.ts +17 -0
- package/dist/models/server/server.model.js +24 -3
- package/dist/models/server/server.model.js.map +1 -1
- package/dist/models/service/service.interface.d.ts +5 -0
- package/dist/models/service/service.model.d.ts +15 -0
- package/dist/models/service/service.model.js +19 -2
- package/dist/models/service/service.model.js.map +1 -1
- package/dist/models/subnet/subnet.interface.d.ts +5 -0
- package/dist/models/subnet/subnet.model.d.ts +48 -0
- package/dist/models/subnet/subnet.model.js +52 -7
- package/dist/models/subnet/subnet.model.js.map +1 -1
- package/dist/modules/module.container.d.ts +2 -0
- package/dist/modules/module.container.js +17 -8
- 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 +10 -7
- package/dist/modules/test-module.container.js.map +1 -1
- package/dist/overlays/anchor.abstract.js +0 -3
- package/dist/overlays/anchor.abstract.js.map +1 -1
- package/dist/overlays/overlay-data.repository.js +0 -3
- package/dist/overlays/overlay-data.repository.js.map +1 -1
- package/dist/overlays/overlay.abstract.js +3 -3
- package/dist/overlays/overlay.abstract.js.map +1 -1
- package/dist/overlays/overlay.service.js +0 -2
- package/dist/overlays/overlay.service.js.map +1 -1
- package/dist/resources/resource-data.repository.js +6 -3
- package/dist/resources/resource-data.repository.js.map +1 -1
- package/dist/resources/resource.abstract.js +4 -4
- package/dist/resources/resource.abstract.js.map +1 -1
- package/dist/resources/shared-resource.abstract.js +4 -1
- package/dist/resources/shared-resource.abstract.js.map +1 -1
- package/dist/services/capture/capture.service.js +3 -2
- package/dist/services/capture/capture.service.js.map +1 -1
- package/dist/services/event/event.service.js +8 -5
- package/dist/services/event/event.service.js.map +1 -1
- package/dist/services/input/input.service.js +1 -3
- package/dist/services/input/input.service.js.map +1 -1
- package/dist/services/serialization/model/model-serialization.service.js +10 -4
- package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
- package/dist/services/serialization/resource/resource-serialization.service.js +17 -4
- package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
- package/dist/services/state-management/local.state-provider.js +0 -1
- package/dist/services/state-management/local.state-provider.js.map +1 -1
- package/dist/services/state-management/state-management.service.js +0 -2
- package/dist/services/state-management/state-management.service.js.map +1 -1
- package/dist/services/state-management/test.state-provider.js +3 -1
- package/dist/services/state-management/test.state-provider.js.map +1 -1
- package/dist/services/transaction/transaction.service.d.ts +4 -0
- package/dist/services/transaction/transaction.service.js +40 -8
- package/dist/services/transaction/transaction.service.js.map +1 -1
- package/dist/services/validation/validation.service.d.ts +19 -0
- package/dist/services/validation/validation.service.js +66 -0
- package/dist/services/validation/validation.service.js.map +1 -0
- package/dist/utilities/object/object.utility.js +1 -0
- package/dist/utilities/object/object.utility.js.map +1 -1
- package/dist/utilities/validation/validation.utility.d.ts +5 -0
- package/dist/utilities/validation/validation.utility.js +12 -0
- package/dist/utilities/validation/validation.utility.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-action.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/model-action.hook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EACL,gCAAgC,EAChC,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAIrE,MAAM,OAAO,eAAe;
|
|
1
|
+
{"version":3,"file":"model-action.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/model-action.hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { PostResourceActionHookCallbackDoneEvent, PreResourceActionHookCallbackDoneEvent, ResourceActionHookCallbackDoneEvent, } from '../../events/hook.event.js';
|
|
2
2
|
import { EventService } from '../../services/event/event.service.js';
|
|
3
3
|
export class ResourceActionHook {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
constructor() {
|
|
5
|
+
this.postResourceActionHooks = {};
|
|
6
|
+
this.preResourceActionHooks = {};
|
|
7
|
+
}
|
|
7
8
|
collectHooks(registeredModules) {
|
|
8
9
|
for (const m of registeredModules) {
|
|
9
10
|
for (const { ACTION_NAME, handle } of m.properties.postResourceActionHooks || []) {
|
|
@@ -27,6 +28,8 @@ export class ResourceActionHook {
|
|
|
27
28
|
return this.instance;
|
|
28
29
|
}
|
|
29
30
|
registrar(resourceAction) {
|
|
31
|
+
// `self` here references this class, vs `this` references the original method.
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
30
33
|
const self = this;
|
|
31
34
|
const originalHandleMethod = resourceAction.handle;
|
|
32
35
|
resourceAction.handle = async function (...args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-action.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/resource-action.hook.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uCAAuC,EACvC,sCAAsC,EACtC,mCAAmC,GACpC,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAIrE,MAAM,OAAO,kBAAkB;
|
|
1
|
+
{"version":3,"file":"resource-action.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/resource-action.hook.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export { OnEvent } from './decorators/on-event.decorator.js';
|
|
|
9
9
|
export { Overlay } from './decorators/overlay.decorator.js';
|
|
10
10
|
export { Resource } from './decorators/resource.decorator.js';
|
|
11
11
|
export { IPackageMock, TestContainer } from './decorators/test-container.js';
|
|
12
|
+
export { Validate } from './decorators/validate.decorator.js';
|
|
12
13
|
export { DependencyRelationship } from './functions/dependency/dependency.js';
|
|
13
14
|
export { Diff, DiffAction } from './functions/diff/diff.js';
|
|
14
15
|
export { DiffUtility } from './functions/diff/diff.utility.js';
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@ export { OnEvent } from './decorators/on-event.decorator.js';
|
|
|
9
9
|
export { Overlay } from './decorators/overlay.decorator.js';
|
|
10
10
|
export { Resource } from './decorators/resource.decorator.js';
|
|
11
11
|
export { TestContainer } from './decorators/test-container.js';
|
|
12
|
+
export { Validate } from './decorators/validate.decorator.js';
|
|
12
13
|
export { DependencyRelationship } from './functions/dependency/dependency.js';
|
|
13
14
|
export { Diff, DiffAction } from './functions/diff/diff.js';
|
|
14
15
|
export { DiffUtility } from './functions/diff/diff.utility.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAgB,aAAa,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/main.d.ts
CHANGED
|
@@ -13,21 +13,24 @@ export declare class Octo {
|
|
|
13
13
|
private captureService;
|
|
14
14
|
private inputService;
|
|
15
15
|
private modelSerializationService;
|
|
16
|
+
private moduleContainer;
|
|
16
17
|
private resourceDataRepository;
|
|
17
18
|
private resourceSerializationService;
|
|
18
19
|
private stateManagementService;
|
|
19
20
|
private transactionService;
|
|
21
|
+
private validationService;
|
|
20
22
|
beginTransaction(app: App, options?: TransactionOptions): Promise<ReturnType<TransactionService['beginTransaction']>>;
|
|
21
23
|
commitTransaction(app: App, modelTransaction: DiffMetadata[][]): Promise<void>;
|
|
22
24
|
compose(): Promise<void>;
|
|
23
25
|
getAllResources(): UnknownResource[];
|
|
24
|
-
getModuleOutput<T>(module: Constructable<IModule<T>> | string):
|
|
26
|
+
getModuleOutput<T>(module: Constructable<IModule<T>> | string): T | undefined;
|
|
25
27
|
initialize(stateProvider: IStateProvider, initializeInContainer?: {
|
|
26
28
|
type: Parameters<typeof Container.get>[0];
|
|
27
29
|
options: Parameters<typeof Container.get>[1];
|
|
28
30
|
}[], excludeInContainer?: {
|
|
29
31
|
type: Parameters<typeof Container.unRegisterFactory>[0];
|
|
30
32
|
}[]): Promise<void>;
|
|
33
|
+
loadModules(modules: Constructable<IModule<any>>[]): void;
|
|
31
34
|
registerCapture<T extends AResource<T>>(resourceId: T['resourceId'], properties: Partial<T['properties']>, response: Partial<T['response']>): void;
|
|
32
35
|
registerInputs(inputs: ActionInputs): void;
|
|
33
36
|
private retrieveModelState;
|
package/dist/main.js
CHANGED
|
@@ -19,56 +19,60 @@ import { ModelSerializationService } from './services/serialization/model/model-
|
|
|
19
19
|
import { ResourceSerializationService } from './services/serialization/resource/resource-serialization.service.js';
|
|
20
20
|
import { StateManagementService } from './services/state-management/state-management.service.js';
|
|
21
21
|
import { TransactionService } from './services/transaction/transaction.service.js';
|
|
22
|
+
import { ValidationService } from './services/validation/validation.service.js';
|
|
22
23
|
export class Octo {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
inputService;
|
|
28
|
-
modelSerializationService;
|
|
29
|
-
resourceDataRepository;
|
|
30
|
-
resourceSerializationService;
|
|
31
|
-
stateManagementService;
|
|
32
|
-
transactionService;
|
|
24
|
+
constructor() {
|
|
25
|
+
this.modelStateFileName = 'models.json';
|
|
26
|
+
this.resourceStateFileName = 'resources.json';
|
|
27
|
+
}
|
|
33
28
|
async beginTransaction(app, options) {
|
|
34
29
|
const diffs = await app.diff(this.previousApp);
|
|
35
30
|
return this.transactionService.beginTransaction(diffs, options || {});
|
|
36
31
|
}
|
|
37
32
|
async commitTransaction(app, modelTransaction) {
|
|
33
|
+
// `modelTransaction` is used by hooks of type CommitHook.
|
|
38
34
|
assert(!!modelTransaction);
|
|
35
|
+
// Save the state of the new app and its resources.
|
|
39
36
|
await this.saveModelState(app);
|
|
40
37
|
await this.saveResourceState();
|
|
38
|
+
// Reset the runtime environment with the latest state.
|
|
41
39
|
await this.retrieveResourceState();
|
|
42
40
|
this.previousApp = await this.retrieveModelState();
|
|
43
41
|
}
|
|
44
42
|
async compose() {
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
await this.moduleContainer.apply();
|
|
44
|
+
const result = this.validationService.validate();
|
|
45
|
+
if (!result.pass) {
|
|
46
|
+
throw new Error('Validation error!');
|
|
47
|
+
}
|
|
47
48
|
}
|
|
48
49
|
getAllResources() {
|
|
49
50
|
return this.resourceDataRepository.getByProperties();
|
|
50
51
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return moduleContainer.getOutput(module);
|
|
52
|
+
getModuleOutput(module) {
|
|
53
|
+
return this.moduleContainer.getOutput(module);
|
|
54
54
|
}
|
|
55
55
|
async initialize(stateProvider, initializeInContainer = [], excludeInContainer = []) {
|
|
56
56
|
[
|
|
57
57
|
this.captureService,
|
|
58
58
|
this.inputService,
|
|
59
59
|
this.modelSerializationService,
|
|
60
|
+
this.moduleContainer,
|
|
60
61
|
this.resourceDataRepository,
|
|
61
62
|
this.resourceSerializationService,
|
|
62
63
|
this.stateManagementService,
|
|
63
64
|
this.transactionService,
|
|
65
|
+
this.validationService,
|
|
64
66
|
] = await Promise.all([
|
|
65
67
|
Container.get(CaptureService),
|
|
66
68
|
Container.get(InputService),
|
|
67
69
|
Container.get(ModelSerializationService),
|
|
70
|
+
Container.get(ModuleContainer),
|
|
68
71
|
Container.get(ResourceDataRepository),
|
|
69
72
|
Container.get(ResourceSerializationService),
|
|
70
73
|
Container.get(StateManagementService, { args: [stateProvider] }),
|
|
71
74
|
Container.get(TransactionService),
|
|
75
|
+
Container.get(ValidationService),
|
|
72
76
|
]);
|
|
73
77
|
for (const exclude of excludeInContainer) {
|
|
74
78
|
Container.unRegisterFactory(exclude.type);
|
|
@@ -76,9 +80,15 @@ export class Octo {
|
|
|
76
80
|
for (const initialize of initializeInContainer) {
|
|
77
81
|
await Container.get(initialize.type, initialize.options);
|
|
78
82
|
}
|
|
83
|
+
// Reset the runtime environment with the latest state.
|
|
79
84
|
await this.retrieveResourceState();
|
|
80
85
|
this.previousApp = await this.retrieveModelState();
|
|
81
86
|
}
|
|
87
|
+
loadModules(modules) {
|
|
88
|
+
for (const module of modules) {
|
|
89
|
+
this.moduleContainer.load(module);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
82
92
|
registerCapture(resourceId, properties, response) {
|
|
83
93
|
this.captureService.registerCapture(resourceId, properties, response);
|
|
84
94
|
}
|
|
@@ -87,12 +97,14 @@ export class Octo {
|
|
|
87
97
|
}
|
|
88
98
|
async retrieveModelState() {
|
|
89
99
|
const { data: modelSerializedOutput } = await this.stateManagementService.getModelState(this.modelStateFileName);
|
|
100
|
+
// Initialize previous model state.
|
|
90
101
|
return Object.keys(modelSerializedOutput.models).length > 0
|
|
91
102
|
? (await this.modelSerializationService.deserialize(modelSerializedOutput))
|
|
92
103
|
: undefined;
|
|
93
104
|
}
|
|
94
105
|
async retrieveResourceState() {
|
|
95
106
|
const { data: resourceSerializedOutput } = await this.stateManagementService.getResourceState(this.resourceStateFileName);
|
|
107
|
+
// Initialize previous resource state.
|
|
96
108
|
await this.resourceSerializationService.deserialize(resourceSerializedOutput);
|
|
97
109
|
}
|
|
98
110
|
async saveModelState(app) {
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAEnE,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAC1G,OAAO,EAAE,4BAA4B,EAAE,MAAM,qEAAqE,CAAC;AACnH,OAAO,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AAEjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,15 +7,44 @@ import { Region } from '../region/region.model.js';
|
|
|
7
7
|
import { Server } from '../server/server.model.js';
|
|
8
8
|
import { Service } from '../service/service.model.js';
|
|
9
9
|
import type { IApp } from './app.interface.js';
|
|
10
|
+
/**
|
|
11
|
+
* An App model is the parent of all other models.
|
|
12
|
+
* It represents the main app for whom the infrastructure is being created.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const app = new App('MyApp');
|
|
17
|
+
* ```
|
|
18
|
+
* @group Models
|
|
19
|
+
* @see Definition of [Default Models](/docs/fundamentals/models#default-models).
|
|
20
|
+
*/
|
|
10
21
|
export declare class App extends AModel<IApp, App> {
|
|
11
22
|
readonly MODEL_NAME: string;
|
|
23
|
+
/**
|
|
24
|
+
* The name of the app.
|
|
25
|
+
*/
|
|
12
26
|
readonly name: string;
|
|
13
27
|
constructor(name: string);
|
|
14
28
|
diffProperties(): Promise<Diff[]>;
|
|
29
|
+
/**
|
|
30
|
+
* To add an {@link Image}.
|
|
31
|
+
*/
|
|
15
32
|
addImage(image: Image): void;
|
|
33
|
+
/**
|
|
34
|
+
* To add a {@link Pipeline}.
|
|
35
|
+
*/
|
|
16
36
|
addPipeline(pipeline: Pipeline): void;
|
|
37
|
+
/**
|
|
38
|
+
* To add a {@link Region}.
|
|
39
|
+
*/
|
|
17
40
|
addRegion(region: Region): void;
|
|
41
|
+
/**
|
|
42
|
+
* To add a {@link Server}.
|
|
43
|
+
*/
|
|
18
44
|
addServer(server: Server): void;
|
|
45
|
+
/**
|
|
46
|
+
* To add a {@link Service}.
|
|
47
|
+
*/
|
|
19
48
|
addService(service: Service): void;
|
|
20
49
|
setContext(): string;
|
|
21
50
|
synth(): IApp;
|
|
@@ -9,61 +9,92 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
var App_1;
|
|
11
11
|
import { Model } from '../../decorators/model.decorator.js';
|
|
12
|
+
import { Validate } from '../../decorators/validate.decorator.js';
|
|
12
13
|
import { AModel } from '../model.abstract.js';
|
|
14
|
+
/**
|
|
15
|
+
* An App model is the parent of all other models.
|
|
16
|
+
* It represents the main app for whom the infrastructure is being created.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* const app = new App('MyApp');
|
|
21
|
+
* ```
|
|
22
|
+
* @group Models
|
|
23
|
+
* @see Definition of [Default Models](/docs/fundamentals/models#default-models).
|
|
24
|
+
*/
|
|
13
25
|
let App = App_1 = class App extends AModel {
|
|
14
|
-
MODEL_NAME = 'app';
|
|
15
|
-
name;
|
|
16
26
|
constructor(name) {
|
|
17
27
|
super();
|
|
28
|
+
this.MODEL_NAME = 'app';
|
|
18
29
|
this.name = name;
|
|
19
30
|
}
|
|
20
31
|
async diffProperties() {
|
|
21
32
|
return [];
|
|
22
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* To add an {@link Image}.
|
|
36
|
+
*/
|
|
23
37
|
addImage(image) {
|
|
24
38
|
const childrenDependencies = this.getChildren('image');
|
|
25
39
|
if (!childrenDependencies['image'])
|
|
26
40
|
childrenDependencies['image'] = [];
|
|
41
|
+
// Check for duplicates.
|
|
27
42
|
const images = childrenDependencies['image'].map((d) => d.to);
|
|
28
43
|
if (images.find((i) => i.imageId === image.imageId)) {
|
|
29
44
|
throw new Error('Image already exists!');
|
|
30
45
|
}
|
|
31
46
|
this.addChild('name', image, 'imageId');
|
|
32
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* To add a {@link Pipeline}.
|
|
50
|
+
*/
|
|
33
51
|
addPipeline(pipeline) {
|
|
34
52
|
const childrenDependencies = this.getChildren('pipeline');
|
|
35
53
|
if (!childrenDependencies['pipeline'])
|
|
36
54
|
childrenDependencies['pipeline'] = [];
|
|
55
|
+
// Check for duplicates.
|
|
37
56
|
const pipelines = childrenDependencies['pipeline'].map((d) => d.to);
|
|
38
57
|
if (pipelines.find((p) => p.pipelineName === pipeline.pipelineName)) {
|
|
39
58
|
throw new Error('Pipeline already exists!');
|
|
40
59
|
}
|
|
41
60
|
this.addChild('name', pipeline, 'pipelineName');
|
|
42
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* To add a {@link Region}.
|
|
64
|
+
*/
|
|
43
65
|
addRegion(region) {
|
|
44
66
|
const childrenDependencies = this.getChildren('region');
|
|
45
67
|
if (!childrenDependencies['region'])
|
|
46
68
|
childrenDependencies['region'] = [];
|
|
69
|
+
// Check for duplicates.
|
|
47
70
|
const regions = childrenDependencies['region'].map((d) => d.to);
|
|
48
71
|
if (regions.find((r) => r.regionId === region.regionId)) {
|
|
49
72
|
throw new Error('Region already exists!');
|
|
50
73
|
}
|
|
51
74
|
this.addChild('name', region, 'regionId');
|
|
52
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* To add a {@link Server}.
|
|
78
|
+
*/
|
|
53
79
|
addServer(server) {
|
|
54
80
|
const childrenDependencies = this.getChildren('server');
|
|
55
81
|
if (!childrenDependencies['server'])
|
|
56
82
|
childrenDependencies['server'] = [];
|
|
83
|
+
// Check for duplicates.
|
|
57
84
|
const servers = childrenDependencies['server'].map((d) => d.to);
|
|
58
85
|
if (servers.find((s) => s.serverKey === server.serverKey)) {
|
|
59
86
|
throw new Error('Server already exists!');
|
|
60
87
|
}
|
|
61
88
|
this.addChild('name', server, 'serverKey');
|
|
62
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* To add a {@link Service}.
|
|
92
|
+
*/
|
|
63
93
|
addService(service) {
|
|
64
94
|
const childrenDependencies = this.getChildren('service');
|
|
65
95
|
if (!childrenDependencies['service'])
|
|
66
96
|
childrenDependencies['service'] = [];
|
|
97
|
+
// Check for duplicates.
|
|
67
98
|
const services = childrenDependencies['service'].map((d) => d.to);
|
|
68
99
|
if (services.find((s) => s.serviceId === service.serviceId)) {
|
|
69
100
|
throw new Error('Service already exists!');
|
|
@@ -78,10 +109,16 @@ let App = App_1 = class App extends AModel {
|
|
|
78
109
|
name: this.name,
|
|
79
110
|
};
|
|
80
111
|
}
|
|
81
|
-
static async unSynth(app,
|
|
112
|
+
static async unSynth(app,
|
|
113
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
114
|
+
deReferenceContext) {
|
|
82
115
|
return new App_1(app.name);
|
|
83
116
|
}
|
|
84
117
|
};
|
|
118
|
+
__decorate([
|
|
119
|
+
Validate({ options: { maxLength: 64, minLength: 2, regex: /^[a-zA-Z][\w-]*[a-zA-Z0-9]$/ } }),
|
|
120
|
+
__metadata("design:type", String)
|
|
121
|
+
], App.prototype, "name", void 0);
|
|
85
122
|
App = App_1 = __decorate([
|
|
86
123
|
Model(),
|
|
87
124
|
__metadata("design:paramtypes", [String])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.model.js","sourceRoot":"","sources":["../../../src/models/app/app.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"app.model.js","sourceRoot":"","sources":["../../../src/models/app/app.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,23 @@ import type { UnknownModel } from '../../app.type.js';
|
|
|
2
2
|
import type { Diff } from '../../functions/diff/diff.js';
|
|
3
3
|
import { AModel } from '../model.abstract.js';
|
|
4
4
|
import type { IDeployment } from './deployment.interface.js';
|
|
5
|
+
/**
|
|
6
|
+
* A deployment model is an instance of server's code at a specific point in time.
|
|
7
|
+
* Every change/commit in server code should generate a new deployment.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const deployment = new Deployment('v0.0.1');
|
|
12
|
+
* ```
|
|
13
|
+
* @group Models
|
|
14
|
+
* @see Definition of [Default Models](/docs/fundamentals/models#default-models).
|
|
15
|
+
*/
|
|
5
16
|
export declare class Deployment extends AModel<IDeployment, Deployment> {
|
|
6
17
|
readonly MODEL_NAME: string;
|
|
18
|
+
/**
|
|
19
|
+
* The identifying tag that can point to the server's code at a specific point in time.
|
|
20
|
+
* Could be a version number or a commit hash.
|
|
21
|
+
*/
|
|
7
22
|
readonly deploymentTag: string;
|
|
8
23
|
constructor(deploymentTag: string);
|
|
9
24
|
diffProperties(): Promise<Diff[]>;
|
|
@@ -9,12 +9,23 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
var Deployment_1;
|
|
11
11
|
import { Model } from '../../decorators/model.decorator.js';
|
|
12
|
+
import { Validate } from '../../decorators/validate.decorator.js';
|
|
12
13
|
import { AModel } from '../model.abstract.js';
|
|
14
|
+
/**
|
|
15
|
+
* A deployment model is an instance of server's code at a specific point in time.
|
|
16
|
+
* Every change/commit in server code should generate a new deployment.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* const deployment = new Deployment('v0.0.1');
|
|
21
|
+
* ```
|
|
22
|
+
* @group Models
|
|
23
|
+
* @see Definition of [Default Models](/docs/fundamentals/models#default-models).
|
|
24
|
+
*/
|
|
13
25
|
let Deployment = Deployment_1 = class Deployment extends AModel {
|
|
14
|
-
MODEL_NAME = 'deployment';
|
|
15
|
-
deploymentTag;
|
|
16
26
|
constructor(deploymentTag) {
|
|
17
27
|
super();
|
|
28
|
+
this.MODEL_NAME = 'deployment';
|
|
18
29
|
this.deploymentTag = deploymentTag;
|
|
19
30
|
}
|
|
20
31
|
async diffProperties() {
|
|
@@ -30,10 +41,16 @@ let Deployment = Deployment_1 = class Deployment extends AModel {
|
|
|
30
41
|
deploymentTag: this.deploymentTag,
|
|
31
42
|
};
|
|
32
43
|
}
|
|
33
|
-
static async unSynth(deployment,
|
|
44
|
+
static async unSynth(deployment,
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
46
|
+
deReferenceContext) {
|
|
34
47
|
return new Deployment_1(deployment.deploymentTag);
|
|
35
48
|
}
|
|
36
49
|
};
|
|
50
|
+
__decorate([
|
|
51
|
+
Validate({ options: { maxLength: 32, minLength: 2, regex: /^[a-zA-Z0-9][\w.-]*[a-zA-Z0-9]$/ } }),
|
|
52
|
+
__metadata("design:type", String)
|
|
53
|
+
], Deployment.prototype, "deploymentTag", void 0);
|
|
37
54
|
Deployment = Deployment_1 = __decorate([
|
|
38
55
|
Model(),
|
|
39
56
|
__metadata("design:paramtypes", [String])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment.model.js","sourceRoot":"","sources":["../../../src/models/deployment/deployment.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"deployment.model.js","sourceRoot":"","sources":["../../../src/models/deployment/deployment.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C;;;;;;;;;;GAUG;AAEI,IAAM,UAAU,kBAAhB,MAAM,UAAW,SAAQ,MAA+B;IAU7D,YAAY,aAAqB;QAC/B,KAAK,EAAE,CAAC;QAVD,eAAU,GAAW,YAAY,CAAC;QAWzC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAEQ,KAAK,CAAC,cAAc;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAEQ,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrF,CAAC;IAEQ,KAAK;QACZ,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,UAAuB;IACvB,6DAA6D;IAC7D,kBAA8D;QAE9D,OAAO,IAAI,YAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AA9BU;IADR,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,CAAC;;iDAClE;AARpB,UAAU;IADtB,KAAK,EAAE;;GACK,UAAU,CAsCtB"}
|
|
@@ -2,9 +2,27 @@ import type { UnknownModel } from '../../app.type.js';
|
|
|
2
2
|
import type { Diff } from '../../functions/diff/diff.js';
|
|
3
3
|
import { AModel } from '../model.abstract.js';
|
|
4
4
|
import type { IEnvironment } from './environment.interface.js';
|
|
5
|
+
/**
|
|
6
|
+
* An Environment model is the logical sub-section of a Region which isolates one runtime environment from another.
|
|
7
|
+
* E.g. qa, staging, production, etc.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const environment = new Environment('qa');
|
|
12
|
+
* ```
|
|
13
|
+
* @group Models
|
|
14
|
+
* @see Definition of [Default Models](/docs/fundamentals/models#default-models).
|
|
15
|
+
*/
|
|
5
16
|
export declare class Environment extends AModel<IEnvironment, Environment> {
|
|
6
17
|
readonly MODEL_NAME: string;
|
|
18
|
+
/**
|
|
19
|
+
* The name of the environment.
|
|
20
|
+
* An environment must be unique within a Region. But multiple Regions can share the same environment name.
|
|
21
|
+
*/
|
|
7
22
|
readonly environmentName: string;
|
|
23
|
+
/**
|
|
24
|
+
* A set of environment variables to be passed to any {@link Execution} running in this environment.
|
|
25
|
+
*/
|
|
8
26
|
readonly environmentVariables: Map<string, string>;
|
|
9
27
|
constructor(environmentName: string);
|
|
10
28
|
diffProperties(previous: Environment): Promise<Diff[]>;
|
|
@@ -9,14 +9,28 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
var Environment_1;
|
|
11
11
|
import { Model } from '../../decorators/model.decorator.js';
|
|
12
|
+
import { Validate } from '../../decorators/validate.decorator.js';
|
|
12
13
|
import { DiffUtility } from '../../functions/diff/diff.utility.js';
|
|
13
14
|
import { AModel } from '../model.abstract.js';
|
|
15
|
+
/**
|
|
16
|
+
* An Environment model is the logical sub-section of a Region which isolates one runtime environment from another.
|
|
17
|
+
* E.g. qa, staging, production, etc.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* const environment = new Environment('qa');
|
|
22
|
+
* ```
|
|
23
|
+
* @group Models
|
|
24
|
+
* @see Definition of [Default Models](/docs/fundamentals/models#default-models).
|
|
25
|
+
*/
|
|
14
26
|
let Environment = Environment_1 = class Environment extends AModel {
|
|
15
|
-
MODEL_NAME = 'environment';
|
|
16
|
-
environmentName;
|
|
17
|
-
environmentVariables = new Map();
|
|
18
27
|
constructor(environmentName) {
|
|
19
28
|
super();
|
|
29
|
+
this.MODEL_NAME = 'environment';
|
|
30
|
+
/**
|
|
31
|
+
* A set of environment variables to be passed to any {@link Execution} running in this environment.
|
|
32
|
+
*/
|
|
33
|
+
this.environmentVariables = new Map();
|
|
20
34
|
this.environmentName = environmentName;
|
|
21
35
|
}
|
|
22
36
|
async diffProperties(previous) {
|
|
@@ -33,7 +47,9 @@ let Environment = Environment_1 = class Environment extends AModel {
|
|
|
33
47
|
environmentVariables: Object.fromEntries(this.environmentVariables || new Map()),
|
|
34
48
|
};
|
|
35
49
|
}
|
|
36
|
-
static async unSynth(environment,
|
|
50
|
+
static async unSynth(environment,
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
52
|
+
deReferenceContext) {
|
|
37
53
|
const newEnvironment = new Environment_1(environment.environmentName);
|
|
38
54
|
for (const key in environment.environmentVariables) {
|
|
39
55
|
newEnvironment.environmentVariables.set(key, environment.environmentVariables[key]);
|
|
@@ -41,6 +57,19 @@ let Environment = Environment_1 = class Environment extends AModel {
|
|
|
41
57
|
return newEnvironment;
|
|
42
58
|
}
|
|
43
59
|
};
|
|
60
|
+
__decorate([
|
|
61
|
+
Validate({ options: { maxLength: 32, minLength: 2, regex: /^[a-zA-Z][\w-]*[a-zA-Z0-9]$/ } }),
|
|
62
|
+
__metadata("design:type", String)
|
|
63
|
+
], Environment.prototype, "environmentName", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
Validate({
|
|
66
|
+
destruct: (value) => {
|
|
67
|
+
return Array.from(value.keys());
|
|
68
|
+
},
|
|
69
|
+
options: { maxLength: 64, minLength: 2, regex: /^[a-zA-Z][\w-]*[a-zA-Z0-9]$/ },
|
|
70
|
+
}),
|
|
71
|
+
__metadata("design:type", Map)
|
|
72
|
+
], Environment.prototype, "environmentVariables", void 0);
|
|
44
73
|
Environment = Environment_1 = __decorate([
|
|
45
74
|
Model(),
|
|
46
75
|
__metadata("design:paramtypes", [String])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.model.js","sourceRoot":"","sources":["../../../src/models/environment/environment.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"environment.model.js","sourceRoot":"","sources":["../../../src/models/environment/environment.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C;;;;;;;;;;GAUG;AAEI,IAAM,WAAW,mBAAjB,MAAM,WAAY,SAAQ,MAAiC;IAqBhE,YAAY,eAAuB;QACjC,KAAK,EAAE,CAAC;QArBD,eAAU,GAAW,aAAa,CAAC;QAS5C;;WAEG;QAOM,yBAAoB,GAAwB,IAAI,GAAG,EAAE,CAAC;QAI7D,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAEQ,KAAK,CAAC,cAAc,CAAC,QAAqB;QACjD,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,sBAAsB,CAAC,CAAC;IACrE,CAAC;IAEQ,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvF,CAAC;IAEQ,KAAK;QACZ,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,GAAG,EAAE,CAAC;SACjF,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,WAAyB;IACzB,6DAA6D;IAC7D,kBAA8D;QAE9D,MAAM,cAAc,GAAG,IAAI,aAAW,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAEpE,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,oBAAoB,EAAE,CAAC;YACnD,cAAc,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;CACF,CAAA;AAhDU;IADR,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,CAAC;;oDAC5D;AAWxB;IANR,QAAQ,CAAC;QACR,QAAQ,EAAE,CAAC,KAA0B,EAAY,EAAE;YACjD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE;KAC/E,CAAC;8BAC6B,GAAG;yDAA6B;AAnBpD,WAAW;IADvB,KAAK,EAAE;;GACK,WAAW,CAwDvB"}
|