@hybridless/hybridless 0.0.82 → 0.0.84-alpha2
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/core/DepsManager.js +90 -0
- package/core/DepsManager.js.map +1 -0
- package/core/Docker.js +76 -0
- package/core/Docker.js.map +1 -0
- package/core/Globals.js +110 -0
- package/core/Globals.js.map +1 -0
- package/core/Logger.js +82 -0
- package/core/Logger.js.map +1 -0
- package/index.js +397 -0
- package/index.js.map +1 -0
- package/options.js +87 -0
- package/options.js.map +1 -0
- package/options.json +6977 -6912
- package/package.json +1 -1
- package/resources/BaseEvents/FunctionBaseEvent.js +20 -0
- package/resources/BaseEvents/FunctionBaseEvent.js.map +1 -0
- package/resources/BaseEvents/FunctionContainerBaseEvent.js +187 -0
- package/resources/BaseEvents/FunctionContainerBaseEvent.js.map +1 -0
- package/resources/Function.js +229 -0
- package/resources/Function.js.map +1 -0
- package/resources/FunctionBatchJobEvent.js +104 -0
- package/resources/FunctionBatchJobEvent.js.map +1 -0
- package/resources/FunctionHttpdTaskEvent.js +116 -0
- package/resources/FunctionHttpdTaskEvent.js.map +1 -0
- package/resources/FunctionLambdaContainerEvent.js +201 -0
- package/resources/FunctionLambdaContainerEvent.js.map +1 -0
- package/resources/FunctionLambdaEvent.js +161 -0
- package/resources/FunctionLambdaEvent.js.map +1 -0
- package/resources/FunctionProcessTaskEvent.js +89 -0
- package/resources/FunctionProcessTaskEvent.js.map +1 -0
- package/resources/FunctionScheduledTaskEvent.js +89 -0
- package/resources/FunctionScheduledTaskEvent.js.map +1 -0
- package/resources/assets/job-batch/Dockerfile-Job-Nodejs10 +13 -0
- package/resources/assets/job-batch/Dockerfile-Job-Nodejs12 +13 -0
- package/resources/assets/job-batch/Dockerfile-Job-Nodejs14 +13 -0
- package/resources/assets/job-batch/Index-Job-NodejsX +24 -0
- package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Java11 +8 -0
- package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Java8 +8 -0
- package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Java8al12 +8 -0
- package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Nodejs10 +7 -0
- package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Nodejs12 +7 -0
- package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Nodejs14 +7 -0
- package/resources/assets/task-httpd/Dockerfile-Httpd-Nodejs10 +15 -0
- package/resources/assets/task-httpd/Dockerfile-Httpd-PHP5 +9 -0
- package/resources/assets/task-httpd/Dockerfile-Httpd-PHP7 +9 -0
- package/resources/assets/task-httpd/Index-Httpd-NodejsX +15 -0
- package/resources/assets/task-httpd/healthCheck.php +1 -0
- package/resources/assets/task-process/Dockerfile-Process-Nodejs10 +10 -0
- package/resources/assets/task-process/Dockerfile-Process-Nodejs13 +10 -0
- package/resources/assets/task-scheduled/Dockerfile-Scheduled-Nodejs10 +10 -0
- package/resources/assets/task-scheduled/Dockerfile-Scheduled-Nodejs13 +10 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.FunctionHTTPDTaskEvent = void 0;
|
|
13
|
+
const FunctionContainerBaseEvent_1 = require("./BaseEvents/FunctionContainerBaseEvent");
|
|
14
|
+
const options_1 = require("../options");
|
|
15
|
+
const Globals_1 = require("../core/Globals");
|
|
16
|
+
const BPromise = require("bluebird");
|
|
17
|
+
class FunctionHTTPDTaskEvent extends FunctionContainerBaseEvent_1.FunctionContainerBaseEvent {
|
|
18
|
+
constructor(plugin, func, event, index) {
|
|
19
|
+
super(plugin, func, event, index);
|
|
20
|
+
this.healthRoute = Globals_1.default.HTTPD_HealthCheckByRuntime(event.runtime);
|
|
21
|
+
}
|
|
22
|
+
getContainerFiles() {
|
|
23
|
+
const event = this.event;
|
|
24
|
+
const customDockerFile = event.dockerFile;
|
|
25
|
+
const serverlessDir = this.plugin.serverless.config.servicePath;
|
|
26
|
+
const additionalDockerFiles = (this.event.additionalDockerFiles || []).map((file) => {
|
|
27
|
+
return { name: file.from, dir: serverlessDir, dest: file.to };
|
|
28
|
+
});
|
|
29
|
+
const isNodeJS = (event && event.runtime && event.runtime.toLowerCase().indexOf('node') != -1);
|
|
30
|
+
const isPHP = (event && event.runtime && event.runtime.toLowerCase().indexOf('php') != -1);
|
|
31
|
+
const isPureContainer = (event.runtime == options_1.OFunctionHttpdTaskRuntime.container);
|
|
32
|
+
let safeDir = __dirname.split('/');
|
|
33
|
+
safeDir.splice(safeDir.length - 1, 1);
|
|
34
|
+
safeDir = safeDir.join('/');
|
|
35
|
+
if (isNodeJS) {
|
|
36
|
+
return [
|
|
37
|
+
(customDockerFile ?
|
|
38
|
+
{ name: customDockerFile, dir: serverlessDir, dest: 'Dockerfile' } :
|
|
39
|
+
{ name: Globals_1.default.HTTPD_ImageByRuntime(event.runtime), dir: safeDir + '/resources/assets', dest: 'Dockerfile' }),
|
|
40
|
+
{ name: 'task-httpd/Index-Httpd-NodejsX', dir: safeDir + '/resources/assets', dest: 'proxy.js' },
|
|
41
|
+
(this.plugin.options.disableWebpack ?
|
|
42
|
+
{ name: '.', dir: serverlessDir, dest: '/usr/src/app' } :
|
|
43
|
+
{ name: '.webpack/service', dir: serverlessDir, dest: '/usr/src/app' }),
|
|
44
|
+
...additionalDockerFiles
|
|
45
|
+
];
|
|
46
|
+
}
|
|
47
|
+
else if (isPHP) {
|
|
48
|
+
const handler = this.event.handler || this.func.funcOptions.handler;
|
|
49
|
+
const handleRootFolder = (handler.indexOf('.php') != -1 ? handler.split('/').splice(0, handler.split('/').length - 1).join('/') : handler);
|
|
50
|
+
return [
|
|
51
|
+
(customDockerFile ?
|
|
52
|
+
{ name: customDockerFile, dir: serverlessDir, dest: 'Dockerfile' } :
|
|
53
|
+
{ name: Globals_1.default.HTTPD_ImageByRuntime(event.runtime), dir: safeDir + '/resources/assets', dest: 'Dockerfile' }),
|
|
54
|
+
{ name: 'task-httpd/healthCheck.php', dir: safeDir + '/resources/assets', dest: `/app/${this.healthRoute}` },
|
|
55
|
+
{ name: handleRootFolder, dir: serverlessDir, dest: '/app/' },
|
|
56
|
+
...additionalDockerFiles
|
|
57
|
+
];
|
|
58
|
+
}
|
|
59
|
+
else if (isPureContainer) {
|
|
60
|
+
return [
|
|
61
|
+
{ name: customDockerFile, dir: serverlessDir, dest: 'Dockerfile' },
|
|
62
|
+
...additionalDockerFiles
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
throw new Error(`Unrecognized HTTP event type ${event.runtime}!`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
getContainerEnvironments() {
|
|
70
|
+
const event = this.event;
|
|
71
|
+
const isPHP = (event && event.runtime && event.runtime.toLowerCase().indexOf('php') != -1);
|
|
72
|
+
const isNodeJS = (event && event.runtime && event.runtime.toLowerCase().indexOf('node') != -1);
|
|
73
|
+
const isPureContainer = (event.runtime == options_1.OFunctionHttpdTaskRuntime.container);
|
|
74
|
+
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (isNodeJS && Object.assign({ 'HYBRIDLESS_RUNTIME': true, 'AWS_NODEJS_CONNECTION_REUSE_ENABLED': 1, 'ENTRYPOINT': `./${this.func.getEntrypoint(this.event)}`, 'ENTRYPOINT_FUNC': this.func.getEntrypointFunction(this.event) }, (event.cors ? { 'CORS': JSON.stringify(event.cors) } : {})))), (isPHP && {
|
|
75
|
+
'WEB_DOCUMENT_INDEX': this.func.getEntrypointFunction(this.event)
|
|
76
|
+
})), (isPureContainer && {
|
|
77
|
+
'ENTRYPOINTY': event.entrypoint
|
|
78
|
+
})), (event.newRelicKey ? {
|
|
79
|
+
'NEW_RELIC_APP_NAME': `${this.plugin.getName()}-${this.func.getName()}-${this.plugin.stage}`,
|
|
80
|
+
'NEW_RELIC_LICENSE_KEY': event.newRelicKey,
|
|
81
|
+
'NEW_RELIC_ENABLED': true,
|
|
82
|
+
'NEW_RELIC_NO_CONFIG_FILE': true,
|
|
83
|
+
} : {
|
|
84
|
+
'NEW_RELIC_ENABLED': false
|
|
85
|
+
})), { 'TIMEOUT': (this.func.funcOptions.timeout || Globals_1.default.HTTPD_DefaultTimeout) * 1000, 'PORT': this.getPort(), 'STAGE': this.plugin.stage, 'AWS_REGION': { "Ref": "AWS::Region" }, 'AWS_ACCOUNT_ID': { "Ref": "AWS::AccountId" }, 'ECS_ENABLE_CONTAINER_METADATA': true, 'HEALTH_ROUTE': this.healthRoute });
|
|
86
|
+
}
|
|
87
|
+
getClusterTask() {
|
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
+
const TaskName = this._getTaskName();
|
|
90
|
+
const ECRRepoFullURL = yield this.getContainerImageURL();
|
|
91
|
+
const event = this.event;
|
|
92
|
+
return new BPromise((resolve) => __awaiter(this, void 0, void 0, function* () {
|
|
93
|
+
resolve(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ name: TaskName, cpu: (event.cpu || Globals_1.default.HTTPD_DefaultCPU), memory: (event.memory || this.func.funcOptions.memory || Globals_1.default.HTTPD_DefaultMemory), taskRoleArn: (event.role || { 'Fn::GetAtt': ['IamRoleLambdaExecution', 'Arn'] }), image: `${ECRRepoFullURL}` }, (event.entrypoint ? { entrypoint: event.entrypoint } : {})), { desiredCount: (event.concurrency || Globals_1.default.HTTPD_DefaultConcurrency), ec2LaunchType: !!event.ec2LaunchType }), (!!event.ec2LaunchType && event.daemonType ? { daemonEc2Type: true } : {})), { environment: Object.assign(Object.assign({}, this.plugin.getEnvironmentIvars()), this.getContainerEnvironments()) }), (event.autoScale && event.autoScale != 'null' ? { autoScale: event.autoScale } : {})), { logsMultilinePattern: (event.logsMultilinePattern || Globals_1.default.DefaultLogsMultilinePattern) }), (event.logsRetentionInDays && event.logsRetentionInDays != 'null' ? { logsRetentionInDays: event.logsRetentionInDays } : {})), (event.placementStrategies && event.placementStrategies != 'null' ? { placementStrategies: event.placementStrategies } : {})), (event.placementConstraints && event.placementConstraints != 'null' ? { placementConstraints: event.placementConstraints } : {})), (event.capacityProviderStrategy && event.capacityProviderStrategy != 'null' ? { capacityProviderStrategy: event.capacityProviderStrategy } : {})), (event.propagateTags && event.propagateTags != 'null' ? { propagateTags: event.propagateTags } : {})), (event.hostname && event.hostname != 'null' ? { hostname: event.hostname } : {})), (event.limitSourceIPs && event.limitSourceIPs != 'null' ? { limitSourceIPs: event.limitSourceIPs } : {})), (event.limitHeaders ? {
|
|
94
|
+
limitHeaders: event.limitHeaders.map((h) => ({ Name: h.name, Value: h.value }))
|
|
95
|
+
} : {})), { path: event.routes.map((route) => {
|
|
96
|
+
return { path: route.path, method: route.method || 'ANY', priority: route.priority || 1 };
|
|
97
|
+
}), healthCheckUri: (event.healthCheckRoute || this.healthRoute), healthCheckProtocol: 'HTTP', healthCheckInterval: (event.healthCheckInterval || Globals_1.default.DefaultHealthCheckInterval), healthCheckTimeout: (event.healthCheckTimeout || Globals_1.default.DefaultHealthCheckTimeout), healthCheckHealthyCount: (event.healthCheckHealthyCount || Globals_1.default.DefaultHealthCheckHealthyCount), healthCheckUnhealthyCount: (event.healthCheckUnhealthyCount || Globals_1.default.DefaultHealthCheckUnhealthCount), listeners: [Object.assign(Object.assign({ port: this.getPort(), albProtocol: (event.certificateArns ? 'HTTPS' : 'HTTP') }, (event.certificateArns ? {
|
|
98
|
+
'certificateArns': event.certificateArns
|
|
99
|
+
} : {})), (event.certificateArns && event.cognitoAuthorizer ? {
|
|
100
|
+
'authorizer': {
|
|
101
|
+
poolArn: event.cognitoAuthorizer.poolArn,
|
|
102
|
+
clientId: event.cognitoAuthorizer.clientId,
|
|
103
|
+
poolDomain: event.cognitoAuthorizer.poolDomain
|
|
104
|
+
}
|
|
105
|
+
} : {}))] }));
|
|
106
|
+
}));
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
getPort() {
|
|
110
|
+
const event = this.event;
|
|
111
|
+
const isPHP = (event.runtime == options_1.OFunctionHttpdTaskRuntime.php5 || event.runtime == options_1.OFunctionHttpdTaskRuntime.php7);
|
|
112
|
+
return (event.port || ((event.certificateArns && isPHP == false) ? 443 : 80));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.FunctionHTTPDTaskEvent = FunctionHTTPDTaskEvent;
|
|
116
|
+
//# sourceMappingURL=FunctionHttpdTaskEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FunctionHttpdTaskEvent.js","sourceRoot":"","sources":["../src/resources/FunctionHttpdTaskEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.FunctionLambdaContainerEvent = void 0;
|
|
13
|
+
const FunctionContainerBaseEvent_1 = require("./BaseEvents/FunctionContainerBaseEvent");
|
|
14
|
+
const options_1 = require("../options");
|
|
15
|
+
const Globals_1 = require("../core/Globals");
|
|
16
|
+
const BPromise = require("bluebird");
|
|
17
|
+
class FunctionLambdaContainerEvent extends FunctionContainerBaseEvent_1.FunctionContainerBaseEvent {
|
|
18
|
+
constructor(plugin, func, event, index) {
|
|
19
|
+
super(plugin, func, event, index);
|
|
20
|
+
}
|
|
21
|
+
spread() {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
return new BPromise((resolve) => __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const lambda = yield this._generateLambdaFunction();
|
|
25
|
+
this.plugin.appendServerlessFunction(lambda);
|
|
26
|
+
const authorizer = this._generateCognitoAuthorizer();
|
|
27
|
+
if (authorizer)
|
|
28
|
+
this.plugin.appendResource(this._getAuthorizerName(), authorizer);
|
|
29
|
+
if (this.event.protocol == options_1.OFunctionLambdaProtocol.httpAlb &&
|
|
30
|
+
!this.func.funcOptions.albListenerArn) {
|
|
31
|
+
this.plugin.logger.error(`Function event of type httpAlb does require upper element (function) to have albListenerArn set! can't continue.`);
|
|
32
|
+
}
|
|
33
|
+
resolve();
|
|
34
|
+
}));
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
checkDependencies() {
|
|
38
|
+
const _super = Object.create(null, {
|
|
39
|
+
checkDependencies: { get: () => super.checkDependencies }
|
|
40
|
+
});
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
return new BPromise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
yield _super.checkDependencies.call(this);
|
|
44
|
+
if (this.event.logsRetentionInDays)
|
|
45
|
+
this.plugin.depManager.enableLogsRetention();
|
|
46
|
+
resolve();
|
|
47
|
+
}));
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
getContainerFiles() {
|
|
51
|
+
const event = this.event;
|
|
52
|
+
const customDockerFile = event.dockerFile;
|
|
53
|
+
const serverlessDir = this.plugin.serverless.config.servicePath;
|
|
54
|
+
const additionalDockerFiles = (this.event.additionalDockerFiles || []).map((file) => {
|
|
55
|
+
return { name: file.from, dir: serverlessDir, dest: file.to };
|
|
56
|
+
});
|
|
57
|
+
const isNodeJS = (event && event.runtime && event.runtime.toLowerCase().indexOf('node') != -1);
|
|
58
|
+
const isJava = (event && event.runtime && event.runtime.toLowerCase().indexOf('java') != -1);
|
|
59
|
+
const isPureContainer = (event.runtime == options_1.OFunctionLambdaContainerRuntime.container);
|
|
60
|
+
let safeDir = __dirname.split('/');
|
|
61
|
+
safeDir.splice(safeDir.length - 1, 1);
|
|
62
|
+
safeDir = safeDir.join('/');
|
|
63
|
+
if (isNodeJS) {
|
|
64
|
+
return [
|
|
65
|
+
(customDockerFile ?
|
|
66
|
+
{ name: customDockerFile, dir: serverlessDir, dest: 'Dockerfile' } :
|
|
67
|
+
{ name: Globals_1.default.LambdaContainer_ImageByRuntime(event.runtime), dir: safeDir + '/resources/assets', dest: 'Dockerfile' }),
|
|
68
|
+
(this.plugin.options.disableWebpack ?
|
|
69
|
+
{ name: '.', dir: serverlessDir, dest: '/usr/src/app' } :
|
|
70
|
+
{ name: '.webpack/service', dir: serverlessDir, dest: '/usr/src/app' }),
|
|
71
|
+
...additionalDockerFiles
|
|
72
|
+
];
|
|
73
|
+
}
|
|
74
|
+
else if (isJava) {
|
|
75
|
+
return [
|
|
76
|
+
(customDockerFile ?
|
|
77
|
+
{ name: customDockerFile, dir: serverlessDir, dest: 'Dockerfile' } :
|
|
78
|
+
{ name: Globals_1.default.LambdaContainer_ImageByRuntime(event.runtime), dir: safeDir + '/resources/assets', dest: 'Dockerfile' }),
|
|
79
|
+
{ name: 'target/classes', dir: serverlessDir, dest: 'target/classes' },
|
|
80
|
+
{ name: 'target/dependency', dir: serverlessDir, dest: 'target/dependency' },
|
|
81
|
+
...additionalDockerFiles
|
|
82
|
+
];
|
|
83
|
+
}
|
|
84
|
+
else if (isPureContainer) {
|
|
85
|
+
return [
|
|
86
|
+
{ name: customDockerFile, dir: serverlessDir, dest: 'Dockerfile' },
|
|
87
|
+
...additionalDockerFiles
|
|
88
|
+
];
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
throw new Error(`Unrecognized LambdaContainer event type ${event.runtime}!`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
getContainerEnvironments() {
|
|
95
|
+
const event = this.event;
|
|
96
|
+
const isNodeJS = (event && event.runtime && event.runtime.toLowerCase().indexOf('node') != -1);
|
|
97
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({}, (isNodeJS ? { 'AWS_NODEJS_CONNECTION_REUSE_ENABLED': 1 } : {})), { 'ENTRYPOINT': `${this.func.getEntrypoint(this.event)}`, 'ENTRYPOINT_FUNC': this.func.getEntrypointFunction(this.event) }), (event.protocol == options_1.OFunctionLambdaProtocol.httpAlb && this.event.cors ? { 'CORS': JSON.stringify(this.event.cors) } : {})), { 'STAGE': this.plugin.stage, 'AWS_ACCOUNT_ID': { "Ref": "AWS::AccountId" } });
|
|
98
|
+
}
|
|
99
|
+
_generateLambdaFunction() {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
const event = this.event;
|
|
102
|
+
const repoName = yield this.getContainerImageURL();
|
|
103
|
+
if (!event.protocol)
|
|
104
|
+
this.plugin.logger.error(`Missing protocol for lambda container event ${this._getFunctionName()}. Can't continue!`);
|
|
105
|
+
return {
|
|
106
|
+
[this._getFunctionName()]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ name: `${this.plugin.getName()}-${this.func.getName()}-${this.plugin.stage}`, image: repoName, environment: Object.assign(Object.assign({}, this.plugin.getEnvironmentIvars()), this.getContainerEnvironments()) }, this.func.getVPC(true, true)), (this.func.funcOptions.timeout ? { timeout: this.func.funcOptions.timeout } : { timeout: Globals_1.default.HTTPD_DefaultTimeout })), (this.func.funcOptions.memory || event.memory ? { memorySize: this.func.funcOptions.memory || event.memory } : {})), (event.reservedConcurrency ? { reservedConcurrency: event.reservedConcurrency } : {})), { tracing: (event.disableTracing ? false : true) }), (event.logsRetentionInDays && event.logsRetentionInDays != 'null' ? { logRetentionInDays: event.logsRetentionInDays } : {})), this._getLambdaEvents(event))
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
_getLambdaEvents(event) {
|
|
111
|
+
if (event.protocol == options_1.OFunctionLambdaProtocol.none)
|
|
112
|
+
return { events: [] };
|
|
113
|
+
const acceptsRouting = (event.protocol == options_1.OFunctionLambdaProtocol.http || event.protocol == options_1.OFunctionLambdaProtocol.httpAlb);
|
|
114
|
+
const sanitizedRoutes = (acceptsRouting ? (this.event || this.event).routes : [null]);
|
|
115
|
+
return (sanitizedRoutes && sanitizedRoutes.length > 0 ? {
|
|
116
|
+
events: sanitizedRoutes.map((route) => {
|
|
117
|
+
return {
|
|
118
|
+
[this._getProtocolName(event.protocol)]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (this.event.protocolArn ? { arn: this.event.protocolArn } : {})), (this.event.queueBatchSize ? { batchSize: this.event.queueBatchSize } : {})), (this.event.protocol == options_1.OFunctionLambdaProtocol.dynamostreams ? { type: 'dynamodb' } : {})), (this.event.schedulerRate ? { rate: this.event.schedulerRate } : {})), (this.event.schedulerInput ? {
|
|
119
|
+
input: typeof this.event.schedulerInput == 'string' ?
|
|
120
|
+
this.event.schedulerInput : JSON.stringify(this.event.schedulerInput)
|
|
121
|
+
} : {})), (this.event.filterPolicy ? { filterPolicy: this.event.filterPolicy } : {})), (this.event.s3bucket ? {
|
|
122
|
+
s3: Object.assign(Object.assign(Object.assign({ bucket: this.event.s3bucket }, (this.event.s3event ? { event: this.event.s3event } : {})), (this.event.s3bucketExisting ? { existing: true } : {})), (this.event.s3rules ? { rules: this.event.s3rules } : {}))
|
|
123
|
+
} : {})), (this.event.cloudWatchEventSource ? {
|
|
124
|
+
input: (typeof this.event.cloudWatchEventSource == 'string' ?
|
|
125
|
+
this.event.cloudWatchEventSource : JSON.stringify(this.event.cloudWatchEventSource)),
|
|
126
|
+
event: Object.assign(Object.assign(Object.assign({}, (this.event.cloudWatchEventSource ? { source: [this.event.cloudWatchEventSource] } : {})), (this.event.cloudWatchDetailType ? { 'detail-type': [this.event.cloudWatchDetailType] } : {})), (this.event.cloudWatchDetailState ? { detail: { state: [this.event.cloudWatchDetailType] } } : {}))
|
|
127
|
+
} : {})), (this.event.cloudWatchLogGroup ? Object.assign({ logGroup: this.event.cloudWatchLogGroup }, (this.event.cloudWatchLogFilter ? { filter: this.event.cloudWatchLogFilter } : {})) : {})), (this.event.cognitoTrigger ? {
|
|
128
|
+
pool: this.event.cognitoUserPoolArn,
|
|
129
|
+
trigger: this.event.cognitoTrigger,
|
|
130
|
+
} : {})), (this.event.protocol == options_1.OFunctionLambdaProtocol.http ? Object.assign(Object.assign({ path: (route.path || '').replace(/\*/g, '{proxy+}'), method: route.method || 'ANY' }, (this.event.cors ? { cors: this.event.cors } : {})), (this.event.cognitoAuthorizerArn ? {
|
|
131
|
+
"authorizer": {
|
|
132
|
+
"type": "COGNITO_USER_POOLS",
|
|
133
|
+
"authorizerId": { "Ref": this._getAuthorizerName() }
|
|
134
|
+
}
|
|
135
|
+
} : {})) : {})), (this.event.protocol == options_1.OFunctionLambdaProtocol.httpAlb ? Object.assign(Object.assign({ listenerArn: this.func.funcOptions.albListenerArn, priority: route.priority || 1, conditions: Object.assign(Object.assign(Object.assign(Object.assign({ path: (route.path || '').replace(/\*/g, '{proxy+}') }, (route && route.method ? { method: route.method } : {})), (route && route.hostname ? { host: route.hostname } : {})), (this.event.limitHeader ? {
|
|
136
|
+
header: { name: this.event.limitHeader.name, values: this.event.limitHeader.value }
|
|
137
|
+
} : {})), (this.event.limitSourceIPs ? {
|
|
138
|
+
ip: this.event.limitSourceIPs
|
|
139
|
+
} : {})) }, (this.event.healthCheckRoute ? {
|
|
140
|
+
healthCheck: {
|
|
141
|
+
path: this.event.healthCheckRoute,
|
|
142
|
+
intervalSeconds: this.event.healthCheckInterval || Globals_1.default.DefaultHealthCheckInterval,
|
|
143
|
+
timeoutSeconds: this.event.healthCheckTimeout || Globals_1.default.DefaultHealthCheckTimeout,
|
|
144
|
+
healthyThresholdCount: this.event.healthCheckHealthyCount || Globals_1.default.DefaultHealthCheckHealthyCount,
|
|
145
|
+
unhealthyThresholdCount: this.event.healthCheckUnhealthyCount || Globals_1.default.DefaultHealthCheckUnhealthCount,
|
|
146
|
+
}
|
|
147
|
+
} : {})), (this.event.cognitoAuthorizer ? {
|
|
148
|
+
authorizers: {
|
|
149
|
+
authorizer: {
|
|
150
|
+
type: 'cognito',
|
|
151
|
+
userPoolArn: this.event.cognitoAuthorizer.poolArn,
|
|
152
|
+
userPoolClientId: this.event.cognitoAuthorizer.clientId,
|
|
153
|
+
userPoolDomain: this.event.cognitoAuthorizer.poolDomain,
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
} : {})) : {}))
|
|
157
|
+
};
|
|
158
|
+
})
|
|
159
|
+
} : {});
|
|
160
|
+
}
|
|
161
|
+
_generateCognitoAuthorizer() {
|
|
162
|
+
if (this.event.cognitoAuthorizerArn &&
|
|
163
|
+
this.event.protocol == options_1.OFunctionLambdaProtocol.http) {
|
|
164
|
+
return {
|
|
165
|
+
'Type': 'AWS::ApiGateway::Authorizer',
|
|
166
|
+
'Properties': {
|
|
167
|
+
'AuthorizerResultTtlInSeconds': 300,
|
|
168
|
+
'IdentitySource': 'method.request.header.Authorization',
|
|
169
|
+
'Name': this._getAuthorizerName(),
|
|
170
|
+
'RestApiId': { 'Ref': 'ApiGatewayRestApi' },
|
|
171
|
+
'Type': 'COGNITO_USER_POOLS',
|
|
172
|
+
'ProviderARNs': [this.event.cognitoAuthorizerArn]
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
_getProtocolName(proto) {
|
|
179
|
+
if (proto == options_1.OFunctionLambdaProtocol.dynamostreams)
|
|
180
|
+
return 'stream';
|
|
181
|
+
else if (proto == options_1.OFunctionLambdaProtocol.scheduler)
|
|
182
|
+
return 'schedule';
|
|
183
|
+
else if (proto == options_1.OFunctionLambdaProtocol.cloudWatch)
|
|
184
|
+
return 'cloudwatchEvent';
|
|
185
|
+
else if (proto == options_1.OFunctionLambdaProtocol.cloudWatchLogstream)
|
|
186
|
+
return 'cloudwatchLog';
|
|
187
|
+
else if (proto == options_1.OFunctionLambdaProtocol.cognito)
|
|
188
|
+
return 'cognitoUserPool';
|
|
189
|
+
else if (proto == options_1.OFunctionLambdaProtocol.httpAlb)
|
|
190
|
+
return 'alb';
|
|
191
|
+
return proto;
|
|
192
|
+
}
|
|
193
|
+
_getFunctionName(suffix) {
|
|
194
|
+
return `${this.plugin.getName()}${this.func.getName()}${this.plugin.stage}` + (suffix || '');
|
|
195
|
+
}
|
|
196
|
+
_getAuthorizerName() {
|
|
197
|
+
return this._getFunctionName('Authorizer');
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
exports.FunctionLambdaContainerEvent = FunctionLambdaContainerEvent;
|
|
201
|
+
//# sourceMappingURL=FunctionLambdaContainerEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FunctionLambdaContainerEvent.js","sourceRoot":"","sources":["../src/resources/FunctionLambdaContainerEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.FunctionLambdaEvent = void 0;
|
|
13
|
+
const FunctionBaseEvent_1 = require("./BaseEvents/FunctionBaseEvent");
|
|
14
|
+
const options_1 = require("../options");
|
|
15
|
+
const BPromise = require("bluebird");
|
|
16
|
+
const Globals_1 = require("../core/Globals");
|
|
17
|
+
class FunctionLambdaEvent extends FunctionBaseEvent_1.FunctionBaseEvent {
|
|
18
|
+
constructor(plugin, func, event, index) {
|
|
19
|
+
super(plugin, func, event, index);
|
|
20
|
+
}
|
|
21
|
+
spread() {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
return new BPromise((resolve) => __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const lambda = this._generateLambdaFunction();
|
|
25
|
+
this.plugin.appendServerlessFunction(lambda);
|
|
26
|
+
const authorizer = this._generateCognitoAuthorizer();
|
|
27
|
+
if (authorizer)
|
|
28
|
+
this.plugin.appendResource(this._getAuthorizerName(), authorizer);
|
|
29
|
+
resolve();
|
|
30
|
+
}));
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
checkDependencies() {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
return new BPromise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
if (this.event.runtime && this.event.runtime.toLowerCase().indexOf('node') != -1 && !this.plugin.options.disableWebpack)
|
|
37
|
+
this.plugin.depManager.enableWebpack();
|
|
38
|
+
if (this.event.runtime && this.event.runtime.toLowerCase().indexOf('java') != -1 && !this.plugin.options.disableWebpack)
|
|
39
|
+
this.plugin.depManager.enableMvn();
|
|
40
|
+
if (this.event.logsRetentionInDays)
|
|
41
|
+
this.plugin.depManager.enableLogsRetention();
|
|
42
|
+
resolve();
|
|
43
|
+
}));
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
createRequiredResources() {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () { return BPromise.resolve(); });
|
|
48
|
+
}
|
|
49
|
+
build() {
|
|
50
|
+
return __awaiter(this, void 0, void 0, function* () { return BPromise.resolve(); });
|
|
51
|
+
}
|
|
52
|
+
push() {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () { return BPromise.resolve(); });
|
|
54
|
+
}
|
|
55
|
+
cleanup() {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () { return BPromise.resolve(); });
|
|
57
|
+
}
|
|
58
|
+
_generateLambdaFunction() {
|
|
59
|
+
const event = this.event;
|
|
60
|
+
const isJava = (event && event.runtime && event.runtime.toLowerCase().indexOf('java') != -1);
|
|
61
|
+
if (!this.event.protocol)
|
|
62
|
+
this.plugin.logger.error(`Missing protocol for lambda event ${this._getFunctionName()}. Can't continue!`);
|
|
63
|
+
return {
|
|
64
|
+
[this._getFunctionName()]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ name: `${this.plugin.getName()}-${this.func.getName()}-${this.plugin.stage}`, environment: Object.assign(Object.assign({}, this.plugin.getEnvironmentIvars()), this._getLambdaEnvironments()), handler: this.event.handler || this.func.funcOptions.handler }, this.func.getVPC(true, true)), (this.func.funcOptions.timeout ? { timeout: this.func.funcOptions.timeout } : { timeout: Globals_1.default.HTTPD_DefaultTimeout })), (this.func.funcOptions.memory || this.event.memory ? { memorySize: this.func.funcOptions.memory || this.event.memory } : {})), (this.event.runtime ? { runtime: this.event.runtime } : {})), (this.event.layers ? { layers: this.event.layers } : {})), (this.event.package ? { package: this.event.package } : {})), (this.event.reservedConcurrency ? { reservedConcurrency: this.event.reservedConcurrency } : {})), { tracing: (this.event.disableTracing ? false : true) }), (event.logsRetentionInDays && event.logsRetentionInDays != 'null' ? { logRetentionInDays: event.logsRetentionInDays } : {})), (isJava ? {
|
|
65
|
+
package: { artifact: `target/${this.plugin.getName()}-${this.plugin.stage}.jar`, individually: true }
|
|
66
|
+
} : {})), this._getLambdaEvents())
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
_getLambdaEvents() {
|
|
70
|
+
if (this.event.protocol == options_1.OFunctionLambdaProtocol.none)
|
|
71
|
+
return { events: [] };
|
|
72
|
+
const acceptsRouting = (this.event.protocol == options_1.OFunctionLambdaProtocol.http || this.event.protocol == options_1.OFunctionLambdaProtocol.httpAlb);
|
|
73
|
+
const sanitizedRoutes = (acceptsRouting ? (this.event || this.event).routes : [null]);
|
|
74
|
+
return (sanitizedRoutes && sanitizedRoutes.length > 0 ? {
|
|
75
|
+
events: sanitizedRoutes.map((route) => {
|
|
76
|
+
return {
|
|
77
|
+
[this._getProtocolName(this.event.protocol)]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (this.event.protocolArn ? { arn: this.event.protocolArn } : {})), (this.event.queueBatchSize ? { batchSize: this.event.queueBatchSize } : {})), (this.event.protocol == options_1.OFunctionLambdaProtocol.dynamostreams ? { type: 'dynamodb' } : {})), (this.event.schedulerRate ? { rate: [this.event.schedulerRate] } : {})), (this.event.schedulerInput ? {
|
|
78
|
+
input: typeof this.event.schedulerInput == 'string' ?
|
|
79
|
+
this.event.schedulerInput : JSON.stringify(this.event.schedulerInput)
|
|
80
|
+
} : {})), (this.event.filterPolicy ? { filterPolicy: this.event.filterPolicy } : {})), (this.event.s3bucket ? Object.assign(Object.assign(Object.assign({ bucket: this.event.s3bucket }, (this.event.s3event ? { event: this.event.s3event } : {})), (this.event.s3bucketExisting ? { existing: true } : {})), (this.event.s3rules ? { rules: this.event.s3rules } : {})) : {})), (this.event.cloudWatchEventSource ? {
|
|
81
|
+
input: (typeof this.event.cloudWatchEventSource == 'string' ?
|
|
82
|
+
this.event.cloudWatchEventSource : JSON.stringify(this.event.cloudWatchEventSource)),
|
|
83
|
+
event: Object.assign(Object.assign(Object.assign({}, (this.event.cloudWatchEventSource ? { source: [this.event.cloudWatchEventSource] } : {})), (this.event.cloudWatchDetailType ? { 'detail-type': [this.event.cloudWatchDetailType] } : {})), (this.event.cloudWatchDetailState ? { detail: { state: [this.event.cloudWatchDetailType] } } : {}))
|
|
84
|
+
} : {})), (this.event.cloudWatchLogGroup ? Object.assign({ logGroup: this.event.cloudWatchLogGroup }, (this.event.cloudWatchLogFilter ? { filter: this.event.cloudWatchLogFilter } : {})) : {})), (this.event.cognitoTrigger ? {
|
|
85
|
+
pool: this.event.cognitoUserPoolArn,
|
|
86
|
+
trigger: this.event.cognitoTrigger,
|
|
87
|
+
} : {})), (this.event.protocol == options_1.OFunctionLambdaProtocol.http ? Object.assign(Object.assign({ path: (route.path || '').replace(/\*/g, '{proxy+}'), method: route.method || 'ANY' }, (this.event.cors ? { cors: this.event.cors } : {})), (this.event.cognitoAuthorizerArn ? {
|
|
88
|
+
"authorizer": {
|
|
89
|
+
"type": "COGNITO_USER_POOLS",
|
|
90
|
+
"authorizerId": { "Ref": this._getAuthorizerName() }
|
|
91
|
+
}
|
|
92
|
+
} : {})) : {})), (this.event.protocol == options_1.OFunctionLambdaProtocol.httpAlb ? Object.assign(Object.assign({ listenerArn: this.func.funcOptions.albListenerArn, priority: route.priority || 1, conditions: Object.assign(Object.assign(Object.assign(Object.assign({ path: (route.path || '').replace(/\*/g, '{proxy+}') }, (route && route.method ? { method: route.method } : {})), (route && route.hostname ? { host: route.hostname } : {})), (this.event.limitHeader ? {
|
|
93
|
+
header: { name: this.event.limitHeader.name, values: this.event.limitHeader.value }
|
|
94
|
+
} : {})), (this.event.limitSourceIPs ? {
|
|
95
|
+
ip: this.event.limitSourceIPs
|
|
96
|
+
} : {})) }, (this.event.healthCheckRoute ? {
|
|
97
|
+
healthCheck: {
|
|
98
|
+
path: this.event.healthCheckRoute,
|
|
99
|
+
intervalSeconds: this.event.healthCheckInterval || Globals_1.default.DefaultHealthCheckInterval,
|
|
100
|
+
timeoutSeconds: this.event.healthCheckTimeout || Globals_1.default.DefaultHealthCheckTimeout,
|
|
101
|
+
healthyThresholdCount: this.event.healthCheckHealthyCount || Globals_1.default.DefaultHealthCheckHealthyCount,
|
|
102
|
+
unhealthyThresholdCount: this.event.healthCheckUnhealthyCount || Globals_1.default.DefaultHealthCheckUnhealthCount,
|
|
103
|
+
}
|
|
104
|
+
} : {})), (this.event.cognitoAuthorizer ? {
|
|
105
|
+
authorizers: {
|
|
106
|
+
authorizer: {
|
|
107
|
+
type: 'cognito',
|
|
108
|
+
userPoolArn: this.event.cognitoAuthorizer.poolArn,
|
|
109
|
+
userPoolClientId: this.event.cognitoAuthorizer.clientId,
|
|
110
|
+
userPoolDomain: this.event.cognitoAuthorizer.poolDomain,
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
} : {})) : {}))
|
|
114
|
+
};
|
|
115
|
+
})
|
|
116
|
+
} : {});
|
|
117
|
+
}
|
|
118
|
+
;
|
|
119
|
+
_getLambdaEnvironments() {
|
|
120
|
+
return Object.assign({}, (this.event.protocol == options_1.OFunctionLambdaProtocol.httpAlb && this.event.cors ? { 'CORS': JSON.stringify(this.event.cors) } : {}));
|
|
121
|
+
}
|
|
122
|
+
_generateCognitoAuthorizer() {
|
|
123
|
+
if (this.event.cognitoAuthorizerArn) {
|
|
124
|
+
return {
|
|
125
|
+
'Type': 'AWS::ApiGateway::Authorizer',
|
|
126
|
+
'Properties': {
|
|
127
|
+
'AuthorizerResultTtlInSeconds': 300,
|
|
128
|
+
'IdentitySource': 'method.request.header.Authorization',
|
|
129
|
+
'Name': this._getAuthorizerName(),
|
|
130
|
+
'RestApiId': { 'Ref': 'ApiGatewayRestApi' },
|
|
131
|
+
'Type': 'COGNITO_USER_POOLS',
|
|
132
|
+
'ProviderARNs': [this.event.cognitoAuthorizerArn]
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
_getProtocolName(proto) {
|
|
139
|
+
if (proto == options_1.OFunctionLambdaProtocol.dynamostreams)
|
|
140
|
+
return 'stream';
|
|
141
|
+
else if (proto == options_1.OFunctionLambdaProtocol.scheduler)
|
|
142
|
+
return 'schedule';
|
|
143
|
+
else if (proto == options_1.OFunctionLambdaProtocol.cloudWatch)
|
|
144
|
+
return 'cloudwatchEvent';
|
|
145
|
+
else if (proto == options_1.OFunctionLambdaProtocol.cloudWatchLogstream)
|
|
146
|
+
return 'cloudwatchLog';
|
|
147
|
+
else if (proto == options_1.OFunctionLambdaProtocol.cognito)
|
|
148
|
+
return 'cognitoUserPool';
|
|
149
|
+
else if (proto == options_1.OFunctionLambdaProtocol.httpAlb)
|
|
150
|
+
return 'alb';
|
|
151
|
+
return proto;
|
|
152
|
+
}
|
|
153
|
+
_getFunctionName(suffix) {
|
|
154
|
+
return `${this.plugin.getName()}${this.func.getName()}${this.plugin.stage}` + (suffix || '');
|
|
155
|
+
}
|
|
156
|
+
_getAuthorizerName() {
|
|
157
|
+
return this._getFunctionName('Authorizer');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.FunctionLambdaEvent = FunctionLambdaEvent;
|
|
161
|
+
//# sourceMappingURL=FunctionLambdaEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FunctionLambdaEvent.js","sourceRoot":"","sources":["../src/resources/FunctionLambdaEvent.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sEAAmE;AAInE,wCAAuV;AAEvV,qCAAsC;AACtC,6CAAsC;AAEtC,MAAa,mBAAoB,SAAQ,qCAAuC;IAC/E,YAAmB,MAAkB,EAAE,IAAkB,EAAE,KAA2B,EAAE,KAAa;QACpG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAEY,MAAM;;YAClB,OAAO,IAAI,QAAQ,CAAC,CAAO,OAAO,EAAE,EAAE;gBAErC,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;gBAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBACrD,IAAI,UAAU;oBAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,UAAU,CAAC,CAAC;gBAClF,OAAO,EAAE,CAAC;YACX,CAAC,CAAA,CAAC,CAAC;QACJ,CAAC;KAAA;IACY,iBAAiB;;YAC7B,OAAO,IAAI,QAAQ,CAAC,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc;oBAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;gBAChK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc;oBAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;gBAC5J,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB;oBAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;gBACjF,OAAO,EAAE,CAAC;YACX,CAAC,CAAA,CAAC,CAAC;QACJ,CAAC;KAAA;IACY,uBAAuB;8DAAe,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;KAAA;IAClE,KAAK;8DAAe,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;KAAA;IAChD,IAAI;8DAAe,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;KAAA;IAC/C,OAAO;8DAAe,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;KAAA;IAGvD,uBAAuB;QAC9B,MAAM,KAAK,GAAgD,IAAI,CAAC,KAAM,CAAC;QACvE,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7F,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;QACpI,OAAO;YACN,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,8JACxB,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAC5E,WAAW,kCACP,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,GACjC,IAAI,CAAC,sBAAsB,EAAE,GAGjC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,IACzD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAO,CAAC,oBAAoB,EAAE,CAAC,GACxH,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC5H,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC3D,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACxD,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC3D,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAClG,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAChD,CAAC,KAAK,CAAC,mBAAmB,IAAa,KAAK,CAAC,mBAAmB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAEpI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACZ,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE;aACrG,CAAC,CAAC,CAAC,EAAE,CAAC,GAEJ,IAAI,CAAC,gBAAgB,EAAE,CAC1B;SACD,CAAC;IACH,CAAC;IAEO,gBAAgB;QAEvB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,iCAAuB,CAAC,IAAI;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAE/E,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,iCAAuB,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,iCAAuB,CAAC,OAAO,CAAC,CAAC;QACvI,MAAM,eAAe,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAiC,IAAI,IAAI,CAAC,KAA6C,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1J,OAAO,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrC,OAAO;oBACN,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,8KAExC,CAAE,IAAI,CAAC,KAAiC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAG,IAAI,CAAC,KAAiC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAEzH,CAAE,IAAI,CAAC,KAAiC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,EAAG,IAAI,CAAC,KAAiC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAErI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,iCAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAE1F,CAAE,IAAI,CAAC,KAAuC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAE,IAAI,CAAC,KAAuC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC5I,CAAE,IAAI,CAAC,KAAuC,CAAC,cAAc,CAAC,CAAC,CAAC;wBAClE,KAAK,EACJ,OAAQ,IAAI,CAAC,KAAuC,CAAC,cAAc,IAAI,QAAQ,CAAC,CAAC;4BAC/E,IAAI,CAAC,KAAuC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,KAAuC,CAAC,cAAc,CAAC;qBAC7I,CAAC,CAAC,CAAC,EAAE,CAAC,GAEJ,CAAE,IAAI,CAAC,KAAiC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAG,IAAI,CAAC,KAAiC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAEpI,CAAE,IAAI,CAAC,KAAgC,CAAC,QAAQ,CAAC,CAAC,6CACpD,MAAM,EAAG,IAAI,CAAC,KAAgC,CAAC,QAAQ,IACpD,CAAE,IAAI,CAAC,KAAgC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAG,IAAI,CAAC,KAAgC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACjH,CAAE,IAAI,CAAC,KAAgC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACnF,CAAE,IAAI,CAAC,KAAgC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAG,IAAI,CAAC,KAAgC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACnH,CAAC,CAAC,EAAE,CAAC,GAEJ,CAAE,IAAI,CAAC,KAAwC,CAAC,qBAAqB,CAAC,CAAC,CAAC;wBAC1E,KAAK,EAAE,CAAC,OAAQ,IAAI,CAAC,KAAwC,CAAC,qBAAqB,IAAI,QAAQ,CAAC,CAAC;4BAC/F,IAAI,CAAC,KAAwC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,KAAwC,CAAC,qBAAqB,CAAC,CAAC;wBAC7J,KAAK,gDACD,CAAE,IAAI,CAAC,KAAwC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAE,IAAI,CAAC,KAAwC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAChK,CAAE,IAAI,CAAC,KAAwC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAE,IAAI,CAAC,KAAwC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACrK,CAAE,IAAI,CAAC,KAAwC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAE,IAAI,CAAC,KAAwC,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC7K;qBACD,CAAC,CAAC,CAAC,EAAE,CAAC,GAEJ,CAAE,IAAI,CAAC,KAA4C,CAAC,kBAAkB,CAAC,CAAC,iBAC1E,QAAQ,EAAG,IAAI,CAAC,KAA4C,CAAC,kBAAkB,IAC5E,CAAE,IAAI,CAAC,KAA4C,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAG,IAAI,CAAC,KAA4C,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACpK,CAAC,CAAC,EAAE,CAAC,GAEJ,CAAE,IAAI,CAAC,KAAuC,CAAC,cAAc,CAAC,CAAC,CAAC;wBAClE,IAAI,EAAG,IAAI,CAAC,KAAuC,CAAC,kBAAkB;wBACtE,OAAO,EAAG,IAAI,CAAC,KAAuC,CAAC,cAAc;qBACrE,CAAC,CAAC,CAAC,EAAE,CAAC,GAEJ,CAAE,IAAI,CAAC,KAAkC,CAAC,QAAQ,IAAI,iCAAuB,CAAC,IAAI,CAAC,CAAC,+BACtF,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,EACnD,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,IAC1B,CAAE,IAAI,CAAC,KAAkC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAG,IAAI,CAAC,KAAkC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC9G,CAAE,IAAI,CAAC,KAAkC,CAAC,oBAAoB,CAAC,CAAC,CAAC;wBACnE,YAAY,EAAE;4BACb,MAAM,EAAE,oBAAoB;4BAC5B,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE;yBACpD;qBACD,CAAC,CAAC,CAAC,EAAE,CAAC,EACN,CAAC,CAAC,EAAE,CAAC,GAEJ,CAAE,IAAI,CAAC,KAA8C,CAAC,QAAQ,IAAI,iCAAuB,CAAC,OAAO,CAAC,CAAC,+BACrG,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,EACjD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,EAC7B,UAAU,4DACT,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,IAChD,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACvD,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACzD,CAAE,IAAI,CAAC,KAA8C,CAAC,WAAW,CAAC,CAAC,CAAC;4BACtE,MAAM,EAAE,EAAE,IAAI,EAAG,IAAI,CAAC,KAA8C,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAG,IAAI,CAAC,KAA8C,CAAC,WAAW,CAAC,KAAK,EAAE;yBACvK,CAAC,CAAC,CAAC,EAAE,CAAC,GACJ,CAAE,IAAI,CAAC,KAA8C,CAAC,cAAc,CAAC,CAAC,CAAC;4BACzE,EAAE,EAAG,IAAI,CAAC,KAA8C,CAAC,cAAc;yBACvE,CAAC,CAAC,CAAC,EAAE,CAAC,KAEL,CAAE,IAAI,CAAC,KAA8C,CAAC,gBAAgB,CAAC,CAAC,CAAC;wBAC3E,WAAW,EAAE;4BACZ,IAAI,EAAG,IAAI,CAAC,KAA8C,CAAC,gBAAgB;4BAC3E,eAAe,EAAG,IAAI,CAAC,KAA8C,CAAC,mBAAmB,IAAI,iBAAO,CAAC,0BAA0B;4BAC/H,cAAc,EAAG,IAAI,CAAC,KAA8C,CAAC,kBAAkB,IAAI,iBAAO,CAAC,yBAAyB;4BAC5H,qBAAqB,EAAG,IAAI,CAAC,KAA8C,CAAC,uBAAuB,IAAI,iBAAO,CAAC,8BAA8B;4BAC7I,uBAAuB,EAAG,IAAI,CAAC,KAA8C,CAAC,yBAAyB,IAAI,iBAAO,CAAC,+BAA+B;yBAClJ;qBACD,CAAC,CAAC,CAAC,EAAE,CAAC,GACJ,CAAE,IAAI,CAAC,KAA8C,CAAC,iBAAiB,CAAC,CAAC,CAAC;wBAC5E,WAAW,EAAE;4BACZ,UAAU,EAAE;gCACX,IAAI,EAAE,SAAS;gCACf,WAAW,EAAG,IAAI,CAAC,KAA8C,CAAC,iBAAiB,CAAC,OAAO;gCAC3F,gBAAgB,EAAG,IAAI,CAAC,KAA8C,CAAC,iBAAiB,CAAC,QAAQ;gCACjG,cAAc,EAAG,IAAI,CAAC,KAA8C,CAAC,iBAAiB,CAAC,UAAU;6BACjG;yBACD;qBACD,CAAC,CAAC,CAAC,EAAE,CAAC,EACN,CAAC,CAAC,EAAE,CAAC,CACP;iBACD,CAAC;YACH,CAAC,CAAC;SACF,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACR,CAAC;IAAA,CAAC;IAEM,sBAAsB;QAC7B,yBAEI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,iCAAuB,CAAC,OAAO,IAAK,IAAI,CAAC,KAA8C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,KAA8C,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACpN;IACH,CAAC;IAEO,0BAA0B;QACjC,IAAK,IAAI,CAAC,KAAkC,CAAC,oBAAoB,EAAE;YAClE,OAAO;gBACN,MAAM,EAAE,6BAA6B;gBACrC,YAAY,EAAE;oBACb,8BAA8B,EAAE,GAAG;oBACnC,gBAAgB,EAAE,qCAAqC;oBACvD,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE;oBACjC,WAAW,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;oBAC3C,MAAM,EAAE,oBAAoB;oBAC5B,cAAc,EAAE,CAAE,IAAI,CAAC,KAAkC,CAAC,oBAAoB,CAAC;iBAC/E;aACD,CAAA;SACD;QAAC,OAAO,IAAI,CAAC;IACf,CAAC;IAEO,gBAAgB,CAAC,KAA8B;QACtD,IAAI,KAAK,IAAI,iCAAuB,CAAC,aAAa;YAAE,OAAO,QAAQ,CAAC;aAC/D,IAAI,KAAK,IAAI,iCAAuB,CAAC,SAAS;YAAE,OAAO,UAAU,CAAC;aAClE,IAAI,KAAK,IAAI,iCAAuB,CAAC,UAAU;YAAE,OAAO,iBAAiB,CAAC;aAC1E,IAAI,KAAK,IAAI,iCAAuB,CAAC,mBAAmB;YAAE,OAAO,eAAe,CAAC;aACjF,IAAI,KAAK,IAAI,iCAAuB,CAAC,OAAO;YAAE,OAAO,iBAAiB,CAAC;aACvE,IAAI,KAAK,IAAI,iCAAuB,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAChE,OAAO,KAAK,CAAC;IACd,CAAC;IACO,gBAAgB,CAAC,MAAe;QACvC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC9F,CAAC;IACO,kBAAkB;QACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;CACD;AA9MD,kDA8MC"}
|