@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.
Files changed (221) hide show
  1. package/README.md +108 -21
  2. package/dist/app.type.d.ts +141 -22
  3. package/dist/app.type.js.map +1 -1
  4. package/dist/decorators/model.decorator.d.ts +3 -5
  5. package/dist/decorators/model.decorator.js +1 -6
  6. package/dist/decorators/model.decorator.js.map +1 -1
  7. package/dist/decorators/on-event.decorator.d.ts +2 -2
  8. package/dist/decorators/on-event.decorator.js.map +1 -1
  9. package/dist/decorators/resource.decorator.d.ts +50 -1
  10. package/dist/decorators/resource.decorator.js +38 -1
  11. package/dist/decorators/resource.decorator.js.map +1 -1
  12. package/dist/errors/schema.error.d.ts +8 -1
  13. package/dist/errors/schema.error.js +5 -1
  14. package/dist/errors/schema.error.js.map +1 -1
  15. package/dist/errors/terraform.error.d.ts +4 -3
  16. package/dist/errors/terraform.error.js +4 -3
  17. package/dist/errors/terraform.error.js.map +1 -1
  18. package/dist/errors/transaction.error.d.ts +32 -2
  19. package/dist/errors/transaction.error.js +22 -0
  20. package/dist/errors/transaction.error.js.map +1 -1
  21. package/dist/events/action.event.d.ts +8 -2
  22. package/dist/events/action.event.js +2 -2
  23. package/dist/events/action.event.js.map +1 -1
  24. package/dist/events/command.event.d.ts +43 -0
  25. package/dist/events/command.event.js +33 -0
  26. package/dist/events/command.event.js.map +1 -0
  27. package/dist/events/event.model.d.ts +7 -5
  28. package/dist/events/event.model.js +5 -3
  29. package/dist/events/event.model.js.map +1 -1
  30. package/dist/events/hook/commit.hook.event.d.ts +1 -1
  31. package/dist/events/hook/commit.hook.event.js.map +1 -1
  32. package/dist/events/hook/hook.event.d.ts +1 -1
  33. package/dist/events/hook/hook.event.js.map +1 -1
  34. package/dist/events/hook/model.hook.event.d.ts +1 -1
  35. package/dist/events/hook/model.hook.event.js.map +1 -1
  36. package/dist/events/hook/resource.hook.event.d.ts +1 -1
  37. package/dist/events/hook/resource.hook.event.js.map +1 -1
  38. package/dist/events/index.d.ts +2 -0
  39. package/dist/events/index.js +2 -0
  40. package/dist/events/index.js.map +1 -1
  41. package/dist/events/mode-result.event.d.ts +1 -1
  42. package/dist/events/mode-result.event.js.map +1 -1
  43. package/dist/events/mode.event.d.ts +8 -4
  44. package/dist/events/mode.event.js.map +1 -1
  45. package/dist/events/module.event.d.ts +7 -3
  46. package/dist/events/module.event.js +3 -2
  47. package/dist/events/module.event.js.map +1 -1
  48. package/dist/events/registration.event.d.ts +1 -1
  49. package/dist/events/registration.event.js.map +1 -1
  50. package/dist/events/serialization.event.d.ts +1 -1
  51. package/dist/events/serialization.event.js.map +1 -1
  52. package/dist/events/state.event.d.ts +102 -0
  53. package/dist/events/state.event.js +69 -0
  54. package/dist/events/state.event.js.map +1 -0
  55. package/dist/events/terraform.event.d.ts +37 -1
  56. package/dist/events/terraform.event.js +24 -0
  57. package/dist/events/terraform.event.js.map +1 -1
  58. package/dist/events/transaction.event.d.ts +3 -3
  59. package/dist/events/transaction.event.js +1 -1
  60. package/dist/events/transaction.event.js.map +1 -1
  61. package/dist/functions/container/container.js +1 -1
  62. package/dist/functions/container/container.js.map +1 -1
  63. package/dist/functions/container/test-container.js +2 -2
  64. package/dist/functions/container/test-container.js.map +1 -1
  65. package/dist/functions/dependency/dependency.d.ts +9 -22
  66. package/dist/functions/dependency/dependency.js +5 -1
  67. package/dist/functions/dependency/dependency.js.map +1 -1
  68. package/dist/functions/diff/diff.d.ts +14 -7
  69. package/dist/functions/diff/diff.js.map +1 -1
  70. package/dist/functions/node/node-action.abstract.d.ts +8 -10
  71. package/dist/functions/node/node-action.abstract.js +10 -16
  72. package/dist/functions/node/node-action.abstract.js.map +1 -1
  73. package/dist/functions/node/node.abstract.js +21 -10
  74. package/dist/functions/node/node.abstract.js.map +1 -1
  75. package/dist/functions/node/node.interface.d.ts +2 -1
  76. package/dist/functions/schema/schema.js +1 -1
  77. package/dist/functions/schema/schema.js.map +1 -1
  78. package/dist/index.d.ts +8 -6
  79. package/dist/index.js +6 -4
  80. package/dist/index.js.map +1 -1
  81. package/dist/index.type.d.ts +5 -0
  82. package/dist/index.type.js +2 -0
  83. package/dist/index.type.js.map +1 -0
  84. package/dist/main.d.ts +4 -3
  85. package/dist/main.js +27 -11
  86. package/dist/main.js.map +1 -1
  87. package/dist/models/account/account.model.d.ts +6 -0
  88. package/dist/models/account/account.model.js +16 -0
  89. package/dist/models/account/account.model.js.map +1 -1
  90. package/dist/models/app/app.model.d.ts +0 -10
  91. package/dist/models/app/app.model.js +0 -30
  92. package/dist/models/app/app.model.js.map +1 -1
  93. package/dist/models/deployment/deployment.schema.d.ts +4 -0
  94. package/dist/models/deployment/deployment.schema.js +4 -0
  95. package/dist/models/deployment/deployment.schema.js.map +1 -1
  96. package/dist/models/environment/environment.model.d.ts +2 -2
  97. package/dist/models/environment/environment.model.js +2 -2
  98. package/dist/models/execution/execution.model.d.ts +1 -1
  99. package/dist/models/execution/execution.model.js +1 -1
  100. package/dist/models/image/image.model.d.ts +4 -3
  101. package/dist/models/image/image.model.js +7 -6
  102. package/dist/models/image/image.model.js.map +1 -1
  103. package/dist/models/model.abstract.js +1 -1
  104. package/dist/models/model.abstract.js.map +1 -1
  105. package/dist/models/pipeline/pipeline.model.d.ts +1 -1
  106. package/dist/models/pipeline/pipeline.model.js +1 -1
  107. package/dist/models/server/server.model.d.ts +2 -2
  108. package/dist/models/server/server.model.js +2 -2
  109. package/dist/models/service/service.model.d.ts +28 -11
  110. package/dist/models/service/service.model.js +56 -16
  111. package/dist/models/service/service.model.js.map +1 -1
  112. package/dist/models/service/service.schema.d.ts +46 -2
  113. package/dist/models/service/service.schema.js +54 -2
  114. package/dist/models/service/service.schema.js.map +1 -1
  115. package/dist/modes/commit.mode.d.ts +2 -2
  116. package/dist/modes/commit.mode.js +2 -2
  117. package/dist/modes/generate.mode.d.ts +2 -1
  118. package/dist/modes/generate.mode.js +3 -2
  119. package/dist/modes/generate.mode.js.map +1 -1
  120. package/dist/modes/run-action.mode.d.ts +1 -1
  121. package/dist/modes/run-action.mode.js +1 -1
  122. package/dist/modes/validate.mode.d.ts +24 -0
  123. package/dist/modes/validate.mode.js +89 -11
  124. package/dist/modes/validate.mode.js.map +1 -1
  125. package/dist/modules/module.container.d.ts +7 -1
  126. package/dist/modules/module.container.js +41 -5
  127. package/dist/modules/module.container.js.map +1 -1
  128. package/dist/modules/test-module.container.js +35 -83
  129. package/dist/modules/test-module.container.js.map +1 -1
  130. package/dist/overlays/overlay.abstract.js +1 -1
  131. package/dist/overlays/overlay.abstract.js.map +1 -1
  132. package/dist/resources/resource-action.interface.d.ts +4 -2
  133. package/dist/resources/resource.abstract.d.ts +50 -8
  134. package/dist/resources/resource.abstract.js +63 -32
  135. package/dist/resources/resource.abstract.js.map +1 -1
  136. package/dist/resources/resource.interface.d.ts +0 -2
  137. package/dist/resources/resource.schema.d.ts +11 -1
  138. package/dist/resources/resource.schema.js +11 -1
  139. package/dist/resources/resource.schema.js.map +1 -1
  140. package/dist/services/event/event.service.d.ts +2 -2
  141. package/dist/services/event/event.service.js.map +1 -1
  142. package/dist/services/input/input.service.d.ts +30 -2
  143. package/dist/services/input/input.service.js +71 -4
  144. package/dist/services/input/input.service.js.map +1 -1
  145. package/dist/services/serialization/model/model-serialization.service.d.ts +4 -6
  146. package/dist/services/serialization/model/model-serialization.service.js +20 -17
  147. package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
  148. package/dist/services/serialization/resource/resource-serialization.service.d.ts +7 -6
  149. package/dist/services/serialization/resource/resource-serialization.service.js +25 -12
  150. package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
  151. package/dist/services/state-management/local.state-provider.d.ts +25 -9
  152. package/dist/services/state-management/local.state-provider.js +127 -21
  153. package/dist/services/state-management/local.state-provider.js.map +1 -1
  154. package/dist/services/state-management/remote.state-provider.d.ts +216 -0
  155. package/dist/services/state-management/remote.state-provider.js +645 -0
  156. package/dist/services/state-management/remote.state-provider.js.map +1 -0
  157. package/dist/services/state-management/state-management.service.d.ts +83 -40
  158. package/dist/services/state-management/state-management.service.js +130 -26
  159. package/dist/services/state-management/state-management.service.js.map +1 -1
  160. package/dist/services/state-management/state-provider.interface.d.ts +50 -9
  161. package/dist/services/state-management/state-provider.interface.js +14 -1
  162. package/dist/services/state-management/state-provider.interface.js.map +1 -1
  163. package/dist/services/state-management/terraform-state.service.d.ts +32 -9
  164. package/dist/services/state-management/terraform-state.service.js +64 -21
  165. package/dist/services/state-management/terraform-state.service.js.map +1 -1
  166. package/dist/services/state-management/test.state-provider.d.ts +11 -10
  167. package/dist/services/state-management/test.state-provider.js +35 -14
  168. package/dist/services/state-management/test.state-provider.js.map +1 -1
  169. package/dist/services/terraform/terraform.service.d.ts +57 -3
  170. package/dist/services/terraform/terraform.service.js +95 -8
  171. package/dist/services/terraform/terraform.service.js.map +1 -1
  172. package/dist/services/terraform/terraform.type.js +1 -1
  173. package/dist/services/terraform/terraform.type.js.map +1 -1
  174. package/dist/services/transaction/transaction.service.d.ts +29 -5
  175. package/dist/services/transaction/transaction.service.js +198 -34
  176. package/dist/services/transaction/transaction.service.js.map +1 -1
  177. package/dist/services/validation/validation.service.d.ts +2 -2
  178. package/dist/{functions → utilities}/diff/diff.utility.d.ts +2 -1
  179. package/dist/{functions → utilities}/diff/diff.utility.js +4 -3
  180. package/dist/utilities/diff/diff.utility.js.map +1 -0
  181. package/dist/utilities/file/file.utility.d.ts +6 -7
  182. package/dist/utilities/file/file.utility.js +13 -68
  183. package/dist/utilities/file/file.utility.js.map +1 -1
  184. package/dist/utilities/hcl/hcl.utility.d.ts +83 -16
  185. package/dist/utilities/hcl/hcl.utility.js +200 -27
  186. package/dist/utilities/hcl/hcl.utility.js.map +1 -1
  187. package/dist/utilities/http/http.utility.d.ts +57 -0
  188. package/dist/utilities/http/http.utility.js +98 -0
  189. package/dist/utilities/http/http.utility.js.map +1 -0
  190. package/dist/utilities/string/string.utility.d.ts +23 -3
  191. package/dist/utilities/string/string.utility.js +29 -3
  192. package/dist/utilities/string/string.utility.js.map +1 -1
  193. package/dist/utilities/terraform/terraform.utility.d.ts +70 -21
  194. package/dist/utilities/terraform/terraform.utility.js +255 -66
  195. package/dist/utilities/terraform/terraform.utility.js.map +1 -1
  196. package/dist/utilities/test-helpers/test-classes.d.ts +19 -0
  197. package/dist/utilities/test-helpers/test-classes.js +22 -0
  198. package/dist/utilities/test-helpers/test-classes.js.map +1 -1
  199. package/dist/utilities/test-helpers/test-models.d.ts +8 -1
  200. package/dist/utilities/test-helpers/test-models.js +25 -12
  201. package/dist/utilities/test-helpers/test-models.js.map +1 -1
  202. package/dist/utilities/test-helpers/test-modes.d.ts +1 -1
  203. package/dist/utilities/test-helpers/test-modes.js +36 -13
  204. package/dist/utilities/test-helpers/test-modes.js.map +1 -1
  205. package/dist/utilities/test-helpers/test-modules.d.ts +6 -0
  206. package/dist/utilities/test-helpers/test-modules.js +6 -0
  207. package/dist/utilities/test-helpers/test-modules.js.map +1 -1
  208. package/dist/utilities/test-helpers/test-overlays.d.ts +3 -1
  209. package/dist/utilities/test-helpers/test-overlays.js +8 -2
  210. package/dist/utilities/test-helpers/test-overlays.js.map +1 -1
  211. package/dist/utilities/test-helpers/test-resources.d.ts +4 -2
  212. package/dist/utilities/test-helpers/test-resources.js +22 -20
  213. package/dist/utilities/test-helpers/test-resources.js.map +1 -1
  214. package/package.json +7 -2
  215. package/dist/functions/diff/diff.utility.js.map +0 -1
  216. package/dist/services/state-management/file-app-lock.utility.d.ts +0 -43
  217. package/dist/services/state-management/file-app-lock.utility.js +0 -124
  218. package/dist/services/state-management/file-app-lock.utility.js.map +0 -1
  219. package/dist/services/state-management/local-encryption.state-provider.d.ts +0 -71
  220. package/dist/services/state-management/local-encryption.state-provider.js +0 -116
  221. package/dist/services/state-management/local-encryption.state-provider.js.map +0 -1
@@ -3,7 +3,7 @@ import { tmpdir } from 'node:os';
3
3
  import { join } from 'node:path';
4
4
  import {} from '../functions/container/container.js';
5
5
  import { DiffAction } from '../functions/diff/diff.js';
6
- import { DiffUtility } from '../functions/diff/diff.utility.js';
6
+ import { ANodeAction } from '../functions/node/node-action.abstract.js';
7
7
  import { Octo } from '../main.js';
8
8
  import { AModel } from '../models/model.abstract.js';
9
9
  import { applyModelTransaction } from '../modes/apply-transaction.js';
@@ -12,12 +12,12 @@ import { AOverlay } from '../overlays/overlay.abstract.js';
12
12
  import { ResourceDataRepository } from '../resources/resource-data.repository.js';
13
13
  import { AResource } from '../resources/resource.abstract.js';
14
14
  import { InputService } from '../services/input/input.service.js';
15
- import { LocalEncryptionStateProvider } from '../services/state-management/local-encryption.state-provider.js';
16
15
  import { LocalStateProvider } from '../services/state-management/local.state-provider.js';
17
16
  import { StateManagementService } from '../services/state-management/state-management.service.js';
18
17
  import { TestStateProvider } from '../services/state-management/test.state-provider.js';
19
18
  import { TerraformService } from '../services/terraform/terraform.service.js';
20
19
  import { TransactionService } from '../services/transaction/transaction.service.js';
20
+ import { DiffUtility } from '../utilities/diff/diff.utility.js';
21
21
  import { HclUtility } from '../utilities/hcl/hcl.utility.js';
22
22
  import { TerraformUtility } from '../utilities/terraform/terraform.utility.js';
23
23
  import { TestAnchor } from '../utilities/test-helpers/test-classes.js';
@@ -65,7 +65,13 @@ class UniversalModelAction {
65
65
  /**
66
66
  * @internal
67
67
  */
68
- class UniversalResourceAction {
68
+ class UniversalResourceAction extends ANodeAction {
69
+ /**
70
+ * @internal
71
+ */
72
+ constructor() {
73
+ super();
74
+ }
69
75
  /**
70
76
  * @internal
71
77
  */
@@ -111,19 +117,12 @@ export class TestModuleContainer {
111
117
  * Use it to stand up the prerequisites a module under test expects to find.
112
118
  */
113
119
  async createResources(moduleId, args, options) {
114
- const [inputService, moduleContainer] = await Promise.all([
115
- this.container.get(InputService),
116
- this.container.get(ModuleContainer),
117
- ]);
120
+ const moduleContainer = await this.container.get(ModuleContainer);
118
121
  // Register new moduleId as instance of the universal module.
119
122
  moduleContainer.load(UniversalTestModule, moduleId, {});
120
123
  // Immediately unload the universal module to ensure it does not run in apply().
121
124
  moduleContainer.unload(UniversalTestModule);
122
- const result = await createResources(args, options);
123
- for (const resource of Object.values(result)) {
124
- inputService.registerResource(moduleId, resource);
125
- }
126
- return result;
125
+ return createResources(args, { ...options, moduleId });
127
126
  }
128
127
  /**
129
128
  * To build a throwaway anchor for a test double, without declaring an anchor class.
@@ -177,11 +176,7 @@ export class TestModuleContainer {
177
176
  * An overlay given no actions gets a no-op one.
178
177
  */
179
178
  async createTestOverlays(moduleId, args) {
180
- const container = this.container;
181
- const [inputService, moduleContainer] = await Promise.all([
182
- container.get(InputService),
183
- container.get(ModuleContainer),
184
- ]);
179
+ const moduleContainer = await this.container.get(ModuleContainer);
185
180
  // Register new moduleId as instance of the universal module.
186
181
  moduleContainer.load(UniversalTestModule, moduleId, {});
187
182
  // Immediately unload the universal module to ensure it does not run in apply().
@@ -198,22 +193,14 @@ export class TestModuleContainer {
198
193
  arg.overlayActions = [universalAction];
199
194
  }
200
195
  }
201
- const result = await createTestOverlays(args);
202
- for (const overlay of Object.values(result)) {
203
- inputService.registerOverlay(moduleId, overlay);
204
- }
205
- return result;
196
+ return createTestOverlays(args, { moduleId });
206
197
  }
207
198
  /**
208
199
  * To seed resources, as though the given module had produced them.
209
200
  * A resource given no actions gets a no-op one, unless terraform owns it.
210
201
  */
211
202
  async createTestResources(moduleId, args, options) {
212
- const container = this.container;
213
- const [inputService, moduleContainer] = await Promise.all([
214
- container.get(InputService),
215
- container.get(ModuleContainer),
216
- ]);
203
+ const moduleContainer = await this.container.get(ModuleContainer);
217
204
  // Register new moduleId as instance of the universal module.
218
205
  moduleContainer.load(UniversalTestModule, moduleId, {});
219
206
  // Immediately unload the universal module to ensure it does not run in apply().
@@ -231,11 +218,7 @@ export class TestModuleContainer {
231
218
  arg.resourceActions = [universalAction];
232
219
  }
233
220
  }
234
- const result = await createTestResources(args, options);
235
- for (const resource of Object.values(result)) {
236
- inputService.registerResource(moduleId, resource);
237
- }
238
- return result;
221
+ return createTestResources(args, { ...options, moduleId });
239
222
  }
240
223
  /**
241
224
  * Reduces a transaction's diffs, model or resource, to a stable digest you can snapshot:
@@ -262,7 +245,6 @@ export class TestModuleContainer {
262
245
  }
263
246
  else if (d.action === DiffAction.VALIDATE) {
264
247
  // Not a change: validation runs as its own transaction, one diff per surviving resource.
265
- continue;
266
248
  }
267
249
  else {
268
250
  changes.push(`* ${d.node.getContext()}`);
@@ -279,11 +261,8 @@ export class TestModuleContainer {
279
261
  * @param excludeInContainer Factories to unregister at boot. See {@link Octo.initialize}.
280
262
  */
281
263
  async initialize(stateProvider, initializeInContainer, excludeInContainer) {
282
- if (stateProvider &&
283
- !(stateProvider instanceof LocalEncryptionStateProvider ||
284
- stateProvider instanceof LocalStateProvider ||
285
- stateProvider instanceof TestStateProvider)) {
286
- throw new Error('TestModuleContainer is only meant to work with LocalEncryption, Local, or Test state provider!');
264
+ if (stateProvider && !(stateProvider instanceof LocalStateProvider || stateProvider instanceof TestStateProvider)) {
265
+ throw new Error('TestModuleContainer is only meant to work with Local or Test state provider!');
287
266
  }
288
267
  this.stateProvider = stateProvider ?? new TestStateProvider();
289
268
  await this.octo.initialize(this.stateProvider, initializeInContainer, excludeInContainer);
@@ -411,7 +390,9 @@ export class TestModuleContainer {
411
390
  }
412
391
  // In production octo runs generate/validate/commit as three separate processes, each of which
413
392
  // derives the resource graph once from intent. runModules drives all three in one process, so it
414
- // builds the model transaction once and hands the same result to each mode.
393
+ // builds the model transaction once and hands the same result to each mode. The previous run's
394
+ // sweep is cleared first, as a new process would start without it.
395
+ terraformService.resetTransactionState();
415
396
  const transaction = await applyModelTransaction(app);
416
397
  // Generate.
417
398
  const dir = outputDir ?? (await mkdtemp(join(tmpdir(), 'octo-hcl-')));
@@ -501,54 +482,25 @@ export class TestModuleContainer {
501
482
  // reset(), which wipes the model attribution renderAllModules() depends on.
502
483
  this.previousHcl = HclUtility.serialize(terraformService.renderAllModules());
503
484
  const inputService = await this.container.get(InputService);
504
- for (const moduleId of filterByModuleIds) {
505
- response.modelDiffs = response.modelDiffs
506
- .map((i) => i.filter((j) => {
507
- if (j.node instanceof AModel && !(j.node instanceof AOverlay)) {
508
- return inputService.getModuleIdFromModel(j.node) === moduleId;
485
+ if (filterByModuleIds.length > 0) {
486
+ const isFromModule = (node) => {
487
+ if (node instanceof AResource) {
488
+ return filterByModuleIds.includes(inputService.getModuleIdFromResource(node));
509
489
  }
510
- else if (j.node instanceof AOverlay) {
511
- return inputService.getModuleIdFromOverlay(j.node) === moduleId;
490
+ else if (node instanceof AOverlay) {
491
+ return filterByModuleIds.includes(inputService.getModuleIdFromOverlay(node));
512
492
  }
513
- else {
514
- return false;
493
+ else if (node instanceof AModel) {
494
+ return filterByModuleIds.includes(inputService.getModuleIdFromModel(node));
515
495
  }
516
- }))
517
- .filter((i) => i.length);
518
- response.modelTransaction = response.modelTransaction
519
- .map((i) => i.filter((j) => {
520
- if (j.node instanceof AModel && !(j.node instanceof AOverlay)) {
521
- return inputService.getModuleIdFromModel(j.node) === moduleId;
522
- }
523
- else if (j.node instanceof AOverlay) {
524
- return inputService.getModuleIdFromOverlay(j.node) === moduleId;
525
- }
526
- else {
527
- return false;
528
- }
529
- }))
530
- .filter((i) => i.length);
531
- response.resourceDiffs = response.resourceDiffs
532
- .map((i) => i.filter((j) => {
533
- if (j.node instanceof AResource) {
534
- return inputService.getModuleIdFromResource(j.node) === moduleId;
535
- }
536
- else {
537
- return false;
538
- }
539
- }))
540
- .filter((i) => i.length);
496
+ return false;
497
+ };
498
+ const keep = (diffs) => diffs.map((i) => i.filter((j) => isFromModule(j.node))).filter((i) => i.length);
499
+ response.modelDiffs = keep(response.modelDiffs);
500
+ response.modelTransaction = keep(response.modelTransaction);
501
+ response.resourceDiffs = keep(response.resourceDiffs);
541
502
  if (!skipResourceTransaction) {
542
- response.resourceTransaction = response.resourceTransaction
543
- .map((i) => i.filter((j) => {
544
- if (j.node instanceof AResource) {
545
- return inputService.getModuleIdFromResource(j.node) === moduleId;
546
- }
547
- else {
548
- return false;
549
- }
550
- }))
551
- .filter((i) => i.length);
503
+ response.resourceTransaction = keep(response.resourceTransaction);
552
504
  }
553
505
  }
554
506
  await this.reset();
@@ -1 +1 @@
1
- {"version":3,"file":"test-module.container.js","sourceRoot":"","sources":["../../src/modules/test-module.container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-module.container.js","sourceRoot":"","sources":["../../src/modules/test-module.container.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ export class AOverlay extends AModel {
45
45
  const parent = await deReferenceContext(a.parent.context);
46
46
  const anchor = parent.getAnchor(a.anchorId);
47
47
  if (!anchor) {
48
- throw new NodeUnsynthError('Cannot find anchor while deserializing overlay!', overlay.overlayId);
48
+ throw new NodeUnsynthError('Cannot find anchor while restoring overlay!', overlay.overlayId);
49
49
  }
50
50
  return anchor;
51
51
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.abstract.js","sourceRoot":"","sources":["../../src/overlays/overlay.abstract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.abstract.js","sourceRoot":"","sources":["../../src/overlays/overlay.abstract.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { UnknownResource } from '../app.type.js';
2
2
  import type { Diff } from '../functions/diff/diff.js';
3
+ import type { ANodeAction } from '../functions/node/node-action.abstract.js';
3
4
  /**
4
5
  * A resource action creates, updates, or destroys one piece of real infrastructure.
5
6
  *
@@ -7,13 +8,14 @@ import type { Diff } from '../functions/diff/diff.js';
7
8
  * SDK. A resource whose lifecycle terraform manages ({@link ATerraformResource}) must not have one;
8
9
  * registering an action for it throws.
9
10
  *
10
- * Register the class with {@link Action}, and a {@link Factory} to construct it.
11
+ * The class extends {@link ANodeAction}, which gives it the container and `log()`. Register it with
12
+ * {@link Action}, and a {@link Factory} to construct it.
11
13
  *
12
14
  * @group Resources
13
15
  *
14
16
  * @see Definition of [Actions](/docs/fundamentals/actions).
15
17
  */
16
- export interface IResourceAction<T extends UnknownResource> {
18
+ export interface IResourceAction<T extends UnknownResource> extends ANodeAction {
17
19
  /**
18
20
  * How long the action may run before Octo aborts it.
19
21
  *
@@ -12,7 +12,9 @@ import type { BaseResourceSchema } from './resource.schema.js';
12
12
  * committed one to decide what to create, update, or destroy.
13
13
  *
14
14
  * A resource is identified by its `resourceId`, configured by its `properties`, and reports back
15
- * through its `response` once the infrastructure exists.
15
+ * through its `response` once the infrastructure exists. The ID it is created with is its
16
+ * `localResourceId`, which only has to be unique within its `scope`: where the node creating the
17
+ * resource sits in the model graph. Octo makes the `resourceId` from the two.
16
18
  *
17
19
  * Most resources extend {@link ATerraformResource} rather than this class.
18
20
  *
@@ -21,8 +23,29 @@ import type { BaseResourceSchema } from './resource.schema.js';
21
23
  * @see Definition of [Resources](/docs/fundamentals/resources).
22
24
  */
23
25
  export declare abstract class AResource<S extends BaseResourceSchema, T extends UnknownResource> extends ANode<S, T> implements IResource<S, T> {
24
- readonly resourceId: S['resourceId'];
26
+ readonly localResourceId: S['localResourceId'];
25
27
  readonly properties: S['properties'];
28
+ /**
29
+ * Whether destroying a resource of this class loses data octo cannot put back. Set by {@link Resource}.
30
+ *
31
+ * @internal
32
+ */
33
+ static readonly DESTROY_LOSES_DATA: boolean;
34
+ /**
35
+ * The names this class declares unique, each by the properties whose values form its domain. Set by
36
+ * {@link Resource}.
37
+ *
38
+ * @internal
39
+ */
40
+ static readonly UNIQUE_PROPERTIES: {
41
+ path: string;
42
+ within: string[];
43
+ }[];
44
+ /**
45
+ * The scope every resource constructed now is created in. The transaction sets it around each model
46
+ * action.
47
+ */
48
+ private static constructionScope;
26
49
  /**
27
50
  * The resources this one is built on top of. A parent is always created before its children,
28
51
  * and destroyed after them.
@@ -34,22 +57,45 @@ export declare abstract class AResource<S extends BaseResourceSchema, T extends
34
57
  * when they need to reference this one.
35
58
  */
36
59
  readonly response: S['response'];
60
+ /**
61
+ * The contexts of the models this resource is placed under, sorted. Octo derives it from the node
62
+ * whose action created the resource; a resource created outside a model action has an empty scope.
63
+ */
64
+ readonly scope: string[];
37
65
  /**
38
66
  * The tags applied to this resource. See {@link Octo.registerTags} to set them in bulk.
39
67
  */
40
68
  readonly tags: S['tags'];
69
+ /**
70
+ * The ID of the resource, unique across the infrastructure: its `localResourceId`, followed by a
71
+ * hash of its scope when it has one.
72
+ */
73
+ get resourceId(): S['resourceId'];
41
74
  private _deleteMarker;
42
75
  /**
43
- * @param resourceId The ID of the resource, unique across the infrastructure.
76
+ * @param localResourceId The ID of the resource, unique within its scope.
44
77
  * @param properties The desired configuration of the resource.
45
78
  * @param parents The resources this one is built on top of.
46
79
  * @throws {@link ResourceError} If the resource ID is not alphanumeric with `-`, `_`, or `/`.
47
80
  */
48
- protected constructor(resourceId: S['resourceId'], properties: S['properties'], parents?: (MatchingResource<BaseResourceSchema> | UnknownResource)[]);
81
+ protected constructor(localResourceId: S['localResourceId'], properties: S['properties'], parents?: (MatchingResource<BaseResourceSchema> | UnknownResource)[]);
49
82
  /**
50
83
  * @internal
51
84
  */
52
85
  static cloneResource<T extends UnknownResource>(sourceResource: T, deReferenceResource: (context: string) => Promise<UnknownResource>): Promise<T>;
86
+ /**
87
+ * Constructs resources in the given scope.
88
+ *
89
+ * @internal
90
+ */
91
+ static constructInScope<R>(scope: string[], construct: () => R): R;
92
+ /**
93
+ * Runs a model action, so every resource it constructs is created in the given scope.
94
+ * Model actions run one at a time, which is what makes the scope safe to hold statically.
95
+ *
96
+ * @internal
97
+ */
98
+ static runInScope<R>(scope: string[], run: () => Promise<R>): Promise<R>;
53
99
  /**
54
100
  * @internal
55
101
  */
@@ -157,10 +203,6 @@ export declare abstract class AResource<S extends BaseResourceSchema, T extends
157
203
  * Whether this resource is marked for deletion, and will leave the graph at the end of the transaction.
158
204
  */
159
205
  isMarkedDeleted(): boolean;
160
- /**
161
- * @internal
162
- */
163
- merge(previous: AResource<S, T>): AResource<S, T>;
164
206
  /**
165
207
  * To mark this resource for deletion. It leaves the graph at the end of the transaction.
166
208
  *
@@ -2,9 +2,9 @@ import { MatchingResource } from '../app.type.js';
2
2
  import { DiffInverseResourceError, RemoveResourceError, ResourceError } from '../errors/index.js';
3
3
  import { DependencyRelationship } from '../functions/dependency/dependency.js';
4
4
  import { Diff, DiffAction } from '../functions/diff/diff.js';
5
- import { DiffUtility } from '../functions/diff/diff.utility.js';
6
5
  import { ANode } from '../functions/node/node.abstract.js';
7
- import { ObjectUtility } from '../utilities/object/object.utility.js';
6
+ import { DiffUtility } from '../utilities/diff/diff.utility.js';
7
+ import { StringUtility } from '../utilities/string/string.utility.js';
8
8
  /**
9
9
  * The base class of every resource - the nodes that describe actual cloud infrastructure.
10
10
  *
@@ -13,7 +13,9 @@ import { ObjectUtility } from '../utilities/object/object.utility.js';
13
13
  * committed one to decide what to create, update, or destroy.
14
14
  *
15
15
  * A resource is identified by its `resourceId`, configured by its `properties`, and reports back
16
- * through its `response` once the infrastructure exists.
16
+ * through its `response` once the infrastructure exists. The ID it is created with is its
17
+ * `localResourceId`, which only has to be unique within its `scope`: where the node creating the
18
+ * resource sits in the model graph. Octo makes the `resourceId` from the two.
17
19
  *
18
20
  * Most resources extend {@link ATerraformResource} rather than this class.
19
21
  *
@@ -23,14 +25,29 @@ import { ObjectUtility } from '../utilities/object/object.utility.js';
23
25
  */
24
26
  export class AResource extends ANode {
25
27
  /**
26
- * @param resourceId The ID of the resource, unique across the infrastructure.
28
+ * The scope every resource constructed now is created in. The transaction sets it around each model
29
+ * action.
30
+ */
31
+ static { this.constructionScope = []; }
32
+ /**
33
+ * The ID of the resource, unique across the infrastructure: its `localResourceId`, followed by a
34
+ * hash of its scope when it has one.
35
+ */
36
+ get resourceId() {
37
+ if (this.scope.length === 0) {
38
+ return this.localResourceId;
39
+ }
40
+ return `${this.localResourceId}-${StringUtility.deterministicHash(this.scope).substring(0, 6)}`;
41
+ }
42
+ /**
43
+ * @param localResourceId The ID of the resource, unique within its scope.
27
44
  * @param properties The desired configuration of the resource.
28
45
  * @param parents The resources this one is built on top of.
29
46
  * @throws {@link ResourceError} If the resource ID is not alphanumeric with `-`, `_`, or `/`.
30
47
  */
31
- constructor(resourceId, properties, parents = []) {
48
+ constructor(localResourceId, properties, parents = []) {
32
49
  super();
33
- this.resourceId = resourceId;
50
+ this.localResourceId = localResourceId;
34
51
  this.properties = properties;
35
52
  /**
36
53
  * The resources this one is built on top of. A parent is always created before its children,
@@ -43,12 +60,17 @@ export class AResource extends ANode {
43
60
  * when they need to reference this one.
44
61
  */
45
62
  this.response = {};
63
+ /**
64
+ * The contexts of the models this resource is placed under, sorted. Octo derives it from the node
65
+ * whose action created the resource; a resource created outside a model action has an empty scope.
66
+ */
67
+ this.scope = [...AResource.constructionScope];
46
68
  /**
47
69
  * The tags applied to this resource. See {@link Octo.registerTags} to set them in bulk.
48
70
  */
49
71
  this.tags = {};
50
72
  this._deleteMarker = false;
51
- if (!/^[\w-/]+$/.test(resourceId)) {
73
+ if (!/^[\w-/]+$/.test(localResourceId)) {
52
74
  throw new ResourceError('Invalid resource ID!', this);
53
75
  }
54
76
  for (const parent of parents) {
@@ -62,6 +84,37 @@ export class AResource extends ANode {
62
84
  const deserializationClass = sourceResource.constructor;
63
85
  return deserializationClass.unSynth(deserializationClass, sourceResource.synth(), deReferenceResource);
64
86
  }
87
+ /**
88
+ * Constructs resources in the given scope.
89
+ *
90
+ * @internal
91
+ */
92
+ static constructInScope(scope, construct) {
93
+ const previousScope = AResource.constructionScope;
94
+ AResource.constructionScope = scope;
95
+ try {
96
+ return construct();
97
+ }
98
+ finally {
99
+ AResource.constructionScope = previousScope;
100
+ }
101
+ }
102
+ /**
103
+ * Runs a model action, so every resource it constructs is created in the given scope.
104
+ * Model actions run one at a time, which is what makes the scope safe to hold statically.
105
+ *
106
+ * @internal
107
+ */
108
+ static async runInScope(scope, run) {
109
+ const previousScope = AResource.constructionScope;
110
+ AResource.constructionScope = scope;
111
+ try {
112
+ return await run();
113
+ }
114
+ finally {
115
+ AResource.constructionScope = previousScope;
116
+ }
117
+ }
65
118
  /**
66
119
  * @internal
67
120
  */
@@ -77,7 +130,7 @@ export class AResource extends ANode {
77
130
  return p;
78
131
  }
79
132
  });
80
- const newResource = new deserializationClass(resource.resourceId, resource.properties, resourceInlineParents);
133
+ const newResource = AResource.constructInScope(resource.scope || [], () => new deserializationClass(resource.localResourceId, resource.properties, resourceInlineParents));
81
134
  for (const key of Object.keys(resource.response)) {
82
135
  newResource.response[key] = resource.response[key];
83
136
  }
@@ -435,30 +488,6 @@ export class AResource extends ANode {
435
488
  isMarkedDeleted() {
436
489
  return this._deleteMarker;
437
490
  }
438
- /**
439
- * @internal
440
- */
441
- merge(previous) {
442
- const currentDependencies = this.getDependencies();
443
- const previousDependencies = previous.getDependencies();
444
- ObjectUtility.deepMergeInPlace(previous.properties, this.properties);
445
- ObjectUtility.deepMergeInPlace(previous.response, this.response);
446
- ObjectUtility.deepMergeInPlace(previous.tags, this.tags);
447
- const currentDependenciesNotInPreviousResource = currentDependencies.filter((cd) => !previousDependencies.find((pd) => pd.isEqual(cd)));
448
- for (const dependency of currentDependenciesNotInPreviousResource) {
449
- if (dependency.isChildRelationship()) {
450
- dependency.to.addChild('resourceId', previous, 'resourceId');
451
- }
452
- else if (dependency.isParentRelationship()) {
453
- previous.addChild('resourceId', dependency.to, 'resourceId');
454
- }
455
- else {
456
- throw new ResourceError('Unknown dependency found in merge!', this);
457
- }
458
- }
459
- Object.assign(this, previous);
460
- return previous;
461
- }
462
491
  /**
463
492
  * To mark this resource for deletion. It leaves the graph at the end of the transaction.
464
493
  *
@@ -503,6 +532,7 @@ export class AResource extends ANode {
503
532
  */
504
533
  synth() {
505
534
  const resourceSynth = {
535
+ localResourceId: this.localResourceId,
506
536
  parents: this.parents.map((p) => {
507
537
  const parentReference = {
508
538
  context: p instanceof MatchingResource ? p.getActual().getContext() : p.getContext(),
@@ -517,6 +547,7 @@ export class AResource extends ANode {
517
547
  properties: JSON.parse(JSON.stringify(this.properties)),
518
548
  resourceId: this.resourceId,
519
549
  response: JSON.parse(JSON.stringify(this.response)),
550
+ scope: [...this.scope],
520
551
  tags: JSON.parse(JSON.stringify(this.tags)),
521
552
  };
522
553
  return resourceSynth;