tfts 0.2.13 → 0.3.1
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/README.md +5 -161
- package/dist/cli/config.d.ts +18 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +36 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/get.d.ts +8 -0
- package/dist/cli/get.d.ts.map +1 -0
- package/dist/cli/get.js +107 -0
- package/dist/cli/get.js.map +1 -0
- package/dist/cli/main.d.ts +3 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +86 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/synth.d.ts +7 -0
- package/dist/cli/synth.d.ts.map +1 -0
- package/dist/cli/synth.js +35 -0
- package/dist/cli/synth.js.map +1 -0
- package/dist/codegen/fetch-schema.d.ts +9 -0
- package/dist/codegen/fetch-schema.d.ts.map +1 -0
- package/dist/codegen/fetch-schema.js +51 -0
- package/dist/codegen/fetch-schema.js.map +1 -0
- package/dist/codegen/fetch-schema.spec.d.ts +2 -0
- package/dist/codegen/fetch-schema.spec.d.ts.map +1 -0
- package/dist/codegen/fetch-schema.spec.js +63 -0
- package/dist/codegen/fetch-schema.spec.js.map +1 -0
- package/dist/codegen/generator.d.ts +8 -0
- package/dist/codegen/generator.d.ts.map +1 -0
- package/dist/codegen/generator.js +582 -0
- package/dist/codegen/generator.js.map +1 -0
- package/dist/codegen/generator.spec.d.ts.map +1 -0
- package/dist/codegen/generator.spec.js +387 -0
- package/dist/codegen/generator.spec.js.map +1 -0
- package/dist/codegen/index.d.ts +5 -0
- package/dist/codegen/index.d.ts.map +1 -0
- package/dist/codegen/index.js +5 -0
- package/dist/codegen/index.js.map +1 -0
- package/dist/codegen/schema.d.ts +46 -0
- package/dist/codegen/schema.d.ts.map +1 -0
- package/dist/codegen/schema.js +64 -0
- package/dist/codegen/schema.js.map +1 -0
- package/dist/codegen/type-mapper.d.ts +11 -0
- package/dist/codegen/type-mapper.d.ts.map +1 -0
- package/dist/codegen/type-mapper.js +130 -0
- package/dist/codegen/type-mapper.js.map +1 -0
- package/dist/core/synthesize.d.ts +2 -0
- package/dist/core/synthesize.d.ts.map +1 -0
- package/dist/core/synthesize.js +51 -0
- package/dist/core/synthesize.js.map +1 -0
- package/dist/core/synthesize.spec.d.ts.map +1 -0
- package/dist/core/synthesize.spec.js +72 -0
- package/dist/core/synthesize.spec.js.map +1 -0
- package/dist/core/terraform-json.d.ts +86 -0
- package/dist/core/terraform-json.d.ts.map +1 -0
- package/dist/core/terraform-json.js.map +1 -0
- package/dist/core/tokens.d.ts +46 -0
- package/dist/core/tokens.d.ts.map +1 -0
- package/dist/core/tokens.js +256 -0
- package/dist/core/tokens.js.map +1 -0
- package/dist/{src/core → core}/tokens.spec.d.ts.map +1 -1
- package/dist/core/tokens.spec.js +140 -0
- package/dist/core/tokens.spec.js.map +1 -0
- package/dist/core/tree.d.ts +11 -0
- package/dist/core/tree.d.ts.map +1 -0
- package/dist/core/tree.js +89 -0
- package/dist/core/tree.js.map +1 -0
- package/dist/{src/core → core}/tree.spec.d.ts.map +1 -1
- package/dist/core/tree.spec.js +110 -0
- package/dist/core/tree.spec.js.map +1 -0
- package/dist/core/types.d.ts +165 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/validate.d.ts +5 -0
- package/dist/core/validate.d.ts.map +1 -0
- package/dist/core/validate.js +186 -0
- package/dist/core/validate.js.map +1 -0
- package/dist/core/validate.spec.d.ts.map +1 -0
- package/dist/core/validate.spec.js +126 -0
- package/dist/core/validate.spec.js.map +1 -0
- package/dist/facade/annotations.d.ts +17 -0
- package/dist/facade/annotations.d.ts.map +1 -0
- package/dist/facade/annotations.js +29 -0
- package/dist/facade/annotations.js.map +1 -0
- package/dist/facade/app.d.ts +51 -0
- package/dist/facade/app.d.ts.map +1 -0
- package/dist/facade/app.js +121 -0
- package/dist/facade/app.js.map +1 -0
- package/dist/facade/aspects.d.ts +13 -0
- package/dist/facade/aspects.d.ts.map +1 -0
- package/dist/facade/aspects.js +34 -0
- package/dist/facade/aspects.js.map +1 -0
- package/dist/facade/backends/cloud-backend.d.ts +34 -0
- package/dist/facade/backends/cloud-backend.d.ts.map +1 -0
- package/dist/facade/backends/cloud-backend.js +84 -0
- package/dist/facade/backends/cloud-backend.js.map +1 -0
- package/dist/facade/backends/gcs-backend.d.ts +29 -0
- package/dist/facade/backends/gcs-backend.d.ts.map +1 -0
- package/dist/facade/backends/gcs-backend.js +34 -0
- package/dist/facade/backends/gcs-backend.js.map +1 -0
- package/dist/facade/backends/index.d.ts +5 -0
- package/dist/facade/backends/index.d.ts.map +1 -0
- package/dist/facade/backends/index.js +5 -0
- package/dist/facade/backends/index.js.map +1 -0
- package/dist/facade/backends/remote-backend.d.ts +34 -0
- package/dist/facade/backends/remote-backend.d.ts.map +1 -0
- package/dist/facade/backends/remote-backend.js +50 -0
- package/dist/facade/backends/remote-backend.js.map +1 -0
- package/dist/facade/backends/s3-backend.d.ts +97 -0
- package/dist/facade/backends/s3-backend.d.ts.map +1 -0
- package/dist/facade/backends/s3-backend.js +34 -0
- package/dist/facade/backends/s3-backend.js.map +1 -0
- package/dist/facade/complex-computed-list.d.ts +117 -0
- package/dist/facade/complex-computed-list.d.ts.map +1 -0
- package/dist/facade/complex-computed-list.js +370 -0
- package/dist/facade/complex-computed-list.js.map +1 -0
- package/dist/facade/construct.d.ts +49 -0
- package/dist/facade/construct.d.ts.map +1 -0
- package/dist/facade/construct.js +129 -0
- package/dist/facade/construct.js.map +1 -0
- package/dist/facade/importable-resource.d.ts +17 -0
- package/dist/facade/importable-resource.d.ts.map +1 -0
- package/dist/facade/importable-resource.js +27 -0
- package/dist/facade/importable-resource.js.map +1 -0
- package/dist/facade/index.d.ts +27 -0
- package/dist/facade/index.d.ts.map +1 -0
- package/dist/facade/index.js +27 -0
- package/dist/facade/index.js.map +1 -0
- package/dist/facade/runtime.d.ts +16 -0
- package/dist/facade/runtime.d.ts.map +1 -0
- package/dist/facade/runtime.js +76 -0
- package/dist/facade/runtime.js.map +1 -0
- package/dist/facade/stack-registry.d.ts +13 -0
- package/dist/facade/stack-registry.d.ts.map +1 -0
- package/dist/facade/stack-registry.js +8 -0
- package/dist/facade/stack-registry.js.map +1 -0
- package/dist/facade/terraform-addressable.d.ts +9 -0
- package/dist/facade/terraform-addressable.d.ts.map +1 -0
- package/dist/facade/terraform-addressable.js +2 -0
- package/dist/facade/terraform-addressable.js.map +1 -0
- package/dist/facade/terraform-asset.d.ts +27 -0
- package/dist/facade/terraform-asset.d.ts.map +1 -0
- package/dist/facade/terraform-asset.js +118 -0
- package/dist/facade/terraform-asset.js.map +1 -0
- package/dist/facade/terraform-backend.d.ts +23 -0
- package/dist/facade/terraform-backend.d.ts.map +1 -0
- package/dist/facade/terraform-backend.js +53 -0
- package/dist/facade/terraform-backend.js.map +1 -0
- package/dist/facade/terraform-data-source.d.ts +45 -0
- package/dist/facade/terraform-data-source.d.ts.map +1 -0
- package/dist/facade/terraform-data-source.js +85 -0
- package/dist/facade/terraform-data-source.js.map +1 -0
- package/dist/facade/terraform-element.d.ts +28 -0
- package/dist/facade/terraform-element.d.ts.map +1 -0
- package/dist/facade/terraform-element.js +100 -0
- package/dist/facade/terraform-element.js.map +1 -0
- package/dist/facade/terraform-functions.d.ts +148 -0
- package/dist/facade/terraform-functions.d.ts.map +1 -0
- package/dist/facade/terraform-functions.js +615 -0
- package/dist/facade/terraform-functions.js.map +1 -0
- package/dist/facade/terraform-functions.spec.d.ts +2 -0
- package/dist/facade/terraform-functions.spec.d.ts.map +1 -0
- package/dist/facade/terraform-functions.spec.js +282 -0
- package/dist/facade/terraform-functions.spec.js.map +1 -0
- package/dist/facade/terraform-hcl-module.d.ts +18 -0
- package/dist/facade/terraform-hcl-module.d.ts.map +1 -0
- package/dist/facade/terraform-hcl-module.js +39 -0
- package/dist/facade/terraform-hcl-module.js.map +1 -0
- package/dist/facade/terraform-iterator.d.ts +39 -0
- package/dist/facade/terraform-iterator.d.ts.map +1 -0
- package/dist/facade/terraform-iterator.js +77 -0
- package/dist/facade/terraform-iterator.js.map +1 -0
- package/dist/facade/terraform-local.d.ts +18 -0
- package/dist/facade/terraform-local.d.ts.map +1 -0
- package/dist/facade/terraform-local.js +34 -0
- package/dist/facade/terraform-local.js.map +1 -0
- package/dist/facade/terraform-module.d.ts +35 -0
- package/dist/facade/terraform-module.d.ts.map +1 -0
- package/dist/facade/terraform-module.js +94 -0
- package/dist/facade/terraform-module.js.map +1 -0
- package/dist/facade/terraform-output.d.ts +20 -0
- package/dist/facade/terraform-output.d.ts.map +1 -0
- package/dist/facade/terraform-output.js +38 -0
- package/dist/facade/terraform-output.js.map +1 -0
- package/dist/facade/terraform-provider.d.ts +27 -0
- package/dist/facade/terraform-provider.d.ts.map +1 -0
- package/dist/facade/terraform-provider.js +48 -0
- package/dist/facade/terraform-provider.js.map +1 -0
- package/dist/facade/terraform-remote-state.d.ts +33 -0
- package/dist/facade/terraform-remote-state.d.ts.map +1 -0
- package/dist/facade/terraform-remote-state.js +62 -0
- package/dist/facade/terraform-remote-state.js.map +1 -0
- package/dist/facade/terraform-resource.d.ts +64 -0
- package/dist/facade/terraform-resource.d.ts.map +1 -0
- package/dist/facade/terraform-resource.js +170 -0
- package/dist/facade/terraform-resource.js.map +1 -0
- package/dist/facade/terraform-stack.d.ts +36 -0
- package/dist/facade/terraform-stack.d.ts.map +1 -0
- package/dist/facade/terraform-stack.js +161 -0
- package/dist/facade/terraform-stack.js.map +1 -0
- package/dist/facade/terraform-variable.d.ts +32 -0
- package/dist/facade/terraform-variable.d.ts.map +1 -0
- package/dist/facade/terraform-variable.js +66 -0
- package/dist/facade/terraform-variable.js.map +1 -0
- package/dist/facade/tokenization.d.ts +4 -0
- package/dist/facade/tokenization.d.ts.map +1 -0
- package/dist/facade/tokenization.js +13 -0
- package/dist/facade/tokenization.js.map +1 -0
- package/dist/facade/util.d.ts +7 -0
- package/dist/facade/util.d.ts.map +1 -0
- package/dist/facade/util.js +55 -0
- package/dist/facade/util.js.map +1 -0
- package/dist/facade/util.spec.d.ts +2 -0
- package/dist/facade/util.spec.d.ts.map +1 -0
- package/dist/facade/util.spec.js +103 -0
- package/dist/facade/util.spec.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/index.spec.d.ts +2 -0
- package/dist/index.spec.d.ts.map +1 -0
- package/dist/index.spec.js +7 -0
- package/dist/index.spec.js.map +1 -0
- package/dist/integration.spec.d.ts +2 -0
- package/dist/integration.spec.d.ts.map +1 -0
- package/dist/integration.spec.js +345 -0
- package/dist/integration.spec.js.map +1 -0
- package/dist/testing/index.d.ts +40 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +160 -0
- package/dist/testing/index.js.map +1 -0
- package/package.json +9 -7
- package/dist/bin/tfts.d.ts +0 -3
- package/dist/bin/tfts.d.ts.map +0 -1
- package/dist/bin/tfts.js +0 -5
- package/dist/bin/tfts.js.map +0 -1
- package/dist/src/cli/config.d.ts +0 -43
- package/dist/src/cli/config.d.ts.map +0 -1
- package/dist/src/cli/config.js +0 -63
- package/dist/src/cli/config.js.map +0 -1
- package/dist/src/cli/diff.d.ts +0 -25
- package/dist/src/cli/diff.d.ts.map +0 -1
- package/dist/src/cli/diff.js +0 -108
- package/dist/src/cli/diff.js.map +0 -1
- package/dist/src/cli/get.d.ts +0 -24
- package/dist/src/cli/get.d.ts.map +0 -1
- package/dist/src/cli/get.js +0 -86
- package/dist/src/cli/get.js.map +0 -1
- package/dist/src/cli/index.d.ts +0 -2
- package/dist/src/cli/index.d.ts.map +0 -1
- package/dist/src/cli/index.js +0 -157
- package/dist/src/cli/index.js.map +0 -1
- package/dist/src/cli/synth.d.ts +0 -32
- package/dist/src/cli/synth.d.ts.map +0 -1
- package/dist/src/cli/synth.js +0 -55
- package/dist/src/cli/synth.js.map +0 -1
- package/dist/src/codegen/__tests__/fixtures.d.ts +0 -7
- package/dist/src/codegen/__tests__/fixtures.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/fixtures.js +0 -202
- package/dist/src/codegen/__tests__/fixtures.js.map +0 -1
- package/dist/src/codegen/__tests__/generator.spec.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/generator.spec.js +0 -382
- package/dist/src/codegen/__tests__/generator.spec.js.map +0 -1
- package/dist/src/codegen/fn-generator.d.ts +0 -22
- package/dist/src/codegen/fn-generator.d.ts.map +0 -1
- package/dist/src/codegen/fn-generator.js +0 -203
- package/dist/src/codegen/fn-generator.js.map +0 -1
- package/dist/src/codegen/generator.d.ts +0 -4
- package/dist/src/codegen/generator.d.ts.map +0 -1
- package/dist/src/codegen/generator.js +0 -479
- package/dist/src/codegen/generator.js.map +0 -1
- package/dist/src/codegen/raw-schema.d.ts +0 -38
- package/dist/src/codegen/raw-schema.d.ts.map +0 -1
- package/dist/src/codegen/raw-schema.js +0 -3
- package/dist/src/codegen/raw-schema.js.map +0 -1
- package/dist/src/codegen/schema.d.ts +0 -68
- package/dist/src/codegen/schema.d.ts.map +0 -1
- package/dist/src/codegen/schema.js +0 -71
- package/dist/src/codegen/schema.js.map +0 -1
- package/dist/src/core/backend.d.ts +0 -5
- package/dist/src/core/backend.d.ts.map +0 -1
- package/dist/src/core/backend.js +0 -2
- package/dist/src/core/backend.js.map +0 -1
- package/dist/src/core/construct.d.ts +0 -42
- package/dist/src/core/construct.d.ts.map +0 -1
- package/dist/src/core/construct.js +0 -2
- package/dist/src/core/construct.js.map +0 -1
- package/dist/src/core/datasource.d.ts +0 -8
- package/dist/src/core/datasource.d.ts.map +0 -1
- package/dist/src/core/datasource.js +0 -2
- package/dist/src/core/datasource.js.map +0 -1
- package/dist/src/core/errors.d.ts +0 -29
- package/dist/src/core/errors.d.ts.map +0 -1
- package/dist/src/core/errors.js +0 -2
- package/dist/src/core/errors.js.map +0 -1
- package/dist/src/core/local.d.ts +0 -4
- package/dist/src/core/local.d.ts.map +0 -1
- package/dist/src/core/local.js +0 -2
- package/dist/src/core/local.js.map +0 -1
- package/dist/src/core/logical-id.d.ts +0 -3
- package/dist/src/core/logical-id.d.ts.map +0 -1
- package/dist/src/core/logical-id.js +0 -48
- package/dist/src/core/logical-id.js.map +0 -1
- package/dist/src/core/output.d.ts +0 -8
- package/dist/src/core/output.d.ts.map +0 -1
- package/dist/src/core/output.js +0 -2
- package/dist/src/core/output.js.map +0 -1
- package/dist/src/core/provider.d.ts +0 -7
- package/dist/src/core/provider.d.ts.map +0 -1
- package/dist/src/core/provider.js +0 -2
- package/dist/src/core/provider.js.map +0 -1
- package/dist/src/core/resource.d.ts +0 -30
- package/dist/src/core/resource.d.ts.map +0 -1
- package/dist/src/core/resource.js +0 -2
- package/dist/src/core/resource.js.map +0 -1
- package/dist/src/core/synthesize.d.ts +0 -78
- package/dist/src/core/synthesize.d.ts.map +0 -1
- package/dist/src/core/synthesize.js +0 -293
- package/dist/src/core/synthesize.js.map +0 -1
- package/dist/src/core/synthesize.spec.d.ts.map +0 -1
- package/dist/src/core/synthesize.spec.js +0 -506
- package/dist/src/core/synthesize.spec.js.map +0 -1
- package/dist/src/core/terraform-json.d.ts +0 -36
- package/dist/src/core/terraform-json.d.ts.map +0 -1
- package/dist/src/core/terraform-json.js.map +0 -1
- package/dist/src/core/tokens.d.ts +0 -62
- package/dist/src/core/tokens.d.ts.map +0 -1
- package/dist/src/core/tokens.js +0 -133
- package/dist/src/core/tokens.js.map +0 -1
- package/dist/src/core/tokens.spec.js +0 -119
- package/dist/src/core/tokens.spec.js.map +0 -1
- package/dist/src/core/tree.d.ts +0 -6
- package/dist/src/core/tree.d.ts.map +0 -1
- package/dist/src/core/tree.js +0 -52
- package/dist/src/core/tree.js.map +0 -1
- package/dist/src/core/tree.spec.js +0 -138
- package/dist/src/core/tree.spec.js.map +0 -1
- package/dist/src/core/validate.d.ts +0 -5
- package/dist/src/core/validate.d.ts.map +0 -1
- package/dist/src/core/validate.js +0 -94
- package/dist/src/core/validate.js.map +0 -1
- package/dist/src/core/validate.spec.d.ts.map +0 -1
- package/dist/src/core/validate.spec.js +0 -69
- package/dist/src/core/validate.spec.js.map +0 -1
- package/dist/src/core/variable.d.ts +0 -14
- package/dist/src/core/variable.d.ts.map +0 -1
- package/dist/src/core/variable.js +0 -2
- package/dist/src/core/variable.js.map +0 -1
- package/dist/src/facade/app.d.ts +0 -23
- package/dist/src/facade/app.d.ts.map +0 -1
- package/dist/src/facade/app.js +0 -55
- package/dist/src/facade/app.js.map +0 -1
- package/dist/src/facade/backends/backend.d.ts +0 -7
- package/dist/src/facade/backends/backend.d.ts.map +0 -1
- package/dist/src/facade/backends/backend.js +0 -15
- package/dist/src/facade/backends/backend.js.map +0 -1
- package/dist/src/facade/backends/gcs.d.ts +0 -18
- package/dist/src/facade/backends/gcs.d.ts.map +0 -1
- package/dist/src/facade/backends/gcs.js +0 -28
- package/dist/src/facade/backends/gcs.js.map +0 -1
- package/dist/src/facade/backends/index.d.ts +0 -6
- package/dist/src/facade/backends/index.d.ts.map +0 -1
- package/dist/src/facade/backends/index.js +0 -6
- package/dist/src/facade/backends/index.js.map +0 -1
- package/dist/src/facade/backends/local.d.ts +0 -12
- package/dist/src/facade/backends/local.d.ts.map +0 -1
- package/dist/src/facade/backends/local.js +0 -16
- package/dist/src/facade/backends/local.js.map +0 -1
- package/dist/src/facade/backends/remote.d.ts +0 -22
- package/dist/src/facade/backends/remote.d.ts.map +0 -1
- package/dist/src/facade/backends/remote.js +0 -23
- package/dist/src/facade/backends/remote.js.map +0 -1
- package/dist/src/facade/backends/s3.d.ts +0 -24
- package/dist/src/facade/backends/s3.d.ts.map +0 -1
- package/dist/src/facade/backends/s3.js +0 -39
- package/dist/src/facade/backends/s3.js.map +0 -1
- package/dist/src/facade/construct.d.ts +0 -9
- package/dist/src/facade/construct.d.ts.map +0 -1
- package/dist/src/facade/construct.js +0 -32
- package/dist/src/facade/construct.js.map +0 -1
- package/dist/src/facade/datasource.d.ts +0 -19
- package/dist/src/facade/datasource.d.ts.map +0 -1
- package/dist/src/facade/datasource.js +0 -33
- package/dist/src/facade/datasource.js.map +0 -1
- package/dist/src/facade/facade.spec.d.ts +0 -2
- package/dist/src/facade/facade.spec.d.ts.map +0 -1
- package/dist/src/facade/facade.spec.js +0 -434
- package/dist/src/facade/facade.spec.js.map +0 -1
- package/dist/src/facade/local.d.ts +0 -15
- package/dist/src/facade/local.d.ts.map +0 -1
- package/dist/src/facade/local.js +0 -27
- package/dist/src/facade/local.js.map +0 -1
- package/dist/src/facade/output.d.ts +0 -18
- package/dist/src/facade/output.d.ts.map +0 -1
- package/dist/src/facade/output.js +0 -29
- package/dist/src/facade/output.js.map +0 -1
- package/dist/src/facade/provider.d.ts +0 -13
- package/dist/src/facade/provider.d.ts.map +0 -1
- package/dist/src/facade/provider.js +0 -25
- package/dist/src/facade/provider.js.map +0 -1
- package/dist/src/facade/resource.d.ts +0 -34
- package/dist/src/facade/resource.d.ts.map +0 -1
- package/dist/src/facade/resource.js +0 -58
- package/dist/src/facade/resource.js.map +0 -1
- package/dist/src/facade/stack.d.ts +0 -11
- package/dist/src/facade/stack.d.ts.map +0 -1
- package/dist/src/facade/stack.js +0 -28
- package/dist/src/facade/stack.js.map +0 -1
- package/dist/src/facade/variable.d.ts +0 -27
- package/dist/src/facade/variable.d.ts.map +0 -1
- package/dist/src/facade/variable.js +0 -45
- package/dist/src/facade/variable.js.map +0 -1
- package/dist/src/generated/fn.d.ts +0 -599
- package/dist/src/generated/fn.d.ts.map +0 -1
- package/dist/src/generated/fn.js +0 -998
- package/dist/src/generated/fn.js.map +0 -1
- package/dist/src/index.d.ts +0 -35
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -23
- package/dist/src/index.js.map +0 -1
- /package/dist/{src/codegen/__tests__ → codegen}/generator.spec.d.ts +0 -0
- /package/dist/{src/core → core}/synthesize.spec.d.ts +0 -0
- /package/dist/{src/core → core}/terraform-json.js +0 -0
- /package/dist/{src/core → core}/tokens.spec.d.ts +0 -0
- /package/dist/{src/core → core}/tree.spec.d.ts +0 -0
- /package/dist/{src/core → core}/validate.spec.d.ts +0 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
export class Node {
|
|
2
|
+
_construct;
|
|
3
|
+
_children = new Map();
|
|
4
|
+
_metadata = [];
|
|
5
|
+
_validations = [];
|
|
6
|
+
_context = {};
|
|
7
|
+
constructor(construct) {
|
|
8
|
+
this._construct = construct;
|
|
9
|
+
}
|
|
10
|
+
get id() {
|
|
11
|
+
return this._construct._id;
|
|
12
|
+
}
|
|
13
|
+
get path() {
|
|
14
|
+
return this._construct._path.join("/");
|
|
15
|
+
}
|
|
16
|
+
get scope() {
|
|
17
|
+
return this._construct._scope;
|
|
18
|
+
}
|
|
19
|
+
get scopes() {
|
|
20
|
+
const result = [];
|
|
21
|
+
let current = this._construct;
|
|
22
|
+
while (current !== undefined) {
|
|
23
|
+
result.unshift(current);
|
|
24
|
+
current = current._scope;
|
|
25
|
+
}
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
get children() {
|
|
29
|
+
return Array.from(this._children.values());
|
|
30
|
+
}
|
|
31
|
+
get metadata() {
|
|
32
|
+
return this._metadata.map((m) => ({ ...m }));
|
|
33
|
+
}
|
|
34
|
+
addChild(child) {
|
|
35
|
+
if (this._children.has(child._id)) {
|
|
36
|
+
throw new Error(`There is already a construct with id '${child._id}' in ${this.path}`);
|
|
37
|
+
}
|
|
38
|
+
this._children.set(child._id, child);
|
|
39
|
+
}
|
|
40
|
+
tryFindChild(id) {
|
|
41
|
+
return this._children.get(id);
|
|
42
|
+
}
|
|
43
|
+
findChild(id) {
|
|
44
|
+
const child = this.tryFindChild(id);
|
|
45
|
+
if (child === undefined) {
|
|
46
|
+
throw new Error(`No construct with id '${id}' found in ${this.path}`);
|
|
47
|
+
}
|
|
48
|
+
return child;
|
|
49
|
+
}
|
|
50
|
+
findAll(order = ConstructOrder.PREORDER) {
|
|
51
|
+
const result = [];
|
|
52
|
+
const visit = (construct) => {
|
|
53
|
+
if (order === ConstructOrder.PREORDER) {
|
|
54
|
+
result.push(construct);
|
|
55
|
+
}
|
|
56
|
+
for (const child of construct.node.children) {
|
|
57
|
+
visit(child);
|
|
58
|
+
}
|
|
59
|
+
if (order === ConstructOrder.POSTORDER) {
|
|
60
|
+
result.push(construct);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
visit(this._construct);
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
setContext(key, value) {
|
|
67
|
+
this._context[key] = value;
|
|
68
|
+
}
|
|
69
|
+
tryGetContext(key) {
|
|
70
|
+
if (Object.prototype.hasOwnProperty.call(this._context, key)) {
|
|
71
|
+
return this._context[key];
|
|
72
|
+
}
|
|
73
|
+
return this.scope?.node.tryGetContext(key);
|
|
74
|
+
}
|
|
75
|
+
getContext(key) {
|
|
76
|
+
const value = this.tryGetContext(key);
|
|
77
|
+
if (value === undefined) {
|
|
78
|
+
throw new Error(`Context key '${key}' not found`);
|
|
79
|
+
}
|
|
80
|
+
return value;
|
|
81
|
+
}
|
|
82
|
+
addMetadata(type, data) {
|
|
83
|
+
this._metadata.push({ type, data });
|
|
84
|
+
}
|
|
85
|
+
addValidation(validation) {
|
|
86
|
+
this._validations.push(validation);
|
|
87
|
+
}
|
|
88
|
+
validate() {
|
|
89
|
+
const errors = [];
|
|
90
|
+
for (const validation of this._validations) {
|
|
91
|
+
errors.push(...validation.validate());
|
|
92
|
+
}
|
|
93
|
+
return errors;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export var ConstructOrder;
|
|
97
|
+
(function (ConstructOrder) {
|
|
98
|
+
ConstructOrder["PREORDER"] = "preorder";
|
|
99
|
+
ConstructOrder["POSTORDER"] = "postorder";
|
|
100
|
+
})(ConstructOrder || (ConstructOrder = {}));
|
|
101
|
+
export class Construct {
|
|
102
|
+
_id;
|
|
103
|
+
_path;
|
|
104
|
+
_scope;
|
|
105
|
+
node;
|
|
106
|
+
constructor(scope, id) {
|
|
107
|
+
const sanitizedId = id.replace(/\//g, "--");
|
|
108
|
+
this._id = sanitizedId;
|
|
109
|
+
this._scope = scope;
|
|
110
|
+
if (scope !== undefined) {
|
|
111
|
+
const scopePath = scope._path ?? [];
|
|
112
|
+
this._path = [...scopePath, sanitizedId];
|
|
113
|
+
if (scope._path !== undefined) {
|
|
114
|
+
scope.node.addChild(this);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
this._path = sanitizedId !== "" ? [sanitizedId] : [];
|
|
119
|
+
}
|
|
120
|
+
this.node = new Node(this);
|
|
121
|
+
}
|
|
122
|
+
toString() {
|
|
123
|
+
return this.node.path;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
export function dependable(target) {
|
|
127
|
+
return target.fqn;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=construct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"construct.js","sourceRoot":"","sources":["../../src/facade/construct.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Construct } from "./construct.js";
|
|
2
|
+
import type { ElementKind } from "./terraform-element.js";
|
|
3
|
+
import { TerraformElement } from "./terraform-element.js";
|
|
4
|
+
import type { TerraformProvider } from "./terraform-provider.js";
|
|
5
|
+
export type IImportableConfig = {
|
|
6
|
+
terraformResourceType: string;
|
|
7
|
+
importId: string;
|
|
8
|
+
provider?: TerraformProvider;
|
|
9
|
+
};
|
|
10
|
+
export declare class ImportableResource extends TerraformElement {
|
|
11
|
+
readonly kind: ElementKind;
|
|
12
|
+
private readonly config;
|
|
13
|
+
constructor(scope: Construct, name: string, config: IImportableConfig);
|
|
14
|
+
toTerraform(): Record<string, unknown>;
|
|
15
|
+
toMetadata(): Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=importable-resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importable-resource.d.ts","sourceRoot":"","sources":["../../src/facade/importable-resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAY;IAEtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAE/B,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB;IAK5D,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAatC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAK/C"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { TerraformElement } from "./terraform-element.js";
|
|
2
|
+
export class ImportableResource extends TerraformElement {
|
|
3
|
+
kind = "import";
|
|
4
|
+
config;
|
|
5
|
+
constructor(scope, name, config) {
|
|
6
|
+
super(scope, name, config.terraformResourceType);
|
|
7
|
+
this.config = config;
|
|
8
|
+
}
|
|
9
|
+
toTerraform() {
|
|
10
|
+
const expectedResourceAddress = `${this.config.terraformResourceType}.${this.friendlyUniqueId}`;
|
|
11
|
+
return {
|
|
12
|
+
import: [
|
|
13
|
+
{
|
|
14
|
+
to: expectedResourceAddress,
|
|
15
|
+
id: this.config.importId,
|
|
16
|
+
provider: this.config.provider?.fqn,
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
toMetadata() {
|
|
22
|
+
return {
|
|
23
|
+
importsGeneratingConfiguration: [this.friendlyUniqueId],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=importable-resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importable-resource.js","sourceRoot":"","sources":["../../src/facade/importable-resource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IAC7C,IAAI,GAAgB,QAAQ,CAAC;IAErB,MAAM,CAAoB;IAE3C,YAAY,KAAgB,EAAE,IAAY,EAAE,MAAyB;QACnE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEQ,WAAW;QAClB,MAAM,uBAAuB,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChG,OAAO;YACL,MAAM,EAAE;gBACN;oBACE,EAAE,EAAE,uBAAuB;oBAC3B,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBACxB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG;iBACpC;aACF;SACF,CAAC;IACJ,CAAC;IAEQ,UAAU;QACjB,OAAO;YACL,8BAA8B,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACxD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export * from "./annotations.js";
|
|
2
|
+
export * from "./app.js";
|
|
3
|
+
export * from "./aspects.js";
|
|
4
|
+
export * from "./backends/index.js";
|
|
5
|
+
export * from "./complex-computed-list.js";
|
|
6
|
+
export * from "./construct.js";
|
|
7
|
+
export * from "./importable-resource.js";
|
|
8
|
+
export * from "./runtime.js";
|
|
9
|
+
export * from "./terraform-addressable.js";
|
|
10
|
+
export * from "./terraform-asset.js";
|
|
11
|
+
export * from "./terraform-backend.js";
|
|
12
|
+
export * from "./terraform-data-source.js";
|
|
13
|
+
export * from "./terraform-element.js";
|
|
14
|
+
export * from "./terraform-functions.js";
|
|
15
|
+
export * from "./terraform-hcl-module.js";
|
|
16
|
+
export * from "./terraform-iterator.js";
|
|
17
|
+
export * from "./terraform-local.js";
|
|
18
|
+
export * from "./terraform-module.js";
|
|
19
|
+
export * from "./terraform-output.js";
|
|
20
|
+
export * from "./terraform-provider.js";
|
|
21
|
+
export * from "./terraform-remote-state.js";
|
|
22
|
+
export * from "./terraform-resource.js";
|
|
23
|
+
export * from "./terraform-stack.js";
|
|
24
|
+
export * from "./terraform-variable.js";
|
|
25
|
+
export * from "./tokenization.js";
|
|
26
|
+
export * from "./util.js";
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/facade/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export * from "./annotations.js";
|
|
2
|
+
export * from "./app.js";
|
|
3
|
+
export * from "./aspects.js";
|
|
4
|
+
export * from "./backends/index.js";
|
|
5
|
+
export * from "./complex-computed-list.js";
|
|
6
|
+
export * from "./construct.js";
|
|
7
|
+
export * from "./importable-resource.js";
|
|
8
|
+
export * from "./runtime.js";
|
|
9
|
+
export * from "./terraform-addressable.js";
|
|
10
|
+
export * from "./terraform-asset.js";
|
|
11
|
+
export * from "./terraform-backend.js";
|
|
12
|
+
export * from "./terraform-data-source.js";
|
|
13
|
+
export * from "./terraform-element.js";
|
|
14
|
+
export * from "./terraform-functions.js";
|
|
15
|
+
export * from "./terraform-hcl-module.js";
|
|
16
|
+
export * from "./terraform-iterator.js";
|
|
17
|
+
export * from "./terraform-local.js";
|
|
18
|
+
export * from "./terraform-module.js";
|
|
19
|
+
export * from "./terraform-output.js";
|
|
20
|
+
export * from "./terraform-provider.js";
|
|
21
|
+
export * from "./terraform-remote-state.js";
|
|
22
|
+
export * from "./terraform-resource.js";
|
|
23
|
+
export * from "./terraform-stack.js";
|
|
24
|
+
export * from "./terraform-variable.js";
|
|
25
|
+
export * from "./tokenization.js";
|
|
26
|
+
export * from "./util.js";
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/facade/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type Mapper = (x: unknown) => unknown;
|
|
2
|
+
export declare const stringToTerraform: Mapper;
|
|
3
|
+
export declare const booleanToTerraform: Mapper;
|
|
4
|
+
export declare const anyToTerraform: Mapper;
|
|
5
|
+
export declare const numberToTerraform: Mapper;
|
|
6
|
+
export declare const stringToHclTerraform: Mapper;
|
|
7
|
+
export declare const booleanToHclTerraform: Mapper;
|
|
8
|
+
export declare const anyToHclTerraform: Mapper;
|
|
9
|
+
export declare const numberToHclTerraform: Mapper;
|
|
10
|
+
export declare function listMapper(elementMapper: Mapper, _isBlockType?: boolean): Mapper;
|
|
11
|
+
export declare function listMapperHcl(elementMapper: Mapper, _isBlockType?: boolean): Mapper;
|
|
12
|
+
export declare function hashMapper(elementMapper: Mapper): Mapper;
|
|
13
|
+
export declare function hashMapperHcl(elementMapper: Mapper): Mapper;
|
|
14
|
+
export declare function canInspect(x: unknown): boolean;
|
|
15
|
+
export declare function isComplexElement(_x: unknown): boolean;
|
|
16
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/facade/runtime.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;AAM7C,eAAO,MAAM,iBAAiB,EAAE,MAAiB,CAAC;AAClD,eAAO,MAAM,kBAAkB,EAAE,MAAiB,CAAC;AACnD,eAAO,MAAM,cAAc,EAAE,MAAiB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,EAAE,MAAiB,CAAC;AAElD,eAAO,MAAM,oBAAoB,EAAE,MAAiB,CAAC;AACrD,eAAO,MAAM,qBAAqB,EAAE,MAAiB,CAAC;AACtD,eAAO,MAAM,iBAAiB,EAAE,MAAiB,CAAC;AAClD,eAAO,MAAM,oBAAoB,EAAE,MAAiB,CAAC;AAErD,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAUhF;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAUnF;AAED,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAiBxD;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAiB3D;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAE9C;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAErD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
function identity(x) {
|
|
2
|
+
return x;
|
|
3
|
+
}
|
|
4
|
+
export const stringToTerraform = identity;
|
|
5
|
+
export const booleanToTerraform = identity;
|
|
6
|
+
export const anyToTerraform = identity;
|
|
7
|
+
export const numberToTerraform = identity;
|
|
8
|
+
export const stringToHclTerraform = identity;
|
|
9
|
+
export const booleanToHclTerraform = identity;
|
|
10
|
+
export const anyToHclTerraform = identity;
|
|
11
|
+
export const numberToHclTerraform = identity;
|
|
12
|
+
export function listMapper(elementMapper, _isBlockType) {
|
|
13
|
+
return (x) => {
|
|
14
|
+
if (!canInspect(x)) {
|
|
15
|
+
return x;
|
|
16
|
+
}
|
|
17
|
+
if (!Array.isArray(x)) {
|
|
18
|
+
return x;
|
|
19
|
+
}
|
|
20
|
+
return x.map(elementMapper);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export function listMapperHcl(elementMapper, _isBlockType) {
|
|
24
|
+
return (x) => {
|
|
25
|
+
if (!canInspect(x)) {
|
|
26
|
+
return x;
|
|
27
|
+
}
|
|
28
|
+
if (!Array.isArray(x)) {
|
|
29
|
+
return x;
|
|
30
|
+
}
|
|
31
|
+
return x.map(elementMapper);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function hashMapper(elementMapper) {
|
|
35
|
+
return (x) => {
|
|
36
|
+
if (!canInspect(x)) {
|
|
37
|
+
return x;
|
|
38
|
+
}
|
|
39
|
+
if (typeof x === "string") {
|
|
40
|
+
return x;
|
|
41
|
+
}
|
|
42
|
+
if (typeof x !== "object" || x === null) {
|
|
43
|
+
return x;
|
|
44
|
+
}
|
|
45
|
+
const ret = {};
|
|
46
|
+
for (const key of Object.keys(x)) {
|
|
47
|
+
ret[key] = elementMapper(x[key]);
|
|
48
|
+
}
|
|
49
|
+
return ret;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export function hashMapperHcl(elementMapper) {
|
|
53
|
+
return (x) => {
|
|
54
|
+
if (!canInspect(x)) {
|
|
55
|
+
return x;
|
|
56
|
+
}
|
|
57
|
+
if (typeof x === "string") {
|
|
58
|
+
return x;
|
|
59
|
+
}
|
|
60
|
+
if (typeof x !== "object" || x === null) {
|
|
61
|
+
return x;
|
|
62
|
+
}
|
|
63
|
+
const ret = {};
|
|
64
|
+
for (const key of Object.keys(x)) {
|
|
65
|
+
ret[key] = elementMapper(x[key]);
|
|
66
|
+
}
|
|
67
|
+
return ret;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export function canInspect(x) {
|
|
71
|
+
return x !== null && x !== undefined;
|
|
72
|
+
}
|
|
73
|
+
export function isComplexElement(_x) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/facade/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TerraformElement } from "./terraform-element.js";
|
|
2
|
+
export type StackLike = TerraformElement & {
|
|
3
|
+
prepareStack(): void;
|
|
4
|
+
synthesize(): void;
|
|
5
|
+
addDependency(dependency: StackLike): void;
|
|
6
|
+
registerOutgoingCrossStackReference(identifier: string): string;
|
|
7
|
+
registerIncomingCrossStackReference(fromStack: StackLike): {
|
|
8
|
+
getString(output: string): string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export declare function registerStack(element: object, stack: StackLike): void;
|
|
12
|
+
export declare function getStack(element: object): StackLike | undefined;
|
|
13
|
+
//# sourceMappingURL=stack-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack-registry.d.ts","sourceRoot":"","sources":["../../src/facade/stack-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG;IACzC,YAAY,IAAI,IAAI,CAAC;IACrB,UAAU,IAAI,IAAI,CAAC;IACnB,aAAa,CAAC,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3C,mCAAmC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAChE,mCAAmC,CAAC,SAAS,EAAE,SAAS,GAAG;QACzD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;KACnC,CAAC;CACH,CAAC;AAIF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAErE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAE/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack-registry.js","sourceRoot":"","sources":["../../src/facade/stack-registry.ts"],"names":[],"mappings":"AAYA,MAAM,aAAa,GAAG,IAAI,OAAO,EAAqB,CAAC;AAEvD,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,KAAgB;IAC7D,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IResolvable } from "../core/tokens.js";
|
|
2
|
+
export type ITerraformDependable = {
|
|
3
|
+
readonly fqn: string;
|
|
4
|
+
readonly rawFqn: string;
|
|
5
|
+
};
|
|
6
|
+
export type IInterpolatingParent = {
|
|
7
|
+
interpolationForAttribute(terraformAttribute: string): IResolvable;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=terraform-addressable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terraform-addressable.d.ts","sourceRoot":"","sources":["../../src/facade/terraform-addressable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,yBAAyB,CAAC,kBAAkB,EAAE,MAAM,GAAG,WAAW,CAAC;CACpE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terraform-addressable.js","sourceRoot":"","sources":["../../src/facade/terraform-addressable.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Construct } from "./construct.js";
|
|
2
|
+
export declare enum AssetType {
|
|
3
|
+
FILE = 0,
|
|
4
|
+
DIRECTORY = 1,
|
|
5
|
+
ARCHIVE = 2
|
|
6
|
+
}
|
|
7
|
+
export type TerraformAssetConfig = {
|
|
8
|
+
readonly path: string;
|
|
9
|
+
readonly type?: AssetType;
|
|
10
|
+
readonly assetHash?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare class TerraformAsset extends Construct {
|
|
13
|
+
private _stack;
|
|
14
|
+
private _sourcePath;
|
|
15
|
+
readonly assetHash: string;
|
|
16
|
+
readonly type: AssetType;
|
|
17
|
+
constructor(scope: Construct, id: string, config: TerraformAssetConfig);
|
|
18
|
+
private get namedFolder();
|
|
19
|
+
get path(): string;
|
|
20
|
+
get fileName(): string;
|
|
21
|
+
get sourcePath(): string;
|
|
22
|
+
private computeHash;
|
|
23
|
+
private hashDirectory;
|
|
24
|
+
copyToOutputDir(outputDir: string): void;
|
|
25
|
+
private copyDirectory;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=terraform-asset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terraform-asset.d.ts","sourceRoot":"","sources":["../../src/facade/terraform-asset.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAM3C,oBAAY,SAAS;IACnB,IAAI,IAAI;IACR,SAAS,IAAI;IACb,OAAO,IAAI;CACZ;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,qBAAa,cAAe,SAAQ,SAAS;IAC3C,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;gBAEb,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;IA2BtE,OAAO,KAAK,WAAW,GAEtB;IAED,IAAI,IAAI,IAAI,MAAM,CAMjB;IAED,IAAI,QAAQ,IAAI,MAAM,CAYrB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,aAAa;IAcrB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAkBxC,OAAO,CAAC,aAAa;CAatB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { copyFileSync, mkdirSync, readdirSync, readFileSync, statSync } from "node:fs";
|
|
3
|
+
import { basename, dirname, isAbsolute, join, posix, resolve } from "node:path";
|
|
4
|
+
import { Construct } from "./construct.js";
|
|
5
|
+
import { TerraformStack } from "./terraform-stack.js";
|
|
6
|
+
const ASSETS_DIRECTORY = "assets";
|
|
7
|
+
const ARCHIVE_NAME = "archive.zip";
|
|
8
|
+
export var AssetType;
|
|
9
|
+
(function (AssetType) {
|
|
10
|
+
AssetType[AssetType["FILE"] = 0] = "FILE";
|
|
11
|
+
AssetType[AssetType["DIRECTORY"] = 1] = "DIRECTORY";
|
|
12
|
+
AssetType[AssetType["ARCHIVE"] = 2] = "ARCHIVE";
|
|
13
|
+
})(AssetType || (AssetType = {}));
|
|
14
|
+
export class TerraformAsset extends Construct {
|
|
15
|
+
_stack;
|
|
16
|
+
_sourcePath;
|
|
17
|
+
assetHash;
|
|
18
|
+
type;
|
|
19
|
+
constructor(scope, id, config) {
|
|
20
|
+
super(scope, id);
|
|
21
|
+
this._stack = TerraformStack.of(this);
|
|
22
|
+
if (isAbsolute(config.path)) {
|
|
23
|
+
this._sourcePath = config.path;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const cwd = process.cwd();
|
|
27
|
+
this._sourcePath = resolve(cwd, config.path);
|
|
28
|
+
}
|
|
29
|
+
const stat = statSync(this._sourcePath);
|
|
30
|
+
const inferredType = stat.isFile() ? AssetType.FILE : AssetType.DIRECTORY;
|
|
31
|
+
this.type = config.type ?? inferredType;
|
|
32
|
+
if (stat.isFile() && this.type !== AssetType.FILE) {
|
|
33
|
+
throw new Error(`Asset ${id} is a file but type is set to directory`);
|
|
34
|
+
}
|
|
35
|
+
if (!stat.isFile() && this.type === AssetType.FILE) {
|
|
36
|
+
throw new Error(`Asset ${id} is a directory but type is set to file`);
|
|
37
|
+
}
|
|
38
|
+
this.assetHash = config.assetHash ?? this.computeHash(this._sourcePath);
|
|
39
|
+
}
|
|
40
|
+
get namedFolder() {
|
|
41
|
+
return posix.join(ASSETS_DIRECTORY, this._stack.getLogicalId(this));
|
|
42
|
+
}
|
|
43
|
+
get path() {
|
|
44
|
+
return posix.join(this.namedFolder, this.assetHash, this.type === AssetType.DIRECTORY ? "" : this.fileName);
|
|
45
|
+
}
|
|
46
|
+
get fileName() {
|
|
47
|
+
switch (this.type) {
|
|
48
|
+
case AssetType.ARCHIVE:
|
|
49
|
+
return ARCHIVE_NAME;
|
|
50
|
+
case AssetType.FILE:
|
|
51
|
+
case AssetType.DIRECTORY:
|
|
52
|
+
return basename(this._sourcePath);
|
|
53
|
+
default: {
|
|
54
|
+
const exhaustiveCheck = this.type;
|
|
55
|
+
throw new Error(`Unexpected asset type: ${exhaustiveCheck}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
get sourcePath() {
|
|
60
|
+
return this._sourcePath;
|
|
61
|
+
}
|
|
62
|
+
computeHash(filePath) {
|
|
63
|
+
const hash = createHash("sha256");
|
|
64
|
+
const stat = statSync(filePath);
|
|
65
|
+
if (stat.isFile()) {
|
|
66
|
+
const content = readFileSync(filePath);
|
|
67
|
+
hash.update(content);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.hashDirectory(filePath, hash);
|
|
71
|
+
}
|
|
72
|
+
return hash.digest("hex").slice(0, 16);
|
|
73
|
+
}
|
|
74
|
+
hashDirectory(dirPath, hash) {
|
|
75
|
+
const entries = readdirSync(dirPath, { withFileTypes: true });
|
|
76
|
+
for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {
|
|
77
|
+
const fullPath = join(dirPath, entry.name);
|
|
78
|
+
hash.update(entry.name);
|
|
79
|
+
if (entry.isFile()) {
|
|
80
|
+
const content = readFileSync(fullPath);
|
|
81
|
+
hash.update(content);
|
|
82
|
+
}
|
|
83
|
+
else if (entry.isDirectory()) {
|
|
84
|
+
this.hashDirectory(fullPath, hash);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
copyToOutputDir(outputDir) {
|
|
89
|
+
const targetPath = join(outputDir, this.path);
|
|
90
|
+
const targetDir = this.type === AssetType.DIRECTORY ? targetPath : dirname(targetPath);
|
|
91
|
+
mkdirSync(targetDir, { recursive: true });
|
|
92
|
+
switch (this.type) {
|
|
93
|
+
case AssetType.FILE:
|
|
94
|
+
copyFileSync(this._sourcePath, targetPath);
|
|
95
|
+
break;
|
|
96
|
+
case AssetType.DIRECTORY:
|
|
97
|
+
this.copyDirectory(this._sourcePath, targetPath);
|
|
98
|
+
break;
|
|
99
|
+
case AssetType.ARCHIVE:
|
|
100
|
+
throw new Error("Archive type requires additional implementation");
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
copyDirectory(src, dest) {
|
|
104
|
+
mkdirSync(dest, { recursive: true });
|
|
105
|
+
const entries = readdirSync(src, { withFileTypes: true });
|
|
106
|
+
for (const entry of entries) {
|
|
107
|
+
const srcPath = join(src, entry.name);
|
|
108
|
+
const destPath = join(dest, entry.name);
|
|
109
|
+
if (entry.isDirectory()) {
|
|
110
|
+
this.copyDirectory(srcPath, destPath);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
copyFileSync(srcPath, destPath);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=terraform-asset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terraform-asset.js","sourceRoot":"","sources":["../../src/facade/terraform-asset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAClC,MAAM,YAAY,GAAG,aAAa,CAAC;AAEnC,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,yCAAQ,CAAA;IACR,mDAAa,CAAA;IACb,+CAAW,CAAA;AACb,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AAQD,MAAM,OAAO,cAAe,SAAQ,SAAS;IACnC,MAAM,CAAiB;IACvB,WAAW,CAAS;IACnB,SAAS,CAAS;IAClB,IAAI,CAAY;IAEzB,YAAY,KAAgB,EAAE,EAAU,EAAE,MAA4B;QACpE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEjB,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,YAAY,CAAC;QAExC,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,yCAAyC,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,yCAAyC,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,WAAW;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,IAAI;QACN,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CACvD,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ;QACV,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,SAAS,CAAC,OAAO;gBACpB,OAAO,YAAY,CAAC;YACtB,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,SAAS;gBACtB,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpC,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,eAAe,GAAU,IAAI,CAAC,IAAI,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,0BAA0B,eAAe,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEO,WAAW,CAAC,QAAgB;QAClC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;IAEO,aAAa,CAAC,OAAe,EAAE,IAAmC;QACxE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;iBAAM,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,SAAiB;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEvF,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,SAAS,CAAC,IAAI;gBACjB,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,SAAS,CAAC,SAAS;gBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,SAAS,CAAC,OAAO;gBACpB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,GAAW,EAAE,IAAY;QAC7C,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Construct } from "./construct.js";
|
|
2
|
+
import type { ElementKind } from "./terraform-element.js";
|
|
3
|
+
import { TerraformElement } from "./terraform-element.js";
|
|
4
|
+
import type { TerraformRemoteState } from "./terraform-remote-state.js";
|
|
5
|
+
export declare abstract class TerraformBackend extends TerraformElement {
|
|
6
|
+
readonly kind: ElementKind;
|
|
7
|
+
constructor(scope: Construct, id: string);
|
|
8
|
+
abstract getRemoteStateDataSource(scope: Construct, name: string, fromStack: string): TerraformRemoteState;
|
|
9
|
+
protected synthesizeAttributes(): Record<string, unknown>;
|
|
10
|
+
}
|
|
11
|
+
export type LocalBackendConfig = {
|
|
12
|
+
readonly path?: string;
|
|
13
|
+
readonly workspaceDir?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare class LocalBackend extends TerraformBackend {
|
|
16
|
+
private readonly statePath?;
|
|
17
|
+
private readonly workspaceDir?;
|
|
18
|
+
constructor(scope: Construct, config: LocalBackendConfig);
|
|
19
|
+
getRemoteStateDataSource(scope: Construct, name: string, _fromStack: string): TerraformRemoteState;
|
|
20
|
+
toTerraform(): Record<string, unknown>;
|
|
21
|
+
protected synthesizeAttributes(): Record<string, unknown>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=terraform-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terraform-backend.d.ts","sourceRoot":"","sources":["../../src/facade/terraform-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,8BAAsB,gBAAiB,SAAQ,gBAAgB;IAC7D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAa;gBAE3B,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM;IAIxC,QAAQ,CAAC,wBAAwB,CAC/B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,oBAAoB;IAEvB,SAAS,CAAC,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG1D;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,qBAAa,YAAa,SAAQ,gBAAgB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;gBAE3B,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB;IAM/C,wBAAwB,CAC/B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,oBAAoB;IAOd,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAiB5B,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUnE"}
|