projen 0.103.8 → 0.103.9

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 (163) hide show
  1. package/.jsii +32 -12
  2. package/lib/ai-instructions.js +2 -2
  3. package/lib/awscdk/auto-discover.js +6 -6
  4. package/lib/awscdk/awscdk-app-java.js +1 -1
  5. package/lib/awscdk/awscdk-app-py.js +1 -1
  6. package/lib/awscdk/awscdk-app-ts.js +1 -1
  7. package/lib/awscdk/awscdk-construct.js +1 -1
  8. package/lib/awscdk/awscdk-deps-java.js +1 -1
  9. package/lib/awscdk/awscdk-deps-js.js +1 -1
  10. package/lib/awscdk/awscdk-deps-py.js +1 -1
  11. package/lib/awscdk/awscdk-deps.js +1 -1
  12. package/lib/awscdk/cdk-config.js +3 -3
  13. package/lib/awscdk/cdk-tasks.js +1 -1
  14. package/lib/awscdk/integration-test.js +1 -1
  15. package/lib/awscdk/lambda-extension.js +1 -1
  16. package/lib/awscdk/lambda-function.js +2 -2
  17. package/lib/build/build-workflow.js +1 -1
  18. package/lib/cdk/auto-discover-base.js +2 -2
  19. package/lib/cdk/construct-lib.js +1 -1
  20. package/lib/cdk/integration-test-base.js +1 -1
  21. package/lib/cdk/jsii-build.js +1 -1
  22. package/lib/cdk/jsii-docgen.js +1 -1
  23. package/lib/cdk/jsii-project.js +1 -1
  24. package/lib/cdk8s/auto-discover.js +2 -2
  25. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  26. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  27. package/lib/cdk8s/cdk8s-construct.js +1 -1
  28. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  29. package/lib/cdk8s/cdk8s-deps.js +1 -1
  30. package/lib/cdk8s/integration-test.js +1 -1
  31. package/lib/cdktf/cdktf-construct.js +1 -1
  32. package/lib/cdktn/cdktn-app-ts.js +4 -5
  33. package/lib/cdktn/cdktn-config.js +1 -1
  34. package/lib/cdktn/cdktn-construct.js +1 -1
  35. package/lib/cdktn/cdktn-deps.js +1 -1
  36. package/lib/cdktn/cdktn-tasks.js +1 -1
  37. package/lib/circleci/circleci.js +1 -1
  38. package/lib/component.js +2 -2
  39. package/lib/dependencies.js +1 -1
  40. package/lib/dev-env.js +1 -1
  41. package/lib/docker-compose/docker-compose-service.js +1 -1
  42. package/lib/docker-compose/docker-compose.js +1 -1
  43. package/lib/file.js +1 -1
  44. package/lib/gitattributes.js +1 -1
  45. package/lib/github/actions-provider.js +1 -1
  46. package/lib/github/auto-approve.js +1 -1
  47. package/lib/github/auto-merge.js +1 -1
  48. package/lib/github/auto-queue.js +1 -1
  49. package/lib/github/dependabot.js +1 -1
  50. package/lib/github/dependency-review.js +1 -1
  51. package/lib/github/github-credentials.js +1 -1
  52. package/lib/github/github-project.js +1 -1
  53. package/lib/github/github.js +1 -1
  54. package/lib/github/merge-queue.js +1 -1
  55. package/lib/github/mergify.js +1 -1
  56. package/lib/github/pr-template.js +1 -1
  57. package/lib/github/pull-request-backport.js +1 -1
  58. package/lib/github/pull-request-lint.js +1 -1
  59. package/lib/github/stale.js +1 -1
  60. package/lib/github/task-workflow-job.js +1 -1
  61. package/lib/github/task-workflow.js +1 -1
  62. package/lib/github/workflow-actions.js +1 -1
  63. package/lib/github/workflow-jobs.js +1 -1
  64. package/lib/github/workflow-steps.js +1 -1
  65. package/lib/github/workflows.js +1 -1
  66. package/lib/gitlab/configuration.js +1 -1
  67. package/lib/gitlab/gitlab-configuration.js +1 -1
  68. package/lib/gitlab/nested-configuration.js +1 -1
  69. package/lib/gitpod.js +1 -1
  70. package/lib/ignore-file.js +1 -1
  71. package/lib/ini.js +1 -1
  72. package/lib/java/java-project.js +1 -1
  73. package/lib/java/junit.js +1 -1
  74. package/lib/java/maven-compile.js +1 -1
  75. package/lib/java/maven-packaging.js +1 -1
  76. package/lib/java/maven-sample.js +1 -1
  77. package/lib/java/pom.js +2 -2
  78. package/lib/java/projenrc.js +1 -1
  79. package/lib/javascript/biome/biome.js +1 -1
  80. package/lib/javascript/bundler.js +1 -1
  81. package/lib/javascript/eslint.js +1 -1
  82. package/lib/javascript/jest.js +4 -4
  83. package/lib/javascript/license-checker.js +1 -1
  84. package/lib/javascript/node-config-file.js +1 -1
  85. package/lib/javascript/node-package.js +1 -1
  86. package/lib/javascript/node-project.js +1 -1
  87. package/lib/javascript/npm-config.js +1 -1
  88. package/lib/javascript/pnpm-workspace-config.js +2 -2
  89. package/lib/javascript/pnpm-workspace.js +1 -1
  90. package/lib/javascript/prettier.js +1 -1
  91. package/lib/javascript/projenrc.js +1 -1
  92. package/lib/javascript/typescript-config.js +2 -2
  93. package/lib/javascript/upgrade-dependencies.js +2 -2
  94. package/lib/javascript/yarnrc.js +1 -1
  95. package/lib/json-patch.js +1 -1
  96. package/lib/json.js +1 -1
  97. package/lib/license.js +1 -1
  98. package/lib/logger.js +1 -1
  99. package/lib/makefile.js +1 -1
  100. package/lib/object-file.js +1 -1
  101. package/lib/polaris/coverity-go.js +1 -1
  102. package/lib/polaris/coverity-java.js +1 -1
  103. package/lib/polaris/coverity-javascript.js +1 -1
  104. package/lib/polaris/coverity.js +1 -1
  105. package/lib/project-build.js +1 -1
  106. package/lib/project-tree.js +1 -1
  107. package/lib/project.js +1 -1
  108. package/lib/projects.js +1 -1
  109. package/lib/projenrc-json.js +1 -1
  110. package/lib/projenrc.js +1 -1
  111. package/lib/properties-file.js +1 -1
  112. package/lib/python/pip.js +1 -1
  113. package/lib/python/poetry.js +2 -2
  114. package/lib/python/projenrc.js +1 -1
  115. package/lib/python/pyproject-toml-file.js +1 -1
  116. package/lib/python/pytest-sample.js +1 -1
  117. package/lib/python/pytest.js +1 -1
  118. package/lib/python/python-project.js +1 -1
  119. package/lib/python/python-sample.js +1 -1
  120. package/lib/python/requirements-file.js +1 -1
  121. package/lib/python/setuppy.js +1 -1
  122. package/lib/python/setuptools.js +1 -1
  123. package/lib/python/uv-config.js +1 -1
  124. package/lib/python/uv.js +1 -1
  125. package/lib/python/venv.js +1 -1
  126. package/lib/readme.js +1 -1
  127. package/lib/release/publisher.js +1 -1
  128. package/lib/release/release-trigger.js +1 -1
  129. package/lib/release/release.js +1 -1
  130. package/lib/renovatebot.js +1 -1
  131. package/lib/run-task.cjs +1 -1
  132. package/lib/sample-file.js +2 -2
  133. package/lib/script-runner.js +1 -1
  134. package/lib/sonarqube/javascript.js +1 -1
  135. package/lib/sonarqube/rust.js +1 -1
  136. package/lib/sonarqube/sonarqube.js +1 -1
  137. package/lib/sonarqube/typescript.js +1 -1
  138. package/lib/source-code.js +1 -1
  139. package/lib/task-shell.js +1 -1
  140. package/lib/task.js +1 -1
  141. package/lib/tasks.js +1 -1
  142. package/lib/testing.js +1 -1
  143. package/lib/textfile.js +1 -1
  144. package/lib/toml.js +1 -1
  145. package/lib/typescript/projenrc-ts.js +1 -1
  146. package/lib/typescript/projenrc.js +1 -1
  147. package/lib/typescript/typescript-runner.d.ts +13 -1
  148. package/lib/typescript/typescript-runner.js +11 -3
  149. package/lib/typescript/typescript-typedoc.js +1 -1
  150. package/lib/typescript/typescript.js +5 -5
  151. package/lib/version.js +2 -2
  152. package/lib/vscode/devcontainer.js +1 -1
  153. package/lib/vscode/extensions.js +1 -1
  154. package/lib/vscode/launch-config.js +1 -1
  155. package/lib/vscode/settings.js +1 -1
  156. package/lib/vscode/vscode.js +1 -1
  157. package/lib/web/next.js +3 -3
  158. package/lib/web/postcss.js +1 -1
  159. package/lib/web/react.js +3 -3
  160. package/lib/web/tailwind.js +1 -1
  161. package/lib/xmlfile.js +1 -1
  162. package/lib/yaml.js +1 -1
  163. package/package.json +1 -1
package/.jsii CHANGED
@@ -98934,7 +98934,7 @@
98934
98934
  "abstract": true,
98935
98935
  "docs": {
98936
98936
  "default": "false",
98937
- "deprecated": "This flag has been removed from Node.js 26",
98937
+ "deprecated": "This flag has been removed from Node.js 26. Use `transformTypes` instead.",
98938
98938
  "stability": "deprecated",
98939
98939
  "summary": "Whether to also enable `--experimental-transform-types`."
98940
98940
  },
@@ -98949,6 +98949,26 @@
98949
98949
  "primitive": "boolean"
98950
98950
  }
98951
98951
  },
98952
+ {
98953
+ "abstract": true,
98954
+ "docs": {
98955
+ "default": "false",
98956
+ "remarks": "Uses `amaro` (the TypeScript transformer used internally by Node.js) as an\nexternal loader via `--import=amaro/transform`. Adds a dependency on the\n`amaro` package and enables `--enable-source-maps` to preserve accurate\nstack traces.",
98957
+ "see": "https://github.com/nodejs/amaro",
98958
+ "stability": "experimental",
98959
+ "summary": "Whether to enable transformation of TypeScript-only syntax (e.g. enums, namespaces)."
98960
+ },
98961
+ "immutable": true,
98962
+ "locationInModule": {
98963
+ "filename": "src/typescript/typescript-runner.ts",
98964
+ "line": 102
98965
+ },
98966
+ "name": "transformTypes",
98967
+ "optional": true,
98968
+ "type": {
98969
+ "primitive": "boolean"
98970
+ }
98971
+ },
98952
98972
  {
98953
98973
  "abstract": true,
98954
98974
  "docs": {
@@ -100700,7 +100720,7 @@
100700
100720
  "kind": "class",
100701
100721
  "locationInModule": {
100702
100722
  "filename": "src/typescript/typescript-runner.ts",
100703
- "line": 132
100723
+ "line": 146
100704
100724
  },
100705
100725
  "methods": [
100706
100726
  {
@@ -100711,7 +100731,7 @@
100711
100731
  },
100712
100732
  "locationInModule": {
100713
100733
  "filename": "src/typescript/typescript-runner.ts",
100714
- "line": 159
100734
+ "line": 173
100715
100735
  },
100716
100736
  "name": "nodejs",
100717
100737
  "parameters": [
@@ -100737,7 +100757,7 @@
100737
100757
  },
100738
100758
  "locationInModule": {
100739
100759
  "filename": "src/typescript/typescript-runner.ts",
100740
- "line": 136
100760
+ "line": 150
100741
100761
  },
100742
100762
  "name": "tsNode",
100743
100763
  "parameters": [
@@ -100764,7 +100784,7 @@
100764
100784
  },
100765
100785
  "locationInModule": {
100766
100786
  "filename": "src/typescript/typescript-runner.ts",
100767
- "line": 146
100787
+ "line": 160
100768
100788
  },
100769
100789
  "name": "tsx",
100770
100790
  "parameters": [
@@ -100790,7 +100810,7 @@
100790
100810
  },
100791
100811
  "locationInModule": {
100792
100812
  "filename": "src/typescript/typescript-runner.ts",
100793
- "line": 186
100813
+ "line": 205
100794
100814
  },
100795
100815
  "name": "configFor",
100796
100816
  "overrides": "projen.ScriptRunner",
@@ -100816,7 +100836,7 @@
100816
100836
  },
100817
100837
  "locationInModule": {
100818
100838
  "filename": "src/typescript/typescript-runner.ts",
100819
- "line": 178
100839
+ "line": 197
100820
100840
  },
100821
100841
  "name": "copy",
100822
100842
  "parameters": [
@@ -100851,7 +100871,7 @@
100851
100871
  "kind": "interface",
100852
100872
  "locationInModule": {
100853
100873
  "filename": "src/typescript/typescript-runner.ts",
100854
- "line": 101
100874
+ "line": 114
100855
100875
  },
100856
100876
  "name": "TypeScriptRunnerOptions",
100857
100877
  "namespace": "typescript",
@@ -100865,7 +100885,7 @@
100865
100885
  "immutable": true,
100866
100886
  "locationInModule": {
100867
100887
  "filename": "src/typescript/typescript-runner.ts",
100868
- "line": 110
100888
+ "line": 123
100869
100889
  },
100870
100890
  "name": "tsconfig",
100871
100891
  "optional": true,
@@ -100882,7 +100902,7 @@
100882
100902
  "immutable": true,
100883
100903
  "locationInModule": {
100884
100904
  "filename": "src/typescript/typescript-runner.ts",
100885
- "line": 105
100905
+ "line": 118
100886
100906
  },
100887
100907
  "name": "typeCheck",
100888
100908
  "optional": true,
@@ -103544,6 +103564,6 @@
103544
103564
  "usedFeatures": [
103545
103565
  "class-covariant-overrides"
103546
103566
  ],
103547
- "version": "0.103.8",
103548
- "fingerprint": "OFEJFVHFaT9RTvtg9ISaRVmr6wlT8LWthEYgRWQ9FJg="
103567
+ "version": "0.103.9",
103568
+ "fingerprint": "pjPn3ngCbILyW94bKCCOpdCxQ4spRTJ5EiRSNr4+kOA="
103549
103569
  }
@@ -63,7 +63,7 @@ var AiAgent;
63
63
  * ai.addInstructions("Always write comprehensive tests.");
64
64
  */
65
65
  class AiInstructions extends component_1.Component {
66
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.AiInstructions", version: "0.103.8" };
66
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.AiInstructions", version: "0.103.9" };
67
67
  /**
68
68
  * Returns projen-specific instructions for AI agents.
69
69
  */
@@ -167,7 +167,7 @@ class AiInstructions extends component_1.Component {
167
167
  }
168
168
  exports.AiInstructions = AiInstructions;
169
169
  class AiInstructionsFile extends file_1.FileBase {
170
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.AiInstructionsFile", version: "0.103.8" };
170
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.AiInstructionsFile", version: "0.103.9" };
171
171
  instructions = [];
172
172
  /**
173
173
  * Adds instructions to the instruction file.
@@ -12,7 +12,7 @@ const component_1 = require("../component");
12
12
  * Creates integration tests from entry points discovered in the test tree.
13
13
  */
14
14
  class IntegrationTestAutoDiscover extends cdk_1.IntegrationTestAutoDiscoverBase {
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.IntegrationTestAutoDiscover", version: "0.103.8" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.IntegrationTestAutoDiscover", version: "0.103.9" };
16
16
  constructor(project, options) {
17
17
  super(project, options);
18
18
  for (const entrypoint of this.entrypoints) {
@@ -30,7 +30,7 @@ exports.IntegrationTestAutoDiscover = IntegrationTestAutoDiscover;
30
30
  * Creates lambdas from entry points discovered in the project's source tree.
31
31
  */
32
32
  class LambdaAutoDiscover extends cdk_1.AutoDiscoverBase {
33
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaAutoDiscover", version: "0.103.8" };
33
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaAutoDiscover", version: "0.103.9" };
34
34
  constructor(project, options) {
35
35
  super(project, {
36
36
  projectdir: options.srcdir,
@@ -50,7 +50,7 @@ exports.LambdaAutoDiscover = LambdaAutoDiscover;
50
50
  * Creates singleton lambdas from entry points discovered in the project's source tree.
51
51
  */
52
52
  class SingletonLambdaAutoDiscover extends cdk_1.AutoDiscoverBase {
53
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.SingletonLambdaAutoDiscover", version: "0.103.8" };
53
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.SingletonLambdaAutoDiscover", version: "0.103.9" };
54
54
  constructor(project, options) {
55
55
  super(project, {
56
56
  projectdir: options.srcdir,
@@ -72,7 +72,7 @@ exports.SingletonLambdaAutoDiscover = SingletonLambdaAutoDiscover;
72
72
  * Creates edge lambdas from entry points discovered in the project's source tree.
73
73
  */
74
74
  class EdgeLambdaAutoDiscover extends cdk_1.AutoDiscoverBase {
75
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.EdgeLambdaAutoDiscover", version: "0.103.8" };
75
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.EdgeLambdaAutoDiscover", version: "0.103.9" };
76
76
  constructor(project, options) {
77
77
  super(project, {
78
78
  projectdir: options.srcdir,
@@ -94,7 +94,7 @@ exports.EdgeLambdaAutoDiscover = EdgeLambdaAutoDiscover;
94
94
  * source tree.
95
95
  */
96
96
  class LambdaExtensionAutoDiscover extends cdk_1.AutoDiscoverBase {
97
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaExtensionAutoDiscover", version: "0.103.8" };
97
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaExtensionAutoDiscover", version: "0.103.9" };
98
98
  constructor(project, options) {
99
99
  super(project, {
100
100
  projectdir: options.srcdir,
@@ -115,7 +115,7 @@ exports.LambdaExtensionAutoDiscover = LambdaExtensionAutoDiscover;
115
115
  * project's source and test trees.
116
116
  */
117
117
  class AutoDiscover extends component_1.Component {
118
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AutoDiscover", version: "0.103.8" };
118
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AutoDiscover", version: "0.103.9" };
119
119
  constructor(project, options) {
120
120
  super(project);
121
121
  if (options.lambdaAutoDiscover ?? true) {
@@ -14,7 +14,7 @@ const java_1 = require("../java");
14
14
  * @pjid awscdk-app-java
15
15
  */
16
16
  class AwsCdkJavaApp extends java_1.JavaProject {
17
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkJavaApp", version: "0.103.8" };
17
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkJavaApp", version: "0.103.9" };
18
18
  /**
19
19
  * The `cdk.json` file.
20
20
  */
@@ -14,7 +14,7 @@ const python_project_1 = require("../python/python-project");
14
14
  * @pjid awscdk-app-py
15
15
  */
16
16
  class AwsCdkPythonApp extends python_project_1.PythonProject {
17
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkPythonApp", version: "0.103.8" };
17
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkPythonApp", version: "0.103.9" };
18
18
  /**
19
19
  * Common CDK tasks.
20
20
  */
@@ -54,7 +54,7 @@ const fs_1 = require("../util/fs");
54
54
  * @pjid awscdk-app-ts
55
55
  */
56
56
  class AwsCdkTypeScriptApp extends typescript_1.TypeScriptAppProject {
57
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkTypeScriptApp", version: "0.103.8" };
57
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkTypeScriptApp", version: "0.103.9" };
58
58
  /**
59
59
  * The CDK version this app is using.
60
60
  */
@@ -17,7 +17,7 @@ const dependencies_1 = require("../dependencies");
17
17
  * @pjid awscdk-construct
18
18
  */
19
19
  class AwsCdkConstructLibrary extends cdk_1.ConstructLibrary {
20
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkConstructLibrary", version: "0.103.8" };
20
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkConstructLibrary", version: "0.103.9" };
21
21
  cdkDeps;
22
22
  constructor(options) {
23
23
  super({
@@ -7,7 +7,7 @@ const awscdk_deps_1 = require("./awscdk-deps");
7
7
  * Manages dependencies on the AWS CDK for Java projects.
8
8
  */
9
9
  class AwsCdkDepsJava extends awscdk_deps_1.AwsCdkDeps {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDepsJava", version: "0.103.8" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDepsJava", version: "0.103.9" };
11
11
  packageNames() {
12
12
  return {
13
13
  coreV2: "software.amazon.awscdk/aws-cdk-lib",
@@ -7,7 +7,7 @@ const awscdk_deps_1 = require("./awscdk-deps");
7
7
  * Manages dependencies on the AWS CDK for Node.js projects.
8
8
  */
9
9
  class AwsCdkDepsJs extends awscdk_deps_1.AwsCdkDeps {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDepsJs", version: "0.103.8" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDepsJs", version: "0.103.9" };
11
11
  packageNames() {
12
12
  return {
13
13
  coreV2: "aws-cdk-lib",
@@ -7,7 +7,7 @@ const awscdk_deps_1 = require("./awscdk-deps");
7
7
  * Manages dependencies on the AWS CDK for Python projects.
8
8
  */
9
9
  class AwsCdkDepsPy extends awscdk_deps_1.AwsCdkDeps {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDepsPy", version: "0.103.8" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDepsPy", version: "0.103.9" };
11
11
  packageNames() {
12
12
  return {
13
13
  coreV2: "aws-cdk-lib",
@@ -42,7 +42,7 @@ const dependencies_1 = require("../dependencies");
42
42
  * Manages dependencies on the AWS CDK.
43
43
  */
44
44
  class AwsCdkDeps extends component_1.Component {
45
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDeps", version: "0.103.8" };
45
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.AwsCdkDeps", version: "0.103.9" };
46
46
  /**
47
47
  * The dependency requirement for AWS CDK (e.g. `^2.0.0`).
48
48
  */
@@ -11,7 +11,7 @@ const internal_1 = require("./internal");
11
11
  * CDK V2 feature flags configuration.
12
12
  */
13
13
  class CdkFeatureFlagsV2 {
14
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkFeatureFlagsV2", version: "0.103.8" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkFeatureFlagsV2", version: "0.103.9" };
15
15
  /**
16
16
  * Disable all feature flags.
17
17
  */
@@ -52,7 +52,7 @@ exports.CdkFeatureFlagsV2 = CdkFeatureFlagsV2;
52
52
  * CDK feature flags configuration.
53
53
  */
54
54
  class CdkFeatureFlags {
55
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkFeatureFlags", version: "0.103.8" };
55
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkFeatureFlags", version: "0.103.9" };
56
56
  /**
57
57
  * CDK V2 feature flags configuration.
58
58
  */
@@ -67,7 +67,7 @@ exports.CdkFeatureFlags = CdkFeatureFlags;
67
67
  * Represents cdk.json file.
68
68
  */
69
69
  class CdkConfig extends component_1.Component {
70
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkConfig", version: "0.103.8" };
70
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkConfig", version: "0.103.9" };
71
71
  /**
72
72
  * Represents the JSON file.
73
73
  */
@@ -7,7 +7,7 @@ const component_1 = require("../component");
7
7
  * Adds standard AWS CDK tasks to your project.
8
8
  */
9
9
  class CdkTasks extends component_1.Component {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkTasks", version: "0.103.8" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkTasks", version: "0.103.9" };
11
11
  /**
12
12
  * Synthesizes your app.
13
13
  */
@@ -9,7 +9,7 @@ const dependencies_1 = require("../dependencies");
9
9
  * Cloud integration tests.
10
10
  */
11
11
  class IntegrationTest extends cdk_1.IntegrationTestBase {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.IntegrationTest", version: "0.103.8" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.IntegrationTest", version: "0.103.9" };
13
13
  /**
14
14
  * Destroy the integration test resources
15
15
  */
@@ -13,7 +13,7 @@ const source_code_1 = require("../source-code");
13
13
  * Create a Lambda Extension
14
14
  */
15
15
  class LambdaExtension extends component_1.Component {
16
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaExtension", version: "0.103.8" };
16
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaExtension", version: "0.103.9" };
17
17
  constructor(project, options) {
18
18
  super(project);
19
19
  const basePath = (0, path_1.join)((0, path_1.dirname)(options.entrypoint), (0, path_1.basename)(options.entrypoint, internal_1.TYPESCRIPT_LAMBDA_EXTENSION_EXT));
@@ -63,7 +63,7 @@ const util_1 = require("../util");
63
63
  * });
64
64
  */
65
65
  class LambdaFunction extends component_1.Component {
66
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaFunction", version: "0.103.8" };
66
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaFunction", version: "0.103.9" };
67
67
  /**
68
68
  * Defines a pre-bundled AWS Lambda function construct from handler code.
69
69
  *
@@ -218,7 +218,7 @@ exports.LambdaFunction = LambdaFunction;
218
218
  class LambdaRuntime {
219
219
  functionRuntime;
220
220
  esbuildTarget;
221
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaRuntime", version: "0.103.8" };
221
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.LambdaRuntime", version: "0.103.9" };
222
222
  /**
223
223
  * Node.js 14.x
224
224
  * @deprecated Node.js 14 runtime has been deprecated on Dec 4, 2023
@@ -48,7 +48,7 @@ const consts_1 = require("./private/consts");
48
48
  const name_1 = require("../util/name");
49
49
  const path_1 = require("../util/path");
50
50
  class BuildWorkflow extends component_1.Component {
51
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.build.BuildWorkflow", version: "0.103.8" };
51
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.build.BuildWorkflow", version: "0.103.9" };
52
52
  /**
53
53
  * Name of generated github workflow
54
54
  */
@@ -43,7 +43,7 @@ const component_1 = require("../component");
43
43
  * Base class for auto-discovering and creating project subcomponents.
44
44
  */
45
45
  class AutoDiscoverBase extends component_1.Component {
46
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.AutoDiscoverBase", version: "0.103.8" };
46
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.AutoDiscoverBase", version: "0.103.9" };
47
47
  /**
48
48
  * Auto-discovered entry points with paths relative to the project
49
49
  * directory.
@@ -62,7 +62,7 @@ exports.AutoDiscoverBase = AutoDiscoverBase;
62
62
  * Base class for locating integration tests in the project's test tree.
63
63
  */
64
64
  class IntegrationTestAutoDiscoverBase extends AutoDiscoverBase {
65
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.IntegrationTestAutoDiscoverBase", version: "0.103.8" };
65
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.IntegrationTestAutoDiscoverBase", version: "0.103.9" };
66
66
  constructor(project, options) {
67
67
  super(project, {
68
68
  extension: internal_1.TYPESCRIPT_INTEG_EXT,
@@ -7,7 +7,7 @@ const jsii_project_1 = require("./jsii-project");
7
7
  * A multi-language library for CDK constructs.
8
8
  */
9
9
  class ConstructLibrary extends jsii_project_1.JsiiProject {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.ConstructLibrary", version: "0.103.8" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.ConstructLibrary", version: "0.103.9" };
11
11
  constructor(options) {
12
12
  super(options);
13
13
  this.addKeywords("cdk"); // publish to the catalog
@@ -7,7 +7,7 @@ const posix_1 = require("path/posix");
7
7
  const internal_1 = require("./internal");
8
8
  const component_1 = require("../component");
9
9
  class IntegrationTestBase extends component_1.Component {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.IntegrationTestBase", version: "0.103.8" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.IntegrationTestBase", version: "0.103.9" };
11
11
  /**
12
12
  * Deploy the integration test and update the snapshot upon success.
13
13
  */
@@ -51,7 +51,7 @@ var ValidateTsconfig;
51
51
  * }));
52
52
  */
53
53
  class JsiiBuild {
54
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.JsiiBuild", version: "0.103.8" };
54
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.JsiiBuild", version: "0.103.9" };
55
55
  options;
56
56
  extraJobOptions;
57
57
  constructor(options = {}, extraJobOptions) {
@@ -11,7 +11,7 @@ const dependencies_1 = require("../dependencies");
11
11
  * - Enforces that markdown file is checked in
12
12
  */
13
13
  class JsiiDocgen extends component_1.Component {
14
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.JsiiDocgen", version: "0.103.8" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.JsiiDocgen", version: "0.103.9" };
15
15
  constructor(scope, options = {}) {
16
16
  super(scope);
17
17
  const version = options.version ?? "*";
@@ -20,7 +20,7 @@ var Stability;
20
20
  * @pjid jsii
21
21
  */
22
22
  class JsiiProject extends typescript_1.TypeScriptProject {
23
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.JsiiProject", version: "0.103.8" };
23
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk.JsiiProject", version: "0.103.9" };
24
24
  constructor(options) {
25
25
  const { authorEmail, authorUrl } = parseAuthorAddress(options);
26
26
  const defaultOptions = {
@@ -10,7 +10,7 @@ const component_1 = require("../component");
10
10
  * found in the test tree.
11
11
  */
12
12
  class AutoDiscover extends component_1.Component {
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.AutoDiscover", version: "0.103.8" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.AutoDiscover", version: "0.103.9" };
14
14
  constructor(project, options) {
15
15
  super(project);
16
16
  if (options.integrationTestAutoDiscover ?? true) {
@@ -23,7 +23,7 @@ exports.AutoDiscover = AutoDiscover;
23
23
  * Discovers and creates integration tests from files in the test root.
24
24
  */
25
25
  class IntegrationTestAutoDiscover extends cdk_1.IntegrationTestAutoDiscoverBase {
26
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.IntegrationTestAutoDiscover", version: "0.103.8" };
26
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.IntegrationTestAutoDiscover", version: "0.103.9" };
27
27
  constructor(project, options) {
28
28
  super(project, options);
29
29
  for (const entrypoint of this.entrypoints) {
@@ -12,7 +12,7 @@ const python_project_1 = require("../python/python-project");
12
12
  * @pjid cdk8s-app-py
13
13
  */
14
14
  class Cdk8sPythonApp extends python_project_1.PythonProject {
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sPythonApp", version: "0.103.8" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sPythonApp", version: "0.103.9" };
16
16
  /**
17
17
  * The CDK8s app entrypoint
18
18
  */
@@ -50,7 +50,7 @@ const yaml_1 = require("../yaml");
50
50
  * @pjid cdk8s-app-ts
51
51
  */
52
52
  class Cdk8sTypeScriptApp extends typescript_1.TypeScriptAppProject {
53
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sTypeScriptApp", version: "0.103.8" };
53
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sTypeScriptApp", version: "0.103.9" };
54
54
  /**
55
55
  * The CDK8s app entrypoint
56
56
  */
@@ -48,7 +48,7 @@ const cdk_1 = require("../cdk");
48
48
  * @pjid cdk8s-construct
49
49
  */
50
50
  class ConstructLibraryCdk8s extends cdk_1.ConstructLibrary {
51
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.ConstructLibraryCdk8s", version: "0.103.8" };
51
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.ConstructLibraryCdk8s", version: "0.103.9" };
52
52
  /**
53
53
  * The CDK8s version this app is using.
54
54
  */
@@ -4,7 +4,7 @@ exports.Cdk8sDepsPy = void 0;
4
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
5
  const cdk8s_deps_1 = require("./cdk8s-deps");
6
6
  class Cdk8sDepsPy extends cdk8s_deps_1.Cdk8sDeps {
7
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sDepsPy", version: "0.103.8" };
7
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sDepsPy", version: "0.103.9" };
8
8
  packageNames() {
9
9
  return {
10
10
  cdk8s: "cdk8s",
@@ -42,7 +42,7 @@ const dependencies_1 = require("../dependencies");
42
42
  * Manages dependencies on the CDK8s.
43
43
  */
44
44
  class Cdk8sDeps extends component_1.Component {
45
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sDeps", version: "0.103.8" };
45
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sDeps", version: "0.103.9" };
46
46
  /**
47
47
  * The dependency requirement for CDK8s.
48
48
  */
@@ -9,7 +9,7 @@ const dependencies_1 = require("../dependencies");
9
9
  * CDK8S integration test.
10
10
  */
11
11
  class IntegrationTest extends cdk_1.IntegrationTestBase {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.IntegrationTest", version: "0.103.8" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.IntegrationTest", version: "0.103.9" };
13
13
  constructor(project, options) {
14
14
  super(project, options);
15
15
  project.deps.requestDependency({
@@ -49,7 +49,7 @@ const cdk_1 = require("../cdk");
49
49
  * @pjid cdktf-construct
50
50
  */
51
51
  class ConstructLibraryCdktf extends cdk_1.ConstructLibrary {
52
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdktf.ConstructLibraryCdktf", version: "0.103.8" };
52
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdktf.ConstructLibraryCdktf", version: "0.103.9" };
53
53
  constructor(options) {
54
54
  super(options);
55
55
  if (!options.cdktfVersion) {
@@ -54,7 +54,7 @@ const fs_1 = require("../util/fs");
54
54
  * @pjid cdktn-app-ts
55
55
  */
56
56
  class CdktnTypeScriptApp extends typescript_1.TypeScriptAppProject {
57
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdktn.CdktnTypeScriptApp", version: "0.103.8" };
57
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdktn.CdktnTypeScriptApp", version: "0.103.9" };
58
58
  /**
59
59
  * The CDKTN app entrypoint.
60
60
  */
@@ -71,9 +71,8 @@ class CdktnTypeScriptApp extends typescript_1.TypeScriptAppProject {
71
71
  constructor(options) {
72
72
  super({
73
73
  ...options,
74
- // Default to native Node.js TypeScript runner with transform-types
75
- runner: options.runner ??
76
- typescript_runner_1.TypeScriptRunner.nodejs({ experimentalTransformTypes: true }),
74
+ // Default to native Node.js TypeScript runner with type transformation via amaro
75
+ runner: options.runner ?? typescript_runner_1.TypeScriptRunner.nodejs({ transformTypes: true }),
77
76
  sampleCode: false,
78
77
  });
79
78
  this.cdktnDeps = new cdktn_deps_1.CdktnDeps(this, {
@@ -196,4 +195,4 @@ test('Snapshot', () => {
196
195
  }
197
196
  }
198
197
  }
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrdG4tYXBwLXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nka3RuL2Nka3RuLWFwcC10cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQThCO0FBQzlCLGdEQUFrQztBQUNsQyxpREFBNkM7QUFFN0MsNkNBQXlDO0FBRXpDLCtDQUEyQztBQUMzQyw0Q0FBeUM7QUFDekMsa0RBQWlEO0FBRWpELDhDQUFxRDtBQUNyRCx1RUFBbUU7QUFDbkUsbUNBQTZDO0FBc0I3Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxpQ0FBb0I7O0lBQzFEOztPQUVHO0lBQ2EsYUFBYSxDQUFTO0lBRXRDOztPQUVHO0lBQ2EsVUFBVSxDQUFhO0lBRXZDOztPQUVHO0lBQ2EsV0FBVyxDQUFjO0lBRXpCLFNBQVMsQ0FBWTtJQUVyQyxZQUFZLE9BQWtDO1FBQzVDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLG1FQUFtRTtZQUNuRSxNQUFNLEVBQ0osT0FBTyxDQUFDLE1BQU07Z0JBQ2Qsb0NBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDL0QsVUFBVSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHNCQUFTLENBQUMsSUFBSSxFQUFFO1lBQ25DLGNBQWMsRUFBRSw2QkFBYyxDQUFDLE9BQU87WUFDdEMsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLFNBQVMsQ0FBQztRQUV4RCxpRUFBaUU7UUFDakUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksd0JBQVUsQ0FBQyxJQUFJLENBQUMsQ0FB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LENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsS0FBSyxDQUNOLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixVQUFVLENBQUMsQ0FBQztRQUVwRSwwRUFBMEU7UUFDMUUsd0VBQXdFO1FBQ3hFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhO2FBQ25ELE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2FBQ3BCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFeEIsbUVBQW1FO1FBQ25FLDBFQUEwRTtRQUMxRSxhQUFhO1FBQ2IsSUFBSSxDQUFDLElBQUEsb0JBQWUsRUFBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDakUsTUFBTSxRQUFRLEdBQUc7OzhCQUVPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLGdCQUFnQjs7Ozs7OztJQU9wRSxDQUFDO1lBRUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDMUQsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IENka3RuQ29uZmlnIH0gZnJvbSBcIi4vY2RrdG4tY29uZmlnXCI7XG5pbXBvcnQgdHlwZSB7IENka3RuQ29uZmlnQ29tbW9uT3B0aW9ucyB9IGZyb20gXCIuL2Nka3RuLWNvbmZpZ1wiO1xuaW1wb3J0IHsgQ2RrdG5EZXBzIH0gZnJvbSBcIi4vY2RrdG4tZGVwc1wiO1xuaW1wb3J0IHR5cGUgeyBDZGt0bkRlcHNDb21tb25PcHRpb25zIH0gZnJvbSBcIi4vY2RrdG4tZGVwc1wiO1xuaW1wb3J0IHsgQ2RrdG5UYXNrcyB9IGZyb20gXCIuL2Nka3RuLXRhc2tzXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEZXBlbmRlbmN5VHlwZSB9IGZyb20gXCIuLi9kZXBlbmRlbmNpZXNcIjtcbmltcG9ydCB0eXBlIHsgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzY3JpcHRcIjtcbmltcG9ydCB7IFR5cGVTY3JpcHRBcHBQcm9qZWN0IH0gZnJvbSBcIi4uL3R5cGVzY3JpcHRcIjtcbmltcG9ydCB7IFR5cGVTY3JpcHRSdW5uZXIgfSBmcm9tIFwiLi4vdHlwZXNjcmlwdC90eXBlc2NyaXB0LXJ1bm5lclwiO1xuaW1wb3J0IHsgZGlyQ29udGFpbnNGaWxlIH0gZnJvbSBcIi4uL3V0aWwvZnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDZGt0blR5cGVTY3JpcHRBcHBPcHRpb25zXG4gIGV4dGVuZHNcbiAgICBUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMsXG4gICAgQ2RrdG5EZXBzQ29tbW9uT3B0aW9ucyxcbiAgICBDZGt0bkNvbmZpZ0NvbW1vbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIENES1ROIGFwcCdzIGVudHJ5cG9pbnQgKHJlbGF0aXZlIHRvIHRoZSBzb3VyY2UgZGlyZWN0b3J5LCB3aGljaCBpc1xuICAgKiBcInNyY1wiIGJ5IGRlZmF1bHQpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIm1haW4udHNcIlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwRW50cnlwb2ludD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbW1hbmQgbGluZSB0byBleGVjdXRlIGluIG9yZGVyIHRvIHN5bnRoZXNpemUgdGhlIENES1ROIGFwcGxpY2F0aW9uXG4gICAqIChsYW5ndWFnZSBzcGVjaWZpYykuXG4gICAqL1xuICByZWFkb25seSBhcHA/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ0RLVE4gYXBwIGluIFR5cGVTY3JpcHQuXG4gKlxuICogQ0RLVE4gKENESyBUZXJyYWluKSBpcyBhIGNvbW11bml0eS1kcml2ZW4gZm9yayBvZiBDREsgZm9yIFRlcnJhZm9ybSAoQ0RLVEYpLlxuICogTGVhcm4gbW9yZSBhdCBodHRwczovL2Nka3RuLmlvL1xuICpcbiAqIEBwamlkIGNka3RuLWFwcC10c1xuICovXG5leHBvcnQgY2xhc3MgQ2RrdG5UeXBlU2NyaXB0QXBwIGV4dGVuZHMgVHlwZVNjcmlwdEFwcFByb2plY3Qge1xuICAvKipcbiAgICogVGhlIENES1ROIGFwcCBlbnRyeXBvaW50LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFwcEVudHJ5cG9pbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ29tbW9uIENES1ROIHRhc2tzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka3RuVGFza3M6IENka3RuVGFza3M7XG5cbiAgLyoqXG4gICAqIGNka3RmLmpzb24gY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZGt0bkNvbmZpZzogQ2RrdG5Db25maWc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNka3RuRGVwczogQ2RrdG5EZXBzO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka3RuVHlwZVNjcmlwdEFwcE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgLy8gRGVmYXVsdCB0byBuYXRpdmUgTm9kZS5qcyBUeXBlU2NyaXB0IHJ1bm5lciB3aXRoIHRyYW5zZm9ybS10eXBlc1xuICAgICAgcnVubmVyOlxuICAgICAgICBvcHRpb25zLnJ1bm5lciA/P1xuICAgICAgICBUeXBlU2NyaXB0UnVubmVyLm5vZGVqcyh7IGV4cGVyaW1lbnRhbFRyYW5zZm9ybVR5cGVzOiB0cnVlIH0pLFxuICAgICAgc2FtcGxlQ29kZTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNka3RuRGVwcyA9IG5ldyBDZGt0bkRlcHModGhpcywge1xuICAgICAgZGVwZW5kZW5jeVR5cGU6IERlcGVuZGVuY3lUeXBlLlJVTlRJTUUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICAgIHRoaXMuYXBwRW50cnlwb2ludCA9IG9wdGlvbnMuYXBwRW50cnlwb2ludCA/PyBcIm1haW4udHNcIjtcblxuICAgIC8vIG5vIGNvbXBpbGUgc3RlcCBiZWNhdXNlIHdlIGRvIGFsbCBvZiBpdCBpbiB0eXBlc2NyaXB0IGRpcmVjdGx5XG4gICAgdGhpcy5jb21waWxlVGFzay5yZXNldCgpO1xuXG4gICAgdGhpcy5jZGt0blRhc2tzID0gbmV3IENka3RuVGFza3ModGhpcyk7XG5cbiAgICAvLyBjYWxsIGdldCBjb21tYW5kIGJlZm9yZSBidWlsZFxuICAgIHRoaXMucHJlQ29tcGlsZVRhc2suc3Bhd24odGhpcy5jZGt0blRhc2tzLmdldCk7XG5cbiAgICAvLyBhZGQgc3ludGggdG8gdGhlIGJ1aWxkXG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24odGhpcy5jZGt0blRhc2tzLnN5bnRoU2lsZW50KTtcblxuICAgIHRoaXMuY2RrdG5Db25maWcgPSBuZXcgQ2RrdG5Db25maWcodGhpcywge1xuICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBvcHRpb25zLnRlcnJhZm9ybVByb3ZpZGVycyxcbiAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IG9wdGlvbnMudGVycmFmb3JtTW9kdWxlcyxcbiAgICAgIGNvbnRleHQ6IG9wdGlvbnMuY29udGV4dCxcbiAgICAgIGNka3RuT3V0OiBvcHRpb25zLmNka3RuT3V0LFxuICAgICAgcHJvamVjdElkOiBvcHRpb25zLnByb2plY3RJZCxcbiAgICAgIHNlbmRDcmFzaFJlcG9ydHM6IG9wdGlvbnMuc2VuZENyYXNoUmVwb3J0cyxcbiAgICAgIGFwcDogdGhpcy5nZXRDZGt0bkFwcChvcHRpb25zKSxcbiAgICB9KTtcblxuICAgIHRoaXMudHNjb25maWc/LmFkZEV4Y2x1ZGUodGhpcy5jZGt0bkNvbmZpZy5jZGt0bk91dCk7XG5cbiAgICB0aGlzLmdpdGlnbm9yZS5leGNsdWRlKFwiLnRlcnJhZm9ybS9cIik7XG4gICAgdGhpcy5naXRpZ25vcmUuZXhjbHVkZShcIi50ZXJyYWZvcm0ubG9jay5oY2xcIik7XG4gICAgdGhpcy5naXRpZ25vcmUuZXhjbHVkZShcIioudGZzdGF0ZSpcIik7XG4gICAgdGhpcy5naXRpZ25vcmUuZXhjbHVkZShcIioudGZ2YXJzKlwiKTtcblxuICAgIHRoaXMubnBtaWdub3JlPy5leGNsdWRlKGAke3RoaXMuY2RrdG5Db25maWcuY2RrdG5PdXR9L2ApO1xuICAgIHRoaXMubnBtaWdub3JlPy5leGNsdWRlKFwiLmdlbi9cIik7XG5cbiAgICBpZiAob3B0aW9ucy5zYW1wbGVDb2RlID8/IHRydWUpIHtcbiAgICAgIG5ldyBTYW1wbGVDb2RlKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2RrdG5BcHAob3B0aW9uczogQ2RrdG5UeXBlU2NyaXB0QXBwT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgaWYgKG9wdGlvbnMuYXBwICYmIG9wdGlvbnMuYXBwRW50cnlwb2ludCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT25seSBvbmUgb2YgJ2FwcCcgb3IgJ2FwcEVudHJ5cG9pbnQnIGNhbiBiZSBzcGVjaWZpZWRcIik7XG4gICAgfVxuXG4gICAgLy8gcHJlZmVyIGFuIGV4cGxpY2l0bHkgcHJvdmlkZWQgYXBwIGNvbW1hbmRcbiAgICBpZiAob3B0aW9ucy5hcHApIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmFwcDtcbiAgICB9XG5cbiAgICBjb25zdCBhcHBFbnRyeXBvaW50ID0gcGF0aC5wb3NpeC5qb2luKHRoaXMuc3JjZGlyLCB0aGlzLmFwcEVudHJ5cG9pbnQpO1xuXG4gICAgLy8gVXNlIHRoZSBwcm9qZWN0J3MgcnVubmVyIHRvIHByb2R1Y2UgdGhlIGFwcCBjb21tYW5kXG4gICAgY29uc3QgeyBkZXBlbmRlbmNpZXMsIHN0ZXBzIH0gPSB0aGlzLnJ1bm5lci5jb25maWdGb3IoYXBwRW50cnlwb2ludCk7XG5cbiAgICAvLyBSZWdpc3RlciBhbnkgcnVubmVyIGRlcGVuZGVuY2llc1xuICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5kZXBzLnJlcXVlc3REZXBlbmRlbmN5KGRlcCk7XG4gICAgfVxuXG4gICAgLy8gQ29udmVydCB0aGUgbGFzdCBzdGVwJ3MgZXhlY0FyZ3MgaW50byBhIHNoZWxsIGNvbW1hbmQgc3RyaW5nIGZvciBjZGt0Zi5qc29uXG4gICAgY29uc3QgcnVuU3RlcCA9IHN0ZXBzW3N0ZXBzLmxlbmd0aCAtIDFdO1xuICAgIGlmIChydW5TdGVwLmV4ZWNBcmdzKSB7XG4gICAgICByZXR1cm4gcnVuU3RlcC5leGVjQXJncy5qb2luKFwiIFwiKTtcbiAgICB9XG5cbiAgICAvLyBGYWxsYmFjazogZGlyZWN0IG5vZGUgaW52b2NhdGlvblxuICAgIHJldHVybiBgbm9kZSAke2FwcEVudHJ5cG9pbnR9YDtcbiAgfVxufVxuXG5jbGFzcyBTYW1wbGVDb2RlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHBQcm9qZWN0OiBDZGt0blR5cGVTY3JpcHRBcHA7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogQ2RrdG5UeXBlU2NyaXB0QXBwKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG4gICAgdGhpcy5hcHBQcm9qZWN0ID0gcHJvamVjdDtcbiAgfVxuXG4gIHB1YmxpYyBzeW50aGVzaXplKCkge1xuICAgIGNvbnN0IG91dGRpciA9IHRoaXMucHJvamVjdC5vdXRkaXI7XG4gICAgY29uc3Qgc3JjZGlyID0gcGF0aC5qb2luKG91dGRpciwgdGhpcy5hcHBQcm9qZWN0LnNyY2Rpcik7XG5cbiAgICAvLyBEb24ndCBnZW5lcmF0ZSB0aGUgc2FtcGxlIGFwcCBpZiB0aGUgdXNlciBhbHJlYWR5IGhhcyBUeXBlU2NyaXB0IHNvdXJjZVxuICAgIC8vIGZpbGVzIGluIHRoZSBzb3VyY2UgZGlyZWN0b3J5IC0gd2UgZG9uJ3Qgd2FudCB0byBwb2xsdXRlIHNvbWV0aGluZyB0aGV5XG4gICAgLy8gaGF2ZSB3b3JrZWQgb24uIFdlIGNoZWNrIHJlY3Vyc2l2ZWx5IHNvIHRoYXQgYW4gZXhpc3RpbmcgZW50cnlwb2ludFxuICAgIC8vIGxvY2F0ZWQgaW4gYSBzdWJkaXJlY3RvcnkgKGUuZy4gYW4gYGFwcEVudHJ5cG9pbnRgIG9mIFwiYmluL21haW4udHNcIikgaXNcbiAgICAvLyBhbHNvIGRldGVjdGVkLiBBcyBhbiBleHRyYSBzYWZlZ3VhcmQsIG5ldmVyIG92ZXJ3cml0ZSBhbiBleGlzdGluZ1xuICAgIC8vIGVudHJ5cG9pbnQgZmlsZS5cbiAgICBjb25zdCBlbnRyeXBvaW50UGF0aCA9IHBhdGguam9pbihzcmNkaXIsIHRoaXMuYXBwUHJvamVjdC5hcHBFbnRyeXBvaW50KTtcbiAgICBpZiAoIWRpckNvbnRhaW5zRmlsZShzcmNkaXIsIFwiLnRzXCIpICYmICFmcy5leGlzdHNTeW5jKGVudHJ5cG9pbnRQYXRoKSkge1xuICAgICAgY29uc3Qgc3JjQ29kZSA9IGBpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEFwcCwgVGVycmFmb3JtU3RhY2sgfSBmcm9tICdjZGt0bic7XG5cbmV4cG9ydCBjbGFzcyBNeVN0YWNrIGV4dGVuZHMgVGVycmFmb3JtU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIGRlZmluZSByZXNvdXJjZXMgaGVyZS4uLlxuICB9XG59XG5cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbm5ldyBNeVN0YWNrKGFwcCwgJyR7dGhpcy5wcm9qZWN0Lm5hbWV9Jyk7XG5hcHAuc3ludGgoKTtgO1xuXG4gICAgICAvLyBjcmVhdGUgdGhlIGVudHJ5cG9pbnQncyBkaXJlY3RvcnkgKHdoaWNoIG1heSBiZSBhIHN1YmRpcmVjdG9yeSBvZiBgc3JjZGlyYCkgYmVmb3JlIHdyaXRpbmcgdGhlIGZpbGUuXG4gICAgICBmcy5ta2RpclN5bmMocGF0aC5kaXJuYW1lKGVudHJ5cG9pbnRQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGVudHJ5cG9pbnRQYXRoLCBzcmNDb2RlKTtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXN0ZGlyID0gcGF0aC5qb2luKG91dGRpciwgdGhpcy5hcHBQcm9qZWN0LnRlc3RkaXIpO1xuICAgIGNvbnN0IGFwcEVudHJ5cG9pbnROYW1lID0gcGF0aC5iYXNlbmFtZShcbiAgICAgIHRoaXMuYXBwUHJvamVjdC5hcHBFbnRyeXBvaW50LFxuICAgICAgXCIudHNcIixcbiAgICApO1xuICAgIGNvbnN0IHRlc3RQYXRoID0gcGF0aC5qb2luKHRlc3RkaXIsIGAke2FwcEVudHJ5cG9pbnROYW1lfS50ZXN0LnRzYCk7XG5cbiAgICAvLyBpbXBvcnQgcGF0aCB0byB0aGUgc3RhY2ssIHByZXNlcnZpbmcgYW55IHN1YmRpcmVjdG9yeSBpbiB0aGUgZW50cnlwb2ludFxuICAgIC8vIChlLmcuIFwiYmluL21haW4udHNcIiAtPiBcIi4uL3NyYy9iaW4vbWFpblwiKSBhbmQgdXNpbmcgcG9zaXggc2VwYXJhdG9ycy5cbiAgICBjb25zdCBlbnRyeXBvaW50SW1wb3J0ID0gdGhpcy5hcHBQcm9qZWN0LmFwcEVudHJ5cG9pbnRcbiAgICAgIC5yZXBsYWNlKC9cXC50cyQvLCBcIlwiKVxuICAgICAgLnNwbGl0KHBhdGguc2VwKVxuICAgICAgLmpvaW4ocGF0aC5wb3NpeC5zZXApO1xuXG4gICAgLy8gTGlrZXdpc2UsIGRvbid0IGdlbmVyYXRlIHRoZSBzYW1wbGUgdGVzdCBpZiB0aGUgdXNlciBhbHJlYWR5IGhhc1xuICAgIC8vIFR5cGVTY3JpcHQgZmlsZXMgaW4gdGhlIHRlc3QgZGlyZWN0b3J5LCBhbmQgbmV2ZXIgb3ZlcndyaXRlIGFuIGV4aXN0aW5nXG4gICAgLy8gdGVzdCBmaWxlLlxuICAgIGlmICghZGlyQ29udGFpbnNGaWxlKHRlc3RkaXIsIFwiLnRzXCIpICYmICFmcy5leGlzdHNTeW5jKHRlc3RQYXRoKSkge1xuICAgICAgY29uc3QgdGVzdENvZGUgPSBgaW1wb3J0IFwiY2RrdG4vbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgVGVzdGluZyB9IGZyb20gJ2Nka3RuJztcbmltcG9ydCB7IE15U3RhY2sgfSBmcm9tICcuLi8ke3RoaXMuYXBwUHJvamVjdC5zcmNkaXJ9LyR7ZW50cnlwb2ludEltcG9ydH0nO1xuXG50ZXN0KCdTbmFwc2hvdCcsICgpID0+IHtcbiAgY29uc3QgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgTXlTdGFjayhhcHAsICd0ZXN0Jyk7XG5cbiAgZXhwZWN0KFRlc3Rpbmcuc3ludGgoc3RhY2spKS50b01hdGNoU25hcHNob3QoKTtcbn0pO2A7XG5cbiAgICAgIGZzLm1rZGlyU3luYyhwYXRoLmRpcm5hbWUodGVzdFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmModGVzdFBhdGgsIHRlc3RDb2RlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrdG4tYXBwLXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nka3RuL2Nka3RuLWFwcC10cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQThCO0FBQzlCLGdEQUFrQztBQUNsQyxpREFBNkM7QUFFN0MsNkNBQXlDO0FBRXpDLCtDQUEyQztBQUMzQyw0Q0FBeUM7QUFDekMsa0RBQWlEO0FBRWpELDhDQUFxRDtBQUNyRCx1RUFBbUU7QUFDbkUsbUNBQTZDO0FBc0I3Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxpQ0FBb0I7O0lBQzFEOztPQUVHO0lBQ2EsYUFBYSxDQUFTO0lBRXRDOztPQUVHO0lBQ2EsVUFBVSxDQUFhO0lBRXZDOztPQUVHO0lBQ2EsV0FBVyxDQUFjO0lBRXpCLFNBQVMsQ0FBWTtJQUVyQyxZQUFZLE9BQWtDO1FBQzVDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLGlGQUFpRjtZQUNqRixNQUFNLEVBQ0osT0FBTyxDQUFDLE1BQU0sSUFBSSxvQ0FBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDckUsVUFBVSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHNCQUFTLENBQUMsSUFBSSxFQUFFO1lBQ25DLGNBQWMsRUFBRSw2QkFBYyxDQUFDLE9BQU87WUFDdEMsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLFNBQVMsQ0FBQztRQUV4RCxpRUFBaUU7UUFDakUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksd0JBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztR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QUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsS0FBSyxDQUNOLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixVQUFVLENBQUMsQ0FBQztRQUVwRSwwRUFBMEU7UUFDMUUsd0VBQXdFO1FBQ3hFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhO2FBQ25ELE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2FBQ3BCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFeEIsbUVBQW1FO1FBQ25FLDBFQUEwRTtRQUMxRSxhQUFhO1FBQ2IsSUFBSSxDQUFDLElBQUEsb0JBQWUsRUFBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDakUsTUFBTSxRQUFRLEdBQUc7OzhCQUVPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLGdCQUFnQjs7Ozs7OztJQU9wRSxDQUFDO1lBRUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDMUQsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IENka3RuQ29uZmlnIH0gZnJvbSBcIi4vY2RrdG4tY29uZmlnXCI7XG5pbXBvcnQgdHlwZSB7IENka3RuQ29uZmlnQ29tbW9uT3B0aW9ucyB9IGZyb20gXCIuL2Nka3RuLWNvbmZpZ1wiO1xuaW1wb3J0IHsgQ2RrdG5EZXBzIH0gZnJvbSBcIi4vY2RrdG4tZGVwc1wiO1xuaW1wb3J0IHR5cGUgeyBDZGt0bkRlcHNDb21tb25PcHRpb25zIH0gZnJvbSBcIi4vY2RrdG4tZGVwc1wiO1xuaW1wb3J0IHsgQ2RrdG5UYXNrcyB9IGZyb20gXCIuL2Nka3RuLXRhc2tzXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEZXBlbmRlbmN5VHlwZSB9IGZyb20gXCIuLi9kZXBlbmRlbmNpZXNcIjtcbmltcG9ydCB0eXBlIHsgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzY3JpcHRcIjtcbmltcG9ydCB7IFR5cGVTY3JpcHRBcHBQcm9qZWN0IH0gZnJvbSBcIi4uL3R5cGVzY3JpcHRcIjtcbmltcG9ydCB7IFR5cGVTY3JpcHRSdW5uZXIgfSBmcm9tIFwiLi4vdHlwZXNjcmlwdC90eXBlc2NyaXB0LXJ1bm5lclwiO1xuaW1wb3J0IHsgZGlyQ29udGFpbnNGaWxlIH0gZnJvbSBcIi4uL3V0aWwvZnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDZGt0blR5cGVTY3JpcHRBcHBPcHRpb25zXG4gIGV4dGVuZHNcbiAgICBUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMsXG4gICAgQ2RrdG5EZXBzQ29tbW9uT3B0aW9ucyxcbiAgICBDZGt0bkNvbmZpZ0NvbW1vbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIENES1ROIGFwcCdzIGVudHJ5cG9pbnQgKHJlbGF0aXZlIHRvIHRoZSBzb3VyY2UgZGlyZWN0b3J5LCB3aGljaCBpc1xuICAgKiBcInNyY1wiIGJ5IGRlZmF1bHQpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIm1haW4udHNcIlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwRW50cnlwb2ludD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbW1hbmQgbGluZSB0byBleGVjdXRlIGluIG9yZGVyIHRvIHN5bnRoZXNpemUgdGhlIENES1ROIGFwcGxpY2F0aW9uXG4gICAqIChsYW5ndWFnZSBzcGVjaWZpYykuXG4gICAqL1xuICByZWFkb25seSBhcHA/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ0RLVE4gYXBwIGluIFR5cGVTY3JpcHQuXG4gKlxuICogQ0RLVE4gKENESyBUZXJyYWluKSBpcyBhIGNvbW11bml0eS1kcml2ZW4gZm9yayBvZiBDREsgZm9yIFRlcnJhZm9ybSAoQ0RLVEYpLlxuICogTGVhcm4gbW9yZSBhdCBodHRwczovL2Nka3RuLmlvL1xuICpcbiAqIEBwamlkIGNka3RuLWFwcC10c1xuICovXG5leHBvcnQgY2xhc3MgQ2RrdG5UeXBlU2NyaXB0QXBwIGV4dGVuZHMgVHlwZVNjcmlwdEFwcFByb2plY3Qge1xuICAvKipcbiAgICogVGhlIENES1ROIGFwcCBlbnRyeXBvaW50LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFwcEVudHJ5cG9pbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ29tbW9uIENES1ROIHRhc2tzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka3RuVGFza3M6IENka3RuVGFza3M7XG5cbiAgLyoqXG4gICAqIGNka3RmLmpzb24gY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZGt0bkNvbmZpZzogQ2RrdG5Db25maWc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNka3RuRGVwczogQ2RrdG5EZXBzO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka3RuVHlwZVNjcmlwdEFwcE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgLy8gRGVmYXVsdCB0byBuYXRpdmUgTm9kZS5qcyBUeXBlU2NyaXB0IHJ1bm5lciB3aXRoIHR5cGUgdHJhbnNmb3JtYXRpb24gdmlhIGFtYXJvXG4gICAgICBydW5uZXI6XG4gICAgICAgIG9wdGlvbnMucnVubmVyID8/IFR5cGVTY3JpcHRSdW5uZXIubm9kZWpzKHsgdHJhbnNmb3JtVHlwZXM6IHRydWUgfSksXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIHRoaXMuY2RrdG5EZXBzID0gbmV3IENka3RuRGVwcyh0aGlzLCB7XG4gICAgICBkZXBlbmRlbmN5VHlwZTogRGVwZW5kZW5jeVR5cGUuUlVOVElNRSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gICAgdGhpcy5hcHBFbnRyeXBvaW50ID0gb3B0aW9ucy5hcHBFbnRyeXBvaW50ID8/IFwibWFpbi50c1wiO1xuXG4gICAgLy8gbm8gY29tcGlsZSBzdGVwIGJlY2F1c2Ugd2UgZG8gYWxsIG9mIGl0IGluIHR5cGVzY3JpcHQgZGlyZWN0bHlcbiAgICB0aGlzLmNvbXBpbGVUYXNrLnJlc2V0KCk7XG5cbiAgICB0aGlzLmNka3RuVGFza3MgPSBuZXcgQ2RrdG5UYXNrcyh0aGlzKTtcblxuICAgIC8vIGNhbGwgZ2V0IGNvbW1hbmQgYmVmb3JlIGJ1aWxkXG4gICAgdGhpcy5wcmVDb21waWxlVGFzay5zcGF3bih0aGlzLmNka3RuVGFza3MuZ2V0KTtcblxuICAgIC8vIGFkZCBzeW50aCB0byB0aGUgYnVpbGRcbiAgICB0aGlzLnBvc3RDb21waWxlVGFzay5zcGF3bih0aGlzLmNka3RuVGFza3Muc3ludGhTaWxlbnQpO1xuXG4gICAgdGhpcy5jZGt0bkNvbmZpZyA9IG5ldyBDZGt0bkNvbmZpZyh0aGlzLCB7XG4gICAgICB0ZXJyYWZvcm1Qcm92aWRlcnM6IG9wdGlvbnMudGVycmFmb3JtUHJvdmlkZXJzLFxuICAgICAgdGVycmFmb3JtTW9kdWxlczogb3B0aW9ucy50ZXJyYWZvcm1Nb2R1bGVzLFxuICAgICAgY29udGV4dDogb3B0aW9ucy5jb250ZXh0LFxuICAgICAgY2RrdG5PdXQ6IG9wdGlvbnMuY2RrdG5PdXQsXG4gICAgICBwcm9qZWN0SWQ6IG9wdGlvbnMucHJvamVjdElkLFxuICAgICAgc2VuZENyYXNoUmVwb3J0czogb3B0aW9ucy5zZW5kQ3Jhc2hSZXBvcnRzLFxuICAgICAgYXBwOiB0aGlzLmdldENka3RuQXBwKG9wdGlvbnMpLFxuICAgIH0pO1xuXG4gICAgdGhpcy50c2NvbmZpZz8uYWRkRXhjbHVkZSh0aGlzLmNka3RuQ29uZmlnLmNka3RuT3V0KTtcblxuICAgIHRoaXMuZ2l0aWdub3JlLmV4Y2x1ZGUoXCIudGVycmFmb3JtL1wiKTtcbiAgICB0aGlzLmdpdGlnbm9yZS5leGNsdWRlKFwiLnRlcnJhZm9ybS5sb2NrLmhjbFwiKTtcbiAgICB0aGlzLmdpdGlnbm9yZS5leGNsdWRlKFwiKi50ZnN0YXRlKlwiKTtcbiAgICB0aGlzLmdpdGlnbm9yZS5leGNsdWRlKFwiKi50ZnZhcnMqXCIpO1xuXG4gICAgdGhpcy5ucG1pZ25vcmU/LmV4Y2x1ZGUoYCR7dGhpcy5jZGt0bkNvbmZpZy5jZGt0bk91dH0vYCk7XG4gICAgdGhpcy5ucG1pZ25vcmU/LmV4Y2x1ZGUoXCIuZ2VuL1wiKTtcblxuICAgIGlmIChvcHRpb25zLnNhbXBsZUNvZGUgPz8gdHJ1ZSkge1xuICAgICAgbmV3IFNhbXBsZUNvZGUodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDZGt0bkFwcChvcHRpb25zOiBDZGt0blR5cGVTY3JpcHRBcHBPcHRpb25zKTogc3RyaW5nIHtcbiAgICBpZiAob3B0aW9ucy5hcHAgJiYgb3B0aW9ucy5hcHBFbnRyeXBvaW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPbmx5IG9uZSBvZiAnYXBwJyBvciAnYXBwRW50cnlwb2ludCcgY2FuIGJlIHNwZWNpZmllZFwiKTtcbiAgICB9XG5cbiAgICAvLyBwcmVmZXIgYW4gZXhwbGljaXRseSBwcm92aWRlZCBhcHAgY29tbWFuZFxuICAgIGlmIChvcHRpb25zLmFwcCkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuYXBwO1xuICAgIH1cblxuICAgIGNvbnN0IGFwcEVudHJ5cG9pbnQgPSBwYXRoLnBvc2l4LmpvaW4odGhpcy5zcmNkaXIsIHRoaXMuYXBwRW50cnlwb2ludCk7XG5cbiAgICAvLyBVc2UgdGhlIHByb2plY3QncyBydW5uZXIgdG8gcHJvZHVjZSB0aGUgYXBwIGNvbW1hbmRcbiAgICBjb25zdCB7IGRlcGVuZGVuY2llcywgc3RlcHMgfSA9IHRoaXMucnVubmVyLmNvbmZpZ0ZvcihhcHBFbnRyeXBvaW50KTtcblxuICAgIC8vIFJlZ2lzdGVyIGFueSBydW5uZXIgZGVwZW5kZW5jaWVzXG4gICAgZm9yIChjb25zdCBkZXAgb2YgZGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmRlcHMucmVxdWVzdERlcGVuZGVuY3koZGVwKTtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IHRoZSBsYXN0IHN0ZXAncyBleGVjQXJncyBpbnRvIGEgc2hlbGwgY29tbWFuZCBzdHJpbmcgZm9yIGNka3RmLmpzb25cbiAgICBjb25zdCBydW5TdGVwID0gc3RlcHNbc3RlcHMubGVuZ3RoIC0gMV07XG4gICAgaWYgKHJ1blN0ZXAuZXhlY0FyZ3MpIHtcbiAgICAgIHJldHVybiBydW5TdGVwLmV4ZWNBcmdzLmpvaW4oXCIgXCIpO1xuICAgIH1cblxuICAgIC8vIEZhbGxiYWNrOiBkaXJlY3Qgbm9kZSBpbnZvY2F0aW9uXG4gICAgcmV0dXJuIGBub2RlICR7YXBwRW50cnlwb2ludH1gO1xuICB9XG59XG5cbmNsYXNzIFNhbXBsZUNvZGUgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcFByb2plY3Q6IENka3RuVHlwZVNjcmlwdEFwcDtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBDZGt0blR5cGVTY3JpcHRBcHApIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgICB0aGlzLmFwcFByb2plY3QgPSBwcm9qZWN0O1xuICB9XG5cbiAgcHVibGljIHN5bnRoZXNpemUoKSB7XG4gICAgY29uc3Qgb3V0ZGlyID0gdGhpcy5wcm9qZWN0Lm91dGRpcjtcbiAgICBjb25zdCBzcmNkaXIgPSBwYXRoLmpvaW4ob3V0ZGlyLCB0aGlzLmFwcFByb2plY3Quc3JjZGlyKTtcblxuICAgIC8vIERvbid0IGdlbmVyYXRlIHRoZSBzYW1wbGUgYXBwIGlmIHRoZSB1c2VyIGFscmVhZHkgaGFzIFR5cGVTY3JpcHQgc291cmNlXG4gICAgLy8gZmlsZXMgaW4gdGhlIHNvdXJjZSBkaXJlY3RvcnkgLSB3ZSBkb24ndCB3YW50IHRvIHBvbGx1dGUgc29tZXRoaW5nIHRoZXlcbiAgICAvLyBoYXZlIHdvcmtlZCBvbi4gV2UgY2hlY2sgcmVjdXJzaXZlbHkgc28gdGhhdCBhbiBleGlzdGluZyBlbnRyeXBvaW50XG4gICAgLy8gbG9jYXRlZCBpbiBhIHN1YmRpcmVjdG9yeSAoZS5nLiBhbiBgYXBwRW50cnlwb2ludGAgb2YgXCJiaW4vbWFpbi50c1wiKSBpc1xuICAgIC8vIGFsc28gZGV0ZWN0ZWQuIEFzIGFuIGV4dHJhIHNhZmVndWFyZCwgbmV2ZXIgb3ZlcndyaXRlIGFuIGV4aXN0aW5nXG4gICAgLy8gZW50cnlwb2ludCBmaWxlLlxuICAgIGNvbnN0IGVudHJ5cG9pbnRQYXRoID0gcGF0aC5qb2luKHNyY2RpciwgdGhpcy5hcHBQcm9qZWN0LmFwcEVudHJ5cG9pbnQpO1xuICAgIGlmICghZGlyQ29udGFpbnNGaWxlKHNyY2RpciwgXCIudHNcIikgJiYgIWZzLmV4aXN0c1N5bmMoZW50cnlwb2ludFBhdGgpKSB7XG4gICAgICBjb25zdCBzcmNDb2RlID0gYGltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQXBwLCBUZXJyYWZvcm1TdGFjayB9IGZyb20gJ2Nka3RuJztcblxuZXhwb3J0IGNsYXNzIE15U3RhY2sgZXh0ZW5kcyBUZXJyYWZvcm1TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gZGVmaW5lIHJlc291cmNlcyBoZXJlLi4uXG4gIH1cbn1cblxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xubmV3IE15U3RhY2soYXBwLCAnJHt0aGlzLnByb2plY3QubmFtZX0nKTtcbmFwcC5zeW50aCgpO2A7XG5cbiAgICAgIC8vIGNyZWF0ZSB0aGUgZW50cnlwb2ludCdzIGRpcmVjdG9yeSAod2hpY2ggbWF5IGJlIGEgc3ViZGlyZWN0b3J5IG9mIGBzcmNkaXJgKSBiZWZvcmUgd3JpdGluZyB0aGUgZmlsZS5cbiAgICAgIGZzLm1rZGlyU3luYyhwYXRoLmRpcm5hbWUoZW50cnlwb2ludFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZW50cnlwb2ludFBhdGgsIHNyY0NvZGUpO1xuICAgIH1cblxuICAgIGNvbnN0IHRlc3RkaXIgPSBwYXRoLmpvaW4ob3V0ZGlyLCB0aGlzLmFwcFByb2plY3QudGVzdGRpcik7XG4gICAgY29uc3QgYXBwRW50cnlwb2ludE5hbWUgPSBwYXRoLmJhc2VuYW1lKFxuICAgICAgdGhpcy5hcHBQcm9qZWN0LmFwcEVudHJ5cG9pbnQsXG4gICAgICBcIi50c1wiLFxuICAgICk7XG4gICAgY29uc3QgdGVzdFBhdGggPSBwYXRoLmpvaW4odGVzdGRpciwgYCR7YXBwRW50cnlwb2ludE5hbWV9LnRlc3QudHNgKTtcblxuICAgIC8vIGltcG9ydCBwYXRoIHRvIHRoZSBzdGFjaywgcHJlc2VydmluZyBhbnkgc3ViZGlyZWN0b3J5IGluIHRoZSBlbnRyeXBvaW50XG4gICAgLy8gKGUuZy4gXCJiaW4vbWFpbi50c1wiIC0+IFwiLi4vc3JjL2Jpbi9tYWluXCIpIGFuZCB1c2luZyBwb3NpeCBzZXBhcmF0b3JzLlxuICAgIGNvbnN0IGVudHJ5cG9pbnRJbXBvcnQgPSB0aGlzLmFwcFByb2plY3QuYXBwRW50cnlwb2ludFxuICAgICAgLnJlcGxhY2UoL1xcLnRzJC8sIFwiXCIpXG4gICAgICAuc3BsaXQocGF0aC5zZXApXG4gICAgICAuam9pbihwYXRoLnBvc2l4LnNlcCk7XG5cbiAgICAvLyBMaWtld2lzZSwgZG9uJ3QgZ2VuZXJhdGUgdGhlIHNhbXBsZSB0ZXN0IGlmIHRoZSB1c2VyIGFscmVhZHkgaGFzXG4gICAgLy8gVHlwZVNjcmlwdCBmaWxlcyBpbiB0aGUgdGVzdCBkaXJlY3RvcnksIGFuZCBuZXZlciBvdmVyd3JpdGUgYW4gZXhpc3RpbmdcbiAgICAvLyB0ZXN0IGZpbGUuXG4gICAgaWYgKCFkaXJDb250YWluc0ZpbGUodGVzdGRpciwgXCIudHNcIikgJiYgIWZzLmV4aXN0c1N5bmModGVzdFBhdGgpKSB7XG4gICAgICBjb25zdCB0ZXN0Q29kZSA9IGBpbXBvcnQgXCJjZGt0bi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSAnY2RrdG4nO1xuaW1wb3J0IHsgTXlTdGFjayB9IGZyb20gJy4uLyR7dGhpcy5hcHBQcm9qZWN0LnNyY2Rpcn0vJHtlbnRyeXBvaW50SW1wb3J0fSc7XG5cbnRlc3QoJ1NuYXBzaG90JywgKCkgPT4ge1xuICBjb25zdCBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICBjb25zdCBzdGFjayA9IG5ldyBNeVN0YWNrKGFwcCwgJ3Rlc3QnKTtcblxuICBleHBlY3QoVGVzdGluZy5zeW50aChzdGFjaykpLnRvTWF0Y2hTbmFwc2hvdCgpO1xufSk7YDtcblxuICAgICAgZnMubWtkaXJTeW5jKHBhdGguZGlybmFtZSh0ZXN0UGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyh0ZXN0UGF0aCwgdGVzdENvZGUpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -46,7 +46,7 @@ const json_1 = require("../json");
46
46
  * backwards compatibility with its CDKTF origins.
47
47
  */
48
48
  class CdktnConfig extends component_1.Component {
49
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdktn.CdktnConfig", version: "0.103.8" };
49
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdktn.CdktnConfig", version: "0.103.9" };
50
50
  /**
51
51
  * Represents the JSON file.
52
52
  */