projen 0.42.1 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/.jsii +438 -230
  2. package/API.md +177 -42
  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 +6 -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.d.ts +7 -0
  19. package/lib/awscdk/integration-test.js +11 -9
  20. package/lib/awscdk/java-app.js +1 -1
  21. package/lib/awscdk/lambda-function.d.ts +8 -1
  22. package/lib/awscdk/lambda-function.js +14 -5
  23. package/lib/cdk/construct-lib.js +1 -1
  24. package/lib/cdk/jsii-docgen.js +1 -1
  25. package/lib/cdk/jsii-project.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/cdktf/cdktf-construct.js +1 -1
  29. package/lib/component.js +1 -1
  30. package/lib/dependencies.js +1 -1
  31. package/lib/dev-env.js +1 -1
  32. package/lib/docker-compose.js +2 -2
  33. package/lib/file.js +1 -1
  34. package/lib/gitattributes.js +1 -1
  35. package/lib/github/auto-approve.js +1 -1
  36. package/lib/github/auto-merge.js +1 -1
  37. package/lib/github/dependabot.js +1 -1
  38. package/lib/github/github-project.js +1 -1
  39. package/lib/github/github.js +1 -1
  40. package/lib/github/mergify.js +1 -1
  41. package/lib/github/pr-template.js +1 -1
  42. package/lib/github/pull-request-lint.js +1 -1
  43. package/lib/github/stale.js +1 -1
  44. package/lib/github/task-workflow.js +1 -1
  45. package/lib/github/workflows.js +1 -1
  46. package/lib/gitpod.js +1 -1
  47. package/lib/ignore-file.js +1 -1
  48. package/lib/ini.js +1 -1
  49. package/lib/java/java-project.js +1 -1
  50. package/lib/java/junit.js +1 -1
  51. package/lib/java/maven-compile.js +1 -1
  52. package/lib/java/maven-packaging.js +1 -1
  53. package/lib/java/maven-sample.js +1 -1
  54. package/lib/java/pom.js +1 -1
  55. package/lib/java/projenrc.js +1 -1
  56. package/lib/javascript/bundler.js +1 -1
  57. package/lib/javascript/eslint.js +1 -1
  58. package/lib/javascript/jest.js +1 -1
  59. package/lib/javascript/node-package.js +6 -2
  60. package/lib/javascript/node-project.js +1 -1
  61. package/lib/javascript/npm-config.js +1 -1
  62. package/lib/javascript/projenrc.js +1 -1
  63. package/lib/javascript/typescript-config.js +1 -1
  64. package/lib/javascript/upgrade-dependencies.js +2 -2
  65. package/lib/json.js +1 -1
  66. package/lib/license.js +1 -1
  67. package/lib/logger.js +1 -1
  68. package/lib/makefile.js +1 -1
  69. package/lib/object-file.js +1 -1
  70. package/lib/project-build.js +1 -1
  71. package/lib/project.js +1 -1
  72. package/lib/projects.js +1 -1
  73. package/lib/projenrc-json.js +1 -1
  74. package/lib/python/pip.js +1 -1
  75. package/lib/python/poetry.js +2 -2
  76. package/lib/python/projenrc.js +6 -6
  77. package/lib/python/pytest.js +1 -1
  78. package/lib/python/python-project.d.ts +1 -1
  79. package/lib/python/python-project.js +3 -7
  80. package/lib/python/python-sample.js +1 -1
  81. package/lib/python/requirements-file.js +1 -1
  82. package/lib/python/setuppy.js +1 -1
  83. package/lib/python/setuptools.js +1 -1
  84. package/lib/python/venv.js +1 -1
  85. package/lib/readme.js +1 -1
  86. package/lib/release/publisher.js +1 -1
  87. package/lib/release/release-trigger.js +1 -1
  88. package/lib/release/release.js +1 -1
  89. package/lib/sample-file.js +2 -2
  90. package/lib/semver.js +1 -1
  91. package/lib/source-code.js +1 -1
  92. package/lib/task-runtime.js +1 -1
  93. package/lib/task.js +1 -1
  94. package/lib/tasks.js +1 -1
  95. package/lib/testing.js +1 -1
  96. package/lib/textfile.js +1 -1
  97. package/lib/toml.js +1 -1
  98. package/lib/typescript/projenrc.js +1 -1
  99. package/lib/typescript/typescript-typedoc.js +1 -1
  100. package/lib/typescript/typescript.js +3 -3
  101. package/lib/version.js +1 -1
  102. package/lib/vscode/devcontainer.js +1 -1
  103. package/lib/vscode/launch-config.js +1 -1
  104. package/lib/vscode/vscode.js +1 -1
  105. package/lib/web/next.js +3 -3
  106. package/lib/web/postcss.js +1 -1
  107. package/lib/web/react.js +4 -4
  108. package/lib/web/tailwind.js +1 -1
  109. package/lib/xmlfile.js +1 -1
  110. package/lib/yaml.js +1 -1
  111. 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
 
@@ -3627,6 +3711,7 @@ new awscdk.IntegrationTest(project: Project, options: IntegrationTestOptions)
3627
3711
  * **project** (<code>[Project](#projen-project)</code>) *No description*
3628
3712
  * **options** (<code>[awscdk.IntegrationTestOptions](#projen-awscdk-integrationtestoptions)</code>) *No description*
3629
3713
  * **destroyAfterDeploy** (<code>boolean</code>) Destroy the test app after a successful deployment. __*Default*__: true
3714
+ * **cdkDeps** (<code>[awscdk.AwsCdkDeps](#projen-awscdk-awscdkdeps)</code>) AWS CDK dependency manager.
3630
3715
  * **entrypoint** (<code>string</code>) A path from the project root directory to a TypeScript file which contains the integration test app.
3631
3716
  * **tsconfigPath** (<code>string</code>) The path of the tsconfig.json file to use when running integration test cdk apps.
3632
3717
 
@@ -3676,6 +3761,7 @@ new awscdk.LambdaFunction(project: Project, options: LambdaFunctionOptions)
3676
3761
  * **options** (<code>[awscdk.LambdaFunctionOptions](#projen-awscdk-lambdafunctionoptions)</code>) Options.
3677
3762
  * **bundlingOptions** (<code>[javascript.BundlingOptions](#projen-javascript-bundlingoptions)</code>) Bundling options for this AWS Lambda function. __*Default*__: defaults
3678
3763
  * **runtime** (<code>[awscdk.LambdaRuntime](#projen-awscdk-lambdaruntime)</code>) The node.js version to target. __*Default*__: Runtime.NODEJS_14_X
3764
+ * **cdkDeps** (<code>[awscdk.AwsCdkDeps](#projen-awscdk-awscdkdeps)</code>) AWS CDK dependency manager.
3679
3765
  * **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
3766
  * **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
3767
  * **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`).
@@ -7026,7 +7112,7 @@ new python.PythonProject(options: PythonProjectOptions)
7026
7112
  * **devDeps** (<code>Array<string></code>) List of dev dependencies for this project. __*Default*__: []
7027
7113
  * **pip** (<code>boolean</code>) Use pip with a requirements.txt file to track project dependencies. __*Default*__: true
7028
7114
  * **poetry** (<code>boolean</code>) Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing. __*Default*__: false
7029
- * **projenrcPython** (<code>boolean</code>) Use projenrc in python. __*Default*__: false
7115
+ * **projenrcPython** (<code>boolean</code>) Use projenrc in python. __*Default*__: true
7030
7116
  * **projenrcPythonOptions** (<code>[python.ProjenrcOptions](#projen-python-projenrcoptions)</code>) Options related to projenrc in python. __*Default*__: default options
7031
7117
  * **pytest** (<code>boolean</code>) Include pytest tests. __*Default*__: true
7032
7118
  * **pytestOptions** (<code>[python.PytestOptions](#projen-python-pytestoptions)</code>) pytest options. __*Default*__: defaults
@@ -10004,6 +10090,7 @@ Options for `AutoDiscover`.
10004
10090
 
10005
10091
  Name | Type | Description
10006
10092
  -----|------|-------------
10093
+ **cdkDeps**🔹 | <code>[awscdk.AwsCdkDeps](#projen-awscdk-awscdkdeps)</code> | AWS CDK dependency manager.
10007
10094
  **srcdir**🔹 | <code>string</code> | Project source tree (relative to project output directory).
10008
10095
  **testdir**🔹 | <code>string</code> | Test source tree.
10009
10096
  **tsconfigPath**🔹 | <code>string</code> | Path to the tsconfig file to use for integration tests.
@@ -10014,7 +10101,7 @@ Name | Type | Description
10014
10101
  ## struct AwsCdkConstructLibraryOptions 🔹 <a id="projen-awscdk-awscdkconstructlibraryoptions"></a>
10015
10102
 
10016
10103
 
10017
- Options for the construct-lib-aws project.
10104
+ Options for `AwsCdkConstructLibrary`.
10018
10105
 
10019
10106
 
10020
10107
 
@@ -10022,7 +10109,7 @@ Name | Type | Description
10022
10109
  -----|------|-------------
10023
10110
  **author**🔹 | <code>string</code> | The name of the library author.
10024
10111
  **authorAddress**🔹 | <code>string</code> | Email or URL of the library author.
10025
- **cdkVersion**🔹 | <code>string</code> | Minimum target version this library is tested against.
10112
+ **cdkVersion**🔹 | <code>string</code> | Minimum version of the AWS CDK to depend on.
10026
10113
  **defaultReleaseBranch**🔹 | <code>string</code> | The name of the main release branch.
10027
10114
  **name**🔹 | <code>string</code> | This is the name of your project.
10028
10115
  **repositoryUrl**🔹 | <code>string</code> | Git repository URL.
@@ -10043,19 +10130,19 @@ Name | Type | Description
10043
10130
  **bundledDeps**?🔹 | <code>Array<string></code> | List of dependencies to bundle into this module.<br/>__*Optional*__
10044
10131
  **bundlerOptions**?🔹 | <code>[javascript.BundlerOptions](#projen-javascript-bundleroptions)</code> | Options for `Bundler`.<br/>__*Optional*__
10045
10132
  **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
10133
+ **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
10134
+ **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
10135
  **cdkDependencies**?⚠️ | <code>Array<string></code> | Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed?<br/>__*Optional*__
10049
10136
  **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
10137
  **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
10138
+ **cdkVersionPinning**?🔹 | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Optional*__
10052
10139
  **clobber**?🔹 | <code>boolean</code> | Add a `clobber` task which resets the repo to origin.<br/>__*Default*__: true
10053
10140
  **codeArtifactOptions**?🔹 | <code>[javascript.CodeArtifactOptions](#projen-javascript-codeartifactoptions)</code> | Options for publishing npm package to AWS CodeArtifact.<br/>__*Default*__: undefined
10054
10141
  **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
10142
  **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
10143
  **compat**?🔹 | <code>boolean</code> | Automatically run API compatibility test against the latest version published to npm after compilation.<br/>__*Default*__: false
10057
10144
  **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`.
10145
+ **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
10146
  **copyrightOwner**?🔹 | <code>string</code> | License copyright owner.<br/>__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined.
10060
10147
  **copyrightPeriod**?🔹 | <code>string</code> | The copyright years to put in the LICENSE file.<br/>__*Default*__: current year
10061
10148
  **dependabot**?🔹 | <code>boolean</code> | Use dependabot to handle dependency upgrades.<br/>__*Default*__: false
@@ -10170,6 +10257,47 @@ Name | Type | Description
10170
10257
 
10171
10258
 
10172
10259
 
10260
+ ## struct AwsCdkDepsCommonOptions 🔹 <a id="projen-awscdk-awscdkdepscommonoptions"></a>
10261
+
10262
+
10263
+ Options for `AwsCdkDeps`.
10264
+
10265
+
10266
+
10267
+ Name | Type | Description
10268
+ -----|------|-------------
10269
+ **cdkVersion**🔹 | <code>string</code> | Minimum version of the AWS CDK to depend on.
10270
+ **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
10271
+ **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
10272
+ **cdkDependencies**?⚠️ | <code>Array<string></code> | Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed?<br/>__*Optional*__
10273
+ **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
10274
+ **cdkTestDependencies**?⚠️ | <code>Array<string></code> | AWS CDK modules required for testing.<br/>__*Optional*__
10275
+ **cdkVersionPinning**?🔹 | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Optional*__
10276
+ **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".
10277
+
10278
+
10279
+
10280
+ ## struct AwsCdkDepsOptions 🔹 <a id="projen-awscdk-awscdkdepsoptions"></a>
10281
+
10282
+
10283
+
10284
+
10285
+
10286
+
10287
+ Name | Type | Description
10288
+ -----|------|-------------
10289
+ **cdkVersion**🔹 | <code>string</code> | Minimum version of the AWS CDK to depend on.
10290
+ **dependencyType**🔹 | <code>[DependencyType](#projen-dependencytype)</code> | The type of dependency to use for runtime AWS CDK and `constructs` modules.
10291
+ **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
10292
+ **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
10293
+ **cdkDependencies**?⚠️ | <code>Array<string></code> | Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed?<br/>__*Optional*__
10294
+ **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
10295
+ **cdkTestDependencies**?⚠️ | <code>Array<string></code> | AWS CDK modules required for testing.<br/>__*Optional*__
10296
+ **cdkVersionPinning**?🔹 | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Optional*__
10297
+ **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".
10298
+
10299
+
10300
+
10173
10301
  ## struct AwsCdkJavaAppOptions 🔹 <a id="projen-awscdk-awscdkjavaappoptions"></a>
10174
10302
 
10175
10303
 
@@ -10239,7 +10367,7 @@ Name | Type | Description
10239
10367
 
10240
10368
  Name | Type | Description
10241
10369
  -----|------|-------------
10242
- **cdkVersion**🔹 | <code>string</code> | AWS CDK version to use.
10370
+ **cdkVersion**🔹 | <code>string</code> | Minimum version of the AWS CDK to depend on.
10243
10371
  **defaultReleaseBranch**🔹 | <code>string</code> | The name of the main release branch.
10244
10372
  **name**🔹 | <code>string</code> | This is the name of your project.
10245
10373
  **allowLibraryDependencies**?🔹 | <code>boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`.<br/>__*Default*__: true
@@ -10260,13 +10388,18 @@ Name | Type | Description
10260
10388
  **buildWorkflow**?🔹 | <code>boolean</code> | Define a GitHub workflow for building PRs.<br/>__*Default*__: true if not a subproject
10261
10389
  **bundledDeps**?🔹 | <code>Array<string></code> | List of dependencies to bundle into this module.<br/>__*Optional*__
10262
10390
  **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
10391
+ **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
10392
+ **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
10393
+ **cdkDependencies**?⚠️ | <code>Array<string></code> | Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed?<br/>__*Optional*__
10394
+ **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
10395
+ **cdkTestDependencies**?⚠️ | <code>Array<string></code> | AWS CDK modules required for testing.<br/>__*Optional*__
10396
+ **cdkVersionPinning**?🔹 | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Optional*__
10265
10397
  **cdkout**?🔹 | <code>string</code> | cdk.out directory.<br/>__*Default*__: "cdk.out"
10266
10398
  **clobber**?🔹 | <code>boolean</code> | Add a `clobber` task which resets the repo to origin.<br/>__*Default*__: true
10267
10399
  **codeArtifactOptions**?🔹 | <code>[javascript.CodeArtifactOptions](#projen-javascript-codeartifactoptions)</code> | Options for publishing npm package to AWS CodeArtifact.<br/>__*Default*__: undefined
10268
10400
  **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
10401
  **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
10402
+ **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
10403
  **context**?🔹 | <code>Map<string, string></code> | Additional context to include in `cdk.json`.<br/>__*Default*__: no additional context
10271
10404
  **copyrightOwner**?🔹 | <code>string</code> | License copyright owner.<br/>__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined.
10272
10405
  **copyrightPeriod**?🔹 | <code>string</code> | The copyright years to put in the LICENSE file.<br/>__*Default*__: current year
@@ -10428,7 +10561,7 @@ Name | Type | Description
10428
10561
  -----|------|-------------
10429
10562
  **author**⚠️ | <code>string</code> | The name of the library author.
10430
10563
  **authorAddress**⚠️ | <code>string</code> | Email or URL of the library author.
10431
- **cdkVersion**⚠️ | <code>string</code> | Minimum target version this library is tested against.
10564
+ **cdkVersion**⚠️ | <code>string</code> | Minimum version of the AWS CDK to depend on.
10432
10565
  **defaultReleaseBranch**⚠️ | <code>string</code> | The name of the main release branch.
10433
10566
  **name**⚠️ | <code>string</code> | This is the name of your project.
10434
10567
  **repositoryUrl**⚠️ | <code>string</code> | Git repository URL.
@@ -10449,19 +10582,19 @@ Name | Type | Description
10449
10582
  **bundledDeps**?⚠️ | <code>Array<string></code> | List of dependencies to bundle into this module.<br/>__*Optional*__
10450
10583
  **bundlerOptions**?⚠️ | <code>[javascript.BundlerOptions](#projen-javascript-bundleroptions)</code> | Options for `Bundler`.<br/>__*Optional*__
10451
10584
  **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
10585
+ **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
10586
+ **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
10587
  **cdkDependencies**?⚠️ | <code>Array<string></code> | Which AWS CDK modules (those that start with "@aws-cdk/") does this library require when consumed?<br/>__*Optional*__
10455
10588
  **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
10589
  **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
10590
+ **cdkVersionPinning**?⚠️ | <code>boolean</code> | Use pinned version instead of caret version for CDK.<br/>__*Optional*__
10458
10591
  **clobber**?⚠️ | <code>boolean</code> | Add a `clobber` task which resets the repo to origin.<br/>__*Default*__: true
10459
10592
  **codeArtifactOptions**?⚠️ | <code>[javascript.CodeArtifactOptions](#projen-javascript-codeartifactoptions)</code> | Options for publishing npm package to AWS CodeArtifact.<br/>__*Default*__: undefined
10460
10593
  **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
10594
  **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
10595
  **compat**?⚠️ | <code>boolean</code> | Automatically run API compatibility test against the latest version published to npm after compilation.<br/>__*Default*__: false
10463
10596
  **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`.
10597
+ **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
10598
  **copyrightOwner**?⚠️ | <code>string</code> | License copyright owner.<br/>__*Default*__: defaults to the value of authorName or "" if `authorName` is undefined.
10466
10599
  **copyrightPeriod**?⚠️ | <code>string</code> | The copyright years to put in the LICENSE file.<br/>__*Default*__: current year
10467
10600
  **dependabot**?⚠️ | <code>boolean</code> | Use dependabot to handle dependency upgrades.<br/>__*Default*__: false
@@ -10598,6 +10731,7 @@ Options for `IntegrationTest`.
10598
10731
 
10599
10732
  Name | Type | Description
10600
10733
  -----|------|-------------
10734
+ **cdkDeps**🔹 | <code>[awscdk.AwsCdkDeps](#projen-awscdk-awscdkdeps)</code> | AWS CDK dependency manager.
10601
10735
  **entrypoint**🔹 | <code>string</code> | A path from the project root directory to a TypeScript file which contains the integration test app.
10602
10736
  **tsconfigPath**🔹 | <code>string</code> | The path of the tsconfig.json file to use when running integration test cdk apps.
10603
10737
  **destroyAfterDeploy**?🔹 | <code>boolean</code> | Destroy the test app after a successful deployment.<br/>__*Default*__: true
@@ -10630,6 +10764,7 @@ Options for `Function`.
10630
10764
 
10631
10765
  Name | Type | Description
10632
10766
  -----|------|-------------
10767
+ **cdkDeps**🔹 | <code>[awscdk.AwsCdkDeps](#projen-awscdk-awscdkdeps)</code> | AWS CDK dependency manager.
10633
10768
  **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
10769
  **bundlingOptions**?🔹 | <code>[javascript.BundlingOptions](#projen-javascript-bundlingoptions)</code> | Bundling options for this AWS Lambda function.<br/>__*Default*__: defaults
10635
10770
  **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`.
@@ -12849,7 +12984,7 @@ Name | Type | Description
12849
12984
  **projenCommand**?🔹 | <code>string</code> | The shell command to use in order to run the projen CLI.<br/>__*Default*__: "npx projen"
12850
12985
  **projenrcJson**?🔹 | <code>boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.<br/>__*Default*__: false
12851
12986
  **projenrcJsonOptions**?🔹 | <code>[ProjenrcOptions](#projen-projenrcoptions)</code> | Options for .projenrc.json.<br/>__*Default*__: default options
12852
- **projenrcPython**?🔹 | <code>boolean</code> | Use projenrc in python.<br/>__*Default*__: false
12987
+ **projenrcPython**?🔹 | <code>boolean</code> | Use projenrc in python.<br/>__*Default*__: true
12853
12988
  **projenrcPythonOptions**?🔹 | <code>[python.ProjenrcOptions](#projen-python-projenrcoptions)</code> | Options related to projenrc in python.<br/>__*Default*__: default options
12854
12989
  **pytest**?🔹 | <code>boolean</code> | Include pytest tests.<br/>__*Default*__: true
12855
12990
  **pytestOptions**?🔹 | <code>[python.PytestOptions](#projen-python-pytestoptions)</code> | pytest options.<br/>__*Default*__: defaults
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.