@hallcor/pulumi-projen-project-types 0.0.62 → 0.0.64

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
@@ -95,7 +95,7 @@
95
95
  },
96
96
  "name": "@hallcor/pulumi-projen-project-types",
97
97
  "readme": {
98
- "markdown": "# Pulumi Projen Project Types\n\nCollection of [Projen](https://github.com/projen/projen) project types for use\nwith [Pulumi](https://www.pulumi.com/)\n\n## Getting Started\n\n_projen_ doesn't need to be installed. You will be using\n[npx](https://docs.npmjs.com/cli/v7/commands/npx) to run _projen_ which takes\ncare of all required setup steps.\n\nTo create a new project, run the following command and follow the instructions:\n\n```console\n$ mkdir my-project\n$ cd my-project\n$ npx projen new --from @hallcor/pulumi-projen-project-types PROJECT-TYPE\nšŸ¤– Synthesizing project...\n...\n```\n\nOnce your project is created, you can configure your project by editing\n`.projenrc.ts` or `.projenrc.py` and re-running `npx projen` to synthesize again.\n\n> The files generated by _projen_ are considered an \"implementation detail\" and\n> _projen_ protects them from being manually edited (most files are marked\n> read-only, and an \"anti tamper\" check is configured in the CI build workflow\n> to ensure that files are not updated during build).\n\n## Projen commands\n\nFor the TypeScript based projects the project commands can be viewed an run\nusing the package manager (e.g. `yarn build`, `yarn package`, etc). For\nnon-TypeScript based projects (i.e. Python) you can use projen to view and run\nproject commands.\n\nProjen is built around a standard build process for all projects. Each project\nwill have these standard [tasks](https://projen.io/docs/concepts/tasks).\n\n1. `default`: The \"default\" task that executes projen and synthesizes the project\n2. `pre-compile`: Task that runs prior to `compile`\n3. `compile`: Compiles the project (e.g. `tsc --build` for TypeScript projects)\n4. `post-compile`: Task that runs after `compile`\n5. `test`: Task that runs the project tests\n6. `package`: Task that runs steps to package the project for publishing\n\nThere is also a standard `build` task the chains the above 6 tasks in order.\n\nThere is a great [tasks guide] where you can find more information on adding new\ntasks, editing existing tasks, etc.\n\n**List available commands**\n\n```console\n$ npx projen --help\nprojen [command]\n\nCommands:\n projen new [PROJECT-TYPE-NAME] [OPTIONS] Creates a new projen project\n\n For a complete list of the available options for a specific project type, run:\n projen new [PROJECT-TYPE-NAME] --help\n projen build Full release build\n projen bump Bumps version based on latest git tag and generates a changelog entry\n projen clobber hard resets to HEAD of origin and cleans the local repo\n projen compile Only compile\n projen default Synthesize project files\n projen dist\n projen eject Remove projen from the project\n projen install Install and upgrade dependencies\n projen package Creates the distribution package\n projen post-compile Runs after successful compilation\n projen pre-compile Prepare the project for compilation\n projen publish:git Prepends the release changelog onto the project changelog, creates a release commit, and tags the release\n projen release Prepare a release from \"main\" branch\n projen test Run tests\n projen unbump Restores version to 0.0.0\n projen completion generate completion script\n\nOptions:\n --post Run post-synthesis steps such as installing dependencies. Use --no-post to skip [boolean] [default: true]\n -w, --watch Keep running and resynthesize when projenrc changes [boolean] [default: false]\n --debug Debug logs [boolean] [default: false]\n --rc path to .projenrc.js file [deprecated] [string] [default: \"/Users/chall/personal/pulumi-lambda-builders/.projenrc.js\"]\n --help Show help [boolean]\n --version Show version number\n\n```\n\n**Run a specific command**\n\n```console\n$ npx projen build\n```\n\n**Inspect a specific command**\n\n```console\n$ npx projen build -i\ndescription: Full release build\n- default\n description: Synthesize project files\n - exec: python .projenrc.py\n- pre-compile\n description: Prepare the project for compilation\n- compile\n description: Only compile\n- post-compile\n description: Runs after successful compilation\n- test\n description: Run tests\n - exec: npm ci\n - exec: pytest\n- package\n description: Creates the distribution package\n - dist\n - exec: mkdir -p dist\n - exec: cp version.json dist/\n - exec: git checkout version.json\n```\n\n## Project types\n\nCurrently supported project types\n\n- `PythonComponent`: Creates a Pulumi Python Component project\n- `TypeScriptComponent`: Creates a Pulumi TypeScript Component project\n\n### Pulumi Python Component\n\n```console\n$ mkdir my-python-component\n$ cd my-python-component\n$ npx projen new --from @hallcor/pulumi-projen-project-types python_component\n```\n\n\n#### Example\n\n```python\nfrom hallcor.pulumi_projen_project_types import PythonComponent\n\nproject = PythonComponent(\n module_name=\"pulumi_lambda_builders\",\n component_name=\"lambda-builders\",\n name=\"pulumi-lambda-builders\",\n version=\"0.1.0\",\n deps=[\n \"aws_lambda_builders\",\n ],\n dev_deps=[\n \"pyfakefs\",\n \"numpy\",\n \"hallcor.pulumi-projen-project-types\",\n ],\n)\n\nproject.synth()\n```\n\n#### Configuration Options\n\n- [componentName](https://github.com/corymhall/pulumi-projen-project-types/blob/main/API.md#componentnameoptional-)\nBy default the `name` of the of the Pulumi component will be taken from the\nproject `name`. This can be overridden by using the `componentName` property.\n\nFor a full list of input properties supported see the [Input Property Reference](https://github.com/corymhall/pulumi-projen-project-types/blob/main/API.md#typescriptprojectprops-)\n\n- [pulumi_python_options](https://github.com/corymhall/pulumi-projen-project-types/blob/main/API.md#pulumipythonoptionsoptional-)\nThis can be used to override some of the default Pulumi options. For example you\ncan specify a specific version of `pulumi` to use.\n\n```python\n\nproject = PythonComponent(\n ...,\n pulumi_python_options=PulumiPythonOptions(\n pulumi_version=\">=3.159 <4.0\" # this is the default value\n ),\n)\n```\n\nFor publishing related options see the [publishing section](#publishing)\n\n### Pulumi TypeScript Component\n\n```console\n$ mkdir my-python-component\n$ cd my-python-component\n$ npx projen new --from @hallcor/pulumi-projen-project-types type_script_component --name my-component\n```\n\n#### Example\n\n\n```ts\nimport { TypeScriptComponent } from '@hallcor/pulumi-projen-project-types';\n\nconst project = new TypeScriptComponent({\n defaultReleaseBranch: 'main',\n devDeps: [\n '@hallcor/pulumi-projen-project-types',\n ],\n name: 'my-component',\n projenrcTs: true,\n\n // deps: [], /* Runtime dependencies of this module. */\n // description: undefined, /* The description is just a string that helps people understand the purpose of the package. */\n // packageName: undefined, /* The \"name\" in package.json. */\n});\nproject.synth();\n```\n\n#### Configuration Options\n\n- TODO\n\n## Publishing\n\nThe Pulumi Component project types also setup publishing workflows to publish\ngit tags and GitHub releases. By default these will\n\n> [!IMPORTANT]\n> The publishing workflows rely on [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version)\n> which means your commits must follow [Conventional Commits](https://conventionalcommits.org/)\n\n- Create an annotated tag on push to the `main` branch\n- Create a GitHub release for the tag when the tag is created\n\n### Release Trigger\n\nBy default the project will publish a new tag on every commit to the `main`\nbranch. This can be configured via the `releaseTrigger` option.\n\n- `scheduled`: Run the release workflow on a schedule\n- `manual`: Creates a publish task which can be run locally to publish a tag\n- `continuous`: Run the release workflow on every commit to the `main` branch\n\n**On a schedule**\n\n```ts\nnew TypeScriptComponent({\n ...,\n releaseTrigger: ReleaseTrigger.scheduled({ schedule: '0 0 * * 2' }), // run every tuesday\n});\n```\n\n**Manual**\n\n```ts\nnew TypeScriptComponent({\n ...,\n releaseTrigger: ReleaseTrigger.manual(),\n});\n```\n\n### GitHub Credentials\n\nFor the release workflow to create tags, specific credentials are needed.\nBy default it expects a GitHub secret variable named `PROJEN_GITHUB_TOKEN` with\n`read/write` access to `contents`. A separate token from the builtin `${{ secrets.GITHUB_TOKEN }}`\nis needed in order to trigger the downstream `release-github` workflow.\n\nThis can be customized using the `projenCredentials` option.\n\n**From a different secret**\n\n```ts\nnew TypeScriptComponent({\n ...,\n projenCredentials: GithubCredentials.fromPersonalAccessToken({ secret: 'MY_GITHUB_TOKEN' }),\n});\n```\n\n**From a GitHub app**\n```ts\nnew TypeScriptComponent({\n ...,\n projenCredentials: GithubCredentials.fromApp({\n privateKeySecret: 'MY_GITHUB_APP_PRIVATE_KEY',\n appIdSecret: 'MY_GITHUB_APP_ID',\n }),\n});\n```\n\n"
98
+ "markdown": "# Pulumi Projen Project Types\n\nCollection of [Projen](https://github.com/projen/projen) project types for use\nwith [Pulumi](https://www.pulumi.com/)\n\n## Getting Started\n\n_projen_ doesn't need to be installed. You will be using\n[npx](https://docs.npmjs.com/cli/v7/commands/npx) to run _projen_ which takes\ncare of all required setup steps.\n\nTo create a new project, run the following command and follow the instructions:\n\n```console\n$ mkdir my-project\n$ cd my-project\n$ npx projen new --from @hallcor/pulumi-projen-project-types PROJECT-TYPE\nšŸ¤– Synthesizing project...\n...\n```\n\nOnce your project is created, you can configure your project by editing\n`.projenrc.ts` or `.projenrc.py` and re-running `npx projen` to synthesize again.\n\n> The files generated by _projen_ are considered an \"implementation detail\" and\n> _projen_ protects them from being manually edited (most files are marked\n> read-only, and an \"anti tamper\" check is configured in the CI build workflow\n> to ensure that files are not updated during build).\n\n## Projen commands\n\nFor the TypeScript based projects the project commands can be viewed an run\nusing the package manager (e.g. `yarn build`, `yarn package`, etc). For\nnon-TypeScript based projects (i.e. Python) you can use projen to view and run\nproject commands.\n\nProjen is built around a standard build process for all projects. Each project\nwill have these standard [tasks](https://projen.io/docs/concepts/tasks).\n\n1. `default`: The \"default\" task that executes projen and synthesizes the project\n2. `pre-compile`: Task that runs prior to `compile`\n3. `compile`: Compiles the project (e.g. `tsc --build` for TypeScript projects)\n4. `post-compile`: Task that runs after `compile`\n5. `test`: Task that runs the project tests\n6. `package`: Task that runs steps to package the project for publishing\n\nThere is also a standard `build` task the chains the above 6 tasks in order.\n\nThere is a great [tasks guide] where you can find more information on adding new\ntasks, editing existing tasks, etc.\n\n**List available commands**\n\n```console\n$ npx projen --help\nprojen [command]\n\nCommands:\n projen new [PROJECT-TYPE-NAME] [OPTIONS] Creates a new projen project\n\n For a complete list of the available options for a specific project type, run:\n projen new [PROJECT-TYPE-NAME] --help\n projen build Full release build\n projen bump Bumps version based on latest git tag and generates a changelog entry\n projen clobber hard resets to HEAD of origin and cleans the local repo\n projen compile Only compile\n projen default Synthesize project files\n projen dist\n projen eject Remove projen from the project\n projen install Install and upgrade dependencies\n projen package Creates the distribution package\n projen post-compile Runs after successful compilation\n projen pre-compile Prepare the project for compilation\n projen publish:git Prepends the release changelog onto the project changelog, creates a release commit, and tags the release\n projen release Prepare a release from \"main\" branch\n projen test Run tests\n projen unbump Restores version to 0.0.0\n projen completion generate completion script\n\nOptions:\n --post Run post-synthesis steps such as installing dependencies. Use --no-post to skip [boolean] [default: true]\n -w, --watch Keep running and resynthesize when projenrc changes [boolean] [default: false]\n --debug Debug logs [boolean] [default: false]\n --rc path to .projenrc.js file [deprecated] [string] [default: \"/Users/chall/personal/pulumi-lambda-builders/.projenrc.js\"]\n --help Show help [boolean]\n --version Show version number\n\n```\n\n**Run a specific command**\n\n```console\n$ npx projen build\n```\n\n**Inspect a specific command**\n\n```console\n$ npx projen build -i\ndescription: Full release build\n- default\n description: Synthesize project files\n - exec: python .projenrc.py\n- pre-compile\n description: Prepare the project for compilation\n- compile\n description: Only compile\n- post-compile\n description: Runs after successful compilation\n- test\n description: Run tests\n - exec: npm ci\n - exec: pytest\n- package\n description: Creates the distribution package\n - dist\n - exec: mkdir -p dist\n - exec: cp version.json dist/\n - exec: git checkout version.json\n```\n\n## Project types\n\nCurrently supported project types\n\n- `PythonComponent`: Creates a Pulumi Python Component project\n- `TypeScriptComponent`: Creates a Pulumi TypeScript Component project\n\n### Pulumi Python Component\n\n```console\n$ mkdir my-python-component\n$ cd my-python-component\n$ npx projen new --from @hallcor/pulumi-projen-project-types python_component\n```\n\n\n#### Example\n\n```python\nfrom hallcor.pulumi_projen_project_types import PythonComponent\n\nproject = PythonComponent(\n module_name=\"pulumi_lambda_builders\",\n component_name=\"lambda-builders\",\n name=\"pulumi-lambda-builders\",\n version=\"0.1.0\",\n deps=[\n \"aws_lambda_builders\",\n ],\n dev_deps=[\n \"pyfakefs\",\n \"numpy\",\n \"hallcor.pulumi-projen-project-types\",\n ],\n)\n\nproject.synth()\n```\n\n#### Configuration Options\n\n- [componentName](https://github.com/corymhall/pulumi-projen-project-types/blob/main/API.md#componentnameoptional-)\nBy default the `name` of the of the Pulumi component will be taken from the\nproject `name`. This can be overridden by using the `componentName` property.\n\nFor a full list of input properties supported see the [Input Property Reference](https://github.com/corymhall/pulumi-projen-project-types/blob/main/API.md#typescriptprojectprops-)\n\n- [pulumi_python_options](https://github.com/corymhall/pulumi-projen-project-types/blob/main/API.md#pulumipythonoptionsoptional-)\nThis can be used to override some of the default Pulumi options. For example you\ncan specify a specific version of `pulumi` to use.\n\n```python\n\nproject = PythonComponent(\n ...,\n pulumi_python_options=PulumiPythonOptions(\n pulumi_version=\">=3.159 <4.0\" # this is the default value\n ),\n)\n```\n\nFor publishing related options see the [publishing section](#publishing)\n\n### Pulumi TypeScript Component\n\n```console\n$ mkdir my-python-component\n$ cd my-python-component\n$ npx projen new --from @hallcor/pulumi-projen-project-types type_script_component --name my-component\n```\n\n#### Example\n\n\n```ts\nimport { TypeScriptComponent } from '@hallcor/pulumi-projen-project-types';\n\nconst project = new TypeScriptComponent({\n defaultReleaseBranch: 'main',\n devDeps: [\n '@hallcor/pulumi-projen-project-types',\n ],\n name: 'my-component',\n projenrcTs: true,\n\n // deps: [], /* Runtime dependencies of this module. */\n // description: undefined, /* The description is just a string that helps people understand the purpose of the package. */\n // packageName: undefined, /* The \"name\" in package.json. */\n});\nproject.synth();\n```\n\n#### Configuration Options\n\n- TODO\n\n## Publishing\n\nThe Pulumi Component project types also setup publishing workflows to publish\ngit tags and GitHub releases. By default these will\n\n> [!IMPORTANT]\n> The publishing workflows rely on [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version)\n> which means your commits must follow [Conventional Commits](https://conventionalcommits.org/)\n\n- Create an annotated tag on push to the `main` branch\n- Create a GitHub release for the tag when the tag is created\n\n### Release Trigger\n\nBy default the project will publish a new tag on every commit to the `main`\nbranch. This can be configured via the `releaseTrigger` option.\n\n- `scheduled`: Run the release workflow on a schedule\n- `manual`: Creates a publish task which can be run locally to publish a tag\n- `continuous`: Run the release workflow on every commit to the `main` branch\n\n**On a schedule**\n\n```ts\nnew TypeScriptComponent({\n ...,\n releaseTrigger: ReleaseTrigger.scheduled({ schedule: '0 0 * * 2' }), // run every tuesday\n});\n```\n\n**Manual**\n\n```ts\nnew TypeScriptComponent({\n ...,\n releaseTrigger: ReleaseTrigger.manual(),\n});\n```\n\n### GitHub Credentials\n\nFor the release workflow to create tags, specific credentials are needed.\nBy default it expects a GitHub secret variable named `PROJEN_GITHUB_TOKEN` with\n`read/write` access to `contents`. A separate token from the builtin `${{ secrets.GITHUB_TOKEN }}`\nis needed in order to trigger the downstream `release-github` workflow.\n\nThis can be customized using the `projenCredentials` option.\n\n**From a different secret**\n\n```ts\nnew TypeScriptComponent({\n ...,\n projenCredentials: GithubCredentials.fromPersonalAccessToken({ secret: 'MY_GITHUB_TOKEN' }),\n});\n```\n\n**From a GitHub app**\n```ts\nnew TypeScriptComponent({\n ...,\n projenCredentials: GithubCredentials.fromApp({\n privateKeySecret: 'MY_GITHUB_APP_PRIVATE_KEY',\n appIdSecret: 'MY_GITHUB_APP_ID',\n }),\n});\n```\n\n## Pulumi ESC setup for GitHub Actions\n\nUse the `PulumiEscSetup` helper to add the [`pulumi/esc-action`](https://github.com/pulumi/esc-action) to generated workflows and control which secrets are exported. The helper keeps the step id stable (`esc`) so you can safely reference the action outputs from later steps.\n\n### Option-to-input mapping\n\n- `exportEnvironmentVariables` → `export-environment-variables`\n- `version` → `version`\n- `cloudUrl` → `cloud-url`\n- `keys` (deprecated) → `keys` and automatically sets `export-environment-variables` to `true` for backward compatibility\n\n### Examples\n\n**Export specific mappings with passthrough**\n\n```ts\nimport { ExportEnvironmentVariables, PulumiEscSetup } from '@hallcor/pulumi-projen-project-types';\n\nconst esc = PulumiEscSetup.fromPersonalAccessToken({\n environment: 'acme/catalog/prod',\n exportEnvironmentVariables: ExportEnvironmentVariables.fromMapping([\n 'AWS_ACCESS_KEY_ID', // direct mapping\n 'CD_TOKEN=DEPLOY_TOKEN', // remap the ESC secret DEPLOY_TOKEN to CD_TOKEN\n '*', // passthrough any remaining secrets\n ]),\n});\n\nproject.github?.addWorkflow('deploy').addJobs({\n deploy: {\n runsOn: ['ubuntu-latest'],\n steps: [\n { uses: 'actions/checkout@v4' },\n ...esc.setupSteps,\n { run: `echo \"Deploy token is ${esc.output('CD_TOKEN')}\"` },\n ],\n },\n});\n```\n\n**Pin ESC CLI version and use a custom Pulumi Cloud URL**\n\n```ts\nconst esc = PulumiEscSetup.fromPersonalAccessToken({\n environment: 'acme/catalog/prod',\n version: '0.10.0',\n cloudUrl: 'https://api.enterprise.pulumi.com',\n});\n```\n\n**Native OIDC authentication**\n\n```ts\nimport { JobPermission } from 'projen/lib/github/workflows-model';\n\nconst esc = PulumiEscSetup.fromOidcAuth({\n environment: 'acme/catalog/prod',\n organization: 'acme',\n});\n\nproject.github?.addWorkflow('ci').addJobs({\n build: {\n permissions: { idToken: JobPermission.WRITE, contents: JobPermission.READ },\n runsOn: ['ubuntu-latest'],\n steps: [\n { uses: 'actions/checkout@v4' },\n ...esc.setupSteps,\n { run: 'echo \"Pulumi token is available via esc outputs\"' },\n ],\n },\n});\n```\n\n> [!NOTE]\n> ESC step outputs are available as `${{ steps.esc.outputs.<KEY> }}` or via `PulumiEscSetup.output('<KEY>')` when the helper is used. Existing workflows that still rely on the deprecated `keys` option continue to work, though new workflows should prefer `exportEnvironmentVariables` for fine-grained control.\n"
99
99
  },
100
100
  "repository": {
101
101
  "type": "git",
@@ -1700,13 +1700,15 @@
1700
1700
  "@hallcor/pulumi-projen-project-types.PulumiEscSetup": {
1701
1701
  "assembly": "@hallcor/pulumi-projen-project-types",
1702
1702
  "docs": {
1703
- "stability": "stable"
1703
+ "remarks": "The underlying ESC action exposes outputs for each secret in the ESC\nenvironment (including any remapped names when `exportEnvironmentVariables`\nis configured). A stable step id is used so downstream steps can reference\nthose outputs consistently.",
1704
+ "stability": "stable",
1705
+ "summary": "Utilities for configuring Pulumi ESC inside GitHub workflows."
1704
1706
  },
1705
1707
  "fqn": "@hallcor/pulumi-projen-project-types.PulumiEscSetup",
1706
1708
  "kind": "class",
1707
1709
  "locationInModule": {
1708
1710
  "filename": "src/pulumi-esc-setup.ts",
1709
- "line": 157
1711
+ "line": 165
1710
1712
  },
1711
1713
  "methods": [
1712
1714
  {
@@ -1716,7 +1718,7 @@
1716
1718
  },
1717
1719
  "locationInModule": {
1718
1720
  "filename": "src/pulumi-esc-setup.ts",
1719
- "line": 212
1721
+ "line": 222
1720
1722
  },
1721
1723
  "name": "fromOidcAuth",
1722
1724
  "parameters": [
@@ -1743,7 +1745,7 @@
1743
1745
  },
1744
1746
  "locationInModule": {
1745
1747
  "filename": "src/pulumi-esc-setup.ts",
1746
- "line": 166
1748
+ "line": 175
1747
1749
  },
1748
1750
  "name": "fromPersonalAccessToken",
1749
1751
  "parameters": [
@@ -1760,10 +1762,54 @@
1760
1762
  }
1761
1763
  },
1762
1764
  "static": true
1765
+ },
1766
+ {
1767
+ "docs": {
1768
+ "remarks": "Outputs are exposed for every secret in the ESC environment (including any\nremapped names defined via `exportEnvironmentVariables`). Use the output\nkey exactly as it appears in the ESC action output object.",
1769
+ "stability": "stable",
1770
+ "summary": "Returns a GitHub Actions expression for a Pulumi ESC output value."
1771
+ },
1772
+ "locationInModule": {
1773
+ "filename": "src/pulumi-esc-setup.ts",
1774
+ "line": 317
1775
+ },
1776
+ "name": "output",
1777
+ "parameters": [
1778
+ {
1779
+ "docs": {
1780
+ "summary": "The ESC output key to reference."
1781
+ },
1782
+ "name": "key",
1783
+ "type": {
1784
+ "primitive": "string"
1785
+ }
1786
+ }
1787
+ ],
1788
+ "returns": {
1789
+ "type": {
1790
+ "primitive": "string"
1791
+ }
1792
+ }
1763
1793
  }
1764
1794
  ],
1765
1795
  "name": "PulumiEscSetup",
1766
1796
  "properties": [
1797
+ {
1798
+ "docs": {
1799
+ "remarks": "Use this to build references to the\naction outputs.",
1800
+ "stability": "stable",
1801
+ "summary": "The step id assigned to the ESC action."
1802
+ },
1803
+ "immutable": true,
1804
+ "locationInModule": {
1805
+ "filename": "src/pulumi-esc-setup.ts",
1806
+ "line": 304
1807
+ },
1808
+ "name": "escActionStepId",
1809
+ "type": {
1810
+ "primitive": "string"
1811
+ }
1812
+ },
1767
1813
  {
1768
1814
  "docs": {
1769
1815
  "stability": "stable"
@@ -1771,7 +1817,7 @@
1771
1817
  "immutable": true,
1772
1818
  "locationInModule": {
1773
1819
  "filename": "src/pulumi-esc-setup.ts",
1774
- "line": 281
1820
+ "line": 292
1775
1821
  },
1776
1822
  "name": "setupSteps",
1777
1823
  "type": {
@@ -1790,7 +1836,7 @@
1790
1836
  "immutable": true,
1791
1837
  "locationInModule": {
1792
1838
  "filename": "src/pulumi-esc-setup.ts",
1793
- "line": 285
1839
+ "line": 296
1794
1840
  },
1795
1841
  "name": "keys",
1796
1842
  "optional": true,
@@ -1810,7 +1856,7 @@
1810
1856
  "immutable": true,
1811
1857
  "locationInModule": {
1812
1858
  "filename": "src/pulumi-esc-setup.ts",
1813
- "line": 277
1859
+ "line": 288
1814
1860
  },
1815
1861
  "name": "permissions",
1816
1862
  "optional": true,
@@ -9476,6 +9522,6 @@
9476
9522
  "symbolId": "src/structs/typescript-options/project-props:TypeScriptProjectProps"
9477
9523
  }
9478
9524
  },
9479
- "version": "0.0.62",
9480
- "fingerprint": "P5n6//1ShM5sDdC+p6xbu9vFxz1toWi5vg4gUIMhkWQ="
9525
+ "version": "0.0.64",
9526
+ "fingerprint": "+BwQuzYtj/vLmjoklwR8LSl9mDBhitzKeN7AndeKYmQ="
9481
9527
  }
package/API.md CHANGED
@@ -11623,6 +11623,40 @@ public readonly permissions: JobPermissions;
11623
11623
 
11624
11624
  ### PulumiEscSetup <a name="PulumiEscSetup" id="@hallcor/pulumi-projen-project-types.PulumiEscSetup"></a>
11625
11625
 
11626
+ Utilities for configuring Pulumi ESC inside GitHub workflows.
11627
+
11628
+ The underlying ESC action exposes outputs for each secret in the ESC
11629
+ environment (including any remapped names when `exportEnvironmentVariables`
11630
+ is configured). A stable step id is used so downstream steps can reference
11631
+ those outputs consistently.
11632
+
11633
+ #### Methods <a name="Methods" id="Methods"></a>
11634
+
11635
+ | **Name** | **Description** |
11636
+ | --- | --- |
11637
+ | <code><a href="#@hallcor/pulumi-projen-project-types.PulumiEscSetup.output">output</a></code> | Returns a GitHub Actions expression for a Pulumi ESC output value. |
11638
+
11639
+ ---
11640
+
11641
+ ##### `output` <a name="output" id="@hallcor/pulumi-projen-project-types.PulumiEscSetup.output"></a>
11642
+
11643
+ ```typescript
11644
+ public output(key: string): string
11645
+ ```
11646
+
11647
+ Returns a GitHub Actions expression for a Pulumi ESC output value.
11648
+
11649
+ Outputs are exposed for every secret in the ESC environment (including any
11650
+ remapped names defined via `exportEnvironmentVariables`). Use the output
11651
+ key exactly as it appears in the ESC action output object.
11652
+
11653
+ ###### `key`<sup>Required</sup> <a name="key" id="@hallcor/pulumi-projen-project-types.PulumiEscSetup.output.parameter.key"></a>
11654
+
11655
+ - *Type:* string
11656
+
11657
+ The ESC output key to reference.
11658
+
11659
+ ---
11626
11660
 
11627
11661
  #### Static Functions <a name="Static Functions" id="Static Functions"></a>
11628
11662
 
@@ -11672,12 +11706,28 @@ secret can be specified here.
11672
11706
 
11673
11707
  | **Name** | **Type** | **Description** |
11674
11708
  | --- | --- | --- |
11709
+ | <code><a href="#@hallcor/pulumi-projen-project-types.PulumiEscSetup.property.escActionStepId">escActionStepId</a></code> | <code>string</code> | The step id assigned to the ESC action. |
11675
11710
  | <code><a href="#@hallcor/pulumi-projen-project-types.PulumiEscSetup.property.setupSteps">setupSteps</a></code> | <code>projen.github.workflows.JobStep[]</code> | *No description.* |
11676
11711
  | <code><a href="#@hallcor/pulumi-projen-project-types.PulumiEscSetup.property.keys">keys</a></code> | <code>string[]</code> | *No description.* |
11677
11712
  | <code><a href="#@hallcor/pulumi-projen-project-types.PulumiEscSetup.property.permissions">permissions</a></code> | <code>projen.github.workflows.JobPermissions</code> | *No description.* |
11678
11713
 
11679
11714
  ---
11680
11715
 
11716
+ ##### `escActionStepId`<sup>Required</sup> <a name="escActionStepId" id="@hallcor/pulumi-projen-project-types.PulumiEscSetup.property.escActionStepId"></a>
11717
+
11718
+ ```typescript
11719
+ public readonly escActionStepId: string;
11720
+ ```
11721
+
11722
+ - *Type:* string
11723
+
11724
+ The step id assigned to the ESC action.
11725
+
11726
+ Use this to build references to the
11727
+ action outputs.
11728
+
11729
+ ---
11730
+
11681
11731
  ##### `setupSteps`<sup>Required</sup> <a name="setupSteps" id="@hallcor/pulumi-projen-project-types.PulumiEscSetup.property.setupSteps"></a>
11682
11732
 
11683
11733
  ```typescript
package/README.md CHANGED
@@ -283,3 +283,77 @@ new TypeScriptComponent({
283
283
  });
284
284
  ```
285
285
 
286
+ ## Pulumi ESC setup for GitHub Actions
287
+
288
+ Use the `PulumiEscSetup` helper to add the [`pulumi/esc-action`](https://github.com/pulumi/esc-action) to generated workflows and control which secrets are exported. The helper keeps the step id stable (`esc`) so you can safely reference the action outputs from later steps.
289
+
290
+ ### Option-to-input mapping
291
+
292
+ - `exportEnvironmentVariables` → `export-environment-variables`
293
+ - `version` → `version`
294
+ - `cloudUrl` → `cloud-url`
295
+ - `keys` (deprecated) → `keys` and automatically sets `export-environment-variables` to `true` for backward compatibility
296
+
297
+ ### Examples
298
+
299
+ **Export specific mappings with passthrough**
300
+
301
+ ```ts
302
+ import { ExportEnvironmentVariables, PulumiEscSetup } from '@hallcor/pulumi-projen-project-types';
303
+
304
+ const esc = PulumiEscSetup.fromPersonalAccessToken({
305
+ environment: 'acme/catalog/prod',
306
+ exportEnvironmentVariables: ExportEnvironmentVariables.fromMapping([
307
+ 'AWS_ACCESS_KEY_ID', // direct mapping
308
+ 'CD_TOKEN=DEPLOY_TOKEN', // remap the ESC secret DEPLOY_TOKEN to CD_TOKEN
309
+ '*', // passthrough any remaining secrets
310
+ ]),
311
+ });
312
+
313
+ project.github?.addWorkflow('deploy').addJobs({
314
+ deploy: {
315
+ runsOn: ['ubuntu-latest'],
316
+ steps: [
317
+ { uses: 'actions/checkout@v4' },
318
+ ...esc.setupSteps,
319
+ { run: `echo "Deploy token is ${esc.output('CD_TOKEN')}"` },
320
+ ],
321
+ },
322
+ });
323
+ ```
324
+
325
+ **Pin ESC CLI version and use a custom Pulumi Cloud URL**
326
+
327
+ ```ts
328
+ const esc = PulumiEscSetup.fromPersonalAccessToken({
329
+ environment: 'acme/catalog/prod',
330
+ version: '0.10.0',
331
+ cloudUrl: 'https://api.enterprise.pulumi.com',
332
+ });
333
+ ```
334
+
335
+ **Native OIDC authentication**
336
+
337
+ ```ts
338
+ import { JobPermission } from 'projen/lib/github/workflows-model';
339
+
340
+ const esc = PulumiEscSetup.fromOidcAuth({
341
+ environment: 'acme/catalog/prod',
342
+ organization: 'acme',
343
+ });
344
+
345
+ project.github?.addWorkflow('ci').addJobs({
346
+ build: {
347
+ permissions: { idToken: JobPermission.WRITE, contents: JobPermission.READ },
348
+ runsOn: ['ubuntu-latest'],
349
+ steps: [
350
+ { uses: 'actions/checkout@v4' },
351
+ ...esc.setupSteps,
352
+ { run: 'echo "Pulumi token is available via esc outputs"' },
353
+ ],
354
+ },
355
+ });
356
+ ```
357
+
358
+ > [!NOTE]
359
+ > ESC step outputs are available as `${{ steps.esc.outputs.<KEY> }}` or via `PulumiEscSetup.output('<KEY>')` when the helper is used. Existing workflows that still rely on the deprecated `keys` option continue to work, though new workflows should prefer `exportEnvironmentVariables` for fine-grained control.
@@ -91,5 +91,5 @@ class GithubCredentials {
91
91
  }
92
92
  exports.GithubCredentials = GithubCredentials;
93
93
  _a = JSII_RTTI_SYMBOL_1;
94
- GithubCredentials[_a] = { fqn: "@hallcor/pulumi-projen-project-types.GithubCredentials", version: "0.0.62" };
94
+ GithubCredentials[_a] = { fqn: "@hallcor/pulumi-projen-project-types.GithubCredentials", version: "0.0.64" };
95
95
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLWNyZWRlbnRpYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dpdGh1Yi1jcmVkZW50aWFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVlBOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7SUFDNUI7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsdUJBQXVCLENBQ25DLFVBQXVELEVBQUU7UUFFekQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDMUQsT0FBTyxJQUFJLGlCQUFpQixDQUFDO1lBQzNCLFVBQVUsRUFBRSxPQUFPLENBQUMsY0FBYztnQkFDaEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsVUFBVTtnQkFDbkMsQ0FBQyxDQUFDLEVBQUU7WUFDTixRQUFRLEVBQUUsUUFBUSxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxxQkFBcUIsS0FBSztTQUN6RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBdUMsRUFBRTtRQUM3RCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxJQUFJLHNCQUFzQixDQUFDO1FBQ3hFLE1BQU0sZ0JBQWdCLEdBQ3BCLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSx3QkFBd0IsQ0FBQztRQUV2RCxNQUFNLFVBQVUsR0FBYyxFQUFFLENBQUM7UUFDakMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDMUQsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDM0IsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7b0JBQzFELE1BQU0sSUFBSSxLQUFLLENBQ2Isd0RBQXdELENBQ3pELENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztvQkFDNUQsTUFBTSxJQUFJLEtBQUssQ0FDYiwwREFBMEQsQ0FDM0QsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztZQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFFRCxPQUFPLElBQUksaUJBQWlCLENBQUM7WUFDM0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsV0FBVztZQUNoRCxVQUFVLEVBQUU7Z0JBQ1YsR0FBRyxVQUFVO2dCQUNiO29CQUNFLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLEVBQUUsRUFBRSxnQkFBZ0I7b0JBQ3BCLElBQUksRUFBRSxvQ0FBb0M7b0JBQzFDLElBQUksRUFBRTt3QkFDSixRQUFRLEVBQUUsUUFBUSxNQUFNLElBQUksY0FBYyxLQUFLLEVBQUUsbUJBQW1CO3dCQUNwRSxhQUFhLEVBQUUsUUFBUSxNQUFNLElBQUksZ0JBQWdCLEtBQUs7cUJBQ3ZEO2lCQUNGO2FBQ0Y7WUFDRCxRQUFRLEVBQUUsMkNBQTJDO1NBQ3RELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFxQyxPQUFpQztRQUFqQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtJQUFHLENBQUM7SUFFMUU7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7O0FBN0ZILDhDQThGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpvYlBlcm1pc3Npb25zLCBKb2JTdGVwIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7XG4gIEdpdGh1YkNyZWRlbnRpYWxzQXBwT3B0aW9ucyxcbiAgR2l0aHViQ3JlZGVudGlhbHNQZXJzb25hbEFjY2Vzc1Rva2VuT3B0aW9ucyxcbn0gZnJvbSAnLi9zdHJ1Y3RzJztcblxuaW50ZXJmYWNlIEdpdGh1YkNyZWRlbnRpYWxzT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHNldHVwU3RlcHM6IEpvYlN0ZXBbXTtcbiAgcmVhZG9ubHkgdG9rZW5SZWY6IHN0cmluZztcbiAgcmVhZG9ubHkgcGVybWlzc2lvbnM/OiBKb2JQZXJtaXNzaW9ucztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWV0aG9kIG9mIHByb3ZpZGluZyBHaXRIdWIgQVBJIGFjY2VzcyBmb3IgcHJvamVuIHdvcmtmbG93cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdpdGh1YkNyZWRlbnRpYWxzIHtcbiAgLyoqXG4gICAqIFByb3ZpZGUgQVBJIGFjY2VzcyB0aHJvdWdoIGEgR2l0SHViIHBlcnNvbmFsIGFjY2VzcyB0b2tlbi5cbiAgICpcbiAgICogVGhlIHRva2VuIG11c3QgYmUgYWRkZWQgYXMgYSBzZWNyZXQgdG8gdGhlIEdpdEh1YiByZXBvLCBhbmQgdGhlIG5hbWUgb2YgdGhlXG4gICAqIHNlY3JldCBjYW4gYmUgc3BlY2lmaWVkIGhlcmUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vYXV0aGVudGljYXRpb24va2VlcGluZy15b3VyLWFjY291bnQtYW5kLWRhdGEtc2VjdXJlL2NyZWF0aW5nLWEtcGVyc29uYWwtYWNjZXNzLXRva2VuXG4gICAqIEBkZWZhdWx0IC0gYSBzZWNyZXQgbmFtZWQgXCJQUk9KRU5fR0lUSFVCX1RPS0VOXCJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVBlcnNvbmFsQWNjZXNzVG9rZW4oXG4gICAgb3B0aW9uczogR2l0aHViQ3JlZGVudGlhbHNQZXJzb25hbEFjY2Vzc1Rva2VuT3B0aW9ucyA9IHt9LFxuICApIHtcbiAgICBjb25zdCBwcmVmaXggPSBvcHRpb25zLnB1bHVtaUVzY1NldHVwID8gJ2VudicgOiAnc2VjcmV0cyc7XG4gICAgcmV0dXJuIG5ldyBHaXRodWJDcmVkZW50aWFscyh7XG4gICAgICBzZXR1cFN0ZXBzOiBvcHRpb25zLnB1bHVtaUVzY1NldHVwXG4gICAgICAgID8gb3B0aW9ucy5wdWx1bWlFc2NTZXR1cC5zZXR1cFN0ZXBzXG4gICAgICAgIDogW10sXG4gICAgICB0b2tlblJlZjogYFxcJHt7ICR7cHJlZml4fS4ke29wdGlvbnMuc2VjcmV0ID8/ICdQUk9KRU5fR0lUSFVCX1RPS0VOJ30gfX1gLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgQVBJIGFjY2VzcyB0aHJvdWdoIGEgR2l0SHViIEFwcC5cbiAgICpcbiAgICogVGhlIEdpdEh1YiBBcHAgbXVzdCBiZSBpbnN0YWxsZWQgb24gdGhlIEdpdEh1YiByZXBvLCBpdHMgQXBwIElEIGFuZCBhXG4gICAqIHByaXZhdGUga2V5IG11c3QgYmUgYWRkZWQgYXMgc2VjcmV0cyB0byB0aGUgcmVwby4gVGhlIG5hbWUgb2YgdGhlIHNlY3JldHNcbiAgICogY2FuIGJlIHNwZWNpZmllZCBoZXJlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2RldmVsb3BlcnMvYXBwcy9idWlsZGluZy1naXRodWItYXBwcy9jcmVhdGluZy1hLWdpdGh1Yi1hcHBcbiAgICogQHNlZSBodHRwczovL3Byb2plbi5pby9kb2NzL2ludGVncmF0aW9ucy9naXRodWIvI2dpdGh1Yi1hcHBcbiAgICogQGRlZmF1bHQgLSBhcHAgaWQgc3RvcmVkIGluIFwiUFJPSkVOX0FQUF9DTElFTlRfSURcIiBhbmQgcHJpdmF0ZSBrZXkgc3RvcmVkIGluIFwiUFJPSkVOX0FQUF9QUklWQVRFX0tFWVwiIHdpdGggYWxsIHBlcm1pc3Npb25zIGF0dGFjaGVkIHRvIHRoZSBhcHBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFwcChvcHRpb25zOiBHaXRodWJDcmVkZW50aWFsc0FwcE9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IGNsaWVudElkU2VjcmV0ID0gb3B0aW9ucy5jbGllbnRJZFNlY3JldCA/PyAnUFJPSkVOX0FQUF9DTElFTlRfSUQnO1xuICAgIGNvbnN0IHByaXZhdGVLZXlTZWNyZXQgPVxuICAgICAgb3B0aW9ucy5wcml2YXRlS2V5U2VjcmV0ID8/ICdQUk9KRU5fQVBQX1BSSVZBVEVfS0VZJztcblxuICAgIGNvbnN0IHNldHVwU3RlcHM6IEpvYlN0ZXBbXSA9IFtdO1xuICAgIGNvbnN0IHByZWZpeCA9IG9wdGlvbnMucHVsdW1pRXNjU2V0dXAgPyAnZW52JyA6ICdzZWNyZXRzJztcbiAgICBpZiAob3B0aW9ucy5wdWx1bWlFc2NTZXR1cCkge1xuICAgICAgaWYgKG9wdGlvbnMucHVsdW1pRXNjU2V0dXAua2V5cykge1xuICAgICAgICBpZiAoIW9wdGlvbnMucHVsdW1pRXNjU2V0dXAua2V5cy5pbmNsdWRlcyhjbGllbnRJZFNlY3JldCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgY2xpZW50SWRTZWNyZXQgd2FzIG5vdCBpbmNsdWRlZCBpbiBwdWx1bWlFc2NTZXR1cC5rZXlzYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0aW9ucy5wdWx1bWlFc2NTZXR1cC5rZXlzLmluY2x1ZGVzKHByaXZhdGVLZXlTZWNyZXQpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYHByaXZhdGVLZXlTZWNyZXQgd2FzIG5vdCBpbmNsdWRlZCBpbiBwdWx1bWlFc2NTZXR1cC5rZXlzYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzZXR1cFN0ZXBzLnB1c2goLi4ub3B0aW9ucy5wdWx1bWlFc2NTZXR1cC5zZXR1cFN0ZXBzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEdpdGh1YkNyZWRlbnRpYWxzKHtcbiAgICAgIHBlcm1pc3Npb25zOiBvcHRpb25zLnB1bHVtaUVzY1NldHVwPy5wZXJtaXNzaW9ucyxcbiAgICAgIHNldHVwU3RlcHM6IFtcbiAgICAgICAgLi4uc2V0dXBTdGVwcyxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdHZW5lcmF0ZSB0b2tlbicsXG4gICAgICAgICAgaWQ6ICdnZW5lcmF0ZV90b2tlbicsXG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvY3JlYXRlLWdpdGh1Yi1hcHAtdG9rZW5AdjEnLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICdhcHAtaWQnOiBgXFwke3sgJHtwcmVmaXh9LiR7Y2xpZW50SWRTZWNyZXR9IH19YCwgLy8gY2FuIGJlIGNsaWVudC1pZFxuICAgICAgICAgICAgJ3ByaXZhdGUta2V5JzogYFxcJHt7ICR7cHJlZml4fS4ke3ByaXZhdGVLZXlTZWNyZXR9IH19YCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHRva2VuUmVmOiAnJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMudG9rZW4gfX0nLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEdpdGh1YkNyZWRlbnRpYWxzT3B0aW9ucykge31cblxuICAvKipcbiAgICogU2V0dXAgc3RlcHMgdG8gb2J0YWluIEdpdEh1YiBjcmVkZW50aWFscy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2V0dXBTdGVwcygpOiBKb2JTdGVwW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5vcHRpb25zLnNldHVwU3RlcHNdO1xuICB9XG5cbiAgcHVibGljIGdldCBwZXJtaXNzaW9ucygpOiBKb2JQZXJtaXNzaW9ucyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5wZXJtaXNzaW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdG8gdXNlIGluIGEgd29ya2Zsb3cgd2hlbiBhIEdpdEh1YiB0b2tlbiBpcyBleHBlY3RlZC4gVGhpc1xuICAgKiB0eXBpY2FsbHkgbG9va3MgbGlrZSBcIiR7eyBzb21lLnBhdGgudG8uYS52YWx1ZSB9fVwiLlxuICAgKi9cbiAgcHVibGljIGdldCB0b2tlblJlZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMudG9rZW5SZWY7XG4gIH1cbn1cbiJdfQ==
@@ -99,8 +99,17 @@ export interface PulumiEscPersonalAccessTokenOptions extends PulumiEscActionOpti
99
99
  */
100
100
  readonly secret?: string;
101
101
  }
102
+ /**
103
+ * Utilities for configuring Pulumi ESC inside GitHub workflows.
104
+ *
105
+ * The underlying ESC action exposes outputs for each secret in the ESC
106
+ * environment (including any remapped names when `exportEnvironmentVariables`
107
+ * is configured). A stable step id is used so downstream steps can reference
108
+ * those outputs consistently.
109
+ */
102
110
  export declare class PulumiEscSetup {
103
111
  private readonly options;
112
+ private static readonly ESC_ACTION_STEP_ID;
104
113
  /**
105
114
  * Provides ESC access using a personal access token.
106
115
  *
@@ -119,4 +128,19 @@ export declare class PulumiEscSetup {
119
128
  get permissions(): JobPermissions | undefined;
120
129
  get setupSteps(): JobStep[];
121
130
  get keys(): string[] | undefined;
131
+ /**
132
+ * The step id assigned to the ESC action. Use this to build references to the
133
+ * action outputs.
134
+ */
135
+ get escActionStepId(): string;
136
+ /**
137
+ * Returns a GitHub Actions expression for a Pulumi ESC output value.
138
+ *
139
+ * Outputs are exposed for every secret in the ESC environment (including any
140
+ * remapped names defined via `exportEnvironmentVariables`). Use the output
141
+ * key exactly as it appears in the ESC action output object.
142
+ *
143
+ * @param key The ESC output key to reference.
144
+ */
145
+ output(key: string): string;
122
146
  }
@@ -44,7 +44,7 @@ class ExportEnvironmentVariables {
44
44
  }
45
45
  exports.ExportEnvironmentVariables = ExportEnvironmentVariables;
46
46
  _a = JSII_RTTI_SYMBOL_1;
47
- ExportEnvironmentVariables[_a] = { fqn: "@hallcor/pulumi-projen-project-types.ExportEnvironmentVariables", version: "0.0.62" };
47
+ ExportEnvironmentVariables[_a] = { fqn: "@hallcor/pulumi-projen-project-types.ExportEnvironmentVariables", version: "0.0.64" };
48
48
  var PulumiTokenType;
49
49
  (function (PulumiTokenType) {
50
50
  PulumiTokenType["ORG"] = "urn:pulumi:token-type:access_token:organization";
@@ -79,7 +79,15 @@ class PulumiToken {
79
79
  }
80
80
  exports.PulumiToken = PulumiToken;
81
81
  _b = JSII_RTTI_SYMBOL_1;
82
- PulumiToken[_b] = { fqn: "@hallcor/pulumi-projen-project-types.PulumiToken", version: "0.0.62" };
82
+ PulumiToken[_b] = { fqn: "@hallcor/pulumi-projen-project-types.PulumiToken", version: "0.0.64" };
83
+ /**
84
+ * Utilities for configuring Pulumi ESC inside GitHub workflows.
85
+ *
86
+ * The underlying ESC action exposes outputs for each secret in the ESC
87
+ * environment (including any remapped names when `exportEnvironmentVariables`
88
+ * is configured). A stable step id is used so downstream steps can reference
89
+ * those outputs consistently.
90
+ */
83
91
  class PulumiEscSetup {
84
92
  /**
85
93
  * Provides ESC access using a personal access token.
@@ -108,6 +116,7 @@ class PulumiEscSetup {
108
116
  keys: options.keys,
109
117
  setupSteps: [
110
118
  {
119
+ id: PulumiEscSetup.ESC_ACTION_STEP_ID,
111
120
  uses: 'pulumi/esc-action@v1',
112
121
  with: {
113
122
  environment: options.environment,
@@ -165,6 +174,7 @@ class PulumiEscSetup {
165
174
  }
166
175
  const setupSteps = [
167
176
  {
177
+ id: PulumiEscSetup.ESC_ACTION_STEP_ID,
168
178
  uses: 'pulumi/esc-action@v1',
169
179
  with: escActionInputs,
170
180
  },
@@ -189,8 +199,28 @@ class PulumiEscSetup {
189
199
  get keys() {
190
200
  return this.options.keys;
191
201
  }
202
+ /**
203
+ * The step id assigned to the ESC action. Use this to build references to the
204
+ * action outputs.
205
+ */
206
+ get escActionStepId() {
207
+ return PulumiEscSetup.ESC_ACTION_STEP_ID;
208
+ }
209
+ /**
210
+ * Returns a GitHub Actions expression for a Pulumi ESC output value.
211
+ *
212
+ * Outputs are exposed for every secret in the ESC environment (including any
213
+ * remapped names defined via `exportEnvironmentVariables`). Use the output
214
+ * key exactly as it appears in the ESC action output object.
215
+ *
216
+ * @param key The ESC output key to reference.
217
+ */
218
+ output(key) {
219
+ return `\${{ steps.${this.escActionStepId}.outputs.${key} }}`;
220
+ }
192
221
  }
193
222
  exports.PulumiEscSetup = PulumiEscSetup;
194
223
  _c = JSII_RTTI_SYMBOL_1;
195
- PulumiEscSetup[_c] = { fqn: "@hallcor/pulumi-projen-project-types.PulumiEscSetup", version: "0.0.62" };
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsdW1pLWVzYy1zZXR1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wdWx1bWktZXNjLXNldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsdUVBSTJDO0FBUTNDOztHQUVHO0FBQ0gsTUFBYSwwQkFBMEI7SUFDckMsWUFBcUMsS0FBeUI7UUFBekIsVUFBSyxHQUFMLEtBQUssQ0FBb0I7SUFBRyxDQUFDO0lBRWxFOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVE7UUFDcEIsT0FBTyxJQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBaUI7UUFDekMsT0FBTyxJQUFJLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVk7UUFDakIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOztBQW5DSCxnRUFvQ0M7OztBQWtDRCxJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDekIsMEVBQXVELENBQUE7SUFDdkQsbUVBQWdELENBQUE7SUFDaEQsMkVBQXdELENBQUE7QUFDMUQsQ0FBQyxFQUpXLGVBQWUsK0JBQWYsZUFBZSxRQUkxQjtBQUVELE1BQXNCLFdBQVc7SUFDL0I7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWM7UUFDdkMsT0FBTztZQUNMLEtB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LElBQUksY0FBYyxDQUFDO1lBQ3hCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixXQUFXLEVBQUU7Z0JBQ1gsT0FBTyxFQUFFLCtCQUFhLENBQUMsS0FBSzthQUM3QjtZQUNELFVBQVU7U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBcUMsT0FBOEI7UUFBOUIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7SUFBRyxDQUFDO0lBRXZFLElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDOztBQWxJSCx3Q0FtSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKb2JQZXJtaXNzaW9uLFxuICBKb2JQZXJtaXNzaW9ucyxcbiAgSm9iU3RlcCxcbn0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcblxuaW50ZXJmYWNlIFB1bHVtaUVzY1NldHVwT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHNldHVwU3RlcHM6IEpvYlN0ZXBbXTtcbiAgcmVhZG9ubHkga2V5cz86IHN0cmluZ1tdO1xuICByZWFkb25seSBwZXJtaXNzaW9ucz86IEpvYlBlcm1pc3Npb25zO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGV4cG9ydGluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZnJvbSBFU0MuXG4gKi9cbmV4cG9ydCBjbGFzcyBFeHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcyB7XG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB2YWx1ZTogYm9vbGVhbiB8IHN0cmluZ1tdKSB7fVxuXG4gIC8qKlxuICAgKiBEbyBub3QgZXhwb3J0IGVudmlyb25tZW50IHZhcmlhYmxlcy4gVGhpcyBpcyB0aGUgZGVmYXVsdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGlzYWJsZWQoKTogRXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMge1xuICAgIHJldHVybiBuZXcgRXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgZXhwbGljaXQgbWFwcGluZ3MgdG8gZXhwb3J0LlxuICAgKlxuICAgKiBFYWNoIGVudHJ5IHNob3VsZCBmb2xsb3cgdGhlIEVTQyBhY3Rpb24gbWFwcGluZyBmb3JtYXQsIGZvciBleGFtcGxlXG4gICAqIGBHSVRIVUJfVE9LRU49UFVMVU1JX0JPVF9UT0tFTmAgb3IgYEFXU19BQ0NFU1NfS0VZX0lEYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbU1hcHBpbmcobWFwcGluZzogc3RyaW5nW10pOiBFeHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcyB7XG4gICAgcmV0dXJuIG5ldyBFeHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcyhtYXBwaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVuZGVyKCk6IGJvb2xlYW4gfCBzdHJpbmcge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZS5qb2luKCdcXG4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3VzZXNNYXBwaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVsdW1pRXNjQWN0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgRVNDIGVudmlyb25tZW50IHRvIG9wZW5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGxpc3Qgb2Yga2V5cyB0byBpbmplY3QgaW50byB0aGUgY3VycmVudCBhY3Rpb24vd29ya2Zsb3cgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGFsbCBrZXlzIGZyb20gdGhlIGVudmlyb25tZW50IHdpbGwgYmUgaW5qZWN0ZWRcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc2AgaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkga2V5cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4cG9ydCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZnJvbSBFU0MuXG4gICAqXG4gICAqIENhbiBhbHNvIGJlIGFuIGFycmF5IG9mIG1hcHBpbmcgc3RyaW5ncyB0byBleHBsaWNpdGx5IGNvbnRyb2wgd2hpY2ggdmFyaWFibGVzXG4gICAqIGFyZSBleHBvcnRlZCAoam9pbmVkIHdpdGggbmV3bGluZXMgZm9yIHRoZSBhY3Rpb24gaW5wdXQpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBFeHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcy5kaXNhYmxlZCgpXG4gICAqL1xuICByZWFkb25seSBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcz86IEV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzO1xuXG4gIC8qKlxuICAgKiBUaGUgUHVsdW1pIENsb3VkIFVSTCB0byB0YXJnZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlIHRoZSBkZWZhdWx0IFB1bHVtaSBDbG91ZCBVUkxcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBQdWx1bWlUb2tlblR5cGUge1xuICBPUkcgPSAndXJuOnB1bHVtaTp0b2tlbi10eXBlOmFjY2Vzc190b2tlbjpvcmdhbml6YXRpb24nLFxuICBURUFNID0gJ3VybjpwdWx1bWk6dG9rZW4tdHlwZTphY2Nlc3NfdG9rZW46dGVhbScsXG4gIFBFUlNPTkFMID0gJ3VybjpwdWx1bWk6dG9rZW4tdHlwZTphY2Nlc3NfdG9rZW46cGVyc29uYWwnLFxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHVsdW1pVG9rZW4ge1xuICAvKipcbiAgICogTm90ZTogb3JnYW5pemF0aW9uIHRva2VucyBhcmUgb25seSB2YWxpZCBmb3IgZW50ZXJwcmlzZSBvcmdhbml6YXRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21PcmdUb2tlbihzY29wZT86IHN0cmluZyk6IFB1bHVtaVRva2VuIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NvcGUsXG4gICAgICB0b2tlblR5cGU6IFB1bHVtaVRva2VuVHlwZS5PUkcsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gdXNlck5hbWUgdGhlIHVzZXJuYW1lIG9mIHRoZSBQdWx1bWkgdXNlciB0byByZXF1ZXN0IHRoZSB1c2VyIHRva2VuLiBEZWZhdWx0cyB0byB0aGUgb3JnYW5pemF0aW9uIG5hbWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVBlcnNvbmFsVG9rZW4odXNlck5hbWU/OiBzdHJpbmcpOiBQdWx1bWlUb2tlbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjb3BlOiBgdXNlcjoke3VzZXJOYW1lID8/ICdVU0VSX05BTUUnfWAsXG4gICAgICB0b2tlblR5cGU6IFB1bHVtaVRva2VuVHlwZS5QRVJTT05BTCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tVGVhbVRva2VuKHRlYW1OYW1lOiBzdHJpbmcpOiBQdWx1bWlUb2tlbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjb3BlOiBgdGVhbToke3RlYW1OYW1lfWAsXG4gICAgICB0b2tlblR5cGU6IFB1bHVtaVRva2VuVHlwZS5URUFNLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRva2VuIHNjb3BlLiBTY29wZSBpcyBvbmx5IG9wdGlvbmFsIGZvclxuICAgKiBvcmdhbml6YXRpb24gdG9rZW5zXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgc2NvcGU/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCB0b2tlblR5cGU6IFB1bHVtaVRva2VuVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWx1bWlBdXRoT3B0aW9ucyBleHRlbmRzIFB1bHVtaUVzY0FjdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIFB1bHVtaSBvcmdhbml6YXRpb24gdG8gYXV0aGVudGljYXRlIHdpdGhcbiAgICovXG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBwdWx1bWkgdG9rZW4gdG8gZ2V0XG4gICAqXG4gICAqXG4gICAqIEBkZWZhdWx0IFB1bHVtaVRva2VuLmZyb21QZXJzb25hbFRva2VuKClcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RlZFRva2VuPzogUHVsdW1pVG9rZW47XG5cbiAgLyoqXG4gICAqIFRoZSByZXF1ZXN0ZWQgZXhwaXJhdGlvbiB0aW1lIChpbiBzZWNvbmRzKSBmb3IgdGhlIGdlbmVyYXRlZCB0b2tlbiB3aGVuXG4gICAqIHVzaW5nIEVTQyBPSURDIGF1dGhlbnRpY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb2lkY1Rva2VuRXhwaXJhdGlvbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWx1bWlFc2NQZXJzb25hbEFjY2Vzc1Rva2VuT3B0aW9uc1xuICBleHRlbmRzIFB1bHVtaUVzY0FjdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHNlY3JldCBuYW1lIGZvciB0aGUgYWNjZXNzIHRva2VuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQdWx1bWlFc2NTZXR1cCB7XG4gIC8qKlxuICAgKiBQcm92aWRlcyBFU0MgYWNjZXNzIHVzaW5nIGEgcGVyc29uYWwgYWNjZXNzIHRva2VuLlxuICAgKlxuICAgKiBUaGUgdG9rZW4gbXVzdCBiZSBhZGRlZCBhcyBhIHNlY3JldCB0byB0aGUgR2l0SHViIHJlcG8sIGFuZCB0aGUgbmFtZSBvZiB0aGVcbiAgICogc2VjcmV0IGNhbiBiZSBzcGVjaWZpZWQgaGVyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIHNlY3JldCBuYW1lZCBcIlBVTFVNSV9BQ0NFU1NfVE9LRU5cIlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUGVyc29uYWxBY2Nlc3NUb2tlbihcbiAgICBvcHRpb25zOiBQdWx1bWlFc2NQZXJzb25hbEFjY2Vzc1Rva2VuT3B0aW9ucyxcbiAgKSB7XG4gICAgY29uc3Qgc2VjcmV0ID0gb3B0aW9ucy5zZWNyZXQgPz8gJ1BVTFVNSV9BQ0NFU1NfVE9LRU4nO1xuICAgIGlmIChvcHRpb25zLmtleXMgJiYgb3B0aW9ucy5leHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnRG8gbm90IHByb3ZpZGUgYm90aCBcImtleXNcIiBhbmQgXCJleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc1wiLiBTcGVjaWZ5IG9ubHkgb25lLicsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcyA9XG4gICAgICBvcHRpb25zLmV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzID8/IEV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzLmRpc2FibGVkKCk7XG5cbiAgICBsZXQga2V5czogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc0lucHV0OiBib29sZWFuIHwgc3RyaW5nID1cbiAgICAgIGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzLl9yZW5kZXIoKTtcblxuICAgIGlmIChvcHRpb25zLmtleXMpIHtcbiAgICAgIGtleXMgPSBvcHRpb25zLmtleXMuam9pbignLCcpO1xuICAgICAgZXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXNJbnB1dCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcy5fdXNlc01hcHBpbmcoKSkge1xuICAgICAga2V5cyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFB1bHVtaUVzY1NldHVwKHtcbiAgICAgIGtleXM6IG9wdGlvbnMua2V5cyxcbiAgICAgIHNldHVwU3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHVzZXM6ICdwdWx1bWkvZXNjLWFjdGlvbkB2MScsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IG9wdGlvbnMuZW52aXJvbm1lbnQsXG4gICAgICAgICAgICBrZXlzLFxuICAgICAgICAgICAgJ2V4cG9ydC1lbnZpcm9ubWVudC12YXJpYWJsZXMnOiBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc0lucHV0LFxuICAgICAgICAgICAgJ2Nsb3VkLXVybCc6IG9wdGlvbnMuY2xvdWRVcmwsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgIFBVTFVNSV9BQ0NFU1NfVE9LRU46IGBcXCR7eyBzZWNyZXRzLiR7c2VjcmV0fSB9fWAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgRVNDIGFjY2VzcyB1c2luZyBPSURDIGF1dGhlbnRpY2F0aW9uIHZpYSB0aGUgcHVsdW1pL2F1dGgtYWN0aW9uc1xuICAgKiBhY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21PaWRjQXV0aChvcHRpb25zOiBQdWx1bWlBdXRoT3B0aW9ucykge1xuICAgIGNvbnN0IHRva2VuID1cbiAgICAgIG9wdGlvbnMucmVxdWVzdGVkVG9rZW4gPz9cbiAgICAgIFB1bHVtaVRva2VuLmZyb21QZXJzb25hbFRva2VuKG9wdGlvbnMub3JnYW5pemF0aW9uKTtcbiAgICBjb25zdCBzY29wZSA9IHRva2VuLnNjb3BlXG4gICAgICA/IHRva2VuLnNjb3BlLnJlcGxhY2UoJ1VTRVJfTkFNRScsIG9wdGlvbnMub3JnYW5pemF0aW9uKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgaWYgKHRva2VuLnRva2VuVHlwZSAhPT0gUHVsdW1pVG9rZW5UeXBlLk9SRyAmJiAhc2NvcGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFB1bHVtaVRva2VuVHlwZSAke3Rva2VuLnRva2VuVHlwZX0gcmVxdWlyZXMgYSBcInNjb3BlXCIgdG8gYmUgc2V0YCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmtleXMgJiYgb3B0aW9ucy5leHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnRG8gbm90IHByb3ZpZGUgYm90aCBcImtleXNcIiBhbmQgXCJleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc1wiLiBTcGVjaWZ5IG9ubHkgb25lLicsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcyA9XG4gICAgICBvcHRpb25zLmV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzID8/IEV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzLmRpc2FibGVkKCk7XG5cbiAgICBsZXQga2V5czogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc0lucHV0OiBib29sZWFuIHwgc3RyaW5nID1cbiAgICAgIGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzLl9yZW5kZXIoKTtcblxuICAgIGlmIChvcHRpb25zLmtleXMpIHtcbiAgICAgIGtleXMgPSBvcHRpb25zLmtleXMuam9pbignLCcpO1xuICAgICAgZXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXNJbnB1dCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcy5fdXNlc01hcHBpbmcoKSkge1xuICAgICAga2V5cyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBlc2NBY3Rpb25JbnB1dHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XG4gICAgICBlbnZpcm9ubWVudDogb3B0aW9ucy5lbnZpcm9ubWVudCxcbiAgICAgIGtleXMsXG4gICAgICAnZXhwb3J0LWVudmlyb25tZW50LXZhcmlhYmxlcyc6IGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzSW5wdXQsXG4gICAgICAnY2xvdWQtdXJsJzogb3B0aW9ucy5jbG91ZFVybCxcbiAgICB9O1xuXG4gICAgZXNjQWN0aW9uSW5wdXRzWydvaWRjLWF1dGgnXSA9IHRydWU7XG4gICAgZXNjQWN0aW9uSW5wdXRzWydvaWRjLW9yZ2FuaXphdGlvbiddID0gb3B0aW9ucy5vcmdhbml6YXRpb247XG4gICAgZXNjQWN0aW9uSW5wdXRzWydvaWRjLXJlcXVlc3RlZC10b2tlbi10eXBlJ10gPSB0b2tlbi50b2tlblR5cGU7XG4gICAgaWYgKHNjb3BlKSB7XG4gICAgICBlc2NBY3Rpb25JbnB1dHNbJ29pZGMtc2NvcGUnXSA9IHNjb3BlO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5vaWRjVG9rZW5FeHBpcmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGVzY0FjdGlvbklucHV0c1snb2lkYy10b2tlbi1leHBpcmF0aW9uJ10gPSBvcHRpb25zLm9pZGNUb2tlbkV4cGlyYXRpb247XG4gICAgfVxuXG4gICAgY29uc3Qgc2V0dXBTdGVwczogSm9iU3RlcFtdID0gW1xuICAgICAge1xuICAgICAgICB1c2VzOiAncHVsdW1pL2VzYy1hY3Rpb25AdjEnLFxuICAgICAgICB3aXRoOiBlc2NBY3Rpb25JbnB1dHMsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gbmV3IFB1bHVtaUVzY1NldHVwKHtcbiAgICAgIGtleXM6IG9wdGlvbnMua2V5cyxcbiAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgIGlkVG9rZW46IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICB9LFxuICAgICAgc2V0dXBTdGVwcyxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogUHVsdW1pRXNjU2V0dXBPcHRpb25zKSB7fVxuXG4gIHB1YmxpYyBnZXQgcGVybWlzc2lvbnMoKTogSm9iUGVybWlzc2lvbnMgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucGVybWlzc2lvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNldHVwU3RlcHMoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5zZXR1cFN0ZXBzO1xuICB9XG5cbiAgcHVibGljIGdldCBrZXlzKCk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmtleXM7XG4gIH1cbn1cbiJdfQ==
224
+ PulumiEscSetup[_c] = { fqn: "@hallcor/pulumi-projen-project-types.PulumiEscSetup", version: "0.0.64" };
225
+ PulumiEscSetup.ESC_ACTION_STEP_ID = 'esc';
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsdW1pLWVzYy1zZXR1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wdWx1bWktZXNjLXNldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsdUVBSTJDO0FBUTNDOztHQUVHO0FBQ0gsTUFBYSwwQkFBMEI7SUFDckMsWUFBcUMsS0FBeUI7UUFBekIsVUFBSyxHQUFMLEtBQUssQ0FBb0I7SUFBRyxDQUFDO0lBRWxFOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVE7UUFDcEIsT0FBTyxJQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBaUI7UUFDekMsT0FBTyxJQUFJLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVk7UUFDakIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOztBQW5DSCxnRUFvQ0M7OztBQWtDRCxJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDekIsMEVBQXVELENBQUE7SUFDdkQsbUVBQWdELENBQUE7SUFDaEQsMkVBQXdELENBQUE7QUFDMUQsQ0FBQyxFQUpXLGVBQWUsK0JBQWYsZUFBZSxRQUkxQjtBQUVELE1BQXNCLFdBQVc7SUFDL0I7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWM7UUFDdkMsT0FBTztZQUNMLEtB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LENBQUMsa0JBQWtCO2dCQUNyQyxJQUFJLEVBQUUsc0JBQXNCO2dCQUM1QixJQUFJLEVBQUUsZUFBZTthQUN0QjtTQUNGLENBQUM7UUFFRixPQUFPLElBQUksY0FBYyxDQUFDO1lBQ3hCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixXQUFXLEVBQUU7Z0JBQ1gsT0FBTyxFQUFFLCtCQUFhLENBQUMsS0FBSzthQUM3QjtZQUNELFVBQVU7U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBcUMsT0FBOEI7UUFBOUIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7SUFBRyxDQUFDO0lBRXZFLElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sY0FBYyxDQUFDLGtCQUFrQixDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxHQUFXO1FBQ3ZCLE9BQU8sY0FBYyxJQUFJLENBQUMsZUFBZSxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ2hFLENBQUM7O0FBMUpILHdDQTJKQzs7O0FBMUp5QixpQ0FBa0IsR0FBRyxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKb2JQZXJtaXNzaW9uLFxuICBKb2JQZXJtaXNzaW9ucyxcbiAgSm9iU3RlcCxcbn0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcblxuaW50ZXJmYWNlIFB1bHVtaUVzY1NldHVwT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHNldHVwU3RlcHM6IEpvYlN0ZXBbXTtcbiAgcmVhZG9ubHkga2V5cz86IHN0cmluZ1tdO1xuICByZWFkb25seSBwZXJtaXNzaW9ucz86IEpvYlBlcm1pc3Npb25zO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGV4cG9ydGluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZnJvbSBFU0MuXG4gKi9cbmV4cG9ydCBjbGFzcyBFeHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcyB7XG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB2YWx1ZTogYm9vbGVhbiB8IHN0cmluZ1tdKSB7fVxuXG4gIC8qKlxuICAgKiBEbyBub3QgZXhwb3J0IGVudmlyb25tZW50IHZhcmlhYmxlcy4gVGhpcyBpcyB0aGUgZGVmYXVsdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGlzYWJsZWQoKTogRXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMge1xuICAgIHJldHVybiBuZXcgRXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgZXhwbGljaXQgbWFwcGluZ3MgdG8gZXhwb3J0LlxuICAgKlxuICAgKiBFYWNoIGVudHJ5IHNob3VsZCBmb2xsb3cgdGhlIEVTQyBhY3Rpb24gbWFwcGluZyBmb3JtYXQsIGZvciBleGFtcGxlXG4gICAqIGBHSVRIVUJfVE9LRU49UFVMVU1JX0JPVF9UT0tFTmAgb3IgYEFXU19BQ0NFU1NfS0VZX0lEYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbU1hcHBpbmcobWFwcGluZzogc3RyaW5nW10pOiBFeHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcyB7XG4gICAgcmV0dXJuIG5ldyBFeHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcyhtYXBwaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVuZGVyKCk6IGJvb2xlYW4gfCBzdHJpbmcge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZS5qb2luKCdcXG4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3VzZXNNYXBwaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVsdW1pRXNjQWN0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgRVNDIGVudmlyb25tZW50IHRvIG9wZW5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGxpc3Qgb2Yga2V5cyB0byBpbmplY3QgaW50byB0aGUgY3VycmVudCBhY3Rpb24vd29ya2Zsb3cgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGFsbCBrZXlzIGZyb20gdGhlIGVudmlyb25tZW50IHdpbGwgYmUgaW5qZWN0ZWRcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc2AgaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkga2V5cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4cG9ydCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZnJvbSBFU0MuXG4gICAqXG4gICAqIENhbiBhbHNvIGJlIGFuIGFycmF5IG9mIG1hcHBpbmcgc3RyaW5ncyB0byBleHBsaWNpdGx5IGNvbnRyb2wgd2hpY2ggdmFyaWFibGVzXG4gICAqIGFyZSBleHBvcnRlZCAoam9pbmVkIHdpdGggbmV3bGluZXMgZm9yIHRoZSBhY3Rpb24gaW5wdXQpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBFeHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcy5kaXNhYmxlZCgpXG4gICAqL1xuICByZWFkb25seSBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcz86IEV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzO1xuXG4gIC8qKlxuICAgKiBUaGUgUHVsdW1pIENsb3VkIFVSTCB0byB0YXJnZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlIHRoZSBkZWZhdWx0IFB1bHVtaSBDbG91ZCBVUkxcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBQdWx1bWlUb2tlblR5cGUge1xuICBPUkcgPSAndXJuOnB1bHVtaTp0b2tlbi10eXBlOmFjY2Vzc190b2tlbjpvcmdhbml6YXRpb24nLFxuICBURUFNID0gJ3VybjpwdWx1bWk6dG9rZW4tdHlwZTphY2Nlc3NfdG9rZW46dGVhbScsXG4gIFBFUlNPTkFMID0gJ3VybjpwdWx1bWk6dG9rZW4tdHlwZTphY2Nlc3NfdG9rZW46cGVyc29uYWwnLFxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHVsdW1pVG9rZW4ge1xuICAvKipcbiAgICogTm90ZTogb3JnYW5pemF0aW9uIHRva2VucyBhcmUgb25seSB2YWxpZCBmb3IgZW50ZXJwcmlzZSBvcmdhbml6YXRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21PcmdUb2tlbihzY29wZT86IHN0cmluZyk6IFB1bHVtaVRva2VuIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NvcGUsXG4gICAgICB0b2tlblR5cGU6IFB1bHVtaVRva2VuVHlwZS5PUkcsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gdXNlck5hbWUgdGhlIHVzZXJuYW1lIG9mIHRoZSBQdWx1bWkgdXNlciB0byByZXF1ZXN0IHRoZSB1c2VyIHRva2VuLiBEZWZhdWx0cyB0byB0aGUgb3JnYW5pemF0aW9uIG5hbWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVBlcnNvbmFsVG9rZW4odXNlck5hbWU/OiBzdHJpbmcpOiBQdWx1bWlUb2tlbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjb3BlOiBgdXNlcjoke3VzZXJOYW1lID8/ICdVU0VSX05BTUUnfWAsXG4gICAgICB0b2tlblR5cGU6IFB1bHVtaVRva2VuVHlwZS5QRVJTT05BTCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tVGVhbVRva2VuKHRlYW1OYW1lOiBzdHJpbmcpOiBQdWx1bWlUb2tlbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjb3BlOiBgdGVhbToke3RlYW1OYW1lfWAsXG4gICAgICB0b2tlblR5cGU6IFB1bHVtaVRva2VuVHlwZS5URUFNLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRva2VuIHNjb3BlLiBTY29wZSBpcyBvbmx5IG9wdGlvbmFsIGZvclxuICAgKiBvcmdhbml6YXRpb24gdG9rZW5zXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgc2NvcGU/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCB0b2tlblR5cGU6IFB1bHVtaVRva2VuVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWx1bWlBdXRoT3B0aW9ucyBleHRlbmRzIFB1bHVtaUVzY0FjdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIFB1bHVtaSBvcmdhbml6YXRpb24gdG8gYXV0aGVudGljYXRlIHdpdGhcbiAgICovXG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBwdWx1bWkgdG9rZW4gdG8gZ2V0XG4gICAqXG4gICAqXG4gICAqIEBkZWZhdWx0IFB1bHVtaVRva2VuLmZyb21QZXJzb25hbFRva2VuKClcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RlZFRva2VuPzogUHVsdW1pVG9rZW47XG5cbiAgLyoqXG4gICAqIFRoZSByZXF1ZXN0ZWQgZXhwaXJhdGlvbiB0aW1lIChpbiBzZWNvbmRzKSBmb3IgdGhlIGdlbmVyYXRlZCB0b2tlbiB3aGVuXG4gICAqIHVzaW5nIEVTQyBPSURDIGF1dGhlbnRpY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb2lkY1Rva2VuRXhwaXJhdGlvbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWx1bWlFc2NQZXJzb25hbEFjY2Vzc1Rva2VuT3B0aW9uc1xuICBleHRlbmRzIFB1bHVtaUVzY0FjdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHNlY3JldCBuYW1lIGZvciB0aGUgYWNjZXNzIHRva2VuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVXRpbGl0aWVzIGZvciBjb25maWd1cmluZyBQdWx1bWkgRVNDIGluc2lkZSBHaXRIdWIgd29ya2Zsb3dzLlxuICpcbiAqIFRoZSB1bmRlcmx5aW5nIEVTQyBhY3Rpb24gZXhwb3NlcyBvdXRwdXRzIGZvciBlYWNoIHNlY3JldCBpbiB0aGUgRVNDXG4gKiBlbnZpcm9ubWVudCAoaW5jbHVkaW5nIGFueSByZW1hcHBlZCBuYW1lcyB3aGVuIGBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc2BcbiAqIGlzIGNvbmZpZ3VyZWQpLiBBIHN0YWJsZSBzdGVwIGlkIGlzIHVzZWQgc28gZG93bnN0cmVhbSBzdGVwcyBjYW4gcmVmZXJlbmNlXG4gKiB0aG9zZSBvdXRwdXRzIGNvbnNpc3RlbnRseS5cbiAqL1xuZXhwb3J0IGNsYXNzIFB1bHVtaUVzY1NldHVwIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVNDX0FDVElPTl9TVEVQX0lEID0gJ2VzYyc7XG4gIC8qKlxuICAgKiBQcm92aWRlcyBFU0MgYWNjZXNzIHVzaW5nIGEgcGVyc29uYWwgYWNjZXNzIHRva2VuLlxuICAgKlxuICAgKiBUaGUgdG9rZW4gbXVzdCBiZSBhZGRlZCBhcyBhIHNlY3JldCB0byB0aGUgR2l0SHViIHJlcG8sIGFuZCB0aGUgbmFtZSBvZiB0aGVcbiAgICogc2VjcmV0IGNhbiBiZSBzcGVjaWZpZWQgaGVyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIHNlY3JldCBuYW1lZCBcIlBVTFVNSV9BQ0NFU1NfVE9LRU5cIlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUGVyc29uYWxBY2Nlc3NUb2tlbihcbiAgICBvcHRpb25zOiBQdWx1bWlFc2NQZXJzb25hbEFjY2Vzc1Rva2VuT3B0aW9ucyxcbiAgKSB7XG4gICAgY29uc3Qgc2VjcmV0ID0gb3B0aW9ucy5zZWNyZXQgPz8gJ1BVTFVNSV9BQ0NFU1NfVE9LRU4nO1xuICAgIGlmIChvcHRpb25zLmtleXMgJiYgb3B0aW9ucy5leHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnRG8gbm90IHByb3ZpZGUgYm90aCBcImtleXNcIiBhbmQgXCJleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc1wiLiBTcGVjaWZ5IG9ubHkgb25lLicsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcyA9XG4gICAgICBvcHRpb25zLmV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzID8/IEV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzLmRpc2FibGVkKCk7XG5cbiAgICBsZXQga2V5czogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc0lucHV0OiBib29sZWFuIHwgc3RyaW5nID1cbiAgICAgIGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzLl9yZW5kZXIoKTtcblxuICAgIGlmIChvcHRpb25zLmtleXMpIHtcbiAgICAgIGtleXMgPSBvcHRpb25zLmtleXMuam9pbignLCcpO1xuICAgICAgZXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXNJbnB1dCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcy5fdXNlc01hcHBpbmcoKSkge1xuICAgICAga2V5cyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFB1bHVtaUVzY1NldHVwKHtcbiAgICAgIGtleXM6IG9wdGlvbnMua2V5cyxcbiAgICAgIHNldHVwU3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiBQdWx1bWlFc2NTZXR1cC5FU0NfQUNUSU9OX1NURVBfSUQsXG4gICAgICAgICAgdXNlczogJ3B1bHVtaS9lc2MtYWN0aW9uQHYxJyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICBlbnZpcm9ubWVudDogb3B0aW9ucy5lbnZpcm9ubWVudCxcbiAgICAgICAgICAgIGtleXMsXG4gICAgICAgICAgICAnZXhwb3J0LWVudmlyb25tZW50LXZhcmlhYmxlcyc6IGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzSW5wdXQsXG4gICAgICAgICAgICAnY2xvdWQtdXJsJzogb3B0aW9ucy5jbG91ZFVybCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgUFVMVU1JX0FDQ0VTU19UT0tFTjogYFxcJHt7IHNlY3JldHMuJHtzZWNyZXR9IH19YCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBFU0MgYWNjZXNzIHVzaW5nIE9JREMgYXV0aGVudGljYXRpb24gdmlhIHRoZSBwdWx1bWkvYXV0aC1hY3Rpb25zXG4gICAqIGFjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbU9pZGNBdXRoKG9wdGlvbnM6IFB1bHVtaUF1dGhPcHRpb25zKSB7XG4gICAgY29uc3QgdG9rZW4gPVxuICAgICAgb3B0aW9ucy5yZXF1ZXN0ZWRUb2tlbiA/P1xuICAgICAgUHVsdW1pVG9rZW4uZnJvbVBlcnNvbmFsVG9rZW4ob3B0aW9ucy5vcmdhbml6YXRpb24pO1xuICAgIGNvbnN0IHNjb3BlID0gdG9rZW4uc2NvcGVcbiAgICAgID8gdG9rZW4uc2NvcGUucmVwbGFjZSgnVVNFUl9OQU1FJywgb3B0aW9ucy5vcmdhbml6YXRpb24pXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICBpZiAodG9rZW4udG9rZW5UeXBlICE9PSBQdWx1bWlUb2tlblR5cGUuT1JHICYmICFzY29wZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgUHVsdW1pVG9rZW5UeXBlICR7dG9rZW4udG9rZW5UeXBlfSByZXF1aXJlcyBhIFwic2NvcGVcIiB0byBiZSBzZXRgLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMua2V5cyAmJiBvcHRpb25zLmV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdEbyBub3QgcHJvdmlkZSBib3RoIFwia2V5c1wiIGFuZCBcImV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzXCIuIFNwZWNpZnkgb25seSBvbmUuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzID1cbiAgICAgIG9wdGlvbnMuZXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMgPz8gRXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMuZGlzYWJsZWQoKTtcblxuICAgIGxldCBrZXlzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzSW5wdXQ6IGJvb2xlYW4gfCBzdHJpbmcgPVxuICAgICAgZXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMuX3JlbmRlcigpO1xuXG4gICAgaWYgKG9wdGlvbnMua2V5cykge1xuICAgICAga2V5cyA9IG9wdGlvbnMua2V5cy5qb2luKCcsJyk7XG4gICAgICBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc0lucHV0ID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzLl91c2VzTWFwcGluZygpKSB7XG4gICAgICBrZXlzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGVzY0FjdGlvbklucHV0czogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcbiAgICAgIGVudmlyb25tZW50OiBvcHRpb25zLmVudmlyb25tZW50LFxuICAgICAga2V5cyxcbiAgICAgICdleHBvcnQtZW52aXJvbm1lbnQtdmFyaWFibGVzJzogZXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXNJbnB1dCxcbiAgICAgICdjbG91ZC11cmwnOiBvcHRpb25zLmNsb3VkVXJsLFxuICAgIH07XG5cbiAgICBlc2NBY3Rpb25JbnB1dHNbJ29pZGMtYXV0aCddID0gdHJ1ZTtcbiAgICBlc2NBY3Rpb25JbnB1dHNbJ29pZGMtb3JnYW5pemF0aW9uJ10gPSBvcHRpb25zLm9yZ2FuaXphdGlvbjtcbiAgICBlc2NBY3Rpb25JbnB1dHNbJ29pZGMtcmVxdWVzdGVkLXRva2VuLXR5cGUnXSA9IHRva2VuLnRva2VuVHlwZTtcbiAgICBpZiAoc2NvcGUpIHtcbiAgICAgIGVzY0FjdGlvbklucHV0c1snb2lkYy1zY29wZSddID0gc2NvcGU7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLm9pZGNUb2tlbkV4cGlyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgZXNjQWN0aW9uSW5wdXRzWydvaWRjLXRva2VuLWV4cGlyYXRpb24nXSA9IG9wdGlvbnMub2lkY1Rva2VuRXhwaXJhdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBzZXR1cFN0ZXBzOiBKb2JTdGVwW10gPSBbXG4gICAgICB7XG4gICAgICAgIGlkOiBQdWx1bWlFc2NTZXR1cC5FU0NfQUNUSU9OX1NURVBfSUQsXG4gICAgICAgIHVzZXM6ICdwdWx1bWkvZXNjLWFjdGlvbkB2MScsXG4gICAgICAgIHdpdGg6IGVzY0FjdGlvbklucHV0cyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBuZXcgUHVsdW1pRXNjU2V0dXAoe1xuICAgICAga2V5czogb3B0aW9ucy5rZXlzLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgaWRUb2tlbjogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgIH0sXG4gICAgICBzZXR1cFN0ZXBzLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBQdWx1bWlFc2NTZXR1cE9wdGlvbnMpIHt9XG5cbiAgcHVibGljIGdldCBwZXJtaXNzaW9ucygpOiBKb2JQZXJtaXNzaW9ucyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5wZXJtaXNzaW9ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2V0dXBTdGVwcygpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnNldHVwU3RlcHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGtleXMoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMua2V5cztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc3RlcCBpZCBhc3NpZ25lZCB0byB0aGUgRVNDIGFjdGlvbi4gVXNlIHRoaXMgdG8gYnVpbGQgcmVmZXJlbmNlcyB0byB0aGVcbiAgICogYWN0aW9uIG91dHB1dHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVzY0FjdGlvblN0ZXBJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBQdWx1bWlFc2NTZXR1cC5FU0NfQUNUSU9OX1NURVBfSUQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIEdpdEh1YiBBY3Rpb25zIGV4cHJlc3Npb24gZm9yIGEgUHVsdW1pIEVTQyBvdXRwdXQgdmFsdWUuXG4gICAqXG4gICAqIE91dHB1dHMgYXJlIGV4cG9zZWQgZm9yIGV2ZXJ5IHNlY3JldCBpbiB0aGUgRVNDIGVudmlyb25tZW50IChpbmNsdWRpbmcgYW55XG4gICAqIHJlbWFwcGVkIG5hbWVzIGRlZmluZWQgdmlhIGBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc2ApLiBVc2UgdGhlIG91dHB1dFxuICAgKiBrZXkgZXhhY3RseSBhcyBpdCBhcHBlYXJzIGluIHRoZSBFU0MgYWN0aW9uIG91dHB1dCBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgVGhlIEVTQyBvdXRwdXQga2V5IHRvIHJlZmVyZW5jZS5cbiAgICovXG4gIHB1YmxpYyBvdXRwdXQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwke3sgc3RlcHMuJHt0aGlzLmVzY0FjdGlvblN0ZXBJZH0ub3V0cHV0cy4ke2tleX0gfX1gO1xuICB9XG59XG4iXX0=
package/lib/python.js CHANGED
@@ -236,5 +236,5 @@ class PythonComponent extends python_1.PythonProject {
236
236
  }
237
237
  exports.PythonComponent = PythonComponent;
238
238
  _a = JSII_RTTI_SYMBOL_1;
239
- PythonComponent[_a] = { fqn: "@hallcor/pulumi-projen-project-types.PythonComponent", version: "0.0.62" };
239
+ PythonComponent[_a] = { fqn: "@hallcor/pulumi-projen-project-types.PythonComponent", version: "0.0.64" };
240
240
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl0aG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3B5dGhvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJCQUE4QjtBQUM5QiwrQkFBNEI7QUFDNUIsbUNBQXlEO0FBQ3pELDRDQUFpRDtBQUNqRCw4Q0FBaUU7QUFDakUsOENBQWtEO0FBQ2xELGdEQUE2QztBQUM3QyxtREFBOEQ7QUFHOUQsNERBQTREO0FBQzVELGtDQUFrQztBQUNsQyxFQUFFO0FBQ0Ysa0VBQWtFO0FBQ2xFLFNBQVMsYUFBYSxDQUFDLE9BQStCO0lBQ3BELE1BQU0sV0FBVyxHQUFHLE9BQWMsQ0FBQztJQUNuQyxJQUFJLFNBQVMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM3QixNQUFNLFVBQVUsR0FBYSxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDOUQsTUFBTSxPQUFPLEdBQWEsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3hELElBQ0UsQ0FBQyxVQUFVO1lBQ1gsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3ZCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxFQUN0RSxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixtR0FBbUcsQ0FDcEcsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNqQyxnREFBZ0QsQ0FDaEQsQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLElBQ0UsQ0FBQyxPQUFPO29CQUNSLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQztvQkFDcEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQzNDLENBQUM7b0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixxR0FBcUc7d0JBQ25HLDJGQUEyRjt3QkFDM0YsZ0JBQWdCO3dCQUNoQiw4TEFBOEwsQ0FDak0sQ0FBQztnQkFDSixDQUFDO2dCQUNELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUUsQ0FBQztnQkFDeEQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUM7b0JBQ0gsSUFBQSxhQUFRLEVBQUMsSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7Z0JBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztvQkFDaEIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO3dCQUN4QixNQUFNLElBQUksS0FBSyxDQUNiLGdDQUFnQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHlEQUF5RCxDQUNwRyxDQUFDO29CQUNKLENBQUM7b0JBQ0QsTUFBTSxDQUFDLENBQUM7Z0JBQ1YsQ0FBQztnQkFDRCxXQUFXLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVCLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO2dCQUN2RCxXQUFXLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDcEQsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pELE9BQU8sV0FBVyxDQUFDO1lBQ3JCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLEtBQUssR0FBRyxJQUFBLDZCQUFvQixFQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM1QyxXQUFXLENBQUMsT0FBTyxHQUFHLENBQUMsc0NBQXNDLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3RFLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO2dCQUN2RCxPQUFPLFdBQVcsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQztRQUNELFdBQVcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQzlELFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBQ3ZELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxtRkFBbUY7SUFDbkYsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELE1BQWEsZUFBZ0IsU0FBUSxzQkFBYTtJQVdoRCxZQUFZLE9BQStCO1FBQ3pDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUNwRCxJQUFJLGlCQUFnRCxDQUFDO1FBQ3JELElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDOUIsTUFBTSxLQUFLLEdBQUcsMEJBQWlCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUN6RCxLQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDO1lBQ3hFLEtBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7WUFDckUsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7UUFDRCxLQUFLLENBQUM7WUFDSixHQUFHLFdBQVc7WUFDZCxHQUFHLEVBQUUsSUFBSTtZQUNULE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUUsSUFBSTtZQUNWLE1BQU0sRUFBRSxLQUFLO1lBQ2IsV0FBVyxFQUFFO2dCQUNYLE1BQU0sRUFBRSxNQUFNO2FBQ2Y7WUFDRCxpQkFBaUIsRUFBRSxpQkFBaUI7U0FDckMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxhQUFhLEdBQ2pCLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxhQUFhLElBQUksY0FBYyxDQUFDO1FBQy9ELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBRTlDLElBQUksaUJBQVEsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDdEMsR0FBRyxFQUFFO2dCQUNILE9BQU8sRUFBRSxRQUFRO2FBQ2xCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRXpELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUN6QixXQUFXLEVBQUUsMEJBQTBCO1lBQ3ZDLElBQUksRUFBRSwwQ0FBMEM7U0FDakQsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0IsSUFBSSxrQkFBUyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7Z0JBQzNCLEtBQUssRUFBRTtvQkFDTCxhQUFhLEVBQUUsRUFBRTtvQkFDakIsaUJBQWlCLEVBQUU7d0JBQ2pCLHFCQUFxQjt3QkFDckIseUJBQXlCO3FCQUMxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ2I7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLGtCQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25DLEtBQUssRUFBRTtvQkFDTCxhQUFhLEVBQUUsRUFBRTtvQkFDakIsc0JBQXNCLEVBQUU7d0JBQ3RCLGVBQWU7d0JBQ2Ysd0NBQXdDO3dCQUN4QyxFQUFFO3dCQUNGLEVBQUU7d0JBQ0Ysd0NBQXdDO3dCQUN4QywyQkFBMkI7d0JBQzNCLHNDQUFzQzt3QkFFdEMscUNBQXFDO3dCQUNyQyx1Q0FBdUM7d0JBQ3ZDLEVBQUU7d0JBQ0YsRUFBRTt3QkFDRixtREFBbUQ7d0JBQ25ELHVDQUF1Qzt3QkFDdkMsbUNBQW1DO3dCQUNuQyxFQUFFO3dCQUNGLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLHFDQUFxQzt3QkFDckMsd0RBQXdEO3dCQUN4RCxnQkFBZ0I7d0JBQ2hCLDZCQUE2QixhQUFhLDJDQUEyQzt3QkFDckYsb0NBQW9DO3dCQUNwQyxXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsZ0NBQWdDO3dCQUNoQyxlQUFlO3dCQUNmLHVEQUF1RDt3QkFDdkQsZUFBZTt3QkFDZixXQUFXO3dCQUNYLEVBQUU7cUJBQ0gsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUNiO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDO1FBQ2xDLE1BQU0sZUFBZSxHQUFHLElBQUEsV0FBSSxFQUFDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRWpFLElBQUksbUJBQVUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ2xDLFFBQVEsRUFBRTtnQkFDUixrRUFBa0U7Z0JBQ2xFLFFBQVEsSUFBSSxDQUFDLFVBQVUsNENBQTRDO2dCQUNuRSxFQUFFO2dCQUNGLDRCQUE0QjtnQkFDNUIsa0ZBQWtGO2dCQUNsRiwrRUFBK0U7Z0JBQy9FLG1FQUFtRTtnQkFDbkUsOEJBQThCO2dCQUM5QixpQkFBaUIsYUFBYSxJQUFJO2dCQUNsQyw2REFBNkQ7Z0JBQzdELHNCQUFzQjtnQkFDdEIsK0JBQStCO2dCQUMvQixZQUFZO2dCQUNaLE9BQU87YUFDUixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDYixDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLHFCQUFhLENBQUMsSUFBSSxFQUFFO1lBQzNDLEdBQUcsT0FBTyxDQUFDLG9CQUFvQjtZQUMvQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsa0JBQWtCLEVBQUUsTUFBTTtZQUMxQixhQUFhLEVBQUU7Z0JBQ2IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDO2dCQUN0RDtvQkFDRSxJQUFJLEVBQUUsY0FBYztvQkFDcEIsSUFBSSxFQUFFLHlCQUF5QjtpQkFDaEM7Z0JBQ0QsRUFBRSxHQUFHLEVBQUUscUJBQXFCLEVBQUU7Z0JBQzlCLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDeEQ7b0JBQ0UsSUFBSSxFQUFFLG1CQUFtQjtvQkFDekIsSUFBSSxFQUFFO3dCQUNKLGdCQUFnQixFQUFFLFFBQVE7cUJBQzNCO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztRQUMxQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRCxhQUFhLEVBQUUsU0FBUyxDQUFDLGVBQWUsRUFBRTtZQUN4QyxHQUFHLFdBQVc7WUFDZCxXQUFXLEVBQUU7Z0JBQ1gsR0FBRyxXQUFXLENBQUMsV0FBVztnQkFDMUIsR0FBRyxpQkFBaUIsRUFBRSxXQUFXO2FBQ2xDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksa0JBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3RFLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRSxlQUFlLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7WUFDbkUsQ0FBQztZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2hDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FDWCxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztvQkFDbkUsRUFBRTthQUNMLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDNUIsSUFBSSxpQkFBTyxDQUFDLElBQUksRUFBRTtnQkFDaEIsa0JBQWtCO2dCQUNsQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQ3RCLFdBQVcsRUFBRSxlQUFlO2dCQUM1QixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7YUFDdkMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7O0FBL0xILDBDQWdNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0YXRTeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgU2FtcGxlRGlyLCBTYW1wbGVGaWxlLCBZYW1sRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBCdWlsZFdvcmtmbG93IH0gZnJvbSAncHJvamVuL2xpYi9idWlsZCc7XG5pbXBvcnQgeyBBdXRvTWVyZ2UsIEdpdGh1YkNyZWRlbnRpYWxzIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWInO1xuaW1wb3J0IHsgUHl0aG9uUHJvamVjdCB9IGZyb20gJ3Byb2plbi9saWIvcHl0aG9uJztcbmltcG9ydCB7IFJlbGVhc2UgfSBmcm9tICdwcm9qZW4vbGliL3JlbGVhc2UnO1xuaW1wb3J0IHsgdG9QeXRob25WZXJzaW9uUmFuZ2UgfSBmcm9tICdwcm9qZW4vbGliL3V0aWwvc2VtdmVyJztcbmltcG9ydCB7IFB5dGhvbkNvbXBvbmVudE9wdGlvbnMgfSBmcm9tICcuL3N0cnVjdHMnO1xuXG4vLyBkZXZEZXBzIGFuZCBfX25ld3NfXy5hcmdzLmRldkRlcHMgd2lsbCBhbHdheXMgYmUgdGhlIHNhbWVcbi8vIHByb2plbiBkb2Vzbid0IGxldCB5b3Ugb3ZlcnJpZGVcbi8vXG4vLyBoYWNrIHRvIHdvcmthcm91bmQgaHR0cHM6Ly9naXRodWIuY29tL3Byb2plbi9wcm9qZW4vaXNzdWVzLzI0NzVcbmZ1bmN0aW9uIGhhbmRsZURldkRlcHMob3B0aW9uczogUHl0aG9uQ29tcG9uZW50T3B0aW9ucyk6IGFueSB7XG4gIGNvbnN0IGluaXRPcHRpb25zID0gb3B0aW9ucyBhcyBhbnk7XG4gIGlmICgnX19uZXdfXycgaW4gaW5pdE9wdGlvbnMpIHtcbiAgICBjb25zdCBuZXdEZXZEZXBzOiBzdHJpbmdbXSA9IGluaXRPcHRpb25zLl9fbmV3X18uYXJncy5kZXZEZXBzO1xuICAgIGNvbnN0IG5ld0RlcHM6IHN0cmluZ1tdID0gaW5pdE9wdGlvbnMuX19uZXdfXy5hcmdzLmRlcHM7XG4gICAgaWYgKFxuICAgICAgIW5ld0RldkRlcHMgfHxcbiAgICAgIG5ld0RldkRlcHMubGVuZ3RoICE9PSAxIHx8XG4gICAgICAhbmV3RGV2RGVwc1swXS5tYXRjaCgvKEBoYWxsY29yXFwvcHVsdW1pLXByb2plbi1wcm9qZWN0LXR5cGVzKUA/KC4qKT8vKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnU29tZXRoaW5nIHdlbnQgd3JvbmcsIGRldkRlcHMgc2hvdWxkIGhhdmUgb25seSBvbmUgZW50cnkgZm9yIEBoYWxsY29yL3B1bHVtaS1wcm9qZW4tcHJvamVjdC10eXBlcycsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBtYXRjaGVzID0gbmV3RGV2RGVwc1swXS5tYXRjaChcbiAgICAgIC8oQGhhbGxjb3JcXC9wdWx1bWktcHJvamVuLXByb2plY3QtdHlwZXMpQD8oLiopPy8sXG4gICAgKSE7XG4gICAgY29uc3QgdmVyc2lvbiA9IG1hdGNoZXNbMl07XG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIGlmICh2ZXJzaW9uLnN0YXJ0c1dpdGgoJ2ZpbGU6JykpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFuZXdEZXBzIHx8XG4gICAgICAgICAgbmV3RGVwcy5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICAhbmV3RGVwcy5maW5kKChkKSA9PiBkLmluY2x1ZGVzKCdoYWxsY29yJykpXG4gICAgICAgICkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICdJZiB5b3UgYXJlIHVzaW5nIGBwcm9qZW4gbmV3YCBwb2ludGluZyB0byBhIGxvY2FsIHZlcnNpb24gb2YgQGhhbGxjb3IvcHVsdW1pLXByb2plbi1wcm9qZWN0LXR5cGVzLCAnICtcbiAgICAgICAgICAgICAgJ3lvdSBtdXN0IGFkZCB0aGUgbG9jYXRpb24gb2YgdGhlIGxvY2FsIC53aGwgZmlsZSB0byB0aGUgYC0tZGVwc2AgY29tbWFuZCBsaW5lIGFyZ3VtZW50LlxcbicgK1xuICAgICAgICAgICAgICAnRm9yIGV4YW1wbGU6XFxuJyArXG4gICAgICAgICAgICAgICducHggcHJvamVuIG5ldyAtLWZyb20gQGhhbGxjb3IvcHVsdW1pLXByb2plbi1wcm9qZWN0LXR5cGVzQGZpbGU6Li4vcGF0aC90by9sb2NhbC9wcm9qZWN0IC0tZGVwcyBcIi4uL3BhdGgvdG8vbG9jYWwvcHJvamVjdC9kaXN0L2hhbGxjb3JfcHVsdW1pX3Byb2plbl9wcm9qZWN0X3R5cGVzLTAuMC4wLXB5My1ub25lLWFueS53aGxcIlxcbicsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZXAgPSBuZXdEZXBzLmZpbmQoKGQpID0+IGQuaW5jbHVkZXMoJ2hhbGxjb3InKSkhO1xuICAgICAgICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHN0YXRTeW5jKGpvaW4oY3dkLCBkZXApKTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFRoZSBmaWxlIHByb3ZpZGVkIGluICctLWRlcHMgJHtuZXdEZXBzWzBdfScgZG9lcyBub3QgZXhpc3QuIFBsZWFzZSBtYWtlIHN1cmUgdGhlIHBhdGggaXMgY29ycmVjdC5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgICBpbml0T3B0aW9ucy5kZXZEZXBzID0gW2RlcF07XG4gICAgICAgIGluaXRPcHRpb25zLl9fbmV3X18uYXJncy5kZXZEZXBzID0gaW5pdE9wdGlvbnMuZGV2RGVwcztcbiAgICAgICAgaW5pdE9wdGlvbnMuZGVwcyA9IG5ld0RlcHMuZmlsdGVyKChkKSA9PiBkICE9PSBkZXApO1xuICAgICAgICBpbml0T3B0aW9ucy5fX25ld19fLmFyZ3MuZGVwcyA9IGluaXRPcHRpb25zLmRlcHM7XG4gICAgICAgIHJldHVybiBpbml0T3B0aW9ucztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gdG9QeXRob25WZXJzaW9uUmFuZ2UodmVyc2lvbik7XG4gICAgICAgIGluaXRPcHRpb25zLmRldkRlcHMgPSBbYGhhbGxjb3IucHVsdW1pLXByb2plbi1wcm9qZWN0LXR5cGVzJHtyYW5nZX1gXTtcbiAgICAgICAgaW5pdE9wdGlvbnMuX19uZXdfXy5hcmdzLmRldkRlcHMgPSBpbml0T3B0aW9ucy5kZXZEZXBzO1xuICAgICAgICByZXR1cm4gaW5pdE9wdGlvbnM7XG4gICAgICB9XG4gICAgfVxuICAgIGluaXRPcHRpb25zLmRldkRlcHMgPSBbYGhhbGxjb3IucHVsdW1pLXByb2plbi1wcm9qZWN0LXR5cGVzYF07XG4gICAgaW5pdE9wdGlvbnMuX19uZXdfXy5hcmdzLmRldkRlcHMgPSBpbml0T3B0aW9ucy5kZXZEZXBzO1xuICAgIHJldHVybiBpbml0T3B0aW9ucztcbiAgfVxuICAvLyBvdGhlcndpc2UgdGhpcyBpc24ndCBhbiBgcHJvamVuIG5ld2Agb3BlcmF0aW9uIGFuZCBqdXN0IHJldHVybiB0aGUgb3B0aW9uIHZhbHVlc1xuICByZXR1cm4gb3B0aW9ucztcbn1cblxuZXhwb3J0IGNsYXNzIFB5dGhvbkNvbXBvbmVudCBleHRlbmRzIFB5dGhvblByb2plY3Qge1xuICAvKipcbiAgICogVGhlIFBSIGJ1aWxkIEdpdEh1YiB3b3JrZmxvdy4gYHVuZGVmaW5lZGAgaWYgYGJ1aWxkV29ya2Zsb3dgIGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJ1aWxkV29ya2Zsb3c/OiBCdWlsZFdvcmtmbG93O1xuXG4gIC8qKlxuICAgKiBDb21wb25lbnQgdGhhdCBzZXRzIHVwIG1lcmdpZnkgZm9yIG1lcmdpbmcgYXBwcm92ZWQgcHVsbCByZXF1ZXN0cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdXRvTWVyZ2U/OiBBdXRvTWVyZ2U7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogUHl0aG9uQ29tcG9uZW50T3B0aW9ucykge1xuICAgIGNvbnN0IGluaXRPcHRpb25zID0gaGFuZGxlRGV2RGVwcyhvcHRpb25zKTtcbiAgICBjb25zdCBwcm9qZW5DcmVkZW50aWFscyA9IG9wdGlvbnMucHJvamVuQ3JlZGVudGlhbHM7XG4gICAgbGV0IGdpdGh1YkNyZWRlbnRpYWxzOiBHaXRodWJDcmVkZW50aWFscyB8IHVuZGVmaW5lZDtcbiAgICBpZiAob3B0aW9ucy5wcm9qZW5DcmVkZW50aWFscykge1xuICAgICAgY29uc3QgY3JlZHMgPSBHaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbigpO1xuICAgICAgKGNyZWRzIGFzIGFueSkub3B0aW9ucy5zZXR1cFN0ZXBzID0gb3B0aW9ucy5wcm9qZW5DcmVkZW50aWFscy5zZXR1cFN0ZXBzO1xuICAgICAgKGNyZWRzIGFzIGFueSkub3B0aW9ucy50b2tlblJlZiA9IG9wdGlvbnMucHJvamVuQ3JlZGVudGlhbHMudG9rZW5SZWY7XG4gICAgICBnaXRodWJDcmVkZW50aWFscyA9IGNyZWRzO1xuICAgIH1cbiAgICBzdXBlcih7XG4gICAgICAuLi5pbml0T3B0aW9ucyxcbiAgICAgIHBpcDogdHJ1ZSxcbiAgICAgIGdpdGh1YjogdHJ1ZSxcbiAgICAgIHBvZXRyeTogZmFsc2UsXG4gICAgICB2ZW52OiB0cnVlLFxuICAgICAgc2FtcGxlOiBmYWxzZSxcbiAgICAgIHZlbnZPcHRpb25zOiB7XG4gICAgICAgIGVudmRpcjogJ3ZlbnYnLFxuICAgICAgfSxcbiAgICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWJDcmVkZW50aWFscyxcbiAgICB9KTtcbiAgICBjb25zdCBwdWx1bWlWZXJzaW9uID1cbiAgICAgIG9wdGlvbnMucHVsdW1pUHl0aG9uT3B0aW9ucz8ucHVsdW1pVmVyc2lvbiA/PyAnPj0zLjE1OSA8NC4wJztcbiAgICB0aGlzLmFkZERlcGVuZGVuY3koYHB1bHVtaUAke3B1bHVtaVZlcnNpb259YCk7XG5cbiAgICBuZXcgWWFtbEZpbGUodGhpcywgJ1B1bHVtaVBsdWdpbi55YW1sJywge1xuICAgICAgb2JqOiB7XG4gICAgICAgIHJ1bnRpbWU6ICdweXRob24nLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbXBvbmVudE5hbWUgPSBvcHRpb25zLmNvbXBvbmVudE5hbWUgPz8gdGhpcy5uYW1lO1xuXG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24oXG4gICAgICB0aGlzLmFkZFRhc2soJ2dldC1zY2hlbWEnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVmFsaWRhdGUgc2NoZW1hIGlzIHZhbGlkJyxcbiAgICAgICAgZXhlYzogJ3B1bHVtaSBwYWNrYWdlIGdldC1zY2hlbWEgLi8gPiAvZGV2L251bGwnLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGlmIChvcHRpb25zLnNhbXBsZSA/PyB0cnVlKSB7XG4gICAgICBuZXcgU2FtcGxlRGlyKHRoaXMsICd0ZXN0cycsIHtcbiAgICAgICAgZmlsZXM6IHtcbiAgICAgICAgICAnX19pbml0X18ucHknOiAnJyxcbiAgICAgICAgICAnZXhhbXBsZV90ZXN0LnB5JzogW1xuICAgICAgICAgICAgJ2RlZiB0ZXN0X2V4YW1wbGUoKTonLFxuICAgICAgICAgICAgJyAgICBhc3NlcnQgVHJ1ZSA9PSBUcnVlJyxcbiAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIG5ldyBTYW1wbGVEaXIodGhpcywgdGhpcy5tb2R1bGVOYW1lLCB7XG4gICAgICAgIGZpbGVzOiB7XG4gICAgICAgICAgJ19faW5pdF9fLnB5JzogJycsXG4gICAgICAgICAgJ2V4YW1wbGVfY29tcG9uZW50LnB5JzogW1xuICAgICAgICAgICAgJ2ltcG9ydCBwdWx1bWknLFxuICAgICAgICAgICAgJ2Zyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgVHlwZWREaWN0JyxcbiAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAnY2xhc3MgRXhhbXBsZUNvbXBvbmVudEFyZ3MoVHlwZWREaWN0KTonLFxuICAgICAgICAgICAgJyAgICByZXF1aXJlZEFyZ3VtZW50OiBzdHInLFxuICAgICAgICAgICAgJyAgICBcIlwiXCJBIHJlcXVpcmVkIHN0cmluZyBhcmd1bWVudFwiXCJcIicsXG5cbiAgICAgICAgICAgICcgICAgb3B0aW9uYWxBcmd1bWVudDogT3B0aW9uYWxbc3RyXScsXG4gICAgICAgICAgICAnICAgIFwiXCJcIkFuIG9wdGlvbmFsIHN0cmluZyBhcmd1bWVudFwiXCJcIicsXG4gICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgJ2NsYXNzIEV4YW1wbGVDb21wb25lbnQocHVsdW1pLkNvbXBvbmVudFJlc291cmNlKTonLFxuICAgICAgICAgICAgJyAgICBleGFtcGxlT3V0cHV0OiBwdWx1bWkuT3V0cHV0W3N0cl0nLFxuICAgICAgICAgICAgJyAgICBcIlwiXCJBbiBleGFtcGxlIG91dHB1dCB2YWx1ZVwiXCJcIicsXG4gICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICcgICAgZGVmIF9faW5pdF9fKCcsXG4gICAgICAgICAgICAnICAgICAgICBzZWxmLCcsXG4gICAgICAgICAgICAnICAgICAgICBuYW1lOiBzdHIsJyxcbiAgICAgICAgICAgICcgICAgICAgIGFyZ3M6IEV4YW1wbGVDb21wb25lbnRBcmdzLCcsXG4gICAgICAgICAgICAnICAgICAgICBvcHRzOiBPcHRpb25hbFtwdWx1bWkuUmVzb3VyY2VPcHRpb25zXSA9IE5vbmUsJyxcbiAgICAgICAgICAgICcgICAgKSAtPiBOb25lOicsXG4gICAgICAgICAgICBgICAgICAgICBzdXBlcigpLl9faW5pdF9fKFwiJHtjb21wb25lbnROYW1lfTppbmRleDpFeGFtcGxlQ29tcG9uZW50XCIsIG5hbWUsIHt9LCBvcHRzKWAsXG4gICAgICAgICAgICAnICAgICAgICAjIENvbXBvbmVudCBjb2RlIGdvZXMgaGVyZScsXG4gICAgICAgICAgICAnICAgICAgICAjJyxcbiAgICAgICAgICAgICcgICAgICAgICMnLFxuICAgICAgICAgICAgJyAgICAgICAgc2VsZi5yZWdpc3Rlcl9vdXRwdXRzKCcsXG4gICAgICAgICAgICAnICAgICAgICAgICAgeycsXG4gICAgICAgICAgICAnICAgICAgICAgICAgICAgIFwiZXhhbXBsZU91dHB1dFwiOiBcIlwiLCAgIyBvdXRwdXQgdmFsdWVzJyxcbiAgICAgICAgICAgICcgICAgICAgICAgICB9JyxcbiAgICAgICAgICAgICcgICAgICAgICknLFxuICAgICAgICAgICAgJycsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGFydGlmYWN0c0RpcmVjdG9yeSA9ICdkaXN0JztcbiAgICBjb25zdCB2ZXJzaW9uRmlsZVBhdGggPSBqb2luKGFydGlmYWN0c0RpcmVjdG9yeSwgJ3ZlcnNpb24uanNvbicpO1xuXG4gICAgbmV3IFNhbXBsZUZpbGUodGhpcywgJ19fbWFpbl9fLnB5Jywge1xuICAgICAgY29udGVudHM6IFtcbiAgICAgICAgJ2Zyb20gcHVsdW1pLnByb3ZpZGVyLmV4cGVyaW1lbnRhbCBpbXBvcnQgY29tcG9uZW50X3Byb3ZpZGVyX2hvc3QnLFxuICAgICAgICBgZnJvbSAke3RoaXMubW9kdWxlTmFtZX0uZXhhbXBsZV9jb21wb25lbnQgaW1wb3J0IEV4YW1wbGVDb21wb25lbnRgLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2lmIF9fbmFtZV9fID09IFwiX19tYWluX19cIjonLFxuICAgICAgICAnICAgICMgQ2FsbCB0aGUgY29tcG9uZW50IHByb3ZpZGVyIGhvc3QuIFRoaXMgd2lsbCBkaXNjb3ZlciBhbnkgQ29tcG9uZW50UmVzb3VyY2UnLFxuICAgICAgICAnICAgICMgc3ViY2xhc3NlcyBpbiB0aGlzIHBhY2thZ2UsIGluZmVyIHRoZWlyIHNjaGVtYSBhbmQgaG9zdCBhIHByb3ZpZGVyIHRoYXQnLFxuICAgICAgICAnICAgICMgYWxsb3dzIGNvbnN0cnVjdGluZyB0aGVzZSBjb21wb25lbnRzIGZyb20gYSBQdWx1bWkgcHJvZ3JhbS4nLFxuICAgICAgICAnICAgIGNvbXBvbmVudF9wcm92aWRlcl9ob3N0KCcsXG4gICAgICAgIGAgICAgICAgIG5hbWU9XCIke2NvbXBvbmVudE5hbWV9XCIsYCxcbiAgICAgICAgJyAgICAgICAgIyBMaXN0IHlvdXIgY29tcG9uZW50cyBoZXJlIHRoYXQgeW91IHdhbnQgdG8gZXhwb3J0JyxcbiAgICAgICAgJyAgICAgICAgY29tcG9uZW50cz1bJyxcbiAgICAgICAgJyAgICAgICAgICAgIEV4YW1wbGVDb21wb25lbnQsJyxcbiAgICAgICAgJyAgICAgICAgXSwnLFxuICAgICAgICAnICAgICknLFxuICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGdpdGh1YiA9IHRoaXMuZ2l0aHViO1xuICAgIGlmICghZ2l0aHViKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgcHJvamVjdCBtdXN0IGJlIGEgZ2l0aHViIHByb2plY3QnKTtcbiAgICB9XG4gICAgY29uc3QgaW5zdGFsbFRhc2sgPSB0aGlzLnRhc2tzLnRyeUZpbmQoJ2luc3RhbGwnKTtcbiAgICBpZiAoIWluc3RhbGxUYXNrKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2luc3RhbGwgdGFzayBub3QgZm91bmQnKTtcbiAgICB9XG5cbiAgICB0aGlzLmJ1aWxkV29ya2Zsb3cgPSBuZXcgQnVpbGRXb3JrZmxvdyh0aGlzLCB7XG4gICAgICAuLi5vcHRpb25zLmJ1aWxkV29ya2Zsb3dPcHRpb25zLFxuICAgICAgYnVpbGRUYXNrOiB0aGlzLmJ1aWxkVGFzayxcbiAgICAgIGFydGlmYWN0c0RpcmVjdG9yeTogJ2Rpc3QnLFxuICAgICAgcHJlQnVpbGRTdGVwczogW1xuICAgICAgICAuLi4ob3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucz8ucHJlQnVpbGRTdGVwcyA/PyBbXSksXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnU2V0dXAgUHl0aG9uJyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1weXRob25AdjUnLFxuICAgICAgICB9LFxuICAgICAgICB7IHJ1bjogJ3B5dGhvbiAtbSB2ZW52IHZlbnYnIH0sXG4gICAgICAgIHsgcnVuOiB0aGlzLmdpdGh1Yi5wcm9qZWN0LnJ1blRhc2tDb21tYW5kKGluc3RhbGxUYXNrKSB9LFxuICAgICAgICB7XG4gICAgICAgICAgdXNlczogJ3B1bHVtaS9hY3Rpb25zQHY2JyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAncHVsdW1pLXZlcnNpb24nOiAnbGF0ZXN0JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJ1aWxkTmFtZSA9IHRoaXMuYnVpbGRXb3JrZmxvdy5uYW1lO1xuICAgIGNvbnN0IGJ1aWxkV29ya2Zsb3cgPSB0aGlzLmdpdGh1Yi50cnlGaW5kV29ya2Zsb3coYnVpbGROYW1lKTtcbiAgICBpZiAoIWJ1aWxkV29ya2Zsb3cpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgY291bGQgbm90IGZpbmQgYnVpbGQgd29ya2Zsb3cgJHtidWlsZE5hbWV9YCk7XG4gICAgfVxuICAgIGNvbnN0IG11dGF0aW9uSm9iID0gYnVpbGRXb3JrZmxvdy5nZXRKb2IoJ3NlbGYtbXV0YXRpb24nKTtcbiAgICBidWlsZFdvcmtmbG93Py51cGRhdGVKb2IoJ3NlbGYtbXV0YXRpb24nLCB7XG4gICAgICAuLi5tdXRhdGlvbkpvYixcbiAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgIC4uLm11dGF0aW9uSm9iLnBlcm1pc3Npb25zLFxuICAgICAgICAuLi5wcm9qZW5DcmVkZW50aWFscz8ucGVybWlzc2lvbnMsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKChvcHRpb25zLmF1dG9NZXJnZSA/PyB0cnVlKSAmJiB0aGlzLmdpdGh1Yj8ubWVyZ2lmeSkge1xuICAgICAgdGhpcy5hdXRvTWVyZ2UgPSBuZXcgQXV0b01lcmdlKHRoaXMuZ2l0aHViLCBvcHRpb25zLmF1dG9NZXJnZU9wdGlvbnMpO1xuICAgICAgaWYgKG9wdGlvbnMuZ2l0aHViT3B0aW9ucz8ucHVsbFJlcXVlc3RMaW50ID8/IHRydWUpIHtcbiAgICAgICAgdGhpcy5hdXRvTWVyZ2UuYWRkQ29uZGl0aW9ucygnc3RhdHVzLXN1Y2Nlc3M9VmFsaWRhdGUgUFIgdGl0bGUnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYXV0b01lcmdlLmFkZENvbmRpdGlvbnNMYXRlcih7XG4gICAgICAgIHJlbmRlcjogKCkgPT5cbiAgICAgICAgICB0aGlzLmJ1aWxkV29ya2Zsb3c/LmJ1aWxkSm9iSWRzLm1hcCgoaWQpID0+IGBzdGF0dXMtc3VjY2Vzcz0ke2lkfWApID8/XG4gICAgICAgICAgW10sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5yZWxlYXNlID8/IHRydWUpIHtcbiAgICAgIG5ldyBSZWxlYXNlKHRoaXMsIHtcbiAgICAgICAgYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgICBicmFuY2g6ICdtYWluJyxcbiAgICAgICAgdGFzazogdGhpcy5wYWNrYWdlVGFzayxcbiAgICAgICAgdmVyc2lvbkZpbGU6IHZlcnNpb25GaWxlUGF0aCxcbiAgICAgICAgcmVsZWFzZVRyaWdnZXI6IG9wdGlvbnMucmVsZWFzZVRyaWdnZXIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
package/lib/release.js CHANGED
@@ -81,7 +81,7 @@ class ReleaseWorkflow extends constructs_1.Construct {
81
81
  }
82
82
  exports.ReleaseWorkflow = ReleaseWorkflow;
83
83
  _a = JSII_RTTI_SYMBOL_1;
84
- ReleaseWorkflow[_a] = { fqn: "@hallcor/pulumi-projen-project-types.ReleaseWorkflow", version: "0.0.62" };
84
+ ReleaseWorkflow[_a] = { fqn: "@hallcor/pulumi-projen-project-types.ReleaseWorkflow", version: "0.0.64" };
85
85
  class TagRelease extends release_1.Release {
86
86
  constructor(scope, props) {
87
87
  if (!props.task) {
@@ -193,5 +193,5 @@ class TagRelease extends release_1.Release {
193
193
  }
194
194
  exports.TagRelease = TagRelease;
195
195
  _b = JSII_RTTI_SYMBOL_1;
196
- TagRelease[_b] = { fqn: "@hallcor/pulumi-projen-project-types.TagRelease", version: "0.0.62" };
196
+ TagRelease[_b] = { fqn: "@hallcor/pulumi-projen-project-types.TagRelease", version: "0.0.64" };
197
197
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDJDQUF1QztBQUN2QyxtQ0FBdUM7QUFDdkMsOENBQTBEO0FBQzFELDJEQUEwRTtBQUUxRSx1RUFJMkM7QUFDM0MsZ0RBQThFO0FBNkI5RSxNQUFhLGVBQWdCLFNBQVEsc0JBQVM7SUFDckMsTUFBTSxDQUFDLGFBQWE7UUFDekIsT0FBTztZQUNMLEVBQUUsRUFBRSxnQkFBZ0I7WUFDcEIsSUFBSSxFQUFFLDBCQUEwQjtZQUNoQyxHQUFHLEVBQUU7Z0JBQ0gsdUZBQXVGO2dCQUN2RixNQUFNO2dCQUNOLHNDQUFzQztnQkFDdEMsTUFBTTtnQkFDTix1Q0FBdUM7Z0JBQ3ZDLElBQUk7YUFDTCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDWixHQUFHLEVBQUU7Z0JBQ0gsWUFBWSxFQUFFLDZCQUE2QjthQUM1QztTQUNGLENBQUM7SUFDSixDQUFDO0lBQ00sTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUE2QjtRQUN2RCxPQUFPO1lBQ0wsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixFQUFFLEVBQUUsT0FBTyxDQUFDLG1CQUFtQjtnQkFDN0IsQ0FBQyxDQUFDLGdEQUFnRDtnQkFDbEQsQ0FBQyxDQUFDLFNBQVM7WUFDYixHQUFHLEVBQUU7Z0JBQ0gsbUJBQW1CO2dCQUNuQixPQUFPLENBQUMsVUFBVTtnQkFDbEIsaUNBQWlDO2dCQUNqQyxnQkFBZ0IsT0FBTyxDQUFDLGFBQWEsRUFBRTtnQkFDdkMsV0FBVyxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUMvQixjQUFjO2FBQ2YsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ1gsR0FBRyxFQUFFO2dCQUNILFlBQVksRUFBRSw2QkFBNkI7YUFDNUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUs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RSxTQUFTLGNBQWMsR0FBRzt5QkFDdkMsQ0FBQztxQkFDSDtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUMvQixJQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMxRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN0QixxRkFBcUYsQ0FDdEYsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs7QUE5SEgsZ0NBK0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUHJvamVjdCwgVGFzayB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBHaXRIdWIsIFdvcmtmbG93U3RlcHMgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yic7XG5pbXBvcnQgeyBERUZBVUxUX0dJVEhVQl9BQ1RJT05TX1VTRVIgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yi9jb25zdGFudHMnO1xuXG5pbXBvcnQge1xuICBKb2JQZXJtaXNzaW9uLFxuICBKb2JQZXJtaXNzaW9ucyxcbiAgSm9iU3RlcCxcbn0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7IFJlbGVhc2UgYXMgUHJvamVuUmVsZWFzZSwgUmVsZWFzZVRyaWdnZXIgfSBmcm9tICdwcm9qZW4vbGliL3JlbGVhc2UnO1xuaW1wb3J0IHsgVGFnUmVsZWFzZU9wdGlvbnMgfSBmcm9tICcuL3N0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdpdFRhZ1B1Ymxpc2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgcGVybWlzc2lvbnMgdG8gYWRkIHRvIHRoZSBHaXQgVGFnIEpvYlxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbnM/OiBKb2JQZXJtaXNzaW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVSZWxlYXNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgY2hhbmdlbG9nIGZpbGUgdG8gZ2VuZXJhdGUgcmVsZWFzZSBub3RlcyBmcm9tXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2Vsb2dQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByZWxlYXNlIHRhZy4gVGhpcyBjb3VsZCBiZSBzb21ldGhpbmcgbGlrZSBgJHt7IGdpdGh1Yi5yZWZfbmFtZSB9fWBcbiAgICogb3IgYCQoY2F0IGRpc3QvcmVsZWFzZXRhZy50eHQpYFxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZVRhZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG9ubHkgcnVuIHRoaXMgc3RlcCBpZiB0aGUgYHJlbGVhc2UtZXhpc3RzYCBzdGVwIHJldHVybmVkIHRydWVcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHZlcmlmeVJlbGVhc2VFeGlzdHM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUmVsZWFzZVdvcmtmbG93IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHN0YXRpYyByZWxlYXNlRXhpc3RzKCk6IEpvYlN0ZXAge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogJ3JlbGVhc2UtZXhpc3RzJyxcbiAgICAgIG5hbWU6ICdWZXJpZnkgaWYgcmVsZWFzZSBleGlzdHMnLFxuICAgICAgcnVuOiBbXG4gICAgICAgICdpZiBnaCByZWxlYXNlIHZpZXcgJHt7IGdpdGh1Yi5yZWZfbmFtZSB9fSAtLXJlcG89JHt7IGdpdGh1Yi5yZXBvc2l0b3J5IH19ICY+L2Rldi9udWxsJyxcbiAgICAgICAgJ3RoZW4nLFxuICAgICAgICAnZWNobyBcInJlc3VsdD10cnVlXCIgPj4gJEdJVEhVQl9PVVRQVVQnLFxuICAgICAgICAnZWxzZScsXG4gICAgICAgICdlY2hvIFwicmVzdWx0PWZhbHNlXCIgPj4gJEdJVEhVQl9PVVRQVVQnLFxuICAgICAgICAnZmknLFxuICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgIGVudjoge1xuICAgICAgICBHSVRIVUJfVE9LRU46ICcke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX0nLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlUmVsZWFzZShvcHRpb25zOiBDcmVhdGVSZWxlYXNlT3B0aW9ucyk6IEpvYlN0ZXAge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAnQ3JlYXRlIFJlbGVhc2UnLFxuICAgICAgaWY6IG9wdGlvbnMudmVyaWZ5UmVsZWFzZUV4aXN0c1xuICAgICAgICA/ICchZnJvbUpTT04oc3RlcHMucmVsZWFzZS1leGlzdHMub3V0cHV0cy5yZXN1bHQpJ1xuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHJ1bjogW1xuICAgICAgICAnZ2ggcmVsZWFzZSBjcmVhdGUnLFxuICAgICAgICBvcHRpb25zLnJlbGVhc2VUYWcsXG4gICAgICAgICctLXJlcG8gJHt7IGdpdGh1Yi5yZXBvc2l0b3J5IH19JyxcbiAgICAgICAgYC0tbm90ZXMtZmlsZSAke29wdGlvbnMuY2hhbmdlbG9nUGF0aH1gLFxuICAgICAgICBgLS10aXRsZSAke29wdGlvbnMucmVsZWFzZVRhZ31gLFxuICAgICAgICAnLS12ZXJpZnktdGFnJyxcbiAgICAgIF0uam9pbignICcpLFxuICAgICAgZW52OiB7XG4gICAgICAgIEdJVEhVQl9UT0tFTjogJyR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fScsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY2hhbmdlbG9nUGF0aDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBwcm9qZWN0ID0gUHJvamVjdC5vZih0aGlzKTtcbiAgICBjb25zdCBnaXRodWIgPSBHaXRIdWIub2YocHJvamVjdCk7XG4gICAgaWYgKCFnaXRodWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVsZWFzZVdvcmtmbG93IHJlcXVpcmVzIGEgR2l0SHViIFByb2plY3QnKTtcbiAgICB9XG5cbiAgICBjb25zdCB3b3JrZmxvd05hbWUgPSAnZ2l0aHViLXJlbGVhc2UnO1xuXG4gICAgaWYgKGdpdGh1Yi50cnlGaW5kV29ya2Zsb3cod29ya2Zsb3dOYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIHJlbGVhc2Ugd29ya2Zsb3cgYWxyZWFkeSBleGlzdHMnKTtcbiAgICB9XG5cbiAgICBjb25zdCByZWxlYXNlID0gZ2l0aHViLmFkZFdvcmtmbG93KHdvcmtmbG93TmFtZSk7XG4gICAgcmVsZWFzZS5ydW5OYW1lID0gJ1JlbGVhc2UgJHt7IGdpdGh1Yi5yZWZfbmFtZSB9fSc7XG4gICAgcmVsZWFzZS5vbih7IHB1c2g6IHsgdGFnczogWyd2Ki4qLionXSB9IH0pO1xuXG4gICAgcmVsZWFzZS5hZGRKb2IoJ3B1Ymxpc2gtdG8tZ2l0aHViLXJlbGVhc2UnLCB7XG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgIH0sXG4gICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAgV29ya2Zsb3dTdGVwcy5jaGVja291dCh7IHdpdGg6IHsgZmV0Y2hEZXB0aDogMCB9IH0pLFxuICAgICAgICBSZWxlYXNlV29ya2Zsb3cucmVsZWFzZUV4aXN0cygpLFxuICAgICAgICBSZWxlYXNlV29ya2Zsb3cuY3JlYXRlUmVsZWFzZSh7XG4gICAgICAgICAgY2hhbmdlbG9nUGF0aCxcbiAgICAgICAgICByZWxlYXNlVGFnOiAnJHt7IGdpdGh1Yi5yZWZfbmFtZSB9fScsXG4gICAgICAgICAgdmVyaWZ5UmVsZWFzZUV4aXN0czogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgbmFtZTogJ1B1Ymxpc2ggdG8gR2l0SHViIFJlbGVhc2UnLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWdSZWxlYXNlIGV4dGVuZHMgUHJvamVuUmVsZWFzZSB7XG4gIHB1YmxpYyByZWFkb25seSB0cmlnZ2VyOiBSZWxlYXNlVHJpZ2dlcjtcbiAgcHVibGljIHJlYWRvbmx5IHB1Ymxpc2hUYXNrOiBUYXNrO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBwcm9wczogVGFnUmVsZWFzZU9wdGlvbnMpIHtcbiAgICBpZiAoIXByb3BzLnRhc2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGFnUmVsZWFzZSByZXF1aXJlcyBhIHJlbGVhc2UgdGFzaycpO1xuICAgIH1cbiAgICBzdXBlcihzY29wZSwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICB0YXNrOiBwcm9wcy50YXNrLFxuICAgICAgZ2l0aHViUmVsZWFzZTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwcm9qZWN0ID0gUHJvamVjdC5vZih0aGlzKTtcbiAgICB0aGlzLnRyaWdnZXIgPSBwcm9wcy5yZWxlYXNlVHJpZ2dlciA/PyBSZWxlYXNlVHJpZ2dlci5jb250aW51b3VzKCk7XG5cbiAgICBjb25zdCBjaGFuZ2Vsb2dGaWxlTmFtZSA9ICdjaGFuZ2Vsb2cubWQnO1xuICAgIGNvbnN0IHZlcnNpb25GaWxlTmFtZSA9ICd2ZXJzaW9uLnR4dCc7XG4gICAgY29uc3QgcmVsZWFzZVRhZ0ZpbGVOYW1lID0gJ3JlbGVhc2V0YWcudHh0JztcblxuICAgIGNvbnN0IGNoYW5nZWxvZ0ZpbGUgPSBwYXRoLnBvc2l4LmpvaW4oXG4gICAgICB0aGlzLmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgIGNoYW5nZWxvZ0ZpbGVOYW1lLFxuICAgICk7XG4gICAgY29uc3QgcmVsZWFzZVRhZ0ZpbGUgPSBwYXRoLnBvc2l4LmpvaW4oXG4gICAgICB0aGlzLmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgIHJlbGVhc2VUYWdGaWxlTmFtZSxcbiAgICApO1xuICAgIGNvbnN0IHZlcnNpb25GaWxlID0gcGF0aC5wb3NpeC5qb2luKFxuICAgICAgdGhpcy5hcnRpZmFjdHNEaXJlY3RvcnksXG4gICAgICB2ZXJzaW9uRmlsZU5hbWUsXG4gICAgKTtcblxuICAgIHRoaXMucHVibGlzaFRhc2sgPSB0aGlzLnB1Ymxpc2hlci5wdWJsaXNoVG9HaXQoe1xuICAgICAgY2hhbmdlbG9nRmlsZSxcbiAgICAgIHJlbGVhc2VUYWdGaWxlLFxuICAgICAgdmVyc2lvbkZpbGUsXG4gICAgICBwcm9qZWN0Q2hhbmdlbG9nRmlsZTogdGhpcy50cmlnZ2VyLmNoYW5nZWxvZ1BhdGgsXG4gICAgICBnaXRCcmFuY2g6IHByb3BzLmJyYW5jaCxcbiAgICAgIGdpdFB1c2hDb21tYW5kOiB0aGlzLnRyaWdnZXIuZ2l0UHVzaENvbW1hbmQsXG4gICAgfSk7XG5cbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZSh0aGlzLmFydGlmYWN0c0RpcmVjdG9yeSk7XG4gICAgY29uc3QgZ2l0aHViID0gR2l0SHViLm9mKHByb2plY3QpO1xuICAgIGlmICghZ2l0aHViKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlbGVhc2VXb3JrZmxvdyByZXF1aXJlcyBhIEdpdEh1YiBQcm9qZWN0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgZG93bmxvYWRBcnRpZmFjdCA9IFdvcmtmbG93U3RlcHMuZG93bmxvYWRBcnRpZmFjdCh7XG4gICAgICB3aXRoOiB7XG4gICAgICAgIG5hbWU6ICdidWlsZC1hcnRpZmFjdCcsXG4gICAgICAgIHBhdGg6IHRoaXMuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCByZXN0b3JlQXJ0aWZhY3QgPSB7XG4gICAgICBuYW1lOiAnUmVzdG9yZSBidWlsZCBhcnRpZmFjdCBwZXJtaXNzaW9ucycsXG4gICAgICBydW46IGBjZCAke3RoaXMuYXJ0aWZhY3RzRGlyZWN0b3J5fSAmJiBzZXRmYWNsIC0tcmVzdG9yZT1wZXJtaXNzaW9ucy1iYWNrdXAuYWNsYCxcbiAgICAgIGNvbnRpbnVlT25FcnJvcjogdHJ1ZSxcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRKb2JzKHtcbiAgICAgIHJlbGVhc2VfZ2l0OiB7XG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgLi4ucHJvcHMuZ2l0VGFnUHVibGlzaE9wdGlvbnM/LnBlcm1pc3Npb25zLFxuICAgICAgICB9LFxuICAgICAgICBpZjogXCJuZWVkcy5yZWxlYXNlLm91dHB1dHMudGFnX2V4aXN0cyAhPSAndHJ1ZScgJiYgbmVlZHMucmVsZWFzZS5vdXRwdXRzLmxhdGVzdF9jb21taXQgPT0gZ2l0aHViLnNoYVwiLFxuICAgICAgICBuYW1lOiAnUHVibGlzaCBHaXQgVGFnJyxcbiAgICAgICAgbmVlZHM6IFsncmVsZWFzZSddLFxuICAgICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgICBzdGVwczogW1xuICAgICAgICAgIC4uLmdpdGh1Yi5wcm9qZW5DcmVkZW50aWFscy5zZXR1cFN0ZXBzLFxuICAgICAgICAgIFdvcmtmbG93U3RlcHMuY2hlY2tvdXQoe1xuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICByZWY6IHByb3BzLmJyYW5jaCxcbiAgICAgICAgICAgICAgdG9rZW46IGdpdGh1Yi5wcm9qZW5DcmVkZW50aWFscy50b2tlblJlZixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZG93bmxvYWRBcnRpZmFjdCxcbiAgICAgICAgICByZXN0b3JlQXJ0aWZhY3QsXG4gICAgICAgICAgV29ya2Zsb3dTdGVwcy5zZXR1cEdpdElkZW50aXR5KHtcbiAgICAgICAgICAgIGdpdElkZW50aXR5OiBwcm9wcy5naXRJZGVudGl0eSA/PyBERUZBVUxUX0dJVEhVQl9BQ1RJT05TX1VTRVIsXG4gICAgICAgICAgfSksXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JlbGVhc2UnLFxuICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgIFZFUlNJT05fRklMRTogdmVyc2lvbkZpbGUsXG4gICAgICAgICAgICAgIENIQU5HRUxPRzogdGhpcy50cmlnZ2VyLmNoYW5nZWxvZ1BhdGggPz8gJycsXG4gICAgICAgICAgICAgIFJFTEVBU0VfVEFHX0ZJTEU6IHJlbGVhc2VUYWdGaWxlLFxuICAgICAgICAgICAgICBHSVRIVUJfVE9LRU46IGdpdGh1Yi5wcm9qZW5DcmVkZW50aWFscy50b2tlblJlZixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBydW46IHByb2plY3QucnVuVGFza0NvbW1hbmQodGhpcy5wdWJsaXNoVGFzayksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAoIXRoaXMudHJpZ2dlci5pc01hbnVhbCkge1xuICAgICAgdGhpcy5hZGRKb2JzKHtcbiAgICAgICAgcmVsZWFzZV9naXRodWI6IHtcbiAgICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBuZWVkczogWydyZWxlYXNlX2dpdCcsICdyZWxlYXNlJ10sXG4gICAgICAgICAgaWY6IFwibmVlZHMucmVsZWFzZS5vdXRwdXRzLnRhZ19leGlzdHMgIT0gJ3RydWUnICYmIG5lZWRzLnJlbGVhc2Uub3V0cHV0cy5sYXRlc3RfY29tbWl0ID09IGdpdGh1Yi5zaGFcIixcbiAgICAgICAgICBuYW1lOiAnUHVibGlzaCBHaXRIdWIgUmVsZWFzZScsXG4gICAgICAgICAgcnVuc09uOiBbJ3VidW50dS1sYXRlc3QnXSxcbiAgICAgICAgICBzdGVwczogW1xuICAgICAgICAgICAgZG93bmxvYWRBcnRpZmFjdCxcbiAgICAgICAgICAgIHJlc3RvcmVBcnRpZmFjdCxcbiAgICAgICAgICAgIFJlbGVhc2VXb3JrZmxvdy5jcmVhdGVSZWxlYXNlKHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nUGF0aDogY2hhbmdlbG9nRmlsZSxcbiAgICAgICAgICAgICAgcmVsZWFzZVRhZzogYCQoY2F0ICR7cmVsZWFzZVRhZ0ZpbGV9KWAsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnRyaWdnZXIuY2hhbmdlbG9nUGF0aCkge1xuICAgICAgICBuZXcgUmVsZWFzZVdvcmtmbG93KHRoaXMsICdyZWxlYXNlLWdpdGh1YicsIHRoaXMudHJpZ2dlci5jaGFuZ2Vsb2dQYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIud2FybihcbiAgICAgICAgICAnbWFudWFsIHJlbGVhc2UgdHJpZ2dlciBoYXMgbm8gY2hhbmdlbG9nUGF0aCwgbm90IGdlbmVyYXRpbmcgcmVsZWFzZS1naXRodWIgd29ya2Zsb3cnLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -46,5 +46,5 @@ class TypeScriptProject extends typescript_1.TypeScriptProject {
46
46
  }
47
47
  exports.TypeScriptProject = TypeScriptProject;
48
48
  _a = JSII_RTTI_SYMBOL_1;
49
- TypeScriptProject[_a] = { fqn: "@hallcor/pulumi-projen-project-types.TypeScriptProject", version: "0.0.62" };
49
+ TypeScriptProject[_a] = { fqn: "@hallcor/pulumi-projen-project-types.TypeScriptProject", version: "0.0.64" };
50
50
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzY3JpcHQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUNuQyw4Q0FBc0Q7QUFDdEQsc0RBQWtEO0FBQ2xELHNEQUFxRjtBQUNyRiwwREFBaUU7QUFHakUsTUFBYSxpQkFBa0IsU0FBUSw4QkFBdUI7SUFDNUQsWUFBWSxPQUErQjtRQUN6QyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUNwRCxJQUFJLGlCQUFnRCxDQUFDO1FBQ3JELElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDOUIsTUFBTSxLQUFLLEdBQUcsMEJBQWlCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUN6RCxLQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDO1lBQ3hFLEtBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7WUFDckUsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7UUFDRCxLQUFLLENBQUM7WUFDSixRQUFRLEVBQUUsSUFBSTtZQUNkLGVBQWUsRUFBRTtnQkFDZixRQUFRLEVBQUU7b0JBQ1IsV0FBVyxFQUFFLElBQUk7aUJBQ2xCO2FBQ0Y7WUFDRCxhQUFhLEVBQUU7Z0JBQ2IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUM7Z0JBQzlELFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUk7Z0JBQ2xDLEdBQUcsT0FBTyxDQUFDLGFBQWE7YUFDekI7WUFDRCxXQUFXLEVBQUU7Z0JBQ1gsY0FBYyxFQUFFLGtCQUFrQjthQUNuQztZQUNELEdBQUcsT0FBTztZQUNWLGlCQUFpQixFQUFFLGlCQUFpQjtTQUNyQyxDQUFDLENBQUM7UUFFSCxJQUFBLHFDQUFzQixFQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRWhELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzlELFVBQVUsRUFBRSxLQUFLLENBQ2Ysa0JBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFO1lBQzFCLGlCQUFpQixFQUFFLElBQUksc0JBQVMsQ0FBQyxXQUFXLENBQUM7U0FDOUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDOztBQXZDSCw4Q0F3Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKc29uUGF0Y2ggfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgR2l0aHViQ3JlZGVudGlhbHMgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yic7XG5pbXBvcnQgeyBUcmFuc2Zvcm0gfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQnO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFByb2plY3QgYXMgUHJvamVuVHlwZVNjcmlwdFByb2plY3QgfSBmcm9tICdwcm9qZW4vbGliL3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgc2V0V29ya2Zsb3dQZXJtaXNzaW9ucyB9IGZyb20gJy4vaW50ZXJuYWwvanNpaS1wcm9qZWN0JztcbmltcG9ydCB7IFR5cGVTY3JpcHRQcm9qZWN0UHJvcHMgfSBmcm9tICcuL3N0cnVjdHMnO1xuXG5leHBvcnQgY2xhc3MgVHlwZVNjcmlwdFByb2plY3QgZXh0ZW5kcyBQcm9qZW5UeXBlU2NyaXB0UHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFR5cGVTY3JpcHRQcm9qZWN0UHJvcHMpIHtcbiAgICBjb25zdCBwcm9qZW5DcmVkZW50aWFscyA9IG9wdGlvbnMucHJvamVuQ3JlZGVudGlhbHM7XG4gICAgbGV0IGdpdGh1YkNyZWRlbnRpYWxzOiBHaXRodWJDcmVkZW50aWFscyB8IHVuZGVmaW5lZDtcbiAgICBpZiAob3B0aW9ucy5wcm9qZW5DcmVkZW50aWFscykge1xuICAgICAgY29uc3QgY3JlZHMgPSBHaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbigpO1xuICAgICAgKGNyZWRzIGFzIGFueSkub3B0aW9ucy5zZXR1cFN0ZXBzID0gb3B0aW9ucy5wcm9qZW5DcmVkZW50aWFscy5zZXR1cFN0ZXBzO1xuICAgICAgKGNyZWRzIGFzIGFueSkub3B0aW9ucy50b2tlblJlZiA9IG9wdGlvbnMucHJvamVuQ3JlZGVudGlhbHMudG9rZW5SZWY7XG4gICAgICBnaXRodWJDcmVkZW50aWFscyA9IGNyZWRzO1xuICAgIH1cbiAgICBzdXBlcih7XG4gICAgICBwcmV0dGllcjogdHJ1ZSxcbiAgICAgIHByZXR0aWVyT3B0aW9uczoge1xuICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgIHNpbmdsZVF1b3RlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGVzbGludE9wdGlvbnM6IHtcbiAgICAgICAgZGlyczogb3B0aW9ucy5lc2xpbnRPcHRpb25zPy5kaXJzID8/IFtvcHRpb25zLnNyY2RpciA/PyAnc3JjJ10sXG4gICAgICAgIHByZXR0aWVyOiBvcHRpb25zLnByZXR0aWVyID8/IHRydWUsXG4gICAgICAgIC4uLm9wdGlvbnMuZXNsaW50T3B0aW9ucyxcbiAgICAgIH0sXG4gICAgICBqZXN0T3B0aW9uczoge1xuICAgICAgICBjb25maWdGaWxlUGF0aDogJ2plc3QuY29uZmlnLmpzb24nLFxuICAgICAgfSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBwcm9qZW5DcmVkZW50aWFsczogZ2l0aHViQ3JlZGVudGlhbHMsXG4gICAgfSk7XG5cbiAgICBzZXRXb3JrZmxvd1Blcm1pc3Npb25zKHRoaXMsIHByb2plbkNyZWRlbnRpYWxzKTtcblxuICAgIGNvbnN0IGplc3RDb25maWcgPSB0aGlzLnRyeUZpbmRPYmplY3RGaWxlKCdqZXN0LmNvbmZpZy5qc29uJyk7XG4gICAgamVzdENvbmZpZz8ucGF0Y2goXG4gICAgICBKc29uUGF0Y2guYWRkKCcvdHJhbnNmb3JtJywge1xuICAgICAgICAnXi4rXFxcXC4odHxqKXN4PyQnOiBuZXcgVHJhbnNmb3JtKCdAc3djL2plc3QnKSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLmFkZERldkRlcHMoJ0Bzd2MvY29yZScsICdAc3djL2plc3QnKTtcbiAgfVxufVxuIl19
package/lib/typescript.js CHANGED
@@ -108,5 +108,5 @@ class TypeScriptComponent extends typescript_base_1.TypeScriptProject {
108
108
  }
109
109
  exports.TypeScriptComponent = TypeScriptComponent;
110
110
  _a = JSII_RTTI_SYMBOL_1;
111
- TypeScriptComponent[_a] = { fqn: "@hallcor/pulumi-projen-project-types.TypeScriptComponent", version: "0.0.62" };
111
+ TypeScriptComponent[_a] = { fqn: "@hallcor/pulumi-projen-project-types.TypeScriptComponent", version: "0.0.64" };
112
112
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQTZDO0FBRTdDLHVEQUFzRDtBQUV0RCxNQUFhLG1CQUFvQixTQUFRLG1DQUFpQjtJQUV4RCxZQUFZLE9BQW1DO1FBQzdDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLGNBQWM7WUFDaEQsVUFBVSxFQUFFLEtBQUs7WUFDakIsb0JBQW9CLEVBQUU7Z0JBQ3BCLGFBQWEsRUFBRTtvQkFDYixHQUFHLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLGFBQWEsSUFBSSxFQUFFLENBQUM7b0JBQ3REO3dCQUNFLElBQUksRUFBRSxtQkFBbUI7d0JBQ3pCLElBQUksRUFBRTs0QkFDSixnQkFBZ0IsRUFBRSxRQUFRO3lCQUMzQjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9CLElBQUksaUJBQVEsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDdEMsR0FBRyxFQUFFO2dCQUNILE9BQU8sRUFBRSxRQUFRO2FBQ2xCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3pCLFdBQVcsRUFBRSwwQkFBMEI7WUFDdkMsSUFBSSxFQUFFLDBDQUEwQztTQUNqRCxDQUFDLENBQ0gsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ2hELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMscUNBQXFDO1lBQ3JDLDZCQUE2QjtZQUM3QixvQkFBb0I7WUFDcEIsZ0VBQWdFO1lBQ2hFLElBQUk7UUFDTixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQy9CLElBQUksa0JBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO2dCQUN6QixLQUFLLEVBQUU7b0JBQ0wsVUFBVSxFQUFFO3dCQUNWLGdDQUFnQzt3QkFDaEMsc0NBQXNDO3FCQUN2QyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ1osc0JBQXNCLEVBQUU7d0JBQ3RCLDJDQUEyQzt3QkFDM0MsRUFBRTt3QkFDRixLQUFLO3dCQUNMLHFDQUFxQzt3QkFDckMsS0FBSzt3QkFDTCx5Q0FBeUM7d0JBQ3pDLDBCQUEwQjt3QkFDMUIsR0FBRzt3QkFDSCxFQUFFO3dCQUNGLEtBQUs7d0JBQ0wseUJBQXlCO3dCQUN6QixLQUFLO3dCQUNMLGtFQUFrRTt3QkFDbEUsd0JBQXdCO3dCQUN4QixzREFBc0Q7d0JBQ3RELEVBQUU7d0JBQ0YsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGlDQUFpQzt3QkFDakMsNkNBQTZDO3dCQUM3QyxPQUFPO3dCQUNQLDZEQUE2RDt3QkFDN0QscUVBQXFFO3dCQUNyRSw0REFBNEQ7d0JBQzVELGNBQWMsSUFBSSxDQUFDLGFBQWEsOENBQThDO3dCQUM5RSxFQUFFO3dCQUNGLHVDQUF1Qzt3QkFDdkMsUUFBUTt3QkFDUixhQUFhO3dCQUNiLFFBQVE7d0JBQ1IsdUNBQXVDO3dCQUN2Qyw0QkFBNEI7d0JBQzVCLFlBQVk7d0JBQ1osb0VBQW9FO3dCQUNwRSxrREFBa0Q7d0JBQ2xELGVBQWU7d0JBQ2YsYUFBYTt3QkFDYiw0QkFBNEI7d0JBQzVCLFdBQVc7d0JBQ1gsRUFBRTt3QkFDRiwyREFBMkQ7d0JBQzNELDRCQUE0Qjt3QkFDNUIsZUFBZTt3QkFDZiw2QkFBNkI7d0JBQzdCLFNBQVM7d0JBQ1QsS0FBSzt3QkFDTCxLQUFLO3FCQUNOLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDYjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQXpHSCxrREEwR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYW1wbGVEaXIsIFlhbWxGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFR5cGVTY3JpcHRDb21wb25lbnRPcHRpb25zIH0gZnJvbSAnLi9zdHJ1Y3RzJztcbmltcG9ydCB7IFR5cGVTY3JpcHRQcm9qZWN0IH0gZnJvbSAnLi90eXBlc2NyaXB0LWJhc2UnO1xuXG5leHBvcnQgY2xhc3MgVHlwZVNjcmlwdENvbXBvbmVudCBleHRlbmRzIFR5cGVTY3JpcHRQcm9qZWN0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFR5cGVTY3JpcHRDb21wb25lbnRPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGVudHJ5cG9pbnQ6IG9wdGlvbnMuZW50cnlwb2ludCA/PyAnc3JjL2luZGV4LnRzJyxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgYnVpbGRXb3JrZmxvd09wdGlvbnM6IHtcbiAgICAgICAgcHJlQnVpbGRTdGVwczogW1xuICAgICAgICAgIC4uLihvcHRpb25zLmJ1aWxkV29ya2Zsb3dPcHRpb25zPy5wcmVCdWlsZFN0ZXBzID8/IFtdKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB1c2VzOiAncHVsdW1pL2FjdGlvbnNAdjYnLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAncHVsdW1pLXZlcnNpb24nOiAnbGF0ZXN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZERlcHMoJ0BwdWx1bWkvcHVsdW1pJyk7XG4gICAgbmV3IFlhbWxGaWxlKHRoaXMsICdQdWx1bWlQbHVnaW4ueWFtbCcsIHtcbiAgICAgIG9iajoge1xuICAgICAgICBydW50aW1lOiAnbm9kZWpzJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnBvc3RDb21waWxlVGFzay5zcGF3bihcbiAgICAgIHRoaXMuYWRkVGFzaygnZ2V0LXNjaGVtYScsIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdWYWxpZGF0ZSBzY2hlbWEgaXMgdmFsaWQnLFxuICAgICAgICBleGVjOiAncHVsdW1pIHBhY2thZ2UgZ2V0LXNjaGVtYSAuLyA+IC9kZXYvbnVsbCcsXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgY29uc3QgbWF0Y2hlcyA9IHRoaXMucGFja2FnZS5wYWNrYWdlTmFtZS5tYXRjaCgvKEAuKj9cXC8pPyguKykvKTtcbiAgICBpZiAoIW1hdGNoZXMpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50TmFtZSA9IHRoaXMucGFja2FnZS5wYWNrYWdlTmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb21wb25lbnROYW1lID0gbWF0Y2hlc1syXTtcbiAgICAgIC8vIFRPRE86IGRvIHNvbWV0aGluZyB3aXRoIG5hbWVzcGFjZT9cbiAgICAgIC8vIGxldCBuYW1lc3BhY2UgPSB1bmRlZmluZWQ7XG4gICAgICAvLyBpZiAobWF0Y2hlc1sxXSkge1xuICAgICAgLy8gICBuYW1lc3BhY2UgPSBtYXRjaGVzWzFdLnN1YnN0cmluZygxLCBtYXRjaGVzWzFdLmxlbmd0aCAtIDEpO1xuICAgICAgLy8gfVxuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnNhbXBsZUNvZGUgPz8gdHJ1ZSkge1xuICAgICAgbmV3IFNhbXBsZURpcih0aGlzLCAnc3JjJywge1xuICAgICAgICBmaWxlczoge1xuICAgICAgICAgICdpbmRleC50cyc6IFtcbiAgICAgICAgICAgICcvLyBleHBvcnQgeW91ciBjb21wb25lbnRzIGhlcmUnLFxuICAgICAgICAgICAgXCJleHBvcnQgKiBmcm9tICcuL2V4YW1wbGUtY29tcG9uZW50JztcIixcbiAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICdleGFtcGxlLWNvbXBvbmVudC50cyc6IFtcbiAgICAgICAgICAgIFwiaW1wb3J0ICogYXMgcHVsdW1pIGZyb20gJ0BwdWx1bWkvcHVsdW1pJztcIixcbiAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgJy8qKicsXG4gICAgICAgICAgICAnICogSW5wdXQgYXJndW1lbnRzIHRvIHRoZSBjb21wb25lbnQnLFxuICAgICAgICAgICAgJyAqLycsXG4gICAgICAgICAgICAnZXhwb3J0IGludGVyZmFjZSBFeGFtcGxlQ29tcG9uZW50QXJncyB7JyxcbiAgICAgICAgICAgICcgIC8vIENvbXBvbmVudCBpbnB1dHMuLi4nLFxuICAgICAgICAgICAgJ30nLFxuICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAnLyoqJyxcbiAgICAgICAgICAgICcgKiBBbiBleGFtcGxlIGNvbXBvbmVudCcsXG4gICAgICAgICAgICAnICovJyxcbiAgICAgICAgICAgICdleHBvcnQgY2xhc3MgRXhhbXBsZUNvbXBvbmVudCBleHRlbmRzIHB1bHVtaS5Db21wb25lbnRSZXNvdXJjZSB7JyxcbiAgICAgICAgICAgICcgIC8vIENvbXBvbmVudCBvdXRwdXRzJyxcbiAgICAgICAgICAgICcgIC8vIHB1YmxpYyByZWFkb25seSByb2xlQXJuOiBwdWx1bWkuT3V0cHV0PHN0cmluZz47JyxcbiAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgJyAgY29uc3RydWN0b3IoJyxcbiAgICAgICAgICAgICcgICAgbmFtZTogc3RyaW5nLCcsXG4gICAgICAgICAgICAnICAgIGFyZ3M6IEV4YW1wbGVDb21wb25lbnRBcmdzLCcsXG4gICAgICAgICAgICAnICAgIG9wdHM/OiBwdWx1bWkuQ29tcG9uZW50UmVzb3VyY2VPcHRpb25zLCcsXG4gICAgICAgICAgICAnICApIHsnLFxuICAgICAgICAgICAgJyAgICAvLyB0eXBlIGhhcyB0aGUgZm9ybWF0IG9mICR7cGFja2FnZX06aW5kZXg6JHtjbGFzc05hbWV9JyxcbiAgICAgICAgICAgICcgICAgLy8gd2hlcmUgcGFja2FnZSBuZWVkcyB0byBtYXRjaCB0aGUgYG5hbWVgIGluIHlvdXIgcGFja2FnZS5qc29uJyxcbiAgICAgICAgICAgICcgICAgLy8gYW5kIGNsYXNzTmFtZSBuZWVkcyB0byBtYXRjaCB0aGUgbmFtZSBvZiB0aGlzIGNsYXNzJyxcbiAgICAgICAgICAgIGAgICAgc3VwZXIoJyR7dGhpcy5jb21wb25lbnROYW1lfTppbmRleDpFeGFtcGxlQ29tcG9uZW50JywgbmFtZSwgYXJncywgb3B0cyk7YCxcbiAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgJyAgICAvLyBDb21wb25lbnQgcmVzb3VyY2VzIGdvIGhlcmUuLi4nLFxuICAgICAgICAgICAgJyAgICAvLycsXG4gICAgICAgICAgICAnICAgIC8vIGUuZy4nLFxuICAgICAgICAgICAgJyAgICAvLycsXG4gICAgICAgICAgICAnICAgIC8vIGNvbnN0IHJvbGUgPSBuZXcgYXdzLmlhbS5Sb2xlKCcsXG4gICAgICAgICAgICAnICAgIC8vICAgYCR7bmFtZX0tcG9saWN5YCwnLFxuICAgICAgICAgICAgJyAgICAvLyAgIHsnLFxuICAgICAgICAgICAgJyAgICAvLyAgICAgYXNzdW1lUm9sZVBvbGljeTogYXdzLmlhbS5hc3N1bWVSb2xlUG9saWN5Rm9yUHJpbmNpcGFsKCcsXG4gICAgICAgICAgICAnICAgIC8vICAgICAgIGF3cy5pYW0uUHJpbmNpcGFscy5MYW1iZGFQcmluY2lwYWwsJyxcbiAgICAgICAgICAgICcgICAgLy8gICAgICksJyxcbiAgICAgICAgICAgICcgICAgLy8gICB9LCcsXG4gICAgICAgICAgICAnICAgIC8vICAgeyBwYXJlbnQ6IHRoaXMgfSwnLFxuICAgICAgICAgICAgJyAgICAvLyApOycsXG4gICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICcgICAgLy8gcmVnaXN0ZXIgYW55IG9mIHRoZSBjb21wb25lbnQgb3V0cHV0cyBoZXJlIGFzIHdlbGwnLFxuICAgICAgICAgICAgJyAgICB0aGlzLnJlZ2lzdGVyT3V0cHV0cyh7JyxcbiAgICAgICAgICAgICcgICAgICAvLyBlLmcuJyxcbiAgICAgICAgICAgICcgICAgICAvLyByb2xlQXJuOiByb2xlLmFybiwnLFxuICAgICAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAgICAgJyAgfScsXG4gICAgICAgICAgICAnfVxcbicsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -76,7 +76,7 @@
76
76
  "publishConfig": {
77
77
  "access": "public"
78
78
  },
79
- "version": "0.0.62",
79
+ "version": "0.0.64",
80
80
  "types": "lib/index.d.ts",
81
81
  "stability": "stable",
82
82
  "jsii": {