projen 0.32.0 → 0.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +1073 -113
- package/API.md +348 -60
- package/docs/aws-lambda.md +103 -0
- package/lib/awscdk/auto-discover.d.ts +46 -0
- package/lib/awscdk/auto-discover.js +46 -0
- package/lib/awscdk/cdk-config.js +1 -1
- package/lib/awscdk/cdk-tasks.js +1 -1
- package/lib/awscdk/index.d.ts +2 -0
- package/lib/awscdk/index.js +3 -1
- package/lib/awscdk/internal.d.ts +4 -0
- package/lib/awscdk/internal.js +6 -2
- package/lib/awscdk/java-app.js +1 -1
- package/lib/awscdk/lambda-function.d.ts +146 -0
- package/lib/awscdk/lambda-function.js +160 -0
- package/lib/awscdk-app-ts.d.ts +15 -1
- package/lib/awscdk-app-ts.js +13 -5
- package/lib/awscdk-construct.d.ts +15 -58
- package/lib/awscdk-construct.js +13 -62
- package/lib/cdk8s-app-ts.js +1 -1
- package/lib/cdk8s-construct.js +1 -1
- package/lib/cdktf-construct.js +1 -1
- package/lib/component.js +1 -1
- package/lib/construct-lib.js +1 -1
- package/lib/deps/dependencies.js +1 -1
- package/lib/dev-env.js +1 -1
- package/lib/docker-compose.js +2 -2
- package/lib/eslint.d.ts +9 -0
- package/lib/eslint.js +16 -5
- package/lib/file.js +1 -1
- package/lib/git/gitattributes.js +1 -1
- package/lib/github/auto-approve.js +1 -1
- package/lib/github/auto-merge.js +1 -1
- package/lib/github/dependabot.js +1 -1
- package/lib/github/github.js +1 -1
- package/lib/github/mergify.js +1 -1
- package/lib/github/pr-template.js +1 -1
- package/lib/github/stale.js +1 -1
- package/lib/github/task-workflow.js +1 -1
- package/lib/github/workflows.js +4 -5
- package/lib/gitpod.js +1 -1
- package/lib/ignore-file.js +1 -1
- package/lib/index.js +1 -1
- package/lib/ini.js +1 -1
- package/lib/inventory.js +4 -5
- package/lib/java/java-project.js +1 -1
- package/lib/java/junit.js +1 -1
- package/lib/java/maven-compile.js +1 -1
- package/lib/java/maven-packaging.js +1 -1
- package/lib/java/maven-sample.js +1 -1
- package/lib/java/pom.js +1 -1
- package/lib/java/projenrc.js +1 -1
- package/lib/javascript/bundler.d.ts +144 -0
- package/lib/javascript/bundler.js +93 -0
- package/lib/javascript/index.d.ts +1 -0
- package/lib/javascript/index.js +2 -1
- package/lib/javascript/npm-config.js +1 -1
- package/lib/javascript/projenrc.js +1 -1
- package/lib/jest.js +1 -1
- package/lib/jsii-project.js +1 -1
- package/lib/json/projenrc.js +1 -1
- package/lib/json.js +1 -1
- package/lib/license.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/makefile.js +1 -1
- package/lib/node-package.js +1 -1
- package/lib/node-project.d.ts +11 -1
- package/lib/node-project.js +9 -4
- package/lib/object-file.js +1 -1
- package/lib/project.js +2 -2
- package/lib/projects.js +1 -1
- package/lib/python/pip.js +1 -1
- package/lib/python/poetry.js +2 -2
- package/lib/python/projenrc.js +4 -5
- package/lib/python/pytest.js +1 -1
- package/lib/python/python-project.js +1 -1
- package/lib/python/python-sample.js +1 -1
- package/lib/python/requirements-file.js +1 -1
- package/lib/python/setuppy.js +1 -1
- package/lib/python/setuptools.js +1 -1
- package/lib/python/venv.js +1 -1
- package/lib/readme.js +1 -1
- package/lib/release/publisher.js +1 -1
- package/lib/release/release-trigger.js +1 -1
- package/lib/release/release.js +1 -1
- package/lib/sample-file.js +2 -2
- package/lib/semver.js +1 -1
- package/lib/source-code.js +1 -1
- package/lib/tasks/runtime.js +1 -1
- package/lib/tasks/task.js +1 -1
- package/lib/tasks/tasks.js +1 -1
- package/lib/textfile.js +1 -1
- package/lib/toml.js +1 -1
- package/lib/typescript/projenrc.js +1 -1
- package/lib/typescript-config.js +1 -1
- package/lib/typescript.js +3 -3
- package/lib/upgrade-dependencies.js +2 -2
- package/lib/util.js +11 -3
- package/lib/version.js +1 -1
- package/lib/vscode/devcontainer.js +1 -1
- package/lib/vscode/launch-config.js +1 -1
- package/lib/vscode/vscode.js +1 -1
- package/lib/web/next.js +3 -3
- package/lib/web/postcss.js +1 -1
- package/lib/web/react.js +4 -4
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/node_modules/case/LICENSE +22 -0
- package/node_modules/case/README.md +139 -0
- package/node_modules/case/case.d.ts +43 -0
- package/node_modules/case/dist/Case.js +171 -0
- package/node_modules/case/dist/Case.min.js +5 -0
- package/node_modules/case/dist/Case.min.js.map +1 -0
- package/node_modules/case/dist/Case.plus.js +189 -0
- package/node_modules/case/dist/Case.plus.min.js +5 -0
- package/node_modules/case/dist/Case.plus.min.js.map +1 -0
- package/node_modules/case/package.json +58 -0
- package/package.json +3 -3
- package/node_modules/decamelize/index.d.ts +0 -20
- package/node_modules/decamelize/index.js +0 -12
- package/node_modules/decamelize/license +0 -9
- package/node_modules/decamelize/package.json +0 -40
- package/node_modules/decamelize/readme.md +0 -51
|
@@ -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,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.1" };
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kaXNjb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXV0by1kaXNjb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0IsNENBQXlDO0FBRXpDLHlDQUFtRDtBQUNuRCx1REFBZ0Y7Ozs7OztBQWVoRixNQUFhLFlBQWEsU0FBUSxxQkFBUzs7OztJQUd6QyxZQUFZLE9BQWdCLEVBQUUsT0FBNEI7UUFDeEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQzs7Ozs7O0lBRU0sYUFBYTtRQUNsQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sZ0NBQXFCLEVBQUUsRUFBRTtZQUM1RCxHQUFHLEVBQUUsV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQ3BELENBQUMsQ0FBQztRQUVILEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO1lBQ3BDLElBQUksZ0NBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUMzQixVQUFVLEVBQUUsV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQztnQkFDakQsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7YUFDOUIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztBQXRCSCxvQ0F1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gJ2dsb2InO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50JztcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tICcuLi9wcm9qZWN0JztcbmltcG9ydCB7IFRZUEVTQ1JJUFRfTEFNQkRBX0VYVCB9IGZyb20gJy4vaW50ZXJuYWwnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24sIExhbWJkYUZ1bmN0aW9uQ29tbW9uT3B0aW9ucyB9IGZyb20gJy4vbGFtYmRhLWZ1bmN0aW9uJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0Rpc2NvdmVyT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsYW1iZGFPcHRpb25zPzogTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNyY2Rpcjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbGliZGlyOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBBdXRvRGlzY292ZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEF1dG9EaXNjb3Zlck9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogQXV0b0Rpc2NvdmVyT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCkge1xuICAgIGNvbnN0IGVudHJ5cG9pbnRzID0gZ2xvYi5zeW5jKGAqKi8qJHtUWVBFU0NSSVBUX0xBTUJEQV9FWFR9YCwge1xuICAgICAgY3dkOiBqb2luKHRoaXMucHJvamVjdC5vdXRkaXIsIHRoaXMub3B0aW9ucy5zcmNkaXIpLFxuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeXBvaW50IG9mIGVudHJ5cG9pbnRzKSB7XG4gICAgICBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcy5wcm9qZWN0LCB7XG4gICAgICAgIGxpYmRpcjogdGhpcy5vcHRpb25zLmxpYmRpcixcbiAgICAgICAgc3JjZGlyOiB0aGlzLm9wdGlvbnMuc3JjZGlyLFxuICAgICAgICBlbnRyeXBvaW50OiBqb2luKHRoaXMub3B0aW9ucy5zcmNkaXIsIGVudHJ5cG9pbnQpLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMubGFtYmRhT3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufSJdfQ==
|
package/lib/awscdk/cdk-config.js
CHANGED
|
@@ -41,7 +41,7 @@ class CdkConfig extends component_1.Component {
|
|
|
41
41
|
}
|
|
42
42
|
exports.CdkConfig = CdkConfig;
|
|
43
43
|
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
-
CdkConfig[_a] = { fqn: "projen.awscdk.CdkConfig", version: "0.32.
|
|
44
|
+
CdkConfig[_a] = { fqn: "projen.awscdk.CdkConfig", version: "0.32.1" };
|
|
45
45
|
/**
|
|
46
46
|
* (experimental) Which approval is required when deploying CDK apps.
|
|
47
47
|
*
|
package/lib/awscdk/cdk-tasks.js
CHANGED
|
@@ -35,5 +35,5 @@ class CdkTasks extends component_1.Component {
|
|
|
35
35
|
}
|
|
36
36
|
exports.CdkTasks = CdkTasks;
|
|
37
37
|
_a = JSII_RTTI_SYMBOL_1;
|
|
38
|
-
CdkTasks[_a] = { fqn: "projen.awscdk.CdkTasks", version: "0.32.
|
|
38
|
+
CdkTasks[_a] = { fqn: "projen.awscdk.CdkTasks", version: "0.32.1" };
|
|
39
39
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXRhc2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9jZGstdGFza3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBeUM7Ozs7OztBQUt6QyxNQUFhLFFBQVMsU0FBUSxxQkFBUzs7OztJQWFyQyxZQUFZLE9BQWdCO1FBQzFCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDcEMsV0FBVyxFQUFFLDhEQUE4RDtZQUMzRSxJQUFJLEVBQUUsV0FBVztTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3RDLFdBQVcsRUFBRSx1Q0FBdUM7WUFDcEQsSUFBSSxFQUFFLFlBQVk7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN4QyxXQUFXLEVBQUUsd0NBQXdDO1lBQ3JELElBQUksRUFBRSxhQUFhO1NBQ3BCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDbEMsV0FBVyxFQUFFLG9EQUFvRDtZQUNqRSxJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDOztBQW5DSCw0QkFvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QnO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uL3Rhc2tzJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIENka1Rhc2tzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBzeW50aDogVGFzaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgZGVwbG95OiBUYXNrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgZGVzdHJveTogVGFzaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGRpZmY6IFRhc2s7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5zeW50aCA9IHByb2plY3QuYWRkVGFzaygnc3ludGgnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1N5bnRoZXNpemVzIHlvdXIgY2RrIGFwcCBpbnRvIGNkay5vdXQgKHBhcnQgb2YgXCJ5YXJuIGJ1aWxkXCIpJyxcbiAgICAgIGV4ZWM6ICdjZGsgc3ludGgnLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kZXBsb3kgPSBwcm9qZWN0LmFkZFRhc2soJ2RlcGxveScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVwbG95cyB5b3VyIENESyBhcHAgdG8gdGhlIEFXUyBjbG91ZCcsXG4gICAgICBleGVjOiAnY2RrIGRlcGxveScsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlc3Ryb3kgPSBwcm9qZWN0LmFkZFRhc2soJ2Rlc3Ryb3knLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc3Ryb3lzIHlvdXIgY2RrIGFwcCBpbiB0aGUgQVdTIGNsb3VkJyxcbiAgICAgIGV4ZWM6ICdjZGsgZGVzdHJveScsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRpZmYgPSBwcm9qZWN0LmFkZFRhc2soJ2RpZmYnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0RpZmZzIHRoZSBjdXJyZW50bHkgZGVwbG95ZWQgYXBwIGFnYWluc3QgeW91ciBjb2RlJyxcbiAgICAgIGV4ZWM6ICdjZGsgZGlmZicsXG4gICAgfSk7XG4gIH1cbn0iXX0=
|
package/lib/awscdk/index.d.ts
CHANGED
package/lib/awscdk/index.js
CHANGED
|
@@ -13,4 +13,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
__exportStar(require("./java-app"), exports);
|
|
14
14
|
__exportStar(require("./cdk-config"), exports);
|
|
15
15
|
__exportStar(require("./cdk-tasks"), exports);
|
|
16
|
-
|
|
16
|
+
__exportStar(require("./auto-discover"), exports);
|
|
17
|
+
__exportStar(require("./lambda-function"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiwrQ0FBNkI7QUFDN0IsOENBQTRCO0FBQzVCLGtEQUFnQztBQUNoQyxvREFBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2phdmEtYXBwJztcbmV4cG9ydCAqIGZyb20gJy4vY2RrLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2Nkay10YXNrcyc7XG5leHBvcnQgKiBmcm9tICcuL2F1dG8tZGlzY292ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9sYW1iZGEtZnVuY3Rpb24nOyJdfQ==
|
package/lib/awscdk/internal.d.ts
CHANGED
package/lib/awscdk/internal.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FEATURE_FLAGS = void 0;
|
|
3
|
+
exports.TYPESCRIPT_LAMBDA_EXT = exports.FEATURE_FLAGS = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Feature flags as of v1.130.0
|
|
6
6
|
*/
|
|
@@ -19,4 +19,8 @@ exports.FEATURE_FLAGS = [
|
|
|
19
19
|
'@aws-cdk/aws-lambda:recognizeVersionProps',
|
|
20
20
|
'@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021',
|
|
21
21
|
];
|
|
22
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Suffix for AWS Lambda handlers.
|
|
24
|
+
*/
|
|
25
|
+
exports.TYPESCRIPT_LAMBDA_EXT = '.lambda.ts';
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2ludGVybmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ1UsUUFBQSxhQUFhLEdBQUc7SUFDM0IsMEJBQTBCO0lBQzFCLHdEQUF3RDtJQUN4RCx5Q0FBeUM7SUFDekMsb0NBQW9DO0lBQ3BDLDZDQUE2QztJQUM3QyxrREFBa0Q7SUFDbEQscUNBQXFDO0lBQ3JDLHNDQUFzQztJQUN0QyxxREFBcUQ7SUFDckQsd0NBQXdDO0lBQ3hDLDBDQUEwQztJQUMxQywyQ0FBMkM7SUFDM0MsMkRBQTJEO0NBQzVELENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGZWF0dXJlIGZsYWdzIGFzIG9mIHYxLjEzMC4wXG4gKi9cbmV4cG9ydCBjb25zdCBGRUFUVVJFX0ZMQUdTID0gW1xuICAnYXdzLWNkazplbmFibGVEaWZmTm9GYWlsJyxcbiAgJ0Bhd3MtY2RrL2F3cy1hcGlnYXRld2F5OnVzYWdlUGxhbktleU9yZGVySW5zZW5zaXRpdmVJZCcsXG4gICdAYXdzLWNkay9jb3JlOmVuYWJsZVN0YWNrTmFtZUR1cGxpY2F0ZXMnLFxuICAnQGF3cy1jZGsvY29yZTpzdGFja1JlbGF0aXZlRXhwb3J0cycsXG4gICdAYXdzLWNkay9hd3MtZWNyLWFzc2V0czpkb2NrZXJJZ25vcmVTdXBwb3J0JyxcbiAgJ0Bhd3MtY2RrL2F3cy1zZWNyZXRzbWFuYWdlcjpwYXJzZU93bmVkU2VjcmV0TmFtZScsXG4gICdAYXdzLWNkay9hd3Mta21zOmRlZmF1bHRLZXlQb2xpY2llcycsXG4gICdAYXdzLWNkay9hd3MtczM6Z3JhbnRXcml0ZVdpdGhvdXRBY2wnLFxuICAnQGF3cy1jZGsvYXdzLWVjcy1wYXR0ZXJuczpyZW1vdmVEZWZhdWx0RGVzaXJlZENvdW50JyxcbiAgJ0Bhd3MtY2RrL2F3cy1yZHM6bG93ZXJjYXNlRGJJZGVudGlmaWVyJyxcbiAgJ0Bhd3MtY2RrL2F3cy1lZnM6ZGVmYXVsdEVuY3J5cHRpb25BdFJlc3QnLFxuICAnQGF3cy1jZGsvYXdzLWxhbWJkYTpyZWNvZ25pemVWZXJzaW9uUHJvcHMnLFxuICAnQGF3cy1jZGsvYXdzLWNsb3VkZnJvbnQ6ZGVmYXVsdFNlY3VyaXR5UG9saWN5VExTdjEuMl8yMDIxJyxcbl07XG5cbi8qKlxuICogU3VmZml4IGZvciBBV1MgTGFtYmRhIGhhbmRsZXJzLlxuICovXG5leHBvcnQgY29uc3QgVFlQRVNDUklQVF9MQU1CREFfRVhUID0gJy5sYW1iZGEudHMnOyJdfQ==
|
package/lib/awscdk/java-app.js
CHANGED
|
@@ -86,5 +86,5 @@ class AwsCdkJavaApp extends java_1.JavaProject {
|
|
|
86
86
|
}
|
|
87
87
|
exports.AwsCdkJavaApp = AwsCdkJavaApp;
|
|
88
88
|
_a = JSII_RTTI_SYMBOL_1;
|
|
89
|
-
AwsCdkJavaApp[_a] = { fqn: "projen.awscdk.AwsCdkJavaApp", version: "0.32.
|
|
89
|
+
AwsCdkJavaApp[_a] = { fqn: "projen.awscdk.AwsCdkJavaApp", version: "0.32.1" };
|
|
90
90
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1hcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2phdmEtYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQTRCO0FBQzVCLGlDQUFpQztBQUNqQywwQkFBK0I7QUFDL0Isa0NBQTBEO0FBQzFELDZDQUFpRTtBQUNqRSwyQ0FBdUM7Ozs7Ozs7QUFjdkMsTUFBYSxhQUFjLFNBQVEsa0JBQVc7Ozs7SUFtQjVDLFlBQVksT0FBNkI7O1FBQ3ZDLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekQsTUFBTSxXQUFXLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUxRSxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixNQUFNLEVBQUUsS0FBSztZQUNiLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ3pDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBRXJDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztTQUNoRTtRQUVELE1BQU0sZUFBZSxlQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQywwQ0FBRSxLQUFLLG1DQUFJLENBQUMsQ0FBQztRQUN2RSxJQUFJLGVBQWUsSUFBSSxDQUFDLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFHLE9BQU8sQ0FBQyxlQUFlLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxvQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHNCQUFTLENBQUMsSUFBSSxFQUFFO1lBQ25DLEdBQUcsRUFBRSwwQ0FBMEMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUMvRCxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7Ozs7OztJQUdNLGdCQUFnQixDQUFDLEdBQUcsT0FBaUI7UUFDMUMsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLE9BQU8sQ0FBQztRQUM5QyxJQUFJLGFBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUU7WUFDdkQsS0FBSyxFQUFFO2dCQUNMLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ1YsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHO29CQUMzQixFQUFFO29CQUNGLHlDQUF5QztvQkFDekMsMkNBQTJDO29CQUMzQyxFQUFFO29CQUNGLGdCQUFnQixJQUFJLENBQUMsYUFBYSxJQUFJO29CQUN0QyxrREFBa0Q7b0JBQ2xELDBCQUEwQjtvQkFDMUIsZ0NBQWdDO29CQUNoQyxrQkFBa0I7b0JBQ2xCLEtBQUs7b0JBQ0wsR0FBRztpQkFDSixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDYjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBdEZILHNDQXVGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgU2FtcGxlRGlyIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHsgSmF2YVByb2plY3QsIEphdmFQcm9qZWN0T3B0aW9ucyB9IGZyb20gJy4uL2phdmEnO1xuaW1wb3J0IHsgQ2RrQ29uZmlnLCBDZGtDb25maWdDb21tb25PcHRpb25zIH0gZnJvbSAnLi9jZGstY29uZmlnJztcbmltcG9ydCB7IENka1Rhc2tzIH0gZnJvbSAnLi9jZGstdGFza3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Nka0phdmFBcHBPcHRpb25zIGV4dGVuZHMgSmF2YVByb2plY3RPcHRpb25zLCBDZGtDb25maWdDb21tb25PcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNka1ZlcnNpb246IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY2RrRGVwZW5kZW5jaWVzPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbWFpbkNsYXNzOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgQXdzQ2RrSmF2YUFwcCBleHRlbmRzIEphdmFQcm9qZWN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgY2RrVmVyc2lvbjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBjZGtDb25maWc6IENka0NvbmZpZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBtYWluQ2xhc3M6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBjZGtUYXNrczogQ2RrVGFza3M7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgbWFpblBhY2thZ2U6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgbWFpbkNsYXNzTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEF3c0Nka0phdmFBcHBPcHRpb25zKSB7XG4gICAgY29uc3QgbWFpbkNsYXNzQ29tcG9uZW50cyA9IG9wdGlvbnMubWFpbkNsYXNzLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgbWFpblBhY2thZ2UgPSBtYWluQ2xhc3NDb21wb25lbnRzLnNsaWNlKDAsIC0xKTtcbiAgICBjb25zdCBtYWluQ2xhc3NOYW1lID0gbWFpbkNsYXNzQ29tcG9uZW50c1ttYWluQ2xhc3NDb21wb25lbnRzLmxlbmd0aCAtIDFdO1xuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHNhbXBsZTogZmFsc2UsXG4gICAgICBzYW1wbGVKYXZhUGFja2FnZTogbWFpblBhY2thZ2Uuam9pbignLicpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5tYWluQ2xhc3MgPSBvcHRpb25zLm1haW5DbGFzcztcbiAgICB0aGlzLm1haW5QYWNrYWdlID0gbWFpblBhY2thZ2Uuam9pbignLicpO1xuICAgIHRoaXMubWFpbkNsYXNzTmFtZSA9IG1haW5DbGFzc05hbWU7XG4gICAgdGhpcy5jZGtWZXJzaW9uID0gb3B0aW9ucy5jZGtWZXJzaW9uO1xuXG4gICAgaWYgKCF0aGlzLmNka1ZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgZmllbGQgY2RrVmVyc2lvbiBpcyBub3Qgc3BlY2lmaWVkLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGNka01ham9yVmVyc2lvbiA9IHNlbXZlci5taW5WZXJzaW9uKHRoaXMuY2RrVmVyc2lvbik/Lm1ham9yID8/IDE7XG4gICAgaWYgKGNka01ham9yVmVyc2lvbiA+PSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NES3YyIGlzIHN0aWxsIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZENka0RlcGVuZGVuY3koJ2NvcmUnKTtcbiAgICB0aGlzLmFkZENka0RlcGVuZGVuY3koLi4ub3B0aW9ucy5jZGtEZXBlbmRlbmNpZXMgPz8gW10pO1xuXG4gICAgdGhpcy5jZGtUYXNrcyA9IG5ldyBDZGtUYXNrcyh0aGlzKTtcbiAgICB0aGlzLmJ1aWxkVGFzay5zcGF3bih0aGlzLmNka1Rhc2tzLnN5bnRoKTtcblxuICAgIHRoaXMuY2RrQ29uZmlnID0gbmV3IENka0NvbmZpZyh0aGlzLCB7XG4gICAgICBhcHA6IGBtdm4gZXhlYzpqYXZhIC0tcXVpZXQgLURleGVjLm1haW5DbGFzcz0ke3RoaXMubWFpbkNsYXNzfWAsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRTYW1wbGUoKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkQ2RrRGVwZW5kZW5jeSguLi5tb2R1bGVzOiBzdHJpbmdbXSkge1xuICAgIGZvciAoY29uc3QgbSBvZiBtb2R1bGVzKSB7XG4gICAgICB0aGlzLmFkZERlcGVuZGVuY3koYHNvZnR3YXJlLmFtYXpvbi5hd3NjZGsvJHttfUAke3RoaXMuY2RrVmVyc2lvbn1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFNhbXBsZSgpIHtcbiAgICBjb25zdCBwa2cgPSB0aGlzLm1haW5QYWNrYWdlLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgamF2YUZpbGUgPSBgJHt0aGlzLm1haW5DbGFzc05hbWV9LmphdmFgO1xuICAgIG5ldyBTYW1wbGVEaXIodGhpcywgam9pbignc3JjJywgJ21haW4nLCAnamF2YScsIC4uLnBrZyksIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgIFtqYXZhRmlsZV06IFtcbiAgICAgICAgICBgcGFja2FnZSAke3BrZy5qb2luKCcuJyl9O2AsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ2ltcG9ydCBzb2Z0d2FyZS5hbWF6b24uYXdzY2RrLmNvcmUuQXBwOycsXG4gICAgICAgICAgJ2ltcG9ydCBzb2Z0d2FyZS5hbWF6b24uYXdzY2RrLmNvcmUuU3RhY2s7JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBgcHVibGljIGNsYXNzICR7dGhpcy5tYWluQ2xhc3NOYW1lfSB7YCxcbiAgICAgICAgICAnICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihmaW5hbCBTdHJpbmdbXSBhcmdzKSB7JyxcbiAgICAgICAgICAnICAgIEFwcCBhcHAgPSBuZXcgQXBwKCk7JyxcbiAgICAgICAgICAnICAgIG5ldyBTdGFjayhhcHAsIFwiTXlTdGFja1wiKTsnLFxuICAgICAgICAgICcgICAgYXBwLnN5bnRoKCk7JyxcbiAgICAgICAgICAnICB9JyxcbiAgICAgICAgICAnfScsXG4gICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { Project } from '..';
|
|
2
|
+
import { Component } from '../component';
|
|
3
|
+
import { Task } from '../tasks';
|
|
4
|
+
/**
|
|
5
|
+
* (experimental) Common options for `LambdaFunction`.
|
|
6
|
+
*
|
|
7
|
+
* Applies to all functions in
|
|
8
|
+
* auto-discovery.
|
|
9
|
+
*
|
|
10
|
+
* @experimental
|
|
11
|
+
*/
|
|
12
|
+
export interface LambdaFunctionCommonOptions {
|
|
13
|
+
/**
|
|
14
|
+
* (experimental) The node.js version to target.
|
|
15
|
+
*
|
|
16
|
+
* @default Runtime.NODEJS_14_X
|
|
17
|
+
* @experimental
|
|
18
|
+
*/
|
|
19
|
+
readonly runtime?: LambdaRuntime;
|
|
20
|
+
/**
|
|
21
|
+
* (experimental) Names of modules which should not be included in the bundle.
|
|
22
|
+
*
|
|
23
|
+
* @default - by default, the "aws-sdk" module will be excluded from the
|
|
24
|
+
* bundle. Note that if you use this option you will need to add "aws-sdk"
|
|
25
|
+
* explicitly.
|
|
26
|
+
* @experimental
|
|
27
|
+
*/
|
|
28
|
+
readonly externals?: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* (experimental) Options for `Function`.
|
|
32
|
+
*
|
|
33
|
+
* @experimental
|
|
34
|
+
*/
|
|
35
|
+
export interface LambdaFunctionOptions extends LambdaFunctionCommonOptions {
|
|
36
|
+
/**
|
|
37
|
+
* (experimental) A path from the project root directory to a TypeScript file which contains the AWS Lambda handler entrypoint (exports a `handler` function).
|
|
38
|
+
*
|
|
39
|
+
* @experimental
|
|
40
|
+
*/
|
|
41
|
+
readonly entrypoint: string;
|
|
42
|
+
/**
|
|
43
|
+
* (experimental) The name of the generated TypeScript source file.
|
|
44
|
+
*
|
|
45
|
+
* @default - The name of the entrypoint file, with the `-function.ts` suffix
|
|
46
|
+
* instead of `.lambda.ts`.
|
|
47
|
+
* @experimental
|
|
48
|
+
*/
|
|
49
|
+
readonly constructFile?: string;
|
|
50
|
+
/**
|
|
51
|
+
* (experimental) The name of the generated `lambda.Function` subclass.
|
|
52
|
+
*
|
|
53
|
+
* @default - A pascal cased version of the name of the entrypoint file, with
|
|
54
|
+
* the extension `Function` (e.g. `ResizeImageFunction`).
|
|
55
|
+
* @experimental
|
|
56
|
+
*/
|
|
57
|
+
readonly constructName?: string;
|
|
58
|
+
/**
|
|
59
|
+
* (experimental) Project source directory tree (where .ts files live).
|
|
60
|
+
*
|
|
61
|
+
* @experimental
|
|
62
|
+
*/
|
|
63
|
+
readonly srcdir: string;
|
|
64
|
+
/**
|
|
65
|
+
* (experimental) JavaScript output directory (where .js files go).
|
|
66
|
+
*
|
|
67
|
+
* @experimental
|
|
68
|
+
*/
|
|
69
|
+
readonly libdir: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* (experimental) Generates a pre-bundled AWS Lambda function construct from handler code.
|
|
73
|
+
*
|
|
74
|
+
* To use this, create an AWS Lambda handler file under your source tree with
|
|
75
|
+
* the `.lambda.ts` extension and add a `LambdaFunction` component to your
|
|
76
|
+
* typescript project pointing to this entrypoint.
|
|
77
|
+
*
|
|
78
|
+
* This will add a task to your "compile" step which will use `esbuild` to
|
|
79
|
+
* bundle the handler code into the build directory. It will also generate a
|
|
80
|
+
* file `src/foo-function.ts` with a custom AWS construct called `FooFunction`
|
|
81
|
+
* which extends `@aws-cdk/aws-lambda.Function` which is bound to the bundled
|
|
82
|
+
* handle through an asset.
|
|
83
|
+
*
|
|
84
|
+
* @experimental
|
|
85
|
+
* @example
|
|
86
|
+
*
|
|
87
|
+
* new LambdaFunction(myProject, {
|
|
88
|
+
* entrypoint: 'src/foo.lambda.ts',
|
|
89
|
+
* srcdir: myProject.srcdir,
|
|
90
|
+
* libdir: myProject.libdir,
|
|
91
|
+
* });
|
|
92
|
+
*/
|
|
93
|
+
export declare class LambdaFunction extends Component {
|
|
94
|
+
/**
|
|
95
|
+
* (experimental) The bundle task for this function.
|
|
96
|
+
*
|
|
97
|
+
* @experimental
|
|
98
|
+
*/
|
|
99
|
+
readonly bundleTask: Task;
|
|
100
|
+
/**
|
|
101
|
+
* (experimental) Defines a pre-bundled AWS Lambda function construct from handler code.
|
|
102
|
+
*
|
|
103
|
+
* @param project The project to use.
|
|
104
|
+
* @param options Options.
|
|
105
|
+
* @experimental
|
|
106
|
+
*/
|
|
107
|
+
constructor(project: Project, options: LambdaFunctionOptions);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* (experimental) The runtime for the AWS Lambda function.
|
|
111
|
+
*
|
|
112
|
+
* @experimental
|
|
113
|
+
*/
|
|
114
|
+
export declare class LambdaRuntime {
|
|
115
|
+
/**
|
|
116
|
+
* The aws-lambda.Runtime member name to use.
|
|
117
|
+
*/
|
|
118
|
+
readonly functionRuntime: string;
|
|
119
|
+
/**
|
|
120
|
+
* The esbuild setting to use.
|
|
121
|
+
*/
|
|
122
|
+
readonly esbuildTarget: string;
|
|
123
|
+
/**
|
|
124
|
+
* (experimental) Node.js 10.x.
|
|
125
|
+
*
|
|
126
|
+
* @experimental
|
|
127
|
+
*/
|
|
128
|
+
static readonly NODEJS_10_X: LambdaRuntime;
|
|
129
|
+
/**
|
|
130
|
+
* (experimental) Node.js 12.x.
|
|
131
|
+
*
|
|
132
|
+
* @experimental
|
|
133
|
+
*/
|
|
134
|
+
static readonly NODEJS_12_X: LambdaRuntime;
|
|
135
|
+
/**
|
|
136
|
+
* (experimental) Node.js 14.x.
|
|
137
|
+
*
|
|
138
|
+
* @experimental
|
|
139
|
+
*/
|
|
140
|
+
static readonly NODEJS_14_X: LambdaRuntime;
|
|
141
|
+
/**
|
|
142
|
+
* @experimental
|
|
143
|
+
*/
|
|
144
|
+
readonly esbuildPlatform = "node";
|
|
145
|
+
private constructor();
|
|
146
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a, _b;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.LambdaRuntime = exports.LambdaFunction = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const case_1 = require("case");
|
|
8
|
+
const __1 = require("..");
|
|
9
|
+
const component_1 = require("../component");
|
|
10
|
+
const file_1 = require("../file");
|
|
11
|
+
const bundler_1 = require("../javascript/bundler");
|
|
12
|
+
const source_code_1 = require("../source-code");
|
|
13
|
+
const internal_1 = require("./internal");
|
|
14
|
+
/**
|
|
15
|
+
* (experimental) Generates a pre-bundled AWS Lambda function construct from handler code.
|
|
16
|
+
*
|
|
17
|
+
* To use this, create an AWS Lambda handler file under your source tree with
|
|
18
|
+
* the `.lambda.ts` extension and add a `LambdaFunction` component to your
|
|
19
|
+
* typescript project pointing to this entrypoint.
|
|
20
|
+
*
|
|
21
|
+
* This will add a task to your "compile" step which will use `esbuild` to
|
|
22
|
+
* bundle the handler code into the build directory. It will also generate a
|
|
23
|
+
* file `src/foo-function.ts` with a custom AWS construct called `FooFunction`
|
|
24
|
+
* which extends `@aws-cdk/aws-lambda.Function` which is bound to the bundled
|
|
25
|
+
* handle through an asset.
|
|
26
|
+
*
|
|
27
|
+
* @experimental
|
|
28
|
+
* @example
|
|
29
|
+
*
|
|
30
|
+
* new LambdaFunction(myProject, {
|
|
31
|
+
* entrypoint: 'src/foo.lambda.ts',
|
|
32
|
+
* srcdir: myProject.srcdir,
|
|
33
|
+
* libdir: myProject.libdir,
|
|
34
|
+
* });
|
|
35
|
+
*/
|
|
36
|
+
class LambdaFunction extends component_1.Component {
|
|
37
|
+
/**
|
|
38
|
+
* (experimental) Defines a pre-bundled AWS Lambda function construct from handler code.
|
|
39
|
+
*
|
|
40
|
+
* @param project The project to use.
|
|
41
|
+
* @param options Options.
|
|
42
|
+
* @experimental
|
|
43
|
+
*/
|
|
44
|
+
constructor(project, options) {
|
|
45
|
+
var _c, _d, _e, _f;
|
|
46
|
+
super(project);
|
|
47
|
+
const bundler = bundler_1.Bundler.of(project);
|
|
48
|
+
if (!bundler) {
|
|
49
|
+
throw new Error('No bundler found. Please add a Bundler component to your project.');
|
|
50
|
+
}
|
|
51
|
+
const runtime = (_c = options.runtime) !== null && _c !== void 0 ? _c : LambdaRuntime.NODEJS_14_X;
|
|
52
|
+
// make sure entrypoint is within the source directory
|
|
53
|
+
if (!options.entrypoint.startsWith(options.srcdir)) {
|
|
54
|
+
throw new Error(`${options.entrypoint} must be under ${options.srcdir}`);
|
|
55
|
+
}
|
|
56
|
+
// allow Lambda handler code to import dev-deps since they are only needed
|
|
57
|
+
// during bundling
|
|
58
|
+
const eslint = __1.Eslint.of(project);
|
|
59
|
+
eslint === null || eslint === void 0 ? void 0 : eslint.allowDevDeps(options.entrypoint);
|
|
60
|
+
const entrypoint = path_1.relative(options.srcdir, options.entrypoint);
|
|
61
|
+
if (!entrypoint.endsWith(internal_1.TYPESCRIPT_LAMBDA_EXT)) {
|
|
62
|
+
throw new Error(`${entrypoint} must have a ${internal_1.TYPESCRIPT_LAMBDA_EXT} extension`);
|
|
63
|
+
}
|
|
64
|
+
const basePath = path_1.join(path_1.dirname(entrypoint), path_1.basename(entrypoint, internal_1.TYPESCRIPT_LAMBDA_EXT));
|
|
65
|
+
const constructFile = (_d = options.constructFile) !== null && _d !== void 0 ? _d : `${basePath}-function.ts`;
|
|
66
|
+
const constructFilePath = path_1.join(options.srcdir, constructFile);
|
|
67
|
+
if (path_1.extname(constructFilePath) !== '.ts') {
|
|
68
|
+
throw new Error(`Construct file name "${constructFile}" must have a .ts extension`);
|
|
69
|
+
}
|
|
70
|
+
const bundledirName = `${basePath}.lambda.bundle`;
|
|
71
|
+
// type names
|
|
72
|
+
const constructName = (_e = options.constructName) !== null && _e !== void 0 ? _e : case_1.pascal(path_1.basename(basePath)) + 'Function';
|
|
73
|
+
const propsType = `${constructName}Props`;
|
|
74
|
+
const src = new source_code_1.SourceCode(project, constructFilePath);
|
|
75
|
+
src.line(`// ${file_1.FileBase.PROJEN_MARKER}`);
|
|
76
|
+
src.line('import * as path from \'path\';');
|
|
77
|
+
src.line('import * as lambda from \'@aws-cdk/aws-lambda\';');
|
|
78
|
+
src.line('import { Construct } from \'@aws-cdk/core\';');
|
|
79
|
+
src.line();
|
|
80
|
+
src.line('/**');
|
|
81
|
+
src.line(` * Props for ${constructName}`);
|
|
82
|
+
src.line(' */');
|
|
83
|
+
src.open(`export interface ${propsType} extends lambda.FunctionOptions {`);
|
|
84
|
+
src.close('}');
|
|
85
|
+
src.line();
|
|
86
|
+
src.line('/**');
|
|
87
|
+
src.line(` * An AWS Lambda function which executes ${basePath}.`);
|
|
88
|
+
src.line(' */');
|
|
89
|
+
src.open(`export class ${constructName} extends lambda.Function {`);
|
|
90
|
+
src.open(`constructor(scope: Construct, id: string, props?: ${propsType}) {`);
|
|
91
|
+
src.open('super(scope, id, {');
|
|
92
|
+
src.line(`description: '${entrypoint}',`);
|
|
93
|
+
src.line('...props,');
|
|
94
|
+
src.line(`runtime: lambda.Runtime.${runtime.functionRuntime},`);
|
|
95
|
+
src.line('handler: \'index.handler\',');
|
|
96
|
+
src.line(`code: lambda.Code.fromAsset(path.join(__dirname, '${path_1.basename(bundledirName)}')),`);
|
|
97
|
+
src.close('});');
|
|
98
|
+
src.close('}');
|
|
99
|
+
src.close('}');
|
|
100
|
+
const entry = path_1.join(options.srcdir, entrypoint);
|
|
101
|
+
const outfile = path_1.join(options.libdir, bundledirName, 'index.js');
|
|
102
|
+
this.bundleTask = bundler.addBundle(basePath, {
|
|
103
|
+
entrypoint: entry,
|
|
104
|
+
outfile: outfile,
|
|
105
|
+
target: runtime.esbuildTarget,
|
|
106
|
+
platform: runtime.esbuildPlatform,
|
|
107
|
+
externals: (_f = options.externals) !== null && _f !== void 0 ? _f : ['aws-sdk'],
|
|
108
|
+
});
|
|
109
|
+
this.project.logger.info(`${basePath}: construct "${constructName}" generated under "${constructFilePath}"`);
|
|
110
|
+
this.project.logger.info(`${basePath}: bundle task "${this.bundleTask.name}"`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.LambdaFunction = LambdaFunction;
|
|
114
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
115
|
+
LambdaFunction[_a] = { fqn: "projen.awscdk.LambdaFunction", version: "0.32.1" };
|
|
116
|
+
/**
|
|
117
|
+
* (experimental) The runtime for the AWS Lambda function.
|
|
118
|
+
*
|
|
119
|
+
* @experimental
|
|
120
|
+
*/
|
|
121
|
+
class LambdaRuntime {
|
|
122
|
+
constructor(
|
|
123
|
+
/**
|
|
124
|
+
* The aws-lambda.Runtime member name to use.
|
|
125
|
+
*/
|
|
126
|
+
functionRuntime,
|
|
127
|
+
/**
|
|
128
|
+
* The esbuild setting to use.
|
|
129
|
+
*/
|
|
130
|
+
esbuildTarget) {
|
|
131
|
+
this.functionRuntime = functionRuntime;
|
|
132
|
+
this.esbuildTarget = esbuildTarget;
|
|
133
|
+
/**
|
|
134
|
+
* @experimental
|
|
135
|
+
*/
|
|
136
|
+
this.esbuildPlatform = 'node';
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.LambdaRuntime = LambdaRuntime;
|
|
140
|
+
_b = JSII_RTTI_SYMBOL_1;
|
|
141
|
+
LambdaRuntime[_b] = { fqn: "projen.awscdk.LambdaRuntime", version: "0.32.1" };
|
|
142
|
+
/**
|
|
143
|
+
* (experimental) Node.js 10.x.
|
|
144
|
+
*
|
|
145
|
+
* @experimental
|
|
146
|
+
*/
|
|
147
|
+
LambdaRuntime.NODEJS_10_X = new LambdaRuntime('NODEJS_10_X', 'node10');
|
|
148
|
+
/**
|
|
149
|
+
* (experimental) Node.js 12.x.
|
|
150
|
+
*
|
|
151
|
+
* @experimental
|
|
152
|
+
*/
|
|
153
|
+
LambdaRuntime.NODEJS_12_X = new LambdaRuntime('NODEJS_12_X', 'node12');
|
|
154
|
+
/**
|
|
155
|
+
* (experimental) Node.js 14.x.
|
|
156
|
+
*
|
|
157
|
+
* @experimental
|
|
158
|
+
*/
|
|
159
|
+
LambdaRuntime.NODEJS_14_X = new LambdaRuntime('NODEJS_14_X', 'node14');
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9sYW1iZGEtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBa0U7QUFDbEUsK0JBQThCO0FBQzlCLDBCQUFxQztBQUNyQyw0Q0FBeUM7QUFDekMsa0NBQW1DO0FBQ25DLG1EQUFnRDtBQUNoRCxnREFBNEM7QUFFNUMseUNBQW1EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCbkQsTUFBYSxjQUFlLFNBQVEscUJBQVM7Ozs7Ozs7O0lBSzNDLFlBQVksT0FBZ0IsRUFBRSxPQUE4Qjs7UUFDMUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsTUFBTSxPQUFPLEdBQUcsaUJBQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQztTQUN0RjtRQUVELE1BQU0sT0FBTyxTQUFHLE9BQU8sQ0FBQyxPQUFPLG1DQUFJLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFFN0Qsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLGtCQUFrQixPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUMxRTtRQUVELDBFQUEwRTtRQUMxRSxrQkFBa0I7UUFDbEIsTUFBTSxNQUFNLEdBQUcsVUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7UUFFekMsTUFBTSxVQUFVLEdBQUcsZUFBUSxDQUFDLE9B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QVcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7Ozs7OztBQUd6RCx5QkFBVyxHQUFHLElBQUksYUFBYSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQzs7Ozs7O0FBR3pELHlCQUFXLEdBQUcsSUFBSSxhQUFhLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFzZW5hbWUsIGRpcm5hbWUsIGV4dG5hbWUsIGpvaW4sIHJlbGF0aXZlIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBwYXNjYWwgfSBmcm9tICdjYXNlJztcbmltcG9ydCB7IEVzbGludCwgUHJvamVjdCB9IGZyb20gJy4uJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlQmFzZSB9IGZyb20gJy4uL2ZpbGUnO1xuaW1wb3J0IHsgQnVuZGxlciB9IGZyb20gJy4uL2phdmFzY3JpcHQvYnVuZGxlcic7XG5pbXBvcnQgeyBTb3VyY2VDb2RlIH0gZnJvbSAnLi4vc291cmNlLWNvZGUnO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uL3Rhc2tzJztcbmltcG9ydCB7IFRZUEVTQ1JJUFRfTEFNQkRBX0VYVCB9IGZyb20gJy4vaW50ZXJuYWwnO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUZ1bmN0aW9uQ29tbW9uT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBydW50aW1lPzogTGFtYmRhUnVudGltZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZXh0ZXJuYWxzPzogc3RyaW5nW107XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25PcHRpb25zIGV4dGVuZHMgTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBlbnRyeXBvaW50OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29uc3RydWN0RmlsZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29uc3RydWN0TmFtZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzcmNkaXI6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbGliZGlyOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBMYW1iZGFGdW5jdGlvbiBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGJ1bmRsZVRhc2s6IFRhc2s7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBMYW1iZGFGdW5jdGlvbk9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIGNvbnN0IGJ1bmRsZXIgPSBCdW5kbGVyLm9mKHByb2plY3QpO1xuICAgIGlmICghYnVuZGxlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBidW5kbGVyIGZvdW5kLiBQbGVhc2UgYWRkIGEgQnVuZGxlciBjb21wb25lbnQgdG8geW91ciBwcm9qZWN0LicpO1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bnRpbWUgPSBvcHRpb25zLnJ1bnRpbWUgPz8gTGFtYmRhUnVudGltZS5OT0RFSlNfMTRfWDtcblxuICAgIC8vIG1ha2Ugc3VyZSBlbnRyeXBvaW50IGlzIHdpdGhpbiB0aGUgc291cmNlIGRpcmVjdG9yeVxuICAgIGlmICghb3B0aW9ucy5lbnRyeXBvaW50LnN0YXJ0c1dpdGgob3B0aW9ucy5zcmNkaXIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7b3B0aW9ucy5lbnRyeXBvaW50fSBtdXN0IGJlIHVuZGVyICR7b3B0aW9ucy5zcmNkaXJ9YCk7XG4gICAgfVxuXG4gICAgLy8gYWxsb3cgTGFtYmRhIGhhbmRsZXIgY29kZSB0byBpbXBvcnQgZGV2LWRlcHMgc2luY2UgdGhleSBhcmUgb25seSBuZWVkZWRcbiAgICAvLyBkdXJpbmcgYnVuZGxpbmdcbiAgICBjb25zdCBlc2xpbnQgPSBFc2xpbnQub2YocHJvamVjdCk7XG4gICAgZXNsaW50Py5hbGxvd0RldkRlcHMob3B0aW9ucy5lbnRyeXBvaW50KTtcblxuICAgIGNvbnN0IGVudHJ5cG9pbnQgPSByZWxhdGl2ZShvcHRpb25zLnNyY2Rpciwgb3B0aW9ucy5lbnRyeXBvaW50KTtcblxuICAgIGlmICghZW50cnlwb2ludC5lbmRzV2l0aChUWVBFU0NSSVBUX0xBTUJEQV9FWFQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7ZW50cnlwb2ludH0gbXVzdCBoYXZlIGEgJHtUWVBFU0NSSVBUX0xBTUJEQV9FWFR9IGV4dGVuc2lvbmApO1xuICAgIH1cblxuICAgIGNvbnN0IGJhc2VQYXRoID0gam9pbihkaXJuYW1lKGVudHJ5cG9pbnQpLCBiYXNlbmFtZShlbnRyeXBvaW50LCBUWVBFU0NSSVBUX0xBTUJEQV9FWFQpKTtcbiAgICBjb25zdCBjb25zdHJ1Y3RGaWxlID0gb3B0aW9ucy5jb25zdHJ1Y3RGaWxlID8/IGAke2Jhc2VQYXRofS1mdW5jdGlvbi50c2A7XG4gICAgY29uc3QgY29uc3RydWN0RmlsZVBhdGggPSBqb2luKG9wdGlvbnMuc3JjZGlyLCBjb25zdHJ1Y3RGaWxlKTtcblxuICAgIGlmIChleHRuYW1lKGNvbnN0cnVjdEZpbGVQYXRoKSAhPT0gJy50cycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29uc3RydWN0IGZpbGUgbmFtZSBcIiR7Y29uc3RydWN0RmlsZX1cIiBtdXN0IGhhdmUgYSAudHMgZXh0ZW5zaW9uYCk7XG4gICAgfVxuXG4gICAgY29uc3QgYnVuZGxlZGlyTmFtZSA9IGAke2Jhc2VQYXRofS5sYW1iZGEuYnVuZGxlYDtcblxuICAgIC8vIHR5cGUgbmFtZXNcbiAgICBjb25zdCBjb25zdHJ1Y3ROYW1lID0gb3B0aW9ucy5jb25zdHJ1Y3ROYW1lID8/IHBhc2NhbChiYXNlbmFtZShiYXNlUGF0aCkpICsgJ0Z1bmN0aW9uJztcbiAgICBjb25zdCBwcm9wc1R5cGUgPSBgJHtjb25zdHJ1Y3ROYW1lfVByb3BzYDtcblxuICAgIGNvbnN0IHNyYyA9IG5ldyBTb3VyY2VDb2RlKHByb2plY3QsIGNvbnN0cnVjdEZpbGVQYXRoKTtcbiAgICBzcmMubGluZShgLy8gJHtGaWxlQmFzZS5QUk9KRU5fTUFSS0VSfWApO1xuICAgIHNyYy5saW5lKCdpbXBvcnQgKiBhcyBwYXRoIGZyb20gXFwncGF0aFxcJzsnKTtcbiAgICBzcmMubGluZSgnaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXFwnQGF3cy1jZGsvYXdzLWxhbWJkYVxcJzsnKTtcbiAgICBzcmMubGluZSgnaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcXCdAYXdzLWNkay9jb3JlXFwnOycpO1xuICAgIHNyYy5saW5lKCk7XG4gICAgc3JjLmxpbmUoJy8qKicpO1xuICAgIHNyYy5saW5lKGAgKiBQcm9wcyBmb3IgJHtjb25zdHJ1Y3ROYW1lfWApO1xuICAgIHNyYy5saW5lKCcgKi8nKTtcbiAgICBzcmMub3BlbihgZXhwb3J0IGludGVyZmFjZSAke3Byb3BzVHlwZX0gZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25PcHRpb25zIHtgKTtcbiAgICBzcmMuY2xvc2UoJ30nKTtcbiAgICBzcmMubGluZSgpO1xuICAgIHNyYy5saW5lKCcvKionKTtcbiAgICBzcmMubGluZShgICogQW4gQVdTIExhbWJkYSBmdW5jdGlvbiB3aGljaCBleGVjdXRlcyAke2Jhc2VQYXRofS5gKTtcbiAgICBzcmMubGluZSgnICovJyk7XG4gICAgc3JjLm9wZW4oYGV4cG9ydCBjbGFzcyAke2NvbnN0cnVjdE5hbWV9IGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uIHtgKTtcbiAgICBzcmMub3BlbihgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiAke3Byb3BzVHlwZX0pIHtgKTtcbiAgICBzcmMub3Blbignc3VwZXIoc2NvcGUsIGlkLCB7Jyk7XG4gICAgc3JjLmxpbmUoYGRlc2NyaXB0aW9uOiAnJHtlbnRyeXBvaW50fScsYCk7XG4gICAgc3JjLmxpbmUoJy4uLnByb3BzLCcpO1xuICAgIHNyYy5saW5lKGBydW50aW1lOiBsYW1iZGEuUnVudGltZS4ke3J1bnRpbWUuZnVuY3Rpb25SdW50aW1lfSxgKTtcbiAgICBzcmMubGluZSgnaGFuZGxlcjogXFwnaW5kZXguaGFuZGxlclxcJywnKTtcbiAgICBzcmMubGluZShgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcke2Jhc2VuYW1lKGJ1bmRsZWRpck5hbWUpfScpKSxgKTtcbiAgICBzcmMuY2xvc2UoJ30pOycpO1xuICAgIHNyYy5jbG9zZSgnfScpO1xuICAgIHNyYy5jbG9zZSgnfScpO1xuXG4gICAgY29uc3QgZW50cnkgPSBqb2luKG9wdGlvbnMuc3JjZGlyLCBlbnRyeXBvaW50KTtcbiAgICBjb25zdCBvdXRmaWxlID0gam9pbihvcHRpb25zLmxpYmRpciwgYnVuZGxlZGlyTmFtZSwgJ2luZGV4LmpzJyk7XG5cbiAgICB0aGlzLmJ1bmRsZVRhc2sgPSBidW5kbGVyLmFkZEJ1bmRsZShiYXNlUGF0aCwge1xuICAgICAgZW50cnlwb2ludDogZW50cnksXG4gICAgICBvdXRmaWxlOiBvdXRmaWxlLFxuICAgICAgdGFyZ2V0OiBydW50aW1lLmVzYnVpbGRUYXJnZXQsXG4gICAgICBwbGF0Zm9ybTogcnVudGltZS5lc2J1aWxkUGxhdGZvcm0sXG4gICAgICBleHRlcm5hbHM6IG9wdGlvbnMuZXh0ZXJuYWxzID8/IFsnYXdzLXNkayddLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wcm9qZWN0LmxvZ2dlci5pbmZvKGAke2Jhc2VQYXRofTogY29uc3RydWN0IFwiJHtjb25zdHJ1Y3ROYW1lfVwiIGdlbmVyYXRlZCB1bmRlciBcIiR7Y29uc3RydWN0RmlsZVBhdGh9XCJgKTtcbiAgICB0aGlzLnByb2plY3QubG9nZ2VyLmluZm8oYCR7YmFzZVBhdGh9OiBidW5kbGUgdGFzayBcIiR7dGhpcy5idW5kbGVUYXNrLm5hbWV9XCJgKTtcbiAgfVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBMYW1iZGFSdW50aW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ERUpTXzEwX1ggPSBuZXcgTGFtYmRhUnVudGltZSgnTk9ERUpTXzEwX1gnLCAnbm9kZTEwJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ERUpTXzEyX1ggPSBuZXcgTGFtYmRhUnVudGltZSgnTk9ERUpTXzEyX1gnLCAnbm9kZTEyJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ERUpTXzE0X1ggPSBuZXcgTGFtYmRhUnVudGltZSgnTk9ERUpTXzE0X1gnLCAnbm9kZTE0Jyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVzYnVpbGRQbGF0Zm9ybSA9ICdub2RlJztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBhd3MtbGFtYmRhLlJ1bnRpbWUgbWVtYmVyIG5hbWUgdG8gdXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBmdW5jdGlvblJ1bnRpbWU6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFRoZSBlc2J1aWxkIHNldHRpbmcgdG8gdXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBlc2J1aWxkVGFyZ2V0OiBzdHJpbmcpIHtcbiAgfVxufVxuIl19
|
package/lib/awscdk-app-ts.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { CdkTasks, LambdaFunctionCommonOptions } from './awscdk';
|
|
1
2
|
import { CdkConfig, CdkConfigCommonOptions } from './awscdk/cdk-config';
|
|
2
|
-
import { CdkTasks } from './awscdk/cdk-tasks';
|
|
3
3
|
import { TypeScriptAppProject, TypeScriptProjectOptions } from './typescript';
|
|
4
4
|
/**
|
|
5
5
|
* @experimental
|
|
@@ -37,6 +37,20 @@ export interface AwsCdkTypeScriptAppOptions extends TypeScriptProjectOptions, Cd
|
|
|
37
37
|
* @experimental
|
|
38
38
|
*/
|
|
39
39
|
readonly appEntrypoint?: string;
|
|
40
|
+
/**
|
|
41
|
+
* (experimental) 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.
|
|
42
|
+
*
|
|
43
|
+
* @default true
|
|
44
|
+
* @experimental
|
|
45
|
+
*/
|
|
46
|
+
readonly lambdaAutoDiscover?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* (experimental) Common options for all AWS Lambda functions.
|
|
49
|
+
*
|
|
50
|
+
* @default - default options
|
|
51
|
+
* @experimental
|
|
52
|
+
*/
|
|
53
|
+
readonly lambdaOptions?: LambdaFunctionCommonOptions;
|
|
40
54
|
}
|
|
41
55
|
/**
|
|
42
56
|
* (experimental) AWS CDK app in TypeScript.
|