eoapi-cdk 8.3.2 → 9.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/.jsii +546 -194
- package/lib/bastion-host/index.js +1 -1
- package/lib/database/index.js +1 -1
- package/lib/ingestor-api/index.js +1 -1
- package/lib/lambda-api-gateway/index.d.ts +23 -0
- package/lib/lambda-api-gateway/index.js +24 -0
- package/lib/stac-api/index.d.ts +35 -10
- package/lib/stac-api/index.js +32 -21
- package/lib/stac-browser/index.js +1 -1
- package/lib/stac-loader/index.js +2 -2
- package/lib/stactools-item-generator/index.js +1 -1
- package/lib/stactools-item-generator/runtime/Dockerfile +2 -1
- package/lib/stactools-item-generator/runtime/src/stactools_item_generator/item.py +1 -1
- package/lib/tipg-api/index.d.ts +34 -11
- package/lib/tipg-api/index.js +34 -24
- package/lib/titiler-pgstac-api/index.d.ts +34 -11
- package/lib/titiler-pgstac-api/index.js +54 -39
- package/package.json +1 -1
package/lib/tipg-api/index.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { aws_apigatewayv2 as apigatewayv2, aws_ec2 as ec2, aws_lambda as lambda, aws_rds as rds, aws_secretsmanager as secretsmanager } from "aws-cdk-lib";
|
|
2
2
|
import { Construct } from "constructs";
|
|
3
3
|
import { CustomLambdaFunctionProps } from "../utils";
|
|
4
|
-
export declare class
|
|
5
|
-
readonly
|
|
6
|
-
|
|
7
|
-
constructor(scope: Construct, id: string, props: TiPgApiLambdaProps);
|
|
4
|
+
export declare class TiPgApiLambdaRuntime extends Construct {
|
|
5
|
+
readonly lambdaFunction: lambda.Function;
|
|
6
|
+
constructor(scope: Construct, id: string, props: TiPgApiLambdaRuntimeProps);
|
|
8
7
|
}
|
|
9
|
-
export interface
|
|
8
|
+
export interface TiPgApiLambdaRuntimeProps {
|
|
10
9
|
/**
|
|
11
10
|
* VPC into which the lambda should be deployed.
|
|
12
11
|
*/
|
|
@@ -28,16 +27,40 @@ export interface TiPgApiLambdaProps {
|
|
|
28
27
|
*/
|
|
29
28
|
readonly apiEnv?: Record<string, string>;
|
|
30
29
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
30
|
+
* Can be used to override the default lambda function properties.
|
|
31
|
+
*
|
|
32
|
+
* @default - defined in the construct.
|
|
33
|
+
*/
|
|
34
|
+
readonly lambdaFunctionOptions?: CustomLambdaFunctionProps;
|
|
35
|
+
}
|
|
36
|
+
export declare class TiPgApiLambda extends Construct {
|
|
37
|
+
/**
|
|
38
|
+
* URL for the TiPg API.
|
|
39
|
+
*/
|
|
40
|
+
readonly url: string;
|
|
41
|
+
/**
|
|
42
|
+
* Lambda function for the TiPg API.
|
|
43
|
+
*/
|
|
44
|
+
readonly lambdaFunction: lambda.Function;
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated - use lambdaFunction instead
|
|
47
|
+
*/
|
|
48
|
+
tiPgLambdaFunction: lambda.Function;
|
|
49
|
+
constructor(scope: Construct, id: string, props: TiPgApiLambdaProps);
|
|
50
|
+
}
|
|
51
|
+
export interface TiPgApiLambdaProps extends TiPgApiLambdaRuntimeProps {
|
|
52
|
+
/**
|
|
53
|
+
* Domain Name for the TiPg API. If defined, will create the domain name and integrate it with the TiPg API.
|
|
33
54
|
*
|
|
34
55
|
* @default - undefined
|
|
35
56
|
*/
|
|
36
|
-
readonly
|
|
57
|
+
readonly domainName?: apigatewayv2.IDomainName;
|
|
37
58
|
/**
|
|
38
|
-
*
|
|
59
|
+
* Custom Domain Name for tipg API. If defined, will create the
|
|
60
|
+
* domain name and integrate it with the tipg API.
|
|
39
61
|
*
|
|
40
|
-
* @
|
|
62
|
+
* @deprecated Use 'domainName' instead.
|
|
63
|
+
* @default - undefined
|
|
41
64
|
*/
|
|
42
|
-
readonly
|
|
65
|
+
readonly tipgApiDomainName?: apigatewayv2.IDomainName;
|
|
43
66
|
}
|
package/lib/tipg-api/index.js
CHANGED
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
2
|
+
var _a, _b;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.TiPgApiLambda = void 0;
|
|
4
|
+
exports.TiPgApiLambda = exports.TiPgApiLambdaRuntime = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
7
|
const constructs_1 = require("constructs");
|
|
8
|
+
const lambda_api_gateway_1 = require("../lambda-api-gateway");
|
|
8
9
|
const path = require("path");
|
|
9
|
-
class
|
|
10
|
+
class TiPgApiLambdaRuntime extends constructs_1.Construct {
|
|
10
11
|
constructor(scope, id, props) {
|
|
11
12
|
super(scope, id);
|
|
12
|
-
this.
|
|
13
|
+
this.lambdaFunction = new aws_cdk_lib_1.aws_lambda.Function(this, "lambda", {
|
|
13
14
|
// defaults
|
|
14
15
|
runtime: aws_cdk_lib_1.aws_lambda.Runtime.PYTHON_3_11,
|
|
15
16
|
handler: "handler.handler",
|
|
16
17
|
memorySize: 1024,
|
|
17
18
|
logRetention: aws_cdk_lib_1.aws_logs.RetentionDays.ONE_WEEK,
|
|
18
19
|
timeout: aws_cdk_lib_1.Duration.seconds(30),
|
|
19
|
-
code: aws_cdk_lib_1.aws_lambda.Code.fromDockerBuild(path.join(__dirname,
|
|
20
|
+
code: aws_cdk_lib_1.aws_lambda.Code.fromDockerBuild(path.join(__dirname, ".."), {
|
|
20
21
|
file: "tipg-api/runtime/Dockerfile",
|
|
21
|
-
buildArgs: { PYTHON_VERSION:
|
|
22
|
+
buildArgs: { PYTHON_VERSION: "3.11" },
|
|
22
23
|
}),
|
|
23
24
|
vpc: props.vpc,
|
|
24
25
|
vpcSubnets: props.subnetSelection,
|
|
@@ -30,25 +31,34 @@ class TiPgApiLambda extends constructs_1.Construct {
|
|
|
30
31
|
...props.apiEnv,
|
|
31
32
|
},
|
|
32
33
|
// overwrites defaults with user-provided configurable properties
|
|
33
|
-
...props.lambdaFunctionOptions
|
|
34
|
+
...props.lambdaFunctionOptions,
|
|
34
35
|
});
|
|
35
|
-
props.dbSecret.grantRead(this.
|
|
36
|
+
props.dbSecret.grantRead(this.lambdaFunction);
|
|
36
37
|
if (props.vpc) {
|
|
37
|
-
this.
|
|
38
|
+
this.lambdaFunction.connections.allowTo(props.db, aws_cdk_lib_1.aws_ec2.Port.tcp(5432), "allow connections from tipg");
|
|
38
39
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.TiPgApiLambdaRuntime = TiPgApiLambdaRuntime;
|
|
43
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
+
TiPgApiLambdaRuntime[_a] = { fqn: "eoapi-cdk.TiPgApiLambdaRuntime", version: "9.0.0" };
|
|
45
|
+
class TiPgApiLambda extends constructs_1.Construct {
|
|
46
|
+
constructor(scope, id, props) {
|
|
47
|
+
super(scope, id);
|
|
48
|
+
const runtime = new TiPgApiLambdaRuntime(this, "runtime", {
|
|
49
|
+
vpc: props.vpc,
|
|
50
|
+
subnetSelection: props.subnetSelection,
|
|
51
|
+
db: props.db,
|
|
52
|
+
dbSecret: props.dbSecret,
|
|
53
|
+
apiEnv: props.apiEnv,
|
|
54
|
+
lambdaFunctionOptions: props.lambdaFunctionOptions,
|
|
50
55
|
});
|
|
51
|
-
this.
|
|
56
|
+
this.tiPgLambdaFunction = this.lambdaFunction = runtime.lambdaFunction;
|
|
57
|
+
const { api } = new lambda_api_gateway_1.LambdaApiGateway(this, "api", {
|
|
58
|
+
lambdaFunction: runtime.lambdaFunction,
|
|
59
|
+
domainName: props.domainName ?? props.tipgApiDomainName,
|
|
60
|
+
});
|
|
61
|
+
this.url = api.url;
|
|
52
62
|
new aws_cdk_lib_1.CfnOutput(this, "tipg-api-output", {
|
|
53
63
|
exportName: `${aws_cdk_lib_1.Stack.of(this).stackName}-tip-url`,
|
|
54
64
|
value: this.url,
|
|
@@ -56,6 +66,6 @@ class TiPgApiLambda extends constructs_1.Construct {
|
|
|
56
66
|
}
|
|
57
67
|
}
|
|
58
68
|
exports.TiPgApiLambda = TiPgApiLambda;
|
|
59
|
-
|
|
60
|
-
TiPgApiLambda[
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
_b = JSII_RTTI_SYMBOL_1;
|
|
70
|
+
TiPgApiLambda[_b] = { fqn: "eoapi-cdk.TiPgApiLambda", version: "9.0.0" };
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVVxQjtBQUNyQiwyQ0FBdUM7QUFFdkMsOERBQXlEO0FBQ3pELDZCQUE2QjtBQUU3QixNQUFhLG9CQUFxQixTQUFRLHNCQUFTO0lBR2pELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0M7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksd0JBQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUN4RCxXQUFXO1lBQ1gsT0FBTyxFQUFFLHdCQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDbkMsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixVQUFVLEVBQUUsSUFBSTtZQUNoQixZQUFZLEVBQUUsc0JBQUksQ0FBQyxhQUFhLENBQUMsUUFBUTtZQUN6QyxPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksRUFBRSx3QkFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQzVELElBQUksRUFBRSw2QkFBNkI7Z0JBQ25DLFNBQVMsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUU7YUFDdEMsQ0FBQztZQUNGLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLFVBQVUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUNqQyxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLFdBQVcsRUFBRTtnQkFDWCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVM7Z0JBQzNDLGdCQUFnQixFQUFFLEdBQUc7Z0JBQ3JCLGdCQUFnQixFQUFFLEdBQUc7Z0JBQ3JCLEdBQUcsS0FBSyxDQUFDLE1BQU07YUFDaEI7WUFDRCxpRUFBaUU7WUFDakUsR0FBRyxLQUFLLENBQUMscUJBQXFCO1NBQy9CLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU5QyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FDckMsS0FBSyxDQUFDLEVBQUUsRUFDUixxQkFBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQ2xCLDZCQUE2QixDQUM5QixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7O0FBdkNILG9EQXdDQzs7O0FBb0NELE1BQWEsYUFBYyxTQUFRLHNCQUFTO0lBZ0IxQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3hELEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDWixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUI7U0FDbkQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUV2RSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxxQ0FBZ0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQ2hELGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztZQUN0QyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsaUJBQWlCO1NBQ3hELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUksQ0FBQztRQUVwQixJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQ3JDLFVBQVUsRUFBRSxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsVUFBVTtZQUNqRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF4Q0gsc0NBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXdzX2FwaWdhdGV3YXl2MiBhcyBhcGlnYXRld2F5djIsXG4gIGF3c19lYzIgYXMgZWMyLFxuICBhd3NfbGFtYmRhIGFzIGxhbWJkYSxcbiAgYXdzX2xvZ3MgYXMgbG9ncyxcbiAgYXdzX3JkcyBhcyByZHMsXG4gIGF3c19zZWNyZXRzbWFuYWdlciBhcyBzZWNyZXRzbWFuYWdlcixcbiAgRHVyYXRpb24sXG4gIFN0YWNrLFxuICBDZm5PdXRwdXQsXG59IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEN1c3RvbUxhbWJkYUZ1bmN0aW9uUHJvcHMgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IExhbWJkYUFwaUdhdGV3YXkgfSBmcm9tIFwiLi4vbGFtYmRhLWFwaS1nYXRld2F5XCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmV4cG9ydCBjbGFzcyBUaVBnQXBpTGFtYmRhUnVudGltZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLkZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUaVBnQXBpTGFtYmRhUnVudGltZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwibGFtYmRhXCIsIHtcbiAgICAgIC8vIGRlZmF1bHRzXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMSxcbiAgICAgIGhhbmRsZXI6IFwiaGFuZGxlci5oYW5kbGVyXCIsXG4gICAgICBtZW1vcnlTaXplOiAxMDI0LFxuICAgICAgbG9nUmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Eb2NrZXJCdWlsZChwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIpLCB7XG4gICAgICAgIGZpbGU6IFwidGlwZy1hcGkvcnVudGltZS9Eb2NrZXJmaWxlXCIsXG4gICAgICAgIGJ1aWxkQXJnczogeyBQWVRIT05fVkVSU0lPTjogXCIzLjExXCIgfSxcbiAgICAgIH0pLFxuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICBhbGxvd1B1YmxpY1N1Ym5ldDogdHJ1ZSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFBHU1RBQ19TRUNSRVRfQVJOOiBwcm9wcy5kYlNlY3JldC5zZWNyZXRBcm4sXG4gICAgICAgIERCX01JTl9DT05OX1NJWkU6IFwiMVwiLFxuICAgICAgICBEQl9NQVhfQ09OTl9TSVpFOiBcIjFcIixcbiAgICAgICAgLi4ucHJvcHMuYXBpRW52LFxuICAgICAgfSxcbiAgICAgIC8vIG92ZXJ3cml0ZXMgZGVmYXVsdHMgd2l0aCB1c2VyLXByb3ZpZGVkIGNvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzXG4gICAgICAuLi5wcm9wcy5sYW1iZGFGdW5jdGlvbk9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBwcm9wcy5kYlNlY3JldC5ncmFudFJlYWQodGhpcy5sYW1iZGFGdW5jdGlvbik7XG5cbiAgICBpZiAocHJvcHMudnBjKSB7XG4gICAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uLmNvbm5lY3Rpb25zLmFsbG93VG8oXG4gICAgICAgIHByb3BzLmRiLFxuICAgICAgICBlYzIuUG9ydC50Y3AoNTQzMiksXG4gICAgICAgIFwiYWxsb3cgY29ubmVjdGlvbnMgZnJvbSB0aXBnXCJcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGlQZ0FwaUxhbWJkYVJ1bnRpbWVQcm9wcyB7XG4gIC8qKlxuICAgKiBWUEMgaW50byB3aGljaCB0aGUgbGFtYmRhIHNob3VsZCBiZSBkZXBsb3llZC5cbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBSRFMgSW5zdGFuY2Ugd2l0aCBpbnN0YWxsZWQgcGdTVEFDIG9yIHBnYm91bmNlciBzZXJ2ZXIuXG4gICAqL1xuICByZWFkb25seSBkYjogcmRzLklEYXRhYmFzZUluc3RhbmNlIHwgZWMyLklJbnN0YW5jZTtcblxuICAvKipcbiAgICogU3VibmV0IGludG8gd2hpY2ggdGhlIGxhbWJkYSBzaG91bGQgYmUgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRTZWxlY3Rpb24/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBTZWNyZXQgY29udGFpbmluZyBjb25uZWN0aW9uIGluZm9ybWF0aW9uIGZvciBwZ1NUQUMgZGF0YWJhc2UuXG4gICAqL1xuICByZWFkb25seSBkYlNlY3JldDogc2VjcmV0c21hbmFnZXIuSVNlY3JldDtcblxuICAvKipcbiAgICogQ3VzdG9taXplZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2VuZCB0byB0aXRpbGVyLXBnc3RhYyBydW50aW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpRW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogQ2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbGFtYmRhIGZ1bmN0aW9uIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmaW5lZCBpbiB0aGUgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb25PcHRpb25zPzogQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcztcbn1cblxuZXhwb3J0IGNsYXNzIFRpUGdBcGlMYW1iZGEgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVVJMIGZvciB0aGUgVGlQZyBBUEkuXG4gICAqL1xuICByZWFkb25seSB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogTGFtYmRhIGZ1bmN0aW9uIGZvciB0aGUgVGlQZyBBUEkuXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLkZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCAtIHVzZSBsYW1iZGFGdW5jdGlvbiBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgdGlQZ0xhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFRpUGdBcGlMYW1iZGFQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBydW50aW1lID0gbmV3IFRpUGdBcGlMYW1iZGFSdW50aW1lKHRoaXMsIFwicnVudGltZVwiLCB7XG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIHN1Ym5ldFNlbGVjdGlvbjogcHJvcHMuc3VibmV0U2VsZWN0aW9uLFxuICAgICAgZGI6IHByb3BzLmRiLFxuICAgICAgZGJTZWNyZXQ6IHByb3BzLmRiU2VjcmV0LFxuICAgICAgYXBpRW52OiBwcm9wcy5hcGlFbnYsXG4gICAgICBsYW1iZGFGdW5jdGlvbk9wdGlvbnM6IHByb3BzLmxhbWJkYUZ1bmN0aW9uT3B0aW9ucyxcbiAgICB9KTtcbiAgICB0aGlzLnRpUGdMYW1iZGFGdW5jdGlvbiA9IHRoaXMubGFtYmRhRnVuY3Rpb24gPSBydW50aW1lLmxhbWJkYUZ1bmN0aW9uO1xuXG4gICAgY29uc3QgeyBhcGkgfSA9IG5ldyBMYW1iZGFBcGlHYXRld2F5KHRoaXMsIFwiYXBpXCIsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiBydW50aW1lLmxhbWJkYUZ1bmN0aW9uLFxuICAgICAgZG9tYWluTmFtZTogcHJvcHMuZG9tYWluTmFtZSA/PyBwcm9wcy50aXBnQXBpRG9tYWluTmFtZSxcbiAgICB9KTtcblxuICAgIHRoaXMudXJsID0gYXBpLnVybCE7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwidGlwZy1hcGktb3V0cHV0XCIsIHtcbiAgICAgIGV4cG9ydE5hbWU6IGAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX0tdGlwLXVybGAsXG4gICAgICB2YWx1ZTogdGhpcy51cmwsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaVBnQXBpTGFtYmRhUHJvcHMgZXh0ZW5kcyBUaVBnQXBpTGFtYmRhUnVudGltZVByb3BzIHtcbiAgLyoqXG4gICAqIERvbWFpbiBOYW1lIGZvciB0aGUgVGlQZyBBUEkuIElmIGRlZmluZWQsIHdpbGwgY3JlYXRlIHRoZSBkb21haW4gbmFtZSBhbmQgaW50ZWdyYXRlIGl0IHdpdGggdGhlIFRpUGcgQVBJLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZT86IGFwaWdhdGV3YXl2Mi5JRG9tYWluTmFtZTtcblxuICAvKipcbiAgICogQ3VzdG9tIERvbWFpbiBOYW1lIGZvciB0aXBnIEFQSS4gSWYgZGVmaW5lZCwgd2lsbCBjcmVhdGUgdGhlXG4gICAqIGRvbWFpbiBuYW1lIGFuZCBpbnRlZ3JhdGUgaXQgd2l0aCB0aGUgdGlwZyBBUEkuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSAnZG9tYWluTmFtZScgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHRpcGdBcGlEb21haW5OYW1lPzogYXBpZ2F0ZXdheXYyLklEb21haW5OYW1lO1xufVxuIl19
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { aws_apigatewayv2 as apigatewayv2, aws_ec2 as ec2, aws_rds as rds, aws_lambda as lambda, aws_secretsmanager as secretsmanager } from "aws-cdk-lib";
|
|
2
2
|
import { Construct } from "constructs";
|
|
3
3
|
import { CustomLambdaFunctionProps } from "../utils";
|
|
4
|
-
export declare class
|
|
5
|
-
readonly
|
|
6
|
-
|
|
7
|
-
constructor(scope: Construct, id: string, props: TitilerPgStacApiLambdaProps);
|
|
4
|
+
export declare class TitilerPgstacApiLambdaRuntime extends Construct {
|
|
5
|
+
readonly lambdaFunction: lambda.Function;
|
|
6
|
+
constructor(scope: Construct, id: string, props: TitilerPgstacApiLambdaRuntimeProps);
|
|
8
7
|
}
|
|
9
|
-
export interface
|
|
8
|
+
export interface TitilerPgstacApiLambdaRuntimeProps {
|
|
10
9
|
/**
|
|
11
10
|
* VPC into which the lambda should be deployed.
|
|
12
11
|
*/
|
|
@@ -26,22 +25,46 @@ export interface TitilerPgStacApiLambdaProps {
|
|
|
26
25
|
/**
|
|
27
26
|
* Customized environment variables to send to titiler-pgstac runtime. These will be merged with `defaultTitilerPgstacEnv`.
|
|
28
27
|
* The database secret arn is automatically added to the environment variables at deployment.
|
|
29
|
-
|
|
28
|
+
*/
|
|
30
29
|
readonly apiEnv?: Record<string, string>;
|
|
31
30
|
/**
|
|
32
31
|
* list of buckets the lambda will be granted access to.
|
|
33
32
|
*/
|
|
34
33
|
readonly buckets?: string[];
|
|
35
34
|
/**
|
|
36
|
-
*
|
|
35
|
+
* Can be used to override the default lambda function properties.
|
|
36
|
+
*
|
|
37
|
+
* @default - defined in the construct.
|
|
38
|
+
*/
|
|
39
|
+
readonly lambdaFunctionOptions?: CustomLambdaFunctionProps;
|
|
40
|
+
}
|
|
41
|
+
export declare class TitilerPgstacApiLambda extends Construct {
|
|
42
|
+
/**
|
|
43
|
+
* URL for the Titiler Pgstac API.
|
|
44
|
+
*/
|
|
45
|
+
readonly url: string;
|
|
46
|
+
/**
|
|
47
|
+
* Lambda function for the Titiler Pgstac API.
|
|
48
|
+
*/
|
|
49
|
+
readonly lambdaFunction: lambda.Function;
|
|
50
|
+
/**
|
|
51
|
+
* @deprecated - use lambdaFunction instead
|
|
52
|
+
*/
|
|
53
|
+
titilerPgstacLambdaFunction: lambda.Function;
|
|
54
|
+
constructor(scope: Construct, id: string, props: TitilerPgstacApiLambdaProps);
|
|
55
|
+
}
|
|
56
|
+
export interface TitilerPgstacApiLambdaProps extends TitilerPgstacApiLambdaRuntimeProps {
|
|
57
|
+
/**
|
|
58
|
+
* Domain Name for the Titiler Pgstac API. If defined, will create the domain name and integrate it with the Titiler Pgstac API.
|
|
37
59
|
*
|
|
38
60
|
* @default - undefined.
|
|
39
61
|
*/
|
|
40
|
-
readonly
|
|
62
|
+
readonly domainName?: apigatewayv2.IDomainName;
|
|
41
63
|
/**
|
|
42
|
-
*
|
|
64
|
+
* Custom Domain Name Options for Titiler Pgstac API,
|
|
43
65
|
*
|
|
44
|
-
* @
|
|
66
|
+
* @deprecated Use 'domainName' instead.
|
|
67
|
+
* @default - undefined.
|
|
45
68
|
*/
|
|
46
|
-
readonly
|
|
69
|
+
readonly titilerPgstacApiDomainName?: apigatewayv2.IDomainName;
|
|
47
70
|
}
|
|
@@ -1,74 +1,89 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
2
|
+
var _a, _b;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.TitilerPgstacApiLambda = void 0;
|
|
4
|
+
exports.TitilerPgstacApiLambda = exports.TitilerPgstacApiLambdaRuntime = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
7
|
const constructs_1 = require("constructs");
|
|
8
|
+
const lambda_api_gateway_1 = require("../lambda-api-gateway");
|
|
8
9
|
const path = require("path");
|
|
9
10
|
// default settings that can be overridden by the user-provided environment.
|
|
10
11
|
let defaultTitilerPgstacEnv = {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
CPL_VSIL_CURL_ALLOWED_EXTENSIONS: ".tif,.TIF,.tiff",
|
|
13
|
+
GDAL_CACHEMAX: "200",
|
|
14
|
+
GDAL_DISABLE_READDIR_ON_OPEN: "EMPTY_DIR",
|
|
15
|
+
GDAL_INGESTED_BYTES_AT_OPEN: "32768",
|
|
16
|
+
GDAL_HTTP_MERGE_CONSECUTIVE_RANGES: "YES",
|
|
17
|
+
GDAL_HTTP_MULTIPLEX: "YES",
|
|
18
|
+
GDAL_HTTP_VERSION: "2",
|
|
19
|
+
PYTHONWARNINGS: "ignore",
|
|
20
|
+
VSI_CACHE: "TRUE",
|
|
21
|
+
VSI_CACHE_SIZE: "5000000",
|
|
22
|
+
DB_MIN_CONN_SIZE: "1",
|
|
23
|
+
DB_MAX_CONN_SIZE: "1",
|
|
23
24
|
};
|
|
24
|
-
class
|
|
25
|
+
class TitilerPgstacApiLambdaRuntime extends constructs_1.Construct {
|
|
25
26
|
constructor(scope, id, props) {
|
|
26
27
|
super(scope, id);
|
|
27
|
-
this.
|
|
28
|
+
this.lambdaFunction = new aws_cdk_lib_1.aws_lambda.Function(this, "lambda", {
|
|
28
29
|
// defaults
|
|
29
30
|
runtime: aws_cdk_lib_1.aws_lambda.Runtime.PYTHON_3_11,
|
|
30
31
|
handler: "handler.handler",
|
|
31
32
|
memorySize: 3008,
|
|
32
33
|
logRetention: aws_cdk_lib_1.aws_logs.RetentionDays.ONE_WEEK,
|
|
33
34
|
timeout: aws_cdk_lib_1.Duration.seconds(30),
|
|
34
|
-
code: aws_cdk_lib_1.aws_lambda.Code.fromDockerBuild(path.join(__dirname,
|
|
35
|
+
code: aws_cdk_lib_1.aws_lambda.Code.fromDockerBuild(path.join(__dirname, ".."), {
|
|
35
36
|
file: "titiler-pgstac-api/runtime/Dockerfile",
|
|
36
|
-
buildArgs: { PYTHON_VERSION:
|
|
37
|
+
buildArgs: { PYTHON_VERSION: "3.11" },
|
|
37
38
|
}),
|
|
38
39
|
vpc: props.vpc,
|
|
39
40
|
vpcSubnets: props.subnetSelection,
|
|
40
41
|
allowPublicSubnet: true,
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
environment: {
|
|
43
|
+
...defaultTitilerPgstacEnv,
|
|
44
|
+
...props.apiEnv, // if user provided environment variables, merge them with the defaults.
|
|
45
|
+
PGSTAC_SECRET_ARN: props.dbSecret.secretArn,
|
|
46
|
+
},
|
|
43
47
|
// overwrites defaults with user-provided configurable properties
|
|
44
48
|
...props.lambdaFunctionOptions,
|
|
45
49
|
});
|
|
46
50
|
// grant access to buckets using addToRolePolicy
|
|
47
51
|
if (props.buckets) {
|
|
48
|
-
props.buckets.forEach(bucket => {
|
|
49
|
-
this.
|
|
52
|
+
props.buckets.forEach((bucket) => {
|
|
53
|
+
this.lambdaFunction.addToRolePolicy(new aws_cdk_lib_1.aws_iam.PolicyStatement({
|
|
50
54
|
actions: ["s3:GetObject"],
|
|
51
55
|
resources: [`arn:aws:s3:::${bucket}/*`],
|
|
52
56
|
}));
|
|
53
57
|
});
|
|
54
58
|
}
|
|
55
|
-
props.dbSecret.grantRead(this.
|
|
59
|
+
props.dbSecret.grantRead(this.lambdaFunction);
|
|
56
60
|
if (props.vpc) {
|
|
57
|
-
this.
|
|
61
|
+
this.lambdaFunction.connections.allowTo(props.db, aws_cdk_lib_1.aws_ec2.Port.tcp(5432), "allow connections from titiler");
|
|
58
62
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.TitilerPgstacApiLambdaRuntime = TitilerPgstacApiLambdaRuntime;
|
|
66
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
67
|
+
TitilerPgstacApiLambdaRuntime[_a] = { fqn: "eoapi-cdk.TitilerPgstacApiLambdaRuntime", version: "9.0.0" };
|
|
68
|
+
class TitilerPgstacApiLambda extends constructs_1.Construct {
|
|
69
|
+
constructor(scope, id, props) {
|
|
70
|
+
super(scope, id);
|
|
71
|
+
const runtime = new TitilerPgstacApiLambdaRuntime(this, "runtime", {
|
|
72
|
+
vpc: props.vpc,
|
|
73
|
+
subnetSelection: props.subnetSelection,
|
|
74
|
+
db: props.db,
|
|
75
|
+
dbSecret: props.dbSecret,
|
|
76
|
+
apiEnv: props.apiEnv,
|
|
77
|
+
buckets: props.buckets,
|
|
78
|
+
lambdaFunctionOptions: props.lambdaFunctionOptions,
|
|
70
79
|
});
|
|
71
|
-
this.
|
|
80
|
+
this.titilerPgstacLambdaFunction = this.lambdaFunction =
|
|
81
|
+
runtime.lambdaFunction;
|
|
82
|
+
const { api } = new lambda_api_gateway_1.LambdaApiGateway(this, "titlier-pgstac-api", {
|
|
83
|
+
lambdaFunction: runtime.lambdaFunction,
|
|
84
|
+
domainName: props.domainName ?? props.titilerPgstacApiDomainName,
|
|
85
|
+
});
|
|
86
|
+
this.url = api.url;
|
|
72
87
|
new aws_cdk_lib_1.CfnOutput(this, "titiler-pgstac-api-output", {
|
|
73
88
|
exportName: `${aws_cdk_lib_1.Stack.of(this).stackName}-titiler-pgstac-url`,
|
|
74
89
|
value: this.url,
|
|
@@ -76,6 +91,6 @@ class TitilerPgstacApiLambda extends constructs_1.Construct {
|
|
|
76
91
|
}
|
|
77
92
|
}
|
|
78
93
|
exports.TitilerPgstacApiLambda = TitilerPgstacApiLambda;
|
|
79
|
-
|
|
80
|
-
TitilerPgstacApiLambda[
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVlxQjtBQUNyQiwyQ0FBdUM7QUFFdkMsNkJBQTZCO0FBRTNCLDRFQUE0RTtBQUM1RSxJQUFJLHVCQUF1QixHQUEyQjtJQUNwRCxrQ0FBa0MsRUFBRSxpQkFBaUI7SUFDckQsZUFBZSxFQUFFLEtBQUs7SUFDdEIsOEJBQThCLEVBQUUsV0FBVztJQUMzQyw2QkFBNkIsRUFBRSxPQUFPO0lBQ3RDLG9DQUFvQyxFQUFFLEtBQUs7SUFDM0MscUJBQXFCLEVBQUUsS0FBSztJQUM1QixtQkFBbUIsRUFBRSxHQUFHO0lBQ3hCLGdCQUFnQixFQUFFLFFBQVE7SUFDMUIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZ0JBQWdCLEVBQUUsU0FBUztJQUMzQixrQkFBa0IsRUFBRSxHQUFHO0lBQ3ZCLGtCQUFrQixFQUFFLEdBQUc7Q0FDeEIsQ0FBQTtBQUVELE1BQWEsc0JBQXVCLFNBQVEsc0JBQVM7SUFJbkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFrQztRQUMxRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLHdCQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDckUsV0FBVztZQUNYLE9BQU8sRUFBRSx3QkFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQ25DLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsVUFBVSxFQUFFLElBQUk7WUFDaEIsWUFBWSxFQUFFLHNCQUFRLENBQUMsYUFBYSxDQUFDLFFBQVE7WUFDN0MsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLEVBQUUsd0JBQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUM1RCxJQUFJLEVBQUUsdUNBQXVDO2dCQUM3QyxTQUFTLEVBQUUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFO2FBQ3RDLENBQUM7WUFDRixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxVQUFVLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDakMsaUJBQWlCLEVBQUUsSUFBSTtZQUN2Qix3RUFBd0U7WUFDeEUsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyx1QkFBdUIsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsdUJBQXVCO1lBQ3BKLGlFQUFpRTtZQUNqRSxHQUFHLEtBQUssQ0FBQyxxQkFBcUI7U0FDL0IsQ0FBQyxDQUFDO1FBRUgsZ0RBQWdEO1FBQ2hELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsMkJBQTJCLENBQUMsZUFBZSxDQUFDLElBQUkscUJBQUcsQ0FBQyxlQUFlLENBQUM7b0JBQ3ZFLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDekIsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLE1BQU0sSUFBSSxDQUFDO2lCQUN4QyxDQUFDLENBQUMsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRTNELElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxxQkFBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztRQUN2SCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSw4QkFBWSxDQUFDLE9BQU8sQ0FDdEMsSUFBSSxFQUNKLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxxQkFBcUIsRUFDaEQ7WUFDRSxvQkFBb0IsRUFBRSxLQUFLLENBQUMsMEJBQTBCO2dCQUNwRCxDQUFDLENBQUM7b0JBQ0UsVUFBVSxFQUFFLEtBQUssQ0FBQywwQkFBMEI7aUJBQzdDO2dCQUNILENBQUMsQ0FBQyxTQUFTO1lBQ2Isa0JBQWtCLEVBQ2hCLElBQUksMkNBQXlCLENBQUMscUJBQXFCLENBQ2pELGFBQWEsRUFDYixJQUFJLENBQUMsMkJBQTJCLEVBQ2hDLEtBQUssQ0FBQywwQkFBMEI7Z0JBQzlCLENBQUMsQ0FBQztvQkFDRSxnQkFBZ0IsRUFDZCxJQUFJLDhCQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQ2pELE1BQU0sRUFDTiw4QkFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQzlCLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQ3RDLENBQ0Y7aUJBQ0o7Z0JBQ0gsQ0FBQyxDQUFDLFNBQVMsQ0FDZDtTQUNKLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUksQ0FBQztRQUV4QixJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLDJCQUEyQixFQUFFO1lBQy9DLFVBQVUsRUFBRSxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMscUJBQXFCO1lBQzVELEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDOztBQTdFSCx3REE4RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTdGFjayxcbiAgYXdzX2FwaWdhdGV3YXl2MiBhcyBhcGlnYXRld2F5djIsXG4gIGF3c19hcGlnYXRld2F5djJfaW50ZWdyYXRpb25zIGFzIGFwaWdhdGV3YXl2Ml9pbnRlZ3JhdGlvbnMsXG4gIGF3c19pYW0gYXMgaWFtLFxuICBhd3NfZWMyIGFzIGVjMixcbiAgYXdzX3JkcyBhcyByZHMsXG4gIGF3c19sYW1iZGEgYXMgbGFtYmRhLFxuICBhd3Nfc2VjcmV0c21hbmFnZXIgYXMgc2VjcmV0c21hbmFnZXIsXG4gIENmbk91dHB1dCxcbiAgRHVyYXRpb24sXG4gIGF3c19sb2dzLFxufSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG4gIC8vIGRlZmF1bHQgc2V0dGluZ3MgdGhhdCBjYW4gYmUgb3ZlcnJpZGRlbiBieSB0aGUgdXNlci1wcm92aWRlZCBlbnZpcm9ubWVudC5cbiAgbGV0IGRlZmF1bHRUaXRpbGVyUGdzdGFjRW52IDp7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgIFwiQ1BMX1ZTSUxfQ1VSTF9BTExPV0VEX0VYVEVOU0lPTlNcIjogXCIudGlmLC5USUYsLnRpZmZcIixcbiAgICBcIkdEQUxfQ0FDSEVNQVhcIjogXCIyMDBcIixcbiAgICBcIkdEQUxfRElTQUJMRV9SRUFERElSX09OX09QRU5cIjogXCJFTVBUWV9ESVJcIixcbiAgICBcIkdEQUxfSU5HRVNURURfQllURVNfQVRfT1BFTlwiOiBcIjMyNzY4XCIsXG4gICAgXCJHREFMX0hUVFBfTUVSR0VfQ09OU0VDVVRJVkVfUkFOR0VTXCI6IFwiWUVTXCIsXG4gICAgXCJHREFMX0hUVFBfTVVMVElQTEVYXCI6IFwiWUVTXCIsXG4gICAgXCJHREFMX0hUVFBfVkVSU0lPTlwiOiBcIjJcIixcbiAgICBcIlBZVEhPTldBUk5JTkdTXCI6IFwiaWdub3JlXCIsXG4gICAgXCJWU0lfQ0FDSEVcIjogXCJUUlVFXCIsXG4gICAgXCJWU0lfQ0FDSEVfU0laRVwiOiBcIjUwMDAwMDBcIixcbiAgICBcIkRCX01JTl9DT05OX1NJWkVcIjogXCIxXCIsXG4gICAgXCJEQl9NQVhfQ09OTl9TSVpFXCI6IFwiMVwiXG4gIH1cblxuICBleHBvcnQgY2xhc3MgVGl0aWxlclBnc3RhY0FwaUxhbWJkYSBleHRlbmRzIENvbnN0cnVjdCB7XG4gICAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG4gICAgcHVibGljIHRpdGlsZXJQZ3N0YWNMYW1iZGFGdW5jdGlvbjogbGFtYmRhLkZ1bmN0aW9uO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFRpdGlsZXJQZ1N0YWNBcGlMYW1iZGFQcm9wcykge1xuICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgICAgdGhpcy50aXRpbGVyUGdzdGFjTGFtYmRhRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwibGFtYmRhXCIsIHtcbiAgICAgICAgLy8gZGVmYXVsdHNcbiAgICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfMTEsXG4gICAgICAgIGhhbmRsZXI6IFwiaGFuZGxlci5oYW5kbGVyXCIsXG4gICAgICAgIG1lbW9yeVNpemU6IDMwMDgsXG4gICAgICAgIGxvZ1JldGVudGlvbjogYXdzX2xvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Eb2NrZXJCdWlsZChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nKSwge1xuICAgICAgICAgIGZpbGU6IFwidGl0aWxlci1wZ3N0YWMtYXBpL3J1bnRpbWUvRG9ja2VyZmlsZVwiLFxuICAgICAgICAgIGJ1aWxkQXJnczogeyBQWVRIT05fVkVSU0lPTjogJzMuMTEnIH1cbiAgICAgICAgfSksXG4gICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICAgIGFsbG93UHVibGljU3VibmV0OiB0cnVlLFxuICAgICAgICAvLyBpZiB1c2VyIHByb3ZpZGVkIGVudmlyb25tZW50IHZhcmlhYmxlcywgbWVyZ2UgdGhlbSB3aXRoIHRoZSBkZWZhdWx0cy5cbiAgICAgICAgZW52aXJvbm1lbnQ6IHByb3BzLmFwaUVudiA/IHsgLi4uZGVmYXVsdFRpdGlsZXJQZ3N0YWNFbnYsIC4uLnByb3BzLmFwaUVudiwgXCJQR1NUQUNfU0VDUkVUX0FSTlwiOiBwcm9wcy5kYlNlY3JldC5zZWNyZXRBcm4gfSA6IGRlZmF1bHRUaXRpbGVyUGdzdGFjRW52LFxuICAgICAgICAvLyBvdmVyd3JpdGVzIGRlZmF1bHRzIHdpdGggdXNlci1wcm92aWRlZCBjb25maWd1cmFibGUgcHJvcGVydGllc1xuICAgICAgICAuLi5wcm9wcy5sYW1iZGFGdW5jdGlvbk9wdGlvbnMsXG4gICAgICB9KTtcblxuICAgICAgLy8gZ3JhbnQgYWNjZXNzIHRvIGJ1Y2tldHMgdXNpbmcgYWRkVG9Sb2xlUG9saWN5XG4gICAgICBpZiAocHJvcHMuYnVja2V0cykge1xuICAgICAgICBwcm9wcy5idWNrZXRzLmZvckVhY2goYnVja2V0ID0+IHtcbiAgICAgICAgICB0aGlzLnRpdGlsZXJQZ3N0YWNMYW1iZGFGdW5jdGlvbi5hZGRUb1JvbGVQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW1wiczM6R2V0T2JqZWN0XCJdLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6czM6Ojoke2J1Y2tldH0vKmBdLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHByb3BzLmRiU2VjcmV0LmdyYW50UmVhZCh0aGlzLnRpdGlsZXJQZ3N0YWNMYW1iZGFGdW5jdGlvbik7XG5cbiAgICAgIGlmIChwcm9wcy52cGMpIHtcbiAgICAgICAgdGhpcy50aXRpbGVyUGdzdGFjTGFtYmRhRnVuY3Rpb24uY29ubmVjdGlvbnMuYWxsb3dUbyhwcm9wcy5kYiwgZWMyLlBvcnQudGNwKDU0MzIpLCBcImFsbG93IGNvbm5lY3Rpb25zIGZyb20gdGl0aWxlclwiKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3RhY0FwaSA9IG5ldyBhcGlnYXRld2F5djIuSHR0cEFwaShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYCR7U3RhY2sub2YodGhpcykuc3RhY2tOYW1lfS10aXRpbGVyLXBnc3RhYy1hcGlgLFxuICAgICAgICB7XG4gICAgICAgICAgZGVmYXVsdERvbWFpbk1hcHBpbmc6IHByb3BzLnRpdGlsZXJQZ3N0YWNBcGlEb21haW5OYW1lXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBkb21haW5OYW1lOiBwcm9wcy50aXRpbGVyUGdzdGFjQXBpRG9tYWluTmFtZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgZGVmYXVsdEludGVncmF0aW9uOlxuICAgICAgICAgICAgbmV3IGFwaWdhdGV3YXl2Ml9pbnRlZ3JhdGlvbnMuSHR0cExhbWJkYUludGVncmF0aW9uKFxuICAgICAgICAgICAgICBcImludGVncmF0aW9uXCIsXG4gICAgICAgICAgICAgIHRoaXMudGl0aWxlclBnc3RhY0xhbWJkYUZ1bmN0aW9uLFxuICAgICAgICAgICAgICBwcm9wcy50aXRpbGVyUGdzdGFjQXBpRG9tYWluTmFtZVxuICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJNYXBwaW5nOlxuICAgICAgICAgICAgICAgICAgICAgIG5ldyBhcGlnYXRld2F5djIuUGFyYW1ldGVyTWFwcGluZygpLm92ZXJ3cml0ZUhlYWRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaG9zdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXBpZ2F0ZXdheXYyLk1hcHBpbmdWYWx1ZS5jdXN0b20oXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnRpdGlsZXJQZ3N0YWNBcGlEb21haW5OYW1lLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICApLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICB0aGlzLnVybCA9IHN0YWNBcGkudXJsITtcblxuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBcInRpdGlsZXItcGdzdGFjLWFwaS1vdXRwdXRcIiwge1xuICAgICAgICBleHBvcnROYW1lOiBgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9LXRpdGlsZXItcGdzdGFjLXVybGAsXG4gICAgICAgIHZhbHVlOiB0aGlzLnVybCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVGl0aWxlclBnU3RhY0FwaUxhbWJkYVByb3BzIHtcbiAgICAvKipcbiAgICAgKiBWUEMgaW50byB3aGljaCB0aGUgbGFtYmRhIHNob3VsZCBiZSBkZXBsb3llZC5cbiAgICAgKi9cbiAgICByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcblxuICAgIC8qKlxuICAgICAqIFJEUyBJbnN0YW5jZSB3aXRoIGluc3RhbGxlZCBwZ1NUQUMgb3IgcGdib3VuY2VyIHNlcnZlci5cbiAgICAgKi9cbiAgICByZWFkb25seSBkYjogcmRzLklEYXRhYmFzZUluc3RhbmNlIHwgZWMyLklJbnN0YW5jZTtcblxuICAgIC8qKlxuICAgICAqIFN1Ym5ldCBpbnRvIHdoaWNoIHRoZSBsYW1iZGEgc2hvdWxkIGJlIGRlcGxveWVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN1Ym5ldFNlbGVjdGlvbj86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG5cbiAgICAvKipcbiAgICAgKiBTZWNyZXQgY29udGFpbmluZyBjb25uZWN0aW9uIGluZm9ybWF0aW9uIGZvciBwZ1NUQUMgZGF0YWJhc2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGJTZWNyZXQ6IHNlY3JldHNtYW5hZ2VyLklTZWNyZXQ7XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b21pemVkIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZW5kIHRvIHRpdGlsZXItcGdzdGFjIHJ1bnRpbWUuIFRoZXNlIHdpbGwgYmUgbWVyZ2VkIHdpdGggYGRlZmF1bHRUaXRpbGVyUGdzdGFjRW52YC5cbiAgICAgKiBUaGUgZGF0YWJhc2Ugc2VjcmV0IGFybiBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXQgZGVwbG95bWVudC5cbiAgICAvKi9cbiAgICByZWFkb25seSBhcGlFbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogbGlzdCBvZiBidWNrZXRzIHRoZSBsYW1iZGEgd2lsbCBiZSBncmFudGVkIGFjY2VzcyB0by5cbiAgICAgKi9cbiAgICByZWFkb25seSBidWNrZXRzPzogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gRG9tYWluIE5hbWUgT3B0aW9ucyBmb3IgVGl0aWxlciBQZ3N0YWMgQVBJLFxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSB1bmRlZmluZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdGl0aWxlclBnc3RhY0FwaURvbWFpbk5hbWU/OiBhcGlnYXRld2F5djIuSURvbWFpbk5hbWU7XG5cbiAgICAvKipcbiAgICAgKiBDYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBsYW1iZGEgZnVuY3Rpb24gcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gZGVmaW5lZCBpbiB0aGUgY29uc3RydWN0LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uT3B0aW9ucz86IEN1c3RvbUxhbWJkYUZ1bmN0aW9uUHJvcHM7XG4gIH1cbiJdfQ==
|
|
94
|
+
_b = JSII_RTTI_SYMBOL_1;
|
|
95
|
+
TitilerPgstacApiLambda[_b] = { fqn: "eoapi-cdk.TitilerPgstacApiLambda", version: "9.0.0" };
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVdxQjtBQUNyQiwyQ0FBdUM7QUFFdkMsOERBQXlEO0FBQ3pELDZCQUE2QjtBQUU3Qiw0RUFBNEU7QUFDNUUsSUFBSSx1QkFBdUIsR0FBMkI7SUFDcEQsZ0NBQWdDLEVBQUUsaUJBQWlCO0lBQ25ELGFBQWEsRUFBRSxLQUFLO0lBQ3BCLDRCQUE0QixFQUFFLFdBQVc7SUFDekMsMkJBQTJCLEVBQUUsT0FBTztJQUNwQyxrQ0FBa0MsRUFBRSxLQUFLO0lBQ3pDLG1CQUFtQixFQUFFLEtBQUs7SUFDMUIsaUJBQWlCLEVBQUUsR0FBRztJQUN0QixjQUFjLEVBQUUsUUFBUTtJQUN4QixTQUFTLEVBQUUsTUFBTTtJQUNqQixjQUFjLEVBQUUsU0FBUztJQUN6QixnQkFBZ0IsRUFBRSxHQUFHO0lBQ3JCLGdCQUFnQixFQUFFLEdBQUc7Q0FDdEIsQ0FBQztBQUVGLE1BQWEsNkJBQThCLFNBQVEsc0JBQVM7SUFHMUQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBeUM7UUFFekMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksd0JBQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUN4RCxXQUFXO1lBQ1gsT0FBTyxFQUFFLHdCQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDbkMsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixVQUFVLEVBQUUsSUFBSTtZQUNoQixZQUFZLEVBQUUsc0JBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUTtZQUM3QyxPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksRUFBRSx3QkFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxT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c0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXdzX2FwaWdhdGV3YXl2MiBhcyBhcGlnYXRld2F5djIsXG4gIGF3c19pYW0gYXMgaWFtLFxuICBhd3NfZWMyIGFzIGVjMixcbiAgYXdzX3JkcyBhcyByZHMsXG4gIGF3c19sYW1iZGEgYXMgbGFtYmRhLFxuICBhd3Nfc2VjcmV0c21hbmFnZXIgYXMgc2VjcmV0c21hbmFnZXIsXG4gIER1cmF0aW9uLFxuICBhd3NfbG9ncyxcbiAgQ2ZuT3V0cHV0LFxuICBTdGFjayxcbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcyB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgTGFtYmRhQXBpR2F0ZXdheSB9IGZyb20gXCIuLi9sYW1iZGEtYXBpLWdhdGV3YXlcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuLy8gZGVmYXVsdCBzZXR0aW5ncyB0aGF0IGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSB1c2VyLXByb3ZpZGVkIGVudmlyb25tZW50LlxubGV0IGRlZmF1bHRUaXRpbGVyUGdzdGFjRW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBDUExfVlNJTF9DVVJMX0FMTE9XRURfRVhURU5TSU9OUzogXCIudGlmLC5USUYsLnRpZmZcIixcbiAgR0RBTF9DQUNIRU1BWDogXCIyMDBcIixcbiAgR0RBTF9ESVNBQkxFX1JFQURESVJfT05fT1BFTjogXCJFTVBUWV9ESVJcIixcbiAgR0RBTF9JTkdFU1RFRF9CWVRFU19BVF9PUEVOOiBcIjMyNzY4XCIsXG4gIEdEQUxfSFRUUF9NRVJHRV9DT05TRUNVVElWRV9SQU5HRVM6IFwiWUVTXCIsXG4gIEdEQUxfSFRUUF9NVUxUSVBMRVg6IFwiWUVTXCIsXG4gIEdEQUxfSFRUUF9WRVJTSU9OOiBcIjJcIixcbiAgUFlUSE9OV0FSTklOR1M6IFwiaWdub3JlXCIsXG4gIFZTSV9DQUNIRTogXCJUUlVFXCIsXG4gIFZTSV9DQUNIRV9TSVpFOiBcIjUwMDAwMDBcIixcbiAgREJfTUlOX0NPTk5fU0laRTogXCIxXCIsXG4gIERCX01BWF9DT05OX1NJWkU6IFwiMVwiLFxufTtcblxuZXhwb3J0IGNsYXNzIFRpdGlsZXJQZ3N0YWNBcGlMYW1iZGFSdW50aW1lIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBUaXRpbGVyUGdzdGFjQXBpTGFtYmRhUnVudGltZVByb3BzXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBcImxhbWJkYVwiLCB7XG4gICAgICAvLyBkZWZhdWx0c1xuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfMTEsXG4gICAgICBoYW5kbGVyOiBcImhhbmRsZXIuaGFuZGxlclwiLFxuICAgICAgbWVtb3J5U2l6ZTogMzAwOCxcbiAgICAgIGxvZ1JldGVudGlvbjogYXdzX2xvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMzApLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbURvY2tlckJ1aWxkKHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi5cIiksIHtcbiAgICAgICAgZmlsZTogXCJ0aXRpbGVyLXBnc3RhYy1hcGkvcnVudGltZS9Eb2NrZXJmaWxlXCIsXG4gICAgICAgIGJ1aWxkQXJnczogeyBQWVRIT05fVkVSU0lPTjogXCIzLjExXCIgfSxcbiAgICAgIH0pLFxuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICBhbGxvd1B1YmxpY1N1Ym5ldDogdHJ1ZSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIC4uLmRlZmF1bHRUaXRpbGVyUGdzdGFjRW52LFxuICAgICAgICAuLi5wcm9wcy5hcGlFbnYsIC8vIGlmIHVzZXIgcHJvdmlkZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBtZXJnZSB0aGVtIHdpdGggdGhlIGRlZmF1bHRzLlxuICAgICAgICBQR1NUQUNfU0VDUkVUX0FSTjogcHJvcHMuZGJTZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgfSxcbiAgICAgIC8vIG92ZXJ3cml0ZXMgZGVmYXVsdHMgd2l0aCB1c2VyLXByb3ZpZGVkIGNvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzXG4gICAgICAuLi5wcm9wcy5sYW1iZGFGdW5jdGlvbk9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICAvLyBncmFudCBhY2Nlc3MgdG8gYnVja2V0cyB1c2luZyBhZGRUb1JvbGVQb2xpY3lcbiAgICBpZiAocHJvcHMuYnVja2V0cykge1xuICAgICAgcHJvcHMuYnVja2V0cy5mb3JFYWNoKChidWNrZXQpID0+IHtcbiAgICAgICAgdGhpcy5sYW1iZGFGdW5jdGlvbi5hZGRUb1JvbGVQb2xpY3koXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW1wiczM6R2V0T2JqZWN0XCJdLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6czM6Ojoke2J1Y2tldH0vKmBdLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm9wcy5kYlNlY3JldC5ncmFudFJlYWQodGhpcy5sYW1iZGFGdW5jdGlvbik7XG5cbiAgICBpZiAocHJvcHMudnBjKSB7XG4gICAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uLmNvbm5lY3Rpb25zLmFsbG93VG8oXG4gICAgICAgIHByb3BzLmRiLFxuICAgICAgICBlYzIuUG9ydC50Y3AoNTQzMiksXG4gICAgICAgIFwiYWxsb3cgY29ubmVjdGlvbnMgZnJvbSB0aXRpbGVyXCJcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGl0aWxlclBnc3RhY0FwaUxhbWJkYVJ1bnRpbWVQcm9wcyB7XG4gIC8qKlxuICAgKiBWUEMgaW50byB3aGljaCB0aGUgbGFtYmRhIHNob3VsZCBiZSBkZXBsb3llZC5cbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBSRFMgSW5zdGFuY2Ugd2l0aCBpbnN0YWxsZWQgcGdTVEFDIG9yIHBnYm91bmNlciBzZXJ2ZXIuXG4gICAqL1xuICByZWFkb25seSBkYjogcmRzLklEYXRhYmFzZUluc3RhbmNlIHwgZWMyLklJbnN0YW5jZTtcblxuICAvKipcbiAgICogU3VibmV0IGludG8gd2hpY2ggdGhlIGxhbWJkYSBzaG91bGQgYmUgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRTZWxlY3Rpb24/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBTZWNyZXQgY29udGFpbmluZyBjb25uZWN0aW9uIGluZm9ybWF0aW9uIGZvciBwZ1NUQUMgZGF0YWJhc2UuXG4gICAqL1xuICByZWFkb25seSBkYlNlY3JldDogc2VjcmV0c21hbmFnZXIuSVNlY3JldDtcblxuICAvKipcbiAgICogQ3VzdG9taXplZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2VuZCB0byB0aXRpbGVyLXBnc3RhYyBydW50aW1lLiBUaGVzZSB3aWxsIGJlIG1lcmdlZCB3aXRoIGBkZWZhdWx0VGl0aWxlclBnc3RhY0VudmAuXG4gICAqIFRoZSBkYXRhYmFzZSBzZWNyZXQgYXJuIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBhdCBkZXBsb3ltZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpRW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogbGlzdCBvZiBidWNrZXRzIHRoZSBsYW1iZGEgd2lsbCBiZSBncmFudGVkIGFjY2VzcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbGFtYmRhIGZ1bmN0aW9uIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmaW5lZCBpbiB0aGUgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb25PcHRpb25zPzogQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcztcbn1cblxuZXhwb3J0IGNsYXNzIFRpdGlsZXJQZ3N0YWNBcGlMYW1iZGEgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVVJMIGZvciB0aGUgVGl0aWxlciBQZ3N0YWMgQVBJLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExhbWJkYSBmdW5jdGlvbiBmb3IgdGhlIFRpdGlsZXIgUGdzdGFjIEFQSS5cbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIC0gdXNlIGxhbWJkYUZ1bmN0aW9uIGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyB0aXRpbGVyUGdzdGFjTGFtYmRhRnVuY3Rpb246IGxhbWJkYS5GdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFRpdGlsZXJQZ3N0YWNBcGlMYW1iZGFQcm9wc1xuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgcnVudGltZSA9IG5ldyBUaXRpbGVyUGdzdGFjQXBpTGFtYmRhUnVudGltZSh0aGlzLCBcInJ1bnRpbWVcIiwge1xuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICBzdWJuZXRTZWxlY3Rpb246IHByb3BzLnN1Ym5ldFNlbGVjdGlvbixcbiAgICAgIGRiOiBwcm9wcy5kYixcbiAgICAgIGRiU2VjcmV0OiBwcm9wcy5kYlNlY3JldCxcbiAgICAgIGFwaUVudjogcHJvcHMuYXBpRW52LFxuICAgICAgYnVja2V0czogcHJvcHMuYnVja2V0cyxcbiAgICAgIGxhbWJkYUZ1bmN0aW9uT3B0aW9uczogcHJvcHMubGFtYmRhRnVuY3Rpb25PcHRpb25zLFxuICAgIH0pO1xuICAgIHRoaXMudGl0aWxlclBnc3RhY0xhbWJkYUZ1bmN0aW9uID0gdGhpcy5sYW1iZGFGdW5jdGlvbiA9XG4gICAgICBydW50aW1lLmxhbWJkYUZ1bmN0aW9uO1xuXG4gICAgY29uc3QgeyBhcGkgfSA9IG5ldyBMYW1iZGFBcGlHYXRld2F5KHRoaXMsIFwidGl0bGllci1wZ3N0YWMtYXBpXCIsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiBydW50aW1lLmxhbWJkYUZ1bmN0aW9uLFxuICAgICAgZG9tYWluTmFtZTogcHJvcHMuZG9tYWluTmFtZSA/PyBwcm9wcy50aXRpbGVyUGdzdGFjQXBpRG9tYWluTmFtZSxcbiAgICB9KTtcblxuICAgIHRoaXMudXJsID0gYXBpLnVybCE7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwidGl0aWxlci1wZ3N0YWMtYXBpLW91dHB1dFwiLCB7XG4gICAgICBleHBvcnROYW1lOiBgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9LXRpdGlsZXItcGdzdGFjLXVybGAsXG4gICAgICB2YWx1ZTogdGhpcy51cmwsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaXRpbGVyUGdzdGFjQXBpTGFtYmRhUHJvcHNcbiAgZXh0ZW5kcyBUaXRpbGVyUGdzdGFjQXBpTGFtYmRhUnVudGltZVByb3BzIHtcbiAgLyoqXG4gICAqIERvbWFpbiBOYW1lIGZvciB0aGUgVGl0aWxlciBQZ3N0YWMgQVBJLiBJZiBkZWZpbmVkLCB3aWxsIGNyZWF0ZSB0aGUgZG9tYWluIG5hbWUgYW5kIGludGVncmF0ZSBpdCB3aXRoIHRoZSBUaXRpbGVyIFBnc3RhYyBBUEkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZT86IGFwaWdhdGV3YXl2Mi5JRG9tYWluTmFtZTtcblxuICAvKipcbiAgICogQ3VzdG9tIERvbWFpbiBOYW1lIE9wdGlvbnMgZm9yIFRpdGlsZXIgUGdzdGFjIEFQSSxcbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlICdkb21haW5OYW1lJyBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZC5cbiAgICovXG4gIHJlYWRvbmx5IHRpdGlsZXJQZ3N0YWNBcGlEb21haW5OYW1lPzogYXBpZ2F0ZXdheXYyLklEb21haW5OYW1lO1xufVxuIl19
|