@quadnix/octo 0.0.30 → 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 (383) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +117 -8
  3. package/dist/app.type.d.ts +277 -19
  4. package/dist/app.type.js +80 -9
  5. package/dist/app.type.js.map +1 -1
  6. package/dist/decorators/action.decorator.d.ts +10 -6
  7. package/dist/decorators/action.decorator.js +19 -6
  8. package/dist/decorators/action.decorator.js.map +1 -1
  9. package/dist/decorators/anchor.decorator.d.ts +12 -5
  10. package/dist/decorators/anchor.decorator.js +12 -5
  11. package/dist/decorators/anchor.decorator.js.map +1 -1
  12. package/dist/decorators/enable-hook.decorator.d.ts +1 -1
  13. package/dist/decorators/enable-hook.decorator.js +1 -1
  14. package/dist/decorators/factory.decorator.d.ts +18 -34
  15. package/dist/decorators/factory.decorator.js +18 -34
  16. package/dist/decorators/factory.decorator.js.map +1 -1
  17. package/dist/decorators/model.decorator.d.ts +4 -6
  18. package/dist/decorators/model.decorator.js +2 -7
  19. package/dist/decorators/model.decorator.js.map +1 -1
  20. package/dist/decorators/module.decorator.d.ts +16 -10
  21. package/dist/decorators/module.decorator.js +16 -10
  22. package/dist/decorators/module.decorator.js.map +1 -1
  23. package/dist/decorators/on-event.decorator.d.ts +7 -2
  24. package/dist/decorators/on-event.decorator.js +5 -0
  25. package/dist/decorators/on-event.decorator.js.map +1 -1
  26. package/dist/decorators/resource.decorator.d.ts +50 -1
  27. package/dist/decorators/resource.decorator.js +38 -1
  28. package/dist/decorators/resource.decorator.js.map +1 -1
  29. package/dist/decorators/validate.decorator.d.ts +15 -1
  30. package/dist/decorators/validate.decorator.js +15 -1
  31. package/dist/decorators/validate.decorator.js.map +1 -1
  32. package/dist/errors/container.error.d.ts +18 -0
  33. package/dist/errors/container.error.js +18 -0
  34. package/dist/errors/container.error.js.map +1 -1
  35. package/dist/errors/index.d.ts +1 -0
  36. package/dist/errors/index.js +1 -0
  37. package/dist/errors/index.js.map +1 -1
  38. package/dist/errors/module.error.d.ts +6 -0
  39. package/dist/errors/module.error.js +6 -0
  40. package/dist/errors/module.error.js.map +1 -1
  41. package/dist/errors/node.error.d.ts +56 -0
  42. package/dist/errors/node.error.js +56 -0
  43. package/dist/errors/node.error.js.map +1 -1
  44. package/dist/errors/schema.error.d.ts +14 -1
  45. package/dist/errors/schema.error.js +11 -1
  46. package/dist/errors/schema.error.js.map +1 -1
  47. package/dist/errors/terraform.error.d.ts +20 -0
  48. package/dist/errors/terraform.error.js +24 -0
  49. package/dist/errors/terraform.error.js.map +1 -0
  50. package/dist/errors/transaction.error.d.ts +93 -2
  51. package/dist/errors/transaction.error.js +83 -0
  52. package/dist/errors/transaction.error.js.map +1 -1
  53. package/dist/events/action.event.d.ts +8 -4
  54. package/dist/events/action.event.js +2 -4
  55. package/dist/events/action.event.js.map +1 -1
  56. package/dist/events/command.event.d.ts +43 -0
  57. package/dist/events/command.event.js +33 -0
  58. package/dist/events/command.event.js.map +1 -0
  59. package/dist/events/event.model.d.ts +26 -8
  60. package/dist/events/event.model.js +15 -7
  61. package/dist/events/event.model.js.map +1 -1
  62. package/dist/events/hook/commit.hook.event.d.ts +1 -7
  63. package/dist/events/hook/commit.hook.event.js +0 -6
  64. package/dist/events/hook/commit.hook.event.js.map +1 -1
  65. package/dist/events/hook/hook.event.d.ts +1 -3
  66. package/dist/events/hook/hook.event.js +0 -2
  67. package/dist/events/hook/hook.event.js.map +1 -1
  68. package/dist/events/hook/model.hook.event.d.ts +1 -7
  69. package/dist/events/hook/model.hook.event.js +0 -6
  70. package/dist/events/hook/model.hook.event.js.map +1 -1
  71. package/dist/events/hook/resource.hook.event.d.ts +1 -7
  72. package/dist/events/hook/resource.hook.event.js +0 -6
  73. package/dist/events/hook/resource.hook.event.js.map +1 -1
  74. package/dist/events/index.d.ts +5 -0
  75. package/dist/events/index.js +5 -0
  76. package/dist/events/index.js.map +1 -1
  77. package/dist/events/mode-result.event.d.ts +57 -0
  78. package/dist/events/mode-result.event.js +24 -0
  79. package/dist/events/mode-result.event.js.map +1 -0
  80. package/dist/events/mode.event.d.ts +61 -0
  81. package/dist/events/mode.event.js +32 -0
  82. package/dist/events/mode.event.js.map +1 -0
  83. package/dist/events/module.event.d.ts +7 -5
  84. package/dist/events/module.event.js +3 -4
  85. package/dist/events/module.event.js.map +1 -1
  86. package/dist/events/registration.event.d.ts +19 -15
  87. package/dist/events/registration.event.js +18 -14
  88. package/dist/events/registration.event.js.map +1 -1
  89. package/dist/events/serialization.event.d.ts +16 -13
  90. package/dist/events/serialization.event.js +15 -12
  91. package/dist/events/serialization.event.js.map +1 -1
  92. package/dist/events/state.event.d.ts +102 -0
  93. package/dist/events/state.event.js +69 -0
  94. package/dist/events/state.event.js.map +1 -0
  95. package/dist/events/terraform.event.d.ts +78 -0
  96. package/dist/events/terraform.event.js +55 -0
  97. package/dist/events/terraform.event.js.map +1 -0
  98. package/dist/events/transaction.event.d.ts +3 -40
  99. package/dist/events/transaction.event.js +1 -29
  100. package/dist/events/transaction.event.js.map +1 -1
  101. package/dist/functions/container/container.d.ts +54 -13
  102. package/dist/functions/container/container.js +64 -19
  103. package/dist/functions/container/container.js.map +1 -1
  104. package/dist/functions/container/test-container.d.ts +43 -29
  105. package/dist/functions/container/test-container.js +71 -43
  106. package/dist/functions/container/test-container.js.map +1 -1
  107. package/dist/functions/dependency/dependency.d.ts +84 -23
  108. package/dist/functions/dependency/dependency.js +84 -14
  109. package/dist/functions/dependency/dependency.js.map +1 -1
  110. package/dist/functions/diff/aggregate-resource-actions.d.ts +19 -0
  111. package/dist/functions/diff/aggregate-resource-actions.js +41 -0
  112. package/dist/functions/diff/aggregate-resource-actions.js.map +1 -0
  113. package/dist/functions/diff/diff-metadata.d.ts +21 -3
  114. package/dist/functions/diff/diff-metadata.js +18 -0
  115. package/dist/functions/diff/diff-metadata.js.map +1 -1
  116. package/dist/functions/diff/diff.d.ts +68 -7
  117. package/dist/functions/diff/diff.js +44 -3
  118. package/dist/functions/diff/diff.js.map +1 -1
  119. package/dist/functions/hook/commit.hook.d.ts +16 -1
  120. package/dist/functions/hook/commit.hook.js +21 -6
  121. package/dist/functions/hook/commit.hook.js.map +1 -1
  122. package/dist/functions/hook/model-action.hook.d.ts +16 -1
  123. package/dist/functions/hook/model-action.hook.js +21 -6
  124. package/dist/functions/hook/model-action.hook.js.map +1 -1
  125. package/dist/functions/hook/resource-action.hook.d.ts +16 -1
  126. package/dist/functions/hook/resource-action.hook.js +21 -6
  127. package/dist/functions/hook/resource-action.hook.js.map +1 -1
  128. package/dist/functions/node/node-action.abstract.d.ts +23 -2
  129. package/dist/functions/node/node-action.abstract.js +22 -8
  130. package/dist/functions/node/node-action.abstract.js.map +1 -1
  131. package/dist/functions/node/node.abstract.d.ts +56 -5
  132. package/dist/functions/node/node.abstract.js +106 -22
  133. package/dist/functions/node/node.abstract.js.map +1 -1
  134. package/dist/functions/node/node.interface.d.ts +3 -1
  135. package/dist/functions/schema/schema.d.ts +7 -0
  136. package/dist/functions/schema/schema.js +10 -1
  137. package/dist/functions/schema/schema.js.map +1 -1
  138. package/dist/index.d.ts +12 -6
  139. package/dist/index.js +9 -4
  140. package/dist/index.js.map +1 -1
  141. package/dist/index.type.d.ts +5 -0
  142. package/dist/index.type.js +2 -0
  143. package/dist/index.type.js.map +1 -0
  144. package/dist/main.d.ts +245 -14
  145. package/dist/main.js +377 -72
  146. package/dist/main.js.map +1 -1
  147. package/dist/models/account/account.model.d.ts +43 -7
  148. package/dist/models/account/account.model.js +56 -8
  149. package/dist/models/account/account.model.js.map +1 -1
  150. package/dist/models/account/account.schema.d.ts +13 -1
  151. package/dist/models/account/account.schema.js +12 -0
  152. package/dist/models/account/account.schema.js.map +1 -1
  153. package/dist/models/app/app.model.d.ts +13 -8
  154. package/dist/models/app/app.model.js +17 -32
  155. package/dist/models/app/app.model.js.map +1 -1
  156. package/dist/models/app/app.schema.d.ts +6 -0
  157. package/dist/models/app/app.schema.js +6 -0
  158. package/dist/models/app/app.schema.js.map +1 -1
  159. package/dist/models/deployment/deployment.model.d.ts +13 -1
  160. package/dist/models/deployment/deployment.model.js +16 -4
  161. package/dist/models/deployment/deployment.model.js.map +1 -1
  162. package/dist/models/deployment/deployment.schema.d.ts +6 -0
  163. package/dist/models/deployment/deployment.schema.js +6 -0
  164. package/dist/models/deployment/deployment.schema.js.map +1 -1
  165. package/dist/models/environment/environment.model.d.ts +15 -3
  166. package/dist/models/environment/environment.model.js +22 -10
  167. package/dist/models/environment/environment.model.js.map +1 -1
  168. package/dist/models/environment/environment.schema.d.ts +2 -0
  169. package/dist/models/environment/environment.schema.js +2 -0
  170. package/dist/models/environment/environment.schema.js.map +1 -1
  171. package/dist/models/execution/execution.model.d.ts +21 -3
  172. package/dist/models/execution/execution.model.js +47 -29
  173. package/dist/models/execution/execution.model.js.map +1 -1
  174. package/dist/models/execution/execution.schema.d.ts +11 -0
  175. package/dist/models/execution/execution.schema.js +11 -0
  176. package/dist/models/execution/execution.schema.js.map +1 -1
  177. package/dist/models/filesystem/filesystem.model.d.ts +27 -1
  178. package/dist/models/filesystem/filesystem.model.js +30 -4
  179. package/dist/models/filesystem/filesystem.model.js.map +1 -1
  180. package/dist/models/filesystem/filesystem.schema.d.ts +5 -0
  181. package/dist/models/filesystem/filesystem.schema.js +5 -0
  182. package/dist/models/filesystem/filesystem.schema.js.map +1 -1
  183. package/dist/models/image/image.model.d.ts +19 -5
  184. package/dist/models/image/image.model.js +25 -11
  185. package/dist/models/image/image.model.js.map +1 -1
  186. package/dist/models/image/image.schema.d.ts +8 -0
  187. package/dist/models/image/image.schema.js +8 -0
  188. package/dist/models/image/image.schema.js.map +1 -1
  189. package/dist/models/model-action.interface.d.ts +17 -4
  190. package/dist/models/model.abstract.d.ts +96 -1
  191. package/dist/models/model.abstract.js +107 -8
  192. package/dist/models/model.abstract.js.map +1 -1
  193. package/dist/models/model.interface.d.ts +3 -0
  194. package/dist/models/pipeline/pipeline.model.d.ts +14 -2
  195. package/dist/models/pipeline/pipeline.model.js +19 -7
  196. package/dist/models/pipeline/pipeline.model.js.map +1 -1
  197. package/dist/models/pipeline/pipeline.schema.d.ts +8 -0
  198. package/dist/models/pipeline/pipeline.schema.js +8 -0
  199. package/dist/models/pipeline/pipeline.schema.js.map +1 -1
  200. package/dist/models/region/region.model.d.ts +16 -1
  201. package/dist/models/region/region.model.js +19 -4
  202. package/dist/models/region/region.model.js.map +1 -1
  203. package/dist/models/region/region.schema.d.ts +6 -0
  204. package/dist/models/region/region.schema.js +6 -0
  205. package/dist/models/region/region.schema.js.map +1 -1
  206. package/dist/models/server/server.model.d.ts +15 -3
  207. package/dist/models/server/server.model.js +18 -6
  208. package/dist/models/server/server.model.js.map +1 -1
  209. package/dist/models/server/server.schema.d.ts +3 -1
  210. package/dist/models/server/server.schema.js +3 -1
  211. package/dist/models/server/server.schema.js.map +1 -1
  212. package/dist/models/service/service.model.d.ts +37 -6
  213. package/dist/models/service/service.model.js +65 -11
  214. package/dist/models/service/service.model.js.map +1 -1
  215. package/dist/models/service/service.schema.d.ts +48 -1
  216. package/dist/models/service/service.schema.js +56 -1
  217. package/dist/models/service/service.schema.js.map +1 -1
  218. package/dist/models/subnet/subnet.model.d.ts +27 -3
  219. package/dist/models/subnet/subnet.model.js +40 -16
  220. package/dist/models/subnet/subnet.model.js.map +1 -1
  221. package/dist/models/subnet/subnet.schema.d.ts +9 -0
  222. package/dist/models/subnet/subnet.schema.js +9 -0
  223. package/dist/models/subnet/subnet.schema.js.map +1 -1
  224. package/dist/modes/apply-transaction.d.ts +23 -0
  225. package/dist/modes/apply-transaction.js +25 -0
  226. package/dist/modes/apply-transaction.js.map +1 -0
  227. package/dist/modes/commit.mode.d.ts +54 -0
  228. package/dist/modes/commit.mode.js +235 -0
  229. package/dist/modes/commit.mode.js.map +1 -0
  230. package/dist/modes/generate.mode.d.ts +30 -0
  231. package/dist/modes/generate.mode.js +50 -0
  232. package/dist/modes/generate.mode.js.map +1 -0
  233. package/dist/modes/run-action.mode.d.ts +30 -0
  234. package/dist/modes/run-action.mode.js +140 -0
  235. package/dist/modes/run-action.mode.js.map +1 -0
  236. package/dist/modes/validate.mode.d.ts +186 -0
  237. package/dist/modes/validate.mode.js +558 -0
  238. package/dist/modes/validate.mode.js.map +1 -0
  239. package/dist/modules/module.abstract.d.ts +51 -0
  240. package/dist/modules/module.abstract.js +36 -0
  241. package/dist/modules/module.abstract.js.map +1 -1
  242. package/dist/modules/module.container.d.ts +43 -1
  243. package/dist/modules/module.container.js +77 -5
  244. package/dist/modules/module.container.js.map +1 -1
  245. package/dist/modules/test-module.container.d.ts +139 -25
  246. package/dist/modules/test-module.container.js +383 -199
  247. package/dist/modules/test-module.container.js.map +1 -1
  248. package/dist/overlays/anchor.abstract.d.ts +32 -1
  249. package/dist/overlays/anchor.abstract.js +42 -11
  250. package/dist/overlays/anchor.abstract.js.map +1 -1
  251. package/dist/overlays/anchor.schema.d.ts +21 -0
  252. package/dist/overlays/anchor.schema.js +21 -0
  253. package/dist/overlays/anchor.schema.js.map +1 -1
  254. package/dist/overlays/overlay-data.repository.d.ts +18 -0
  255. package/dist/overlays/overlay-data.repository.js +18 -0
  256. package/dist/overlays/overlay-data.repository.js.map +1 -1
  257. package/dist/overlays/overlay.abstract.d.ts +56 -1
  258. package/dist/overlays/overlay.abstract.js +79 -20
  259. package/dist/overlays/overlay.abstract.js.map +1 -1
  260. package/dist/overlays/overlay.schema.d.ts +20 -0
  261. package/dist/overlays/overlay.schema.js +20 -0
  262. package/dist/overlays/overlay.schema.js.map +1 -1
  263. package/dist/resources/resource-action.interface.d.ts +29 -3
  264. package/dist/resources/resource-data.repository.d.ts +63 -1
  265. package/dist/resources/resource-data.repository.js +94 -4
  266. package/dist/resources/resource-data.repository.js.map +1 -1
  267. package/dist/resources/resource.abstract.d.ts +163 -6
  268. package/dist/resources/resource.abstract.js +223 -59
  269. package/dist/resources/resource.abstract.js.map +1 -1
  270. package/dist/resources/resource.interface.d.ts +0 -2
  271. package/dist/resources/resource.schema.d.ts +39 -1
  272. package/dist/resources/resource.schema.js +38 -0
  273. package/dist/resources/resource.schema.js.map +1 -1
  274. package/dist/resources/terraform-resource.abstract.d.ts +44 -0
  275. package/dist/resources/terraform-resource.abstract.js +45 -0
  276. package/dist/resources/terraform-resource.abstract.js.map +1 -0
  277. package/dist/services/event/event.service.d.ts +32 -5
  278. package/dist/services/event/event.service.js +58 -16
  279. package/dist/services/event/event.service.js.map +1 -1
  280. package/dist/services/input/input.service.d.ts +82 -5
  281. package/dist/services/input/input.service.js +143 -12
  282. package/dist/services/input/input.service.js.map +1 -1
  283. package/dist/services/schema-translation/schema-translation.service.d.ts +9 -0
  284. package/dist/services/schema-translation/schema-translation.service.js +9 -0
  285. package/dist/services/schema-translation/schema-translation.service.js.map +1 -1
  286. package/dist/services/serialization/model/model-serialization.service.d.ts +25 -3
  287. package/dist/services/serialization/model/model-serialization.service.js +113 -62
  288. package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
  289. package/dist/services/serialization/resource/resource-serialization.service.d.ts +36 -6
  290. package/dist/services/serialization/resource/resource-serialization.service.js +77 -28
  291. package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
  292. package/dist/services/state-management/local.state-provider.d.ts +67 -4
  293. package/dist/services/state-management/local.state-provider.js +168 -41
  294. package/dist/services/state-management/local.state-provider.js.map +1 -1
  295. package/dist/services/state-management/remote.state-provider.d.ts +216 -0
  296. package/dist/services/state-management/remote.state-provider.js +645 -0
  297. package/dist/services/state-management/remote.state-provider.js.map +1 -0
  298. package/dist/services/state-management/state-management.service.d.ts +195 -17
  299. package/dist/services/state-management/state-management.service.js +259 -10
  300. package/dist/services/state-management/state-management.service.js.map +1 -1
  301. package/dist/services/state-management/state-provider.interface.d.ts +98 -3
  302. package/dist/services/state-management/state-provider.interface.js +14 -1
  303. package/dist/services/state-management/state-provider.interface.js.map +1 -1
  304. package/dist/services/state-management/terraform-state.service.d.ts +99 -0
  305. package/dist/services/state-management/terraform-state.service.js +197 -0
  306. package/dist/services/state-management/terraform-state.service.js.map +1 -0
  307. package/dist/services/state-management/test.state-provider.d.ts +42 -4
  308. package/dist/services/state-management/test.state-provider.js +77 -25
  309. package/dist/services/state-management/test.state-provider.js.map +1 -1
  310. package/dist/services/terraform/terraform.service.d.ts +480 -0
  311. package/dist/services/terraform/terraform.service.js +1082 -0
  312. package/dist/services/terraform/terraform.service.js.map +1 -0
  313. package/dist/services/terraform/terraform.type.d.ts +387 -0
  314. package/dist/services/terraform/terraform.type.js +579 -0
  315. package/dist/services/terraform/terraform.type.js.map +1 -0
  316. package/dist/services/transaction/transaction.service.d.ts +110 -10
  317. package/dist/services/transaction/transaction.service.js +570 -251
  318. package/dist/services/transaction/transaction.service.js.map +1 -1
  319. package/dist/services/validation/validation.service.d.ts +15 -3
  320. package/dist/services/validation/validation.service.js +12 -0
  321. package/dist/services/validation/validation.service.js.map +1 -1
  322. package/dist/utilities/array/array.utility.d.ts +3 -0
  323. package/dist/utilities/array/array.utility.js +3 -0
  324. package/dist/utilities/array/array.utility.js.map +1 -1
  325. package/dist/{functions → utilities}/diff/diff.utility.d.ts +19 -3
  326. package/dist/{functions → utilities}/diff/diff.utility.js +57 -41
  327. package/dist/utilities/diff/diff.utility.js.map +1 -0
  328. package/dist/utilities/file/file.utility.d.ts +16 -2
  329. package/dist/utilities/file/file.utility.js +23 -61
  330. package/dist/utilities/file/file.utility.js.map +1 -1
  331. package/dist/utilities/hcl/hcl.utility.d.ts +128 -0
  332. package/dist/utilities/hcl/hcl.utility.js +402 -0
  333. package/dist/utilities/hcl/hcl.utility.js.map +1 -0
  334. package/dist/utilities/http/http.utility.d.ts +57 -0
  335. package/dist/utilities/http/http.utility.js +98 -0
  336. package/dist/utilities/http/http.utility.js.map +1 -0
  337. package/dist/utilities/node/node.utility.d.ts +3 -0
  338. package/dist/utilities/node/node.utility.js +3 -0
  339. package/dist/utilities/node/node.utility.js.map +1 -1
  340. package/dist/utilities/object/object.utility.d.ts +12 -0
  341. package/dist/utilities/object/object.utility.js +12 -0
  342. package/dist/utilities/object/object.utility.js.map +1 -1
  343. package/dist/utilities/project/project.utility.d.ts +28 -0
  344. package/dist/utilities/project/project.utility.js +35 -0
  345. package/dist/utilities/project/project.utility.js.map +1 -0
  346. package/dist/utilities/string/string.utility.d.ts +41 -0
  347. package/dist/utilities/string/string.utility.js +65 -0
  348. package/dist/utilities/string/string.utility.js.map +1 -0
  349. package/dist/utilities/terraform/terraform.utility.d.ts +276 -0
  350. package/dist/utilities/terraform/terraform.utility.js +623 -0
  351. package/dist/utilities/terraform/terraform.utility.js.map +1 -0
  352. package/dist/utilities/test-helpers/test-classes.d.ts +36 -30
  353. package/dist/utilities/test-helpers/test-classes.js +38 -39
  354. package/dist/utilities/test-helpers/test-classes.js.map +1 -1
  355. package/dist/utilities/test-helpers/test-models.d.ts +8 -1
  356. package/dist/utilities/test-helpers/test-models.js +37 -12
  357. package/dist/utilities/test-helpers/test-models.js.map +1 -1
  358. package/dist/utilities/test-helpers/test-modes.d.ts +315 -0
  359. package/dist/utilities/test-helpers/test-modes.js +486 -0
  360. package/dist/utilities/test-helpers/test-modes.js.map +1 -0
  361. package/dist/utilities/test-helpers/test-modules.d.ts +47 -0
  362. package/dist/utilities/test-helpers/test-modules.js +85 -0
  363. package/dist/utilities/test-helpers/test-modules.js.map +1 -0
  364. package/dist/utilities/test-helpers/test-overlays.d.ts +20 -2
  365. package/dist/utilities/test-helpers/test-overlays.js +56 -6
  366. package/dist/utilities/test-helpers/test-overlays.js.map +1 -1
  367. package/dist/utilities/test-helpers/test-resources.d.ts +23 -3
  368. package/dist/utilities/test-helpers/test-resources.js +83 -23
  369. package/dist/utilities/test-helpers/test-resources.js.map +1 -1
  370. package/dist/utilities/validation/validation.utility.d.ts +24 -0
  371. package/dist/utilities/validation/validation.utility.js +24 -0
  372. package/dist/utilities/validation/validation.utility.js.map +1 -1
  373. package/package.json +12 -6
  374. package/dist/functions/diff/diff.utility.js.map +0 -1
  375. package/dist/services/capture/capture.service.d.ts +0 -19
  376. package/dist/services/capture/capture.service.js +0 -43
  377. package/dist/services/capture/capture.service.js.map +0 -1
  378. package/dist/services/state-management/local-encryption.state-provider.d.ts +0 -20
  379. package/dist/services/state-management/local-encryption.state-provider.js +0 -90
  380. package/dist/services/state-management/local-encryption.state-provider.js.map +0 -1
  381. package/dist/utilities/cidr/cidr.utility.d.ts +0 -10
  382. package/dist/utilities/cidr/cidr.utility.js +0 -51
  383. package/dist/utilities/cidr/cidr.utility.js.map +0 -1
@@ -1,14 +1,50 @@
1
1
  import { strict as assert } from 'assert';
2
2
  /**
3
+ * The base class of every module - the unit you actually assemble infrastructure from.
4
+ *
5
+ * A module takes typed inputs, and produces models, overlays, and anchors. It is the reusable piece:
6
+ * you publish one, someone else loads it with {@link Octo.loadModule} and their own inputs, and the
7
+ * models it built become available to the modules that run after it.
8
+ *
9
+ * Everything a module needs from another module it finds by schema - see
10
+ * {@link AModel.getAnchorsMatchingSchema} - so modules compose without importing each other's classes.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * @Module<MyModule>('@example', MyModuleSchema)
15
+ * export class MyModule extends AModule<MyModuleSchema, MyRegion> {
16
+ * async onInit(inputs: MyModuleSchema): Promise<MyRegion> { ... }
17
+ * }
18
+ * ```
19
+ *
3
20
  * @group Modules
21
+ *
22
+ * @see Definition of [Modules](/docs/fundamentals/modules).
4
23
  */
5
24
  export class AModule {
25
+ /**
26
+ * @param moduleId The ID this module is loaded under.
27
+ */
6
28
  constructor(moduleId) {
7
29
  this.moduleId = moduleId;
8
30
  }
31
+ /**
32
+ * To hook custom behavior into Octo's lifecycle for the duration of this module.
33
+ * Override it to return the callbacks you want run.
34
+ *
35
+ * @see Techniques for [Hooks](/docs/techniques/hooks).
36
+ */
9
37
  registerHooks() {
10
38
  return {};
11
39
  }
40
+ /**
41
+ * To derive values that both {@link AModule.onInit} and this module's actions need - typically
42
+ * facts resolved from another module's anchors, such as an account ID or a region's availability
43
+ * zones. Override it, and the returned object is handed to every action of this module as
44
+ * `actionInputs.metadata`.
45
+ *
46
+ * @param inputs The inputs this module was loaded with.
47
+ */
12
48
  async registerMetadata(inputs) {
13
49
  assert(!!inputs);
14
50
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"module.abstract.js","sourceRoot":"","sources":["../../src/modules/module.abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAO1C;;GAEG;AACH,MAAM,OAAgB,OAAO;IAO3B,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAID,aAAa;QAQX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAS;QAC9B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
1
+ {"version":3,"file":"module.abstract.js","sourceRoot":"","sources":["../../src/modules/module.abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAO1C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAgB,OAAO;IAW3B;;OAEG;IACH,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAeD;;;;;OAKG;IACH,aAAa;QAQX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAS;QAC9B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { Constructable, ModuleSchemaInputs, UnknownModule } from '../app.type.js';
1
+ import type { Constructable, ModelSerializedOutput, ModuleSchemaInputs, UnknownModule } from '../app.type.js';
2
2
  import { CommitHook } from '../functions/hook/commit.hook.js';
3
3
  import { ModelActionHook } from '../functions/hook/model-action.hook.js';
4
4
  import { ResourceActionHook } from '../functions/hook/resource-action.hook.js';
@@ -16,16 +16,49 @@ export declare class ModuleContainer {
16
16
  private readonly inputService;
17
17
  private readonly overlayDataRepository;
18
18
  private modules;
19
+ /**
20
+ * @internal
21
+ */
19
22
  constructor(eventService: EventService, inputService: InputService, overlayDataRepository: OverlayDataRepository);
23
+ /**
24
+ * @internal
25
+ */
20
26
  apply(): Promise<{
21
27
  [key: string]: unknown;
22
28
  }>;
29
+ /**
30
+ * @internal
31
+ */
23
32
  getMetadata(module: Constructable<UnknownModule> | string): ModuleContainer['modules'][0] | undefined;
33
+ /**
34
+ * @internal
35
+ */
24
36
  getMetadataIndex(module: Constructable<UnknownModule> | string): number;
37
+ /**
38
+ * @internal
39
+ */
25
40
  getModuleInstanceInputKeys(moduleId: string): string[];
41
+ /**
42
+ * Every module that ran, by module id, with the inputs it was given before references resolved.
43
+ *
44
+ * @internal
45
+ */
46
+ getModuleInstances(): ModelSerializedOutput['modules'];
47
+ /**
48
+ * @internal
49
+ */
26
50
  load<M extends UnknownModule>(module: Constructable<M> | string, moduleId: string, inputs: ModuleSchemaInputs<M>): void;
51
+ /**
52
+ * @internal
53
+ */
27
54
  order(modules: (Constructable<UnknownModule> | string)[]): void;
55
+ /**
56
+ * @internal
57
+ */
28
58
  register(module: Constructable<UnknownModule>, properties: ModuleOptions): void;
59
+ /**
60
+ * @internal
61
+ */
29
62
  registerHooks({ postCommitHooks, postModelActionHooks, postResourceActionHooks, preCommitHooks, preModelActionHooks, preResourceActionHooks, }?: {
30
63
  postCommitHooks?: Parameters<CommitHook['collectHooks']>[0]['postHooks'];
31
64
  postModelActionHooks?: Parameters<ModelActionHook['collectHooks']>[0]['postHooks'];
@@ -34,7 +67,13 @@ export declare class ModuleContainer {
34
67
  preModelActionHooks?: Parameters<ModelActionHook['collectHooks']>[0]['preHooks'];
35
68
  preResourceActionHooks?: Parameters<ResourceActionHook['collectHooks']>[0]['preHooks'];
36
69
  }): void;
70
+ /**
71
+ * @internal
72
+ */
37
73
  reset(): void;
74
+ /**
75
+ * @internal
76
+ */
38
77
  unload(module: Constructable<UnknownModule>): void;
39
78
  }
40
79
  /**
@@ -42,6 +81,9 @@ export declare class ModuleContainer {
42
81
  */
43
82
  export declare class ModuleContainerFactory {
44
83
  private static instance;
84
+ /**
85
+ * @internal
86
+ */
45
87
  static create(forceNew?: boolean): Promise<ModuleContainer>;
46
88
  }
47
89
  export {};
@@ -16,16 +16,23 @@ import { OverlayDataRepository } from '../overlays/overlay-data.repository.js';
16
16
  import { AOverlay } from '../overlays/overlay.abstract.js';
17
17
  import { EventService } from '../services/event/event.service.js';
18
18
  import { InputService } from '../services/input/input.service.js';
19
+ import { DiffUtility } from '../utilities/diff/diff.utility.js';
19
20
  /**
20
21
  * @internal
21
22
  */
22
23
  export class ModuleContainer {
24
+ /**
25
+ * @internal
26
+ */
23
27
  constructor(eventService, inputService, overlayDataRepository) {
24
28
  this.eventService = eventService;
25
29
  this.inputService = inputService;
26
30
  this.overlayDataRepository = overlayDataRepository;
27
31
  this.modules = [];
28
32
  }
33
+ /**
34
+ * @internal
35
+ */
29
36
  async apply() {
30
37
  const result = {};
31
38
  for (const moduleMetadata of this.modules) {
@@ -90,19 +97,28 @@ export class ModuleContainer {
90
97
  // Register module.
91
98
  this.inputService.registerModule(i.moduleId, instance);
92
99
  i.applied = true;
100
+ this.eventService.emit(new ModuleEvent(module.name, { inputs: { ...resolvedModuleSchema }, moduleId: i.moduleId }));
93
101
  }
94
- this.eventService.emit(new ModuleEvent(module.name));
95
102
  }
96
103
  return result;
97
104
  }
105
+ /**
106
+ * @internal
107
+ */
98
108
  getMetadata(module) {
99
109
  const index = this.getMetadataIndex(module);
100
110
  return index === -1 ? undefined : this.modules[index];
101
111
  }
112
+ /**
113
+ * @internal
114
+ */
102
115
  getMetadataIndex(module) {
103
116
  const moduleName = typeof module === 'string' ? module : `${module.MODULE_PACKAGE}/${module.name}`;
104
117
  return this.modules.findIndex((m) => `${m.properties.packageName}/${m.module.name}` === moduleName);
105
118
  }
119
+ /**
120
+ * @internal
121
+ */
106
122
  getModuleInstanceInputKeys(moduleId) {
107
123
  const moduleIndex = this.modules.findIndex((m) => m.instances.findIndex((i) => i.moduleId === moduleId) !== -1);
108
124
  if (moduleIndex === -1) {
@@ -110,25 +126,66 @@ export class ModuleContainer {
110
126
  }
111
127
  return this.modules[moduleIndex].instances.find((i) => i.moduleId === moduleId).inputKeys;
112
128
  }
129
+ /**
130
+ * Every module that ran, by module id, with the inputs it was given before references resolved.
131
+ *
132
+ * @internal
133
+ */
134
+ getModuleInstances() {
135
+ const modules = {};
136
+ for (const { instances, module, properties } of this.modules) {
137
+ for (const { applied, inputs, moduleId } of instances) {
138
+ if (applied) {
139
+ modules[moduleId] = {
140
+ className: `${properties.packageName}/${module.name}`,
141
+ inputs,
142
+ };
143
+ }
144
+ }
145
+ }
146
+ return modules;
147
+ }
148
+ /**
149
+ * @internal
150
+ */
113
151
  load(module, moduleId, inputs) {
114
152
  const moduleName = typeof module === 'string' ? module : `${module.MODULE_PACKAGE}/${module.name}`;
115
153
  const m = this.getMetadata(module);
116
154
  if (!m) {
117
155
  throw new ModuleError(`Module "${moduleName}" not yet registered!`, moduleName);
118
156
  }
119
- m.hidden = false;
120
- if (m.instances.findIndex((i) => i.moduleId === moduleId) !== -1) {
121
- return;
157
+ // Octo reads a reference such as `${{module-id.model.region}}` by splitting it on dots.
158
+ if (moduleId.includes('.')) {
159
+ throw new ModuleError(`Module id "${moduleId}" cannot contain "."!`, moduleName);
160
+ }
161
+ // Loading a module again under its id, with the same inputs, changes nothing. Any other module
162
+ // under that id would be lost.
163
+ const copiedInputs = JSON.parse(JSON.stringify(inputs));
164
+ const existing = this.modules.find((metadata) => metadata.instances.some((i) => i.moduleId === moduleId));
165
+ if (existing) {
166
+ const instance = existing.instances.find((i) => i.moduleId === moduleId);
167
+ if (existing === m && DiffUtility.isObjectDeepEquals(instance.inputs, copiedInputs)) {
168
+ m.hidden = false;
169
+ return;
170
+ }
171
+ throw new ModuleError(`Module id "${moduleId}" is already in use!`, moduleName);
122
172
  }
173
+ m.hidden = false;
123
174
  m.instances.push({
124
175
  applied: false,
125
176
  inputKeys: getSchemaKeys(module.MODULE_SCHEMA),
177
+ inputs: copiedInputs,
126
178
  moduleId,
127
179
  });
128
- for (const [key, value] of Object.entries(inputs)) {
180
+ // A copy of its own: resolving an input overwrites it in place, which would change the copy kept
181
+ // above to compare a later load against.
182
+ for (const [key, value] of Object.entries(copiedInputs)) {
129
183
  this.inputService.registerInput(moduleId, key, JSON.parse(JSON.stringify(value)));
130
184
  }
131
185
  }
186
+ /**
187
+ * @internal
188
+ */
132
189
  order(modules) {
133
190
  this.modules.sort((a, b) => {
134
191
  const aIndex = modules.findIndex((m) => {
@@ -142,12 +199,18 @@ export class ModuleContainer {
142
199
  return aIndex - bIndex;
143
200
  });
144
201
  }
202
+ /**
203
+ * @internal
204
+ */
145
205
  register(module, properties) {
146
206
  const moduleName = `${module.MODULE_PACKAGE}/${module.name}`;
147
207
  if (!this.modules.some((m) => `${m.properties.packageName}/${m.module.name}` === moduleName)) {
148
208
  this.modules.push({ hidden: true, instances: [], module, properties });
149
209
  }
150
210
  }
211
+ /**
212
+ * @internal
213
+ */
151
214
  registerHooks({ postCommitHooks, postModelActionHooks, postResourceActionHooks, preCommitHooks, preModelActionHooks, preResourceActionHooks, } = {}) {
152
215
  CommitHook.getInstance().collectHooks({ postHooks: postCommitHooks, preHooks: preCommitHooks });
153
216
  ModelActionHook.getInstance().collectHooks({
@@ -159,12 +222,18 @@ export class ModuleContainer {
159
222
  preHooks: preResourceActionHooks,
160
223
  });
161
224
  }
225
+ /**
226
+ * @internal
227
+ */
162
228
  reset() {
163
229
  for (const m of this.modules) {
164
230
  m.hidden = true;
165
231
  m.instances = [];
166
232
  }
167
233
  }
234
+ /**
235
+ * @internal
236
+ */
168
237
  unload(module) {
169
238
  const m = this.getMetadata(module);
170
239
  if (m) {
@@ -176,6 +245,9 @@ export class ModuleContainer {
176
245
  * @internal
177
246
  */
178
247
  let ModuleContainerFactory = class ModuleContainerFactory {
248
+ /**
249
+ * @internal
250
+ */
179
251
  static async create(forceNew = false) {
180
252
  const [eventService, inputService, overlayDataRepository] = await Promise.all([
181
253
  Container.getInstance().get(EventService),
@@ -1 +1 @@
1
- {"version":3,"file":"module.container.js","sourceRoot":"","sources":["../../src/modules/module.container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.container.js","sourceRoot":"","sources":["../../src/modules/module.container.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import type { Constructable, ModuleOutput, ModuleSchemaInputs, UnknownAnchor, UnknownModel, UnknownModule } from '../app.type.js';
1
+ import type { Constructable, ModuleSchemaInputs, UnknownAnchor, UnknownModel, UnknownModule } from '../app.type.js';
2
+ import { type Container } from '../functions/container/container.js';
2
3
  import type { DiffMetadata } from '../functions/diff/diff-metadata.js';
3
4
  import { Octo } from '../main.js';
4
- import type { App } from '../models/app/app.model.js';
5
+ import type { ValidateReport } from '../modes/validate.mode.js';
5
6
  import type { BaseAnchorSchema } from '../overlays/anchor.schema.js';
6
7
  import type { BaseResourceSchema } from '../resources/resource.schema.js';
7
8
  import type { IStateProvider } from '../services/state-management/state-provider.interface.js';
@@ -9,6 +10,11 @@ import { create } from '../utilities/test-helpers/test-models.js';
9
10
  import { createTestOverlays } from '../utilities/test-helpers/test-overlays.js';
10
11
  import { createResources, createTestResources } from '../utilities/test-helpers/test-resources.js';
11
12
  /**
13
+ * One module to load into a {@link TestModuleContainer} run.
14
+ *
15
+ * Set `hidden` to register the module without running it - use it for a module a test needs
16
+ * present but not applied, e.g. one that is only there to be found by a schema lookup.
17
+ *
12
18
  * @group Modules
13
19
  */
14
20
  export type TestModule<M extends UnknownModule> = {
@@ -18,39 +24,147 @@ export type TestModule<M extends UnknownModule> = {
18
24
  type: Constructable<M>;
19
25
  };
20
26
  /**
27
+ * The harness for testing a module.
28
+ *
29
+ * It runs your module through the real Octo lifecycle against an in-memory state provider, and hands
30
+ * back everything a test needs to assert on: the model and resource transactions, the generated HCL,
31
+ * and the resource responses. Create it inside a {@link TestContainer} so each test file is isolated.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const container = await TestContainer.create({ mocks: [] }, { factoryTimeoutInMs: 500 });
36
+ * const testModuleContainer = new TestModuleContainer(container);
37
+ * await testModuleContainer.initialize();
38
+ *
39
+ * const generator = testModuleContainer.runModules([
40
+ * { inputs: { name: 'test-app' }, moduleId: 'app', type: SimpleAppModule },
41
+ * ]);
42
+ * const { modelTransaction } = (await generator.next()).value;
43
+ * ```
44
+ *
21
45
  * @group Modules
22
46
  */
23
47
  export declare class TestModuleContainer {
24
- readonly octo: Octo;
48
+ private readonly container;
49
+ private readonly octo;
50
+ private previousHcl;
25
51
  private stateProvider;
26
- constructor();
27
- commit(app: App, { appLockId, enableResourceCapture, filterByModuleIds, skipResourceTransaction, }?: {
28
- appLockId?: string;
29
- enableResourceCapture?: boolean;
30
- filterByModuleIds?: string[];
31
- skipResourceTransaction?: boolean;
32
- }): Promise<{
33
- modelDiffs: DiffMetadata[][];
34
- modelTransaction: DiffMetadata[][];
35
- resourceDiffs: DiffMetadata[][];
36
- resourceTransaction: DiffMetadata[][];
37
- }>;
52
+ /**
53
+ * @param container The {@link TestContainer} this run resolves its services from.
54
+ */
55
+ constructor(container: Container);
56
+ /**
57
+ * To seed resources that already exist, as though the given module had produced them.
58
+ * Use it to stand up the prerequisites a module under test expects to find.
59
+ */
60
+ createResources(moduleId: string, args: Parameters<typeof createResources>[0], options?: Parameters<typeof createResources>[1]): Promise<ReturnType<typeof createResources>>;
61
+ /**
62
+ * To build a throwaway anchor for a test double, without declaring an anchor class.
63
+ */
38
64
  createTestAnchor<S extends BaseAnchorSchema & {
39
65
  parentInstance: UnknownModel;
40
66
  }>(anchorId: string, properties: S['properties'], parent: S['parentInstance']): UnknownAnchor;
67
+ /**
68
+ * To seed models, as though the given module had produced them.
69
+ * Each model gets a no-op action, so the models appear in a transaction without doing any work.
70
+ */
41
71
  createTestModels(moduleId: string, args: Parameters<typeof create>[0]): Promise<ReturnType<typeof create>>;
72
+ /**
73
+ * To seed overlays, as though the given module had produced them.
74
+ * An overlay given no actions gets a no-op one.
75
+ */
42
76
  createTestOverlays(moduleId: string, args: Parameters<typeof createTestOverlays>[0]): Promise<ReturnType<typeof createTestOverlays>>;
43
- createResources(moduleId: string, args: Parameters<typeof createResources>[0], options?: Parameters<typeof createResources>[1]): Promise<ReturnType<typeof createResources>>;
77
+ /**
78
+ * To seed resources, as though the given module had produced them.
79
+ * A resource given no actions gets a no-op one, unless terraform owns it.
80
+ */
44
81
  createTestResources<S extends BaseResourceSchema[]>(moduleId: string, args: Parameters<typeof createTestResources<S>>[0], options?: Parameters<typeof createTestResources>[1]): Promise<ReturnType<typeof createTestResources<S>>>;
45
- mapTransactionActions(transaction: DiffMetadata[][]): string[][];
82
+ /**
83
+ * Reduces a transaction's diffs, model or resource, to a stable digest you can snapshot:
84
+ * `+ <context>` (create), `- <context>` (delete), `^ <context>` (replace), `* <context>` (update).
85
+ *
86
+ * A diff is classified exactly as {@link Octo.validate} aggregates it, so a digest and a validate
87
+ * report of the same transaction never disagree. Only an add/delete of a `resourceId` creates or
88
+ * destroys a resource; an add/delete on any other field changes a resource that stays -
89
+ * re-pointing a `parent`, most commonly - and reads as an update.
90
+ *
91
+ * The digest has one entry per diff, not per resource, so a resource may appear more than once.
92
+ */
93
+ digestDiffs(diffs: DiffMetadata[][]): string[];
94
+ /**
95
+ * Boots Octo for the test. Call it once, before running any module.
96
+ *
97
+ * @param stateProvider Defaults to an in-memory {@link TestStateProvider}. Only the local and test
98
+ * providers are accepted - a test must never write to shared state.
99
+ * @param initializeInContainer Factories to resolve at boot. See {@link Octo.initialize}.
100
+ * @param excludeInContainer Factories to unregister at boot. See {@link Octo.initialize}.
101
+ */
46
102
  initialize(stateProvider?: IStateProvider, initializeInContainer?: Parameters<typeof Octo.prototype.initialize>[1], excludeInContainer?: Parameters<typeof Octo.prototype.initialize>[2]): Promise<void>;
47
- orderModules(modules: (Constructable<UnknownModule> | string)[]): Promise<void>;
48
- registerCapture<S extends BaseResourceSchema>(resourceContext: string, response: Partial<S['response']>): void;
49
- runModule<M extends UnknownModule>(module: TestModule<M>): Promise<{
50
- [key: string]: ModuleOutput<M>;
51
- }>;
52
- runModules<M extends UnknownModule>(modules: TestModule<M>[]): Promise<{
53
- [key: string]: ModuleOutput<M>;
54
- }>;
103
+ /**
104
+ * Whether the committed resource state matches the previous one, i.e. whether the last run
105
+ * settled without leaving a pending change.
106
+ */
107
+ isResourceStateEqual(): Promise<boolean>;
108
+ /**
109
+ * Reduces a transaction to the names of the actions it ran, in order. Snapshot it to assert that
110
+ * a change triggered the actions you expected.
111
+ */
112
+ mapTransactionActions(transaction: DiffMetadata[][]): string[][];
113
+ /**
114
+ * See {@link Octo.registerHooks}.
115
+ */
116
+ registerHooks(...args: Parameters<Octo['registerHooks']>): ReturnType<Octo['registerHooks']>;
117
+ /**
118
+ * See {@link Octo.registerTags}.
119
+ */
120
+ registerTags(...args: Parameters<Octo['registerTags']>): ReturnType<Octo['registerTags']>;
121
+ /**
122
+ * See {@link Octo.registerTerraformConfig}. Required before a run that generates terraform.
123
+ */
124
+ registerTerraformConfig(...args: Parameters<Octo['registerTerraformConfig']>): ReturnType<Octo['registerTerraformConfig']>;
125
+ /**
126
+ * See {@link Octo.registerTerraformProvider}. Required before a run that generates terraform.
127
+ */
128
+ registerTerraformProvider(...args: Parameters<Octo['registerTerraformProvider']>): ReturnType<Octo['registerTerraformProvider']>;
129
+ /**
130
+ * Tears down the composed graph - models, overlays, inputs, and modules - so the next
131
+ * {@link TestModuleContainer.runModules} composes fresh. Call it in your test teardown.
132
+ */
55
133
  reset(): Promise<void>;
134
+ /**
135
+ * Runs the given modules through Octo's lifecycle, and yields the result once.
136
+ *
137
+ * How far the lifecycle goes is set by `terraformTarget`, and this is the choice that decides what
138
+ * the test costs:
139
+ * - `'skip'` - composes and commits in memory. No terraform, no cloud. This is a unit test.
140
+ * - `'plan'` - generates the module folders and runs `terraform plan` against them.
141
+ * - `'apply'` - generates, plans, applies, and commits. **This creates real infrastructure.**
142
+ *
143
+ * @param modules The modules to load, in order.
144
+ * @param options `filterByModuleIds` narrows the run to those modules; `outputDir` is where the
145
+ * terraform folders are written, defaulting to a temporary directory.
146
+ */
147
+ runModules<M extends UnknownModule>(modules: TestModule<M> | TestModule<M>[], { filterByModuleIds, outputDir, terraformTarget, }?: {
148
+ filterByModuleIds?: string[];
149
+ outputDir?: string;
150
+ terraformTarget?: 'apply' | 'plan' | 'skip';
151
+ }): AsyncGenerator<{
152
+ hclDiff: string;
153
+ hclRender: string;
154
+ modelTransaction: DiffMetadata[][];
155
+ resourceDiffs: DiffMetadata[][];
156
+ resourceTransaction: DiffMetadata[][];
157
+ responses: {
158
+ [resourceContext: string]: unknown;
159
+ };
160
+ validateReport: ValidateReport | undefined;
161
+ warnings: {
162
+ message: string;
163
+ moduleId?: string;
164
+ }[];
165
+ }>;
166
+ /**
167
+ * Persists the run's state, so a later run in the same test diffs against it.
168
+ */
169
+ private commit;
56
170
  }