@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,41 @@
|
|
|
1
|
+
import { DiffAction } from './diff.js';
|
|
2
|
+
/**
|
|
3
|
+
* Collapses a resource's field-level diffs into one action per resource, keyed by resource context.
|
|
4
|
+
*
|
|
5
|
+
* Precedence: an add/delete of `resourceId` wins; a REPLACE beats an UPDATE; otherwise UPDATE.
|
|
6
|
+
* `reason` is taken from the winning diff.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export function aggregateResourceActions(diffs) {
|
|
11
|
+
const aggregated = new Map();
|
|
12
|
+
for (const diff of diffs) {
|
|
13
|
+
const node = diff.node;
|
|
14
|
+
const context = node.getContext();
|
|
15
|
+
const reason = diff.diff.reason;
|
|
16
|
+
if (diff.action === DiffAction.DELETE && diff.field === 'resourceId') {
|
|
17
|
+
aggregated.set(context, { action: DiffAction.DELETE, reason, resourceId: node.resourceId });
|
|
18
|
+
}
|
|
19
|
+
else if (diff.action === DiffAction.ADD && diff.field === 'resourceId') {
|
|
20
|
+
aggregated.set(context, { action: DiffAction.ADD, reason, resourceId: node.resourceId });
|
|
21
|
+
}
|
|
22
|
+
else if (diff.action === DiffAction.REPLACE) {
|
|
23
|
+
const existing = aggregated.get(context);
|
|
24
|
+
if (!existing || existing.action === DiffAction.UPDATE) {
|
|
25
|
+
aggregated.set(context, { action: DiffAction.REPLACE, reason, resourceId: node.resourceId });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else if (!aggregated.has(context)) {
|
|
29
|
+
aggregated.set(context, { action: DiffAction.UPDATE, reason, resourceId: node.resourceId });
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// A later update may be the only one carrying a reason.
|
|
33
|
+
const existing = aggregated.get(context);
|
|
34
|
+
if (existing.action === DiffAction.UPDATE && existing.reason === undefined && reason !== undefined) {
|
|
35
|
+
existing.reason = reason;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return aggregated;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=aggregate-resource-actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate-resource-actions.js","sourceRoot":"","sources":["../../../src/functions/diff/aggregate-resource-actions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAWvC;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAqB;IAC5D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoC,CAAC;IAE/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAuB,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAEhC,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YACrE,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9F,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YACzE,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3F,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvD,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9F,CAAC;aAAM,CAAC;YACN,wDAAwD;YACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;YAC1C,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACnG,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1,24 +1,42 @@
|
|
|
1
1
|
import type { ActionInputs, ActionOutputs, IUnknownModelAction, IUnknownResourceAction, UnknownNode } from '../../app.type.js';
|
|
2
2
|
import type { Diff, DiffAction } from './diff.js';
|
|
3
3
|
/**
|
|
4
|
+
* A {@link Diff} paired with the actions that will apply it, and the order they run in.
|
|
5
|
+
*
|
|
6
|
+
* A transaction is a list of these, so this is the shape you read when inspecting what a run did -
|
|
7
|
+
* in an event payload, or in a test.
|
|
8
|
+
*
|
|
4
9
|
* @group Functions/Diff
|
|
5
10
|
*/
|
|
6
11
|
export declare class DiffMetadata {
|
|
12
|
+
readonly action: DiffAction;
|
|
7
13
|
readonly actions: IUnknownModelAction[] | IUnknownResourceAction[];
|
|
8
14
|
applied: boolean;
|
|
9
15
|
applyOrder: number;
|
|
10
16
|
readonly diff: Diff;
|
|
11
|
-
readonly action: DiffAction;
|
|
12
17
|
readonly field: string;
|
|
13
|
-
readonly node: UnknownNode;
|
|
14
|
-
readonly value: unknown;
|
|
15
18
|
readonly inputs: ActionInputs;
|
|
19
|
+
readonly node: UnknownNode;
|
|
16
20
|
readonly outputs: ActionOutputs;
|
|
21
|
+
readonly value: unknown;
|
|
22
|
+
/**
|
|
23
|
+
* @param diff The change this metadata is about.
|
|
24
|
+
* @param actions The actions that will apply it.
|
|
25
|
+
* @throws {@link NoMatchingActionFoundTransactionError} If no action was given.
|
|
26
|
+
*/
|
|
17
27
|
constructor(diff: Diff, actions: IUnknownModelAction[] | IUnknownResourceAction[]);
|
|
18
28
|
/**
|
|
19
29
|
* Overrides JSON.serialize() to output a more succinct model of diff-metadata.
|
|
30
|
+
*
|
|
31
|
+
* @internal
|
|
20
32
|
*/
|
|
21
33
|
toJSON(): ReturnType<Diff['toJSON']>;
|
|
34
|
+
/**
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
22
37
|
updateInputs(inputs: ActionInputs): void;
|
|
38
|
+
/**
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
23
41
|
updateOutputs(outputs: ActionOutputs): void;
|
|
24
42
|
}
|
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
import { NoMatchingActionFoundTransactionError } from '../../errors/index.js';
|
|
2
2
|
/**
|
|
3
|
+
* A {@link Diff} paired with the actions that will apply it, and the order they run in.
|
|
4
|
+
*
|
|
5
|
+
* A transaction is a list of these, so this is the shape you read when inspecting what a run did -
|
|
6
|
+
* in an event payload, or in a test.
|
|
7
|
+
*
|
|
3
8
|
* @group Functions/Diff
|
|
4
9
|
*/
|
|
5
10
|
export class DiffMetadata {
|
|
11
|
+
/**
|
|
12
|
+
* @param diff The change this metadata is about.
|
|
13
|
+
* @param actions The actions that will apply it.
|
|
14
|
+
* @throws {@link NoMatchingActionFoundTransactionError} If no action was given.
|
|
15
|
+
*/
|
|
6
16
|
constructor(diff, actions) {
|
|
7
17
|
this.inputs = { inputs: {}, metadata: {}, models: {}, overlays: {}, resources: {} };
|
|
8
18
|
this.outputs = {};
|
|
@@ -20,13 +30,21 @@ export class DiffMetadata {
|
|
|
20
30
|
}
|
|
21
31
|
/**
|
|
22
32
|
* Overrides JSON.serialize() to output a more succinct model of diff-metadata.
|
|
33
|
+
*
|
|
34
|
+
* @internal
|
|
23
35
|
*/
|
|
24
36
|
toJSON() {
|
|
25
37
|
return this.diff.toJSON();
|
|
26
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
27
42
|
updateInputs(inputs) {
|
|
28
43
|
Object.assign(this.inputs, inputs);
|
|
29
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
30
48
|
updateOutputs(outputs) {
|
|
31
49
|
Object.assign(this.outputs, outputs);
|
|
32
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-metadata.js","sourceRoot":"","sources":["../../../src/functions/diff/diff-metadata.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qCAAqC,EAAE,MAAM,uBAAuB,CAAC;AAG9E
|
|
1
|
+
{"version":3,"file":"diff-metadata.js","sourceRoot":"","sources":["../../../src/functions/diff/diff-metadata.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qCAAqC,EAAE,MAAM,uBAAuB,CAAC;AAG9E;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IAcvB;;;;OAIG;IACH,YAAY,IAAU,EAAE,OAAyD;QAXxE,WAAM,GAAiB,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAG7F,YAAO,GAAkB,EAAE,CAAC;QASnC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,qCAAqC,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAErB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAoB;QAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAsB;QAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -1,30 +1,91 @@
|
|
|
1
1
|
import type { UnknownNode } from '../../app.type.js';
|
|
2
2
|
/**
|
|
3
|
+
* What a {@link Diff} says happened to a node.
|
|
4
|
+
*
|
|
5
|
+
* `REPLACE` is distinct from `UPDATE`: it means the change cannot be applied in place, and the
|
|
6
|
+
* infrastructure must be destroyed and re-created.
|
|
7
|
+
*
|
|
3
8
|
* @group Functions/Diff
|
|
4
9
|
*/
|
|
5
10
|
export declare enum DiffAction {
|
|
11
|
+
/**
|
|
12
|
+
* The node is in the new graph and not in the last committed one, so it has to be created.
|
|
13
|
+
*/
|
|
6
14
|
ADD = "add",
|
|
15
|
+
/**
|
|
16
|
+
* The node is in the last committed graph and not in the new one, so it has to be destroyed.
|
|
17
|
+
*/
|
|
7
18
|
DELETE = "delete",
|
|
19
|
+
/**
|
|
20
|
+
* A field changed that cannot be changed in place, so the infrastructure is destroyed and created
|
|
21
|
+
* again. A resource declares this itself, with a reason, which is what a report shows a reviewer
|
|
22
|
+
* in place of leaving them to work a recreate out of a terraform plan.
|
|
23
|
+
*/
|
|
8
24
|
REPLACE = "replace",
|
|
25
|
+
/**
|
|
26
|
+
* A field changed and can be changed in place.
|
|
27
|
+
*/
|
|
9
28
|
UPDATE = "update",
|
|
29
|
+
/**
|
|
30
|
+
* Nothing changed, and the node still wants an action to run over it.
|
|
31
|
+
*/
|
|
10
32
|
VALIDATE = "validate"
|
|
11
33
|
}
|
|
12
34
|
/**
|
|
35
|
+
* A diff as it leaves the process: `node` is the context of the model, overlay or resource changed,
|
|
36
|
+
* and a `value` naming a node is its context, or `anchorId=<id>` for an anchor.
|
|
37
|
+
*
|
|
38
|
+
* @group Functions/Diff
|
|
39
|
+
*/
|
|
40
|
+
export type DiffSerializedOutput = {
|
|
41
|
+
action: `${DiffAction}`;
|
|
42
|
+
field: string;
|
|
43
|
+
node: string;
|
|
44
|
+
reason?: string;
|
|
45
|
+
value: unknown;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* One change to one field of one node.
|
|
49
|
+
*
|
|
50
|
+
* Diffs are the currency of Octo: comparing the graph you just described against the last committed
|
|
51
|
+
* one produces a list of them, and every action is selected and driven by the diffs it accepts.
|
|
52
|
+
*
|
|
13
53
|
* @group Functions/Diff
|
|
14
54
|
*/
|
|
15
55
|
export declare class Diff<N extends UnknownNode = UnknownNode, V = unknown> {
|
|
56
|
+
/**
|
|
57
|
+
* What happened.
|
|
58
|
+
*/
|
|
16
59
|
readonly action: DiffAction;
|
|
60
|
+
/**
|
|
61
|
+
* The field of the node that changed, e.g. `resourceId`, `properties`, or `parent`.
|
|
62
|
+
*/
|
|
17
63
|
readonly field: string;
|
|
64
|
+
/**
|
|
65
|
+
* The node that changed.
|
|
66
|
+
*/
|
|
18
67
|
readonly node: N;
|
|
68
|
+
/**
|
|
69
|
+
* Why the change is being made, when the field alone does not explain it.
|
|
70
|
+
* It is carried into reports, so write it for whoever reads the plan.
|
|
71
|
+
*/
|
|
72
|
+
readonly reason?: string;
|
|
73
|
+
/**
|
|
74
|
+
* The new value of the field. Its shape depends on the field.
|
|
75
|
+
*/
|
|
19
76
|
readonly value: V;
|
|
20
|
-
|
|
77
|
+
/**
|
|
78
|
+
* @param node The node that changed.
|
|
79
|
+
* @param action What happened to it.
|
|
80
|
+
* @param field The field of the node that changed.
|
|
81
|
+
* @param value The new value of the field.
|
|
82
|
+
* @param reason Why the change is being made, carried into reports.
|
|
83
|
+
*/
|
|
84
|
+
constructor(node: Diff<N, V>['node'], action: Diff['action'], field: Diff['field'], value: Diff<N, V>['value'], reason?: Diff['reason']);
|
|
21
85
|
/**
|
|
22
86
|
* Overrides JSON.serialize() to output a more succinct representation of diff.
|
|
87
|
+
*
|
|
88
|
+
* @internal
|
|
23
89
|
*/
|
|
24
|
-
toJSON():
|
|
25
|
-
action: string;
|
|
26
|
-
field: string;
|
|
27
|
-
node: string;
|
|
28
|
-
value: V | string;
|
|
29
|
-
};
|
|
90
|
+
toJSON(): DiffSerializedOutput;
|
|
30
91
|
}
|
|
@@ -1,26 +1,63 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* What a {@link Diff} says happened to a node.
|
|
3
|
+
*
|
|
4
|
+
* `REPLACE` is distinct from `UPDATE`: it means the change cannot be applied in place, and the
|
|
5
|
+
* infrastructure must be destroyed and re-created.
|
|
6
|
+
*
|
|
2
7
|
* @group Functions/Diff
|
|
3
8
|
*/
|
|
4
9
|
export var DiffAction;
|
|
5
10
|
(function (DiffAction) {
|
|
11
|
+
/**
|
|
12
|
+
* The node is in the new graph and not in the last committed one, so it has to be created.
|
|
13
|
+
*/
|
|
6
14
|
DiffAction["ADD"] = "add";
|
|
15
|
+
/**
|
|
16
|
+
* The node is in the last committed graph and not in the new one, so it has to be destroyed.
|
|
17
|
+
*/
|
|
7
18
|
DiffAction["DELETE"] = "delete";
|
|
19
|
+
/**
|
|
20
|
+
* A field changed that cannot be changed in place, so the infrastructure is destroyed and created
|
|
21
|
+
* again. A resource declares this itself, with a reason, which is what a report shows a reviewer
|
|
22
|
+
* in place of leaving them to work a recreate out of a terraform plan.
|
|
23
|
+
*/
|
|
8
24
|
DiffAction["REPLACE"] = "replace";
|
|
25
|
+
/**
|
|
26
|
+
* A field changed and can be changed in place.
|
|
27
|
+
*/
|
|
9
28
|
DiffAction["UPDATE"] = "update";
|
|
29
|
+
/**
|
|
30
|
+
* Nothing changed, and the node still wants an action to run over it.
|
|
31
|
+
*/
|
|
10
32
|
DiffAction["VALIDATE"] = "validate";
|
|
11
33
|
})(DiffAction || (DiffAction = {}));
|
|
12
34
|
/**
|
|
35
|
+
* One change to one field of one node.
|
|
36
|
+
*
|
|
37
|
+
* Diffs are the currency of Octo: comparing the graph you just described against the last committed
|
|
38
|
+
* one produces a list of them, and every action is selected and driven by the diffs it accepts.
|
|
39
|
+
*
|
|
13
40
|
* @group Functions/Diff
|
|
14
41
|
*/
|
|
15
42
|
export class Diff {
|
|
16
|
-
|
|
43
|
+
/**
|
|
44
|
+
* @param node The node that changed.
|
|
45
|
+
* @param action What happened to it.
|
|
46
|
+
* @param field The field of the node that changed.
|
|
47
|
+
* @param value The new value of the field.
|
|
48
|
+
* @param reason Why the change is being made, carried into reports.
|
|
49
|
+
*/
|
|
50
|
+
constructor(node, action, field, value, reason) {
|
|
17
51
|
this.node = node;
|
|
18
52
|
this.action = action;
|
|
19
53
|
this.field = field;
|
|
20
54
|
this.value = value;
|
|
55
|
+
this.reason = reason;
|
|
21
56
|
}
|
|
22
57
|
/**
|
|
23
58
|
* Overrides JSON.serialize() to output a more succinct representation of diff.
|
|
59
|
+
*
|
|
60
|
+
* @internal
|
|
24
61
|
*/
|
|
25
62
|
toJSON() {
|
|
26
63
|
let value = this.value;
|
|
@@ -31,14 +68,18 @@ export class Diff {
|
|
|
31
68
|
value = `anchorId=${value.anchorId}`;
|
|
32
69
|
}
|
|
33
70
|
else {
|
|
34
|
-
value = JSON.parse(JSON.stringify(value));
|
|
71
|
+
value = value === undefined ? undefined : JSON.parse(JSON.stringify(value));
|
|
35
72
|
}
|
|
36
|
-
|
|
73
|
+
const json = {
|
|
37
74
|
action: this.action,
|
|
38
75
|
field: this.field,
|
|
39
76
|
node: this.node.getContext(),
|
|
40
77
|
value,
|
|
41
78
|
};
|
|
79
|
+
if (this.reason !== undefined) {
|
|
80
|
+
json.reason = this.reason;
|
|
81
|
+
}
|
|
82
|
+
return json;
|
|
42
83
|
}
|
|
43
84
|
}
|
|
44
85
|
//# sourceMappingURL=diff.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/functions/diff/diff.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/functions/diff/diff.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,UA2BX;AA3BD,WAAY,UAAU;IACpB;;OAEG;IACH,yBAAW,CAAA;IAEX;;OAEG;IACH,+BAAiB,CAAA;IAEjB;;;;OAIG;IACH,iCAAmB,CAAA;IAEnB;;OAEG;IACH,+BAAiB,CAAA;IAEjB;;OAEG;IACH,mCAAqB,CAAA;AACvB,CAAC,EA3BW,UAAU,KAAV,UAAU,QA2BrB;AAgBD;;;;;;;GAOG;AACH,MAAM,OAAO,IAAI;IA2Bf;;;;;;OAMG;IACH,YACE,IAAwB,EACxB,MAAsB,EACtB,KAAoB,EACpB,KAA0B,EAC1B,MAAuB;QAEvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,IAAI,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC;QAChC,IAAK,KAAqB,CAAC,UAAU,EAAE,CAAC;YACtC,KAAK,GAAI,KAAqB,CAAC,UAAU,EAAE,CAAC;QAC9C,CAAC;aAAM,IAAK,KAAuB,CAAC,QAAQ,EAAE,CAAC;YAC7C,KAAK,GAAG,YAAa,KAAuB,CAAC,QAAQ,EAAE,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,IAAI,GAAyB;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC5B,KAAK;SACN,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -13,13 +13,28 @@ export declare class CommitHook implements IHook<PreHookSignature, PostHookSigna
|
|
|
13
13
|
private static instance;
|
|
14
14
|
private readonly postCommitHooks;
|
|
15
15
|
private readonly preCommitHooks;
|
|
16
|
+
/**
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
16
19
|
private constructor();
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
static getInstance(): CommitHook;
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
17
27
|
collectHooks(hooks: {
|
|
18
28
|
postHooks?: PostHookSignature[];
|
|
19
29
|
preHooks?: PreHookSignature[];
|
|
20
30
|
}): void;
|
|
21
|
-
|
|
31
|
+
/**
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
22
34
|
registrar(descriptor: PropertyDescriptor): void;
|
|
35
|
+
/**
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
23
38
|
reset(): void;
|
|
24
39
|
}
|
|
25
40
|
export {};
|
|
@@ -5,10 +5,25 @@ import { Container } from '../container/container.js';
|
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
7
|
export class CommitHook {
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
8
11
|
constructor() {
|
|
9
12
|
this.postCommitHooks = [];
|
|
10
13
|
this.preCommitHooks = [];
|
|
11
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
static getInstance() {
|
|
19
|
+
if (!this.instance) {
|
|
20
|
+
this.instance = new CommitHook();
|
|
21
|
+
}
|
|
22
|
+
return this.instance;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
12
27
|
collectHooks(hooks) {
|
|
13
28
|
for (const { handle } of hooks.postHooks || []) {
|
|
14
29
|
this.postCommitHooks.push({ handle });
|
|
@@ -17,12 +32,9 @@ export class CommitHook {
|
|
|
17
32
|
this.preCommitHooks.push({ handle });
|
|
18
33
|
}
|
|
19
34
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
return this.instance;
|
|
25
|
-
}
|
|
35
|
+
/**
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
26
38
|
registrar(descriptor) {
|
|
27
39
|
// `self` here references this class, vs `this` references the original method.
|
|
28
40
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
@@ -42,6 +54,9 @@ export class CommitHook {
|
|
|
42
54
|
}
|
|
43
55
|
};
|
|
44
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
45
60
|
reset() {
|
|
46
61
|
this.postCommitHooks.splice(0, this.postCommitHooks.length);
|
|
47
62
|
this.preCommitHooks.splice(0, this.preCommitHooks.length);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/commit.hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAExG,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAMtD;;GAEG;AACH,MAAM,OAAO,UAAU;IAMrB;
|
|
1
|
+
{"version":3,"file":"commit.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/commit.hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAExG,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAMtD;;GAEG;AACH,MAAM,OAAO,UAAU;IAMrB;;OAEG;IACH;QANiB,oBAAe,GAAwB,EAAE,CAAC;QAC1C,mBAAc,GAAuB,EAAE,CAAC;IAKlC,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAAyE;QACpF,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,UAA8B;QACtC,+EAA+E;QAC/E,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAA2C;YAC/E,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAEvD,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC7C,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/B,YAAY,CAAC,IAAI,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEvC,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC9C,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/B,YAAY,CAAC,IAAI,CAAC,IAAI,+BAA+B,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;CACF"}
|
|
@@ -15,13 +15,28 @@ export declare class ModelActionHook implements IHook<PreHookSignature, PostHook
|
|
|
15
15
|
private static instance;
|
|
16
16
|
private readonly postModelActionHooks;
|
|
17
17
|
private readonly preModelActionHooks;
|
|
18
|
+
/**
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
18
21
|
private constructor();
|
|
22
|
+
/**
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
static getInstance(): ModelActionHook;
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
19
29
|
collectHooks(hooks: {
|
|
20
30
|
postHooks?: PostHookSignature[];
|
|
21
31
|
preHooks?: PreHookSignature[];
|
|
22
32
|
}): void;
|
|
23
|
-
|
|
33
|
+
/**
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
24
36
|
registrar(modelAction: IUnknownModelAction): void;
|
|
37
|
+
/**
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
25
40
|
reset(): void;
|
|
26
41
|
}
|
|
27
42
|
export {};
|
|
@@ -5,10 +5,25 @@ import { Container } from '../container/container.js';
|
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
7
|
export class ModelActionHook {
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
8
11
|
constructor() {
|
|
9
12
|
this.postModelActionHooks = {};
|
|
10
13
|
this.preModelActionHooks = {};
|
|
11
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
static getInstance() {
|
|
19
|
+
if (!this.instance) {
|
|
20
|
+
this.instance = new ModelActionHook();
|
|
21
|
+
}
|
|
22
|
+
return this.instance;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
12
27
|
collectHooks(hooks) {
|
|
13
28
|
for (const { action, handle } of hooks.postHooks || []) {
|
|
14
29
|
if (!this.postModelActionHooks[action.constructor.name]) {
|
|
@@ -23,12 +38,9 @@ export class ModelActionHook {
|
|
|
23
38
|
this.preModelActionHooks[action.constructor.name].push({ handle });
|
|
24
39
|
}
|
|
25
40
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
return this.instance;
|
|
31
|
-
}
|
|
41
|
+
/**
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
32
44
|
registrar(modelAction) {
|
|
33
45
|
// `self` here references this class, vs `this` references the original method.
|
|
34
46
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
@@ -50,6 +62,9 @@ export class ModelActionHook {
|
|
|
50
62
|
return output;
|
|
51
63
|
};
|
|
52
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
53
68
|
reset() {
|
|
54
69
|
for (const name in this.postModelActionHooks) {
|
|
55
70
|
delete this.postModelActionHooks[name];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-action.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/model-action.hook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oCAAoC,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAClH,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAYtD;;GAEG;AACH,MAAM,OAAO,eAAe;IAU1B;
|
|
1
|
+
{"version":3,"file":"model-action.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/model-action.hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,13 +15,28 @@ export declare class ResourceActionHook implements IHook<PreHookSignature, PostH
|
|
|
15
15
|
private static instance;
|
|
16
16
|
private readonly postResourceActionHooks;
|
|
17
17
|
private readonly preResourceActionHooks;
|
|
18
|
+
/**
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
18
21
|
private constructor();
|
|
22
|
+
/**
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
static getInstance(): ResourceActionHook;
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
19
29
|
collectHooks(hooks: {
|
|
20
30
|
postHooks?: PostHookSignature[];
|
|
21
31
|
preHooks?: PreHookSignature[];
|
|
22
32
|
}): void;
|
|
23
|
-
|
|
33
|
+
/**
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
24
36
|
registrar(resourceAction: IUnknownResourceAction): void;
|
|
37
|
+
/**
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
25
40
|
reset(): void;
|
|
26
41
|
}
|
|
27
42
|
export {};
|
|
@@ -5,10 +5,25 @@ import { Container } from '../container/container.js';
|
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
7
|
export class ResourceActionHook {
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
8
11
|
constructor() {
|
|
9
12
|
this.postResourceActionHooks = {};
|
|
10
13
|
this.preResourceActionHooks = {};
|
|
11
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
static getInstance() {
|
|
19
|
+
if (!this.instance) {
|
|
20
|
+
this.instance = new ResourceActionHook();
|
|
21
|
+
}
|
|
22
|
+
return this.instance;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
12
27
|
collectHooks(hooks) {
|
|
13
28
|
for (const { action, handle } of hooks.postHooks || []) {
|
|
14
29
|
if (!this.postResourceActionHooks[action.constructor.name]) {
|
|
@@ -23,12 +38,9 @@ export class ResourceActionHook {
|
|
|
23
38
|
this.preResourceActionHooks[action.constructor.name].push({ handle });
|
|
24
39
|
}
|
|
25
40
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
return this.instance;
|
|
31
|
-
}
|
|
41
|
+
/**
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
32
44
|
registrar(resourceAction) {
|
|
33
45
|
// `self` here references this class, vs `this` references the original method.
|
|
34
46
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
@@ -49,6 +61,9 @@ export class ResourceActionHook {
|
|
|
49
61
|
return response;
|
|
50
62
|
};
|
|
51
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
52
67
|
reset() {
|
|
53
68
|
for (const name in this.postResourceActionHooks) {
|
|
54
69
|
delete this.postResourceActionHooks[name];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-action.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/resource-action.hook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uCAAuC,EAAE,sCAAsC,EAAE,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAYtD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAU7B;
|
|
1
|
+
{"version":3,"file":"resource-action.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/resource-action.hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,31 @@
|
|
|
1
1
|
import { Container } from '../container/container.js';
|
|
2
|
+
import type { Diff } from '../diff/diff.js';
|
|
2
3
|
/**
|
|
4
|
+
* The base class of every resource action: an action implementing {@link IResourceAction} must extend
|
|
5
|
+
* it. It gives the action the {@link Container}, and a `log()` that goes through Octo's event stream so
|
|
6
|
+
* its output lands in the command's report alongside everything else.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* @Action(MyResource)
|
|
11
|
+
* export class AddMyResourceAction extends ANodeAction implements IResourceAction<MyResource> { ... }
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
3
14
|
* @group Functions/Node
|
|
4
15
|
*/
|
|
5
16
|
export declare abstract class ANodeAction {
|
|
17
|
+
/**
|
|
18
|
+
* The container, for resolving whatever services or SDK clients the action needs.
|
|
19
|
+
*/
|
|
6
20
|
readonly container: Container;
|
|
7
|
-
|
|
21
|
+
/**
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
8
24
|
protected constructor();
|
|
9
|
-
|
|
25
|
+
/**
|
|
26
|
+
* To report what the action is doing for `diff`, the diff its `handle()` was given. The message is
|
|
27
|
+
* emitted as an {@link ActionEvent}, so it is picked up by whatever listeners the command has,
|
|
28
|
+
* rather than written straight to the console.
|
|
29
|
+
*/
|
|
30
|
+
log(diff: Diff, message: string, metadata?: Record<string, unknown>): void;
|
|
10
31
|
}
|