projen-cdktf-hybrid-construct 0.9.3 → 0.9.4

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
@@ -11,7 +11,7 @@
11
11
  "change-case": "^4.1.2"
12
12
  },
13
13
  "dependencies": {
14
- "constructs": "^10.4.2",
14
+ "constructs": ">= 10.3.0",
15
15
  "projen": ">= 0.88.0"
16
16
  },
17
17
  "dependencyClosure": {
@@ -97,7 +97,7 @@
97
97
  },
98
98
  "name": "projen-cdktf-hybrid-construct",
99
99
  "readme": {
100
- "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.4.2\n- `projen` >= 0.88.0\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 configuration 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"
100
+ "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.3.0\n- `projen` >= 0.88.0\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 configuration 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"
101
101
  },
102
102
  "repository": {
103
103
  "type": "git",
@@ -256,7 +256,7 @@
256
256
  {
257
257
  "abstract": true,
258
258
  "docs": {
259
- "default": "\"^10.0.107\"",
259
+ "default": "\"^10.3.0\"",
260
260
  "stability": "stable",
261
261
  "summary": "Construct version to use."
262
262
  },
@@ -510,7 +510,7 @@
510
510
  {
511
511
  "abstract": true,
512
512
  "docs": {
513
- "default": "\"^10.0.107\"",
513
+ "default": "\"^10.3.0\"",
514
514
  "stability": "stable",
515
515
  "summary": "Construct version to use."
516
516
  },
@@ -629,6 +629,6 @@
629
629
  "symbolId": "src/terraform-module:TerraformVersionConstraint"
630
630
  }
631
631
  },
632
- "version": "0.9.3",
633
- "fingerprint": "HbnPU4NSBJMbX/l9ES/HlK/UM1aXAjkPtCslRtwPtv8="
632
+ "version": "0.9.4",
633
+ "fingerprint": "q5JjUnbyUgHhD1LTnvDuqLn7nDAd4kagl9OPl9w6UXo="
634
634
  }
package/API.md CHANGED
@@ -5593,7 +5593,7 @@ public readonly constructVersion: string;
5593
5593
  ```
5594
5594
 
5595
5595
  - *Type:* string
5596
- - *Default:* "^10.0.107"
5596
+ - *Default:* "^10.3.0"
5597
5597
 
5598
5598
  Construct version to use.
5599
5599
 
@@ -8231,7 +8231,7 @@ public readonly constructVersion: string;
8231
8231
  ```
8232
8232
 
8233
8233
  - *Type:* string
8234
- - *Default:* "^10.0.107"
8234
+ - *Default:* "^10.3.0"
8235
8235
 
8236
8236
  Construct version to use.
8237
8237
 
package/README.md CHANGED
@@ -17,7 +17,7 @@ By using the software in this repository, you acknowledge that:
17
17
  ## Compatibility
18
18
 
19
19
  - `cdktf` >= 0.20.0
20
- - `constructs` >= 10.4.2
20
+ - `constructs` >= 10.3.0
21
21
  - `projen` >= 0.88.0
22
22
 
23
23
  ## Usage
@@ -22,7 +22,7 @@ export interface HybridModuleOptions extends ConstructLibraryOptions {
22
22
  readonly cdktfVersion?: string;
23
23
  /**
24
24
  * Construct version to use
25
- * @default "^10.0.107"
25
+ * @default "^10.3.0"
26
26
  */
27
27
  readonly constructVersion?: string;
28
28
  /**
@@ -117,11 +117,11 @@ class HybridModule extends cdk_1.JsiiProject {
117
117
  jsiiVersion: "~5.5.0",
118
118
  typescriptVersion: "~5.5.0", // should always be the same major/minor as JSII
119
119
  });
120
- const constructVersion = options.constructVersion || "10.4.2";
120
+ const constructVersion = options.constructVersion || "10.3.0";
121
121
  const cdktfVersion = options.cdktfVersion || "0.20.0";
122
122
  console.log({ cdktfVersion, constructVersion });
123
123
  this.addPeerDeps(`constructs@>=${constructVersion}`, `cdktf@>=${cdktfVersion}`);
124
- this.addDevDeps(`cdktf@~${cdktfVersion}`, `cdktf-cli@~${cdktfVersion}`, "ts-node@>=10.9.1", "jsii-docgen@^10.0.0");
124
+ this.addDevDeps(`cdktf@~${cdktfVersion}`, `cdktf-cli@~${cdktfVersion}`, `constructs@${constructVersion}`, "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
@@ -339,5 +339,5 @@ done
339
339
  }
340
340
  exports.HybridModule = HybridModule;
341
341
  _a = JSII_RTTI_SYMBOL_1;
342
- HybridModule[_a] = { fqn: "projen-cdktf-hybrid-construct.HybridModule", version: "0.9.3" };
343
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlicmlkLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oeWJyaWQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztHQUdHO0FBRUgsNkJBQTZCO0FBQzdCLG1DQUFpRTtBQUNqRSx3Q0FBc0U7QUFFdEUseUNBQXNDO0FBNkR0QyxNQUFNLGdCQUFnQixHQUFHOzs7Ozs7Ozs7Ozs7Q0FZeEIsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJ6QixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQnJCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHOzs7Ozs7Ozs7S0FTdkIsQ0FBQztBQUVOLE1BQU0sVUFBVyxTQUFRLGlCQUFRO0lBQy9CLFlBQVksT0FBZ0IsRUFBRSxRQUFnQixFQUFVLE9BQWU7UUFDckUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDdkIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBSG1ELFlBQU8sR0FBUCxPQUFPLENBQVE7SUFJdkUsQ0FBQztJQUVTLGlCQUFpQixDQUFDLENBQVk7UUFDdEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBUSxTQUFRLGlCQUFRO0lBQzVCLFlBQVksT0FBZ0IsRUFBRSxRQUFnQixFQUFVLE9BQWU7UUFDckUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDdkIsVUFBVSxFQUFFLEtBQUs7WUFDakIsU0FBUyxFQUFFLElBQUk7WUFDZixRQUFRLEVBQUUsS0FBSyxFQUFFLDJDQUEyQztTQUM3RCxDQUFDLENBQUM7UUFMbUQsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQU12RSxDQUFDO0lBRVMsaUJBQWlCLENBQUMsQ0FBWTtRQUN0QyxPQUFPO0VBQ1QsSUFBSSxDQUFDLE9BQU8sRUFB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LENBQUMsSUFBSTthQUNuRSxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2pCLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNwQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRTtZQUM1QyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ25DLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNoQixJQUFJLEVBQUUsdUJBQXVCO1NBQzlCLENBQUMsQ0FBQztRQUVILElBQUksVUFBVSxDQUNaLElBQUksRUFDSix5QkFBeUIsRUFDekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpREwsQ0FBQyxJQUFJLEVBQUUsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDakQsSUFBSSxFQUFFLGtCQUFrQjtTQUN6QixDQUFDLENBQUM7UUFFSCx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDOztBQWpTSCxvQ0FrU0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IEZpbGVCYXNlLCBJUmVzb2x2ZXIsIFByb2plY3QsIFNhbXBsZURpciB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IEpzaWlQcm9qZWN0LCBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2Nka1wiO1xuaW1wb3J0IHsgSm9iU3RlcCB9IGZyb20gXCJwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IGRlZmF1bHRzIH0gZnJvbSBcIi4vZGVmYXVsdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb25zdHJ1Y3RFeGFtcGxlc09wdGlvbiB7XG4gIC8vIElmIHNldCBjb25zdHJ1Y3QgZXhhbXBsZXMgd2lsbCBiZSByZW5kZXJlZFxuICByZWFkb25seSBlbmFibGVkOiBib29sZWFuO1xuICAvLyBQYXRoIGZvciB0aGUgY29uc3RydWN0IGV4YW1wbGVzXG4gIHJlYWRvbmx5IGZvbGRlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1FeGFtcGxlc09wdGlvbiB7XG4gIC8vIElmIHNldCB0ZXJyYWZvcm0gZXhhbXBsZXMgd2lsbCBiZSByZW5kZXJlZFxuICByZWFkb25seSBlbmFibGVkOiBib29sZWFuO1xuICAvLyBQYXRoIGZvciB0aGUgdGVycmFmb3JtIGV4YW1wbGVzXG4gIHJlYWRvbmx5IGZvbGRlcj86IHN0cmluZztcbiAgLy8gVGhlIEhDTCBjb25maWcgZmlsZSB0byB1c2UgZm9yIHRoZSB0ZXJyYWZvcm0gcHJvdmlkZXJcbiAgcmVhZG9ubHkgcHJvdmlkZXJDb25maWc/OiBzdHJpbmc7XG4gIC8vIEhDTCBleGFtcGxlIGNvbmZpZ1xuICByZWFkb25seSBleGFtcGxlQ29kZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIeWJyaWRNb2R1bGVPcHRpb25zIGV4dGVuZHMgQ29uc3RydWN0TGlicmFyeU9wdGlvbnMge1xuICAvKipcbiAgICogTWluaW11bSB0YXJnZXQgdmVyc2lvbiBvZiB0aGlzIGxpYnJhcnkuXG4gICAqIEBkZWZhdWx0IFwiMC4yMC4wXCJcbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSBjZGt0ZlZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCB2ZXJzaW9uIHRvIHVzZVxuICAgKiBAZGVmYXVsdCBcIl4xMC4wLjEwN1wiXG4gICAqL1xuICByZWFkb25seSBjb25zdHJ1Y3RWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSB0ZXJyYWZvcm0gZXhhbXBsZXMgZm9sZGVyIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSB0ZXJyYWZvcm1FeGFtcGxlcz86IFRlcnJhZm9ybUV4YW1wbGVzT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSBjb25zdHJ1Y3QgZXhhbXBsZXMgZm9sZGVyIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSBjb25zdHJ1Y3RFeGFtcGxlcz86IENvbnN0cnVjdEV4YW1wbGVzT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSB0ZXJyYWZvcm0gZXhhbXBsZXMgZm9sZGVyIHdpbGwgYmUgY3JlYXRlZFxuICAgKkRlZmF1bHRzIHRvIGEgdXVpZCBzdHJpbmcgYXMgY2RrdGYgd291bGRcbiAgICogTW9zdGx5IHVzZWQgZm9yIHRlc3RpbmcgdG8gaGF2ZSBhIHByZWRpY3RhYmxlIHJlc3VsdFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSB0ZXJyYWZvcm0gcGxhbiBpcyBiZWluZyBydW4gYXMgcGFydCBvZiB0aGUgdGVzdHNcbiAgICovXG4gIHJlYWRvbmx5IHJ1blBsYW4/OiBib29sZWFuO1xufVxuXG5jb25zdCBjb25zdHJ1Y3RTcmNDb2RlID0gYFxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBNeUNvbnN0cnVjdE9wdGlvbnMge1xuICByZWFkb25seSBwcm9wZXJ0eUE6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE15Q29uc3RydWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHVibGljIGNvbmZpZzogTXlDb25zdHJ1Y3RPcHRpb25zKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxufVxuYDtcblxuY29uc3QgY29uc3RydWN0VGVzdENvZGUgPSBgXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgXCJjZGt0Zi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5pbXBvcnQgeyBNeUNvbnN0cnVjdCB9IGZyb20gXCIuLi9cIjtcblxuLy8gVG8gbGVhcm4gbW9yZSBhYm91dCB0ZXN0aW5nIHNlZSBjZGsudGYvdGVzdGluZ1xuZGVzY3JpYmUoXCJNeUNvbnN0cnVjdFwiLCAoKSA9PiB7XG4gIGl0KFwic2hvdWxkIHN5bnRoZXNpemVcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIFRlc3Rpbmcuc3ludGhTY29wZSgoc2NvcGUpID0+IHtcbiAgICAgICAgbmV3IE15Q29uc3RydWN0KHNjb3BlLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICAgICAgcHJvcGVydHlBOiBcInZhbHVlQVwiLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSk7XG59KTtcbmA7XG5cbmNvbnN0IG1vZHVsZVNyY0NvZGUgPSBgXG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBURk1vZHVsZVN0YWNrIH0gZnJvbSBcIkBjZGt0Zi90Zi1tb2R1bGUtc3RhY2tcIjtcbmltcG9ydCB7IE15Q29uc3RydWN0IH0gZnJvbSBcIi4vaW5kZXhcIjtcblxuY2xhc3MgTXlBd2Vzb21lTW9kdWxlIGV4dGVuZHMgVEZNb2R1bGVTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IE15Q29uc3RydWN0KHRoaXMsIFwibXktY29uc3RydWN0XCIsIHtcbiAgICAgIHByb3BlcnR5QTogXCJ2YWx1ZUFcIixcbiAgICB9KTtcbiAgfVxufVxuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG4vLyBUaGlzIGlzIHRoZSBuYW1lIHRoZSBtb2R1bGUgY2FuIGJlIGZvdW5kIHVuZGVyLiBcbi8vIFdlIGV4cGVjdCBhIFwibXktYXdlc29tZS1tb2R1bGUubWRcIiBmaWxlIGluIHRoaXMgZGlyZWN0b3J5LlxuLy8gVGhlIFJFQURNRS5tZCBmaWxlIHdpbGwgYmUgZ2VuZXJhdGVkIGZyb20gdGhpcyBmaWxlLlxubmV3IE15QXdlc29tZU1vZHVsZShhcHAsIFwibXktYXdlc29tZS1tb2R1bGVcIik7XG5hcHAuc3ludGgoKTtcbmA7XG5cbmNvbnN0IHRlcnJhZm9ybVJlYWRtZURvY3MgPSBgXG4jIFBsZWFzZSBhZGQgaGVyZSBzb21lIHB1cmUgSENMIHRlc3RzIGZvciB5b3VyIG1vZHVsZXMgaW4gb3JkZXIgdG8gdGVzdCBIQ0wgSW50ZXJvcGVyYWJpbGl0eVxuXG5FeGFtcGxlczpcblxubW9kdWxlIFwibXlfYXdlc29tZV90ZXN0XCIge1xuICBzb3VyY2UgPSBcIi4uL21vZHVsZXMvbXktYXdlc29tZS1tb2R1bGVzXCJcbiAgLi4udmFyaWFibGVzLi4uXG59XG4gICAgYDtcblxuY2xhc3MgU2NyaXB0RmlsZSBleHRlbmRzIEZpbGVCYXNlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgZmlsZVBhdGg6IHN0cmluZywgcHJpdmF0ZSBjb250ZW50OiBzdHJpbmcpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBmaWxlUGF0aCwge1xuICAgICAgZXhlY3V0YWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChfOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnQ7XG4gIH1cbn1cblxuY2xhc3MgSENMRmlsZSBleHRlbmRzIEZpbGVCYXNlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgZmlsZVBhdGg6IHN0cmluZywgcHJpdmF0ZSBjb250ZW50OiBzdHJpbmcpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBmaWxlUGF0aCwge1xuICAgICAgZXhlY3V0YWJsZTogZmFsc2UsXG4gICAgICBjb21taXR0ZWQ6IHRydWUsXG4gICAgICByZWFkb25seTogZmFsc2UsIC8vIHRlcnJhZm9ybSBmbXQgbWlnaHQgd2FudCB0byBvdmVyd3JpdGUgaXRcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChfOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBgIyBUaGlzIGZpbGUgaXMgbWFuYWdlZCBieSBwcm9qZW4uIERvIG5vdCBlZGl0LCBjaGFuZ2UgdGhlIC5wcm9qZW5yYyBmaWxlIGluc3RlYWQuXG4ke3RoaXMuY29udGVudH1gO1xuICB9XG59XG5cbi8qKlxuICogSHlicmlkIENES1RGIENvbnN0cnVjdCAvIFRlcnJhZm9ybSBNb2R1bGVcbiAqXG4gKiBAcGppZCBoeWJyaWQtbW9kdWxlXG4gKi9cbmV4cG9ydCBjbGFzcyBIeWJyaWRNb2R1bGUgZXh0ZW5kcyBKc2lpUHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEh5YnJpZE1vZHVsZU9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBlc2xpbnRPcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zLmVzbGludE9wdGlvbnMsIHtcbiAgICAgICAgbGludFByb2plblJjOiBmYWxzZSxcbiAgICAgIH0pLFxuICAgICAgcG9zdEJ1aWxkU3RlcHM6IFtdLFxuICAgICAganNpaVZlcnNpb246IFwifjUuNS4wXCIsXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbjogXCJ+NS41LjBcIiwgLy8gc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZSBtYWpvci9taW5vciBhcyBKU0lJXG4gICAgfSk7XG4gICAgY29uc3QgY29uc3RydWN0VmVyc2lvbiA9IG9wdGlvbnMuY29uc3RydWN0VmVyc2lvbiB8fCBcIjEwLjQuMlwiO1xuICAgIGNvbnN0IGNka3RmVmVyc2lvbiA9IG9wdGlvbnMuY2RrdGZWZXJzaW9uIHx8IFwiMC4yMC4wXCI7XG5cbiAgICBjb25zb2xlLmxvZyh7IGNka3RmVmVyc2lvbiwgY29uc3RydWN0VmVyc2lvbiB9KTtcbiAgICB0aGlzLmFkZFBlZXJEZXBzKFxuICAgICAgYGNvbnN0cnVjdHNAPj0ke2NvbnN0cnVjdFZlcnNpb259YCxcbiAgICAgIGBjZGt0ZkA+PSR7Y2RrdGZWZXJzaW9ufWBcbiAgICApO1xuICAgIHRoaXMuYWRkRGV2RGVwcyhcbiAgICAgIGBjZGt0ZkB+JHtjZGt0ZlZlcnNpb259YCxcbiAgICAgIGBjZGt0Zi1jbGlAfiR7Y2RrdGZWZXJzaW9ufWAsXG4gICAgICBcInRzLW5vZGVAPj0xMC45LjFcIixcbiAgICAgIFwianNpaS1kb2NnZW5AXjEwLjAuMFwiXG4gICAgKTtcbiAgICB0aGlzLmFkZEtleXdvcmRzKFwiY2RrXCIsIFwiY2RrdGZcIiwgXCJjZGt0Zi1oeWJyaWRcIiwgXCJ0ZXJyYWZvcm1cIik7XG4gICAgdGhpcy5zZXRTY3JpcHQoXCJ0ZXJyYWZvcm06dGVzdFwiLCBcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiKTtcblxuICAgIC8vIE1vZHVsZSBFbnRyeXBvaW50XG4gICAgdGhpcy5hZGREZXBzKFwiQGNka3RmL3RmLW1vZHVsZS1zdGFja0A+PTUuMC4wXCIpO1xuICAgIGNvbnN0IG1vZHVsZURvY3MgPSBgXG4jIE15IEF3ZXNvbWUgTW9kdWxlXG5cbiMjIFVzYWdlXG5cblxcYFxcYFxcYGhjbFxubW9kdWxlIFwiZWtzX21hbmFnZWRfbm9kZV9ncm91cFwiIHtcbiAgc291cmNlID0gXCIke1xuICAgIG9wdGlvbnMucmVwb3NpdG9yeVVybFxuICAgICAgPy5yZXBsYWNlKFwiaHR0cHM6Ly9naXRodWIuY29tL1wiLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoXCJodHRwOi8vZ2l0aHViLmNvbS9cIiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFwiZ2l0aHViLmNvbS9cIiwgXCJcIikgfHwgXCJteS1naXRodWItcmVwb1wiXG4gIH0vL21vZHVsZXMvbXktYXdlc29tZS1tb2R1bGVcIlxuXG59XG5cXGBcXGBcXGBcbiAgICBgO1xuXG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCB0aGlzLnNyY2Rpciwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgXCJpbmRleC50c1wiOiBjb25zdHJ1Y3RTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJ0Zk1vZHVsZXMudHNcIjogbW9kdWxlU3JjQ29kZS50cmltKCksXG4gICAgICAgIFwibXktYXdlc29tZS1tb2R1bGUubWRcIjogbW9kdWxlRG9jcy50cmltKCksXG4gICAgICAgIFwiY2RrdGYuanNvblwiOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgICAgICBhcHA6IFwibnB4IHRzLW5vZGUgdGZNb2R1bGVzLnRzXCIsXG4gICAgICAgICAgICB0ZXJyYWZvcm1Qcm92aWRlcnM6IFtcImhhc2hpY29ycC9udWxsQDMuMS4xXCJdLCAvLyBXZSBuZWVkIGF0IGxlYXN0IGEgcHJvdmlkZXIgZm9yIGdldCB0byBzdWNjZWVkXG4gICAgICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXSxcbiAgICAgICAgICAgIG91dHB1dDogXCJtb2R1bGVzXCIsXG4gICAgICAgICAgICBwcm9qZWN0SWQ6XG4gICAgICAgICAgICAgIG9wdGlvbnMucHJvamVjdElkIHx8XG4gICAgICAgICAgICAgIFwiaHlicmlkLW1vZHVsZS1mYjczNGRiYS1lYWM5LTQ2NmMtOTZiYi03ZWI5YzQwNmMyOGFcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgMlxuICAgICAgICApLFxuICAgICAgICBcIl9fdGVzdHNfXy9pbmRleC10ZXN0LnRzXCI6IGNvbnN0cnVjdFRlc3RDb2RlLnRyaW0oKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcyAmJiBvcHRpb25zLnRlcnJhZm9ybUV4YW1wbGVzLmVuYWJsZWQpIHtcbiAgICAgIGNvbnN0IHByb3ZpZGVyQ29uZmlnID1cbiAgICAgICAgb3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcy5wcm92aWRlckNvbmZpZyB8fFxuICAgICAgICBgXG50ZXJyYWZvcm0ge1xuICAjIFRlcnJhZm9ybSBiaW5hcnkgdmVyc2lvbiBjb25zdHJhaW50XG4gIHJlcXVpcmVkX3ZlcnNpb24gPSBcIj49IDEuMi4wXCJcblxuICAjIERlZmluZSBhbGwgbmVlZGVkIHByb3ZpZGVycyBoZXJlLCB5b3UgY2FuIGZpbmQgYWxsIGF2YWlsYWJsZSBwcm92aWRlcnMgaGVyZTpcbiAgIyBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9cbiAgcmVxdWlyZWRfcHJvdmlkZXJzIHt9XG59XG5cbiMgSW5pdGlhbGl6ZSB5b3VyIHByb3ZpZGVyIGhlcmVcblxuYC50cmltKCk7XG4gICAgICBjb25zdCBleGFtcGxlc0ZvbGRlciA9XG4gICAgICAgIG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMuZm9sZGVyIHx8IFwidGVycmFmb3JtLWV4YW1wbGVzXCI7XG5cbiAgICAgIG5ldyBTYW1wbGVEaXIodGhpcywgZXhhbXBsZXNGb2xkZXIsIHtcbiAgICAgICAgZmlsZXM6IHtcbiAgICAgICAgICBcIm1haW4udGZcIjpcbiAgICAgICAgICAgIG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMuZXhhbXBsZUNvZGUgfHxcbiAgICAgICAgICAgIGAjIENvbmZpZ3VyZSB5b3UgbW9kdWxlIGhlcmVgLFxuICAgICAgICAgIFwiUkVBRE1FLm1kXCI6IHRlcnJhZm9ybVJlYWRtZURvY3MudHJpbSgpLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIG5ldyBIQ0xGaWxlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBwYXRoLmpvaW4oZXhhbXBsZXNGb2xkZXIsIFwicHJvdmlkZXIudGZcIiksXG4gICAgICAgIHByb3ZpZGVyQ29uZmlnXG4gICAgICApO1xuXG4gICAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhcbiAgICAgICAgYCR7ZXhhbXBsZXNGb2xkZXJ9Ly50ZXJyYWZvcm1gLFxuICAgICAgICBgJHtleGFtcGxlc0ZvbGRlcn0vLnRlcnJhZm9ybS5sb2NrLmhjbGBcbiAgICAgICk7XG5cbiAgICAgIG5ldyBTY3JpcHRGaWxlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiLFxuICAgICAgICBgIyEvYmluL2Jhc2hcbiMgVGhpcyBzY3JpcHQgaXMgY3JlYXRlZCBieSBwcm9qZW4sIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5Llxuc2V0IC1lXG5cbnRlcnJhZm9ybSAtY2hkaXI9JHtleGFtcGxlc0ZvbGRlcn0gaW5pdCAtLXVwZ3JhZGVcbnRlcnJhZm9ybSAtY2hkaXI9JHtleGFtcGxlc0ZvbGRlcn0gZm10XG50ZXJyYWZvcm0gLWNoZGlyPSR7ZXhhbXBsZXNGb2xkZXJ9IHZhbGlkYXRlXG4ke29wdGlvbnMucnVuUGxhbiA/IGB0ZXJyYWZvcm0gLWNoZGlyPSR7ZXhhbXBsZXNGb2xkZXJ9IHBsYW5gIDogXCJcIn1cbiAgICAgICAgICBgXG4gICAgICApO1xuXG4gICAgICB0aGlzLnRlc3RUYXNrLmV4ZWMoXCIuL3NjcmlwdHMvdGYtbW9kdWxlLXRlc3Quc2hcIik7XG4gICAgICB0aGlzLmplc3Q/LmFkZElnbm9yZVBhdHRlcm4oYDxyb290RGlyPi8ke2V4YW1wbGVzRm9sZGVyfWApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmNvbnN0cnVjdEV4YW1wbGVzICYmIG9wdGlvbnMuY29uc3RydWN0RXhhbXBsZXMuZW5hYmxlZCkge1xuICAgICAgY29uc3QgY29uc3RydWN0RXhhbXBsZUZvbGRlciA9XG4gICAgICAgIG9wdGlvbnMuY29uc3RydWN0RXhhbXBsZXMuZm9sZGVyIHx8IFwiY29uc3RydWN0LWV4YW1wbGVzXCI7XG5cbiAgICAgIGNvbnN0IGxldmVscyA9IGNvbnN0cnVjdEV4YW1wbGVGb2xkZXJcbiAgICAgICAgLnNwbGl0KFwiL1wiKVxuICAgICAgICAuc3BsaWNlKDAsIDEpXG4gICAgICAgIC5tYXAoKCkgPT4gXCIuLlwiKVxuICAgICAgICAuam9pbihcIi9cIik7XG5cbiAgICAgIGNvbnN0IGNvbnN0cnVjdFJlYWRtZURvY3MgPSBgXG4jIENvbnN0cnVjdCBFeGFtcGxlc1xuXG5FeGFtcGxlIHVzZS1jYXNlcyBmb3IgdGhlIENvbnN0cnVjdCBsaWJyYXJ5LlxuXG4tIFtCYXNpYyBVc2FnZV0oLi9iYXNpYy50cylcblxuVG8gZW5zdXJlIGFsbCBleGFtcGxlcyBhcmUgd29ya2luZywgcGxlYXNlIG1ha2Ugc3VyZSB0aGUgW2luZGV4LnRzXSguL2luZGV4LnRzKSBmaWxlIGlzIGltcG9ydGluZyBhbGwgb2YgdGhlbS5cbmA7XG5cbiAgICAgIGNvbnN0IGNvbnN0cnVjdEV4YW1wbGVDb2RlID0gYFxuaW1wb3J0IHsgVGVycmFmb3JtU3RhY2sgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7IE15Q29uc3RydWN0IH0gZnJvbSBcIiR7bGV2ZWxzfS9zcmMvXCI7XG5cbmV4cG9ydCBjbGFzcyBCYXNpY0V4YW1wbGUgZXh0ZW5kcyBUZXJyYWZvcm1TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBuYW1lKTtcblxuICAgIG5ldyBNeUNvbnN0cnVjdCh0aGlzLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgfSk7XG4gIH1cbn1cblxuXG5gO1xuXG4gICAgICBjb25zdCBleGFtcGxlQ29sbGVjdGlvbkNvZGUgPSBgXG4vLyBUaGlzIGZpbGUgd2lsbCBiZSBzeW50aGVzaXplZCB0byBjaGVjayBpZiBhbGwgZXhhbXBsZXMgYXJlIHdvcmtpbmdcblxuaW1wb3J0IHsgQXBwIH0gZnJvbSBcImNka3RmXCI7XG4vLyBBbGwgZXhhbXBsZXMgbmVlZCB0byBiZSBpbXBvcnRlZCBoZXJlXG5pbXBvcnQgeyBCYXNpY0V4YW1wbGUgfSBmcm9tIFwiLi9iYXNpY1wiO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbi8vIEFsbCBleGFtcGxlcyBuZWVkIHRvIGJlIGluaXRpYWxpemVkIGhlcmVcbm5ldyBCYXNpY0V4YW1wbGUoYXBwLCBcImJhc2ljLWV4YW1wbGVcIik7XG5hcHAuc3ludGgoKTtcbmA7XG5cbiAgICAgIG5ldyBTYW1wbGVEaXIodGhpcywgY29uc3RydWN0RXhhbXBsZUZvbGRlciwge1xuICAgICAgICBmaWxlczoge1xuICAgICAgICAgIFwiaW5kZXgudHNcIjogZXhhbXBsZUNvbGxlY3Rpb25Db2RlLnRyaW0oKSxcbiAgICAgICAgICBcImJhc2ljLnRzXCI6IGNvbnN0cnVjdEV4YW1wbGVDb2RlLnRyaW0oKSxcbiAgICAgICAgICBcImNka3RmLmpzb25cIjogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBcInR5cGVzY3JpcHRcIixcbiAgICAgICAgICAgICAgYXBwOiBgbnB4IHRzLW5vZGUgLS1wcm9qZWN0ICR7bGV2ZWxzfS90c2NvbmZpZy5kZXYuanNvbiBpbmRleC50c2AsXG4gICAgICAgICAgICAgIHByb2plY3RJZDpcbiAgICAgICAgICAgICAgICBvcHRpb25zLnByb2plY3RJZCB8fFxuICAgICAgICAgICAgICAgIFwiaHlicmlkLW1vZHVsZS1mYjczNGRiYS1lYWM5LTQ2NmMtOTZiYi03ZWI5YzQwNmMyOGFcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgMlxuICAgICAgICAgICksXG4gICAgICAgICAgXCJSRUFETUUubWRcIjogY29uc3RydWN0UmVhZG1lRG9jcy50cmltKCksXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgdGhpcy50ZXN0VGFzay5leGVjKGBjZGt0ZiBzeW50aGAsIHtcbiAgICAgICAgY3dkOiBjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhgJHtjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyfS9jZGt0Zi5vdXRgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZXR1cFRlcnJhZm9ybVN0ZXAgPSB7XG4gICAgICBuYW1lOiBcIlNldHVwIFRlcnJhZm9ybVwiLFxuICAgICAgdXNlczogXCJoYXNoaWNvcnAvc2V0dXAtdGVycmFmb3JtXCIsXG4gICAgICB3aXRoOiB7XG4gICAgICAgIHRlcnJhZm9ybV93cmFwcGVyOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBidWlsZFN0ZXBzID0gKHRoaXMuYnVpbGRXb3JrZmxvdyBhcyBhbnkpLnByZUJ1aWxkU3RlcHMgYXMgSm9iU3RlcFtdO1xuICAgIGNvbnN0IHJlbGVhc2VTdGVwcyA9ICh0aGlzLnJlbGVhc2UgYXMgYW55KS5kZWZhdWx0QnJhbmNoLndvcmtmbG93LmpvYnNcbiAgICAgIC5yZWxlYXNlLnN0ZXBzO1xuICAgIGJ1aWxkU3RlcHMucHVzaChzZXR1cFRlcnJhZm9ybVN0ZXApO1xuICAgIHJlbGVhc2VTdGVwcy5zcGxpY2UoMSwgMCwgc2V0dXBUZXJyYWZvcm1TdGVwKTtcblxuICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKFwic3JjLy5nZW5cIiwgXCJzcmMvY2RrdGYub3V0XCIsIFwic3JjL21vZHVsZXNcIik7XG4gICAgdGhpcy5jb21waWxlVGFzay5wcmVwZW5kRXhlYyhcIm5weCBjZGt0ZiBnZXRcIiwge1xuICAgICAgY3dkOiB0aGlzLnNyY2RpcixcbiAgICB9KTtcbiAgICB0aGlzLmNvbXBpbGVUYXNrLmV4ZWMoXCJjZGt0ZiBzeW50aFwiLCB7XG4gICAgICBjd2Q6IHRoaXMuc3JjZGlyLFxuICAgICAgbmFtZTogXCJTeW50aGVzaXplIG1vZHVsZSBIQ0xcIixcbiAgICB9KTtcblxuICAgIG5ldyBTY3JpcHRGaWxlKFxuICAgICAgdGhpcyxcbiAgICAgIFwic2NyaXB0cy9jb3B5LW1vZHVsZXMuc2hcIixcbiAgICAgIGBcbiMhL2Jpbi9iYXNoXG4jIFRoaXMgc2NyaXB0IGlzIGNyZWF0ZWQgYnkgcHJvamVuLCBkbyBub3QgZWRpdCBpdCBkaXJlY3RseS5cbnNldCAtZVxuXG5TQ1JJUFRQQVRIPVwiJCggY2QgLS0gXCIkKGRpcm5hbWUgXCIkMFwiKVwiID4vZGV2L251bGwgMj4mMSA7IHB3ZCAtUCApXCJcblxuIyBjaGVjayBpZiB0aGUgbW9kdWxlIGZvbGRlciBoYXMgYmVlbiBnZW5lcmF0ZWQgYXMgZXhwZWN0ZWRcbk1PRFVMRVNfRk9MREVSPSQoIGNkIC0tIFwiJFNDUklQVFBBVEgvLi4vc3JjL21vZHVsZXMvc3RhY2tzXCIgPi9kZXYvbnVsbCAyPiYxIDsgcHdkIC1QIClcblNSQ19GT0xERVI9JCggY2QgLS0gXCIkU0NSSVBUUEFUSC8uLi9zcmMvXCIgPi9kZXYvbnVsbCAyPiYxIDsgcHdkIC1QIClcblRBUkdFVF9GT0xERVI9XCIkU0NSSVBUUEFUSC8uLi9tb2R1bGVzXCJcblxuaWYgWyAhIC1kIFwiJE1PRFVMRVNfRk9MREVSXCIgXTsgdGhlblxuICBlY2hvIFwiRXhwZWN0ZWQgbW9kdWxlIGZvbGRlciB0byBleGlzdCBhdCAkTU9EVUxFU19GT0xERVJcIlxuICBleGl0IDFcbmZpXG5cbmNkIFwiJE1PRFVMRVNfRk9MREVSXCJcbmZvciBkIGluICovIDsgZG9cbiAgICBbIC1MIFwiXFwke2QlL31cIiBdICYmIGNvbnRpbnVlXG5cbiAgICBkaXJuYW1lPVwiXFwke2QlL31cIlxuXG5cbiAgICAjIENoZWNrIGlmIGV2ZXJ5dGhpbmcgaXMgaW4gcGxhY2VcbiAgICBpZiBbICEgLWYgXCIkTU9EVUxFU19GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIiBdOyB0aGVuXG4gICAgICBlY2hvIFwiRXhwZWN0ZWQgY29kZSBmb3IgJGRpcm5hbWUgYXQgY2RrLnRmLmpzb24gdG8gZXhpc3QgYXQgJE1PRFVMRVNfRk9MREVSLyRkaXJuYW1lXCJcbiAgICAgIGV4aXQgMVxuICAgIGZpXG5cbiAgICBpZiBbICEgLWYgXCIkU1JDX0ZPTERFUi8kZGlybmFtZS5tZFwiIF07IHRoZW5cbiAgICAgIGVjaG8gXCJFeHBlY3RlZCBEb2N1bWVudGF0aW9uIGZvciAkZGlybmFtZSBhdCAkZGlybmFtZS5tZCB0byBleGlzdCBhdCAkU1JDX0ZPTERFUi8kZGlybmFtZS5tZFwiXG4gICAgICBleGl0IDFcbiAgICBmaVxuXG4gICAgIyBDb3B5IG1vZHVsZSBhbmQgcmVhZG1lIHRvZ2V0aGVyXG4gICAgZWNobyBcIkNvcHlpbmcgQ29kZSBhbmQgUkVBRE1FIGZvciBtb2R1bGUgJGRpcm5hbWVcIlxuICAgIG1rZGlyIC1wIFwiJFRBUkdFVF9GT0xERVJcIlxuICAgIG1rZGlyIC1wIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWVcIlxuICAgIGNwIFwiJE1PRFVMRVNfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCIgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiXG4gICAgY3AgXCIkU1JDX0ZPTERFUi8kZGlybmFtZS5tZFwiIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWUvUkVBRE1FLm1kXCJcblxuICAgICMgQWRkIFJFQURNRSBoY2wgZG9jc1xuICAgIGlmIHdoaWNoIHRlcnJhZm9ybS1kb2NzID4vZGV2L251bGw7IHRoZW5cbiAgICAgIHRlcnJhZm9ybS1kb2NzIG1hcmtkb3duIHRhYmxlIC0tb3V0cHV0LWZpbGUgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZS9SRUFETUUubWRcIiBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lXCIgXG4gICAgZWxzZVxuICAgICAgZG9ja2VyIHJ1biAtLXJtIC0tdm9sdW1lIFwiJFNDUklQVFBBVEgvLi4vbW9kdWxlczovdGVycmFmb3JtLWRvY3NcIiAtdSAkKGlkIC11KSBxdWF5LmlvL3RlcnJhZm9ybS1kb2NzL3RlcnJhZm9ybS1kb2NzOjAuMTYuMCBtYXJrZG93biB0YWJsZSAtLW91dHB1dC1maWxlIFwiL3RlcnJhZm9ybS1kb2NzLyRkaXJuYW1lL1JFQURNRS5tZFwiIC90ZXJyYWZvcm0tZG9jcy8kZGlybmFtZVxuICAgIGZpXG5kb25lXG5gLnRyaW0oKVxuICAgICk7XG4gICAgdGhpcy5jb21waWxlVGFzay5leGVjKFwiLi9zY3JpcHRzL2NvcHktbW9kdWxlcy5zaFwiLCB7XG4gICAgICBuYW1lOiBcIkNvcHkgSENMIE1vZHVsZXNcIixcbiAgICB9KTtcblxuICAgIC8vIGlnbm9yZSBkaXN0IGluIHRlc3RzXG4gICAgdGhpcy5qZXN0Py5hZGRJZ25vcmVQYXR0ZXJuKFwiZGlzdFwiKTtcbiAgfVxufVxuIl19
342
+ HybridModule[_a] = { fqn: "projen-cdktf-hybrid-construct.HybridModule", version: "0.9.4" };
343
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlicmlkLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oeWJyaWQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztHQUdHO0FBRUgsNkJBQTZCO0FBQzdCLG1DQUFpRTtBQUNqRSx3Q0FBc0U7QUFFdEUseUNBQXNDO0FBNkR0QyxNQUFNLGdCQUFnQixHQUFHOzs7Ozs7Ozs7Ozs7Q0FZeEIsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJ6QixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQnJCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHOzs7Ozs7Ozs7S0FTdkIsQ0FBQztBQUVOLE1BQU0sVUFBVyxTQUFRLGlCQUFRO0lBQy9CLFlBQVksT0FBZ0IsRUFBRSxRQUFnQixFQUFVLE9BQWU7UUFDckUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDdkIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBSG1ELFlBQU8sR0FBUCxPQUFPLENBQVE7SUFJdkUsQ0FBQztJQUVTLGlCQUFpQixDQUFDLENBQVk7UUFDdEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBUSxTQUFRLGlCQUFRO0lBQzVCLFlBQVksT0FBZ0IsRUFBRSxRQUFnQixFQUFVLE9BQWU7UUFDckUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDdkIsVUFBVSxFQUFFLEtBQUs7WUFDakIsU0FBUyxFQUFFLElBQUk7WUFDZixRQUFRLEVBQUUsS0FBSyxFQUFFLDJDQUEyQztTQUM3RCxDQUFDLENBQUM7UUFMbUQsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQU12RSxDQUFDO0lBRVMsaUJBQWlCLENBQUMsQ0FBWTtRQUN0QyxPQUFPO0VBQ1QsSUFBSSxDQUFDLE9BQU8sRUFB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QUFlLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJO2FBQ25FLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDakIsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFO1lBQzVDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNqQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbkMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ2hCLElBQUksRUFBRSx1QkFBdUI7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLENBQ1osSUFBSSxFQUNKLHlCQUF5QixFQUN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWlETCxDQUFDLElBQUksRUFBRSxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNqRCxJQUFJLEVBQUUsa0JBQWtCO1NBQ3pCLENBQUMsQ0FBQztRQUVILHVCQUF1QjtRQUN2QixJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O0FBbFNILG9DQW1TQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgRmlsZUJhc2UsIElSZXNvbHZlciwgUHJvamVjdCwgU2FtcGxlRGlyIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgSnNpaVByb2plY3QsIENvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSBcInByb2plbi9saWIvY2RrXCI7XG5pbXBvcnQgeyBKb2JTdGVwIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgZGVmYXVsdHMgfSBmcm9tIFwiLi9kZWZhdWx0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdEV4YW1wbGVzT3B0aW9uIHtcbiAgLy8gSWYgc2V0IGNvbnN0cnVjdCBleGFtcGxlcyB3aWxsIGJlIHJlbmRlcmVkXG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW47XG4gIC8vIFBhdGggZm9yIHRoZSBjb25zdHJ1Y3QgZXhhbXBsZXNcbiAgcmVhZG9ubHkgZm9sZGVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybUV4YW1wbGVzT3B0aW9uIHtcbiAgLy8gSWYgc2V0IHRlcnJhZm9ybSBleGFtcGxlcyB3aWxsIGJlIHJlbmRlcmVkXG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW47XG4gIC8vIFBhdGggZm9yIHRoZSB0ZXJyYWZvcm0gZXhhbXBsZXNcbiAgcmVhZG9ubHkgZm9sZGVyPzogc3RyaW5nO1xuICAvLyBUaGUgSENMIGNvbmZpZyBmaWxlIHRvIHVzZSBmb3IgdGhlIHRlcnJhZm9ybSBwcm92aWRlclxuICByZWFkb25seSBwcm92aWRlckNvbmZpZz86IHN0cmluZztcbiAgLy8gSENMIGV4YW1wbGUgY29uZmlnXG4gIHJlYWRvbmx5IGV4YW1wbGVDb2RlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh5YnJpZE1vZHVsZU9wdGlvbnMgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIHRhcmdldCB2ZXJzaW9uIG9mIHRoaXMgbGlicmFyeS5cbiAgICogQGRlZmF1bHQgXCIwLjIwLjBcIlxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGNka3RmVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQ29uc3RydWN0IHZlcnNpb24gdG8gdXNlXG4gICAqIEBkZWZhdWx0IFwiXjEwLjMuMFwiXG4gICAqL1xuICByZWFkb25seSBjb25zdHJ1Y3RWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSB0ZXJyYWZvcm0gZXhhbXBsZXMgZm9sZGVyIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSB0ZXJyYWZvcm1FeGFtcGxlcz86IFRlcnJhZm9ybUV4YW1wbGVzT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSBjb25zdHJ1Y3QgZXhhbXBsZXMgZm9sZGVyIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSBjb25zdHJ1Y3RFeGFtcGxlcz86IENvbnN0cnVjdEV4YW1wbGVzT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSB0ZXJyYWZvcm0gZXhhbXBsZXMgZm9sZGVyIHdpbGwgYmUgY3JlYXRlZFxuICAgKkRlZmF1bHRzIHRvIGEgdXVpZCBzdHJpbmcgYXMgY2RrdGYgd291bGRcbiAgICogTW9zdGx5IHVzZWQgZm9yIHRlc3RpbmcgdG8gaGF2ZSBhIHByZWRpY3RhYmxlIHJlc3VsdFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSB0ZXJyYWZvcm0gcGxhbiBpcyBiZWluZyBydW4gYXMgcGFydCBvZiB0aGUgdGVzdHNcbiAgICovXG4gIHJlYWRvbmx5IHJ1blBsYW4/OiBib29sZWFuO1xufVxuXG5jb25zdCBjb25zdHJ1Y3RTcmNDb2RlID0gYFxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBNeUNvbnN0cnVjdE9wdGlvbnMge1xuICByZWFkb25seSBwcm9wZXJ0eUE6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE15Q29uc3RydWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHVibGljIGNvbmZpZzogTXlDb25zdHJ1Y3RPcHRpb25zKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxufVxuYDtcblxuY29uc3QgY29uc3RydWN0VGVzdENvZGUgPSBgXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgXCJjZGt0Zi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5pbXBvcnQgeyBNeUNvbnN0cnVjdCB9IGZyb20gXCIuLi9cIjtcblxuLy8gVG8gbGVhcm4gbW9yZSBhYm91dCB0ZXN0aW5nIHNlZSBjZGsudGYvdGVzdGluZ1xuZGVzY3JpYmUoXCJNeUNvbnN0cnVjdFwiLCAoKSA9PiB7XG4gIGl0KFwic2hvdWxkIHN5bnRoZXNpemVcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIFRlc3Rpbmcuc3ludGhTY29wZSgoc2NvcGUpID0+IHtcbiAgICAgICAgbmV3IE15Q29uc3RydWN0KHNjb3BlLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICAgICAgcHJvcGVydHlBOiBcInZhbHVlQVwiLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSk7XG59KTtcbmA7XG5cbmNvbnN0IG1vZHVsZVNyY0NvZGUgPSBgXG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBURk1vZHVsZVN0YWNrIH0gZnJvbSBcIkBjZGt0Zi90Zi1tb2R1bGUtc3RhY2tcIjtcbmltcG9ydCB7IE15Q29uc3RydWN0IH0gZnJvbSBcIi4vaW5kZXhcIjtcblxuY2xhc3MgTXlBd2Vzb21lTW9kdWxlIGV4dGVuZHMgVEZNb2R1bGVTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IE15Q29uc3RydWN0KHRoaXMsIFwibXktY29uc3RydWN0XCIsIHtcbiAgICAgIHByb3BlcnR5QTogXCJ2YWx1ZUFcIixcbiAgICB9KTtcbiAgfVxufVxuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG4vLyBUaGlzIGlzIHRoZSBuYW1lIHRoZSBtb2R1bGUgY2FuIGJlIGZvdW5kIHVuZGVyLiBcbi8vIFdlIGV4cGVjdCBhIFwibXktYXdlc29tZS1tb2R1bGUubWRcIiBmaWxlIGluIHRoaXMgZGlyZWN0b3J5LlxuLy8gVGhlIFJFQURNRS5tZCBmaWxlIHdpbGwgYmUgZ2VuZXJhdGVkIGZyb20gdGhpcyBmaWxlLlxubmV3IE15QXdlc29tZU1vZHVsZShhcHAsIFwibXktYXdlc29tZS1tb2R1bGVcIik7XG5hcHAuc3ludGgoKTtcbmA7XG5cbmNvbnN0IHRlcnJhZm9ybVJlYWRtZURvY3MgPSBgXG4jIFBsZWFzZSBhZGQgaGVyZSBzb21lIHB1cmUgSENMIHRlc3RzIGZvciB5b3VyIG1vZHVsZXMgaW4gb3JkZXIgdG8gdGVzdCBIQ0wgSW50ZXJvcGVyYWJpbGl0eVxuXG5FeGFtcGxlczpcblxubW9kdWxlIFwibXlfYXdlc29tZV90ZXN0XCIge1xuICBzb3VyY2UgPSBcIi4uL21vZHVsZXMvbXktYXdlc29tZS1tb2R1bGVzXCJcbiAgLi4udmFyaWFibGVzLi4uXG59XG4gICAgYDtcblxuY2xhc3MgU2NyaXB0RmlsZSBleHRlbmRzIEZpbGVCYXNlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgZmlsZVBhdGg6IHN0cmluZywgcHJpdmF0ZSBjb250ZW50OiBzdHJpbmcpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBmaWxlUGF0aCwge1xuICAgICAgZXhlY3V0YWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChfOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnQ7XG4gIH1cbn1cblxuY2xhc3MgSENMRmlsZSBleHRlbmRzIEZpbGVCYXNlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgZmlsZVBhdGg6IHN0cmluZywgcHJpdmF0ZSBjb250ZW50OiBzdHJpbmcpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBmaWxlUGF0aCwge1xuICAgICAgZXhlY3V0YWJsZTogZmFsc2UsXG4gICAgICBjb21taXR0ZWQ6IHRydWUsXG4gICAgICByZWFkb25seTogZmFsc2UsIC8vIHRlcnJhZm9ybSBmbXQgbWlnaHQgd2FudCB0byBvdmVyd3JpdGUgaXRcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChfOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBgIyBUaGlzIGZpbGUgaXMgbWFuYWdlZCBieSBwcm9qZW4uIERvIG5vdCBlZGl0LCBjaGFuZ2UgdGhlIC5wcm9qZW5yYyBmaWxlIGluc3RlYWQuXG4ke3RoaXMuY29udGVudH1gO1xuICB9XG59XG5cbi8qKlxuICogSHlicmlkIENES1RGIENvbnN0cnVjdCAvIFRlcnJhZm9ybSBNb2R1bGVcbiAqXG4gKiBAcGppZCBoeWJyaWQtbW9kdWxlXG4gKi9cbmV4cG9ydCBjbGFzcyBIeWJyaWRNb2R1bGUgZXh0ZW5kcyBKc2lpUHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEh5YnJpZE1vZHVsZU9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBlc2xpbnRPcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zLmVzbGludE9wdGlvbnMsIHtcbiAgICAgICAgbGludFByb2plblJjOiBmYWxzZSxcbiAgICAgIH0pLFxuICAgICAgcG9zdEJ1aWxkU3RlcHM6IFtdLFxuICAgICAganNpaVZlcnNpb246IFwifjUuNS4wXCIsXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbjogXCJ+NS41LjBcIiwgLy8gc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZSBtYWpvci9taW5vciBhcyBKU0lJXG4gICAgfSk7XG4gICAgY29uc3QgY29uc3RydWN0VmVyc2lvbiA9IG9wdGlvbnMuY29uc3RydWN0VmVyc2lvbiB8fCBcIjEwLjMuMFwiO1xuICAgIGNvbnN0IGNka3RmVmVyc2lvbiA9IG9wdGlvbnMuY2RrdGZWZXJzaW9uIHx8IFwiMC4yMC4wXCI7XG5cbiAgICBjb25zb2xlLmxvZyh7IGNka3RmVmVyc2lvbiwgY29uc3RydWN0VmVyc2lvbiB9KTtcbiAgICB0aGlzLmFkZFBlZXJEZXBzKFxuICAgICAgYGNvbnN0cnVjdHNAPj0ke2NvbnN0cnVjdFZlcnNpb259YCxcbiAgICAgIGBjZGt0ZkA+PSR7Y2RrdGZWZXJzaW9ufWBcbiAgICApO1xuICAgIHRoaXMuYWRkRGV2RGVwcyhcbiAgICAgIGBjZGt0ZkB+JHtjZGt0ZlZlcnNpb259YCxcbiAgICAgIGBjZGt0Zi1jbGlAfiR7Y2RrdGZWZXJzaW9ufWAsXG4gICAgICBgY29uc3RydWN0c0Ake2NvbnN0cnVjdFZlcnNpb259YCxcbiAgICAgIFwidHMtbm9kZUA+PTEwLjkuMVwiLFxuICAgICAgXCJqc2lpLWRvY2dlbkBeMTAuMC4wXCJcbiAgICApO1xuICAgIHRoaXMuYWRkS2V5d29yZHMoXCJjZGtcIiwgXCJjZGt0ZlwiLCBcImNka3RmLWh5YnJpZFwiLCBcInRlcnJhZm9ybVwiKTtcbiAgICB0aGlzLnNldFNjcmlwdChcInRlcnJhZm9ybTp0ZXN0XCIsIFwiLi9zY3JpcHRzL3RmLW1vZHVsZS10ZXN0LnNoXCIpO1xuXG4gICAgLy8gTW9kdWxlIEVudHJ5cG9pbnRcbiAgICB0aGlzLmFkZERlcHMoXCJAY2RrdGYvdGYtbW9kdWxlLXN0YWNrQD49NS4wLjBcIik7XG4gICAgY29uc3QgbW9kdWxlRG9jcyA9IGBcbiMgTXkgQXdlc29tZSBNb2R1bGVcblxuIyMgVXNhZ2VcblxuXFxgXFxgXFxgaGNsXG5tb2R1bGUgXCJla3NfbWFuYWdlZF9ub2RlX2dyb3VwXCIge1xuICBzb3VyY2UgPSBcIiR7XG4gICAgb3B0aW9ucy5yZXBvc2l0b3J5VXJsXG4gICAgICA/LnJlcGxhY2UoXCJodHRwczovL2dpdGh1Yi5jb20vXCIsIFwiXCIpXG4gICAgICAucmVwbGFjZShcImh0dHA6Ly9naXRodWIuY29tL1wiLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoXCJnaXRodWIuY29tL1wiLCBcIlwiKSB8fCBcIm15LWdpdGh1Yi1yZXBvXCJcbiAgfS8vbW9kdWxlcy9teS1hd2Vzb21lLW1vZHVsZVwiXG5cbn1cblxcYFxcYFxcYFxuICAgIGA7XG5cbiAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIHRoaXMuc3JjZGlyLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICBcImluZGV4LnRzXCI6IGNvbnN0cnVjdFNyY0NvZGUudHJpbSgpLFxuICAgICAgICBcInRmTW9kdWxlcy50c1wiOiBtb2R1bGVTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJteS1hd2Vzb21lLW1vZHVsZS5tZFwiOiBtb2R1bGVEb2NzLnRyaW0oKSxcbiAgICAgICAgXCJjZGt0Zi5qc29uXCI6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxhbmd1YWdlOiBcInR5cGVzY3JpcHRcIixcbiAgICAgICAgICAgIGFwcDogXCJucHggdHMtbm9kZSB0Zk1vZHVsZXMudHNcIixcbiAgICAgICAgICAgIHRlcnJhZm9ybVByb3ZpZGVyczogW1wiaGFzaGljb3JwL251bGxAMy4xLjFcIl0sIC8vIFdlIG5lZWQgYXQgbGVhc3QgYSBwcm92aWRlciBmb3IgZ2V0IHRvIHN1Y2NlZWRcbiAgICAgICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtdLFxuICAgICAgICAgICAgb3V0cHV0OiBcIm1vZHVsZXNcIixcbiAgICAgICAgICAgIHByb2plY3RJZDpcbiAgICAgICAgICAgICAgb3B0aW9ucy5wcm9qZWN0SWQgfHxcbiAgICAgICAgICAgICAgXCJoeWJyaWQtbW9kdWxlLWZiNzM0ZGJhLWVhYzktNDY2Yy05NmJiLTdlYjljNDA2YzI4YVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICAyXG4gICAgICAgICksXG4gICAgICAgIFwiX190ZXN0c19fL2luZGV4LXRlc3QudHNcIjogY29uc3RydWN0VGVzdENvZGUudHJpbSgpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zLnRlcnJhZm9ybUV4YW1wbGVzICYmIG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMuZW5hYmxlZCkge1xuICAgICAgY29uc3QgcHJvdmlkZXJDb25maWcgPVxuICAgICAgICBvcHRpb25zLnRlcnJhZm9ybUV4YW1wbGVzLnByb3ZpZGVyQ29uZmlnIHx8XG4gICAgICAgIGBcbnRlcnJhZm9ybSB7XG4gICMgVGVycmFmb3JtIGJpbmFyeSB2ZXJzaW9uIGNvbnN0cmFpbnRcbiAgcmVxdWlyZWRfdmVyc2lvbiA9IFwiPj0gMS4yLjBcIlxuXG4gICMgRGVmaW5lIGFsbCBuZWVkZWQgcHJvdmlkZXJzIGhlcmUsIHlvdSBjYW4gZmluZCBhbGwgYXZhaWxhYmxlIHByb3ZpZGVycyBoZXJlOlxuICAjIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL1xuICByZXF1aXJlZF9wcm92aWRlcnMge31cbn1cblxuIyBJbml0aWFsaXplIHlvdXIgcHJvdmlkZXIgaGVyZVxuXG5gLnRyaW0oKTtcbiAgICAgIGNvbnN0IGV4YW1wbGVzRm9sZGVyID1cbiAgICAgICAgb3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcy5mb2xkZXIgfHwgXCJ0ZXJyYWZvcm0tZXhhbXBsZXNcIjtcblxuICAgICAgbmV3IFNhbXBsZURpcih0aGlzLCBleGFtcGxlc0ZvbGRlciwge1xuICAgICAgICBmaWxlczoge1xuICAgICAgICAgIFwibWFpbi50ZlwiOlxuICAgICAgICAgICAgb3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcy5leGFtcGxlQ29kZSB8fFxuICAgICAgICAgICAgYCMgQ29uZmlndXJlIHlvdSBtb2R1bGUgaGVyZWAsXG4gICAgICAgICAgXCJSRUFETUUubWRcIjogdGVycmFmb3JtUmVhZG1lRG9jcy50cmltKCksXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgbmV3IEhDTEZpbGUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHBhdGguam9pbihleGFtcGxlc0ZvbGRlciwgXCJwcm92aWRlci50ZlwiKSxcbiAgICAgICAgcHJvdmlkZXJDb25maWdcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKFxuICAgICAgICBgJHtleGFtcGxlc0ZvbGRlcn0vLnRlcnJhZm9ybWAsXG4gICAgICAgIGAke2V4YW1wbGVzRm9sZGVyfS8udGVycmFmb3JtLmxvY2suaGNsYFxuICAgICAgKTtcblxuICAgICAgbmV3IFNjcmlwdEZpbGUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiLi9zY3JpcHRzL3RmLW1vZHVsZS10ZXN0LnNoXCIsXG4gICAgICAgIGAjIS9iaW4vYmFzaFxuIyBUaGlzIHNjcmlwdCBpcyBjcmVhdGVkIGJ5IHByb2plbiwgZG8gbm90IGVkaXQgaXQgZGlyZWN0bHkuXG5zZXQgLWVcblxudGVycmFmb3JtIC1jaGRpcj0ke2V4YW1wbGVzRm9sZGVyfSBpbml0IC0tdXBncmFkZVxudGVycmFmb3JtIC1jaGRpcj0ke2V4YW1wbGVzRm9sZGVyfSBmbXRcbnRlcnJhZm9ybSAtY2hkaXI9JHtleGFtcGxlc0ZvbGRlcn0gdmFsaWRhdGVcbiR7b3B0aW9ucy5ydW5QbGFuID8gYHRlcnJhZm9ybSAtY2hkaXI9JHtleGFtcGxlc0ZvbGRlcn0gcGxhbmAgOiBcIlwifVxuICAgICAgICAgIGBcbiAgICAgICk7XG5cbiAgICAgIHRoaXMudGVzdFRhc2suZXhlYyhcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiKTtcbiAgICAgIHRoaXMuamVzdD8uYWRkSWdub3JlUGF0dGVybihgPHJvb3REaXI+LyR7ZXhhbXBsZXNGb2xkZXJ9YCk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuY29uc3RydWN0RXhhbXBsZXMgJiYgb3B0aW9ucy5jb25zdHJ1Y3RFeGFtcGxlcy5lbmFibGVkKSB7XG4gICAgICBjb25zdCBjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyID1cbiAgICAgICAgb3B0aW9ucy5jb25zdHJ1Y3RFeGFtcGxlcy5mb2xkZXIgfHwgXCJjb25zdHJ1Y3QtZXhhbXBsZXNcIjtcblxuICAgICAgY29uc3QgbGV2ZWxzID0gY29uc3RydWN0RXhhbXBsZUZvbGRlclxuICAgICAgICAuc3BsaXQoXCIvXCIpXG4gICAgICAgIC5zcGxpY2UoMCwgMSlcbiAgICAgICAgLm1hcCgoKSA9PiBcIi4uXCIpXG4gICAgICAgIC5qb2luKFwiL1wiKTtcblxuICAgICAgY29uc3QgY29uc3RydWN0UmVhZG1lRG9jcyA9IGBcbiMgQ29uc3RydWN0IEV4YW1wbGVzXG5cbkV4YW1wbGUgdXNlLWNhc2VzIGZvciB0aGUgQ29uc3RydWN0IGxpYnJhcnkuXG5cbi0gW0Jhc2ljIFVzYWdlXSguL2Jhc2ljLnRzKVxuXG5UbyBlbnN1cmUgYWxsIGV4YW1wbGVzIGFyZSB3b3JraW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRoZSBbaW5kZXgudHNdKC4vaW5kZXgudHMpIGZpbGUgaXMgaW1wb3J0aW5nIGFsbCBvZiB0aGVtLlxuYDtcblxuICAgICAgY29uc3QgY29uc3RydWN0RXhhbXBsZUNvZGUgPSBgXG5pbXBvcnQgeyBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuaW1wb3J0IHsgTXlDb25zdHJ1Y3QgfSBmcm9tIFwiJHtsZXZlbHN9L3NyYy9cIjtcblxuZXhwb3J0IGNsYXNzIEJhc2ljRXhhbXBsZSBleHRlbmRzIFRlcnJhZm9ybVN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIG5hbWUpO1xuXG4gICAgbmV3IE15Q29uc3RydWN0KHRoaXMsIFwibXktY29uc3RydWN0XCIsIHtcbiAgICAgIHByb3BlcnR5QTogXCJ2YWx1ZUFcIixcbiAgICB9KTtcbiAgfVxufVxuXG5cbmA7XG5cbiAgICAgIGNvbnN0IGV4YW1wbGVDb2xsZWN0aW9uQ29kZSA9IGBcbi8vIFRoaXMgZmlsZSB3aWxsIGJlIHN5bnRoZXNpemVkIHRvIGNoZWNrIGlmIGFsbCBleGFtcGxlcyBhcmUgd29ya2luZ1xuXG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwiY2RrdGZcIjtcbi8vIEFsbCBleGFtcGxlcyBuZWVkIHRvIGJlIGltcG9ydGVkIGhlcmVcbmltcG9ydCB7IEJhc2ljRXhhbXBsZSB9IGZyb20gXCIuL2Jhc2ljXCI7XG5cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcblxuLy8gQWxsIGV4YW1wbGVzIG5lZWQgdG8gYmUgaW5pdGlhbGl6ZWQgaGVyZVxubmV3IEJhc2ljRXhhbXBsZShhcHAsIFwiYmFzaWMtZXhhbXBsZVwiKTtcbmFwcC5zeW50aCgpO1xuYDtcblxuICAgICAgbmV3IFNhbXBsZURpcih0aGlzLCBjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyLCB7XG4gICAgICAgIGZpbGVzOiB7XG4gICAgICAgICAgXCJpbmRleC50c1wiOiBleGFtcGxlQ29sbGVjdGlvbkNvZGUudHJpbSgpLFxuICAgICAgICAgIFwiYmFzaWMudHNcIjogY29uc3RydWN0RXhhbXBsZUNvZGUudHJpbSgpLFxuICAgICAgICAgIFwiY2RrdGYuanNvblwiOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICAgICAgICBhcHA6IGBucHggdHMtbm9kZSAtLXByb2plY3QgJHtsZXZlbHN9L3RzY29uZmlnLmRldi5qc29uIGluZGV4LnRzYCxcbiAgICAgICAgICAgICAgcHJvamVjdElkOlxuICAgICAgICAgICAgICAgIG9wdGlvbnMucHJvamVjdElkIHx8XG4gICAgICAgICAgICAgICAgXCJoeWJyaWQtbW9kdWxlLWZiNzM0ZGJhLWVhYzktNDY2Yy05NmJiLTdlYjljNDA2YzI4YVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAyXG4gICAgICAgICAgKSxcbiAgICAgICAgICBcIlJFQURNRS5tZFwiOiBjb25zdHJ1Y3RSZWFkbWVEb2NzLnRyaW0oKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnRlc3RUYXNrLmV4ZWMoYGNka3RmIHN5bnRoYCwge1xuICAgICAgICBjd2Q6IGNvbnN0cnVjdEV4YW1wbGVGb2xkZXIsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKGAke2NvbnN0cnVjdEV4YW1wbGVGb2xkZXJ9L2Nka3RmLm91dGApO1xuICAgIH1cblxuICAgIGNvbnN0IHNldHVwVGVycmFmb3JtU3RlcCA9IHtcbiAgICAgIG5hbWU6IFwiU2V0dXAgVGVycmFmb3JtXCIsXG4gICAgICB1c2VzOiBcImhhc2hpY29ycC9zZXR1cC10ZXJyYWZvcm1cIixcbiAgICAgIHdpdGg6IHtcbiAgICAgICAgdGVycmFmb3JtX3dyYXBwZXI6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IGJ1aWxkU3RlcHMgPSAodGhpcy5idWlsZFdvcmtmbG93IGFzIGFueSkucHJlQnVpbGRTdGVwcyBhcyBKb2JTdGVwW107XG4gICAgY29uc3QgcmVsZWFzZVN0ZXBzID0gKHRoaXMucmVsZWFzZSBhcyBhbnkpLmRlZmF1bHRCcmFuY2gud29ya2Zsb3cuam9ic1xuICAgICAgLnJlbGVhc2Uuc3RlcHM7XG4gICAgYnVpbGRTdGVwcy5wdXNoKHNldHVwVGVycmFmb3JtU3RlcCk7XG4gICAgcmVsZWFzZVN0ZXBzLnNwbGljZSgxLCAwLCBzZXR1cFRlcnJhZm9ybVN0ZXApO1xuXG4gICAgdGhpcy5naXRpZ25vcmUuYWRkUGF0dGVybnMoXCJzcmMvLmdlblwiLCBcInNyYy9jZGt0Zi5vdXRcIiwgXCJzcmMvbW9kdWxlc1wiKTtcbiAgICB0aGlzLmNvbXBpbGVUYXNrLnByZXBlbmRFeGVjKFwibnB4IGNka3RmIGdldFwiLCB7XG4gICAgICBjd2Q6IHRoaXMuc3JjZGlyLFxuICAgIH0pO1xuICAgIHRoaXMuY29tcGlsZVRhc2suZXhlYyhcImNka3RmIHN5bnRoXCIsIHtcbiAgICAgIGN3ZDogdGhpcy5zcmNkaXIsXG4gICAgICBuYW1lOiBcIlN5bnRoZXNpemUgbW9kdWxlIEhDTFwiLFxuICAgIH0pO1xuXG4gICAgbmV3IFNjcmlwdEZpbGUoXG4gICAgICB0aGlzLFxuICAgICAgXCJzY3JpcHRzL2NvcHktbW9kdWxlcy5zaFwiLFxuICAgICAgYFxuIyEvYmluL2Jhc2hcbiMgVGhpcyBzY3JpcHQgaXMgY3JlYXRlZCBieSBwcm9qZW4sIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5Llxuc2V0IC1lXG5cblNDUklQVFBBVEg9XCIkKCBjZCAtLSBcIiQoZGlybmFtZSBcIiQwXCIpXCIgPi9kZXYvbnVsbCAyPiYxIDsgcHdkIC1QIClcIlxuXG4jIGNoZWNrIGlmIHRoZSBtb2R1bGUgZm9sZGVyIGhhcyBiZWVuIGdlbmVyYXRlZCBhcyBleHBlY3RlZFxuTU9EVUxFU19GT0xERVI9JCggY2QgLS0gXCIkU0NSSVBUUEFUSC8uLi9zcmMvbW9kdWxlcy9zdGFja3NcIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVxuU1JDX0ZPTERFUj0kKCBjZCAtLSBcIiRTQ1JJUFRQQVRILy4uL3NyYy9cIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVxuVEFSR0VUX0ZPTERFUj1cIiRTQ1JJUFRQQVRILy4uL21vZHVsZXNcIlxuXG5pZiBbICEgLWQgXCIkTU9EVUxFU19GT0xERVJcIiBdOyB0aGVuXG4gIGVjaG8gXCJFeHBlY3RlZCBtb2R1bGUgZm9sZGVyIHRvIGV4aXN0IGF0ICRNT0RVTEVTX0ZPTERFUlwiXG4gIGV4aXQgMVxuZmlcblxuY2QgXCIkTU9EVUxFU19GT0xERVJcIlxuZm9yIGQgaW4gKi8gOyBkb1xuICAgIFsgLUwgXCJcXCR7ZCUvfVwiIF0gJiYgY29udGludWVcblxuICAgIGRpcm5hbWU9XCJcXCR7ZCUvfVwiXG5cblxuICAgICMgQ2hlY2sgaWYgZXZlcnl0aGluZyBpcyBpbiBwbGFjZVxuICAgIGlmIFsgISAtZiBcIiRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiIF07IHRoZW5cbiAgICAgIGVjaG8gXCJFeHBlY3RlZCBjb2RlIGZvciAkZGlybmFtZSBhdCBjZGsudGYuanNvbiB0byBleGlzdCBhdCAkTU9EVUxFU19GT0xERVIvJGRpcm5hbWVcIlxuICAgICAgZXhpdCAxXG4gICAgZmlcblxuICAgIGlmIFsgISAtZiBcIiRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCIgXTsgdGhlblxuICAgICAgZWNobyBcIkV4cGVjdGVkIERvY3VtZW50YXRpb24gZm9yICRkaXJuYW1lIGF0ICRkaXJuYW1lLm1kIHRvIGV4aXN0IGF0ICRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCJcbiAgICAgIGV4aXQgMVxuICAgIGZpXG5cbiAgICAjIENvcHkgbW9kdWxlIGFuZCByZWFkbWUgdG9nZXRoZXJcbiAgICBlY2hvIFwiQ29weWluZyBDb2RlIGFuZCBSRUFETUUgZm9yIG1vZHVsZSAkZGlybmFtZVwiXG4gICAgbWtkaXIgLXAgXCIkVEFSR0VUX0ZPTERFUlwiXG4gICAgbWtkaXIgLXAgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZVwiXG4gICAgY3AgXCIkTU9EVUxFU19GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIiBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCJcbiAgICBjcCBcIiRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCIgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZS9SRUFETUUubWRcIlxuXG4gICAgIyBBZGQgUkVBRE1FIGhjbCBkb2NzXG4gICAgaWYgd2hpY2ggdGVycmFmb3JtLWRvY3MgPi9kZXYvbnVsbDsgdGhlblxuICAgICAgdGVycmFmb3JtLWRvY3MgbWFya2Rvd24gdGFibGUgLS1vdXRwdXQtZmlsZSBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL1JFQURNRS5tZFwiIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWVcIiBcbiAgICBlbHNlXG4gICAgICBkb2NrZXIgcnVuIC0tcm0gLS12b2x1bWUgXCIkU0NSSVBUUEFUSC8uLi9tb2R1bGVzOi90ZXJyYWZvcm0tZG9jc1wiIC11ICQoaWQgLXUpIHF1YXkuaW8vdGVycmFmb3JtLWRvY3MvdGVycmFmb3JtLWRvY3M6MC4xNi4wIG1hcmtkb3duIHRhYmxlIC0tb3V0cHV0LWZpbGUgXCIvdGVycmFmb3JtLWRvY3MvJGRpcm5hbWUvUkVBRE1FLm1kXCIgL3RlcnJhZm9ybS1kb2NzLyRkaXJuYW1lXG4gICAgZmlcbmRvbmVcbmAudHJpbSgpXG4gICAgKTtcbiAgICB0aGlzLmNvbXBpbGVUYXNrLmV4ZWMoXCIuL3NjcmlwdHMvY29weS1tb2R1bGVzLnNoXCIsIHtcbiAgICAgIG5hbWU6IFwiQ29weSBIQ0wgTW9kdWxlc1wiLFxuICAgIH0pO1xuXG4gICAgLy8gaWdub3JlIGRpc3QgaW4gdGVzdHNcbiAgICB0aGlzLmplc3Q/LmFkZElnbm9yZVBhdHRlcm4oXCJkaXN0XCIpO1xuICB9XG59XG4iXX0=
@@ -17,7 +17,7 @@ export interface TerraformModuleOptions extends ConstructLibraryOptions {
17
17
  readonly cdktfVersion?: string;
18
18
  /**
19
19
  * Construct version to use
20
- * @default "^10.0.107"
20
+ * @default "^10.3.0"
21
21
  */
22
22
  readonly constructVersion?: string;
23
23
  /**
@@ -27,7 +27,7 @@ class TerraformModule extends cdk_1.ConstructLibrary {
27
27
  jsiiVersion: "~5.5.0",
28
28
  typescriptVersion: "~5.5.0", // should always be the same major/minor as JSII
29
29
  });
30
- const constructVersion = options.constructVersion || "10.4.2";
30
+ const constructVersion = options.constructVersion || "10.3.0";
31
31
  const cdktfVersion = options.cdktfVersion || "0.20.0";
32
32
  const constructSrcCode = `
33
33
  // Re-Export module bindings
@@ -45,7 +45,7 @@ describe("MyModule", () => {
45
45
  });
46
46
  `;
47
47
  this.addPeerDeps(`constructs@>=${constructVersion}`, `cdktf@>=${cdktfVersion}`);
48
- this.addDevDeps(`cdktf@~${cdktfVersion}`, `cdktf-cli@~${cdktfVersion}`, "ts-node@>=10.9.1", "jsii-docgen@^10.0.0");
48
+ this.addDevDeps(`cdktf@~${cdktfVersion}`, `cdktf-cli@~${cdktfVersion}`, `constructs@${constructVersion}`, "ts-node@>=10.9.1", "jsii-docgen@^10.0.0");
49
49
  this.addKeywords("cdktf", "cdktf-hybrid");
50
50
  new projen_1.SampleDir(this, this.srcdir, {
51
51
  files: {
@@ -89,5 +89,5 @@ describe("MyModule", () => {
89
89
  }
90
90
  exports.TerraformModule = TerraformModule;
91
91
  _a = JSII_RTTI_SYMBOL_1;
92
- TerraformModule[_a] = { fqn: "projen-cdktf-hybrid-construct.TerraformModule", version: "0.9.3" };
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztHQUdHO0FBRUgsbUNBQXVEO0FBQ3ZELHdDQUEyRTtBQUczRSx5Q0FBc0M7QUF3Q3RDOzs7O0dBSUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsc0JBQWdCO0lBQ25ELFlBQVksT0FBK0I7UUFDekMsS0FBSyxDQUFDO1lBQ0osR0FBRyxtQkFBUTtZQUNYLEdBQUcsT0FBTztZQUNWLGFBQWEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFO2dCQUN0RCxZQUFZLEVBQUUsS0FBSzthQUNwQixDQUFDO1lBQ0YsY0FBYyxFQUFFLEVBQUU7WUFDbEIsV0FBVyxFQUFFLFFBQVE7WUFDckIsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGdEQUFnRDtTQUM5RSxDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUM7UUFDOUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUM7UUFFdEQsTUFBTSxnQkFBZ0IsR0FBRzs7Ozs7Q0FLNUIsQ0FBQztRQUVFLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7O0NBUTdCLENBQUM7UUFFRSxJQUFJLENBQUMsV0FBVyxDQUNkLGdCQUFnQixnQkFBZ0IsRUFBRSxFQUNsQyxXQUFXLFlBQVksRUFBRSxDQUMxQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FDYixVQUFVLFlBQVksRUFBRSxFQUN4QixjQUFjLFlBQVksRUFBRSxFQUM1QixrQkFBa0IsRUFDbEIscUJBQXFCLENBQ3RCLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUUxQyxJQUFJLGtCQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0IsS0FBSyxFQUFFO2dCQUNMLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7Z0JBQ25DLHlCQUF5QixFQUFFLGlCQUFpQixDQUFDLElBQUksRUFBRTthQUNwRDtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksaUJBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxzQkFBc0IsRUFBRTtZQUN2RCxTQUFTLEVBQUUsSUFBSTtZQUNmLE1BQU0sRUFBRSxJQUFJO1lBQ1osS0FBSyxFQUFFO2dCQUNMLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUNyQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsaUNBQWlDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FDakU7Z0JBQ0QsRUFBRTthQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxpQkFBUSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLGFBQWEsRUFBRTtZQUM5QyxTQUFTLEVBQUUsSUFBSTtZQUNmLEdBQUcsRUFBRTtnQkFDSCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsR0FBRyxFQUFFLHNCQUFzQjtnQkFDM0Isa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixJQUFJLEVBQUU7Z0JBQ3BELGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7Z0JBQzFDLFNBQVMsRUFDUCxPQUFPLENBQUMsU0FBUztvQkFDakIsdURBQXVEO2FBQzFEO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sa0JBQWtCLEdBQUc7WUFDekIsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixJQUFJLEVBQUUsMkJBQTJCO1lBQ2pDLElBQUksRUFBRTtnQkFDSixpQkFBaUIsRUFBRSxLQUFLO2FBQ3pCO1NBQ0YsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUFJLElBQUksQ0FBQyxhQUFxQixDQUFDLGFBQTBCLENBQUM7UUFDMUUsTUFBTSxZQUFZLEdBQUksSUFBSSxDQUFDLE9BQWUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUk7YUFDbkUsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNqQixVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDcEMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDaEQsQ0FBQzs7QUF4RkgsMENBeUZDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBKc29uRmlsZSwgU2FtcGxlRGlyLCBUZXh0RmlsZSB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IENvbnN0cnVjdExpYnJhcnksIENvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSBcInByb2plbi9saWIvY2RrXCI7XG5pbXBvcnQgeyBKb2JTdGVwIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuXG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gXCIuL2RlZmF1bHRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtVmVyc2lvbkNvbnN0cmFpbnQge1xuICAvLyBuYW1lIG9mIHRoZSBtb2R1bGVcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvLyBwYXRoIC8gdXJsIC8gcmVnaXN0cnkgaWRlbnRpZmllciBmb3IgdGhlIG1vZHVsZVxuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgLy8gdmVyc2lvbiBjb25zdHJhaW50IChodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9sYW5ndWFnZS9wcm92aWRlcnMvcmVxdWlyZW1lbnRzLmh0bWwjdmVyc2lvbi1jb25zdHJhaW50cylcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybU1vZHVsZU9wdGlvbnMgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIHRhcmdldCB2ZXJzaW9uIG9mIHRoaXMgbGlicmFyeS5cbiAgICogQGRlZmF1bHQgXCIwLjIwLjBcIlxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGNka3RmVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQ29uc3RydWN0IHZlcnNpb24gdG8gdXNlXG4gICAqIEBkZWZhdWx0IFwiXjEwLjAuMTA3XCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBMaXN0IG9mIHByb3ZpZGVyIGJpbmRpbmdzIHRvIGdlbmVyYXRlIGluIGFkZGl0aW9uIHRvIHRoZSBtb2R1bGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVycmFmb3JtUHJvdmlkZXJzPzogVGVycmFmb3JtVmVyc2lvbkNvbnN0cmFpbnRbXTtcblxuICAvKipcbiAgICogTGlzdCBvZiBtb2R1bGVzIHRvIGdlbmVyYXRlIGJpbmRpbmdzIGZvci5cbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSB0ZXJyYWZvcm1Nb2R1bGVzOiBUZXJyYWZvcm1WZXJzaW9uQ29uc3RyYWludFtdO1xuXG4gIC8vIERlZmF1bHRlZCB0byBhIHV1aWQgc3RyaW5nIGFzIGNka3RmIHdvdWxkXG4gIHJlYWRvbmx5IHByb2plY3RJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUZXJyYWZvcm0gTW9kdWxlcyByZXB1Ymxpc2hlZCBhcyBDREtURiBDb25zdHJ1Y3RzXG4gKlxuICogQHBqaWQgdGVycmFmb3JtLW1vZHVsZVxuICovXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtTW9kdWxlIGV4dGVuZHMgQ29uc3RydWN0TGlicmFyeSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRlcnJhZm9ybU1vZHVsZU9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBlc2xpbnRPcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zLmVzbGludE9wdGlvbnMsIHtcbiAgICAgICAgbGludFByb2plblJjOiBmYWxzZSxcbiAgICAgIH0pLFxuICAgICAgcG9zdEJ1aWxkU3RlcHM6IFtdLFxuICAgICAganNpaVZlcnNpb246IFwifjUuNS4wXCIsXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbjogXCJ+NS41LjBcIiwgLy8gc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZSBtYWpvci9taW5vciBhcyBKU0lJXG4gICAgfSk7XG4gICAgY29uc3QgY29uc3RydWN0VmVyc2lvbiA9IG9wdGlvbnMuY29uc3RydWN0VmVyc2lvbiB8fCBcIjEwLjQuMlwiO1xuICAgIGNvbnN0IGNka3RmVmVyc2lvbiA9IG9wdGlvbnMuY2RrdGZWZXJzaW9uIHx8IFwiMC4yMC4wXCI7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RTcmNDb2RlID0gYFxuLy8gUmUtRXhwb3J0IG1vZHVsZSBiaW5kaW5nc1xuZXhwb3J0ICogZnJvbSBcIi4vdGVycmFmb3JtTW9kdWxlc1wiO1xuXG4vLyBBZGQgeW91ciBjdXN0b20gY29uc3RydWN0cyBoZXJlXG5gO1xuXG4gICAgY29uc3QgY29uc3RydWN0VGVzdENvZGUgPSBgXG4vLyBpbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG4vLyBpbXBvcnQgXCJjZGt0Zi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5cbi8vIFRvIGxlYXJuIG1vcmUgYWJvdXQgdGVzdGluZyBzZWUgY2RrLnRmL3Rlc3RpbmdcbmRlc2NyaWJlKFwiTXlNb2R1bGVcIiwgKCkgPT4ge1xuICBpdC50b2RvKFwic2hvdWxkIGJlIHRlc3RlZFwiKVxufSk7XG5gO1xuXG4gICAgdGhpcy5hZGRQZWVyRGVwcyhcbiAgICAgIGBjb25zdHJ1Y3RzQD49JHtjb25zdHJ1Y3RWZXJzaW9ufWAsXG4gICAgICBgY2RrdGZAPj0ke2Nka3RmVmVyc2lvbn1gXG4gICAgKTtcbiAgICB0aGlzLmFkZERldkRlcHMoXG4gICAgICBgY2RrdGZAfiR7Y2RrdGZWZXJzaW9ufWAsXG4gICAgICBgY2RrdGYtY2xpQH4ke2Nka3RmVmVyc2lvbn1gLFxuICAgICAgXCJ0cy1ub2RlQD49MTAuOS4xXCIsXG4gICAgICBcImpzaWktZG9jZ2VuQF4xMC4wLjBcIlxuICAgICk7XG4gICAgdGhpcy5hZGRLZXl3b3JkcyhcImNka3RmXCIsIFwiY2RrdGYtaHlicmlkXCIpO1xuXG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCB0aGlzLnNyY2Rpciwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgXCJpbmRleC50c1wiOiBjb25zdHJ1Y3RTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJfX3Rlc3RzX18vaW5kZXgtdGVzdC50c1wiOiBjb25zdHJ1Y3RUZXN0Q29kZS50cmltKCksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIG5ldyBUZXh0RmlsZSh0aGlzLCBgJHt0aGlzLnNyY2Rpcn0vdGVycmFmb3JtTW9kdWxlcy50c2AsIHtcbiAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIGxpbmVzOiBbXG4gICAgICAgIC4uLihvcHRpb25zLnRlcnJhZm9ybU1vZHVsZXMgfHwgW10pLm1hcChcbiAgICAgICAgICAodGZNb2R1bGUpID0+IGBleHBvcnQgKiBmcm9tIFwiLi8uZ2VuL21vZHVsZXMvJHt0Zk1vZHVsZS5uYW1lfVwiO2BcbiAgICAgICAgKSxcbiAgICAgICAgXCJcIixcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBuZXcgSnNvbkZpbGUodGhpcywgYCR7dGhpcy5zcmNkaXJ9L2Nka3RmLmpzb25gLCB7XG4gICAgICBjb21taXR0ZWQ6IHRydWUsXG4gICAgICBvYmo6IHtcbiAgICAgICAgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICBhcHA6IFwibnB4IHRzLW5vZGUgaW5kZXgudHNcIixcbiAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBvcHRpb25zLnRlcnJhZm9ybVByb3ZpZGVycyB8fCBbXSxcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogb3B0aW9ucy50ZXJyYWZvcm1Nb2R1bGVzLFxuICAgICAgICBwcm9qZWN0SWQ6XG4gICAgICAgICAgb3B0aW9ucy5wcm9qZWN0SWQgfHxcbiAgICAgICAgICBcInRlcnJhZm9ybS1tb2R1bGUtOTlhNzcwYTctM2VjNS00MGY3LThjZDMtZGJjNzJmNzVhMDBhXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5wcmVDb21waWxlVGFzay5leGVjKGBucHggY2RrdGYgZ2V0YCwgeyBjd2Q6IHRoaXMuc3JjZGlyIH0pO1xuXG4gICAgY29uc3Qgc2V0dXBUZXJyYWZvcm1TdGVwID0ge1xuICAgICAgbmFtZTogXCJTZXR1cCBUZXJyYWZvcm1cIixcbiAgICAgIHVzZXM6IFwiaGFzaGljb3JwL3NldHVwLXRlcnJhZm9ybVwiLFxuICAgICAgd2l0aDoge1xuICAgICAgICB0ZXJyYWZvcm1fd3JhcHBlcjogZmFsc2UsXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgYnVpbGRTdGVwcyA9ICh0aGlzLmJ1aWxkV29ya2Zsb3cgYXMgYW55KS5wcmVCdWlsZFN0ZXBzIGFzIEpvYlN0ZXBbXTtcbiAgICBjb25zdCByZWxlYXNlU3RlcHMgPSAodGhpcy5yZWxlYXNlIGFzIGFueSkuZGVmYXVsdEJyYW5jaC53b3JrZmxvdy5qb2JzXG4gICAgICAucmVsZWFzZS5zdGVwcztcbiAgICBidWlsZFN0ZXBzLnB1c2goc2V0dXBUZXJyYWZvcm1TdGVwKTtcbiAgICByZWxlYXNlU3RlcHMuc3BsaWNlKDEsIDAsIHNldHVwVGVycmFmb3JtU3RlcCk7XG4gIH1cbn1cbiJdfQ==
92
+ TerraformModule[_a] = { fqn: "projen-cdktf-hybrid-construct.TerraformModule", version: "0.9.4" };
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7OztHQUdHO0FBRUgsbUNBQXVEO0FBQ3ZELHdDQUEyRTtBQUczRSx5Q0FBc0M7QUF3Q3RDOzs7O0dBSUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsc0JBQWdCO0lBQ25ELFlBQVksT0FBK0I7UUFDekMsS0FBSyxDQUFDO1lBQ0osR0FBRyxtQkFBUTtZQUNYLEdBQUcsT0FBTztZQUNWLGFBQWEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFO2dCQUN0RCxZQUFZLEVBQUUsS0FBSzthQUNwQixDQUFDO1lBQ0YsY0FBYyxFQUFFLEVBQUU7WUFDbEIsV0FBVyxFQUFFLFFBQVE7WUFDckIsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGdEQUFnRDtTQUM5RSxDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUM7UUFDOUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUM7UUFFdEQsTUFBTSxnQkFBZ0IsR0FBRzs7Ozs7Q0FLNUIsQ0FBQztRQUVFLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7O0NBUTdCLENBQUM7UUFFRSxJQUFJLENBQUMsV0FBVyxDQUNkLGdCQUFnQixnQkFBZ0IsRUFBRSxFQUNsQyxXQUFXLFlBQVksRUFBRSxDQUMxQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FDYixVQUFVLFlBQVksRUFBRSxFQUN4QixjQUFjLFlBQVksRUFBRSxFQUM1QixjQUFjLGdCQUFnQixFQUFFLEVBQ2hDLGtCQUFrQixFQUNsQixxQkFBcUIsQ0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRTFDLElBQUksa0JBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUMvQixLQUFLLEVBQUU7Z0JBQ0wsVUFBVSxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRTtnQkFDbkMseUJBQXlCLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFO2FBQ3BEO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxpQkFBUSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLHNCQUFzQixFQUFFO1lBQ3ZELFNBQVMsRUFBRSxJQUFJO1lBQ2YsTUFBTSxFQUFFLElBQUk7WUFDWixLQUFLLEVBQUU7Z0JBQ0wsR0FBRyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQ3JDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxpQ0FBaUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUNqRTtnQkFDRCxFQUFFO2FBQ0g7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLGlCQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sYUFBYSxFQUFFO1lBQzlDLFNBQVMsRUFBRSxJQUFJO1lBQ2YsR0FBRyxFQUFFO2dCQUNILFFBQVEsRUFBRSxZQUFZO2dCQUN0QixHQUFHLEVBQUUsc0JBQXNCO2dCQUMzQixrQkFBa0IsRUFBRSxPQUFPLENBQUMsa0JBQWtCLElBQUksRUFBRTtnQkFDcEQsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtnQkFDMUMsU0FBUyxFQUNQLE9BQU8sQ0FBQyxTQUFTO29CQUNqQix1REFBdUQ7YUFDMUQ7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFaEUsTUFBTSxrQkFBa0IsR0FBRztZQUN6QixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLElBQUksRUFBRSwyQkFBMkI7WUFDakMsSUFBSSxFQUFFO2dCQUNKLGlCQUFpQixFQUFFLEtBQUs7YUFDekI7U0FDRixDQUFDO1FBQ0YsTUFBTSxVQUFVLEdBQUksSUFBSSxDQUFDLGFBQXFCLENBQUMsYUFBMEIsQ0FBQztRQUMxRSxNQUFNLFlBQVksR0FBSSxJQUFJLENBQUMsT0FBZSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSTthQUNuRSxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2pCLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNwQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUNoRCxDQUFDOztBQXpGSCwwQ0EwRkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7IEpzb25GaWxlLCBTYW1wbGVEaXIsIFRleHRGaWxlIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0TGlicmFyeSwgQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgfSBmcm9tIFwicHJvamVuL2xpYi9jZGtcIjtcbmltcG9ydCB7IEpvYlN0ZXAgfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCI7XG5cbmltcG9ydCB7IGRlZmF1bHRzIH0gZnJvbSBcIi4vZGVmYXVsdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1WZXJzaW9uQ29uc3RyYWludCB7XG4gIC8vIG5hbWUgb2YgdGhlIG1vZHVsZVxuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8vIHBhdGggLyB1cmwgLyByZWdpc3RyeSBpZGVudGlmaWVyIGZvciB0aGUgbW9kdWxlXG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICAvLyB2ZXJzaW9uIGNvbnN0cmFpbnQgKGh0dHBzOi8vd3d3LnRlcnJhZm9ybS5pby9kb2NzL2xhbmd1YWdlL3Byb3ZpZGVycy9yZXF1aXJlbWVudHMuaHRtbCN2ZXJzaW9uLWNvbnN0cmFpbnRzKVxuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtTW9kdWxlT3B0aW9ucyBleHRlbmRzIENvbnN0cnVjdExpYnJhcnlPcHRpb25zIHtcbiAgLyoqXG4gICAqIE1pbmltdW0gdGFyZ2V0IHZlcnNpb24gb2YgdGhpcyBsaWJyYXJ5LlxuICAgKiBAZGVmYXVsdCBcIjAuMjAuMFwiXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgY2RrdGZWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgdmVyc2lvbiB0byB1c2VcbiAgICogQGRlZmF1bHQgXCJeMTAuMy4wXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBMaXN0IG9mIHByb3ZpZGVyIGJpbmRpbmdzIHRvIGdlbmVyYXRlIGluIGFkZGl0aW9uIHRvIHRoZSBtb2R1bGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVycmFmb3JtUHJvdmlkZXJzPzogVGVycmFmb3JtVmVyc2lvbkNvbnN0cmFpbnRbXTtcblxuICAvKipcbiAgICogTGlzdCBvZiBtb2R1bGVzIHRvIGdlbmVyYXRlIGJpbmRpbmdzIGZvci5cbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSB0ZXJyYWZvcm1Nb2R1bGVzOiBUZXJyYWZvcm1WZXJzaW9uQ29uc3RyYWludFtdO1xuXG4gIC8vIERlZmF1bHRlZCB0byBhIHV1aWQgc3RyaW5nIGFzIGNka3RmIHdvdWxkXG4gIHJlYWRvbmx5IHByb2plY3RJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUZXJyYWZvcm0gTW9kdWxlcyByZXB1Ymxpc2hlZCBhcyBDREtURiBDb25zdHJ1Y3RzXG4gKlxuICogQHBqaWQgdGVycmFmb3JtLW1vZHVsZVxuICovXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtTW9kdWxlIGV4dGVuZHMgQ29uc3RydWN0TGlicmFyeSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRlcnJhZm9ybU1vZHVsZU9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBlc2xpbnRPcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zLmVzbGludE9wdGlvbnMsIHtcbiAgICAgICAgbGludFByb2plblJjOiBmYWxzZSxcbiAgICAgIH0pLFxuICAgICAgcG9zdEJ1aWxkU3RlcHM6IFtdLFxuICAgICAganNpaVZlcnNpb246IFwifjUuNS4wXCIsXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbjogXCJ+NS41LjBcIiwgLy8gc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZSBtYWpvci9taW5vciBhcyBKU0lJXG4gICAgfSk7XG4gICAgY29uc3QgY29uc3RydWN0VmVyc2lvbiA9IG9wdGlvbnMuY29uc3RydWN0VmVyc2lvbiB8fCBcIjEwLjMuMFwiO1xuICAgIGNvbnN0IGNka3RmVmVyc2lvbiA9IG9wdGlvbnMuY2RrdGZWZXJzaW9uIHx8IFwiMC4yMC4wXCI7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RTcmNDb2RlID0gYFxuLy8gUmUtRXhwb3J0IG1vZHVsZSBiaW5kaW5nc1xuZXhwb3J0ICogZnJvbSBcIi4vdGVycmFmb3JtTW9kdWxlc1wiO1xuXG4vLyBBZGQgeW91ciBjdXN0b20gY29uc3RydWN0cyBoZXJlXG5gO1xuXG4gICAgY29uc3QgY29uc3RydWN0VGVzdENvZGUgPSBgXG4vLyBpbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG4vLyBpbXBvcnQgXCJjZGt0Zi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5cbi8vIFRvIGxlYXJuIG1vcmUgYWJvdXQgdGVzdGluZyBzZWUgY2RrLnRmL3Rlc3RpbmdcbmRlc2NyaWJlKFwiTXlNb2R1bGVcIiwgKCkgPT4ge1xuICBpdC50b2RvKFwic2hvdWxkIGJlIHRlc3RlZFwiKVxufSk7XG5gO1xuXG4gICAgdGhpcy5hZGRQZWVyRGVwcyhcbiAgICAgIGBjb25zdHJ1Y3RzQD49JHtjb25zdHJ1Y3RWZXJzaW9ufWAsXG4gICAgICBgY2RrdGZAPj0ke2Nka3RmVmVyc2lvbn1gXG4gICAgKTtcbiAgICB0aGlzLmFkZERldkRlcHMoXG4gICAgICBgY2RrdGZAfiR7Y2RrdGZWZXJzaW9ufWAsXG4gICAgICBgY2RrdGYtY2xpQH4ke2Nka3RmVmVyc2lvbn1gLFxuICAgICAgYGNvbnN0cnVjdHNAJHtjb25zdHJ1Y3RWZXJzaW9ufWAsXG4gICAgICBcInRzLW5vZGVAPj0xMC45LjFcIixcbiAgICAgIFwianNpaS1kb2NnZW5AXjEwLjAuMFwiXG4gICAgKTtcbiAgICB0aGlzLmFkZEtleXdvcmRzKFwiY2RrdGZcIiwgXCJjZGt0Zi1oeWJyaWRcIik7XG5cbiAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIHRoaXMuc3JjZGlyLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICBcImluZGV4LnRzXCI6IGNvbnN0cnVjdFNyY0NvZGUudHJpbSgpLFxuICAgICAgICBcIl9fdGVzdHNfXy9pbmRleC10ZXN0LnRzXCI6IGNvbnN0cnVjdFRlc3RDb2RlLnRyaW0oKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgbmV3IFRleHRGaWxlKHRoaXMsIGAke3RoaXMuc3JjZGlyfS90ZXJyYWZvcm1Nb2R1bGVzLnRzYCwge1xuICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgbGluZXM6IFtcbiAgICAgICAgLi4uKG9wdGlvbnMudGVycmFmb3JtTW9kdWxlcyB8fCBbXSkubWFwKFxuICAgICAgICAgICh0Zk1vZHVsZSkgPT4gYGV4cG9ydCAqIGZyb20gXCIuLy5nZW4vbW9kdWxlcy8ke3RmTW9kdWxlLm5hbWV9XCI7YFxuICAgICAgICApLFxuICAgICAgICBcIlwiLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIG5ldyBKc29uRmlsZSh0aGlzLCBgJHt0aGlzLnNyY2Rpcn0vY2RrdGYuanNvbmAsIHtcbiAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICAgIG9iajoge1xuICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgIGFwcDogXCJucHggdHMtbm9kZSBpbmRleC50c1wiLFxuICAgICAgICB0ZXJyYWZvcm1Qcm92aWRlcnM6IG9wdGlvbnMudGVycmFmb3JtUHJvdmlkZXJzIHx8IFtdLFxuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBvcHRpb25zLnRlcnJhZm9ybU1vZHVsZXMsXG4gICAgICAgIHByb2plY3RJZDpcbiAgICAgICAgICBvcHRpb25zLnByb2plY3RJZCB8fFxuICAgICAgICAgIFwidGVycmFmb3JtLW1vZHVsZS05OWE3NzBhNy0zZWM1LTQwZjctOGNkMy1kYmM3MmY3NWEwMGFcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnByZUNvbXBpbGVUYXNrLmV4ZWMoYG5weCBjZGt0ZiBnZXRgLCB7IGN3ZDogdGhpcy5zcmNkaXIgfSk7XG5cbiAgICBjb25zdCBzZXR1cFRlcnJhZm9ybVN0ZXAgPSB7XG4gICAgICBuYW1lOiBcIlNldHVwIFRlcnJhZm9ybVwiLFxuICAgICAgdXNlczogXCJoYXNoaWNvcnAvc2V0dXAtdGVycmFmb3JtXCIsXG4gICAgICB3aXRoOiB7XG4gICAgICAgIHRlcnJhZm9ybV93cmFwcGVyOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBidWlsZFN0ZXBzID0gKHRoaXMuYnVpbGRXb3JrZmxvdyBhcyBhbnkpLnByZUJ1aWxkU3RlcHMgYXMgSm9iU3RlcFtdO1xuICAgIGNvbnN0IHJlbGVhc2VTdGVwcyA9ICh0aGlzLnJlbGVhc2UgYXMgYW55KS5kZWZhdWx0QnJhbmNoLndvcmtmbG93LmpvYnNcbiAgICAgIC5yZWxlYXNlLnN0ZXBzO1xuICAgIGJ1aWxkU3RlcHMucHVzaChzZXR1cFRlcnJhZm9ybVN0ZXApO1xuICAgIHJlbGVhc2VTdGVwcy5zcGxpY2UoMSwgMCwgc2V0dXBUZXJyYWZvcm1TdGVwKTtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -50,7 +50,7 @@
50
50
  "@typescript-eslint/parser": "^7",
51
51
  "comment-json": "^4.2.5",
52
52
  "commit-and-tag-version": "^12",
53
- "constructs": "10.4.2",
53
+ "constructs": "10.3.0",
54
54
  "eslint": "^8",
55
55
  "eslint-config-prettier": "^8.10.0",
56
56
  "eslint-import-resolver-typescript": "^2.7.1",
@@ -73,7 +73,7 @@
73
73
  "typescript": "~5.5.0"
74
74
  },
75
75
  "peerDependencies": {
76
- "constructs": "^10.4.2",
76
+ "constructs": ">= 10.3.0",
77
77
  "projen": ">= 0.88.0"
78
78
  },
79
79
  "dependencies": {
@@ -82,12 +82,15 @@
82
82
  "bundledDependencies": [
83
83
  "change-case"
84
84
  ],
85
+ "resolutions": {
86
+ "constructs": "10.3.0"
87
+ },
85
88
  "main": "lib/index.js",
86
89
  "license": "MPL-2.0",
87
90
  "publishConfig": {
88
91
  "access": "public"
89
92
  },
90
- "version": "0.9.3",
93
+ "version": "0.9.4",
91
94
  "jest": {
92
95
  "coverageProvider": "v8",
93
96
  "testMatch": [