@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,55 @@
1
+ import { Event } from './event.model.js';
2
+ /**
3
+ * The TerraformEvent class is the superclass for all events in relation to terraform and terragrunt.
4
+ *
5
+ * @group Events/Terraform
6
+ */
7
+ export class TerraformEvent extends Event {
8
+ }
9
+ /**
10
+ * This event is emitted when generate finishes writing terragrunt module folders.
11
+ * `emptied` lists folders written without resources, because their module left intent.
12
+ *
13
+ * @group Events/Terraform
14
+ */
15
+ export class TerraformFoldersWrittenEvent extends TerraformEvent {
16
+ }
17
+ /**
18
+ * This event is emitted before a terraform/terragrunt command is invoked.
19
+ *
20
+ * @group Events/Terraform
21
+ */
22
+ export class TerraformCommandStartedEvent extends TerraformEvent {
23
+ }
24
+ /**
25
+ * This event is emitted after a terraform/terragrunt command returns, whatever its exit code.
26
+ *
27
+ * @group Events/Terraform
28
+ */
29
+ export class TerraformCommandFinishedEvent extends TerraformEvent {
30
+ }
31
+ /**
32
+ * This event is emitted when octo starts a terraform or terragrunt process, before it writes anything.
33
+ * `processId` tells apart the processes of one octo process: a JSON plan runs a plan and a show in
34
+ * every folder.
35
+ *
36
+ * @group Events/Terraform
37
+ */
38
+ export class TerraformProcessStartedEvent extends TerraformEvent {
39
+ }
40
+ /**
41
+ * This event is emitted for every chunk a terraform or terragrunt process writes, as it writes it.
42
+ *
43
+ * @group Events/Terraform
44
+ */
45
+ export class TerraformProcessOutputEvent extends TerraformEvent {
46
+ }
47
+ /**
48
+ * This event is emitted after every terraform or terragrunt process exits, whatever its exit code.
49
+ * `exitCode` is -1 for a process that could not start or was killed.
50
+ *
51
+ * @group Events/Terraform
52
+ */
53
+ export class TerraformProcessExitedEvent extends TerraformEvent {
54
+ }
55
+ //# sourceMappingURL=terraform.event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform.event.js","sourceRoot":"","sources":["../../src/events/terraform.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;GAIG;AACH,MAAM,OAAgB,cAA8B,SAAQ,KAAQ;CAAG;AAEvE;;;;;GAKG;AACH,MAAM,OAAO,4BAA6B,SAAQ,cAIhD;CAAG;AAEL;;;;GAIG;AACH,MAAM,OAAO,4BAA6B,SAAQ,cAAgD;CAAG;AAErG;;;;GAIG;AACH,MAAM,OAAO,6BAA8B,SAAQ,cAKjD;CAAG;AAEL;;;;;;GAMG;AACH,MAAM,OAAO,4BAA6B,SAAQ,cAKhD;CAAG;AAEL;;;;GAIG;AACH,MAAM,OAAO,2BAA4B,SAAQ,cAI/C;CAAG;AAEL;;;;;GAKG;AACH,MAAM,OAAO,2BAA4B,SAAQ,cAG/C;CAAG"}
@@ -1,31 +1,24 @@
1
1
  import type { DiffMetadata } from '../functions/diff/diff-metadata.js';
2
- import type { BaseResourceSchema } from '../resources/resource.schema.js';
3
2
  import { Event } from './event.model.js';
4
3
  /**
5
4
  * The TransactionEvent class is the superclass for all events in relation to transactions.
6
5
  * A transaction processes actions generated from model and resource diffs.
7
6
  *
8
7
  * @group Events/Transaction
9
- *
10
- * @returns The Event instance.
11
8
  */
12
- export declare class TransactionEvent<T> extends Event<T> {
9
+ export declare abstract class TransactionEvent<T> extends Event<T> {
13
10
  }
14
11
  /**
15
- * This event is emitted when a model action in a transaction is done executing.
12
+ * This event is emitted when a model action in a transaction is done executing, with the diff it handled.
16
13
  *
17
14
  * @group Events/Transaction
18
- *
19
- * @returns The Event instance.
20
15
  */
21
- export declare class ModelActionTransactionEvent extends TransactionEvent<void> {
16
+ export declare class ModelActionTransactionEvent extends TransactionEvent<DiffMetadata> {
22
17
  }
23
18
  /**
24
19
  * This event is emitted when transaction prepares a model diff.
25
20
 
26
21
  * @group Events/Transaction
27
- *
28
- * @returns The Event instance.
29
22
  */
30
23
  export declare class ModelDiffsTransactionEvent extends TransactionEvent<DiffMetadata[][]> {
31
24
  }
@@ -33,8 +26,6 @@ export declare class ModelDiffsTransactionEvent extends TransactionEvent<DiffMet
33
26
  * This event is emitted when transaction prepares a model transaction.
34
27
 
35
28
  * @group Events/Transaction
36
- *
37
- * @returns The Event instance.
38
29
  */
39
30
  export declare class ModelTransactionTransactionEvent extends TransactionEvent<DiffMetadata[][]> {
40
31
  }
@@ -42,35 +33,13 @@ export declare class ModelTransactionTransactionEvent extends TransactionEvent<D
42
33
  * This event is emitted when a resource action in a transaction is done executing.
43
34
  *
44
35
  * @group Events/Transaction
45
- *
46
- * @returns The Event instance.
47
36
  */
48
37
  export declare class ResourceActionCompletedTransactionEvent extends TransactionEvent<DiffMetadata> {
49
38
  }
50
- /**
51
- * This event is emitted pre-transaction to provide information for resource actions about to be executed
52
- * in the transaction.
53
- *
54
- * @group Events/Transaction
55
- *
56
- * @returns The Event instance.
57
- */
58
- export declare class ResourceActionInformationTransactionEvent extends TransactionEvent<{
59
- action: {
60
- name: string;
61
- };
62
- capture?: {
63
- response: Partial<BaseResourceSchema['response']>;
64
- };
65
- diff: DiffMetadata;
66
- }> {
67
- }
68
39
  /**
69
40
  * This event is emitted when a resource action in a transaction begins executing.
70
41
  *
71
42
  * @group Events/Transaction
72
- *
73
- * @returns The Event instance.
74
43
  */
75
44
  export declare class ResourceActionInitiatedTransactionEvent extends TransactionEvent<DiffMetadata> {
76
45
  }
@@ -79,8 +48,6 @@ export declare class ResourceActionInitiatedTransactionEvent extends Transaction
79
48
  * It emits a summary of the action.
80
49
  *
81
50
  * @group Events/Transaction
82
- *
83
- * @returns The Event instance.
84
51
  */
85
52
  export declare class ResourceActionSummaryTransactionEvent extends TransactionEvent<{
86
53
  diff: DiffMetadata;
@@ -94,8 +61,6 @@ export declare class ResourceActionSummaryTransactionEvent extends TransactionEv
94
61
  * This event is emitted when transaction prepares a resource diff.
95
62
 
96
63
  * @group Events/Transaction
97
- *
98
- * @returns The Event instance.
99
64
  */
100
65
  export declare class ResourceDiffsTransactionEvent extends TransactionEvent<[DiffMetadata[][], DiffMetadata[][]]> {
101
66
  }
@@ -103,8 +68,6 @@ export declare class ResourceDiffsTransactionEvent extends TransactionEvent<[Dif
103
68
  * This event is emitted when transaction prepares a resource transaction.
104
69
 
105
70
  * @group Events/Transaction
106
- *
107
- * @returns The Event instance.
108
71
  */
109
72
  export declare class ResourceTransactionTransactionEvent extends TransactionEvent<[DiffMetadata[][], DiffMetadata[][]]> {
110
73
  }
@@ -4,17 +4,13 @@ import { Event } from './event.model.js';
4
4
  * A transaction processes actions generated from model and resource diffs.
5
5
  *
6
6
  * @group Events/Transaction
7
- *
8
- * @returns The Event instance.
9
7
  */
10
8
  export class TransactionEvent extends Event {
11
9
  }
12
10
  /**
13
- * This event is emitted when a model action in a transaction is done executing.
11
+ * This event is emitted when a model action in a transaction is done executing, with the diff it handled.
14
12
  *
15
13
  * @group Events/Transaction
16
- *
17
- * @returns The Event instance.
18
14
  */
19
15
  export class ModelActionTransactionEvent extends TransactionEvent {
20
16
  }
@@ -22,8 +18,6 @@ export class ModelActionTransactionEvent extends TransactionEvent {
22
18
  * This event is emitted when transaction prepares a model diff.
23
19
 
24
20
  * @group Events/Transaction
25
- *
26
- * @returns The Event instance.
27
21
  */
28
22
  export class ModelDiffsTransactionEvent extends TransactionEvent {
29
23
  }
@@ -31,8 +25,6 @@ export class ModelDiffsTransactionEvent extends TransactionEvent {
31
25
  * This event is emitted when transaction prepares a model transaction.
32
26
 
33
27
  * @group Events/Transaction
34
- *
35
- * @returns The Event instance.
36
28
  */
37
29
  export class ModelTransactionTransactionEvent extends TransactionEvent {
38
30
  }
@@ -40,27 +32,13 @@ export class ModelTransactionTransactionEvent extends TransactionEvent {
40
32
  * This event is emitted when a resource action in a transaction is done executing.
41
33
  *
42
34
  * @group Events/Transaction
43
- *
44
- * @returns The Event instance.
45
35
  */
46
36
  export class ResourceActionCompletedTransactionEvent extends TransactionEvent {
47
37
  }
48
- /**
49
- * This event is emitted pre-transaction to provide information for resource actions about to be executed
50
- * in the transaction.
51
- *
52
- * @group Events/Transaction
53
- *
54
- * @returns The Event instance.
55
- */
56
- export class ResourceActionInformationTransactionEvent extends TransactionEvent {
57
- }
58
38
  /**
59
39
  * This event is emitted when a resource action in a transaction begins executing.
60
40
  *
61
41
  * @group Events/Transaction
62
- *
63
- * @returns The Event instance.
64
42
  */
65
43
  export class ResourceActionInitiatedTransactionEvent extends TransactionEvent {
66
44
  }
@@ -69,8 +47,6 @@ export class ResourceActionInitiatedTransactionEvent extends TransactionEvent {
69
47
  * It emits a summary of the action.
70
48
  *
71
49
  * @group Events/Transaction
72
- *
73
- * @returns The Event instance.
74
50
  */
75
51
  export class ResourceActionSummaryTransactionEvent extends TransactionEvent {
76
52
  }
@@ -78,8 +54,6 @@ export class ResourceActionSummaryTransactionEvent extends TransactionEvent {
78
54
  * This event is emitted when transaction prepares a resource diff.
79
55
 
80
56
  * @group Events/Transaction
81
- *
82
- * @returns The Event instance.
83
57
  */
84
58
  export class ResourceDiffsTransactionEvent extends TransactionEvent {
85
59
  }
@@ -87,8 +61,6 @@ export class ResourceDiffsTransactionEvent extends TransactionEvent {
87
61
  * This event is emitted when transaction prepares a resource transaction.
88
62
 
89
63
  * @group Events/Transaction
90
- *
91
- * @returns The Event instance.
92
64
  */
93
65
  export class ResourceTransactionTransactionEvent extends TransactionEvent {
94
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.event.js","sourceRoot":"","sources":["../../src/events/transaction.event.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAoB,SAAQ,KAAQ;CAAG;AAEpD;;;;;;GAMG;AACH,MAAM,OAAO,2BAA4B,SAAQ,gBAAsB;CAAG;AAE1E;;;;;;GAMG;AACH,MAAM,OAAO,0BAA2B,SAAQ,gBAAkC;CAAG;AAErF;;;;;;GAMG;AACH,MAAM,OAAO,gCAAiC,SAAQ,gBAAkC;CAAG;AAE3F;;;;;;GAMG;AACH,MAAM,OAAO,uCAAwC,SAAQ,gBAA8B;CAAG;AAE9F;;;;;;;GAOG;AACH,MAAM,OAAO,yCAA0C,SAAQ,gBAI7D;CAAG;AAEL;;;;;;GAMG;AACH,MAAM,OAAO,uCAAwC,SAAQ,gBAA8B;CAAG;AAE9F;;;;;;;GAOG;AACH,MAAM,OAAO,qCAAsC,SAAQ,gBAGzD;CAAG;AAEL;;;;;;GAMG;AACH,MAAM,OAAO,6BAA8B,SAAQ,gBAAsD;CAAG;AAE5G;;;;;;GAMG;AACH,MAAM,OAAO,mCAAoC,SAAQ,gBAAsD;CAAG"}
1
+ {"version":3,"file":"transaction.event.js","sourceRoot":"","sources":["../../src/events/transaction.event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,OAAgB,gBAAoB,SAAQ,KAAQ;CAAG;AAE7D;;;;GAIG;AACH,MAAM,OAAO,2BAA4B,SAAQ,gBAA8B;CAAG;AAElF;;;;GAIG;AACH,MAAM,OAAO,0BAA2B,SAAQ,gBAAkC;CAAG;AAErF;;;;GAIG;AACH,MAAM,OAAO,gCAAiC,SAAQ,gBAAkC;CAAG;AAE3F;;;;GAIG;AACH,MAAM,OAAO,uCAAwC,SAAQ,gBAA8B;CAAG;AAE9F;;;;GAIG;AACH,MAAM,OAAO,uCAAwC,SAAQ,gBAA8B;CAAG;AAE9F;;;;;GAKG;AACH,MAAM,OAAO,qCAAsC,SAAQ,gBAGzD;CAAG;AAEL;;;;GAIG;AACH,MAAM,OAAO,6BAA8B,SAAQ,gBAAsD;CAAG;AAE5G;;;;GAIG;AACH,MAAM,OAAO,mCAAoC,SAAQ,gBAAsD;CAAG"}
@@ -21,17 +21,28 @@ type FactoryContainer<T> = {
21
21
  * @group Functions/Container
22
22
  */
23
23
  export declare class Container {
24
- private FACTORY_TIMEOUT_IN_MS;
25
- private readonly factories;
26
24
  private static instance;
25
+ private readonly factories;
26
+ private FACTORY_TIMEOUT_IN_MS;
27
27
  private readonly startupUnhandledPromises;
28
+ /**
29
+ * @internal
30
+ */
28
31
  private constructor();
32
+ /**
33
+ * The Container is a singleton - this is how you reach it.
34
+ */
35
+ static getInstance(): Container;
36
+ /**
37
+ * @internal
38
+ */
29
39
  copyFactories(): {
30
40
  [key: string]: FactoryContainer<unknown>[];
31
41
  };
32
42
  /**
33
- * `container.get()` allows to get an instance of a class using its factory.
34
- * If the factory is not yet registered, it places a blocking promise in the queue to wait for the registration.
43
+ * To get an instance of a class from its factory.
44
+ * If the factory is not registered yet, this waits for it, and times out - see
45
+ * {@link Container.setFactoryTimeout}.
35
46
  *
36
47
  * @param type The type or name of the class to get.
37
48
  * @param options Allows selection of a specific factory to use to get the instance.
@@ -45,14 +56,17 @@ export declare class Container {
45
56
  [key: string]: string;
46
57
  };
47
58
  }): Promise<T>;
48
- static getInstance(): Container;
59
+ /**
60
+ * Whether a factory is registered for the class.
61
+ */
49
62
  has<T>(type: Constructable<T> | string, options?: {
50
63
  metadata?: {
51
64
  [key: string]: string;
52
65
  };
53
66
  }): boolean;
54
67
  /**
55
- * `Container.registerFactory()` allows to register a factory for a class.
68
+ * To register a factory for a class. Prefer the {@link Factory} decorator; call this directly only
69
+ * when the factory is built at runtime.
56
70
  *
57
71
  * @param type The type or name of the class for which the factory is registered.
58
72
  * @param factory The factory class being registered.
@@ -64,37 +78,64 @@ export declare class Container {
64
78
  [key: string]: string;
65
79
  };
66
80
  }): void;
81
+ /**
82
+ * @internal
83
+ */
84
+ registerStartupUnhandledPromise<T>(promise: Promise<T>): void;
85
+ /**
86
+ * To register a ready-made instance, instead of a factory that builds one.
87
+ */
67
88
  registerValue<T>(type: Constructable<T> | string, value: T, options?: {
68
89
  metadata?: {
69
90
  [key: string]: string;
70
91
  };
71
92
  }): void;
72
- registerStartupUnhandledPromise<T>(promise: Promise<T>): void;
73
93
  /**
74
- * `Container.reset()` clears all registered factories and empties the container. This is mostly used in testing.
94
+ * To register a ready-made instance over whatever is already registered under the same type and
95
+ * metadata, rather than refusing as {@link Container.registerValue} does.
96
+ *
97
+ * Registering once is the right default - two factories for one type is usually a mistake. This is
98
+ * for the callers that legitimately register the same thing more than once: a module whose
99
+ * `onInit` runs on every `compose()`, and a test replacing a factory with a mock.
100
+ */
101
+ replaceValue<T>(type: Constructable<T> | string, value: T, options?: {
102
+ metadata?: {
103
+ [key: string]: string;
104
+ };
105
+ }): void;
106
+ /**
107
+ * To clear every registered factory and empty the container. Mostly used in testing.
75
108
  */
76
109
  reset(): void;
110
+ /**
111
+ * @internal
112
+ */
77
113
  setFactories(factories: {
78
114
  [key: string]: FactoryContainer<unknown>[];
79
115
  }): void;
80
116
  /**
81
- * The Container, by default, will wait a maximum of 5 seconds for a factory to resolve and provide an instance.
82
- * This method allows to change that timeout.
117
+ * To change how long `get()` waits for a factory to be registered.
83
118
  *
119
+ * @defaultValue `3000`
84
120
  * @param timeoutInMs The timeout in milliseconds.
121
+ *
85
122
  */
86
123
  setFactoryTimeout(timeoutInMs: number): void;
87
124
  /**
88
- * `Container.unRegisterFactory()` will unregister all factories of a class.
125
+ * To unregister a class's factories, so that your own can take their place.
89
126
  *
90
- * @param type The type or name of the class for which all factory is unregistered.
91
- * @param options
127
+ * @param type The type or name of the class whose factories are unregistered.
128
+ * @param options Pass `metadata` to unregister one specific factory. Without it, all of the
129
+ * class's factories are unregistered.
92
130
  */
93
131
  unRegisterFactory<T>(type: Constructable<T> | string, options?: {
94
132
  metadata?: {
95
133
  [key: string]: string;
96
134
  };
97
135
  }): void;
136
+ /**
137
+ * @internal
138
+ */
98
139
  waitToResolveAllFactories(): Promise<void>;
99
140
  }
100
141
  export {};
@@ -1,5 +1,5 @@
1
1
  import { ContainerRegistrationError, ContainerResolutionError } from '../../errors/index.js';
2
- import { DiffUtility } from '../diff/diff.utility.js';
2
+ import { DiffUtility } from '../../utilities/diff/diff.utility.js';
3
3
  /**
4
4
  * The Container class is a box to hold all registered factories.
5
5
  *
@@ -12,11 +12,26 @@ import { DiffUtility } from '../diff/diff.utility.js';
12
12
  * @group Functions/Container
13
13
  */
14
14
  export class Container {
15
+ /**
16
+ * @internal
17
+ */
15
18
  constructor() {
16
- this.FACTORY_TIMEOUT_IN_MS = 3000;
17
19
  this.factories = {};
20
+ this.FACTORY_TIMEOUT_IN_MS = 3000;
18
21
  this.startupUnhandledPromises = [];
19
22
  }
23
+ /**
24
+ * The Container is a singleton - this is how you reach it.
25
+ */
26
+ static getInstance() {
27
+ if (!this.instance) {
28
+ this.instance = new Container();
29
+ }
30
+ return this.instance;
31
+ }
32
+ /**
33
+ * @internal
34
+ */
20
35
  copyFactories() {
21
36
  const newFactoriesCopy = {};
22
37
  for (const [type, factoryContainers] of Object.entries(this.factories)) {
@@ -31,8 +46,9 @@ export class Container {
31
46
  return newFactoriesCopy;
32
47
  }
33
48
  /**
34
- * `container.get()` allows to get an instance of a class using its factory.
35
- * If the factory is not yet registered, it places a blocking promise in the queue to wait for the registration.
49
+ * To get an instance of a class from its factory.
50
+ * If the factory is not registered yet, this waits for it, and times out - see
51
+ * {@link Container.setFactoryTimeout}.
36
52
  *
37
53
  * @param type The type or name of the class to get.
38
54
  * @param options Allows selection of a specific factory to use to get the instance.
@@ -76,12 +92,9 @@ export class Container {
76
92
  }
77
93
  return factory.create(...args);
78
94
  }
79
- static getInstance() {
80
- if (!this.instance) {
81
- this.instance = new Container();
82
- }
83
- return this.instance;
84
- }
95
+ /**
96
+ * Whether a factory is registered for the class.
97
+ */
85
98
  has(type, options) {
86
99
  const metadata = options?.metadata || {};
87
100
  const name = typeof type === 'string' ? type : type.name;
@@ -91,7 +104,8 @@ export class Container {
91
104
  return this.factories[name].some((f) => DiffUtility.isObjectDeepEquals(f.metadata, metadata));
92
105
  }
93
106
  /**
94
- * `Container.registerFactory()` allows to register a factory for a class.
107
+ * To register a factory for a class. Prefer the {@link Factory} decorator; call this directly only
108
+ * when the factory is built at runtime.
95
109
  *
96
110
  * @param type The type or name of the class for which the factory is registered.
97
111
  * @param factory The factory class being registered.
@@ -118,18 +132,41 @@ export class Container {
118
132
  }
119
133
  this.factories[name].push({ factory, metadata });
120
134
  }
135
+ /**
136
+ * @internal
137
+ */
138
+ registerStartupUnhandledPromise(promise) {
139
+ this.startupUnhandledPromises.push(promise);
140
+ }
141
+ /**
142
+ * To register a ready-made instance, instead of a factory that builds one.
143
+ */
121
144
  registerValue(type, value, options) {
122
145
  this.registerFactory(type, class {
146
+ /**
147
+ * @internal
148
+ */
123
149
  static async create() {
124
150
  return value;
125
151
  }
126
152
  }, options);
127
153
  }
128
- registerStartupUnhandledPromise(promise) {
129
- this.startupUnhandledPromises.push(promise);
154
+ /**
155
+ * To register a ready-made instance over whatever is already registered under the same type and
156
+ * metadata, rather than refusing as {@link Container.registerValue} does.
157
+ *
158
+ * Registering once is the right default - two factories for one type is usually a mistake. This is
159
+ * for the callers that legitimately register the same thing more than once: a module whose
160
+ * `onInit` runs on every `compose()`, and a test replacing a factory with a mock.
161
+ */
162
+ replaceValue(type, value, options) {
163
+ if (this.has(type, options)) {
164
+ this.unRegisterFactory(type, options);
165
+ }
166
+ this.registerValue(type, value, options);
130
167
  }
131
168
  /**
132
- * `Container.reset()` clears all registered factories and empties the container. This is mostly used in testing.
169
+ * To clear every registered factory and empty the container. Mostly used in testing.
133
170
  */
134
171
  reset() {
135
172
  this.FACTORY_TIMEOUT_IN_MS = 3000;
@@ -138,6 +175,9 @@ export class Container {
138
175
  }
139
176
  this.startupUnhandledPromises.splice(0, this.startupUnhandledPromises.length);
140
177
  }
178
+ /**
179
+ * @internal
180
+ */
141
181
  setFactories(factories) {
142
182
  for (const [type, factoryContainers] of Object.entries(factories)) {
143
183
  this.factories[type] = [];
@@ -150,19 +190,21 @@ export class Container {
150
190
  }
151
191
  }
152
192
  /**
153
- * The Container, by default, will wait a maximum of 5 seconds for a factory to resolve and provide an instance.
154
- * This method allows to change that timeout.
193
+ * To change how long `get()` waits for a factory to be registered.
155
194
  *
195
+ * @defaultValue `3000`
156
196
  * @param timeoutInMs The timeout in milliseconds.
197
+ *
157
198
  */
158
199
  setFactoryTimeout(timeoutInMs) {
159
200
  this.FACTORY_TIMEOUT_IN_MS = timeoutInMs;
160
201
  }
161
202
  /**
162
- * `Container.unRegisterFactory()` will unregister all factories of a class.
203
+ * To unregister a class's factories, so that your own can take their place.
163
204
  *
164
- * @param type The type or name of the class for which all factory is unregistered.
165
- * @param options
205
+ * @param type The type or name of the class whose factories are unregistered.
206
+ * @param options Pass `metadata` to unregister one specific factory. Without it, all of the
207
+ * class's factories are unregistered.
166
208
  */
167
209
  unRegisterFactory(type, options) {
168
210
  const name = typeof type === 'string' ? type : type.name;
@@ -176,6 +218,9 @@ export class Container {
176
218
  this.factories[name].splice(index, 1);
177
219
  }
178
220
  }
221
+ /**
222
+ * @internal
223
+ */
179
224
  async waitToResolveAllFactories() {
180
225
  const promiseToResolveAllFactories = [];
181
226
  for (const name of Object.keys(this.factories)) {
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/functions/container/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/functions/container/container.ts"],"names":[],"mappings":"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"}