projen 0.41.0 → 0.43.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 (109) hide show
  1. package/.jsii +379 -187
  2. package/API.md +173 -40
  3. package/docs/java.md +4 -6
  4. package/docs/python.md +1 -4
  5. package/docs/typescript.md +108 -0
  6. package/lib/awscdk/auto-discover.d.ts +7 -0
  7. package/lib/awscdk/auto-discover.js +5 -4
  8. package/lib/awscdk/awscdk-app-ts.d.ts +7 -28
  9. package/lib/awscdk/awscdk-app-ts.js +30 -37
  10. package/lib/awscdk/awscdk-construct.d.ts +13 -93
  11. package/lib/awscdk/awscdk-construct.js +49 -85
  12. package/lib/awscdk/awscdk-deps.d.ts +158 -0
  13. package/lib/awscdk/awscdk-deps.js +169 -0
  14. package/lib/awscdk/cdk-config.js +1 -1
  15. package/lib/awscdk/cdk-tasks.js +1 -1
  16. package/lib/awscdk/index.d.ts +1 -0
  17. package/lib/awscdk/index.js +2 -1
  18. package/lib/awscdk/integration-test.js +1 -1
  19. package/lib/awscdk/java-app.js +1 -1
  20. package/lib/awscdk/lambda-function.d.ts +8 -1
  21. package/lib/awscdk/lambda-function.js +14 -5
  22. package/lib/cdk/construct-lib.js +1 -1
  23. package/lib/cdk/jsii-docgen.js +1 -1
  24. package/lib/cdk/jsii-project.js +1 -1
  25. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  26. package/lib/cdk8s/cdk8s-construct.js +1 -1
  27. package/lib/cdktf/cdktf-construct.js +1 -1
  28. package/lib/component.js +1 -1
  29. package/lib/dependencies.js +1 -1
  30. package/lib/dev-env.js +1 -1
  31. package/lib/docker-compose.js +2 -2
  32. package/lib/file.js +1 -1
  33. package/lib/gitattributes.js +1 -1
  34. package/lib/github/auto-approve.js +1 -1
  35. package/lib/github/auto-merge.js +1 -1
  36. package/lib/github/dependabot.js +1 -1
  37. package/lib/github/github-project.js +1 -1
  38. package/lib/github/github.js +1 -1
  39. package/lib/github/mergify.js +1 -1
  40. package/lib/github/pr-template.js +1 -1
  41. package/lib/github/pull-request-lint.js +1 -1
  42. package/lib/github/stale.js +1 -1
  43. package/lib/github/task-workflow.js +1 -1
  44. package/lib/github/workflows.js +1 -1
  45. package/lib/gitpod.js +1 -1
  46. package/lib/ignore-file.js +1 -1
  47. package/lib/ini.js +1 -1
  48. package/lib/java/java-project.js +1 -1
  49. package/lib/java/junit.js +1 -1
  50. package/lib/java/maven-compile.js +1 -1
  51. package/lib/java/maven-packaging.js +1 -1
  52. package/lib/java/maven-sample.js +1 -1
  53. package/lib/java/pom.js +1 -1
  54. package/lib/java/projenrc.js +1 -1
  55. package/lib/javascript/bundler.js +1 -1
  56. package/lib/javascript/eslint.js +1 -1
  57. package/lib/javascript/jest.js +1 -1
  58. package/lib/javascript/node-package.js +6 -2
  59. package/lib/javascript/node-project.js +1 -1
  60. package/lib/javascript/npm-config.js +1 -1
  61. package/lib/javascript/projenrc.js +1 -1
  62. package/lib/javascript/typescript-config.js +1 -1
  63. package/lib/javascript/upgrade-dependencies.js +2 -2
  64. package/lib/json.js +1 -1
  65. package/lib/license.js +1 -1
  66. package/lib/logger.js +1 -1
  67. package/lib/makefile.js +1 -1
  68. package/lib/object-file.js +1 -1
  69. package/lib/project-build.js +1 -1
  70. package/lib/project.js +1 -1
  71. package/lib/projects.js +1 -1
  72. package/lib/projenrc-json.js +1 -1
  73. package/lib/python/pip.js +1 -1
  74. package/lib/python/poetry.js +2 -2
  75. package/lib/python/projenrc.js +1 -1
  76. package/lib/python/pytest.js +1 -1
  77. package/lib/python/python-project.js +1 -1
  78. package/lib/python/python-sample.js +1 -1
  79. package/lib/python/requirements-file.js +1 -1
  80. package/lib/python/setuppy.js +1 -1
  81. package/lib/python/setuptools.js +1 -1
  82. package/lib/python/venv.js +1 -1
  83. package/lib/readme.js +1 -1
  84. package/lib/release/publisher.js +1 -1
  85. package/lib/release/release-trigger.js +1 -1
  86. package/lib/release/release.js +1 -1
  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/testing.js +1 -1
  94. package/lib/textfile.js +1 -1
  95. package/lib/toml.js +1 -1
  96. package/lib/typescript/projenrc.js +1 -1
  97. package/lib/typescript/typescript-typedoc.js +1 -1
  98. package/lib/typescript/typescript.js +3 -3
  99. package/lib/version.js +1 -1
  100. package/lib/vscode/devcontainer.js +1 -1
  101. package/lib/vscode/launch-config.js +1 -1
  102. package/lib/vscode/vscode.js +1 -1
  103. package/lib/web/next.js +3 -3
  104. package/lib/web/postcss.js +1 -1
  105. package/lib/web/react.js +4 -4
  106. package/lib/web/tailwind.js +1 -1
  107. package/lib/xmlfile.js +1 -1
  108. package/lib/yaml.js +1 -1
  109. package/package.json +1 -1
package/API.md CHANGED
@@ -39,6 +39,7 @@ Name|Description
39
39
  [YamlFile](#projen-yamlfile)|Represents a YAML file.
40
40
  [awscdk.AutoDiscover](#projen-awscdk-autodiscover)|Automatically creates a `LambdaFunction` for all `.lambda.ts` files under the source directory of the project.
41
41
  [awscdk.AwsCdkConstructLibrary](#projen-awscdk-awscdkconstructlibrary)|AWS CDK construct library project.
42
+ [awscdk.AwsCdkDeps](#projen-awscdk-awscdkdeps)|Manages dependencies on the AWS CDK.
42
43
  [awscdk.AwsCdkJavaApp](#projen-awscdk-awscdkjavaapp)|AWS CDK app in Java.
43
44
  [awscdk.AwsCdkTypeScriptApp](#projen-awscdk-awscdktypescriptapp)|AWS CDK app in TypeScript.
44
45
  [awscdk.CdkConfig](#projen-awscdk-cdkconfig)|Represents cdk.json file.
@@ -162,7 +163,9 @@ Name|Description
162
163
  [XmlFileOptions](#projen-xmlfileoptions)|Options for `XmlFile`.
163
164
  [YamlFileOptions](#projen-yamlfileoptions)|Options for `JsonFile`.
164
165
  [awscdk.AutoDiscoverOptions](#projen-awscdk-autodiscoveroptions)|Options for `AutoDiscover`.
165
- [awscdk.AwsCdkConstructLibraryOptions](#projen-awscdk-awscdkconstructlibraryoptions)|Options for the construct-lib-aws project.
166
+ [awscdk.AwsCdkConstructLibraryOptions](#projen-awscdk-awscdkconstructlibraryoptions)|Options for `AwsCdkConstructLibrary`.
167
+ [awscdk.AwsCdkDepsCommonOptions](#projen-awscdk-awscdkdepscommonoptions)|Options for `AwsCdkDeps`.
168
+ [awscdk.AwsCdkDepsOptions](#projen-awscdk-awscdkdepsoptions)|*No description*
166
169
  [awscdk.AwsCdkJavaAppOptions](#projen-awscdk-awscdkjavaappoptions)|*No description*
167
170
  [awscdk.AwsCdkTypeScriptAppOptions](#projen-awscdk-awscdktypescriptappoptions)|*No description*
168
171
  [awscdk.CdkConfigCommonOptions](#projen-awscdk-cdkconfigcommonoptions)|Common options for `cdk.json`.
@@ -2852,6 +2855,7 @@ new awscdk.AutoDiscover(project: Project, options: AutoDiscoverOptions)
2852
2855
 
2853
2856
  * **project** (<code>[Project](#projen-project)</code>) *No description*
2854
2857
  * **options** (<code>[awscdk.AutoDiscoverOptions](#projen-awscdk-autodiscoveroptions)</code>) *No description*
2858
+ * **cdkDeps** (<code>[awscdk.AwsCdkDeps](#projen-awscdk-awscdkdeps)</code>) AWS CDK dependency manager.
2855
2859
  * **srcdir** (<code>string</code>) Project source tree (relative to project output directory).
2856
2860
  * **testdir** (<code>string</code>) Test source tree.
2857
2861
  * **tsconfigPath** (<code>string</code>) Path to the tsconfig file to use for integration tests.
@@ -3019,14 +3023,14 @@ new awscdk.AwsCdkConstructLibrary(options: AwsCdkConstructLibraryOptions)
3019
3023
  * **python** (<code>[cdk.JsiiPythonTarget](#projen-cdk-jsiipythontarget)</code>) *No description* __*Optional*__
3020
3024
  * **rootdir** (<code>string</code>) *No description* __*Default*__: "."
3021
3025
  * **catalog** (<code>[cdk.Catalog](#projen-cdk-catalog)</code>) Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:. __*Default*__: new version will be announced
3022
- * **cdkVersion** (<code>string</code>) Minimum target version this library is tested against.
3023
- * **cdkAssert** (<code>boolean</code>) Install the @aws-cdk/assert library? __*Default*__: false
3024
- * **cdkAssertions** (<code>boolean</code>) Install the @aws-cdk/assertions library? __*Default*__: true
3026
+ * **cdkVersion** (<code>string</code>) Minimum version of the AWS CDK to depend on.
3027
+ * **cdkAssert** (<code>boolean</code>) Install the @aws-cdk/assert library? __*Default*__: will be included by default for AWS CDK >= 1.0.0 < 2.0.0
3028
+ * **cdkAssertions** (<code>boolean</code>) Install the @aws-cdk/assertions library? __*Default*__: will be included by default for AWS CDK >= 1.111.0 < 2.0.0
3025
3029
  * **cdkDependencies** (<code>Array<string></code>) Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed? __*Optional*__
3026
3030
  * **cdkDependenciesAsDeps** (<code>boolean</code>) If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). __*Default*__: true
3027
3031
  * **cdkTestDependencies** (<code>Array<string></code>) AWS CDK modules required for testing. __*Optional*__
3028
- * **cdkVersionPinning** (<code>boolean</code>) Use pinned version instead of caret version for CDK. __*Default*__: false
3029
- * **constructsVersion** (<code>string</code>) Minimum target version of constructs being tested against. If not provided, the default value depends on the configured `cdkVersion`:. __*Default*__: When the default behavior is used, the dependency on `constructs` will be added as both a `peerDependency` and a `devDependency`.
3032
+ * **cdkVersionPinning** (<code>boolean</code>) Use pinned version instead of caret version for CDK. __*Optional*__
3033
+ * **constructsVersion** (<code>string</code>) Minimum version of the `constructs` library to depend on. __*Default*__: for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5".
3030
3034
  * **lambdaAutoDiscover** (<code>boolean</code>) Automatically adds an `aws_lambda.Function` for each `.lambda.ts` handler in your source tree. If this is disabled, you either need to explicitly call `aws_lambda.Function.autoDiscover()` or define a `new aws_lambda.Function()` for each handler. __*Default*__: true
3031
3035
  * **lambdaOptions** (<code>[awscdk.LambdaFunctionCommonOptions](#projen-awscdk-lambdafunctioncommonoptions)</code>) Common options for all AWS Lambda functions. __*Default*__: default options
3032
3036
 
@@ -3037,24 +3041,18 @@ new awscdk.AwsCdkConstructLibrary(options: AwsCdkConstructLibraryOptions)
3037
3041
 
3038
3042
  Name | Type | Description
3039
3043
  -----|------|-------------
3040
- **cdkDependenciesAsDeps**🔹 | <code>boolean</code> | Whether CDK dependencies are added as normal dependencies (and peer dependencies).
3044
+ **cdkDeps**🔹 | <code>[awscdk.AwsCdkDeps](#projen-awscdk-awscdkdeps)</code> | <span></span>
3041
3045
  **cdkVersion**🔹 | <code>string</code> | The target CDK version for this library.
3042
3046
  **version**⚠️ | <code>string</code> | <span></span>
3043
3047
 
3044
3048
  ### Methods
3045
3049
 
3046
3050
 
3047
- #### addCdkDependencies(...deps)🔹 <a id="projen-awscdk-awscdkconstructlibrary-addcdkdependencies"></a>
3051
+ #### addCdkDependencies(...deps)⚠️ <a id="projen-awscdk-awscdkconstructlibrary-addcdkdependencies"></a>
3048
3052
 
3049
- Adds CDK modules as runtime dependencies.
3053
+ Adds dependencies to AWS CDK modules.
3050
3054
 
3051
- Modules are currently by default added with a caret CDK version both as "dependencies"
3052
- and "peerDependencies". This is because currently npm would not
3053
- automatically install peer dependencies that are not declared as concerete
3054
- dependencies by the consumer, so this is a little npm "hack" so that
3055
- consumers will not need to depend on them directly if they don't interact
3056
- with them.
3057
- See `cdkDependenciesAsDeps` for changing the default behavior.
3055
+ Since this is a library project, dependencies will be added as peer dependencies.
3058
3056
 
3059
3057
  ```ts
3060
3058
  addCdkDependencies(...deps: string[]): void
@@ -3065,9 +3063,9 @@ addCdkDependencies(...deps: string[]): void
3065
3063
 
3066
3064
 
3067
3065
 
3068
- #### addCdkTestDependencies(...deps)🔹 <a id="projen-awscdk-awscdkconstructlibrary-addcdktestdependencies"></a>
3066
+ #### addCdkTestDependencies(...deps)⚠️ <a id="projen-awscdk-awscdkconstructlibrary-addcdktestdependencies"></a>
3069
3067
 
3070
- Adds CDK modules as test dependencies.
3068
+ Adds AWS CDK modules as dev dependencies.
3071
3069
 
3072
3070
  ```ts
3073
3071
  addCdkTestDependencies(...deps: string[]): void
@@ -3080,6 +3078,86 @@ addCdkTestDependencies(...deps: string[]): void
3080
3078
 
3081
3079
 
3082
3080
 
3081
+ ## class AwsCdkDeps 🔹 <a id="projen-awscdk-awscdkdeps"></a>
3082
+
3083
+ Manages dependencies on the AWS CDK.
3084
+
3085
+ __Submodule__: awscdk
3086
+
3087
+ __Extends__: [Component](#projen-component)
3088
+
3089
+ ### Initializer
3090
+
3091
+
3092
+
3093
+
3094
+ ```ts
3095
+ new awscdk.AwsCdkDeps(project: Project, options: AwsCdkDepsOptions)
3096
+ ```
3097
+
3098
+ * **project** (<code>[Project](#projen-project)</code>) *No description*
3099
+ * **options** (<code>[awscdk.AwsCdkDepsOptions](#projen-awscdk-awscdkdepsoptions)</code>) *No description*
3100
+ * **cdkVersion** (<code>string</code>) Minimum version of the AWS CDK to depend on.
3101
+ * **cdkAssert** (<code>boolean</code>) Install the @aws-cdk/assert library? __*Default*__: will be included by default for AWS CDK >= 1.0.0 < 2.0.0
3102
+ * **cdkAssertions** (<code>boolean</code>) Install the @aws-cdk/assertions library? __*Default*__: will be included by default for AWS CDK >= 1.111.0 < 2.0.0
3103
+ * **cdkDependencies** (<code>Array<string></code>) Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed? __*Optional*__
3104
+ * **cdkDependenciesAsDeps** (<code>boolean</code>) If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). __*Default*__: true
3105
+ * **cdkTestDependencies** (<code>Array<string></code>) AWS CDK modules required for testing. __*Optional*__
3106
+ * **cdkVersionPinning** (<code>boolean</code>) Use pinned version instead of caret version for CDK. __*Optional*__
3107
+ * **constructsVersion** (<code>string</code>) Minimum version of the `constructs` library to depend on. __*Default*__: for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5".
3108
+ * **dependencyType** (<code>[DependencyType](#projen-dependencytype)</code>) The type of dependency to use for runtime AWS CDK and `constructs` modules.
3109
+
3110
+
3111
+
3112
+ ### Properties
3113
+
3114
+
3115
+ Name | Type | Description
3116
+ -----|------|-------------
3117
+ **cdkDependenciesAsDeps**⚠️ | <code>boolean</code> | Whether CDK dependencies are added as normal dependencies (and peer dependencies).
3118
+ **cdkMajorVersion**🔹 | <code>number</code> | The major version of the AWS CDK (e.g. 1, 2, ...).
3119
+ **cdkMinimumVersion**🔹 | <code>string</code> | The minimum version of the AWS CDK (e.g. `2.0.0`).
3120
+ **cdkVersion**🔹 | <code>string</code> | The dependency requirement for AWS CDK (e.g. `^2.0.0`).
3121
+
3122
+ ### Methods
3123
+
3124
+
3125
+ #### addV1Dependencies(...deps)🔹 <a id="projen-awscdk-awscdkdeps-addv1dependencies"></a>
3126
+
3127
+ Adds dependencies to AWS CDK modules.
3128
+
3129
+ The type of dependency is determined by the `dependencyType` option.
3130
+
3131
+ This method is not supported in CDK v2. Use `project.addPeerDeps()` or
3132
+ `project.addDeps()` as appropriate.
3133
+
3134
+ ```ts
3135
+ addV1Dependencies(...deps: string[]): void
3136
+ ```
3137
+
3138
+ * **deps** (<code>string</code>) names of cdk modules (e.g. `@aws-cdk/aws-lambda`).
3139
+
3140
+
3141
+
3142
+
3143
+ #### addV1DevDependencies(...deps)🔹 <a id="projen-awscdk-awscdkdeps-addv1devdependencies"></a>
3144
+
3145
+ Adds AWS CDK modules as dev dependencies.
3146
+
3147
+ This method is not supported in CDK v2. Use `project.addPeerDeps()` or
3148
+ `project.addDeps()` as appropriate.
3149
+
3150
+ ```ts
3151
+ addV1DevDependencies(...deps: string[]): void
3152
+ ```
3153
+
3154
+ * **deps** (<code>string</code>) names of cdk modules (e.g. `@aws-cdk/aws-lambda`).
3155
+
3156
+
3157
+
3158
+
3159
+
3160
+
3083
3161
  ## class AwsCdkJavaApp 🔹 <a id="projen-awscdk-awscdkjavaapp"></a>
3084
3162
 
3085
3163
  AWS CDK app in Java.
@@ -3327,10 +3405,15 @@ new awscdk.AwsCdkTypeScriptApp(options: AwsCdkTypeScriptAppOptions)
3327
3405
  * **requireApproval** (<code>[awscdk.ApprovalLevel](#projen-awscdk-approvallevel)</code>) To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them. __*Default*__: ApprovalLevel.BROADENING
3328
3406
  * **watchExcludes** (<code>Array<string></code>) Glob patterns to exclude from `cdk watch`. __*Default*__: []
3329
3407
  * **watchIncludes** (<code>Array<string></code>) Glob patterns to include in `cdk watch`. __*Default*__: []
3330
- * **cdkVersion** (<code>string</code>) AWS CDK version to use.
3408
+ * **cdkVersion** (<code>string</code>) Minimum version of the AWS CDK to depend on.
3409
+ * **cdkAssert** (<code>boolean</code>) Install the @aws-cdk/assert library? __*Default*__: will be included by default for AWS CDK >= 1.0.0 < 2.0.0
3410
+ * **cdkAssertions** (<code>boolean</code>) Install the @aws-cdk/assertions library? __*Default*__: will be included by default for AWS CDK >= 1.111.0 < 2.0.0
3411
+ * **cdkDependencies** (<code>Array<string></code>) Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed? __*Optional*__
3412
+ * **cdkDependenciesAsDeps** (<code>boolean</code>) If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). __*Default*__: true
3413
+ * **cdkTestDependencies** (<code>Array<string></code>) AWS CDK modules required for testing. __*Optional*__
3414
+ * **cdkVersionPinning** (<code>boolean</code>) Use pinned version instead of caret version for CDK. __*Optional*__
3415
+ * **constructsVersion** (<code>string</code>) Minimum version of the `constructs` library to depend on. __*Default*__: for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5".
3331
3416
  * **appEntrypoint** (<code>string</code>) The CDK app's entrypoint (relative to the source directory, which is "src" by default). __*Default*__: "main.ts"
3332
- * **cdkDependencies** (<code>Array<string></code>) Which AWS CDK modules (those that start with "@aws-cdk/") this app uses. __*Optional*__
3333
- * **cdkVersionPinning** (<code>boolean</code>) Use pinned version instead of caret version for CDK. __*Default*__: false
3334
3417
  * **lambdaAutoDiscover** (<code>boolean</code>) Automatically adds an `awscdk.LambdaFunction` for each `.lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. __*Default*__: true
3335
3418
  * **lambdaOptions** (<code>[awscdk.LambdaFunctionCommonOptions](#projen-awscdk-lambdafunctioncommonoptions)</code>) Common options for all AWS Lambda functions. __*Default*__: default options
3336
3419
 
@@ -3343,6 +3426,7 @@ Name | Type | Description
3343
3426
  -----|------|-------------
3344
3427
  **appEntrypoint**🔹 | <code>string</code> | The CDK app entrypoint.
3345
3428
  **cdkConfig**🔹 | <code>[awscdk.CdkConfig](#projen-awscdk-cdkconfig)</code> | cdk.json configuration.
3429
+ **cdkDeps**🔹 | <code>[awscdk.AwsCdkDeps](#projen-awscdk-awscdkdeps)</code> | <span></span>
3346
3430
  **cdkTasks**🔹 | <code>[awscdk.CdkTasks](#projen-awscdk-cdktasks)</code> | Common CDK tasks.
3347
3431
  **cdkVersion**🔹 | <code>string</code> | The CDK version this app is using.
3348
3432
 
@@ -3593,14 +3677,14 @@ new awscdk.ConstructLibraryAws(options: AwsCdkConstructLibraryOptions)
3593
3677
  * **python** (<code>[cdk.JsiiPythonTarget](#projen-cdk-jsiipythontarget)</code>) *No description* __*Optional*__
3594
3678
  * **rootdir** (<code>string</code>) *No description* __*Default*__: "."
3595
3679
  * **catalog** (<code>[cdk.Catalog](#projen-cdk-catalog)</code>) Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:. __*Default*__: new version will be announced
3596
- * **cdkVersion** (<code>string</code>) Minimum target version this library is tested against.
3597
- * **cdkAssert** (<code>boolean</code>) Install the @aws-cdk/assert library? __*Default*__: false
3598
- * **cdkAssertions** (<code>boolean</code>) Install the @aws-cdk/assertions library? __*Default*__: true
3680
+ * **cdkVersion** (<code>string</code>) Minimum version of the AWS CDK to depend on.
3681
+ * **cdkAssert** (<code>boolean</code>) Install the @aws-cdk/assert library? __*Default*__: will be included by default for AWS CDK >= 1.0.0 < 2.0.0
3682
+ * **cdkAssertions** (<code>boolean</code>) Install the @aws-cdk/assertions library? __*Default*__: will be included by default for AWS CDK >= 1.111.0 < 2.0.0
3599
3683
  * **cdkDependencies** (<code>Array<string></code>) Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed? __*Optional*__
3600
3684
  * **cdkDependenciesAsDeps** (<code>boolean</code>) If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`). __*Default*__: true
3601
3685
  * **cdkTestDependencies** (<code>Array<string></code>) AWS CDK modules required for testing. __*Optional*__
3602
- * **cdkVersionPinning** (<code>boolean</code>) Use pinned version instead of caret version for CDK. __*Default*__: false
3603
- * **constructsVersion** (<code>string</code>) Minimum target version of constructs being tested against. If not provided, the default value depends on the configured `cdkVersion`:. __*Default*__: When the default behavior is used, the dependency on `constructs` will be added as both a `peerDependency` and a `devDependency`.
3686
+ * **cdkVersionPinning** (<code>boolean</code>) Use pinned version instead of caret version for CDK. __*Optional*__
3687
+ * **constructsVersion** (<code>string</code>) Minimum version of the `constructs` library to depend on. __*Default*__: for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5".
3604
3688
  * **lambdaAutoDiscover** (<code>boolean</code>) Automatically adds an `aws_lambda.Function` for each `.lambda.ts` handler in your source tree. If this is disabled, you either need to explicitly call `aws_lambda.Function.autoDiscover()` or define a `new aws_lambda.Function()` for each handler. __*Default*__: true
3605
3689
  * **lambdaOptions** (<code>[awscdk.LambdaFunctionCommonOptions](#projen-awscdk-lambdafunctioncommonoptions)</code>) Common options for all AWS Lambda functions. __*Default*__: default options
3606
3690
 
@@ -3676,6 +3760,7 @@ new awscdk.LambdaFunction(project: Project, options: LambdaFunctionOptions)
3676
3760
  * **options** (<code>[awscdk.LambdaFunctionOptions](#projen-awscdk-lambdafunctionoptions)</code>) Options.
3677
3761
  * **bundlingOptions** (<code>[javascript.BundlingOptions](#projen-javascript-bundlingoptions)</code>) Bundling options for this AWS Lambda function. __*Default*__: defaults
3678
3762
  * **runtime** (<code>[awscdk.LambdaRuntime](#projen-awscdk-lambdaruntime)</code>) The node.js version to target. __*Default*__: Runtime.NODEJS_14_X
3763
+ * **cdkDeps** (<code>[awscdk.AwsCdkDeps](#projen-awscdk-awscdkdeps)</code>) AWS CDK dependency manager.
3679
3764
  * **entrypoint** (<code>string</code>) A path from the project root directory to a TypeScript file which contains the AWS Lambda handler entrypoint (exports a `handler` function).
3680
3765
  * **constructFile** (<code>string</code>) The name of the generated TypeScript source file. __*Default*__: The name of the entrypoint file, with the `-function.ts` suffix instead of `.lambda.ts`.
3681
3766
  * **constructName** (<code>string</code>) The name of the generated `lambda.Function` subclass. __*Default*__: A pascal cased version of the name of the entrypoint file, with the extension `Function` (e.g. `ResizeImageFunction`).
@@ -10004,6 +10089,7 @@ Options for `AutoDiscover`.
10004
10089
 
10005
10090
  Name | Type | Description
10006
10091
  -----|------|-------------
10092
+ **cdkDeps**🔹 | <code>[awscdk.AwsCdkDeps](#projen-awscdk-awscdkdeps)</code> | AWS CDK dependency manager.
10007
10093
  **srcdir**🔹 | <code>string</code> | Project source tree (relative to project output directory).
10008
10094
  **testdir**🔹 | <code>string</code> | Test source tree.
10009
10095
  **tsconfigPath**🔹 | <code>string</code> | Path to the tsconfig file to use for integration tests.
@@ -10014,7 +10100,7 @@ Name | Type | Description
10014
10100
  ## struct AwsCdkConstructLibraryOptions 🔹 <a id="projen-awscdk-awscdkconstructlibraryoptions"></a>
10015
10101
 
10016
10102
 
10017
- Options for the construct-lib-aws project.
10103
+ Options for `AwsCdkConstructLibrary`.
10018
10104
 
10019
10105
 
10020
10106
 
@@ -10022,7 +10108,7 @@ Name | Type | Description
10022
10108
  -----|------|-------------
10023
10109
  **author**🔹 | <code>string</code> | The name of the library author.
10024
10110
  **authorAddress**🔹 | <code>string</code> | Email or URL of the library author.
10025
- **cdkVersion**🔹 | <code>string</code> | Minimum target version this library is tested against.
10111
+ **cdkVersion**🔹 | <code>string</code> | Minimum version of the AWS CDK to depend on.
10026
10112
  **defaultReleaseBranch**🔹 | <code>string</code> | The name of the main release branch.
10027
10113
  **name**🔹 | <code>string</code> | This is the name of your project.
10028
10114
  **repositoryUrl**🔹 | <code>string</code> | Git repository URL.
@@ -10043,19 +10129,19 @@ Name | Type | Description
10043
10129
  **bundledDeps**?🔹 | <code>Array<string></code> | List of dependencies to bundle into this module.<br/>__*Optional*__
10044
10130
  **bundlerOptions**?🔹 | <code>[javascript.BundlerOptions](#projen-javascript-bundleroptions)</code> | Options for `Bundler`.<br/>__*Optional*__
10045
10131
  **catalog**?🔹 | <code>[cdk.Catalog](#projen-cdk-catalog)</code> | Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:.<br/>__*Default*__: new version will be announced
10046
- **cdkAssert**?⚠️ | <code>boolean</code> | Install the @aws-cdk/assert library?<br/>__*Default*__: false
10047
- **cdkAssertions**?🔹 | <code>boolean</code> | Install the @aws-cdk/assertions library?<br/>__*Default*__: true
10132
+ **cdkAssert**?⚠️ | <code>boolean</code> | Install the @aws-cdk/assert library?<br/>__*Default*__: will be included by default for AWS CDK >= 1.0.0 < 2.0.0
10133
+ **cdkAssertions**?🔹 | <code>boolean</code> | Install the @aws-cdk/assertions library?<br/>__*Default*__: will be included by default for AWS CDK >= 1.111.0 < 2.0.0
10048
10134
  **cdkDependencies**?⚠️ | <code>Array<string></code> | Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed?<br/>__*Optional*__
10049
10135
  **cdkDependenciesAsDeps**?⚠️ | <code>boolean</code> | If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`).<br/>__*Default*__: true
10050
10136
  **cdkTestDependencies**?⚠️ | <code>Array<string></code> | AWS CDK modules required for testing.<br/>__*Optional*__
10051
- **cdkVersionPinning**?🔹 | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Default*__: false
10137
+ **cdkVersionPinning**?🔹 | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Optional*__
10052
10138
  **clobber**?🔹 | <code>boolean</code> | Add a `clobber` task which resets the repo to origin.<br/>__*Default*__: true
10053
10139
  **codeArtifactOptions**?🔹 | <code>[javascript.CodeArtifactOptions](#projen-javascript-codeartifactoptions)</code> | Options for publishing npm package to AWS CodeArtifact.<br/>__*Default*__: undefined
10054
10140
  **codeCov**?🔹 | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v1 A secret is required for private repos. Configured with @codeCovTokenSecret.<br/>__*Default*__: false
10055
10141
  **codeCovTokenSecret**?🔹 | <code>string</code> | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.<br/>__*Default*__: if this option is not specified, only public repositories are supported
10056
10142
  **compat**?🔹 | <code>boolean</code> | Automatically run API compatibility test against the latest version published to npm after compilation.<br/>__*Default*__: false
10057
10143
  **compatIgnore**?🔹 | <code>string</code> | Name of the ignore file for API compatibility tests.<br/>__*Default*__: ".compatignore"
10058
- **constructsVersion**?🔹 | <code>string</code> | Minimum target version of constructs being tested against. If not provided, the default value depends on the configured `cdkVersion`:.<br/>__*Default*__: When the default behavior is used, the dependency on `constructs` will be added as both a `peerDependency` and a `devDependency`.
10144
+ **constructsVersion**?🔹 | <code>string</code> | Minimum version of the `constructs` library to depend on.<br/>__*Default*__: for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5".
10059
10145
  **copyrightOwner**?🔹 | <code>string</code> | License copyright owner.<br/>__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined.
10060
10146
  **copyrightPeriod**?🔹 | <code>string</code> | The copyright years to put in the LICENSE file.<br/>__*Default*__: current year
10061
10147
  **dependabot**?🔹 | <code>boolean</code> | Use dependabot to handle dependency upgrades.<br/>__*Default*__: false
@@ -10170,6 +10256,47 @@ Name | Type | Description
10170
10256
 
10171
10257
 
10172
10258
 
10259
+ ## struct AwsCdkDepsCommonOptions 🔹 <a id="projen-awscdk-awscdkdepscommonoptions"></a>
10260
+
10261
+
10262
+ Options for `AwsCdkDeps`.
10263
+
10264
+
10265
+
10266
+ Name | Type | Description
10267
+ -----|------|-------------
10268
+ **cdkVersion**🔹 | <code>string</code> | Minimum version of the AWS CDK to depend on.
10269
+ **cdkAssert**?⚠️ | <code>boolean</code> | Install the @aws-cdk/assert library?<br/>__*Default*__: will be included by default for AWS CDK >= 1.0.0 < 2.0.0
10270
+ **cdkAssertions**?🔹 | <code>boolean</code> | Install the @aws-cdk/assertions library?<br/>__*Default*__: will be included by default for AWS CDK >= 1.111.0 < 2.0.0
10271
+ **cdkDependencies**?⚠️ | <code>Array<string></code> | Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed?<br/>__*Optional*__
10272
+ **cdkDependenciesAsDeps**?⚠️ | <code>boolean</code> | If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`).<br/>__*Default*__: true
10273
+ **cdkTestDependencies**?⚠️ | <code>Array<string></code> | AWS CDK modules required for testing.<br/>__*Optional*__
10274
+ **cdkVersionPinning**?🔹 | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Optional*__
10275
+ **constructsVersion**?🔹 | <code>string</code> | Minimum version of the `constructs` library to depend on.<br/>__*Default*__: for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5".
10276
+
10277
+
10278
+
10279
+ ## struct AwsCdkDepsOptions 🔹 <a id="projen-awscdk-awscdkdepsoptions"></a>
10280
+
10281
+
10282
+
10283
+
10284
+
10285
+
10286
+ Name | Type | Description
10287
+ -----|------|-------------
10288
+ **cdkVersion**🔹 | <code>string</code> | Minimum version of the AWS CDK to depend on.
10289
+ **dependencyType**🔹 | <code>[DependencyType](#projen-dependencytype)</code> | The type of dependency to use for runtime AWS CDK and `constructs` modules.
10290
+ **cdkAssert**?⚠️ | <code>boolean</code> | Install the @aws-cdk/assert library?<br/>__*Default*__: will be included by default for AWS CDK >= 1.0.0 < 2.0.0
10291
+ **cdkAssertions**?🔹 | <code>boolean</code> | Install the @aws-cdk/assertions library?<br/>__*Default*__: will be included by default for AWS CDK >= 1.111.0 < 2.0.0
10292
+ **cdkDependencies**?⚠️ | <code>Array<string></code> | Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed?<br/>__*Optional*__
10293
+ **cdkDependenciesAsDeps**?⚠️ | <code>boolean</code> | If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`).<br/>__*Default*__: true
10294
+ **cdkTestDependencies**?⚠️ | <code>Array<string></code> | AWS CDK modules required for testing.<br/>__*Optional*__
10295
+ **cdkVersionPinning**?🔹 | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Optional*__
10296
+ **constructsVersion**?🔹 | <code>string</code> | Minimum version of the `constructs` library to depend on.<br/>__*Default*__: for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5".
10297
+
10298
+
10299
+
10173
10300
  ## struct AwsCdkJavaAppOptions 🔹 <a id="projen-awscdk-awscdkjavaappoptions"></a>
10174
10301
 
10175
10302
 
@@ -10239,7 +10366,7 @@ Name | Type | Description
10239
10366
 
10240
10367
  Name | Type | Description
10241
10368
  -----|------|-------------
10242
- **cdkVersion**🔹 | <code>string</code> | AWS CDK version to use.
10369
+ **cdkVersion**🔹 | <code>string</code> | Minimum version of the AWS CDK to depend on.
10243
10370
  **defaultReleaseBranch**🔹 | <code>string</code> | The name of the main release branch.
10244
10371
  **name**🔹 | <code>string</code> | This is the name of your project.
10245
10372
  **allowLibraryDependencies**?🔹 | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`.<br/>__*Default*__: true
@@ -10260,13 +10387,18 @@ Name | Type | Description
10260
10387
  **buildWorkflow**?🔹 | <code>boolean</code> | Define a GitHub workflow for building PRs.<br/>__*Default*__: true if not a subproject
10261
10388
  **bundledDeps**?🔹 | <code>Array<string></code> | List of dependencies to bundle into this module.<br/>__*Optional*__
10262
10389
  **bundlerOptions**?🔹 | <code>[javascript.BundlerOptions](#projen-javascript-bundleroptions)</code> | Options for `Bundler`.<br/>__*Optional*__
10263
- **cdkDependencies**?🔹 | <code>Array<string></code> | Which AWS CDK modules (those that start with "@aws-cdk/") this app uses.<br/>__*Optional*__
10264
- **cdkVersionPinning**?🔹 | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Default*__: false
10390
+ **cdkAssert**?⚠️ | <code>boolean</code> | Install the @aws-cdk/assert library?<br/>__*Default*__: will be included by default for AWS CDK >= 1.0.0 < 2.0.0
10391
+ **cdkAssertions**?🔹 | <code>boolean</code> | Install the @aws-cdk/assertions library?<br/>__*Default*__: will be included by default for AWS CDK >= 1.111.0 < 2.0.0
10392
+ **cdkDependencies**?⚠️ | <code>Array<string></code> | Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed?<br/>__*Optional*__
10393
+ **cdkDependenciesAsDeps**?⚠️ | <code>boolean</code> | If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`).<br/>__*Default*__: true
10394
+ **cdkTestDependencies**?⚠️ | <code>Array<string></code> | AWS CDK modules required for testing.<br/>__*Optional*__
10395
+ **cdkVersionPinning**?🔹 | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Optional*__
10265
10396
  **cdkout**?🔹 | <code>string</code> | cdk.out directory.<br/>__*Default*__: "cdk.out"
10266
10397
  **clobber**?🔹 | <code>boolean</code> | Add a `clobber` task which resets the repo to origin.<br/>__*Default*__: true
10267
10398
  **codeArtifactOptions**?🔹 | <code>[javascript.CodeArtifactOptions](#projen-javascript-codeartifactoptions)</code> | Options for publishing npm package to AWS CodeArtifact.<br/>__*Default*__: undefined
10268
10399
  **codeCov**?🔹 | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v1 A secret is required for private repos. Configured with @codeCovTokenSecret.<br/>__*Default*__: false
10269
10400
  **codeCovTokenSecret**?🔹 | <code>string</code> | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.<br/>__*Default*__: if this option is not specified, only public repositories are supported
10401
+ **constructsVersion**?🔹 | <code>string</code> | Minimum version of the `constructs` library to depend on.<br/>__*Default*__: for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5".
10270
10402
  **context**?🔹 | <code>Map<string, string></code> | Additional context to include in `cdk.json`.<br/>__*Default*__: no additional context
10271
10403
  **copyrightOwner**?🔹 | <code>string</code> | License copyright owner.<br/>__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined.
10272
10404
  **copyrightPeriod**?🔹 | <code>string</code> | The copyright years to put in the LICENSE file.<br/>__*Default*__: current year
@@ -10428,7 +10560,7 @@ Name | Type | Description
10428
10560
  -----|------|-------------
10429
10561
  **author**⚠️ | <code>string</code> | The name of the library author.
10430
10562
  **authorAddress**⚠️ | <code>string</code> | Email or URL of the library author.
10431
- **cdkVersion**⚠️ | <code>string</code> | Minimum target version this library is tested against.
10563
+ **cdkVersion**⚠️ | <code>string</code> | Minimum version of the AWS CDK to depend on.
10432
10564
  **defaultReleaseBranch**⚠️ | <code>string</code> | The name of the main release branch.
10433
10565
  **name**⚠️ | <code>string</code> | This is the name of your project.
10434
10566
  **repositoryUrl**⚠️ | <code>string</code> | Git repository URL.
@@ -10449,19 +10581,19 @@ Name | Type | Description
10449
10581
  **bundledDeps**?⚠️ | <code>Array<string></code> | List of dependencies to bundle into this module.<br/>__*Optional*__
10450
10582
  **bundlerOptions**?⚠️ | <code>[javascript.BundlerOptions](#projen-javascript-bundleroptions)</code> | Options for `Bundler`.<br/>__*Optional*__
10451
10583
  **catalog**?⚠️ | <code>[cdk.Catalog](#projen-cdk-catalog)</code> | Libraries will be picked up by the construct catalog when they are published to npm as jsii modules and will be published under:.<br/>__*Default*__: new version will be announced
10452
- **cdkAssert**?⚠️ | <code>boolean</code> | Install the @aws-cdk/assert library?<br/>__*Default*__: false
10453
- **cdkAssertions**?⚠️ | <code>boolean</code> | Install the @aws-cdk/assertions library?<br/>__*Default*__: true
10584
+ **cdkAssert**?⚠️ | <code>boolean</code> | Install the @aws-cdk/assert library?<br/>__*Default*__: will be included by default for AWS CDK >= 1.0.0 < 2.0.0
10585
+ **cdkAssertions**?⚠️ | <code>boolean</code> | Install the @aws-cdk/assertions library?<br/>__*Default*__: will be included by default for AWS CDK >= 1.111.0 < 2.0.0
10454
10586
  **cdkDependencies**?⚠️ | <code>Array<string></code> | Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed?<br/>__*Optional*__
10455
10587
  **cdkDependenciesAsDeps**?⚠️ | <code>boolean</code> | If this is enabled (default), all modules declared in `cdkDependencies` will be also added as normal `dependencies` (as well as `peerDependencies`).<br/>__*Default*__: true
10456
10588
  **cdkTestDependencies**?⚠️ | <code>Array<string></code> | AWS CDK modules required for testing.<br/>__*Optional*__
10457
- **cdkVersionPinning**?⚠️ | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Default*__: false
10589
+ **cdkVersionPinning**?⚠️ | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Optional*__
10458
10590
  **clobber**?⚠️ | <code>boolean</code> | Add a `clobber` task which resets the repo to origin.<br/>__*Default*__: true
10459
10591
  **codeArtifactOptions**?⚠️ | <code>[javascript.CodeArtifactOptions](#projen-javascript-codeartifactoptions)</code> | Options for publishing npm package to AWS CodeArtifact.<br/>__*Default*__: undefined
10460
10592
  **codeCov**?⚠️ | <code>boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v1 A secret is required for private repos. Configured with @codeCovTokenSecret.<br/>__*Default*__: false
10461
10593
  **codeCovTokenSecret**?⚠️ | <code>string</code> | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.<br/>__*Default*__: if this option is not specified, only public repositories are supported
10462
10594
  **compat**?⚠️ | <code>boolean</code> | Automatically run API compatibility test against the latest version published to npm after compilation.<br/>__*Default*__: false
10463
10595
  **compatIgnore**?⚠️ | <code>string</code> | Name of the ignore file for API compatibility tests.<br/>__*Default*__: ".compatignore"
10464
- **constructsVersion**?⚠️ | <code>string</code> | Minimum target version of constructs being tested against. If not provided, the default value depends on the configured `cdkVersion`:.<br/>__*Default*__: When the default behavior is used, the dependency on `constructs` will be added as both a `peerDependency` and a `devDependency`.
10596
+ **constructsVersion**?⚠️ | <code>string</code> | Minimum version of the `constructs` library to depend on.<br/>__*Default*__: for CDK 1.x the default is "3.2.27", for CDK 2.x the default is "10.0.5".
10465
10597
  **copyrightOwner**?⚠️ | <code>string</code> | License copyright owner.<br/>__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined.
10466
10598
  **copyrightPeriod**?⚠️ | <code>string</code> | The copyright years to put in the LICENSE file.<br/>__*Default*__: current year
10467
10599
  **dependabot**?⚠️ | <code>boolean</code> | Use dependabot to handle dependency upgrades.<br/>__*Default*__: false
@@ -10630,6 +10762,7 @@ Options for `Function`.
10630
10762
 
10631
10763
  Name | Type | Description
10632
10764
  -----|------|-------------
10765
+ **cdkDeps**🔹 | <code>[awscdk.AwsCdkDeps](#projen-awscdk-awscdkdeps)</code> | AWS CDK dependency manager.
10633
10766
  **entrypoint**🔹 | <code>string</code> | A path from the project root directory to a TypeScript file which contains the AWS Lambda handler entrypoint (exports a `handler` function).
10634
10767
  **bundlingOptions**?🔹 | <code>[javascript.BundlingOptions](#projen-javascript-bundlingoptions)</code> | Bundling options for this AWS Lambda function.<br/>__*Default*__: defaults
10635
10768
  **constructFile**?🔹 | <code>string</code> | The name of the generated TypeScript source file.<br/>__*Default*__: The name of the entrypoint file, with the `-function.ts` suffix instead of `.lambda.ts`.
package/docs/java.md CHANGED
@@ -46,14 +46,12 @@ const project = new java.JavaProject({
46
46
  project.synth();
47
47
  ```
48
48
 
49
- > At this point, projenrc is in JavaScript, but in the future we plan to allow
50
- > specifying your project definitions in Java.
49
+ It is possible to create your projenrc file in java. In the future, this will be
50
+ the default, but at the moment you need to add some configuration. See the
51
+ [`projenrc.java`](#projenrcjava) section for details.
51
52
 
52
53
  To modify your project definitions, edit `.projenrc.js` and run `projen` again
53
- to re-synthesize your project. The following sections describe the various
54
- features of your project.
55
-
56
- The following sections describe the various features of Java projects.
54
+ to re-synthesize your project. The following sections describe the various features of Java projects.
57
55
 
58
56
  ## Versioning
59
57
 
package/docs/python.md CHANGED
@@ -47,10 +47,7 @@ project.synth();
47
47
  > specifying your project definitions in python.
48
48
 
49
49
  To modify your project definitions, edit `.projenrc.js` and run `projen` again
50
- to re-synthesize your project. The following sections describe the various
51
- features of your project.
52
-
53
- The following sections describe the various features of Python projects.
50
+ to re-synthesize your project. The following sections describe the various features of Python projects.
54
51
 
55
52
  ## Managing environments, dependencies, and packaging
56
53
 
@@ -0,0 +1,108 @@
1
+ # TypeScript Projects
2
+
3
+ To create a new TypeScript project, use `projen new typescript`:
4
+
5
+ ```shell
6
+ npx projen new typescript
7
+ ```
8
+
9
+ This will create a `.projenrc.js` file which defines your project. If you
10
+ instead would like to define your project in TypeScript, use the
11
+ `--projenrc-ts` flag to create a `.projenrc.ts` file:
12
+
13
+ ```shell
14
+ npx projen new typescript --projenrc-ts
15
+ ```
16
+
17
+ `projen new` will synthesize a standard project directory structure with some sample
18
+ code.
19
+
20
+ ```shell
21
+ ├── src
22
+ │   ├── index.ts
23
+ ├── test
24
+ │ ├── hello.test.ts
25
+ ├── node_modules
26
+ ├── package.json
27
+ └── tsconfig.json
28
+ ```
29
+
30
+ The default options will set up your `tsconfig` root directory as `src` and your
31
+ out directory as `lib`. By default the `test` directory is not compiled to
32
+ JavaScript and instead compiled when `npx projen test` is executed.
33
+
34
+ The `projen new` command will also generate a `.projenrc.js` file which includes
35
+ the definition of your project with any options you specified in the command
36
+ line:
37
+
38
+ ```js
39
+ const { typescript } = require('projen');
40
+ const project = new typescript.TypeScriptProject({
41
+ defaultReleaseBranch: 'main',
42
+ name: 'my-project',
43
+ });
44
+ project.synth();
45
+ ```
46
+
47
+ To modify your project definitions, edit `.projenrc.js` and run `projen` again
48
+ to re-synthesize your project. The following sections describe the various
49
+ features of your TypeScript project.
50
+
51
+ ## Dependencies
52
+
53
+ You can specify dependencies in your project via the `deps`, `devDeps`, and
54
+ `peerDeps` options similar to what you might expect in a `package.json` file.
55
+
56
+ The recommendation is to only specify the module name here (e.g. `express`).
57
+ This will behave similar to yarn add or npm install in the sense that it will
58
+ add the module as a dependency to your package.json file with the latest version
59
+ (`^`). You can specify semver requirements in the same syntax passed to npm i or
60
+ yarn add (e.g. `express@^2`) and this will be what your `package.json` will
61
+ eventually include.
62
+
63
+ ## Migrating your TypeScript Project to Projen
64
+
65
+ Projen provides some opinionated defaults that may be different than the defaults
66
+ you rely on in your existing TypeScript Project. This section attempts to document
67
+ some of the common themes to look out for when migrating an existing TypeScript
68
+ project to Projen.
69
+
70
+ ### Default Directory Structure
71
+
72
+ The most important is the default project structure. Projen expects all source code
73
+ to be in the `src` directory and will write compiled `.js` and `.d.ts` files to the
74
+ `lib` directory. Test files are expected in the `test` directory and not compiled
75
+ to javascript. Instead, Projen configures `Jest` to compile `.ts` files when testing.
76
+
77
+ As this is only one of many structures for valid TypeScript projects, your migrated
78
+ project may not work out-of-the-box with Projen. We recommend that you take the
79
+ time to fully migrate to the expected project structure so that you can take full
80
+ advantage of Projen management on your repository.
81
+
82
+ However, you can also configure your `.projenrc.js` file to reflect your current
83
+ project structure. A `TypeScriptProject` exposes all options in a `tsConfig` file
84
+ so you can manually set the structure you want. Here is an example for specifying a
85
+ structure where the TypeScript compiler finds all TypeScript files recursively in your
86
+ repository:
87
+
88
+ ```js
89
+ const { typescript } = require('projen');
90
+ const project = new typescript.TypeScriptProject({
91
+ ...
92
+ tsConfig: {
93
+ compilerOptions: {
94
+ rootDir: '.',
95
+ outDir: '.',
96
+ },
97
+ include: ['**/*.ts'], // all typescript files recursively
98
+ },
99
+ });
100
+ ```
101
+
102
+ ### Dependency Versions
103
+
104
+ As described in the section above, Projen recommends that you list your dependencies
105
+ only by module name and have Projen install the latest version of the package. A
106
+ consequence of this recommendation is that when migrating, you may unknowingly update
107
+ your dependencies to incompatible versions. You can always specify specific semvar
108
+ requirements (e.g. `express@^2`) if necessary.
@@ -1,5 +1,6 @@
1
1
  import { Component } from '../component';
2
2
  import { Project } from '../project';
3
+ import { AwsCdkDeps } from './awscdk-deps';
3
4
  import { LambdaFunctionCommonOptions } from './lambda-function';
4
5
  /**
5
6
  * (experimental) Options for `AutoDiscover`.
@@ -31,6 +32,12 @@ export interface AutoDiscoverOptions {
31
32
  * @experimental
32
33
  */
33
34
  readonly tsconfigPath: string;
35
+ /**
36
+ * (experimental) AWS CDK dependency manager.
37
+ *
38
+ * @experimental
39
+ */
40
+ readonly cdkDeps: AwsCdkDeps;
34
41
  }
35
42
  /**
36
43
  * (experimental) Automatically creates a `LambdaFunction` for all `.lambda.ts` files under the source directory of the project.
@@ -5,8 +5,8 @@ exports.AutoDiscover = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const path_1 = require("path");
7
7
  const glob = require("glob");
8
- const _1 = require(".");
9
8
  const component_1 = require("../component");
9
+ const integration_test_1 = require("./integration-test");
10
10
  const internal_1 = require("./internal");
11
11
  const lambda_function_1 = require("./lambda-function");
12
12
  /**
@@ -30,6 +30,7 @@ class AutoDiscover extends component_1.Component {
30
30
  for (const entrypoint of entrypoints) {
31
31
  new lambda_function_1.LambdaFunction(this.project, {
32
32
  entrypoint: path_1.join(options.srcdir, entrypoint),
33
+ cdkDeps: options.cdkDeps,
33
34
  ...options.lambdaOptions,
34
35
  });
35
36
  }
@@ -39,7 +40,7 @@ class AutoDiscover extends component_1.Component {
39
40
  cwd: path_1.join(this.project.outdir, options.testdir),
40
41
  });
41
42
  for (const entrypoint of entrypoints) {
42
- new _1.IntegrationTest(this.project, {
43
+ new integration_test_1.IntegrationTest(this.project, {
43
44
  entrypoint: path_1.join(options.testdir, entrypoint),
44
45
  tsconfigPath: options.tsconfigPath,
45
46
  });
@@ -48,5 +49,5 @@ class AutoDiscover extends component_1.Component {
48
49
  }
49
50
  exports.AutoDiscover = AutoDiscover;
50
51
  _a = JSII_RTTI_SYMBOL_1;
51
- AutoDiscover[_a] = { fqn: "projen.awscdk.AutoDiscover", version: "0.41.0" };
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kaXNjb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXV0by1kaXNjb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0Isd0JBQW9DO0FBQ3BDLDRDQUF5QztBQUV6Qyx5Q0FBeUU7QUFDekUsdURBQWdGOzs7Ozs7QUFrQmhGLE1BQWEsWUFBYSxTQUFRLHFCQUFTOzs7O0lBR3pDLFlBQVksT0FBZ0IsRUFBRSxPQUE0QjtRQUN4RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxPQUE0QjtRQUM5RCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sZ0NBQXFCLEVBQUUsRUFBRTtZQUM1RCxHQUFHLEVBQUUsV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUU7WUFDcEMsSUFBSSxnQ0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQy9CLFVBQVUsRUFBRSxXQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUM7Z0JBQzVDLEdBQUcsT0FBTyxDQUFDLGFBQWE7YUFDekIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU8sNEJBQTRCLENBQUMsT0FBNEI7UUFDL0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLCtCQUFvQixFQUFFLEVBQUU7WUFDM0QsR0FBRyxFQUFFLFdBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ2hELENBQUMsQ0FBQztRQUVILEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO1lBQ3BDLElBQUksa0JBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQyxVQUFVLEVBQUUsV0FBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO2dCQUM3QyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7YUFDbkMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztBQWxDSCxvQ0FvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gJ2dsb2InO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25UZXN0IH0gZnJvbSAnLic7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QnO1xuaW1wb3J0IHsgVFlQRVNDUklQVF9JTlRFR19FWFQsIFRZUEVTQ1JJUFRfTEFNQkRBX0VYVCB9IGZyb20gJy4vaW50ZXJuYWwnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24sIExhbWJkYUZ1bmN0aW9uQ29tbW9uT3B0aW9ucyB9IGZyb20gJy4vbGFtYmRhLWZ1bmN0aW9uJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0Rpc2NvdmVyT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsYW1iZGFPcHRpb25zPzogTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNyY2Rpcjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHRlc3RkaXI6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHRzY29uZmlnUGF0aDogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgQXV0b0Rpc2NvdmVyIGV4dGVuZHMgQ29tcG9uZW50IHtcblxuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IEF1dG9EaXNjb3Zlck9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuYXV0b0Rpc2NvdmVyTGFtYmRhRnVuY3Rpb25zKG9wdGlvbnMpO1xuICAgIHRoaXMuYXV0b0Rpc2NvdmVySW50ZWdyYXRpb25UZXN0cyhvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYXV0b0Rpc2NvdmVyTGFtYmRhRnVuY3Rpb25zKG9wdGlvbnM6IEF1dG9EaXNjb3Zlck9wdGlvbnMpIHtcbiAgICBjb25zdCBlbnRyeXBvaW50cyA9IGdsb2Iuc3luYyhgKiovKiR7VFlQRVNDUklQVF9MQU1CREFfRVhUfWAsIHtcbiAgICAgIGN3ZDogam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCBvcHRpb25zLnNyY2RpciksXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IGVudHJ5cG9pbnQgb2YgZW50cnlwb2ludHMpIHtcbiAgICAgIG5ldyBMYW1iZGFGdW5jdGlvbih0aGlzLnByb2plY3QsIHtcbiAgICAgICAgZW50cnlwb2ludDogam9pbihvcHRpb25zLnNyY2RpciwgZW50cnlwb2ludCksXG4gICAgICAgIC4uLm9wdGlvbnMubGFtYmRhT3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXV0b0Rpc2NvdmVySW50ZWdyYXRpb25UZXN0cyhvcHRpb25zOiBBdXRvRGlzY292ZXJPcHRpb25zKSB7XG4gICAgY29uc3QgZW50cnlwb2ludHMgPSBnbG9iLnN5bmMoYCoqLyoke1RZUEVTQ1JJUFRfSU5URUdfRVhUfWAsIHtcbiAgICAgIGN3ZDogam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCBvcHRpb25zLnRlc3RkaXIpLFxuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeXBvaW50IG9mIGVudHJ5cG9pbnRzKSB7XG4gICAgICBuZXcgSW50ZWdyYXRpb25UZXN0KHRoaXMucHJvamVjdCwge1xuICAgICAgICBlbnRyeXBvaW50OiBqb2luKG9wdGlvbnMudGVzdGRpciwgZW50cnlwb2ludCksXG4gICAgICAgIHRzY29uZmlnUGF0aDogb3B0aW9ucy50c2NvbmZpZ1BhdGgsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxufSJdfQ==
52
+ AutoDiscover[_a] = { fqn: "projen.awscdk.AutoDiscover", version: "0.43.1" };
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kaXNjb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXV0by1kaXNjb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0IsNENBQXlDO0FBR3pDLHlEQUFxRDtBQUNyRCx5Q0FBeUU7QUFDekUsdURBQWdGOzs7Ozs7QUFxQmhGLE1BQWEsWUFBYSxTQUFRLHFCQUFTOzs7O0lBQ3pDLFlBQVksT0FBZ0IsRUFBRSxPQUE0QjtRQUN4RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxPQUE0QjtRQUM5RCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sZ0NBQXFCLEVBQUUsRUFBRTtZQUM1RCxHQUFHLEVBQUUsV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUU7WUFDcEMsSUFBSSxnQ0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQy9CLFVBQVUsRUFBRSxXQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUM7Z0JBQzVDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztnQkFDeEIsR0FBRyxPQUFPLENBQUMsYUFBYTthQUN6QixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxPQUE0QjtRQUMvRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sK0JBQW9CLEVBQUUsRUFBRTtZQUMzRCxHQUFHLEVBQUUsV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUM7U0FDaEQsQ0FBQyxDQUFDO1FBRUgsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUU7WUFDcEMsSUFBSSxrQ0FBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hDLFVBQVUsRUFBRSxXQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUM7Z0JBQzdDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTthQUNuQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O0FBakNILG9DQW1DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGdsb2IgZnJvbSAnZ2xvYic7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QnO1xuaW1wb3J0IHsgQXdzQ2RrRGVwcyB9IGZyb20gJy4vYXdzY2RrLWRlcHMnO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25UZXN0IH0gZnJvbSAnLi9pbnRlZ3JhdGlvbi10ZXN0JztcbmltcG9ydCB7IFRZUEVTQ1JJUFRfSU5URUdfRVhULCBUWVBFU0NSSVBUX0xBTUJEQV9FWFQgfSBmcm9tICcuL2ludGVybmFsJztcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uLCBMYW1iZGFGdW5jdGlvbkNvbW1vbk9wdGlvbnMgfSBmcm9tICcuL2xhbWJkYS1mdW5jdGlvbic7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9EaXNjb3Zlck9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbGFtYmRhT3B0aW9ucz86IExhbWJkYUZ1bmN0aW9uQ29tbW9uT3B0aW9ucztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzcmNkaXI6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0ZXN0ZGlyOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0c2NvbmZpZ1BhdGg6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY2RrRGVwczogQXdzQ2RrRGVwcztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEF1dG9EaXNjb3ZlciBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IEF1dG9EaXNjb3Zlck9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuYXV0b0Rpc2NvdmVyTGFtYmRhRnVuY3Rpb25zKG9wdGlvbnMpO1xuICAgIHRoaXMuYXV0b0Rpc2NvdmVySW50ZWdyYXRpb25UZXN0cyhvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYXV0b0Rpc2NvdmVyTGFtYmRhRnVuY3Rpb25zKG9wdGlvbnM6IEF1dG9EaXNjb3Zlck9wdGlvbnMpIHtcbiAgICBjb25zdCBlbnRyeXBvaW50cyA9IGdsb2Iuc3luYyhgKiovKiR7VFlQRVNDUklQVF9MQU1CREFfRVhUfWAsIHtcbiAgICAgIGN3ZDogam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCBvcHRpb25zLnNyY2RpciksXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IGVudHJ5cG9pbnQgb2YgZW50cnlwb2ludHMpIHtcbiAgICAgIG5ldyBMYW1iZGFGdW5jdGlvbih0aGlzLnByb2plY3QsIHtcbiAgICAgICAgZW50cnlwb2ludDogam9pbihvcHRpb25zLnNyY2RpciwgZW50cnlwb2ludCksXG4gICAgICAgIGNka0RlcHM6IG9wdGlvbnMuY2RrRGVwcyxcbiAgICAgICAgLi4ub3B0aW9ucy5sYW1iZGFPcHRpb25zLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhdXRvRGlzY292ZXJJbnRlZ3JhdGlvblRlc3RzKG9wdGlvbnM6IEF1dG9EaXNjb3Zlck9wdGlvbnMpIHtcbiAgICBjb25zdCBlbnRyeXBvaW50cyA9IGdsb2Iuc3luYyhgKiovKiR7VFlQRVNDUklQVF9JTlRFR19FWFR9YCwge1xuICAgICAgY3dkOiBqb2luKHRoaXMucHJvamVjdC5vdXRkaXIsIG9wdGlvbnMudGVzdGRpciksXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IGVudHJ5cG9pbnQgb2YgZW50cnlwb2ludHMpIHtcbiAgICAgIG5ldyBJbnRlZ3JhdGlvblRlc3QodGhpcy5wcm9qZWN0LCB7XG4gICAgICAgIGVudHJ5cG9pbnQ6IGpvaW4ob3B0aW9ucy50ZXN0ZGlyLCBlbnRyeXBvaW50KSxcbiAgICAgICAgdHNjb25maWdQYXRoOiBvcHRpb25zLnRzY29uZmlnUGF0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG59Il19