@quadnix/octo 0.1.0 → 0.2.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/README.md +108 -21
- package/dist/app.type.d.ts +141 -22
- package/dist/app.type.js.map +1 -1
- package/dist/decorators/model.decorator.d.ts +3 -5
- package/dist/decorators/model.decorator.js +1 -6
- package/dist/decorators/model.decorator.js.map +1 -1
- package/dist/decorators/on-event.decorator.d.ts +2 -2
- package/dist/decorators/on-event.decorator.js.map +1 -1
- package/dist/decorators/resource.decorator.d.ts +50 -1
- package/dist/decorators/resource.decorator.js +38 -1
- package/dist/decorators/resource.decorator.js.map +1 -1
- package/dist/errors/schema.error.d.ts +8 -1
- package/dist/errors/schema.error.js +5 -1
- package/dist/errors/schema.error.js.map +1 -1
- package/dist/errors/terraform.error.d.ts +4 -3
- package/dist/errors/terraform.error.js +4 -3
- package/dist/errors/terraform.error.js.map +1 -1
- package/dist/errors/transaction.error.d.ts +32 -2
- package/dist/errors/transaction.error.js +22 -0
- package/dist/errors/transaction.error.js.map +1 -1
- package/dist/events/action.event.d.ts +8 -2
- package/dist/events/action.event.js +2 -2
- package/dist/events/action.event.js.map +1 -1
- package/dist/events/command.event.d.ts +43 -0
- package/dist/events/command.event.js +33 -0
- package/dist/events/command.event.js.map +1 -0
- package/dist/events/event.model.d.ts +7 -5
- package/dist/events/event.model.js +5 -3
- package/dist/events/event.model.js.map +1 -1
- package/dist/events/hook/commit.hook.event.d.ts +1 -1
- package/dist/events/hook/commit.hook.event.js.map +1 -1
- package/dist/events/hook/hook.event.d.ts +1 -1
- package/dist/events/hook/hook.event.js.map +1 -1
- package/dist/events/hook/model.hook.event.d.ts +1 -1
- package/dist/events/hook/model.hook.event.js.map +1 -1
- package/dist/events/hook/resource.hook.event.d.ts +1 -1
- package/dist/events/hook/resource.hook.event.js.map +1 -1
- package/dist/events/index.d.ts +2 -0
- package/dist/events/index.js +2 -0
- package/dist/events/index.js.map +1 -1
- package/dist/events/mode-result.event.d.ts +1 -1
- package/dist/events/mode-result.event.js.map +1 -1
- package/dist/events/mode.event.d.ts +8 -4
- package/dist/events/mode.event.js.map +1 -1
- package/dist/events/module.event.d.ts +7 -3
- package/dist/events/module.event.js +3 -2
- package/dist/events/module.event.js.map +1 -1
- package/dist/events/registration.event.d.ts +1 -1
- package/dist/events/registration.event.js.map +1 -1
- package/dist/events/serialization.event.d.ts +1 -1
- package/dist/events/serialization.event.js.map +1 -1
- package/dist/events/state.event.d.ts +102 -0
- package/dist/events/state.event.js +69 -0
- package/dist/events/state.event.js.map +1 -0
- package/dist/events/terraform.event.d.ts +37 -1
- package/dist/events/terraform.event.js +24 -0
- package/dist/events/terraform.event.js.map +1 -1
- package/dist/events/transaction.event.d.ts +3 -3
- package/dist/events/transaction.event.js +1 -1
- package/dist/events/transaction.event.js.map +1 -1
- package/dist/functions/container/container.js +1 -1
- package/dist/functions/container/container.js.map +1 -1
- package/dist/functions/container/test-container.js +2 -2
- package/dist/functions/container/test-container.js.map +1 -1
- package/dist/functions/dependency/dependency.d.ts +9 -22
- package/dist/functions/dependency/dependency.js +5 -1
- package/dist/functions/dependency/dependency.js.map +1 -1
- package/dist/functions/diff/diff.d.ts +14 -7
- package/dist/functions/diff/diff.js.map +1 -1
- package/dist/functions/node/node-action.abstract.d.ts +8 -10
- package/dist/functions/node/node-action.abstract.js +10 -16
- package/dist/functions/node/node-action.abstract.js.map +1 -1
- package/dist/functions/node/node.abstract.js +21 -10
- package/dist/functions/node/node.abstract.js.map +1 -1
- package/dist/functions/node/node.interface.d.ts +2 -1
- package/dist/functions/schema/schema.js +1 -1
- package/dist/functions/schema/schema.js.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/index.type.d.ts +5 -0
- package/dist/index.type.js +2 -0
- package/dist/index.type.js.map +1 -0
- package/dist/main.d.ts +4 -3
- package/dist/main.js +27 -11
- package/dist/main.js.map +1 -1
- package/dist/models/account/account.model.d.ts +6 -0
- package/dist/models/account/account.model.js +16 -0
- package/dist/models/account/account.model.js.map +1 -1
- package/dist/models/app/app.model.d.ts +0 -10
- package/dist/models/app/app.model.js +0 -30
- package/dist/models/app/app.model.js.map +1 -1
- package/dist/models/deployment/deployment.schema.d.ts +4 -0
- package/dist/models/deployment/deployment.schema.js +4 -0
- package/dist/models/deployment/deployment.schema.js.map +1 -1
- package/dist/models/environment/environment.model.d.ts +2 -2
- package/dist/models/environment/environment.model.js +2 -2
- package/dist/models/execution/execution.model.d.ts +1 -1
- package/dist/models/execution/execution.model.js +1 -1
- package/dist/models/image/image.model.d.ts +4 -3
- package/dist/models/image/image.model.js +7 -6
- package/dist/models/image/image.model.js.map +1 -1
- package/dist/models/model.abstract.js +1 -1
- package/dist/models/model.abstract.js.map +1 -1
- package/dist/models/pipeline/pipeline.model.d.ts +1 -1
- package/dist/models/pipeline/pipeline.model.js +1 -1
- package/dist/models/server/server.model.d.ts +2 -2
- package/dist/models/server/server.model.js +2 -2
- package/dist/models/service/service.model.d.ts +28 -11
- package/dist/models/service/service.model.js +56 -16
- package/dist/models/service/service.model.js.map +1 -1
- package/dist/models/service/service.schema.d.ts +46 -2
- package/dist/models/service/service.schema.js +54 -2
- package/dist/models/service/service.schema.js.map +1 -1
- package/dist/modes/commit.mode.d.ts +2 -2
- package/dist/modes/commit.mode.js +2 -2
- package/dist/modes/generate.mode.d.ts +2 -1
- package/dist/modes/generate.mode.js +3 -2
- package/dist/modes/generate.mode.js.map +1 -1
- package/dist/modes/run-action.mode.d.ts +1 -1
- package/dist/modes/run-action.mode.js +1 -1
- package/dist/modes/validate.mode.d.ts +24 -0
- package/dist/modes/validate.mode.js +89 -11
- package/dist/modes/validate.mode.js.map +1 -1
- package/dist/modules/module.container.d.ts +7 -1
- package/dist/modules/module.container.js +41 -5
- package/dist/modules/module.container.js.map +1 -1
- package/dist/modules/test-module.container.js +35 -83
- package/dist/modules/test-module.container.js.map +1 -1
- package/dist/overlays/overlay.abstract.js +1 -1
- package/dist/overlays/overlay.abstract.js.map +1 -1
- package/dist/resources/resource-action.interface.d.ts +4 -2
- package/dist/resources/resource.abstract.d.ts +50 -8
- package/dist/resources/resource.abstract.js +63 -32
- package/dist/resources/resource.abstract.js.map +1 -1
- package/dist/resources/resource.interface.d.ts +0 -2
- package/dist/resources/resource.schema.d.ts +11 -1
- package/dist/resources/resource.schema.js +11 -1
- package/dist/resources/resource.schema.js.map +1 -1
- package/dist/services/event/event.service.d.ts +2 -2
- package/dist/services/event/event.service.js.map +1 -1
- package/dist/services/input/input.service.d.ts +30 -2
- package/dist/services/input/input.service.js +71 -4
- package/dist/services/input/input.service.js.map +1 -1
- package/dist/services/serialization/model/model-serialization.service.d.ts +4 -6
- package/dist/services/serialization/model/model-serialization.service.js +20 -17
- package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
- package/dist/services/serialization/resource/resource-serialization.service.d.ts +7 -6
- package/dist/services/serialization/resource/resource-serialization.service.js +25 -12
- package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
- package/dist/services/state-management/local.state-provider.d.ts +25 -9
- package/dist/services/state-management/local.state-provider.js +127 -21
- package/dist/services/state-management/local.state-provider.js.map +1 -1
- package/dist/services/state-management/remote.state-provider.d.ts +216 -0
- package/dist/services/state-management/remote.state-provider.js +645 -0
- package/dist/services/state-management/remote.state-provider.js.map +1 -0
- package/dist/services/state-management/state-management.service.d.ts +83 -40
- package/dist/services/state-management/state-management.service.js +130 -26
- package/dist/services/state-management/state-management.service.js.map +1 -1
- package/dist/services/state-management/state-provider.interface.d.ts +50 -9
- package/dist/services/state-management/state-provider.interface.js +14 -1
- package/dist/services/state-management/state-provider.interface.js.map +1 -1
- package/dist/services/state-management/terraform-state.service.d.ts +32 -9
- package/dist/services/state-management/terraform-state.service.js +64 -21
- package/dist/services/state-management/terraform-state.service.js.map +1 -1
- package/dist/services/state-management/test.state-provider.d.ts +11 -10
- package/dist/services/state-management/test.state-provider.js +35 -14
- package/dist/services/state-management/test.state-provider.js.map +1 -1
- package/dist/services/terraform/terraform.service.d.ts +57 -3
- package/dist/services/terraform/terraform.service.js +95 -8
- package/dist/services/terraform/terraform.service.js.map +1 -1
- package/dist/services/terraform/terraform.type.js +1 -1
- package/dist/services/terraform/terraform.type.js.map +1 -1
- package/dist/services/transaction/transaction.service.d.ts +29 -5
- package/dist/services/transaction/transaction.service.js +198 -34
- package/dist/services/transaction/transaction.service.js.map +1 -1
- package/dist/services/validation/validation.service.d.ts +2 -2
- package/dist/{functions → utilities}/diff/diff.utility.d.ts +2 -1
- package/dist/{functions → utilities}/diff/diff.utility.js +4 -3
- package/dist/utilities/diff/diff.utility.js.map +1 -0
- package/dist/utilities/file/file.utility.d.ts +6 -7
- package/dist/utilities/file/file.utility.js +13 -68
- package/dist/utilities/file/file.utility.js.map +1 -1
- package/dist/utilities/hcl/hcl.utility.d.ts +83 -16
- package/dist/utilities/hcl/hcl.utility.js +200 -27
- package/dist/utilities/hcl/hcl.utility.js.map +1 -1
- package/dist/utilities/http/http.utility.d.ts +57 -0
- package/dist/utilities/http/http.utility.js +98 -0
- package/dist/utilities/http/http.utility.js.map +1 -0
- package/dist/utilities/string/string.utility.d.ts +23 -3
- package/dist/utilities/string/string.utility.js +29 -3
- package/dist/utilities/string/string.utility.js.map +1 -1
- package/dist/utilities/terraform/terraform.utility.d.ts +70 -21
- package/dist/utilities/terraform/terraform.utility.js +255 -66
- package/dist/utilities/terraform/terraform.utility.js.map +1 -1
- package/dist/utilities/test-helpers/test-classes.d.ts +19 -0
- package/dist/utilities/test-helpers/test-classes.js +22 -0
- package/dist/utilities/test-helpers/test-classes.js.map +1 -1
- package/dist/utilities/test-helpers/test-models.d.ts +8 -1
- package/dist/utilities/test-helpers/test-models.js +25 -12
- package/dist/utilities/test-helpers/test-models.js.map +1 -1
- package/dist/utilities/test-helpers/test-modes.d.ts +1 -1
- package/dist/utilities/test-helpers/test-modes.js +36 -13
- package/dist/utilities/test-helpers/test-modes.js.map +1 -1
- package/dist/utilities/test-helpers/test-modules.d.ts +6 -0
- package/dist/utilities/test-helpers/test-modules.js +6 -0
- package/dist/utilities/test-helpers/test-modules.js.map +1 -1
- package/dist/utilities/test-helpers/test-overlays.d.ts +3 -1
- package/dist/utilities/test-helpers/test-overlays.js +8 -2
- package/dist/utilities/test-helpers/test-overlays.js.map +1 -1
- package/dist/utilities/test-helpers/test-resources.d.ts +4 -2
- package/dist/utilities/test-helpers/test-resources.js +22 -20
- package/dist/utilities/test-helpers/test-resources.js.map +1 -1
- package/package.json +7 -2
- package/dist/functions/diff/diff.utility.js.map +0 -1
- package/dist/services/state-management/file-app-lock.utility.d.ts +0 -43
- package/dist/services/state-management/file-app-lock.utility.js +0 -124
- package/dist/services/state-management/file-app-lock.utility.js.map +0 -1
- package/dist/services/state-management/local-encryption.state-provider.d.ts +0 -71
- package/dist/services/state-management/local-encryption.state-provider.js +0 -116
- package/dist/services/state-management/local-encryption.state-provider.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-serialization.service.js","sourceRoot":"","sources":["../../../../src/services/serialization/model/model-serialization.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAIL,QAAQ,GAIT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,0CAA0C,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"model-serialization.service.js","sourceRoot":"","sources":["../../../../src/services/serialization/model/model-serialization.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ResourceSerializedOutput } from '../../../app.type.js';
|
|
1
|
+
import type { ResourceSerializedOutput, UnknownResource } from '../../../app.type.js';
|
|
2
2
|
import { ResourceDataRepository } from '../../../resources/resource-data.repository.js';
|
|
3
3
|
import { InputService } from '../../input/input.service.js';
|
|
4
4
|
/**
|
|
@@ -7,8 +7,9 @@ import { InputService } from '../../input/input.service.js';
|
|
|
7
7
|
export declare class ResourceSerializationService {
|
|
8
8
|
private readonly resourceDataRepository;
|
|
9
9
|
private readonly inputService;
|
|
10
|
+
private actualResources;
|
|
10
11
|
private readonly classMapping;
|
|
11
|
-
private RESOURCE_DESERIALIZATION_TIMEOUT_IN_MS;
|
|
12
|
+
private readonly RESOURCE_DESERIALIZATION_TIMEOUT_IN_MS;
|
|
12
13
|
/**
|
|
13
14
|
* @internal
|
|
14
15
|
*/
|
|
@@ -17,6 +18,10 @@ export declare class ResourceSerializationService {
|
|
|
17
18
|
* @internal
|
|
18
19
|
*/
|
|
19
20
|
deserialize(actualSerializedOutput: ResourceSerializedOutput, oldSerializedOutput: ResourceSerializedOutput): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* The module that produced a committed resource, as the state it was loaded from records it.
|
|
23
|
+
*/
|
|
24
|
+
getActualResourceModuleId(resource: UnknownResource): string | undefined;
|
|
20
25
|
/**
|
|
21
26
|
* @internal
|
|
22
27
|
*/
|
|
@@ -29,10 +34,6 @@ export declare class ResourceSerializationService {
|
|
|
29
34
|
* @internal
|
|
30
35
|
*/
|
|
31
36
|
serializeNewResources(): Promise<ResourceSerializedOutput>;
|
|
32
|
-
/**
|
|
33
|
-
* @internal
|
|
34
|
-
*/
|
|
35
|
-
setResourceDeserializationTimeout(timeoutInMs: number): void;
|
|
36
37
|
/**
|
|
37
38
|
* @internal
|
|
38
39
|
*/
|
|
@@ -9,9 +9,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
import { EventSource } from '../../../decorators/event-source.decorator.js';
|
|
11
11
|
import { Factory } from '../../../decorators/factory.decorator.js';
|
|
12
|
+
import { ResourceError } from '../../../errors/index.js';
|
|
12
13
|
import { ActualResourceSerializedEvent, NewResourceSerializedEvent, ResourceDeserializedEvent, ResourceRegistrationEvent, } from '../../../events/index.js';
|
|
13
14
|
import { Container } from '../../../functions/container/container.js';
|
|
14
15
|
import { ResourceDataRepository, } from '../../../resources/resource-data.repository.js';
|
|
16
|
+
import { ATerraformResource } from '../../../resources/terraform-resource.abstract.js';
|
|
15
17
|
import { ObjectUtility } from '../../../utilities/object/object.utility.js';
|
|
16
18
|
import { InputService } from '../../input/input.service.js';
|
|
17
19
|
/**
|
|
@@ -24,6 +26,7 @@ export class ResourceSerializationService {
|
|
|
24
26
|
constructor(resourceDataRepository, inputService) {
|
|
25
27
|
this.resourceDataRepository = resourceDataRepository;
|
|
26
28
|
this.inputService = inputService;
|
|
29
|
+
this.actualResources = new Map(); // Resource context -> record in state.
|
|
27
30
|
this.classMapping = {};
|
|
28
31
|
this.RESOURCE_DESERIALIZATION_TIMEOUT_IN_MS = 3000;
|
|
29
32
|
}
|
|
@@ -32,12 +35,22 @@ export class ResourceSerializationService {
|
|
|
32
35
|
*/
|
|
33
36
|
async deserialize(actualSerializedOutput, oldSerializedOutput) {
|
|
34
37
|
const actualResources = await this._deserialize(JSON.parse(JSON.stringify(actualSerializedOutput)), false);
|
|
38
|
+
this.actualResources = new Map(Object.entries(actualSerializedOutput.resources).map(([context, { createdBy, models, moduleId }]) => [
|
|
39
|
+
context,
|
|
40
|
+
{ createdBy, models, moduleId },
|
|
41
|
+
]));
|
|
35
42
|
const oldResources = await this._deserialize(JSON.parse(JSON.stringify(oldSerializedOutput)), true);
|
|
36
43
|
// Refresh the resource data repository.
|
|
37
44
|
await Container.getInstance().get(ResourceDataRepository, {
|
|
38
45
|
args: [true, Object.values(actualResources), Object.values(oldResources), []],
|
|
39
46
|
});
|
|
40
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* The module that produced a committed resource, as the state it was loaded from records it.
|
|
50
|
+
*/
|
|
51
|
+
getActualResourceModuleId(resource) {
|
|
52
|
+
return this.actualResources.get(resource.getContext())?.moduleId;
|
|
53
|
+
}
|
|
41
54
|
/**
|
|
42
55
|
* @internal
|
|
43
56
|
*/
|
|
@@ -61,12 +74,6 @@ export class ResourceSerializationService {
|
|
|
61
74
|
const resources = this.resourceDataRepository.getNewResourcesByProperties();
|
|
62
75
|
return this.serialize(resources);
|
|
63
76
|
}
|
|
64
|
-
/**
|
|
65
|
-
* @internal
|
|
66
|
-
*/
|
|
67
|
-
setResourceDeserializationTimeout(timeoutInMs) {
|
|
68
|
-
this.RESOURCE_DESERIALIZATION_TIMEOUT_IN_MS = timeoutInMs;
|
|
69
|
-
}
|
|
70
77
|
/**
|
|
71
78
|
* @internal
|
|
72
79
|
*/
|
|
@@ -134,16 +141,22 @@ export class ResourceSerializationService {
|
|
|
134
141
|
.map((d) => d.synth())
|
|
135
142
|
.sort((a, b) => (a.from + a.to > b.from + b.to ? 1 : b.from + b.to > a.from + a.to ? -1 : 0));
|
|
136
143
|
dependencies.push(...resourceDependencies);
|
|
144
|
+
// Take the module, creator and models of a resource this command did not produce from the state it was loaded from.
|
|
145
|
+
const actualResource = this.actualResources.get(resource.getContext());
|
|
146
|
+
const moduleId = this.inputService.getModuleIdFromResource(resource) ?? actualResource?.moduleId;
|
|
147
|
+
if (moduleId === undefined) {
|
|
148
|
+
throw new ResourceError('Resource is not associated with any module!', resource);
|
|
149
|
+
}
|
|
150
|
+
const createdBy = this.inputService.getCreatorFromResource(resource) ?? actualResource?.createdBy;
|
|
151
|
+
const models = this.inputService.getModelsFromResource(resource);
|
|
137
152
|
serializedResources[resource.getContext()] = {
|
|
138
153
|
className: `${resource.constructor.NODE_PACKAGE}/${resource.constructor.name}`,
|
|
154
|
+
...(createdBy === undefined ? {} : { createdBy }),
|
|
155
|
+
kind: resource instanceof ATerraformResource ? 'terraform' : 'external',
|
|
156
|
+
models: models.length > 0 ? models : (actualResource?.models ?? []),
|
|
157
|
+
moduleId,
|
|
139
158
|
resource: resource.synth(),
|
|
140
159
|
};
|
|
141
|
-
// Record which module produced this resource. A resource not registered with the input service
|
|
142
|
-
// has no owning module — leave moduleId unset.
|
|
143
|
-
const moduleId = this.inputService.getModuleIdFromResource(resource);
|
|
144
|
-
if (moduleId !== undefined) {
|
|
145
|
-
serializedResources[resource.getContext()].moduleId = moduleId;
|
|
146
|
-
}
|
|
147
160
|
}
|
|
148
161
|
return { dependencies, resources: serializedResources };
|
|
149
162
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-serialization.service.js","sourceRoot":"","sources":["../../../../src/services/serialization/resource/resource-serialization.service.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,0CAA0C,CAAC;AACnE,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAEtE,OAAO,EACL,sBAAsB,GAEvB,MAAM,gDAAgD,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D;;GAEG;AACH,MAAM,OAAO,4BAA4B;
|
|
1
|
+
{"version":3,"file":"resource-serialization.service.js","sourceRoot":"","sources":["../../../../src/services/serialization/resource/resource-serialization.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,10 +21,6 @@ export declare class LocalStateProvider implements IStateProvider {
|
|
|
21
21
|
* @param localStateDirectoryPath The directory state files are written into.
|
|
22
22
|
*/
|
|
23
23
|
constructor(localStateDirectoryPath: string);
|
|
24
|
-
/**
|
|
25
|
-
* Deletes a state file. Deleting one that is not there is not an error.
|
|
26
|
-
*/
|
|
27
|
-
deleteState(stateFileName: string): Promise<void>;
|
|
28
24
|
/**
|
|
29
25
|
* The id of the lock currently held, or `undefined` when the app is unlocked.
|
|
30
26
|
*/
|
|
@@ -46,21 +42,41 @@ export declare class LocalStateProvider implements IStateProvider {
|
|
|
46
42
|
*/
|
|
47
43
|
listStates(prefix: string): Promise<string[]>;
|
|
48
44
|
/**
|
|
49
|
-
* Takes the app lock, writing its id into `local-state.lock` beside the
|
|
45
|
+
* Takes the app lock, writing its id and the time it was taken into `local-state.lock` beside the
|
|
46
|
+
* state files. With `lockId`, resumes the run already holding it. The lock never expires.
|
|
50
47
|
*
|
|
51
|
-
* @throws {@link
|
|
48
|
+
* @throws {@link AppLockError} When a lock is held, naming the id that holds it and how long it has
|
|
49
|
+
* been held. When `lockId` is given and is not the lock held.
|
|
52
50
|
*/
|
|
53
|
-
lockApp(): Promise<{
|
|
51
|
+
lockApp(lockId?: string): Promise<{
|
|
54
52
|
lockId: string;
|
|
55
53
|
}>;
|
|
56
54
|
/**
|
|
57
|
-
*
|
|
55
|
+
* Does nothing: the directory is the only copy of the state, so it is always the newest.
|
|
56
|
+
*/
|
|
57
|
+
refreshState(): Promise<{
|
|
58
|
+
replaced: boolean;
|
|
59
|
+
}>;
|
|
60
|
+
/**
|
|
61
|
+
* Writes state files, overwriting whatever was there, copying each one given a `filePath`, and
|
|
62
|
+
* deleting each one given no `data`. A name holding `/` is written into a directory beneath the state
|
|
63
|
+
* directory.
|
|
58
64
|
*/
|
|
59
|
-
|
|
65
|
+
saveStates(stateFiles: Parameters<IStateProvider['saveStates']>[0]): Promise<void>;
|
|
60
66
|
/**
|
|
61
67
|
* Releases the app lock by deleting the lock file.
|
|
62
68
|
*
|
|
63
69
|
* @throws {@link TransactionError} With the message `Invalid lock ID!` when a different lock is held.
|
|
64
70
|
*/
|
|
65
71
|
unlockApp(lockId: string): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* How long the lock has been held, as a short readable span. Undefined when the recorded time
|
|
74
|
+
* cannot be read as one, so a broken value is left out rather than reported as a negative age.
|
|
75
|
+
*/
|
|
76
|
+
private describeAge;
|
|
77
|
+
/**
|
|
78
|
+
* The lock file's record, or undefined when no lock is held. A file holding an id and nothing else
|
|
79
|
+
* is a lock taken before the record carried a time, and reads as that id with no age.
|
|
80
|
+
*/
|
|
81
|
+
private readLock;
|
|
66
82
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
2
|
+
import { copyFile, readFile, readdir, rm, writeFile } from 'fs/promises';
|
|
3
|
+
import { dirname, join, resolve } from 'path';
|
|
4
|
+
import { AppLockError, TransactionError } from '../../errors/index.js';
|
|
4
5
|
import { FileUtility } from '../../utilities/file/file.utility.js';
|
|
5
|
-
import { FileAppLockUtility } from './file-app-lock.utility.js';
|
|
6
6
|
/**
|
|
7
7
|
* Keeps state in a directory on the local filesystem.
|
|
8
8
|
*
|
|
@@ -26,17 +26,11 @@ export class LocalStateProvider {
|
|
|
26
26
|
this.localStateDirectoryPath = resolve(localStateDirectoryPath);
|
|
27
27
|
this.lockFilePath = join(this.localStateDirectoryPath, 'local-state.lock');
|
|
28
28
|
}
|
|
29
|
-
/**
|
|
30
|
-
* Deletes a state file. Deleting one that is not there is not an error.
|
|
31
|
-
*/
|
|
32
|
-
async deleteState(stateFileName) {
|
|
33
|
-
await rm(join(this.localStateDirectoryPath, stateFileName), { force: true });
|
|
34
|
-
}
|
|
35
29
|
/**
|
|
36
30
|
* The id of the lock currently held, or `undefined` when the app is unlocked.
|
|
37
31
|
*/
|
|
38
32
|
async getAppLock() {
|
|
39
|
-
return
|
|
33
|
+
return (await this.readLock())?.lockId;
|
|
40
34
|
}
|
|
41
35
|
/**
|
|
42
36
|
* Reads a state file.
|
|
@@ -60,7 +54,14 @@ export class LocalStateProvider {
|
|
|
60
54
|
* @throws {@link TransactionError} With the message `Invalid lock ID!` when a different lock is held.
|
|
61
55
|
*/
|
|
62
56
|
async isAppLocked(lockId) {
|
|
63
|
-
|
|
57
|
+
const existingLockId = await this.getAppLock();
|
|
58
|
+
if (!existingLockId) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
if (existingLockId !== lockId) {
|
|
62
|
+
throw new TransactionError('Invalid lock ID!');
|
|
63
|
+
}
|
|
64
|
+
return true;
|
|
64
65
|
}
|
|
65
66
|
/**
|
|
66
67
|
* The names of the state files whose name starts with `prefix`.
|
|
@@ -79,20 +80,66 @@ export class LocalStateProvider {
|
|
|
79
80
|
return entries.filter((entry) => entry.startsWith(prefix));
|
|
80
81
|
}
|
|
81
82
|
/**
|
|
82
|
-
* Takes the app lock, writing its id into `local-state.lock` beside the
|
|
83
|
+
* Takes the app lock, writing its id and the time it was taken into `local-state.lock` beside the
|
|
84
|
+
* state files. With `lockId`, resumes the run already holding it. The lock never expires.
|
|
83
85
|
*
|
|
84
|
-
* @throws {@link
|
|
86
|
+
* @throws {@link AppLockError} When a lock is held, naming the id that holds it and how long it has
|
|
87
|
+
* been held. When `lockId` is given and is not the lock held.
|
|
85
88
|
*/
|
|
86
|
-
async lockApp() {
|
|
89
|
+
async lockApp(lockId) {
|
|
87
90
|
await FileUtility.ensureDirectory(this.localStateDirectoryPath);
|
|
88
|
-
|
|
91
|
+
// Resume the run holding the lock, which on one machine holds nothing more to read.
|
|
92
|
+
if (lockId) {
|
|
93
|
+
if ((await this.getAppLock()) !== lockId) {
|
|
94
|
+
throw new AppLockError(`App is not locked with lock ID "${lockId}"!`, { reason: 'not-held' });
|
|
95
|
+
}
|
|
96
|
+
return { lockId };
|
|
97
|
+
}
|
|
98
|
+
// Take the lock with an exclusive create, so of two runs racing for it exactly one wins.
|
|
99
|
+
const newLockId = randomUUID();
|
|
100
|
+
const record = { lockId: newLockId, startedAt: Date.now() };
|
|
101
|
+
try {
|
|
102
|
+
await writeFile(this.lockFilePath, JSON.stringify(record), { flag: 'wx' });
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (error.code === 'EEXIST') {
|
|
106
|
+
const holder = await this.readLock();
|
|
107
|
+
const heldFor = holder?.startedAt === undefined ? undefined : this.describeAge(holder.startedAt);
|
|
108
|
+
throw new AppLockError(`App already locked with lock ID "${holder?.lockId}"${heldFor ? `, held for ${heldFor}` : ''}!`, {
|
|
109
|
+
holder: holder ? { lockId: holder.lockId, takenAt: holder.startedAt } : undefined,
|
|
110
|
+
reason: 'held',
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
throw error;
|
|
114
|
+
}
|
|
115
|
+
return { lockId: newLockId };
|
|
89
116
|
}
|
|
90
117
|
/**
|
|
91
|
-
*
|
|
118
|
+
* Does nothing: the directory is the only copy of the state, so it is always the newest.
|
|
92
119
|
*/
|
|
93
|
-
async
|
|
94
|
-
|
|
95
|
-
|
|
120
|
+
async refreshState() {
|
|
121
|
+
return { replaced: false };
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Writes state files, overwriting whatever was there, copying each one given a `filePath`, and
|
|
125
|
+
* deleting each one given no `data`. A name holding `/` is written into a directory beneath the state
|
|
126
|
+
* directory.
|
|
127
|
+
*/
|
|
128
|
+
async saveStates(stateFiles) {
|
|
129
|
+
for (const stateFile of stateFiles) {
|
|
130
|
+
const stateFilePath = join(this.localStateDirectoryPath, stateFile.stateFileName);
|
|
131
|
+
if ('filePath' in stateFile) {
|
|
132
|
+
await FileUtility.ensureDirectory(dirname(stateFilePath));
|
|
133
|
+
await copyFile(stateFile.filePath, stateFilePath);
|
|
134
|
+
}
|
|
135
|
+
else if (stateFile.data === undefined) {
|
|
136
|
+
await rm(stateFilePath, { force: true });
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
await FileUtility.ensureDirectory(dirname(stateFilePath));
|
|
140
|
+
await writeFile(stateFilePath, stateFile.data);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
96
143
|
}
|
|
97
144
|
/**
|
|
98
145
|
* Releases the app lock by deleting the lock file.
|
|
@@ -100,7 +147,66 @@ export class LocalStateProvider {
|
|
|
100
147
|
* @throws {@link TransactionError} With the message `Invalid lock ID!` when a different lock is held.
|
|
101
148
|
*/
|
|
102
149
|
async unlockApp(lockId) {
|
|
103
|
-
|
|
150
|
+
const existingLockId = await this.getAppLock();
|
|
151
|
+
if (!existingLockId) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
if (existingLockId !== lockId) {
|
|
155
|
+
throw new TransactionError('Invalid lock ID!');
|
|
156
|
+
}
|
|
157
|
+
await rm(this.lockFilePath, { force: true });
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* How long the lock has been held, as a short readable span. Undefined when the recorded time
|
|
161
|
+
* cannot be read as one, so a broken value is left out rather than reported as a negative age.
|
|
162
|
+
*/
|
|
163
|
+
describeAge(startedAt) {
|
|
164
|
+
const heldForMs = Date.now() - startedAt;
|
|
165
|
+
if (!Number.isFinite(heldForMs) || heldForMs < 0) {
|
|
166
|
+
return undefined;
|
|
167
|
+
}
|
|
168
|
+
const seconds = Math.floor(heldForMs / 1000);
|
|
169
|
+
if (seconds < 60) {
|
|
170
|
+
return `${seconds}s`;
|
|
171
|
+
}
|
|
172
|
+
const minutes = Math.floor(seconds / 60);
|
|
173
|
+
if (minutes < 60) {
|
|
174
|
+
return `${minutes}m`;
|
|
175
|
+
}
|
|
176
|
+
const hours = Math.floor(minutes / 60);
|
|
177
|
+
if (hours < 24) {
|
|
178
|
+
return `${hours}h ${minutes % 60}m`;
|
|
179
|
+
}
|
|
180
|
+
return `${Math.floor(hours / 24)}d ${hours % 24}h`;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* The lock file's record, or undefined when no lock is held. A file holding an id and nothing else
|
|
184
|
+
* is a lock taken before the record carried a time, and reads as that id with no age.
|
|
185
|
+
*/
|
|
186
|
+
async readLock() {
|
|
187
|
+
let contents;
|
|
188
|
+
try {
|
|
189
|
+
contents = (await readFile(this.lockFilePath, 'utf-8')).trim();
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
if (error.code === 'ENOENT') {
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
195
|
+
throw error;
|
|
196
|
+
}
|
|
197
|
+
if (!contents) {
|
|
198
|
+
return undefined;
|
|
199
|
+
}
|
|
200
|
+
if (!contents.startsWith('{')) {
|
|
201
|
+
return { lockId: contents };
|
|
202
|
+
}
|
|
203
|
+
try {
|
|
204
|
+
const record = JSON.parse(contents);
|
|
205
|
+
return typeof record.lockId === 'string' ? record : { lockId: contents };
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
return { lockId: contents };
|
|
209
|
+
}
|
|
104
210
|
}
|
|
105
211
|
}
|
|
106
212
|
//# sourceMappingURL=local.state-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.state-provider.js","sourceRoot":"","sources":["../../../src/services/state-management/local.state-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"local.state-provider.js","sourceRoot":"","sources":["../../../src/services/state-management/local.state-provider.ts"],"names":[],"mappings":"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"}
|