@hallcor/pulumi-projen-project-types 0.0.63 → 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",
@@ -9522,6 +9522,6 @@
9522
9522
  "symbolId": "src/structs/typescript-options/project-props:TypeScriptProjectProps"
9523
9523
  }
9524
9524
  },
9525
- "version": "0.0.63",
9526
- "fingerprint": "vc3pEKlLuXwXdzZKvvxbWlvOPkmRan19avrh2r+oiiU="
9525
+ "version": "0.0.64",
9526
+ "fingerprint": "+BwQuzYtj/vLmjoklwR8LSl9mDBhitzKeN7AndeKYmQ="
9527
9527
  }
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.63" };
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==
@@ -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.63" };
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,7 @@ 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.63" };
82
+ PulumiToken[_b] = { fqn: "@hallcor/pulumi-projen-project-types.PulumiToken", version: "0.0.64" };
83
83
  /**
84
84
  * Utilities for configuring Pulumi ESC inside GitHub workflows.
85
85
  *
@@ -221,6 +221,6 @@ class PulumiEscSetup {
221
221
  }
222
222
  exports.PulumiEscSetup = PulumiEscSetup;
223
223
  _c = JSII_RTTI_SYMBOL_1;
224
- PulumiEscSetup[_c] = { fqn: "@hallcor/pulumi-projen-project-types.PulumiEscSetup", version: "0.0.63" };
224
+ PulumiEscSetup[_c] = { fqn: "@hallcor/pulumi-projen-project-types.PulumiEscSetup", version: "0.0.64" };
225
225
  PulumiEscSetup.ESC_ACTION_STEP_ID = 'esc';
226
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.63" };
239
+ PythonComponent[_a] = { fqn: "@hallcor/pulumi-projen-project-types.PythonComponent", version: "0.0.64" };
240
240
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl0aG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3B5dGhvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJCQUE4QjtBQUM5QiwrQkFBNEI7QUFDNUIsbUNBQXlEO0FBQ3pELDRDQUFpRDtBQUNqRCw4Q0FBaUU7QUFDakUsOENBQWtEO0FBQ2xELGdEQUE2QztBQUM3QyxtREFBOEQ7QUFHOUQsNERBQTREO0FBQzVELGtDQUFrQztBQUNsQyxFQUFFO0FBQ0Ysa0VBQWtFO0FBQ2xFLFNBQVMsYUFBYSxDQUFDLE9BQStCO0lBQ3BELE1BQU0sV0FBVyxHQUFHLE9BQWMsQ0FBQztJQUNuQyxJQUFJLFNBQVMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM3QixNQUFNLFVBQVUsR0FBYSxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDOUQsTUFBTSxPQUFPLEdBQWEsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3hELElBQ0UsQ0FBQyxVQUFVO1lBQ1gsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3ZCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxFQUN0RSxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixtR0FBbUcsQ0FDcEcsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNqQyxnREFBZ0QsQ0FDaEQsQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLElBQ0UsQ0FBQyxPQUFPO29CQUNSLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQztvQkFD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QUUsSUFBSSxDQUFDLFdBQVc7Z0JBQ3RCLFdBQVcsRUFBRSxlQUFlO2dCQUM1QixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7YUFDdkMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7O0FBL0xILDBDQWdNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0YXRTeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgU2FtcGxlRGlyLCBTYW1wbGVGaWxlLCBZYW1sRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBCdWlsZFdvcmtmbG93IH0gZnJvbSAncHJvamVuL2xpYi9idWlsZCc7XG5pbXBvcnQgeyBBdXRvTWVyZ2UsIEdpdGh1YkNyZWRlbnRpYWxzIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWInO1xuaW1wb3J0IHsgUHl0aG9uUHJvamVjdCB9IGZyb20gJ3Byb2plbi9saWIvcHl0aG9uJztcbmltcG9ydCB7IFJlbGVhc2UgfSBmcm9tICdwcm9qZW4vbGliL3JlbGVhc2UnO1xuaW1wb3J0IHsgdG9QeXRob25WZXJzaW9uUmFuZ2UgfSBmcm9tICdwcm9qZW4vbGliL3V0aWwvc2VtdmVyJztcbmltcG9ydCB7IFB5dGhvbkNvbXBvbmVudE9wdGlvbnMgfSBmcm9tICcuL3N0cnVjdHMnO1xuXG4vLyBkZXZEZXBzIGFuZCBfX25ld3NfXy5hcmdzLmRldkRlcHMgd2lsbCBhbHdheXMgYmUgdGhlIHNhbWVcbi8vIHByb2plbiBkb2Vzbid0IGxldCB5b3Ugb3ZlcnJpZGVcbi8vXG4vLyBoYWNrIHRvIHdvcmthcm91bmQgaHR0cHM6Ly9naXRodWIuY29tL3Byb2plbi9wcm9qZW4vaXNzdWVzLzI0NzVcbmZ1bmN0aW9uIGhhbmRsZURldkRlcHMob3B0aW9uczogUHl0aG9uQ29tcG9uZW50T3B0aW9ucyk6IGFueSB7XG4gIGNvbnN0IGluaXRPcHRpb25zID0gb3B0aW9ucyBhcyBhbnk7XG4gIGlmICgnX19uZXdfXycgaW4gaW5pdE9wdGlvbnMpIHtcbiAgICBjb25zdCBuZXdEZXZEZXBzOiBzdHJpbmdbXSA9IGluaXRPcHRpb25zLl9fbmV3X18uYXJncy5kZXZEZXBzO1xuICAgIGNvbnN0IG5ld0RlcHM6IHN0cmluZ1tdID0gaW5pdE9wdGlvbnMuX19uZXdfXy5hcmdzLmRlcHM7XG4gICAgaWYgKFxuICAgICAgIW5ld0RldkRlcHMgfHxcbiAgICAgIG5ld0RldkRlcHMubGVuZ3RoICE9PSAxIHx8XG4gICAgICAhbmV3RGV2RGVwc1swXS5tYXRjaCgvKEBoYWxsY29yXFwvcHVsdW1pLXByb2plbi1wcm9qZWN0LXR5cGVzKUA/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.63" };
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.63" };
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.63" };
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.63" };
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.63",
79
+ "version": "0.0.64",
80
80
  "types": "lib/index.d.ts",
81
81
  "stability": "stable",
82
82
  "jsii": {