@hybridless/hybridless 0.0.82 → 0.0.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/core/DepsManager.js +90 -0
  2. package/core/DepsManager.js.map +1 -0
  3. package/core/Docker.js +76 -0
  4. package/core/Docker.js.map +1 -0
  5. package/core/Globals.js +97 -0
  6. package/core/Globals.js.map +1 -0
  7. package/core/Logger.js +82 -0
  8. package/core/Logger.js.map +1 -0
  9. package/index.js +397 -0
  10. package/index.js.map +1 -0
  11. package/options.js +72 -0
  12. package/options.js.map +1 -0
  13. package/options.json +6957 -6888
  14. package/package.json +1 -1
  15. package/resources/BaseEvents/FunctionBaseEvent.js +20 -0
  16. package/resources/BaseEvents/FunctionBaseEvent.js.map +1 -0
  17. package/resources/BaseEvents/FunctionContainerBaseEvent.js +187 -0
  18. package/resources/BaseEvents/FunctionContainerBaseEvent.js.map +1 -0
  19. package/resources/Function.js +225 -0
  20. package/resources/Function.js.map +1 -0
  21. package/resources/FunctionHttpdTaskEvent.js +116 -0
  22. package/resources/FunctionHttpdTaskEvent.js.map +1 -0
  23. package/resources/FunctionLambdaContainerEvent.js +201 -0
  24. package/resources/FunctionLambdaContainerEvent.js.map +1 -0
  25. package/resources/FunctionLambdaEvent.js +161 -0
  26. package/resources/FunctionLambdaEvent.js.map +1 -0
  27. package/resources/FunctionProcessTaskEvent.js +89 -0
  28. package/resources/FunctionProcessTaskEvent.js.map +1 -0
  29. package/resources/FunctionScheduledTaskEvent.js +89 -0
  30. package/resources/FunctionScheduledTaskEvent.js.map +1 -0
  31. package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Java11 +8 -0
  32. package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Java8 +8 -0
  33. package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Java8al12 +8 -0
  34. package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Nodejs10 +7 -0
  35. package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Nodejs12 +7 -0
  36. package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Nodejs14 +7 -0
  37. package/resources/assets/task-httpd/Dockerfile-Httpd-Nodejs10 +15 -0
  38. package/resources/assets/task-httpd/Dockerfile-Httpd-Nodejs13 +15 -0
  39. package/resources/assets/task-httpd/Dockerfile-Httpd-PHP5 +9 -0
  40. package/resources/assets/task-httpd/Dockerfile-Httpd-PHP7 +9 -0
  41. package/resources/assets/task-httpd/Index-Httpd-NodejsX +15 -0
  42. package/resources/assets/task-httpd/healthCheck.php +1 -0
  43. package/resources/assets/task-process/Dockerfile-Process-Nodejs10 +10 -0
  44. package/resources/assets/task-process/Dockerfile-Process-Nodejs13 +10 -0
  45. package/resources/assets/task-scheduled/Dockerfile-Scheduled-Nodejs10 +10 -0
  46. package/resources/assets/task-scheduled/Dockerfile-Scheduled-Nodejs13 +10 -0
@@ -0,0 +1,90 @@
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
+ const Globals_1 = require("./Globals");
13
+ const BPromise = require("bluebird");
14
+ const util = require("util");
15
+ const child = require("child_process");
16
+ const executor = util.promisify(child.exec);
17
+ class DepsManager {
18
+ constructor(plugin) {
19
+ this.plugin = plugin;
20
+ }
21
+ enableLogsRetention() { this.requiresLogsRetention = true; }
22
+ enableWebpack() { this.requiresWebpack = true; }
23
+ enableECSPlugin() { this.requiresECS = true; }
24
+ enableMvn() { this.requiresMvn = true; }
25
+ isLogsRetentionRequired() { return this.requiresWebpack; }
26
+ isWebpackRequired() { return this.requiresWebpack; }
27
+ isECSRequired() { return this.requiresECS; }
28
+ isMvnRequired() { return this.requiresMvn; }
29
+ loadDependecies() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const pluginsList = this.plugin.service.plugins;
32
+ if (this.requiresWebpack && !this._isPluginInstalledServerless(pluginsList, Globals_1.default.Deps_Webpack)) {
33
+ this.plugin.logger.info('Webpack plugin is required, enabling it!');
34
+ yield this.plugin.serverless.pluginManager.addPlugin(require(Globals_1.default.Deps_Webpack));
35
+ }
36
+ if (this.requiresECS && !this._isPluginInstalledServerless(pluginsList, Globals_1.default.Deps_ECS)) {
37
+ this.plugin.logger.info('ECS plugin is required, enabling it!');
38
+ yield this.plugin.serverless.pluginManager.addPlugin(require(Globals_1.default.Deps_ECS));
39
+ }
40
+ if (this.requiresLogsRetention && !this._isPluginInstalledServerless(pluginsList, Globals_1.default.Deps_LambdaLogsRetention)) {
41
+ this.plugin.logger.info('Lambda logs retention plugin is required, enabling it!');
42
+ yield this.plugin.serverless.pluginManager.addPlugin(require(Globals_1.default.Deps_LambdaLogsRetention));
43
+ }
44
+ return BPromise.resolve();
45
+ });
46
+ }
47
+ compile() {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ return BPromise.resolve()
50
+ .then(() => (!this.isMvnRequired() ? BPromise.resolve() : this._compileJava()));
51
+ });
52
+ }
53
+ _isPluginInstalledServerless(pluginsList, dependency) {
54
+ if (!pluginsList || pluginsList.indexOf(dependency) == -1)
55
+ return false;
56
+ return true;
57
+ }
58
+ _compileJava() {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ return new BPromise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
61
+ this.plugin.logger.info('MVN is required to compile Java code, compiling...');
62
+ const exec = yield this._runCommand(Globals_1.default.Mvn_Build_Command);
63
+ if (exec && exec.stderr && exec.stderr.toLowerCase().indexOf('error'))
64
+ reject(exec.stderr);
65
+ else {
66
+ resolve();
67
+ }
68
+ }));
69
+ });
70
+ }
71
+ _runCommand(command, params = []) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ return new BPromise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
74
+ if (!params)
75
+ params = [];
76
+ let formattedParams = params.join(' ');
77
+ try {
78
+ const resp = yield executor(command + ' ' + formattedParams, { maxBuffer: 1024 * 10000 });
79
+ resolve(resp);
80
+ }
81
+ catch (err) {
82
+ this.plugin.logger.error('Error while running command', err.stdout.toString());
83
+ reject(err);
84
+ }
85
+ }));
86
+ });
87
+ }
88
+ }
89
+ exports.default = DepsManager;
90
+ //# sourceMappingURL=DepsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DepsManager.js","sourceRoot":"","sources":["../src/core/DepsManager.ts"],"names":[],"mappings":"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"}
package/core/Docker.js ADDED
@@ -0,0 +1,76 @@
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
+ const Dockerode = require("dockerode");
13
+ const BPromise = require("bluebird");
14
+ const tarFS = require("tar-fs");
15
+ class Docker {
16
+ constructor(plugin) {
17
+ this._d = this._newDocker();
18
+ this.plugin = plugin;
19
+ }
20
+ _newDocker() {
21
+ return new Dockerode({
22
+ socketPath: '/var/run/docker.sock'
23
+ });
24
+ }
25
+ buildImage(files, imageName, env) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const chunks = [];
28
+ return new BPromise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
29
+ this.plugin.logger.info(`Building docker image.. (${env})`);
30
+ const tarData = yield this._packDocker(files);
31
+ yield this._d.buildImage(tarData, { t: imageName }, (err, response) => {
32
+ if (err)
33
+ reject(err);
34
+ else if (response) {
35
+ response.on('data', chunk => chunks.push(chunk));
36
+ response.on('error', (err) => reject(err));
37
+ response.on('end', () => {
38
+ const resp = Buffer.concat(chunks).toString('utf8');
39
+ if (resp.includes('Successfully built')) {
40
+ this.plugin.logger.info('Docker image built!');
41
+ resolve(resp);
42
+ }
43
+ else {
44
+ this.plugin.logger.info('Docker image build error!');
45
+ reject(resp);
46
+ }
47
+ });
48
+ }
49
+ else
50
+ reject('Invalid response..');
51
+ });
52
+ }));
53
+ });
54
+ }
55
+ _packDocker(files) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ return new BPromise((resolve, reject) => {
58
+ resolve(tarFS.pack('/', {
59
+ entries: files.map((file) => file.dir + '/' + file.name),
60
+ map: (file) => {
61
+ for (let specFile of files) {
62
+ const source = specFile.dir + '/' + specFile.name;
63
+ if (file.name.includes(source)) {
64
+ file.name = file.name.replace(source, specFile.dest);
65
+ break;
66
+ }
67
+ }
68
+ return file;
69
+ }
70
+ }));
71
+ });
72
+ });
73
+ }
74
+ }
75
+ exports.default = Docker;
76
+ //# sourceMappingURL=Docker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Docker.js","sourceRoot":"","sources":["../src/core/Docker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const options_1 = require("../options");
4
+ const uuid_1 = require("uuid");
5
+ class Globals {
6
+ static HTTPD_ImageByRuntime(environment) {
7
+ if (environment == options_1.OFunctionHttpdTaskRuntime.nodejs10) {
8
+ return 'task-httpd/Dockerfile-Httpd-Nodejs10';
9
+ }
10
+ else if (environment == options_1.OFunctionHttpdTaskRuntime.nodejs13) {
11
+ return 'task-httpd/Dockerfile-Httpd-Nodejs13';
12
+ }
13
+ else if (environment == options_1.OFunctionHttpdTaskRuntime.php5) {
14
+ return 'task-httpd/Dockerfile-Httpd-PHP5';
15
+ }
16
+ else if (environment == options_1.OFunctionHttpdTaskRuntime.php7) {
17
+ return 'task-httpd/Dockerfile-Httpd-PHP7';
18
+ }
19
+ else if (environment == options_1.OFunctionHttpdTaskRuntime.container) {
20
+ throw new Error(`Container environments requires dockerFile to be set!`);
21
+ }
22
+ throw new Error(`Unknown event *httpd* environment type! ${environment} is not a valid environment, can't continue!`);
23
+ }
24
+ static HTTPD_HealthCheckByRuntime(environment) {
25
+ return `/healthCheck/${(0, uuid_1.v4)()}`;
26
+ }
27
+ static Process_ImageByRuntime(environment) {
28
+ if (environment == options_1.OFunctionProcessTaskRuntime.nodejs10) {
29
+ return 'task-process/Dockerfile-Process-Nodejs10';
30
+ }
31
+ else if (environment == options_1.OFunctionProcessTaskRuntime.nodejs13) {
32
+ return 'task-process/Dockerfile-Process-Nodejs13';
33
+ }
34
+ else if (environment == options_1.OFunctionProcessTaskRuntime.container) {
35
+ throw new Error(`Container environments requires dockerFile to be set!`);
36
+ }
37
+ throw new Error(`Unknown event *process* environment type! ${environment} is not a valid environment, can't continue!`);
38
+ }
39
+ static Scheduled_ImageByRuntime(environment) {
40
+ if (environment == options_1.OFunctionScheduledTaskRuntime.nodejs10) {
41
+ return 'task-scheduled/Dockerfile-Scheduler-Nodejs10';
42
+ }
43
+ else if (environment == options_1.OFunctionScheduledTaskRuntime.nodejs13) {
44
+ return 'task-scheduled/Dockerfile-Scheduler-Nodejs13';
45
+ }
46
+ else if (environment == options_1.OFunctionScheduledTaskRuntime.container) {
47
+ throw new Error(`Container environments requires dockerFile to be set!`);
48
+ }
49
+ throw new Error(`Unknown event *scheduled* environment type! ${environment} is not a valid environment, can't continue!`);
50
+ }
51
+ static LambdaContainer_ImageByRuntime(environment) {
52
+ if (environment == options_1.OFunctionLambdaContainerRuntime.nodejs10) {
53
+ return 'lambda-container/Dockerfile-LambdaContainer-Nodejs10';
54
+ }
55
+ else if (environment == options_1.OFunctionLambdaContainerRuntime.nodejs12) {
56
+ return 'lambda-container/Dockerfile-LambdaContainer-Nodejs12';
57
+ }
58
+ else if (environment == options_1.OFunctionLambdaContainerRuntime.java11) {
59
+ return 'lambda-container/Dockerfile-LambdaContainer-Java11';
60
+ }
61
+ else if (environment == options_1.OFunctionLambdaContainerRuntime.java8) {
62
+ return 'lambda-container/Dockerfile-LambdaContainer-Java8';
63
+ }
64
+ else if (environment == options_1.OFunctionLambdaContainerRuntime.java8al12) {
65
+ return 'lambda-container/Dockerfile-LambdaContainer-Java8al12';
66
+ }
67
+ throw new Error(`Unknown event *process* environment type! ${environment} is not a valid environment, can't continue!`);
68
+ }
69
+ }
70
+ exports.default = Globals;
71
+ Globals.PluginDefaultProvider = 'aws';
72
+ Globals.DockerLatestTag = 'latest';
73
+ Globals.DockerPreDeploymentTag = 'previous';
74
+ Globals.Deps_Webpack = 'serverless-webpack';
75
+ Globals.Deps_ECS = '@hybridless/serverless-ecs-plugin';
76
+ Globals.Deps_LambdaLogsRetention = 'serverless-plugin-log-retention';
77
+ Globals.Mvn_Build_Command = 'mvn clean install';
78
+ Globals.DefaultLogsMultilinePattern = '(([a-zA-Z0-9\-]* \[[a-zA-Za-]*\] )|(\[[a-zA-Za -]*\] ))';
79
+ Globals.DefaultHealthCheckInterval = 15;
80
+ Globals.DefaultHealthCheckTimeout = 10;
81
+ Globals.DefaultHealthCheckHealthyCount = 2;
82
+ Globals.DefaultHealthCheckUnhealthCount = 5;
83
+ Globals.DefaultLoadBalancerAdditionalTimeout = 1;
84
+ Globals.HTTPD_DefaultMemory = 1024;
85
+ Globals.HTTPD_DefaultCPU = 512;
86
+ Globals.HTTPD_DefaultTimeout = 30;
87
+ Globals.HTTPD_DefaultConcurrency = 2;
88
+ Globals.Process_DefaultMemory = 1024;
89
+ Globals.Process_DefaultCPU = 512;
90
+ Globals.Process_DefaultConcurrency = 1;
91
+ Globals.Scheduled_DefaultMemory = 1024;
92
+ Globals.Scheduled_DefaultCPU = 512;
93
+ Globals.Scheduled_DefaultConcurrency = 1;
94
+ Globals.LambdaContainer_DefaultMemory = 1024;
95
+ Globals.LambdaContainer_DefaultCPU = 512;
96
+ Globals.LambdaContainer_DefaultConcurrency = 1;
97
+ //# sourceMappingURL=Globals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Globals.js","sourceRoot":"","sources":["../src/core/Globals.ts"],"names":[],"mappings":"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"}
package/core/Logger.js ADDED
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LOG_LEVELS = void 0;
4
+ const stackTrace = require("stack-trace");
5
+ const stringify = require("json-stringify-safe");
6
+ exports.LOG_LEVELS = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
7
+ var LOG_STRINGS;
8
+ (function (LOG_STRINGS) {
9
+ LOG_STRINGS[LOG_STRINGS["DEBUG"] = 0] = "DEBUG";
10
+ LOG_STRINGS[LOG_STRINGS["INFO"] = 1] = "INFO";
11
+ LOG_STRINGS[LOG_STRINGS["WARN"] = 2] = "WARN";
12
+ LOG_STRINGS[LOG_STRINGS["ERROR"] = 3] = "ERROR";
13
+ })(LOG_STRINGS || (LOG_STRINGS = {}));
14
+ ;
15
+ class Logger {
16
+ constructor(serverless, _LOG_LEVEL) {
17
+ this._isOffline = function () { return process.env.IS_OFFLINE; };
18
+ this._toDoubleDigit = function (str) { return String("0" + str).slice(-2); };
19
+ if (!_LOG_LEVEL)
20
+ _LOG_LEVEL = exports.LOG_LEVELS.DEBUG;
21
+ else {
22
+ _LOG_LEVEL = Object.values(LOG_STRINGS).indexOf(_LOG_LEVEL);
23
+ if (_LOG_LEVEL == -1)
24
+ _LOG_LEVEL = exports.LOG_LEVELS.DEBUG;
25
+ }
26
+ this.serverless = serverless;
27
+ this._LOG_LEVEL = _LOG_LEVEL;
28
+ }
29
+ debug(...args) { this._processLog(exports.LOG_LEVELS.DEBUG, args); }
30
+ log(...args) { this._processLog(exports.LOG_LEVELS.INFO, args); }
31
+ info(...args) { this._processLog(exports.LOG_LEVELS.INFO, args); }
32
+ warning(...args) { this._processLog(exports.LOG_LEVELS.WARN, args); }
33
+ warn(...args) { this._processLog(exports.LOG_LEVELS.WARN, args); }
34
+ error(...args) { this._processLog(exports.LOG_LEVELS.ERROR, args); }
35
+ exception(exception) {
36
+ let msg = [];
37
+ msg.push(exception + " -");
38
+ for (let arg of arguments)
39
+ if (arg != exception)
40
+ msg.push(arg);
41
+ msg.push(exception.stack);
42
+ this._pushLog(exports.LOG_LEVELS.ERROR, this._formattedLog(exports.LOG_LEVELS.ERROR, msg, this._callerName(3)));
43
+ }
44
+ _timestamp() {
45
+ let d = new Date();
46
+ return [this._toDoubleDigit(d.getMonth() + 1), this._toDoubleDigit(d.getDate()), d.getFullYear()].join('/') + ' ' +
47
+ [this._toDoubleDigit(d.getHours()), this._toDoubleDigit(d.getMinutes()), this._toDoubleDigit(d.getSeconds())].join(':');
48
+ }
49
+ _formattedLog(level, msg, caller) {
50
+ if (this._isOffline()) {
51
+ return ` [${this._timestamp()} - ${LOG_STRINGS[level]}] [${caller}] ${msg.join(" ")}`;
52
+ }
53
+ else {
54
+ return ` [${LOG_STRINGS[level]}] ${msg.join(" ")}`;
55
+ }
56
+ }
57
+ _callerName(index) {
58
+ let safeIndex = Math.min(index, stackTrace.get().length);
59
+ if (stackTrace.get()[safeIndex]) {
60
+ let callerName = (stackTrace.get()[safeIndex] ? stackTrace.get()[safeIndex].getTypeName() : null);
61
+ if (!callerName) {
62
+ callerName = stackTrace.get()[safeIndex].getFileName().split("/");
63
+ callerName = callerName.slice(callerName.indexOf("src")).join("/");
64
+ }
65
+ return callerName + ":" + stackTrace.get()[safeIndex].getLineNumber();
66
+ }
67
+ return '';
68
+ }
69
+ _processLog(level, args) {
70
+ if (level < this._LOG_LEVEL)
71
+ return;
72
+ let msg = [];
73
+ for (let arg of args)
74
+ msg.push(((typeof arg === 'object' && !(arg instanceof Error)) ? stringify(arg, null, 2) : arg));
75
+ this._pushLog(level, this._formattedLog(level, msg, this._callerName(3)));
76
+ }
77
+ _pushLog(level, fMsg) {
78
+ this.serverless.serverless.cli.log(fMsg, 'hybridless');
79
+ }
80
+ }
81
+ exports.default = Logger;
82
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../src/core/Logger.ts"],"names":[],"mappings":"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"}