cdk-serverless 1.1.44 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -116
- package/docs/constructs/.nojekyll +1 -0
- package/docs/constructs/assets/highlight.css +92 -0
- package/docs/constructs/assets/main.js +58 -0
- package/docs/constructs/assets/search.js +1 -0
- package/docs/constructs/assets/style.css +1338 -0
- package/docs/constructs/classes/AssetCdn.html +165 -0
- package/docs/constructs/classes/BaseApi.html +152 -0
- package/docs/constructs/classes/CognitoAuthentication.html +172 -0
- package/docs/constructs/classes/LambdaFunction.html +1101 -0
- package/docs/constructs/classes/RestApi.html +306 -0
- package/docs/constructs/classes/SingleTableDatastore.html +155 -0
- package/docs/constructs/classes/Workflow.html +170 -0
- package/docs/constructs/index.html +122 -0
- package/docs/constructs/interfaces/AssetCdnProps.html +89 -0
- package/docs/constructs/interfaces/BaseApiProps.html +158 -0
- package/docs/constructs/interfaces/CognitoAuthenticationProps.html +151 -0
- package/docs/constructs/interfaces/ICognitoAuthentication.html +86 -0
- package/docs/constructs/interfaces/IJwtAuthentication.html +96 -0
- package/docs/constructs/interfaces/LambdaFunctionProps.html +189 -0
- package/docs/constructs/interfaces/LambdaTracingOptions.html +85 -0
- package/docs/constructs/interfaces/RestApiProps.html +227 -0
- package/docs/constructs/interfaces/SingleTableDatastoreProps.html +109 -0
- package/docs/constructs/interfaces/SingleTableDesign.html +113 -0
- package/docs/constructs/interfaces/WorkflowProps.html +105 -0
- package/docs/constructs/modules.html +85 -0
- package/docs/constructs/types/LambdaOptions.html +58 -0
- package/docs/lambda/.nojekyll +1 -0
- package/docs/lambda/assets/highlight.css +36 -0
- package/docs/lambda/assets/main.js +58 -0
- package/docs/lambda/assets/search.js +1 -0
- package/docs/lambda/assets/style.css +1338 -0
- package/docs/lambda/classes/auth.ApiGatewayv1CognitoAuthorizer.html +323 -0
- package/docs/lambda/classes/auth.ApiGatewayv1JwtAuthorizer.html +322 -0
- package/docs/lambda/classes/auth.ApiGatewayv2CognitoAuthorizer.html +324 -0
- package/docs/lambda/classes/auth.ApiGatewayv2JwtAuthorizer.html +320 -0
- package/docs/lambda/classes/auth.AppSyncCognitoAuthorizer.html +314 -0
- package/docs/lambda/classes/auth.CognitoAuthorizer.html +303 -0
- package/docs/lambda/classes/auth.JwtAuthorizer.html +298 -0
- package/docs/lambda/classes/errors.BadRequestError.html +193 -0
- package/docs/lambda/classes/errors.ForbiddenError.html +193 -0
- package/docs/lambda/classes/errors.HttpError.html +199 -0
- package/docs/lambda/classes/errors.NotFoundError.html +193 -0
- package/docs/lambda/classes/errors.UnauthenticatedError.html +193 -0
- package/docs/lambda/functions/api.createAppSyncHandler.html +98 -0
- package/docs/lambda/functions/api.createHttpHandler.html +95 -0
- package/docs/lambda/functions/api.createOpenApiHandler.html +95 -0
- package/docs/lambda/functions/api.createOpenApiHandlerWithRequestBody.html +95 -0
- package/docs/lambda/functions/api.createOpenApiHandlerWithRequestBodyNoResponse.html +93 -0
- package/docs/lambda/index.html +140 -0
- package/docs/lambda/interfaces/api.AppSyncHandlerContext.html +123 -0
- package/docs/lambda/interfaces/api.HttpHandlerContext.html +122 -0
- package/docs/lambda/interfaces/api.HttpResponseContext.html +117 -0
- package/docs/lambda/interfaces/api.Operation.html +109 -0
- package/docs/lambda/interfaces/api.OperationWithRequestBody.html +123 -0
- package/docs/lambda/modules/api.html +100 -0
- package/docs/lambda/modules/auth.html +88 -0
- package/docs/lambda/modules/errors.html +86 -0
- package/docs/lambda/modules.html +81 -0
- package/docs/lambda/types/api.APIGatewayv1Handler.html +79 -0
- package/docs/lambda/types/api.AppSyncHandler.html +100 -0
- package/docs/lambda/types/api.HttpHandler.html +101 -0
- package/docs/projen/.nojekyll +1 -0
- package/docs/projen/assets/highlight.css +85 -0
- package/docs/projen/assets/main.js +58 -0
- package/docs/projen/assets/search.js +1 -0
- package/docs/projen/assets/style.css +1338 -0
- package/docs/projen/classes/Datastore.html +180 -0
- package/docs/projen/classes/RestApi.html +184 -0
- package/docs/projen/classes/ServerlessProject.html +1246 -0
- package/docs/projen/classes/Workflow.html +178 -0
- package/docs/projen/index.html +112 -0
- package/docs/projen/interfaces/DatastoreOptions.html +75 -0
- package/docs/projen/interfaces/RestApiOptions.html +75 -0
- package/docs/projen/interfaces/ServerlessProjectOptions.html +1921 -0
- package/docs/projen/interfaces/WorkflowOptions.html +75 -0
- package/docs/projen/modules.html +65 -0
- package/docs/projen/variables/PACKAGE_NAME.html +48 -0
- package/lib/constructs/asset-cdn.js +2 -1
- package/lib/constructs/{auth.d.ts → authentication.d.ts} +32 -15
- package/lib/constructs/authentication.js +136 -0
- package/lib/constructs/base-api.d.ts +10 -21
- package/lib/constructs/base-api.js +2 -37
- package/lib/constructs/func.d.ts +6 -25
- package/lib/constructs/func.js +16 -37
- package/lib/constructs/index.d.ts +4 -6
- package/lib/constructs/index.js +5 -7
- package/lib/constructs/rest-api.d.ts +73 -0
- package/lib/constructs/rest-api.js +278 -0
- package/lib/constructs/table.d.ts +25 -6
- package/lib/constructs/table.js +12 -70
- package/lib/constructs/workflow.d.ts +18 -0
- package/lib/constructs/workflow.js +58 -0
- package/lib/lambda/auth.d.ts +144 -0
- package/lib/lambda/auth.js +309 -0
- package/lib/lambda/errors.d.ts +16 -0
- package/lib/lambda/errors.js +35 -0
- package/lib/lambda/handler.d.ts +90 -0
- package/lib/lambda/handler.js +217 -0
- package/lib/lambda/index.d.ts +3 -0
- package/lib/lambda/index.js +30 -0
- package/lib/projen/core.d.ts +4 -14
- package/lib/projen/core.js +25 -29
- package/lib/projen/datastore.d.ts +13 -0
- package/lib/projen/datastore.js +145 -0
- package/lib/projen/index.d.ts +3 -2
- package/lib/projen/index.js +5 -3
- package/lib/projen/rest-api.d.ts +13 -0
- package/lib/projen/rest-api.js +127 -0
- package/lib/projen/workflow.d.ts +18 -0
- package/lib/projen/workflow.js +99 -0
- package/package.json +44 -35
- package/CHANGELOG.md +0 -170
- package/img/autocomplete.gif +0 -0
- package/lib/constructs/auth.js +0 -135
- package/lib/constructs/graphql-api.d.ts +0 -44
- package/lib/constructs/graphql-api.js +0 -221
- package/lib/constructs/http-api.d.ts +0 -58
- package/lib/constructs/http-api.js +0 -242
- package/lib/constructs/monitoring.d.ts +0 -23
- package/lib/constructs/monitoring.js +0 -47
- package/lib/constructs/scheduled-func.d.ts +0 -63
- package/lib/constructs/scheduled-func.js +0 -54
- package/lib/constructs/webhook.d.ts +0 -33
- package/lib/constructs/webhook.js +0 -86
- package/lib/projen/graphql-api.d.ts +0 -7
- package/lib/projen/graphql-api.js +0 -58
- package/lib/projen/http-api.d.ts +0 -7
- package/lib/projen/http-api.js +0 -43
- package/lib/types/index.d.ts +0 -1
- package/lib/types/index.js +0 -18
- package/lib/types/table.d.ts +0 -34
- package/lib/types/table.js +0 -31
- package/version.json +0 -3
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Construct } from 'constructs';
|
|
2
|
-
import { AssetCdn
|
|
3
|
-
import {
|
|
2
|
+
import { AssetCdn } from './asset-cdn';
|
|
3
|
+
import { ICognitoAuthentication, IJwtAuthentication } from './authentication';
|
|
4
4
|
import { LambdaOptions, LambdaTracingOptions } from './func';
|
|
5
|
-
import {
|
|
6
|
-
import { SingleTableDatastore, SingleTableDatastoreProps } from './table';
|
|
5
|
+
import { SingleTableDatastore } from './table';
|
|
7
6
|
export interface BaseApiProps {
|
|
8
7
|
/**
|
|
9
8
|
* Name of the API
|
|
@@ -20,29 +19,23 @@ export interface BaseApiProps {
|
|
|
20
19
|
*/
|
|
21
20
|
monitoring?: boolean;
|
|
22
21
|
/**
|
|
23
|
-
* Create a DynamoDB Table to store data using the single table design
|
|
24
|
-
*
|
|
25
|
-
* @default none
|
|
26
|
-
*/
|
|
27
|
-
singleTableDatastore?: SingleTableDatastoreProps;
|
|
28
|
-
/**
|
|
29
|
-
* Configure a Cognito user pool and use it for authorization
|
|
30
|
-
*
|
|
31
22
|
* @default none
|
|
32
23
|
*/
|
|
33
|
-
|
|
24
|
+
singleTableDatastore?: SingleTableDatastore;
|
|
34
25
|
/**
|
|
35
|
-
* Use
|
|
26
|
+
* Use a Cognito user pool for authorization.
|
|
27
|
+
* Alternatively supply a JWT issuer and audience
|
|
28
|
+
* to use any other JWT-based authorization service.
|
|
36
29
|
*
|
|
37
30
|
* @default none
|
|
38
31
|
*/
|
|
39
|
-
|
|
32
|
+
authentication?: IJwtAuthentication | ICognitoAuthentication;
|
|
40
33
|
/**
|
|
41
34
|
* Configure a content delivery network for static assets
|
|
42
35
|
*
|
|
43
36
|
* @default none
|
|
44
37
|
*/
|
|
45
|
-
assetCdn?:
|
|
38
|
+
assetCdn?: AssetCdn;
|
|
46
39
|
/**
|
|
47
40
|
* Additional environment variables of all Lambda functions
|
|
48
41
|
*/
|
|
@@ -59,9 +52,5 @@ export interface BaseApiProps {
|
|
|
59
52
|
lambdaTracing?: LambdaTracingOptions;
|
|
60
53
|
}
|
|
61
54
|
export declare abstract class BaseApi extends Construct {
|
|
62
|
-
|
|
63
|
-
readonly authentication?: IAuthentication;
|
|
64
|
-
readonly assetCdn?: AssetCdn;
|
|
65
|
-
readonly monitoring?: Monitoring;
|
|
66
|
-
constructor(scope: Construct, id: string, props: BaseApiProps);
|
|
55
|
+
constructor(scope: Construct, id: string, _props: BaseApiProps);
|
|
67
56
|
}
|
|
@@ -2,45 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseApi = void 0;
|
|
4
4
|
const constructs_1 = require("constructs");
|
|
5
|
-
const asset_cdn_1 = require("./asset-cdn");
|
|
6
|
-
const auth_1 = require("./auth");
|
|
7
|
-
const monitoring_1 = require("./monitoring");
|
|
8
|
-
const table_1 = require("./table");
|
|
9
5
|
class BaseApi extends constructs_1.Construct {
|
|
10
|
-
constructor(scope, id,
|
|
11
|
-
var _a;
|
|
6
|
+
constructor(scope, id, _props) {
|
|
12
7
|
super(scope, id);
|
|
13
|
-
if (props.singleTableDatastore) {
|
|
14
|
-
this.singleTableDatastore = new table_1.SingleTableDatastore(this, 'SingleTableDS', props.singleTableDatastore);
|
|
15
|
-
}
|
|
16
|
-
if (props.existingAuthentication && props.authentication) {
|
|
17
|
-
throw new Error('Cannot specify new and existing authentication at the same time');
|
|
18
|
-
}
|
|
19
|
-
if (props.existingAuthentication) {
|
|
20
|
-
this.authentication = props.existingAuthentication;
|
|
21
|
-
}
|
|
22
|
-
if (props.authentication) {
|
|
23
|
-
const newAuth = new auth_1.Authentication(this, 'Authentication', props.authentication);
|
|
24
|
-
if (this.singleTableDatastore) {
|
|
25
|
-
if (newAuth.customMessageFunction) {
|
|
26
|
-
newAuth.customMessageFunction.setTable(this.singleTableDatastore.table, false);
|
|
27
|
-
}
|
|
28
|
-
if (newAuth.preTokenGenerationFunction) {
|
|
29
|
-
newAuth.preTokenGenerationFunction.setTable(this.singleTableDatastore.table, false);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
this.authentication = newAuth;
|
|
33
|
-
}
|
|
34
|
-
if (props.assetCdn) {
|
|
35
|
-
this.assetCdn = new asset_cdn_1.AssetCdn(this, 'AssetCdn', props.assetCdn);
|
|
36
|
-
}
|
|
37
|
-
if ((_a = props.monitoring) !== null && _a !== void 0 ? _a : true) {
|
|
38
|
-
this.monitoring = new monitoring_1.Monitoring(this, 'Monitoring', {
|
|
39
|
-
apiName: props.apiName,
|
|
40
|
-
stageName: props.stageName,
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
8
|
}
|
|
44
9
|
}
|
|
45
10
|
exports.BaseApi = BaseApi;
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9iYXNlLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFpRXZDLE1BQXNCLE9BQVEsU0FBUSxzQkFBUztJQUU3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLE1BQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbkIsQ0FBQztDQUVGO0FBUEQsMEJBT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEFzc2V0Q2RuIH0gZnJvbSAnLi9hc3NldC1jZG4nO1xuaW1wb3J0IHsgSUNvZ25pdG9BdXRoZW50aWNhdGlvbiwgSUp3dEF1dGhlbnRpY2F0aW9uIH0gZnJvbSAnLi9hdXRoZW50aWNhdGlvbic7XG5pbXBvcnQgeyBMYW1iZGFPcHRpb25zLCBMYW1iZGFUcmFjaW5nT3B0aW9ucyB9IGZyb20gJy4vZnVuYyc7XG5pbXBvcnQgeyBTaW5nbGVUYWJsZURhdGFzdG9yZSB9IGZyb20gJy4vdGFibGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VBcGlQcm9wcyB7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIEFQSVxuICAgKi9cbiAgYXBpTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXBsb3ltZW50IHN0YWdlIChlLmcuIGRldilcbiAgICovXG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgQ2xvdWRXYXRjaCBEYXNoYm9hcmQgZm9yIHRoZSBBUEkgYW5kIHRoZSBMYW1iZGEgZnVuY3Rpb25zXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIG1vbml0b3Jpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICBzaW5nbGVUYWJsZURhdGFzdG9yZT86IFNpbmdsZVRhYmxlRGF0YXN0b3JlO1xuXG4gIC8qKlxuICAgKiBVc2UgYSBDb2duaXRvIHVzZXIgcG9vbCBmb3IgYXV0aG9yaXphdGlvbi5cbiAgICogQWx0ZXJuYXRpdmVseSBzdXBwbHkgYSBKV1QgaXNzdWVyIGFuZCBhdWRpZW5jZVxuICAgKiB0byB1c2UgYW55IG90aGVyIEpXVC1iYXNlZCBhdXRob3JpemF0aW9uIHNlcnZpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIGF1dGhlbnRpY2F0aW9uPzogSUp3dEF1dGhlbnRpY2F0aW9uIHwgSUNvZ25pdG9BdXRoZW50aWNhdGlvbjtcblxuICAvKipcbiAgICogQ29uZmlndXJlIGEgY29udGVudCBkZWxpdmVyeSBuZXR3b3JrIGZvciBzdGF0aWMgYXNzZXRzXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIGFzc2V0Q2RuPzogQXNzZXRDZG47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9mIGFsbCBMYW1iZGEgZnVuY3Rpb25zXG4gICAqL1xuICBhZGRpdGlvbmFsRW52Pzoge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfTtcblxuICAvKipcbiAgICogYWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgdW5kZXJseWluZyBMYW1iZGEgZnVuY3Rpb24gY29uc3RydWN0XG4gICAqL1xuICBsYW1iZGFPcHRpb25zPzogTGFtYmRhT3B0aW9ucztcblxuICAvKipcbiAgICogVHJhY2luZyBjb25maWcgZm9yIHRoZSBnZW5lcmF0ZWQgTGFtYmRhIGZ1bmN0aW9uc1xuICAgKi9cbiAgbGFtYmRhVHJhY2luZz86IExhbWJkYVRyYWNpbmdPcHRpb25zO1xuXG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQXBpIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBfcHJvcHM6IEJhc2VBcGlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgfVxuXG59XG4iXX0=
|
package/lib/constructs/func.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { aws_dynamodb as dynamodb, aws_s3 as s3, aws_cognito as cognito, aws_lambda as lambda, aws_lambda_nodejs as lambdaNodejs } from 'aws-cdk-lib';
|
|
2
2
|
import * as cdk from 'aws-cdk-lib';
|
|
3
3
|
import { Construct } from 'constructs';
|
|
4
|
-
|
|
4
|
+
import { IJwtAuthentication } from './authentication';
|
|
5
|
+
export type LambdaOptions = Omit<lambdaNodejs.NodejsFunctionProps, 'entry' | 'handler' | 'description'>;
|
|
5
6
|
export interface LambdaTracingOptions {
|
|
6
7
|
/**
|
|
7
8
|
* Activate tracing with X-Ray
|
|
@@ -9,30 +10,6 @@ export interface LambdaTracingOptions {
|
|
|
9
10
|
* @default lambda.Tracing.DISABLED
|
|
10
11
|
*/
|
|
11
12
|
xRayTracing?: lambda.Tracing;
|
|
12
|
-
/**
|
|
13
|
-
* Activate tracing with Thundra
|
|
14
|
-
*
|
|
15
|
-
* @default false
|
|
16
|
-
*/
|
|
17
|
-
thundraTracing?: boolean;
|
|
18
|
-
/**
|
|
19
|
-
* name of the Secret that contains the Thundra API Key
|
|
20
|
-
*
|
|
21
|
-
* @default Thundra
|
|
22
|
-
*/
|
|
23
|
-
thundraApiKeySecret?: string;
|
|
24
|
-
/**
|
|
25
|
-
* name of the Secret that contains the Thundra API Key
|
|
26
|
-
*
|
|
27
|
-
* @default ApiKey
|
|
28
|
-
*/
|
|
29
|
-
thundraApiKeySecretField?: string;
|
|
30
|
-
/**
|
|
31
|
-
* ARN of the Lambda layer provided by Thundra
|
|
32
|
-
*
|
|
33
|
-
* @default latest
|
|
34
|
-
*/
|
|
35
|
-
thundraLayerArn?: string;
|
|
36
13
|
}
|
|
37
14
|
export interface LambdaFunctionProps {
|
|
38
15
|
/**
|
|
@@ -68,6 +45,10 @@ export interface LambdaFunctionProps {
|
|
|
68
45
|
* The name of the pool is available as process.env.USER_POOL_ID
|
|
69
46
|
*/
|
|
70
47
|
userPool?: cognito.IUserPool;
|
|
48
|
+
/**
|
|
49
|
+
* JwtAuthentication settings
|
|
50
|
+
*/
|
|
51
|
+
jwt?: IJwtAuthentication;
|
|
71
52
|
/**
|
|
72
53
|
* Bucket that is used for assets and published using the asset CDN
|
|
73
54
|
* The name of the bucket is available as process.env.ASSET_BUCKET
|
package/lib/constructs/func.js
CHANGED
|
@@ -1,37 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.LambdaFunction = void 0;
|
|
27
4
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
28
|
-
const
|
|
5
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
29
6
|
class LambdaFunction extends aws_cdk_lib_1.aws_lambda_nodejs.NodejsFunction {
|
|
30
7
|
constructor(scope, id, props) {
|
|
31
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j
|
|
8
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
32
9
|
super(scope, id, {
|
|
33
10
|
...props.lambdaOptions,
|
|
34
11
|
entry: props.entry,
|
|
12
|
+
runtime: aws_lambda_1.Runtime.NODEJS_18_X,
|
|
35
13
|
bundling: {
|
|
36
14
|
...(_a = props.lambdaOptions) === null || _a === void 0 ? void 0 : _a.bundling,
|
|
37
15
|
externalModules: props.includeSDK ? [] : undefined,
|
|
@@ -48,6 +26,15 @@ class LambdaFunction extends aws_cdk_lib_1.aws_lambda_nodejs.NodejsFunction {
|
|
|
48
26
|
...props.table && {
|
|
49
27
|
TABLE: props.table.tableName,
|
|
50
28
|
},
|
|
29
|
+
...props.jwt && {
|
|
30
|
+
JWT_ISSUER_URL: props.jwt.issuerUrl,
|
|
31
|
+
},
|
|
32
|
+
...((_e = props.jwt) === null || _e === void 0 ? void 0 : _e.jwksUrl) && {
|
|
33
|
+
JWT_JWKS_URL: props.jwt.jwksUrl,
|
|
34
|
+
},
|
|
35
|
+
...((_f = props.jwt) === null || _f === void 0 ? void 0 : _f.audience) && {
|
|
36
|
+
JWT_AUDIENCE_URL: props.jwt.audience.join('||'),
|
|
37
|
+
},
|
|
51
38
|
...props.userPool && {
|
|
52
39
|
USER_POOL_ID: props.userPool.userPoolId,
|
|
53
40
|
},
|
|
@@ -57,23 +44,15 @@ class LambdaFunction extends aws_cdk_lib_1.aws_lambda_nodejs.NodejsFunction {
|
|
|
57
44
|
...props.assetDomainName && {
|
|
58
45
|
ASSET_DOMAIN_NAME: props.assetDomainName,
|
|
59
46
|
},
|
|
60
|
-
...((_e = props.lambdaTracing) === null || _e === void 0 ? void 0 : _e.thundraTracing) && {
|
|
61
|
-
thundra_agent_lambda_handler: `index.${(_f = props.handler) !== null && _f !== void 0 ? _f : 'handler'}`,
|
|
62
|
-
thundra_apiKey: cdk.SecretValue.secretsManager((_g = props.lambdaTracing.thundraApiKeySecret) !== null && _g !== void 0 ? _g : 'Thundra', { jsonField: (_h = props.lambdaTracing.thundraApiKeySecretField) !== null && _h !== void 0 ? _h : 'ApiKey' }).toString(),
|
|
63
|
-
},
|
|
64
47
|
...props.additionalEnv,
|
|
65
48
|
},
|
|
66
|
-
handler: (
|
|
49
|
+
handler: (_g = props.handler) !== null && _g !== void 0 ? _g : 'handler',
|
|
67
50
|
description: props.description,
|
|
68
|
-
tracing: (
|
|
51
|
+
tracing: (_h = props.lambdaTracing) === null || _h === void 0 ? void 0 : _h.xRayTracing,
|
|
69
52
|
});
|
|
70
53
|
this.props = props;
|
|
71
|
-
if ((_l = props.lambdaTracing) === null || _l === void 0 ? void 0 : _l.thundraTracing) {
|
|
72
|
-
this.addLayers(aws_cdk_lib_1.aws_lambda.LayerVersion.fromLayerVersionArn(this, 'ThundraLayer', (_o = (_m = this.props.lambdaTracing) === null || _m === void 0 ? void 0 : _m.thundraLayerArn) !== null && _o !== void 0 ? _o : `arn:aws:lambda:${cdk.Stack.of(this).region}:269863060030:layer:thundra-lambda-node-layer-minified:87`));
|
|
73
|
-
this.node.tryFindChild('Resource').handler = 'thundra_handler.wrapper';
|
|
74
|
-
}
|
|
75
54
|
if (props.table) {
|
|
76
|
-
if ((
|
|
55
|
+
if ((_j = props.tableWrites) !== null && _j !== void 0 ? _j : true) {
|
|
77
56
|
props.table.grantReadWriteData(this);
|
|
78
57
|
}
|
|
79
58
|
else {
|
|
@@ -167,4 +146,4 @@ class LambdaFunction extends aws_cdk_lib_1.aws_lambda_nodejs.NodejsFunction {
|
|
|
167
146
|
}
|
|
168
147
|
}
|
|
169
148
|
exports.LambdaFunction = LambdaFunction;
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL2Z1bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FPcUI7QUFDckIsaURBQW1DO0FBdUhuQyxNQUFhLGNBQWUsU0FBUSwrQkFBWSxDQUFDLGNBQWM7SUFFN0QsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBVSxLQUEwQjs7UUFDMUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUssQ0FBQyxhQUFhO1lBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxNQUFBLEtBQUssQ0FBQyxhQUFhLDBDQUFFLFFBQVE7Z0JBQ2hDLGVBQWUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2xELE1BQU0sRUFBRTtvQkFDTixHQUFHLE1BQUEsTUFBQSxLQUFLLENBQUMsYUFBYSwwQ0FBRSxRQUFRLDBDQUFFLE1BQU07b0JBQ3hDLE9BQU8sRUFBRSxNQUFNO2lCQUNoQjthQUNGO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLEdBQUcsTUFBQSxLQUFLLENBQUMsYUFBYSwwQ0FBRSxXQUFXO2dCQUNuQyxHQUFHLEtBQUssQ0FBQyxTQUFTLElBQUk7b0JBQ3BCLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUztpQkFDdkI7Z0JBQ0QsR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJO29CQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTO2lCQUM3QjtnQkFDRCxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUk7b0JBQ25CLFlBQVksRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVU7aUJBQ3hDO2dCQUNELEdBQUcsS0FBSyxDQUFDLFdBQVcsSUFBSTtvQkFDdEIsWUFB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MEJBQTBCO2dCQUMxQixvQ0FBb0M7YUFDckM7WUFDRCxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7U0FDN0MsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxzQkFBc0I7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztTQUM1QztRQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxxQkFBRyxDQUFDLGVBQWUsQ0FBQztZQUMvRCxPQUFPLEVBQUU7Z0JBQ1AsdUNBQXVDO2dCQUN2QyxpQ0FBaUM7Z0JBQ2pDLHNDQUFzQztnQkFDdEMsNkJBQTZCO2dCQUM3Qiw2QkFBNkI7YUFDOUI7WUFDRCxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7U0FDN0MsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBcUI7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFtQyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNuRyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FFRjtBQXRKRCx3Q0FzSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhd3NfZHluYW1vZGIgYXMgZHluYW1vZGIsXG4gIGF3c19zMyBhcyBzMyxcbiAgYXdzX2lhbSBhcyBpYW0sXG4gIGF3c19jb2duaXRvIGFzIGNvZ25pdG8sXG4gIGF3c19sYW1iZGEgYXMgbGFtYmRhLFxuICBhd3NfbGFtYmRhX25vZGVqcyBhcyBsYW1iZGFOb2RlanMsXG59IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IHR5cGUgTGFtYmRhT3B0aW9ucyA9IE9taXQ8bGFtYmRhTm9kZWpzLk5vZGVqc0Z1bmN0aW9uUHJvcHMsICdlbnRyeScgfCAnaGFuZGxlcicgfCAnZGVzY3JpcHRpb24nPlxuXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYVRyYWNpbmdPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFjdGl2YXRlIHRyYWNpbmcgd2l0aCBYLVJheVxuICAgKlxuICAgKiBAZGVmYXVsdCBsYW1iZGEuVHJhY2luZy5ESVNBQkxFRFxuICAgKi9cbiAgeFJheVRyYWNpbmc/OiBsYW1iZGEuVHJhY2luZztcblxuICAvKipcbiAgICogQWN0aXZhdGUgdHJhY2luZyB3aXRoIFRodW5kcmFcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHRodW5kcmFUcmFjaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogbmFtZSBvZiB0aGUgU2VjcmV0IHRoYXQgY29udGFpbnMgdGhlIFRodW5kcmEgQVBJIEtleVxuICAgKlxuICAgKiBAZGVmYXVsdCBUaHVuZHJhXG4gICAqL1xuICB0aHVuZHJhQXBpS2V5U2VjcmV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBuYW1lIG9mIHRoZSBTZWNyZXQgdGhhdCBjb250YWlucyB0aGUgVGh1bmRyYSBBUEkgS2V5XG4gICAqXG4gICAqIEBkZWZhdWx0IEFwaUtleVxuICAgKi9cbiAgdGh1bmRyYUFwaUtleVNlY3JldEZpZWxkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIExhbWJkYSBsYXllciBwcm92aWRlZCBieSBUaHVuZHJhXG4gICAqXG4gICAqIEBkZWZhdWx0IGxhdGVzdFxuICAgKi9cbiAgdGh1bmRyYUxheWVyQXJuPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFGdW5jdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIERlcGxveW1lbnQgc3RhZ2UgKGUuZy4gZGV2KVxuICAgKi9cbiAgc3RhZ2VOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBlbnRyeSBmaWxlIG5hbWVcbiAgICovXG4gIGVudHJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIG5hbWUgb2YgdGhlIGV4cG9ydGVkIGhhbmRsZXIgZnVuY3Rpb25cbiAgICpcbiAgICogQGRlZmF1bHQgaGFuZGxlclxuICAgKi9cbiAgaGFuZGxlcj86IHN0cmluZztcblxuICAvKipcbiAgICogZGVzY3JpcHRpb24gb2YgdGhlIExhbWJkYSBmdW5jdGlvblxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIER5bmFtb0RCIHRoYXQgaXMgdXNlZCBhcyBkYXRhc3RvcmVcbiAgICogVGhlIExhbWJkYSBmdW5jdGlvbiB3aWxsIGhhdmUgcmVhZCBhY2Nlc3MgdG8gdGhpcyB0YWJsZSBhdXRvbWF0aWNhbGx5XG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSBpcyBhdmFpbGFibGUgYXMgcHJvY2Vzcy5lbnYuVEFCTEVcbiAgICovXG4gIHRhYmxlPzogZHluYW1vZGIuSVRhYmxlO1xuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZSB3cml0ZSBwZXJtaXNzaW9ucyB0byB0aGUgRHluYW1vREIgdGFibGVcbiAgICovXG4gIHRhYmxlV3JpdGVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29nbml0byB1c2VyIHBvb2xcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBvb2wgaXMgYXZhaWxhYmxlIGFzIHByb2Nlc3MuZW52LlVTRVJfUE9PTF9JRFxuICAgKi9cbiAgdXNlclBvb2w/OiBjb2duaXRvLklVc2VyUG9vbDtcblxuICAvKipcbiAgICogQnVja2V0IHRoYXQgaXMgdXNlZCBmb3IgYXNzZXRzIGFuZCBwdWJsaXNoZWQgdXNpbmcgdGhlIGFzc2V0IENETlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYnVja2V0IGlzIGF2YWlsYWJsZSBhcyBwcm9jZXNzLmVudi5BU1NFVF9CVUNLRVRcbiAgICovXG4gIGFzc2V0QnVja2V0PzogczMuQnVja2V0O1xuXG4gIC8qKlxuICAgKiBGdWxseSBxdWFsaWZpZWQgZG9tYWluIG5hbWUgb2YgdGhlIGFzc2V0IENETlxuICAgKiBJdCBpcyBhdmFpbGFibGUgYXMgcHJvY2Vzcy5lbnYuQVNTRVRfRE9NQUlOX05BTUVcbiAgICovXG4gIGFzc2V0RG9tYWluTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU2hvdWxkIHRoZSBBV1MtU0RLIGJlIHBhY2thZ2VkIHdpdGggdGhlIExhbWJkYSBjb2RlIG9yIGV4Y2x1ZGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlIChleGNsdWRlIFNESyBhbmQgdXNlIHJ1bnRpbWUgcHJvdmlkZWQgb25lKVxuICAgKi9cbiAgaW5jbHVkZVNESz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb25cbiAgICovXG4gIGFkZGl0aW9uYWxFbnY/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB1bmRlcmx5aW5nIExhbWJkYSBmdW5jdGlvbiBjb25zdHJ1Y3RcbiAgICovXG4gIGxhbWJkYU9wdGlvbnM/OiBMYW1iZGFPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBUcmFjaW5nIGNvbmZpZ1xuICAgKi9cbiAgbGFtYmRhVHJhY2luZz86IExhbWJkYVRyYWNpbmdPcHRpb25zO1xufVxuXG5leHBvcnQgY2xhc3MgTGFtYmRhRnVuY3Rpb24gZXh0ZW5kcyBsYW1iZGFOb2RlanMuTm9kZWpzRnVuY3Rpb24ge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByaXZhdGUgcHJvcHM6IExhbWJkYUZ1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLmxhbWJkYU9wdGlvbnMsXG4gICAgICBlbnRyeTogcHJvcHMuZW50cnksXG4gICAgICBidW5kbGluZzoge1xuICAgICAgICAuLi5wcm9wcy5sYW1iZGFPcHRpb25zPy5idW5kbGluZyxcbiAgICAgICAgZXh0ZXJuYWxNb2R1bGVzOiBwcm9wcy5pbmNsdWRlU0RLID8gW10gOiB1bmRlZmluZWQsXG4gICAgICAgIGxvYWRlcjoge1xuICAgICAgICAgIC4uLnByb3BzLmxhbWJkYU9wdGlvbnM/LmJ1bmRsaW5nPy5sb2FkZXIsXG4gICAgICAgICAgJy55YW1sJzogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIC4uLnByb3BzLmxhbWJkYU9wdGlvbnM/LmVudmlyb25tZW50LFxuICAgICAgICAuLi5wcm9wcy5zdGFnZU5hbWUgJiYge1xuICAgICAgICAgIFNUQUdFOiBwcm9wcy5zdGFnZU5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLnRhYmxlICYmIHtcbiAgICAgICAgICBUQUJMRTogcHJvcHMudGFibGUudGFibGVOYW1lLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy51c2VyUG9vbCAmJiB7XG4gICAgICAgICAgVVNFUl9QT09MX0lEOiBwcm9wcy51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy5hc3NldEJ1Y2tldCAmJiB7XG4gICAgICAgICAgQVNTRVRfQlVDS0VUOiBwcm9wcy5hc3NldEJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy5hc3NldERvbWFpbk5hbWUgJiYge1xuICAgICAgICAgIEFTU0VUX0RPTUFJTl9OQU1FOiBwcm9wcy5hc3NldERvbWFpbk5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLmxhbWJkYVRyYWNpbmc/LnRodW5kcmFUcmFjaW5nICYmIHtcbiAgICAgICAgICB0aHVuZHJhX2FnZW50X2xhbWJkYV9oYW5kbGVyOiBgaW5kZXguJHtwcm9wcy5oYW5kbGVyID8/ICdoYW5kbGVyJ31gLFxuICAgICAgICAgIHRodW5kcmFfYXBpS2V5OiBjZGsuU2VjcmV0VmFsdWUuc2VjcmV0c01hbmFnZXIocHJvcHMubGFtYmRhVHJhY2luZy50aHVuZHJhQXBpS2V5U2VjcmV0ID8/ICdUaHVuZHJhJywgeyBqc29uRmllbGQ6IHByb3BzLmxhbWJkYVRyYWNpbmcudGh1bmRyYUFwaUtleVNlY3JldEZpZWxkID8/ICdBcGlLZXknIH0pLnRvU3RyaW5nKCksXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLmFkZGl0aW9uYWxFbnYsXG4gICAgICB9LFxuICAgICAgaGFuZGxlcjogcHJvcHMuaGFuZGxlciA/PyAnaGFuZGxlcicsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICB0cmFjaW5nOiBwcm9wcy5sYW1iZGFUcmFjaW5nPy54UmF5VHJhY2luZyxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5sYW1iZGFUcmFjaW5nPy50aHVuZHJhVHJhY2luZykge1xuICAgICAgdGhpcy5hZGRMYXllcnMobGFtYmRhLkxheWVyVmVyc2lvbi5mcm9tTGF5ZXJWZXJzaW9uQXJuKHRoaXMsICdUaHVuZHJhTGF5ZXInLCB0aGlzLnByb3BzLmxhbWJkYVRyYWNpbmc/LnRodW5kcmFMYXllckFybiA/PyBgYXJuOmF3czpsYW1iZGE6JHtjZGsuU3RhY2sub2YodGhpcykucmVnaW9ufToyNjk4NjMwNjAwMzA6bGF5ZXI6dGh1bmRyYS1sYW1iZGEtbm9kZS1sYXllci1taW5pZmllZDo4N2ApKTtcbiAgICAgICh0aGlzLm5vZGUudHJ5RmluZENoaWxkKCdSZXNvdXJjZScpIGFzIGxhbWJkYS5DZm5GdW5jdGlvbikuaGFuZGxlciA9ICd0aHVuZHJhX2hhbmRsZXIud3JhcHBlcic7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnRhYmxlKSB7XG4gICAgICBpZiAocHJvcHMudGFibGVXcml0ZXMgPz8gdHJ1ZSkge1xuICAgICAgICBwcm9wcy50YWJsZS5ncmFudFJlYWRXcml0ZURhdGEodGhpcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9wcy50YWJsZS5ncmFudFJlYWREYXRhKHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRUYWJsZSh0YWJsZTogZHluYW1vZGIuSVRhYmxlLCB0YWJsZVdyaXRlcz86IGJvb2xlYW4pOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgdGhpcy5wcm9wcy50YWJsZSA9IHRhYmxlO1xuICAgIHRoaXMucHJvcHMudGFibGVXcml0ZXMgPSB0YWJsZVdyaXRlcztcblxuICAgIHRoaXMuYWRkRW52aXJvbm1lbnQoJ1RBQkxFJywgdGFibGUudGFibGVOYW1lKTtcbiAgICBpZiAodGFibGVXcml0ZXMgPz8gdHJ1ZSkge1xuICAgICAgdGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKHRoaXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YWJsZS5ncmFudFJlYWREYXRhKHRoaXMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNldFVzZXJQb29sKHVzZXJQb29sOiBjb2duaXRvLklVc2VyUG9vbCk6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICB0aGlzLnByb3BzLnVzZXJQb29sID0gdXNlclBvb2w7XG4gICAgdGhpcy5hZGRFbnZpcm9ubWVudCgnVVNFUl9QT09MX0lEJywgdXNlclBvb2wudXNlclBvb2xJZCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRUYWJsZVdyaXRlKCk6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICBpZiAoIXRoaXMucHJvcHMudGFibGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdGFibGUgY29uZmlndXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLnByb3BzLnRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YSh0aGlzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBncmFudFNlbmRFbWFpbHMoKTogTGFtYmRhRnVuY3Rpb24ge1xuICAgIHRoaXMuZ3JhbnRQcmluY2lwYWwuYWRkVG9QcmluY2lwYWxQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnc2VzOlNlbmRFbWFpbCcsXG4gICAgICAgICdzZXM6U2VuZFRlbXBsYXRlZEVtYWlsJyxcbiAgICAgICAgJ3NlczpTZW5kQnVsa1RlbXBsYXRlZEVtYWlsJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBncmFudFVwbG9hZEFzc2V0cygpOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmFzc2V0QnVja2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGFzc2V0IGJ1Y2tldCBjb25maWd1cmVkJyk7XG4gICAgfVxuICAgIHRoaXMucHJvcHMuYXNzZXRCdWNrZXQuZ3JhbnRQdXQodGhpcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnREZWxldGVBc3NldCgpOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmFzc2V0QnVja2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGFzc2V0IGJ1Y2tldCBjb25maWd1cmVkJyk7XG4gICAgfVxuICAgIHRoaXMucHJvcHMuYXNzZXRCdWNrZXQuZ3JhbnREZWxldGUodGhpcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRVc2VycG9vbFJlYWQoKTogTGFtYmRhRnVuY3Rpb24ge1xuICAgIGlmICghdGhpcy5wcm9wcy51c2VyUG9vbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB1c2VyIHBvb2wgY29uZmlndXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ2NvZ25pdG8taWRwOkxpc3RVc2VycycsXG4gICAgICAgICdjb2duaXRvLWlkcDpBZG1pbkdldFVzZXInLFxuICAgICAgICAnY29nbml0by1pZHA6QWRtaW5MaXN0R3JvdXBzRm9yVXNlcicsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbdGhpcy5wcm9wcy51c2VyUG9vbC51c2VyUG9vbEFybl0sXG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdyYW50VXNlcnBvb2xSZWFkV3JpdGUoKTogTGFtYmRhRnVuY3Rpb24ge1xuICAgIGlmICghdGhpcy5wcm9wcy51c2VyUG9vbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB1c2VyIHBvb2wgY29uZmlndXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLmdyYW50VXNlcnBvb2xSZWFkKCk7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbC5hZGRUb1ByaW5jaXBhbFBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdjb2duaXRvLWlkcDpBZG1pblVwZGF0ZVVzZXJBdHRyaWJ1dGVzJyxcbiAgICAgICAgJ2NvZ25pdG8taWRwOkFkbWluQWRkVXNlclRvR3JvdXAnLFxuICAgICAgICAnY29nbml0by1pZHA6QWRtaW5SZW1vdmVVc2VyRnJvbUdyb3VwJyxcbiAgICAgICAgJ2NvZ25pdG8taWRwOkFkbWluQ3JlYXRlVXNlcicsXG4gICAgICAgICdjb2duaXRvLWlkcDpBZG1pbkRlbGV0ZVVzZXInLFxuICAgICAgXSxcbiAgICAgIHJlc291cmNlczogW3RoaXMucHJvcHMudXNlclBvb2wudXNlclBvb2xBcm5dLFxuICAgIH0pKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBzZXRUaW1lb3V0KHRpbWVvdXQ6IGNkay5EdXJhdGlvbik6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICAodGhpcy5ub2RlLmRlZmF1bHRDaGlsZCBhcyBsYW1iZGEuQ2ZuRnVuY3Rpb24pLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ1RpbWVvdXQnLCB0aW1lb3V0LnRvU2Vjb25kcygpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG59Il19
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL2Z1bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBT3FCO0FBRXJCLHVEQUFpRDtBQWtHakQsTUFBYSxjQUFlLFNBQVEsK0JBQVksQ0FBQyxjQUFjO0lBRTdELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQVUsS0FBMEI7O1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLLENBQUMsYUFBYTtZQUN0QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztZQUM1QixRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxNQUFBLEtBQUssQ0FBQyxhQUFhLDBDQUFFLFFBQVE7Z0JBQ2hDLGVBQWUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2xELE1BQU0sRUFBRTtvQkFDTixHQUFHLE1BQUEsTUFBQSxLQUFLLENBQUMsYUFBYSwwQ0FBRSxRQUFRLDBDQUFFLE1BQU07b0JBQ3hDLE9BQU8sRUFBRSxNQUFNO2lCQUNoQjthQUNGO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLEdBQUcsTUFBQSxLQUFLLENBQUMsYUFBYSwwQ0FBRSxXQUFXO2dCQUNuQyxHQUFHLEtBQUssQ0FBQyxTQUFTLElBQUk7b0JBQ3BCLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUztpQkFDdkI7Z0JBQ0QsR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJO29CQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTO2lCQUM3QjtnQkFDRCxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUk7b0JBQ2QsY0FBYyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUztpQkFDcEM7Z0JBQ0QsR0FBRyxDQUFBLE1BQUEsS0FBSyxDQUFDLEdB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QUFJLHFCQUFHLENBQUMsZUFBZSxDQUFDO1lBQy9ELE9BQU8sRUFBRTtnQkFDUCx1Q0FBdUM7Z0JBQ3ZDLGlDQUFpQztnQkFDakMsc0NBQXNDO2dCQUN0Qyw2QkFBNkI7Z0JBQzdCLDZCQUE2QjthQUM5QjtZQUNELFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztTQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFxQjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQW1DLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUVGO0FBdkpELHdDQXVKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGF3c19keW5hbW9kYiBhcyBkeW5hbW9kYixcbiAgYXdzX3MzIGFzIHMzLFxuICBhd3NfaWFtIGFzIGlhbSxcbiAgYXdzX2NvZ25pdG8gYXMgY29nbml0byxcbiAgYXdzX2xhbWJkYSBhcyBsYW1iZGEsXG4gIGF3c19sYW1iZGFfbm9kZWpzIGFzIGxhbWJkYU5vZGVqcyxcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUp3dEF1dGhlbnRpY2F0aW9uIH0gZnJvbSAnLi9hdXRoZW50aWNhdGlvbic7XG5cbmV4cG9ydCB0eXBlIExhbWJkYU9wdGlvbnMgPSBPbWl0PGxhbWJkYU5vZGVqcy5Ob2RlanNGdW5jdGlvblByb3BzLCAnZW50cnknIHwgJ2hhbmRsZXInIHwgJ2Rlc2NyaXB0aW9uJz5cblxuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFUcmFjaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBY3RpdmF0ZSB0cmFjaW5nIHdpdGggWC1SYXlcbiAgICpcbiAgICogQGRlZmF1bHQgbGFtYmRhLlRyYWNpbmcuRElTQUJMRURcbiAgICovXG4gIHhSYXlUcmFjaW5nPzogbGFtYmRhLlRyYWNpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBEZXBsb3ltZW50IHN0YWdlIChlLmcuIGRldilcbiAgICovXG4gIHN0YWdlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogZW50cnkgZmlsZSBuYW1lXG4gICAqL1xuICBlbnRyeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBuYW1lIG9mIHRoZSBleHBvcnRlZCBoYW5kbGVyIGZ1bmN0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGhhbmRsZXJcbiAgICovXG4gIGhhbmRsZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGRlc2NyaXB0aW9uIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEeW5hbW9EQiB0aGF0IGlzIHVzZWQgYXMgZGF0YXN0b3JlXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gd2lsbCBoYXZlIHJlYWQgYWNjZXNzIHRvIHRoaXMgdGFibGUgYXV0b21hdGljYWxseVxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGFibGUgaXMgYXZhaWxhYmxlIGFzIHByb2Nlc3MuZW52LlRBQkxFXG4gICAqL1xuICB0YWJsZT86IGR5bmFtb2RiLklUYWJsZTtcblxuICAvKipcbiAgICogQWN0aXZhdGUgd3JpdGUgcGVybWlzc2lvbnMgdG8gdGhlIER5bmFtb0RCIHRhYmxlXG4gICAqL1xuICB0YWJsZVdyaXRlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvZ25pdG8gdXNlciBwb29sXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwb29sIGlzIGF2YWlsYWJsZSBhcyBwcm9jZXNzLmVudi5VU0VSX1BPT0xfSURcbiAgICovXG4gIHVzZXJQb29sPzogY29nbml0by5JVXNlclBvb2w7XG5cbiAgLyoqXG4gICAqIEp3dEF1dGhlbnRpY2F0aW9uIHNldHRpbmdzXG4gICAqL1xuICBqd3Q/IDogSUp3dEF1dGhlbnRpY2F0aW9uO1xuXG4gIC8qKlxuICAgKiBCdWNrZXQgdGhhdCBpcyB1c2VkIGZvciBhc3NldHMgYW5kIHB1Ymxpc2hlZCB1c2luZyB0aGUgYXNzZXQgQ0ROXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBidWNrZXQgaXMgYXZhaWxhYmxlIGFzIHByb2Nlc3MuZW52LkFTU0VUX0JVQ0tFVFxuICAgKi9cbiAgYXNzZXRCdWNrZXQ/OiBzMy5CdWNrZXQ7XG5cbiAgLyoqXG4gICAqIEZ1bGx5IHF1YWxpZmllZCBkb21haW4gbmFtZSBvZiB0aGUgYXNzZXQgQ0ROXG4gICAqIEl0IGlzIGF2YWlsYWJsZSBhcyBwcm9jZXNzLmVudi5BU1NFVF9ET01BSU5fTkFNRVxuICAgKi9cbiAgYXNzZXREb21haW5OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhlIEFXUy1TREsgYmUgcGFja2FnZWQgd2l0aCB0aGUgTGFtYmRhIGNvZGUgb3IgZXhjbHVkZWRcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2UgKGV4Y2x1ZGUgU0RLIGFuZCB1c2UgcnVudGltZSBwcm92aWRlZCBvbmUpXG4gICAqL1xuICBpbmNsdWRlU0RLPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogYWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgb2YgdGhlIExhbWJkYSBmdW5jdGlvblxuICAgKi9cbiAgYWRkaXRpb25hbEVudj86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIHVuZGVybHlpbmcgTGFtYmRhIGZ1bmN0aW9uIGNvbnN0cnVjdFxuICAgKi9cbiAgbGFtYmRhT3B0aW9ucz86IExhbWJkYU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRyYWNpbmcgY29uZmlnXG4gICAqL1xuICBsYW1iZGFUcmFjaW5nPzogTGFtYmRhVHJhY2luZ09wdGlvbnM7XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGFGdW5jdGlvbiBleHRlbmRzIGxhbWJkYU5vZGVqcy5Ob2RlanNGdW5jdGlvbiB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJpdmF0ZSBwcm9wczogTGFtYmRhRnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMubGFtYmRhT3B0aW9ucyxcbiAgICAgIGVudHJ5OiBwcm9wcy5lbnRyeSxcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICBidW5kbGluZzoge1xuICAgICAgICAuLi5wcm9wcy5sYW1iZGFPcHRpb25zPy5idW5kbGluZyxcbiAgICAgICAgZXh0ZXJuYWxNb2R1bGVzOiBwcm9wcy5pbmNsdWRlU0RLID8gW10gOiB1bmRlZmluZWQsXG4gICAgICAgIGxvYWRlcjoge1xuICAgICAgICAgIC4uLnByb3BzLmxhbWJkYU9wdGlvbnM/LmJ1bmRsaW5nPy5sb2FkZXIsXG4gICAgICAgICAgJy55YW1sJzogJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIC4uLnByb3BzLmxhbWJkYU9wdGlvbnM/LmVudmlyb25tZW50LFxuICAgICAgICAuLi5wcm9wcy5zdGFnZU5hbWUgJiYge1xuICAgICAgICAgIFNUQUdFOiBwcm9wcy5zdGFnZU5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLnRhYmxlICYmIHtcbiAgICAgICAgICBUQUJMRTogcHJvcHMudGFibGUudGFibGVOYW1lLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy5qd3QgJiYge1xuICAgICAgICAgIEpXVF9JU1NVRVJfVVJMOiBwcm9wcy5qd3QuaXNzdWVyVXJsLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy5qd3Q/Lmp3a3NVcmwgJiYge1xuICAgICAgICAgIEpXVF9KV0tTX1VSTDogcHJvcHMuand0Lmp3a3NVcmwsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLmp3dD8uYXVkaWVuY2UgJiYge1xuICAgICAgICAgIEpXVF9BVURJRU5DRV9VUkw6IHByb3BzLmp3dC5hdWRpZW5jZS5qb2luKCd8fCcpLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy51c2VyUG9vbCAmJiB7XG4gICAgICAgICAgVVNFUl9QT09MX0lEOiBwcm9wcy51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy5hc3NldEJ1Y2tldCAmJiB7XG4gICAgICAgICAgQVNTRVRfQlVDS0VUOiBwcm9wcy5hc3NldEJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy5hc3NldERvbWFpbk5hbWUgJiYge1xuICAgICAgICAgIEFTU0VUX0RPTUFJTl9OQU1FOiBwcm9wcy5hc3NldERvbWFpbk5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnByb3BzLmFkZGl0aW9uYWxFbnYsXG4gICAgICB9LFxuICAgICAgaGFuZGxlcjogcHJvcHMuaGFuZGxlciA/PyAnaGFuZGxlcicsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICB0cmFjaW5nOiBwcm9wcy5sYW1iZGFUcmFjaW5nPy54UmF5VHJhY2luZyxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy50YWJsZSkge1xuICAgICAgaWYgKHByb3BzLnRhYmxlV3JpdGVzID8/IHRydWUpIHtcbiAgICAgICAgcHJvcHMudGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKHRoaXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvcHMudGFibGUuZ3JhbnRSZWFkRGF0YSh0aGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0VGFibGUodGFibGU6IGR5bmFtb2RiLklUYWJsZSwgdGFibGVXcml0ZXM/OiBib29sZWFuKTogTGFtYmRhRnVuY3Rpb24ge1xuICAgIHRoaXMucHJvcHMudGFibGUgPSB0YWJsZTtcbiAgICB0aGlzLnByb3BzLnRhYmxlV3JpdGVzID0gdGFibGVXcml0ZXM7XG5cbiAgICB0aGlzLmFkZEVudmlyb25tZW50KCdUQUJMRScsIHRhYmxlLnRhYmxlTmFtZSk7XG4gICAgaWYgKHRhYmxlV3JpdGVzID8/IHRydWUpIHtcbiAgICAgIHRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YSh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGFibGUuZ3JhbnRSZWFkRGF0YSh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBzZXRVc2VyUG9vbCh1c2VyUG9vbDogY29nbml0by5JVXNlclBvb2wpOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgdGhpcy5wcm9wcy51c2VyUG9vbCA9IHVzZXJQb29sO1xuICAgIHRoaXMuYWRkRW52aXJvbm1lbnQoJ1VTRVJfUE9PTF9JRCcsIHVzZXJQb29sLnVzZXJQb29sSWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdyYW50VGFibGVXcml0ZSgpOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLnRhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHRhYmxlIGNvbmZpZ3VyZWQnKTtcbiAgICB9XG4gICAgdGhpcy5wcm9wcy50YWJsZS5ncmFudFJlYWRXcml0ZURhdGEodGhpcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRTZW5kRW1haWxzKCk6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ3NlczpTZW5kRW1haWwnLFxuICAgICAgICAnc2VzOlNlbmRUZW1wbGF0ZWRFbWFpbCcsXG4gICAgICAgICdzZXM6U2VuZEJ1bGtUZW1wbGF0ZWRFbWFpbCcsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRVcGxvYWRBc3NldHMoKTogTGFtYmRhRnVuY3Rpb24ge1xuICAgIGlmICghdGhpcy5wcm9wcy5hc3NldEJ1Y2tldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBhc3NldCBidWNrZXQgY29uZmlndXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLnByb3BzLmFzc2V0QnVja2V0LmdyYW50UHV0KHRoaXMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdyYW50RGVsZXRlQXNzZXQoKTogTGFtYmRhRnVuY3Rpb24ge1xuICAgIGlmICghdGhpcy5wcm9wcy5hc3NldEJ1Y2tldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBhc3NldCBidWNrZXQgY29uZmlndXJlZCcpO1xuICAgIH1cbiAgICB0aGlzLnByb3BzLmFzc2V0QnVja2V0LmdyYW50RGVsZXRlKHRoaXMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdyYW50VXNlcnBvb2xSZWFkKCk6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICBpZiAoIXRoaXMucHJvcHMudXNlclBvb2wpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdXNlciBwb29sIGNvbmZpZ3VyZWQnKTtcbiAgICB9XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbC5hZGRUb1ByaW5jaXBhbFBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdjb2duaXRvLWlkcDpMaXN0VXNlcnMnLFxuICAgICAgICAnY29nbml0by1pZHA6QWRtaW5HZXRVc2VyJyxcbiAgICAgICAgJ2NvZ25pdG8taWRwOkFkbWluTGlzdEdyb3Vwc0ZvclVzZXInLFxuICAgICAgXSxcbiAgICAgIHJlc291cmNlczogW3RoaXMucHJvcHMudXNlclBvb2wudXNlclBvb2xBcm5dLFxuICAgIH0pKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBncmFudFVzZXJwb29sUmVhZFdyaXRlKCk6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICBpZiAoIXRoaXMucHJvcHMudXNlclBvb2wpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdXNlciBwb29sIGNvbmZpZ3VyZWQnKTtcbiAgICB9XG4gICAgdGhpcy5ncmFudFVzZXJwb29sUmVhZCgpO1xuICAgIHRoaXMuZ3JhbnRQcmluY2lwYWwuYWRkVG9QcmluY2lwYWxQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnY29nbml0by1pZHA6QWRtaW5VcGRhdGVVc2VyQXR0cmlidXRlcycsXG4gICAgICAgICdjb2duaXRvLWlkcDpBZG1pbkFkZFVzZXJUb0dyb3VwJyxcbiAgICAgICAgJ2NvZ25pdG8taWRwOkFkbWluUmVtb3ZlVXNlckZyb21Hcm91cCcsXG4gICAgICAgICdjb2duaXRvLWlkcDpBZG1pbkNyZWF0ZVVzZXInLFxuICAgICAgICAnY29nbml0by1pZHA6QWRtaW5EZWxldGVVc2VyJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFt0aGlzLnByb3BzLnVzZXJQb29sLnVzZXJQb29sQXJuXSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgc2V0VGltZW91dCh0aW1lb3V0OiBjZGsuRHVyYXRpb24pOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgKHRoaXMubm9kZS5kZWZhdWx0Q2hpbGQgYXMgbGFtYmRhLkNmbkZ1bmN0aW9uKS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdUaW1lb3V0JywgdGltZW91dC50b1NlY29uZHMoKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxufSJdfQ==
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
export * from './asset-cdn';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './authentication';
|
|
3
|
+
export * from './base-api';
|
|
3
4
|
export * from './func';
|
|
4
|
-
export * from './
|
|
5
|
-
export * from './graphql-api';
|
|
6
|
-
export * from './http-api';
|
|
7
|
-
export * from './monitoring';
|
|
5
|
+
export * from './rest-api';
|
|
8
6
|
export * from './table';
|
|
9
|
-
export * from './
|
|
7
|
+
export * from './workflow';
|
package/lib/constructs/index.js
CHANGED
|
@@ -15,12 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./asset-cdn"), exports);
|
|
18
|
-
__exportStar(require("./
|
|
18
|
+
__exportStar(require("./authentication"), exports);
|
|
19
|
+
__exportStar(require("./base-api"), exports);
|
|
19
20
|
__exportStar(require("./func"), exports);
|
|
20
|
-
__exportStar(require("./
|
|
21
|
-
__exportStar(require("./graphql-api"), exports);
|
|
22
|
-
__exportStar(require("./http-api"), exports);
|
|
23
|
-
__exportStar(require("./monitoring"), exports);
|
|
21
|
+
__exportStar(require("./rest-api"), exports);
|
|
24
22
|
__exportStar(require("./table"), exports);
|
|
25
|
-
__exportStar(require("./
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
__exportStar(require("./workflow"), exports);
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCO0FBQzVCLG1EQUFpQztBQUNqQyw2Q0FBMkI7QUFDM0IseUNBQXVCO0FBQ3ZCLDZDQUEyQjtBQUMzQiwwQ0FBd0I7QUFDeEIsNkNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hc3NldC1jZG4nO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoZW50aWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZnVuYyc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc3QtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi93b3JrZmxvdyc7Il19
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { aws_apigateway } from 'aws-cdk-lib';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
import { OpenAPI3, OperationObject } from 'openapi-typescript';
|
|
4
|
+
import { BaseApi, BaseApiProps } from './base-api';
|
|
5
|
+
import { LambdaFunction, LambdaOptions } from './func';
|
|
6
|
+
export interface RestApiProps<OPS> extends BaseApiProps {
|
|
7
|
+
/**
|
|
8
|
+
* Domain name of the API (e.g. example.com)
|
|
9
|
+
*
|
|
10
|
+
* @default - No custom domain is configured
|
|
11
|
+
*/
|
|
12
|
+
domainName?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Hostname of the API if a domain name is specified
|
|
15
|
+
*
|
|
16
|
+
* @default api
|
|
17
|
+
*/
|
|
18
|
+
apiHostname?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Generate routes for all endpoints configured in the openapi.yaml file
|
|
21
|
+
*
|
|
22
|
+
* @default true
|
|
23
|
+
*/
|
|
24
|
+
autoGenerateRoutes?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* custom options for the created HttpApi
|
|
27
|
+
*
|
|
28
|
+
* @default -
|
|
29
|
+
*/
|
|
30
|
+
restApiProps?: aws_apigateway.RestApiBaseProps;
|
|
31
|
+
/**
|
|
32
|
+
* additional options for the underlying Lambda function construct per operationId
|
|
33
|
+
*
|
|
34
|
+
* @default -
|
|
35
|
+
*/
|
|
36
|
+
lambdaOptionsByOperation?: {
|
|
37
|
+
[operationId in keyof OPS]?: LambdaOptions;
|
|
38
|
+
};
|
|
39
|
+
definitionFileName: string;
|
|
40
|
+
}
|
|
41
|
+
export declare class RestApi<PATHS, OPS> extends BaseApi {
|
|
42
|
+
private props;
|
|
43
|
+
readonly api: aws_apigateway.SpecRestApi;
|
|
44
|
+
readonly apiSpec: OpenAPI3;
|
|
45
|
+
private _functions;
|
|
46
|
+
constructor(scope: Construct, id: string, props: RestApiProps<OPS>);
|
|
47
|
+
protected cleanupSpec(spec: {
|
|
48
|
+
[key: string]: any;
|
|
49
|
+
}): {
|
|
50
|
+
[key: string]: any;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* return the generated Lambda function for the specified API operation
|
|
54
|
+
*/
|
|
55
|
+
getFunctionForOperation(operationId: keyof OPS): LambdaFunction;
|
|
56
|
+
/**
|
|
57
|
+
* return a list of all generated Lambda functions
|
|
58
|
+
*/
|
|
59
|
+
getFunctions(): LambdaFunction[];
|
|
60
|
+
addRestResource<P extends keyof PATHS>(path: P, method: keyof PATHS[P]): LambdaFunction | undefined;
|
|
61
|
+
addCustomRestResource(operation: OperationObject, method: string, description: string, additionalLambdaOptions?: LambdaOptions): LambdaFunction | undefined;
|
|
62
|
+
private tableWriteAccessForMethod;
|
|
63
|
+
/**
|
|
64
|
+
* AWS does not properly apply the 'security' option to every single path-method.
|
|
65
|
+
* According to documentation, global security gets applied, if there is no security
|
|
66
|
+
* set for the particular path-method. If there is any, even empty, it will get precedence.
|
|
67
|
+
* THIS DOES NOT HAPPEN ON AWS. IT JUST ALWAYS USES THE GLOBAL SETTING!
|
|
68
|
+
*
|
|
69
|
+
* 'security applies [...] schemes globally to all API operations, unless overridden on the operation level'
|
|
70
|
+
* @see https://swagger.io/docs/specification/authentication/
|
|
71
|
+
*/
|
|
72
|
+
protected patchSecurity(spec: OpenAPI3): void;
|
|
73
|
+
}
|