@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.
- package/LICENSE +661 -0
- package/README.md +117 -8
- package/dist/app.type.d.ts +277 -19
- package/dist/app.type.js +80 -9
- package/dist/app.type.js.map +1 -1
- package/dist/decorators/action.decorator.d.ts +10 -6
- package/dist/decorators/action.decorator.js +19 -6
- package/dist/decorators/action.decorator.js.map +1 -1
- package/dist/decorators/anchor.decorator.d.ts +12 -5
- package/dist/decorators/anchor.decorator.js +12 -5
- package/dist/decorators/anchor.decorator.js.map +1 -1
- package/dist/decorators/enable-hook.decorator.d.ts +1 -1
- package/dist/decorators/enable-hook.decorator.js +1 -1
- package/dist/decorators/factory.decorator.d.ts +18 -34
- package/dist/decorators/factory.decorator.js +18 -34
- package/dist/decorators/factory.decorator.js.map +1 -1
- package/dist/decorators/model.decorator.d.ts +4 -6
- package/dist/decorators/model.decorator.js +2 -7
- package/dist/decorators/model.decorator.js.map +1 -1
- package/dist/decorators/module.decorator.d.ts +16 -10
- package/dist/decorators/module.decorator.js +16 -10
- package/dist/decorators/module.decorator.js.map +1 -1
- package/dist/decorators/on-event.decorator.d.ts +7 -2
- package/dist/decorators/on-event.decorator.js +5 -0
- package/dist/decorators/on-event.decorator.js.map +1 -1
- package/dist/decorators/resource.decorator.d.ts +50 -1
- package/dist/decorators/resource.decorator.js +38 -1
- package/dist/decorators/resource.decorator.js.map +1 -1
- package/dist/decorators/validate.decorator.d.ts +15 -1
- package/dist/decorators/validate.decorator.js +15 -1
- package/dist/decorators/validate.decorator.js.map +1 -1
- package/dist/errors/container.error.d.ts +18 -0
- package/dist/errors/container.error.js +18 -0
- package/dist/errors/container.error.js.map +1 -1
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.js +1 -0
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/module.error.d.ts +6 -0
- package/dist/errors/module.error.js +6 -0
- package/dist/errors/module.error.js.map +1 -1
- package/dist/errors/node.error.d.ts +56 -0
- package/dist/errors/node.error.js +56 -0
- package/dist/errors/node.error.js.map +1 -1
- package/dist/errors/schema.error.d.ts +14 -1
- package/dist/errors/schema.error.js +11 -1
- package/dist/errors/schema.error.js.map +1 -1
- package/dist/errors/terraform.error.d.ts +20 -0
- package/dist/errors/terraform.error.js +24 -0
- package/dist/errors/terraform.error.js.map +1 -0
- package/dist/errors/transaction.error.d.ts +93 -2
- package/dist/errors/transaction.error.js +83 -0
- package/dist/errors/transaction.error.js.map +1 -1
- package/dist/events/action.event.d.ts +8 -4
- package/dist/events/action.event.js +2 -4
- package/dist/events/action.event.js.map +1 -1
- package/dist/events/command.event.d.ts +43 -0
- package/dist/events/command.event.js +33 -0
- package/dist/events/command.event.js.map +1 -0
- package/dist/events/event.model.d.ts +26 -8
- package/dist/events/event.model.js +15 -7
- package/dist/events/event.model.js.map +1 -1
- package/dist/events/hook/commit.hook.event.d.ts +1 -7
- package/dist/events/hook/commit.hook.event.js +0 -6
- package/dist/events/hook/commit.hook.event.js.map +1 -1
- package/dist/events/hook/hook.event.d.ts +1 -3
- package/dist/events/hook/hook.event.js +0 -2
- package/dist/events/hook/hook.event.js.map +1 -1
- package/dist/events/hook/model.hook.event.d.ts +1 -7
- package/dist/events/hook/model.hook.event.js +0 -6
- package/dist/events/hook/model.hook.event.js.map +1 -1
- package/dist/events/hook/resource.hook.event.d.ts +1 -7
- package/dist/events/hook/resource.hook.event.js +0 -6
- package/dist/events/hook/resource.hook.event.js.map +1 -1
- package/dist/events/index.d.ts +5 -0
- package/dist/events/index.js +5 -0
- package/dist/events/index.js.map +1 -1
- package/dist/events/mode-result.event.d.ts +57 -0
- package/dist/events/mode-result.event.js +24 -0
- package/dist/events/mode-result.event.js.map +1 -0
- package/dist/events/mode.event.d.ts +61 -0
- package/dist/events/mode.event.js +32 -0
- package/dist/events/mode.event.js.map +1 -0
- package/dist/events/module.event.d.ts +7 -5
- package/dist/events/module.event.js +3 -4
- package/dist/events/module.event.js.map +1 -1
- package/dist/events/registration.event.d.ts +19 -15
- package/dist/events/registration.event.js +18 -14
- package/dist/events/registration.event.js.map +1 -1
- package/dist/events/serialization.event.d.ts +16 -13
- package/dist/events/serialization.event.js +15 -12
- package/dist/events/serialization.event.js.map +1 -1
- package/dist/events/state.event.d.ts +102 -0
- package/dist/events/state.event.js +69 -0
- package/dist/events/state.event.js.map +1 -0
- package/dist/events/terraform.event.d.ts +78 -0
- package/dist/events/terraform.event.js +55 -0
- package/dist/events/terraform.event.js.map +1 -0
- package/dist/events/transaction.event.d.ts +3 -40
- package/dist/events/transaction.event.js +1 -29
- package/dist/events/transaction.event.js.map +1 -1
- package/dist/functions/container/container.d.ts +54 -13
- package/dist/functions/container/container.js +64 -19
- package/dist/functions/container/container.js.map +1 -1
- package/dist/functions/container/test-container.d.ts +43 -29
- package/dist/functions/container/test-container.js +71 -43
- package/dist/functions/container/test-container.js.map +1 -1
- package/dist/functions/dependency/dependency.d.ts +84 -23
- package/dist/functions/dependency/dependency.js +84 -14
- package/dist/functions/dependency/dependency.js.map +1 -1
- package/dist/functions/diff/aggregate-resource-actions.d.ts +19 -0
- package/dist/functions/diff/aggregate-resource-actions.js +41 -0
- package/dist/functions/diff/aggregate-resource-actions.js.map +1 -0
- package/dist/functions/diff/diff-metadata.d.ts +21 -3
- package/dist/functions/diff/diff-metadata.js +18 -0
- package/dist/functions/diff/diff-metadata.js.map +1 -1
- package/dist/functions/diff/diff.d.ts +68 -7
- package/dist/functions/diff/diff.js +44 -3
- package/dist/functions/diff/diff.js.map +1 -1
- package/dist/functions/hook/commit.hook.d.ts +16 -1
- package/dist/functions/hook/commit.hook.js +21 -6
- package/dist/functions/hook/commit.hook.js.map +1 -1
- package/dist/functions/hook/model-action.hook.d.ts +16 -1
- package/dist/functions/hook/model-action.hook.js +21 -6
- package/dist/functions/hook/model-action.hook.js.map +1 -1
- package/dist/functions/hook/resource-action.hook.d.ts +16 -1
- package/dist/functions/hook/resource-action.hook.js +21 -6
- package/dist/functions/hook/resource-action.hook.js.map +1 -1
- package/dist/functions/node/node-action.abstract.d.ts +23 -2
- package/dist/functions/node/node-action.abstract.js +22 -8
- package/dist/functions/node/node-action.abstract.js.map +1 -1
- package/dist/functions/node/node.abstract.d.ts +56 -5
- package/dist/functions/node/node.abstract.js +106 -22
- package/dist/functions/node/node.abstract.js.map +1 -1
- package/dist/functions/node/node.interface.d.ts +3 -1
- package/dist/functions/schema/schema.d.ts +7 -0
- package/dist/functions/schema/schema.js +10 -1
- package/dist/functions/schema/schema.js.map +1 -1
- package/dist/index.d.ts +12 -6
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/dist/index.type.d.ts +5 -0
- package/dist/index.type.js +2 -0
- package/dist/index.type.js.map +1 -0
- package/dist/main.d.ts +245 -14
- package/dist/main.js +377 -72
- package/dist/main.js.map +1 -1
- package/dist/models/account/account.model.d.ts +43 -7
- package/dist/models/account/account.model.js +56 -8
- package/dist/models/account/account.model.js.map +1 -1
- package/dist/models/account/account.schema.d.ts +13 -1
- package/dist/models/account/account.schema.js +12 -0
- package/dist/models/account/account.schema.js.map +1 -1
- package/dist/models/app/app.model.d.ts +13 -8
- package/dist/models/app/app.model.js +17 -32
- package/dist/models/app/app.model.js.map +1 -1
- package/dist/models/app/app.schema.d.ts +6 -0
- package/dist/models/app/app.schema.js +6 -0
- package/dist/models/app/app.schema.js.map +1 -1
- package/dist/models/deployment/deployment.model.d.ts +13 -1
- package/dist/models/deployment/deployment.model.js +16 -4
- package/dist/models/deployment/deployment.model.js.map +1 -1
- package/dist/models/deployment/deployment.schema.d.ts +6 -0
- package/dist/models/deployment/deployment.schema.js +6 -0
- package/dist/models/deployment/deployment.schema.js.map +1 -1
- package/dist/models/environment/environment.model.d.ts +15 -3
- package/dist/models/environment/environment.model.js +22 -10
- package/dist/models/environment/environment.model.js.map +1 -1
- package/dist/models/environment/environment.schema.d.ts +2 -0
- package/dist/models/environment/environment.schema.js +2 -0
- package/dist/models/environment/environment.schema.js.map +1 -1
- package/dist/models/execution/execution.model.d.ts +21 -3
- package/dist/models/execution/execution.model.js +47 -29
- package/dist/models/execution/execution.model.js.map +1 -1
- package/dist/models/execution/execution.schema.d.ts +11 -0
- package/dist/models/execution/execution.schema.js +11 -0
- package/dist/models/execution/execution.schema.js.map +1 -1
- package/dist/models/filesystem/filesystem.model.d.ts +27 -1
- package/dist/models/filesystem/filesystem.model.js +30 -4
- package/dist/models/filesystem/filesystem.model.js.map +1 -1
- package/dist/models/filesystem/filesystem.schema.d.ts +5 -0
- package/dist/models/filesystem/filesystem.schema.js +5 -0
- package/dist/models/filesystem/filesystem.schema.js.map +1 -1
- package/dist/models/image/image.model.d.ts +19 -5
- package/dist/models/image/image.model.js +25 -11
- package/dist/models/image/image.model.js.map +1 -1
- package/dist/models/image/image.schema.d.ts +8 -0
- package/dist/models/image/image.schema.js +8 -0
- package/dist/models/image/image.schema.js.map +1 -1
- package/dist/models/model-action.interface.d.ts +17 -4
- package/dist/models/model.abstract.d.ts +96 -1
- package/dist/models/model.abstract.js +107 -8
- package/dist/models/model.abstract.js.map +1 -1
- package/dist/models/model.interface.d.ts +3 -0
- package/dist/models/pipeline/pipeline.model.d.ts +14 -2
- package/dist/models/pipeline/pipeline.model.js +19 -7
- package/dist/models/pipeline/pipeline.model.js.map +1 -1
- package/dist/models/pipeline/pipeline.schema.d.ts +8 -0
- package/dist/models/pipeline/pipeline.schema.js +8 -0
- package/dist/models/pipeline/pipeline.schema.js.map +1 -1
- package/dist/models/region/region.model.d.ts +16 -1
- package/dist/models/region/region.model.js +19 -4
- package/dist/models/region/region.model.js.map +1 -1
- package/dist/models/region/region.schema.d.ts +6 -0
- package/dist/models/region/region.schema.js +6 -0
- package/dist/models/region/region.schema.js.map +1 -1
- package/dist/models/server/server.model.d.ts +15 -3
- package/dist/models/server/server.model.js +18 -6
- package/dist/models/server/server.model.js.map +1 -1
- package/dist/models/server/server.schema.d.ts +3 -1
- package/dist/models/server/server.schema.js +3 -1
- package/dist/models/server/server.schema.js.map +1 -1
- package/dist/models/service/service.model.d.ts +37 -6
- package/dist/models/service/service.model.js +65 -11
- package/dist/models/service/service.model.js.map +1 -1
- package/dist/models/service/service.schema.d.ts +48 -1
- package/dist/models/service/service.schema.js +56 -1
- package/dist/models/service/service.schema.js.map +1 -1
- package/dist/models/subnet/subnet.model.d.ts +27 -3
- package/dist/models/subnet/subnet.model.js +40 -16
- package/dist/models/subnet/subnet.model.js.map +1 -1
- package/dist/models/subnet/subnet.schema.d.ts +9 -0
- package/dist/models/subnet/subnet.schema.js +9 -0
- package/dist/models/subnet/subnet.schema.js.map +1 -1
- package/dist/modes/apply-transaction.d.ts +23 -0
- package/dist/modes/apply-transaction.js +25 -0
- package/dist/modes/apply-transaction.js.map +1 -0
- package/dist/modes/commit.mode.d.ts +54 -0
- package/dist/modes/commit.mode.js +235 -0
- package/dist/modes/commit.mode.js.map +1 -0
- package/dist/modes/generate.mode.d.ts +30 -0
- package/dist/modes/generate.mode.js +50 -0
- package/dist/modes/generate.mode.js.map +1 -0
- package/dist/modes/run-action.mode.d.ts +30 -0
- package/dist/modes/run-action.mode.js +140 -0
- package/dist/modes/run-action.mode.js.map +1 -0
- package/dist/modes/validate.mode.d.ts +186 -0
- package/dist/modes/validate.mode.js +558 -0
- package/dist/modes/validate.mode.js.map +1 -0
- package/dist/modules/module.abstract.d.ts +51 -0
- package/dist/modules/module.abstract.js +36 -0
- package/dist/modules/module.abstract.js.map +1 -1
- package/dist/modules/module.container.d.ts +43 -1
- package/dist/modules/module.container.js +77 -5
- package/dist/modules/module.container.js.map +1 -1
- package/dist/modules/test-module.container.d.ts +139 -25
- package/dist/modules/test-module.container.js +383 -199
- package/dist/modules/test-module.container.js.map +1 -1
- package/dist/overlays/anchor.abstract.d.ts +32 -1
- package/dist/overlays/anchor.abstract.js +42 -11
- package/dist/overlays/anchor.abstract.js.map +1 -1
- package/dist/overlays/anchor.schema.d.ts +21 -0
- package/dist/overlays/anchor.schema.js +21 -0
- package/dist/overlays/anchor.schema.js.map +1 -1
- package/dist/overlays/overlay-data.repository.d.ts +18 -0
- package/dist/overlays/overlay-data.repository.js +18 -0
- package/dist/overlays/overlay-data.repository.js.map +1 -1
- package/dist/overlays/overlay.abstract.d.ts +56 -1
- package/dist/overlays/overlay.abstract.js +79 -20
- package/dist/overlays/overlay.abstract.js.map +1 -1
- package/dist/overlays/overlay.schema.d.ts +20 -0
- package/dist/overlays/overlay.schema.js +20 -0
- package/dist/overlays/overlay.schema.js.map +1 -1
- package/dist/resources/resource-action.interface.d.ts +29 -3
- package/dist/resources/resource-data.repository.d.ts +63 -1
- package/dist/resources/resource-data.repository.js +94 -4
- package/dist/resources/resource-data.repository.js.map +1 -1
- package/dist/resources/resource.abstract.d.ts +163 -6
- package/dist/resources/resource.abstract.js +223 -59
- package/dist/resources/resource.abstract.js.map +1 -1
- package/dist/resources/resource.interface.d.ts +0 -2
- package/dist/resources/resource.schema.d.ts +39 -1
- package/dist/resources/resource.schema.js +38 -0
- package/dist/resources/resource.schema.js.map +1 -1
- package/dist/resources/terraform-resource.abstract.d.ts +44 -0
- package/dist/resources/terraform-resource.abstract.js +45 -0
- package/dist/resources/terraform-resource.abstract.js.map +1 -0
- package/dist/services/event/event.service.d.ts +32 -5
- package/dist/services/event/event.service.js +58 -16
- package/dist/services/event/event.service.js.map +1 -1
- package/dist/services/input/input.service.d.ts +82 -5
- package/dist/services/input/input.service.js +143 -12
- package/dist/services/input/input.service.js.map +1 -1
- package/dist/services/schema-translation/schema-translation.service.d.ts +9 -0
- package/dist/services/schema-translation/schema-translation.service.js +9 -0
- package/dist/services/schema-translation/schema-translation.service.js.map +1 -1
- package/dist/services/serialization/model/model-serialization.service.d.ts +25 -3
- package/dist/services/serialization/model/model-serialization.service.js +113 -62
- package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
- package/dist/services/serialization/resource/resource-serialization.service.d.ts +36 -6
- package/dist/services/serialization/resource/resource-serialization.service.js +77 -28
- package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
- package/dist/services/state-management/local.state-provider.d.ts +67 -4
- package/dist/services/state-management/local.state-provider.js +168 -41
- package/dist/services/state-management/local.state-provider.js.map +1 -1
- package/dist/services/state-management/remote.state-provider.d.ts +216 -0
- package/dist/services/state-management/remote.state-provider.js +645 -0
- package/dist/services/state-management/remote.state-provider.js.map +1 -0
- package/dist/services/state-management/state-management.service.d.ts +195 -17
- package/dist/services/state-management/state-management.service.js +259 -10
- package/dist/services/state-management/state-management.service.js.map +1 -1
- package/dist/services/state-management/state-provider.interface.d.ts +98 -3
- package/dist/services/state-management/state-provider.interface.js +14 -1
- package/dist/services/state-management/state-provider.interface.js.map +1 -1
- package/dist/services/state-management/terraform-state.service.d.ts +99 -0
- package/dist/services/state-management/terraform-state.service.js +197 -0
- package/dist/services/state-management/terraform-state.service.js.map +1 -0
- package/dist/services/state-management/test.state-provider.d.ts +42 -4
- package/dist/services/state-management/test.state-provider.js +77 -25
- package/dist/services/state-management/test.state-provider.js.map +1 -1
- package/dist/services/terraform/terraform.service.d.ts +480 -0
- package/dist/services/terraform/terraform.service.js +1082 -0
- package/dist/services/terraform/terraform.service.js.map +1 -0
- package/dist/services/terraform/terraform.type.d.ts +387 -0
- package/dist/services/terraform/terraform.type.js +579 -0
- package/dist/services/terraform/terraform.type.js.map +1 -0
- package/dist/services/transaction/transaction.service.d.ts +110 -10
- package/dist/services/transaction/transaction.service.js +570 -251
- package/dist/services/transaction/transaction.service.js.map +1 -1
- package/dist/services/validation/validation.service.d.ts +15 -3
- package/dist/services/validation/validation.service.js +12 -0
- package/dist/services/validation/validation.service.js.map +1 -1
- package/dist/utilities/array/array.utility.d.ts +3 -0
- package/dist/utilities/array/array.utility.js +3 -0
- package/dist/utilities/array/array.utility.js.map +1 -1
- package/dist/{functions → utilities}/diff/diff.utility.d.ts +19 -3
- package/dist/{functions → utilities}/diff/diff.utility.js +57 -41
- package/dist/utilities/diff/diff.utility.js.map +1 -0
- package/dist/utilities/file/file.utility.d.ts +16 -2
- package/dist/utilities/file/file.utility.js +23 -61
- package/dist/utilities/file/file.utility.js.map +1 -1
- package/dist/utilities/hcl/hcl.utility.d.ts +128 -0
- package/dist/utilities/hcl/hcl.utility.js +402 -0
- package/dist/utilities/hcl/hcl.utility.js.map +1 -0
- package/dist/utilities/http/http.utility.d.ts +57 -0
- package/dist/utilities/http/http.utility.js +98 -0
- package/dist/utilities/http/http.utility.js.map +1 -0
- package/dist/utilities/node/node.utility.d.ts +3 -0
- package/dist/utilities/node/node.utility.js +3 -0
- package/dist/utilities/node/node.utility.js.map +1 -1
- package/dist/utilities/object/object.utility.d.ts +12 -0
- package/dist/utilities/object/object.utility.js +12 -0
- package/dist/utilities/object/object.utility.js.map +1 -1
- package/dist/utilities/project/project.utility.d.ts +28 -0
- package/dist/utilities/project/project.utility.js +35 -0
- package/dist/utilities/project/project.utility.js.map +1 -0
- package/dist/utilities/string/string.utility.d.ts +41 -0
- package/dist/utilities/string/string.utility.js +65 -0
- package/dist/utilities/string/string.utility.js.map +1 -0
- package/dist/utilities/terraform/terraform.utility.d.ts +276 -0
- package/dist/utilities/terraform/terraform.utility.js +623 -0
- package/dist/utilities/terraform/terraform.utility.js.map +1 -0
- package/dist/utilities/test-helpers/test-classes.d.ts +36 -30
- package/dist/utilities/test-helpers/test-classes.js +38 -39
- package/dist/utilities/test-helpers/test-classes.js.map +1 -1
- package/dist/utilities/test-helpers/test-models.d.ts +8 -1
- package/dist/utilities/test-helpers/test-models.js +37 -12
- package/dist/utilities/test-helpers/test-models.js.map +1 -1
- package/dist/utilities/test-helpers/test-modes.d.ts +315 -0
- package/dist/utilities/test-helpers/test-modes.js +486 -0
- package/dist/utilities/test-helpers/test-modes.js.map +1 -0
- package/dist/utilities/test-helpers/test-modules.d.ts +47 -0
- package/dist/utilities/test-helpers/test-modules.js +85 -0
- package/dist/utilities/test-helpers/test-modules.js.map +1 -0
- package/dist/utilities/test-helpers/test-overlays.d.ts +20 -2
- package/dist/utilities/test-helpers/test-overlays.js +56 -6
- package/dist/utilities/test-helpers/test-overlays.js.map +1 -1
- package/dist/utilities/test-helpers/test-resources.d.ts +23 -3
- package/dist/utilities/test-helpers/test-resources.js +83 -23
- package/dist/utilities/test-helpers/test-resources.js.map +1 -1
- package/dist/utilities/validation/validation.utility.d.ts +24 -0
- package/dist/utilities/validation/validation.utility.js +24 -0
- package/dist/utilities/validation/validation.utility.js.map +1 -1
- package/package.json +12 -6
- package/dist/functions/diff/diff.utility.js.map +0 -1
- package/dist/services/capture/capture.service.d.ts +0 -19
- package/dist/services/capture/capture.service.js +0 -43
- package/dist/services/capture/capture.service.js.map +0 -1
- package/dist/services/state-management/local-encryption.state-provider.d.ts +0 -20
- package/dist/services/state-management/local-encryption.state-provider.js +0 -90
- package/dist/services/state-management/local-encryption.state-provider.js.map +0 -1
- package/dist/utilities/cidr/cidr.utility.d.ts +0 -10
- package/dist/utilities/cidr/cidr.utility.js +0 -51
- 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 {
|
|
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
|
|
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
|
-
|
|
16
|
-
|
|
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
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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":";;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAEnE;;GAEG;AACH,MAAM,OAAO,YAAY;IAkBvB;
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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,
|
|
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
|
}
|