cdktn 0.25.0-pre.32 → 0.25.0-pre.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/.jsii +7 -7
  2. package/lib/annotations.js +1 -1
  3. package/lib/app.js +1 -1
  4. package/lib/aspect.js +1 -1
  5. package/lib/asset-hash.js +1 -1
  6. package/lib/asset-staging.js +1 -1
  7. package/lib/assets.js +1 -1
  8. package/lib/backends/azurerm-backend.js +2 -2
  9. package/lib/backends/cloud-backend.js +10 -7
  10. package/lib/backends/consul-backend.js +2 -2
  11. package/lib/backends/cos-backend.js +2 -2
  12. package/lib/backends/gcs-backend.js +2 -2
  13. package/lib/backends/http-backend.js +2 -2
  14. package/lib/backends/local-backend.js +2 -2
  15. package/lib/backends/oss-backend.js +2 -2
  16. package/lib/backends/pg-backend.js +2 -2
  17. package/lib/backends/remote-backend.js +4 -4
  18. package/lib/backends/s3-backend.js +2 -2
  19. package/lib/backends/swift-backend.js +2 -2
  20. package/lib/complex-computed-list.js +26 -26
  21. package/lib/functions/provider-function.js +1 -1
  22. package/lib/functions/terraform-functions.generated.js +1 -1
  23. package/lib/ignore-strategy.js +1 -1
  24. package/lib/importable-resource.js +7 -4
  25. package/lib/manifest.js +1 -1
  26. package/lib/resource.js +1 -1
  27. package/lib/synthesize/synthesizer.js +9 -22
  28. package/lib/terraform-asset.js +1 -1
  29. package/lib/terraform-backend.js +1 -1
  30. package/lib/terraform-count.js +1 -1
  31. package/lib/terraform-data-resource.d.ts +1 -1
  32. package/lib/terraform-data-resource.js +8 -5
  33. package/lib/terraform-data-source.js +1 -1
  34. package/lib/terraform-element.js +1 -1
  35. package/lib/terraform-ephemeral-resource.js +1 -1
  36. package/lib/terraform-functions.js +1 -1
  37. package/lib/terraform-hcl-module.js +1 -1
  38. package/lib/terraform-iterator.js +5 -5
  39. package/lib/terraform-local.js +1 -1
  40. package/lib/terraform-module.js +1 -1
  41. package/lib/terraform-operators.js +1 -1
  42. package/lib/terraform-output.js +1 -1
  43. package/lib/terraform-provider.js +1 -1
  44. package/lib/terraform-provisioner.js +1 -1
  45. package/lib/terraform-remote-state.js +1 -1
  46. package/lib/terraform-resource-targets.js +1 -1
  47. package/lib/terraform-resource.js +9 -4
  48. package/lib/terraform-stack.js +1 -1
  49. package/lib/terraform-variable.js +2 -2
  50. package/lib/testing/index.js +1 -1
  51. package/lib/testing/matchers.js +1 -1
  52. package/lib/tokens/lazy.js +2 -2
  53. package/lib/tokens/resolvable.js +2 -2
  54. package/lib/tokens/string-fragments.js +1 -1
  55. package/lib/tokens/token.js +2 -2
  56. package/lib/upgrade-id-aspect.js +1 -1
  57. package/lib/validations/index.d.ts +0 -1
  58. package/lib/validations/index.js +1 -2
  59. package/package.json +1 -1
  60. package/lib/validations/validate-binary-version.d.ts +0 -23
  61. package/lib/validations/validate-binary-version.js +0 -91
  62. package/lib/validations/validate-terraform-version.d.ts +0 -13
  63. package/lib/validations/validate-terraform-version.js +0 -23
package/.jsii CHANGED
@@ -5946,7 +5946,7 @@
5946
5946
  "assembly": "cdktn",
5947
5947
  "base": "cdktn.TerraformResource",
5948
5948
  "docs": {
5949
- "remarks": "You can use the DataResource resource without requiring or configuring a provider.\n\nThe DataResource resource is useful for storing values which need to follow a manage resource lifecycle, and for triggering provisioners when there is no other logical managed resource in which to place them.\n\nIt requires Terraform 1.4 or later.\n\nIt is also possible to generate these bindings by adding \"terraform.io/builtin/terraform\" to the \"terraformProviders\" key in your cdktf.json file and running \"cdktn get\".\n\nhttps://developer.hashicorp.com/terraform/language/resources/terraform-data",
5949
+ "remarks": "You can use the DataResource resource without requiring or configuring a provider.\n\nThe DataResource resource is useful for storing values which need to follow a manage resource lifecycle, and for triggering provisioners when there is no other logical managed resource in which to place them.\n\nIt requires Terraform >=1.4.0 or OpenTofu >=1.6.0.\n\nIt is also possible to generate these bindings by adding \"terraform.io/builtin/terraform\" to the \"terraformProviders\" key in your cdktf.json file and running \"cdktn get\".\n\nhttps://developer.hashicorp.com/terraform/language/resources/terraform-data",
5950
5950
  "stability": "experimental",
5951
5951
  "summary": "The DataResource implements the standard resource lifecycle, but does not directly take any other actions."
5952
5952
  },
@@ -27443,7 +27443,7 @@
27443
27443
  },
27444
27444
  "locationInModule": {
27445
27445
  "filename": "src/terraform-resource.ts",
27446
- "line": 559
27446
+ "line": 561
27447
27447
  },
27448
27448
  "name": "addMoveTarget",
27449
27449
  "parameters": [
@@ -27803,7 +27803,7 @@
27803
27803
  },
27804
27804
  "locationInModule": {
27805
27805
  "filename": "src/terraform-resource.ts",
27806
- "line": 590
27806
+ "line": 592
27807
27807
  },
27808
27808
  "name": "moveFromId",
27809
27809
  "parameters": [
@@ -27825,7 +27825,7 @@
27825
27825
  },
27826
27826
  "locationInModule": {
27827
27827
  "filename": "src/terraform-resource.ts",
27828
- "line": 543
27828
+ "line": 545
27829
27829
  },
27830
27830
  "name": "moveTo",
27831
27831
  "parameters": [
@@ -27866,7 +27866,7 @@
27866
27866
  },
27867
27867
  "locationInModule": {
27868
27868
  "filename": "src/terraform-resource.ts",
27869
- "line": 567
27869
+ "line": 569
27870
27870
  },
27871
27871
  "name": "moveToId",
27872
27872
  "parameters": [
@@ -32075,6 +32075,6 @@
32075
32075
  "symbolId": "src/testing/matchers:TerraformConstructor"
32076
32076
  }
32077
32077
  },
32078
- "version": "0.25.0-pre.32",
32079
- "fingerprint": "vC775xl1ujAry0uCEQ69Qh7RuxSVovvatYoKGOqgsJ8="
32078
+ "version": "0.25.0-pre.36",
32079
+ "fingerprint": "HWaTX4JMQLrxDKCy7BCZmu6yZ0t78KsjDqKSgutgW7g="
32080
32080
  }
@@ -14,7 +14,7 @@ exports.DISABLE_STACK_TRACE_IN_METADATA = "@cdktf/disable_stack_trace_in_metadat
14
14
  */
15
15
  class Annotations {
16
16
  scope;
17
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.Annotations", version: "0.25.0-pre.32" };
17
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.Annotations", version: "0.25.0-pre.36" };
18
18
  /**
19
19
  * Returns the annotations API for a construct scope.
20
20
  * @param scope The scope
package/lib/app.js CHANGED
@@ -51,7 +51,7 @@ exports.CONTEXT_ENV = "CDKTF_CONTEXT_JSON";
51
51
  * Represents a cdktn application.
52
52
  */
53
53
  class App extends constructs_1.Construct {
54
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.App", version: "0.25.0-pre.32" };
54
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.App", version: "0.25.0-pre.36" };
55
55
  /**
56
56
  * The output directory into which resources will be synthesized.
57
57
  */
package/lib/aspect.js CHANGED
@@ -8,7 +8,7 @@ const ASPECTS_SYMBOL = Symbol("cdktf-aspects");
8
8
  * synthesis.
9
9
  */
10
10
  class Aspects {
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.Aspects", version: "0.25.0-pre.32" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.Aspects", version: "0.25.0-pre.36" };
12
12
  /**
13
13
  * Returns the `Aspects` object associated with a construct scope.
14
14
  * @param scope The scope for which these aspects will apply.
package/lib/asset-hash.js CHANGED
@@ -51,7 +51,7 @@ const errors_1 = require("./errors");
51
51
  * staged copy; this is the identity half without the staging half.
52
52
  */
53
53
  class AssetHash {
54
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.AssetHash", version: "0.25.0-pre.32" };
54
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.AssetHash", version: "0.25.0-pre.36" };
55
55
  /**
56
56
  * Content hash of a file or directory, without staging it.
57
57
  *
@@ -97,7 +97,7 @@ function hashCacheFor(root) {
97
97
  * entire tree rather than one asset's `extraHash`.
98
98
  */
99
99
  class AssetStaging extends constructs_1.Construct {
100
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.AssetStaging", version: "0.25.0-pre.32" };
100
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.AssetStaging", version: "0.25.0-pre.36" };
101
101
  sourcePath;
102
102
  ignoreStrategy;
103
103
  hashCache;
package/lib/assets.js CHANGED
@@ -112,7 +112,7 @@ class ZipPackaging {
112
112
  * directly rather than extending this class.
113
113
  */
114
114
  class AssetPackaging {
115
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.AssetPackaging", version: "0.25.0-pre.32" };
115
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.AssetPackaging", version: "0.25.0-pre.36" };
116
116
  /**
117
117
  * Copy a single file as-is.
118
118
  */
@@ -8,7 +8,7 @@ const terraform_remote_state_1 = require("../terraform-remote-state");
8
8
  // eslint-disable-next-line jsdoc/require-jsdoc
9
9
  class AzurermBackend extends terraform_backend_1.TerraformBackend {
10
10
  props;
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.AzurermBackend", version: "0.25.0-pre.32" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.AzurermBackend", version: "0.25.0-pre.36" };
12
12
  constructor(scope, props) {
13
13
  super(scope, "backend", "azurerm");
14
14
  this.props = props;
@@ -29,7 +29,7 @@ class AzurermBackend extends terraform_backend_1.TerraformBackend {
29
29
  exports.AzurermBackend = AzurermBackend;
30
30
  // eslint-disable-next-line jsdoc/require-jsdoc
31
31
  class DataTerraformRemoteStateAzurerm extends terraform_remote_state_1.TerraformRemoteState {
32
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateAzurerm", version: "0.25.0-pre.32" };
32
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateAzurerm", version: "0.25.0-pre.36" };
33
33
  constructor(scope, id, config) {
34
34
  super(scope, id, "azurerm", config);
35
35
  }
@@ -6,7 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const util_1 = require("../util");
7
7
  const remote_backend_1 = require("./remote-backend");
8
8
  const terraform_backend_1 = require("../terraform-backend");
9
- const validate_terraform_version_1 = require("../validations/validate-terraform-version");
9
+ const validations_1 = require("../validations");
10
10
  const errors_1 = require("../errors");
11
11
  /**
12
12
  * checks whether the given hostname belongs to tfc or (else) to tfe
@@ -28,11 +28,14 @@ function getHostNameType(hostname) {
28
28
  */
29
29
  class CloudBackend extends terraform_backend_1.TerraformBackend {
30
30
  props;
31
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.CloudBackend", version: "0.25.0-pre.32" };
31
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.CloudBackend", version: "0.25.0-pre.36" };
32
32
  constructor(scope, props) {
33
33
  super(scope, "backend", "cloud");
34
34
  this.props = props;
35
- this.node.addValidation(new validate_terraform_version_1.ValidateTerraformVersion(">=1.1", `The cloud block is only supported for Terraform >=1.1. Please upgrade your Terraform version.`));
35
+ this.node.addValidation(new validations_1.ValidateFeatureTargetSupport(this, "The cloud block", {
36
+ terraform: ">=1.1.0",
37
+ opentofu: ">=1.6.0",
38
+ }));
36
39
  }
37
40
  toHclTerraform() {
38
41
  return {
@@ -91,7 +94,7 @@ exports.CloudBackend = CloudBackend;
91
94
  * A cloud workspace can either be a single named workspace, or a list of tagged workspaces.
92
95
  */
93
96
  class CloudWorkspace {
94
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.CloudWorkspace", version: "0.25.0-pre.32" };
97
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.CloudWorkspace", version: "0.25.0-pre.36" };
95
98
  }
96
99
  exports.CloudWorkspace = CloudWorkspace;
97
100
  /**
@@ -101,7 +104,7 @@ exports.CloudWorkspace = CloudWorkspace;
101
104
  class NamedCloudWorkspace extends CloudWorkspace {
102
105
  name;
103
106
  project;
104
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.NamedCloudWorkspace", version: "0.25.0-pre.32" };
107
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.NamedCloudWorkspace", version: "0.25.0-pre.36" };
105
108
  constructor(name, project) {
106
109
  super();
107
110
  this.name = name;
@@ -130,7 +133,7 @@ exports.NamedCloudWorkspace = NamedCloudWorkspace;
130
133
  class TaggedCloudWorkspaces extends CloudWorkspace {
131
134
  tags;
132
135
  project;
133
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TaggedCloudWorkspaces", version: "0.25.0-pre.32" };
136
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.TaggedCloudWorkspaces", version: "0.25.0-pre.36" };
134
137
  constructor(tags, project) {
135
138
  super();
136
139
  this.tags = tags;
@@ -153,4 +156,4 @@ class TaggedCloudWorkspaces extends CloudWorkspace {
153
156
  }
154
157
  }
155
158
  exports.TaggedCloudWorkspaces = TaggedCloudWorkspaces;
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYWNrZW5kcy9jbG91ZC1iYWNrZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdCQSwwQ0FHQzs7QUFoQkQsa0NBQXFEO0FBQ3JELHFEQUE0RDtBQUU1RCw0REFBd0Q7QUFDeEQsMEZBQXFGO0FBQ3JGLHNDQUFvRTtBQUVwRTs7Ozs7R0FLRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxRQUFpQjtJQUMvQyxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFDLENBQUMseURBQXlEO0lBQ3RGLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNqRSxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBYSxZQUFhLFNBQVEsb0NBQWdCO0lBRzdCOztJQUZuQixZQUNFLEtBQWdCLEVBQ0MsS0FBeUI7UUFFMUMsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFGaEIsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFJMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQ3JCLElBQUkscURBQXdCLENBQzFCLE9BQU8sRUFDUCwrRkFBK0YsQ0FDaEcsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTztZQUNMLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUUsSUFBQSxnQkFBUyxFQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDcEU7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixPQUFPO1lBQ0wsU0FBUyxFQUFFO2dCQUNULEtBQUssRUFBRSxJQUFBLGdCQUFTLEVBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVB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T0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDO0lBQ0osQ0FBQzs7QUF2Qkgsc0RBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBrZXlzVG9TbmFrZUNhc2UsIGRlZXBNZXJnZSB9IGZyb20gXCIuLi91dGlsXCI7XG5pbXBvcnQgeyBEYXRhVGVycmFmb3JtUmVtb3RlU3RhdGUgfSBmcm9tIFwiLi9yZW1vdGUtYmFja2VuZFwiO1xuaW1wb3J0IHsgVGVycmFmb3JtUmVtb3RlU3RhdGUgfSBmcm9tIFwiLi4vdGVycmFmb3JtLXJlbW90ZS1zdGF0ZVwiO1xuaW1wb3J0IHsgVGVycmFmb3JtQmFja2VuZCB9IGZyb20gXCIuLi90ZXJyYWZvcm0tYmFja2VuZFwiO1xuaW1wb3J0IHsgVmFsaWRhdGVUZXJyYWZvcm1WZXJzaW9uIH0gZnJvbSBcIi4uL3ZhbGlkYXRpb25zL3ZhbGlkYXRlLXRlcnJhZm9ybS12ZXJzaW9uXCI7XG5pbXBvcnQgeyBjbG91ZEJhY2tlbmRXb3Jrc3BhY2VJc05vdERlZmluZWRCeU5hbWUgfSBmcm9tIFwiLi4vZXJyb3JzXCI7XG5cbi8qKlxuICogY2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGhvc3RuYW1lIGJlbG9uZ3MgdG8gdGZjIG9yIChlbHNlKSB0byB0ZmVcbiAqIElmIG5vIGhvc3RuYW1lIGlzIGdpdmVuLCBpdCB3aWxsIHJldHVybiB0ZmMsIGFzIHRoYXQncyB0aGUgZGVmYXVsdCBpbiBiYWNrZW5kcy5cbiAqIEBwYXJhbSBob3N0bmFtZSBlLmcuIGFwcC50ZXJyYWZvcm0uaW8sIGFwcC50ZXJyYWZvcm0uaW86ODAsIHRmZS5teW9yZy5vcmdcbiAqIEByZXR1cm5zIFwidGZjXCIgb3IgXCJ0ZmVcIlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9zdE5hbWVUeXBlKGhvc3RuYW1lPzogc3RyaW5nKTogXCJ0ZmNcIiB8IFwidGZlXCIge1xuICBpZiAoIWhvc3RuYW1lKSByZXR1cm4gXCJ0ZmNcIjsgLy8gZGVmYXVsdCBpcyB0ZmMgd2hlbiBub3QgcGFzc2luZyBhIGhvc3RuYW1lIHRvIGJhY2tlbmRzXG4gIHJldHVybiBob3N0bmFtZS5zdGFydHNXaXRoKFwiYXBwLnRlcnJhZm9ybS5pb1wiKSA/IFwidGZjXCIgOiBcInRmZVwiO1xufVxuXG4vKipcbiAqIFRoZSBDbG91ZCBCYWNrZW5kIHN5bnRoZXNpemVzIGEge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLmhhc2hpY29ycC5jb20vdGVycmFmb3JtL2NsaS9jbG91ZC9zZXR0aW5ncyN0aGUtY2xvdWQtYmxvY2sgY2xvdWQgYmxvY2t9LlxuICogVGhlIGNsb3VkIGJsb2NrIGlzIGEgbmVzdGVkIGJsb2NrIHdpdGhpbiB0aGUgdG9wLWxldmVsIHRlcnJhZm9ybSBzZXR0aW5ncyBibG9jay5cbiAqIEl0IHNwZWNpZmllcyB3aGljaCBUZXJyYWZvcm0gQ2xvdWQgd29ya3NwYWNlcyB0byB1c2UgZm9yIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LlxuICogVGhlIGNsb3VkIGJsb2NrIG9ubHkgYWZmZWN0cyBUZXJyYWZvcm0gQ0xJJ3MgYmVoYXZpb3IuXG4gKiBXaGVuIFRlcnJhZm9ybSBDbG91ZCB1c2VzIGEgY29uZmlndXJhdGlvbiB0aGF0IGNvbnRhaW5zIGEgY2xvdWQgYmxvY2sgLSBmb3IgZXhhbXBsZSwgd2hlbiBhIHdvcmtzcGFjZSBpcyBjb25maWd1cmVkIHRvIHVzZSBhIFZDUyBwcm92aWRlciBkaXJlY3RseSAtIGl0IGlnbm9yZXMgdGhlIGJsb2NrIGFuZCBiZWhhdmVzIGFjY29yZGluZyB0byBpdHMgb3duIHdvcmtzcGFjZSBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkQmFja2VuZCBleHRlbmRzIFRlcnJhZm9ybUJhY2tlbmQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IENsb3VkQmFja2VuZENvbmZpZyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIFwiYmFja2VuZFwiLCBcImNsb3VkXCIpO1xuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24oXG4gICAgICBuZXcgVmFsaWRhdGVUZXJyYWZvcm1WZXJzaW9uKFxuICAgICAgICBcIj49MS4xXCIsXG4gICAgICAgIGBUaGUgY2xvdWQgYmxvY2sgaXMgb25seSBzdXBwb3J0ZWQgZm9yIFRlcnJhZm9ybSA+PTEuMS4gUGxlYXNlIHVwZ3JhZGUgeW91ciBUZXJyYWZvcm0gdmVyc2lvbi5gLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHRvSGNsVGVycmFmb3JtKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRlcnJhZm9ybToge1xuICAgICAgICBjbG91ZDogZGVlcE1lcmdlKHRoaXMuc3ludGhlc2l6ZUhjbEF0dHJpYnV0ZXMoKSwgdGhpcy5yYXdPdmVycmlkZXMpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhpcyByZXNvdXJjZSB0byB0aGUgdGVycmFmb3JtIEpTT04gb3V0cHV0LlxuICAgKi9cbiAgcHVibGljIHRvVGVycmFmb3JtKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRlcnJhZm9ybToge1xuICAgICAgICBjbG91ZDogZGVlcE1lcmdlKHRoaXMuc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKSwgdGhpcy5yYXdPdmVycmlkZXMpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvTWV0YWRhdGEoKSB7XG4gICAgY29uc3QgY2xvdWQgPSBnZXRIb3N0TmFtZVR5cGUodGhpcy5wcm9wcy5ob3N0bmFtZSk7XG4gICAgcmV0dXJuIHsgLi4uc3VwZXIudG9NZXRhZGF0YSgpLCBjbG91ZCB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ua2V5c1RvU25ha2VDYXNlKHRoaXMucHJvcHMpLFxuICAgICAgd29ya3NwYWNlczoge1xuICAgICAgICB2YWx1ZTogdGhpcy5wcm9wcy53b3Jrc3BhY2VzLnRvSGNsVGVycmFmb3JtKCksXG4gICAgICAgIGlzQmxvY2s6IHRydWUsXG4gICAgICAgIHR5cGU6IFwibWFwXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nbWFwXCIsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBrZXlzVG9TbmFrZUNhc2Uoe1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIHdvcmtzcGFjZXM6IHRoaXMucHJvcHMud29ya3NwYWNlcy50b1RlcnJhZm9ybSgpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFJlbW90ZVN0YXRlRGF0YVNvdXJjZShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBfZnJvbVN0YWNrOiBzdHJpbmcsXG4gICk6IFRlcnJhZm9ybVJlbW90ZVN0YXRlIHtcbiAgICAvLyBUaGUgY2xvdWQgXCJiYWNrZW5kXCIgZG9lcyBub3QgaGF2ZSBhIGNvcmVzcG9uZGluZyByZW1vdGUgc3RhdGUgZGF0YSBzb3VyY2Ugc2luY2UgaXQncyBtZWFudCB0byBhbHNvXG4gICAgLy8gd29yayB3aXRoIG11bHRpcGxlIHdvcmtzcGFjZXMgdGhyb3VnaCB0YWdzLlxuICAgIGlmIChcIm5hbWVcIiBpbiB0aGlzLnByb3BzLndvcmtzcGFjZXMpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlKHNjb3BlLCBuYW1lLCB7XG4gICAgICAgIG9yZ2FuaXphdGlvbjogdGhpcy5wcm9wcy5vcmdhbml6YXRpb24sXG4gICAgICAgIHdvcmtzcGFjZXM6IHsgbmFtZTogKHRoaXMucHJvcHMud29ya3NwYWNlcyBhcyBhbnkpLm5hbWUgfSxcbiAgICAgICAgdG9rZW46IHRoaXMucHJvcHMudG9rZW4sXG4gICAgICAgIGhvc3RuYW1lOiB0aGlzLnByb3BzLmhvc3RuYW1lLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhyb3cgY2xvdWRCYWNrZW5kV29ya3NwYWNlSXNOb3REZWZpbmVkQnlOYW1lKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgQ2xvdWQgQmFja2VuZCBzeW50aGVzaXplcyBhIHtAbGluayBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9jbGkvY2xvdWQvc2V0dGluZ3MjdGhlLWNsb3VkLWJsb2NrIGNsb3VkIGJsb2NrfS5cbiAqIFRoZSBjbG91ZCBibG9jayBpcyBhIG5lc3RlZCBibG9jayB3aXRoaW4gdGhlIHRvcC1sZXZlbCB0ZXJyYWZvcm0gc2V0dGluZ3MgYmxvY2suXG4gKiBJdCBzcGVjaWZpZXMgd2hpY2ggVGVycmFmb3JtIENsb3VkIHdvcmtzcGFjZXMgdG8gdXNlIGZvciB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAqIFRoZSBjbG91ZCBibG9jayBvbmx5IGFmZmVjdHMgVGVycmFmb3JtIENMSSdzIGJlaGF2aW9yLlxuICogV2hlbiBUZXJyYWZvcm0gQ2xvdWQgdXNlcyBhIGNvbmZpZ3VyYXRpb24gdGhhdCBjb250YWlucyBhIGNsb3VkIGJsb2NrIC0gZm9yIGV4YW1wbGUsIHdoZW4gYSB3b3Jrc3BhY2UgaXMgY29uZmlndXJlZCB0byB1c2UgYSBWQ1MgcHJvdmlkZXIgZGlyZWN0bHkgLSBpdCBpZ25vcmVzIHRoZSBibG9jayBhbmQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gaXRzIG93biB3b3Jrc3BhY2Ugc2V0dGluZ3MuXG4gKlxuICogaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vY2xpL2Nsb3VkL3NldHRpbmdzI2FyZ3VtZW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkQmFja2VuZENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgb3JnYW5pemF0aW9uIGNvbnRhaW5pbmcgdGhlIHdvcmtzcGFjZShzKSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIHNob3VsZCB1c2UuXG4gICAqL1xuICByZWFkb25seSBvcmdhbml6YXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogQSBuZXN0ZWQgYmxvY2sgdGhhdCBzcGVjaWZpZXMgd2hpY2ggcmVtb3RlIFRlcnJhZm9ybSBDbG91ZCB3b3Jrc3BhY2VzIHRvIHVzZSBmb3IgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi5cbiAgICogVGhlIHdvcmtzcGFjZXMgYmxvY2sgbXVzdCBjb250YWluIGV4YWN0bHkgb25lIG9mIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzLCBlYWNoIGRlbm90aW5nIGEgc3RyYXRlZ3kgZm9yIGhvdyB3b3Jrc3BhY2VzIHNob3VsZCBiZSBtYXBwZWQ6XG4gICAqL1xuICByZWFkb25seSB3b3Jrc3BhY2VzOiBOYW1lZENsb3VkV29ya3NwYWNlIHwgVGFnZ2VkQ2xvdWRXb3Jrc3BhY2VzO1xuXG4gIC8qKlxuICAgKiBUaGUgaG9zdG5hbWUgb2YgYSBUZXJyYWZvcm0gRW50ZXJwcmlzZSBpbnN0YWxsYXRpb24sIGlmIHVzaW5nIFRlcnJhZm9ybSBFbnRlcnByaXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBhcHAudGVycmFmb3JtLmlvXG4gICAqL1xuICByZWFkb25seSBob3N0bmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRva2VuIHVzZWQgdG8gYXV0aGVudGljYXRlIHdpdGggVGVycmFmb3JtIENsb3VkLlxuICAgKiBXZSByZWNvbW1lbmQgb21pdHRpbmcgdGhlIHRva2VuIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24sIGFuZCBpbnN0ZWFkIHVzaW5nIHRlcnJhZm9ybSBsb2dpbiBvciBtYW51YWxseSBjb25maWd1cmluZyBjcmVkZW50aWFscyBpbiB0aGUgQ0xJIGNvbmZpZyBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBjbG91ZCB3b3Jrc3BhY2UgY2FuIGVpdGhlciBiZSBhIHNpbmdsZSBuYW1lZCB3b3Jrc3BhY2UsIG9yIGEgbGlzdCBvZiB0YWdnZWQgd29ya3NwYWNlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENsb3VkV29ya3NwYWNlIHtcbiAgcHVibGljIGFic3RyYWN0IHRvVGVycmFmb3JtKCk6IGFueTtcbn1cblxuLyoqXG4gKiBUaGUgbmFtZSBvZiBhIHNpbmdsZSBUZXJyYWZvcm0gQ2xvdWQgd29ya3NwYWNlLlxuICogWW91IHdpbGwgb25seSBiZSBhYmxlIHRvIHVzZSB0aGUgd29ya3NwYWNlIHNwZWNpZmllZCBpbiB0aGUgY29uZmlndXJhdGlvbiB3aXRoIHRoaXMgd29ya2luZyBkaXJlY3RvcnksIGFuZCBjYW5ub3QgbWFuYWdlIHdvcmtzcGFjZXMgZnJvbSB0aGUgQ0xJIChlLmcuIHRlcnJhZm9ybSB3b3Jrc3BhY2Ugc2VsZWN0IG9yIHRlcnJhZm9ybSB3b3Jrc3BhY2UgbmV3KS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5hbWVkQ2xvdWRXb3Jrc3BhY2UgZXh0ZW5kcyBDbG91ZFdvcmtzcGFjZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyBwcm9qZWN0Pzogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIHRvSGNsVGVycmFmb3JtKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHtcbiAgICAgICAgdmFsdWU6IHRoaXMubmFtZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqICBBIHNldCBvZiBUZXJyYWZvcm0gQ2xvdWQgd29ya3NwYWNlIHRhZ3MuIFlvdSB3aWxsIGJlIGFibGUgdG8gdXNlIHRoaXMgd29ya2luZyBkaXJlY3Rvcnkgd2l0aCBhbnkgd29ya3NwYWNlcyB0aGF0IGhhdmUgYWxsIG9mIHRoZSBzcGVjaWZpZWQgdGFncywgYW5kIGNhbiB1c2UgdGhlIHRlcnJhZm9ybSB3b3Jrc3BhY2UgY29tbWFuZHMgdG8gc3dpdGNoIGJldHdlZW4gdGhlbSBvciBjcmVhdGUgbmV3IHdvcmtzcGFjZXMuIE5ldyB3b3Jrc3BhY2VzIHdpbGwgYXV0b21hdGljYWxseSBoYXZlIHRoZSBzcGVjaWZpZWQgdGFncy4gVGhpcyBvcHRpb24gY29uZmxpY3RzIHdpdGggbmFtZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFRhZ2dlZENsb3VkV29ya3NwYWNlcyBleHRlbmRzIENsb3VkV29ya3NwYWNlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0YWdzOiBzdHJpbmdbXSxcbiAgICBwdWJsaWMgcHJvamVjdD86IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICB0YWdzOiB7XG4gICAgICAgIHZhbHVlOiB0aGlzLnRhZ3MsXG4gICAgICAgIHR5cGU6IFwibGlzdFwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ0xpc3RcIixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICB0YWdzOiB0aGlzLnRhZ3MsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgfTtcbiAgfVxufVxuIl19
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYWNrZW5kcy9jbG91ZC1iYWNrZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWdCQSwwQ0FHQzs7QUFoQkQsa0NBQXFEO0FBQ3JELHFEQUE0RDtBQUU1RCw0REFBd0Q7QUFDeEQsZ0RBQThEO0FBQzlELHNDQUFvRTtBQUVwRTs7Ozs7R0FLRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxRQUFpQjtJQUMvQyxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFDLENBQUMseURBQXlEO0lBQ3RGLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNqRSxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBYSxZQUFhLFNBQVEsb0NBQWdCO0lBRzdCOztJQUZuQixZQUNFLEtBQWdCLEVBQ0MsS0FBeUI7UUFFMUMsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFGaEIsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFJMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQ3JCLElBQUksMENBQTRCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQ3hELFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFFBQVEsRUFBRSxTQUFTO1NBQ3BCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTztZQUNMLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUUsSUFBQSxnQkFBUyxFQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDcEU7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixPQUFPO1lBQ0wsU0FBUyxFQUFFO2dCQUNU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QUFFLFlBQVk7YUFDL0I7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDO0lBQ0osQ0FBQzs7QUF2Qkgsc0RBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBrZXlzVG9TbmFrZUNhc2UsIGRlZXBNZXJnZSB9IGZyb20gXCIuLi91dGlsXCI7XG5pbXBvcnQgeyBEYXRhVGVycmFmb3JtUmVtb3RlU3RhdGUgfSBmcm9tIFwiLi9yZW1vdGUtYmFja2VuZFwiO1xuaW1wb3J0IHsgVGVycmFmb3JtUmVtb3RlU3RhdGUgfSBmcm9tIFwiLi4vdGVycmFmb3JtLXJlbW90ZS1zdGF0ZVwiO1xuaW1wb3J0IHsgVGVycmFmb3JtQmFja2VuZCB9IGZyb20gXCIuLi90ZXJyYWZvcm0tYmFja2VuZFwiO1xuaW1wb3J0IHsgVmFsaWRhdGVGZWF0dXJlVGFyZ2V0U3VwcG9ydCB9IGZyb20gXCIuLi92YWxpZGF0aW9uc1wiO1xuaW1wb3J0IHsgY2xvdWRCYWNrZW5kV29ya3NwYWNlSXNOb3REZWZpbmVkQnlOYW1lIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuXG4vKipcbiAqIGNoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBob3N0bmFtZSBiZWxvbmdzIHRvIHRmYyBvciAoZWxzZSkgdG8gdGZlXG4gKiBJZiBubyBob3N0bmFtZSBpcyBnaXZlbiwgaXQgd2lsbCByZXR1cm4gdGZjLCBhcyB0aGF0J3MgdGhlIGRlZmF1bHQgaW4gYmFja2VuZHMuXG4gKiBAcGFyYW0gaG9zdG5hbWUgZS5nLiBhcHAudGVycmFmb3JtLmlvLCBhcHAudGVycmFmb3JtLmlvOjgwLCB0ZmUubXlvcmcub3JnXG4gKiBAcmV0dXJucyBcInRmY1wiIG9yIFwidGZlXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhvc3ROYW1lVHlwZShob3N0bmFtZT86IHN0cmluZyk6IFwidGZjXCIgfCBcInRmZVwiIHtcbiAgaWYgKCFob3N0bmFtZSkgcmV0dXJuIFwidGZjXCI7IC8vIGRlZmF1bHQgaXMgdGZjIHdoZW4gbm90IHBhc3NpbmcgYSBob3N0bmFtZSB0byBiYWNrZW5kc1xuICByZXR1cm4gaG9zdG5hbWUuc3RhcnRzV2l0aChcImFwcC50ZXJyYWZvcm0uaW9cIikgPyBcInRmY1wiIDogXCJ0ZmVcIjtcbn1cblxuLyoqXG4gKiBUaGUgQ2xvdWQgQmFja2VuZCBzeW50aGVzaXplcyBhIHtAbGluayBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9jbGkvY2xvdWQvc2V0dGluZ3MjdGhlLWNsb3VkLWJsb2NrIGNsb3VkIGJsb2NrfS5cbiAqIFRoZSBjbG91ZCBibG9jayBpcyBhIG5lc3RlZCBibG9jayB3aXRoaW4gdGhlIHRvcC1sZXZlbCB0ZXJyYWZvcm0gc2V0dGluZ3MgYmxvY2suXG4gKiBJdCBzcGVjaWZpZXMgd2hpY2ggVGVycmFmb3JtIENsb3VkIHdvcmtzcGFjZXMgdG8gdXNlIGZvciB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAqIFRoZSBjbG91ZCBibG9jayBvbmx5IGFmZmVjdHMgVGVycmFmb3JtIENMSSdzIGJlaGF2aW9yLlxuICogV2hlbiBUZXJyYWZvcm0gQ2xvdWQgdXNlcyBhIGNvbmZpZ3VyYXRpb24gdGhhdCBjb250YWlucyBhIGNsb3VkIGJsb2NrIC0gZm9yIGV4YW1wbGUsIHdoZW4gYSB3b3Jrc3BhY2UgaXMgY29uZmlndXJlZCB0byB1c2UgYSBWQ1MgcHJvdmlkZXIgZGlyZWN0bHkgLSBpdCBpZ25vcmVzIHRoZSBibG9jayBhbmQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gaXRzIG93biB3b3Jrc3BhY2Ugc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZEJhY2tlbmQgZXh0ZW5kcyBUZXJyYWZvcm1CYWNrZW5kIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBDbG91ZEJhY2tlbmRDb25maWcsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBcImJhY2tlbmRcIiwgXCJjbG91ZFwiKTtcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKFxuICAgICAgbmV3IFZhbGlkYXRlRmVhdHVyZVRhcmdldFN1cHBvcnQodGhpcywgXCJUaGUgY2xvdWQgYmxvY2tcIiwge1xuICAgICAgICB0ZXJyYWZvcm06IFwiPj0xLjEuMFwiLFxuICAgICAgICBvcGVudG9mdTogXCI+PTEuNi4wXCIsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHRvSGNsVGVycmFmb3JtKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRlcnJhZm9ybToge1xuICAgICAgICBjbG91ZDogZGVlcE1lcmdlKHRoaXMuc3ludGhlc2l6ZUhjbEF0dHJpYnV0ZXMoKSwgdGhpcy5yYXdPdmVycmlkZXMpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhpcyByZXNvdXJjZSB0byB0aGUgdGVycmFmb3JtIEpTT04gb3V0cHV0LlxuICAgKi9cbiAgcHVibGljIHRvVGVycmFmb3JtKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRlcnJhZm9ybToge1xuICAgICAgICBjbG91ZDogZGVlcE1lcmdlKHRoaXMuc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKSwgdGhpcy5yYXdPdmVycmlkZXMpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvTWV0YWRhdGEoKSB7XG4gICAgY29uc3QgY2xvdWQgPSBnZXRIb3N0TmFtZVR5cGUodGhpcy5wcm9wcy5ob3N0bmFtZSk7XG4gICAgcmV0dXJuIHsgLi4uc3VwZXIudG9NZXRhZGF0YSgpLCBjbG91ZCB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ua2V5c1RvU25ha2VDYXNlKHRoaXMucHJvcHMpLFxuICAgICAgd29ya3NwYWNlczoge1xuICAgICAgICB2YWx1ZTogdGhpcy5wcm9wcy53b3Jrc3BhY2VzLnRvSGNsVGVycmFmb3JtKCksXG4gICAgICAgIGlzQmxvY2s6IHRydWUsXG4gICAgICAgIHR5cGU6IFwibWFwXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nbWFwXCIsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBrZXlzVG9TbmFrZUNhc2Uoe1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIHdvcmtzcGFjZXM6IHRoaXMucHJvcHMud29ya3NwYWNlcy50b1RlcnJhZm9ybSgpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFJlbW90ZVN0YXRlRGF0YVNvdXJjZShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBfZnJvbVN0YWNrOiBzdHJpbmcsXG4gICk6IFRlcnJhZm9ybVJlbW90ZVN0YXRlIHtcbiAgICAvLyBUaGUgY2xvdWQgXCJiYWNrZW5kXCIgZG9lcyBub3QgaGF2ZSBhIGNvcmVzcG9uZGluZyByZW1vdGUgc3RhdGUgZGF0YSBzb3VyY2Ugc2luY2UgaXQncyBtZWFudCB0byBhbHNvXG4gICAgLy8gd29yayB3aXRoIG11bHRpcGxlIHdvcmtzcGFjZXMgdGhyb3VnaCB0YWdzLlxuICAgIGlmIChcIm5hbWVcIiBpbiB0aGlzLnByb3BzLndvcmtzcGFjZXMpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlKHNjb3BlLCBuYW1lLCB7XG4gICAgICAgIG9yZ2FuaXphdGlvbjogdGhpcy5wcm9wcy5vcmdhbml6YXRpb24sXG4gICAgICAgIHdvcmtzcGFjZXM6IHsgbmFtZTogKHRoaXMucHJvcHMud29ya3NwYWNlcyBhcyBhbnkpLm5hbWUgfSxcbiAgICAgICAgdG9rZW46IHRoaXMucHJvcHMudG9rZW4sXG4gICAgICAgIGhvc3RuYW1lOiB0aGlzLnByb3BzLmhvc3RuYW1lLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhyb3cgY2xvdWRCYWNrZW5kV29ya3NwYWNlSXNOb3REZWZpbmVkQnlOYW1lKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgQ2xvdWQgQmFja2VuZCBzeW50aGVzaXplcyBhIHtAbGluayBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9jbGkvY2xvdWQvc2V0dGluZ3MjdGhlLWNsb3VkLWJsb2NrIGNsb3VkIGJsb2NrfS5cbiAqIFRoZSBjbG91ZCBibG9jayBpcyBhIG5lc3RlZCBibG9jayB3aXRoaW4gdGhlIHRvcC1sZXZlbCB0ZXJyYWZvcm0gc2V0dGluZ3MgYmxvY2suXG4gKiBJdCBzcGVjaWZpZXMgd2hpY2ggVGVycmFmb3JtIENsb3VkIHdvcmtzcGFjZXMgdG8gdXNlIGZvciB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAqIFRoZSBjbG91ZCBibG9jayBvbmx5IGFmZmVjdHMgVGVycmFmb3JtIENMSSdzIGJlaGF2aW9yLlxuICogV2hlbiBUZXJyYWZvcm0gQ2xvdWQgdXNlcyBhIGNvbmZpZ3VyYXRpb24gdGhhdCBjb250YWlucyBhIGNsb3VkIGJsb2NrIC0gZm9yIGV4YW1wbGUsIHdoZW4gYSB3b3Jrc3BhY2UgaXMgY29uZmlndXJlZCB0byB1c2UgYSBWQ1MgcHJvdmlkZXIgZGlyZWN0bHkgLSBpdCBpZ25vcmVzIHRoZSBibG9jayBhbmQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gaXRzIG93biB3b3Jrc3BhY2Ugc2V0dGluZ3MuXG4gKlxuICogaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vY2xpL2Nsb3VkL3NldHRpbmdzI2FyZ3VtZW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkQmFja2VuZENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgb3JnYW5pemF0aW9uIGNvbnRhaW5pbmcgdGhlIHdvcmtzcGFjZShzKSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIHNob3VsZCB1c2UuXG4gICAqL1xuICByZWFkb25seSBvcmdhbml6YXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogQSBuZXN0ZWQgYmxvY2sgdGhhdCBzcGVjaWZpZXMgd2hpY2ggcmVtb3RlIFRlcnJhZm9ybSBDbG91ZCB3b3Jrc3BhY2VzIHRvIHVzZSBmb3IgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi5cbiAgICogVGhlIHdvcmtzcGFjZXMgYmxvY2sgbXVzdCBjb250YWluIGV4YWN0bHkgb25lIG9mIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzLCBlYWNoIGRlbm90aW5nIGEgc3RyYXRlZ3kgZm9yIGhvdyB3b3Jrc3BhY2VzIHNob3VsZCBiZSBtYXBwZWQ6XG4gICAqL1xuICByZWFkb25seSB3b3Jrc3BhY2VzOiBOYW1lZENsb3VkV29ya3NwYWNlIHwgVGFnZ2VkQ2xvdWRXb3Jrc3BhY2VzO1xuXG4gIC8qKlxuICAgKiBUaGUgaG9zdG5hbWUgb2YgYSBUZXJyYWZvcm0gRW50ZXJwcmlzZSBpbnN0YWxsYXRpb24sIGlmIHVzaW5nIFRlcnJhZm9ybSBFbnRlcnByaXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBhcHAudGVycmFmb3JtLmlvXG4gICAqL1xuICByZWFkb25seSBob3N0bmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRva2VuIHVzZWQgdG8gYXV0aGVudGljYXRlIHdpdGggVGVycmFmb3JtIENsb3VkLlxuICAgKiBXZSByZWNvbW1lbmQgb21pdHRpbmcgdGhlIHRva2VuIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24sIGFuZCBpbnN0ZWFkIHVzaW5nIHRlcnJhZm9ybSBsb2dpbiBvciBtYW51YWxseSBjb25maWd1cmluZyBjcmVkZW50aWFscyBpbiB0aGUgQ0xJIGNvbmZpZyBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBjbG91ZCB3b3Jrc3BhY2UgY2FuIGVpdGhlciBiZSBhIHNpbmdsZSBuYW1lZCB3b3Jrc3BhY2UsIG9yIGEgbGlzdCBvZiB0YWdnZWQgd29ya3NwYWNlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENsb3VkV29ya3NwYWNlIHtcbiAgcHVibGljIGFic3RyYWN0IHRvVGVycmFmb3JtKCk6IGFueTtcbn1cblxuLyoqXG4gKiBUaGUgbmFtZSBvZiBhIHNpbmdsZSBUZXJyYWZvcm0gQ2xvdWQgd29ya3NwYWNlLlxuICogWW91IHdpbGwgb25seSBiZSBhYmxlIHRvIHVzZSB0aGUgd29ya3NwYWNlIHNwZWNpZmllZCBpbiB0aGUgY29uZmlndXJhdGlvbiB3aXRoIHRoaXMgd29ya2luZyBkaXJlY3RvcnksIGFuZCBjYW5ub3QgbWFuYWdlIHdvcmtzcGFjZXMgZnJvbSB0aGUgQ0xJIChlLmcuIHRlcnJhZm9ybSB3b3Jrc3BhY2Ugc2VsZWN0IG9yIHRlcnJhZm9ybSB3b3Jrc3BhY2UgbmV3KS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5hbWVkQ2xvdWRXb3Jrc3BhY2UgZXh0ZW5kcyBDbG91ZFdvcmtzcGFjZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyBwcm9qZWN0Pzogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIHRvSGNsVGVycmFmb3JtKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHtcbiAgICAgICAgdmFsdWU6IHRoaXMubmFtZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqICBBIHNldCBvZiBUZXJyYWZvcm0gQ2xvdWQgd29ya3NwYWNlIHRhZ3MuIFlvdSB3aWxsIGJlIGFibGUgdG8gdXNlIHRoaXMgd29ya2luZyBkaXJlY3Rvcnkgd2l0aCBhbnkgd29ya3NwYWNlcyB0aGF0IGhhdmUgYWxsIG9mIHRoZSBzcGVjaWZpZWQgdGFncywgYW5kIGNhbiB1c2UgdGhlIHRlcnJhZm9ybSB3b3Jrc3BhY2UgY29tbWFuZHMgdG8gc3dpdGNoIGJldHdlZW4gdGhlbSBvciBjcmVhdGUgbmV3IHdvcmtzcGFjZXMuIE5ldyB3b3Jrc3BhY2VzIHdpbGwgYXV0b21hdGljYWxseSBoYXZlIHRoZSBzcGVjaWZpZWQgdGFncy4gVGhpcyBvcHRpb24gY29uZmxpY3RzIHdpdGggbmFtZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFRhZ2dlZENsb3VkV29ya3NwYWNlcyBleHRlbmRzIENsb3VkV29ya3NwYWNlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0YWdzOiBzdHJpbmdbXSxcbiAgICBwdWJsaWMgcHJvamVjdD86IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b0hjbFRlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICB0YWdzOiB7XG4gICAgICAgIHZhbHVlOiB0aGlzLnRhZ3MsXG4gICAgICAgIHR5cGU6IFwibGlzdFwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ0xpc3RcIixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyB0b1RlcnJhZm9ybSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICB0YWdzOiB0aGlzLnRhZ3MsXG4gICAgICBwcm9qZWN0OiB0aGlzLnByb2plY3QsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -8,7 +8,7 @@ const terraform_remote_state_1 = require("../terraform-remote-state");
8
8
  // eslint-disable-next-line jsdoc/require-jsdoc
9
9
  class ConsulBackend extends terraform_backend_1.TerraformBackend {
10
10
  props;
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.ConsulBackend", version: "0.25.0-pre.32" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.ConsulBackend", version: "0.25.0-pre.36" };
12
12
  constructor(scope, props) {
13
13
  super(scope, "backend", "consul");
14
14
  this.props = props;
@@ -29,7 +29,7 @@ class ConsulBackend extends terraform_backend_1.TerraformBackend {
29
29
  exports.ConsulBackend = ConsulBackend;
30
30
  // eslint-disable-next-line jsdoc/require-jsdoc
31
31
  class DataTerraformRemoteStateConsul extends terraform_remote_state_1.TerraformRemoteState {
32
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateConsul", version: "0.25.0-pre.32" };
32
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateConsul", version: "0.25.0-pre.36" };
33
33
  constructor(scope, id, config) {
34
34
  super(scope, id, "consul", config);
35
35
  }
@@ -8,7 +8,7 @@ const terraform_remote_state_1 = require("../terraform-remote-state");
8
8
  // eslint-disable-next-line jsdoc/require-jsdoc
9
9
  class CosBackend extends terraform_backend_1.TerraformBackend {
10
10
  props;
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.CosBackend", version: "0.25.0-pre.32" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.CosBackend", version: "0.25.0-pre.36" };
12
12
  constructor(scope, props) {
13
13
  super(scope, "backend", "cos");
14
14
  this.props = props;
@@ -29,7 +29,7 @@ class CosBackend extends terraform_backend_1.TerraformBackend {
29
29
  exports.CosBackend = CosBackend;
30
30
  // eslint-disable-next-line jsdoc/require-jsdoc
31
31
  class DataTerraformRemoteStateCos extends terraform_remote_state_1.TerraformRemoteState {
32
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateCos", version: "0.25.0-pre.32" };
32
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateCos", version: "0.25.0-pre.36" };
33
33
  constructor(scope, id, config) {
34
34
  super(scope, id, "cos", config);
35
35
  }
@@ -8,7 +8,7 @@ const terraform_remote_state_1 = require("../terraform-remote-state");
8
8
  // eslint-disable-next-line jsdoc/require-jsdoc
9
9
  class GcsBackend extends terraform_backend_1.TerraformBackend {
10
10
  props;
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.GcsBackend", version: "0.25.0-pre.32" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.GcsBackend", version: "0.25.0-pre.36" };
12
12
  constructor(scope, props) {
13
13
  super(scope, "backend", "gcs");
14
14
  this.props = props;
@@ -29,7 +29,7 @@ class GcsBackend extends terraform_backend_1.TerraformBackend {
29
29
  exports.GcsBackend = GcsBackend;
30
30
  // eslint-disable-next-line jsdoc/require-jsdoc
31
31
  class DataTerraformRemoteStateGcs extends terraform_remote_state_1.TerraformRemoteState {
32
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateGcs", version: "0.25.0-pre.32" };
32
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateGcs", version: "0.25.0-pre.36" };
33
33
  constructor(scope, id, config) {
34
34
  super(scope, id, "gcs", config);
35
35
  }
@@ -8,7 +8,7 @@ const terraform_remote_state_1 = require("../terraform-remote-state");
8
8
  // eslint-disable-next-line jsdoc/require-jsdoc
9
9
  class HttpBackend extends terraform_backend_1.TerraformBackend {
10
10
  props;
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.HttpBackend", version: "0.25.0-pre.32" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.HttpBackend", version: "0.25.0-pre.36" };
12
12
  constructor(scope, props) {
13
13
  super(scope, "backend", "http");
14
14
  this.props = props;
@@ -26,7 +26,7 @@ class HttpBackend extends terraform_backend_1.TerraformBackend {
26
26
  exports.HttpBackend = HttpBackend;
27
27
  // eslint-disable-next-line jsdoc/require-jsdoc
28
28
  class DataTerraformRemoteStateHttp extends terraform_remote_state_1.TerraformRemoteState {
29
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateHttp", version: "0.25.0-pre.32" };
29
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateHttp", version: "0.25.0-pre.36" };
30
30
  constructor(scope, id, config) {
31
31
  super(scope, id, "http", config);
32
32
  }
@@ -44,7 +44,7 @@ const terraform_remote_state_1 = require("../terraform-remote-state");
44
44
  const __1 = require("..");
45
45
  // eslint-disable-next-line jsdoc/require-jsdoc
46
46
  class LocalBackend extends terraform_backend_1.TerraformBackend {
47
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.LocalBackend", version: "0.25.0-pre.32" };
47
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.LocalBackend", version: "0.25.0-pre.36" };
48
48
  props;
49
49
  constructor(scope, props = {}) {
50
50
  super(scope, "backend", "local");
@@ -72,7 +72,7 @@ class LocalBackend extends terraform_backend_1.TerraformBackend {
72
72
  exports.LocalBackend = LocalBackend;
73
73
  // eslint-disable-next-line jsdoc/require-jsdoc
74
74
  class DataTerraformRemoteStateLocal extends terraform_remote_state_1.TerraformRemoteState {
75
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateLocal", version: "0.25.0-pre.32" };
75
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateLocal", version: "0.25.0-pre.36" };
76
76
  constructor(scope, id, config) {
77
77
  super(scope, id, "local", config);
78
78
  }
@@ -8,7 +8,7 @@ const terraform_remote_state_1 = require("../terraform-remote-state");
8
8
  // eslint-disable-next-line jsdoc/require-jsdoc
9
9
  class OssBackend extends terraform_backend_1.TerraformBackend {
10
10
  props;
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.OssBackend", version: "0.25.0-pre.32" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.OssBackend", version: "0.25.0-pre.36" };
12
12
  constructor(scope, props) {
13
13
  super(scope, "backend", "oss");
14
14
  this.props = props;
@@ -26,7 +26,7 @@ class OssBackend extends terraform_backend_1.TerraformBackend {
26
26
  exports.OssBackend = OssBackend;
27
27
  // eslint-disable-next-line jsdoc/require-jsdoc
28
28
  class DataTerraformRemoteStateOss extends terraform_remote_state_1.TerraformRemoteState {
29
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateOss", version: "0.25.0-pre.32" };
29
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateOss", version: "0.25.0-pre.36" };
30
30
  constructor(scope, id, config) {
31
31
  super(scope, id, "oss", config);
32
32
  }
@@ -8,7 +8,7 @@ const terraform_remote_state_1 = require("../terraform-remote-state");
8
8
  // eslint-disable-next-line jsdoc/require-jsdoc
9
9
  class PgBackend extends terraform_backend_1.TerraformBackend {
10
10
  props;
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.PgBackend", version: "0.25.0-pre.32" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.PgBackend", version: "0.25.0-pre.36" };
12
12
  constructor(scope, props) {
13
13
  super(scope, "backend", "pg");
14
14
  this.props = props;
@@ -29,7 +29,7 @@ class PgBackend extends terraform_backend_1.TerraformBackend {
29
29
  exports.PgBackend = PgBackend;
30
30
  // eslint-disable-next-line jsdoc/require-jsdoc
31
31
  class DataTerraformRemoteStatePg extends terraform_remote_state_1.TerraformRemoteState {
32
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStatePg", version: "0.25.0-pre.32" };
32
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStatePg", version: "0.25.0-pre.36" };
33
33
  constructor(scope, id, config) {
34
34
  super(scope, id, "pg", config);
35
35
  }
@@ -9,7 +9,7 @@ const cloud_backend_1 = require("./cloud-backend");
9
9
  // eslint-disable-next-line jsdoc/require-jsdoc
10
10
  class RemoteBackend extends terraform_backend_1.TerraformBackend {
11
11
  props;
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.RemoteBackend", version: "0.25.0-pre.32" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.RemoteBackend", version: "0.25.0-pre.36" };
13
13
  constructor(scope, props) {
14
14
  super(scope, "backend", "remote");
15
15
  this.props = props;
@@ -33,7 +33,7 @@ class RemoteBackend extends terraform_backend_1.TerraformBackend {
33
33
  exports.RemoteBackend = RemoteBackend;
34
34
  // eslint-disable-next-line jsdoc/require-jsdoc
35
35
  class DataTerraformRemoteState extends terraform_remote_state_1.TerraformRemoteState {
36
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteState", version: "0.25.0-pre.32" };
36
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteState", version: "0.25.0-pre.36" };
37
37
  constructor(scope, id, config) {
38
38
  super(scope, id, "remote", config);
39
39
  }
@@ -42,7 +42,7 @@ exports.DataTerraformRemoteState = DataTerraformRemoteState;
42
42
  // eslint-disable-next-line jsdoc/require-jsdoc
43
43
  class NamedRemoteWorkspace {
44
44
  name;
45
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.NamedRemoteWorkspace", version: "0.25.0-pre.32" };
45
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.NamedRemoteWorkspace", version: "0.25.0-pre.36" };
46
46
  constructor(name) {
47
47
  this.name = name;
48
48
  }
@@ -51,7 +51,7 @@ exports.NamedRemoteWorkspace = NamedRemoteWorkspace;
51
51
  // eslint-disable-next-line jsdoc/require-jsdoc
52
52
  class PrefixedRemoteWorkspaces {
53
53
  prefix;
54
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.PrefixedRemoteWorkspaces", version: "0.25.0-pre.32" };
54
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.PrefixedRemoteWorkspaces", version: "0.25.0-pre.36" };
55
55
  constructor(prefix) {
56
56
  this.prefix = prefix;
57
57
  }
@@ -9,7 +9,7 @@ const validations_1 = require("../validations");
9
9
  // eslint-disable-next-line jsdoc/require-jsdoc
10
10
  class S3Backend extends terraform_backend_1.TerraformBackend {
11
11
  props;
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.S3Backend", version: "0.25.0-pre.32" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.S3Backend", version: "0.25.0-pre.36" };
13
13
  constructor(scope, props) {
14
14
  super(scope, "backend", "s3");
15
15
  this.props = props;
@@ -36,7 +36,7 @@ class S3Backend extends terraform_backend_1.TerraformBackend {
36
36
  exports.S3Backend = S3Backend;
37
37
  // eslint-disable-next-line jsdoc/require-jsdoc
38
38
  class DataTerraformRemoteStateS3 extends terraform_remote_state_1.TerraformRemoteState {
39
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateS3", version: "0.25.0-pre.32" };
39
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateS3", version: "0.25.0-pre.36" };
40
40
  constructor(scope, id, config) {
41
41
  super(scope, id, "s3", config);
42
42
  }
@@ -10,7 +10,7 @@ const terraform_remote_state_1 = require("../terraform-remote-state");
10
10
  */
11
11
  class SwiftBackend extends terraform_backend_1.TerraformBackend {
12
12
  props;
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.SwiftBackend", version: "0.25.0-pre.32" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.SwiftBackend", version: "0.25.0-pre.36" };
14
14
  constructor(scope, props) {
15
15
  super(scope, "backend", "swift");
16
16
  this.props = props;
@@ -30,7 +30,7 @@ exports.SwiftBackend = SwiftBackend;
30
30
  * @deprecated CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
31
31
  */
32
32
  class DataTerraformRemoteStateSwift extends terraform_remote_state_1.TerraformRemoteState {
33
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateSwift", version: "0.25.0-pre.32" };
33
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateSwift", version: "0.25.0-pre.36" };
34
34
  constructor(scope, id, config) {
35
35
  super(scope, id, "swift", config);
36
36
  }