projen 0.37.2 → 0.38.1

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.
Files changed (108) hide show
  1. package/.jsii +670 -250
  2. package/API.md +53 -0
  3. package/lib/awscdk/auto-discover.d.ts +6 -0
  4. package/lib/awscdk/auto-discover.js +3 -2
  5. package/lib/awscdk/awscdk-app-ts.js +3 -2
  6. package/lib/awscdk/awscdk-construct.js +4 -3
  7. package/lib/awscdk/cdk-config.js +1 -1
  8. package/lib/awscdk/cdk-tasks.js +1 -1
  9. package/lib/awscdk/integration-test.d.ts +6 -0
  10. package/lib/awscdk/integration-test.js +5 -4
  11. package/lib/awscdk/java-app.js +1 -1
  12. package/lib/awscdk/lambda-function.js +2 -2
  13. package/lib/cdk/construct-lib.js +1 -1
  14. package/lib/cdk/jsii-docgen.js +1 -1
  15. package/lib/cdk/jsii-project.js +1 -1
  16. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  17. package/lib/cdk8s/cdk8s-construct.js +1 -1
  18. package/lib/cdktf/cdktf-construct.js +1 -1
  19. package/lib/component.js +1 -1
  20. package/lib/dependencies.js +1 -1
  21. package/lib/dev-env.js +1 -1
  22. package/lib/docker-compose.js +2 -2
  23. package/lib/file.js +1 -1
  24. package/lib/gitattributes.js +1 -1
  25. package/lib/github/auto-approve.d.ts +7 -0
  26. package/lib/github/auto-approve.js +4 -4
  27. package/lib/github/auto-merge.js +1 -1
  28. package/lib/github/dependabot.js +1 -1
  29. package/lib/github/github-project.js +1 -1
  30. package/lib/github/github.js +1 -1
  31. package/lib/github/mergify.js +1 -1
  32. package/lib/github/pr-template.js +1 -1
  33. package/lib/github/pull-request-lint.d.ts +7 -0
  34. package/lib/github/pull-request-lint.js +5 -5
  35. package/lib/github/stale.d.ts +7 -0
  36. package/lib/github/stale.js +4 -3
  37. package/lib/github/task-workflow.d.ts +7 -0
  38. package/lib/github/task-workflow.js +4 -5
  39. package/lib/github/workflows-model.d.ts +82 -2
  40. package/lib/github/workflows-model.js +1 -1
  41. package/lib/github/workflows.js +9 -3
  42. package/lib/gitpod.js +1 -1
  43. package/lib/ignore-file.js +1 -1
  44. package/lib/ini.js +1 -1
  45. package/lib/java/java-project.js +1 -1
  46. package/lib/java/junit.js +1 -1
  47. package/lib/java/maven-compile.js +1 -1
  48. package/lib/java/maven-packaging.js +1 -1
  49. package/lib/java/maven-sample.js +1 -1
  50. package/lib/java/pom.js +1 -1
  51. package/lib/java/projenrc.js +1 -1
  52. package/lib/javascript/bundler.js +1 -1
  53. package/lib/javascript/eslint.js +1 -1
  54. package/lib/javascript/jest.js +1 -1
  55. package/lib/javascript/node-package.js +1 -1
  56. package/lib/javascript/node-project.js +1 -1
  57. package/lib/javascript/npm-config.js +1 -1
  58. package/lib/javascript/projenrc.js +1 -1
  59. package/lib/javascript/typescript-config.js +1 -1
  60. package/lib/javascript/upgrade-dependencies.d.ts +7 -0
  61. package/lib/javascript/upgrade-dependencies.js +12 -11
  62. package/lib/json.js +1 -1
  63. package/lib/license.js +1 -1
  64. package/lib/logger.js +1 -1
  65. package/lib/makefile.js +1 -1
  66. package/lib/object-file.js +1 -1
  67. package/lib/project-build.js +1 -1
  68. package/lib/project.js +1 -1
  69. package/lib/projects.js +1 -1
  70. package/lib/projenrc-json.js +1 -1
  71. package/lib/python/pip.js +1 -1
  72. package/lib/python/poetry.js +2 -2
  73. package/lib/python/projenrc.js +1 -1
  74. package/lib/python/pytest.js +1 -1
  75. package/lib/python/python-project.js +1 -1
  76. package/lib/python/python-sample.js +1 -1
  77. package/lib/python/requirements-file.js +1 -1
  78. package/lib/python/setuppy.js +1 -1
  79. package/lib/python/setuptools.js +1 -1
  80. package/lib/python/venv.js +1 -1
  81. package/lib/readme.js +1 -1
  82. package/lib/release/publisher.d.ts +8 -0
  83. package/lib/release/publisher.js +5 -4
  84. package/lib/release/release-trigger.js +1 -1
  85. package/lib/release/release.d.ts +8 -0
  86. package/lib/release/release.js +6 -2
  87. package/lib/sample-file.js +2 -2
  88. package/lib/semver.js +1 -1
  89. package/lib/source-code.js +1 -1
  90. package/lib/task-runtime.js +1 -1
  91. package/lib/task.js +1 -1
  92. package/lib/tasks.js +1 -1
  93. package/lib/textfile.js +1 -1
  94. package/lib/toml.js +1 -1
  95. package/lib/typescript/projenrc.js +1 -1
  96. package/lib/typescript/typescript-typedoc.js +1 -1
  97. package/lib/typescript/typescript.js +3 -3
  98. package/lib/version.js +1 -1
  99. package/lib/vscode/devcontainer.js +1 -1
  100. package/lib/vscode/launch-config.js +1 -1
  101. package/lib/vscode/vscode.js +1 -1
  102. package/lib/web/next.js +3 -3
  103. package/lib/web/postcss.js +1 -1
  104. package/lib/web/react.js +4 -4
  105. package/lib/web/tailwind.js +1 -1
  106. package/lib/xmlfile.js +1 -1
  107. package/lib/yaml.js +1 -1
  108. package/package.json +1 -1
package/API.md CHANGED
@@ -2812,6 +2812,7 @@ new awscdk.AutoDiscover(project: Project, options: AutoDiscoverOptions)
2812
2812
  * **options** (<code>[awscdk.AutoDiscoverOptions](#projen-awscdk-autodiscoveroptions)</code>) *No description*
2813
2813
  * **srcdir** (<code>string</code>) Project source tree (relative to project output directory).
2814
2814
  * **testdir** (<code>string</code>) Test source tree.
2815
+ * **tsconfigPath** (<code>string</code>) Path to the tsconfig file to use for integration tests.
2815
2816
  * **lambdaOptions** (<code>[awscdk.LambdaFunctionCommonOptions](#projen-awscdk-lambdafunctioncommonoptions)</code>) Options for auto-discovery of AWS Lambda functions. __*Optional*__
2816
2817
 
2817
2818
 
@@ -2909,6 +2910,7 @@ new awscdk.AwsCdkConstructLibrary(options: AwsCdkConstructLibraryOptions)
2909
2910
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
2910
2911
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
2911
2912
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
2913
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
2912
2914
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
2913
2915
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
2914
2916
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -3220,6 +3222,7 @@ new awscdk.AwsCdkTypeScriptApp(options: AwsCdkTypeScriptAppOptions)
3220
3222
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
3221
3223
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
3222
3224
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
3225
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
3223
3226
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
3224
3227
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
3225
3228
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -3474,6 +3477,7 @@ new awscdk.ConstructLibraryAws(options: AwsCdkConstructLibraryOptions)
3474
3477
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
3475
3478
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
3476
3479
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
3480
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
3477
3481
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
3478
3482
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
3479
3483
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -3573,6 +3577,7 @@ new awscdk.IntegrationTest(project: Project, options: IntegrationTestOptions)
3573
3577
  * **options** (<code>[awscdk.IntegrationTestOptions](#projen-awscdk-integrationtestoptions)</code>) *No description*
3574
3578
  * **destroyAfterDeploy** (<code>boolean</code>) Destroy the test app after a successful deployment. __*Default*__: true
3575
3579
  * **entrypoint** (<code>string</code>) A path from the project root directory to a TypeScript file which contains the integration test app.
3580
+ * **tsconfigPath** (<code>string</code>) The path of the tsconfig.json file to use when running integration test cdk apps.
3576
3581
 
3577
3582
 
3578
3583
 
@@ -3738,6 +3743,7 @@ new cdk.ConstructLibrary(options: ConstructLibraryOptions)
3738
3743
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
3739
3744
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
3740
3745
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
3746
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
3741
3747
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
3742
3748
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
3743
3749
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -3916,6 +3922,7 @@ new cdk.JsiiProject(options: JsiiProjectOptions)
3916
3922
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
3917
3923
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
3918
3924
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
3925
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
3919
3926
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
3920
3927
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
3921
3928
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -4080,6 +4087,7 @@ new cdk8s.Cdk8sTypeScriptApp(options: Cdk8sTypeScriptAppOptions)
4080
4087
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
4081
4088
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
4082
4089
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
4090
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
4083
4091
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
4084
4092
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
4085
4093
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -4246,6 +4254,7 @@ new cdk8s.ConstructLibraryCdk8s(options: ConstructLibraryCdk8sOptions)
4246
4254
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
4247
4255
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
4248
4256
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
4257
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
4249
4258
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
4250
4259
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
4251
4260
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -4421,6 +4430,7 @@ new cdktf.ConstructLibraryCdktf(options: ConstructLibraryCdktfOptions)
4421
4430
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
4422
4431
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
4423
4432
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
4433
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
4424
4434
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
4425
4435
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
4426
4436
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -4513,6 +4523,7 @@ new github.AutoApprove(github: GitHub, options: AutoApproveOptions)
4513
4523
  * **secret** (<code>string</code>) A GitHub secret name which contains a GitHub Access Token with write permissions for the `pull_request` scope.
4514
4524
  * **allowedUsernames** (<code>Array<string></code>) Only pull requests authored by these Github usernames will be auto-approved. __*Default*__: ['github-bot']
4515
4525
  * **label** (<code>string</code>) Only pull requests with this label will be auto-approved. __*Default*__: 'auto-approve'
4526
+ * **runsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
4516
4527
 
4517
4528
 
4518
4529
 
@@ -4870,12 +4881,15 @@ on(events: Triggers): void
4870
4881
  ```
4871
4882
 
4872
4883
  * **events** (<code>[github.workflows.Triggers](#projen-github-workflows-triggers)</code>) The event(s) to trigger the workflow.
4884
+ * **branchProtectionRule** (<code>[github.workflows.BranchProtectionRuleOptions](#projen-github-workflows-branchprotectionruleoptions)</code>) Runs your workflow anytime the branch_protection_rule event occurs. __*Optional*__
4873
4885
  * **checkRun** (<code>[github.workflows.CheckRunOptions](#projen-github-workflows-checkrunoptions)</code>) Runs your workflow anytime the check_run event occurs. __*Optional*__
4874
4886
  * **checkSuite** (<code>[github.workflows.CheckSuiteOptions](#projen-github-workflows-checksuiteoptions)</code>) Runs your workflow anytime the check_suite event occurs. __*Optional*__
4875
4887
  * **create** (<code>[github.workflows.CreateOptions](#projen-github-workflows-createoptions)</code>) Runs your workflow anytime someone creates a branch or tag, which triggers the create event. __*Optional*__
4876
4888
  * **delete** (<code>[github.workflows.DeleteOptions](#projen-github-workflows-deleteoptions)</code>) Runs your workflow anytime someone deletes a branch or tag, which triggers the delete event. __*Optional*__
4877
4889
  * **deployment** (<code>[github.workflows.DeploymentOptions](#projen-github-workflows-deploymentoptions)</code>) Runs your workflow anytime someone creates a deployment, which triggers the deployment event. __*Optional*__
4878
4890
  * **deploymentStatus** (<code>[github.workflows.DeploymentStatusOptions](#projen-github-workflows-deploymentstatusoptions)</code>) Runs your workflow anytime a third party provides a deployment status, which triggers the deployment_status event. __*Optional*__
4891
+ * **discussion** (<code>[github.workflows.DiscussionOptions](#projen-github-workflows-discussionoptions)</code>) Runs your workflow anytime the discussion event occurs. __*Optional*__
4892
+ * **discussionComment** (<code>[github.workflows.DiscussionCommentOptions](#projen-github-workflows-discussioncommentoptions)</code>) Runs your workflow anytime the discussion_comment event occurs. __*Optional*__
4879
4893
  * **fork** (<code>[github.workflows.ForkOptions](#projen-github-workflows-forkoptions)</code>) Runs your workflow anytime when someone forks a repository, which triggers the fork event. __*Optional*__
4880
4894
  * **gollum** (<code>[github.workflows.GollumOptions](#projen-github-workflows-gollumoptions)</code>) Runs your workflow when someone creates or updates a Wiki page, which triggers the gollum event. __*Optional*__
4881
4895
  * **issueComment** (<code>[github.workflows.IssueCommentOptions](#projen-github-workflows-issuecommentoptions)</code>) Runs your workflow anytime the issue_comment event occurs. __*Optional*__
@@ -4898,6 +4912,7 @@ on(events: Triggers): void
4898
4912
  * **schedule** (<code>Array<[github.workflows.CronScheduleOptions](#projen-github-workflows-cronscheduleoptions)></code>) You can schedule a workflow to run at specific UTC times using POSIX cron syntax. __*Optional*__
4899
4913
  * **status** (<code>[github.workflows.StatusOptions](#projen-github-workflows-statusoptions)</code>) Runs your workflow anytime the status of a Git commit changes, which triggers the status event. __*Optional*__
4900
4914
  * **watch** (<code>[github.workflows.WatchOptions](#projen-github-workflows-watchoptions)</code>) Runs your workflow anytime the watch event occurs. __*Optional*__
4915
+ * **workflowCall** (<code>[github.workflows.WorkflowCallOptions](#projen-github-workflows-workflowcalloptions)</code>) Can be called from another workflow. __*Optional*__
4901
4916
  * **workflowDispatch** (<code>[github.workflows.WorkflowDispatchOptions](#projen-github-workflows-workflowdispatchoptions)</code>) You can configure custom-defined input properties, default input values, and required inputs for the event directly in your workflow. __*Optional*__
4902
4917
  * **workflowRun** (<code>[github.workflows.WorkflowRunOptions](#projen-github-workflows-workflowrunoptions)</code>) This event occurs when a workflow run is requested or completed, and allows you to execute a workflow based on the finished result of another workflow. __*Optional*__
4903
4918
 
@@ -4970,6 +4985,7 @@ new github.PullRequestLint(github: GitHub, options?: PullRequestLintOptions)
4970
4985
 
4971
4986
  * **github** (<code>[github.GitHub](#projen-github-github)</code>) *No description*
4972
4987
  * **options** (<code>[github.PullRequestLintOptions](#projen-github-pullrequestlintoptions)</code>) *No description*
4988
+ * **runsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
4973
4989
  * **semanticTitle** (<code>boolean</code>) Validate that pull request titles follow Conventional Commits. __*Default*__: true
4974
4990
  * **semanticTitleOptions** (<code>[github.SemanticTitleOptions](#projen-github-semantictitleoptions)</code>) Options for validating the conventional commit title linter. __*Default*__: title must start with "feat", "fix", or "chore"
4975
4991
 
@@ -5027,6 +5043,7 @@ new github.Stale(github: GitHub, options?: StaleOptions)
5027
5043
  * **options** (<code>[github.StaleOptions](#projen-github-staleoptions)</code>) *No description*
5028
5044
  * **issues** (<code>[github.StaleBehavior](#projen-github-stalebehavior)</code>) How to handle stale issues. __*Default*__: By default, stale issues with no activity will be marked as stale after 60 days and closed within 7 days.
5029
5045
  * **pullRequest** (<code>[github.StaleBehavior](#projen-github-stalebehavior)</code>) How to handle stale pull requests. __*Default*__: By default, pull requests with no activity will be marked as stale after 14 days and closed within 2 days with relevant comments.
5046
+ * **runsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
5030
5047
 
5031
5048
 
5032
5049
 
@@ -5064,6 +5081,7 @@ new github.TaskWorkflow(github: GitHub, options: TaskWorkflowOptions)
5064
5081
  * **postBuildSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) Actions to run after the main build step. __*Default*__: not set
5065
5082
  * **preBuildSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) Steps to run before the main build step. __*Default*__: not set
5066
5083
  * **preCheckoutSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) Initial steps to run before the source code checkout. __*Default*__: not set
5084
+ * **runsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
5067
5085
  * **triggers** (<code>[github.workflows.Triggers](#projen-github-workflows-triggers)</code>) The triggers for the workflow. __*Default*__: by default workflows can only be triggered by manually.
5068
5086
 
5069
5087
 
@@ -6137,6 +6155,7 @@ new javascript.NodeProject(options: NodeProjectOptions)
6137
6155
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
6138
6156
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
6139
6157
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
6158
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
6140
6159
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
6141
6160
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
6142
6161
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -7274,6 +7293,7 @@ new release.Publisher(project: Project, options: PublisherOptions)
7274
7293
  * **failureIssue** (<code>boolean</code>) Create an issue when a publish task fails. __*Default*__: false
7275
7294
  * **failureIssueLabel** (<code>string</code>) The label to apply to the issue marking failed publish tasks. __*Default*__: "failed-release"
7276
7295
  * **jsiiReleaseVersion** (<code>string</code>) Version requirement for `jsii-release`. __*Default*__: "latest"
7296
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
7277
7297
 
7278
7298
 
7279
7299
 
@@ -7466,6 +7486,7 @@ new release.Release(project: GitHubProject, options: ReleaseOptions)
7466
7486
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
7467
7487
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
7468
7488
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
7489
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
7469
7490
  * **branch** (<code>string</code>) The default branch name to release from.
7470
7491
  * **task** (<code>[Task](#projen-task)</code>) The task to execute in order to create the release artifacts.
7471
7492
  * **versionFile** (<code>string</code>) A name of a .json file to set the `version` field in after a bump.
@@ -7719,6 +7740,7 @@ new typescript.TypeScriptAppProject(options: TypeScriptProjectOptions)
7719
7740
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
7720
7741
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
7721
7742
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
7743
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
7722
7744
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
7723
7745
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
7724
7746
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -7862,6 +7884,7 @@ new typescript.TypeScriptLibraryProject(options: TypeScriptProjectOptions)
7862
7884
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
7863
7885
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
7864
7886
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
7887
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
7865
7888
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
7866
7889
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
7867
7890
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -8005,6 +8028,7 @@ new typescript.TypeScriptProject(options: TypeScriptProjectOptions)
8005
8028
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
8006
8029
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
8007
8030
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
8031
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
8008
8032
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
8009
8033
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
8010
8034
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -8393,6 +8417,7 @@ new web.NextJsProject(options: NextJsProjectOptions)
8393
8417
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
8394
8418
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
8395
8419
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
8420
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
8396
8421
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
8397
8422
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
8398
8423
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -8533,6 +8558,7 @@ new web.NextJsTypeScriptProject(options: NextJsTypeScriptProjectOptions)
8533
8558
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
8534
8559
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
8535
8560
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
8561
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
8536
8562
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
8537
8563
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
8538
8564
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -8746,6 +8772,7 @@ new web.ReactProject(options: ReactProjectOptions)
8746
8772
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
8747
8773
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
8748
8774
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
8775
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
8749
8776
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
8750
8777
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
8751
8778
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -8927,6 +8954,7 @@ new web.ReactTypeScriptProject(options: ReactTypeScriptProjectOptions)
8927
8954
  * **releaseWorkflowSetupSteps** (<code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code>) A set of workflow steps to execute in order to setup the workflow container. __*Optional*__
8928
8955
  * **versionrcOptions** (<code>Map<string, any></code>) Custom configuration used when creating changelog with standard-version package. __*Default*__: standard configuration applicable for GitHub repositories
8929
8956
  * **workflowContainerImage** (<code>string</code>) Container image to use for GitHub workflows. __*Default*__: default image
8957
+ * **workflowRunsOn** (<code>Array<string></code>) Github Runner selection labels. __*Default*__: ["ubuntu-latest"]
8930
8958
  * **defaultReleaseBranch** (<code>string</code>) The name of the main release branch.
8931
8959
  * **autoApproveProjenUpgrades** (<code>boolean</code>) Automatically approve projen upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: false
8932
8960
  * **autoApproveUpgrades** (<code>boolean</code>) Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). __*Default*__: true
@@ -9930,6 +9958,7 @@ Name | Type | Description
9930
9958
  -----|------|-------------
9931
9959
  **srcdir**🔹 | <code>string</code> | Project source tree (relative to project output directory).
9932
9960
  **testdir**🔹 | <code>string</code> | Test source tree.
9961
+ **tsconfigPath**🔹 | <code>string</code> | Path to the tsconfig file to use for integration tests.
9933
9962
  **lambdaOptions**?🔹 | <code>[awscdk.LambdaFunctionCommonOptions](#projen-awscdk-lambdafunctioncommonoptions)</code> | Options for auto-discovery of AWS Lambda functions.<br/>__*Optional*__
9934
9963
 
9935
9964
 
@@ -10087,6 +10116,7 @@ Name | Type | Description
10087
10116
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
10088
10117
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
10089
10118
  **workflowNodeVersion**?🔹 | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
10119
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
10090
10120
 
10091
10121
 
10092
10122
 
@@ -10291,6 +10321,7 @@ Name | Type | Description
10291
10321
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
10292
10322
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
10293
10323
  **workflowNodeVersion**?🔹 | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
10324
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
10294
10325
 
10295
10326
 
10296
10327
 
@@ -10484,6 +10515,7 @@ Name | Type | Description
10484
10515
  **workflowContainerImage**?⚠️ | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
10485
10516
  **workflowGitIdentity**?⚠️ | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
10486
10517
  **workflowNodeVersion**?⚠️ | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
10518
+ **workflowRunsOn**?⚠️ | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
10487
10519
 
10488
10520
 
10489
10521
 
@@ -10510,6 +10542,7 @@ Options for `IntegrationTest`.
10510
10542
  Name | Type | Description
10511
10543
  -----|------|-------------
10512
10544
  **entrypoint**🔹 | <code>string</code> | A path from the project root directory to a TypeScript file which contains the integration test app.
10545
+ **tsconfigPath**🔹 | <code>string</code> | The path of the tsconfig.json file to use when running integration test cdk apps.
10513
10546
  **destroyAfterDeploy**?🔹 | <code>boolean</code> | Destroy the test app after a successful deployment.<br/>__*Default*__: true
10514
10547
 
10515
10548
 
@@ -10706,6 +10739,7 @@ Name | Type | Description
10706
10739
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
10707
10740
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
10708
10741
  **workflowNodeVersion**?🔹 | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
10742
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
10709
10743
 
10710
10744
 
10711
10745
 
@@ -10909,6 +10943,7 @@ Name | Type | Description
10909
10943
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
10910
10944
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
10911
10945
  **workflowNodeVersion**?🔹 | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
10946
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
10912
10947
 
10913
10948
 
10914
10949
 
@@ -11067,6 +11102,7 @@ Name | Type | Description
11067
11102
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
11068
11103
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
11069
11104
  **workflowNodeVersion**?🔹 | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
11105
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
11070
11106
 
11071
11107
 
11072
11108
 
@@ -11219,6 +11255,7 @@ Name | Type | Description
11219
11255
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
11220
11256
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
11221
11257
  **workflowNodeVersion**?🔹 | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
11258
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
11222
11259
 
11223
11260
 
11224
11261
 
@@ -11367,6 +11404,7 @@ Name | Type | Description
11367
11404
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
11368
11405
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
11369
11406
  **workflowNodeVersion**?🔹 | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
11407
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
11370
11408
 
11371
11409
 
11372
11410
 
@@ -11382,6 +11420,7 @@ Name | Type | Description
11382
11420
  **secret**🔹 | <code>string</code> | A GitHub secret name which contains a GitHub Access Token with write permissions for the `pull_request` scope.
11383
11421
  **allowedUsernames**?🔹 | <code>Array<string></code> | Only pull requests authored by these Github usernames will be auto-approved.<br/>__*Default*__: ['github-bot']
11384
11422
  **label**?🔹 | <code>string</code> | Only pull requests with this label will be auto-approved.<br/>__*Default*__: 'auto-approve'
11423
+ **runsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
11385
11424
 
11386
11425
 
11387
11426
 
@@ -11607,6 +11646,7 @@ Options for PullRequestLint.
11607
11646
 
11608
11647
  Name | Type | Description
11609
11648
  -----|------|-------------
11649
+ **runsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
11610
11650
  **semanticTitle**?🔹 | <code>boolean</code> | Validate that pull request titles follow Conventional Commits.<br/>__*Default*__: true
11611
11651
  **semanticTitleOptions**?🔹 | <code>[github.SemanticTitleOptions](#projen-github-semantictitleoptions)</code> | Options for validating the conventional commit title linter.<br/>__*Default*__: title must start with "feat", "fix", or "chore"
11612
11652
 
@@ -11668,6 +11708,7 @@ Name | Type | Description
11668
11708
  -----|------|-------------
11669
11709
  **issues**?🔹 | <code>[github.StaleBehavior](#projen-github-stalebehavior)</code> | How to handle stale issues.<br/>__*Default*__: By default, stale issues with no activity will be marked as stale after 60 days and closed within 7 days.
11670
11710
  **pullRequest**?🔹 | <code>[github.StaleBehavior](#projen-github-stalebehavior)</code> | How to handle stale pull requests.<br/>__*Default*__: By default, pull requests with no activity will be marked as stale after 14 days and closed within 2 days with relevant comments.
11711
+ **runsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
11671
11712
 
11672
11713
 
11673
11714
 
@@ -11694,6 +11735,7 @@ Name | Type | Description
11694
11735
  **postBuildSteps**?🔹 | <code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code> | Actions to run after the main build step.<br/>__*Default*__: not set
11695
11736
  **preBuildSteps**?🔹 | <code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code> | Steps to run before the main build step.<br/>__*Default*__: not set
11696
11737
  **preCheckoutSteps**?🔹 | <code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code> | Initial steps to run before the source code checkout.<br/>__*Default*__: not set
11738
+ **runsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
11697
11739
  **triggers**?🔹 | <code>[github.workflows.Triggers](#projen-github-workflows-triggers)</code> | The triggers for the workflow.<br/>__*Default*__: by default workflows can only be triggered by manually.
11698
11740
 
11699
11741
 
@@ -12315,6 +12357,7 @@ Name | Type | Description
12315
12357
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
12316
12358
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
12317
12359
  **workflowNodeVersion**?🔹 | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
12360
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
12318
12361
 
12319
12362
 
12320
12363
 
@@ -12470,6 +12513,7 @@ Name | Type | Description
12470
12513
  **gitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use for commits.<br/>__*Default*__: "github-actions
12471
12514
  **labels**?🔹 | <code>Array<string></code> | Labels to apply on the PR.<br/>__*Default*__: no labels.
12472
12515
  **rebuild**?🔹 | <code>boolean</code> | Execute 'build' after the upgrade.<br/>__*Default*__: true
12516
+ **runsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
12473
12517
  **schedule**?🔹 | <code>[javascript.UpgradeDependenciesSchedule](#projen-javascript-upgradedependenciesschedule)</code> | Schedule to run on.<br/>__*Default*__: UpgradeDependenciesSchedule.DAILY
12474
12518
  **secret**?🔹 | <code>string</code> | Which secret to use when creating the PR.<br/>__*Default*__: default github token.
12475
12519
 
@@ -13037,6 +13081,7 @@ Name | Type | Description
13037
13081
  **failureIssue**?🔹 | <code>boolean</code> | Create an issue when a publish task fails.<br/>__*Default*__: false
13038
13082
  **failureIssueLabel**?🔹 | <code>string</code> | The label to apply to the issue marking failed publish tasks.<br/>__*Default*__: "failed-release"
13039
13083
  **jsiiReleaseVersion**?🔹 | <code>string</code> | Version requirement for `jsii-release`.<br/>__*Default*__: "latest"
13084
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
13040
13085
 
13041
13086
 
13042
13087
 
@@ -13085,6 +13130,7 @@ Name | Type | Description
13085
13130
  **releaseWorkflowSetupSteps**?🔹 | <code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code> | A set of workflow steps to execute in order to setup the workflow container.<br/>__*Optional*__
13086
13131
  **versionrcOptions**?🔹 | <code>Map<string, any></code> | Custom configuration used when creating changelog with standard-version package.<br/>__*Default*__: standard configuration applicable for GitHub repositories
13087
13132
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
13133
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
13088
13134
 
13089
13135
 
13090
13136
 
@@ -13114,6 +13160,7 @@ Name | Type | Description
13114
13160
  **releaseWorkflowSetupSteps**?🔹 | <code>Array<[github.workflows.JobStep](#projen-github-workflows-jobstep)></code> | A set of workflow steps to execute in order to setup the workflow container.<br/>__*Optional*__
13115
13161
  **versionrcOptions**?🔹 | <code>Map<string, any></code> | Custom configuration used when creating changelog with standard-version package.<br/>__*Default*__: standard configuration applicable for GitHub repositories
13116
13162
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
13163
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
13117
13164
 
13118
13165
 
13119
13166
 
@@ -13274,6 +13321,7 @@ Name | Type | Description
13274
13321
  **workflowContainerImage**?⚠️ | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
13275
13322
  **workflowGitIdentity**?⚠️ | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
13276
13323
  **workflowNodeVersion**?⚠️ | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
13324
+ **workflowRunsOn**?⚠️ | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
13277
13325
 
13278
13326
 
13279
13327
 
@@ -13407,6 +13455,7 @@ Name | Type | Description
13407
13455
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
13408
13456
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
13409
13457
  **workflowNodeVersion**?🔹 | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
13458
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
13410
13459
 
13411
13460
 
13412
13461
 
@@ -13631,6 +13680,7 @@ Name | Type | Description
13631
13680
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
13632
13681
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
13633
13682
  **workflowNodeVersion**?🔹 | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
13683
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
13634
13684
 
13635
13685
 
13636
13686
 
@@ -13766,6 +13816,7 @@ Name | Type | Description
13766
13816
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
13767
13817
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
13768
13818
  **workflowNodeVersion**?🔹 | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
13819
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
13769
13820
 
13770
13821
 
13771
13822
 
@@ -13914,6 +13965,7 @@ Name | Type | Description
13914
13965
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
13915
13966
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
13916
13967
  **workflowNodeVersion**?🔹 | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
13968
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
13917
13969
 
13918
13970
 
13919
13971
 
@@ -14077,6 +14129,7 @@ Name | Type | Description
14077
14129
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
14078
14130
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
14079
14131
  **workflowNodeVersion**?🔹 | <code>string</code> | The node version to use in GitHub workflows.<br/>__*Default*__: same as `minNodeVersion`
14132
+ **workflowRunsOn**?🔹 | <code>Array<string></code> | Github Runner selection labels.<br/>__*Default*__: ["ubuntu-latest"]
14080
14133
 
14081
14134
 
14082
14135
 
@@ -25,6 +25,12 @@ export interface AutoDiscoverOptions {
25
25
  * @experimental
26
26
  */
27
27
  readonly testdir: string;
28
+ /**
29
+ * (experimental) Path to the tsconfig file to use for integration tests.
30
+ *
31
+ * @experimental
32
+ */
33
+ readonly tsconfigPath: string;
28
34
  }
29
35
  /**
30
36
  * (experimental) Automatically creates a `LambdaFunction` for all `.lambda.ts` files under the source directory of the project.
@@ -41,11 +41,12 @@ class AutoDiscover extends component_1.Component {
41
41
  for (const entrypoint of entrypoints) {
42
42
  new _1.IntegrationTest(this.project, {
43
43
  entrypoint: path_1.join(options.testdir, entrypoint),
44
+ tsconfigPath: options.tsconfigPath,
44
45
  });
45
46
  }
46
47
  }
47
48
  }
48
49
  exports.AutoDiscover = AutoDiscover;
49
50
  _a = JSII_RTTI_SYMBOL_1;
50
- AutoDiscover[_a] = { fqn: "projen.awscdk.AutoDiscover", version: "0.37.2" };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kaXNjb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXV0by1kaXNjb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0Isd0JBQW9DO0FBQ3BDLDRDQUF5QztBQUV6Qyx5Q0FBeUU7QUFDekUsdURBQWdGOzs7Ozs7QUFlaEYsTUFBYSxZQUFhLFNBQVEscUJBQVM7Ozs7SUFHekMsWUFBWSxPQUFnQixFQUFFLE9BQTRCO1FBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVPLDJCQUEyQixDQUFDLE9BQTRCO1FBQzlELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxnQ0FBcUIsRUFBRSxFQUFFO1lBQzVELEdBQUcsRUFBRSxXQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUMvQyxDQUFDLENBQUM7UUFFSCxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRTtZQUNwQyxJQUFJLGdDQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDL0IsVUFBVSxFQUFFLFdBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQztnQkFDNUMsR0FBRyxPQUFPLENBQUMsYUFBYTthQUN6QixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxPQUE0QjtRQUMvRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sK0JBQW9CLEVBQUUsRUFBRTtZQUMzRCxHQUFHLEVBQUUsV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUM7U0FDaEQsQ0FBQyxDQUFDO1FBRUgsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUU7WUFDcEMsSUFBSSxrQkFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hDLFVBQVUsRUFBRSxXQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUM7YUFDOUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztBQWpDSCxvQ0FtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gJ2dsb2InO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25UZXN0IH0gZnJvbSAnLic7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QnO1xuaW1wb3J0IHsgVFlQRVNDUklQVF9JTlRFR19FWFQsIFRZUEVTQ1JJUFRfTEFNQkRBX0VYVCB9IGZyb20gJy4vaW50ZXJuYWwnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24sIExhbWJkYUZ1bmN0aW9uQ29tbW9uT3B0aW9ucyB9IGZyb20gJy4vbGFtYmRhLWZ1bmN0aW9uJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0Rpc2NvdmVyT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsYW1iZGFPcHRpb25zPzogTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNyY2Rpcjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHRlc3RkaXI6IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEF1dG9EaXNjb3ZlciBleHRlbmRzIENvbXBvbmVudCB7XG5cblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBBdXRvRGlzY292ZXJPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLmF1dG9EaXNjb3ZlckxhbWJkYUZ1bmN0aW9ucyhvcHRpb25zKTtcbiAgICB0aGlzLmF1dG9EaXNjb3ZlckludGVncmF0aW9uVGVzdHMob3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGF1dG9EaXNjb3ZlckxhbWJkYUZ1bmN0aW9ucyhvcHRpb25zOiBBdXRvRGlzY292ZXJPcHRpb25zKSB7XG4gICAgY29uc3QgZW50cnlwb2ludHMgPSBnbG9iLnN5bmMoYCoqLyoke1RZUEVTQ1JJUFRfTEFNQkRBX0VYVH1gLCB7XG4gICAgICBjd2Q6IGpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgb3B0aW9ucy5zcmNkaXIpLFxuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeXBvaW50IG9mIGVudHJ5cG9pbnRzKSB7XG4gICAgICBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcy5wcm9qZWN0LCB7XG4gICAgICAgIGVudHJ5cG9pbnQ6IGpvaW4ob3B0aW9ucy5zcmNkaXIsIGVudHJ5cG9pbnQpLFxuICAgICAgICAuLi5vcHRpb25zLmxhbWJkYU9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGF1dG9EaXNjb3ZlckludGVncmF0aW9uVGVzdHMob3B0aW9uczogQXV0b0Rpc2NvdmVyT3B0aW9ucykge1xuICAgIGNvbnN0IGVudHJ5cG9pbnRzID0gZ2xvYi5zeW5jKGAqKi8qJHtUWVBFU0NSSVBUX0lOVEVHX0VYVH1gLCB7XG4gICAgICBjd2Q6IGpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgb3B0aW9ucy50ZXN0ZGlyKSxcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgZW50cnlwb2ludCBvZiBlbnRyeXBvaW50cykge1xuICAgICAgbmV3IEludGVncmF0aW9uVGVzdCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgZW50cnlwb2ludDogam9pbihvcHRpb25zLnRlc3RkaXIsIGVudHJ5cG9pbnQpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbn0iXX0=
51
+ AutoDiscover[_a] = { fqn: "projen.awscdk.AutoDiscover", version: "0.38.1" };
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kaXNjb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXV0by1kaXNjb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0Isd0JBQW9DO0FBQ3BDLDRDQUF5QztBQUV6Qyx5Q0FBeUU7QUFDekUsdURBQWdGOzs7Ozs7QUFrQmhGLE1BQWEsWUFBYSxTQUFRLHFCQUFTOzs7O0lBR3pDLFlBQVksT0FBZ0IsRUFBRSxPQUE0QjtRQUN4RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxPQUE0QjtRQUM5RCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sZ0NBQXFCLEVBQUUsRUFBRTtZQUM1RCxHQUFHLEVBQUUsV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUU7WUFDcEMsSUFBSSxnQ0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQy9CLFVBQVUsRUFBRSxXQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUM7Z0JBQzVDLEdBQUcsT0FBTyxDQUFDLGFBQWE7YUFDekIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU8sNEJBQTRCLENBQUMsT0FBNEI7UUFDL0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLCtCQUFvQixFQUFFLEVBQUU7WUFDM0QsR0FBRyxFQUFFLFdBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ2hELENBQUMsQ0FBQztRQUVILEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO1lBQ3BDLElBQUksa0JBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQyxVQUFVLEVBQUUsV0FBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO2dCQUM3QyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7YUFDbkMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztBQWxDSCxvQ0FvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gJ2dsb2InO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25UZXN0IH0gZnJvbSAnLic7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QnO1xuaW1wb3J0IHsgVFlQRVNDUklQVF9JTlRFR19FWFQsIFRZUEVTQ1JJUFRfTEFNQkRBX0VYVCB9IGZyb20gJy4vaW50ZXJuYWwnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24sIExhbWJkYUZ1bmN0aW9uQ29tbW9uT3B0aW9ucyB9IGZyb20gJy4vbGFtYmRhLWZ1bmN0aW9uJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0Rpc2NvdmVyT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsYW1iZGFPcHRpb25zPzogTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNyY2Rpcjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHRlc3RkaXI6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHRzY29uZmlnUGF0aDogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgQXV0b0Rpc2NvdmVyIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IEF1dG9EaXNjb3Zlck9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuYXV0b0Rpc2NvdmVyTGFtYmRhRnVuY3Rpb25zKG9wdGlvbnMpO1xuICAgIHRoaXMuYXV0b0Rpc2NvdmVySW50ZWdyYXRpb25UZXN0cyhvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYXV0b0Rpc2NvdmVyTGFtYmRhRnVuY3Rpb25zKG9wdGlvbnM6IEF1dG9EaXNjb3Zlck9wdGlvbnMpIHtcbiAgICBjb25zdCBlbnRyeXBvaW50cyA9IGdsb2Iuc3luYyhgKiovKiR7VFlQRVNDUklQVF9MQU1CREFfRVhUfWAsIHtcbiAgICAgIGN3ZDogam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCBvcHRpb25zLnNyY2RpciksXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IGVudHJ5cG9pbnQgb2YgZW50cnlwb2ludHMpIHtcbiAgICAgIG5ldyBMYW1iZGFGdW5jdGlvbih0aGlzLnByb2plY3QsIHtcbiAgICAgICAgZW50cnlwb2ludDogam9pbihvcHRpb25zLnNyY2RpciwgZW50cnlwb2ludCksXG4gICAgICAgIC4uLm9wdGlvbnMubGFtYmRhT3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXV0b0Rpc2NvdmVySW50ZWdyYXRpb25UZXN0cyhvcHRpb25zOiBBdXRvRGlzY292ZXJPcHRpb25zKSB7XG4gICAgY29uc3QgZW50cnlwb2ludHMgPSBnbG9iLnN5bmMoYCoqLyoke1RZUEVTQ1JJUFRfSU5URUdfRVhUfWAsIHtcbiAgICAgIGN3ZDogam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCBvcHRpb25zLnRlc3RkaXIpLFxuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeXBvaW50IG9mIGVudHJ5cG9pbnRzKSB7XG4gICAgICBuZXcgSW50ZWdyYXRpb25UZXN0KHRoaXMucHJvamVjdCwge1xuICAgICAgICBlbnRyeXBvaW50OiBqb2luKG9wdGlvbnMudGVzdGRpciwgZW50cnlwb2ludCksXG4gICAgICAgIHRzY29uZmlnUGF0aDogb3B0aW9ucy50c2NvbmZpZ1BhdGgsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxufSJdfQ==
@@ -93,6 +93,7 @@ class AwsCdkTypeScriptApp extends typescript_1.TypeScriptAppProject {
93
93
  srcdir: this.srcdir,
94
94
  testdir: this.testdir,
95
95
  lambdaOptions: options.lambdaOptions,
96
+ tsconfigPath: this.tsconfigDev.fileName,
96
97
  });
97
98
  }
98
99
  }
@@ -114,7 +115,7 @@ class AwsCdkTypeScriptApp extends typescript_1.TypeScriptAppProject {
114
115
  }
115
116
  exports.AwsCdkTypeScriptApp = AwsCdkTypeScriptApp;
116
117
  _a = JSII_RTTI_SYMBOL_1;
117
- AwsCdkTypeScriptApp[_a] = { fqn: "projen.awscdk.AwsCdkTypeScriptApp", version: "0.37.2" };
118
+ AwsCdkTypeScriptApp[_a] = { fqn: "projen.awscdk.AwsCdkTypeScriptApp", version: "0.38.1" };
118
119
  class SampleCode extends component_1.Component {
119
120
  constructor(project, cdkMajorVersion) {
120
121
  super(project);
@@ -186,4 +187,4 @@ test('Snapshot', () => {
186
187
  fs.writeFileSync(path.join(testdir, `${appEntrypointName}.test.ts`), testCode);
187
188
  }
188
189
  }
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWFwcC10cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXdzY2RrLWFwcC10cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsaUNBQWlDO0FBQ2pDLDRDQUF5QztBQUN6Qyw4Q0FBK0U7QUFDL0UsbURBQStDO0FBQy9DLDZDQUFpRTtBQUNqRSwyQ0FBdUM7Ozs7Ozs7QUF3QnZDLE1BQWEsbUJBQW9CLFNBQVEsaUNBQW9COzs7O0lBYTNELFlBQVksT0FBbUM7O1FBQzdDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLFVBQVUsRUFBRSxLQUFLO1NBQ2xCLENBQUMsQ0FBQztRQUVILG9EQUFvRDtRQUNwRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztTQUNuRTtRQUVELG9EQUFvRDtRQUNwRCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztTQUN6RTtRQUVELElBQUksQ0FBQyxhQUFhLFNBQUcsT0FBTyxDQUFDLGFBQWEsbUNBQUksU0FBUyxDQUFDO1FBRXhELElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUU1RixNQUFNO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNw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Q0FBQztRQUN2QixFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsaUJBQWlCLFVBQVUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBUeXBlU2NyaXB0QXBwUHJvamVjdCwgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBBdXRvRGlzY292ZXIgfSBmcm9tICcuL2F1dG8tZGlzY292ZXInO1xuaW1wb3J0IHsgQ2RrQ29uZmlnLCBDZGtDb25maWdDb21tb25PcHRpb25zIH0gZnJvbSAnLi9jZGstY29uZmlnJztcbmltcG9ydCB7IENka1Rhc2tzIH0gZnJvbSAnLi9jZGstdGFza3MnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zIH0gZnJvbSAnLi9sYW1iZGEtZnVuY3Rpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zIGV4dGVuZHMgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zLCBDZGtDb25maWdDb21tb25PcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjZGtWZXJzaW9uOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjZGtWZXJzaW9uUGlubmluZz86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNka0RlcGVuZGVuY2llcz86IHN0cmluZ1tdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXBwRW50cnlwb2ludD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsYW1iZGFBdXRvRGlzY292ZXI/OiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsYW1iZGFPcHRpb25zPzogTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEF3c0Nka1R5cGVTY3JpcHRBcHAgZXh0ZW5kcyBUeXBlU2NyaXB0QXBwUHJvamVjdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGNka1ZlcnNpb246IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBhcHBFbnRyeXBvaW50OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGNka1Rhc2tzOiBDZGtUYXNrcztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgY2RrQ29uZmlnOiBDZGtDb25maWc7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgc2FtcGxlQ29kZTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICAvLyBlbmNvZGUgYSBoaWRkZW4gYXNzdW1wdGlvbiBmdXJ0aGVyIGRvd24gdGhlIGNoYWluXG4gICAgaWYgKHRoaXMuc3JjZGlyICE9PSAnc3JjJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzb3VyY2VzIGFyZSBleHBlY3RlZCB1bmRlciB0aGUgXCJzcmNcIiBkaXJlY3RvcnknKTtcbiAgICB9XG5cbiAgICAvLyBlbmNvZGUgYSBoaWRkZW4gYXNzdW1wdGlvbiBmdXJ0aGVyIGRvd24gdGhlIGNoYWluXG4gICAgaWYgKHRoaXMudGVzdGRpciAhPT0gJ3Rlc3QnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Rlc3Qgc291cmNlcyBhcmUgZXhwZWN0ZWQgdW5kZXIgdGhlIFwidGVzdFwiIGRpcmVjdG9yeScpO1xuICAgIH1cblxuICAgIHRoaXMuYXBwRW50cnlwb2ludCA9IG9wdGlvbnMuYXBwRW50cnlwb2ludCA/PyAnbWFpbi50cyc7XG5cbiAgICB0aGlzLmNka1ZlcnNpb24gPSBvcHRpb25zLmNka1ZlcnNpb25QaW5uaW5nID8gb3B0aW9ucy5jZGtWZXJzaW9uIDogYF4ke29wdGlvbnMuY2RrVmVyc2lvbn1gO1xuXG4gICAgLy8gQ0xJXG4gICAgdGhpcy5hZGREZXZEZXBzKHRoaXMuZm9ybWF0TW9kdWxlU3BlYygnYXdzLWNkaycpKTtcbiAgICB0aGlzLmFkZENka0RlcGVuZGVuY3koJ0Bhd3MtY2RrL2Fzc2VydCcpO1xuXG4gICAgaWYgKCF0aGlzLmNka1ZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgZmllbGQgY2RrVmVyc2lvbiBpcyBub3Qgc3BlY2lmaWVkLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGNka01ham9yVmVyc2lvbiA9IHNlbXZlci5taW5WZXJzaW9uKHRoaXMuY2RrVmVyc2lvbik/Lm1ham9yID8/IDE7XG4gICAgaWYgKGNka01ham9yVmVyc2lvbiA8IDIpIHtcbiAgICAgIHRoaXMuYWRkQ2RrRGVwZW5kZW5jeSgnQGF3cy1jZGsvY29yZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZENka0RlcGVuZGVuY3koJ2F3cy1jZGstbGliJyk7XG4gICAgICB0aGlzLmFkZERlcHMoJ2NvbnN0cnVjdHNAXjEwLjAuNScpO1xuICAgIH1cblxuICAgIHRoaXMuYWRkQ2RrRGVwZW5kZW5jeSguLi5vcHRpb25zLmNka0RlcGVuZGVuY2llcyA/PyBbXSk7XG5cbiAgICB0aGlzLmNka1Rhc2tzID0gbmV3IENka1Rhc2tzKHRoaXMpO1xuXG4gICAgLy8gbm8gY29tcGlsZSBzdGVwIGJlY2F1c2Ugd2UgZG8gYWxsIG9mIGl0IGluIHR5cGVzY3JpcHQgZGlyZWN0bHlcbiAgICB0aGlzLmNvbXBpbGVUYXNrLnJlc2V0KCk7XG5cbiAgICB0aGlzLnJlbW92ZVNjcmlwdCgnd2F0Y2gnKTsgLy8gYmVjYXVzZSB3ZSB1c2UgdHMtbm9kZVxuXG4gICAgLy8gYWRkIHN5bnRoIHRvIHRoZSBidWlsZFxuICAgIHRoaXMucG9zdENvbXBpbGVUYXNrLnNwYXduKHRoaXMuY2RrVGFza3Muc3ludGgpO1xuXG4gICAgdGhpcy5jZGtDb25maWcgPSBuZXcgQ2RrQ29uZmlnKHRoaXMsIHtcbiAgICAgIGFwcDogYG5weCB0cy1ub2RlIC0tcHJlZmVyLXRzLWV4dHMgJHtwYXRoLnBvc2l4LmpvaW4odGhpcy5zcmNkaXIsIHRoaXMuYXBwRW50cnlwb2ludCl9YCxcbiAgICAgIGZlYXR1cmVGbGFnczogY2RrTWFqb3JWZXJzaW9uIDwgMixcbiAgICAgIHdhdGNoSW5jbHVkZXM6IFtcbiAgICAgICAgYCR7dGhpcy5zcmNkaXJ9LyoqLyoudHNgLFxuICAgICAgICBgJHt0aGlzLnRlc3RkaXJ9LyoqLyoudHNgLFxuICAgICAgXSxcbiAgICAgIHdhdGNoRXhjbHVkZXM6IFtcbiAgICAgICAgJ1JFQURNRS5tZCcsXG4gICAgICAgICdjZGsqLmpzb24nLFxuICAgICAgICAnKiovKi5kLnRzJyxcbiAgICAgICAgJyoqLyouanMnLFxuICAgICAgICAndHNjb25maWcuanNvbicsXG4gICAgICAgICdwYWNrYWdlKi5qc29uJyxcbiAgICAgICAgJ3lhcm4ubG9jaycsXG4gICAgICAgICdub2RlX21vZHVsZXMnLFxuICAgICAgXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICB0aGlzLmdpdGlnbm9yZS5leGNsdWRlKCcucGFyY2VsLWNhY2hlLycpO1xuXG4gICAgdGhpcy5ucG1pZ25vcmU/LmV4Y2x1ZGUoYCR7dGhpcy5jZGtDb25maWcuY2Rrb3V0fS9gKTtcbiAgICB0aGlzLm5wbWlnbm9yZT8uZXhjbHVkZSgnLmNkay5zdGFnaW5nLycpO1xuXG4gICAgaWYgKHRoaXMudHNjb25maWcpIHtcbiAgICAgIHRoaXMudHNjb25maWcuZXhjbHVkZS5wdXNoKHRoaXMuY2RrQ29uZmlnLmNka291dCk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGREZXZEZXBzKCd0cy1ub2RlQF45Jyk7XG4gICAgaWYgKG9wdGlvbnMuc2FtcGxlQ29kZSA/PyB0cnVlKSB7XG4gICAgICBuZXcgU2FtcGxlQ29kZSh0aGlzLCBjZGtNYWpvclZlcnNpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IGxhbWJkYUF1dG9EaXNjb3ZlciA9IG9wdGlvbnMubGFtYmRhQXV0b0Rpc2NvdmVyID8/IHRydWU7XG4gICAgaWYgKGxhbWJkYUF1dG9EaXNjb3Zlcikge1xuICAgICAgbmV3IEF1dG9EaXNjb3Zlcih0aGlzLCB7XG4gICAgICAgIHNyY2RpcjogdGhpcy5zcmNkaXIsXG4gICAgICAgIHRlc3RkaXI6IHRoaXMudGVzdGRpcixcbiAgICAgICAgbGFtYmRhT3B0aW9uczogb3B0aW9ucy5sYW1iZGFPcHRpb25zLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkQ2RrRGVwZW5kZW5jeSguLi5tb2R1bGVzOiBzdHJpbmdbXSkge1xuICAgIGlmIChtb2R1bGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFkZERlcHMoLi4ubW9kdWxlcy5tYXAobSA9PiB0aGlzLmZvcm1hdE1vZHVsZVNwZWMobSkpKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0TW9kdWxlU3BlYyhtb2R1bGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke21vZHVsZX1AJHt0aGlzLmNka1ZlcnNpb259YDtcbiAgfVxufVxuXG5jbGFzcyBTYW1wbGVDb2RlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHBQcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsIHByaXZhdGUgcmVhZG9ubHkgY2RrTWFqb3JWZXJzaW9uOiBudW1iZXIpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgICB0aGlzLmFwcFByb2plY3QgPSBwcm9qZWN0O1xuICB9XG5cbiAgcHVibGljIHN5bnRoZXNpemUoKSB7XG4gICAgY29uc3Qgb3V0ZGlyID0gdGhpcy5wcm9qZWN0Lm91dGRpcjtcbiAgICBjb25zdCBzcmNkaXIgPSBwYXRoLmpvaW4ob3V0ZGlyLCB0aGlzLmFwcFByb2plY3Quc3JjZGlyKTtcbiAgICBpZiAoZnMucGF0aEV4aXN0c1N5bmMoc3JjZGlyKSAmJiBmcy5yZWFkZGlyU3luYyhzcmNkaXIpLmZpbHRlcih4ID0+IHguZW5kc1dpdGgoJy50cycpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNyY0ltcG9ydHMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIGlmICh0aGlzLmNka01ham9yVmVyc2lvbiA8IDIpIHtcbiAgICAgIHNyY0ltcG9ydHMucHVzaCgnaW1wb3J0IHsgQXBwLCBDb25zdHJ1Y3QsIFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSBcXCdAYXdzLWNkay9jb3JlXFwnOycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzcmNJbXBvcnRzLnB1c2goJ2ltcG9ydCB7IEFwcCwgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tIFxcJ2F3cy1jZGstbGliXFwnOycpO1xuICAgICAgc3JjSW1wb3J0cy5wdXNoKCdpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFxcJ2NvbnN0cnVjdHNcXCc7Jyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3JjQ29kZSA9IGAke3NyY0ltcG9ydHMuam9pbignXFxuJyl9XG5cbmV4cG9ydCBjbGFzcyBNeVN0YWNrIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhY2tQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvLyBkZWZpbmUgcmVzb3VyY2VzIGhlcmUuLi5cbiAgfVxufVxuXG4vLyBmb3IgZGV2ZWxvcG1lbnQsIHVzZSBhY2NvdW50L3JlZ2lvbiBmcm9tIGNkayBjbGlcbmNvbnN0IGRldkVudiA9IHtcbiAgYWNjb3VudDogcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVCxcbiAgcmVnaW9uOiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT04sXG59O1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbm5ldyBNeVN0YWNrKGFwcCwgJ215LXN0YWNrLWRldicsIHsgZW52OiBkZXZFbnYgfSk7XG4vLyBuZXcgTXlTdGFjayhhcHAsICdteS1zdGFjay1wcm9kJywgeyBlbnY6IHByb2RFbnYgfSk7XG5cbmFwcC5zeW50aCgpO2A7XG5cbiAgICBmcy5ta2RpcnBTeW5jKHNyY2Rpcik7XG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4oc3JjZGlyLCB0aGlzLmFwcFByb2plY3QuYXBwRW50cnlwb2ludCksIHNyY0NvZGUpO1xuXG4gICAgY29uc3QgdGVzdGRpciA9IHBhdGguam9pbihvdXRkaXIsIHRoaXMuYXBwUHJvamVjdC50ZXN0ZGlyKTtcbiAgICBpZiAoZnMucGF0aEV4aXN0c1N5bmModGVzdGRpcikgJiYgZnMucmVhZGRpclN5bmModGVzdGRpcikuZmlsdGVyKHggPT4geC5lbmRzV2l0aCgnLnRzJykpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGVzdEltcG9ydHMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIGlmICh0aGlzLmNka01ham9yVmVyc2lvbiA8IDIpIHtcbiAgICAgIHRlc3RJbXBvcnRzLnB1c2goJ2ltcG9ydCB7IEFwcCB9IGZyb20gXFwnQGF3cy1jZGsvY29yZVxcJzsnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGVzdEltcG9ydHMucHVzaCgnaW1wb3J0IHsgQXBwIH0gZnJvbSBcXCdhd3MtY2RrLWxpYlxcJzsnKTtcbiAgICB9XG5cblxuICAgIGNvbnN0IGFwcEVudHJ5cG9pbnROYW1lID0gcGF0aC5iYXNlbmFtZSh0aGlzLmFwcFByb2plY3QuYXBwRW50cnlwb2ludCwgJy50cycpO1xuICAgIGNvbnN0IHRlc3RDb2RlID0gYGltcG9ydCAnQGF3cy1jZGsvYXNzZXJ0L2plc3QnO1xuJHt0ZXN0SW1wb3J0cy5qb2luKCdcXG4nKX1cbmltcG9ydCB7IE15U3RhY2sgfSBmcm9tICcuLi9zcmMvJHthcHBFbnRyeXBvaW50TmFtZX0nO1xuXG50ZXN0KCdTbmFwc2hvdCcsICgpID0+IHtcbiAgY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuICBjb25zdCBzdGFjayA9IG5ldyBNeVN0YWNrKGFwcCwgJ3Rlc3QnKTtcblxuICBleHBlY3Qoc3RhY2spLm5vdC50b0hhdmVSZXNvdXJjZSgnQVdTOjpTMzo6QnVja2V0Jyk7XG4gIGV4cGVjdChhcHAuc3ludGgoKS5nZXRTdGFja0FydGlmYWN0KHN0YWNrLmFydGlmYWN0SWQpLnRlbXBsYXRlKS50b01hdGNoU25hcHNob3QoKTtcbn0pO2A7XG5cbiAgICBmcy5ta2RpcnBTeW5jKHRlc3RkaXIpO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKHRlc3RkaXIsIGAke2FwcEVudHJ5cG9pbnROYW1lfS50ZXN0LnRzYCksIHRlc3RDb2RlKTtcbiAgfVxufVxuIl19
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWFwcC10cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXdzY2RrLWFwcC10cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsaUNBQWlDO0FBQ2pDLDRDQUF5QztBQUN6Qyw4Q0FBK0U7QUFDL0UsbURBQStDO0FBQy9DLDZDQUFpRTtBQUNqRSwyQ0FBdUM7Ozs7Ozs7QUF3QnZDLE1BQWEsbUJBQW9CLFNBQVEsaUNBQW9COzs7O0lBYTNELFlBQVksT0FBbUM7O1FBQzdDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLFVBQVUsRUFBRSxLQUFLO1NBQ2xCLENBQUMsQ0FBQztRQUVILG9EQUFvRDtRQUNwRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztTQUNuRTtRQUVELG9EQUFvRDtRQUNwRCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztTQUN6RTtRQUVELElBQUksQ0FBQyxhQUFhLFNBQUcsT0FBTyxDQUFDLGFBQWEsbUNBQUksU0FBUyxDQUFDO1FBRXhELElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUU1RixNQUFNO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNw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QyxDQUFDO1FBRUQsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsaUJBQWlCLFVBQVUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBUeXBlU2NyaXB0QXBwUHJvamVjdCwgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBBdXRvRGlzY292ZXIgfSBmcm9tICcuL2F1dG8tZGlzY292ZXInO1xuaW1wb3J0IHsgQ2RrQ29uZmlnLCBDZGtDb25maWdDb21tb25PcHRpb25zIH0gZnJvbSAnLi9jZGstY29uZmlnJztcbmltcG9ydCB7IENka1Rhc2tzIH0gZnJvbSAnLi9jZGstdGFza3MnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zIH0gZnJvbSAnLi9sYW1iZGEtZnVuY3Rpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zIGV4dGVuZHMgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zLCBDZGtDb25maWdDb21tb25PcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjZGtWZXJzaW9uOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjZGtWZXJzaW9uUGlubmluZz86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNka0RlcGVuZGVuY2llcz86IHN0cmluZ1tdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXBwRW50cnlwb2ludD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsYW1iZGFBdXRvRGlzY292ZXI/OiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsYW1iZGFPcHRpb25zPzogTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEF3c0Nka1R5cGVTY3JpcHRBcHAgZXh0ZW5kcyBUeXBlU2NyaXB0QXBwUHJvamVjdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGNka1ZlcnNpb246IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBhcHBFbnRyeXBvaW50OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGNka1Rhc2tzOiBDZGtUYXNrcztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgY2RrQ29uZmlnOiBDZGtDb25maWc7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgc2FtcGxlQ29kZTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICAvLyBlbmNvZGUgYSBoaWRkZW4gYXNzdW1wdGlvbiBmdXJ0aGVyIGRvd24gdGhlIGNoYWluXG4gICAgaWYgKHRoaXMuc3JjZGlyICE9PSAnc3JjJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzb3VyY2VzIGFyZSBleHBlY3RlZCB1bmRlciB0aGUgXCJzcmNcIiBkaXJlY3RvcnknKTtcbiAgICB9XG5cbiAgICAvLyBlbmNvZGUgYSBoaWRkZW4gYXNzdW1wdGlvbiBmdXJ0aGVyIGRvd24gdGhlIGNoYWluXG4gICAgaWYgKHRoaXMudGVzdGRpciAhPT0gJ3Rlc3QnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Rlc3Qgc291cmNlcyBhcmUgZXhwZWN0ZWQgdW5kZXIgdGhlIFwidGVzdFwiIGRpcmVjdG9yeScpO1xuICAgIH1cblxuICAgIHRoaXMuYXBwRW50cnlwb2ludCA9IG9wdGlvbnMuYXBwRW50cnlwb2ludCA/PyAnbWFpbi50cyc7XG5cbiAgICB0aGlzLmNka1ZlcnNpb24gPSBvcHRpb25zLmNka1ZlcnNpb25QaW5uaW5nID8gb3B0aW9ucy5jZGtWZXJzaW9uIDogYF4ke29wdGlvbnMuY2RrVmVyc2lvbn1gO1xuXG4gICAgLy8gQ0xJXG4gICAgdGhpcy5hZGREZXZEZXBzKHRoaXMuZm9ybWF0TW9kdWxlU3BlYygnYXdzLWNkaycpKTtcbiAgICB0aGlzLmFkZENka0RlcGVuZGVuY3koJ0Bhd3MtY2RrL2Fzc2VydCcpO1xuXG4gICAgaWYgKCF0aGlzLmNka1ZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgZmllbGQgY2RrVmVyc2lvbiBpcyBub3Qgc3BlY2lmaWVkLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGNka01ham9yVmVyc2lvbiA9IHNlbXZlci5taW5WZXJzaW9uKHRoaXMuY2RrVmVyc2lvbik/Lm1ham9yID8/IDE7XG4gICAgaWYgKGNka01ham9yVmVyc2lvbiA8IDIpIHtcbiAgICAgIHRoaXMuYWRkQ2RrRGVwZW5kZW5jeSgnQGF3cy1jZGsvY29yZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZENka0RlcGVuZGVuY3koJ2F3cy1jZGstbGliJyk7XG4gICAgICB0aGlzLmFkZERlcHMoJ2NvbnN0cnVjdHNAXjEwLjAuNScpO1xuICAgIH1cblxuICAgIHRoaXMuYWRkQ2RrRGVwZW5kZW5jeSguLi5vcHRpb25zLmNka0RlcGVuZGVuY2llcyA/PyBbXSk7XG5cbiAgICB0aGlzLmNka1Rhc2tzID0gbmV3IENka1Rhc2tzKHRoaXMpO1xuXG4gICAgLy8gbm8gY29tcGlsZSBzdGVwIGJlY2F1c2Ugd2UgZG8gYWxsIG9mIGl0IGluIHR5cGVzY3JpcHQgZGlyZWN0bHlcbiAgICB0aGlzLmNvbXBpbGVUYXNrLnJlc2V0KCk7XG5cbiAgICB0aGlzLnJlbW92ZVNjcmlwdCgnd2F0Y2gnKTsgLy8gYmVjYXVzZSB3ZSB1c2UgdHMtbm9kZVxuXG4gICAgLy8gYWRkIHN5bnRoIHRvIHRoZSBidWlsZFxuICAgIHRoaXMucG9zdENvbXBpbGVUYXNrLnNwYXduKHRoaXMuY2RrVGFza3Muc3ludGgpO1xuXG4gICAgdGhpcy5jZGtDb25maWcgPSBuZXcgQ2RrQ29uZmlnKHRoaXMsIHtcbiAgICAgIGFwcDogYG5weCB0cy1ub2RlIC0tcHJlZmVyLXRzLWV4dHMgJHtwYXRoLnBvc2l4LmpvaW4odGhpcy5zcmNkaXIsIHRoaXMuYXBwRW50cnlwb2ludCl9YCxcbiAgICAgIGZlYXR1cmVGbGFnczogY2RrTWFqb3JWZXJzaW9uIDwgMixcbiAgICAgIHdhdGNoSW5jbHVkZXM6IFtcbiAgICAgICAgYCR7dGhpcy5zcmNkaXJ9LyoqLyoudHNgLFxuICAgICAgICBgJHt0aGlzLnRlc3RkaXJ9LyoqLyoudHNgLFxuICAgICAgXSxcbiAgICAgIHdhdGNoRXhjbHVkZXM6IFtcbiAgICAgICAgJ1JFQURNRS5tZCcsXG4gICAgICAgICdjZGsqLmpzb24nLFxuICAgICAgICAnKiovKi5kLnRzJyxcbiAgICAgICAgJyoqLyouanMnLFxuICAgICAgICAndHNjb25maWcuanNvbicsXG4gICAgICAgICdwYWNrYWdlKi5qc29uJyxcbiAgICAgICAgJ3lhcm4ubG9jaycsXG4gICAgICAgICdub2RlX21vZHVsZXMnLFxuICAgICAgXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICB0aGlzLmdpdGlnbm9yZS5leGNsdWRlKCcucGFyY2VsLWNhY2hlLycpO1xuXG4gICAgdGhpcy5ucG1pZ25vcmU/LmV4Y2x1ZGUoYCR7dGhpcy5jZGtDb25maWcuY2Rrb3V0fS9gKTtcbiAgICB0aGlzLm5wbWlnbm9yZT8uZXhjbHVkZSgnLmNkay5zdGFnaW5nLycpO1xuXG4gICAgaWYgKHRoaXMudHNjb25maWcpIHtcbiAgICAgIHRoaXMudHNjb25maWcuZXhjbHVkZS5wdXNoKHRoaXMuY2RrQ29uZmlnLmNka291dCk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGREZXZEZXBzKCd0cy1ub2RlQF45Jyk7XG4gICAgaWYgKG9wdGlvbnMuc2FtcGxlQ29kZSA/PyB0cnVlKSB7XG4gICAgICBuZXcgU2FtcGxlQ29kZSh0aGlzLCBjZGtNYWpvclZlcnNpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IGxhbWJkYUF1dG9EaXNjb3ZlciA9IG9wdGlvbnMubGFtYmRhQXV0b0Rpc2NvdmVyID8/IHRydWU7XG4gICAgaWYgKGxhbWJkYUF1dG9EaXNjb3Zlcikge1xuICAgICAgbmV3IEF1dG9EaXNjb3Zlcih0aGlzLCB7XG4gICAgICAgIHNyY2RpcjogdGhpcy5zcmNkaXIsXG4gICAgICAgIHRlc3RkaXI6IHRoaXMudGVzdGRpcixcbiAgICAgICAgbGFtYmRhT3B0aW9uczogb3B0aW9ucy5sYW1iZGFPcHRpb25zLFxuICAgICAgICB0c2NvbmZpZ1BhdGg6IHRoaXMudHNjb25maWdEZXYuZmlsZU5hbWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhZGRDZGtEZXBlbmRlbmN5KC4uLm1vZHVsZXM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKG1vZHVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuYWRkRGVwcyguLi5tb2R1bGVzLm1hcChtID0+IHRoaXMuZm9ybWF0TW9kdWxlU3BlYyhtKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRNb2R1bGVTcGVjKG1vZHVsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7bW9kdWxlfUAke3RoaXMuY2RrVmVyc2lvbn1gO1xuICB9XG59XG5cbmNsYXNzIFNhbXBsZUNvZGUgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcFByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHA7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJpdmF0ZSByZWFkb25seSBjZGtNYWpvclZlcnNpb246IG51bWJlcikge1xuICAgIHN1cGVyKHByb2plY3QpO1xuICAgIHRoaXMuYXBwUHJvamVjdCA9IHByb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgc3ludGhlc2l6ZSgpIHtcbiAgICBjb25zdCBvdXRkaXIgPSB0aGlzLnByb2plY3Qub3V0ZGlyO1xuICAgIGNvbnN0IHNyY2RpciA9IHBhdGguam9pbihvdXRkaXIsIHRoaXMuYXBwUHJvamVjdC5zcmNkaXIpO1xuICAgIGlmIChmcy5wYXRoRXhpc3RzU3luYyhzcmNkaXIpICYmIGZzLnJlYWRkaXJTeW5jKHNyY2RpcikuZmlsdGVyKHggPT4geC5lbmRzV2l0aCgnLnRzJykpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3JjSW1wb3J0cyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgaWYgKHRoaXMuY2RrTWFqb3JWZXJzaW9uIDwgMikge1xuICAgICAgc3JjSW1wb3J0cy5wdXNoKCdpbXBvcnQgeyBBcHAsIENvbnN0cnVjdCwgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tIFxcJ0Bhd3MtY2RrL2NvcmVcXCc7Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNyY0ltcG9ydHMucHVzaCgnaW1wb3J0IHsgQXBwLCBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gXFwnYXdzLWNkay1saWJcXCc7Jyk7XG4gICAgICBzcmNJbXBvcnRzLnB1c2goJ2ltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXFwnY29uc3RydWN0c1xcJzsnKTtcbiAgICB9XG5cbiAgICBjb25zdCBzcmNDb2RlID0gYCR7c3JjSW1wb3J0cy5qb2luKCdcXG4nKX1cblxuZXhwb3J0IGNsYXNzIE15U3RhY2sgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFja1Byb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIC8vIGRlZmluZSByZXNvdXJjZXMgaGVyZS4uLlxuICB9XG59XG5cbi8vIGZvciBkZXZlbG9wbWVudCwgdXNlIGFjY291bnQvcmVnaW9uIGZyb20gY2RrIGNsaVxuY29uc3QgZGV2RW52ID0ge1xuICBhY2NvdW50OiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9BQ0NPVU5ULFxuICByZWdpb246IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTixcbn07XG5cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcblxubmV3IE15U3RhY2soYXBwLCAnbXktc3RhY2stZGV2JywgeyBlbnY6IGRldkVudiB9KTtcbi8vIG5ldyBNeVN0YWNrKGFwcCwgJ215LXN0YWNrLXByb2QnLCB7IGVudjogcHJvZEVudiB9KTtcblxuYXBwLnN5bnRoKCk7YDtcblxuICAgIGZzLm1rZGlycFN5bmMoc3JjZGlyKTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihzcmNkaXIsIHRoaXMuYXBwUHJvamVjdC5hcHBFbnRyeXBvaW50KSwgc3JjQ29kZSk7XG5cbiAgICBjb25zdCB0ZXN0ZGlyID0gcGF0aC5qb2luKG91dGRpciwgdGhpcy5hcHBQcm9qZWN0LnRlc3RkaXIpO1xuICAgIGlmIChmcy5wYXRoRXhpc3RzU3luYyh0ZXN0ZGlyKSAmJiBmcy5yZWFkZGlyU3luYyh0ZXN0ZGlyKS5maWx0ZXIoeCA9PiB4LmVuZHNXaXRoKCcudHMnKSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXN0SW1wb3J0cyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgaWYgKHRoaXMuY2RrTWFqb3JWZXJzaW9uIDwgMikge1xuICAgICAgdGVzdEltcG9ydHMucHVzaCgnaW1wb3J0IHsgQXBwIH0gZnJvbSBcXCdAYXdzLWNkay9jb3JlXFwnOycpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0ZXN0SW1wb3J0cy5wdXNoKCdpbXBvcnQgeyBBcHAgfSBmcm9tIFxcJ2F3cy1jZGstbGliXFwnOycpO1xuICAgIH1cblxuXG4gICAgY29uc3QgYXBwRW50cnlwb2ludE5hbWUgPSBwYXRoLmJhc2VuYW1lKHRoaXMuYXBwUHJvamVjdC5hcHBFbnRyeXBvaW50LCAnLnRzJyk7XG4gICAgY29uc3QgdGVzdENvZGUgPSBgaW1wb3J0ICdAYXdzLWNkay9hc3NlcnQvamVzdCc7XG4ke3Rlc3RJbXBvcnRzLmpvaW4oJ1xcbicpfVxuaW1wb3J0IHsgTXlTdGFjayB9IGZyb20gJy4uL3NyYy8ke2FwcEVudHJ5cG9pbnROYW1lfSc7XG5cbnRlc3QoJ1NuYXBzaG90JywgKCkgPT4ge1xuICBjb25zdCBhcHAgPSBuZXcgQXBwKCk7XG4gIGNvbnN0IHN0YWNrID0gbmV3IE15U3RhY2soYXBwLCAndGVzdCcpO1xuXG4gIGV4cGVjdChzdGFjaykubm90LnRvSGF2ZVJlc291cmNlKCdBV1M6OlMzOjpCdWNrZXQnKTtcbiAgZXhwZWN0KGFwcC5zeW50aCgpLmdldFN0YWNrQXJ0aWZhY3Qoc3RhY2suYXJ0aWZhY3RJZCkudGVtcGxhdGUpLnRvTWF0Y2hTbmFwc2hvdCgpO1xufSk7YDtcblxuICAgIGZzLm1rZGlycFN5bmModGVzdGRpcik7XG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4odGVzdGRpciwgYCR7YXBwRW50cnlwb2ludE5hbWV9LnRlc3QudHNgKSwgdGVzdENvZGUpO1xuICB9XG59XG4iXX0=