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

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## 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"
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 clientIdSecret: 'MY_GITHUB_APP_ID',\n }),\n});\n```\n\n**From a GitHub app via Pulumi ESC**\n```ts\nnew TypeScriptComponent({\n ...,\n projenCredentials: GithubCredentials.fromApp({\n clientIdSecret: 'MY_GITHUB_APP_ID',\n privateKeySecret: 'MY_GITHUB_APP_PRIVATE_KEY',\n pulumiEscSetup: PulumiEscSetup.fromOidcAuth({\n environment: 'imports/github-secrets',\n organization: 'pulumi',\n requestedToken: PulumiToken.fromOrgToken(),\n }),\n }),\n});\n```\n\nWhen `pulumiEscSetup` is supplied to `GithubCredentials.fromApp(...)`, the generated\nGitHub App token step reads `app-id` and `private-key` from ESC step outputs using\nthe `clientIdSecret` and `privateKeySecret` names as output keys.\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\nMapped `exportEnvironmentVariables` values are passed to the ESC action as a comma-delimited string.\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",
@@ -517,13 +517,13 @@
517
517
  },
518
518
  {
519
519
  "docs": {
520
- "remarks": "Each entry should follow the ESC action mapping format, for example\n`GITHUB_TOKEN=PULUMI_BOT_TOKEN` or `AWS_ACCESS_KEY_ID`.",
520
+ "remarks": "Each entry should follow the ESC action mapping format, for example\n`GITHUB_TOKEN=PULUMI_BOT_TOKEN` or `AWS_ACCESS_KEY_ID`. The values are\nrendered as a comma-delimited string for the ESC action input.",
521
521
  "stability": "stable",
522
522
  "summary": "Provide explicit mappings to export."
523
523
  },
524
524
  "locationInModule": {
525
525
  "filename": "src/pulumi-esc-setup.ts",
526
- "line": 32
526
+ "line": 33
527
527
  },
528
528
  "name": "fromMapping",
529
529
  "parameters": [
@@ -666,7 +666,7 @@
666
666
  "immutable": true,
667
667
  "locationInModule": {
668
668
  "filename": "src/github-credentials.ts",
669
- "line": 95
669
+ "line": 98
670
670
  },
671
671
  "name": "setupSteps",
672
672
  "type": {
@@ -687,7 +687,7 @@
687
687
  "immutable": true,
688
688
  "locationInModule": {
689
689
  "filename": "src/github-credentials.ts",
690
- "line": 107
690
+ "line": 110
691
691
  },
692
692
  "name": "tokenRef",
693
693
  "type": {
@@ -701,7 +701,7 @@
701
701
  "immutable": true,
702
702
  "locationInModule": {
703
703
  "filename": "src/github-credentials.ts",
704
- "line": 99
704
+ "line": 102
705
705
  },
706
706
  "name": "permissions",
707
707
  "optional": true,
@@ -731,13 +731,14 @@
731
731
  "abstract": true,
732
732
  "docs": {
733
733
  "default": "PROJEN_APP_CLIENT_ID",
734
+ "remarks": "When `pulumiEscSetup` is provided, this value is used as the ESC output key.",
734
735
  "stability": "stable",
735
736
  "summary": "The name of the secret that contains the app client id."
736
737
  },
737
738
  "immutable": true,
738
739
  "locationInModule": {
739
740
  "filename": "src/structs/github-options/app-options.ts",
740
- "line": 44
741
+ "line": 46
741
742
  },
742
743
  "name": "clientIdSecret",
743
744
  "optional": true,
@@ -755,7 +756,7 @@
755
756
  "immutable": true,
756
757
  "locationInModule": {
757
758
  "filename": "src/structs/github-options/app-options.ts",
758
- "line": 34
759
+ "line": 35
759
760
  },
760
761
  "name": "owner",
761
762
  "optional": true,
@@ -773,7 +774,7 @@
773
774
  "immutable": true,
774
775
  "locationInModule": {
775
776
  "filename": "src/structs/github-options/app-options.ts",
776
- "line": 28
777
+ "line": 29
777
778
  },
778
779
  "name": "permissions",
779
780
  "optional": true,
@@ -785,14 +786,14 @@
785
786
  "abstract": true,
786
787
  "docs": {
787
788
  "default": "PROJEN_APP_PRIVATE_KEY",
788
- "remarks": "Escaped newlines (\\\\n) will be automatically replaced with actual newlines.",
789
+ "remarks": "When `pulumiEscSetup` is provided, this value is used as the ESC output key.\nEscaped newlines (\\\\n) will be automatically replaced with actual newlines.",
789
790
  "stability": "experimental",
790
791
  "summary": "The secret containing the GitHub App private key."
791
792
  },
792
793
  "immutable": true,
793
794
  "locationInModule": {
794
795
  "filename": "src/structs/github-options/app-options.ts",
795
- "line": 22
796
+ "line": 23
796
797
  },
797
798
  "name": "privateKeySecret",
798
799
  "optional": true,
@@ -805,12 +806,12 @@
805
806
  "docs": {
806
807
  "default": "do not include pulumi esc setup",
807
808
  "stability": "stable",
808
- "summary": "Optionally include setup steps to inject environment variables from Pulumi ESC."
809
+ "summary": "Optionally include setup steps and resolve app credentials from Pulumi ESC outputs."
809
810
  },
810
811
  "immutable": true,
811
812
  "locationInModule": {
812
813
  "filename": "src/structs/github-options/app-options.ts",
813
- "line": 39
814
+ "line": 40
814
815
  },
815
816
  "name": "pulumiEscSetup",
816
817
  "optional": true,
@@ -864,7 +865,7 @@
864
865
  "docs": {
865
866
  "default": "do not include pulumi esc setup",
866
867
  "stability": "stable",
867
- "summary": "Optionally include setup steps to inject environment variables from Pulumi ESC."
868
+ "summary": "Optionally include setup steps and resolve app credentials from Pulumi ESC outputs."
868
869
  },
869
870
  "immutable": true,
870
871
  "locationInModule": {
@@ -1508,7 +1509,7 @@
1508
1509
  "kind": "interface",
1509
1510
  "locationInModule": {
1510
1511
  "filename": "src/pulumi-esc-setup.ts",
1511
- "line": 128
1512
+ "line": 129
1512
1513
  },
1513
1514
  "name": "PulumiAuthOptions",
1514
1515
  "properties": [
@@ -1521,7 +1522,7 @@
1521
1522
  "immutable": true,
1522
1523
  "locationInModule": {
1523
1524
  "filename": "src/pulumi-esc-setup.ts",
1524
- "line": 132
1525
+ "line": 133
1525
1526
  },
1526
1527
  "name": "organization",
1527
1528
  "type": {
@@ -1537,7 +1538,7 @@
1537
1538
  "immutable": true,
1538
1539
  "locationInModule": {
1539
1540
  "filename": "src/pulumi-esc-setup.ts",
1540
- "line": 146
1541
+ "line": 147
1541
1542
  },
1542
1543
  "name": "oidcTokenExpiration",
1543
1544
  "optional": true,
@@ -1555,7 +1556,7 @@
1555
1556
  "immutable": true,
1556
1557
  "locationInModule": {
1557
1558
  "filename": "src/pulumi-esc-setup.ts",
1558
- "line": 140
1559
+ "line": 141
1559
1560
  },
1560
1561
  "name": "requestedToken",
1561
1562
  "optional": true,
@@ -1576,7 +1577,7 @@
1576
1577
  "kind": "interface",
1577
1578
  "locationInModule": {
1578
1579
  "filename": "src/pulumi-esc-setup.ts",
1579
- "line": 54
1580
+ "line": 55
1580
1581
  },
1581
1582
  "name": "PulumiEscActionOptions",
1582
1583
  "properties": [
@@ -1589,7 +1590,7 @@
1589
1590
  "immutable": true,
1590
1591
  "locationInModule": {
1591
1592
  "filename": "src/pulumi-esc-setup.ts",
1592
- "line": 58
1593
+ "line": 59
1593
1594
  },
1594
1595
  "name": "environment",
1595
1596
  "type": {
@@ -1606,7 +1607,7 @@
1606
1607
  "immutable": true,
1607
1608
  "locationInModule": {
1608
1609
  "filename": "src/pulumi-esc-setup.ts",
1609
- "line": 83
1610
+ "line": 84
1610
1611
  },
1611
1612
  "name": "cloudUrl",
1612
1613
  "optional": true,
@@ -1618,14 +1619,14 @@
1618
1619
  "abstract": true,
1619
1620
  "docs": {
1620
1621
  "default": "ExportEnvironmentVariables.disabled()",
1621
- "remarks": "Can also be an array of mapping strings to explicitly control which variables\nare exported (joined with newlines for the action input).",
1622
+ "remarks": "Can also be an array of mapping strings to explicitly control which variables\nare exported (joined with commas for the action input).",
1622
1623
  "stability": "stable",
1623
1624
  "summary": "Whether to export environment variables from ESC."
1624
1625
  },
1625
1626
  "immutable": true,
1626
1627
  "locationInModule": {
1627
1628
  "filename": "src/pulumi-esc-setup.ts",
1628
- "line": 76
1629
+ "line": 77
1629
1630
  },
1630
1631
  "name": "exportEnvironmentVariables",
1631
1632
  "optional": true,
@@ -1644,7 +1645,7 @@
1644
1645
  "immutable": true,
1645
1646
  "locationInModule": {
1646
1647
  "filename": "src/pulumi-esc-setup.ts",
1647
- "line": 66
1648
+ "line": 67
1648
1649
  },
1649
1650
  "name": "keys",
1650
1651
  "optional": true,
@@ -1673,7 +1674,7 @@
1673
1674
  "kind": "interface",
1674
1675
  "locationInModule": {
1675
1676
  "filename": "src/pulumi-esc-setup.ts",
1676
- "line": 149
1677
+ "line": 150
1677
1678
  },
1678
1679
  "name": "PulumiEscPersonalAccessTokenOptions",
1679
1680
  "properties": [
@@ -1686,7 +1687,7 @@
1686
1687
  "immutable": true,
1687
1688
  "locationInModule": {
1688
1689
  "filename": "src/pulumi-esc-setup.ts",
1689
- "line": 154
1690
+ "line": 155
1690
1691
  },
1691
1692
  "name": "secret",
1692
1693
  "optional": true,
@@ -1708,7 +1709,7 @@
1708
1709
  "kind": "class",
1709
1710
  "locationInModule": {
1710
1711
  "filename": "src/pulumi-esc-setup.ts",
1711
- "line": 165
1712
+ "line": 166
1712
1713
  },
1713
1714
  "methods": [
1714
1715
  {
@@ -1718,7 +1719,7 @@
1718
1719
  },
1719
1720
  "locationInModule": {
1720
1721
  "filename": "src/pulumi-esc-setup.ts",
1721
- "line": 222
1722
+ "line": 223
1722
1723
  },
1723
1724
  "name": "fromOidcAuth",
1724
1725
  "parameters": [
@@ -1745,7 +1746,7 @@
1745
1746
  },
1746
1747
  "locationInModule": {
1747
1748
  "filename": "src/pulumi-esc-setup.ts",
1748
- "line": 175
1749
+ "line": 176
1749
1750
  },
1750
1751
  "name": "fromPersonalAccessToken",
1751
1752
  "parameters": [
@@ -1771,7 +1772,7 @@
1771
1772
  },
1772
1773
  "locationInModule": {
1773
1774
  "filename": "src/pulumi-esc-setup.ts",
1774
- "line": 317
1775
+ "line": 318
1775
1776
  },
1776
1777
  "name": "output",
1777
1778
  "parameters": [
@@ -1803,7 +1804,7 @@
1803
1804
  "immutable": true,
1804
1805
  "locationInModule": {
1805
1806
  "filename": "src/pulumi-esc-setup.ts",
1806
- "line": 304
1807
+ "line": 305
1807
1808
  },
1808
1809
  "name": "escActionStepId",
1809
1810
  "type": {
@@ -1817,7 +1818,7 @@
1817
1818
  "immutable": true,
1818
1819
  "locationInModule": {
1819
1820
  "filename": "src/pulumi-esc-setup.ts",
1820
- "line": 292
1821
+ "line": 293
1821
1822
  },
1822
1823
  "name": "setupSteps",
1823
1824
  "type": {
@@ -1836,7 +1837,7 @@
1836
1837
  "immutable": true,
1837
1838
  "locationInModule": {
1838
1839
  "filename": "src/pulumi-esc-setup.ts",
1839
- "line": 296
1840
+ "line": 297
1840
1841
  },
1841
1842
  "name": "keys",
1842
1843
  "optional": true,
@@ -1856,7 +1857,7 @@
1856
1857
  "immutable": true,
1857
1858
  "locationInModule": {
1858
1859
  "filename": "src/pulumi-esc-setup.ts",
1859
- "line": 288
1860
+ "line": 289
1860
1861
  },
1861
1862
  "name": "permissions",
1862
1863
  "optional": true,
@@ -1919,7 +1920,7 @@
1919
1920
  "kind": "class",
1920
1921
  "locationInModule": {
1921
1922
  "filename": "src/pulumi-esc-setup.ts",
1922
- "line": 92
1923
+ "line": 93
1923
1924
  },
1924
1925
  "methods": [
1925
1926
  {
@@ -1929,7 +1930,7 @@
1929
1930
  },
1930
1931
  "locationInModule": {
1931
1932
  "filename": "src/pulumi-esc-setup.ts",
1932
- "line": 96
1933
+ "line": 97
1933
1934
  },
1934
1935
  "name": "fromOrgToken",
1935
1936
  "parameters": [
@@ -1954,7 +1955,7 @@
1954
1955
  },
1955
1956
  "locationInModule": {
1956
1957
  "filename": "src/pulumi-esc-setup.ts",
1957
- "line": 106
1958
+ "line": 107
1958
1959
  },
1959
1960
  "name": "fromPersonalToken",
1960
1961
  "parameters": [
@@ -1983,7 +1984,7 @@
1983
1984
  },
1984
1985
  "locationInModule": {
1985
1986
  "filename": "src/pulumi-esc-setup.ts",
1986
- "line": 113
1987
+ "line": 114
1987
1988
  },
1988
1989
  "name": "fromTeamToken",
1989
1990
  "parameters": [
@@ -2011,7 +2012,7 @@
2011
2012
  },
2012
2013
  "locationInModule": {
2013
2014
  "filename": "src/pulumi-esc-setup.ts",
2014
- "line": 125
2015
+ "line": 126
2015
2016
  },
2016
2017
  "name": "tokenType",
2017
2018
  "type": {
@@ -2027,7 +2028,7 @@
2027
2028
  },
2028
2029
  "locationInModule": {
2029
2030
  "filename": "src/pulumi-esc-setup.ts",
2030
- "line": 124
2031
+ "line": 125
2031
2032
  },
2032
2033
  "name": "scope",
2033
2034
  "optional": true,
@@ -2047,7 +2048,7 @@
2047
2048
  "kind": "enum",
2048
2049
  "locationInModule": {
2049
2050
  "filename": "src/pulumi-esc-setup.ts",
2050
- "line": 86
2051
+ "line": 87
2051
2052
  },
2052
2053
  "members": [
2053
2054
  {
@@ -9522,6 +9523,6 @@
9522
9523
  "symbolId": "src/structs/typescript-options/project-props:TypeScriptProjectProps"
9523
9524
  }
9524
9525
  },
9525
- "version": "0.0.64",
9526
- "fingerprint": "+BwQuzYtj/vLmjoklwR8LSl9mDBhitzKeN7AndeKYmQ="
9526
+ "version": "0.0.65",
9527
+ "fingerprint": "FZSXQnChb64UO6/w3G5CCw82J9vviQwgyol4KIoisDQ="
9527
9528
  }
package/API.md CHANGED
@@ -4760,7 +4760,7 @@ const githubCredentialsAppOptions: GithubCredentialsAppOptions = { ... }
4760
4760
  | <code><a href="#@hallcor/pulumi-projen-project-types.GithubCredentialsAppOptions.property.owner">owner</a></code> | <code>string</code> | The owner of the GitHub App installation. |
4761
4761
  | <code><a href="#@hallcor/pulumi-projen-project-types.GithubCredentialsAppOptions.property.permissions">permissions</a></code> | <code>projen.github.workflows.AppPermissions</code> | The permissions granted to the token. |
4762
4762
  | <code><a href="#@hallcor/pulumi-projen-project-types.GithubCredentialsAppOptions.property.privateKeySecret">privateKeySecret</a></code> | <code>string</code> | The secret containing the GitHub App private key. |
4763
- | <code><a href="#@hallcor/pulumi-projen-project-types.GithubCredentialsAppOptions.property.pulumiEscSetup">pulumiEscSetup</a></code> | <code><a href="#@hallcor/pulumi-projen-project-types.PulumiEscSetup">PulumiEscSetup</a></code> | Optionally include setup steps to inject environment variables from Pulumi ESC. |
4763
+ | <code><a href="#@hallcor/pulumi-projen-project-types.GithubCredentialsAppOptions.property.pulumiEscSetup">pulumiEscSetup</a></code> | <code><a href="#@hallcor/pulumi-projen-project-types.PulumiEscSetup">PulumiEscSetup</a></code> | Optionally include setup steps and resolve app credentials from Pulumi ESC outputs. |
4764
4764
  | <code><a href="#@hallcor/pulumi-projen-project-types.GithubCredentialsAppOptions.property.repositories">repositories</a></code> | <code>string[]</code> | List of repositories to grant access to. |
4765
4765
 
4766
4766
  ---
@@ -4776,6 +4776,8 @@ public readonly clientIdSecret: string;
4776
4776
 
4777
4777
  The name of the secret that contains the app client id.
4778
4778
 
4779
+ When `pulumiEscSetup` is provided, this value is used as the ESC output key.
4780
+
4779
4781
  ---
4780
4782
 
4781
4783
  ##### `owner`<sup>Optional</sup> <a name="owner" id="@hallcor/pulumi-projen-project-types.GithubCredentialsAppOptions.property.owner"></a>
@@ -4815,6 +4817,7 @@ public readonly privateKeySecret: string;
4815
4817
 
4816
4818
  The secret containing the GitHub App private key.
4817
4819
 
4820
+ When `pulumiEscSetup` is provided, this value is used as the ESC output key.
4818
4821
  Escaped newlines (\\n) will be automatically replaced with actual newlines.
4819
4822
 
4820
4823
  ---
@@ -4828,7 +4831,7 @@ public readonly pulumiEscSetup: PulumiEscSetup;
4828
4831
  - *Type:* <a href="#@hallcor/pulumi-projen-project-types.PulumiEscSetup">PulumiEscSetup</a>
4829
4832
  - *Default:* do not include pulumi esc setup
4830
4833
 
4831
- Optionally include setup steps to inject environment variables from Pulumi ESC.
4834
+ Optionally include setup steps and resolve app credentials from Pulumi ESC outputs.
4832
4835
 
4833
4836
  ---
4834
4837
 
@@ -4861,7 +4864,7 @@ const githubCredentialsPersonalAccessTokenOptions: GithubCredentialsPersonalAcce
4861
4864
 
4862
4865
  | **Name** | **Type** | **Description** |
4863
4866
  | --- | --- | --- |
4864
- | <code><a href="#@hallcor/pulumi-projen-project-types.GithubCredentialsPersonalAccessTokenOptions.property.pulumiEscSetup">pulumiEscSetup</a></code> | <code><a href="#@hallcor/pulumi-projen-project-types.PulumiEscSetup">PulumiEscSetup</a></code> | Optionally include setup steps to inject environment variables from Pulumi ESC. |
4867
+ | <code><a href="#@hallcor/pulumi-projen-project-types.GithubCredentialsPersonalAccessTokenOptions.property.pulumiEscSetup">pulumiEscSetup</a></code> | <code><a href="#@hallcor/pulumi-projen-project-types.PulumiEscSetup">PulumiEscSetup</a></code> | Optionally include setup steps and resolve app credentials from Pulumi ESC outputs. |
4865
4868
  | <code><a href="#@hallcor/pulumi-projen-project-types.GithubCredentialsPersonalAccessTokenOptions.property.secret">secret</a></code> | <code>string</code> | *No description.* |
4866
4869
 
4867
4870
  ---
@@ -4875,7 +4878,7 @@ public readonly pulumiEscSetup: PulumiEscSetup;
4875
4878
  - *Type:* <a href="#@hallcor/pulumi-projen-project-types.PulumiEscSetup">PulumiEscSetup</a>
4876
4879
  - *Default:* do not include pulumi esc setup
4877
4880
 
4878
- Optionally include setup steps to inject environment variables from Pulumi ESC.
4881
+ Optionally include setup steps and resolve app credentials from Pulumi ESC outputs.
4879
4882
 
4880
4883
  ---
4881
4884
 
@@ -5454,7 +5457,7 @@ public readonly exportEnvironmentVariables: ExportEnvironmentVariables;
5454
5457
  Whether to export environment variables from ESC.
5455
5458
 
5456
5459
  Can also be an array of mapping strings to explicitly control which variables
5457
- are exported (joined with newlines for the action input).
5460
+ are exported (joined with commas for the action input).
5458
5461
 
5459
5462
  ---
5460
5463
 
@@ -5568,7 +5571,7 @@ public readonly exportEnvironmentVariables: ExportEnvironmentVariables;
5568
5571
  Whether to export environment variables from ESC.
5569
5572
 
5570
5573
  Can also be an array of mapping strings to explicitly control which variables
5571
- are exported (joined with newlines for the action input).
5574
+ are exported (joined with commas for the action input).
5572
5575
 
5573
5576
  ---
5574
5577
 
@@ -5646,7 +5649,7 @@ public readonly exportEnvironmentVariables: ExportEnvironmentVariables;
5646
5649
  Whether to export environment variables from ESC.
5647
5650
 
5648
5651
  Can also be an array of mapping strings to explicitly control which variables
5649
- are exported (joined with newlines for the action input).
5652
+ are exported (joined with commas for the action input).
5650
5653
 
5651
5654
  ---
5652
5655
 
@@ -11506,7 +11509,8 @@ ExportEnvironmentVariables.fromMapping(mapping: string[])
11506
11509
  Provide explicit mappings to export.
11507
11510
 
11508
11511
  Each entry should follow the ESC action mapping format, for example
11509
- `GITHUB_TOKEN=PULUMI_BOT_TOKEN` or `AWS_ACCESS_KEY_ID`.
11512
+ `GITHUB_TOKEN=PULUMI_BOT_TOKEN` or `AWS_ACCESS_KEY_ID`. The values are
11513
+ rendered as a comma-delimited string for the ESC action input.
11510
11514
 
11511
11515
  ###### `mapping`<sup>Required</sup> <a name="mapping" id="@hallcor/pulumi-projen-project-types.ExportEnvironmentVariables.fromMapping.parameter.mapping"></a>
11512
11516
 
package/README.md CHANGED
@@ -278,15 +278,37 @@ new TypeScriptComponent({
278
278
  ...,
279
279
  projenCredentials: GithubCredentials.fromApp({
280
280
  privateKeySecret: 'MY_GITHUB_APP_PRIVATE_KEY',
281
- appIdSecret: 'MY_GITHUB_APP_ID',
281
+ clientIdSecret: 'MY_GITHUB_APP_ID',
282
282
  }),
283
283
  });
284
284
  ```
285
285
 
286
+ **From a GitHub app via Pulumi ESC**
287
+ ```ts
288
+ new TypeScriptComponent({
289
+ ...,
290
+ projenCredentials: GithubCredentials.fromApp({
291
+ clientIdSecret: 'MY_GITHUB_APP_ID',
292
+ privateKeySecret: 'MY_GITHUB_APP_PRIVATE_KEY',
293
+ pulumiEscSetup: PulumiEscSetup.fromOidcAuth({
294
+ environment: 'imports/github-secrets',
295
+ organization: 'pulumi',
296
+ requestedToken: PulumiToken.fromOrgToken(),
297
+ }),
298
+ }),
299
+ });
300
+ ```
301
+
302
+ When `pulumiEscSetup` is supplied to `GithubCredentials.fromApp(...)`, the generated
303
+ GitHub App token step reads `app-id` and `private-key` from ESC step outputs using
304
+ the `clientIdSecret` and `privateKeySecret` names as output keys.
305
+
286
306
  ## Pulumi ESC setup for GitHub Actions
287
307
 
288
308
  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
309
 
310
+ Mapped `exportEnvironmentVariables` values are passed to the ESC action as a comma-delimited string.
311
+
290
312
  ### Option-to-input mapping
291
313
 
292
314
  - `exportEnvironmentVariables` → `export-environment-variables`
@@ -40,7 +40,8 @@ class GithubCredentials {
40
40
  const clientIdSecret = options.clientIdSecret ?? 'PROJEN_APP_CLIENT_ID';
41
41
  const privateKeySecret = options.privateKeySecret ?? 'PROJEN_APP_PRIVATE_KEY';
42
42
  const setupSteps = [];
43
- const prefix = options.pulumiEscSetup ? 'env' : 'secrets';
43
+ let clientIdRef = `\${{ secrets.${clientIdSecret} }}`;
44
+ let privateKeyRef = `\${{ secrets.${privateKeySecret} }}`;
44
45
  if (options.pulumiEscSetup) {
45
46
  if (options.pulumiEscSetup.keys) {
46
47
  if (!options.pulumiEscSetup.keys.includes(clientIdSecret)) {
@@ -51,6 +52,8 @@ class GithubCredentials {
51
52
  }
52
53
  }
53
54
  setupSteps.push(...options.pulumiEscSetup.setupSteps);
55
+ clientIdRef = options.pulumiEscSetup.output(clientIdSecret);
56
+ privateKeyRef = options.pulumiEscSetup.output(privateKeySecret);
54
57
  }
55
58
  return new GithubCredentials({
56
59
  permissions: options.pulumiEscSetup?.permissions,
@@ -61,8 +64,8 @@ class GithubCredentials {
61
64
  id: 'generate_token',
62
65
  uses: 'actions/create-github-app-token@v1',
63
66
  with: {
64
- 'app-id': `\${{ ${prefix}.${clientIdSecret} }}`, // can be client-id
65
- 'private-key': `\${{ ${prefix}.${privateKeySecret} }}`,
67
+ 'app-id': clientIdRef, // can be client-id
68
+ 'private-key': privateKeyRef,
66
69
  },
67
70
  },
68
71
  ],
@@ -91,5 +94,5 @@ class GithubCredentials {
91
94
  }
92
95
  exports.GithubCredentials = GithubCredentials;
93
96
  _a = JSII_RTTI_SYMBOL_1;
94
- GithubCredentials[_a] = { fqn: "@hallcor/pulumi-projen-project-types.GithubCredentials", version: "0.0.64" };
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLWNyZWRlbnRpYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dpdGh1Yi1jcmVkZW50aWFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVlBOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7SUFDNUI7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsdUJBQXVCLENBQ25DLFVBQXVELEVBQUU7UUFFekQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDMUQsT0FBTyxJQUFJLGlCQUFpQixDQUFDO1lBQzNCLFVBQVUsRUFBRSxPQUFPLENBQUMsY0FBYztnQkFDaEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsVUFBVTtnQkFDbkMsQ0FBQyxDQUFDLEVBQUU7WUFDTixRQUFRLEVBQUUsUUFBUSxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxxQkFBcUIsS0FBSztTQUN6RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBdUMsRUFBRTtRQUM3RCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxJQUFJLHNCQUFzQixDQUFDO1FBQ3hFLE1BQU0sZ0JBQWdCLEdBQ3BCLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSx3QkFBd0IsQ0FBQztRQUV2RCxNQUFNLFVBQVUsR0FBYyxFQUFFLENBQUM7UUFDakMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDMUQsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDM0IsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7b0JBQzFELE1BQU0sSUFBSSxLQUFLLENBQ2Isd0RBQXdELENBQ3pELENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztvQkFDNUQsTUFBTSxJQUFJLEtBQUssQ0FDYiwwREFBMEQsQ0FDM0QsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztZQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFFRCxPQUFPLElBQUksaUJBQWlCLENBQUM7WUFDM0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsV0FBVztZQUNoRCxVQUFVLEVBQUU7Z0JBQ1YsR0FBRyxVQUFVO2dCQUNiO29CQUNFLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLEVBQUUsRUFBRSxnQkFBZ0I7b0JBQ3BCLElBQUksRUFBRSxvQ0FBb0M7b0JBQzFDLElBQUksRUFBRTt3QkFDSixRQUFRLEVBQUUsUUFBUSxNQUFNLElBQUksY0FBYyxLQUFLLEVBQUUsbUJBQW1CO3dCQUNwRSxhQUFhLEVBQUUsUUFBUSxNQUFNLElBQUksZ0JBQWdCLEtBQUs7cUJBQ3ZEO2lCQUNGO2FBQ0Y7WUFDRCxRQUFRLEVBQUUsMkNBQTJDO1NBQ3RELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFxQyxPQUFpQztRQUFqQyxZQUFPLEdBQVAsT0FBTyxDQUEwQjtJQUFHLENBQUM7SUFFMUU7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7O0FBN0ZILDhDQThGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpvYlBlcm1pc3Npb25zLCBKb2JTdGVwIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7XG4gIEdpdGh1YkNyZWRlbnRpYWxzQXBwT3B0aW9ucyxcbiAgR2l0aHViQ3JlZGVudGlhbHNQZXJzb25hbEFjY2Vzc1Rva2VuT3B0aW9ucyxcbn0gZnJvbSAnLi9zdHJ1Y3RzJztcblxuaW50ZXJmYWNlIEdpdGh1YkNyZWRlbnRpYWxzT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHNldHVwU3RlcHM6IEpvYlN0ZXBbXTtcbiAgcmVhZG9ubHkgdG9rZW5SZWY6IHN0cmluZztcbiAgcmVhZG9ubHkgcGVybWlzc2lvbnM/OiBKb2JQZXJtaXNzaW9ucztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWV0aG9kIG9mIHByb3ZpZGluZyBHaXRIdWIgQVBJIGFjY2VzcyBmb3IgcHJvamVuIHdvcmtmbG93cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdpdGh1YkNyZWRlbnRpYWxzIHtcbiAgLyoqXG4gICAqIFByb3ZpZGUgQVBJIGFjY2VzcyB0aHJvdWdoIGEgR2l0SHViIHBlcnNvbmFsIGFjY2VzcyB0b2tlbi5cbiAgICpcbiAgICogVGhlIHRva2VuIG11c3QgYmUgYWRkZWQgYXMgYSBzZWNyZXQgdG8gdGhlIEdpdEh1YiByZXBvLCBhbmQgdGhlIG5hbWUgb2YgdGhlXG4gICAqIHNlY3JldCBjYW4gYmUgc3BlY2lmaWVkIGhlcmUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vYXV0aGVudGljYXRpb24va2VlcGluZy15b3VyLWFjY291bnQtYW5kLWRhdGEtc2VjdXJlL2NyZWF0aW5nLWEtcGVyc29uYWwtYWNjZXNzLXRva2VuXG4gICAqIEBkZWZhdWx0IC0gYSBzZWNyZXQgbmFtZWQgXCJQUk9KRU5fR0lUSFVCX1RPS0VOXCJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVBlcnNvbmFsQWNjZXNzVG9rZW4oXG4gICAgb3B0aW9uczogR2l0aHViQ3JlZGVudGlhbHNQZXJzb25hbEFjY2Vzc1Rva2VuT3B0aW9ucyA9IHt9LFxuICApIHtcbiAgICBjb25zdCBwcmVmaXggPSBvcHRpb25zLnB1bHVtaUVzY1NldHVwID8gJ2VudicgOiAnc2VjcmV0cyc7XG4gICAgcmV0dXJuIG5ldyBHaXRodWJDcmVkZW50aWFscyh7XG4gICAgICBzZXR1cFN0ZXBzOiBvcHRpb25zLnB1bHVtaUVzY1NldHVwXG4gICAgICAgID8gb3B0aW9ucy5wdWx1bWlFc2NTZXR1cC5zZXR1cFN0ZXBzXG4gICAgICAgIDogW10sXG4gICAgICB0b2tlblJlZjogYFxcJHt7ICR7cHJlZml4fS4ke29wdGlvbnMuc2VjcmV0ID8/ICdQUk9KRU5fR0lUSFVCX1RPS0VOJ30gfX1gLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgQVBJIGFjY2VzcyB0aHJvdWdoIGEgR2l0SHViIEFwcC5cbiAgICpcbiAgICogVGhlIEdpdEh1YiBBcHAgbXVzdCBiZSBpbnN0YWxsZWQgb24gdGhlIEdpdEh1YiByZXBvLCBpdHMgQXBwIElEIGFuZCBhXG4gICAqIHByaXZhdGUga2V5IG11c3QgYmUgYWRkZWQgYXMgc2VjcmV0cyB0byB0aGUgcmVwby4gVGhlIG5hbWUgb2YgdGhlIHNlY3JldHNcbiAgICogY2FuIGJlIHNwZWNpZmllZCBoZXJlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2RldmVsb3BlcnMvYXBwcy9idWlsZGluZy1naXRodWItYXBwcy9jcmVhdGluZy1hLWdpdGh1Yi1hcHBcbiAgICogQHNlZSBodHRwczovL3Byb2plbi5pby9kb2NzL2ludGVncmF0aW9ucy9naXRodWIvI2dpdGh1Yi1hcHBcbiAgICogQGRlZmF1bHQgLSBhcHAgaWQgc3RvcmVkIGluIFwiUFJPSkVOX0FQUF9DTElFTlRfSURcIiBhbmQgcHJpdmF0ZSBrZXkgc3RvcmVkIGluIFwiUFJPSkVOX0FQUF9QUklWQVRFX0tFWVwiIHdpdGggYWxsIHBlcm1pc3Npb25zIGF0dGFjaGVkIHRvIHRoZSBhcHBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFwcChvcHRpb25zOiBHaXRodWJDcmVkZW50aWFsc0FwcE9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IGNsaWVudElkU2VjcmV0ID0gb3B0aW9ucy5jbGllbnRJZFNlY3JldCA/PyAnUFJPSkVOX0FQUF9DTElFTlRfSUQnO1xuICAgIGNvbnN0IHByaXZhdGVLZXlTZWNyZXQgPVxuICAgICAgb3B0aW9ucy5wcml2YXRlS2V5U2VjcmV0ID8/ICdQUk9KRU5fQVBQX1BSSVZBVEVfS0VZJztcblxuICAgIGNvbnN0IHNldHVwU3RlcHM6IEpvYlN0ZXBbXSA9IFtdO1xuICAgIGNvbnN0IHByZWZpeCA9IG9wdGlvbnMucHVsdW1pRXNjU2V0dXAgPyAnZW52JyA6ICdzZWNyZXRzJztcbiAgICBpZiAob3B0aW9ucy5wdWx1bWlFc2NTZXR1cCkge1xuICAgICAgaWYgKG9wdGlvbnMucHVsdW1pRXNjU2V0dXAua2V5cykge1xuICAgICAgICBpZiAoIW9wdGlvbnMucHVsdW1pRXNjU2V0dXAua2V5cy5pbmNsdWRlcyhjbGllbnRJZFNlY3JldCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgY2xpZW50SWRTZWNyZXQgd2FzIG5vdCBpbmNsdWRlZCBpbiBwdWx1bWlFc2NTZXR1cC5rZXlzYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0aW9ucy5wdWx1bWlFc2NTZXR1cC5rZXlzLmluY2x1ZGVzKHByaXZhdGVLZXlTZWNyZXQpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYHByaXZhdGVLZXlTZWNyZXQgd2FzIG5vdCBpbmNsdWRlZCBpbiBwdWx1bWlFc2NTZXR1cC5rZXlzYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzZXR1cFN0ZXBzLnB1c2goLi4ub3B0aW9ucy5wdWx1bWlFc2NTZXR1cC5zZXR1cFN0ZXBzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEdpdGh1YkNyZWRlbnRpYWxzKHtcbiAgICAgIHBlcm1pc3Npb25zOiBvcHRpb25zLnB1bHVtaUVzY1NldHVwPy5wZXJtaXNzaW9ucyxcbiAgICAgIHNldHVwU3RlcHM6IFtcbiAgICAgICAgLi4uc2V0dXBTdGVwcyxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdHZW5lcmF0ZSB0b2tlbicsXG4gICAgICAgICAgaWQ6ICdnZW5lcmF0ZV90b2tlbicsXG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvY3JlYXRlLWdpdGh1Yi1hcHAtdG9rZW5AdjEnLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICdhcHAtaWQnOiBgXFwke3sgJHtwcmVmaXh9LiR7Y2xpZW50SWRTZWNyZXR9IH19YCwgLy8gY2FuIGJlIGNsaWVudC1pZFxuICAgICAgICAgICAgJ3ByaXZhdGUta2V5JzogYFxcJHt7ICR7cHJlZml4fS4ke3ByaXZhdGVLZXlTZWNyZXR9IH19YCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHRva2VuUmVmOiAnJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMudG9rZW4gfX0nLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEdpdGh1YkNyZWRlbnRpYWxzT3B0aW9ucykge31cblxuICAvKipcbiAgICogU2V0dXAgc3RlcHMgdG8gb2J0YWluIEdpdEh1YiBjcmVkZW50aWFscy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2V0dXBTdGVwcygpOiBKb2JTdGVwW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5vcHRpb25zLnNldHVwU3RlcHNdO1xuICB9XG5cbiAgcHVibGljIGdldCBwZXJtaXNzaW9ucygpOiBKb2JQZXJtaXNzaW9ucyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5wZXJtaXNzaW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdG8gdXNlIGluIGEgd29ya2Zsb3cgd2hlbiBhIEdpdEh1YiB0b2tlbiBpcyBleHBlY3RlZC4gVGhpc1xuICAgKiB0eXBpY2FsbHkgbG9va3MgbGlrZSBcIiR7eyBzb21lLnBhdGgudG8uYS52YWx1ZSB9fVwiLlxuICAgKi9cbiAgcHVibGljIGdldCB0b2tlblJlZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMudG9rZW5SZWY7XG4gIH1cbn1cbiJdfQ==
97
+ GithubCredentials[_a] = { fqn: "@hallcor/pulumi-projen-project-types.GithubCredentials", version: "0.0.65" };
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLWNyZWRlbnRpYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dpdGh1Yi1jcmVkZW50aWFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVlBOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7SUFDNUI7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsdUJBQXVCLENBQ25DLFVBQXVELEVBQUU7UUFFekQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDMUQsT0FBTyxJQUFJLGlCQUFpQixDQUFDO1lBQzNCLFVBQVUsRUFBRSxPQUFPLENBQUMsY0FBYztnQkFDaEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsVUFBVTtnQkFDbkMsQ0FBQyxDQUFDLEVBQUU7WUFDTixRQUFRLEVBQUUsUUFBUSxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxxQkFBcUIsS0FBSztTQUN6RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBdUMsRUFBRTtRQUM3RCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxJQUFJLHNCQUFzQixDQUFDO1FBQ3hFLE1BQU0sZ0JBQWdCLEdBQ3BCLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSx3QkFBd0IsQ0FBQztRQUV2RCxNQUFNLFVBQVUsR0FBYyxFQUFFLENBQUM7UUFDakMsSUFBSSxXQUFXLEdBQUcsZ0JBQWdCLGNBQWMsS0FBSyxDQUFDO1FBQ3RELElBQUksYUFBYSxHQUFHLGdCQUFnQixnQkFBZ0IsS0FBSyxDQUFDO1FBQzFELElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzNCLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO29CQUMxRCxNQUFNLElBQUksS0FBSyxDQUNiLHdEQUF3RCxDQUN6RCxDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7b0JBQzVELE1BQU0sSUFBSSxLQUFLLENBQ2IsMERBQTBELENBQzNELENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7WUFDRCxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0RCxXQUFXLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUQsYUFBYSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELE9BQU8sSUFBSSxpQkFBaUIsQ0FBQztZQUMzQixXQUFXLEVBQUUsT0FBTyxDQUFDLGNBQWMsRUFBRSxXQUFXO1lBQ2hELFVBQVUsRUFBRTtnQkFDVixHQUFHLFVBQVU7Z0JBQ2I7b0JBQ0UsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsRUFBRSxFQUFFLGdCQUFnQjtvQkFDcEIsSUFBSSxFQUFFLG9DQUFvQztvQkFDMUMsSUFBSSxFQUFFO3dCQUNKLFFBQVEsRUFBRSxXQUFXLEVBQUUsbUJBQW1CO3dCQUMxQyxhQUFhLEVBQUUsYUFBYTtxQkFDN0I7aUJBQ0Y7YUFDRjtZQUNELFFBQVEsRUFBRSwyQ0FBMkM7U0FDdEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQXFDLE9BQWlDO1FBQWpDLFlBQU8sR0FBUCxPQUFPLENBQTBCO0lBQUcsQ0FBQztJQUUxRTs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNuQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDL0IsQ0FBQzs7QUFoR0gsOENBaUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSm9iUGVybWlzc2lvbnMsIEpvYlN0ZXAgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWwnO1xuaW1wb3J0IHtcbiAgR2l0aHViQ3JlZGVudGlhbHNBcHBPcHRpb25zLFxuICBHaXRodWJDcmVkZW50aWFsc1BlcnNvbmFsQWNjZXNzVG9rZW5PcHRpb25zLFxufSBmcm9tICcuL3N0cnVjdHMnO1xuXG5pbnRlcmZhY2UgR2l0aHViQ3JlZGVudGlhbHNPcHRpb25zIHtcbiAgcmVhZG9ubHkgc2V0dXBTdGVwczogSm9iU3RlcFtdO1xuICByZWFkb25seSB0b2tlblJlZjogc3RyaW5nO1xuICByZWFkb25seSBwZXJtaXNzaW9ucz86IEpvYlBlcm1pc3Npb25zO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtZXRob2Qgb2YgcHJvdmlkaW5nIEdpdEh1YiBBUEkgYWNjZXNzIGZvciBwcm9qZW4gd29ya2Zsb3dzLlxuICovXG5leHBvcnQgY2xhc3MgR2l0aHViQ3JlZGVudGlhbHMge1xuICAvKipcbiAgICogUHJvdmlkZSBBUEkgYWNjZXNzIHRocm91Z2ggYSBHaXRIdWIgcGVyc29uYWwgYWNjZXNzIHRva2VuLlxuICAgKlxuICAgKiBUaGUgdG9rZW4gbXVzdCBiZSBhZGRlZCBhcyBhIHNlY3JldCB0byB0aGUgR2l0SHViIHJlcG8sIGFuZCB0aGUgbmFtZSBvZiB0aGVcbiAgICogc2VjcmV0IGNhbiBiZSBzcGVjaWZpZWQgaGVyZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hdXRoZW50aWNhdGlvbi9rZWVwaW5nLXlvdXItYWNjb3VudC1hbmQtZGF0YS1zZWN1cmUvY3JlYXRpbmctYS1wZXJzb25hbC1hY2Nlc3MtdG9rZW5cbiAgICogQGRlZmF1bHQgLSBhIHNlY3JldCBuYW1lZCBcIlBST0pFTl9HSVRIVUJfVE9LRU5cIlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUGVyc29uYWxBY2Nlc3NUb2tlbihcbiAgICBvcHRpb25zOiBHaXRodWJDcmVkZW50aWFsc1BlcnNvbmFsQWNjZXNzVG9rZW5PcHRpb25zID0ge30sXG4gICkge1xuICAgIGNvbnN0IHByZWZpeCA9IG9wdGlvbnMucHVsdW1pRXNjU2V0dXAgPyAnZW52JyA6ICdzZWNyZXRzJztcbiAgICByZXR1cm4gbmV3IEdpdGh1YkNyZWRlbnRpYWxzKHtcbiAgICAgIHNldHVwU3RlcHM6IG9wdGlvbnMucHVsdW1pRXNjU2V0dXBcbiAgICAgICAgPyBvcHRpb25zLnB1bHVtaUVzY1NldHVwLnNldHVwU3RlcHNcbiAgICAgICAgOiBbXSxcbiAgICAgIHRva2VuUmVmOiBgXFwke3sgJHtwcmVmaXh9LiR7b3B0aW9ucy5zZWNyZXQgPz8gJ1BST0pFTl9HSVRIVUJfVE9LRU4nfSB9fWAsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZSBBUEkgYWNjZXNzIHRocm91Z2ggYSBHaXRIdWIgQXBwLlxuICAgKlxuICAgKiBUaGUgR2l0SHViIEFwcCBtdXN0IGJlIGluc3RhbGxlZCBvbiB0aGUgR2l0SHViIHJlcG8sIGl0cyBBcHAgSUQgYW5kIGFcbiAgICogcHJpdmF0ZSBrZXkgbXVzdCBiZSBhZGRlZCBhcyBzZWNyZXRzIHRvIHRoZSByZXBvLiBUaGUgbmFtZSBvZiB0aGUgc2VjcmV0c1xuICAgKiBjYW4gYmUgc3BlY2lmaWVkIGhlcmUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vZGV2ZWxvcGVycy9hcHBzL2J1aWxkaW5nLWdpdGh1Yi1hcHBzL2NyZWF0aW5nLWEtZ2l0aHViLWFwcFxuICAgKiBAc2VlIGh0dHBzOi8vcHJvamVuLmlvL2RvY3MvaW50ZWdyYXRpb25zL2dpdGh1Yi8jZ2l0aHViLWFwcFxuICAgKiBAZGVmYXVsdCAtIGFwcCBpZCBzdG9yZWQgaW4gXCJQUk9KRU5fQVBQX0NMSUVOVF9JRFwiIGFuZCBwcml2YXRlIGtleSBzdG9yZWQgaW4gXCJQUk9KRU5fQVBQX1BSSVZBVEVfS0VZXCIgd2l0aCBhbGwgcGVybWlzc2lvbnMgYXR0YWNoZWQgdG8gdGhlIGFwcFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQXBwKG9wdGlvbnM6IEdpdGh1YkNyZWRlbnRpYWxzQXBwT3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgY2xpZW50SWRTZWNyZXQgPSBvcHRpb25zLmNsaWVudElkU2VjcmV0ID8/ICdQUk9KRU5fQVBQX0NMSUVOVF9JRCc7XG4gICAgY29uc3QgcHJpdmF0ZUtleVNlY3JldCA9XG4gICAgICBvcHRpb25zLnByaXZhdGVLZXlTZWNyZXQgPz8gJ1BST0pFTl9BUFBfUFJJVkFURV9LRVknO1xuXG4gICAgY29uc3Qgc2V0dXBTdGVwczogSm9iU3RlcFtdID0gW107XG4gICAgbGV0IGNsaWVudElkUmVmID0gYFxcJHt7IHNlY3JldHMuJHtjbGllbnRJZFNlY3JldH0gfX1gO1xuICAgIGxldCBwcml2YXRlS2V5UmVmID0gYFxcJHt7IHNlY3JldHMuJHtwcml2YXRlS2V5U2VjcmV0fSB9fWA7XG4gICAgaWYgKG9wdGlvbnMucHVsdW1pRXNjU2V0dXApIHtcbiAgICAgIGlmIChvcHRpb25zLnB1bHVtaUVzY1NldHVwLmtleXMpIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLnB1bHVtaUVzY1NldHVwLmtleXMuaW5jbHVkZXMoY2xpZW50SWRTZWNyZXQpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYGNsaWVudElkU2VjcmV0IHdhcyBub3QgaW5jbHVkZWQgaW4gcHVsdW1pRXNjU2V0dXAua2V5c2AsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdGlvbnMucHVsdW1pRXNjU2V0dXAua2V5cy5pbmNsdWRlcyhwcml2YXRlS2V5U2VjcmV0KSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBwcml2YXRlS2V5U2VjcmV0IHdhcyBub3QgaW5jbHVkZWQgaW4gcHVsdW1pRXNjU2V0dXAua2V5c2AsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc2V0dXBTdGVwcy5wdXNoKC4uLm9wdGlvbnMucHVsdW1pRXNjU2V0dXAuc2V0dXBTdGVwcyk7XG4gICAgICBjbGllbnRJZFJlZiA9IG9wdGlvbnMucHVsdW1pRXNjU2V0dXAub3V0cHV0KGNsaWVudElkU2VjcmV0KTtcbiAgICAgIHByaXZhdGVLZXlSZWYgPSBvcHRpb25zLnB1bHVtaUVzY1NldHVwLm91dHB1dChwcml2YXRlS2V5U2VjcmV0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEdpdGh1YkNyZWRlbnRpYWxzKHtcbiAgICAgIHBlcm1pc3Npb25zOiBvcHRpb25zLnB1bHVtaUVzY1NldHVwPy5wZXJtaXNzaW9ucyxcbiAgICAgIHNldHVwU3RlcHM6IFtcbiAgICAgICAgLi4uc2V0dXBTdGVwcyxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdHZW5lcmF0ZSB0b2tlbicsXG4gICAgICAgICAgaWQ6ICdnZW5lcmF0ZV90b2tlbicsXG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvY3JlYXRlLWdpdGh1Yi1hcHAtdG9rZW5AdjEnLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICdhcHAtaWQnOiBjbGllbnRJZFJlZiwgLy8gY2FuIGJlIGNsaWVudC1pZFxuICAgICAgICAgICAgJ3ByaXZhdGUta2V5JzogcHJpdmF0ZUtleVJlZixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHRva2VuUmVmOiAnJHt7IHN0ZXBzLmdlbmVyYXRlX3Rva2VuLm91dHB1dHMudG9rZW4gfX0nLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEdpdGh1YkNyZWRlbnRpYWxzT3B0aW9ucykge31cblxuICAvKipcbiAgICogU2V0dXAgc3RlcHMgdG8gb2J0YWluIEdpdEh1YiBjcmVkZW50aWFscy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2V0dXBTdGVwcygpOiBKb2JTdGVwW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5vcHRpb25zLnNldHVwU3RlcHNdO1xuICB9XG5cbiAgcHVibGljIGdldCBwZXJtaXNzaW9ucygpOiBKb2JQZXJtaXNzaW9ucyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5wZXJtaXNzaW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdG8gdXNlIGluIGEgd29ya2Zsb3cgd2hlbiBhIEdpdEh1YiB0b2tlbiBpcyBleHBlY3RlZC4gVGhpc1xuICAgKiB0eXBpY2FsbHkgbG9va3MgbGlrZSBcIiR7eyBzb21lLnBhdGgudG8uYS52YWx1ZSB9fVwiLlxuICAgKi9cbiAgcHVibGljIGdldCB0b2tlblJlZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMudG9rZW5SZWY7XG4gIH1cbn1cbiJdfQ==
@@ -13,7 +13,8 @@ export declare class ExportEnvironmentVariables {
13
13
  * Provide explicit mappings to export.
14
14
  *
15
15
  * Each entry should follow the ESC action mapping format, for example
16
- * `GITHUB_TOKEN=PULUMI_BOT_TOKEN` or `AWS_ACCESS_KEY_ID`.
16
+ * `GITHUB_TOKEN=PULUMI_BOT_TOKEN` or `AWS_ACCESS_KEY_ID`. The values are
17
+ * rendered as a comma-delimited string for the ESC action input.
17
18
  */
18
19
  static fromMapping(mapping: string[]): ExportEnvironmentVariables;
19
20
  /**
@@ -41,7 +42,7 @@ export interface PulumiEscActionOptions {
41
42
  * Whether to export environment variables from ESC.
42
43
  *
43
44
  * Can also be an array of mapping strings to explicitly control which variables
44
- * are exported (joined with newlines for the action input).
45
+ * are exported (joined with commas for the action input).
45
46
  *
46
47
  * @default ExportEnvironmentVariables.disabled()
47
48
  */
@@ -21,7 +21,8 @@ class ExportEnvironmentVariables {
21
21
  * Provide explicit mappings to export.
22
22
  *
23
23
  * Each entry should follow the ESC action mapping format, for example
24
- * `GITHUB_TOKEN=PULUMI_BOT_TOKEN` or `AWS_ACCESS_KEY_ID`.
24
+ * `GITHUB_TOKEN=PULUMI_BOT_TOKEN` or `AWS_ACCESS_KEY_ID`. The values are
25
+ * rendered as a comma-delimited string for the ESC action input.
25
26
  */
26
27
  static fromMapping(mapping) {
27
28
  return new ExportEnvironmentVariables(mapping);
@@ -31,7 +32,7 @@ class ExportEnvironmentVariables {
31
32
  */
32
33
  _render() {
33
34
  if (Array.isArray(this.value)) {
34
- return this.value.join('\n');
35
+ return this.value.join(',');
35
36
  }
36
37
  return this.value;
37
38
  }
@@ -44,7 +45,7 @@ class ExportEnvironmentVariables {
44
45
  }
45
46
  exports.ExportEnvironmentVariables = ExportEnvironmentVariables;
46
47
  _a = JSII_RTTI_SYMBOL_1;
47
- ExportEnvironmentVariables[_a] = { fqn: "@hallcor/pulumi-projen-project-types.ExportEnvironmentVariables", version: "0.0.64" };
48
+ ExportEnvironmentVariables[_a] = { fqn: "@hallcor/pulumi-projen-project-types.ExportEnvironmentVariables", version: "0.0.65" };
48
49
  var PulumiTokenType;
49
50
  (function (PulumiTokenType) {
50
51
  PulumiTokenType["ORG"] = "urn:pulumi:token-type:access_token:organization";
@@ -79,7 +80,7 @@ class PulumiToken {
79
80
  }
80
81
  exports.PulumiToken = PulumiToken;
81
82
  _b = JSII_RTTI_SYMBOL_1;
82
- PulumiToken[_b] = { fqn: "@hallcor/pulumi-projen-project-types.PulumiToken", version: "0.0.64" };
83
+ PulumiToken[_b] = { fqn: "@hallcor/pulumi-projen-project-types.PulumiToken", version: "0.0.65" };
83
84
  /**
84
85
  * Utilities for configuring Pulumi ESC inside GitHub workflows.
85
86
  *
@@ -221,6 +222,6 @@ class PulumiEscSetup {
221
222
  }
222
223
  exports.PulumiEscSetup = PulumiEscSetup;
223
224
  _c = JSII_RTTI_SYMBOL_1;
224
- PulumiEscSetup[_c] = { fqn: "@hallcor/pulumi-projen-project-types.PulumiEscSetup", version: "0.0.64" };
225
+ PulumiEscSetup[_c] = { fqn: "@hallcor/pulumi-projen-project-types.PulumiEscSetup", version: "0.0.65" };
225
226
  PulumiEscSetup.ESC_ACTION_STEP_ID = 'esc';
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsdW1pLWVzYy1zZXR1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wdWx1bWktZXNjLXNldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsdUVBSTJDO0FBUTNDOztHQUVHO0FBQ0gsTUFBYSwwQkFBMEI7SUFDckMsWUFBcUMsS0FBeUI7UUFBekIsVUFBSyxHQUFMLEtBQUssQ0FBb0I7SUFBRyxDQUFDO0lBRWxFOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVE7UUFDcEIsT0FBTyxJQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBaUI7UUFDekMsT0FBTyxJQUFJLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVk7UUFDakIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOztBQW5DSCxnRUFvQ0M7OztBQWtDRCxJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDekIsMEVBQXVELENBQUE7SUFDdkQsbUVBQWdELENBQUE7SUFDaEQsMkVBQXdELENBQUE7QUFDMUQsQ0FBQyxFQUpXLGVBQWUsK0JBQWYsZUFBZSxRQUkxQjtBQUVELE1BQXNCLFdBQVc7SUFDL0I7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWM7UUFDdkMsT0FBTztZQUNMLEtB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LENBQUMsa0JBQWtCO2dCQUNyQyxJQUFJLEVBQUUsc0JBQXNCO2dCQUM1QixJQUFJLEVBQUUsZUFBZTthQUN0QjtTQUNGLENBQUM7UUFFRixPQUFPLElBQUksY0FBYyxDQUFDO1lBQ3hCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixXQUFXLEVBQUU7Z0JBQ1gsT0FBTyxFQUFFLCtCQUFhLENBQUMsS0FBSzthQUM3QjtZQUNELFVBQVU7U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBcUMsT0FBOEI7UUFBOUIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7SUFBRyxDQUFDO0lBRXZFLElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sY0FBYyxDQUFDLGtCQUFrQixDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxHQUFXO1FBQ3ZCLE9BQU8sY0FBYyxJQUFJLENBQUMsZUFBZSxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ2hFLENBQUM7O0FBMUpILHdDQTJKQzs7O0FBMUp5QixpQ0FBa0IsR0FBRyxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKb2JQZXJtaXNzaW9uLFxuICBKb2JQZXJtaXNzaW9ucyxcbiAgSm9iU3RlcCxcbn0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcblxuaW50ZXJmYWNlIFB1bHVtaUVzY1NldHVwT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHNldHVwU3RlcHM6IEpvYlN0ZXBbXTtcbiAgcmVhZG9ubHkga2V5cz86IHN0cmluZ1tdO1xuICByZWFkb25seSBwZXJtaXNzaW9ucz86IEpvYlBlcm1pc3Npb25zO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGV4cG9ydGluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZnJvbSBFU0MuXG4gKi9cbmV4cG9ydCBjbGFzcyBFeHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcyB7XG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB2YWx1ZTogYm9vbGVhbiB8IHN0cmluZ1tdKSB7fVxuXG4gIC8qKlxuICAgKiBEbyBub3QgZXhwb3J0IGVudmlyb25tZW50IHZhcmlhYmxlcy4gVGhpcyBpcyB0aGUgZGVmYXVsdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGlzYWJsZWQoKTogRXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMge1xuICAgIHJldHVybiBuZXcgRXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgZXhwbGljaXQgbWFwcGluZ3MgdG8gZXhwb3J0LlxuICAgKlxuICAgKiBFYWNoIGVudHJ5IHNob3VsZCBmb2xsb3cgdGhlIEVTQyBhY3Rpb24gbWFwcGluZyBmb3JtYXQsIGZvciBleGFtcGxlXG4gICAqIGBHSVRIVUJfVE9LRU49UFVMVU1JX0JPVF9UT0tFTmAgb3IgYEFXU19BQ0NFU1NfS0VZX0lEYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbU1hcHBpbmcobWFwcGluZzogc3RyaW5nW10pOiBFeHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcyB7XG4gICAgcmV0dXJuIG5ldyBFeHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcyhtYXBwaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVuZGVyKCk6IGJvb2xlYW4gfCBzdHJpbmcge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZS5qb2luKCdcXG4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3VzZXNNYXBwaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVsdW1pRXNjQWN0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgRVNDIGVudmlyb25tZW50IHRvIG9wZW5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGxpc3Qgb2Yga2V5cyB0byBpbmplY3QgaW50byB0aGUgY3VycmVudCBhY3Rpb24vd29ya2Zsb3cgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGFsbCBrZXlzIGZyb20gdGhlIGVudmlyb25tZW50IHdpbGwgYmUgaW5qZWN0ZWRcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc2AgaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkga2V5cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4cG9ydCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZnJvbSBFU0MuXG4gICAqXG4gICAqIENhbiBhbHNvIGJlIGFuIGFycmF5IG9mIG1hcHBpbmcgc3RyaW5ncyB0byBleHBsaWNpdGx5IGNvbnRyb2wgd2hpY2ggdmFyaWFibGVzXG4gICAqIGFyZSBleHBvcnRlZCAoam9pbmVkIHdpdGggbmV3bGluZXMgZm9yIHRoZSBhY3Rpb24gaW5wdXQpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBFeHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcy5kaXNhYmxlZCgpXG4gICAqL1xuICByZWFkb25seSBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcz86IEV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzO1xuXG4gIC8qKlxuICAgKiBUaGUgUHVsdW1pIENsb3VkIFVSTCB0byB0YXJnZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlIHRoZSBkZWZhdWx0IFB1bHVtaSBDbG91ZCBVUkxcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBQdWx1bWlUb2tlblR5cGUge1xuICBPUkcgPSAndXJuOnB1bHVtaTp0b2tlbi10eXBlOmFjY2Vzc190b2tlbjpvcmdhbml6YXRpb24nLFxuICBURUFNID0gJ3VybjpwdWx1bWk6dG9rZW4tdHlwZTphY2Nlc3NfdG9rZW46dGVhbScsXG4gIFBFUlNPTkFMID0gJ3VybjpwdWx1bWk6dG9rZW4tdHlwZTphY2Nlc3NfdG9rZW46cGVyc29uYWwnLFxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHVsdW1pVG9rZW4ge1xuICAvKipcbiAgICogTm90ZTogb3JnYW5pemF0aW9uIHRva2VucyBhcmUgb25seSB2YWxpZCBmb3IgZW50ZXJwcmlzZSBvcmdhbml6YXRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21PcmdUb2tlbihzY29wZT86IHN0cmluZyk6IFB1bHVtaVRva2VuIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NvcGUsXG4gICAgICB0b2tlblR5cGU6IFB1bHVtaVRva2VuVHlwZS5PUkcsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gdXNlck5hbWUgdGhlIHVzZXJuYW1lIG9mIHRoZSBQdWx1bWkgdXNlciB0byByZXF1ZXN0IHRoZSB1c2VyIHRva2VuLiBEZWZhdWx0cyB0byB0aGUgb3JnYW5pemF0aW9uIG5hbWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVBlcnNvbmFsVG9rZW4odXNlck5hbWU/OiBzdHJpbmcpOiBQdWx1bWlUb2tlbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjb3BlOiBgdXNlcjoke3VzZXJOYW1lID8/ICdVU0VSX05BTUUnfWAsXG4gICAgICB0b2tlblR5cGU6IFB1bHVtaVRva2VuVHlwZS5QRVJTT05BTCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tVGVhbVRva2VuKHRlYW1OYW1lOiBzdHJpbmcpOiBQdWx1bWlUb2tlbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjb3BlOiBgdGVhbToke3RlYW1OYW1lfWAsXG4gICAgICB0b2tlblR5cGU6IFB1bHVtaVRva2VuVHlwZS5URUFNLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRva2VuIHNjb3BlLiBTY29wZSBpcyBvbmx5IG9wdGlvbmFsIGZvclxuICAgKiBvcmdhbml6YXRpb24gdG9rZW5zXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgc2NvcGU/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCB0b2tlblR5cGU6IFB1bHVtaVRva2VuVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWx1bWlBdXRoT3B0aW9ucyBleHRlbmRzIFB1bHVtaUVzY0FjdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIFB1bHVtaSBvcmdhbml6YXRpb24gdG8gYXV0aGVudGljYXRlIHdpdGhcbiAgICovXG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBwdWx1bWkgdG9rZW4gdG8gZ2V0XG4gICAqXG4gICAqXG4gICAqIEBkZWZhdWx0IFB1bHVtaVRva2VuLmZyb21QZXJzb25hbFRva2VuKClcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RlZFRva2VuPzogUHVsdW1pVG9rZW47XG5cbiAgLyoqXG4gICAqIFRoZSByZXF1ZXN0ZWQgZXhwaXJhdGlvbiB0aW1lIChpbiBzZWNvbmRzKSBmb3IgdGhlIGdlbmVyYXRlZCB0b2tlbiB3aGVuXG4gICAqIHVzaW5nIEVTQyBPSURDIGF1dGhlbnRpY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb2lkY1Rva2VuRXhwaXJhdGlvbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWx1bWlFc2NQZXJzb25hbEFjY2Vzc1Rva2VuT3B0aW9uc1xuICBleHRlbmRzIFB1bHVtaUVzY0FjdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHNlY3JldCBuYW1lIGZvciB0aGUgYWNjZXNzIHRva2VuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVXRpbGl0aWVzIGZvciBjb25maWd1cmluZyBQdWx1bWkgRVNDIGluc2lkZSBHaXRIdWIgd29ya2Zsb3dzLlxuICpcbiAqIFRoZSB1bmRlcmx5aW5nIEVTQyBhY3Rpb24gZXhwb3NlcyBvdXRwdXRzIGZvciBlYWNoIHNlY3JldCBpbiB0aGUgRVNDXG4gKiBlbnZpcm9ubWVudCAoaW5jbHVkaW5nIGFueSByZW1hcHBlZCBuYW1lcyB3aGVuIGBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc2BcbiAqIGlzIGNvbmZpZ3VyZWQpLiBBIHN0YWJsZSBzdGVwIGlkIGlzIHVzZWQgc28gZG93bnN0cmVhbSBzdGVwcyBjYW4gcmVmZXJlbmNlXG4gKiB0aG9zZSBvdXRwdXRzIGNvbnNpc3RlbnRseS5cbiAqL1xuZXhwb3J0IGNsYXNzIFB1bHVtaUVzY1NldHVwIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVNDX0FDVElPTl9TVEVQX0lEID0gJ2VzYyc7XG4gIC8qKlxuICAgKiBQcm92aWRlcyBFU0MgYWNjZXNzIHVzaW5nIGEgcGVyc29uYWwgYWNjZXNzIHRva2VuLlxuICAgKlxuICAgKiBUaGUgdG9rZW4gbXVzdCBiZSBhZGRlZCBhcyBhIHNlY3JldCB0byB0aGUgR2l0SHViIHJlcG8sIGFuZCB0aGUgbmFtZSBvZiB0aGVcbiAgICogc2VjcmV0IGNhbiBiZSBzcGVjaWZpZWQgaGVyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIHNlY3JldCBuYW1lZCBcIlBVTFVNSV9BQ0NFU1NfVE9LRU5cIlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUGVyc29uYWxBY2Nlc3NUb2tlbihcbiAgICBvcHRpb25zOiBQdWx1bWlFc2NQZXJzb25hbEFjY2Vzc1Rva2VuT3B0aW9ucyxcbiAgKSB7XG4gICAgY29uc3Qgc2VjcmV0ID0gb3B0aW9ucy5zZWNyZXQgPz8gJ1BVTFVNSV9BQ0NFU1NfVE9LRU4nO1xuICAgIGlmIChvcHRpb25zLmtleXMgJiYgb3B0aW9ucy5leHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnRG8gbm90IHByb3ZpZGUgYm90aCBcImtleXNcIiBhbmQgXCJleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc1wiLiBTcGVjaWZ5IG9ubHkgb25lLicsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcyA9XG4gICAgICBvcHRpb25zLmV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzID8/IEV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzLmRpc2FibGVkKCk7XG5cbiAgICBsZXQga2V5czogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc0lucHV0OiBib29sZWFuIHwgc3RyaW5nID1cbiAgICAgIGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzLl9yZW5kZXIoKTtcblxuICAgIGlmIChvcHRpb25zLmtleXMpIHtcbiAgICAgIGtleXMgPSBvcHRpb25zLmtleXMuam9pbignLCcpO1xuICAgICAgZXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXNJbnB1dCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcy5fdXNlc01hcHBpbmcoKSkge1xuICAgICAga2V5cyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFB1bHVtaUVzY1NldHVwKHtcbiAgICAgIGtleXM6IG9wdGlvbnMua2V5cyxcbiAgICAgIHNldHVwU3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiBQdWx1bWlFc2NTZXR1cC5FU0NfQUNUSU9OX1NURVBfSUQsXG4gICAgICAgICAgdXNlczogJ3B1bHVtaS9lc2MtYWN0aW9uQHYxJyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICBlbnZpcm9ubWVudDogb3B0aW9ucy5lbnZpcm9ubWVudCxcbiAgICAgICAgICAgIGtleXMsXG4gICAgICAgICAgICAnZXhwb3J0LWVudmlyb25tZW50LXZhcmlhYmxlcyc6IGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzSW5wdXQsXG4gICAgICAgICAgICAnY2xvdWQtdXJsJzogb3B0aW9ucy5jbG91ZFVybCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgUFVMVU1JX0FDQ0VTU19UT0tFTjogYFxcJHt7IHNlY3JldHMuJHtzZWNyZXR9IH19YCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBFU0MgYWNjZXNzIHVzaW5nIE9JREMgYXV0aGVudGljYXRpb24gdmlhIHRoZSBwdWx1bWkvYXV0aC1hY3Rpb25zXG4gICAqIGFjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbU9pZGNBdXRoKG9wdGlvbnM6IFB1bHVtaUF1dGhPcHRpb25zKSB7XG4gICAgY29uc3QgdG9rZW4gPVxuICAgICAgb3B0aW9ucy5yZXF1ZXN0ZWRUb2tlbiA/P1xuICAgICAgUHVsdW1pVG9rZW4uZnJvbVBlcnNvbmFsVG9rZW4ob3B0aW9ucy5vcmdhbml6YXRpb24pO1xuICAgIGNvbnN0IHNjb3BlID0gdG9rZW4uc2NvcGVcbiAgICAgID8gdG9rZW4uc2NvcGUucmVwbGFjZSgnVVNFUl9OQU1FJywgb3B0aW9ucy5vcmdhbml6YXRpb24pXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICBpZiAodG9rZW4udG9rZW5UeXBlICE9PSBQdWx1bWlUb2tlblR5cGUuT1JHICYmICFzY29wZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgUHVsdW1pVG9rZW5UeXBlICR7dG9rZW4udG9rZW5UeXBlfSByZXF1aXJlcyBhIFwic2NvcGVcIiB0byBiZSBzZXRgLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMua2V5cyAmJiBvcHRpb25zLmV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdEbyBub3QgcHJvdmlkZSBib3RoIFwia2V5c1wiIGFuZCBcImV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzXCIuIFNwZWNpZnkgb25seSBvbmUuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzID1cbiAgICAgIG9wdGlvbnMuZXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMgPz8gRXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMuZGlzYWJsZWQoKTtcblxuICAgIGxldCBrZXlzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzSW5wdXQ6IGJvb2xlYW4gfCBzdHJpbmcgPVxuICAgICAgZXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMuX3JlbmRlcigpO1xuXG4gICAgaWYgKG9wdGlvbnMua2V5cykge1xuICAgICAga2V5cyA9IG9wdGlvbnMua2V5cy5qb2luKCcsJyk7XG4gICAgICBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc0lucHV0ID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzLl91c2VzTWFwcGluZygpKSB7XG4gICAgICBrZXlzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGVzY0FjdGlvbklucHV0czogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcbiAgICAgIGVudmlyb25tZW50OiBvcHRpb25zLmVudmlyb25tZW50LFxuICAgICAga2V5cyxcbiAgICAgICdleHBvcnQtZW52aXJvbm1lbnQtdmFyaWFibGVzJzogZXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXNJbnB1dCxcbiAgICAgICdjbG91ZC11cmwnOiBvcHRpb25zLmNsb3VkVXJsLFxuICAgIH07XG5cbiAgICBlc2NBY3Rpb25JbnB1dHNbJ29pZGMtYXV0aCddID0gdHJ1ZTtcbiAgICBlc2NBY3Rpb25JbnB1dHNbJ29pZGMtb3JnYW5pemF0aW9uJ10gPSBvcHRpb25zLm9yZ2FuaXphdGlvbjtcbiAgICBlc2NBY3Rpb25JbnB1dHNbJ29pZGMtcmVxdWVzdGVkLXRva2VuLXR5cGUnXSA9IHRva2VuLnRva2VuVHlwZTtcbiAgICBpZiAoc2NvcGUpIHtcbiAgICAgIGVzY0FjdGlvbklucHV0c1snb2lkYy1zY29wZSddID0gc2NvcGU7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLm9pZGNUb2tlbkV4cGlyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgZXNjQWN0aW9uSW5wdXRzWydvaWRjLXRva2VuLWV4cGlyYXRpb24nXSA9IG9wdGlvbnMub2lkY1Rva2VuRXhwaXJhdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBzZXR1cFN0ZXBzOiBKb2JTdGVwW10gPSBbXG4gICAgICB7XG4gICAgICAgIGlkOiBQdWx1bWlFc2NTZXR1cC5FU0NfQUNUSU9OX1NURVBfSUQsXG4gICAgICAgIHVzZXM6ICdwdWx1bWkvZXNjLWFjdGlvbkB2MScsXG4gICAgICAgIHdpdGg6IGVzY0FjdGlvbklucHV0cyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBuZXcgUHVsdW1pRXNjU2V0dXAoe1xuICAgICAga2V5czogb3B0aW9ucy5rZXlzLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgaWRUb2tlbjogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgIH0sXG4gICAgICBzZXR1cFN0ZXBzLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBQdWx1bWlFc2NTZXR1cE9wdGlvbnMpIHt9XG5cbiAgcHVibGljIGdldCBwZXJtaXNzaW9ucygpOiBKb2JQZXJtaXNzaW9ucyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5wZXJtaXNzaW9ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2V0dXBTdGVwcygpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnNldHVwU3RlcHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGtleXMoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMua2V5cztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc3RlcCBpZCBhc3NpZ25lZCB0byB0aGUgRVNDIGFjdGlvbi4gVXNlIHRoaXMgdG8gYnVpbGQgcmVmZXJlbmNlcyB0byB0aGVcbiAgICogYWN0aW9uIG91dHB1dHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVzY0FjdGlvblN0ZXBJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBQdWx1bWlFc2NTZXR1cC5FU0NfQUNUSU9OX1NURVBfSUQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIEdpdEh1YiBBY3Rpb25zIGV4cHJlc3Npb24gZm9yIGEgUHVsdW1pIEVTQyBvdXRwdXQgdmFsdWUuXG4gICAqXG4gICAqIE91dHB1dHMgYXJlIGV4cG9zZWQgZm9yIGV2ZXJ5IHNlY3JldCBpbiB0aGUgRVNDIGVudmlyb25tZW50IChpbmNsdWRpbmcgYW55XG4gICAqIHJlbWFwcGVkIG5hbWVzIGRlZmluZWQgdmlhIGBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlc2ApLiBVc2UgdGhlIG91dHB1dFxuICAgKiBrZXkgZXhhY3RseSBhcyBpdCBhcHBlYXJzIGluIHRoZSBFU0MgYWN0aW9uIG91dHB1dCBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgVGhlIEVTQyBvdXRwdXQga2V5IHRvIHJlZmVyZW5jZS5cbiAgICovXG4gIHB1YmxpYyBvdXRwdXQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwke3sgc3RlcHMuJHt0aGlzLmVzY0FjdGlvblN0ZXBJZH0ub3V0cHV0cy4ke2tleX0gfX1gO1xuICB9XG59XG4iXX0=
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsdW1pLWVzYy1zZXR1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wdWx1bWktZXNjLXNldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsdUVBSTJDO0FBUTNDOztHQUVHO0FBQ0gsTUFBYSwwQkFBMEI7SUFDckMsWUFBcUMsS0FBeUI7UUFBekIsVUFBSyxHQUFMLEtBQUssQ0FBb0I7SUFBRyxDQUFDO0lBRWxFOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVE7UUFDcEIsT0FBTyxJQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQWlCO1FBQ3pDLE9BQU8sSUFBSSwwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPO1FBQ1osSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZO1FBQ2pCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7QUFwQ0gsZ0VBcUNDOzs7QUFrQ0QsSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3pCLDBFQUF1RCxDQUFBO0lBQ3ZELG1FQUFnRCxDQUFBO0lBQ2hELDJFQUF3RCxDQUFBO0FBQzFELENBQUMsRUFKVyxlQUFlLCtCQUFmLGVBQWUsUUFJMUI7QUFFRCxNQUFzQixXQUFXO0lBQy9COztPQUVHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFjO1FBQ3ZDLE9BQU87WUFDTCxL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YyxDQUFDLGtCQUFrQjtnQkFDckMsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsSUFBSSxFQUFFLGVBQWU7YUFDdEI7U0FDRixDQUFDO1FBRUYsT0FBTyxJQUFJLGNBQWMsQ0FBQztZQUN4QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsV0FBVyxFQUFFO2dCQUNYLE9BQU8sRUFBRSwrQkFBYSxDQUFDLEtBQUs7YUFDN0I7WUFDRCxVQUFVO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQXFDLE9BQThCO1FBQTlCLFlBQU8sR0FBUCxPQUFPLENBQXVCO0lBQUcsQ0FBQztJQUV2RSxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsZUFBZTtRQUN4QixPQUFPLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsR0FBVztRQUN2QixPQUFPLGNBQWMsSUFBSSxDQUFDLGVBQWUsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUNoRSxDQUFDOztBQTFKSCx3Q0EySkM7OztBQTFKeUIsaUNBQWtCLEdBQUcsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSm9iUGVybWlzc2lvbixcbiAgSm9iUGVybWlzc2lvbnMsXG4gIEpvYlN0ZXAsXG59IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbCc7XG5cbmludGVyZmFjZSBQdWx1bWlFc2NTZXR1cE9wdGlvbnMge1xuICByZWFkb25seSBzZXR1cFN0ZXBzOiBKb2JTdGVwW107XG4gIHJlYWRvbmx5IGtleXM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgcGVybWlzc2lvbnM/OiBKb2JQZXJtaXNzaW9ucztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBleHBvcnRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZyb20gRVNDLlxuICovXG5leHBvcnQgY2xhc3MgRXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMge1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdmFsdWU6IGJvb2xlYW4gfCBzdHJpbmdbXSkge31cblxuICAvKipcbiAgICogRG8gbm90IGV4cG9ydCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIFRoaXMgaXMgdGhlIGRlZmF1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGRpc2FibGVkKCk6IEV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzIHtcbiAgICByZXR1cm4gbmV3IEV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzKGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlIGV4cGxpY2l0IG1hcHBpbmdzIHRvIGV4cG9ydC5cbiAgICpcbiAgICogRWFjaCBlbnRyeSBzaG91bGQgZm9sbG93IHRoZSBFU0MgYWN0aW9uIG1hcHBpbmcgZm9ybWF0LCBmb3IgZXhhbXBsZVxuICAgKiBgR0lUSFVCX1RPS0VOPVBVTFVNSV9CT1RfVE9LRU5gIG9yIGBBV1NfQUNDRVNTX0tFWV9JRGAuIFRoZSB2YWx1ZXMgYXJlXG4gICAqIHJlbmRlcmVkIGFzIGEgY29tbWEtZGVsaW1pdGVkIHN0cmluZyBmb3IgdGhlIEVTQyBhY3Rpb24gaW5wdXQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21NYXBwaW5nKG1hcHBpbmc6IHN0cmluZ1tdKTogRXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMge1xuICAgIHJldHVybiBuZXcgRXhwb3J0RW52aXJvbm1lbnRWYXJpYWJsZXMobWFwcGluZyk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcigpOiBib29sZWFuIHwgc3RyaW5nIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWUuam9pbignLCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfdXNlc01hcHBpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWx1bWlFc2NBY3Rpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBFU0MgZW52aXJvbm1lbnQgdG8gb3BlblxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogbGlzdCBvZiBrZXlzIHRvIGluamVjdCBpbnRvIHRoZSBjdXJyZW50IGFjdGlvbi93b3JrZmxvdyBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgYWxsIGtleXMgZnJvbSB0aGUgZW52aXJvbm1lbnQgd2lsbCBiZSBpbmplY3RlZFxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzYCBpbnN0ZWFkXG4gICAqL1xuICByZWFkb25seSBrZXlzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZXhwb3J0IGVudmlyb25tZW50IHZhcmlhYmxlcyBmcm9tIEVTQy5cbiAgICpcbiAgICogQ2FuIGFsc28gYmUgYW4gYXJyYXkgb2YgbWFwcGluZyBzdHJpbmdzIHRvIGV4cGxpY2l0bHkgY29udHJvbCB3aGljaCB2YXJpYWJsZXNcbiAgICogYXJlIGV4cG9ydGVkIChqb2luZWQgd2l0aCBjb21tYXMgZm9yIHRoZSBhY3Rpb24gaW5wdXQpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBFeHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcy5kaXNhYmxlZCgpXG4gICAqL1xuICByZWFkb25seSBleHBvcnRFbnZpcm9ubWVudFZhcmlhYmxlcz86IEV4cG9ydEVudmlyb25tZW50VmFyaWFibGVzO1xuXG4gIC8qKlxuICAgKiBUaGUgUHVsdW1pIENsb3VkIFVSTCB0byB0YXJnZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlIHRoZSBkZWZhdWx0IFB1bHVtaSBDbG91ZCBVUkxcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBQdWx1bWlUb2tlblR5cGUge1xuICBPUkcgPSAndXJuOnB1bHVtaTp0b2tlbi10eXBlOmFjY2Vzc190b2tlbjpvcmdhbml6YXRpb24nLFxuICBURUFNID0gJ3VybjpwdWx1bWk6dG9rZW4tdHlwZTphY2Nlc3NfdG9rZW46dGVhbScsXG4gIFBFUlNPTkFMID0gJ3VybjpwdWx1bWk6dG9rZW4tdHlwZTphY2Nlc3NfdG9rZW46cGVyc29uYWwnLFxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHVsdW1pVG9rZW4ge1xuICAvKipcbiAgICogTm90ZTogb3JnYW5pemF0aW9uIHRva2VucyBhcmUgb25seSB2YWxpZCBmb3IgZW50ZXJwcmlzZSBvcmdhbml6YXRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21PcmdUb2tlbihzY29wZT86IHN0cmluZyk6IFB1bHVtaVRva2VuIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NvcGUsXG4gICAgICB0b2tlblR5cGU6IFB1bHVtaVRva2VuVHlwZS5PUkcsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gdXNlck5hbWUgdGhlIHVzZXJuYW1lIG9mIHRoZSBQdWx1bWkgdXNlciB0byByZXF1ZXN0IHRoZSB1c2VyIHRva2VuLiBEZWZhdWx0cyB0byB0aGUgb3JnYW5pemF0aW9uIG5hbWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVBlcnNvbmFsVG9rZW4odXNlck5hbWU/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.64" };
239
+ PythonComponent[_a] = { fqn: "@hallcor/pulumi-projen-project-types.PythonComponent", version: "0.0.65" };
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.64" };
84
+ ReleaseWorkflow[_a] = { fqn: "@hallcor/pulumi-projen-project-types.ReleaseWorkflow", version: "0.0.65" };
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.64" };
196
+ TagRelease[_b] = { fqn: "@hallcor/pulumi-projen-project-types.TagRelease", version: "0.0.65" };
197
197
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDJDQUF1QztBQUN2QyxtQ0FBdUM7QUFDdkMsOENBQTBEO0FBQzFELDJEQUEwRTtBQUUxRSx1RUFJMkM7QUFDM0MsZ0RBQThFO0FBNkI5RSxNQUFhLGVBQWdCLFNBQVEsc0JBQVM7SUFDckMsTUFBTSxDQUFDLGFBQWE7UUFDekIsT0FBTztZQUNMLEVBQUUsRUFBRSxnQkFBZ0I7WUFDcEIsSUFBSSxFQUFFLDBCQUEwQjtZQUNoQyxHQUFHLEVBQUU7Z0JBQ0gsdUZBQXVGO2dCQUN2RixNQUFNO2dCQUNOLHNDQUFzQztnQkFDdEMsTUFBTTtnQkFDTix1Q0FBdUM7Z0JBQ3ZDLElBQUk7YUFDTCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDWixHQUFHLEVBQUU7Z0JBQ0gsWUFBWSxFQUFFLDZCQUE2QjthQUM1QztTQUNGLENBQUM7SUFDSixDQUFDO0lBQ00sTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUE2QjtRQUN2RCxPQUFPO1lBQ0wsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixFQUFFLEVBQUUsT0FBTyxDQUFDLG1CQUFtQjtnQkFDN0IsQ0FBQyxDQUFDLGdEQUFnRDtnQkFDbEQsQ0FBQyxDQUFDLFNBQVM7WUFDYixHQUFHLEVBQUU7Z0JBQ0gsbUJBQW1CO2dCQUNuQixPQUFPLENBQUMsVUFBVTtnQkFDbEIsaUNBQWlDO2dCQUNqQyxnQkFBZ0IsT0FBTyxDQUFDLGFBQWEsRUFBRTtnQkFDdkMsV0FBVyxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUMvQixjQUFjO2FBQ2YsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ1gsR0FBRyxFQUFFO2dCQUNILFlBQVksRUFBRSw2QkFBNkI7YUFDNUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUs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RSxTQUFTLGNBQWMsR0FBRzt5QkFDdkMsQ0FBQztxQkFDSDtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUMvQixJQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMxRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN0QixxRkFBcUYsQ0FDdEYsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs7QUE5SEgsZ0NBK0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUHJvamVjdCwgVGFzayB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBHaXRIdWIsIFdvcmtmbG93U3RlcHMgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yic7XG5pbXBvcnQgeyBERUZBVUxUX0dJVEhVQl9BQ1RJT05TX1VTRVIgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yi9jb25zdGFudHMnO1xuXG5pbXBvcnQge1xuICBKb2JQZXJtaXNzaW9uLFxuICBKb2JQZXJtaXNzaW9ucyxcbiAgSm9iU3RlcCxcbn0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7IFJlbGVhc2UgYXMgUHJvamVuUmVsZWFzZSwgUmVsZWFzZVRyaWdnZXIgfSBmcm9tICdwcm9qZW4vbGliL3JlbGVhc2UnO1xuaW1wb3J0IHsgVGFnUmVsZWFzZU9wdGlvbnMgfSBmcm9tICcuL3N0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdpdFRhZ1B1Ymxpc2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgcGVybWlzc2lvbnMgdG8gYWRkIHRvIHRoZSBHaXQgVGFnIEpvYlxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbnM/OiBKb2JQZXJtaXNzaW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVSZWxlYXNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgY2hhbmdlbG9nIGZpbGUgdG8gZ2VuZXJhdGUgcmVsZWFzZSBub3RlcyBmcm9tXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2Vsb2dQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByZWxlYXNlIHRhZy4gVGhpcyBjb3VsZCBiZSBzb21ldGhpbmcgbGlrZSBgJHt7IGdpdGh1Yi5yZWZfbmFtZSB9fWBcbiAgICogb3IgYCQoY2F0IGRpc3QvcmVsZWFzZXRhZy50eHQpYFxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZVRhZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG9ubHkgcnVuIHRoaXMgc3RlcCBpZiB0aGUgYHJlbGVhc2UtZXhpc3RzYCBzdGVwIHJldHVybmVkIHRydWVcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHZlcmlmeVJlbGVhc2VFeGlzdHM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUmVsZWFzZVdvcmtmbG93IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHN0YXRpYyByZWxlYXNlRXhpc3RzKCk6IEpvYlN0ZXAge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogJ3JlbGVhc2UtZXhpc3RzJyxcbiAgICAgIG5hbWU6ICdWZXJpZnkgaWYgcmVsZWFzZSBleGlzdHMnLFxuICAgICAgcnVuOiBbXG4gICAgICAgICdpZiBnaCByZWxlYXNlIHZpZXcgJHt7IGdpdGh1Yi5yZWZfbmFtZSB9fSAtLXJlcG89JHt7IGdpdGh1Yi5yZXBvc2l0b3J5IH19ICY+L2Rldi9udWxsJyxcbiAgICAgICAgJ3RoZW4nLFxuICAgICAgICAnZWNobyBcInJlc3VsdD10cnVlXCIgPj4gJEdJVEhVQl9PVVRQVVQnLFxuICAgICAgICAnZWxzZScsXG4gICAgICAgICdlY2hvIFwicmVzdWx0PWZhbHNlXCIgPj4gJEdJVEhVQl9PVVRQVVQnLFxuICAgICAgICAnZmknLFxuICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgIGVudjoge1xuICAgICAgICBHSVRIVUJfVE9LRU46ICcke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX0nLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlUmVsZWFzZShvcHRpb25zOiBDcmVhdGVSZWxlYXNlT3B0aW9ucyk6IEpvYlN0ZXAge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAnQ3JlYXRlIFJlbGVhc2UnLFxuICAgICAgaWY6IG9wdGlvbnMudmVyaWZ5UmVsZWFzZUV4aXN0c1xuICAgICAgICA/ICchZnJvbUpTT04oc3RlcHMucmVsZWFzZS1leGlzdHMub3V0cHV0cy5yZXN1bHQpJ1xuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHJ1bjogW1xuICAgICAgICAnZ2ggcmVsZWFzZSBjcmVhdGUnLFxuICAgICAgICBvcHRpb25zLnJlbGVhc2VUYWcsXG4gICAgICAgICctLXJlcG8gJHt7IGdpdGh1Yi5yZXBvc2l0b3J5IH19JyxcbiAgICAgICAgYC0tbm90ZXMtZmlsZSAke29wdGlvbnMuY2hhbmdlbG9nUGF0aH1gLFxuICAgICAgICBgLS10aXRsZSAke29wdGlvbnMucmVsZWFzZVRhZ31gLFxuICAgICAgICAnLS12ZXJpZnktdGFnJyxcbiAgICAgIF0uam9pbignICcpLFxuICAgICAgZW52OiB7XG4gICAgICAgIEdJVEhVQl9UT0tFTjogJyR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fScsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY2hhbmdlbG9nUGF0aDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBwcm9qZWN0ID0gUHJvamVjdC5vZih0aGlzKTtcbiAgICBjb25zdCBnaXRodWIgPSBHaXRIdWIub2YocHJvamVjdCk7XG4gICAgaWYgKCFnaXRodWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVsZWFzZVdvcmtmbG93IHJlcXVpcmVzIGEgR2l0SHViIFByb2plY3QnKTtcbiAgICB9XG5cbiAgICBjb25zdCB3b3JrZmxvd05hbWUgPSAnZ2l0aHViLXJlbGVhc2UnO1xuXG4gICAgaWYgKGdpdGh1Yi50cnlGaW5kV29ya2Zsb3cod29ya2Zsb3dOYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIHJlbGVhc2Ugd29ya2Zsb3cgYWxyZWFkeSBleGlzdHMnKTtcbiAgICB9XG5cbiAgICBjb25zdCByZWxlYXNlID0gZ2l0aHViLmFkZFdvcmtmbG93KHdvcmtmbG93TmFtZSk7XG4gICAgcmVsZWFzZS5ydW5OYW1lID0gJ1JlbGVhc2UgJHt7IGdpdGh1Yi5yZWZfbmFtZSB9fSc7XG4gICAgcmVsZWFzZS5vbih7IHB1c2g6IHsgdGFnczogWyd2Ki4qLionXSB9IH0pO1xuXG4gICAgcmVsZWFzZS5hZGRKb2IoJ3B1Ymxpc2gtdG8tZ2l0aHViLXJlbGVhc2UnLCB7XG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgIH0sXG4gICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAgV29ya2Zsb3dTdGVwcy5jaGVja291dCh7IHdpdGg6IHsgZmV0Y2hEZXB0aDogMCB9IH0pLFxuICAgICAgICBSZWxlYXNlV29ya2Zsb3cucmVsZWFzZUV4aXN0cygpLFxuICAgICAgICBSZWxlYXNlV29ya2Zsb3cuY3JlYXRlUmVsZWFzZSh7XG4gICAgICAgICAgY2hhbmdlbG9nUGF0aCxcbiAgICAgICAgICByZWxlYXNlVGFnOiAnJHt7IGdpdGh1Yi5yZWZfbmFtZSB9fScsXG4gICAgICAgICAgdmVyaWZ5UmVsZWFzZUV4aXN0czogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgbmFtZTogJ1B1Ymxpc2ggdG8gR2l0SHViIFJlbGVhc2UnLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWdSZWxlYXNlIGV4dGVuZHMgUHJvamVuUmVsZWFzZSB7XG4gIHB1YmxpYyByZWFkb25seSB0cmlnZ2VyOiBSZWxlYXNlVHJpZ2dlcjtcbiAgcHVibGljIHJlYWRvbmx5IHB1Ymxpc2hUYXNrOiBUYXNrO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBwcm9wczogVGFnUmVsZWFzZU9wdGlvbnMpIHtcbiAgICBpZiAoIXByb3BzLnRhc2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGFnUmVsZWFzZSByZXF1aXJlcyBhIHJlbGVhc2UgdGFzaycpO1xuICAgIH1cbiAgICBzdXBlcihzY29wZSwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICB0YXNrOiBwcm9wcy50YXNrLFxuICAgICAgZ2l0aHViUmVsZWFzZTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwcm9qZWN0ID0gUHJvamVjdC5vZih0aGlzKTtcbiAgICB0aGlzLnRyaWdnZXIgPSBwcm9wcy5yZWxlYXNlVHJpZ2dlciA/PyBSZWxlYXNlVHJpZ2dlci5jb250aW51b3VzKCk7XG5cbiAgICBjb25zdCBjaGFuZ2Vsb2dGaWxlTmFtZSA9ICdjaGFuZ2Vsb2cubWQnO1xuICAgIGNvbnN0IHZlcnNpb25GaWxlTmFtZSA9ICd2ZXJzaW9uLnR4dCc7XG4gICAgY29uc3QgcmVsZWFzZVRhZ0ZpbGVOYW1lID0gJ3JlbGVhc2V0YWcudHh0JztcblxuICAgIGNvbnN0IGNoYW5nZWxvZ0ZpbGUgPSBwYXRoLnBvc2l4LmpvaW4oXG4gICAgICB0aGlzLmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgIGNoYW5nZWxvZ0ZpbGVOYW1lLFxuICAgICk7XG4gICAgY29uc3QgcmVsZWFzZVRhZ0ZpbGUgPSBwYXRoLnBvc2l4LmpvaW4oXG4gICAgICB0aGlzLmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgIHJlbGVhc2VUYWdGaWxlTmFtZSxcbiAgICApO1xuICAgIGNvbnN0IHZlcnNpb25GaWxlID0gcGF0aC5wb3NpeC5qb2luKFxuICAgICAgdGhpcy5hcnRpZmFjdHNEaXJlY3RvcnksXG4gICAgICB2ZXJzaW9uRmlsZU5hbWUsXG4gICAgKTtcblxuICAgIHRoaXMucHVibGlzaFRhc2sgPSB0aGlzLnB1Ymxpc2hlci5wdWJsaXNoVG9HaXQoe1xuICAgICAgY2hhbmdlbG9nRmlsZSxcbiAgICAgIHJlbGVhc2VUYWdGaWxlLFxuICAgICAgdmVyc2lvbkZpbGUsXG4gICAgICBwcm9qZWN0Q2hhbmdlbG9nRmlsZTogdGhpcy50cmlnZ2VyLmNoYW5nZWxvZ1BhdGgsXG4gICAgICBnaXRCcmFuY2g6IHByb3BzLmJyYW5jaCxcbiAgICAgIGdpdFB1c2hDb21tYW5kOiB0aGlzLnRyaWdnZXIuZ2l0UHVzaENvbW1hbmQsXG4gICAgfSk7XG5cbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZSh0aGlzLmFydGlmYWN0c0RpcmVjdG9yeSk7XG4gICAgY29uc3QgZ2l0aHViID0gR2l0SHViLm9mKHByb2plY3QpO1xuICAgIGlmICghZ2l0aHViKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlbGVhc2VXb3JrZmxvdyByZXF1aXJlcyBhIEdpdEh1YiBQcm9qZWN0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgZG93bmxvYWRBcnRpZmFjdCA9IFdvcmtmbG93U3RlcHMuZG93bmxvYWRBcnRpZmFjdCh7XG4gICAgICB3aXRoOiB7XG4gICAgICAgIG5hbWU6ICdidWlsZC1hcnRpZmFjdCcsXG4gICAgICAgIHBhdGg6IHRoaXMuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCByZXN0b3JlQXJ0aWZhY3QgPSB7XG4gICAgICBuYW1lOiAnUmVzdG9yZSBidWlsZCBhcnRpZmFjdCBwZXJtaXNzaW9ucycsXG4gICAgICBydW46IGBjZCAke3RoaXMuYXJ0aWZhY3RzRGlyZWN0b3J5fSAmJiBzZXRmYWNsIC0tcmVzdG9yZT1wZXJtaXNzaW9ucy1iYWNrdXAuYWNsYCxcbiAgICAgIGNvbnRpbnVlT25FcnJvcjogdHJ1ZSxcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRKb2JzKHtcbiAgICAgIHJlbGVhc2VfZ2l0OiB7XG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgLi4ucHJvcHMuZ2l0VGFnUHVibGlzaE9wdGlvbnM/LnBlcm1pc3Npb25zLFxuICAgICAgICB9LFxuICAgICAgICBpZjogXCJuZWVkcy5yZWxlYXNlLm91dHB1dHMudGFnX2V4aXN0cyAhPSAndHJ1ZScgJiYgbmVlZHMucmVsZWFzZS5vdXRwdXRzLmxhdGVzdF9jb21taXQgPT0gZ2l0aHViLnNoYVwiLFxuICAgICAgICBuYW1lOiAnUHVibGlzaCBHaXQgVGFnJyxcbiAgICAgICAgbmVlZHM6IFsncmVsZWFzZSddLFxuICAgICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgICBzdGVwczogW1xuICAgICAgICAgIC4uLmdpdGh1Yi5wcm9qZW5DcmVkZW50aWFscy5zZXR1cFN0ZXBzLFxuICAgICAgICAgIFdvcmtmbG93U3RlcHMuY2hlY2tvdXQoe1xuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICByZWY6IHByb3BzLmJyYW5jaCxcbiAgICAgICAgICAgICAgdG9rZW46IGdpdGh1Yi5wcm9qZW5DcmVkZW50aWFscy50b2tlblJlZixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZG93bmxvYWRBcnRpZmFjdCxcbiAgICAgICAgICByZXN0b3JlQXJ0aWZhY3QsXG4gICAgICAgICAgV29ya2Zsb3dTdGVwcy5zZXR1cEdpdElkZW50aXR5KHtcbiAgICAgICAgICAgIGdpdElkZW50aXR5OiBwcm9wcy5naXRJZGVudGl0eSA/PyBERUZBVUxUX0dJVEhVQl9BQ1RJT05TX1VTRVIsXG4gICAgICAgICAgfSksXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1JlbGVhc2UnLFxuICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgIFZFUlNJT05fRklMRTogdmVyc2lvbkZpbGUsXG4gICAgICAgICAgICAgIENIQU5HRUxPRzogdGhpcy50cmlnZ2VyLmNoYW5nZWxvZ1BhdGggPz8gJycsXG4gICAgICAgICAgICAgIFJFTEVBU0VfVEFHX0ZJTEU6IHJlbGVhc2VUYWdGaWxlLFxuICAgICAgICAgICAgICBHSVRIVUJfVE9LRU46IGdpdGh1Yi5wcm9qZW5DcmVkZW50aWFscy50b2tlblJlZixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBydW46IHByb2plY3QucnVuVGFza0NvbW1hbmQodGhpcy5wdWJsaXNoVGFzayksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAoIXRoaXMudHJpZ2dlci5pc01hbnVhbCkge1xuICAgICAgdGhpcy5hZGRKb2JzKHtcbiAgICAgICAgcmVsZWFzZV9naXRodWI6IHtcbiAgICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBuZWVkczogWydyZWxlYXNlX2dpdCcsICdyZWxlYXNlJ10sXG4gICAgICAgICAgaWY6IFwibmVlZHMucmVsZWFzZS5vdXRwdXRzLnRhZ19leGlzdHMgIT0gJ3RydWUnICYmIG5lZWRzLnJlbGVhc2Uub3V0cHV0cy5sYXRlc3RfY29tbWl0ID09IGdpdGh1Yi5zaGFcIixcbiAgICAgICAgICBuYW1lOiAnUHVibGlzaCBHaXRIdWIgUmVsZWFzZScsXG4gICAgICAgICAgcnVuc09uOiBbJ3VidW50dS1sYXRlc3QnXSxcbiAgICAgICAgICBzdGVwczogW1xuICAgICAgICAgICAgZG93bmxvYWRBcnRpZmFjdCxcbiAgICAgICAgICAgIHJlc3RvcmVBcnRpZmFjdCxcbiAgICAgICAgICAgIFJlbGVhc2VXb3JrZmxvdy5jcmVhdGVSZWxlYXNlKHtcbiAgICAgICAgICAgICAgY2hhbmdlbG9nUGF0aDogY2hhbmdlbG9nRmlsZSxcbiAgICAgICAgICAgICAgcmVsZWFzZVRhZzogYCQoY2F0ICR7cmVsZWFzZVRhZ0ZpbGV9KWAsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnRyaWdnZXIuY2hhbmdlbG9nUGF0aCkge1xuICAgICAgICBuZXcgUmVsZWFzZVdvcmtmbG93KHRoaXMsICdyZWxlYXNlLWdpdGh1YicsIHRoaXMudHJpZ2dlci5jaGFuZ2Vsb2dQYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIud2FybihcbiAgICAgICAgICAnbWFudWFsIHJlbGVhc2UgdHJpZ2dlciBoYXMgbm8gY2hhbmdlbG9nUGF0aCwgbm90IGdlbmVyYXRpbmcgcmVsZWFzZS1naXRodWIgd29ya2Zsb3cnLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -8,7 +8,7 @@ export interface GithubCredentialsPersonalAccessTokenOptions {
8
8
  */
9
9
  readonly secret?: string;
10
10
  /**
11
- * Optionally include setup steps to inject environment variables from Pulumi ESC
11
+ * Optionally include setup steps and resolve app credentials from Pulumi ESC outputs
12
12
  * @default do not include pulumi esc setup
13
13
  */
14
14
  readonly pulumiEscSetup?: PulumiEscSetup;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLXRva2VuLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RydWN0cy9naXRodWItb3B0aW9ucy9hY2Nlc3MtdG9rZW4tb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBQdWx1bWlFc2NTZXR1cCB9IGZyb20gJy4uLy4uLyc7XG5cbi8qKlxuICogR2l0aHViQ3JlZGVudGlhbHNQZXJzb25hbEFjY2Vzc1Rva2VuT3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGh1YkNyZWRlbnRpYWxzUGVyc29uYWxBY2Nlc3NUb2tlbk9wdGlvbnMge1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldD86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgaW5jbHVkZSBzZXR1cCBzdGVwcyB0byBpbmplY3QgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZyb20gUHVsdW1pIEVTQ1xuICAgKiBAZGVmYXVsdCBkbyBub3QgaW5jbHVkZSBwdWx1bWkgZXNjIHNldHVwXG4gICAqL1xuICByZWFkb25seSBwdWx1bWlFc2NTZXR1cD86IFB1bHVtaUVzY1NldHVwO1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLXRva2VuLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RydWN0cy9naXRodWItb3B0aW9ucy9hY2Nlc3MtdG9rZW4tb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBQdWx1bWlFc2NTZXR1cCB9IGZyb20gJy4uLy4uLyc7XG5cbi8qKlxuICogR2l0aHViQ3JlZGVudGlhbHNQZXJzb25hbEFjY2Vzc1Rva2VuT3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGh1YkNyZWRlbnRpYWxzUGVyc29uYWxBY2Nlc3NUb2tlbk9wdGlvbnMge1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldD86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgaW5jbHVkZSBzZXR1cCBzdGVwcyBhbmQgcmVzb2x2ZSBhcHAgY3JlZGVudGlhbHMgZnJvbSBQdWx1bWkgRVNDIG91dHB1dHNcbiAgICogQGRlZmF1bHQgZG8gbm90IGluY2x1ZGUgcHVsdW1pIGVzYyBzZXR1cFxuICAgKi9cbiAgcmVhZG9ubHkgcHVsdW1pRXNjU2V0dXA/OiBQdWx1bWlFc2NTZXR1cDtcbn1cbiJdfQ==
@@ -13,6 +13,7 @@ export interface GithubCredentialsAppOptions {
13
13
  readonly repositories?: Array<string>;
14
14
  /**
15
15
  * The secret containing the GitHub App private key.
16
+ When `pulumiEscSetup` is provided, this value is used as the ESC output key.
16
17
  * Escaped newlines (\\n) will be automatically replaced with actual newlines.
17
18
  * @default PROJEN_APP_PRIVATE_KEY
18
19
  * @stability experimental
@@ -31,12 +32,13 @@ export interface GithubCredentialsAppOptions {
31
32
  */
32
33
  readonly owner?: string;
33
34
  /**
34
- * Optionally include setup steps to inject environment variables from Pulumi ESC
35
+ * Optionally include setup steps and resolve app credentials from Pulumi ESC outputs
35
36
  * @default do not include pulumi esc setup
36
37
  */
37
38
  readonly pulumiEscSetup?: PulumiEscSetup;
38
39
  /**
39
- * The name of the secret that contains the app client id
40
+ * The name of the secret that contains the app client id.
41
+ When `pulumiEscSetup` is provided, this value is used as the ESC output key.
40
42
  * @default PROJEN_APP_CLIENT_ID
41
43
  */
42
44
  readonly clientIdSecret?: string;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RydWN0cy9naXRodWItb3B0aW9ucy9hcHAtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHR5cGUgeyBQdWx1bWlFc2NTZXR1cCB9IGZyb20gJy4uLy4uLyc7XG5cbi8qKlxuICogR2l0aHViQ3JlZGVudGlhbHNBcHBPcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0aHViQ3JlZGVudGlhbHNBcHBPcHRpb25zIHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcmVwb3NpdG9yaWVzIHRvIGdyYW50IGFjY2VzcyB0by5cbiAgICogQGRlZmF1bHQgLSBpZiBvd25lciBpcyBzZXQgYW5kIHJlcG9zaXRvcmllcyBpcyBlbXB0eSwgYWNjZXNzIHdpbGwgYmUgc2NvcGVkIHRvIGFsbCByZXBvc2l0b3JpZXMgaW4gdGhlIHByb3ZpZGVkIHJlcG9zaXRvcnkgb3duZXIncyBpbnN0YWxsYXRpb24uXG5JZiBvd25lciBhbmQgcmVwb3NpdG9yaWVzIGFyZSBlbXB0eSwgYWNjZXNzIHdpbGwgYmUgc2NvcGVkIHRvIG9ubHkgdGhlIGN1cnJlbnQgcmVwb3NpdG9yeS5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcmllcz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IGNvbnRhaW5pbmcgdGhlIEdpdEh1YiBBcHAgcHJpdmF0ZSBrZXkuXG4gICAqIEVzY2FwZWQgbmV3bGluZXMgKFxcXFxuKSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmVwbGFjZWQgd2l0aCBhY3R1YWwgbmV3bGluZXMuXG4gICAqIEBkZWZhdWx0IFBST0pFTl9BUFBfUFJJVkFURV9LRVlcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVLZXlTZWNyZXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGVybWlzc2lvbnMgZ3JhbnRlZCB0byB0aGUgdG9rZW4uXG4gICAqIEBkZWZhdWx0IC0gYWxsIHBlcm1pc3Npb25zIGdyYW50ZWQgdG8gdGhlIGFwcFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbnM/OiBnaXRodWIud29ya2Zsb3dzLkFwcFBlcm1pc3Npb25zO1xuICAvKipcbiAgICogVGhlIG93bmVyIG9mIHRoZSBHaXRIdWIgQXBwIGluc3RhbGxhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBpZiBlbXB0eSwgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgcmVwb3NpdG9yeSBvd25lclxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgb3duZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25hbGx5IGluY2x1ZGUgc2V0dXAgc3RlcHMgdG8gaW5qZWN0IGVudmlyb25tZW50IHZhcmlhYmxlcyBmcm9tIFB1bHVtaSBFU0NcbiAgICogQGRlZmF1bHQgZG8gbm90IGluY2x1ZGUgcHVsdW1pIGVzYyBzZXR1cFxuICAgKi9cbiAgcmVhZG9ubHkgcHVsdW1pRXNjU2V0dXA/OiBQdWx1bWlFc2NTZXR1cDtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzZWNyZXQgdGhhdCBjb250YWlucyB0aGUgYXBwIGNsaWVudCBpZFxuICAgKiBAZGVmYXVsdCBQUk9KRU5fQVBQX0NMSUVOVF9JRFxuICAgKi9cbiAgcmVhZG9ubHkgY2xpZW50SWRTZWNyZXQ/OiBzdHJpbmc7XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RydWN0cy9naXRodWItb3B0aW9ucy9hcHAtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHR5cGUgeyBQdWx1bWlFc2NTZXR1cCB9IGZyb20gJy4uLy4uLyc7XG5cbi8qKlxuICogR2l0aHViQ3JlZGVudGlhbHNBcHBPcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0aHViQ3JlZGVudGlhbHNBcHBPcHRpb25zIHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcmVwb3NpdG9yaWVzIHRvIGdyYW50IGFjY2VzcyB0by5cbiAgICogQGRlZmF1bHQgLSBpZiBvd25lciBpcyBzZXQgYW5kIHJlcG9zaXRvcmllcyBpcyBlbXB0eSwgYWNjZXNzIHdpbGwgYmUgc2NvcGVkIHRvIGFsbCByZXBvc2l0b3JpZXMgaW4gdGhlIHByb3ZpZGVkIHJlcG9zaXRvcnkgb3duZXIncyBpbnN0YWxsYXRpb24uXG5JZiBvd25lciBhbmQgcmVwb3NpdG9yaWVzIGFyZSBlbXB0eSwgYWNjZXNzIHdpbGwgYmUgc2NvcGVkIHRvIG9ubHkgdGhlIGN1cnJlbnQgcmVwb3NpdG9yeS5cbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcmllcz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IGNvbnRhaW5pbmcgdGhlIEdpdEh1YiBBcHAgcHJpdmF0ZSBrZXkuXG5XaGVuIGBwdWx1bWlFc2NTZXR1cGAgaXMgcHJvdmlkZWQsIHRoaXMgdmFsdWUgaXMgdXNlZCBhcyB0aGUgRVNDIG91dHB1dCBrZXkuXG4gICAqIEVzY2FwZWQgbmV3bGluZXMgKFxcXFxuKSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmVwbGFjZWQgd2l0aCBhY3R1YWwgbmV3bGluZXMuXG4gICAqIEBkZWZhdWx0IFBST0pFTl9BUFBfUFJJVkFURV9LRVlcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVLZXlTZWNyZXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGVybWlzc2lvbnMgZ3JhbnRlZCB0byB0aGUgdG9rZW4uXG4gICAqIEBkZWZhdWx0IC0gYWxsIHBlcm1pc3Npb25zIGdyYW50ZWQgdG8gdGhlIGFwcFxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbnM/OiBnaXRodWIud29ya2Zsb3dzLkFwcFBlcm1pc3Npb25zO1xuICAvKipcbiAgICogVGhlIG93bmVyIG9mIHRoZSBHaXRIdWIgQXBwIGluc3RhbGxhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBpZiBlbXB0eSwgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgcmVwb3NpdG9yeSBvd25lclxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgb3duZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25hbGx5IGluY2x1ZGUgc2V0dXAgc3RlcHMgYW5kIHJlc29sdmUgYXBwIGNyZWRlbnRpYWxzIGZyb20gUHVsdW1pIEVTQyBvdXRwdXRzXG4gICAqIEBkZWZhdWx0IGRvIG5vdCBpbmNsdWRlIHB1bHVtaSBlc2Mgc2V0dXBcbiAgICovXG4gIHJlYWRvbmx5IHB1bHVtaUVzY1NldHVwPzogUHVsdW1pRXNjU2V0dXA7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VjcmV0IHRoYXQgY29udGFpbnMgdGhlIGFwcCBjbGllbnQgaWQuXG5XaGVuIGBwdWx1bWlFc2NTZXR1cGAgaXMgcHJvdmlkZWQsIHRoaXMgdmFsdWUgaXMgdXNlZCBhcyB0aGUgRVNDIG91dHB1dCBrZXkuXG4gICAqIEBkZWZhdWx0IFBST0pFTl9BUFBfQ0xJRU5UX0lEXG4gICAqL1xuICByZWFkb25seSBjbGllbnRJZFNlY3JldD86IHN0cmluZztcbn1cbiJdfQ==
@@ -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.64" };
49
+ TypeScriptProject[_a] = { fqn: "@hallcor/pulumi-projen-project-types.TypeScriptProject", version: "0.0.65" };
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.64" };
111
+ TypeScriptComponent[_a] = { fqn: "@hallcor/pulumi-projen-project-types.TypeScriptComponent", version: "0.0.65" };
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.64",
79
+ "version": "0.0.65",
80
80
  "types": "lib/index.d.ts",
81
81
  "stability": "stable",
82
82
  "jsii": {