projen 0.31.18 → 0.32.2

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 (143) hide show
  1. package/.jsii +2150 -444
  2. package/API.md +735 -78
  3. package/README.md +1 -0
  4. package/docs/aws-lambda.md +103 -0
  5. package/docs/programmatic-api.md +56 -0
  6. package/lib/awscdk/auto-discover.d.ts +46 -0
  7. package/lib/awscdk/auto-discover.js +46 -0
  8. package/lib/awscdk/cdk-config.d.ts +103 -0
  9. package/lib/awscdk/cdk-config.js +56 -0
  10. package/lib/awscdk/cdk-tasks.d.ts +38 -0
  11. package/lib/awscdk/cdk-tasks.js +39 -0
  12. package/lib/awscdk/index.d.ts +5 -0
  13. package/lib/awscdk/index.js +18 -0
  14. package/lib/awscdk/internal.d.ts +8 -0
  15. package/lib/awscdk/internal.js +26 -0
  16. package/lib/awscdk/java-app.d.ts +92 -0
  17. package/lib/awscdk/java-app.js +90 -0
  18. package/lib/awscdk/lambda-function.d.ts +146 -0
  19. package/lib/awscdk/lambda-function.js +160 -0
  20. package/lib/awscdk-app-ts.d.ts +22 -40
  21. package/lib/awscdk-app-ts.js +21 -46
  22. package/lib/awscdk-construct.d.ts +15 -58
  23. package/lib/awscdk-construct.js +13 -62
  24. package/lib/cdk8s-app-ts.js +1 -1
  25. package/lib/cdk8s-construct.js +1 -1
  26. package/lib/cdktf-construct.js +1 -1
  27. package/lib/cli/cmds/new.js +23 -65
  28. package/lib/cli/util.d.ts +19 -0
  29. package/lib/cli/util.js +52 -0
  30. package/lib/common.js +6 -2
  31. package/lib/component.js +1 -1
  32. package/lib/construct-lib.js +1 -1
  33. package/lib/deps/dependencies.js +1 -1
  34. package/lib/dev-env.js +1 -1
  35. package/lib/docker-compose.js +2 -2
  36. package/lib/eslint.d.ts +18 -0
  37. package/lib/eslint.js +17 -5
  38. package/lib/file.js +1 -1
  39. package/lib/git/gitattributes.js +1 -1
  40. package/lib/github/auto-approve.js +1 -1
  41. package/lib/github/auto-merge.js +1 -1
  42. package/lib/github/dependabot.js +1 -1
  43. package/lib/github/github.js +1 -1
  44. package/lib/github/mergify.js +1 -1
  45. package/lib/github/pr-template.js +1 -1
  46. package/lib/github/stale.js +1 -1
  47. package/lib/github/task-workflow.js +1 -1
  48. package/lib/github/workflows.js +4 -5
  49. package/lib/gitpod.js +1 -1
  50. package/lib/ignore-file.js +1 -1
  51. package/lib/index.d.ts +2 -0
  52. package/lib/index.js +3 -1
  53. package/lib/ini.js +1 -1
  54. package/lib/inventory.d.ts +15 -3
  55. package/lib/inventory.js +53 -29
  56. package/lib/java/java-project.d.ts +28 -14
  57. package/lib/java/java-project.js +3 -2
  58. package/lib/java/junit.js +1 -1
  59. package/lib/java/maven-compile.js +1 -1
  60. package/lib/java/maven-packaging.js +1 -1
  61. package/lib/java/maven-sample.js +1 -1
  62. package/lib/java/pom.js +1 -1
  63. package/lib/java/projenrc.js +1 -1
  64. package/lib/javascript/bundler.d.ts +144 -0
  65. package/lib/javascript/bundler.js +93 -0
  66. package/lib/javascript/index.d.ts +1 -0
  67. package/lib/javascript/index.js +2 -1
  68. package/lib/javascript/npm-config.js +1 -1
  69. package/lib/javascript/projenrc.js +3 -3
  70. package/lib/javascript/render-options.d.ts +5 -0
  71. package/lib/javascript/render-options.js +24 -21
  72. package/lib/jest.js +1 -1
  73. package/lib/jsii-project.js +1 -1
  74. package/lib/json/projenrc.js +1 -1
  75. package/lib/json/run-projenrc.task.js +6 -11
  76. package/lib/json.js +1 -1
  77. package/lib/license.js +1 -1
  78. package/lib/logger.js +1 -1
  79. package/lib/makefile.js +1 -1
  80. package/lib/node-package.js +1 -1
  81. package/lib/node-project.d.ts +11 -1
  82. package/lib/node-project.js +9 -4
  83. package/lib/object-file.js +1 -1
  84. package/lib/project.js +2 -2
  85. package/lib/projects.d.ts +80 -0
  86. package/lib/projects.js +81 -0
  87. package/lib/python/pip.js +1 -1
  88. package/lib/python/poetry.js +2 -2
  89. package/lib/python/projenrc.js +4 -5
  90. package/lib/python/pytest.js +1 -1
  91. package/lib/python/python-project.js +1 -1
  92. package/lib/python/python-sample.js +1 -1
  93. package/lib/python/requirements-file.js +1 -1
  94. package/lib/python/setuppy.js +1 -1
  95. package/lib/python/setuptools.js +1 -1
  96. package/lib/python/venv.js +1 -1
  97. package/lib/readme.js +1 -1
  98. package/lib/release/publisher.js +1 -1
  99. package/lib/release/release-trigger.js +1 -1
  100. package/lib/release/release.js +1 -1
  101. package/lib/sample-file.js +2 -2
  102. package/lib/semver.js +1 -1
  103. package/lib/source-code.js +1 -1
  104. package/lib/tasks/runtime.js +1 -1
  105. package/lib/tasks/task.js +1 -1
  106. package/lib/tasks/tasks.js +1 -1
  107. package/lib/textfile.js +1 -1
  108. package/lib/toml.js +1 -1
  109. package/lib/typescript/projenrc.js +3 -3
  110. package/lib/typescript-config.js +1 -1
  111. package/lib/typescript.js +3 -3
  112. package/lib/upgrade-dependencies.js +2 -2
  113. package/lib/util/synth.d.ts +4 -0
  114. package/lib/util/synth.js +35 -2
  115. package/lib/util.js +11 -3
  116. package/lib/version.js +1 -1
  117. package/lib/vscode/devcontainer.js +1 -1
  118. package/lib/vscode/launch-config.js +1 -1
  119. package/lib/vscode/vscode.js +1 -1
  120. package/lib/web/next.js +3 -3
  121. package/lib/web/postcss.js +1 -1
  122. package/lib/web/react.js +4 -4
  123. package/lib/web/tailwind.js +1 -1
  124. package/lib/xmlfile.js +1 -1
  125. package/lib/yaml.js +1 -1
  126. package/node_modules/case/LICENSE +22 -0
  127. package/node_modules/case/README.md +139 -0
  128. package/node_modules/case/case.d.ts +43 -0
  129. package/node_modules/case/dist/Case.js +171 -0
  130. package/node_modules/case/dist/Case.min.js +5 -0
  131. package/node_modules/case/dist/Case.min.js.map +1 -0
  132. package/node_modules/case/dist/Case.plus.js +189 -0
  133. package/node_modules/case/dist/Case.plus.min.js +5 -0
  134. package/node_modules/case/dist/Case.plus.min.js.map +1 -0
  135. package/node_modules/case/package.json +58 -0
  136. package/package.json +4 -4
  137. package/lib/cli/create.d.ts +0 -41
  138. package/lib/cli/create.js +0 -48
  139. package/node_modules/decamelize/index.d.ts +0 -20
  140. package/node_modules/decamelize/index.js +0 -12
  141. package/node_modules/decamelize/license +0 -9
  142. package/node_modules/decamelize/package.json +0 -40
  143. package/node_modules/decamelize/readme.md +0 -51
package/README.md CHANGED
@@ -46,6 +46,7 @@ Currently supported project types (use `npx projen new` without a type for a
46
46
  list):
47
47
 
48
48
  <!-- <macro exec="node ./scripts/readme-projects.js"> -->
49
+ * [awscdk-app-java](https://github.com/projen/projen/blob/main/API.md#projen-awscdk-awscdkjavaapp) - AWS CDK app in Java.
49
50
  * [awscdk-app-ts](https://github.com/projen/projen/blob/main/API.md#projen-awscdktypescriptapp) - AWS CDK app in TypeScript.
50
51
  * [awscdk-construct](https://github.com/projen/projen/blob/main/API.md#projen-awscdkconstructlibrary) - AWS CDK construct library project.
51
52
  * [cdk8s-app-ts](https://github.com/projen/projen/blob/main/API.md#projen-cdk8stypescriptapp) - CDK8s app in TypeScript.
@@ -0,0 +1,103 @@
1
+ # AWS Lambda Functions
2
+
3
+ Projen supports authoring Node.js AWS Lambda functions in AWS CDK libraries and
4
+ apps.
5
+
6
+ This includes:
7
+
8
+ - Seamlessly produce JavaScript bundles with all dependencies as part during
9
+ build.
10
+ - Generates source code for an AWS CDK construct for your function that is
11
+ pre-connected to your bundled handler code.
12
+
13
+ ## Usage
14
+
15
+ In AWS CDK projects (`awscdk-construct` or `awscdk-app-ts`), AWS Lambda
16
+ functions are automatically created for each `.lambda.ts` file in your source
17
+ tree.
18
+
19
+ First create a TypeScript source file with your AWS Lambda handler code. The
20
+ file must have a `.lambda.ts` suffix and reside under the source tree and
21
+ include a standard AWS Lambda handler file which exports the `handler` function.
22
+
23
+ `src/resize-image.lambda.ts`:
24
+
25
+ ```ts
26
+ export async function handler(event: any) {
27
+ console.log('I am resizing the image now!');
28
+ }
29
+ ```
30
+
31
+ Now, simply run:
32
+
33
+ ```sh
34
+ $ npx projen
35
+ ```
36
+
37
+ The following will happen:
38
+
39
+ 1. A new task called `bundle:resize-image` will be added to your project. This
40
+ task uses `esbuild` to produce a JavaScript bundle with your handler code and
41
+ all of its dependencies. The bundled output will be emitted under
42
+ `lib/resize-image.bundle/index.js`.
43
+ 2. A file will be generated under `src/resize-image-function.ts` which includes
44
+ the code for a construct called `ResizeImageFunction`. This construct extends
45
+ the `@aws-cdk/aws-lambda.Function` class and bound to your handler.
46
+
47
+ To refer to your AWS Lambda function from your CDK code, simply import this
48
+ class and add it to your app:
49
+
50
+ ```ts
51
+ import { ResizeImageFunction } from './resize-image-function.ts';
52
+
53
+ const handler = new ResizeImageFunction(this, 'ResizeImageFunction', {
54
+ env: {
55
+ FOO: '1234',
56
+ },
57
+
58
+ // all lambda options are supported...
59
+ });
60
+ ```
61
+
62
+ ## Options
63
+
64
+ The `lambdaOptions` option can be used to configure all AWS Lambda functions in your project.
65
+
66
+ These are the defaults:
67
+
68
+ ```ts
69
+ const { awscdk } = require('projen');
70
+
71
+ new AwsCdkConstructLibrary({
72
+ // ...
73
+ lambdaOptions: {
74
+ // target node.js runtime
75
+ runtime: awscdk.LambdaRuntime.NODEJS_14_X,
76
+
77
+ // list of node modules to exclude from the bundle
78
+ externals: [ 'aws-sdk' ]
79
+ }
80
+ });
81
+ ```
82
+
83
+ ## Auto-discovery
84
+
85
+ As mentioned above, an AWS Lambda function will be created for every
86
+ `.lambda.ts` file in your source tree. To disable auto-discovery, set
87
+ `lambdaAutoDiscover` to `false` and then you can manually add
88
+ `awscdk.LambdaFunction` to your project:
89
+
90
+ ```ts
91
+ const { awscdk } = require('projen');
92
+
93
+ const p = new AwsCdkTypeScriptApp({
94
+ lambdaAutoDiscover: false
95
+ });
96
+
97
+ new awscdk.LambdaFunction(p, {
98
+ srcdir: p.srcdir,
99
+ libdir: p.libdir,
100
+ entrypoint: 'src/foo.lambda.ts', // .lambda.ts extension is still required
101
+ runtime: aws_lambda.Runtime.NODEJS_12_X,
102
+ });
103
+ ```
@@ -0,0 +1,56 @@
1
+ # Programmatic API
2
+
3
+ Projen exposes a programmatic API that allows you to create new projects through
4
+ code instead of the regular CLI command `npx projen new`. This allows projen to
5
+ be used to create new projects within scripts and other contexts.
6
+
7
+ ## Example
8
+
9
+ ```js
10
+ const { Projects } = require('projen');
11
+
12
+ Projects.createProject({
13
+ dir: '/path/to/mydir',
14
+ projectFqn: 'projen.TypeScriptProject',
15
+ projectOptions: {
16
+ name: 'my-test-project',
17
+ defaultReleaseBranch: 'main',
18
+ projenrcTs: true,
19
+ eslintOptions: {
20
+ dirs: ['src', 'test'],
21
+ prettier: true,
22
+ aliasMap: {
23
+ '@src': './src',
24
+ '@components': './src/components',
25
+ },
26
+ },
27
+ },
28
+ post: false,
29
+ // synth: true (default)
30
+ // optionHints: 'featured' (default)
31
+ });
32
+ ```
33
+
34
+ This script creates a new TypeScript project at `/path/to/mydir` in my file
35
+ system. The `.projenrc.ts` file it generates comes pre-included with options
36
+ specified, including complex values for fields that cannot normally be provided
37
+ through the CLI, like `eslintOptions` (because the field requires an object
38
+ value).
39
+
40
+ In the above example, the provided option `post: false` was also added to
41
+ disable post-installation steps such as installing NPM dependencies.
42
+
43
+ > **Note:** It is important that you provide all fields that are required by the
44
+ project type, otherwise the project may not synthesize properly.
45
+
46
+ It is also possible to use this for installing external project types.
47
+ Currently, this requires you to install the package so that it can be used by
48
+ projen.
49
+
50
+ ```js
51
+ Projects.createProject({
52
+ // ...
53
+ projectFqn: '@myorg/my-package.MyJsiiProject',
54
+ });
55
+ ```
56
+
@@ -0,0 +1,46 @@
1
+ import { Component } from '../component';
2
+ import { Project } from '../project';
3
+ import { LambdaFunctionCommonOptions } from './lambda-function';
4
+ /**
5
+ * (experimental) Options for `AutoDiscover`.
6
+ *
7
+ * @experimental
8
+ */
9
+ export interface AutoDiscoverOptions {
10
+ /**
11
+ * (experimental) Options for auto-discovery of AWS Lambda functions.
12
+ *
13
+ * @experimental
14
+ */
15
+ readonly lambdaOptions?: LambdaFunctionCommonOptions;
16
+ /**
17
+ * (experimental) Project source tree (relative to project output directory).
18
+ *
19
+ * @experimental
20
+ */
21
+ readonly srcdir: string;
22
+ /**
23
+ * (experimental) Output directory (where .js files go).
24
+ *
25
+ * @experimental
26
+ */
27
+ readonly libdir: string;
28
+ }
29
+ /**
30
+ * (experimental) Automatically creates a `LambdaFunction` for all `.lambda.ts` files under the source directory of the project.
31
+ *
32
+ * @experimental
33
+ */
34
+ export declare class AutoDiscover extends Component {
35
+ private readonly options;
36
+ /**
37
+ * @experimental
38
+ */
39
+ constructor(project: Project, options: AutoDiscoverOptions);
40
+ /**
41
+ * (experimental) Called before synthesis.
42
+ *
43
+ * @experimental
44
+ */
45
+ preSynthesize(): void;
46
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AutoDiscover = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const path_1 = require("path");
7
+ const glob = require("glob");
8
+ const component_1 = require("../component");
9
+ const internal_1 = require("./internal");
10
+ const lambda_function_1 = require("./lambda-function");
11
+ /**
12
+ * (experimental) Automatically creates a `LambdaFunction` for all `.lambda.ts` files under the source directory of the project.
13
+ *
14
+ * @experimental
15
+ */
16
+ class AutoDiscover extends component_1.Component {
17
+ /**
18
+ * @experimental
19
+ */
20
+ constructor(project, options) {
21
+ super(project);
22
+ this.options = options;
23
+ }
24
+ /**
25
+ * (experimental) Called before synthesis.
26
+ *
27
+ * @experimental
28
+ */
29
+ preSynthesize() {
30
+ const entrypoints = glob.sync(`**/*${internal_1.TYPESCRIPT_LAMBDA_EXT}`, {
31
+ cwd: path_1.join(this.project.outdir, this.options.srcdir),
32
+ });
33
+ for (const entrypoint of entrypoints) {
34
+ new lambda_function_1.LambdaFunction(this.project, {
35
+ libdir: this.options.libdir,
36
+ srcdir: this.options.srcdir,
37
+ entrypoint: path_1.join(this.options.srcdir, entrypoint),
38
+ ...this.options.lambdaOptions,
39
+ });
40
+ }
41
+ }
42
+ }
43
+ exports.AutoDiscover = AutoDiscover;
44
+ _a = JSII_RTTI_SYMBOL_1;
45
+ AutoDiscover[_a] = { fqn: "projen.awscdk.AutoDiscover", version: "0.32.2" };
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kaXNjb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXV0by1kaXNjb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0IsNENBQXlDO0FBRXpDLHlDQUFtRDtBQUNuRCx1REFBZ0Y7Ozs7OztBQWVoRixNQUFhLFlBQWEsU0FBUSxxQkFBUzs7OztJQUd6QyxZQUFZLE9BQWdCLEVBQUUsT0FBNEI7UUFDeEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQzs7Ozs7O0lBRU0sYUFBYTtRQUNsQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sZ0NBQXFCLEVBQUUsRUFBRTtZQUM1RCxHQUFHLEVBQUUsV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQ3BELENBQUMsQ0FBQztRQUVILEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO1lBQ3BDLElBQUksZ0NBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUMzQixVQUFVLEVBQUUsV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQztnQkFDakQsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7YUFDOUIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztBQXRCSCxvQ0F1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gJ2dsb2InO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50JztcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tICcuLi9wcm9qZWN0JztcbmltcG9ydCB7IFRZUEVTQ1JJUFRfTEFNQkRBX0VYVCB9IGZyb20gJy4vaW50ZXJuYWwnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24sIExhbWJkYUZ1bmN0aW9uQ29tbW9uT3B0aW9ucyB9IGZyb20gJy4vbGFtYmRhLWZ1bmN0aW9uJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0Rpc2NvdmVyT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsYW1iZGFPcHRpb25zPzogTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNyY2Rpcjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbGliZGlyOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBBdXRvRGlzY292ZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEF1dG9EaXNjb3Zlck9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogQXV0b0Rpc2NvdmVyT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCkge1xuICAgIGNvbnN0IGVudHJ5cG9pbnRzID0gZ2xvYi5zeW5jKGAqKi8qJHtUWVBFU0NSSVBUX0xBTUJEQV9FWFR9YCwge1xuICAgICAgY3dkOiBqb2luKHRoaXMucHJvamVjdC5vdXRkaXIsIHRoaXMub3B0aW9ucy5zcmNkaXIpLFxuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeXBvaW50IG9mIGVudHJ5cG9pbnRzKSB7XG4gICAgICBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcy5wcm9qZWN0LCB7XG4gICAgICAgIGxpYmRpcjogdGhpcy5vcHRpb25zLmxpYmRpcixcbiAgICAgICAgc3JjZGlyOiB0aGlzLm9wdGlvbnMuc3JjZGlyLFxuICAgICAgICBlbnRyeXBvaW50OiBqb2luKHRoaXMub3B0aW9ucy5zcmNkaXIsIGVudHJ5cG9pbnQpLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMubGFtYmRhT3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufSJdfQ==
@@ -0,0 +1,103 @@
1
+ import { Component } from '../component';
2
+ import { JsonFile } from '../json';
3
+ import { Project } from '../project';
4
+ /**
5
+ * (experimental) Common options for `cdk.json`.
6
+ *
7
+ * @experimental
8
+ */
9
+ export interface CdkConfigCommonOptions {
10
+ /**
11
+ * (experimental) Additional context to include in `cdk.json`.
12
+ *
13
+ * @default - no additional context
14
+ * @experimental
15
+ */
16
+ readonly context?: {
17
+ [key: string]: string;
18
+ };
19
+ /**
20
+ * (experimental) Include all feature flags in cdk.json.
21
+ *
22
+ * @default true
23
+ * @experimental
24
+ */
25
+ readonly featureFlags?: boolean;
26
+ /**
27
+ * (experimental) 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.
28
+ *
29
+ * @default ApprovalLevel.BROADENING
30
+ * @experimental
31
+ */
32
+ readonly requireApproval?: ApprovalLevel;
33
+ /**
34
+ * (experimental) cdk.out directory.
35
+ *
36
+ * @default "cdk.out"
37
+ * @experimental
38
+ */
39
+ readonly cdkout?: string;
40
+ }
41
+ /**
42
+ * (experimental) Options for `CdkJson`.
43
+ *
44
+ * @experimental
45
+ */
46
+ export interface CdkConfigOptions extends CdkConfigCommonOptions {
47
+ /**
48
+ * (experimental) The command line to execute in order to synthesize the CDK application (language specific).
49
+ *
50
+ * @experimental
51
+ */
52
+ readonly app: string;
53
+ }
54
+ /**
55
+ * (experimental) Represents cdk.json file.
56
+ *
57
+ * @experimental
58
+ */
59
+ export declare class CdkConfig extends Component {
60
+ /**
61
+ * (experimental) Represents the JSON file.
62
+ *
63
+ * @experimental
64
+ */
65
+ readonly json: JsonFile;
66
+ /**
67
+ * (experimental) Name of the cdk.out directory.
68
+ *
69
+ * @experimental
70
+ */
71
+ readonly cdkout: string;
72
+ /**
73
+ * @experimental
74
+ */
75
+ constructor(project: Project, options: CdkConfigOptions);
76
+ }
77
+ /**
78
+ * (experimental) Which approval is required when deploying CDK apps.
79
+ *
80
+ * @experimental
81
+ */
82
+ export declare enum ApprovalLevel {
83
+ /**
84
+ * (experimental) Approval is never required.
85
+ *
86
+ * @experimental
87
+ */
88
+ NEVER = "never",
89
+ /**
90
+ * (experimental) Requires approval on any IAM or security-group-related change.
91
+ *
92
+ * @experimental
93
+ */
94
+ ANY_CHANGE = "any-change",
95
+ /**
96
+ * (experimental) Requires approval when IAM statements or traffic rules are added;
97
+ *
98
+ * removals don't require approval
99
+ *
100
+ * @experimental
101
+ */
102
+ BROADENING = "broadening"
103
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ApprovalLevel = exports.CdkConfig = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const component_1 = require("../component");
7
+ const json_1 = require("../json");
8
+ const internal_1 = require("./internal");
9
+ /**
10
+ * (experimental) Represents cdk.json file.
11
+ *
12
+ * @experimental
13
+ */
14
+ class CdkConfig extends component_1.Component {
15
+ /**
16
+ * @experimental
17
+ */
18
+ constructor(project, options) {
19
+ var _b, _c;
20
+ super(project);
21
+ this.cdkout = (_b = options.cdkout) !== null && _b !== void 0 ? _b : 'cdk.out';
22
+ const context = { ...options.context };
23
+ const fflags = (_c = options.featureFlags) !== null && _c !== void 0 ? _c : true;
24
+ if (fflags) {
25
+ for (const flag of internal_1.FEATURE_FLAGS) {
26
+ context[flag] = true;
27
+ }
28
+ }
29
+ this.json = new json_1.JsonFile(project, 'cdk.json', {
30
+ omitEmpty: true,
31
+ obj: {
32
+ app: options.app,
33
+ context: context,
34
+ requireApproval: options.requireApproval,
35
+ output: this.cdkout,
36
+ },
37
+ });
38
+ project.gitignore.exclude(`/${this.cdkout}/`);
39
+ project.gitignore.exclude('.cdk.staging/');
40
+ }
41
+ }
42
+ exports.CdkConfig = CdkConfig;
43
+ _a = JSII_RTTI_SYMBOL_1;
44
+ CdkConfig[_a] = { fqn: "projen.awscdk.CdkConfig", version: "0.32.2" };
45
+ /**
46
+ * (experimental) Which approval is required when deploying CDK apps.
47
+ *
48
+ * @experimental
49
+ */
50
+ var ApprovalLevel;
51
+ (function (ApprovalLevel) {
52
+ ApprovalLevel["NEVER"] = "never";
53
+ ApprovalLevel["ANY_CHANGE"] = "any-change";
54
+ ApprovalLevel["BROADENING"] = "broadening";
55
+ })(ApprovalLevel = exports.ApprovalLevel || (exports.ApprovalLevel = {}));
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvY2RrLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUF5QztBQUN6QyxrQ0FBbUM7QUFFbkMseUNBQTJDOzs7Ozs7QUF3QjNDLE1BQWEsU0FBVSxTQUFRLHFCQUFTOzs7O0lBUXRDLFlBQVksT0FBZ0IsRUFBRSxPQUF5Qjs7UUFDckQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLE1BQU0sU0FBRyxPQUFPLENBQUMsTUFBTSxtQ0FBSSxTQUFTLENBQUM7UUFFMUMsTUFBTSxPQUFPLEdBQXdCLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUQsTUFBTSxNQUFNLFNBQUcsT0FBTyxDQUFDLFlBQVksbUNBQUksSUFBSSxDQUFDO1FBQzVDLElBQUksTUFBTSxFQUFFO1lBQ1YsS0FBSyxNQUFNLElBQUksSUFBSSx3QkFBYSxFQUFFO2dCQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQ3RCO1NBQ0Y7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZUFBUSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUU7WUFDNUMsU0FBUyxFQUFFLElBQUk7WUFDZixHQUFHLEVBQUU7Z0JBQ0gsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO2dCQUNoQixPQUFPLEVBQUUsT0FBTztnQkFDaEIsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlO2dCQUN4QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07YUFDcEI7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7O0FBakNILDhCQWtDQzs7Ozs7Ozs7QUFHRCxJQUFZLGFBT1g7QUFQRCxXQUFZLGFBQWE7SUFFdkIsZ0NBQWUsQ0FBQTtJQUVmLDBDQUF5QixDQUFBO0lBRXpCLDBDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFQVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQU94QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBKc29uRmlsZSB9IGZyb20gJy4uL2pzb24nO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QnO1xuaW1wb3J0IHsgRkVBVFVSRV9GTEFHUyB9IGZyb20gJy4vaW50ZXJuYWwnO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBDZGtDb25maWdDb21tb25PcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbnRleHQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGZlYXR1cmVGbGFncz86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJlcXVpcmVBcHByb3ZhbD86IEFwcHJvdmFsTGV2ZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY2Rrb3V0Pzogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgQ2RrQ29uZmlnT3B0aW9ucyBleHRlbmRzIENka0NvbmZpZ0NvbW1vbk9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXBwOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIENka0NvbmZpZyBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkganNvbjogSnNvbkZpbGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBjZGtvdXQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBDZGtDb25maWdPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLmNka291dCA9IG9wdGlvbnMuY2Rrb3V0ID8/ICdjZGsub3V0JztcblxuICAgIGNvbnN0IGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7IC4uLm9wdGlvbnMuY29udGV4dCB9O1xuICAgIGNvbnN0IGZmbGFncyA9IG9wdGlvbnMuZmVhdHVyZUZsYWdzID8/IHRydWU7XG4gICAgaWYgKGZmbGFncykge1xuICAgICAgZm9yIChjb25zdCBmbGFnIG9mIEZFQVRVUkVfRkxBR1MpIHtcbiAgICAgICAgY29udGV4dFtmbGFnXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5qc29uID0gbmV3IEpzb25GaWxlKHByb2plY3QsICdjZGsuanNvbicsIHtcbiAgICAgIG9taXRFbXB0eTogdHJ1ZSxcbiAgICAgIG9iajoge1xuICAgICAgICBhcHA6IG9wdGlvbnMuYXBwLFxuICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICByZXF1aXJlQXBwcm92YWw6IG9wdGlvbnMucmVxdWlyZUFwcHJvdmFsLFxuICAgICAgICBvdXRwdXQ6IHRoaXMuY2Rrb3V0LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHByb2plY3QuZ2l0aWdub3JlLmV4Y2x1ZGUoYC8ke3RoaXMuY2Rrb3V0fS9gKTtcbiAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKCcuY2RrLnN0YWdpbmcvJyk7XG4gIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBlbnVtIEFwcHJvdmFsTGV2ZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBORVZFUiA9ICduZXZlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgQU5ZX0NIQU5HRSA9ICdhbnktY2hhbmdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBCUk9BREVOSU5HID0gJ2Jyb2FkZW5pbmcnLFxufVxuXG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { Component } from '../component';
2
+ import { Project } from '../project';
3
+ import { Task } from '../tasks';
4
+ /**
5
+ * (experimental) Adds standard AWS CDK tasks to your project.
6
+ *
7
+ * @experimental
8
+ */
9
+ export declare class CdkTasks extends Component {
10
+ /**
11
+ * (experimental) Synthesizes your app.
12
+ *
13
+ * @experimental
14
+ */
15
+ readonly synth: Task;
16
+ /**
17
+ * (experimental) Deploys your app.
18
+ *
19
+ * @experimental
20
+ */
21
+ readonly deploy: Task;
22
+ /**
23
+ * (experimental) Destroys all the stacks.
24
+ *
25
+ * @experimental
26
+ */
27
+ readonly destroy: Task;
28
+ /**
29
+ * (experimental) Diff against production.
30
+ *
31
+ * @experimental
32
+ */
33
+ readonly diff: Task;
34
+ /**
35
+ * @experimental
36
+ */
37
+ constructor(project: Project);
38
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.CdkTasks = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const component_1 = require("../component");
7
+ /**
8
+ * (experimental) Adds standard AWS CDK tasks to your project.
9
+ *
10
+ * @experimental
11
+ */
12
+ class CdkTasks extends component_1.Component {
13
+ /**
14
+ * @experimental
15
+ */
16
+ constructor(project) {
17
+ super(project);
18
+ this.synth = project.addTask('synth', {
19
+ description: 'Synthesizes your cdk app into cdk.out (part of "yarn build")',
20
+ exec: 'cdk synth',
21
+ });
22
+ this.deploy = project.addTask('deploy', {
23
+ description: 'Deploys your CDK app to the AWS cloud',
24
+ exec: 'cdk deploy',
25
+ });
26
+ this.destroy = project.addTask('destroy', {
27
+ description: 'Destroys your cdk app in the AWS cloud',
28
+ exec: 'cdk destroy',
29
+ });
30
+ this.diff = project.addTask('diff', {
31
+ description: 'Diffs the currently deployed app against your code',
32
+ exec: 'cdk diff',
33
+ });
34
+ }
35
+ }
36
+ exports.CdkTasks = CdkTasks;
37
+ _a = JSII_RTTI_SYMBOL_1;
38
+ CdkTasks[_a] = { fqn: "projen.awscdk.CdkTasks", version: "0.32.2" };
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXRhc2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9jZGstdGFza3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBeUM7Ozs7OztBQUt6QyxNQUFhLFFBQVMsU0FBUSxxQkFBUzs7OztJQWFyQyxZQUFZLE9BQWdCO1FBQzFCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDcEMsV0FBVyxFQUFFLDhEQUE4RDtZQUMzRSxJQUFJLEVBQUUsV0FBVztTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3RDLFdBQVcsRUFBRSx1Q0FBdUM7WUFDcEQsSUFBSSxFQUFFLFlBQVk7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN4QyxXQUFXLEVBQUUsd0NBQXdDO1lBQ3JELElBQUksRUFBRSxhQUFhO1NBQ3BCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDbEMsV0FBVyxFQUFFLG9EQUFvRDtZQUNqRSxJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDOztBQW5DSCw0QkFvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QnO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uL3Rhc2tzJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIENka1Rhc2tzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBzeW50aDogVGFzaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgZGVwbG95OiBUYXNrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgZGVzdHJveTogVGFzaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGRpZmY6IFRhc2s7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5zeW50aCA9IHByb2plY3QuYWRkVGFzaygnc3ludGgnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1N5bnRoZXNpemVzIHlvdXIgY2RrIGFwcCBpbnRvIGNkay5vdXQgKHBhcnQgb2YgXCJ5YXJuIGJ1aWxkXCIpJyxcbiAgICAgIGV4ZWM6ICdjZGsgc3ludGgnLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kZXBsb3kgPSBwcm9qZWN0LmFkZFRhc2soJ2RlcGxveScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVwbG95cyB5b3VyIENESyBhcHAgdG8gdGhlIEFXUyBjbG91ZCcsXG4gICAgICBleGVjOiAnY2RrIGRlcGxveScsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlc3Ryb3kgPSBwcm9qZWN0LmFkZFRhc2soJ2Rlc3Ryb3knLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc3Ryb3lzIHlvdXIgY2RrIGFwcCBpbiB0aGUgQVdTIGNsb3VkJyxcbiAgICAgIGV4ZWM6ICdjZGsgZGVzdHJveScsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRpZmYgPSBwcm9qZWN0LmFkZFRhc2soJ2RpZmYnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0RpZmZzIHRoZSBjdXJyZW50bHkgZGVwbG95ZWQgYXBwIGFnYWluc3QgeW91ciBjb2RlJyxcbiAgICAgIGV4ZWM6ICdjZGsgZGlmZicsXG4gICAgfSk7XG4gIH1cbn0iXX0=
@@ -0,0 +1,5 @@
1
+ export * from './java-app';
2
+ export * from './cdk-config';
3
+ export * from './cdk-tasks';
4
+ export * from './auto-discover';
5
+ export * from './lambda-function';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./java-app"), exports);
14
+ __exportStar(require("./cdk-config"), exports);
15
+ __exportStar(require("./cdk-tasks"), exports);
16
+ __exportStar(require("./auto-discover"), exports);
17
+ __exportStar(require("./lambda-function"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiwrQ0FBNkI7QUFDN0IsOENBQTRCO0FBQzVCLGtEQUFnQztBQUNoQyxvREFBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2phdmEtYXBwJztcbmV4cG9ydCAqIGZyb20gJy4vY2RrLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2Nkay10YXNrcyc7XG5leHBvcnQgKiBmcm9tICcuL2F1dG8tZGlzY292ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9sYW1iZGEtZnVuY3Rpb24nOyJdfQ==
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Feature flags as of v1.130.0
3
+ */
4
+ export declare const FEATURE_FLAGS: string[];
5
+ /**
6
+ * Suffix for AWS Lambda handlers.
7
+ */
8
+ export declare const TYPESCRIPT_LAMBDA_EXT = ".lambda.ts";
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TYPESCRIPT_LAMBDA_EXT = exports.FEATURE_FLAGS = void 0;
4
+ /**
5
+ * Feature flags as of v1.130.0
6
+ */
7
+ exports.FEATURE_FLAGS = [
8
+ 'aws-cdk:enableDiffNoFail',
9
+ '@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId',
10
+ '@aws-cdk/core:enableStackNameDuplicates',
11
+ '@aws-cdk/core:stackRelativeExports',
12
+ '@aws-cdk/aws-ecr-assets:dockerIgnoreSupport',
13
+ '@aws-cdk/aws-secretsmanager:parseOwnedSecretName',
14
+ '@aws-cdk/aws-kms:defaultKeyPolicies',
15
+ '@aws-cdk/aws-s3:grantWriteWithoutAcl',
16
+ '@aws-cdk/aws-ecs-patterns:removeDefaultDesiredCount',
17
+ '@aws-cdk/aws-rds:lowercaseDbIdentifier',
18
+ '@aws-cdk/aws-efs:defaultEncryptionAtRest',
19
+ '@aws-cdk/aws-lambda:recognizeVersionProps',
20
+ '@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021',
21
+ ];
22
+ /**
23
+ * Suffix for AWS Lambda handlers.
24
+ */
25
+ exports.TYPESCRIPT_LAMBDA_EXT = '.lambda.ts';
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2ludGVybmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ1UsUUFBQSxhQUFhLEdBQUc7SUFDM0IsMEJBQTBCO0lBQzFCLHdEQUF3RDtJQUN4RCx5Q0FBeUM7SUFDekMsb0NBQW9DO0lBQ3BDLDZDQUE2QztJQUM3QyxrREFBa0Q7SUFDbEQscUNBQXFDO0lBQ3JDLHNDQUFzQztJQUN0QyxxREFBcUQ7SUFDckQsd0NBQXdDO0lBQ3hDLDBDQUEwQztJQUMxQywyQ0FBMkM7SUFDM0MsMkRBQTJEO0NBQzVELENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGZWF0dXJlIGZsYWdzIGFzIG9mIHYxLjEzMC4wXG4gKi9cbmV4cG9ydCBjb25zdCBGRUFUVVJFX0ZMQUdTID0gW1xuICAnYXdzLWNkazplbmFibGVEaWZmTm9GYWlsJyxcbiAgJ0Bhd3MtY2RrL2F3cy1hcGlnYXRld2F5OnVzYWdlUGxhbktleU9yZGVySW5zZW5zaXRpdmVJZCcsXG4gICdAYXdzLWNkay9jb3JlOmVuYWJsZVN0YWNrTmFtZUR1cGxpY2F0ZXMnLFxuICAnQGF3cy1jZGsvY29yZTpzdGFja1JlbGF0aXZlRXhwb3J0cycsXG4gICdAYXdzLWNkay9hd3MtZWNyLWFzc2V0czpkb2NrZXJJZ25vcmVTdXBwb3J0JyxcbiAgJ0Bhd3MtY2RrL2F3cy1zZWNyZXRzbWFuYWdlcjpwYXJzZU93bmVkU2VjcmV0TmFtZScsXG4gICdAYXdzLWNkay9hd3Mta21zOmRlZmF1bHRLZXlQb2xpY2llcycsXG4gICdAYXdzLWNkay9hd3MtczM6Z3JhbnRXcml0ZVdpdGhvdXRBY2wnLFxuICAnQGF3cy1jZGsvYXdzLWVjcy1wYXR0ZXJuczpyZW1vdmVEZWZhdWx0RGVzaXJlZENvdW50JyxcbiAgJ0Bhd3MtY2RrL2F3cy1yZHM6bG93ZXJjYXNlRGJJZGVudGlmaWVyJyxcbiAgJ0Bhd3MtY2RrL2F3cy1lZnM6ZGVmYXVsdEVuY3J5cHRpb25BdFJlc3QnLFxuICAnQGF3cy1jZGsvYXdzLWxhbWJkYTpyZWNvZ25pemVWZXJzaW9uUHJvcHMnLFxuICAnQGF3cy1jZGsvYXdzLWNsb3VkZnJvbnQ6ZGVmYXVsdFNlY3VyaXR5UG9saWN5VExTdjEuMl8yMDIxJyxcbl07XG5cbi8qKlxuICogU3VmZml4IGZvciBBV1MgTGFtYmRhIGhhbmRsZXJzLlxuICovXG5leHBvcnQgY29uc3QgVFlQRVNDUklQVF9MQU1CREFfRVhUID0gJy5sYW1iZGEudHMnOyJdfQ==
@@ -0,0 +1,92 @@
1
+ import { JavaProject, JavaProjectOptions } from '../java';
2
+ import { CdkConfig, CdkConfigCommonOptions } from './cdk-config';
3
+ import { CdkTasks } from './cdk-tasks';
4
+ /**
5
+ * @experimental
6
+ */
7
+ export interface AwsCdkJavaAppOptions extends JavaProjectOptions, CdkConfigCommonOptions {
8
+ /**
9
+ * (experimental) AWS CDK version to use (you can use semantic versioning).
10
+ *
11
+ * @default "^1.130.0"
12
+ * @experimental
13
+ */
14
+ readonly cdkVersion: string;
15
+ /**
16
+ * (experimental) Which AWS CDK modules this app uses.
17
+ *
18
+ * The `core` module is included by
19
+ * default and you can add additional modules here by stating only the package
20
+ * name (e.g. `aws-lambda`).
21
+ *
22
+ * @experimental
23
+ * @featured true
24
+ */
25
+ readonly cdkDependencies?: string[];
26
+ /**
27
+ * (experimental) The name of the Java class with the static `main()` method.
28
+ *
29
+ * This method
30
+ * should call `app.synth()` on the CDK app.
31
+ *
32
+ * @default "org.acme.App"
33
+ * @experimental
34
+ */
35
+ readonly mainClass: string;
36
+ }
37
+ /**
38
+ * (experimental) AWS CDK app in Java.
39
+ *
40
+ * @experimental
41
+ * @pjid awscdk-app-java
42
+ */
43
+ export declare class AwsCdkJavaApp extends JavaProject {
44
+ /**
45
+ * (experimental) The CDK version this app is using.
46
+ *
47
+ * @experimental
48
+ */
49
+ readonly cdkVersion: string;
50
+ /**
51
+ * (experimental) The `cdk.json` file.
52
+ *
53
+ * @experimental
54
+ */
55
+ readonly cdkConfig: CdkConfig;
56
+ /**
57
+ * (experimental) The full name of the main class of the java app (package.Class).
58
+ *
59
+ * @experimental
60
+ */
61
+ readonly mainClass: string;
62
+ /**
63
+ * (experimental) CDK tasks.
64
+ *
65
+ * @experimental
66
+ */
67
+ readonly cdkTasks: CdkTasks;
68
+ /**
69
+ * (experimental) The name of the Java package that includes the main class.
70
+ *
71
+ * @experimental
72
+ */
73
+ readonly mainPackage: string;
74
+ /**
75
+ * (experimental) The name of the Java class with the static `main()` method.
76
+ *
77
+ * @experimental
78
+ */
79
+ readonly mainClassName: string;
80
+ /**
81
+ * @experimental
82
+ */
83
+ constructor(options: AwsCdkJavaAppOptions);
84
+ /**
85
+ * (experimental) Adds an AWS CDK module dependencies.
86
+ *
87
+ * @param modules The list of modules to depend on (e.g. "core", "aws-lambda", etc).
88
+ * @experimental
89
+ */
90
+ addCdkDependency(...modules: string[]): void;
91
+ private addSample;
92
+ }