@macedon-technologies/batman 1.28.0 → 1.30.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/API.md CHANGED
@@ -4391,226 +4391,6 @@ Maximum line width (set to 0 to disable folding).
4391
4391
  ---
4392
4392
 
4393
4393
 
4394
- ### WorkflowAutoDiscover <a name="WorkflowAutoDiscover" id="@macedon-technologies/batman.WorkflowAutoDiscover"></a>
4395
-
4396
- #### Initializers <a name="Initializers" id="@macedon-technologies/batman.WorkflowAutoDiscover.Initializer"></a>
4397
-
4398
- ```typescript
4399
- import { WorkflowAutoDiscover } from '@macedon-technologies/batman'
4400
-
4401
- new WorkflowAutoDiscover(project: AwsCdkTypeScriptApp)
4402
- ```
4403
-
4404
- | **Name** | **Type** | **Description** |
4405
- | --- | --- | --- |
4406
- | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.Initializer.parameter.project">project</a></code> | <code>projen.awscdk.AwsCdkTypeScriptApp</code> | *No description.* |
4407
-
4408
- ---
4409
-
4410
- ##### `project`<sup>Required</sup> <a name="project" id="@macedon-technologies/batman.WorkflowAutoDiscover.Initializer.parameter.project"></a>
4411
-
4412
- - *Type:* projen.awscdk.AwsCdkTypeScriptApp
4413
-
4414
- ---
4415
-
4416
- #### Methods <a name="Methods" id="Methods"></a>
4417
-
4418
- | **Name** | **Description** |
4419
- | --- | --- |
4420
- | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.toString">toString</a></code> | Returns a string representation of this construct. |
4421
- | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.with">with</a></code> | Applies one or more mixins to this construct. |
4422
- | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.postProjectCreation">postProjectCreation</a></code> | Called once, right after `postSynthesize()`, only when the project is created for the first time. |
4423
- | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
4424
- | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
4425
- | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.projectCreation">projectCreation</a></code> | Called once, right after `synthesize()`, only when the project is created for the first time. |
4426
- | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
4427
-
4428
- ---
4429
-
4430
- ##### `toString` <a name="toString" id="@macedon-technologies/batman.WorkflowAutoDiscover.toString"></a>
4431
-
4432
- ```typescript
4433
- public toString(): string
4434
- ```
4435
-
4436
- Returns a string representation of this construct.
4437
-
4438
- ##### `with` <a name="with" id="@macedon-technologies/batman.WorkflowAutoDiscover.with"></a>
4439
-
4440
- ```typescript
4441
- public with(mixins: ...IMixin[]): IConstruct
4442
- ```
4443
-
4444
- Applies one or more mixins to this construct.
4445
-
4446
- Mixins are applied in order. The list of constructs is captured at the
4447
- start of the call, so constructs added by a mixin will not be visited.
4448
- Use multiple `with()` calls if subsequent mixins should apply to added
4449
- constructs.
4450
-
4451
- ###### `mixins`<sup>Required</sup> <a name="mixins" id="@macedon-technologies/batman.WorkflowAutoDiscover.with.parameter.mixins"></a>
4452
-
4453
- - *Type:* ...constructs.IMixin[]
4454
-
4455
- The mixins to apply.
4456
-
4457
- ---
4458
-
4459
- ##### `postProjectCreation` <a name="postProjectCreation" id="@macedon-technologies/batman.WorkflowAutoDiscover.postProjectCreation"></a>
4460
-
4461
- ```typescript
4462
- public postProjectCreation(initProject: InitProject): void
4463
- ```
4464
-
4465
- Called once, right after `postSynthesize()`, only when the project is created for the first time.
4466
-
4467
- It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
4468
- It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
4469
- Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
4470
- feedback on their new project. Order across components is not guaranteed.
4471
-
4472
- ###### `initProject`<sup>Required</sup> <a name="initProject" id="@macedon-technologies/batman.WorkflowAutoDiscover.postProjectCreation.parameter.initProject"></a>
4473
-
4474
- - *Type:* projen.InitProject
4475
-
4476
- Details about how the project was created, e.g. its type and the original CLI args.
4477
-
4478
- ---
4479
-
4480
- ##### `postSynthesize` <a name="postSynthesize" id="@macedon-technologies/batman.WorkflowAutoDiscover.postSynthesize"></a>
4481
-
4482
- ```typescript
4483
- public postSynthesize(): void
4484
- ```
4485
-
4486
- Called after synthesis.
4487
-
4488
- Order is *not* guaranteed.
4489
-
4490
- ##### `preSynthesize` <a name="preSynthesize" id="@macedon-technologies/batman.WorkflowAutoDiscover.preSynthesize"></a>
4491
-
4492
- ```typescript
4493
- public preSynthesize(): void
4494
- ```
4495
-
4496
- Called before synthesis.
4497
-
4498
- ##### `projectCreation` <a name="projectCreation" id="@macedon-technologies/batman.WorkflowAutoDiscover.projectCreation"></a>
4499
-
4500
- ```typescript
4501
- public projectCreation(initProject: InitProject): void
4502
- ```
4503
-
4504
- Called once, right after `synthesize()`, only when the project is created for the first time.
4505
-
4506
- It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
4507
- Use it for deterministic, one-off file generation. Order across components is not guaranteed.
4508
-
4509
- ###### `initProject`<sup>Required</sup> <a name="initProject" id="@macedon-technologies/batman.WorkflowAutoDiscover.projectCreation.parameter.initProject"></a>
4510
-
4511
- - *Type:* projen.InitProject
4512
-
4513
- Details about how the project was created, e.g. its type and the original CLI args.
4514
-
4515
- ---
4516
-
4517
- ##### `synthesize` <a name="synthesize" id="@macedon-technologies/batman.WorkflowAutoDiscover.synthesize"></a>
4518
-
4519
- ```typescript
4520
- public synthesize(): void
4521
- ```
4522
-
4523
- Synthesizes files to the project output directory.
4524
-
4525
- #### Static Functions <a name="Static Functions" id="Static Functions"></a>
4526
-
4527
- | **Name** | **Description** |
4528
- | --- | --- |
4529
- | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
4530
- | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.isComponent">isComponent</a></code> | Test whether the given construct is a component. |
4531
-
4532
- ---
4533
-
4534
- ##### `isConstruct` <a name="isConstruct" id="@macedon-technologies/batman.WorkflowAutoDiscover.isConstruct"></a>
4535
-
4536
- ```typescript
4537
- import { WorkflowAutoDiscover } from '@macedon-technologies/batman'
4538
-
4539
- WorkflowAutoDiscover.isConstruct(x: any)
4540
- ```
4541
-
4542
- Checks if `x` is a construct.
4543
-
4544
- Use this method instead of `instanceof` to properly detect `Construct`
4545
- instances, even when the construct library is symlinked.
4546
-
4547
- Explanation: in JavaScript, multiple copies of the `constructs` library on
4548
- disk are seen as independent, completely different libraries. As a
4549
- consequence, the class `Construct` in each copy of the `constructs` library
4550
- is seen as a different class, and an instance of one class will not test as
4551
- `instanceof` the other class. `npm install` will not create installations
4552
- like this, but users may manually symlink construct libraries together or
4553
- use a monorepo tool: in those cases, multiple copies of the `constructs`
4554
- library can be accidentally installed, and `instanceof` will behave
4555
- unpredictably. It is safest to avoid using `instanceof`, and using
4556
- this type-testing method instead.
4557
-
4558
- ###### `x`<sup>Required</sup> <a name="x" id="@macedon-technologies/batman.WorkflowAutoDiscover.isConstruct.parameter.x"></a>
4559
-
4560
- - *Type:* any
4561
-
4562
- Any object.
4563
-
4564
- ---
4565
-
4566
- ##### `isComponent` <a name="isComponent" id="@macedon-technologies/batman.WorkflowAutoDiscover.isComponent"></a>
4567
-
4568
- ```typescript
4569
- import { WorkflowAutoDiscover } from '@macedon-technologies/batman'
4570
-
4571
- WorkflowAutoDiscover.isComponent(x: any)
4572
- ```
4573
-
4574
- Test whether the given construct is a component.
4575
-
4576
- ###### `x`<sup>Required</sup> <a name="x" id="@macedon-technologies/batman.WorkflowAutoDiscover.isComponent.parameter.x"></a>
4577
-
4578
- - *Type:* any
4579
-
4580
- ---
4581
-
4582
- #### Properties <a name="Properties" id="Properties"></a>
4583
-
4584
- | **Name** | **Type** | **Description** |
4585
- | --- | --- | --- |
4586
- | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
4587
- | <code><a href="#@macedon-technologies/batman.WorkflowAutoDiscover.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
4588
-
4589
- ---
4590
-
4591
- ##### `node`<sup>Required</sup> <a name="node" id="@macedon-technologies/batman.WorkflowAutoDiscover.property.node"></a>
4592
-
4593
- ```typescript
4594
- public readonly node: Node;
4595
- ```
4596
-
4597
- - *Type:* constructs.Node
4598
-
4599
- The tree node.
4600
-
4601
- ---
4602
-
4603
- ##### `project`<sup>Required</sup> <a name="project" id="@macedon-technologies/batman.WorkflowAutoDiscover.property.project"></a>
4604
-
4605
- ```typescript
4606
- public readonly project: Project;
4607
- ```
4608
-
4609
- - *Type:* projen.Project
4610
-
4611
- ---
4612
-
4613
-
4614
4394
  ## Structs <a name="Structs" id="Structs"></a>
4615
4395
 
4616
4396
  ### ApplicationEnvironmentConfig <a name="ApplicationEnvironmentConfig" id="@macedon-technologies/batman.ApplicationEnvironmentConfig"></a>
@@ -4633,7 +4413,6 @@ const applicationEnvironmentConfig: ApplicationEnvironmentConfig = { ... }
4633
4413
  | <code><a href="#@macedon-technologies/batman.ApplicationEnvironmentConfig.property.datadogSecretArn">datadogSecretArn</a></code> | <code>string</code> | *No description.* |
4634
4414
  | <code><a href="#@macedon-technologies/batman.ApplicationEnvironmentConfig.property.hostedZoneDomainName">hostedZoneDomainName</a></code> | <code>string</code> | *No description.* |
4635
4415
  | <code><a href="#@macedon-technologies/batman.ApplicationEnvironmentConfig.property.hostname">hostname</a></code> | <code>string</code> | *No description.* |
4636
- | <code><a href="#@macedon-technologies/batman.ApplicationEnvironmentConfig.property.n8nEndpoint">n8nEndpoint</a></code> | <code>string</code> | *No description.* |
4637
4416
  | <code><a href="#@macedon-technologies/batman.ApplicationEnvironmentConfig.property.region">region</a></code> | <code>string</code> | *No description.* |
4638
4417
  | <code><a href="#@macedon-technologies/batman.ApplicationEnvironmentConfig.property.additionalStackProps">additionalStackProps</a></code> | <code>{[ key: string ]: any}</code> | *No description.* |
4639
4418
  | <code><a href="#@macedon-technologies/batman.ApplicationEnvironmentConfig.property.githubActionRoleArn">githubActionRoleArn</a></code> | <code>string</code> | *No description.* |
@@ -4700,16 +4479,6 @@ public readonly hostname: string;
4700
4479
 
4701
4480
  ---
4702
4481
 
4703
- ##### `n8nEndpoint`<sup>Required</sup> <a name="n8nEndpoint" id="@macedon-technologies/batman.ApplicationEnvironmentConfig.property.n8nEndpoint"></a>
4704
-
4705
- ```typescript
4706
- public readonly n8nEndpoint: string;
4707
- ```
4708
-
4709
- - *Type:* string
4710
-
4711
- ---
4712
-
4713
4482
  ##### `region`<sup>Required</sup> <a name="region" id="@macedon-technologies/batman.ApplicationEnvironmentConfig.property.region"></a>
4714
4483
 
4715
4484
  ```typescript
@@ -4931,9 +4700,9 @@ const batmanProjectOptions: BatmanProjectOptions = { ... }
4931
4700
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.actionVersions">actionVersions</a></code> | <code><a href="#@macedon-technologies/batman.WorkflowActionVersions">WorkflowActionVersions</a></code> | Overrides for the pinned action versions used by the generated GitHub Actions workflows. |
4932
4701
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.additionalCodeOwners">additionalCodeOwners</a></code> | <code>string[]</code> | Additional code owners to add to the CODEOWNERS file. |
4933
4702
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.additionalTags">additionalTags</a></code> | <code>{[ key: string ]: string}</code> | Additional tags to apply to all stacks. |
4703
+ | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.attestationFiles">attestationFiles</a></code> | <code>string[]</code> | Extra files that the PR attestation manifest also hashes, such as the project's own verification checks. |
4934
4704
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.authorizerObjectVersion">authorizerObjectVersion</a></code> | <code>string</code> | Overrides the pinned S3 object version of the clerk-authorizer Lambda deployment package. |
4935
4705
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.e2eTesting">e2eTesting</a></code> | <code>boolean</code> | Whether the generated `web` app and its `PrDeployWorkflow` CI step include Playwright e2e testing support. |
4936
- | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.n8nWorkflows">n8nWorkflows</a></code> | <code>boolean</code> | Enable n8n workflow auto-discovery and WorkflowProvider generation. |
4937
4706
  | <code><a href="#@macedon-technologies/batman.BatmanProjectOptions.property.websiteDeps">websiteDeps</a></code> | <code>string[]</code> | Website dependencies. |
4938
4707
 
4939
4708
  ---
@@ -7511,6 +7280,24 @@ Additional tags to apply to all stacks.
7511
7280
 
7512
7281
  ---
7513
7282
 
7283
+ ##### `attestationFiles`<sup>Optional</sup> <a name="attestationFiles" id="@macedon-technologies/batman.BatmanProjectOptions.property.attestationFiles"></a>
7284
+
7285
+ ```typescript
7286
+ public readonly attestationFiles: string[];
7287
+ ```
7288
+
7289
+ - *Type:* string[]
7290
+ - *Default:* only the default files
7291
+
7292
+ Extra files that the PR attestation manifest also hashes, such as the project's own verification checks.
7293
+
7294
+ Each entry is an exact file path
7295
+ relative to the project root, in normalized POSIX form, using only
7296
+ letters, digits and `._@+-`, with no `.` or `..` segment; synth fails
7297
+ on any other entry.
7298
+
7299
+ ---
7300
+
7514
7301
  ##### `authorizerObjectVersion`<sup>Optional</sup> <a name="authorizerObjectVersion" id="@macedon-technologies/batman.BatmanProjectOptions.property.authorizerObjectVersion"></a>
7515
7302
 
7516
7303
  ```typescript
@@ -7537,18 +7324,6 @@ Whether the generated `web` app and its `PrDeployWorkflow` CI step include Playw
7537
7324
 
7538
7325
  ---
7539
7326
 
7540
- ##### `n8nWorkflows`<sup>Optional</sup> <a name="n8nWorkflows" id="@macedon-technologies/batman.BatmanProjectOptions.property.n8nWorkflows"></a>
7541
-
7542
- ```typescript
7543
- public readonly n8nWorkflows: boolean;
7544
- ```
7545
-
7546
- - *Type:* boolean
7547
-
7548
- Enable n8n workflow auto-discovery and WorkflowProvider generation.
7549
-
7550
- ---
7551
-
7552
7327
  ##### `websiteDeps`<sup>Optional</sup> <a name="websiteDeps" id="@macedon-technologies/batman.BatmanProjectOptions.property.websiteDeps"></a>
7553
7328
 
7554
7329
  ```typescript
@@ -7752,9 +7527,9 @@ const bootcampProjectOptions: BootcampProjectOptions = { ... }
7752
7527
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.actionVersions">actionVersions</a></code> | <code><a href="#@macedon-technologies/batman.WorkflowActionVersions">WorkflowActionVersions</a></code> | Overrides for the pinned action versions used by the generated GitHub Actions workflows. |
7753
7528
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.additionalCodeOwners">additionalCodeOwners</a></code> | <code>string[]</code> | Additional code owners to add to the CODEOWNERS file. |
7754
7529
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.additionalTags">additionalTags</a></code> | <code>{[ key: string ]: string}</code> | Additional tags to apply to all stacks. |
7530
+ | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.attestationFiles">attestationFiles</a></code> | <code>string[]</code> | Extra files that the PR attestation manifest also hashes, such as the project's own verification checks. |
7755
7531
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.authorizerObjectVersion">authorizerObjectVersion</a></code> | <code>string</code> | Overrides the pinned S3 object version of the clerk-authorizer Lambda deployment package. |
7756
7532
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.e2eTesting">e2eTesting</a></code> | <code>boolean</code> | Whether the generated `web` app and its `PrDeployWorkflow` CI step include Playwright e2e testing support. |
7757
- | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.n8nWorkflows">n8nWorkflows</a></code> | <code>boolean</code> | Enable n8n workflow auto-discovery and WorkflowProvider generation. |
7758
7533
  | <code><a href="#@macedon-technologies/batman.BootcampProjectOptions.property.websiteDeps">websiteDeps</a></code> | <code>string[]</code> | Website dependencies. |
7759
7534
 
7760
7535
  ---
@@ -10332,6 +10107,24 @@ Additional tags to apply to all stacks.
10332
10107
 
10333
10108
  ---
10334
10109
 
10110
+ ##### `attestationFiles`<sup>Optional</sup> <a name="attestationFiles" id="@macedon-technologies/batman.BootcampProjectOptions.property.attestationFiles"></a>
10111
+
10112
+ ```typescript
10113
+ public readonly attestationFiles: string[];
10114
+ ```
10115
+
10116
+ - *Type:* string[]
10117
+ - *Default:* only the default files
10118
+
10119
+ Extra files that the PR attestation manifest also hashes, such as the project's own verification checks.
10120
+
10121
+ Each entry is an exact file path
10122
+ relative to the project root, in normalized POSIX form, using only
10123
+ letters, digits and `._@+-`, with no `.` or `..` segment; synth fails
10124
+ on any other entry.
10125
+
10126
+ ---
10127
+
10335
10128
  ##### `authorizerObjectVersion`<sup>Optional</sup> <a name="authorizerObjectVersion" id="@macedon-technologies/batman.BootcampProjectOptions.property.authorizerObjectVersion"></a>
10336
10129
 
10337
10130
  ```typescript
@@ -10358,18 +10151,6 @@ Whether the generated `web` app and its `PrDeployWorkflow` CI step include Playw
10358
10151
 
10359
10152
  ---
10360
10153
 
10361
- ##### `n8nWorkflows`<sup>Optional</sup> <a name="n8nWorkflows" id="@macedon-technologies/batman.BootcampProjectOptions.property.n8nWorkflows"></a>
10362
-
10363
- ```typescript
10364
- public readonly n8nWorkflows: boolean;
10365
- ```
10366
-
10367
- - *Type:* boolean
10368
-
10369
- Enable n8n workflow auto-discovery and WorkflowProvider generation.
10370
-
10371
- ---
10372
-
10373
10154
  ##### `websiteDeps`<sup>Optional</sup> <a name="websiteDeps" id="@macedon-technologies/batman.BootcampProjectOptions.property.websiteDeps"></a>
10374
10155
 
10375
10156
  ```typescript
@@ -10430,7 +10211,6 @@ const environmentConfig: EnvironmentConfig = { ... }
10430
10211
  | <code><a href="#@macedon-technologies/batman.EnvironmentConfig.property.datadogSecretArn">datadogSecretArn</a></code> | <code>string</code> | *No description.* |
10431
10212
  | <code><a href="#@macedon-technologies/batman.EnvironmentConfig.property.hostedZoneDomainName">hostedZoneDomainName</a></code> | <code>string</code> | *No description.* |
10432
10213
  | <code><a href="#@macedon-technologies/batman.EnvironmentConfig.property.hostname">hostname</a></code> | <code>string</code> | *No description.* |
10433
- | <code><a href="#@macedon-technologies/batman.EnvironmentConfig.property.n8nEndpoint">n8nEndpoint</a></code> | <code>string</code> | *No description.* |
10434
10214
  | <code><a href="#@macedon-technologies/batman.EnvironmentConfig.property.region">region</a></code> | <code>string</code> | *No description.* |
10435
10215
  | <code><a href="#@macedon-technologies/batman.EnvironmentConfig.property.additionalStackProps">additionalStackProps</a></code> | <code>{[ key: string ]: any}</code> | *No description.* |
10436
10216
 
@@ -10496,16 +10276,6 @@ public readonly hostname: string;
10496
10276
 
10497
10277
  ---
10498
10278
 
10499
- ##### `n8nEndpoint`<sup>Required</sup> <a name="n8nEndpoint" id="@macedon-technologies/batman.EnvironmentConfig.property.n8nEndpoint"></a>
10500
-
10501
- ```typescript
10502
- public readonly n8nEndpoint: string;
10503
- ```
10504
-
10505
- - *Type:* string
10506
-
10507
- ---
10508
-
10509
10279
  ##### `region`<sup>Required</sup> <a name="region" id="@macedon-technologies/batman.EnvironmentConfig.property.region"></a>
10510
10280
 
10511
10281
  ```typescript
@@ -10616,6 +10386,7 @@ const softwareFactoryFilesOptions: SoftwareFactoryFilesOptions = { ... }
10616
10386
  | --- | --- | --- |
10617
10387
  | <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.repoName">repoName</a></code> | <code>string</code> | The bare repo name (e.g. `expense-tracker`), used to derive the factory's model names (`<repoName>-factory`, `<repoName>-issues`, `<repoName>-pr`, `<repoName>-shell*`) and vault name (`<repoName>-secrets`). |
10618
10388
  | <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.actionVersions">actionVersions</a></code> | <code><a href="#@macedon-technologies/batman.WorkflowActionVersions">WorkflowActionVersions</a></code> | Overrides for the pinned action versions used by `verify-attestation.yml`. |
10389
+ | <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.attestationFiles">attestationFiles</a></code> | <code>string[]</code> | Extra files that the PR attestation manifest also hashes, such as the project's own verification checks. |
10619
10390
  | <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.baseBranch">baseBranch</a></code> | <code>string</code> | The branch the factory opens pull requests against. |
10620
10391
  | <code><a href="#@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.githubOwner">githubOwner</a></code> | <code>string</code> | The GitHub org/user the repo lives in. |
10621
10392
 
@@ -10645,6 +10416,24 @@ Overrides for the pinned action versions used by `verify-attestation.yml`.
10645
10416
 
10646
10417
  ---
10647
10418
 
10419
+ ##### `attestationFiles`<sup>Optional</sup> <a name="attestationFiles" id="@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.attestationFiles"></a>
10420
+
10421
+ ```typescript
10422
+ public readonly attestationFiles: string[];
10423
+ ```
10424
+
10425
+ - *Type:* string[]
10426
+ - *Default:* only the default files
10427
+
10428
+ Extra files that the PR attestation manifest also hashes, such as the project's own verification checks.
10429
+
10430
+ Each entry is an exact file path
10431
+ relative to the project root, in normalized POSIX form, using only
10432
+ letters, digits and `._@+-`, with no `.` or `..` segment; synth fails
10433
+ on any other entry.
10434
+
10435
+ ---
10436
+
10648
10437
  ##### `baseBranch`<sup>Optional</sup> <a name="baseBranch" id="@macedon-technologies/batman.SoftwareFactoryFilesOptions.property.baseBranch"></a>
10649
10438
 
10650
10439
  ```typescript
package/README.md CHANGED
@@ -86,6 +86,52 @@ yarn deploy
86
86
  yarn test
87
87
  ```
88
88
 
89
+ ## Upgrading
90
+
91
+ ### The base stack no longer creates a VPC
92
+
93
+ `BaseApplicationStack` used to create a VPC with a NAT gateway and attach the API Lambda to it.
94
+ It now creates neither unless the stack props set `enableVpc: true`. A stack that upgrades
95
+ without it deletes its VPC and NAT gateway on the next deploy.
96
+
97
+ 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:
98
+
99
+ - your `ApplicationStack` uses `this.vpc` or overrides `createVpc()`; the override is not called otherwise;
100
+ - the Lambda reaches anything private, such as RDS or a VPC endpoint;
101
+ - another stack imports this stack's VPC outputs; CloudFormation refuses to delete them.
102
+
103
+ `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.
104
+
105
+ 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.
106
+
107
+ 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.
108
+
109
+ ### n8n support is removed
110
+
111
+ `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`.
112
+
113
+ A project that doesn't use n8n stops compiling until it also removes:
114
+
115
+ - `n8nEndpoint` from every `ApplicationStack` in `src/main.ts` and `src/LocalDevApp.ts`;
116
+ - the `n8nEndpoint` prop, the n8n JWT key secret and its `grantRead` from `src/constructs/Api.ts`;
117
+ - any `n8nEndpoint: this.props.n8nEndpoint` in a `createApi()` override;
118
+ - any generated `src/constructs/*Workflow.ts` files and `src/workflows/`, which import the now-deleted `WorkflowProvider`.
119
+
120
+ A project that uses n8n takes ownership of it:
121
+
122
+ 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:
123
+
124
+ ```bash
125
+ git checkout "$(git log -n1 --format=%H --diff-filter=AM -- src/constructs/WorkflowProvider.ts)" -- src/constructs/WorkflowProvider.ts
126
+ ```
127
+
128
+ 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.
129
+ 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()`:
130
+
131
+ ```typescript
132
+ this.api.lambdaFunction.addEnvironment('N8N_ENDPOINT', props.n8nEndpoint);
133
+ ```
134
+
89
135
  ## SoftwareFactoryFiles (standalone, non-Batman projects)
90
136
 
91
137
  `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-'));
@@ -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
  */