@macedon-technologies/batman 1.29.0 → 1.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -86,6 +86,80 @@ yarn deploy
86
86
  yarn test
87
87
  ```
88
88
 
89
+ ## Deploying staging on demand
90
+
91
+ The generated `Staging Deploy` workflow runs on every push to `main` and can also be run manually from the Actions tab ("Run workflow"). Use that to redeploy `main` when a merge raised no push event or a deploy needs re-running. Pick `main` as the branch: the workflow deploys whichever branch you select.
92
+
93
+ ## Auto-merging pull requests with a GitHub App
94
+
95
+ Setting `prAutoMerge: true` generates `.github/workflows/pr-auto-merge.yml`. It turns on GitHub's squash auto-merge for every pull request into the default branch when the pull request is opened, reopened or marked ready for review. Drafts and pull requests into other branches are left alone. The pull request then merges by itself once your branch ruleset is satisfied.
96
+
97
+ The workflow arms the merge with a GitHub App token, not `GITHUB_TOKEN`. GitHub attributes an auto-merge to whoever armed it and raises no events for anything `GITHUB_TOKEN` does, so a merge armed with it would never trigger `Staging Deploy` or `PR Cleanup`.
98
+
99
+ The App's private key can mint tokens for every repository the App is installed on, so it lives in an `auto-merge` environment that only `main` can use, not in the repository's secrets. Anyone with write access can read repository secrets from a workflow on their own branch. The workflow runs on `pull_request_target`, which uses the workflow file from the default branch and so passes the environment's branch rule; it never checks out pull request code. Use one App per repository so a leaked key reaches only that repository.
100
+
101
+ Set it up in this order. Until the App and credentials exist, every pull request's `pr-auto-merge` run fails.
102
+
103
+ 1. **Create a GitHub App** in the organization (Settings → Developer settings → GitHub Apps → New GitHub App). It needs no webhook. Under Repository permissions give it **Read and write** on Contents, Pull requests, Workflows and Issues. Workflows is needed because Batman upgrades change files under `.github/workflows/`. Issues lets the merge close linked issues.
104
+ 2. **Generate a private key** on the App's page, and note its **Client ID**.
105
+ 3. **Install the App** on the repository (the App's page → Install App → Only select repositories).
106
+ 4. **Create an `auto-merge` environment** (Settings → Environments → New environment). Under Deployment branches and tags choose **Selected branches and tags** and add `main`. Then add to the environment:
107
+ - an environment **variable** `AUTO_MERGE_APP_CLIENT_ID` set to the Client ID;
108
+ - an environment **secret** `AUTO_MERGE_APP_PRIVATE_KEY` set to the full contents of the `.pem` file.
109
+
110
+ Don't add them as repository variables or secrets.
111
+ 5. **Turn on "Allow auto-merge"** in the repository's Settings → General → Pull Requests.
112
+ 6. **Protect the default branch** with a ruleset that requires an approving review and your required status checks. `prAutoMerge` doesn't create one. Without it, an armed pull request merges as soon as it can, unreviewed.
113
+ 7. Set `prAutoMerge: true` in `.projenrc.ts` and run projen.
114
+
115
+ If the variable or the secret is missing from the environment, the run fails with an error naming both. If the App's installation lacks one of the four permissions, minting the token fails. Pull requests from forks are armed like any other, since the workflow runs from the default branch, and still wait for the ruleset's review. Dependabot pull requests don't receive the environment's secret, so their runs fail the credential check. Merge those by hand. Each run also records a deployment to the `auto-merge` environment.
116
+
117
+ ## Upgrading
118
+
119
+ ### The base stack no longer creates a VPC
120
+
121
+ `BaseApplicationStack` used to create a VPC with a NAT gateway and attach the API Lambda to it.
122
+ It now creates neither unless the stack props set `enableVpc: true`. A stack that upgrades
123
+ without it deletes its VPC and NAT gateway on the next deploy.
124
+
125
+ Add `enableVpc: true` to every `ApplicationStack` in `src/main.ts` and `src/LocalDevApp.ts` (new projects: `additionalStackProps: { enableVpc: true }` on each environment) if any of these apply:
126
+
127
+ - your `ApplicationStack` uses `this.vpc` or overrides `createVpc()`; the override is not called otherwise;
128
+ - the Lambda reaches anything private, such as RDS or a VPC endpoint;
129
+ - another stack imports this stack's VPC outputs; CloudFormation refuses to delete them.
130
+
131
+ `this.vpc` is now typed `IVpc | undefined`, even with `enableVpc: true`, so code that passes it where an `IVpc` is required (such as `new SecurityGroup(this, 'Sg', { vpc: this.vpc })`) stops compiling. With `enableVpc: true` the VPC is created before your `ApplicationStack` constructor runs, so use `this.vpc!` there, or check it and throw if it's missing.
132
+
133
+ Otherwise, make `vpc` optional in `src/constructs/Api.ts` (`readonly vpc?: IVpc;`) so the project compiles. Deleting the VPC can take a while as Lambda releases its network interfaces.
134
+
135
+ With `enableVpc: true`, the Lambda is attached only if your `Api.ts` still accepts a `vpc` prop and your stack doesn't override `createApi()` without passing it.
136
+
137
+ ### n8n support is removed
138
+
139
+ `BatmanProject` and `BootcampProject` no longer generate any n8n wiring. The base stacks have no `n8nEndpoint` prop, `src/constructs/WorkflowProvider.ts` and a construct per `src/workflows/*.json` are no longer generated, and new projects get an `Api.ts`, `main.ts` and `LocalDevApp.ts` without n8n. The `n8nWorkflows` option, the `n8nEndpoint` environment config field and the exported `WorkflowAutoDiscover` class are gone, so every project removes `n8nWorkflows` and `n8nEndpoint` from its `.projenrc.ts`.
140
+
141
+ A project that doesn't use n8n stops compiling until it also removes:
142
+
143
+ - `n8nEndpoint` from every `ApplicationStack` in `src/main.ts` and `src/LocalDevApp.ts`;
144
+ - the `n8nEndpoint` prop, the n8n JWT key secret and its `grantRead` from `src/constructs/Api.ts`;
145
+ - any `n8nEndpoint: this.props.n8nEndpoint` in a `createApi()` override;
146
+ - any generated `src/constructs/*Workflow.ts` files and `src/workflows/`, which import the now-deleted `WorkflowProvider`.
147
+
148
+ A project that uses n8n takes ownership of it:
149
+
150
+ 1. Upgrading makes projen delete `src/constructs/WorkflowProvider.ts`. Restore it from the last commit that had it, which works whether or not the deletion is already committed:
151
+
152
+ ```bash
153
+ git checkout "$(git log -n1 --format=%H --diff-filter=AM -- src/constructs/WorkflowProvider.ts)" -- src/constructs/WorkflowProvider.ts
154
+ ```
155
+
156
+ Then delete the `~~ Generated by projen` header line from it and from your per-workflow constructs (such as `AlfredWorkflow.ts`). They're yours from now on, and a new workflow needs its construct written by hand.
157
+ 2. Move `n8nEndpoint` from `Api` to your `ApplicationStack`. Remove the `n8nEndpoint` prop and its `N8N_ENDPOINT` environment entry from `src/constructs/Api.ts`, add `readonly n8nEndpoint: string;` to `ApplicationStackProps` (your `main.ts` and `LocalDevApp.ts` already pass it), and set the variable after `super()`:
158
+
159
+ ```typescript
160
+ this.api.lambdaFunction.addEnvironment('N8N_ENDPOINT', props.n8nEndpoint);
161
+ ```
162
+
89
163
  ## SoftwareFactoryFiles (standalone, non-Batman projects)
90
164
 
91
165
  `SoftwareFactoryFiles` is independently exported and can be attached to any
@@ -26,7 +26,6 @@ const ENV: import('../src').ApplicationEnvironmentConfig = {
26
26
  datadogSecretArn: 'arn:aws:secretsmanager:us-east-1:111111111111:secret:datadog',
27
27
  clerkJwksUrl: 'https://fixture.clerk.accounts.dev/.well-known/jwks.json',
28
28
  clerkPublishableKey: 'fakekey',
29
- n8nEndpoint: 'https://n8n.dev.example.com',
30
29
  };
31
30
 
32
31
  const outdir = mkdtempSync(join(tmpdir(), 'batman-zizmor-'));
@@ -40,6 +39,7 @@ try {
40
39
  dev: ENV,
41
40
  staging: ENV,
42
41
  prod: ENV,
42
+ prAutoMerge: true,
43
43
  });
44
44
  project.synth();
45
45
  const GENERATED_WORKFLOWS = [
@@ -47,6 +47,7 @@ try {
47
47
  'pr-cleanup.yml',
48
48
  'staging-deploy.yml',
49
49
  'production-deploy.yml',
50
+ 'pr-auto-merge.yml',
50
51
  'upgrade.yml',
51
52
  'pull-request-lint.yml',
52
53
  ];
@@ -19,14 +19,12 @@ import { LogGroup, RetentionDays } from 'aws-cdk-lib/aws-logs';
19
19
  import { Bucket } from 'aws-cdk-lib/aws-s3';
20
20
 
21
21
  import { Construct } from 'constructs';
22
- import { N8N_ENDPOINT, N8N_JWT_KEY } from './handler/Api.Function';
23
22
  import { Secret } from './Secret';
24
23
 
25
24
  export interface ApiProps {
26
25
  readonly cloudFrontOriginRequestPolicyId?: string;
27
- readonly vpc: IVpc;
26
+ readonly vpc?: IVpc;
28
27
  readonly clerkJwksUrl: string;
29
- readonly n8nEndpoint: string;
30
28
  }
31
29
 
32
30
  export class Api extends Construct {
@@ -34,19 +32,12 @@ export class Api extends Construct {
34
32
  public lambdaFunction: LambdaFunction;
35
33
 
36
34
  private authorizerFunction: RustFunction;
37
- private n8nJwtKeySecret: Secret;
38
35
  private authorizer: TokenAuthorizer;
39
36
  private clerkAuthSecret: Secret;
40
37
 
41
38
  constructor(scope: Construct, id: string, private props: ApiProps) {
42
39
  super(scope, id);
43
40
 
44
-
45
- this.createN8NJwtSecret();
46
- if (!this.n8nJwtKeySecret) {
47
- throw new Error('Failed to create n8n JWT key secret');
48
- }
49
-
50
41
  this.createClerkAuthSecret();
51
42
  if (!this.clerkAuthSecret) {
52
43
  throw new Error('Failed to create Clerk auth secret');
@@ -92,10 +83,6 @@ export class Api extends Construct {
92
83
  });
93
84
  }
94
85
 
95
- protected createN8NJwtSecret() {
96
- this.n8nJwtKeySecret = new Secret(this, 'N8nJwtKeySecret', {});
97
- }
98
-
99
86
  protected createLambdaFunction() {
100
87
  this.lambdaFunction = new NodejsFunction(this, 'Function', {
101
88
  runtime: Runtime.NODEJS_24_X,
@@ -103,12 +90,7 @@ export class Api extends Construct {
103
90
  memorySize: 512,
104
91
  entry: join(__dirname, 'handler/Api.Function.ts'),
105
92
  vpc: this.props.vpc,
106
- environment: {
107
- [N8N_JWT_KEY]: this.n8nJwtKeySecret.secretName,
108
- [N8N_ENDPOINT]: this.props.n8nEndpoint,
109
- },
110
93
  });
111
- this.n8nJwtKeySecret.grantRead(this.lambdaFunction);
112
94
  }
113
95
 
114
96
  protected createRestApi() {
@@ -191,4 +173,4 @@ export class Api extends Construct {
191
173
  }
192
174
  }
193
175
  exports.ApiConstructFile = ApiConstructFile;
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpQ29uc3RydWN0RmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9BcGlDb25zdHJ1Y3RGaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFvQztBQUd2QixRQUFBLGlDQUFpQyxHQUFHLGtDQUFrQyxDQUFDO0FBV3BGLE1BQWEsZ0JBQWlCLFNBQVEsbUJBQVU7SUFDOUMsWUFBWSxPQUE0QixFQUFFLFVBQW1DLEVBQUU7UUFDN0UsTUFBTSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsdUJBQXVCLElBQUkseUNBQWlDLENBQUM7UUFDckcsS0FBSyxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRTtZQUN0QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs0QkEyRVksdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXdHbEQ7U0FDSSxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUExTEQsNENBMExDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FtcGxlRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BVVRIT1JJWkVSX09CSkVDVF9WRVJTSU9OID0gJ3NrYU9vdGZwSzhsOEJiUWdvTnlUWU8zTVo1YUEuM3hsJztcblxuZXhwb3J0IGludGVyZmFjZSBBcGlDb25zdHJ1Y3RGaWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgUzMgb2JqZWN0IHZlcnNpb24gb2YgdGhlIGNsZXJrLWF1dGhvcml6ZXIgTGFtYmRhIGRlcGxveW1lbnQgcGFja2FnZSB0byBwaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdza2FPb3RmcEs4bDhCYlFnb055VFlPM01aNWFBLjN4bCdcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZXJPYmplY3RWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpQ29uc3RydWN0RmlsZSBleHRlbmRzIFNhbXBsZUZpbGUge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLCBvcHRpb25zOiBBcGlDb25zdHJ1Y3RGaWxlT3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgYXV0aG9yaXplck9iamVjdFZlcnNpb24gPSBvcHRpb25zLmF1dGhvcml6ZXJPYmplY3RWZXJzaW9uID8/IERFRkFVTFRfQVVUSE9SSVpFUl9PQkpFQ1RfVkVSU0lPTjtcbiAgICBzdXBlcihwcm9qZWN0LCAnc3JjL2NvbnN0cnVjdHMvQXBpLnRzJywge1xuICAgICAgY29udGVudHM6IGBpbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBSdXN0RnVuY3Rpb24gfSBmcm9tICdAY2RrbGFicy9hd3MtbGFtYmRhLXJ1c3QnO1xuaW1wb3J0IHsgRHVyYXRpb24sIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQWNjZXNzTG9nRm9ybWF0LCBFbmRwb2ludFR5cGUsIExhbWJkYUludGVncmF0aW9uLCBMb2dHcm91cExvZ0Rlc3RpbmF0aW9uLCBSZXN0QXBpLCBUb2tlbkF1dGhvcml6ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheSc7XG5pbXBvcnQgeyBJVnBjIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBBbnlQcmluY2lwYWwsIEVmZmVjdCwgUG9saWN5RG9jdW1lbnQsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQXJjaGl0ZWN0dXJlLCBTM0NvZGVWMiwgRnVuY3Rpb24gYXMgTGFtYmRhRnVuY3Rpb24sIFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1xuaW1wb3J0IHsgTG9nR3JvdXAsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IE44Tl9FTkRQT0lOVCwgTjhOX0pXVF9LRVkgfSBmcm9tICcuL2hhbmRsZXIvQXBpLkZ1bmN0aW9uJztcbmltcG9ydCB7IFNlY3JldCB9IGZyb20gJy4vU2VjcmV0JztcblxuZXhwb3J0IGludGVyZmFjZSBBcGlQcm9wcyB7XG4gIHJlYWRvbmx5IGNsb3VkRnJvbnRPcmlnaW5SZXF1ZXN0UG9saWN5SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZwYzogSVZwYztcbiAgcmVhZG9ubHkgY2xlcmtKd2tzVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG44bkVuZHBvaW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBBcGkgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVzdEFwaTogUmVzdEFwaTtcbiAgcHVibGljIGxhbWJkYUZ1bmN0aW9uOiBMYW1iZGFGdW5jdGlvbjtcblxuICBwcml2YXRlIGF1dGhvcml6ZXJGdW5jdGlvbjogUnVzdEZ1bmN0aW9uO1xuICBwcml2YXRlIG44bkp3dEtleVNlY3JldDogU2VjcmV0O1xuICBwcml2YXRlIGF1dGhvcml6ZXI6IFRva2VuQXV0aG9yaXplcjtcbiAgcHJpdmF0ZSBjbGVya0F1dGhTZWNyZXQ6IFNlY3JldDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcml2YXRlIHByb3BzOiBBcGlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cblxuICAgIHRoaXMuY3JlYXRlTjhOSnd0U2VjcmV0KCk7XG4gICAgaWYgKCF0aGlzLm44bkp3dEtleVNlY3JldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIG44biBKV1Qga2V5IHNlY3JldCcpO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlQ2xlcmtBdXRoU2VjcmV0KCk7XG4gICAgaWYgKCF0aGlzLmNsZXJrQXV0aFNlY3JldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIENsZXJrIGF1dGggc2VjcmV0Jyk7XG4gICAgfVxuXG4gICAgdGhpcy5jcmVhdGVMYW1iZGFGdW5jdGlvbigpO1xuICAgIGlmICghdGhpcy5sYW1iZGFGdW5jdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIGxhbWJkYSBmdW5jdGlvbicpO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlQXV0aG9yaXplckZ1bmN0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmF1dGhvcml6ZXJGdW5jdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIGF1dGhvcml6ZXIgZnVuY3Rpb24nKTtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZVJlc3RBcGkoKTtcbiAgICBpZiAoIXRoaXMucmVzdEFwaSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIFJFU1QgQVBJJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jcmVhdGVBdXRob3JpemVyKCk7XG4gICAgaWYgKCF0aGlzLmF1dGhvcml6ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBhdXRob3JpemVyJyk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXR1cEFwaUludGVncmF0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlQXV0aG9yaXplckZ1bmN0aW9uKCkge1xuICAgIHRoaXMuYXV0aG9yaXplckZ1bmN0aW9uID0gbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMsICdDbGVya0F1dGhvcml6ZXJIYW5kbGVyJywge1xuICAgICAgcnVudGltZTogUnVudGltZS5QUk9WSURFRF9BTDIwMjMsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDEwKSxcbiAgICAgIGNvZGU6IFMzQ29kZVYyLmZyb21CdWNrZXRWMihcbiAgICAgICAgQnVja2V0LmZyb21CdWNrZXROYW1lKHRoaXMsICdNYWNlZG9uUGxhdGZvcm1CdWNrZXQnLCAnbWFjZWRvbi1wbGF0Zm9ybS1jb21tb24tMDE1OTU1ODE3MjYzJyksXG4gICAgICAgICdsYW1iZGEvY2xlcmstYXV0aG9yaXplci1hcm02NC1sYXRlc3QuemlwJyxcbiAgICAgICAgeyBvYmplY3RWZXJzaW9uOiAnJHthdXRob3JpemVyT2JqZWN0VmVyc2lvbn0nIH0sXG4gICAgICApLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgQ0xFUktfSldLU19VUkw6IHRoaXMucHJvcHMuY2xlcmtKd2tzVXJsLFxuICAgICAgfSxcbiAgICAgIGhhbmRsZXI6ICdpdHNydXN0YmFieScsXG4gICAgICBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlTjhOSnd0U2VjcmV0KCkge1xuICAgIHRoaXMubjhuSnd0S2V5U2VjcmV0ID0gbmV3IFNlY3JldCh0aGlzLCAnTjhuSnd0S2V5U2VjcmV0Jywge30pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUxhbWJkYUZ1bmN0aW9uKCkge1xuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSBuZXcgTm9kZWpzRnVuY3Rpb24odGhpcywgJ0Z1bmN0aW9uJywge1xuICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMjRfWCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMzApLFxuICAgICAgbWVtb3J5U2l6ZTogNTEyLFxuICAgICAgZW50cnk6IGpvaW4oX19kaXJuYW1lLCAnaGFuZGxlci9BcGkuRnVuY3Rpb24udHMnKSxcbiAgICAgIHZwYzogdGhpcy5wcm9wcy52cGMsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBbTjhOX0pXVF9LRVldOiB0aGlzLm44bkp3dEtleVNlY3JldC5zZWNyZXROYW1lLFxuICAgICAgICBbTjhOX0VORFBPSU5UXTogdGhpcy5wcm9wcy5uOG5FbmRwb2ludCxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5uOG5Kd3RLZXlTZWNyZXQuZ3JhbnRSZWFkKHRoaXMubGFtYmRhRnVuY3Rpb24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc3RBcGkoKSB7XG4gICAgY29uc3QgYWNjZXNzTG9nR3JvdXAgPSBuZXcgTG9nR3JvdXAodGhpcywgJ0FwaUFjY2Vzc0xvZ3MnLCB7XG4gICAgICByZXRlbnRpb246IFJldGVudGlvbkRheXMuVFdPX1dFRUtTLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZXN0QXBpID0gbmV3IFJlc3RBcGkodGhpcywgJ1Jlc3RBcGknLCB7XG4gICAgICByZXN0QXBpTmFtZTogXFxgXFwke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX0tYXBpXFxgLFxuICAgICAgZGVzY3JpcHRpb246ICdBUEkgZm9yIE1WUCBVSSBhcHBsaWNhdGlvbicsXG4gICAgICBlbmRwb2ludFR5cGVzOiBbRW5kcG9pbnRUeXBlLlJFR0lPTkFMXSxcbiAgICAgIGNsb3VkV2F0Y2hSb2xlOiB0cnVlLFxuICAgICAgZGVwbG95T3B0aW9uczoge1xuICAgICAgICB0cmFjaW5nRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgbWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIGFjY2Vzc0xvZ0Rlc3RpbmF0aW9uOiBuZXcgTG9nR3JvdXBMb2dEZXN0aW5hdGlvbihhY2Nlc3NMb2dHcm91cCksXG4gICAgICAgIGFjY2Vzc0xvZ0Zvcm1hdDogQWNjZXNzTG9nRm9ybWF0Lmpzb25XaXRoU3RhbmRhcmRGaWVsZHMoKSxcbiAgICAgIH0sXG4gICAgICBwb2xpY3k6IG5ldyBQb2xpY3lEb2N1bWVudCh7XG4gICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkRFTlksXG4gICAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IEFueVByaW5jaXBhbCgpXSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnZXhlY3V0ZS1hcGk6SW52b2tlJ10sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICBTdHJpbmdOb3RFcXVhbHM6IHtcbiAgICAgICAgICAgICAgICAnYXdzOnVzZXJhZ2VudCc6ICdBbWF6b24gQ2xvdWRGcm9udCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IEFueVByaW5jaXBhbCgpXSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnZXhlY3V0ZS1hcGk6SW52b2tlJ10sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICAgICAnYXdzOnVzZXJhZ2VudCc6ICdBbWF6b24gQ2xvdWRGcm9udCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlQXV0aG9yaXplcigpIHtcbiAgICB0aGlzLmF1dGhvcml6ZXIgPSBuZXcgVG9rZW5BdXRob3JpemVyKHRoaXMsICdDbGVya0F1dGhvcml6ZXInLCB7XG4gICAgICBoYW5kbGVyOiB0aGlzLmF1dGhvcml6ZXJGdW5jdGlvbixcbiAgICAgIGlkZW50aXR5U291cmNlOiAnbWV0aG9kLnJlcXVlc3QuaGVhZGVyLkF1dGhvcml6YXRpb24nLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQXBpSW50ZWdyYXRpb24oKSB7XG4gICAgY29uc3QgaW50ZWdyYXRpb24gPSBuZXcgTGFtYmRhSW50ZWdyYXRpb24odGhpcy5sYW1iZGFGdW5jdGlvbik7XG4gICAgdGhpcy5yZXN0QXBpLnJvb3QuYWRkUHJveHkoe1xuICAgICAgZGVmYXVsdEludGVncmF0aW9uOiBpbnRlZ3JhdGlvbixcbiAgICAgIGFueU1ldGhvZDogdHJ1ZSxcbiAgICAgIGRlZmF1bHRNZXRob2RPcHRpb25zOiB7XG4gICAgICAgIGF1dGhvcml6ZXI6IHRoaXMuYXV0aG9yaXplcixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNsZXJrQXV0aFNlY3JldCgpIHtcbiAgICB0aGlzLmNsZXJrQXV0aFNlY3JldCA9IG5ldyBTZWNyZXQodGhpcywgJ0NsZXJrQXV0aFNlY3JldCcsIHtcbiAgICAgIGdlbmVyYXRlU2VjcmV0U3RyaW5nOiB7XG4gICAgICAgIHNlY3JldFN0cmluZ1RlbXBsYXRlOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgY2xlcmtQdWJsaXNoYWJsZUtleTogJycsXG4gICAgICAgICAgY2xlcmtKd2tzVXJsOiAnJyxcbiAgICAgICAgfSksXG4gICAgICAgIGdlbmVyYXRlU3RyaW5nS2V5OiAnY2xlcmtQdWJsaXNoYWJsZUtleScsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5gLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpQ29uc3RydWN0RmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9BcGlDb25zdHJ1Y3RGaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFvQztBQUd2QixRQUFBLGlDQUFpQyxHQUFHLGtDQUFrQyxDQUFDO0FBV3BGLE1BQWEsZ0JBQWlCLFNBQVEsbUJBQVU7SUFDOUMsWUFBWSxPQUE0QixFQUFFLFVBQW1DLEVBQUU7UUFDN0UsTUFBTSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsdUJBQXVCLElBQUkseUNBQWlDLENBQUM7UUFDckcsS0FBSyxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRTtZQUN0QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs0QkFrRVksdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQStGbEQ7U0FDSSxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF4S0QsNENBd0tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FtcGxlRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BVVRIT1JJWkVSX09CSkVDVF9WRVJTSU9OID0gJ3NrYU9vdGZwSzhsOEJiUWdvTnlUWU8zTVo1YUEuM3hsJztcblxuZXhwb3J0IGludGVyZmFjZSBBcGlDb25zdHJ1Y3RGaWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgUzMgb2JqZWN0IHZlcnNpb24gb2YgdGhlIGNsZXJrLWF1dGhvcml6ZXIgTGFtYmRhIGRlcGxveW1lbnQgcGFja2FnZSB0byBwaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdza2FPb3RmcEs4bDhCYlFnb055VFlPM01aNWFBLjN4bCdcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZXJPYmplY3RWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpQ29uc3RydWN0RmlsZSBleHRlbmRzIFNhbXBsZUZpbGUge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLCBvcHRpb25zOiBBcGlDb25zdHJ1Y3RGaWxlT3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgYXV0aG9yaXplck9iamVjdFZlcnNpb24gPSBvcHRpb25zLmF1dGhvcml6ZXJPYmplY3RWZXJzaW9uID8/IERFRkFVTFRfQVVUSE9SSVpFUl9PQkpFQ1RfVkVSU0lPTjtcbiAgICBzdXBlcihwcm9qZWN0LCAnc3JjL2NvbnN0cnVjdHMvQXBpLnRzJywge1xuICAgICAgY29udGVudHM6IGBpbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBSdXN0RnVuY3Rpb24gfSBmcm9tICdAY2RrbGFicy9hd3MtbGFtYmRhLXJ1c3QnO1xuaW1wb3J0IHsgRHVyYXRpb24sIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQWNjZXNzTG9nRm9ybWF0LCBFbmRwb2ludFR5cGUsIExhbWJkYUludGVncmF0aW9uLCBMb2dHcm91cExvZ0Rlc3RpbmF0aW9uLCBSZXN0QXBpLCBUb2tlbkF1dGhvcml6ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheSc7XG5pbXBvcnQgeyBJVnBjIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBBbnlQcmluY2lwYWwsIEVmZmVjdCwgUG9saWN5RG9jdW1lbnQsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQXJjaGl0ZWN0dXJlLCBTM0NvZGVWMiwgRnVuY3Rpb24gYXMgTGFtYmRhRnVuY3Rpb24sIFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1xuaW1wb3J0IHsgTG9nR3JvdXAsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFNlY3JldCB9IGZyb20gJy4vU2VjcmV0JztcblxuZXhwb3J0IGludGVyZmFjZSBBcGlQcm9wcyB7XG4gIHJlYWRvbmx5IGNsb3VkRnJvbnRPcmlnaW5SZXF1ZXN0UG9saWN5SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZwYz86IElWcGM7XG4gIHJlYWRvbmx5IGNsZXJrSndrc1VybDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlc3RBcGk6IFJlc3RBcGk7XG4gIHB1YmxpYyBsYW1iZGFGdW5jdGlvbjogTGFtYmRhRnVuY3Rpb247XG5cbiAgcHJpdmF0ZSBhdXRob3JpemVyRnVuY3Rpb246IFJ1c3RGdW5jdGlvbjtcbiAgcHJpdmF0ZSBhdXRob3JpemVyOiBUb2tlbkF1dGhvcml6ZXI7XG4gIHByaXZhdGUgY2xlcmtBdXRoU2VjcmV0OiBTZWNyZXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJpdmF0ZSBwcm9wczogQXBpUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5jcmVhdGVDbGVya0F1dGhTZWNyZXQoKTtcbiAgICBpZiAoIXRoaXMuY2xlcmtBdXRoU2VjcmV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgQ2xlcmsgYXV0aCBzZWNyZXQnKTtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZUxhbWJkYUZ1bmN0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmxhbWJkYUZ1bmN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgbGFtYmRhIGZ1bmN0aW9uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jcmVhdGVBdXRob3JpemVyRnVuY3Rpb24oKTtcbiAgICBpZiAoIXRoaXMuYXV0aG9yaXplckZ1bmN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgYXV0aG9yaXplciBmdW5jdGlvbicpO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlUmVzdEFwaSgpO1xuICAgIGlmICghdGhpcy5yZXN0QXBpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgUkVTVCBBUEknKTtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZUF1dGhvcml6ZXIoKTtcbiAgICBpZiAoIXRoaXMuYXV0aG9yaXplcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIGF1dGhvcml6ZXInKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldHVwQXBpSW50ZWdyYXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVBdXRob3JpemVyRnVuY3Rpb24oKSB7XG4gICAgdGhpcy5hdXRob3JpemVyRnVuY3Rpb24gPSBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcywgJ0NsZXJrQXV0aG9yaXplckhhbmRsZXInLCB7XG4gICAgICBydW50aW1lOiBSdW50aW1lLlBST1ZJREVEX0FMMjAyMyxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMTApLFxuICAgICAgY29kZTogUzNDb2RlVjIuZnJvbUJ1Y2tldFYyKFxuICAgICAgICBCdWNrZXQuZnJvbUJ1Y2tldE5hbWUodGhpcywgJ01hY2Vkb25QbGF0Zm9ybUJ1Y2tldCcsICdtYWNlZG9uLXBsYXRmb3JtLWNvbW1vbi0wMTU5NTU4MTcyNjMnKSxcbiAgICAgICAgJ2xhbWJkYS9jbGVyay1hdXRob3JpemVyLWFybTY0LWxhdGVzdC56aXAnLFxuICAgICAgICB7IG9iamVjdFZlcnNpb246ICcke2F1dGhvcml6ZXJPYmplY3RWZXJzaW9ufScgfSxcbiAgICAgICksXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBDTEVSS19KV0tTX1VSTDogdGhpcy5wcm9wcy5jbGVya0p3a3NVcmwsXG4gICAgICB9LFxuICAgICAgaGFuZGxlcjogJ2l0c3J1c3RiYWJ5JyxcbiAgICAgIGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVMYW1iZGFGdW5jdGlvbigpIHtcbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHRoaXMsICdGdW5jdGlvbicsIHtcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzI0X1gsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIG1lbW9yeVNpemU6IDUxMixcbiAgICAgIGVudHJ5OiBqb2luKF9fZGlybmFtZSwgJ2hhbmRsZXIvQXBpLkZ1bmN0aW9uLnRzJyksXG4gICAgICB2cGM6IHRoaXMucHJvcHMudnBjLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc3RBcGkoKSB7XG4gICAgY29uc3QgYWNjZXNzTG9nR3JvdXAgPSBuZXcgTG9nR3JvdXAodGhpcywgJ0FwaUFjY2Vzc0xvZ3MnLCB7XG4gICAgICByZXRlbnRpb246IFJldGVudGlvbkRheXMuVFdPX1dFRUtTLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZXN0QXBpID0gbmV3IFJlc3RBcGkodGhpcywgJ1Jlc3RBcGknLCB7XG4gICAgICByZXN0QXBpTmFtZTogXFxgXFwke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX0tYXBpXFxgLFxuICAgICAgZGVzY3JpcHRpb246ICdBUEkgZm9yIE1WUCBVSSBhcHBsaWNhdGlvbicsXG4gICAgICBlbmRwb2ludFR5cGVzOiBbRW5kcG9pbnRUeXBlLlJFR0lPTkFMXSxcbiAgICAgIGNsb3VkV2F0Y2hSb2xlOiB0cnVlLFxuICAgICAgZGVwbG95T3B0aW9uczoge1xuICAgICAgICB0cmFjaW5nRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgbWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIGFjY2Vzc0xvZ0Rlc3RpbmF0aW9uOiBuZXcgTG9nR3JvdXBMb2dEZXN0aW5hdGlvbihhY2Nlc3NMb2dHcm91cCksXG4gICAgICAgIGFjY2Vzc0xvZ0Zvcm1hdDogQWNjZXNzTG9nRm9ybWF0Lmpzb25XaXRoU3RhbmRhcmRGaWVsZHMoKSxcbiAgICAgIH0sXG4gICAgICBwb2xpY3k6IG5ldyBQb2xpY3lEb2N1bWVudCh7XG4gICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkRFTlksXG4gICAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IEFueVByaW5jaXBhbCgpXSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnZXhlY3V0ZS1hcGk6SW52b2tlJ10sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICBTdHJpbmdOb3RFcXVhbHM6IHtcbiAgICAgICAgICAgICAgICAnYXdzOnVzZXJhZ2VudCc6ICdBbWF6b24gQ2xvdWRGcm9udCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IEFueVByaW5jaXBhbCgpXSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnZXhlY3V0ZS1hcGk6SW52b2tlJ10sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICAgICAnYXdzOnVzZXJhZ2VudCc6ICdBbWF6b24gQ2xvdWRGcm9udCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlQXV0aG9yaXplcigpIHtcbiAgICB0aGlzLmF1dGhvcml6ZXIgPSBuZXcgVG9rZW5BdXRob3JpemVyKHRoaXMsICdDbGVya0F1dGhvcml6ZXInLCB7XG4gICAgICBoYW5kbGVyOiB0aGlzLmF1dGhvcml6ZXJGdW5jdGlvbixcbiAgICAgIGlkZW50aXR5U291cmNlOiAnbWV0aG9kLnJlcXVlc3QuaGVhZGVyLkF1dGhvcml6YXRpb24nLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQXBpSW50ZWdyYXRpb24oKSB7XG4gICAgY29uc3QgaW50ZWdyYXRpb24gPSBuZXcgTGFtYmRhSW50ZWdyYXRpb24odGhpcy5sYW1iZGFGdW5jdGlvbik7XG4gICAgdGhpcy5yZXN0QXBpLnJvb3QuYWRkUHJveHkoe1xuICAgICAgZGVmYXVsdEludGVncmF0aW9uOiBpbnRlZ3JhdGlvbixcbiAgICAgIGFueU1ldGhvZDogdHJ1ZSxcbiAgICAgIGRlZmF1bHRNZXRob2RPcHRpb25zOiB7XG4gICAgICAgIGF1dGhvcml6ZXI6IHRoaXMuYXV0aG9yaXplcixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNsZXJrQXV0aFNlY3JldCgpIHtcbiAgICB0aGlzLmNsZXJrQXV0aFNlY3JldCA9IG5ldyBTZWNyZXQodGhpcywgJ0NsZXJrQXV0aFNlY3JldCcsIHtcbiAgICAgIGdlbmVyYXRlU2VjcmV0U3RyaW5nOiB7XG4gICAgICAgIHNlY3JldFN0cmluZ1RlbXBsYXRlOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgY2xlcmtQdWJsaXNoYWJsZUtleTogJycsXG4gICAgICAgICAgY2xlcmtKd2tzVXJsOiAnJyxcbiAgICAgICAgfSksXG4gICAgICAgIGdlbmVyYXRlU3RyaW5nS2V5OiAnY2xlcmtQdWJsaXNoYWJsZUtleScsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5gLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -12,7 +12,6 @@ export interface ApplicationOptions {
12
12
  readonly additionalTags?: {
13
13
  [key: string]: string;
14
14
  };
15
- readonly n8nWorkflows?: boolean;
16
15
  /**
17
16
  * Overrides for the pinned action versions used by the generated GitHub Actions workflows.
18
17
  */
@@ -28,6 +27,15 @@ export interface ApplicationOptions {
28
27
  * @default true
29
28
  */
30
29
  readonly e2eTesting?: boolean;
30
+ /**
31
+ * Generates the pr-auto-merge workflow, which arms squash auto-merge on ready
32
+ * pull requests into the default branch with a GitHub App token. Requires the
33
+ * `AUTO_MERGE_APP_CLIENT_ID` variable and the
34
+ * `AUTO_MERGE_APP_PRIVATE_KEY` secret in an `auto-merge` environment; see the README section
35
+ * "Auto-merging pull requests with a GitHub App".
36
+ * @default false
37
+ */
38
+ readonly prAutoMerge?: boolean;
31
39
  }
32
40
  /**
33
41
  * Application construct that creates all standard project files
@@ -10,6 +10,7 @@ const GitHubRolesStackFile_1 = require("./GitHubRolesStackFile");
10
10
  const LocalDevFiles_1 = require("./LocalDevFiles");
11
11
  const MainFile_1 = require("./MainFile");
12
12
  const MainTestFile_1 = require("./MainTestFile");
13
+ const PrAutoMergeWorkflow_1 = require("./PrAutoMergeWorkflow");
13
14
  const PrCleanupWorkflow_1 = require("./PrCleanupWorkflow");
14
15
  const PrDeployWorkflow_1 = require("./PrDeployWorkflow");
15
16
  const ProductionDeployWorkflow_1 = require("./ProductionDeployWorkflow");
@@ -19,8 +20,6 @@ const SecretConstructFile_1 = require("./SecretConstructFile");
19
20
  const SecretHandlerFiles_1 = require("./SecretHandlerFiles");
20
21
  const StagingDeployWorkflow_1 = require("./StagingDeployWorkflow");
21
22
  const StaticWebsiteConstructFile_1 = require("./StaticWebsiteConstructFile");
22
- const WorkflowAutoDiscover_1 = require("./WorkflowAutoDiscover");
23
- const WorkflowProvider_1 = require("./WorkflowProvider");
24
23
  /**
25
24
  * Application construct that creates all standard project files
26
25
  */
@@ -45,15 +44,12 @@ class Application {
45
44
  new BaseApplicationStackFile_1.BaseApplicationStackFile(project);
46
45
  new ApplicationStackFile_1.ApplicationStackFile(project);
47
46
  // Create construct files
48
- new ApiConstructFile_1.ApiConstructFile(project, { authorizerObjectVersion: options.authorizerObjectVersion });
47
+ new ApiConstructFile_1.ApiConstructFile(project, {
48
+ authorizerObjectVersion: options.authorizerObjectVersion,
49
+ });
49
50
  new SecretConstructFile_1.SecretConstructFile(project);
50
51
  new SecretHandlerFiles_1.SecretHandlerFiles(project);
51
52
  new StaticWebsiteConstructFile_1.StaticWebsiteConstructFile(project);
52
- // n8n workflow files
53
- if (options.n8nWorkflows === undefined || options.n8nWorkflows) {
54
- new WorkflowProvider_1.WorkflowProviderFile(project);
55
- new WorkflowAutoDiscover_1.WorkflowAutoDiscover(project);
56
- }
57
53
  // Create handler files and API backend logic files
58
54
  new ApiFiles_1.ApiFiles(project);
59
55
  // Create test files
@@ -80,6 +76,11 @@ class Application {
80
76
  projectName: project.name,
81
77
  actionVersions: options.actionVersions,
82
78
  });
79
+ if (options.prAutoMerge) {
80
+ new PrAutoMergeWorkflow_1.PrAutoMergeWorkflow(project, {
81
+ actionVersions: options.actionVersions,
82
+ });
83
+ }
83
84
  new StagingDeployWorkflow_1.StagingDeployWorkflow(project, {
84
85
  roleArn: options.staging.githubActionRoleArn,
85
86
  awsRegion: options.staging.region,
@@ -101,4 +102,4 @@ class Application {
101
102
  }
102
103
  }
103
104
  exports.Application = Application;
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQXBwbGljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQTBDO0FBQzFDLHlEQUFzRDtBQUN0RCxpRUFBOEQ7QUFDOUQseUVBQXNFO0FBQ3RFLHFEQUFrRDtBQUNsRCxpRUFBOEQ7QUFDOUQsbURBQWdEO0FBQ2hELHlDQUF5RDtBQUN6RCxpREFBOEM7QUFDOUMsMkRBQXdEO0FBQ3hELHlEQUFzRDtBQUN0RCx5RUFBc0U7QUFDdEUsdUVBQTJFO0FBQzNFLG1FQUFnRTtBQUNoRSwrREFBNEQ7QUFDNUQsNkRBQTBEO0FBQzFELG1FQUFnRTtBQUNoRSw2RUFBMEU7QUFFMUUsaUVBQThEO0FBQzlELHlEQUEwRDtBQWlDMUQ7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFDdEIsWUFBWSxPQUE0QixFQUFFLE9BQTJCO1FBQ25FLGdDQUFnQztRQUVoQyxJQUFJLG1CQUFRLENBQUMsT0FBTyxFQUFFO1lBQ3BCLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtZQUN6QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDaEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1lBQ3hCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsSUFBSSw2QkFBYSxDQUFDLE9BQU8sRUFBRTtZQUN6QixXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDekIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1NBQ2pCLENBQUMsQ0FBQztRQUVILHFCQUFxQjtRQUNyQixJQUFJLDJDQUFvQixDQUFDLE9BQU8sRUFBRTtZQUNoQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO1NBQzNDLENBQUMsQ0FBQztRQUVILElBQUksbURBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsSUFBSSwy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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgQXBpRmlsZXMgfSBmcm9tICcuL0FwaS9BcGlGaWxlcyc7XG5pbXBvcnQgeyBBcGlDb25zdHJ1Y3RGaWxlIH0gZnJvbSAnLi9BcGlDb25zdHJ1Y3RGaWxlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU3RhY2tGaWxlIH0gZnJvbSAnLi9BcHBsaWNhdGlvblN0YWNrRmlsZSc7XG5pbXBvcnQgeyBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUgfSBmcm9tICcuL0Jhc2VBcHBsaWNhdGlvblN0YWNrRmlsZSc7XG5pbXBvcnQgeyBDb2RlUmFiYml0RmlsZSB9IGZyb20gJy4vQ29kZVJhYmJpdEZpbGUnO1xuaW1wb3J0IHsgR2l0SHViUm9sZXNTdGFja0ZpbGUgfSBmcm9tICcuL0dpdEh1YlJvbGVzU3RhY2tGaWxlJztcbmltcG9ydCB7IExvY2FsRGV2RmlsZXMgfSBmcm9tICcuL0xvY2FsRGV2RmlsZXMnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRDb25maWcsIE1haW5GaWxlIH0gZnJvbSAnLi9NYWluRmlsZSc7XG5pbXBvcnQgeyBNYWluVGVzdEZpbGUgfSBmcm9tICcuL01haW5UZXN0RmlsZSc7XG5pbXBvcnQgeyBQckNsZWFudXBXb3JrZmxvdyB9IGZyb20gJy4vUHJDbGVhbnVwV29ya2Zsb3cnO1xuaW1wb3J0IHsgUHJEZXBsb3lXb3JrZmxvdyB9IGZyb20gJy4vUHJEZXBsb3lXb3JrZmxvdyc7XG5pbXBvcnQgeyBQcm9kdWN0aW9uRGVwbG95V29ya2Zsb3cgfSBmcm9tICcuL1Byb2R1Y3Rpb25EZXBsb3lXb3JrZmxvdyc7XG5pbXBvcnQgeyBoYXJkZW5Qcm9qZW5HZW5lcmF0ZWRXb3JrZmxvd3MgfSBmcm9tICcuL1Byb2plbldvcmtmbG93SGFyZGVuaW5nJztcbmltcG9ydCB7IFByU3RhY2tSZWFwZXJXb3JrZmxvdyB9IGZyb20gJy4vUHJTdGFja1JlYXBlcldvcmtmbG93JztcbmltcG9ydCB7IFNlY3JldENvbnN0cnVjdEZpbGUgfSBmcm9tICcuL1NlY3JldENvbnN0cnVjdEZpbGUnO1xuaW1wb3J0IHsgU2VjcmV0SGFuZGxlckZpbGVzIH0gZnJvbSAnLi9TZWNyZXRIYW5kbGVyRmlsZXMnO1xuaW1wb3J0IHsgU3RhZ2luZ0RlcGxveVdvcmtmbG93IH0gZnJvbSAnLi9TdGFnaW5nRGVwbG95V29ya2Zsb3cnO1xuaW1wb3J0IHsgU3RhdGljV2Vic2l0ZUNvbnN0cnVjdEZpbGUgfSBmcm9tICcuL1N0YXRpY1dlYnNpdGVDb25zdHJ1Y3RGaWxlJztcbmltcG9ydCB7IFdvcmtmbG93QWN0aW9uVmVyc2lvbnMgfSBmcm9tICcuL1dvcmtmbG93QWN0aW9uVmVyc2lvbnMnO1xuaW1wb3J0IHsgV29ya2Zsb3dBdXRvRGlzY292ZXIgfSBmcm9tICcuL1dvcmtmbG93QXV0b0Rpc2NvdmVyJztcbmltcG9ydCB7IFdvcmtmbG93UHJvdmlkZXJGaWxlIH0gZnJvbSAnLi9Xb3JrZmxvd1Byb3ZpZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnIGV4dGVuZHMgRW52aXJvbm1lbnRDb25maWcge1xuICByZWFkb25seSBnaXRodWJBY3Rpb25Sb2xlQXJuOiBgYXJuOmF3czppYW06OiR7c3RyaW5nfTpyb2xlLyR7c3RyaW5nfWA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25PcHRpb25zIHtcbiAgcmVhZG9ubHkgZ2l0aHViUmVwb3NpdG9yeTogc3RyaW5nO1xuICByZWFkb25seSBkZXY6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG4gIHJlYWRvbmx5IHN0YWdpbmc6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG4gIHJlYWRvbmx5IHByb2Q6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxUYWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcmVhZG9ubHkgbjhuV29ya2Zsb3dzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIGZvciB0aGUgcGlubmVkIGFjdGlvbiB2ZXJzaW9ucyB1c2VkIGJ5IHRoZSBnZW5lcmF0ZWQgR2l0SHViIEFjdGlvbnMgd29ya2Zsb3dzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uVmVyc2lvbnM/OiBXb3JrZmxvd0FjdGlvblZlcnNpb25zO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgdGhlIHBpbm5lZCBTMyBvYmplY3QgdmVyc2lvbiBvZiB0aGUgY2xlcmstYXV0aG9yaXplciBMYW1iZGEgZGVwbG95bWVudCBwYWNrYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IHBpbm5lZCBpbiBBcGlDb25zdHJ1Y3RGaWxlXG4gICAqL1xuICByZWFkb25seSBhdXRob3JpemVyT2JqZWN0VmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBgUHJEZXBsb3lXb3JrZmxvd2AgcnVucyB0aGUgUGxheXdyaWdodCBlMmUgc3VpdGUgYWdhaW5zdCB0aGUgZGVwbG95ZWQgUFIgc3RhY2suXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGUyZVRlc3Rpbmc/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNvbnN0cnVjdCB0aGF0IGNyZWF0ZXMgYWxsIHN0YW5kYXJkIHByb2plY3QgZmlsZXNcbiAqL1xuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCwgb3B0aW9uczogQXBwbGljYXRpb25PcHRpb25zKSB7XG4gICAgLy8gQ3JlYXRlIG1haW4gZW50cnkgcG9pbnQgZmlsZXNcblxuICAgIG5ldyBNYWluRmlsZShwcm9qZWN0LCB7XG4gICAgICBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgZGV2OiBvcHRpb25zLmRldixcbiAgICAgIHN0YWdpbmc6IG9wdGlvbnMuc3RhZ2luZyxcbiAgICAgIHByb2Q6IG9wdGlvbnMucHJvZCxcbiAgICAgIGFkZGl0aW9uYWxUYWdzOiBvcHRpb25zLmFkZGl0aW9uYWxUYWdzLFxuICAgIH0pO1xuXG4gICAgbmV3IExvY2FsRGV2RmlsZXMocHJvamVjdCwge1xuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGRldjogb3B0aW9ucy5kZXYsXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgc3RhY2sgZmlsZXNcbiAgICBuZXcgR2l0SHViUm9sZXNTdGFja0ZpbGUocHJvamVjdCwge1xuICAgICAgZ2l0aHViUmVwb3NpdG9yeTogb3B0aW9ucy5naXRodWJSZXBvc2l0b3J5LFxuICAgIH0pO1xuXG4gICAgbmV3IEJhc2VBcHBsaWNhdGlvblN0YWNrRmlsZShwcm9qZWN0KTtcbiAgICBuZXcgQXBwbGljYXRpb25TdGFja0ZpbGUocHJvamVjdCk7XG5cbiAgICAvLyBDcmVhdGUgY29uc3RydWN0IGZpbGVzXG4gICAgbmV3IEFwaUNvbnN0cnVjdEZpbGUocHJvamVjdCwgeyBhdXRob3JpemVyT2JqZWN0VmVyc2lvbjogb3B0aW9ucy5hdXRob3JpemVyT2JqZWN0VmVyc2lvbiB9KTtcbiAgICBuZXcgU2VjcmV0Q29uc3RydWN0RmlsZShwcm9qZWN0KTtcbiAgICBuZXcgU2VjcmV0SGFuZGxlckZpbGVzKHByb2plY3QpO1xuICAgIG5ldyBTdGF0aWNXZWJzaXRlQ29uc3RydWN0RmlsZShwcm9qZWN0KTtcblxuICAgIC8vIG44biB3b3JrZmxvdyBmaWxlc1xuICAgIGlmIChvcHRpb25zLm44bldvcmtmbG93cyA9PT0gdW5kZWZpbmVkIHx8IG9wdGlvbnMubjhuV29ya2Zsb3dzKSB7XG4gICAgICBuZXcgV29ya2Zsb3dQcm92aWRlckZpbGUocHJvamVjdCk7XG4gICAgICBuZXcgV29ya2Zsb3dBdXRvRGlzY292ZXIocHJvamVjdCk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGhhbmRsZXIgZmlsZXMgYW5kIEFQSSBiYWNrZW5kIGxvZ2ljIGZpbGVzXG4gICAgbmV3IEFwaUZpbGVzKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIHRlc3QgZmlsZXNcbiAgICBuZXcgTWFpblRlc3RGaWxlKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIGNvbmZpZyBmaWxlc1xuICAgIG5ldyBDb2RlUmFiYml0RmlsZShwcm9qZWN0KTtcblxuICAgIC8vIENyZWF0ZSBHaXRIdWIgQWN0aW9ucyB3b3JrZmxvd3NcbiAgICBuZXcgUHJEZXBsb3lXb3JrZmxvdyhwcm9qZWN0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLmRldi5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLmRldi5yZWdpb24sXG4gICAgICBjbGVya1B1Ymxpc2hhYmxlS2V5OiBvcHRpb25zLmRldi5jbGVya1B1Ymxpc2hhYmxlS2V5LFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgICBlMmVUZXN0aW5nOiBvcHRpb25zLmUyZVRlc3RpbmcsXG4gICAgfSk7XG5cbiAgICBuZXcgUHJDbGVhbnVwV29ya2Zsb3cocHJvamVjdCwge1xuICAgICAgcm9sZUFybjogb3B0aW9ucy5kZXYuZ2l0aHViQWN0aW9uUm9sZUFybixcbiAgICAgIGF3c1JlZ2lvbjogb3B0aW9ucy5kZXYucmVnaW9uLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGFjdGlvblZlcnNpb25zOiBvcHRpb25zLmFjdGlvblZlcnNpb25zLFxuICAgIH0pO1xuXG4gICAgbmV3IFByU3RhY2tSZWFwZXJXb3JrZmxvdyhwcm9qZWN0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLmRldi5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLmRldi5yZWdpb24sXG4gICAgICBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgfSk7XG5cbiAgICBuZXcgU3RhZ2luZ0RlcGxveVdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMuc3RhZ2luZy5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLnN0YWdpbmcucmVnaW9uLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGNsZXJrUHVibGlzaGFibGVLZXk6IG9wdGlvbnMuc3RhZ2luZy5jbGVya1B1Ymxpc2hhYmxlS2V5LFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgfSk7XG5cbiAgICBuZXcgUHJvZHVjdGlvbkRlcGxveVdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMucHJvZC5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLnByb2QucmVnaW9uLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGNsZXJrUHVibGlzaGFibGVLZXk6IG9wdGlvbnMucHJvZC5jbGVya1B1Ymxpc2hhYmxlS2V5LFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgfSk7XG5cbiAgICAvLyBIYXJkZW4gdGhlIHdvcmtmbG93cyBBd3NDZGtUeXBlU2NyaXB0QXBwIGdlbmVyYXRlcyBvbiBpdHMgb3duICh1cGdyYWRlLnltbCxcbiAgICAvLyBwdWxsLXJlcXVlc3QtbGludC55bWwpLCB3aGljaCBvdGhlcndpc2Ugc2hpcCB3aXRoIHVucGlubmVkIGFjdGlvbnMgYW5kIGFcbiAgICAvLyBwdWxsX3JlcXVlc3RfdGFyZ2V0IHRyaWdnZXIgeml6bW9yIGZsYWdzIG9uIGV2ZXJ5IGNvbnN1bWVyIG9mIHRoaXMgY29uc3RydWN0LlxuICAgIGhhcmRlblByb2plbkdlbmVyYXRlZFdvcmtmbG93cyhwcm9qZWN0LCBvcHRpb25zLmFjdGlvblZlcnNpb25zKTtcbiAgfVxufVxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQXBwbGljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQTBDO0FBQzFDLHlEQUFzRDtBQUN0RCxpRUFBOEQ7QUFDOUQseUVBQXNFO0FBQ3RFLHFEQUFrRDtBQUNsRCxpRUFBOEQ7QUFDOUQsbURBQWdEO0FBQ2hELHlDQUF5RDtBQUN6RCxpREFBOEM7QUFDOUMsK0RBQTREO0FBQzVELDJEQUF3RDtBQUN4RCx5REFBc0Q7QUFDdEQseUVBQXNFO0FBQ3RFLHVFQUEyRTtBQUMzRSxtRUFBZ0U7QUFDaEUsK0RBQTREO0FBQzVELDZEQUEwRDtBQUMxRCxtRUFBZ0U7QUFDaEUsNkVBQTBFO0FBMkMxRTs7R0FFRztBQUNILE1BQWEsV0FBVztJQUN0QixZQUFZLE9BQTRCLEVBQUUsT0FBMkI7UUFDbkUsZ0NBQWdDO1FBRWhDLElBQUksbUJBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDcEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3pCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztZQUNoQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLDZCQUFhLENBQUMsT0FBTyxFQUFFO1lBQ3pCLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtZQUN6QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7U0FDakIsQ0FBQyxDQUFDO1FBRUgscUJBQXFCO1FBQ3JCLElBQUksMkNBQW9CLENBQUMsT0FBTyxFQUFFO1lBQ2hDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7U0FDM0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxtREFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxJQUFJLDJDQUFvQixDQUFDLE9B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cHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgQXBpRmlsZXMgfSBmcm9tICcuL0FwaS9BcGlGaWxlcyc7XG5pbXBvcnQgeyBBcGlDb25zdHJ1Y3RGaWxlIH0gZnJvbSAnLi9BcGlDb25zdHJ1Y3RGaWxlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU3RhY2tGaWxlIH0gZnJvbSAnLi9BcHBsaWNhdGlvblN0YWNrRmlsZSc7XG5pbXBvcnQgeyBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUgfSBmcm9tICcuL0Jhc2VBcHBsaWNhdGlvblN0YWNrRmlsZSc7XG5pbXBvcnQgeyBDb2RlUmFiYml0RmlsZSB9IGZyb20gJy4vQ29kZVJhYmJpdEZpbGUnO1xuaW1wb3J0IHsgR2l0SHViUm9sZXNTdGFja0ZpbGUgfSBmcm9tICcuL0dpdEh1YlJvbGVzU3RhY2tGaWxlJztcbmltcG9ydCB7IExvY2FsRGV2RmlsZXMgfSBmcm9tICcuL0xvY2FsRGV2RmlsZXMnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRDb25maWcsIE1haW5GaWxlIH0gZnJvbSAnLi9NYWluRmlsZSc7XG5pbXBvcnQgeyBNYWluVGVzdEZpbGUgfSBmcm9tICcuL01haW5UZXN0RmlsZSc7XG5pbXBvcnQgeyBQckF1dG9NZXJnZVdvcmtmbG93IH0gZnJvbSAnLi9QckF1dG9NZXJnZVdvcmtmbG93JztcbmltcG9ydCB7IFByQ2xlYW51cFdvcmtmbG93IH0gZnJvbSAnLi9QckNsZWFudXBXb3JrZmxvdyc7XG5pbXBvcnQgeyBQckRlcGxveVdvcmtmbG93IH0gZnJvbSAnLi9QckRlcGxveVdvcmtmbG93JztcbmltcG9ydCB7IFByb2R1Y3Rpb25EZXBsb3lXb3JrZmxvdyB9IGZyb20gJy4vUHJvZHVjdGlvbkRlcGxveVdvcmtmbG93JztcbmltcG9ydCB7IGhhcmRlblByb2plbkdlbmVyYXRlZFdvcmtmbG93cyB9IGZyb20gJy4vUHJvamVuV29ya2Zsb3dIYXJkZW5pbmcnO1xuaW1wb3J0IHsgUHJTdGFja1JlYXBlcldvcmtmbG93IH0gZnJvbSAnLi9QclN0YWNrUmVhcGVyV29ya2Zsb3cnO1xuaW1wb3J0IHsgU2VjcmV0Q29uc3RydWN0RmlsZSB9IGZyb20gJy4vU2VjcmV0Q29uc3RydWN0RmlsZSc7XG5pbXBvcnQgeyBTZWNyZXRIYW5kbGVyRmlsZXMgfSBmcm9tICcuL1NlY3JldEhhbmRsZXJGaWxlcyc7XG5pbXBvcnQgeyBTdGFnaW5nRGVwbG95V29ya2Zsb3cgfSBmcm9tICcuL1N0YWdpbmdEZXBsb3lXb3JrZmxvdyc7XG5pbXBvcnQgeyBTdGF0aWNXZWJzaXRlQ29uc3RydWN0RmlsZSB9IGZyb20gJy4vU3RhdGljV2Vic2l0ZUNvbnN0cnVjdEZpbGUnO1xuaW1wb3J0IHsgV29ya2Zsb3dBY3Rpb25WZXJzaW9ucyB9IGZyb20gJy4vV29ya2Zsb3dBY3Rpb25WZXJzaW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZyBleHRlbmRzIEVudmlyb25tZW50Q29uZmlnIHtcbiAgcmVhZG9ubHkgZ2l0aHViQWN0aW9uUm9sZUFybjogYGFybjphd3M6aWFtOjoke3N0cmluZ306cm9sZS8ke3N0cmluZ31gO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGdpdGh1YlJlcG9zaXRvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgZGV2OiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBzdGFnaW5nOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBwcm9kOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBhZGRpdGlvbmFsVGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSB0aGUgZ2VuZXJhdGVkIEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93cy5cbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvblZlcnNpb25zPzogV29ya2Zsb3dBY3Rpb25WZXJzaW9ucztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBwaW5uZWQgUzMgb2JqZWN0IHZlcnNpb24gb2YgdGhlIGNsZXJrLWF1dGhvcml6ZXIgTGFtYmRhIGRlcGxveW1lbnQgcGFja2FnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBwaW5uZWQgaW4gQXBpQ29uc3RydWN0RmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXplck9iamVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYFByRGVwbG95V29ya2Zsb3dgIHJ1bnMgdGhlIFBsYXl3cmlnaHQgZTJlIHN1aXRlIGFnYWluc3QgdGhlIGRlcGxveWVkIFBSIHN0YWNrLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlMmVUZXN0aW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSBwci1hdXRvLW1lcmdlIHdvcmtmbG93LCB3aGljaCBhcm1zIHNxdWFzaCBhdXRvLW1lcmdlIG9uIHJlYWR5XG4gICAqIHB1bGwgcmVxdWVzdHMgaW50byB0aGUgZGVmYXVsdCBicmFuY2ggd2l0aCBhIEdpdEh1YiBBcHAgdG9rZW4uIFJlcXVpcmVzIHRoZVxuICAgKiBgQVVUT19NRVJHRV9BUFBfQ0xJRU5UX0lEYCB2YXJpYWJsZSBhbmQgdGhlXG4gICAqIGBBVVRPX01FUkdFX0FQUF9QUklWQVRFX0tFWWAgc2VjcmV0IGluIGFuIGBhdXRvLW1lcmdlYCBlbnZpcm9ubWVudDsgc2VlIHRoZSBSRUFETUUgc2VjdGlvblxuICAgKiBcIkF1dG8tbWVyZ2luZyBwdWxsIHJlcXVlc3RzIHdpdGggYSBHaXRIdWIgQXBwXCIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwckF1dG9NZXJnZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQXBwbGljYXRpb24gY29uc3RydWN0IHRoYXQgY3JlYXRlcyBhbGwgc3RhbmRhcmQgcHJvamVjdCBmaWxlc1xuICovXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLCBvcHRpb25zOiBBcHBsaWNhdGlvbk9wdGlvbnMpIHtcbiAgICAvLyBDcmVhdGUgbWFpbiBlbnRyeSBwb2ludCBmaWxlc1xuXG4gICAgbmV3IE1haW5GaWxlKHByb2plY3QsIHtcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBkZXY6IG9wdGlvbnMuZGV2LFxuICAgICAgc3RhZ2luZzogb3B0aW9ucy5zdGFnaW5nLFxuICAgICAgcHJvZDogb3B0aW9ucy5wcm9kLFxuICAgICAgYWRkaXRpb25hbFRhZ3M6IG9wdGlvbnMuYWRkaXRpb25hbFRhZ3MsXG4gICAgfSk7XG5cbiAgICBuZXcgTG9jYWxEZXZGaWxlcyhwcm9qZWN0LCB7XG4gICAgICBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgZGV2OiBvcHRpb25zLmRldixcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBzdGFjayBmaWxlc1xuICAgIG5ldyBHaXRIdWJSb2xlc1N0YWNrRmlsZShwcm9qZWN0LCB7XG4gICAgICBnaXRodWJSZXBvc2l0b3J5OiBvcHRpb25zLmdpdGh1YlJlcG9zaXRvcnksXG4gICAgfSk7XG5cbiAgICBuZXcgQmFzZUFwcGxpY2F0aW9uU3RhY2tGaWxlKHByb2plY3QpO1xuICAgIG5ldyBBcHBsaWNhdGlvblN0YWNrRmlsZShwcm9qZWN0KTtcblxuICAgIC8vIENyZWF0ZSBjb25zdHJ1Y3QgZmlsZXNcbiAgICBuZXcgQXBpQ29uc3RydWN0RmlsZShwcm9qZWN0LCB7XG4gICAgICBhdXRob3JpemVyT2JqZWN0VmVyc2lvbjogb3B0aW9ucy5hdXRob3JpemVyT2JqZWN0VmVyc2lvbixcbiAgICB9KTtcbiAgICBuZXcgU2VjcmV0Q29uc3RydWN0RmlsZShwcm9qZWN0KTtcbiAgICBuZXcgU2VjcmV0SGFuZGxlckZpbGVzKHByb2plY3QpO1xuICAgIG5ldyBTdGF0aWNXZWJzaXRlQ29uc3RydWN0RmlsZShwcm9qZWN0KTtcblxuICAgIC8vIENyZWF0ZSBoYW5kbGVyIGZpbGVzIGFuZCBBUEkgYmFja2VuZCBsb2dpYyBmaWxlc1xuICAgIG5ldyBBcGlGaWxlcyhwcm9qZWN0KTtcblxuICAgIC8vIENyZWF0ZSB0ZXN0IGZpbGVzXG4gICAgbmV3IE1haW5UZXN0RmlsZShwcm9qZWN0KTtcblxuICAgIC8vIENyZWF0ZSBjb25maWcgZmlsZXNcbiAgICBuZXcgQ29kZVJhYmJpdEZpbGUocHJvamVjdCk7XG5cbiAgICAvLyBDcmVhdGUgR2l0SHViIEFjdGlvbnMgd29ya2Zsb3dzXG4gICAgbmV3IFByRGVwbG95V29ya2Zsb3cocHJvamVjdCwge1xuICAgICAgcm9sZUFybjogb3B0aW9ucy5kZXYuZ2l0aHViQWN0aW9uUm9sZUFybixcbiAgICAgIGF3c1JlZ2lvbjogb3B0aW9ucy5kZXYucmVnaW9uLFxuICAgICAgY2xlcmtQdWJsaXNoYWJsZUtleTogb3B0aW9ucy5kZXYuY2xlcmtQdWJsaXNoYWJsZUtleSxcbiAgICAgIGFjdGlvblZlcnNpb25zOiBvcHRpb25zLmFjdGlvblZlcnNpb25zLFxuICAgICAgZTJlVGVzdGluZzogb3B0aW9ucy5lMmVUZXN0aW5nLFxuICAgIH0pO1xuXG4gICAgbmV3IFByQ2xlYW51cFdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMuZGV2LmdpdGh1YkFjdGlvblJvbGVBcm4sXG4gICAgICBhd3NSZWdpb246IG9wdGlvbnMuZGV2LnJlZ2lvbixcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBhY3Rpb25WZXJzaW9uczogb3B0aW9ucy5hY3Rpb25WZXJzaW9ucyxcbiAgICB9KTtcblxuICAgIG5ldyBQclN0YWNrUmVhcGVyV29ya2Zsb3cocHJvamVjdCwge1xuICAgICAgcm9sZUFybjogb3B0aW9ucy5kZXYuZ2l0aHViQWN0aW9uUm9sZUFybixcbiAgICAgIGF3c1JlZ2lvbjogb3B0aW9ucy5kZXYucmVnaW9uLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGFjdGlvblZlcnNpb25zOiBvcHRpb25zLmFjdGlvblZlcnNpb25zLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMucHJBdXRvTWVyZ2UpIHtcbiAgICAgIG5ldyBQckF1dG9NZXJnZVdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBuZXcgU3RhZ2luZ0RlcGxveVdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMuc3RhZ2luZy5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLnN0YWdpbmcucmVnaW9uLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGNsZXJrUHVibGlzaGFibGVLZXk6IG9wdGlvbnMuc3RhZ2luZy5jbGVya1B1Ymxpc2hhYmxlS2V5LFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgfSk7XG5cbiAgICBuZXcgUHJvZHVjdGlvbkRlcGxveVdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMucHJvZC5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLnByb2QucmVnaW9uLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGNsZXJrUHVibGlzaGFibGVLZXk6IG9wdGlvbnMucHJvZC5jbGVya1B1Ymxpc2hhYmxlS2V5LFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgfSk7XG5cbiAgICAvLyBIYXJkZW4gdGhlIHdvcmtmbG93cyBBd3NDZGtUeXBlU2NyaXB0QXBwIGdlbmVyYXRlcyBvbiBpdHMgb3duICh1cGdyYWRlLnltbCxcbiAgICAvLyBwdWxsLXJlcXVlc3QtbGludC55bWwpLCB3aGljaCBvdGhlcndpc2Ugc2hpcCB3aXRoIHVucGlubmVkIGFjdGlvbnMgYW5kIGFcbiAgICAvLyBwdWxsX3JlcXVlc3RfdGFyZ2V0IHRyaWdnZXIgeml6bW9yIGZsYWdzIG9uIGV2ZXJ5IGNvbnN1bWVyIG9mIHRoaXMgY29uc3RydWN0LlxuICAgIGhhcmRlblByb2plbkdlbmVyYXRlZFdvcmtmbG93cyhwcm9qZWN0LCBvcHRpb25zLmFjdGlvblZlcnNpb25zKTtcbiAgfVxufVxuIl19
@@ -60,14 +60,16 @@ class BaseApplicationStackFile extends projen_1.TextFile {
60
60
  ' readonly clerkJwksUrl: `https://${string}/.well-known/jwks.json`;',
61
61
  '',
62
62
  ' /**',
63
- ' * The N8N endpoint base URL.',
63
+ ' * Whether to create a VPC (with a NAT gateway) and attach the API Lambda to it.',
64
+ ' * A Lambda outside a VPC already has internet egress, so only enable this when',
65
+ ' * the stack needs to reach resources inside a VPC.',
64
66
  ' *',
65
- ' * @example \'https://workflow.sandbox.defiance.ai/\'',
67
+ ' * @default false',
66
68
  ' */',
67
- ' readonly n8nEndpoint: string;',
69
+ ' readonly enableVpc?: boolean;',
68
70
  '',
69
71
  ' /**',
70
- ' * The name of the VPC to create.',
72
+ ' * The name of the VPC to create when `enableVpc` is true.',
71
73
  ' *',
72
74
  ' * @default \'${id}-vpc\'',
73
75
  ' */',
@@ -85,7 +87,7 @@ class BaseApplicationStackFile extends projen_1.TextFile {
85
87
  'export class BaseApplicationStack<TProps extends BaseApplicationStackProps> extends Stack {',
86
88
  ' protected datadog: DatadogLambda;',
87
89
  ' protected hostedZone: IHostedZone;',
88
- ' protected vpc: IVpc;',
90
+ ' protected vpc?: IVpc;',
89
91
  ' protected api: Api;',
90
92
  ' protected staticWebsite: StaticWebsite;',
91
93
  '',
@@ -106,7 +108,9 @@ class BaseApplicationStackFile extends projen_1.TextFile {
106
108
  ' throw new Error(\'HostedZone creation failed\');',
107
109
  ' }',
108
110
  '',
109
- ' this.createVpc();',
111
+ ' if (this.props.enableVpc) {',
112
+ ' this.createVpc();',
113
+ ' }',
110
114
  '',
111
115
  ' this.createApi();',
112
116
  ' if (!this.api) {',
@@ -128,10 +132,10 @@ class BaseApplicationStackFile extends projen_1.TextFile {
128
132
  ' }',
129
133
  '',
130
134
  ' protected createApi() {',
135
+ ' // Spread so this compiles whether or not the project\'s Api construct declares vpc.',
131
136
  ' this.api = new Api(this, \'Api\', {',
132
- ' vpc: this.vpc,',
137
+ ' ...(this.vpc ? { vpc: this.vpc } : {}),',
133
138
  ' clerkJwksUrl: this.props.clerkJwksUrl,',
134
- ' n8nEndpoint: this.props.n8nEndpoint,',
135
139
  ' });',
136
140
  ' }',
137
141
  '',
@@ -175,4 +179,4 @@ class BaseApplicationStackFile extends projen_1.TextFile {
175
179
  }
176
180
  }
177
181
  exports.BaseApplicationStackFile = BaseApplicationStackFile;
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZUFwcGxpY2F0aW9uU3RhY2tGaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Jhc2VBcHBsaWNhdGlvblN0YWNrRmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBa0M7QUFHbEMsTUFBYSx3QkFBeUIsU0FBUSxpQkFBUTtJQUNwRCxZQUFZLE9BQTRCO1FBQ3RDLEtBQUssQ0FBQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUU7WUFDbkQsTUFBTSxFQUFFLElBQUk7WUFDWixRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRTtnQkFDTCx3RUFBd0U7Z0JBQ3hFLG9EQUFvRDtnQkFDcEQsc0VBQXNFO2dCQUN0RSw0REFBNEQ7Z0JBQzVELDJDQUEyQztnQkFDM0MsOERBQThEO2dCQUM5RCw2REFBNkQ7Z0JBQzdELDRDQUE0QztnQkFDNUMsZ0VBQWdFO2dCQUNoRSxFQUFFO2dCQUNGLGlFQUFpRTtnQkFDakUsRUFBRTtnQkFDRix3QkFBd0I7Z0JBQ3hCLFNBQVM7Z0JBQ1QsZ0VBQWdFO2dCQUNoRSxRQUFRO2dCQUNSLHFCQUFxQjtnQkFDckIsU0FBUztnQkFDVCx5Q0FBeUM7Z0JBQ3pDLEVBQUU7Z0JBQ0YsU0FBUztnQkFDVCwrREFBK0Q7Z0JBQy9ELFFBQVE7Z0JBQ1IscUJBQXFCO2dCQUNyQixTQUFTO2dCQUNULDJDQUEyQztnQkFDM0MsRUFBRTtnQkFDRixTQUFTO2dCQUNULHNFQUFzRTtnQkFDdEUsUUFBUTtnQkFDUixxQ0FBcUM7Z0JBQ3JDLFNBQVM7Z0JBQ1Qsb0NBQW9DO2dCQUNwQyxNQUFNO2dCQUNOLE9BQU87Z0JBQ1AsMERBQTBEO2dCQUMxRCxNQUFNO2dCQUNOLCtDQUErQztnQkFDL0MsT0FBTztnQkFDUCwwQ0FBMEM7Z0JBQzFDLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCwrRUFBK0U7Z0JBQy9FLE9BQU87Z0JBQ1AsNkZBQTZGO2dCQUM3RixFQUFFO2dCQUNGLE9BQU87Z0JBQ1Asa0VBQWtFO2dCQUNsRSxPQUFPO2dCQUNQLHFFQUFxRTtnQkFDckUsRUFBRTtnQkFDRixPQUFPO2dCQUNQLGlDQUFpQztnQkFDakMsTUFBTTtnQkFDTix5REFBeUQ7Z0JBQ3pELE9BQU87Z0JBQ1AsaUNBQWlDO2dCQUNqQyxFQUFFO2dCQUNGLE9BQU87Z0JBQ1AscUNBQXFDO2dCQUNyQyxNQUFNO2dCQUNOLDZCQUE2QjtnQkFDN0IsT0FBTztnQkFDUCw4QkFBOEI7Z0JBQzlCLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCxpRkFBaUY7Z0JBQ2pGLE1BQU07Z0JBQ04seUJBQXlCO2dCQUN6Qix1QkFBdUI7Z0JBQ3ZCLE9BQU87Z0JBQ1AsOEJBQThCO2dCQUM5QixHQUFHO2dCQUNILEVBQUU7Z0JBQ0YsNkZBQTZGO2dCQUM3RixxQ0FBcUM7Z0JBQ3JDLHNDQUFzQztnQkFDdEMsd0JBQXdCO2dCQUN4Qix1QkFBdUI7Z0JBQ3ZCLDJDQUEyQztnQkFDM0MsRUFBRTtnQkFDRixnRkFBZ0Y7Z0JBQ2hGLDhCQUE4QjtnQkFDOUIsRUFBRTtnQkFDRixxQ0FBcUM7Z0JBQ3JDLHNEQUFzRDtnQkFDdEQsT0FBTztnQkFDUCxFQUFFO2dCQUNGLG9DQUFvQztnQkFDcEMsMEJBQTBCO2dCQUMxQiwrREFBK0Q7Z0JBQy9ELE9BQU87Z0JBQ1AsRUFBRTtnQkFDRiw4QkFBOEI7Z0JBQzlCLDZCQUE2QjtnQkFDN0Isd0RBQXdEO2dCQUN4RCxPQUFPO2dCQUNQLEVBQUU7Z0JBQ0YsdUJBQXVCO2dCQUN2QixFQUFFO2dCQUNGLHVCQUF1QjtnQkFDdkIsc0JBQXNCO2dCQUN0QixpREFBaUQ7Z0JBQ2pELE9BQU87Z0JBQ1AsRUFBRTtnQkFDRixpQ0FBaUM7Z0JBQ2pDLEVBQUU7Z0JBQ0YsMkJBQTJCO2dCQUMzQix5RUFBeUU7Z0JBQ3pFLEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRixxQ0FBcUM7Z0JBQ3JDLHVFQUF1RTtnQkFDdkUsb0NBQW9DO2dCQUNwQyw4QkFBOEI7Z0JBQzlCLHNDQUFzQztnQkFDdEMsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEVBQUU7Z0JBQ0YsMkJBQTJCO2dCQUMzQix5Q0FBeUM7Z0JBQ3pDLHNCQUFzQjtnQkFDdEIsOENBQThDO2dCQUM5Qyw0Q0FBNEM7Z0JBQzVDLFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxFQUFFO2dCQUNGLDJCQUEyQjtnQkFDM0IseUNBQXlDO2dCQUN6Qyx3REFBd0Q7Z0JBQ3hELGtCQUFrQjtnQkFDbEIsdUJBQXVCO2dCQUN2QixTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRixrQ0FBa0M7Z0JBQ2xDLHFFQUFxRTtnQkFDckUsb0RBQW9EO2dCQUNwRCxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRiwrQkFBK0I7Z0JBQy9CLDJDQUEyQztnQkFDM0Msd0RBQXdEO2dCQUN4RCx1REFBdUQ7Z0JBQ3ZELGtFQUFrRTtnQkFDbEUsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEVBQUU7Z0JBQ0Ysd0NBQXdDO2dCQUN4QyxrSEFBa0g7Z0JBQ2xILDJEQUEyRDtnQkFDM0QsdUNBQXVDO2dCQUN2Qyw0REFBNEQ7Z0JBQzVELHNFQUFzRTtnQkFDdEUsMEVBQTBFO2dCQUMxRSxrQ0FBa0M7Z0JBQ2xDLG9DQUFvQztnQkFDcEMsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEdBQUc7Z0JBQ0gsRUFBRTthQUNIO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0tELDREQTJLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRleHRGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEF3c0Nka1R5cGVTY3JpcHRBcHAgfSBmcm9tICdwcm9qZW4vbGliL2F3c2Nkayc7XG5cbmV4cG9ydCBjbGFzcyBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUgZXh0ZW5kcyBUZXh0RmlsZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHApIHtcbiAgICBzdXBlcihwcm9qZWN0LCAnc3JjL3N0YWNrcy9CYXNlQXBwbGljYXRpb25TdGFjay50cycsIHtcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgbGluZXM6IFtcbiAgICAgICAgJ2ltcG9ydCB7IEFzcGVjdHMsIENmbk91dHB1dCwgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tIFxcJ2F3cy1jZGstbGliXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBJVnBjLCBWcGMgfSBmcm9tIFxcJ2F3cy1jZGstbGliL2F3cy1lYzJcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IEhvc3RlZFpvbmUsIElIb3N0ZWRab25lIH0gZnJvbSBcXCdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1xcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgU2VjcmV0IH0gZnJvbSBcXCdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXFwnY29uc3RydWN0c1xcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgRGF0YWRvZ0xhbWJkYSB9IGZyb20gXFwnZGF0YWRvZy1jZGstY29uc3RydWN0cy12MlxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgRGF0YURvZ0FzcGVjdCB9IGZyb20gXFwnLi4vYXNwZWN0cy9EYXRhRG9nQXNwZWN0XFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBBcGkgfSBmcm9tIFxcJy4uL2NvbnN0cnVjdHMvQXBpXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBTdGF0aWNXZWJzaXRlIH0gZnJvbSBcXCcuLi9jb25zdHJ1Y3RzL1N0YXRpY1dlYnNpdGVcXCc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICdleHBvcnQgaW50ZXJmYWNlIEJhc2VBcHBsaWNhdGlvblN0YWNrUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgZGF0YWRvZz86IHsnLFxuICAgICAgICAnICAgIC8qKicsXG4gICAgICAgICcgICAgICogVGhlIHZlcnNpb24gb2YgdGhlIERhdGFkb2cgTm9kZS5qcyBMYW1iZGEgbGF5ZXIgdG8gdXNlLicsXG4gICAgICAgICcgICAgIConLFxuICAgICAgICAnICAgICAqIEBkZWZhdWx0IDEzMicsXG4gICAgICAgICcgICAgICovJyxcbiAgICAgICAgJyAgICByZWFkb25seSBub2RlTGF5ZXJWZXJzaW9uPzogbnVtYmVyOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIC8qKicsXG4gICAgICAgICcgICAgICogVGhlIHZlcnNpb24gb2YgdGhlIERhdGFkb2cgUHl0aG9uIExhbWJkYSBsYXllciB0byB1c2UuJyxcbiAgICAgICAgJyAgICAgKicsXG4gICAgICAgICcgICAgICogQGRlZmF1bHQgMTIzJyxcbiAgICAgICAgJyAgICAgKi8nLFxuICAgICAgICAnICAgIHJlYWRvbmx5IHB5dGhvbkxheWVyVmVyc2lvbj86IG51bWJlcjsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICAvKionLFxuICAgICAgICAnICAgICAqIFRoZSBuYW1lIG9mIHRoZSBwcm9qZWN0L3NlcnZpY2UgZm9yIERhdGFkb2cgdGFnZ2luZyBwdXJwb3Nlcy4nLFxuICAgICAgICAnICAgICAqJyxcbiAgICAgICAgJyAgICAgKiBAZGVmYXVsdCAtIHVzZXMgdGhlIHN0YWNrIElEJyxcbiAgICAgICAgJyAgICAgKi8nLFxuICAgICAgICAnICAgIHJlYWRvbmx5IHByb2plY3ROYW1lPzogc3RyaW5nOycsXG4gICAgICAgICcgIH07JyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIGRvbWFpbiBuYW1lIG9mIHRoZSBSb3V0ZSA1MyBob3N0ZWQgem9uZSB0byB1c2UuJyxcbiAgICAgICAgJyAgIConLFxuICAgICAgICAnICAgKiBAZXhhbXBsZSBcXCdtYWNlZG9uLnNhbmRib3guZGVmaWFuY2UuYWlcXCcnLFxuICAgICAgICAnICAgKi8nLFxuICAgICAgICAnICByZWFkb25seSBob3N0ZWRab25lRG9tYWluTmFtZTogc3RyaW5nOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgQVJOIG9mIHRoZSBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IHRoYXQgY29udGFpbnMgdGhlIERhdGFkb2cgQVBJIGtleS4nLFxuICAgICAgICAnICAgKi8nLFxuICAgICAgICAnICByZWFkb25seSBkYXRhZG9nU2VjcmV0QXJuOiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke3N0cmluZ306JHtzdHJpbmd9OnNlY3JldDoke3N0cmluZ31gOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgQ2xlcmsgSldLUyBVUkwgdXNlZCB0byB2ZXJpZnkgc2Vzc2lvbiB0b2tlbiBzaWduYXR1cmVzLicsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGNsZXJrSndrc1VybDogYGh0dHBzOi8vJHtzdHJpbmd9Ly53ZWxsLWtub3duL2p3a3MuanNvbmA7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBOOE4gZW5kcG9pbnQgYmFzZSBVUkwuJyxcbiAgICAgICAgJyAgIConLFxuICAgICAgICAnICAgKiBAZXhhbXBsZSBcXCdodHRwczovL3dvcmtmbG93LnNhbmRib3guZGVmaWFuY2UuYWkvXFwnJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgbjhuRW5kcG9pbnQ6IHN0cmluZzsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIG5hbWUgb2YgdGhlIFZQQyB0byBjcmVhdGUuJyxcbiAgICAgICAgJyAgIConLFxuICAgICAgICAnICAgKiBAZGVmYXVsdCBcXCcke2lkfS12cGNcXCcnLFxuICAgICAgICAnICAgKi8nLFxuICAgICAgICAnICByZWFkb25seSB2cGNOYW1lPzogc3RyaW5nOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgaG9zdG5hbWUgZm9yIHRoZSBzdGF0aWMgd2Vic2l0ZS4gVGhpcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBob3N0ZWR6b25lLicsXG4gICAgICAgICcgICAqJyxcbiAgICAgICAgJyAgICogQGV4YW1wbGUgXFwnbXlib2lcXCcnLFxuICAgICAgICAnICAgKiBAZGVmYXVsdCBcXCdtdnBcXCcnLFxuICAgICAgICAnICAgKi8nLFxuICAgICAgICAnICByZWFkb25seSBob3N0bmFtZTogc3RyaW5nOycsXG4gICAgICAgICd9JyxcbiAgICAgICAgJycsXG4gICAgICAgICdleHBvcnQgY2xhc3MgQmFzZUFwcGxpY2F0aW9uU3RhY2s8VFByb3BzIGV4dGVuZHMgQmFzZUFwcGxpY2F0aW9uU3RhY2tQcm9wcz4gZXh0ZW5kcyBTdGFjayB7JyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGRhdGFkb2c6IERhdGFkb2dMYW1iZGE7JyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGhvc3RlZFpvbmU6IElIb3N0ZWRab25lOycsXG4gICAgICAgICcgIHByb3RlY3RlZCB2cGM6IElWcGM7JyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGFwaTogQXBpOycsXG4gICAgICAgICcgIHByb3RlY3RlZCBzdGF0aWNXZWJzaXRlOiBTdGF0aWNXZWJzaXRlOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBwcml2YXRlIGlkOiBzdHJpbmcsIHByb3RlY3RlZCBwcm9wczogVFByb3BzKSB7JyxcbiAgICAgICAgJyAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMucHJvcHMuY2xlcmtKd2tzVXJsKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdjbGVya0p3a3NVcmwgaXMgcmVxdWlyZWRcXCcpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlRGF0YWRvZ0V4dGVuc2lvbigpOycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLmRhdGFkb2cpIHsnLFxuICAgICAgICAnICAgICAgdGhyb3cgbmV3IEVycm9yKFxcJ0RhdGFkb2cgZXh0ZW5zaW9uIGNyZWF0aW9uIGZhaWxlZFxcJyk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgdGhpcy5jcmVhdGVIb3N0ZWRab25lKCk7JyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMuaG9zdGVkWm9uZSkgeycsXG4gICAgICAgICcgICAgICB0aHJvdyBuZXcgRXJyb3IoXFwnSG9zdGVkWm9uZSBjcmVhdGlvbiBmYWlsZWRcXCcpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlVnBjKCk7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgdGhpcy5jcmVhdGVBcGkoKTsnLFxuICAgICAgICAnICAgIGlmICghdGhpcy5hcGkpIHsnLFxuICAgICAgICAnICAgICAgdGhyb3cgbmV3IEVycm9yKFxcJ0FQSSBjcmVhdGlvbiBmYWlsZWRcXCcpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlU3RhdGljV2Vic2l0ZSgpOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlT3V0cHV0cygpOycsXG4gICAgICAgICcgICAgQXNwZWN0cy5vZih0aGlzKS5hZGQobmV3IERhdGFEb2dBc3BlY3QoeyBkYXRhZG9nOiB0aGlzLmRhdGFkb2cgfSkpOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGNyZWF0ZVN0YXRpY1dlYnNpdGUoKSB7JyxcbiAgICAgICAgJyAgICB0aGlzLnN0YXRpY1dlYnNpdGUgPSBuZXcgU3RhdGljV2Vic2l0ZSh0aGlzLCBcXCdTdGF0aWNXZWJzaXRlXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIGhvc3RlZFpvbmU6IHRoaXMuaG9zdGVkWm9uZSwnLFxuICAgICAgICAnICAgICAgYXBpOiB0aGlzLmFwaS5yZXN0QXBpLCcsXG4gICAgICAgICcgICAgICBob3N0bmFtZTogdGhpcy5wcm9wcy5ob3N0bmFtZSwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGNyZWF0ZUFwaSgpIHsnLFxuICAgICAgICAnICAgIHRoaXMuYXBpID0gbmV3IEFwaSh0aGlzLCBcXCdBcGlcXCcsIHsnLFxuICAgICAgICAnICAgICAgdnBjOiB0aGlzLnZwYywnLFxuICAgICAgICAnICAgICAgY2xlcmtKd2tzVXJsOiB0aGlzLnByb3BzLmNsZXJrSndrc1VybCwnLFxuICAgICAgICAnICAgICAgbjhuRW5kcG9pbnQ6IHRoaXMucHJvcHMubjhuRW5kcG9pbnQsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVWcGMoKSB7JyxcbiAgICAgICAgJyAgICB0aGlzLnZwYyA9IG5ldyBWcGModGhpcywgXFwnVlBDXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIHZwY05hbWU6IHRoaXMucHJvcHMudnBjTmFtZSB8fCBgJHt0aGlzLmlkfS12cGNgLCcsXG4gICAgICAgICcgICAgICBtYXhBenM6IDMsJyxcbiAgICAgICAgJyAgICAgIG5hdEdhdGV3YXlzOiAxLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlSG9zdGVkWm9uZSgpIHsnLFxuICAgICAgICAnICAgIHRoaXMuaG9zdGVkWm9uZSA9IEhvc3RlZFpvbmUuZnJvbUxvb2t1cCh0aGlzLCBcXCdIb3N0ZWRab25lXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIGRvbWFpbk5hbWU6IHRoaXMucHJvcHMuaG9zdGVkWm9uZURvbWFpbk5hbWUsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVPdXRwdXRzKCkgeycsXG4gICAgICAgICcgICAgbmV3IENmbk91dHB1dCh0aGlzLCBcXCdXZWJzaXRlVXJsXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIHZhbHVlOiBgaHR0cHM6Ly8ke3RoaXMuc3RhdGljV2Vic2l0ZS5ob3N0bmFtZX1gLCcsXG4gICAgICAgICcgICAgICBkZXNjcmlwdGlvbjogXFwnVGhlIFVSTCBvZiB0aGUgc3RhdGljIHdlYnNpdGVcXCcsJyxcbiAgICAgICAgJyAgICAgIGV4cG9ydE5hbWU6IGAke3RoaXMuaWQucmVwbGFjZSgvXFxcXC8vLCBcXCctXFwnKX0tV2Vic2l0ZVVybGAsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVEYXRhZG9nRXh0ZW5zaW9uKCkgeycsXG4gICAgICAgICcgICAgY29uc3QgZGF0YWRvZ0FwaVNlY3JldCA9IFNlY3JldC5mcm9tU2VjcmV0Q29tcGxldGVBcm4odGhpcywgXFwnRGF0YWRvZ0FwaUtleVxcJywgdGhpcy5wcm9wcy5kYXRhZG9nU2VjcmV0QXJuKTsnLFxuICAgICAgICAnICAgIHRoaXMuZGF0YWRvZyA9IG5ldyBEYXRhZG9nTGFtYmRhKHRoaXMsIFxcJ0RhdGFkb2dcXCcsIHsnLFxuICAgICAgICAnICAgICAgYXBpS2V5U2VjcmV0OiBkYXRhZG9nQXBpU2VjcmV0LCcsXG4gICAgICAgICcgICAgICBzZXJ2aWNlOiB0aGlzLnByb3BzLmRhdGFkb2c/LnByb2plY3ROYW1lIHx8IHRoaXMuaWQsJyxcbiAgICAgICAgJyAgICAgIG5vZGVMYXllclZlcnNpb246IHRoaXMucHJvcHMuZGF0YWRvZz8ubm9kZUxheWVyVmVyc2lvbiB8fCAxMzIsJyxcbiAgICAgICAgJyAgICAgIHB5dGhvbkxheWVyVmVyc2lvbjogdGhpcy5wcm9wcy5kYXRhZG9nPy5weXRob25MYXllclZlcnNpb24gfHwgMTIzLCcsXG4gICAgICAgICcgICAgICBleHRlbnNpb25MYXllclZlcnNpb246IDk5LCcsXG4gICAgICAgICcgICAgICBlbmFibGVNZXJnZVhyYXlUcmFjZXM6IHRydWUsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJ30nLFxuICAgICAgICAnJyxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZUFwcGxpY2F0aW9uU3RhY2tGaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Jhc2VBcHBsaWNhdGlvblN0YWNrRmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBa0M7QUFHbEMsTUFBYSx3QkFBeUIsU0FBUSxpQkFBUTtJQUNwRCxZQUFZLE9BQTRCO1FBQ3RDLEtBQUssQ0FBQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUU7WUFDbkQsTUFBTSxFQUFFLElBQUk7WUFDWixRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRTtnQkFDTCx3RUFBd0U7Z0JBQ3hFLG9EQUFvRDtnQkFDcEQsc0VBQXNFO2dCQUN0RSw0REFBNEQ7Z0JBQzVELDJDQUEyQztnQkFDM0MsOERBQThEO2dCQUM5RCw2REFBNkQ7Z0JBQzdELDRDQUE0QztnQkFDNUMsZ0VBQWdFO2dCQUNoRSxFQUFFO2dCQUNGLGlFQUFpRTtnQkFDakUsRUFBRTtnQkFDRix3QkFBd0I7Z0JBQ3hCLFNBQVM7Z0JBQ1QsZ0VBQWdFO2dCQUNoRSxRQUFRO2dCQUNSLHFCQUFxQjtnQkFDckIsU0FBUztnQkFDVCx5Q0FBeUM7Z0JBQ3pDLEVBQUU7Z0JBQ0YsU0FBUztnQkFDVCwrREFBK0Q7Z0JBQy9ELFFBQVE7Z0JBQ1IscUJBQXFCO2dCQUNyQixTQUFTO2dCQUNULDJDQUEyQztnQkFDM0MsRUFBRTtnQkFDRixTQUFTO2dCQUNULHNFQUFzRTtnQkFDdEUsUUFBUTtnQkFDUixxQ0FBcUM7Z0JBQ3JDLFNBQVM7Z0JBQ1Qsb0NBQW9DO2dCQUNwQyxNQUFNO2dCQUNOLE9BQU87Z0JBQ1AsMERBQTBEO2dCQUMxRCxNQUFNO2dCQUNOLCtDQUErQztnQkFDL0MsT0FBTztnQkFDUCwwQ0FBMEM7Z0JBQzFDLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCwrRUFBK0U7Z0JBQy9FLE9BQU87Z0JBQ1AsNkZBQTZGO2dCQUM3RixFQUFFO2dCQUNGLE9BQU87Z0JBQ1Asa0VBQWtFO2dCQUNsRSxPQUFPO2dCQUNQLHFFQUFxRTtnQkFDckUsRUFBRTtnQkFDRixPQUFPO2dCQUNQLG9GQUFvRjtnQkFDcEYsbUZBQW1GO2dCQUNuRix1REFBdUQ7Z0JBQ3ZELE1BQU07Z0JBQ04scUJBQXFCO2dCQUNyQixPQUFPO2dCQUNQLGlDQUFpQztnQkFDakMsRUFBRTtnQkFDRixPQUFPO2dCQUNQLDhEQUE4RDtnQkFDOUQsTUFBTTtnQkFDTiw2QkFBNkI7Z0JBQzdCLE9BQU87Z0JBQ1AsOEJBQThCO2dCQUM5QixFQUFFO2dCQUNGLE9BQU87Z0JBQ1AsaUZBQWlGO2dCQUNqRixNQUFNO2dCQUNOLHlCQUF5QjtnQkFDekIsdUJBQXVCO2dCQUN2QixPQUFPO2dCQUNQLDhCQUE4QjtnQkFDOUIsR0FBRztnQkFDSCxFQUFFO2dCQUNGLDZGQUE2RjtnQkFDN0YscUNBQXFDO2dCQUNyQyxzQ0FBc0M7Z0JBQ3RDLHlCQUF5QjtnQkFDekIsdUJBQXVCO2dCQUN2QiwyQ0FBMkM7Z0JBQzNDLEVBQUU7Z0JBQ0YsZ0ZBQWdGO2dCQUNoRiw4QkFBOEI7Z0JBQzlCLEVBQUU7Z0JBQ0YscUNBQXFDO2dCQUNyQyxzREFBc0Q7Z0JBQ3RELE9BQU87Z0JBQ1AsRUFBRTtnQkFDRixvQ0FBb0M7Z0JBQ3BDLDBCQUEwQjtnQkFDMUIsK0RBQStEO2dCQUMvRCxPQUFPO2dCQUNQLEVBQUU7Z0JBQ0YsOEJBQThCO2dCQUM5Qiw2QkFBNkI7Z0JBQzdCLHdEQUF3RDtnQkFDeEQsT0FBTztnQkFDUCxFQUFFO2dCQUNGLGlDQUFpQztnQkFDakMseUJBQXlCO2dCQUN6QixPQUFPO2dCQUNQLEVBQUU7Z0JBQ0YsdUJBQXVCO2dCQUN2QixzQkFBc0I7Z0JBQ3RCLGlEQUFpRDtnQkFDakQsT0FBTztnQkFDUCxFQUFFO2dCQUNGLGlDQUFpQztnQkFDakMsRUFBRTtnQkFDRiwyQkFBMkI7Z0JBQzNCLHlFQUF5RTtnQkFDekUsS0FBSztnQkFDTCxFQUFFO2dCQUNGLHFDQUFxQztnQkFDckMsdUVBQXVFO2dCQUN2RSxvQ0FBb0M7Z0JBQ3BDLDhCQUE4QjtnQkFDOUIsc0NBQXNDO2dCQUN0QyxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRiwyQkFBMkI7Z0JBQzNCLDBGQUEwRjtnQkFDMUYseUNBQXlDO2dCQUN6QywrQ0FBK0M7Z0JBQy9DLDhDQUE4QztnQkFDOUMsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEVBQUU7Z0JBQ0YsMkJBQTJCO2dCQUMzQix5Q0FBeUM7Z0JBQ3pDLHdEQUF3RDtnQkFDeEQsa0JBQWtCO2dCQUNsQix1QkFBdUI7Z0JBQ3ZCLFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxFQUFFO2dCQUNGLGtDQUFrQztnQkFDbEMscUVBQXFFO2dCQUNyRSxvREFBb0Q7Z0JBQ3BELFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxFQUFFO2dCQUNGLCtCQUErQjtnQkFDL0IsMkNBQTJDO2dCQUMzQyx3REFBd0Q7Z0JBQ3hELHVEQUF1RDtnQkFDdkQsa0VBQWtFO2dCQUNsRSxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRix3Q0FBd0M7Z0JBQ3hDLGtIQUFrSDtnQkFDbEgsMkRBQTJEO2dCQUMzRCx1Q0FBdUM7Z0JBQ3ZDLDREQUE0RDtnQkFDNUQsc0VBQXNFO2dCQUN0RSwwRUFBMEU7Z0JBQzFFLGtDQUFrQztnQkFDbEMsb0NBQW9DO2dCQUNwQyxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsR0FBRztnQkFDSCxFQUFFO2FBQ0g7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEvS0QsNERBK0tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGV4dEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcblxuZXhwb3J0IGNsYXNzIEJhc2VBcHBsaWNhdGlvblN0YWNrRmlsZSBleHRlbmRzIFRleHRGaWxlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCkge1xuICAgIHN1cGVyKHByb2plY3QsICdzcmMvc3RhY2tzL0Jhc2VBcHBsaWNhdGlvblN0YWNrLnRzJywge1xuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICBsaW5lczogW1xuICAgICAgICAnaW1wb3J0IHsgQXNwZWN0cywgQ2ZuT3V0cHV0LCBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gXFwnYXdzLWNkay1saWJcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IElWcGMsIFZwYyB9IGZyb20gXFwnYXdzLWNkay1saWIvYXdzLWVjMlxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgSG9zdGVkWm9uZSwgSUhvc3RlZFpvbmUgfSBmcm9tIFxcJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBTZWNyZXQgfSBmcm9tIFxcJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcXCdjb25zdHJ1Y3RzXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBEYXRhZG9nTGFtYmRhIH0gZnJvbSBcXCdkYXRhZG9nLWNkay1jb25zdHJ1Y3RzLXYyXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBEYXRhRG9nQXNwZWN0IH0gZnJvbSBcXCcuLi9hc3BlY3RzL0RhdGFEb2dBc3BlY3RcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IEFwaSB9IGZyb20gXFwnLi4vY29uc3RydWN0cy9BcGlcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IFN0YXRpY1dlYnNpdGUgfSBmcm9tIFxcJy4uL2NvbnN0cnVjdHMvU3RhdGljV2Vic2l0ZVxcJzsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2V4cG9ydCBpbnRlcmZhY2UgQmFzZUFwcGxpY2F0aW9uU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMgeycsXG4gICAgICAgICcnLFxuICAgICAgICAnICByZWFkb25seSBkYXRhZG9nPzogeycsXG4gICAgICAgICcgICAgLyoqJyxcbiAgICAgICAgJyAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgRGF0YWRvZyBOb2RlLmpzIExhbWJkYSBsYXllciB0byB1c2UuJyxcbiAgICAgICAgJyAgICAgKicsXG4gICAgICAgICcgICAgICogQGRlZmF1bHQgMTMyJyxcbiAgICAgICAgJyAgICAgKi8nLFxuICAgICAgICAnICAgIHJlYWRvbmx5IG5vZGVMYXllclZlcnNpb24/OiBudW1iZXI7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgLyoqJyxcbiAgICAgICAgJyAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgRGF0YWRvZyBQeXRob24gTGFtYmRhIGxheWVyIHRvIHVzZS4nLFxuICAgICAgICAnICAgICAqJyxcbiAgICAgICAgJyAgICAgKiBAZGVmYXVsdCAxMjMnLFxuICAgICAgICAnICAgICAqLycsXG4gICAgICAgICcgICAgcmVhZG9ubHkgcHl0aG9uTGF5ZXJWZXJzaW9uPzogbnVtYmVyOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIC8qKicsXG4gICAgICAgICcgICAgICogVGhlIG5hbWUgb2YgdGhlIHByb2plY3Qvc2VydmljZSBmb3IgRGF0YWRvZyB0YWdnaW5nIHB1cnBvc2VzLicsXG4gICAgICAgICcgICAgIConLFxuICAgICAgICAnICAgICAqIEBkZWZhdWx0IC0gdXNlcyB0aGUgc3RhY2sgSUQnLFxuICAgICAgICAnICAgICAqLycsXG4gICAgICAgICcgICAgcmVhZG9ubHkgcHJvamVjdE5hbWU/OiBzdHJpbmc7JyxcbiAgICAgICAgJyAgfTsnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgZG9tYWluIG5hbWUgb2YgdGhlIFJvdXRlIDUzIGhvc3RlZCB6b25lIHRvIHVzZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBleGFtcGxlIFxcJ21hY2Vkb24uc2FuZGJveC5kZWZpYW5jZS5haVxcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGhvc3RlZFpvbmVEb21haW5OYW1lOiBzdHJpbmc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBBUk4gb2YgdGhlIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgdGhhdCBjb250YWlucyB0aGUgRGF0YWRvZyBBUEkga2V5LicsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGRhdGFkb2dTZWNyZXRBcm46IGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOiR7c3RyaW5nfToke3N0cmluZ306c2VjcmV0OiR7c3RyaW5nfWA7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBDbGVyayBKV0tTIFVSTCB1c2VkIHRvIHZlcmlmeSBzZXNzaW9uIHRva2VuIHNpZ25hdHVyZXMuJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgY2xlcmtKd2tzVXJsOiBgaHR0cHM6Ly8ke3N0cmluZ30vLndlbGwta25vd24vandrcy5qc29uYDsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogV2hldGhlciB0byBjcmVhdGUgYSBWUEMgKHdpdGggYSBOQVQgZ2F0ZXdheSkgYW5kIGF0dGFjaCB0aGUgQVBJIExhbWJkYSB0byBpdC4nLFxuICAgICAgICAnICAgKiBBIExhbWJkYSBvdXRzaWRlIGEgVlBDIGFscmVhZHkgaGFzIGludGVybmV0IGVncmVzcywgc28gb25seSBlbmFibGUgdGhpcyB3aGVuJyxcbiAgICAgICAgJyAgICogdGhlIHN0YWNrIG5lZWRzIHRvIHJlYWNoIHJlc291cmNlcyBpbnNpZGUgYSBWUEMuJyxcbiAgICAgICAgJyAgIConLFxuICAgICAgICAnICAgKiBAZGVmYXVsdCBmYWxzZScsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGVuYWJsZVZwYz86IGJvb2xlYW47JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBuYW1lIG9mIHRoZSBWUEMgdG8gY3JlYXRlIHdoZW4gYGVuYWJsZVZwY2AgaXMgdHJ1ZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBkZWZhdWx0IFxcJyR7aWR9LXZwY1xcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IHZwY05hbWU/OiBzdHJpbmc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBob3N0bmFtZSBmb3IgdGhlIHN0YXRpYyB3ZWJzaXRlLiBUaGlzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGhvc3RlZHpvbmUuJyxcbiAgICAgICAgJyAgIConLFxuICAgICAgICAnICAgKiBAZXhhbXBsZSBcXCdteWJvaVxcJycsXG4gICAgICAgICcgICAqIEBkZWZhdWx0IFxcJ212cFxcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmc7JyxcbiAgICAgICAgJ30nLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2V4cG9ydCBjbGFzcyBCYXNlQXBwbGljYXRpb25TdGFjazxUUHJvcHMgZXh0ZW5kcyBCYXNlQXBwbGljYXRpb25TdGFja1Byb3BzPiBleHRlbmRzIFN0YWNrIHsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgZGF0YWRvZzogRGF0YWRvZ0xhbWJkYTsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgaG9zdGVkWm9uZTogSUhvc3RlZFpvbmU7JyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIHZwYz86IElWcGM7JyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGFwaTogQXBpOycsXG4gICAgICAgICcgIHByb3RlY3RlZCBzdGF0aWNXZWJzaXRlOiBTdGF0aWNXZWJzaXRlOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBwcml2YXRlIGlkOiBzdHJpbmcsIHByb3RlY3RlZCBwcm9wczogVFByb3BzKSB7JyxcbiAgICAgICAgJyAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMucHJvcHMuY2xlcmtKd2tzVXJsKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdjbGVya0p3a3NVcmwgaXMgcmVxdWlyZWRcXCcpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlRGF0YWRvZ0V4dGVuc2lvbigpOycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLmRhdGFkb2cpIHsnLFxuICAgICAgICAnICAgICAgdGhyb3cgbmV3IEVycm9yKFxcJ0RhdGFkb2cgZXh0ZW5zaW9uIGNyZWF0aW9uIGZhaWxlZFxcJyk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgdGhpcy5jcmVhdGVIb3N0ZWRab25lKCk7JyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMuaG9zdGVkWm9uZSkgeycsXG4gICAgICAgICcgICAgICB0aHJvdyBuZXcgRXJyb3IoXFwnSG9zdGVkWm9uZSBjcmVhdGlvbiBmYWlsZWRcXCcpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIGlmICh0aGlzLnByb3BzLmVuYWJsZVZwYykgeycsXG4gICAgICAgICcgICAgICB0aGlzLmNyZWF0ZVZwYygpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlQXBpKCk7JyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMuYXBpKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdBUEkgY3JlYXRpb24gZmFpbGVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZVN0YXRpY1dlYnNpdGUoKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZU91dHB1dHMoKTsnLFxuICAgICAgICAnICAgIEFzcGVjdHMub2YodGhpcykuYWRkKG5ldyBEYXRhRG9nQXNwZWN0KHsgZGF0YWRvZzogdGhpcy5kYXRhZG9nIH0pKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVTdGF0aWNXZWJzaXRlKCkgeycsXG4gICAgICAgICcgICAgdGhpcy5zdGF0aWNXZWJzaXRlID0gbmV3IFN0YXRpY1dlYnNpdGUodGhpcywgXFwnU3RhdGljV2Vic2l0ZVxcJywgeycsXG4gICAgICAgICcgICAgICBob3N0ZWRab25lOiB0aGlzLmhvc3RlZFpvbmUsJyxcbiAgICAgICAgJyAgICAgIGFwaTogdGhpcy5hcGkucmVzdEFwaSwnLFxuICAgICAgICAnICAgICAgaG9zdG5hbWU6IHRoaXMucHJvcHMuaG9zdG5hbWUsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVBcGkoKSB7JyxcbiAgICAgICAgJyAgICAvLyBTcHJlYWQgc28gdGhpcyBjb21waWxlcyB3aGV0aGVyIG9yIG5vdCB0aGUgcHJvamVjdFxcJ3MgQXBpIGNvbnN0cnVjdCBkZWNsYXJlcyB2cGMuJyxcbiAgICAgICAgJyAgICB0aGlzLmFwaSA9IG5ldyBBcGkodGhpcywgXFwnQXBpXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIC4uLih0aGlzLnZwYyA/IHsgdnBjOiB0aGlzLnZwYyB9IDoge30pLCcsXG4gICAgICAgICcgICAgICBjbGVya0p3a3NVcmw6IHRoaXMucHJvcHMuY2xlcmtKd2tzVXJsLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlVnBjKCkgeycsXG4gICAgICAgICcgICAgdGhpcy52cGMgPSBuZXcgVnBjKHRoaXMsIFxcJ1ZQQ1xcJywgeycsXG4gICAgICAgICcgICAgICB2cGNOYW1lOiB0aGlzLnByb3BzLnZwY05hbWUgfHwgYCR7dGhpcy5pZH0tdnBjYCwnLFxuICAgICAgICAnICAgICAgbWF4QXpzOiAzLCcsXG4gICAgICAgICcgICAgICBuYXRHYXRld2F5czogMSwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGNyZWF0ZUhvc3RlZFpvbmUoKSB7JyxcbiAgICAgICAgJyAgICB0aGlzLmhvc3RlZFpvbmUgPSBIb3N0ZWRab25lLmZyb21Mb29rdXAodGhpcywgXFwnSG9zdGVkWm9uZVxcJywgeycsXG4gICAgICAgICcgICAgICBkb21haW5OYW1lOiB0aGlzLnByb3BzLmhvc3RlZFpvbmVEb21haW5OYW1lLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0cygpIHsnLFxuICAgICAgICAnICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXFwnV2Vic2l0ZVVybFxcJywgeycsXG4gICAgICAgICcgICAgICB2YWx1ZTogYGh0dHBzOi8vJHt0aGlzLnN0YXRpY1dlYnNpdGUuaG9zdG5hbWV9YCwnLFxuICAgICAgICAnICAgICAgZGVzY3JpcHRpb246IFxcJ1RoZSBVUkwgb2YgdGhlIHN0YXRpYyB3ZWJzaXRlXFwnLCcsXG4gICAgICAgICcgICAgICBleHBvcnROYW1lOiBgJHt0aGlzLmlkLnJlcGxhY2UoL1xcXFwvLywgXFwnLVxcJyl9LVdlYnNpdGVVcmxgLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlRGF0YWRvZ0V4dGVuc2lvbigpIHsnLFxuICAgICAgICAnICAgIGNvbnN0IGRhdGFkb2dBcGlTZWNyZXQgPSBTZWNyZXQuZnJvbVNlY3JldENvbXBsZXRlQXJuKHRoaXMsIFxcJ0RhdGFkb2dBcGlLZXlcXCcsIHRoaXMucHJvcHMuZGF0YWRvZ1NlY3JldEFybik7JyxcbiAgICAgICAgJyAgICB0aGlzLmRhdGFkb2cgPSBuZXcgRGF0YWRvZ0xhbWJkYSh0aGlzLCBcXCdEYXRhZG9nXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIGFwaUtleVNlY3JldDogZGF0YWRvZ0FwaVNlY3JldCwnLFxuICAgICAgICAnICAgICAgc2VydmljZTogdGhpcy5wcm9wcy5kYXRhZG9nPy5wcm9qZWN0TmFtZSB8fCB0aGlzLmlkLCcsXG4gICAgICAgICcgICAgICBub2RlTGF5ZXJWZXJzaW9uOiB0aGlzLnByb3BzLmRhdGFkb2c/Lm5vZGVMYXllclZlcnNpb24gfHwgMTMyLCcsXG4gICAgICAgICcgICAgICBweXRob25MYXllclZlcnNpb246IHRoaXMucHJvcHMuZGF0YWRvZz8ucHl0aG9uTGF5ZXJWZXJzaW9uIHx8IDEyMywnLFxuICAgICAgICAnICAgICAgZXh0ZW5zaW9uTGF5ZXJWZXJzaW9uOiA5OSwnLFxuICAgICAgICAnICAgICAgZW5hYmxlTWVyZ2VYcmF5VHJhY2VzOiB0cnVlLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICd9JyxcbiAgICAgICAgJycsXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -20,10 +20,6 @@ export interface BatmanProjectOptions extends AwsCdkTypeScriptAppOptions {
20
20
  readonly additionalTags?: {
21
21
  [key: string]: string;
22
22
  };
23
- /**
24
- * Enable n8n workflow auto-discovery and WorkflowProvider generation
25
- */
26
- readonly n8nWorkflows?: boolean;
27
23
  /**
28
24
  * Additional code owners to add to the CODEOWNERS file
29
25
  */
@@ -58,6 +54,15 @@ export interface BatmanProjectOptions extends AwsCdkTypeScriptAppOptions {
58
54
  * @default - only the default files
59
55
  */
60
56
  readonly attestationFiles?: string[];
57
+ /**
58
+ * Generates the pr-auto-merge workflow, which arms squash auto-merge on ready
59
+ * pull requests into the default branch with a GitHub App token. Requires the
60
+ * `AUTO_MERGE_APP_CLIENT_ID` variable and the
61
+ * `AUTO_MERGE_APP_PRIVATE_KEY` secret in an `auto-merge` environment; see the README section
62
+ * "Auto-merging pull requests with a GitHub App".
63
+ * @default false
64
+ */
65
+ readonly prAutoMerge?: boolean;
61
66
  }
62
67
  export declare class BatmanProject extends AwsCdkTypeScriptApp {
63
68
  constructor(options: BatmanProjectOptions);
@@ -12,7 +12,7 @@ const SoftwareFactoryFiles_1 = require("./SoftwareFactoryFiles");
12
12
  const utils_1 = require("./utils");
13
13
  const ViteReactProject_1 = require("./ViteReactProject");
14
14
  class BatmanProject extends awscdk_1.AwsCdkTypeScriptApp {
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BatmanProject", version: "1.29.0" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BatmanProject", version: "1.31.0" };
16
16
  constructor(options) {
17
17
  super({
18
18
  ...options,
@@ -66,7 +66,7 @@ class BatmanProject extends awscdk_1.AwsCdkTypeScriptApp {
66
66
  },
67
67
  },
68
68
  readme: {
69
- contents: (0, utils_1.readmeContents)(options.name, options.e2eTesting ?? true, options.packageManager),
69
+ contents: (0, utils_1.readmeContents)(options.name, options.e2eTesting ?? true, options.packageManager, options.prAutoMerge ?? false),
70
70
  },
71
71
  });
72
72
  // Create standard project files
@@ -84,10 +84,10 @@ class BatmanProject extends awscdk_1.AwsCdkTypeScriptApp {
84
84
  ...options.dev,
85
85
  },
86
86
  additionalTags: options.additionalTags,
87
- n8nWorkflows: options.n8nWorkflows,
88
87
  actionVersions: options.actionVersions,
89
88
  authorizerObjectVersion: options.authorizerObjectVersion,
90
89
  e2eTesting: options.e2eTesting,
90
+ prAutoMerge: options.prAutoMerge,
91
91
  });
92
92
  new GitHubRolesFile_1.GitHubRolesFile(this, {
93
93
  account: PRIMARY_ACCOUNT,
@@ -141,4 +141,4 @@ class BatmanProject extends awscdk_1.AwsCdkTypeScriptApp {
141
141
  }
142
142
  }
143
143
  exports.BatmanProject = BatmanProject;
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmF0bWFuUHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9CYXRtYW5Qcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw4Q0FBb0Y7QUFDcEYsOENBQXNEO0FBQ3RELCtDQUEwRTtBQUMxRSxxREFBa0Q7QUFDbEQsMkRBQXdEO0FBQ3hELHVEQUFvRDtBQUNwRCxpRUFBOEQ7QUFDOUQsbUNBQXlDO0FBQ3pDLHlEQUFzRDtBQXdFdEQsTUFBYSxhQUFjLFNBQVEsNEJBQW1COztJQUNwRCxZQUFZLE9BQTZCO1FBQ3ZDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLFNBQVM7WUFDM0Msb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixJQUFJLE1BQU07WUFDNUQsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLElBQUksRUFBRTtnQkFDSixtQkFBbUI7Z0JBQ25CLGdCQUFnQjtnQkFDaEIsV0FBVztnQkFDWCxJQUFJO2dCQUNKLHFCQUFxQjtnQkFDckIsMkJBQTJCO2dCQUMzQiwwQkFBMEI7Z0JBQzFCLG1DQUFtQztnQkFDbkMsY0FBYztnQkFDZCxpQ0FBaUM7Z0JBQ2pDLFNBQVM7Z0JBQ1QsaUJBQWlCO2dCQUNqQixHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRTthQUN0QjtZQUNELE9BQU8sRUFBRTtnQkFDUCxxQkFBcUI7Z0JBQ3JCLFNBQVM7Z0JBQ1QsY0FBYztnQkFDZCxxQ0FBcUM7Z0JBQ3JDLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFO2FBQ3pCO1lBQ0QsU0FBUyxFQUFFO2dCQUNULG1EQUFtRDtnQkFDbkQsY0FBYztnQkFDZCxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRTthQUMzQjtZQUNELFFBQVEsRUFBRTtnQkFDUixHQUFH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T0FBTyxDQUFDLEtBQUssRUFBRTtZQUNsQixJQUFJLEVBQUUsWUFBWSxDQUNoQixrR0FBa0csRUFDbEcsU0FBUyxDQUFDLFVBQVUsQ0FDckI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN0QixJQUFJLEVBQUUsMkVBQTJFO1lBQ2pGLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7WUFDOUIsV0FBVyxFQUFFLDRFQUE0RTtZQUN6RixJQUFJLEVBQUUscUdBQXFHO1lBQzNHLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUVILDJFQUEyRTtRQUMzRSx1RUFBdUU7UUFDdkUsaUVBQWlFO1FBQ2pFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxLQUFLLENBQUMsV0FBVyxHQUFHLHFGQUFxRixDQUFDO1lBQzFHLEtBQUssQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztZQUM1QyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFFSCxDQUFDOztBQS9JSCxzQ0FnSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwLCBBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IEdpdGh1YkNyZWRlbnRpYWxzIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWInO1xuaW1wb3J0IHsgQXBwbGljYXRpb24sIEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWcgfSBmcm9tICcuL0FwcGxpY2F0aW9uJztcbmltcG9ydCB7IENvZGVPd25lcnNGaWxlIH0gZnJvbSAnLi9Db2RlT3duZXJzRmlsZSc7XG5pbXBvcnQgeyBEYXRhRG9nQXNwZWN0RmlsZSB9IGZyb20gJy4vRGF0YURvZ0FzcGVjdEZpbGUnO1xuaW1wb3J0IHsgR2l0SHViUm9sZXNGaWxlIH0gZnJvbSAnLi9HaXRIdWJSb2xlc0ZpbGUnO1xuaW1wb3J0IHsgU29mdHdhcmVGYWN0b3J5RmlsZXMgfSBmcm9tICcuL1NvZnR3YXJlRmFjdG9yeUZpbGVzJztcbmltcG9ydCB7IHJlYWRtZUNvbnRlbnRzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBWaXRlUmVhY3RQcm9qZWN0IH0gZnJvbSAnLi9WaXRlUmVhY3RQcm9qZWN0JztcbmltcG9ydCB7IFdvcmtmbG93QWN0aW9uVmVyc2lvbnMgfSBmcm9tICcuL1dvcmtmbG93QWN0aW9uVmVyc2lvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhdG1hblByb2plY3RPcHRpb25zIGV4dGVuZHMgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBEZXZlbG9wbWVudCBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXY6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIERldmVsb3BtZW50IGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWdpbmc6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIFByb2R1Y3Rpb24gZW52aXJvbm1lbnQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZDogQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCB0YWdzIHRvIGFwcGx5IHRvIGFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxUYWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogRW5hYmxlIG44biB3b3JrZmxvdyBhdXRvLWRpc2NvdmVyeSBhbmQgV29ya2Zsb3dQcm92aWRlciBnZW5lcmF0aW9uXG4gICAqL1xuICByZWFkb25seSBuOG5Xb3JrZmxvd3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGNvZGUgb3duZXJzIHRvIGFkZCB0byB0aGUgQ09ERU9XTkVSUyBmaWxlXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsQ29kZU93bmVycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXZWJzaXRlIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgcmVhZG9ubHkgd2Vic2l0ZURlcHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIGZvciB0aGUgcGlubmVkIGFjdGlvbiB2ZXJzaW9ucyB1c2VkIGJ5IHRoZSBnZW5lcmF0ZWQgR2l0SHViIEFjdGlvbnMgd29ya2Zsb3dzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uVmVyc2lvbnM/OiBXb3JrZmxvd0FjdGlvblZlcnNpb25zO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgdGhlIHBpbm5lZCBTMyBvYmplY3QgdmVyc2lvbiBvZiB0aGUgY2xlcmstYXV0aG9yaXplciBMYW1iZGEgZGVwbG95bWVudCBwYWNrYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IHBpbm5lZCBpbiBBcGlDb25zdHJ1Y3RGaWxlXG4gICAqL1xuICByZWFkb25seSBhdXRob3JpemVyT2JqZWN0VmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZ2VuZXJhdGVkIGB3ZWJgIGFwcCBhbmQgaXRzIGBQckRlcGxveVdvcmtmbG93YCBDSSBzdGVwIGluY2x1ZGVcbiAgICogUGxheXdyaWdodCBlMmUgdGVzdGluZyBzdXBwb3J0LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlMmVUZXN0aW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXh0cmEgZmlsZXMgdGhhdCB0aGUgUFIgYXR0ZXN0YXRpb24gbWFuaWZlc3QgYWxzbyBoYXNoZXMsIHN1Y2ggYXMgdGhlXG4gICAqIHByb2plY3QncyBvd24gdmVyaWZpY2F0aW9uIGNoZWNrcy4gRWFjaCBlbnRyeSBpcyBhbiBleGFjdCBmaWxlIHBhdGhcbiAgICogcmVsYXRpdmUgdG8gdGhlIHByb2plY3Qgcm9vdCwgaW4gbm9ybWFsaXplZCBQT1NJWCBmb3JtLCB1c2luZyBvbmx5XG4gICAqIGxldHRlcnMsIGRpZ2l0cyBhbmQgYC5fQCstYCwgd2l0aCBubyBgLmAgb3IgYC4uYCBzZWdtZW50OyBzeW50aCBmYWlsc1xuICAgKiBvbiBhbnkgb3RoZXIgZW50cnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gb25seSB0aGUgZGVmYXVsdCBmaWxlc1xuICAgKi9cbiAgcmVhZG9ubHkgYXR0ZXN0YXRpb25GaWxlcz86IHN0cmluZ1tdO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBCYXRtYW5Qcm9qZWN0IGV4dGVuZHMgQXdzQ2RrVHlwZVNjcmlwdEFwcCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEJhdG1hblByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGNka1ZlcnNpb246IG9wdGlvbnMuY2RrVmVyc2lvbiB8fCAnMi4yMjQuMCcsXG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogb3B0aW9ucy5kZWZhdWx0UmVsZWFzZUJyYW5jaCB8fCAnbWFpbicsXG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICBwcm9qZW5yY1RzOiB0cnVlLFxuICAgICAgYnVpbGRXb3JrZmxvdzogZmFsc2UsXG4gICAgICBkZXBzOiBbXG4gICAgICAgICdAdHlwZXMvYXdzLWxhbWJkYScsXG4gICAgICAgICdAdHlwZXMvZXhwcmVzcycsXG4gICAgICAgICdAdHlwZXMvcGcnLFxuICAgICAgICAncGcnLFxuICAgICAgICAnQGF3cy1zZGsvcmRzLXNpZ25lcicsXG4gICAgICAgICdkYXRhZG9nLWNkay1jb25zdHJ1Y3RzLXYyJyxcbiAgICAgICAgJ0BjZGtsYWJzL2F3cy1sYW1iZGEtcnVzdCcsXG4gICAgICAgICdAYXdzLWxhbWJkYS1wb3dlcnRvb2xzL3BhcmFtZXRlcnMnLFxuICAgICAgICAnanNvbndlYnRva2VuJyxcbiAgICAgICAgJ0Bhd3Mtc2RrL2NsaWVudC1zZWNyZXRzLW1hbmFnZXInLFxuICAgICAgICAnZXhwcmVzcycsXG4gICAgICAgICdzZXJ2ZXJsZXNzLWh0dHAnLFxuICAgICAgICAuLi5vcHRpb25zLmRlcHMgfHwgW10sXG4gICAgICBdLFxuICAgICAgZGV2RGVwczogW1xuICAgICAgICAnQHR5cGVzL2pzb253ZWJ0b2tlbicsXG4gICAgICAgICdub2RlbW9uJyxcbiAgICAgICAgJ2NvbmN1cnJlbnRseScsXG4gICAgICAgICdAbWFjZWRvbi10ZWNobm9sb2dpZXMvYmF0bWFuQF4xLjAuMCcsXG4gICAgICAgIC4uLm9wdGlvbnMuZGV2RGVwcyB8fCBbXSxcbiAgICAgIF0sXG4gICAgICBnaXRpZ25vcmU6IFtcbiAgICAgICAgJ3NyYy9jb25zdHJ1Y3RzL2hhbmRsZXIvY2xlcmstYXV0aG9yaXplci90YXJnZXQvKionLFxuICAgICAgICAnKiovLkRTX1N0b3JlJyxcbiAgICAgICAgLi4ub3B0aW9ucy5naXRpZ25vcmUgfHwgW10sXG4gICAgICBdLFxuICAgICAgdHNjb25maWc6IHtcbiAgICAgICAgLi4ub3B0aW9ucy50c2NvbmZpZyxcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgLi4ub3B0aW9ucy50c2NvbmZpZz8uY29tcGlsZXJPcHRpb25zLFxuICAgICAgICAgIGlzb2xhdGVkTW9kdWxlczogdHJ1ZSxcbiAgICAgICAgICBhbGxvd0ltcG9ydGluZ1RzRXh0ZW5zaW9uczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcbiAgICAgIG1pbk5vZGVWZXJzaW9uOiBvcHRpb25zLm1pbk5vZGVWZXJzaW9uIHx8ICcyMicsXG4gICAgICBkZXBzVXBncmFkZU9wdGlvbnM6IHtcbiAgICAgICAgd29ya2Zsb3dPcHRpb25zOiB7XG4gICAgICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IEdpdGh1YkNyZWRlbnRpYWxzLmZyb21QZXJzb25hbEFjY2Vzc1Rva2VuKHtcbiAgICAgICAgICAgIHNlY3JldDogJ0dJVEhVQl9UT0tFTicsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcmVhZG1lOiB7XG4gICAgICAgIGNvbnRlbnRzOiByZWFkbWVDb250ZW50cyhvcHRpb25zLm5hbWUsIG9wdGlvbnMuZTJlVGVzdGluZyA/PyB0cnVlLCBvcHRpb25zLnBhY2thZ2VNYW5hZ2VyKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cblxuICAgIC8vIENyZWF0ZSBzdGFuZGFyZCBwcm9qZWN0IGZpbGVzXG4gICAgY29uc3QgUFJJTUFSWV9BQ0NPVU5UID0gJzAxNTk1NTgxNzI2Myc7XG4gICAgY29uc3QgUFJJTUFSWV9SRUdJT04gPSAndXMtZWFzdC0xJztcblxuICAgIG5ldyBBcHBsaWNhdGlvbih0aGlzLCB7XG4gICAgICBnaXRodWJSZXBvc2l0b3J5OiBgbWFjZWRvbi10ZWNobm9sb2dpZXMvJHtvcHRpb25zLm5hbWV9YCxcbiAgICAgIGRldjoge1xuICAgICAgICAuLi5vcHRpb25zLmRldixcbiAgICAgIH0sXG4gICAgICBzdGFnaW5nOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuc3RhZ2luZyxcbiAgICAgIH0sXG4gICAgICBwcm9kOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuZGV2LFxuICAgICAgfSxcbiAgICAgIGFkZGl0aW9uYWxUYWdzOiBvcHRpb25zLmFkZGl0aW9uYWxUYWdzLFxuICAgICAgbjhuV29ya2Zsb3dzOiBvcHRpb25zLm44bldvcmtmbG93cyxcbiAgICAgIGFjdGlvblZlcnNpb25zOiBvcHRpb25zLmFjdGlvblZlcnNpb25zLFxuICAgICAgYXV0aG9yaXplck9iamVjdFZlcnNpb246IG9wdGlvbnMuYXV0aG9yaXplck9iamVjdFZlcnNpb24sXG4gICAgICBlMmVUZXN0aW5nOiBvcHRpb25zLmUyZVRlc3RpbmcsXG4gICAgfSk7XG5cbiAgICBuZXcgR2l0SHViUm9sZXNGaWxlKHRoaXMsIHtcbiAgICAgIGFjY291bnQ6IFBSSU1BUllfQUNDT1VOVCxcbiAgICAgIHByaW1hcnlSZWdpb246IFBSSU1BUllfUkVHSU9OLFxuICAgIH0pO1xuXG4gICAgbmV3IENvZGVPd25lcnNGaWxlKHRoaXMsIHtcbiAgICAgIGFkZGl0aW9uYWxPd25lcnM6IG9wdGlvbnMuYWRkaXRpb25hbENvZGVPd25lcnMsXG4gICAgfSk7XG5cbiAgICBuZXcgRGF0YURvZ0FzcGVjdEZpbGUodGhpcyk7XG5cbiAgICBuZXcgU29mdHdhcmVGYWN0b3J5RmlsZXModGhpcywge1xuICAgICAgcmVwb05hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGJhc2VCcmFuY2g6IG9wdGlvbnMuZGVmYXVsdFJlbGVhc2VCcmFuY2gsXG4gICAgICBhY3Rpb25WZXJzaW9uczogb3B0aW9ucy5hY3Rpb25WZXJzaW9ucyxcbiAgICAgIGF0dGVzdGF0aW9uRmlsZXM6IG9wdGlvbnMuYXR0ZXN0YXRpb25GaWxlcyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHZpdGVSZWFjdCA9IG5ldyBWaXRlUmVhY3RQcm9qZWN0KHtcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgICBwYXJlbnQ6IHRoaXMsXG4gICAgICBvdXRkaXI6ICd3ZWInLFxuICAgICAgZGVwczogb3B0aW9ucy53ZWJzaXRlRGVwcyxcbiAgICAgIGUyZVRlc3Rpbmc6IG9wdGlvbnMuZTJlVGVzdGluZyxcbiAgICB9KTtcbiAgICB2aXRlUmVhY3QuYWRkQ29uZmlnRmllbGQoJ3NvbWV0aGluZycsICdudW1iZXInKTtcbiAgICB2aXRlUmVhY3QuYWRkQ29uZmlnRmllbGQoJ3NvbWV0aGluZ0Vsc2UnLCAnc3RyaW5nJyk7XG5cbiAgICBjb25zdCBjb25jdXJyZW50bHkgPSAoLi4uYXJnczogc3RyaW5nW10pID0+IHtcbiAgICAgIHJldHVybiBgY29uY3VycmVudGx5ICR7YXJncy5tYXAoYSA9PiBgXCIke2F9XCJgKS5qb2luKCcgJyl9YDtcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRUYXNrKCdkZXYnLCB7XG4gICAgICBleGVjOiBjb25jdXJyZW50bHkoXG4gICAgICAgICdub2RlbW9uIC0td2F0Y2ggLi9zcmMvY29uc3RydWN0cy9oYW5kbGVyIC0td2F0Y2ggLi9zcmMvYXBpIC0td2F0Y2ggLi9sb2NhbC9kZXYudHMgLi9sb2NhbC9kZXYudHMnLFxuICAgICAgICB2aXRlUmVhY3QuZGV2Q29tbWFuZCxcbiAgICAgICksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZFRhc2soJ2NkazpkZXYnLCB7XG4gICAgICBleGVjOiAnY2RrIC1hIFwibnB4IHRzLW5vZGUgLVAgdHNjb25maWcuanNvbiAtLXByZWZlci10cy1leHRzIHNyYy9Mb2NhbERldkFwcC50c1wiJyxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRUYXNrKCdjZGs6ZGV2OmhvdHN3YXAnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0RlcGxveXMgeW91ciBwZXJzb25hbCBkZXYgc3RhY2sgKHNyYy9Mb2NhbERldkFwcC50cykgd2l0aCBob3Rzd2FwLWZhbGxiYWNrJyxcbiAgICAgIGV4ZWM6ICdjZGsgLWEgXCJucHggdHMtbm9kZSAtUCB0c2NvbmZpZy5qc29uIC0tcHJlZmVyLXRzLWV4dHMgc3JjL0xvY2FsRGV2QXBwLnRzXCIgZGVwbG95IC0taG90c3dhcC1mYWxsYmFjaycsXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIHByb2plbidzIEF3c0Nka1R5cGVTY3JpcHRBcHAgZGVmYXVsdCBgd2F0Y2hgIHRhc2sgdXNlcyBiYXJlIGAtLWhvdHN3YXBgLFxuICAgIC8vIHdoaWNoIHNpbGVudGx5IGlnbm9yZXMgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2VzIChlLmcuIHRoZSBNaWdyYXRpb25zXG4gICAgLy8gY3VzdG9tIHJlc291cmNlKSBpbnN0ZWFkIG9mIGZhbGxpbmcgYmFjayB0byBhIGZ1bGwgZGVwbG95bWVudC5cbiAgICBjb25zdCB3YXRjaCA9IHRoaXMudGFza3MudHJ5RmluZCgnd2F0Y2gnKTtcbiAgICBpZiAod2F0Y2gpIHtcbiAgICAgIHdhdGNoLnJlc2V0KCk7XG4gICAgICB3YXRjaC5kZXNjcmlwdGlvbiA9ICdXYXRjaGVzIGNoYW5nZXMgaW4geW91ciBzb3VyY2UgY29kZSBhbmQgcmVidWlsZHMgYW5kIGRlcGxveXMgdG8gdGhlIGN1cnJlbnQgYWNjb3VudCc7XG4gICAgICB3YXRjaC5leGVjKCdjZGsgZGVwbG95IC0taG90c3dhcC1mYWxsYmFjaycpO1xuICAgICAgd2F0Y2guZXhlYygnY2RrIHdhdGNoJyk7XG4gICAgfVxuXG4gIH1cbn1cbiJdfQ==
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmF0bWFuUHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9CYXRtYW5Qcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw4Q0FBb0Y7QUFDcEYsOENBQXNEO0FBQ3RELCtDQUEwRTtBQUMxRSxxREFBa0Q7QUFDbEQsMkRBQXdEO0FBQ3hELHVEQUFvRDtBQUNwRCxpRUFBOEQ7QUFDOUQsbUNBQXlDO0FBQ3pDLHlEQUFzRDtBQTZFdEQsTUFBYSxhQUFjLFNBQVEsNEJBQW1COztJQUNwRCxZQUFZLE9BQTZCO1FBQ3ZDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLFNBQVM7WUFDM0Msb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixJQUFJLE1BQU07WUFDNUQsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLElBQUksRUFBRTtnQkFDSixtQkFBbUI7Z0JBQ25CLGdCQUFnQjtnQkFDaEIsV0FBVztnQkFDWCxJQUFJO2dCQUNKLHFCQUFxQjtnQkFDckIsMkJBQTJCO2dCQUMzQiwwQkFBMEI7Z0JBQzFCLG1DQUFtQztnQkFDbkMsY0FBYztnQkFDZCxpQ0FBaUM7Z0JBQ2pDLFNBQVM7Z0JBQ1QsaUJBQWlCO2dCQUNqQixHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRTthQUN0QjtZQUNELE9BQU8sRUFBRTtnQkFDUCxxQkFBcUI7Z0JBQ3JCLFNBQVM7Z0JBQ1QsY0FBYztnQkFDZCxxQ0FBcUM7Z0JBQ3JDLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFO2FBQ3pCO1lBQ0QsU0FBUyxFQUFFO2dCQUNULG1EQUFtRDtnQkFDbkQsY0FBYztnQkFDZCxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRTthQUMzQjtZQUNELFFBQVEsRUFBRTtnQkFDUixHQUFH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QUM3RCxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUNsQixJQUFJLEVBQUUsWUFBWSxDQUNoQixrR0FBa0csRUFDbEcsU0FBUyxDQUFDLFVBQVUsQ0FDckI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN0QixJQUFJLEVBQUUsMkVBQTJFO1lBQ2pGLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7WUFDOUIsV0FBVyxFQUFFLDRFQUE0RTtZQUN6RixJQUFJLEVBQUUscUdBQXFHO1lBQzNHLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUVILDJFQUEyRTtRQUMzRSx1RUFBdUU7UUFDdkUsaUVBQWlFO1FBQ2pFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxLQUFLLENBQUMsV0FBVyxHQUFHLHFGQUFxRixDQUFDO1lBQzFHLEtBQUssQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQztZQUM1QyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFFSCxDQUFDOztBQS9JSCxzQ0FnSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwLCBBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IEdpdGh1YkNyZWRlbnRpYWxzIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWInO1xuaW1wb3J0IHsgQXBwbGljYXRpb24sIEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWcgfSBmcm9tICcuL0FwcGxpY2F0aW9uJztcbmltcG9ydCB7IENvZGVPd25lcnNGaWxlIH0gZnJvbSAnLi9Db2RlT3duZXJzRmlsZSc7XG5pbXBvcnQgeyBEYXRhRG9nQXNwZWN0RmlsZSB9IGZyb20gJy4vRGF0YURvZ0FzcGVjdEZpbGUnO1xuaW1wb3J0IHsgR2l0SHViUm9sZXNGaWxlIH0gZnJvbSAnLi9HaXRIdWJSb2xlc0ZpbGUnO1xuaW1wb3J0IHsgU29mdHdhcmVGYWN0b3J5RmlsZXMgfSBmcm9tICcuL1NvZnR3YXJlRmFjdG9yeUZpbGVzJztcbmltcG9ydCB7IHJlYWRtZUNvbnRlbnRzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBWaXRlUmVhY3RQcm9qZWN0IH0gZnJvbSAnLi9WaXRlUmVhY3RQcm9qZWN0JztcbmltcG9ydCB7IFdvcmtmbG93QWN0aW9uVmVyc2lvbnMgfSBmcm9tICcuL1dvcmtmbG93QWN0aW9uVmVyc2lvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhdG1hblByb2plY3RPcHRpb25zIGV4dGVuZHMgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBEZXZlbG9wbWVudCBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXY6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIERldmVsb3BtZW50IGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YWdpbmc6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIFByb2R1Y3Rpb24gZW52aXJvbm1lbnQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZDogQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCB0YWdzIHRvIGFwcGx5IHRvIGFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxUYWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjb2RlIG93bmVycyB0byBhZGQgdG8gdGhlIENPREVPV05FUlMgZmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbENvZGVPd25lcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2Vic2l0ZSBkZXBlbmRlbmNpZXNcbiAgICovXG4gIHJlYWRvbmx5IHdlYnNpdGVEZXBzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSB0aGUgZ2VuZXJhdGVkIEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93cy5cbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvblZlcnNpb25zPzogV29ya2Zsb3dBY3Rpb25WZXJzaW9ucztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBwaW5uZWQgUzMgb2JqZWN0IHZlcnNpb24gb2YgdGhlIGNsZXJrLWF1dGhvcml6ZXIgTGFtYmRhIGRlcGxveW1lbnQgcGFja2FnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBwaW5uZWQgaW4gQXBpQ29uc3RydWN0RmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXplck9iamVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGdlbmVyYXRlZCBgd2ViYCBhcHAgYW5kIGl0cyBgUHJEZXBsb3lXb3JrZmxvd2AgQ0kgc3RlcCBpbmNsdWRlXG4gICAqIFBsYXl3cmlnaHQgZTJlIHRlc3Rpbmcgc3VwcG9ydC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZTJlVGVzdGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEV4dHJhIGZpbGVzIHRoYXQgdGhlIFBSIGF0dGVzdGF0aW9uIG1hbmlmZXN0IGFsc28gaGFzaGVzLCBzdWNoIGFzIHRoZVxuICAgKiBwcm9qZWN0J3Mgb3duIHZlcmlmaWNhdGlvbiBjaGVja3MuIEVhY2ggZW50cnkgaXMgYW4gZXhhY3QgZmlsZSBwYXRoXG4gICAqIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHJvb3QsIGluIG5vcm1hbGl6ZWQgUE9TSVggZm9ybSwgdXNpbmcgb25seVxuICAgKiBsZXR0ZXJzLCBkaWdpdHMgYW5kIGAuX0ArLWAsIHdpdGggbm8gYC5gIG9yIGAuLmAgc2VnbWVudDsgc3ludGggZmFpbHNcbiAgICogb24gYW55IG90aGVyIGVudHJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG9ubHkgdGhlIGRlZmF1bHQgZmlsZXNcbiAgICovXG4gIHJlYWRvbmx5IGF0dGVzdGF0aW9uRmlsZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSBwci1hdXRvLW1lcmdlIHdvcmtmbG93LCB3aGljaCBhcm1zIHNxdWFzaCBhdXRvLW1lcmdlIG9uIHJlYWR5XG4gICAqIHB1bGwgcmVxdWVzdHMgaW50byB0aGUgZGVmYXVsdCBicmFuY2ggd2l0aCBhIEdpdEh1YiBBcHAgdG9rZW4uIFJlcXVpcmVzIHRoZVxuICAgKiBgQVVUT19NRVJHRV9BUFBfQ0xJRU5UX0lEYCB2YXJpYWJsZSBhbmQgdGhlXG4gICAqIGBBVVRPX01FUkdFX0FQUF9QUklWQVRFX0tFWWAgc2VjcmV0IGluIGFuIGBhdXRvLW1lcmdlYCBlbnZpcm9ubWVudDsgc2VlIHRoZSBSRUFETUUgc2VjdGlvblxuICAgKiBcIkF1dG8tbWVyZ2luZyBwdWxsIHJlcXVlc3RzIHdpdGggYSBHaXRIdWIgQXBwXCIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwckF1dG9NZXJnZT86IGJvb2xlYW47XG59XG5cblxuZXhwb3J0IGNsYXNzIEJhdG1hblByb2plY3QgZXh0ZW5kcyBBd3NDZGtUeXBlU2NyaXB0QXBwIHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQmF0bWFuUHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgY2RrVmVyc2lvbjogb3B0aW9ucy5jZGtWZXJzaW9uIHx8ICcyLjIyNC4wJyxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiBvcHRpb25zLmRlZmF1bHRSZWxlYXNlQnJhbmNoIHx8ICdtYWluJyxcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgICBidWlsZFdvcmtmbG93OiBmYWxzZSxcbiAgICAgIGRlcHM6IFtcbiAgICAgICAgJ0B0eXBlcy9hd3MtbGFtYmRhJyxcbiAgICAgICAgJ0B0eXBlcy9leHByZXNzJyxcbiAgICAgICAgJ0B0eXBlcy9wZycsXG4gICAgICAgICdwZycsXG4gICAgICAgICdAYXdzLXNkay9yZHMtc2lnbmVyJyxcbiAgICAgICAgJ2RhdGFkb2ctY2RrLWNvbnN0cnVjdHMtdjInLFxuICAgICAgICAnQGNka2xhYnMvYXdzLWxhbWJkYS1ydXN0JyxcbiAgICAgICAgJ0Bhd3MtbGFtYmRhLXBvd2VydG9vbHMvcGFyYW1ldGVycycsXG4gICAgICAgICdqc29ud2VidG9rZW4nLFxuICAgICAgICAnQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlcicsXG4gICAgICAgICdleHByZXNzJyxcbiAgICAgICAgJ3NlcnZlcmxlc3MtaHR0cCcsXG4gICAgICAgIC4uLm9wdGlvbnMuZGVwcyB8fCBbXSxcbiAgICAgIF0sXG4gICAgICBkZXZEZXBzOiBbXG4gICAgICAgICdAdHlwZXMvanNvbndlYnRva2VuJyxcbiAgICAgICAgJ25vZGVtb24nLFxuICAgICAgICAnY29uY3VycmVudGx5JyxcbiAgICAgICAgJ0BtYWNlZG9uLXRlY2hub2xvZ2llcy9iYXRtYW5AXjEuMC4wJyxcbiAgICAgICAgLi4ub3B0aW9ucy5kZXZEZXBzIHx8IFtdLFxuICAgICAgXSxcbiAgICAgIGdpdGlnbm9yZTogW1xuICAgICAgICAnc3JjL2NvbnN0cnVjdHMvaGFuZGxlci9jbGVyay1hdXRob3JpemVyL3RhcmdldC8qKicsXG4gICAgICAgICcqKi8uRFNfU3RvcmUnLFxuICAgICAgICAuLi5vcHRpb25zLmdpdGlnbm9yZSB8fCBbXSxcbiAgICAgIF0sXG4gICAgICB0c2NvbmZpZzoge1xuICAgICAgICAuLi5vcHRpb25zLnRzY29uZmlnLFxuICAgICAgICBjb21waWxlck9wdGlvbnM6IHtcbiAgICAgICAgICAuLi5vcHRpb25zLnRzY29uZmlnPy5jb21waWxlck9wdGlvbnMsXG4gICAgICAgICAgaXNvbGF0ZWRNb2R1bGVzOiB0cnVlLFxuICAgICAgICAgIGFsbG93SW1wb3J0aW5nVHNFeHRlbnNpb25zOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgbWluTm9kZVZlcnNpb246IG9wdGlvbnMubWluTm9kZVZlcnNpb24gfHwgJzIyJyxcbiAgICAgIGRlcHNVcGdyYWRlT3B0aW9uczoge1xuICAgICAgICB3b3JrZmxvd09wdGlvbnM6IHtcbiAgICAgICAgICBwcm9qZW5DcmVkZW50aWFsczogR2l0aHViQ3JlZGVudGlhbHMuZnJvbVBlcnNvbmFsQWNjZXNzVG9rZW4oe1xuICAgICAgICAgICAgc2VjcmV0OiAnR0lUSFVCX1RPS0VOJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICByZWFkbWU6IHtcbiAgICAgICAgY29udGVudHM6IHJlYWRtZUNvbnRlbnRzKG9wdGlvbnMubmFtZSwgb3B0aW9ucy5lMmVUZXN0aW5nID8/IHRydWUsIG9wdGlvbnMucGFja2FnZU1hbmFnZXIsIG9wdGlvbnMucHJBdXRvTWVyZ2UgPz8gZmFsc2UpLFxuICAgICAgfSxcbiAgICB9KTtcblxuXG4gICAgLy8gQ3JlYXRlIHN0YW5kYXJkIHByb2plY3QgZmlsZXNcbiAgICBjb25zdCBQUklNQVJZX0FDQ09VTlQgPSAnMDE1OTU1ODE3MjYzJztcbiAgICBjb25zdCBQUklNQVJZX1JFR0lPTiA9ICd1cy1lYXN0LTEnO1xuXG4gICAgbmV3IEFwcGxpY2F0aW9uKHRoaXMsIHtcbiAgICAgIGdpdGh1YlJlcG9zaXRvcnk6IGBtYWNlZG9uLXRlY2hub2xvZ2llcy8ke29wdGlvbnMubmFtZX1gLFxuICAgICAgZGV2OiB7XG4gICAgICAgIC4uLm9wdGlvbnMuZGV2LFxuICAgICAgfSxcbiAgICAgIHN0YWdpbmc6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5zdGFnaW5nLFxuICAgICAgfSxcbiAgICAgIHByb2Q6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5kZXYsXG4gICAgICB9LFxuICAgICAgYWRkaXRpb25hbFRhZ3M6IG9wdGlvbnMuYWRkaXRpb25hbFRhZ3MsXG4gICAgICBhY3Rpb25WZXJzaW9uczogb3B0aW9ucy5hY3Rpb25WZXJzaW9ucyxcbiAgICAgIGF1dGhvcml6ZXJPYmplY3RWZXJzaW9uOiBvcHRpb25zLmF1dGhvcml6ZXJPYmplY3RWZXJzaW9uLFxuICAgICAgZTJlVGVzdGluZzogb3B0aW9ucy5lMmVUZXN0aW5nLFxuICAgICAgcHJBdXRvTWVyZ2U6IG9wdGlvbnMucHJBdXRvTWVyZ2UsXG4gICAgfSk7XG5cbiAgICBuZXcgR2l0SHViUm9sZXNGaWxlKHRoaXMsIHtcbiAgICAgIGFjY291bnQ6IFBSSU1BUllfQUNDT1VOVCxcbiAgICAgIHByaW1hcnlSZWdpb246IFBSSU1BUllfUkVHSU9OLFxuICAgIH0pO1xuXG4gICAgbmV3IENvZGVPd25lcnNGaWxlKHRoaXMsIHtcbiAgICAgIGFkZGl0aW9uYWxPd25lcnM6IG9wdGlvbnMuYWRkaXRpb25hbENvZGVPd25lcnMsXG4gICAgfSk7XG5cbiAgICBuZXcgRGF0YURvZ0FzcGVjdEZpbGUodGhpcyk7XG5cbiAgICBuZXcgU29mdHdhcmVGYWN0b3J5RmlsZXModGhpcywge1xuICAgICAgcmVwb05hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGJhc2VCcmFuY2g6IG9wdGlvbnMuZGVmYXVsdFJlbGVhc2VCcmFuY2gsXG4gICAgICBhY3Rpb25WZXJzaW9uczogb3B0aW9ucy5hY3Rpb25WZXJzaW9ucyxcbiAgICAgIGF0dGVzdGF0aW9uRmlsZXM6IG9wdGlvbnMuYXR0ZXN0YXRpb25GaWxlcyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHZpdGVSZWFjdCA9IG5ldyBWaXRlUmVhY3RQcm9qZWN0KHtcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgICBwYXJlbnQ6IHRoaXMsXG4gICAgICBvdXRkaXI6ICd3ZWInLFxuICAgICAgZGVwczogb3B0aW9ucy53ZWJzaXRlRGVwcyxcbiAgICAgIGUyZVRlc3Rpbmc6IG9wdGlvbnMuZTJlVGVzdGluZyxcbiAgICB9KTtcbiAgICB2aXRlUmVhY3QuYWRkQ29uZmlnRmllbGQoJ3NvbWV0aGluZycsICdudW1iZXInKTtcbiAgICB2aXRlUmVhY3QuYWRkQ29uZmlnRmllbGQoJ3NvbWV0aGluZ0Vsc2UnLCAnc3RyaW5nJyk7XG5cbiAgICBjb25zdCBjb25jdXJyZW50bHkgPSAoLi4uYXJnczogc3RyaW5nW10pID0+IHtcbiAgICAgIHJldHVybiBgY29uY3VycmVudGx5ICR7YXJncy5tYXAoYSA9PiBgXCIke2F9XCJgKS5qb2luKCcgJyl9YDtcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRUYXNrKCdkZXYnLCB7XG4gICAgICBleGVjOiBjb25jdXJyZW50bHkoXG4gICAgICAgICdub2RlbW9uIC0td2F0Y2ggLi9zcmMvY29uc3RydWN0cy9oYW5kbGVyIC0td2F0Y2ggLi9zcmMvYXBpIC0td2F0Y2ggLi9sb2NhbC9kZXYudHMgLi9sb2NhbC9kZXYudHMnLFxuICAgICAgICB2aXRlUmVhY3QuZGV2Q29tbWFuZCxcbiAgICAgICksXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZFRhc2soJ2NkazpkZXYnLCB7XG4gICAgICBleGVjOiAnY2RrIC1hIFwibnB4IHRzLW5vZGUgLVAgdHNjb25maWcuanNvbiAtLXByZWZlci10cy1leHRzIHNyYy9Mb2NhbERldkFwcC50c1wiJyxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRUYXNrKCdjZGs6ZGV2OmhvdHN3YXAnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0RlcGxveXMgeW91ciBwZXJzb25hbCBkZXYgc3RhY2sgKHNyYy9Mb2NhbERldkFwcC50cykgd2l0aCBob3Rzd2FwLWZhbGxiYWNrJyxcbiAgICAgIGV4ZWM6ICdjZGsgLWEgXCJucHggdHMtbm9kZSAtUCB0c2NvbmZpZy5qc29uIC0tcHJlZmVyLXRzLWV4dHMgc3JjL0xvY2FsRGV2QXBwLnRzXCIgZGVwbG95IC0taG90c3dhcC1mYWxsYmFjaycsXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIHByb2plbidzIEF3c0Nka1R5cGVTY3JpcHRBcHAgZGVmYXVsdCBgd2F0Y2hgIHRhc2sgdXNlcyBiYXJlIGAtLWhvdHN3YXBgLFxuICAgIC8vIHdoaWNoIHNpbGVudGx5IGlnbm9yZXMgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2VzIChlLmcuIHRoZSBNaWdyYXRpb25zXG4gICAgLy8gY3VzdG9tIHJlc291cmNlKSBpbnN0ZWFkIG9mIGZhbGxpbmcgYmFjayB0byBhIGZ1bGwgZGVwbG95bWVudC5cbiAgICBjb25zdCB3YXRjaCA9IHRoaXMudGFza3MudHJ5RmluZCgnd2F0Y2gnKTtcbiAgICBpZiAod2F0Y2gpIHtcbiAgICAgIHdhdGNoLnJlc2V0KCk7XG4gICAgICB3YXRjaC5kZXNjcmlwdGlvbiA9ICdXYXRjaGVzIGNoYW5nZXMgaW4geW91ciBzb3VyY2UgY29kZSBhbmQgcmVidWlsZHMgYW5kIGRlcGxveXMgdG8gdGhlIGN1cnJlbnQgYWNjb3VudCc7XG4gICAgICB3YXRjaC5leGVjKCdjZGsgZGVwbG95IC0taG90c3dhcC1mYWxsYmFjaycpO1xuICAgICAgd2F0Y2guZXhlYygnY2RrIHdhdGNoJyk7XG4gICAgfVxuXG4gIH1cbn1cbiJdfQ==
@@ -12,12 +12,6 @@ export interface ApplicationOptions {
12
12
  readonly additionalTags?: {
13
13
  [key: string]: string;
14
14
  };
15
- /**
16
- * If true, creates WorkflowProvider files for each n8n workflow file found in src/workflows/*.json
17
- *
18
- * @default true
19
- */
20
- readonly n8nWorkflows?: boolean;
21
15
  /**
22
16
  * Overrides for the pinned action versions used by the generated GitHub Actions workflows.
23
17
  */
@@ -33,6 +27,15 @@ export interface ApplicationOptions {
33
27
  * @default true
34
28
  */
35
29
  readonly e2eTesting?: boolean;
30
+ /**
31
+ * Generates the pr-auto-merge workflow, which arms squash auto-merge on ready
32
+ * pull requests into the default branch with a GitHub App token. Requires the
33
+ * `AUTO_MERGE_APP_CLIENT_ID` variable and the
34
+ * `AUTO_MERGE_APP_PRIVATE_KEY` secret in an `auto-merge` environment; see the README section
35
+ * "Auto-merging pull requests with a GitHub App".
36
+ * @default false
37
+ */
38
+ readonly prAutoMerge?: boolean;
36
39
  }
37
40
  /**
38
41
  * Application construct that creates all standard project files