@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
@@ -0,0 +1,44 @@
1
+ import type { UnknownResource } from '../app.type.js';
2
+ import { type Diff } from '../functions/diff/diff.js';
3
+ import type { TerraformModuleScope } from '../services/terraform/terraform.service.js';
4
+ import { AResource } from './resource.abstract.js';
5
+ import type { BaseResourceSchema } from './resource.schema.js';
6
+ /**
7
+ * Base class for resources whose lifecycle is managed by Terraform.
8
+ *
9
+ * Subclasses implement `toHCL()` to contribute terraform resource blocks and outputs.
10
+ * Octo invokes `toHCL()` automatically while generating terraform files.
11
+ * The received scope is bound to the module folder this resource belongs to.
12
+ *
13
+ * Terraform resources cannot have resource actions; registering one throws.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * override async toHCL(terraform: TerraformModuleScope): Promise<void> {
18
+ * const scope = terraform.addOctoTerraformResource(this, {
19
+ * provider: { accountId: this.properties.awsAccountId, regionId: this.properties.awsRegionId },
20
+ * });
21
+ * const bucket = scope.addTerraformResource('aws_s3_bucket', this.resourceId, {
22
+ * bucket: this.properties.bucketName,
23
+ * });
24
+ * scope.output({ arn: terraform.raw(`${bucket.address}.arn`) });
25
+ * }
26
+ * ```
27
+ *
28
+ * @group Resources
29
+ *
30
+ * @see {@link TerraformModuleScope} for what `toHCL()` can emit.
31
+ * @see Definition of [Resources](/docs/fundamentals/resources).
32
+ */
33
+ export declare abstract class ATerraformResource<S extends BaseResourceSchema, T extends UnknownResource> extends AResource<S, T> {
34
+ /**
35
+ * @internal
36
+ */
37
+ diffInverse(diff: Diff, deReferenceResource: (context: string) => Promise<UnknownResource>): Promise<void>;
38
+ /**
39
+ * Emits this resource as terraform.
40
+ *
41
+ * @param terraform The module folder to write into, already scoped to this resource's module.
42
+ */
43
+ abstract toHCL(terraform: TerraformModuleScope): Promise<void> | void;
44
+ }
@@ -0,0 +1,45 @@
1
+ import { DiffAction } from '../functions/diff/diff.js';
2
+ import { AResource } from './resource.abstract.js';
3
+ /**
4
+ * Base class for resources whose lifecycle is managed by Terraform.
5
+ *
6
+ * Subclasses implement `toHCL()` to contribute terraform resource blocks and outputs.
7
+ * Octo invokes `toHCL()` automatically while generating terraform files.
8
+ * The received scope is bound to the module folder this resource belongs to.
9
+ *
10
+ * Terraform resources cannot have resource actions; registering one throws.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * override async toHCL(terraform: TerraformModuleScope): Promise<void> {
15
+ * const scope = terraform.addOctoTerraformResource(this, {
16
+ * provider: { accountId: this.properties.awsAccountId, regionId: this.properties.awsRegionId },
17
+ * });
18
+ * const bucket = scope.addTerraformResource('aws_s3_bucket', this.resourceId, {
19
+ * bucket: this.properties.bucketName,
20
+ * });
21
+ * scope.output({ arn: terraform.raw(`${bucket.address}.arn`) });
22
+ * }
23
+ * ```
24
+ *
25
+ * @group Resources
26
+ *
27
+ * @see {@link TerraformModuleScope} for what `toHCL()` can emit.
28
+ * @see Definition of [Resources](/docs/fundamentals/resources).
29
+ */
30
+ export class ATerraformResource extends AResource {
31
+ /**
32
+ * @internal
33
+ */
34
+ async diffInverse(diff, deReferenceResource) {
35
+ if (diff.action === DiffAction.VALIDATE) {
36
+ return;
37
+ }
38
+ if (diff.field === 'resourceId' && diff.action === DiffAction.DELETE) {
39
+ this.remove(true);
40
+ return;
41
+ }
42
+ await this.cloneResourceInPlace(diff.node, deReferenceResource);
43
+ }
44
+ }
45
+ //# sourceMappingURL=terraform-resource.abstract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform-resource.abstract.js","sourceRoot":"","sources":["../../src/resources/terraform-resource.abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAgB,kBAA4E,SAAQ,SAGzG;IACC;;OAEG;IACM,KAAK,CAAC,WAAW,CACxB,IAAU,EACV,mBAAkE;QAElE,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAS,EAAE,mBAAmB,CAAC,CAAC;IACvE,CAAC;CAQF"}
@@ -1,23 +1,50 @@
1
- import type { Constructable } from '../../app.type.js';
1
+ import type { AbstractConstructable } from '../../app.type.js';
2
2
  import { Event } from '../../events/index.js';
3
3
  /**
4
4
  * @internal
5
5
  */
6
6
  export declare class EventService {
7
- private readonly EVENT_BUFFER_SIZE;
7
+ private static instance;
8
8
  private readonly emitter;
9
+ private readonly EVENT_BUFFER_SIZE;
9
10
  private readonly eventBuffer;
10
- private static instance;
11
11
  private readonly listeners;
12
+ /**
13
+ * @internal
14
+ */
12
15
  constructor();
16
+ /**
17
+ * @internal
18
+ */
19
+ static getInstance(): EventService;
20
+ /**
21
+ * @internal
22
+ */
13
23
  emit(event: Event<unknown>): void;
24
+ /**
25
+ * Emits an event and waits for every matching listener to settle, throwing the first failure.
26
+ * Unlike {@link emit}, which is fire-and-forget.
27
+ */
28
+ emitAndWait(event: Event<unknown>): Promise<void>;
29
+ /**
30
+ * @internal
31
+ */
14
32
  forwardEvent(event: Event<unknown>, listeners?: ((event: Event<unknown>) => Promise<any>)[]): void;
15
- static getInstance(): EventService;
16
- registerListeners(eventClass: Constructable<Event<unknown>>, target: any, descriptor: PropertyDescriptor): void;
33
+ /**
34
+ * @internal
35
+ */
36
+ registerListeners(eventClass: AbstractConstructable<Event<unknown>>, target: any, descriptor: PropertyDescriptor): void;
37
+ /**
38
+ * @internal
39
+ */
40
+ private bufferEvent;
17
41
  }
18
42
  /**
19
43
  * @internal
20
44
  */
21
45
  export declare class EventServiceFactory {
46
+ /**
47
+ * @internal
48
+ */
22
49
  static create(): Promise<EventService>;
23
50
  }
@@ -12,27 +12,58 @@ import { Container } from '../../functions/container/container.js';
12
12
  * @internal
13
13
  */
14
14
  export class EventService {
15
+ /**
16
+ * @internal
17
+ */
15
18
  constructor() {
16
- this.EVENT_BUFFER_SIZE = 50;
17
19
  this.emitter = new EventEmitter();
20
+ this.EVENT_BUFFER_SIZE = 50;
18
21
  this.eventBuffer = {};
19
22
  this.listeners = {};
20
23
  this.emitter.on('*', (event) => {
21
- // Save event to EventBuffer.
22
- if (!this.eventBuffer[event.constructor.name]) {
23
- this.eventBuffer[event.constructor.name] = { eventClass: Object.getPrototypeOf(event).constructor, events: [] };
24
- }
25
- if (this.eventBuffer[event.constructor.name].events.length >= this.EVENT_BUFFER_SIZE) {
26
- this.eventBuffer[event.constructor.name].events.shift();
27
- }
28
- this.eventBuffer[event.constructor.name].events.push(event);
24
+ this.bufferEvent(event);
29
25
  // Forward event to matching listeners.
30
26
  this.forwardEvent(event);
31
27
  });
32
28
  }
29
+ /**
30
+ * @internal
31
+ */
32
+ static getInstance() {
33
+ if (!this.instance) {
34
+ this.instance = new EventService();
35
+ }
36
+ return this.instance;
37
+ }
38
+ /**
39
+ * @internal
40
+ */
33
41
  emit(event) {
34
42
  this.emitter.emit('*', event);
35
43
  }
44
+ /**
45
+ * Emits an event and waits for every matching listener to settle, throwing the first failure.
46
+ * Unlike {@link emit}, which is fire-and-forget.
47
+ */
48
+ async emitAndWait(event) {
49
+ this.bufferEvent(event);
50
+ const pending = [];
51
+ for (const eventClassName of Object.keys(this.listeners)) {
52
+ if (event instanceof this.listeners[eventClassName].eventClass) {
53
+ for (const listener of this.listeners[eventClassName].eventListeners) {
54
+ pending.push(listener(event));
55
+ }
56
+ }
57
+ }
58
+ const results = await Promise.allSettled(pending);
59
+ const failure = results.find((result) => result.status === 'rejected');
60
+ if (failure) {
61
+ throw failure.reason;
62
+ }
63
+ }
64
+ /**
65
+ * @internal
66
+ */
36
67
  forwardEvent(event, listeners = []) {
37
68
  if (!listeners.length) {
38
69
  for (const eventClassName of Object.keys(this.listeners)) {
@@ -53,13 +84,9 @@ export class EventService {
53
84
  }
54
85
  }
55
86
  }
56
- static getInstance() {
57
- if (!this.instance) {
58
- this.instance = new EventService();
59
- }
60
- return this.instance;
61
- }
62
- // TODO: https://github.com/quadnix/octo/issues/6
87
+ /**
88
+ * @internal
89
+ */
63
90
  registerListeners(eventClass, target, descriptor) {
64
91
  if (!this.listeners[eventClass.name]) {
65
92
  this.listeners[eventClass.name] = { eventClass, eventListeners: [] };
@@ -84,11 +111,26 @@ export class EventService {
84
111
  }
85
112
  }
86
113
  }
114
+ /**
115
+ * @internal
116
+ */
117
+ bufferEvent(event) {
118
+ if (!this.eventBuffer[event.constructor.name]) {
119
+ this.eventBuffer[event.constructor.name] = { eventClass: Object.getPrototypeOf(event).constructor, events: [] };
120
+ }
121
+ if (this.eventBuffer[event.constructor.name].events.length >= this.EVENT_BUFFER_SIZE) {
122
+ this.eventBuffer[event.constructor.name].events.shift();
123
+ }
124
+ this.eventBuffer[event.constructor.name].events.push(event);
125
+ }
87
126
  }
88
127
  /**
89
128
  * @internal
90
129
  */
91
130
  let EventServiceFactory = class EventServiceFactory {
131
+ /**
132
+ * @internal
133
+ */
92
134
  static async create() {
93
135
  return EventService.getInstance();
94
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event.service.js","sourceRoot":"","sources":["../../../src/services/event/event.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event.service.js","sourceRoot":"","sources":["../../../src/services/event/event.service.ts"],"names":[],"mappings":"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"}
@@ -12,16 +12,54 @@ export declare class InputService {
12
12
  private models;
13
13
  private modules;
14
14
  private overlays;
15
+ private resourceCreators;
16
+ private resourceModels;
15
17
  private resources;
16
18
  private tags;
19
+ /**
20
+ * @internal
21
+ */
17
22
  constructor(overlayDataRepository: OverlayDataRepository, resourceDataRepository: ResourceDataRepository);
23
+ /**
24
+ * @internal
25
+ */
18
26
  getAllNodeKeys(moduleId: string): string[];
27
+ /**
28
+ * @internal
29
+ */
30
+ getCreatorFromResource(resource: UnknownResource): string | undefined;
31
+ /**
32
+ * @internal
33
+ */
19
34
  getMetadataKeys(moduleId: string): string[];
35
+ /**
36
+ * @internal
37
+ */
38
+ getModelsFromResource(resource: UnknownResource): string[];
39
+ /**
40
+ * @internal
41
+ */
20
42
  getModule<M extends UnknownModule>(moduleId: string): M | undefined;
21
- getModuleIdFromModel(model: UnknownModel): string;
22
- getModuleIdFromOverlay(overlay: UnknownOverlay): string;
23
- getModuleIdFromResource(resource: UnknownResource): string;
43
+ /**
44
+ * @internal
45
+ */
46
+ getModuleIdFromModel(model: UnknownModel): string | undefined;
47
+ /**
48
+ * @internal
49
+ */
50
+ getModuleIdFromOverlay(overlay: UnknownOverlay): string | undefined;
51
+ /**
52
+ * @internal
53
+ */
54
+ getModuleIdFromResource(resource: UnknownResource): string | undefined;
55
+ /**
56
+ * @internal
57
+ */
24
58
  getModuleResources(moduleId: string): UnknownResource[];
59
+ /**
60
+ * Returns the root model of the graph - the one and only `App` registered by any module.
61
+ */
62
+ getRootModel(): UnknownModel;
25
63
  /**
26
64
  * Registers the inputs passed to an instance of module.
27
65
  * It maps the input key provided to the module with the input value.
@@ -29,12 +67,18 @@ export declare class InputService {
29
67
  * another input, module, overlay, or resource.
30
68
  */
31
69
  registerInput(moduleId: string, key: string, value: unknown): void;
70
+ /**
71
+ * @internal
72
+ */
32
73
  registerMetadata(moduleId: string, key: string, value: unknown): void;
33
74
  /**
34
75
  * Registers the model generated by an instance of module.
35
76
  * The key is a reference to the model generated by the module, and maps directly to the model instance.
36
77
  */
37
78
  registerModel(moduleId: string, model: UnknownModel): void;
79
+ /**
80
+ * @internal
81
+ */
38
82
  registerModule(moduleId: string, module: UnknownModule): void;
39
83
  /**
40
84
  * Registers the overlay generated by an instance of module.
@@ -43,9 +87,20 @@ export declare class InputService {
43
87
  registerOverlay(moduleId: string, overlay: UnknownOverlay): void;
44
88
  /**
45
89
  * Registers the resource generated by an instance of module.
46
- * The key is a reference to the resource generated by the module, and maps to the resource context.
90
+ * The key is a reference to the resource generated by the module, by its `localResourceId`, and maps
91
+ * to the resource context. A module's resources must have distinct `localResourceId`s, even in
92
+ * different scopes, since the module's actions find them by it. The `node` is the model or overlay
93
+ * whose action created the resource; a resource made outside an action has none.
94
+ */
95
+ registerResource(moduleId: string, resource: UnknownResource, node?: UnknownModel | UnknownOverlay): void;
96
+ /**
97
+ * Records that the action of a model or overlay produced a resource, which may already have been
98
+ * produced by another.
99
+ */
100
+ registerResourceModel(resource: UnknownResource, node: UnknownModel | UnknownOverlay): void;
101
+ /**
102
+ * @internal
47
103
  */
48
- registerResource(moduleId: string, resource: UnknownResource): void;
49
104
  registerTag(scope: true | {
50
105
  moduleId: string;
51
106
  } | {
@@ -54,7 +109,20 @@ export declare class InputService {
54
109
  }, tags: {
55
110
  [key: string]: string;
56
111
  }): void;
112
+ /**
113
+ * @internal
114
+ */
57
115
  resolve(key: string): unknown | undefined;
116
+ /**
117
+ * Whether the model, overlay or resource a key such as `module.model.region` names exists.
118
+ */
119
+ private hasNode;
120
+ /**
121
+ * Refuses an input pointing to what does not exist. A module's models, overlays and resources exist
122
+ * once it has run, and modules run in the order of their types, so the usual cause is a module
123
+ * whose type is ordered after the type of the module referring to it.
124
+ */
125
+ private refuseMissingReference;
58
126
  /**
59
127
  * Given an input key, returns the resolved input key.
60
128
  * An input key is resolved when the value is not a pointer to another input.
@@ -63,7 +131,13 @@ export declare class InputService {
63
131
  * This method traverses the value of the input key recursively until it is resolved.
64
132
  */
65
133
  private resolveInputKey;
134
+ /**
135
+ * @internal
136
+ */
66
137
  private resolveInputValue;
138
+ /**
139
+ * @internal
140
+ */
67
141
  private resolveObjectPath;
68
142
  }
69
143
  /**
@@ -71,5 +145,8 @@ export declare class InputService {
71
145
  */
72
146
  export declare class InputServiceFactory {
73
147
  private static instance;
148
+ /**
149
+ * @internal
150
+ */
74
151
  static create(forceNew?: boolean): Promise<InputService>;
75
152
  }