From bfc890107f5869129d2a8acac8dbbdcb8f9ca92f Mon Sep 17 00:00:00 2001 From: Kasra Bigdeli Date: Mon, 19 Nov 2018 21:26:05 -0800 Subject: [PATCH] ServiceManager Migrated --- app-backend/built/user/Authenticator.js | 12 +- app-backend/built/user/Authenticator.js.map | 2 +- app-backend/built/user/CaptainManager.js.map | 2 +- app-backend/built/user/ServiceManager.js | 264 ++++++------- app-backend/built/user/ServiceManager.js.map | 2 +- app-backend/package-lock.json | 13 + app-backend/package.json | 2 + app-backend/src/user/Authenticator.ts | 22 +- app-backend/src/user/CaptainManager.ts | 2 +- .../{ServiceManager.js => ServiceManager.ts} | 353 +++++++++--------- 10 files changed, 352 insertions(+), 322 deletions(-) rename app-backend/src/user/{ServiceManager.js => ServiceManager.ts} (70%) diff --git a/app-backend/built/user/Authenticator.js b/app-backend/built/user/Authenticator.js index e464206..ba52039 100644 --- a/app-backend/built/user/Authenticator.js +++ b/app-backend/built/user/Authenticator.js @@ -1,5 +1,4 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); const jwt = require("jsonwebtoken"); const uuid = require("uuid/v4"); const bcrypt = require("bcryptjs"); @@ -148,10 +147,7 @@ class Authenticator { }); }); } -} -const authenticatorCache = {}; -exports = { - get: function (namespace) { + static get(namespace) { if (!namespace) { return undefined; } @@ -162,6 +158,8 @@ exports = { } } return authenticatorCache[namespace]; - }, -}; + } +} +const authenticatorCache = {}; +module.exports = Authenticator; //# sourceMappingURL=Authenticator.js.map \ No newline at end of file diff --git a/app-backend/built/user/Authenticator.js.map b/app-backend/built/user/Authenticator.js.map index 4a5b8a6..a73ee7b 100644 --- a/app-backend/built/user/Authenticator.js.map +++ b/app-backend/built/user/Authenticator.js.map @@ -1 +1 @@ -{"version":3,"file":"Authenticator.js","sourceRoot":"","sources":["../../src/user/Authenticator.ts"],"names":[],"mappings":";;AAAA,oCAAqC;AAErC,gCAAiC;AACjC,mCAAoC;AAEpC,wDAAyD;AACzD,2CAA4C;AAC5C,mDAAoD;AACpD,8DAA+D;AAC/D,0CAA2C;AAC3C,oEAAqE;AAErE,MAAM,sBAAsB,GAAG,MAAM,CAAC,gBAAgB,IAAI,WAAW,CAAC;AAEtE,MAAM,kBAAkB,GAAG,SAAS,CAAC;AACrC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AACpD,MAAM,iCAAiC,GAAG,wBAAwB,CAAC;AAEnE,MAAM,aAAa;IAMf,YAAY,MAAc,EAAE,SAAiB,EAAE,SAAoB;QAC/D,IAAI,CAAC,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,8CAA8C;QACvF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,CAAC;IAED,UAAU,CAAC,OAAe,EAAE,OAAe;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAExB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YACF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,oBAAoB,EACnC,wBAAwB,CAC3B,CAAC;aACL;YAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,iBAAiB;YAC5B,IAAI,CAAC,iBAAiB,EAAE;gBACpB,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,qBAAqB,EACpC,4BAA4B,CAC/B,CAAC;aACL;YAED,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,CAAC;YAE3B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAC1B,IAAI,CAAC,aAAa,GAAG,OAAO,EAC5B,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CACzB,CAAC;YAEF,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACX,CAAC;IAED,iBAAiB,CAAC,QAAgB;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,IAAI,CAAC,SAAS;aAChB,iBAAiB,EAAE;aACnB,IAAI,CAAC,UAAS,mBAAmB;YAC9B,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;YAE1B,IAAI,CAAC,mBAAmB,EAAE;gBACtB,OAAO,sBAAsB,KAAK,QAAQ,CAAC;aAC9C;YAED,OAAO,MAAM,CAAC,WAAW,CACrB,IAAI,CAAC,aAAa,GAAG,QAAQ,EAC7B,mBAAmB,CACtB,CAAC;QACN,CAAC,CAAC,CAAC;IACX,CAAC;IAED,sBAAsB,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC3D,CAAC;IAED,YAAY,CAAC,QAAgB,EAAE,SAAiB;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,iBAAiB;YAC5B,IAAI,CAAC,iBAAiB,EAAE;gBACpB,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,qBAAqB,EACpC,wBAAwB,CAC3B,CAAC;aACL;YAED,MAAM,OAAO,GAAG;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;aAClC,CAAC;YAEF,OAAO,GAAG,CAAC,IAAI,CACX;gBACI,IAAI,EAAE,OAAO;aAChB,EACD,IAAI,CAAC,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EACjD,EAAE,SAAS,EAAE,QAAQ,EAAE,CAC1B,CAAC;QACN,CAAC,CAAC,CAAC;IACX,CAAC;IAED,0BAA0B,CAAC,KAAa;QACpC,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC3D,CAAC;IAED,eAAe,CAAC,KAAa,EAAE,SAAiB;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,IAAI,OAAO,CAAC,UAAS,OAAO,EAAE,MAAM;YACvC,GAAG,CAAC,MAAM,CACN,KAAK,EACL,IAAI,CAAC,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EACjD,UAAS,GAAG,EAAE,UAAe;gBACzB,IAAI,GAAG,EAAE;oBACL,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,MAAM,CACF,cAAc,CAAC,WAAW,CACtB,cAAc,CAAC,yBAAyB,EACxC,sBAAsB,CACzB,CACJ,CAAC;oBACF,OAAO;iBACV;gBAED,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;gBAEpC,IAAI,WAAW,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE;oBAChD,MAAM,CACF,cAAc,CAAC,WAAW,CACtB,cAAc,CAAC,yBAAyB,EACxC,+DAA+D,CAClE,CACJ,CAAC;oBACF,OAAO;iBACV;gBAED,IAAI,WAAW,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;oBAC1C,MAAM,CACF,cAAc,CAAC,WAAW,CACtB,cAAc,CAAC,yBAAyB,EACxC,yCAAyC,CAC5C,CACJ,CAAC;oBACF,OAAO;iBACV;gBAED,OAAO,CAAC,WAAW,CAAC,CAAC;YACzB,CAAC,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,0BAA0B,CAAC,UAAe;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,IAAI,CAAC,eAAe,CACvB,UAAU,EACV,iCAAiC,CACpC,CAAC;IACN,CAAC;IAED,6BAA6B,CAAC,KAAa;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,iCAAiC,CAAC,CAAC;IAC7E,CAAC;IAED,sBAAsB,CAAC,OAAe,EAAE,YAAoB;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,oBAAoB,EACnC,2CAA2C,CAC9C,CAAC;SACL;QAED,OAAO,IAAI,CAAC,eAAe,CACvB;YACI,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,OAAO;SACnB,EACD,uBAAuB,CAC1B,CAAC;IACN,CAAC;IAED,yBAAyB,CAAC,KAAa;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACnE,CAAC;IAED,eAAe,CAAC,GAAQ,EAAE,SAAiB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAE/B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;YAC1B,OAAO,GAAG,CAAC,IAAI,CACX;gBACI,IAAI,EAAE,GAAG;aACZ,EACD,IAAI,CAAC,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CACpD,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB,CAAC,KAAa,EAAE,SAAiB;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,IAAI,OAAO,CAAC,UAAS,OAAO,EAAE,MAAM;YACvC,GAAG,CAAC,MAAM,CACN,KAAK,EACL,IAAI,CAAC,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EACjD,UAAS,GAAG,EAAE,UAAe;gBACzB,IAAI,GAAG,EAAE;oBACL,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,MAAM,CACF,cAAc,CAAC,WAAW,CACtB,cAAc,CAAC,yBAAyB,EACxC,iBAAiB,CACpB,CACJ,CAAC;oBACF,OAAO;iBACV;gBAED,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;gBAEpC,IAAI,WAAW,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;oBAC1C,MAAM,CACF,cAAc,CAAC,WAAW,CACtB,cAAc,CAAC,yBAAyB,EACxC,oCAAoC,CACvC,CACJ,CAAC;oBACF,OAAO;iBACV;gBAED,OAAO,CAAC,WAAW,CAAC,CAAC;YACzB,CAAC,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAMD,MAAM,kBAAkB,GAAU,EAAE,CAAC;AAErC,OAAO,GAAG;IACN,GAAG,EAAE,UAAS,SAAiB;QAC3B,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;YAChC,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC;YAC1D,IAAI,WAAW,EAAE;gBACb,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,aAAa,CAC7C,WAAW,EACX,SAAS,EACT,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAC5C,CAAC;aACL;SACJ;QAED,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;CACJ,CAAC"} \ No newline at end of file +{"version":3,"file":"Authenticator.js","sourceRoot":"","sources":["../../src/user/Authenticator.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app-backend/built/user/CaptainManager.js.map b/app-backend/built/user/CaptainManager.js.map index 6c1cd5e..033ca79 100644 --- a/app-backend/built/user/CaptainManager.js.map +++ b/app-backend/built/user/CaptainManager.js.map @@ -1 +1 @@ -{"version":3,"file":"CaptainManager.js","sourceRoot":"","sources":["../../src/user/CaptainManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"CaptainManager.js","sourceRoot":"","sources":["../../src/user/CaptainManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app-backend/built/user/ServiceManager.js b/app-backend/built/user/ServiceManager.js index bab67d0..b41c732 100644 --- a/app-backend/built/user/ServiceManager.js +++ b/app-backend/built/user/ServiceManager.js @@ -1,32 +1,34 @@ -const CaptainConstants = require('../utils/CaptainConstants'); -const Logger = require('../utils/Logger'); -const fs = require('fs-extra'); -const tar = require('tar'); -const path = require('path'); -const CaptainManager = require('./CaptainManager'); -const ApiStatusCodes = require('../api/ApiStatusCodes'); -const TemplateHelper = require('./TemplateHelper'); -const Authenticator = require('./Authenticator'); -const GitHelper = require('../utils/GitHelper'); -const uuid = require('uuid/v4'); -const requireFromString = require('require-from-string'); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const CaptainConstants = require("../utils/CaptainConstants"); +const Logger = require("../utils/Logger"); +const fs = require("fs-extra"); +const tar = require("tar"); +const path = require("path"); +const CaptainManager = require("./CaptainManager"); +const ApiStatusCodes = require("../api/ApiStatusCodes"); +const TemplateHelper = require("./TemplateHelper"); +const Authenticator = require("./Authenticator"); +const GitHelper = require("../utils/GitHelper"); +const uuid = require("uuid/v4"); +const requireFromString = require("require-from-string"); const BUILD_LOG_SIZE = 50; -const SOURCE_FOLDER_NAME = 'src'; -const DOCKER_FILE = 'Dockerfile'; -const CAPTAIN_DEFINITION_FILE = 'captain-definition'; -const PLACEHOLDER_DOCKER_FILE_CONTENT = 'FROM ' + CaptainConstants.appPlaceholderImageName + +const SOURCE_FOLDER_NAME = "src"; +const DOCKER_FILE = "Dockerfile"; +const CAPTAIN_DEFINITION_FILE = "captain-definition"; +const PLACEHOLDER_DOCKER_FILE_CONTENT = "FROM " + CaptainConstants.appPlaceholderImageName + '\nCMD [ "npm", "start" ]'; function getRawImageSourceFolder(imageName, newVersionPulled) { - return CaptainConstants.captainRawImagesDir + '/' + imageName + '/' + newVersionPulled + '/' + SOURCE_FOLDER_NAME; + return CaptainConstants.captainRawImagesDir + "/" + imageName + "/" + newVersionPulled + "/" + SOURCE_FOLDER_NAME; } function getRawImageBaseFolder(imageName, newVersionPulled) { - return CaptainConstants.captainRawImagesDir + '/' + imageName + '/' + newVersionPulled; + return CaptainConstants.captainRawImagesDir + "/" + imageName + "/" + newVersionPulled; } function getTarImageBaseFolder(imageName, newVersionPulled) { - return CaptainConstants.captainTarImagesDir + '/' + imageName + '/' + newVersionPulled; + return CaptainConstants.captainTarImagesDir + "/" + imageName + "/" + newVersionPulled; } function getCaptainDefinitionTempFolder(serviceName, randomSuffix) { - return CaptainConstants.captainDefinitionTempDir + '/' + serviceName + '/' + randomSuffix; + return CaptainConstants.captainDefinitionTempDir + "/" + serviceName + "/" + randomSuffix; } class BuildLog { constructor(size) { @@ -34,8 +36,8 @@ class BuildLog { this.clear(); } onBuildFailed(error) { - this.log('----------------------'); - this.log('Deploy failed!'); + this.log("----------------------"); + this.log("Deploy failed!"); this.log(error); this.isBuildFailed = true; } @@ -44,11 +46,11 @@ class BuildLog { this.firstLineNumber = -this.size; this.lines = []; for (let i = 0; i < this.size; i++) { - this.lines.push(''); + this.lines.push(""); } } log(msg) { - msg = (msg || '') + ''; + msg = (msg || "") + ""; this.lines.shift(); this.lines.push(msg); this.firstLineNumber++; @@ -65,6 +67,9 @@ class BuildLog { } class ServiceManager { constructor(user, dockerApi, loadBalancerManager) { + this.user = user; + this.dockerApi = dockerApi; + this.loadBalancerManager = loadBalancerManager; this.user = user; this.dataStore = user.dataStore; this.dockerApi = dockerApi; @@ -77,12 +82,12 @@ class ServiceManager { return this.isReady; } createTarFarFromCaptainContent(captainDefinitionContent, appName, tarDestination) { - let serviceName = this.dataStore.getServiceName(appName); - let captainDefinitionDirPath; + const serviceName = this.dataStore.getServiceName(appName); + let captainDefinitionDirPath = undefined; return Promise.resolve() .then(function () { for (let i = 0; i < 100; i++) { - let temp = getCaptainDefinitionTempFolder(serviceName, uuid()); + const temp = getCaptainDefinitionTempFolder(serviceName, uuid()); if (!fs.pathExistsSync(temp)) { captainDefinitionDirPath = temp; break; @@ -91,7 +96,7 @@ class ServiceManager { if (!captainDefinitionDirPath) { throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, "Cannot create a temp file! Something is seriously wrong with the temp folder"); } - return fs.outputFile(captainDefinitionDirPath + '/' + CAPTAIN_DEFINITION_FILE, captainDefinitionContent); + return fs.outputFile(captainDefinitionDirPath + "/" + CAPTAIN_DEFINITION_FILE, captainDefinitionContent); }) .then(function () { return tar.c({ @@ -100,6 +105,9 @@ class ServiceManager { }, [CAPTAIN_DEFINITION_FILE]); }) .then(function () { + if (!captainDefinitionDirPath) { + throw new Error("captainDefinitionDirPath is NULL"); + } return fs.remove(captainDefinitionDirPath); }); } @@ -114,22 +122,22 @@ class ServiceManager { * @returns {Promise} */ createImage(appName, source, gitHash) { - Logger.d('Creating image for: ' + appName); + Logger.d("Creating image for: " + appName); const self = this; - let imageName = this.dataStore.getImageName(CaptainManager.get().getDockerAuthObject(), appName); - let dockerApi = this.dockerApi; - let dataStore = this.dataStore; - let newVersion = null; - let rawImageSourceFolder = null; - let rawImageBaseFolder = null; - let tarImageBaseFolder = null; - let tarballFilePath = null; - let dockerFilePath = null; + const imageName = this.dataStore.getImageName(CaptainManager.get().getDockerAuthObject(), appName); + const dockerApi = this.dockerApi; + const dataStore = this.dataStore; + let newVersion; + let rawImageSourceFolder; + let rawImageBaseFolder; + let tarImageBaseFolder; + let tarballFilePath; + let dockerFilePath; this.activeBuilds[appName] = true; this.buildLogs[appName] = this.buildLogs[appName] || new BuildLog(BUILD_LOG_SIZE); this.buildLogs[appName].clear(); - this.buildLogs[appName].log('------------------------- ' + (new Date())); - this.buildLogs[appName].log('Build started for ' + appName); + this.buildLogs[appName].log("------------------------- " + (new Date())); + this.buildLogs[appName].log("Build started for " + appName); return Promise.resolve() .then(function () { return dataStore.getAppsDataStore().getNewVersion(appName); @@ -138,16 +146,16 @@ class ServiceManager { newVersion = newVersionPulled; rawImageSourceFolder = getRawImageSourceFolder(imageName, newVersionPulled); rawImageBaseFolder = getRawImageBaseFolder(imageName, newVersionPulled); - dockerFilePath = rawImageBaseFolder + '/' + DOCKER_FILE; + dockerFilePath = rawImageBaseFolder + "/" + DOCKER_FILE; tarImageBaseFolder = getTarImageBaseFolder(imageName, newVersionPulled); - tarballFilePath = tarImageBaseFolder + '/image.tar'; + tarballFilePath = tarImageBaseFolder + "/image.tar"; return fs.ensureDir(rawImageSourceFolder) .then(function () { return rawImageSourceFolder; }); }) .then(function (rawImageSourceFolder) { - let promiseToFetchDirectory = null; + let promiseToFetchDirectory; if (source.pathToSrcTarballFile) { promiseToFetchDirectory = tar .x({ @@ -159,7 +167,7 @@ class ServiceManager { }); } else if (source.repoInfo) { - let repoInfo = source.repoInfo; + const repoInfo = source.repoInfo; promiseToFetchDirectory = GitHelper .clone(repoInfo.user, repoInfo.password, repoInfo.repo, repoInfo.branch, rawImageSourceFolder) .then(function () { @@ -174,18 +182,18 @@ class ServiceManager { return dataStore.getAppsDataStore().setGitHash(appName, newVersion, gitHashToSave); }) .then(function () { - return fs.pathExists(rawImageSourceFolder + '/' + CAPTAIN_DEFINITION_FILE); + return fs.pathExists(rawImageSourceFolder + "/" + CAPTAIN_DEFINITION_FILE); }) .then(function (exists) { if (!exists) { - Logger.d('Captain Definition does not exist in the base tar. Looking inside...'); + Logger.d("Captain Definition does not exist in the base tar. Looking inside..."); // check if there is only one child // check if it's a directory // check if captain definition exists in it // rename rawImageSourceFolder to rawImageSourceFolder+'.bak' // move the child directory out to base and rename it to rawImageSourceFolder // read captain definition from the folder and return it. - let directoryInside = null; + let directoryInside; return new Promise(function (resolve, reject) { fs.readdir(rawImageSourceFolder, function (err, files) { if (err) { @@ -207,14 +215,14 @@ class ServiceManager { if (!captainDefinitionExists) { throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, "Captain Definition file does not exist!"); } - const BAK = '.bak'; + const BAK = ".bak"; fs.renameSync(rawImageSourceFolder, rawImageSourceFolder + BAK); fs.renameSync(path.join(rawImageSourceFolder + BAK, directoryInside), rawImageSourceFolder); }); } }) .then(function () { - return fs.readJson(rawImageSourceFolder + '/' + CAPTAIN_DEFINITION_FILE); + return fs.readJson(rawImageSourceFolder + "/" + CAPTAIN_DEFINITION_FILE); }) .then(function (data) { if (!data) { @@ -224,11 +232,11 @@ class ServiceManager { throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, "Captain Definition version is empty!"); } if (data.schemaVersion === 1) { - let templateIdTag = data.templateId; - let dockerfileLines = data.dockerfileLines; - let hasDockerfileLines = dockerfileLines && dockerfileLines.length > 0; + const templateIdTag = data.templateId; + const dockerfileLines = data.dockerfileLines; + const hasDockerfileLines = dockerfileLines && dockerfileLines.length > 0; if (hasDockerfileLines && !templateIdTag) { - return dockerfileLines.join('\n'); + return dockerfileLines.join("\n"); } else if (!hasDockerfileLines && templateIdTag) { return TemplateHelper.get().getDockerfileContentFromTemplateTag(templateIdTag); @@ -258,30 +266,30 @@ class ServiceManager { return dockerApi .buildImageFromDockerFile(imageName, newVersion, tarballFilePath, self.buildLogs[appName]) .catch(function (error) { - throw ApiStatusCodes.createError(ApiStatusCodes.BUILD_ERROR, ('' + error).trim()); + throw ApiStatusCodes.createError(ApiStatusCodes.BUILD_ERROR, ("" + error).trim()); }); }) .then(function () { - Logger.d('Cleaning up up the files... ' + tarImageBaseFolder + ' and ' + rawImageBaseFolder); + Logger.d("Cleaning up up the files... " + tarImageBaseFolder + " and " + rawImageBaseFolder); return fs.remove(tarImageBaseFolder); }) .then(function () { return fs.remove(rawImageBaseFolder); }) .then(function () { - let authObj = CaptainManager.get().getDockerAuthObject(); + const authObj = CaptainManager.get().getDockerAuthObject(); if (!authObj) { - Logger.d('No Docker Auth is found. Skipping pushing the image.'); + Logger.d("No Docker Auth is found. Skipping pushing the image."); return true; } - Logger.d('Docker Auth is found. Pushing the image...'); + Logger.d("Docker Auth is found. Pushing the image..."); return dockerApi .pushImage(imageName, newVersion, authObj, self.buildLogs[appName]) .catch(function (error) { return new Promise(function (resolve, reject) { - Logger.e('PUSH FAILED'); + Logger.e("PUSH FAILED"); Logger.e(error); - reject(ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'Push failed: ' + error)); + reject(ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, "Push failed: " + error)); }); }); }) @@ -300,14 +308,14 @@ class ServiceManager { const self = this; return Promise.resolve() .then(function () { - Logger.d('Verifying Captain owns domain: ' + customDomain); - return CaptainManager.get().verifyCaptainOwnsDomainOrThrow(customDomain); + Logger.d("Verifying Captain owns domain: " + customDomain); + return CaptainManager.get().verifyCaptainOwnsDomainOrThrow(customDomain, undefined); }) .then(function () { if (!appName) { - throw new Error('No App Name! Cannot verify domain'); + throw new Error("No App Name! Cannot verify domain"); } - Logger.d('Enabling SSL for: ' + appName + ' on ' + customDomain); + Logger.d("Enabling SSL for: " + appName + " on " + customDomain); return self.dataStore.getAppsDataStore().verifyCustomDomainBelongsToApp(appName, customDomain); }) .then(function () { @@ -324,20 +332,20 @@ class ServiceManager { const self = this; return Promise.resolve() .then(function () { - let rootDomain = self.dataStore.getRootDomain(); - let dotRootDomain = "." + rootDomain; + const rootDomain = self.dataStore.getRootDomain(); + const dotRootDomain = "." + rootDomain; if (!customDomain || !(/^[a-z0-9\-\.]+$/.test(customDomain))) { - throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_BAD_NAME, 'Domain name is not accepted. Please use alphanumerical domains such as myapp.google123.ca'); + throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_BAD_NAME, "Domain name is not accepted. Please use alphanumerical domains such as myapp.google123.ca"); } if (customDomain.length > 80) { - throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_BAD_NAME, 'Domain name is not accepted. Please use alphanumerical domains less than 80 characters in length.'); + throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_BAD_NAME, "Domain name is not accepted. Please use alphanumerical domains less than 80 characters in length."); } - if (customDomain.indexOf('..') >= 0) { + if (customDomain.indexOf("..") >= 0) { throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_BAD_NAME, 'Domain name is not accepted. You cannot have two consecutive periods ".." inside a domain name. Please use alphanumerical domains such as myapp.google123.ca'); } if (customDomain.indexOf(dotRootDomain) >= 0 && (customDomain.indexOf(dotRootDomain) + dotRootDomain.length) === customDomain.length) { - throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_BAD_NAME, 'Domain name is not accepted. Custom domain cannot be subdomain of root domain.'); + throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_BAD_NAME, "Domain name is not accepted. Custom domain cannot be subdomain of root domain."); } }) .then(function () { @@ -345,9 +353,9 @@ class ServiceManager { }) .then(function () { if (!appName) { - throw new Error('No App Name! Cannot verify domain'); + throw new Error("No App Name! Cannot verify domain"); } - Logger.d('Enabling custom domain for: ' + appName); + Logger.d("Enabling custom domain for: " + appName); return self.dataStore.getAppsDataStore().addCustomDomainForApp(appName, customDomain); }) .then(function () { @@ -359,9 +367,9 @@ class ServiceManager { return Promise.resolve() .then(function () { if (!appName) { - throw new Error('No App Name! Cannot verify domain'); + throw new Error("No App Name! Cannot verify domain"); } - Logger.d('Removing custom domain for: ' + appName); + Logger.d("Removing custom domain for: " + appName); return self.dataStore.getAppsDataStore().removeCustomDomainForApp(appName, customDomain); }) .then(function () { @@ -370,23 +378,22 @@ class ServiceManager { } enableSslForApp(appName) { const self = this; - let rootDomain = null; - let app = null; + let rootDomain; return Promise.resolve() .then(function () { return self.verifyCaptainOwnsGenericSubDomain(appName); }) .then(function () { - Logger.d('Enabling SSL for: ' + appName); + Logger.d("Enabling SSL for: " + appName); if (!appName) { - throw new Error('No App Name! Cannot verify domain'); + throw new Error("No App Name! Cannot verify domain"); } return self.dataStore.getRootDomain(); }) .then(function (val) { rootDomain = val; if (!rootDomain) { - throw new Error('No rootDomain! Cannot verify domain'); + throw new Error("No rootDomain! Cannot verify domain"); } }) .then(function () { @@ -394,7 +401,7 @@ class ServiceManager { return self.dataStore.getAppsDataStore().getAppDefinition(appName); }) .then(function () { - return appName + '.' + rootDomain; + return appName + "." + rootDomain; }) .then(function (domainName) { return CaptainManager.get().requestCertificateForDomain(domainName); @@ -408,11 +415,11 @@ class ServiceManager { } verifyCaptainOwnsGenericSubDomain(appName) { const self = this; - let rootDomain = null; + let rootDomain; return Promise.resolve() .then(function () { if (!appName) { - throw new Error('No App Name! Cannot verify domain'); + throw new Error("No App Name! Cannot verify domain"); } return self.dataStore.getRootDomain(); }) @@ -424,22 +431,22 @@ class ServiceManager { return self.dataStore.getAppsDataStore().getAppDefinition(appName); }) .then(function () { - return appName + '.' + rootDomain; + return appName + "." + rootDomain; }) .then(function (domainName) { - Logger.d('Verifying Captain owns domain: ' + domainName); - return CaptainManager.get().verifyCaptainOwnsDomainOrThrow(domainName); + Logger.d("Verifying Captain owns domain: " + domainName); + return CaptainManager.get().verifyCaptainOwnsDomainOrThrow(domainName, undefined); }); } removeApp(appName) { - Logger.d('Removing service for: ' + appName); + Logger.d("Removing service for: " + appName); const self = this; - let serviceName = this.dataStore.getServiceName(appName); - let dockerApi = this.dockerApi; - let dataStore = this.dataStore; + const serviceName = this.dataStore.getServiceName(appName); + const dockerApi = this.dockerApi; + const dataStore = this.dataStore; return Promise.resolve() .then(function () { - Logger.d('Check if service is running: ' + serviceName); + Logger.d("Check if service is running: " + serviceName); return dockerApi .isServiceRunningByName(serviceName); }) @@ -449,7 +456,7 @@ class ServiceManager { .removeService(serviceName); } else { - Logger.w('Cannot delete service... It is not running: ' + serviceName); + Logger.w("Cannot delete service... It is not running: " + serviceName); return true; } }) @@ -461,11 +468,11 @@ class ServiceManager { }); } getUnusedImages(mostRecentLimit) { - Logger.d('Getting unused images, excluding most recent ones: ' + mostRecentLimit); + Logger.d("Getting unused images, excluding most recent ones: " + mostRecentLimit); const self = this; - let dockerApi = this.dockerApi; - let dataStore = this.dataStore; - let allImages = null; + const dockerApi = this.dockerApi; + const dataStore = this.dataStore; + let allImages; return Promise.resolve() .then(function () { return dockerApi @@ -476,7 +483,7 @@ class ServiceManager { return dataStore.getAppsDataStore().getAppDefinitions(); }) .then(function (apps) { - let unusedImages = []; + const unusedImages = []; for (let i = 0; i < allImages.length; i++) { const img = allImages[i]; let imageInUse = false; @@ -484,7 +491,7 @@ class ServiceManager { for (let j = 0; j < img.RepoTags.length; j++) { const repoTag = img.RepoTags[j]; Object.keys(apps).forEach(function (key, index) { - let app = apps[key]; + const app = apps[key]; app.appName = key; for (let k = 0; k < (mostRecentLimit + 1); k++) { if (repoTag.indexOf(dataStore.getImageNameWithoutAuthObj(app.appName, Number(app.deployedVersion) - k)) >= 0) { @@ -497,7 +504,7 @@ class ServiceManager { if (!imageInUse) { unusedImages.push({ id: img.Id, - description: (img.RepoTags && img.RepoTags.length) ? img.RepoTags[0] : 'untagged' + description: (img.RepoTags && img.RepoTags.length) ? img.RepoTags[0] : "untagged" }); } } @@ -505,11 +512,9 @@ class ServiceManager { }); } deleteImages(imageIds) { - Logger.d('Deleting images...'); + Logger.d("Deleting images..."); const self = this; - let dockerApi = this.dockerApi; - let dataStore = this.dataStore; - let allImages = null; + const dockerApi = this.dockerApi; return Promise.resolve() .then(function () { return dockerApi @@ -517,44 +522,43 @@ class ServiceManager { }); } ensureServiceInitedAndUpdated(appName, version) { - Logger.d('Ensure service inited and Updated for: ' + appName); + Logger.d("Ensure service inited and Updated for: " + appName); const self = this; - let serviceName = this.dataStore.getServiceName(appName); + const serviceName = this.dataStore.getServiceName(appName); const dockerAuthObject = CaptainManager.get().getDockerAuthObject(); - let imageName = this.dataStore.getImageName(dockerAuthObject, appName, version); - let dockerApi = this.dockerApi; - let dataStore = this.dataStore; - let app = null; + const imageName = this.dataStore.getImageName(dockerAuthObject, appName, version); + const dockerApi = this.dockerApi; + const dataStore = this.dataStore; + let app; return dataStore.getAppsDataStore().setDeployedVersion(appName, version) .then(function () { return dataStore.getAppsDataStore().getAppDefinition(appName); }) .then(function (appFound) { app = appFound; - Logger.d('Check if service is running: ' + serviceName); + Logger.d("Check if service is running: " + serviceName); return dockerApi .isServiceRunningByName(serviceName); }) .then(function (isRunning) { if (isRunning) { - Logger.d('Service is already running: ' + serviceName); + Logger.d("Service is already running: " + serviceName); return true; } else { - Logger.d('Creating service: ' + serviceName + ' with image: ' + imageName); + Logger.d("Creating service: " + serviceName + " with image: " + imageName); // if we pass in networks here. Almost always it results in a delayed update which causes // update errors if they happen right away! return dockerApi - .createServiceOnNodeId(imageName, serviceName); + .createServiceOnNodeId(imageName, serviceName, undefined, undefined, undefined, undefined, undefined); } }) .then(function () { return self.createPreDeployFunctionIfExist(app); }) .then(function (preDeployFunction) { - Logger.d('Updating service: ' + serviceName + ' with image: ' + imageName); - return dockerApi - .updateService(serviceName, imageName, app.volumes, app.networks, app.envVars, null, dockerAuthObject, Number(app.instanceCount), app.nodeId, dataStore.getNameSpace(), app, preDeployFunction); + Logger.d("Updating service: " + serviceName + " with image: " + imageName); + return dockerApi.updateService(serviceName, imageName, app.volumes, app.networks, app.envVars, undefined, dockerAuthObject, Number(app.instanceCount), app.nodeId, dataStore.getNameSpace(), undefined, app, preDeployFunction); }) .then(function () { return new Promise(function (resolve) { @@ -569,7 +573,7 @@ class ServiceManager { createPreDeployFunctionIfExist(app) { let preDeployFunction = app.preDeployFunction; if (!preDeployFunction) { - return null; + return undefined; } /* ////////////////////////////////// Expected content of the file ////////////////////////// @@ -585,15 +589,15 @@ class ServiceManager { }); }; */ - preDeployFunction = preDeployFunction + '\n\n module.exports = preDeployFunction'; + preDeployFunction = preDeployFunction + "\n\n module.exports = preDeployFunction"; return requireFromString(preDeployFunction); } updateAppDefinition(appName, instanceCount, envVars, volumes, nodeId, notExposeAsWebApp, forceSsl, ports, appPushWebhook, customNginxConfig, preDeployFunction) { const self = this; const dataStore = this.dataStore; const dockerApi = this.dockerApi; - let serviceName = null; - let checkIfNodeIdExists = function (nodeIdToCheck) { + let serviceName; + const checkIfNodeIdExists = function (nodeIdToCheck) { return dockerApi .getNodesInfo() .then(function (nodeInfo) { @@ -666,13 +670,13 @@ class ServiceManager { * @returns the active build that it finds */ isAnyBuildRunning() { - let activeBuilds = this.activeBuilds; - for (let appName in activeBuilds) { + const activeBuilds = this.activeBuilds; + for (const appName in activeBuilds) { if (!!activeBuilds[appName]) { return appName; } } - return null; + return undefined; } getBuildStatus(appName) { const self = this; @@ -684,17 +688,17 @@ class ServiceManager { }; } logBuildFailed(appName, error) { - error = (error || '') + ''; + error = (error || "") + ""; this.buildLogs[appName] = this.buildLogs[appName] || new BuildLog(BUILD_LOG_SIZE); this.buildLogs[appName].onBuildFailed(error); } updateServiceOnDefinitionUpdate(appName) { const self = this; - let serviceName = this.dataStore.getServiceName(appName); + const serviceName = this.dataStore.getServiceName(appName); const dockerAuthObject = CaptainManager.get().getDockerAuthObject(); const dataStore = this.dataStore; const dockerApi = this.dockerApi; - let appFound = null; + let appFound; return Promise.resolve() .then(function () { return dataStore.getAppsDataStore().getAppDefinition(appName); @@ -702,24 +706,24 @@ class ServiceManager { .then(function (app) { appFound = app; if (!appFound) { - throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'App name not found!'); + throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, "App name not found!"); } return self.createPreDeployFunctionIfExist(app); }) .then(function (preDeployFunction) { if (!appFound) { - throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'App name not found!'); + throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, "App name not found!"); } return dockerApi - .updateService(serviceName, null, appFound.volumes, appFound.networks, appFound.envVars, null, dockerAuthObject, Number(appFound.instanceCount), appFound.nodeId, dataStore.getNameSpace(), appFound.ports, appFound, preDeployFunction); + .updateService(serviceName, undefined, appFound.volumes, appFound.networks, appFound.envVars, undefined, dockerAuthObject, Number(appFound.instanceCount), appFound.nodeId, dataStore.getNameSpace(), appFound.ports, appFound, preDeployFunction); }); } reloadLoadBalancer() { - Logger.d('Updating Load Balancer'); + Logger.d("Updating Load Balancer"); const self = this; return self.loadBalancerManager.rePopulateNginxConfigFile(self.dataStore) .then(function () { - Logger.d('sendReloadSignal...'); + Logger.d("sendReloadSignal..."); return self.loadBalancerManager.sendReloadSignal(); }); } diff --git a/app-backend/built/user/ServiceManager.js.map b/app-backend/built/user/ServiceManager.js.map index f89372d..f997cc0 100644 --- a/app-backend/built/user/ServiceManager.js.map +++ b/app-backend/built/user/ServiceManager.js.map @@ -1 +1 @@ -{"version":3,"file":"ServiceManager.js","sourceRoot":"","sources":["../../src/user/ServiceManager.js"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ServiceManager.js","sourceRoot":"","sources":["../../src/user/ServiceManager.ts"],"names":[],"mappings":";;AAAA,8DAA+D;AAC/D,0CAA2C;AAC3C,+BAAgC;AAChC,2BAA4B;AAC5B,6BAA8B;AAC9B,mDAAoD;AAIpD,wDAAyD;AACzD,mDAAoD;AACpD,iDAAkD;AAClD,gDAAiD;AACjD,gCAAiC;AACjC,yDAA0D;AAE1D,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC,MAAM,WAAW,GAAG,YAAY,CAAC;AACjC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AACrD,MAAM,+BAA+B,GAAG,OAAO,GAAG,gBAAgB,CAAC,uBAAuB;IACtF,0BAA0B,CAAC;AAE/B,SAAS,uBAAuB,CAAC,SAAiB,EAAE,gBAAwB;IACxE,OAAO,gBAAgB,CAAC,mBAAmB,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,gBAAgB,GAAG,GAAG,GAAG,kBAAkB,CAAC;AACtH,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAiB,EAAE,gBAAwB;IACtE,OAAO,gBAAgB,CAAC,mBAAmB,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,gBAAgB,CAAC;AAC3F,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAiB,EAAE,gBAAwB;IACtE,OAAO,gBAAgB,CAAC,mBAAmB,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,gBAAgB,CAAC;AAC3F,CAAC;AAED,SAAS,8BAA8B,CAAC,WAAmB,EAAE,YAAoB;IAC7E,OAAO,gBAAgB,CAAC,wBAAwB,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG,YAAY,CAAC;AAC9F,CAAC;AAGD,MAAM,QAAQ;IAKV,YAAoB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,aAAa,CAAC,KAAa;QACvB,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,KAAK;QACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACvB;IACL,CAAC;IAED,GAAG,CAAC,GAAW;QACX,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,OAAO;QACH,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,oGAAoG;QACpG,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,eAAe,EAAE,IAAI,CAAC,eAAe;SACxC,CAAC,CAAC,CAAC;IACR,CAAC;CACJ;AAGD,MAAM,cAAc;IAOhB,YAAoB,IAAS,EAAU,SAAoB,EAAU,mBAAwC;QAAzF,SAAI,GAAJ,IAAI,CAAK;QAAU,cAAS,GAAT,SAAS,CAAW;QAAU,wBAAmB,GAAnB,mBAAmB,CAAqB;QACzG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IAExB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,8BAA8B,CAAC,wBAAgC,EAAE,OAAe,EAAE,cAAsB;QAEpG,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE3D,IAAI,wBAAwB,GAAsB,SAAS,CAAC;QAE5D,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC1B,MAAM,IAAI,GAAG,8BAA8B,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;oBAC1B,wBAAwB,GAAG,IAAI,CAAC;oBAChC,MAAM;iBACT;aACJ;YAED,IAAI,CAAC,wBAAwB,EAAE;gBAC3B,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,EAAE,8EAA8E,CAAC,CAAC;aACzJ;YAED,OAAO,EAAE,CAAC,UAAU,CAAC,wBAAwB,GAAG,GAAG,GAAG,uBAAuB,EAAE,wBAAwB,CAAC,CAAC;QAE7G,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,GAAG,CAAC,CAAC,CAAC;gBACT,IAAI,EAAE,cAAc;gBACpB,GAAG,EAAE,wBAAwB;aAChC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAElC,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,IAAI,CAAC,wBAAwB,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;aACvD;YAED,OAAO,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAE/C,CAAC,CAAC,CAAC;IACX,CAAC;IAED;;;;;;;;;OASG;IACH,WAAW,CAAC,OAAe,EAAE,MAAW,EAAE,OAAe;QAErD,MAAM,CAAC,CAAC,CAAC,sBAAsB,GAAG,OAAO,CAAC,CAAC;QAE3C,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC;QACnG,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,UAAkB,CAAC;QACvB,IAAI,oBAA4B,CAAC;QACjC,IAAI,kBAA0B,CAAC;QAC/B,IAAI,kBAA0B,CAAC;QAC/B,IAAI,eAAuB,CAAC;QAC5B,IAAI,cAAsB,CAAC;QAE3B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC;QAElF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,oBAAoB,GAAG,OAAO,CAAC,CAAC;QAE5D,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YAEF,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE/D,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,gBAAgB;YAE5B,UAAU,GAAG,gBAAgB,CAAC;YAE9B,oBAAoB,GAAG,uBAAuB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAC5E,kBAAkB,GAAG,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YACxE,cAAc,GAAG,kBAAkB,GAAG,GAAG,GAAG,WAAW,CAAC;YAExD,kBAAkB,GAAG,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YACxE,eAAe,GAAG,kBAAkB,GAAG,YAAY,CAAC;YAGpD,OAAO,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC;iBACpC,IAAI,CAAC;gBACF,OAAO,oBAAoB,CAAC;YAChC,CAAC,CAAC,CAAC;QACX,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,oBAAoB;YAEhC,IAAI,uBAAwC,CAAC;YAE7C,IAAI,MAAM,CAAC,oBAAoB,EAAE;gBAC7B,uBAAuB,GAAG,GAAG;qBACxB,CAAC,CAAC;oBACC,IAAI,EAAE,MAAM,CAAC,oBAAoB;oBACjC,GAAG,EAAE,oBAAoB;iBAC5B,CAAC;qBACD,IAAI,CAAC;oBACF,OAAO,OAAO,CAAC;gBACnB,CAAC,CAAC,CAAC;aACV;iBAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACjC,uBAAuB,GAAG,SAAS;qBAC9B,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;qBAC7F,IAAI,CAAC;oBACF,OAAO,SAAS,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;aACV;iBAAM;gBACH,OAAO,+BAA+B,CAAC;aAC1C;YAED,OAAO,uBAAuB;iBACzB,IAAI,CAAC,UAAU,aAAa;gBAEzB,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;YAEvF,CAAC,CAAC;iBACD,IAAI,CAAC;gBAEF,OAAO,EAAE,CAAC,UAAU,CAAC,oBAAoB,GAAG,GAAG,GAAG,uBAAuB,CAAC,CAAC;YAE/E,CAAC,CAAC;iBACD,IAAI,CAAC,UAAU,MAAM;gBAElB,IAAI,CAAC,MAAM,EAAE;oBAET,MAAM,CAAC,CAAC,CAAC,sEAAsE,CAAC,CAAC;oBAEjF,mCAAmC;oBACnC,4BAA4B;oBAC5B,2CAA2C;oBAC3C,6DAA6D;oBAC7D,6EAA6E;oBAC7E,yDAAyD;oBAEzD,IAAI,eAAuB,CAAC;oBAE5B,OAAO,IAAI,OAAO,CACV,UAAU,OAAO,EAAE,MAAM;wBAErB,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAE,UAAU,GAAG,EAAE,KAAK;4BAEjD,IAAI,GAAG,EAAE;gCACL,MAAM,CAAC,GAAG,CAAC,CAAC;gCACZ,OAAO;6BACV;4BAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;gCAC7F,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,EAAE,yCAAyC,CAAC,CAAC,CAAC;gCACnH,OAAO;6BACV;4BAED,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBAEtB,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC;yBACL,IAAI,CAAC,UAAU,SAAiB;wBAE7B,eAAe,GAAG,SAAS,CAAC;wBAE5B,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,eAAe,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC;oBAE/G,CAAC,CAAC;yBACD,IAAI,CAAC,UAAU,uBAAuB;wBAEnC,IAAI,CAAC,uBAAuB,EAAE;4BAC1B,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,EAAE,yCAAyC,CAAC,CAAC;yBACpH;wBAED,MAAM,GAAG,GAAG,MAAM,CAAC;wBAEnB,EAAE,CAAC,UAAU,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,GAAG,CAAC,CAAC;wBAChE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE,eAAe,CAAC,EAAE,oBAAoB,CAAC,CAAC;oBAEhG,CAAC,CAAC,CAAC;iBACV;YACL,CAAC,CAAC;iBACD,IAAI,CAAC;gBAEF,OAAO,EAAE,CAAC,QAAQ,CAAC,oBAAoB,GAAG,GAAG,GAAG,uBAAuB,CAAC,CAAC;YAE7E,CAAC,CAAC;iBACD,IAAI,CAAC,UAAU,IAAI;gBAEhB,IAAI,CAAC,IAAI,EAAE;oBACP,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,EAAE,mCAAmC,CAAC,CAAC;iBAC9G;gBAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBACrB,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,EAAE,sCAAsC,CAAC,CAAC;iBACjH;gBAED,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE;oBAE1B,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC;oBACtC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;oBAC7C,MAAM,kBAAkB,GAAG,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;oBAEzE,IAAI,kBAAkB,IAAI,CAAC,aAAa,EAAE;wBAEtC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAErC;yBAAM,IAAI,CAAC,kBAAkB,IAAI,aAAa,EAAE;wBAE7C,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,mCAAmC,CAAC,aAAa,CAAC,CAAC;qBAElF;yBAAM;wBAEH,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,EAAE,uFAAuF,CAAC,CAAC;qBAElK;iBAEJ;qBAAM;oBAEH,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,EAAE,8CAA8C,CAAC,CAAC;iBAEzH;YACL,CAAC,CAAC,CAAC;QAEX,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,iBAAiB;YAE7B,OAAO,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAE5D,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAE5C,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,GAAG,CAAC,CAAC,CAAC;gBACT,IAAI,EAAE,eAAe;gBACrB,GAAG,EAAE,kBAAkB;aAC1B,EAAE,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAC;QAE1C,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,SAAS;iBACX,wBAAwB,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;iBACzF,KAAK,CAAC,UAAU,KAAU;gBACvB,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;QAEX,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,MAAM,CAAC,CAAC,CAAC,8BAA8B,GAAG,kBAAkB,GAAG,SAAS,GAAG,kBAAkB,CAAC,CAAC;YAE/F,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAEzC,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAEzC,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;YAE3D,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC;gBACjE,OAAO,IAAI,CAAC;aACf;YAED,MAAM,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC;YAEvD,OAAO,SAAS;iBACX,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;iBAClE,KAAK,CAAC,UAAU,KAAK;gBAClB,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM;oBACxC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;oBACxB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAChB,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,EAAE,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC;gBACrG,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QAEX,CAAC,CAAC;aACD,IAAI,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YACnC,OAAO,UAAU,CAAC;QACtB,CAAC,CAAC;aACD,KAAK,CAAC,UAAU,KAAK;YAClB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YACnC,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM;gBACxC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACX,CAAC;IAED,qBAAqB,CAAC,OAAe,EAAE,YAAoB;QAEvD,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YAEF,MAAM,CAAC,CAAC,CAAC,iCAAiC,GAAG,YAAY,CAAC,CAAC;YAE3D,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,8BAA8B,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAExF,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;aACxD;YAED,MAAM,CAAC,CAAC,CAAC,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,CAAC,CAAC;YAEjE,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,8BAA8B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAEnG,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;QAE1E,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAE1F,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAErC,CAAC,CAAC,CAAC;IACX,CAAC;IAED,eAAe,CAAC,OAAe,EAAE,YAAoB;QAEjD,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YAEF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAClD,MAAM,aAAa,GAAG,GAAG,GAAG,UAAU,CAAC;YAEvC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE;gBAC1D,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,qBAAqB,EACjE,2FAA2F,CAAC,CAAC;aACpG;YAED,IAAI,YAAY,CAAC,MAAM,GAAG,EAAE,EAAE;gBAC1B,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,qBAAqB,EACjE,mGAAmG,CAAC,CAAC;aAC5G;YAED,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACjC,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,qBAAqB,EACjE,8JAA8J,CAAC,CAAC;aACvK;YAED,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxC,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,YAAY,CAAC,MAAM,EAAE;gBACtF,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,qBAAqB,EACjE,gFAAgF,CAAC,CAAC;aACzF;QAGL,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,yCAAyC,CAAC,YAAY,CAAC,CAAC;QAExF,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;aACxD;YAED,MAAM,CAAC,CAAC,CAAC,8BAA8B,GAAG,OAAO,CAAC,CAAC;YAEnD,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAE1F,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAErC,CAAC,CAAC,CAAC;IACX,CAAC;IAED,kBAAkB,CAAC,OAAe,EAAE,YAAoB;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;aACxD;YAED,MAAM,CAAC,CAAC,CAAC,8BAA8B,GAAG,OAAO,CAAC,CAAC;YAEnD,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,wBAAwB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAE7F,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAErC,CAAC,CAAC,CAAC;IACX,CAAC;IAED,eAAe,CAAC,OAAe;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,UAAkB,CAAC;QAEvB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YAEF,OAAO,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAC;QAE3D,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,MAAM,CAAC,CAAC,CAAC,oBAAoB,GAAG,OAAO,CAAC,CAAC;YAEzC,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;aACxD;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QAE1C,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,GAAG;YAEf,UAAU,GAAG,GAAG,CAAC;YAEjB,IAAI,CAAC,UAAU,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aAC1D;QAEL,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,uEAAuE;YACvE,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEvE,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,OAAO,GAAG,GAAG,GAAG,UAAU,CAAC;QAEtC,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,UAAU;YAEtB,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;QAExE,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;QAEnF,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAErC,CAAC,CAAC,CAAC;IACX,CAAC;IAED,iCAAiC,CAAC,OAAe;QAE7C,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,UAAkB,CAAC;QAEvB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;aACxD;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QAE1C,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,GAAG;YAEf,UAAU,GAAG,GAAG,CAAC;QAErB,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,uEAAuE;YACvE,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEvE,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,OAAO,GAAG,GAAG,GAAG,UAAU,CAAC;QAEtC,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,UAAU;YAEtB,MAAM,CAAC,CAAC,CAAC,iCAAiC,GAAG,UAAU,CAAC,CAAC;YAEzD,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,8BAA8B,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEtF,CAAC,CAAC,CAAC;IACX,CAAC;IAED,SAAS,CAAC,OAAe;QACrB,MAAM,CAAC,CAAC,CAAC,wBAAwB,GAAG,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YAEF,MAAM,CAAC,CAAC,CAAC,+BAA+B,GAAG,WAAW,CAAC,CAAC;YACxD,OAAO,SAAS;iBACX,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAE7C,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,SAAS;YACrB,IAAI,SAAS,EAAE;gBACX,OAAO,SAAS;qBACX,aAAa,CAAC,WAAW,CAAC,CAAC;aACnC;iBAAM;gBACH,MAAM,CAAC,CAAC,CAAC,8CAA8C,GAAG,WAAW,CAAC,CAAC;gBACvE,OAAO,IAAI,CAAC;aACf;QAEL,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAErE,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAErC,CAAC,CAAC,CAAC;IACX,CAAC;IAED,eAAe,CAAC,eAAuB;QACnC,MAAM,CAAC,CAAC,CAAC,qDAAqD,GAAG,eAAe,CAAC,CAAC;QAClF,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAgB,CAAC;QAErB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YAEF,OAAO,SAAS;iBACX,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,MAAM;YAElB,SAAS,GAAG,MAAM,CAAC;YAEnB,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAC5D,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,IAAI;YAEhB,MAAM,YAAY,GAAG,EAAE,CAAC;YAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,GAAG,CAAC,QAAQ,EAAE;oBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,KAAK;4BAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;4BACtB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;4BAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gCAC5C,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,0BAA0B,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oCAC1G,UAAU,GAAG,IAAI,CAAC;iCACrB;6BACJ;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;gBAED,IAAI,CAAC,UAAU,EAAE;oBACb,YAAY,CAAC,IAAI,CAAC;wBACd,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;qBACpF,CAAC,CAAC;iBACN;aACJ;YAED,OAAO,YAAY,CAAC;QAExB,CAAC,CAAC,CAAC;IACX,CAAC;IAED,YAAY,CAAC,QAAkB;QAE3B,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YAEF,OAAO,SAAS;iBACX,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACX,CAAC;IAED,6BAA6B,CAAC,OAAe,EAAE,OAAe;QAE1D,MAAM,CAAC,CAAC,CAAC,yCAAyC,GAAG,OAAO,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,GAAQ,CAAC;QAEb,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC;aACnE,IAAI,CAAC;YACF,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClE,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,QAAQ;YACpB,GAAG,GAAG,QAAQ,CAAC;YAEf,MAAM,CAAC,CAAC,CAAC,+BAA+B,GAAG,WAAW,CAAC,CAAC;YACxD,OAAO,SAAS;iBACX,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,SAAS;YACrB,IAAI,SAAS,EAAE;gBACX,MAAM,CAAC,CAAC,CAAC,8BAA8B,GAAG,WAAW,CAAC,CAAC;gBACvD,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,MAAM,CAAC,CAAC,CAAC,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,SAAS,CAAC,CAAC;gBAC3E,yFAAyF;gBACzF,2CAA2C;gBAC3C,OAAO,SAAS;qBACX,qBAAqB,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;aAC7G;QACL,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;QAEpD,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,iBAAiB;YAE7B,MAAM,CAAC,CAAC,CAAC,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,SAAS,CAAC,CAAC;YAE3E,OAAO,SAAS,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,EACzF,SAAS,EAAE,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EACjE,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAEtE,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO;gBAChC,oEAAoE;gBACpE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACX,CAAC;IAED,8BAA8B,CAAC,GAAQ;QAEnC,IAAI,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC;QAE9C,IAAI,CAAC,iBAAiB,EAAE;YACpB,OAAO,SAAS,CAAC;SACpB;QAED;;;;;;;;;;;;;WAaG;QAEH,iBAAiB,GAAG,iBAAiB,GAAG,yCAAyC,CAAC;QAElF,OAAO,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,mBAAmB,CAAC,OAAe,EAAE,aAAqB,EAAE,OAAc,EAAE,OAAc,EACtF,MAAc,EAAE,iBAA0B,EAAE,QAAiB,EAAE,KAAY,EAC1E,cAAmB,EAAG,iBAAyB,EAAE,iBAAyB;QAE3E,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,IAAI,WAAmB,CAAC;QAExB,MAAM,mBAAmB,GAAG,UAAU,aAAqB;YACvD,OAAO,SAAS;iBACX,YAAY,EAAE;iBACd,IAAI,CAAC,UAAU,QAAQ;gBAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACtC,IAAI,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;wBACtC,OAAO;qBACV;iBACJ;gBAED,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,EAAE,iDAAiD,GAAG,aAAa,CAAC,CAAC;YAE7I,CAAC,CAAC,CAAC;QACX,CAAC,CAAC;QAEF,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YAEF,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAElE,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,GAAG;YAEf,WAAW,GAAG,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAEhD,oEAAoE;YACpE,IAAI,GAAG,CAAC,iBAAiB,EAAE;gBAEvB,IAAI,MAAM,EAAE;oBAER,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;iBAEtC;qBAAM;oBAEH,IAAI,GAAG,CAAC,MAAM,EAAE;wBAEZ,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;qBAEvB;yBAAM;wBAEH,OAAO,SAAS;6BACX,sBAAsB,CAAC,WAAW,CAAC;6BACnC,IAAI,CAAC,UAAU,SAAkB;4BAC9B,IAAI,CAAC,SAAS,EAAE;gCACZ,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,EAAE,mDAAmD,CAAC,CAAC;6BAC9H;4BACD,OAAO,SAAS;iCACX,sBAAsB,CAAC,WAAW,CAAC,CAAC;wBAC7C,CAAC,CAAC;6BACD,IAAI,CAAC,UAAU,oBAA4B;4BACxC,IAAI,CAAC,oBAAoB,EAAE;gCACvB,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC,CAAC;6BAC1H;4BAED,MAAM,GAAG,oBAAoB,CAAC;wBAElC,CAAC,CAAC,CAAC;qBACV;iBAEJ;aAEJ;iBAAM;gBACH,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;oBAC3B,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,EAAE,oDAAoD,CAAC,CAAC;iBAC5H;gBAED,IAAI,MAAM,EAAE;oBAER,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;iBACtC;aACJ;QAEL,CAAC,CAAC;aACD,IAAI,CAAC;YAEF,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EACxG,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAClC,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAC3D,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAE9C,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACX,CAAC;IAED,aAAa,CAAC,OAAe;QACzB,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,iBAAiB;QAEb,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAEvC,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE;YAChC,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC;aAClB;SACJ;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,cAAc,CAAC,OAAe;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC;QAElF,OAAO;YACH,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;YACvC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,aAAa;SACvD,CAAC;IACN,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,KAAa;QACzC,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC;QAClF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,+BAA+B,CAAC,OAAe;QAE3C,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;QAEpE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,QAAa,CAAC;QAElB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YACF,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClE,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,GAAG;YAEf,QAAQ,GAAG,GAAG,CAAC;YAEf,IAAI,CAAC,QAAQ,EAAE;gBACX,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;aAChG;YAED,OAAO,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;QAEpD,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,iBAAiB;YAE7B,IAAI,CAAC,QAAQ,EAAE;gBACX,MAAM,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;aAChG;YAED,OAAO,SAAS;iBACX,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,EACnG,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,EAC3F,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IAEX,CAAC;IAED,kBAAkB;QAEd,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC;aACpE,IAAI,CAAC;YACF,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;IACX,CAAC;CACJ;AAED,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC"} \ No newline at end of file diff --git a/app-backend/package-lock.json b/app-backend/package-lock.json index 7e007e5..33e3df2 100644 --- a/app-backend/package-lock.json +++ b/app-backend/package-lock.json @@ -97,6 +97,11 @@ "@types/tough-cookie": "*" } }, + "@types/require-from-string": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/require-from-string/-/require-from-string-1.2.0.tgz", + "integrity": "sha512-5vE9WoOOC9/DoD3Zj53UISpM+5tSvh8k0mL4fe2zFI6vO715/W4IQ3EdVUrWVMrFi1/NZhyMvm2iKsDFkEGddQ==" + }, "@types/ssh2": { "version": "0.5.36", "resolved": "https://registry.npmjs.org/@types/ssh2/-/ssh2-0.5.36.tgz", @@ -115,6 +120,14 @@ "@types/node": "*" } }, + "@types/tar": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/tar/-/tar-4.0.0.tgz", + "integrity": "sha512-YybbEHNngcHlIWVCYsoj7Oo1JU9JqONuAlt1LlTH/lmL8BMhbzdFUgReY87a05rY1j8mfK47Del+TCkaLAXwLw==", + "requires": { + "@types/node": "*" + } + }, "@types/tough-cookie": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.4.tgz", diff --git a/app-backend/package.json b/app-backend/package.json index 18a6d42..d77a052 100644 --- a/app-backend/package.json +++ b/app-backend/package.json @@ -13,7 +13,9 @@ "@types/fs-extra": "^5.0.4", "@types/jsonwebtoken": "^8.3.0", "@types/request": "^2.48.1", + "@types/require-from-string": "^1.2.0", "@types/ssh2": "^0.5.36", + "@types/tar": "^4.0.0", "@types/uuid": "^3.4.4", "bcryptjs": "^2.4.3", "body-parser": "^1.18.3", diff --git a/app-backend/src/user/Authenticator.ts b/app-backend/src/user/Authenticator.ts index 4961d17..db83151 100644 --- a/app-backend/src/user/Authenticator.ts +++ b/app-backend/src/user/Authenticator.ts @@ -259,16 +259,8 @@ class Authenticator { ); }); } -} -interface IHash { - [details: string]: Authenticator; -} - -const authenticatorCache: IHash = {}; - -exports = { - get: function(namespace: string): Authenticator | undefined { + static get(namespace: string): Authenticator|undefined { if (!namespace) { return undefined; } @@ -285,5 +277,13 @@ exports = { } return authenticatorCache[namespace]; - }, -}; + } +} + +interface IHash { + [details: string]: Authenticator; +} + +const authenticatorCache: IHash = {}; + +export = Authenticator; diff --git a/app-backend/src/user/CaptainManager.ts b/app-backend/src/user/CaptainManager.ts index fe0b514..2cc6140 100644 --- a/app-backend/src/user/CaptainManager.ts +++ b/app-backend/src/user/CaptainManager.ts @@ -875,7 +875,7 @@ class CaptainManager { * * @returns {Promise.} */ - verifyCaptainOwnsDomainOrThrow(domainName: string, identifierSuffix: string) { + verifyCaptainOwnsDomainOrThrow(domainName: string, identifierSuffix: string|undefined) { const self = this; const randomUuid = uuid(); diff --git a/app-backend/src/user/ServiceManager.js b/app-backend/src/user/ServiceManager.ts similarity index 70% rename from app-backend/src/user/ServiceManager.js rename to app-backend/src/user/ServiceManager.ts index 9d3f3f1..afa2448 100644 --- a/app-backend/src/user/ServiceManager.js +++ b/app-backend/src/user/ServiceManager.ts @@ -1,50 +1,55 @@ -const CaptainConstants = require('../utils/CaptainConstants'); -const Logger = require('../utils/Logger'); -const fs = require('fs-extra'); -const tar = require('tar'); -const path = require('path'); -const CaptainManager = require('./CaptainManager'); -const ApiStatusCodes = require('../api/ApiStatusCodes'); -const TemplateHelper = require('./TemplateHelper'); -const Authenticator = require('./Authenticator'); -const GitHelper = require('../utils/GitHelper'); -const uuid = require('uuid/v4'); -const requireFromString = require('require-from-string'); +import CaptainConstants = require("../utils/CaptainConstants"); +import Logger = require("../utils/Logger"); +import fs = require("fs-extra"); +import tar = require("tar"); +import path = require("path"); +import CaptainManager = require("./CaptainManager"); +import LoadBalancerManager = require("./LoadBalancerManager"); +import DockerApi = require("../docker/DockerApi"); +import DataStore = require("../datastore/DataStoreImpl"); +import ApiStatusCodes = require("../api/ApiStatusCodes"); +import TemplateHelper = require("./TemplateHelper"); +import Authenticator = require("./Authenticator"); +import GitHelper = require("../utils/GitHelper"); +import uuid = require("uuid/v4"); +import requireFromString = require("require-from-string"); const BUILD_LOG_SIZE = 50; -const SOURCE_FOLDER_NAME = 'src'; -const DOCKER_FILE = 'Dockerfile'; -const CAPTAIN_DEFINITION_FILE = 'captain-definition'; -const PLACEHOLDER_DOCKER_FILE_CONTENT = 'FROM ' + CaptainConstants.appPlaceholderImageName + +const SOURCE_FOLDER_NAME = "src"; +const DOCKER_FILE = "Dockerfile"; +const CAPTAIN_DEFINITION_FILE = "captain-definition"; +const PLACEHOLDER_DOCKER_FILE_CONTENT = "FROM " + CaptainConstants.appPlaceholderImageName + '\nCMD [ "npm", "start" ]'; -function getRawImageSourceFolder(imageName, newVersionPulled) { - return CaptainConstants.captainRawImagesDir + '/' + imageName + '/' + newVersionPulled + '/' + SOURCE_FOLDER_NAME; +function getRawImageSourceFolder(imageName: string, newVersionPulled: string) { + return CaptainConstants.captainRawImagesDir + "/" + imageName + "/" + newVersionPulled + "/" + SOURCE_FOLDER_NAME; } -function getRawImageBaseFolder(imageName, newVersionPulled) { - return CaptainConstants.captainRawImagesDir + '/' + imageName + '/' + newVersionPulled; +function getRawImageBaseFolder(imageName: string, newVersionPulled: string) { + return CaptainConstants.captainRawImagesDir + "/" + imageName + "/" + newVersionPulled; } -function getTarImageBaseFolder(imageName, newVersionPulled) { - return CaptainConstants.captainTarImagesDir + '/' + imageName + '/' + newVersionPulled; +function getTarImageBaseFolder(imageName: string, newVersionPulled: string) { + return CaptainConstants.captainTarImagesDir + "/" + imageName + "/" + newVersionPulled; } -function getCaptainDefinitionTempFolder(serviceName, randomSuffix) { - return CaptainConstants.captainDefinitionTempDir + '/' + serviceName + '/' + randomSuffix; +function getCaptainDefinitionTempFolder(serviceName: string, randomSuffix: string) { + return CaptainConstants.captainDefinitionTempDir + "/" + serviceName + "/" + randomSuffix; } class BuildLog { - constructor(size) { - this.size = size; + private isBuildFailed: boolean; + private firstLineNumber: number; + private lines: string[]; + constructor(private size: number) { this.clear(); } - onBuildFailed(error) { - this.log('----------------------'); - this.log('Deploy failed!'); + onBuildFailed(error: string) { + this.log("----------------------"); + this.log("Deploy failed!"); this.log(error); this.isBuildFailed = true; } @@ -54,12 +59,12 @@ class BuildLog { this.firstLineNumber = -this.size; this.lines = []; for (let i = 0; i < this.size; i++) { - this.lines.push(''); + this.lines.push(""); } } - log(msg) { - msg = (msg || '') + ''; + log(msg: string) { + msg = (msg || "") + ""; this.lines.shift(); this.lines.push(msg); this.firstLineNumber++; @@ -79,7 +84,12 @@ class BuildLog { class ServiceManager { - constructor(user, dockerApi, loadBalancerManager) { + private dataStore: DataStore; + private activeBuilds: any; + private buildLogs: any; + private isReady: boolean; + + constructor(private user: any, private dockerApi: DockerApi, private loadBalancerManager: LoadBalancerManager) { this.user = user; this.dataStore = user.dataStore; this.dockerApi = dockerApi; @@ -95,17 +105,17 @@ class ServiceManager { return this.isReady; } - createTarFarFromCaptainContent(captainDefinitionContent, appName, tarDestination) { + createTarFarFromCaptainContent(captainDefinitionContent: string, appName: string, tarDestination: string) { - let serviceName = this.dataStore.getServiceName(appName); + const serviceName = this.dataStore.getServiceName(appName); - let captainDefinitionDirPath; + let captainDefinitionDirPath: string| undefined = undefined; return Promise.resolve() .then(function () { for (let i = 0; i < 100; i++) { - let temp = getCaptainDefinitionTempFolder(serviceName, uuid()); + const temp = getCaptainDefinitionTempFolder(serviceName, uuid()); if (!fs.pathExistsSync(temp)) { captainDefinitionDirPath = temp; break; @@ -116,7 +126,7 @@ class ServiceManager { throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, "Cannot create a temp file! Something is seriously wrong with the temp folder"); } - return fs.outputFile(captainDefinitionDirPath + '/' + CAPTAIN_DEFINITION_FILE, captainDefinitionContent); + return fs.outputFile(captainDefinitionDirPath + "/" + CAPTAIN_DEFINITION_FILE, captainDefinitionContent); }) .then(function () { @@ -129,6 +139,10 @@ class ServiceManager { }) .then(function () { + if (!captainDefinitionDirPath) { + throw new Error("captainDefinitionDirPath is NULL"); + } + return fs.remove(captainDefinitionDirPath); }); @@ -144,28 +158,28 @@ class ServiceManager { * @param gitHash * @returns {Promise} */ - createImage(appName, source, gitHash) { + createImage(appName: string, source: any, gitHash: string) { - Logger.d('Creating image for: ' + appName); + Logger.d("Creating image for: " + appName); const self = this; - let imageName = this.dataStore.getImageName(CaptainManager.get().getDockerAuthObject(), appName); - let dockerApi = this.dockerApi; - let dataStore = this.dataStore; - let newVersion = null; - let rawImageSourceFolder = null; - let rawImageBaseFolder = null; - let tarImageBaseFolder = null; - let tarballFilePath = null; - let dockerFilePath = null; + const imageName = this.dataStore.getImageName(CaptainManager.get().getDockerAuthObject(), appName); + const dockerApi = this.dockerApi; + const dataStore = this.dataStore; + let newVersion: number; + let rawImageSourceFolder: string; + let rawImageBaseFolder: string; + let tarImageBaseFolder: string; + let tarballFilePath: string; + let dockerFilePath: string; this.activeBuilds[appName] = true; this.buildLogs[appName] = this.buildLogs[appName] || new BuildLog(BUILD_LOG_SIZE); this.buildLogs[appName].clear(); - this.buildLogs[appName].log('------------------------- ' + (new Date())); - this.buildLogs[appName].log('Build started for ' + appName); + this.buildLogs[appName].log("------------------------- " + (new Date())); + this.buildLogs[appName].log("Build started for " + appName); return Promise.resolve() .then(function () { @@ -179,20 +193,20 @@ class ServiceManager { rawImageSourceFolder = getRawImageSourceFolder(imageName, newVersionPulled); rawImageBaseFolder = getRawImageBaseFolder(imageName, newVersionPulled); - dockerFilePath = rawImageBaseFolder + '/' + DOCKER_FILE; + dockerFilePath = rawImageBaseFolder + "/" + DOCKER_FILE; tarImageBaseFolder = getTarImageBaseFolder(imageName, newVersionPulled); - tarballFilePath = tarImageBaseFolder + '/image.tar'; + tarballFilePath = tarImageBaseFolder + "/image.tar"; return fs.ensureDir(rawImageSourceFolder) .then(function () { - return rawImageSourceFolder + return rawImageSourceFolder; }); }) .then(function (rawImageSourceFolder) { - let promiseToFetchDirectory = null; + let promiseToFetchDirectory: Promise; if (source.pathToSrcTarballFile) { promiseToFetchDirectory = tar @@ -204,7 +218,7 @@ class ServiceManager { return gitHash; }); } else if (source.repoInfo) { - let repoInfo = source.repoInfo; + const repoInfo = source.repoInfo; promiseToFetchDirectory = GitHelper .clone(repoInfo.user, repoInfo.password, repoInfo.repo, repoInfo.branch, rawImageSourceFolder) .then(function () { @@ -222,14 +236,14 @@ class ServiceManager { }) .then(function () { - return fs.pathExists(rawImageSourceFolder + '/' + CAPTAIN_DEFINITION_FILE) + return fs.pathExists(rawImageSourceFolder + "/" + CAPTAIN_DEFINITION_FILE); }) .then(function (exists) { if (!exists) { - Logger.d('Captain Definition does not exist in the base tar. Looking inside...'); + Logger.d("Captain Definition does not exist in the base tar. Looking inside..."); // check if there is only one child // check if it's a directory @@ -238,7 +252,7 @@ class ServiceManager { // move the child directory out to base and rename it to rawImageSourceFolder // read captain definition from the folder and return it. - let directoryInside = null; + let directoryInside: string; return new Promise( function (resolve, reject) { @@ -259,7 +273,7 @@ class ServiceManager { }); }) - .then(function (directory) { + .then(function (directory: string) { directoryInside = directory; @@ -272,7 +286,7 @@ class ServiceManager { throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, "Captain Definition file does not exist!"); } - const BAK = '.bak'; + const BAK = ".bak"; fs.renameSync(rawImageSourceFolder, rawImageSourceFolder + BAK); fs.renameSync(path.join(rawImageSourceFolder + BAK, directoryInside), rawImageSourceFolder); @@ -282,7 +296,7 @@ class ServiceManager { }) .then(function () { - return fs.readJson(rawImageSourceFolder + '/' + CAPTAIN_DEFINITION_FILE); + return fs.readJson(rawImageSourceFolder + "/" + CAPTAIN_DEFINITION_FILE); }) .then(function (data) { @@ -297,13 +311,13 @@ class ServiceManager { if (data.schemaVersion === 1) { - let templateIdTag = data.templateId; - let dockerfileLines = data.dockerfileLines; - let hasDockerfileLines = dockerfileLines && dockerfileLines.length > 0; + const templateIdTag = data.templateId; + const dockerfileLines = data.dockerfileLines; + const hasDockerfileLines = dockerfileLines && dockerfileLines.length > 0; if (hasDockerfileLines && !templateIdTag) { - return dockerfileLines.join('\n'); + return dockerfileLines.join("\n"); } else if (!hasDockerfileLines && templateIdTag) { @@ -345,14 +359,14 @@ class ServiceManager { return dockerApi .buildImageFromDockerFile(imageName, newVersion, tarballFilePath, self.buildLogs[appName]) - .catch(function (error) { - throw ApiStatusCodes.createError(ApiStatusCodes.BUILD_ERROR, ('' + error).trim()); - }) + .catch(function (error: any) { + throw ApiStatusCodes.createError(ApiStatusCodes.BUILD_ERROR, ("" + error).trim()); + }); }) .then(function () { - Logger.d('Cleaning up up the files... ' + tarImageBaseFolder + ' and ' + rawImageBaseFolder); + Logger.d("Cleaning up up the files... " + tarImageBaseFolder + " and " + rawImageBaseFolder); return fs.remove(tarImageBaseFolder); @@ -364,23 +378,23 @@ class ServiceManager { }) .then(function () { - let authObj = CaptainManager.get().getDockerAuthObject(); + const authObj = CaptainManager.get().getDockerAuthObject(); if (!authObj) { - Logger.d('No Docker Auth is found. Skipping pushing the image.'); + Logger.d("No Docker Auth is found. Skipping pushing the image."); return true; } - Logger.d('Docker Auth is found. Pushing the image...'); + Logger.d("Docker Auth is found. Pushing the image..."); return dockerApi .pushImage(imageName, newVersion, authObj, self.buildLogs[appName]) .catch(function (error) { return new Promise(function (resolve, reject) { - Logger.e('PUSH FAILED'); + Logger.e("PUSH FAILED"); Logger.e(error); - reject(ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'Push failed: ' + error)); - }) + reject(ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, "Push failed: " + error)); + }); }); }) @@ -392,29 +406,29 @@ class ServiceManager { self.activeBuilds[appName] = false; return new Promise(function (resolve, reject) { reject(error); - }) + }); }); } - enableCustomDomainSsl(appName, customDomain) { + enableCustomDomainSsl(appName: string, customDomain: string) { const self = this; return Promise.resolve() .then(function () { - Logger.d('Verifying Captain owns domain: ' + customDomain); + Logger.d("Verifying Captain owns domain: " + customDomain); - return CaptainManager.get().verifyCaptainOwnsDomainOrThrow(customDomain); + return CaptainManager.get().verifyCaptainOwnsDomainOrThrow(customDomain, undefined); }) .then(function () { if (!appName) { - throw new Error('No App Name! Cannot verify domain'); + throw new Error("No App Name! Cannot verify domain"); } - Logger.d('Enabling SSL for: ' + appName + ' on ' + customDomain); + Logger.d("Enabling SSL for: " + appName + " on " + customDomain); return self.dataStore.getAppsDataStore().verifyCustomDomainBelongsToApp(appName, customDomain); @@ -436,27 +450,27 @@ class ServiceManager { }); } - addCustomDomain(appName, customDomain) { + addCustomDomain(appName: string, customDomain: string) { const self = this; return Promise.resolve() .then(function () { - let rootDomain = self.dataStore.getRootDomain(); - let dotRootDomain = "." + rootDomain; + const rootDomain = self.dataStore.getRootDomain(); + const dotRootDomain = "." + rootDomain; if (!customDomain || !(/^[a-z0-9\-\.]+$/.test(customDomain))) { throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_BAD_NAME, - 'Domain name is not accepted. Please use alphanumerical domains such as myapp.google123.ca'); + "Domain name is not accepted. Please use alphanumerical domains such as myapp.google123.ca"); } if (customDomain.length > 80) { throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_BAD_NAME, - 'Domain name is not accepted. Please use alphanumerical domains less than 80 characters in length.'); + "Domain name is not accepted. Please use alphanumerical domains less than 80 characters in length."); } - if (customDomain.indexOf('..') >= 0) { + if (customDomain.indexOf("..") >= 0) { throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_BAD_NAME, 'Domain name is not accepted. You cannot have two consecutive periods ".." inside a domain name. Please use alphanumerical domains such as myapp.google123.ca'); } @@ -464,7 +478,7 @@ class ServiceManager { if (customDomain.indexOf(dotRootDomain) >= 0 && (customDomain.indexOf(dotRootDomain) + dotRootDomain.length) === customDomain.length) { throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_BAD_NAME, - 'Domain name is not accepted. Custom domain cannot be subdomain of root domain.'); + "Domain name is not accepted. Custom domain cannot be subdomain of root domain."); } @@ -477,10 +491,10 @@ class ServiceManager { .then(function () { if (!appName) { - throw new Error('No App Name! Cannot verify domain'); + throw new Error("No App Name! Cannot verify domain"); } - Logger.d('Enabling custom domain for: ' + appName); + Logger.d("Enabling custom domain for: " + appName); return self.dataStore.getAppsDataStore().addCustomDomainForApp(appName, customDomain); @@ -492,17 +506,17 @@ class ServiceManager { }); } - removeCustomDomain(appName, customDomain) { + removeCustomDomain(appName: string, customDomain: string) { const self = this; return Promise.resolve() .then(function () { if (!appName) { - throw new Error('No App Name! Cannot verify domain'); + throw new Error("No App Name! Cannot verify domain"); } - Logger.d('Removing custom domain for: ' + appName); + Logger.d("Removing custom domain for: " + appName); return self.dataStore.getAppsDataStore().removeCustomDomainForApp(appName, customDomain); @@ -514,12 +528,11 @@ class ServiceManager { }); } - enableSslForApp(appName) { + enableSslForApp(appName: string) { const self = this; - let rootDomain = null; - let app = null; + let rootDomain: string; return Promise.resolve() .then(function () { @@ -529,10 +542,10 @@ class ServiceManager { }) .then(function () { - Logger.d('Enabling SSL for: ' + appName); + Logger.d("Enabling SSL for: " + appName); if (!appName) { - throw new Error('No App Name! Cannot verify domain'); + throw new Error("No App Name! Cannot verify domain"); } return self.dataStore.getRootDomain(); @@ -543,7 +556,7 @@ class ServiceManager { rootDomain = val; if (!rootDomain) { - throw new Error('No rootDomain! Cannot verify domain'); + throw new Error("No rootDomain! Cannot verify domain"); } }) @@ -555,7 +568,7 @@ class ServiceManager { }) .then(function () { - return appName + '.' + rootDomain; + return appName + "." + rootDomain; }) .then(function (domainName) { @@ -575,17 +588,17 @@ class ServiceManager { }); } - verifyCaptainOwnsGenericSubDomain(appName) { + verifyCaptainOwnsGenericSubDomain(appName: string) { const self = this; - let rootDomain = null; + let rootDomain: string; return Promise.resolve() .then(function () { if (!appName) { - throw new Error('No App Name! Cannot verify domain'); + throw new Error("No App Name! Cannot verify domain"); } return self.dataStore.getRootDomain(); @@ -604,30 +617,30 @@ class ServiceManager { }) .then(function () { - return appName + '.' + rootDomain; + return appName + "." + rootDomain; }) .then(function (domainName) { - Logger.d('Verifying Captain owns domain: ' + domainName); + Logger.d("Verifying Captain owns domain: " + domainName); - return CaptainManager.get().verifyCaptainOwnsDomainOrThrow(domainName); + return CaptainManager.get().verifyCaptainOwnsDomainOrThrow(domainName, undefined); }); } - removeApp(appName) { - Logger.d('Removing service for: ' + appName); + removeApp(appName: string) { + Logger.d("Removing service for: " + appName); const self = this; - let serviceName = this.dataStore.getServiceName(appName); - let dockerApi = this.dockerApi; - let dataStore = this.dataStore; + const serviceName = this.dataStore.getServiceName(appName); + const dockerApi = this.dockerApi; + const dataStore = this.dataStore; return Promise.resolve() .then(function () { - Logger.d('Check if service is running: ' + serviceName); + Logger.d("Check if service is running: " + serviceName); return dockerApi .isServiceRunningByName(serviceName); @@ -637,7 +650,7 @@ class ServiceManager { return dockerApi .removeService(serviceName); } else { - Logger.w('Cannot delete service... It is not running: ' + serviceName); + Logger.w("Cannot delete service... It is not running: " + serviceName); return true; } @@ -654,13 +667,13 @@ class ServiceManager { }); } - getUnusedImages(mostRecentLimit) { - Logger.d('Getting unused images, excluding most recent ones: ' + mostRecentLimit); + getUnusedImages(mostRecentLimit: number) { + Logger.d("Getting unused images, excluding most recent ones: " + mostRecentLimit); const self = this; - let dockerApi = this.dockerApi; - let dataStore = this.dataStore; - let allImages = null; + const dockerApi = this.dockerApi; + const dataStore = this.dataStore; + let allImages: any[]; return Promise.resolve() .then(function () { @@ -672,11 +685,11 @@ class ServiceManager { allImages = images; - return dataStore.getAppsDataStore().getAppDefinitions() + return dataStore.getAppsDataStore().getAppDefinitions(); }) .then(function (apps) { - let unusedImages = []; + const unusedImages = []; for (let i = 0; i < allImages.length; i++) { const img = allImages[i]; @@ -685,7 +698,7 @@ class ServiceManager { for (let j = 0; j < img.RepoTags.length; j++) { const repoTag = img.RepoTags[j]; Object.keys(apps).forEach(function (key, index) { - let app = apps[key]; + const app = apps[key]; app.appName = key; for (let k = 0; k < (mostRecentLimit + 1); k++) { if (repoTag.indexOf(dataStore.getImageNameWithoutAuthObj(app.appName, Number(app.deployedVersion) - k)) >= 0) { @@ -699,8 +712,8 @@ class ServiceManager { if (!imageInUse) { unusedImages.push({ id: img.Id, - description: (img.RepoTags && img.RepoTags.length) ? img.RepoTags[0] : 'untagged' - }) + description: (img.RepoTags && img.RepoTags.length) ? img.RepoTags[0] : "untagged" + }); } } @@ -709,14 +722,12 @@ class ServiceManager { }); } - deleteImages(imageIds) { + deleteImages(imageIds: string[]) { - Logger.d('Deleting images...'); + Logger.d("Deleting images..."); const self = this; - let dockerApi = this.dockerApi; - let dataStore = this.dataStore; - let allImages = null; + const dockerApi = this.dockerApi; return Promise.resolve() .then(function () { @@ -726,17 +737,17 @@ class ServiceManager { }); } - ensureServiceInitedAndUpdated(appName, version) { + ensureServiceInitedAndUpdated(appName: string, version: number) { - Logger.d('Ensure service inited and Updated for: ' + appName); + Logger.d("Ensure service inited and Updated for: " + appName); const self = this; - let serviceName = this.dataStore.getServiceName(appName); + const serviceName = this.dataStore.getServiceName(appName); const dockerAuthObject = CaptainManager.get().getDockerAuthObject(); - let imageName = this.dataStore.getImageName(dockerAuthObject, appName, version); - let dockerApi = this.dockerApi; - let dataStore = this.dataStore; - let app = null; + const imageName = this.dataStore.getImageName(dockerAuthObject, appName, version); + const dockerApi = this.dockerApi; + const dataStore = this.dataStore; + let app: any; return dataStore.getAppsDataStore().setDeployedVersion(appName, version) .then(function () { @@ -745,20 +756,20 @@ class ServiceManager { .then(function (appFound) { app = appFound; - Logger.d('Check if service is running: ' + serviceName); + Logger.d("Check if service is running: " + serviceName); return dockerApi .isServiceRunningByName(serviceName); }) .then(function (isRunning) { if (isRunning) { - Logger.d('Service is already running: ' + serviceName); + Logger.d("Service is already running: " + serviceName); return true; } else { - Logger.d('Creating service: ' + serviceName + ' with image: ' + imageName); + Logger.d("Creating service: " + serviceName + " with image: " + imageName); // if we pass in networks here. Almost always it results in a delayed update which causes // update errors if they happen right away! return dockerApi - .createServiceOnNodeId(imageName, serviceName); + .createServiceOnNodeId(imageName, serviceName, undefined, undefined, undefined, undefined, undefined); } }) .then(function () { @@ -768,12 +779,11 @@ class ServiceManager { }) .then(function (preDeployFunction) { - Logger.d('Updating service: ' + serviceName + ' with image: ' + imageName); + Logger.d("Updating service: " + serviceName + " with image: " + imageName); - return dockerApi - .updateService(serviceName, imageName, app.volumes, app.networks, app.envVars, null, - dockerAuthObject, Number(app.instanceCount), app.nodeId, dataStore.getNameSpace(), - app, preDeployFunction); + return dockerApi.updateService(serviceName, imageName, app.volumes, app.networks, app.envVars, + undefined, dockerAuthObject, Number(app.instanceCount), app.nodeId, + dataStore.getNameSpace(), undefined, app, preDeployFunction); }) .then(function () { @@ -788,12 +798,12 @@ class ServiceManager { }); } - createPreDeployFunctionIfExist(app) { + createPreDeployFunctionIfExist(app: any) { let preDeployFunction = app.preDeployFunction; if (!preDeployFunction) { - return null; + return undefined; } /* @@ -811,20 +821,22 @@ class ServiceManager { }; */ - preDeployFunction = preDeployFunction + '\n\n module.exports = preDeployFunction'; + preDeployFunction = preDeployFunction + "\n\n module.exports = preDeployFunction"; return requireFromString(preDeployFunction); } - updateAppDefinition(appName, instanceCount, envVars, volumes, nodeId, notExposeAsWebApp, forceSsl, ports, appPushWebhook, customNginxConfig, preDeployFunction) { + updateAppDefinition(appName: string, instanceCount: number, envVars: any[], volumes: any[], + nodeId: string, notExposeAsWebApp: boolean, forceSsl: boolean, ports: any[], + appPushWebhook: any , customNginxConfig: string, preDeployFunction: string) { const self = this; const dataStore = this.dataStore; const dockerApi = this.dockerApi; - let serviceName = null; + let serviceName: string; - let checkIfNodeIdExists = function (nodeIdToCheck) { + const checkIfNodeIdExists = function (nodeIdToCheck: string) { return dockerApi .getNodesInfo() .then(function (nodeInfo) { @@ -867,14 +879,14 @@ class ServiceManager { return dockerApi .isServiceRunningByName(serviceName) - .then(function (isRunning) { + .then(function (isRunning: boolean) { if (!isRunning) { throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, "Cannot find the service. Try again in a minute..."); } return dockerApi .getNodeIdByServiceName(serviceName); }) - .then(function (nodeIdRunningService) { + .then(function (nodeIdRunningService: string) { if (!nodeIdRunningService) { throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, "No NodeId was found. Try again in a minute..."); } @@ -901,7 +913,8 @@ class ServiceManager { .then(function () { return dataStore.getAppsDataStore().updateAppDefinitionInDb(appName, instanceCount, envVars, volumes, nodeId, - notExposeAsWebApp, forceSsl, ports, appPushWebhook, Authenticator.get(dataStore.getNameSpace()), + notExposeAsWebApp, forceSsl, ports, + appPushWebhook, Authenticator.get(dataStore.getNameSpace()), customNginxConfig, preDeployFunction); }) @@ -913,7 +926,7 @@ class ServiceManager { }); } - isAppBuilding(appName) { + isAppBuilding(appName: string) { return !!this.activeBuilds[appName]; } @@ -923,18 +936,18 @@ class ServiceManager { */ isAnyBuildRunning() { - let activeBuilds = this.activeBuilds; + const activeBuilds = this.activeBuilds; - for (let appName in activeBuilds) { + for (const appName in activeBuilds) { if (!!activeBuilds[appName]) { return appName; } } - return null; + return undefined; } - getBuildStatus(appName) { + getBuildStatus(appName: string) { const self = this; this.buildLogs[appName] = this.buildLogs[appName] || new BuildLog(BUILD_LOG_SIZE); @@ -942,24 +955,24 @@ class ServiceManager { isAppBuilding: self.isAppBuilding(appName), logs: self.buildLogs[appName].getLogs(), isBuildFailed: self.buildLogs[appName].isBuildFailed - } + }; } - logBuildFailed(appName, error) { - error = (error || '') + ''; + logBuildFailed(appName: string, error: string) { + error = (error || "") + ""; this.buildLogs[appName] = this.buildLogs[appName] || new BuildLog(BUILD_LOG_SIZE); this.buildLogs[appName].onBuildFailed(error); } - updateServiceOnDefinitionUpdate(appName) { + updateServiceOnDefinitionUpdate(appName: string) { const self = this; - let serviceName = this.dataStore.getServiceName(appName); + const serviceName = this.dataStore.getServiceName(appName); const dockerAuthObject = CaptainManager.get().getDockerAuthObject(); const dataStore = this.dataStore; const dockerApi = this.dockerApi; - let appFound = null; + let appFound: any; return Promise.resolve() .then(function () { @@ -970,7 +983,7 @@ class ServiceManager { appFound = app; if (!appFound) { - throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'App name not found!'); + throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, "App name not found!"); } return self.createPreDeployFunctionIfExist(app); @@ -979,11 +992,11 @@ class ServiceManager { .then(function (preDeployFunction) { if (!appFound) { - throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'App name not found!'); + throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, "App name not found!"); } return dockerApi - .updateService(serviceName, null, appFound.volumes, appFound.networks, appFound.envVars, null, + .updateService(serviceName, undefined, appFound.volumes, appFound.networks, appFound.envVars, undefined, dockerAuthObject, Number(appFound.instanceCount), appFound.nodeId, dataStore.getNameSpace(), appFound.ports, appFound, preDeployFunction); }); @@ -992,11 +1005,11 @@ class ServiceManager { reloadLoadBalancer() { - Logger.d('Updating Load Balancer'); + Logger.d("Updating Load Balancer"); const self = this; return self.loadBalancerManager.rePopulateNginxConfigFile(self.dataStore) .then(function () { - Logger.d('sendReloadSignal...'); + Logger.d("sendReloadSignal..."); return self.loadBalancerManager.sendReloadSignal(); }); }