projen-cdktf-hybrid-construct 0.5.14 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -71,7 +71,7 @@
71
71
  },
72
72
  "name": "projen-cdktf-hybrid-construct",
73
73
  "readme": {
74
- "markdown": "# Projen-CDKTF-Hybrid-Construct\n\n![Status: Tech Preview](https://img.shields.io/badge/status-experimental-EAAA32) [![Releases](https://img.shields.io/github/release/cdktf/projen-cdktf-hybrid-construct.svg)](https://github.com/cdktf/projen-cdktf-hybrid-construct/releases)\n[![LICENSE](https://img.shields.io/github/license/cdktf/projen-cdktf-hybrid-construct.svg)](https://github.com/cdktf/projen-cdktf-hybrid-construct/blob/main/LICENSE)\n[![build](https://github.com/cdktf/projen-cdktf-hybrid-construct/actions/workflows/build.yml/badge.svg)](https://github.com/cdktf/projen-cdktf-hybrid-construct/actions/workflows/build.yml)\n\nProjen template for CDKTF Constructs that should also be used as Terraform Modules and for republishing Terraform Modules as Constructs.\n\n_projen-cdktf-hybrid-construct_ is in technical preview, which means it's a community supported project. It still requires extensive testing and polishing to mature into a HashiCorp officially supported project. Please [file issues](https://github.com/cdktf/projen-cdktf-hybrid-construct/issues/new/choose) generously and detail your experience while using the library. We welcome your feedback.\n\nBy using the software in this repository, you acknowledge that:\n* _projen-cdktf-hybrid-construct_ is still in development, may change, and has not been released as a commercial product by HashiCorp and is not currently supported in any way by HashiCorp.\n* _projen-cdktf-hybrid-construct_ is provided on an \"as-is\" basis, and may include bugs, errors, or other issues.\n* _projen-cdktf-hybrid-construct_ is NOT INTENDED FOR PRODUCTION USE, use of the Software may result in unexpected results, loss of data, or other unexpected results, and HashiCorp disclaims any and all liability resulting from use of _projen-cdktf-hybrid-construct_.\n* HashiCorp reserves all rights to make all decisions about the features, functionality and commercial release (or non-release) of _projen-cdktf-hybrid-construct_, at any time and without any obligation or liability whatsoever.\n\n## Compatibility\n\n- `cdktf` >= 0.19.0\n- `constructs` >= 10.0.107\n\n## Usage\n\n### `HybridModule`\n\nIf you want to write a CDKTF construct and also publish it as a Terraform Module you can use the `HybridModule` template.\n\nYou can initialize such a project using `npx projen new --from projen-cdktf-hybrid-construct hybrid-module`.\n\nA configutation might look like this:\n\n```js\nconst { HybridModule } = require(\"projen-cdktf-hybrid-construct\");\n\nconst project = new HybridModule({\n // The name of the module & repository need to start with terraform-cdk-\n name: \"terraform-cdk-my-new-hybrid-construct\",\n repositoryUrl:\n \"github.com/DanielMSchmidt/terraform-cdk-my-new-hybrid-construct\",\n\n author: \"Daniel Schmidt\",\n authorAddress: \"danielmschmidt92@gmail.com\",\n\n // If enabled an example folder with terraform code will be created\n terraformExamples: {\n enabled: true,\n folder: \"terraform\",\n // The configuration to add to the example terraform file\n providerConfig: `\n terraform {\n required_providers {\n aws = {\n source = \"hashicorp/aws\"\n version = \"~> 3.74\"\n }\n }\n # Terraform binary version constraint\n required_version = \">= 1.2.0\"\n }\n\n\n provider \"aws\" {\n region = \"eu-central-1\"\n }\n `,\n },\n\n // If enabled a constructs example folder will be created\n constructExamples: {\n enabled: true,\n folder: \"construct-examples\",\n },\n});\nproject.synth();\n```\n\n### `TerraformModule`\n\nIf you want to republish an existing Terraform module as a CDKTF construct or if you want to repackage them with an easier to use API you can use the `TerraformModule` template.\n\nYou can initialize such a project using `npx projen new --from projen-cdktf-hybrid-construct terraform-module`.\n\nA configutation might look like this:\n\n```js\nconst { TerraformModule } = require(\"projen-cdktf-hybrid-construct\");\n\nconst project = new TerraformModule({\n name: \"my-module\",\n author: \"Daniel Schmidt\",\n authorAddress: \"danielmschmidt92@gmail.com\",\n repositoryUrl: \"github.com/DanielMSchmidt/my-module\",\n\n terraformModules: [\n {\n name: \"eks\",\n source: \"terraform-aws-modules/eks/aws\",\n version: \"~> 18.0\",\n },\n {\n name: \"eks-managed-nodegroup\",\n source: \"terraform-aws-modules/eks/aws//modules/eks-managed-node-group\",\n version: \"~> 18.0\",\n },\n ],\n});\n\nproject.synth();\n```\n\n## Publishing\n\n### Open Source\n\nWe have a helper method for easy configuration, but there are still some manual steps required.\n\n```js\nconst {\n HybridModule,\n publishToRegistries,\n} = require(\"projen-cdktf-hybrid-construct\");\n\nconst project = new HybridModule({\n // ... all the other options\n ...publishToRegistries({\n name: \"my-new-hybrid-construct\",\n namespace: \"my-org\",\n registries: [\"npm\", \"pypi\", \"nuget\", \"maven\"],\n }),\n});\n```\n\n#### Terraform\n\n1. [Sign in at the registry](https://registry.terraform.io/sign-in)\n2. [Select your repository](https://registry.terraform.io/github/create) and create the module\n\nPlease make sure your repository name starts with `terraform-cdk-`.\n\n#### npm (Typescript)\n\n1. Create an account at [npmjs.com](https://npmjs.com/)\n2. Create an [automation token](https://docs.npmjs.com/creating-and-viewing-access-tokens) on npm\n3. Create a [GitHub Action Secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) with the name `NPM_TOKEN` and the value of the token\n\n#### pypi (Python)\n\n1. Create an account at [pypi.org](https://pypi.org/)\n2. Create an [API token](https://pypi.org/help/#apitoken) on pypi\n3. Create a [GitHub Action Secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) with the name `TWINE_USERNAME` and the value `__token__` and a second one with the name `TWINE_PASSWORD` and the value of the token\n4. Set the `publishToPypi` section in the options of `HybridModule` or `TerraformModule` (or use the helper mentioned above)\n\n```js\nconst name = \"name-of-my-hybrid-construct\";\nnew HybridModule({\n name,\n // ... other options\n publishToPypi: {\n distName: name,\n module: name.replace(/-/g, \"_\"),\n },\n});\n```\n\n#### Maven (Java)\n\n1. [Create a Sonatype account and repository](https://central.sonatype.org/publish/publish-guide/#introduction)\n2. Create [GitHub Action Secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) to configure maven:\n - `MAVEN_USERNAME`\n - `MAVEN_PASSWORD`\n - `MAVEN_STAGING_PROFILE_ID`\n - `MAVEN_GPG_PRIVATE_KEY_PASSPHRASE`\n - `MAVEN_GPG_PRIVATE_KEY_PASSPHRASE`\n3. Setup the `publishToMaven` section in the options of `HybridModule` or `TerraformModule` (or use the helper mentioned above)\n\n```js\nconst githubNamespace = \"my-org\";\nconst name = \"name-of-my-hybrid-construct\";\nnew HybridModule({\n name,\n // ... other options\n publishToMaven: {\n javaPackage: name.replace(/-/g, \"_\"),\n mavenGroupId: `com.${githubNamespace}`,\n mavenArtifactId: name,\n },\n});\n```\n\n#### NuGet (C#)\n\n1. [Create a NuGet account](https://www.nuget.org/users/account/LogOn) (you might need to create a Microsoft Account if you don't have one)\n2. [Create API keys](https://docs.microsoft.com/en-us/nuget/nuget-org/publish-a-package#create-api-keys)\n3. Create a [GitHub Action Secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) with the name `NUGET_API_KEY` and the value of the token\n4. Setup the `publishToNuget` section in the options of `HybridModule` or `TerraformModule` (or use the helper mentioned above)\n\n```js\nconst githubNamespace = \"my-org\";\nconst name = \"name-of-my-hybrid-construct\";\n\nnew HybridModule({\n name,\n // ... other options\n publishToNuget: {\n dotNetNamespace: `MyOrg.NameOfMyHybridConstruct`,\n packageId: `MyOrg.NameOfMyHybridConstruct`,\n },\n});\n```\n\n### Github Packages\n\nWe have a helper method for easy configuration, no extra steps needed:\n\n```js\nconst {\n HybridModule,\n publishToGithubPackages,\n} = require(\"projen-cdktf-hybrid-construct\");\n\nconst project = new HybridModule({\n // ... all the other options\n ...publishToGithubPackages({\n name: \"my-new-hybrid-construct\",\n namespace: \"my-org\",\n registries: [\"npm\", \"maven\"], // pypi and nuget are not yet supported\n }),\n});\n```\n\n### Artifactory\n\nWe have a helper method for easy configuration, but there are also some manual steps required.\n\n```js\nconst {\n HybridModule,\n publishToGithubPackages,\n} = require(\"projen-cdktf-hybrid-construct\");\n\nconst project = new HybridModule({\n // ... all the other options\n ...publishToGithubPackages({\n name: \"my-new-hybrid-construct\",\n namespace: \"my-org\",\n registries: [\"npm\", \"pypi\", \"nuget\"], // maven is currently not supported, PRs welcome\n artifactoryApiUrl: \"https://artifactory.my-org.com/api/\",\n artifactoryRepository: \"my-repo\", // needs to be the same across all registries, defaults to namespace so \"my-org\" in this case\n }),\n});\n```\n\n#### Terraform\n\nYou can find more information about publishing Terraform Modules to Artifactory [here](https://www.jfrog.com/confluence/display/JFROG/Terraform+Registry#TerraformRegistry-SettingupaLocalModule/ProviderRegistry).\n\n#### npm (Typescript)\n\n1. [Create a virtual npm registry](https://www.jfrog.com/confluence/display/JFROG/npm+Registry#npmRegistry-VirtualnpmRegistry)\n2. [Authenticate against artifactory to get a token](https://www.jfrog.com/confluence/display/JFROG/npm+Registry#npmRegistry-AuthenticatingthenpmClient)\n3. Create a [GitHub Action Secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) with the name `NPM_TOKEN` and the value of the token\n\n#### pypi (Python)\n\n1. Create a [local repository](https://www.jfrog.com/confluence/display/JFROG/PyPI+Repositories#PyPIRepositories-LocalRepositories)\n2. Create a [GitHub Action Secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) with the name `TWINE_USERNAME` and the artifactory user name and a second one with the name `TWINE_PASSWORD` and the artifactory password\n"
74
+ "markdown": "# Projen-CDKTF-Hybrid-Construct\n\n![Status: Tech Preview](https://img.shields.io/badge/status-experimental-EAAA32) [![Releases](https://img.shields.io/github/release/cdktf/projen-cdktf-hybrid-construct.svg)](https://github.com/cdktf/projen-cdktf-hybrid-construct/releases)\n[![LICENSE](https://img.shields.io/github/license/cdktf/projen-cdktf-hybrid-construct.svg)](https://github.com/cdktf/projen-cdktf-hybrid-construct/blob/main/LICENSE)\n[![build](https://github.com/cdktf/projen-cdktf-hybrid-construct/actions/workflows/build.yml/badge.svg)](https://github.com/cdktf/projen-cdktf-hybrid-construct/actions/workflows/build.yml)\n\nProjen template for CDKTF Constructs that should also be used as Terraform Modules and for republishing Terraform Modules as Constructs.\n\n_projen-cdktf-hybrid-construct_ is in technical preview, which means it's a community supported project. It still requires extensive testing and polishing to mature into a HashiCorp officially supported project. Please [file issues](https://github.com/cdktf/projen-cdktf-hybrid-construct/issues/new/choose) generously and detail your experience while using the library. We welcome your feedback.\n\nBy using the software in this repository, you acknowledge that:\n* _projen-cdktf-hybrid-construct_ is still in development, may change, and has not been released as a commercial product by HashiCorp and is not currently supported in any way by HashiCorp.\n* _projen-cdktf-hybrid-construct_ is provided on an \"as-is\" basis, and may include bugs, errors, or other issues.\n* _projen-cdktf-hybrid-construct_ is NOT INTENDED FOR PRODUCTION USE, use of the Software may result in unexpected results, loss of data, or other unexpected results, and HashiCorp disclaims any and all liability resulting from use of _projen-cdktf-hybrid-construct_.\n* HashiCorp reserves all rights to make all decisions about the features, functionality and commercial release (or non-release) of _projen-cdktf-hybrid-construct_, at any time and without any obligation or liability whatsoever.\n\n## Compatibility\n\n- `cdktf` >= 0.20.0\n- `constructs` >= 10.0.107\n\n## Usage\n\n### `HybridModule`\n\nIf you want to write a CDKTF construct and also publish it as a Terraform Module you can use the `HybridModule` template.\n\nYou can initialize such a project using `npx projen new --from projen-cdktf-hybrid-construct hybrid-module`.\n\nA configutation might look like this:\n\n```js\nconst { HybridModule } = require(\"projen-cdktf-hybrid-construct\");\n\nconst project = new HybridModule({\n // The name of the module & repository need to start with terraform-cdk-\n name: \"terraform-cdk-my-new-hybrid-construct\",\n repositoryUrl:\n \"github.com/DanielMSchmidt/terraform-cdk-my-new-hybrid-construct\",\n\n author: \"Daniel Schmidt\",\n authorAddress: \"danielmschmidt92@gmail.com\",\n\n // If enabled an example folder with terraform code will be created\n terraformExamples: {\n enabled: true,\n folder: \"terraform\",\n // The configuration to add to the example terraform file\n providerConfig: `\n terraform {\n required_providers {\n aws = {\n source = \"hashicorp/aws\"\n version = \"~> 3.74\"\n }\n }\n # Terraform binary version constraint\n required_version = \">= 1.2.0\"\n }\n\n\n provider \"aws\" {\n region = \"eu-central-1\"\n }\n `,\n },\n\n // If enabled a constructs example folder will be created\n constructExamples: {\n enabled: true,\n folder: \"construct-examples\",\n },\n});\nproject.synth();\n```\n\n### `TerraformModule`\n\nIf you want to republish an existing Terraform module as a CDKTF construct or if you want to repackage them with an easier to use API you can use the `TerraformModule` template.\n\nYou can initialize such a project using `npx projen new --from projen-cdktf-hybrid-construct terraform-module`.\n\nA configutation might look like this:\n\n```js\nconst { TerraformModule } = require(\"projen-cdktf-hybrid-construct\");\n\nconst project = new TerraformModule({\n name: \"my-module\",\n author: \"Daniel Schmidt\",\n authorAddress: \"danielmschmidt92@gmail.com\",\n repositoryUrl: \"github.com/DanielMSchmidt/my-module\",\n\n terraformModules: [\n {\n name: \"eks\",\n source: \"terraform-aws-modules/eks/aws\",\n version: \"~> 18.0\",\n },\n {\n name: \"eks-managed-nodegroup\",\n source: \"terraform-aws-modules/eks/aws//modules/eks-managed-node-group\",\n version: \"~> 18.0\",\n },\n ],\n});\n\nproject.synth();\n```\n\n## Publishing\n\n### Open Source\n\nWe have a helper method for easy configuration, but there are still some manual steps required.\n\n```js\nconst {\n HybridModule,\n publishToRegistries,\n} = require(\"projen-cdktf-hybrid-construct\");\n\nconst project = new HybridModule({\n // ... all the other options\n ...publishToRegistries({\n name: \"my-new-hybrid-construct\",\n namespace: \"my-org\",\n registries: [\"npm\", \"pypi\", \"nuget\", \"maven\"],\n }),\n});\n```\n\n#### Terraform\n\n1. [Sign in at the registry](https://registry.terraform.io/sign-in)\n2. [Select your repository](https://registry.terraform.io/github/create) and create the module\n\nPlease make sure your repository name starts with `terraform-cdk-`.\n\n#### npm (Typescript)\n\n1. Create an account at [npmjs.com](https://npmjs.com/)\n2. Create an [automation token](https://docs.npmjs.com/creating-and-viewing-access-tokens) on npm\n3. Create a [GitHub Action Secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) with the name `NPM_TOKEN` and the value of the token\n\n#### pypi (Python)\n\n1. Create an account at [pypi.org](https://pypi.org/)\n2. Create an [API token](https://pypi.org/help/#apitoken) on pypi\n3. Create a [GitHub Action Secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) with the name `TWINE_USERNAME` and the value `__token__` and a second one with the name `TWINE_PASSWORD` and the value of the token\n4. Set the `publishToPypi` section in the options of `HybridModule` or `TerraformModule` (or use the helper mentioned above)\n\n```js\nconst name = \"name-of-my-hybrid-construct\";\nnew HybridModule({\n name,\n // ... other options\n publishToPypi: {\n distName: name,\n module: name.replace(/-/g, \"_\"),\n },\n});\n```\n\n#### Maven (Java)\n\n1. [Create a Sonatype account and repository](https://central.sonatype.org/publish/publish-guide/#introduction)\n2. Create [GitHub Action Secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) to configure maven:\n - `MAVEN_USERNAME`\n - `MAVEN_PASSWORD`\n - `MAVEN_STAGING_PROFILE_ID`\n - `MAVEN_GPG_PRIVATE_KEY_PASSPHRASE`\n - `MAVEN_GPG_PRIVATE_KEY_PASSPHRASE`\n3. Setup the `publishToMaven` section in the options of `HybridModule` or `TerraformModule` (or use the helper mentioned above)\n\n```js\nconst githubNamespace = \"my-org\";\nconst name = \"name-of-my-hybrid-construct\";\nnew HybridModule({\n name,\n // ... other options\n publishToMaven: {\n javaPackage: name.replace(/-/g, \"_\"),\n mavenGroupId: `com.${githubNamespace}`,\n mavenArtifactId: name,\n },\n});\n```\n\n#### NuGet (C#)\n\n1. [Create a NuGet account](https://www.nuget.org/users/account/LogOn) (you might need to create a Microsoft Account if you don't have one)\n2. [Create API keys](https://docs.microsoft.com/en-us/nuget/nuget-org/publish-a-package#create-api-keys)\n3. Create a [GitHub Action Secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) with the name `NUGET_API_KEY` and the value of the token\n4. Setup the `publishToNuget` section in the options of `HybridModule` or `TerraformModule` (or use the helper mentioned above)\n\n```js\nconst githubNamespace = \"my-org\";\nconst name = \"name-of-my-hybrid-construct\";\n\nnew HybridModule({\n name,\n // ... other options\n publishToNuget: {\n dotNetNamespace: `MyOrg.NameOfMyHybridConstruct`,\n packageId: `MyOrg.NameOfMyHybridConstruct`,\n },\n});\n```\n\n### Github Packages\n\nWe have a helper method for easy configuration, no extra steps needed:\n\n```js\nconst {\n HybridModule,\n publishToGithubPackages,\n} = require(\"projen-cdktf-hybrid-construct\");\n\nconst project = new HybridModule({\n // ... all the other options\n ...publishToGithubPackages({\n name: \"my-new-hybrid-construct\",\n namespace: \"my-org\",\n registries: [\"npm\", \"maven\"], // pypi and nuget are not yet supported\n }),\n});\n```\n\n### Artifactory\n\nWe have a helper method for easy configuration, but there are also some manual steps required.\n\n```js\nconst {\n HybridModule,\n publishToGithubPackages,\n} = require(\"projen-cdktf-hybrid-construct\");\n\nconst project = new HybridModule({\n // ... all the other options\n ...publishToGithubPackages({\n name: \"my-new-hybrid-construct\",\n namespace: \"my-org\",\n registries: [\"npm\", \"pypi\", \"nuget\"], // maven is currently not supported, PRs welcome\n artifactoryApiUrl: \"https://artifactory.my-org.com/api/\",\n artifactoryRepository: \"my-repo\", // needs to be the same across all registries, defaults to namespace so \"my-org\" in this case\n }),\n});\n```\n\n#### Terraform\n\nYou can find more information about publishing Terraform Modules to Artifactory [here](https://www.jfrog.com/confluence/display/JFROG/Terraform+Registry#TerraformRegistry-SettingupaLocalModule/ProviderRegistry).\n\n#### npm (Typescript)\n\n1. [Create a virtual npm registry](https://www.jfrog.com/confluence/display/JFROG/npm+Registry#npmRegistry-VirtualnpmRegistry)\n2. [Authenticate against artifactory to get a token](https://www.jfrog.com/confluence/display/JFROG/npm+Registry#npmRegistry-AuthenticatingthenpmClient)\n3. Create a [GitHub Action Secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) with the name `NPM_TOKEN` and the value of the token\n\n#### pypi (Python)\n\n1. Create a [local repository](https://www.jfrog.com/confluence/display/JFROG/PyPI+Repositories#PyPIRepositories-LocalRepositories)\n2. Create a [GitHub Action Secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) with the name `TWINE_USERNAME` and the artifactory user name and a second one with the name `TWINE_PASSWORD` and the artifactory password\n"
75
75
  },
76
76
  "repository": {
77
77
  "type": "git",
@@ -191,7 +191,7 @@
191
191
  "custom": {
192
192
  "featured": "true"
193
193
  },
194
- "default": "\"0.19.0\"",
194
+ "default": "\"0.20.0\"",
195
195
  "stability": "stable",
196
196
  "summary": "Minimum target version of this library."
197
197
  },
@@ -466,7 +466,7 @@
466
466
  "custom": {
467
467
  "featured": "true"
468
468
  },
469
- "default": "\"0.19.0\"",
469
+ "default": "\"0.20.0\"",
470
470
  "stability": "stable",
471
471
  "summary": "Minimum target version of this library."
472
472
  },
@@ -603,6 +603,6 @@
603
603
  "symbolId": "src/terraform-module:TerraformVersionConstraint"
604
604
  }
605
605
  },
606
- "version": "0.5.14",
607
- "fingerprint": "m5rq+DVaS4iy0vYyE2FJnsW6JNgbVmWrTEg5s+kghbQ="
606
+ "version": "0.6.0",
607
+ "fingerprint": "cdCtgxn5nAZru89l7HT9jZII7xMXQZ0RI1I9FSlbtFg="
608
608
  }
package/API.md CHANGED
@@ -2439,7 +2439,7 @@ public readonly cdktfVersion: string;
2439
2439
  ```
2440
2440
 
2441
2441
  - *Type:* string
2442
- - *Default:* "0.19.0"
2442
+ - *Default:* "0.20.0"
2443
2443
 
2444
2444
  Minimum target version of this library.
2445
2445
 
@@ -4977,7 +4977,7 @@ public readonly cdktfVersion: string;
4977
4977
  ```
4978
4978
 
4979
4979
  - *Type:* string
4980
- - *Default:* "0.19.0"
4980
+ - *Default:* "0.20.0"
4981
4981
 
4982
4982
  Minimum target version of this library.
4983
4983
 
package/README.md CHANGED
@@ -16,7 +16,7 @@ By using the software in this repository, you acknowledge that:
16
16
 
17
17
  ## Compatibility
18
18
 
19
- - `cdktf` >= 0.19.0
19
+ - `cdktf` >= 0.20.0
20
20
  - `constructs` >= 10.0.107
21
21
 
22
22
  ## Usage
@@ -16,7 +16,7 @@ export interface TerraformExamplesOption {
16
16
  export interface HybridModuleOptions extends ConstructLibraryOptions {
17
17
  /**
18
18
  * Minimum target version of this library.
19
- * @default "0.19.0"
19
+ * @default "0.20.0"
20
20
  * @featured
21
21
  */
22
22
  readonly cdktfVersion?: string;
@@ -118,14 +118,14 @@ class HybridModule extends cdk_1.JsiiProject {
118
118
  typescriptVersion: "~5.2.0", // should always be the same major/minor as JSII
119
119
  });
120
120
  const constructVersion = options.constructVersion || "10.0.107";
121
- const cdktfVersion = options.cdktfVersion || "0.19.0";
121
+ const cdktfVersion = options.cdktfVersion || "0.20.0";
122
122
  console.log({ cdktfVersion, constructVersion });
123
123
  this.addPeerDeps(`constructs@>=${constructVersion}`, `cdktf@>=${cdktfVersion}`);
124
124
  this.addDevDeps(`cdktf@~${cdktfVersion}`, `cdktf-cli@~${cdktfVersion}`, "ts-node@>=10.9.1", "jsii-docgen@^10.0.0");
125
125
  this.addKeywords("cdk", "cdktf", "cdktf-hybrid", "terraform");
126
126
  this.setScript("terraform:test", "./scripts/tf-module-test.sh");
127
127
  // Module Entrypoint
128
- this.addDeps("@cdktf/tf-module-stack@>=4.0.0");
128
+ this.addDeps("@cdktf/tf-module-stack@>=5.0.0");
129
129
  const moduleDocs = `
130
130
  # My Awesome Module
131
131
 
@@ -327,5 +327,5 @@ done
327
327
  }
328
328
  exports.HybridModule = HybridModule;
329
329
  _a = JSII_RTTI_SYMBOL_1;
330
- HybridModule[_a] = { fqn: "projen-cdktf-hybrid-construct.HybridModule", version: "0.5.14" };
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlicmlkLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oeWJyaWQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztHQUdHO0FBRUgsNkJBQTZCO0FBQzdCLG1DQUFpRTtBQUNqRSx3Q0FBc0U7QUFDdEUseUNBQXNDO0FBNkR0QyxNQUFNLGdCQUFnQixHQUFHOzs7Ozs7Ozs7Ozs7Q0FZeEIsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJ6QixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQnJCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHOzs7Ozs7Ozs7S0FTdkIsQ0FBQztBQUVOLE1BQU0sVUFBVyxTQUFRLGlCQUFRO0lBQy9CLFlBQVksT0FBZ0IsRUFBRSxRQUFnQixFQUFVLE9BQWU7UUFDckUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDdkIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBSG1ELFlBQU8sR0FBUCxPQUFPLENBQVE7SUFJdkUsQ0FBQztJQUVTLGlCQUFpQixDQUFDLENBQVk7UUFDdEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBUSxTQUFRLGlCQUFRO0lBQzVCLFlBQVksT0FBZ0IsRUFBRSxRQUFnQixFQUFVLE9BQWU7UUFDckUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDdkIsVUFBVSxFQUFFLEtBQUs7WUFDakIsU0FBUyxFQUFFLElBQUk7WUFDZixRQUFRLEVBQUUsS0FBSyxFQUFFLDJDQUEyQztTQUM3RCxDQUFDLENBQUM7UUFMbUQsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQU12RSxDQUFDO0lBRVMsaUJBQWlCLENBQUMsQ0FBWTtRQUN0QyxPQUFPO0VBQ1QsSUFBSSxDQUFDLE9BQU8sRUFB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U0FDOUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLENBQ1osSUFBSSxFQUNKLHlCQUF5QixFQUN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWlETCxDQUFDLElBQUksRUFBRSxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNqRCxJQUFJLEVBQUUsa0JBQWtCO1NBQ3pCLENBQUMsQ0FBQztRQUVILHVCQUF1QjtRQUN2QixJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O0FBcFJILG9DQXFSQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgRmlsZUJhc2UsIElSZXNvbHZlciwgUHJvamVjdCwgU2FtcGxlRGlyIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgSnNpaVByb2plY3QsIENvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSBcInByb2plbi9saWIvY2RrXCI7XG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gXCIuL2RlZmF1bHRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0RXhhbXBsZXNPcHRpb24ge1xuICAvLyBJZiBzZXQgY29uc3RydWN0IGV4YW1wbGVzIHdpbGwgYmUgcmVuZGVyZWRcbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcbiAgLy8gUGF0aCBmb3IgdGhlIGNvbnN0cnVjdCBleGFtcGxlc1xuICByZWFkb25seSBmb2xkZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtRXhhbXBsZXNPcHRpb24ge1xuICAvLyBJZiBzZXQgdGVycmFmb3JtIGV4YW1wbGVzIHdpbGwgYmUgcmVuZGVyZWRcbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcbiAgLy8gUGF0aCBmb3IgdGhlIHRlcnJhZm9ybSBleGFtcGxlc1xuICByZWFkb25seSBmb2xkZXI/OiBzdHJpbmc7XG4gIC8vIFRoZSBIQ0wgY29uZmlnIGZpbGUgdG8gdXNlIGZvciB0aGUgdGVycmFmb3JtIHByb3ZpZGVyXG4gIHJlYWRvbmx5IHByb3ZpZGVyQ29uZmlnPzogc3RyaW5nO1xuICAvLyBIQ0wgZXhhbXBsZSBjb25maWdcbiAgcmVhZG9ubHkgZXhhbXBsZUNvZGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHlicmlkTW9kdWxlT3B0aW9ucyBleHRlbmRzIENvbnN0cnVjdExpYnJhcnlPcHRpb25zIHtcbiAgLyoqXG4gICAqIE1pbmltdW0gdGFyZ2V0IHZlcnNpb24gb2YgdGhpcyBsaWJyYXJ5LlxuICAgKiBAZGVmYXVsdCBcIjAuMTkuMFwiXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgY2RrdGZWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgdmVyc2lvbiB0byB1c2VcbiAgICogQGRlZmF1bHQgXCJeMTAuMC4xMDdcIlxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0VmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgc2V0IGEgdGVycmFmb3JtIGV4YW1wbGVzIGZvbGRlciB3aWxsIGJlIGNyZWF0ZWRcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgdGVycmFmb3JtRXhhbXBsZXM/OiBUZXJyYWZvcm1FeGFtcGxlc09wdGlvbjtcblxuICAvKipcbiAgICogSWYgc2V0IGEgY29uc3RydWN0IGV4YW1wbGVzIGZvbGRlciB3aWxsIGJlIGNyZWF0ZWRcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0RXhhbXBsZXM/OiBDb25zdHJ1Y3RFeGFtcGxlc09wdGlvbjtcblxuICAvKipcbiAgICogSWYgc2V0IGEgdGVycmFmb3JtIGV4YW1wbGVzIGZvbGRlciB3aWxsIGJlIGNyZWF0ZWRcbiAgICpEZWZhdWx0cyB0byBhIHV1aWQgc3RyaW5nIGFzIGNka3RmIHdvdWxkXG4gICAqIE1vc3RseSB1c2VkIGZvciB0ZXN0aW5nIHRvIGhhdmUgYSBwcmVkaWN0YWJsZSByZXN1bHRcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RJZD86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgc2V0IGEgdGVycmFmb3JtIHBsYW4gaXMgYmVpbmcgcnVuIGFzIHBhcnQgb2YgdGhlIHRlc3RzXG4gICAqL1xuICByZWFkb25seSBydW5QbGFuPzogYm9vbGVhbjtcbn1cblxuY29uc3QgY29uc3RydWN0U3JjQ29kZSA9IGBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXlDb25zdHJ1Y3RPcHRpb25zIHtcbiAgcmVhZG9ubHkgcHJvcGVydHlBOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNeUNvbnN0cnVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHB1YmxpYyBjb25maWc6IE15Q29uc3RydWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gIH1cbn1cbmA7XG5cbmNvbnN0IGNvbnN0cnVjdFRlc3RDb2RlID0gYFxuaW1wb3J0IHsgVGVzdGluZyB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgTXlDb25zdHJ1Y3QgfSBmcm9tIFwiLi4vXCI7XG5cbi8vIFRvIGxlYXJuIG1vcmUgYWJvdXQgdGVzdGluZyBzZWUgY2RrLnRmL3Rlc3RpbmdcbmRlc2NyaWJlKFwiTXlDb25zdHJ1Y3RcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCBzeW50aGVzaXplXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBUZXN0aW5nLnN5bnRoU2NvcGUoKHNjb3BlKSA9PiB7XG4gICAgICAgIG5ldyBNeUNvbnN0cnVjdChzY29wZSwgXCJteS1jb25zdHJ1Y3RcIiwge1xuICAgICAgICAgIHByb3BlcnR5QTogXCJ2YWx1ZUFcIixcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xufSk7XG5gO1xuXG5jb25zdCBtb2R1bGVTcmNDb2RlID0gYFxuaW1wb3J0IHsgQXBwIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVEZNb2R1bGVTdGFjayB9IGZyb20gXCJAY2RrdGYvdGYtbW9kdWxlLXN0YWNrXCI7XG5pbXBvcnQgeyBNeUNvbnN0cnVjdCB9IGZyb20gXCIuL2luZGV4XCI7XG5cbmNsYXNzIE15QXdlc29tZU1vZHVsZSBleHRlbmRzIFRGTW9kdWxlU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBNeUNvbnN0cnVjdCh0aGlzLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgfSk7XG4gIH1cbn1cblxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuLy8gVGhpcyBpcyB0aGUgbmFtZSB0aGUgbW9kdWxlIGNhbiBiZSBmb3VuZCB1bmRlci4gXG4vLyBXZSBleHBlY3QgYSBcIm15LWF3ZXNvbWUtbW9kdWxlLm1kXCIgZmlsZSBpbiB0aGlzIGRpcmVjdG9yeS5cbi8vIFRoZSBSRUFETUUubWQgZmlsZSB3aWxsIGJlIGdlbmVyYXRlZCBmcm9tIHRoaXMgZmlsZS5cbm5ldyBNeUF3ZXNvbWVNb2R1bGUoYXBwLCBcIm15LWF3ZXNvbWUtbW9kdWxlXCIpO1xuYXBwLnN5bnRoKCk7XG5gO1xuXG5jb25zdCB0ZXJyYWZvcm1SZWFkbWVEb2NzID0gYFxuIyBQbGVhc2UgYWRkIGhlcmUgc29tZSBwdXJlIEhDTCB0ZXN0cyBmb3IgeW91ciBtb2R1bGVzIGluIG9yZGVyIHRvIHRlc3QgSENMIEludGVyb3BlcmFiaWxpdHlcblxuRXhhbXBsZXM6XG5cbm1vZHVsZSBcIm15X2F3ZXNvbWVfdGVzdFwiIHtcbiAgc291cmNlID0gXCIuLi9tb2R1bGVzL215LWF3ZXNvbWUtbW9kdWxlc1wiXG4gIC4uLnZhcmlhYmxlcy4uLlxufVxuICAgIGA7XG5cbmNsYXNzIFNjcmlwdEZpbGUgZXh0ZW5kcyBGaWxlQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIGZpbGVQYXRoOiBzdHJpbmcsIHByaXZhdGUgY29udGVudDogc3RyaW5nKSB7XG4gICAgc3VwZXIocHJvamVjdCwgZmlsZVBhdGgsIHtcbiAgICAgIGV4ZWN1dGFibGU6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQoXzogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50O1xuICB9XG59XG5cbmNsYXNzIEhDTEZpbGUgZXh0ZW5kcyBGaWxlQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIGZpbGVQYXRoOiBzdHJpbmcsIHByaXZhdGUgY29udGVudDogc3RyaW5nKSB7XG4gICAgc3VwZXIocHJvamVjdCwgZmlsZVBhdGgsIHtcbiAgICAgIGV4ZWN1dGFibGU6IGZhbHNlLFxuICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgICAgcmVhZG9ubHk6IGZhbHNlLCAvLyB0ZXJyYWZvcm0gZm10IG1pZ2h0IHdhbnQgdG8gb3ZlcndyaXRlIGl0XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQoXzogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gYCMgVGhpcyBmaWxlIGlzIG1hbmFnZWQgYnkgcHJvamVuLiBEbyBub3QgZWRpdCwgY2hhbmdlIHRoZSAucHJvamVucmMgZmlsZSBpbnN0ZWFkLlxuJHt0aGlzLmNvbnRlbnR9YDtcbiAgfVxufVxuXG4vKipcbiAqIEh5YnJpZCBDREtURiBDb25zdHJ1Y3QgLyBUZXJyYWZvcm0gTW9kdWxlXG4gKlxuICogQHBqaWQgaHlicmlkLW1vZHVsZVxuICovXG5leHBvcnQgY2xhc3MgSHlicmlkTW9kdWxlIGV4dGVuZHMgSnNpaVByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBIeWJyaWRNb2R1bGVPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgZXNsaW50T3B0aW9uczogT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucy5lc2xpbnRPcHRpb25zLCB7XG4gICAgICAgIGxpbnRQcm9qZW5SYzogZmFsc2UsXG4gICAgICB9KSxcbiAgICAgIHBvc3RCdWlsZFN0ZXBzOiBbXSxcbiAgICAgIGpzaWlWZXJzaW9uOiBcIn41LjIuMFwiLFxuICAgICAgdHlwZXNjcmlwdFZlcnNpb246IFwifjUuMi4wXCIsIC8vIHNob3VsZCBhbHdheXMgYmUgdGhlIHNhbWUgbWFqb3IvbWlub3IgYXMgSlNJSVxuICAgIH0pO1xuICAgIGNvbnN0IGNvbnN0cnVjdFZlcnNpb24gPSBvcHRpb25zLmNvbnN0cnVjdFZlcnNpb24gfHwgXCIxMC4wLjEwN1wiO1xuICAgIGNvbnN0IGNka3RmVmVyc2lvbiA9IG9wdGlvbnMuY2RrdGZWZXJzaW9uIHx8IFwiMC4xOS4wXCI7XG5cbiAgICBjb25zb2xlLmxvZyh7IGNka3RmVmVyc2lvbiwgY29uc3RydWN0VmVyc2lvbiB9KTtcbiAgICB0aGlzLmFkZFBlZXJEZXBzKFxuICAgICAgYGNvbnN0cnVjdHNAPj0ke2NvbnN0cnVjdFZlcnNpb259YCxcbiAgICAgIGBjZGt0ZkA+PSR7Y2RrdGZWZXJzaW9ufWBcbiAgICApO1xuICAgIHRoaXMuYWRkRGV2RGVwcyhcbiAgICAgIGBjZGt0ZkB+JHtjZGt0ZlZlcnNpb259YCxcbiAgICAgIGBjZGt0Zi1jbGlAfiR7Y2RrdGZWZXJzaW9ufWAsXG4gICAgICBcInRzLW5vZGVAPj0xMC45LjFcIixcbiAgICAgIFwianNpaS1kb2NnZW5AXjEwLjAuMFwiXG4gICAgKTtcbiAgICB0aGlzLmFkZEtleXdvcmRzKFwiY2RrXCIsIFwiY2RrdGZcIiwgXCJjZGt0Zi1oeWJyaWRcIiwgXCJ0ZXJyYWZvcm1cIik7XG4gICAgdGhpcy5zZXRTY3JpcHQoXCJ0ZXJyYWZvcm06dGVzdFwiLCBcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiKTtcblxuICAgIC8vIE1vZHVsZSBFbnRyeXBvaW50XG4gICAgdGhpcy5hZGREZXBzKFwiQGNka3RmL3RmLW1vZHVsZS1zdGFja0A+PTQuMC4wXCIpO1xuICAgIGNvbnN0IG1vZHVsZURvY3MgPSBgXG4jIE15IEF3ZXNvbWUgTW9kdWxlXG5cbiMjIFVzYWdlXG5cblxcYFxcYFxcYGhjbFxubW9kdWxlIFwiZWtzX21hbmFnZWRfbm9kZV9ncm91cFwiIHtcbiAgc291cmNlID0gXCIke1xuICAgIG9wdGlvbnMucmVwb3NpdG9yeVVybFxuICAgICAgPy5yZXBsYWNlKFwiaHR0cHM6Ly9naXRodWIuY29tL1wiLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoXCJodHRwOi8vZ2l0aHViLmNvbS9cIiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFwiZ2l0aHViLmNvbS9cIiwgXCJcIikgfHwgXCJteS1naXRodWItcmVwb1wiXG4gIH0vL21vZHVsZXMvbXktYXdlc29tZS1tb2R1bGVcIlxuXG59XG5cXGBcXGBcXGBcbiAgICBgO1xuXG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCB0aGlzLnNyY2Rpciwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgXCJpbmRleC50c1wiOiBjb25zdHJ1Y3RTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJ0Zk1vZHVsZXMudHNcIjogbW9kdWxlU3JjQ29kZS50cmltKCksXG4gICAgICAgIFwibXktYXdlc29tZS1tb2R1bGUubWRcIjogbW9kdWxlRG9jcy50cmltKCksXG4gICAgICAgIFwiY2RrdGYuanNvblwiOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgICAgICBhcHA6IFwibnB4IHRzLW5vZGUgdGZNb2R1bGVzLnRzXCIsXG4gICAgICAgICAgICB0ZXJyYWZvcm1Qcm92aWRlcnM6IFtcImhhc2hpY29ycC9udWxsQDMuMS4xXCJdLCAvLyBXZSBuZWVkIGF0IGxlYXN0IGEgcHJvdmlkZXIgZm9yIGdldCB0byBzdWNjZWVkXG4gICAgICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXSxcbiAgICAgICAgICAgIG91dHB1dDogXCJtb2R1bGVzXCIsXG4gICAgICAgICAgICBwcm9qZWN0SWQ6XG4gICAgICAgICAgICAgIG9wdGlvbnMucHJvamVjdElkIHx8XG4gICAgICAgICAgICAgIFwiaHlicmlkLW1vZHVsZS1mYjczNGRiYS1lYWM5LTQ2NmMtOTZiYi03ZWI5YzQwNmMyOGFcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgMlxuICAgICAgICApLFxuICAgICAgICBcIl9fdGVzdHNfXy9pbmRleC10ZXN0LnRzXCI6IGNvbnN0cnVjdFRlc3RDb2RlLnRyaW0oKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcyAmJiBvcHRpb25zLnRlcnJhZm9ybUV4YW1wbGVzLmVuYWJsZWQpIHtcbiAgICAgIGNvbnN0IHByb3ZpZGVyQ29uZmlnID1cbiAgICAgICAgb3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcy5wcm92aWRlckNvbmZpZyB8fFxuICAgICAgICBgXG50ZXJyYWZvcm0ge1xuICAjIFRlcnJhZm9ybSBiaW5hcnkgdmVyc2lvbiBjb25zdHJhaW50XG4gIHJlcXVpcmVkX3ZlcnNpb24gPSBcIj49IDEuMi4wXCJcblxuICAjIERlZmluZSBhbGwgbmVlZGVkIHByb3ZpZGVycyBoZXJlLCB5b3UgY2FuIGZpbmQgYWxsIGF2YWlsYWJsZSBwcm92aWRlcnMgaGVyZTpcbiAgIyBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9cbiAgcmVxdWlyZWRfcHJvdmlkZXJzIHt9XG59XG5cbiMgSW5pdGlhbGl6ZSB5b3VyIHByb3ZpZGVyIGhlcmVcblxuYC50cmltKCk7XG4gICAgICBjb25zdCBleGFtcGxlc0ZvbGRlciA9XG4gICAgICAgIG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMuZm9sZGVyIHx8IFwidGVycmFmb3JtLWV4YW1wbGVzXCI7XG5cbiAgICAgIG5ldyBTYW1wbGVEaXIodGhpcywgZXhhbXBsZXNGb2xkZXIsIHtcbiAgICAgICAgZmlsZXM6IHtcbiAgICAgICAgICBcIm1haW4udGZcIjpcbiAgICAgICAgICAgIG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMuZXhhbXBsZUNvZGUgfHxcbiAgICAgICAgICAgIGAjIENvbmZpZ3VyZSB5b3UgbW9kdWxlIGhlcmVgLFxuICAgICAgICAgIFwiUkVBRE1FLm1kXCI6IHRlcnJhZm9ybVJlYWRtZURvY3MudHJpbSgpLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIG5ldyBIQ0xGaWxlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBwYXRoLmpvaW4oZXhhbXBsZXNGb2xkZXIsIFwicHJvdmlkZXIudGZcIiksXG4gICAgICAgIHByb3ZpZGVyQ29uZmlnXG4gICAgICApO1xuXG4gICAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhcbiAgICAgICAgYCR7ZXhhbXBsZXNGb2xkZXJ9Ly50ZXJyYWZvcm1gLFxuICAgICAgICBgJHtleGFtcGxlc0ZvbGRlcn0vLnRlcnJhZm9ybS5sb2NrLmhjbGBcbiAgICAgICk7XG5cbiAgICAgIG5ldyBTY3JpcHRGaWxlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiLFxuICAgICAgICBgIyEvYmluL2Jhc2hcbiMgVGhpcyBzY3JpcHQgaXMgY3JlYXRlZCBieSBwcm9qZW4sIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5Llxuc2V0IC1lXG5cbnRlcnJhZm9ybSAtY2hkaXI9JHtleGFtcGxlc0ZvbGRlcn0gaW5pdCAtLXVwZ3JhZGVcbnRlcnJhZm9ybSAtY2hkaXI9JHtleGFtcGxlc0ZvbGRlcn0gZm10XG50ZXJyYWZvcm0gLWNoZGlyPSR7ZXhhbXBsZXNGb2xkZXJ9IHZhbGlkYXRlXG4ke29wdGlvbnMucnVuUGxhbiA/IGB0ZXJyYWZvcm0gLWNoZGlyPSR7ZXhhbXBsZXNGb2xkZXJ9IHBsYW5gIDogXCJcIn1cbiAgICAgICAgICBgXG4gICAgICApO1xuXG4gICAgICB0aGlzLnRlc3RUYXNrLmV4ZWMoXCIuL3NjcmlwdHMvdGYtbW9kdWxlLXRlc3Quc2hcIik7XG4gICAgICB0aGlzLmplc3Q/LmFkZElnbm9yZVBhdHRlcm4oYDxyb290RGlyPi8ke2V4YW1wbGVzRm9sZGVyfWApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmNvbnN0cnVjdEV4YW1wbGVzICYmIG9wdGlvbnMuY29uc3RydWN0RXhhbXBsZXMuZW5hYmxlZCkge1xuICAgICAgY29uc3QgY29uc3RydWN0RXhhbXBsZUZvbGRlciA9XG4gICAgICAgIG9wdGlvbnMuY29uc3RydWN0RXhhbXBsZXMuZm9sZGVyIHx8IFwiY29uc3RydWN0LWV4YW1wbGVzXCI7XG5cbiAgICAgIGNvbnN0IGxldmVscyA9IGNvbnN0cnVjdEV4YW1wbGVGb2xkZXJcbiAgICAgICAgLnNwbGl0KFwiL1wiKVxuICAgICAgICAuc3BsaWNlKDAsIDEpXG4gICAgICAgIC5tYXAoKCkgPT4gXCIuLlwiKVxuICAgICAgICAuam9pbihcIi9cIik7XG5cbiAgICAgIGNvbnN0IGNvbnN0cnVjdFJlYWRtZURvY3MgPSBgXG4jIENvbnN0cnVjdCBFeGFtcGxlc1xuXG5FeGFtcGxlIHVzZS1jYXNlcyBmb3IgdGhlIENvbnN0cnVjdCBsaWJyYXJ5LlxuXG4tIFtCYXNpYyBVc2FnZV0oLi9iYXNpYy50cylcblxuVG8gZW5zdXJlIGFsbCBleGFtcGxlcyBhcmUgd29ya2luZywgcGxlYXNlIG1ha2Ugc3VyZSB0aGUgW2luZGV4LnRzXSguL2luZGV4LnRzKSBmaWxlIGlzIGltcG9ydGluZyBhbGwgb2YgdGhlbS5cbmA7XG5cbiAgICAgIGNvbnN0IGNvbnN0cnVjdEV4YW1wbGVDb2RlID0gYFxuaW1wb3J0IHsgVGVycmFmb3JtU3RhY2sgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7IE15Q29uc3RydWN0IH0gZnJvbSBcIiR7bGV2ZWxzfS9zcmMvXCI7XG5cbmV4cG9ydCBjbGFzcyBCYXNpY0V4YW1wbGUgZXh0ZW5kcyBUZXJyYWZvcm1TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBuYW1lKTtcblxuICAgIG5ldyBNeUNvbnN0cnVjdCh0aGlzLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgfSk7XG4gIH1cbn1cblxuXG5gO1xuXG4gICAgICBjb25zdCBleGFtcGxlQ29sbGVjdGlvbkNvZGUgPSBgXG4vLyBUaGlzIGZpbGUgd2lsbCBiZSBzeW50aGVzaXplZCB0byBjaGVjayBpZiBhbGwgZXhhbXBsZXMgYXJlIHdvcmtpbmdcblxuaW1wb3J0IHsgQXBwIH0gZnJvbSBcImNka3RmXCI7XG4vLyBBbGwgZXhhbXBsZXMgbmVlZCB0byBiZSBpbXBvcnRlZCBoZXJlXG5pbXBvcnQgeyBCYXNpY0V4YW1wbGUgfSBmcm9tIFwiLi9iYXNpY1wiO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbi8vIEFsbCBleGFtcGxlcyBuZWVkIHRvIGJlIGluaXRpYWxpemVkIGhlcmVcbm5ldyBCYXNpY0V4YW1wbGUoYXBwLCBcImJhc2ljLWV4YW1wbGVcIik7XG5hcHAuc3ludGgoKTtcbmA7XG5cbiAgICAgIG5ldyBTYW1wbGVEaXIodGhpcywgY29uc3RydWN0RXhhbXBsZUZvbGRlciwge1xuICAgICAgICBmaWxlczoge1xuICAgICAgICAgIFwiaW5kZXgudHNcIjogZXhhbXBsZUNvbGxlY3Rpb25Db2RlLnRyaW0oKSxcbiAgICAgICAgICBcImJhc2ljLnRzXCI6IGNvbnN0cnVjdEV4YW1wbGVDb2RlLnRyaW0oKSxcbiAgICAgICAgICBcImNka3RmLmpzb25cIjogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBcInR5cGVzY3JpcHRcIixcbiAgICAgICAgICAgICAgYXBwOiBgbnB4IHRzLW5vZGUgLS1wcm9qZWN0ICR7bGV2ZWxzfS90c2NvbmZpZy5kZXYuanNvbiBpbmRleC50c2AsXG4gICAgICAgICAgICAgIHByb2plY3RJZDpcbiAgICAgICAgICAgICAgICBvcHRpb25zLnByb2plY3RJZCB8fFxuICAgICAgICAgICAgICAgIFwiaHlicmlkLW1vZHVsZS1mYjczNGRiYS1lYWM5LTQ2NmMtOTZiYi03ZWI5YzQwNmMyOGFcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgMlxuICAgICAgICAgICksXG4gICAgICAgICAgXCJSRUFETUUubWRcIjogY29uc3RydWN0UmVhZG1lRG9jcy50cmltKCksXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgdGhpcy50ZXN0VGFzay5leGVjKGBjZGt0ZiBzeW50aGAsIHtcbiAgICAgICAgY3dkOiBjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhgJHtjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyfS9jZGt0Zi5vdXRgKTtcbiAgICB9XG5cbiAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhcInNyYy8uZ2VuXCIsIFwic3JjL2Nka3RmLm91dFwiLCBcInNyYy9tb2R1bGVzXCIpO1xuICAgIHRoaXMuY29tcGlsZVRhc2sucHJlcGVuZEV4ZWMoXCJucHggY2RrdGYgZ2V0XCIsIHtcbiAgICAgIGN3ZDogdGhpcy5zcmNkaXIsXG4gICAgfSk7XG4gICAgdGhpcy5jb21waWxlVGFzay5leGVjKFwiY2RrdGYgc3ludGhcIiwge1xuICAgICAgY3dkOiB0aGlzLnNyY2RpcixcbiAgICAgIG5hbWU6IFwiU3ludGhlc2l6ZSBtb2R1bGUgSENMXCIsXG4gICAgfSk7XG5cbiAgICBuZXcgU2NyaXB0RmlsZShcbiAgICAgIHRoaXMsXG4gICAgICBcInNjcmlwdHMvY29weS1tb2R1bGVzLnNoXCIsXG4gICAgICBgXG4jIS9iaW4vYmFzaFxuIyBUaGlzIHNjcmlwdCBpcyBjcmVhdGVkIGJ5IHByb2plbiwgZG8gbm90IGVkaXQgaXQgZGlyZWN0bHkuXG5zZXQgLWVcblxuU0NSSVBUUEFUSD1cIiQoIGNkIC0tIFwiJChkaXJuYW1lIFwiJDBcIilcIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVwiXG5cbiMgY2hlY2sgaWYgdGhlIG1vZHVsZSBmb2xkZXIgaGFzIGJlZW4gZ2VuZXJhdGVkIGFzIGV4cGVjdGVkXG5NT0RVTEVTX0ZPTERFUj0kKCBjZCAtLSBcIiRTQ1JJUFRQQVRILy4uL3NyYy9tb2R1bGVzL3N0YWNrc1wiID4vZGV2L251bGwgMj4mMSA7IHB3ZCAtUCApXG5TUkNfRk9MREVSPSQoIGNkIC0tIFwiJFNDUklQVFBBVEgvLi4vc3JjL1wiID4vZGV2L251bGwgMj4mMSA7IHB3ZCAtUCApXG5UQVJHRVRfRk9MREVSPVwiJFNDUklQVFBBVEgvLi4vbW9kdWxlc1wiXG5cbmlmIFsgISAtZCBcIiRNT0RVTEVTX0ZPTERFUlwiIF07IHRoZW5cbiAgZWNobyBcIkV4cGVjdGVkIG1vZHVsZSBmb2xkZXIgdG8gZXhpc3QgYXQgJE1PRFVMRVNfRk9MREVSXCJcbiAgZXhpdCAxXG5maVxuXG5jZCBcIiRNT0RVTEVTX0ZPTERFUlwiXG5mb3IgZCBpbiAqLyA7IGRvXG4gICAgWyAtTCBcIlxcJHtkJS99XCIgXSAmJiBjb250aW51ZVxuXG4gICAgZGlybmFtZT1cIlxcJHtkJS99XCJcblxuXG4gICAgIyBDaGVjayBpZiBldmVyeXRoaW5nIGlzIGluIHBsYWNlXG4gICAgaWYgWyAhIC1mIFwiJE1PRFVMRVNfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCIgXTsgdGhlblxuICAgICAgZWNobyBcIkV4cGVjdGVkIGNvZGUgZm9yICRkaXJuYW1lIGF0IGNkay50Zi5qc29uIHRvIGV4aXN0IGF0ICRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZVwiXG4gICAgICBleGl0IDFcbiAgICBmaVxuXG4gICAgaWYgWyAhIC1mIFwiJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIiBdOyB0aGVuXG4gICAgICBlY2hvIFwiRXhwZWN0ZWQgRG9jdW1lbnRhdGlvbiBmb3IgJGRpcm5hbWUgYXQgJGRpcm5hbWUubWQgdG8gZXhpc3QgYXQgJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIlxuICAgICAgZXhpdCAxXG4gICAgZmlcblxuICAgICMgQ29weSBtb2R1bGUgYW5kIHJlYWRtZSB0b2dldGhlclxuICAgIGVjaG8gXCJDb3B5aW5nIENvZGUgYW5kIFJFQURNRSBmb3IgbW9kdWxlICRkaXJuYW1lXCJcbiAgICBta2RpciAtcCBcIiRUQVJHRVRfRk9MREVSXCJcbiAgICBta2RpciAtcCBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lXCJcbiAgICBjcCBcIiRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIlxuICAgIGNwIFwiJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIiBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL1JFQURNRS5tZFwiXG5cbiAgICAjIEFkZCBSRUFETUUgaGNsIGRvY3NcbiAgICBpZiB3aGljaCB0ZXJyYWZvcm0tZG9jcyA+L2Rldi9udWxsOyB0aGVuXG4gICAgICB0ZXJyYWZvcm0tZG9jcyBtYXJrZG93biB0YWJsZSAtLW91dHB1dC1maWxlIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWUvUkVBRE1FLm1kXCIgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZVwiIFxuICAgIGVsc2VcbiAgICAgIGRvY2tlciBydW4gLS1ybSAtLXZvbHVtZSBcIiRTQ1JJUFRQQVRILy4uL21vZHVsZXM6L3RlcnJhZm9ybS1kb2NzXCIgLXUgJChpZCAtdSkgcXVheS5pby90ZXJyYWZvcm0tZG9jcy90ZXJyYWZvcm0tZG9jczowLjE2LjAgbWFya2Rvd24gdGFibGUgLS1vdXRwdXQtZmlsZSBcIi90ZXJyYWZvcm0tZG9jcy8kZGlybmFtZS9SRUFETUUubWRcIiAvdGVycmFmb3JtLWRvY3MvJGRpcm5hbWVcbiAgICBmaVxuZG9uZVxuYC50cmltKClcbiAgICApO1xuICAgIHRoaXMuY29tcGlsZVRhc2suZXhlYyhcIi4vc2NyaXB0cy9jb3B5LW1vZHVsZXMuc2hcIiwge1xuICAgICAgbmFtZTogXCJDb3B5IEhDTCBNb2R1bGVzXCIsXG4gICAgfSk7XG5cbiAgICAvLyBpZ25vcmUgZGlzdCBpbiB0ZXN0c1xuICAgIHRoaXMuamVzdD8uYWRkSWdub3JlUGF0dGVybihcImRpc3RcIik7XG4gIH1cbn1cbiJdfQ==
330
+ HybridModule[_a] = { fqn: "projen-cdktf-hybrid-construct.HybridModule", version: "0.6.0" };
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlicmlkLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oeWJyaWQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztHQUdHO0FBRUgsNkJBQTZCO0FBQzdCLG1DQUFpRTtBQUNqRSx3Q0FBc0U7QUFDdEUseUNBQXNDO0FBNkR0QyxNQUFNLGdCQUFnQixHQUFHOzs7Ozs7Ozs7Ozs7Q0FZeEIsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJ6QixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQnJCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHOzs7Ozs7Ozs7S0FTdkIsQ0FBQztBQUVOLE1BQU0sVUFBVyxTQUFRLGlCQUFRO0lBQy9CLFlBQVksT0FBZ0IsRUFBRSxRQUFnQixFQUFVLE9BQWU7UUFDckUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDdkIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBSG1ELFlBQU8sR0FBUCxPQUFPLENBQVE7SUFJdkUsQ0FBQztJQUVTLGlCQUFpQixDQUFDLENBQVk7UUFDdEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBUSxTQUFRLGlCQUFRO0lBQzVCLFlBQVksT0FBZ0IsRUFBRSxRQUFnQixFQUFVLE9BQWU7UUFDckUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDdkIsVUFBVSxFQUFFLEtBQUs7WUFDakIsU0FBUyxFQUFFLElBQUk7WUFDZixRQUFRLEVBQUUsS0FBSyxFQUFFLDJDQUEyQztTQUM3RCxDQUFDLENBQUM7UUFMbUQsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQU12RSxDQUFDO0lBRVMsaUJBQWlCLENBQUMsQ0FBWTtRQUN0QyxPQUFPO0VBQ1QsSUFBSSxDQUFDLE9BQU8sRUFB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U0FDOUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLENBQ1osSUFBSSxFQUNKLHlCQUF5QixFQUN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWlETCxDQUFDLElBQUksRUFBRSxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNqRCxJQUFJLEVBQUUsa0JBQWtCO1NBQ3pCLENBQUMsQ0FBQztRQUVILHVCQUF1QjtRQUN2QixJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O0FBcFJILG9DQXFSQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgRmlsZUJhc2UsIElSZXNvbHZlciwgUHJvamVjdCwgU2FtcGxlRGlyIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgSnNpaVByb2plY3QsIENvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSBcInByb2plbi9saWIvY2RrXCI7XG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gXCIuL2RlZmF1bHRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0RXhhbXBsZXNPcHRpb24ge1xuICAvLyBJZiBzZXQgY29uc3RydWN0IGV4YW1wbGVzIHdpbGwgYmUgcmVuZGVyZWRcbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcbiAgLy8gUGF0aCBmb3IgdGhlIGNvbnN0cnVjdCBleGFtcGxlc1xuICByZWFkb25seSBmb2xkZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtRXhhbXBsZXNPcHRpb24ge1xuICAvLyBJZiBzZXQgdGVycmFmb3JtIGV4YW1wbGVzIHdpbGwgYmUgcmVuZGVyZWRcbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcbiAgLy8gUGF0aCBmb3IgdGhlIHRlcnJhZm9ybSBleGFtcGxlc1xuICByZWFkb25seSBmb2xkZXI/OiBzdHJpbmc7XG4gIC8vIFRoZSBIQ0wgY29uZmlnIGZpbGUgdG8gdXNlIGZvciB0aGUgdGVycmFmb3JtIHByb3ZpZGVyXG4gIHJlYWRvbmx5IHByb3ZpZGVyQ29uZmlnPzogc3RyaW5nO1xuICAvLyBIQ0wgZXhhbXBsZSBjb25maWdcbiAgcmVhZG9ubHkgZXhhbXBsZUNvZGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHlicmlkTW9kdWxlT3B0aW9ucyBleHRlbmRzIENvbnN0cnVjdExpYnJhcnlPcHRpb25zIHtcbiAgLyoqXG4gICAqIE1pbmltdW0gdGFyZ2V0IHZlcnNpb24gb2YgdGhpcyBsaWJyYXJ5LlxuICAgKiBAZGVmYXVsdCBcIjAuMjAuMFwiXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgY2RrdGZWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgdmVyc2lvbiB0byB1c2VcbiAgICogQGRlZmF1bHQgXCJeMTAuMC4xMDdcIlxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0VmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgc2V0IGEgdGVycmFmb3JtIGV4YW1wbGVzIGZvbGRlciB3aWxsIGJlIGNyZWF0ZWRcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgdGVycmFmb3JtRXhhbXBsZXM/OiBUZXJyYWZvcm1FeGFtcGxlc09wdGlvbjtcblxuICAvKipcbiAgICogSWYgc2V0IGEgY29uc3RydWN0IGV4YW1wbGVzIGZvbGRlciB3aWxsIGJlIGNyZWF0ZWRcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0RXhhbXBsZXM/OiBDb25zdHJ1Y3RFeGFtcGxlc09wdGlvbjtcblxuICAvKipcbiAgICogSWYgc2V0IGEgdGVycmFmb3JtIGV4YW1wbGVzIGZvbGRlciB3aWxsIGJlIGNyZWF0ZWRcbiAgICpEZWZhdWx0cyB0byBhIHV1aWQgc3RyaW5nIGFzIGNka3RmIHdvdWxkXG4gICAqIE1vc3RseSB1c2VkIGZvciB0ZXN0aW5nIHRvIGhhdmUgYSBwcmVkaWN0YWJsZSByZXN1bHRcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RJZD86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgc2V0IGEgdGVycmFmb3JtIHBsYW4gaXMgYmVpbmcgcnVuIGFzIHBhcnQgb2YgdGhlIHRlc3RzXG4gICAqL1xuICByZWFkb25seSBydW5QbGFuPzogYm9vbGVhbjtcbn1cblxuY29uc3QgY29uc3RydWN0U3JjQ29kZSA9IGBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXlDb25zdHJ1Y3RPcHRpb25zIHtcbiAgcmVhZG9ubHkgcHJvcGVydHlBOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNeUNvbnN0cnVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHB1YmxpYyBjb25maWc6IE15Q29uc3RydWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gIH1cbn1cbmA7XG5cbmNvbnN0IGNvbnN0cnVjdFRlc3RDb2RlID0gYFxuaW1wb3J0IHsgVGVzdGluZyB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgTXlDb25zdHJ1Y3QgfSBmcm9tIFwiLi4vXCI7XG5cbi8vIFRvIGxlYXJuIG1vcmUgYWJvdXQgdGVzdGluZyBzZWUgY2RrLnRmL3Rlc3RpbmdcbmRlc2NyaWJlKFwiTXlDb25zdHJ1Y3RcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCBzeW50aGVzaXplXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBUZXN0aW5nLnN5bnRoU2NvcGUoKHNjb3BlKSA9PiB7XG4gICAgICAgIG5ldyBNeUNvbnN0cnVjdChzY29wZSwgXCJteS1jb25zdHJ1Y3RcIiwge1xuICAgICAgICAgIHByb3BlcnR5QTogXCJ2YWx1ZUFcIixcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xufSk7XG5gO1xuXG5jb25zdCBtb2R1bGVTcmNDb2RlID0gYFxuaW1wb3J0IHsgQXBwIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVEZNb2R1bGVTdGFjayB9IGZyb20gXCJAY2RrdGYvdGYtbW9kdWxlLXN0YWNrXCI7XG5pbXBvcnQgeyBNeUNvbnN0cnVjdCB9IGZyb20gXCIuL2luZGV4XCI7XG5cbmNsYXNzIE15QXdlc29tZU1vZHVsZSBleHRlbmRzIFRGTW9kdWxlU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBNeUNvbnN0cnVjdCh0aGlzLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgfSk7XG4gIH1cbn1cblxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuLy8gVGhpcyBpcyB0aGUgbmFtZSB0aGUgbW9kdWxlIGNhbiBiZSBmb3VuZCB1bmRlci4gXG4vLyBXZSBleHBlY3QgYSBcIm15LWF3ZXNvbWUtbW9kdWxlLm1kXCIgZmlsZSBpbiB0aGlzIGRpcmVjdG9yeS5cbi8vIFRoZSBSRUFETUUubWQgZmlsZSB3aWxsIGJlIGdlbmVyYXRlZCBmcm9tIHRoaXMgZmlsZS5cbm5ldyBNeUF3ZXNvbWVNb2R1bGUoYXBwLCBcIm15LWF3ZXNvbWUtbW9kdWxlXCIpO1xuYXBwLnN5bnRoKCk7XG5gO1xuXG5jb25zdCB0ZXJyYWZvcm1SZWFkbWVEb2NzID0gYFxuIyBQbGVhc2UgYWRkIGhlcmUgc29tZSBwdXJlIEhDTCB0ZXN0cyBmb3IgeW91ciBtb2R1bGVzIGluIG9yZGVyIHRvIHRlc3QgSENMIEludGVyb3BlcmFiaWxpdHlcblxuRXhhbXBsZXM6XG5cbm1vZHVsZSBcIm15X2F3ZXNvbWVfdGVzdFwiIHtcbiAgc291cmNlID0gXCIuLi9tb2R1bGVzL215LWF3ZXNvbWUtbW9kdWxlc1wiXG4gIC4uLnZhcmlhYmxlcy4uLlxufVxuICAgIGA7XG5cbmNsYXNzIFNjcmlwdEZpbGUgZXh0ZW5kcyBGaWxlQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIGZpbGVQYXRoOiBzdHJpbmcsIHByaXZhdGUgY29udGVudDogc3RyaW5nKSB7XG4gICAgc3VwZXIocHJvamVjdCwgZmlsZVBhdGgsIHtcbiAgICAgIGV4ZWN1dGFibGU6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQoXzogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50O1xuICB9XG59XG5cbmNsYXNzIEhDTEZpbGUgZXh0ZW5kcyBGaWxlQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIGZpbGVQYXRoOiBzdHJpbmcsIHByaXZhdGUgY29udGVudDogc3RyaW5nKSB7XG4gICAgc3VwZXIocHJvamVjdCwgZmlsZVBhdGgsIHtcbiAgICAgIGV4ZWN1dGFibGU6IGZhbHNlLFxuICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgICAgcmVhZG9ubHk6IGZhbHNlLCAvLyB0ZXJyYWZvcm0gZm10IG1pZ2h0IHdhbnQgdG8gb3ZlcndyaXRlIGl0XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQoXzogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gYCMgVGhpcyBmaWxlIGlzIG1hbmFnZWQgYnkgcHJvamVuLiBEbyBub3QgZWRpdCwgY2hhbmdlIHRoZSAucHJvamVucmMgZmlsZSBpbnN0ZWFkLlxuJHt0aGlzLmNvbnRlbnR9YDtcbiAgfVxufVxuXG4vKipcbiAqIEh5YnJpZCBDREtURiBDb25zdHJ1Y3QgLyBUZXJyYWZvcm0gTW9kdWxlXG4gKlxuICogQHBqaWQgaHlicmlkLW1vZHVsZVxuICovXG5leHBvcnQgY2xhc3MgSHlicmlkTW9kdWxlIGV4dGVuZHMgSnNpaVByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBIeWJyaWRNb2R1bGVPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgZXNsaW50T3B0aW9uczogT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucy5lc2xpbnRPcHRpb25zLCB7XG4gICAgICAgIGxpbnRQcm9qZW5SYzogZmFsc2UsXG4gICAgICB9KSxcbiAgICAgIHBvc3RCdWlsZFN0ZXBzOiBbXSxcbiAgICAgIGpzaWlWZXJzaW9uOiBcIn41LjIuMFwiLFxuICAgICAgdHlwZXNjcmlwdFZlcnNpb246IFwifjUuMi4wXCIsIC8vIHNob3VsZCBhbHdheXMgYmUgdGhlIHNhbWUgbWFqb3IvbWlub3IgYXMgSlNJSVxuICAgIH0pO1xuICAgIGNvbnN0IGNvbnN0cnVjdFZlcnNpb24gPSBvcHRpb25zLmNvbnN0cnVjdFZlcnNpb24gfHwgXCIxMC4wLjEwN1wiO1xuICAgIGNvbnN0IGNka3RmVmVyc2lvbiA9IG9wdGlvbnMuY2RrdGZWZXJzaW9uIHx8IFwiMC4yMC4wXCI7XG5cbiAgICBjb25zb2xlLmxvZyh7IGNka3RmVmVyc2lvbiwgY29uc3RydWN0VmVyc2lvbiB9KTtcbiAgICB0aGlzLmFkZFBlZXJEZXBzKFxuICAgICAgYGNvbnN0cnVjdHNAPj0ke2NvbnN0cnVjdFZlcnNpb259YCxcbiAgICAgIGBjZGt0ZkA+PSR7Y2RrdGZWZXJzaW9ufWBcbiAgICApO1xuICAgIHRoaXMuYWRkRGV2RGVwcyhcbiAgICAgIGBjZGt0ZkB+JHtjZGt0ZlZlcnNpb259YCxcbiAgICAgIGBjZGt0Zi1jbGlAfiR7Y2RrdGZWZXJzaW9ufWAsXG4gICAgICBcInRzLW5vZGVAPj0xMC45LjFcIixcbiAgICAgIFwianNpaS1kb2NnZW5AXjEwLjAuMFwiXG4gICAgKTtcbiAgICB0aGlzLmFkZEtleXdvcmRzKFwiY2RrXCIsIFwiY2RrdGZcIiwgXCJjZGt0Zi1oeWJyaWRcIiwgXCJ0ZXJyYWZvcm1cIik7XG4gICAgdGhpcy5zZXRTY3JpcHQoXCJ0ZXJyYWZvcm06dGVzdFwiLCBcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiKTtcblxuICAgIC8vIE1vZHVsZSBFbnRyeXBvaW50XG4gICAgdGhpcy5hZGREZXBzKFwiQGNka3RmL3RmLW1vZHVsZS1zdGFja0A+PTUuMC4wXCIpO1xuICAgIGNvbnN0IG1vZHVsZURvY3MgPSBgXG4jIE15IEF3ZXNvbWUgTW9kdWxlXG5cbiMjIFVzYWdlXG5cblxcYFxcYFxcYGhjbFxubW9kdWxlIFwiZWtzX21hbmFnZWRfbm9kZV9ncm91cFwiIHtcbiAgc291cmNlID0gXCIke1xuICAgIG9wdGlvbnMucmVwb3NpdG9yeVVybFxuICAgICAgPy5yZXBsYWNlKFwiaHR0cHM6Ly9naXRodWIuY29tL1wiLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoXCJodHRwOi8vZ2l0aHViLmNvbS9cIiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFwiZ2l0aHViLmNvbS9cIiwgXCJcIikgfHwgXCJteS1naXRodWItcmVwb1wiXG4gIH0vL21vZHVsZXMvbXktYXdlc29tZS1tb2R1bGVcIlxuXG59XG5cXGBcXGBcXGBcbiAgICBgO1xuXG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCB0aGlzLnNyY2Rpciwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgXCJpbmRleC50c1wiOiBjb25zdHJ1Y3RTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJ0Zk1vZHVsZXMudHNcIjogbW9kdWxlU3JjQ29kZS50cmltKCksXG4gICAgICAgIFwibXktYXdlc29tZS1tb2R1bGUubWRcIjogbW9kdWxlRG9jcy50cmltKCksXG4gICAgICAgIFwiY2RrdGYuanNvblwiOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgICAgICBhcHA6IFwibnB4IHRzLW5vZGUgdGZNb2R1bGVzLnRzXCIsXG4gICAgICAgICAgICB0ZXJyYWZvcm1Qcm92aWRlcnM6IFtcImhhc2hpY29ycC9udWxsQDMuMS4xXCJdLCAvLyBXZSBuZWVkIGF0IGxlYXN0IGEgcHJvdmlkZXIgZm9yIGdldCB0byBzdWNjZWVkXG4gICAgICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXSxcbiAgICAgICAgICAgIG91dHB1dDogXCJtb2R1bGVzXCIsXG4gICAgICAgICAgICBwcm9qZWN0SWQ6XG4gICAgICAgICAgICAgIG9wdGlvbnMucHJvamVjdElkIHx8XG4gICAgICAgICAgICAgIFwiaHlicmlkLW1vZHVsZS1mYjczNGRiYS1lYWM5LTQ2NmMtOTZiYi03ZWI5YzQwNmMyOGFcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgMlxuICAgICAgICApLFxuICAgICAgICBcIl9fdGVzdHNfXy9pbmRleC10ZXN0LnRzXCI6IGNvbnN0cnVjdFRlc3RDb2RlLnRyaW0oKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcyAmJiBvcHRpb25zLnRlcnJhZm9ybUV4YW1wbGVzLmVuYWJsZWQpIHtcbiAgICAgIGNvbnN0IHByb3ZpZGVyQ29uZmlnID1cbiAgICAgICAgb3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcy5wcm92aWRlckNvbmZpZyB8fFxuICAgICAgICBgXG50ZXJyYWZvcm0ge1xuICAjIFRlcnJhZm9ybSBiaW5hcnkgdmVyc2lvbiBjb25zdHJhaW50XG4gIHJlcXVpcmVkX3ZlcnNpb24gPSBcIj49IDEuMi4wXCJcblxuICAjIERlZmluZSBhbGwgbmVlZGVkIHByb3ZpZGVycyBoZXJlLCB5b3UgY2FuIGZpbmQgYWxsIGF2YWlsYWJsZSBwcm92aWRlcnMgaGVyZTpcbiAgIyBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9cbiAgcmVxdWlyZWRfcHJvdmlkZXJzIHt9XG59XG5cbiMgSW5pdGlhbGl6ZSB5b3VyIHByb3ZpZGVyIGhlcmVcblxuYC50cmltKCk7XG4gICAgICBjb25zdCBleGFtcGxlc0ZvbGRlciA9XG4gICAgICAgIG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMuZm9sZGVyIHx8IFwidGVycmFmb3JtLWV4YW1wbGVzXCI7XG5cbiAgICAgIG5ldyBTYW1wbGVEaXIodGhpcywgZXhhbXBsZXNGb2xkZXIsIHtcbiAgICAgICAgZmlsZXM6IHtcbiAgICAgICAgICBcIm1haW4udGZcIjpcbiAgICAgICAgICAgIG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMuZXhhbXBsZUNvZGUgfHxcbiAgICAgICAgICAgIGAjIENvbmZpZ3VyZSB5b3UgbW9kdWxlIGhlcmVgLFxuICAgICAgICAgIFwiUkVBRE1FLm1kXCI6IHRlcnJhZm9ybVJlYWRtZURvY3MudHJpbSgpLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIG5ldyBIQ0xGaWxlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBwYXRoLmpvaW4oZXhhbXBsZXNGb2xkZXIsIFwicHJvdmlkZXIudGZcIiksXG4gICAgICAgIHByb3ZpZGVyQ29uZmlnXG4gICAgICApO1xuXG4gICAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhcbiAgICAgICAgYCR7ZXhhbXBsZXNGb2xkZXJ9Ly50ZXJyYWZvcm1gLFxuICAgICAgICBgJHtleGFtcGxlc0ZvbGRlcn0vLnRlcnJhZm9ybS5sb2NrLmhjbGBcbiAgICAgICk7XG5cbiAgICAgIG5ldyBTY3JpcHRGaWxlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiLFxuICAgICAgICBgIyEvYmluL2Jhc2hcbiMgVGhpcyBzY3JpcHQgaXMgY3JlYXRlZCBieSBwcm9qZW4sIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5Llxuc2V0IC1lXG5cbnRlcnJhZm9ybSAtY2hkaXI9JHtleGFtcGxlc0ZvbGRlcn0gaW5pdCAtLXVwZ3JhZGVcbnRlcnJhZm9ybSAtY2hkaXI9JHtleGFtcGxlc0ZvbGRlcn0gZm10XG50ZXJyYWZvcm0gLWNoZGlyPSR7ZXhhbXBsZXNGb2xkZXJ9IHZhbGlkYXRlXG4ke29wdGlvbnMucnVuUGxhbiA/IGB0ZXJyYWZvcm0gLWNoZGlyPSR7ZXhhbXBsZXNGb2xkZXJ9IHBsYW5gIDogXCJcIn1cbiAgICAgICAgICBgXG4gICAgICApO1xuXG4gICAgICB0aGlzLnRlc3RUYXNrLmV4ZWMoXCIuL3NjcmlwdHMvdGYtbW9kdWxlLXRlc3Quc2hcIik7XG4gICAgICB0aGlzLmplc3Q/LmFkZElnbm9yZVBhdHRlcm4oYDxyb290RGlyPi8ke2V4YW1wbGVzRm9sZGVyfWApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmNvbnN0cnVjdEV4YW1wbGVzICYmIG9wdGlvbnMuY29uc3RydWN0RXhhbXBsZXMuZW5hYmxlZCkge1xuICAgICAgY29uc3QgY29uc3RydWN0RXhhbXBsZUZvbGRlciA9XG4gICAgICAgIG9wdGlvbnMuY29uc3RydWN0RXhhbXBsZXMuZm9sZGVyIHx8IFwiY29uc3RydWN0LWV4YW1wbGVzXCI7XG5cbiAgICAgIGNvbnN0IGxldmVscyA9IGNvbnN0cnVjdEV4YW1wbGVGb2xkZXJcbiAgICAgICAgLnNwbGl0KFwiL1wiKVxuICAgICAgICAuc3BsaWNlKDAsIDEpXG4gICAgICAgIC5tYXAoKCkgPT4gXCIuLlwiKVxuICAgICAgICAuam9pbihcIi9cIik7XG5cbiAgICAgIGNvbnN0IGNvbnN0cnVjdFJlYWRtZURvY3MgPSBgXG4jIENvbnN0cnVjdCBFeGFtcGxlc1xuXG5FeGFtcGxlIHVzZS1jYXNlcyBmb3IgdGhlIENvbnN0cnVjdCBsaWJyYXJ5LlxuXG4tIFtCYXNpYyBVc2FnZV0oLi9iYXNpYy50cylcblxuVG8gZW5zdXJlIGFsbCBleGFtcGxlcyBhcmUgd29ya2luZywgcGxlYXNlIG1ha2Ugc3VyZSB0aGUgW2luZGV4LnRzXSguL2luZGV4LnRzKSBmaWxlIGlzIGltcG9ydGluZyBhbGwgb2YgdGhlbS5cbmA7XG5cbiAgICAgIGNvbnN0IGNvbnN0cnVjdEV4YW1wbGVDb2RlID0gYFxuaW1wb3J0IHsgVGVycmFmb3JtU3RhY2sgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7IE15Q29uc3RydWN0IH0gZnJvbSBcIiR7bGV2ZWxzfS9zcmMvXCI7XG5cbmV4cG9ydCBjbGFzcyBCYXNpY0V4YW1wbGUgZXh0ZW5kcyBUZXJyYWZvcm1TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBuYW1lKTtcblxuICAgIG5ldyBNeUNvbnN0cnVjdCh0aGlzLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgfSk7XG4gIH1cbn1cblxuXG5gO1xuXG4gICAgICBjb25zdCBleGFtcGxlQ29sbGVjdGlvbkNvZGUgPSBgXG4vLyBUaGlzIGZpbGUgd2lsbCBiZSBzeW50aGVzaXplZCB0byBjaGVjayBpZiBhbGwgZXhhbXBsZXMgYXJlIHdvcmtpbmdcblxuaW1wb3J0IHsgQXBwIH0gZnJvbSBcImNka3RmXCI7XG4vLyBBbGwgZXhhbXBsZXMgbmVlZCB0byBiZSBpbXBvcnRlZCBoZXJlXG5pbXBvcnQgeyBCYXNpY0V4YW1wbGUgfSBmcm9tIFwiLi9iYXNpY1wiO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbi8vIEFsbCBleGFtcGxlcyBuZWVkIHRvIGJlIGluaXRpYWxpemVkIGhlcmVcbm5ldyBCYXNpY0V4YW1wbGUoYXBwLCBcImJhc2ljLWV4YW1wbGVcIik7XG5hcHAuc3ludGgoKTtcbmA7XG5cbiAgICAgIG5ldyBTYW1wbGVEaXIodGhpcywgY29uc3RydWN0RXhhbXBsZUZvbGRlciwge1xuICAgICAgICBmaWxlczoge1xuICAgICAgICAgIFwiaW5kZXgudHNcIjogZXhhbXBsZUNvbGxlY3Rpb25Db2RlLnRyaW0oKSxcbiAgICAgICAgICBcImJhc2ljLnRzXCI6IGNvbnN0cnVjdEV4YW1wbGVDb2RlLnRyaW0oKSxcbiAgICAgICAgICBcImNka3RmLmpzb25cIjogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBcInR5cGVzY3JpcHRcIixcbiAgICAgICAgICAgICAgYXBwOiBgbnB4IHRzLW5vZGUgLS1wcm9qZWN0ICR7bGV2ZWxzfS90c2NvbmZpZy5kZXYuanNvbiBpbmRleC50c2AsXG4gICAgICAgICAgICAgIHByb2plY3RJZDpcbiAgICAgICAgICAgICAgICBvcHRpb25zLnByb2plY3RJZCB8fFxuICAgICAgICAgICAgICAgIFwiaHlicmlkLW1vZHVsZS1mYjczNGRiYS1lYWM5LTQ2NmMtOTZiYi03ZWI5YzQwNmMyOGFcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgMlxuICAgICAgICAgICksXG4gICAgICAgICAgXCJSRUFETUUubWRcIjogY29uc3RydWN0UmVhZG1lRG9jcy50cmltKCksXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgdGhpcy50ZXN0VGFzay5leGVjKGBjZGt0ZiBzeW50aGAsIHtcbiAgICAgICAgY3dkOiBjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhgJHtjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyfS9jZGt0Zi5vdXRgKTtcbiAgICB9XG5cbiAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhcInNyYy8uZ2VuXCIsIFwic3JjL2Nka3RmLm91dFwiLCBcInNyYy9tb2R1bGVzXCIpO1xuICAgIHRoaXMuY29tcGlsZVRhc2sucHJlcGVuZEV4ZWMoXCJucHggY2RrdGYgZ2V0XCIsIHtcbiAgICAgIGN3ZDogdGhpcy5zcmNkaXIsXG4gICAgfSk7XG4gICAgdGhpcy5jb21waWxlVGFzay5leGVjKFwiY2RrdGYgc3ludGhcIiwge1xuICAgICAgY3dkOiB0aGlzLnNyY2RpcixcbiAgICAgIG5hbWU6IFwiU3ludGhlc2l6ZSBtb2R1bGUgSENMXCIsXG4gICAgfSk7XG5cbiAgICBuZXcgU2NyaXB0RmlsZShcbiAgICAgIHRoaXMsXG4gICAgICBcInNjcmlwdHMvY29weS1tb2R1bGVzLnNoXCIsXG4gICAgICBgXG4jIS9iaW4vYmFzaFxuIyBUaGlzIHNjcmlwdCBpcyBjcmVhdGVkIGJ5IHByb2plbiwgZG8gbm90IGVkaXQgaXQgZGlyZWN0bHkuXG5zZXQgLWVcblxuU0NSSVBUUEFUSD1cIiQoIGNkIC0tIFwiJChkaXJuYW1lIFwiJDBcIilcIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVwiXG5cbiMgY2hlY2sgaWYgdGhlIG1vZHVsZSBmb2xkZXIgaGFzIGJlZW4gZ2VuZXJhdGVkIGFzIGV4cGVjdGVkXG5NT0RVTEVTX0ZPTERFUj0kKCBjZCAtLSBcIiRTQ1JJUFRQQVRILy4uL3NyYy9tb2R1bGVzL3N0YWNrc1wiID4vZGV2L251bGwgMj4mMSA7IHB3ZCAtUCApXG5TUkNfRk9MREVSPSQoIGNkIC0tIFwiJFNDUklQVFBBVEgvLi4vc3JjL1wiID4vZGV2L251bGwgMj4mMSA7IHB3ZCAtUCApXG5UQVJHRVRfRk9MREVSPVwiJFNDUklQVFBBVEgvLi4vbW9kdWxlc1wiXG5cbmlmIFsgISAtZCBcIiRNT0RVTEVTX0ZPTERFUlwiIF07IHRoZW5cbiAgZWNobyBcIkV4cGVjdGVkIG1vZHVsZSBmb2xkZXIgdG8gZXhpc3QgYXQgJE1PRFVMRVNfRk9MREVSXCJcbiAgZXhpdCAxXG5maVxuXG5jZCBcIiRNT0RVTEVTX0ZPTERFUlwiXG5mb3IgZCBpbiAqLyA7IGRvXG4gICAgWyAtTCBcIlxcJHtkJS99XCIgXSAmJiBjb250aW51ZVxuXG4gICAgZGlybmFtZT1cIlxcJHtkJS99XCJcblxuXG4gICAgIyBDaGVjayBpZiBldmVyeXRoaW5nIGlzIGluIHBsYWNlXG4gICAgaWYgWyAhIC1mIFwiJE1PRFVMRVNfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCIgXTsgdGhlblxuICAgICAgZWNobyBcIkV4cGVjdGVkIGNvZGUgZm9yICRkaXJuYW1lIGF0IGNkay50Zi5qc29uIHRvIGV4aXN0IGF0ICRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZVwiXG4gICAgICBleGl0IDFcbiAgICBmaVxuXG4gICAgaWYgWyAhIC1mIFwiJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIiBdOyB0aGVuXG4gICAgICBlY2hvIFwiRXhwZWN0ZWQgRG9jdW1lbnRhdGlvbiBmb3IgJGRpcm5hbWUgYXQgJGRpcm5hbWUubWQgdG8gZXhpc3QgYXQgJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIlxuICAgICAgZXhpdCAxXG4gICAgZmlcblxuICAgICMgQ29weSBtb2R1bGUgYW5kIHJlYWRtZSB0b2dldGhlclxuICAgIGVjaG8gXCJDb3B5aW5nIENvZGUgYW5kIFJFQURNRSBmb3IgbW9kdWxlICRkaXJuYW1lXCJcbiAgICBta2RpciAtcCBcIiRUQVJHRVRfRk9MREVSXCJcbiAgICBta2RpciAtcCBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lXCJcbiAgICBjcCBcIiRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIlxuICAgIGNwIFwiJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIiBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL1JFQURNRS5tZFwiXG5cbiAgICAjIEFkZCBSRUFETUUgaGNsIGRvY3NcbiAgICBpZiB3aGljaCB0ZXJyYWZvcm0tZG9jcyA+L2Rldi9udWxsOyB0aGVuXG4gICAgICB0ZXJyYWZvcm0tZG9jcyBtYXJrZG93biB0YWJsZSAtLW91dHB1dC1maWxlIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWUvUkVBRE1FLm1kXCIgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZVwiIFxuICAgIGVsc2VcbiAgICAgIGRvY2tlciBydW4gLS1ybSAtLXZvbHVtZSBcIiRTQ1JJUFRQQVRILy4uL21vZHVsZXM6L3RlcnJhZm9ybS1kb2NzXCIgLXUgJChpZCAtdSkgcXVheS5pby90ZXJyYWZvcm0tZG9jcy90ZXJyYWZvcm0tZG9jczowLjE2LjAgbWFya2Rvd24gdGFibGUgLS1vdXRwdXQtZmlsZSBcIi90ZXJyYWZvcm0tZG9jcy8kZGlybmFtZS9SRUFETUUubWRcIiAvdGVycmFmb3JtLWRvY3MvJGRpcm5hbWVcbiAgICBmaVxuZG9uZVxuYC50cmltKClcbiAgICApO1xuICAgIHRoaXMuY29tcGlsZVRhc2suZXhlYyhcIi4vc2NyaXB0cy9jb3B5LW1vZHVsZXMuc2hcIiwge1xuICAgICAgbmFtZTogXCJDb3B5IEhDTCBNb2R1bGVzXCIsXG4gICAgfSk7XG5cbiAgICAvLyBpZ25vcmUgZGlzdCBpbiB0ZXN0c1xuICAgIHRoaXMuamVzdD8uYWRkSWdub3JlUGF0dGVybihcImRpc3RcIik7XG4gIH1cbn1cbiJdfQ==
@@ -11,7 +11,7 @@ export interface TerraformVersionConstraint {
11
11
  export interface TerraformModuleOptions extends ConstructLibraryOptions {
12
12
  /**
13
13
  * Minimum target version of this library.
14
- * @default "0.19.0"
14
+ * @default "0.20.0"
15
15
  * @featured
16
16
  */
17
17
  readonly cdktfVersion?: string;
@@ -28,7 +28,7 @@ class TerraformModule extends cdk_1.ConstructLibrary {
28
28
  typescriptVersion: "~5.2.0", // should always be the same major/minor as JSII
29
29
  });
30
30
  const constructVersion = options.constructVersion || "10.0.107";
31
- const cdktfVersion = options.cdktfVersion || "0.19.0";
31
+ const cdktfVersion = options.cdktfVersion || "0.20.0";
32
32
  const constructSrcCode = `
33
33
  // Re-Export module bindings
34
34
  export * from "./terraformModules";
@@ -77,5 +77,5 @@ describe("MyModule", () => {
77
77
  }
78
78
  exports.TerraformModule = TerraformModule;
79
79
  _a = JSII_RTTI_SYMBOL_1;
80
- TerraformModule[_a] = { fqn: "projen-cdktf-hybrid-construct.TerraformModule", version: "0.5.14" };
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztHQUdHO0FBRUgsbUNBQXVEO0FBQ3ZELHdDQUEyRTtBQUUzRSx5Q0FBc0M7QUF3Q3RDOzs7O0dBSUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsc0JBQWdCO0lBQ25ELFlBQVksT0FBK0I7UUFDekMsS0FBSyxDQUFDO1lBQ0osR0FBRyxtQkFBUTtZQUNYLEdBQUcsT0FBTztZQUNWLGFBQWEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFO2dCQUN0RCxZQUFZLEVBQUUsS0FBSzthQUNwQixDQUFDO1lBQ0YsY0FBYyxFQUFFLEVBQUU7WUFDbEIsV0FBVyxFQUFFLFFBQVE7WUFDckIsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGdEQUFnRDtTQUM5RSxDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxVQUFVLENBQUM7UUFDaEUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUM7UUFFdEQsTUFBTSxnQkFBZ0IsR0FBRzs7Ozs7Q0FLNUIsQ0FBQztRQUVFLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7O0NBUTdCLENBQUM7UUFFRSxJQUFJLENBQUMsV0FBVyxDQUNkLGdCQUFnQixnQkFBZ0IsRUFBRSxFQUNsQyxXQUFXLFlBQVksRUFBRSxDQUMxQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FDYixVQUFVLFlBQVksRUFBRSxFQUN4QixjQUFjLFlBQVksRUFBRSxFQUM1QixrQkFBa0IsRUFDbEIscUJBQXFCLENBQ3RCLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUUxQyxJQUFJLGtCQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0IsS0FBSyxFQUFFO2dCQUNMLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7Z0JBQ25DLHlCQUF5QixFQUFFLGlCQUFpQixDQUFDLElBQUksRUFBRTthQUNwRDtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksaUJBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxzQkFBc0IsRUFBRTtZQUN2RCxTQUFTLEVBQUUsSUFBSTtZQUNmLE1BQU0sRUFBRSxJQUFJO1lBQ1osS0FBSyxFQUFFO2dCQUNMLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUNyQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsaUNBQWlDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FDakU7Z0JBQ0QsRUFBRTthQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxpQkFBUSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLGFBQWEsRUFBRTtZQUM5QyxTQUFTLEVBQUUsSUFBSTtZQUNmLEdBQUcsRUFBRTtnQkFDSCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsR0FBRyxFQUFFLHNCQUFzQjtnQkFDM0Isa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixJQUFJLEVBQUU7Z0JBQ3BELGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7Z0JBQzFDLFNBQVMsRUFDUCxPQUFPLENBQUMsU0FBUztvQkFDakIsdURBQXVEO2FBQzFEO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7O0FBM0VILDBDQTRFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgSnNvbkZpbGUsIFNhbXBsZURpciwgVGV4dEZpbGUgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RMaWJyYXJ5LCBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2Nka1wiO1xuXG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gXCIuL2RlZmF1bHRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtVmVyc2lvbkNvbnN0cmFpbnQge1xuICAvLyBuYW1lIG9mIHRoZSBtb2R1bGVcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvLyBwYXRoIC8gdXJsIC8gcmVnaXN0cnkgaWRlbnRpZmllciBmb3IgdGhlIG1vZHVsZVxuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgLy8gdmVyc2lvbiBjb25zdHJhaW50IChodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9sYW5ndWFnZS9wcm92aWRlcnMvcmVxdWlyZW1lbnRzLmh0bWwjdmVyc2lvbi1jb25zdHJhaW50cylcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybU1vZHVsZU9wdGlvbnMgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIHRhcmdldCB2ZXJzaW9uIG9mIHRoaXMgbGlicmFyeS5cbiAgICogQGRlZmF1bHQgXCIwLjE5LjBcIlxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGNka3RmVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQ29uc3RydWN0IHZlcnNpb24gdG8gdXNlXG4gICAqIEBkZWZhdWx0IFwiXjEwLjAuMTA3XCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBMaXN0IG9mIHByb3ZpZGVyIGJpbmRpbmdzIHRvIGdlbmVyYXRlIGluIGFkZGl0aW9uIHRvIHRoZSBtb2R1bGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVycmFmb3JtUHJvdmlkZXJzPzogVGVycmFmb3JtVmVyc2lvbkNvbnN0cmFpbnRbXTtcblxuICAvKipcbiAgICogTGlzdCBvZiBtb2R1bGVzIHRvIGdlbmVyYXRlIGJpbmRpbmdzIGZvci5cbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSB0ZXJyYWZvcm1Nb2R1bGVzOiBUZXJyYWZvcm1WZXJzaW9uQ29uc3RyYWludFtdO1xuXG4gIC8vIERlZmF1bHRlZCB0byBhIHV1aWQgc3RyaW5nIGFzIGNka3RmIHdvdWxkXG4gIHJlYWRvbmx5IHByb2plY3RJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUZXJyYWZvcm0gTW9kdWxlcyByZXB1Ymxpc2hlZCBhcyBDREtURiBDb25zdHJ1Y3RzXG4gKlxuICogQHBqaWQgdGVycmFmb3JtLW1vZHVsZVxuICovXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtTW9kdWxlIGV4dGVuZHMgQ29uc3RydWN0TGlicmFyeSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRlcnJhZm9ybU1vZHVsZU9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBlc2xpbnRPcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zLmVzbGludE9wdGlvbnMsIHtcbiAgICAgICAgbGludFByb2plblJjOiBmYWxzZSxcbiAgICAgIH0pLFxuICAgICAgcG9zdEJ1aWxkU3RlcHM6IFtdLFxuICAgICAganNpaVZlcnNpb246IFwifjUuMi4wXCIsXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbjogXCJ+NS4yLjBcIiwgLy8gc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZSBtYWpvci9taW5vciBhcyBKU0lJXG4gICAgfSk7XG4gICAgY29uc3QgY29uc3RydWN0VmVyc2lvbiA9IG9wdGlvbnMuY29uc3RydWN0VmVyc2lvbiB8fCBcIjEwLjAuMTA3XCI7XG4gICAgY29uc3QgY2RrdGZWZXJzaW9uID0gb3B0aW9ucy5jZGt0ZlZlcnNpb24gfHwgXCIwLjE5LjBcIjtcblxuICAgIGNvbnN0IGNvbnN0cnVjdFNyY0NvZGUgPSBgXG4vLyBSZS1FeHBvcnQgbW9kdWxlIGJpbmRpbmdzXG5leHBvcnQgKiBmcm9tIFwiLi90ZXJyYWZvcm1Nb2R1bGVzXCI7XG5cbi8vIEFkZCB5b3VyIGN1c3RvbSBjb25zdHJ1Y3RzIGhlcmVcbmA7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RUZXN0Q29kZSA9IGBcbi8vIGltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdGZcIjtcbi8vIGltcG9ydCBcImNka3RmL2xpYi90ZXN0aW5nL2FkYXB0ZXJzL2plc3RcIjtcblxuLy8gVG8gbGVhcm4gbW9yZSBhYm91dCB0ZXN0aW5nIHNlZSBjZGsudGYvdGVzdGluZ1xuZGVzY3JpYmUoXCJNeU1vZHVsZVwiLCAoKSA9PiB7XG4gIGl0LnRvZG8oXCJzaG91bGQgYmUgdGVzdGVkXCIpXG59KTtcbmA7XG5cbiAgICB0aGlzLmFkZFBlZXJEZXBzKFxuICAgICAgYGNvbnN0cnVjdHNAPj0ke2NvbnN0cnVjdFZlcnNpb259YCxcbiAgICAgIGBjZGt0ZkA+PSR7Y2RrdGZWZXJzaW9ufWBcbiAgICApO1xuICAgIHRoaXMuYWRkRGV2RGVwcyhcbiAgICAgIGBjZGt0ZkB+JHtjZGt0ZlZlcnNpb259YCxcbiAgICAgIGBjZGt0Zi1jbGlAfiR7Y2RrdGZWZXJzaW9ufWAsXG4gICAgICBcInRzLW5vZGVAPj0xMC45LjFcIixcbiAgICAgIFwianNpaS1kb2NnZW5AXjEwLjAuMFwiXG4gICAgKTtcbiAgICB0aGlzLmFkZEtleXdvcmRzKFwiY2RrdGZcIiwgXCJjZGt0Zi1oeWJyaWRcIik7XG5cbiAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIHRoaXMuc3JjZGlyLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICBcImluZGV4LnRzXCI6IGNvbnN0cnVjdFNyY0NvZGUudHJpbSgpLFxuICAgICAgICBcIl9fdGVzdHNfXy9pbmRleC10ZXN0LnRzXCI6IGNvbnN0cnVjdFRlc3RDb2RlLnRyaW0oKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgbmV3IFRleHRGaWxlKHRoaXMsIGAke3RoaXMuc3JjZGlyfS90ZXJyYWZvcm1Nb2R1bGVzLnRzYCwge1xuICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgbGluZXM6IFtcbiAgICAgICAgLi4uKG9wdGlvbnMudGVycmFmb3JtTW9kdWxlcyB8fCBbXSkubWFwKFxuICAgICAgICAgICh0Zk1vZHVsZSkgPT4gYGV4cG9ydCAqIGZyb20gXCIuLy5nZW4vbW9kdWxlcy8ke3RmTW9kdWxlLm5hbWV9XCI7YFxuICAgICAgICApLFxuICAgICAgICBcIlwiLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIG5ldyBKc29uRmlsZSh0aGlzLCBgJHt0aGlzLnNyY2Rpcn0vY2RrdGYuanNvbmAsIHtcbiAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICAgIG9iajoge1xuICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgIGFwcDogXCJucHggdHMtbm9kZSBpbmRleC50c1wiLFxuICAgICAgICB0ZXJyYWZvcm1Qcm92aWRlcnM6IG9wdGlvbnMudGVycmFmb3JtUHJvdmlkZXJzIHx8IFtdLFxuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBvcHRpb25zLnRlcnJhZm9ybU1vZHVsZXMsXG4gICAgICAgIHByb2plY3RJZDpcbiAgICAgICAgICBvcHRpb25zLnByb2plY3RJZCB8fFxuICAgICAgICAgIFwidGVycmFmb3JtLW1vZHVsZS05OWE3NzBhNy0zZWM1LTQwZjctOGNkMy1kYmM3MmY3NWEwMGFcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnByZUNvbXBpbGVUYXNrLmV4ZWMoYG5weCBjZGt0ZiBnZXRgLCB7IGN3ZDogdGhpcy5zcmNkaXIgfSk7XG4gIH1cbn1cbiJdfQ==
80
+ TerraformModule[_a] = { fqn: "projen-cdktf-hybrid-construct.TerraformModule", version: "0.6.0" };
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztHQUdHO0FBRUgsbUNBQXVEO0FBQ3ZELHdDQUEyRTtBQUUzRSx5Q0FBc0M7QUF3Q3RDOzs7O0dBSUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsc0JBQWdCO0lBQ25ELFlBQVksT0FBK0I7UUFDekMsS0FBSyxDQUFDO1lBQ0osR0FBRyxtQkFBUTtZQUNYLEdBQUcsT0FBTztZQUNWLGFBQWEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFO2dCQUN0RCxZQUFZLEVBQUUsS0FBSzthQUNwQixDQUFDO1lBQ0YsY0FBYyxFQUFFLEVBQUU7WUFDbEIsV0FBVyxFQUFFLFFBQVE7WUFDckIsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGdEQUFnRDtTQUM5RSxDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxVQUFVLENBQUM7UUFDaEUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUM7UUFFdEQsTUFBTSxnQkFBZ0IsR0FBRzs7Ozs7Q0FLNUIsQ0FBQztRQUVFLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7O0NBUTdCLENBQUM7UUFFRSxJQUFJLENBQUMsV0FBVyxDQUNkLGdCQUFnQixnQkFBZ0IsRUFBRSxFQUNsQyxXQUFXLFlBQVksRUFBRSxDQUMxQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FDYixVQUFVLFlBQVksRUFBRSxFQUN4QixjQUFjLFlBQVksRUFBRSxFQUM1QixrQkFBa0IsRUFDbEIscUJBQXFCLENBQ3RCLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUUxQyxJQUFJLGtCQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0IsS0FBSyxFQUFFO2dCQUNMLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7Z0JBQ25DLHlCQUF5QixFQUFFLGlCQUFpQixDQUFDLElBQUksRUFBRTthQUNwRDtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksaUJBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxzQkFBc0IsRUFBRTtZQUN2RCxTQUFTLEVBQUUsSUFBSTtZQUNmLE1BQU0sRUFBRSxJQUFJO1lBQ1osS0FBSyxFQUFFO2dCQUNMLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUNyQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsaUNBQWlDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FDakU7Z0JBQ0QsRUFBRTthQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxpQkFBUSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLGFBQWEsRUFBRTtZQUM5QyxTQUFTLEVBQUUsSUFBSTtZQUNmLEdBQUcsRUFBRTtnQkFDSCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsR0FBRyxFQUFFLHNCQUFzQjtnQkFDM0Isa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixJQUFJLEVBQUU7Z0JBQ3BELGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7Z0JBQzFDLFNBQVMsRUFDUCxPQUFPLENBQUMsU0FBUztvQkFDakIsdURBQXVEO2FBQzFEO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7O0FBM0VILDBDQTRFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgSnNvbkZpbGUsIFNhbXBsZURpciwgVGV4dEZpbGUgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RMaWJyYXJ5LCBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2Nka1wiO1xuXG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gXCIuL2RlZmF1bHRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtVmVyc2lvbkNvbnN0cmFpbnQge1xuICAvLyBuYW1lIG9mIHRoZSBtb2R1bGVcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvLyBwYXRoIC8gdXJsIC8gcmVnaXN0cnkgaWRlbnRpZmllciBmb3IgdGhlIG1vZHVsZVxuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgLy8gdmVyc2lvbiBjb25zdHJhaW50IChodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9sYW5ndWFnZS9wcm92aWRlcnMvcmVxdWlyZW1lbnRzLmh0bWwjdmVyc2lvbi1jb25zdHJhaW50cylcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybU1vZHVsZU9wdGlvbnMgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIHRhcmdldCB2ZXJzaW9uIG9mIHRoaXMgbGlicmFyeS5cbiAgICogQGRlZmF1bHQgXCIwLjIwLjBcIlxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGNka3RmVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQ29uc3RydWN0IHZlcnNpb24gdG8gdXNlXG4gICAqIEBkZWZhdWx0IFwiXjEwLjAuMTA3XCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBMaXN0IG9mIHByb3ZpZGVyIGJpbmRpbmdzIHRvIGdlbmVyYXRlIGluIGFkZGl0aW9uIHRvIHRoZSBtb2R1bGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVycmFmb3JtUHJvdmlkZXJzPzogVGVycmFmb3JtVmVyc2lvbkNvbnN0cmFpbnRbXTtcblxuICAvKipcbiAgICogTGlzdCBvZiBtb2R1bGVzIHRvIGdlbmVyYXRlIGJpbmRpbmdzIGZvci5cbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSB0ZXJyYWZvcm1Nb2R1bGVzOiBUZXJyYWZvcm1WZXJzaW9uQ29uc3RyYWludFtdO1xuXG4gIC8vIERlZmF1bHRlZCB0byBhIHV1aWQgc3RyaW5nIGFzIGNka3RmIHdvdWxkXG4gIHJlYWRvbmx5IHByb2plY3RJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUZXJyYWZvcm0gTW9kdWxlcyByZXB1Ymxpc2hlZCBhcyBDREtURiBDb25zdHJ1Y3RzXG4gKlxuICogQHBqaWQgdGVycmFmb3JtLW1vZHVsZVxuICovXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtTW9kdWxlIGV4dGVuZHMgQ29uc3RydWN0TGlicmFyeSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRlcnJhZm9ybU1vZHVsZU9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBlc2xpbnRPcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zLmVzbGludE9wdGlvbnMsIHtcbiAgICAgICAgbGludFByb2plblJjOiBmYWxzZSxcbiAgICAgIH0pLFxuICAgICAgcG9zdEJ1aWxkU3RlcHM6IFtdLFxuICAgICAganNpaVZlcnNpb246IFwifjUuMi4wXCIsXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbjogXCJ+NS4yLjBcIiwgLy8gc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZSBtYWpvci9taW5vciBhcyBKU0lJXG4gICAgfSk7XG4gICAgY29uc3QgY29uc3RydWN0VmVyc2lvbiA9IG9wdGlvbnMuY29uc3RydWN0VmVyc2lvbiB8fCBcIjEwLjAuMTA3XCI7XG4gICAgY29uc3QgY2RrdGZWZXJzaW9uID0gb3B0aW9ucy5jZGt0ZlZlcnNpb24gfHwgXCIwLjIwLjBcIjtcblxuICAgIGNvbnN0IGNvbnN0cnVjdFNyY0NvZGUgPSBgXG4vLyBSZS1FeHBvcnQgbW9kdWxlIGJpbmRpbmdzXG5leHBvcnQgKiBmcm9tIFwiLi90ZXJyYWZvcm1Nb2R1bGVzXCI7XG5cbi8vIEFkZCB5b3VyIGN1c3RvbSBjb25zdHJ1Y3RzIGhlcmVcbmA7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RUZXN0Q29kZSA9IGBcbi8vIGltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdGZcIjtcbi8vIGltcG9ydCBcImNka3RmL2xpYi90ZXN0aW5nL2FkYXB0ZXJzL2plc3RcIjtcblxuLy8gVG8gbGVhcm4gbW9yZSBhYm91dCB0ZXN0aW5nIHNlZSBjZGsudGYvdGVzdGluZ1xuZGVzY3JpYmUoXCJNeU1vZHVsZVwiLCAoKSA9PiB7XG4gIGl0LnRvZG8oXCJzaG91bGQgYmUgdGVzdGVkXCIpXG59KTtcbmA7XG5cbiAgICB0aGlzLmFkZFBlZXJEZXBzKFxuICAgICAgYGNvbnN0cnVjdHNAPj0ke2NvbnN0cnVjdFZlcnNpb259YCxcbiAgICAgIGBjZGt0ZkA+PSR7Y2RrdGZWZXJzaW9ufWBcbiAgICApO1xuICAgIHRoaXMuYWRkRGV2RGVwcyhcbiAgICAgIGBjZGt0ZkB+JHtjZGt0ZlZlcnNpb259YCxcbiAgICAgIGBjZGt0Zi1jbGlAfiR7Y2RrdGZWZXJzaW9ufWAsXG4gICAgICBcInRzLW5vZGVAPj0xMC45LjFcIixcbiAgICAgIFwianNpaS1kb2NnZW5AXjEwLjAuMFwiXG4gICAgKTtcbiAgICB0aGlzLmFkZEtleXdvcmRzKFwiY2RrdGZcIiwgXCJjZGt0Zi1oeWJyaWRcIik7XG5cbiAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIHRoaXMuc3JjZGlyLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICBcImluZGV4LnRzXCI6IGNvbnN0cnVjdFNyY0NvZGUudHJpbSgpLFxuICAgICAgICBcIl9fdGVzdHNfXy9pbmRleC10ZXN0LnRzXCI6IGNvbnN0cnVjdFRlc3RDb2RlLnRyaW0oKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgbmV3IFRleHRGaWxlKHRoaXMsIGAke3RoaXMuc3JjZGlyfS90ZXJyYWZvcm1Nb2R1bGVzLnRzYCwge1xuICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgbGluZXM6IFtcbiAgICAgICAgLi4uKG9wdGlvbnMudGVycmFmb3JtTW9kdWxlcyB8fCBbXSkubWFwKFxuICAgICAgICAgICh0Zk1vZHVsZSkgPT4gYGV4cG9ydCAqIGZyb20gXCIuLy5nZW4vbW9kdWxlcy8ke3RmTW9kdWxlLm5hbWV9XCI7YFxuICAgICAgICApLFxuICAgICAgICBcIlwiLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIG5ldyBKc29uRmlsZSh0aGlzLCBgJHt0aGlzLnNyY2Rpcn0vY2RrdGYuanNvbmAsIHtcbiAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICAgIG9iajoge1xuICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgIGFwcDogXCJucHggdHMtbm9kZSBpbmRleC50c1wiLFxuICAgICAgICB0ZXJyYWZvcm1Qcm92aWRlcnM6IG9wdGlvbnMudGVycmFmb3JtUHJvdmlkZXJzIHx8IFtdLFxuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBvcHRpb25zLnRlcnJhZm9ybU1vZHVsZXMsXG4gICAgICAgIHByb2plY3RJZDpcbiAgICAgICAgICBvcHRpb25zLnByb2plY3RJZCB8fFxuICAgICAgICAgIFwidGVycmFmb3JtLW1vZHVsZS05OWE3NzBhNy0zZWM1LTQwZjctOGNkMy1kYmM3MmY3NWEwMGFcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnByZUNvbXBpbGVUYXNrLmV4ZWMoYG5weCBjZGt0ZiBnZXRgLCB7IGN3ZDogdGhpcy5zcmNkaXIgfSk7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -60,7 +60,7 @@
60
60
  "jest-junit": "^15",
61
61
  "jsii": "~5.2.0",
62
62
  "jsii-diff": "^1.93.0",
63
- "jsii-docgen": "^10.3.3",
63
+ "jsii-docgen": "^10.3.4",
64
64
  "jsii-pacmak": "^1.93.0",
65
65
  "jsii-rosetta": "~5.2.0",
66
66
  "npm-check-updates": "^16",
@@ -82,7 +82,7 @@
82
82
  ],
83
83
  "main": "lib/index.js",
84
84
  "license": "MPL-2.0",
85
- "version": "0.5.14",
85
+ "version": "0.6.0",
86
86
  "jest": {
87
87
  "testMatch": [
88
88
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",