Updated tests

This commit is contained in:
Kasra Bigdeli
2019-02-18 17:06:51 -08:00
parent af2e640077
commit 1aae772cf1
12 changed files with 336 additions and 206 deletions

View File

@@ -2,6 +2,7 @@
.git
/coverage
/temp_upload
/currentdirectory
/node_modules

2
.gitignore vendored
View File

@@ -1,3 +1,5 @@
/coverage
/temp_upload
/currentdirectory
/node_modules

8
__tests__/backup.test.ts Normal file
View File

@@ -0,0 +1,8 @@
import BackupManager from '../src/user/system/BackupManager'
test('BackupManager', () => {
const bk = new BackupManager()
return bk.checkAndPrepareRestoration().then(function(data) {
expect(data).toBeFalsy()
})
})

View File

@@ -0,0 +1,30 @@
import * as Encryptor from '../src/utils/Encryptor'
test('Testing Encryptor 1', () => {
const encryptor = new Encryptor.CaptainEncryptor(
'8h9hasfasaaaaaaaaaaaaaa75h7553245235423452345235235235254h75h38'
)
let valueToBeEncrypter = 'qq'
expect(encryptor.decrypt(encryptor.encrypt(valueToBeEncrypter))).toBe(
valueToBeEncrypter
)
})
test('Testing Encryptor 2', () => {
const encryptor = new Encryptor.CaptainEncryptor(
'8h9hasfasaaaaaaaaaaaaaa75h7553245235423452345235235235254h75h38'
)
let valueToBeEncrypter = 'q290852f98nb80nv8m8m bn83vn@ 8098m%#@%$5$@#52q'
expect(encryptor.decrypt(encryptor.encrypt(valueToBeEncrypter))).toBe(
valueToBeEncrypter
)
})
test('Testing Encryptor - Key too short', () => {
let value = 1
try {
const encryptor = new Encryptor.CaptainEncryptor('short')
value = 0
} catch (e) {}
expect(value).toBe(1)
})

10
jest.config.js Normal file
View File

@@ -0,0 +1,10 @@
module.exports = {
transform: {
"^.+\\.tsx?$": "ts-jest",
"^.+\\.ts?$": "ts-jest",
},
testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?|ts?|js?)$",
testPathIgnorePatterns: ["/node_modules/"],
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
collectCoverage: true,
};

413
package-lock.json generated
View File

@@ -14,36 +14,36 @@
}
},
"@babel/core": {
"version": "7.2.2",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz",
"integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==",
"version": "7.3.3",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.3.tgz",
"integrity": "sha512-w445QGI2qd0E0GlSnq6huRZWPMmQGCp5gd5ZWS4hagn0EiwzxD5QMFkpchyusAyVC1n27OKXzQ0/88aVU9n4xQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
"@babel/generator": "^7.2.2",
"@babel/generator": "^7.3.3",
"@babel/helpers": "^7.2.0",
"@babel/parser": "^7.2.2",
"@babel/parser": "^7.3.3",
"@babel/template": "^7.2.2",
"@babel/traverse": "^7.2.2",
"@babel/types": "^7.2.2",
"@babel/types": "^7.3.3",
"convert-source-map": "^1.1.0",
"debug": "^4.1.0",
"json5": "^2.1.0",
"lodash": "^4.17.10",
"lodash": "^4.17.11",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
}
},
"@babel/generator": {
"version": "7.3.0",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.0.tgz",
"integrity": "sha512-dZTwMvTgWfhmibq4V9X+LMf6Bgl7zAodRn9PvcPdhlzFMbvUutx74dbEv7Atz3ToeEpevYEJtAwfxq/bDCzHWg==",
"version": "7.3.3",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz",
"integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==",
"dev": true,
"requires": {
"@babel/types": "^7.3.0",
"@babel/types": "^7.3.3",
"jsesc": "^2.5.1",
"lodash": "^4.17.10",
"lodash": "^4.17.11",
"source-map": "^0.5.0",
"trim-right": "^1.0.1"
}
@@ -114,9 +114,9 @@
}
},
"@babel/parser": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.1.tgz",
"integrity": "sha512-ATz6yX/L8LEnC3dtLQnIx4ydcPxhLcoy9Vl6re00zb2w5lG6itY6Vhnr1KFRPq/FHNsgl/gh2mjNN20f9iJTTA==",
"version": "7.3.3",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz",
"integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==",
"dev": true
},
"@babel/plugin-syntax-object-rest-spread": {
@@ -157,13 +157,13 @@
}
},
"@babel/types": {
"version": "7.3.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.0.tgz",
"integrity": "sha512-QkFPw68QqWU1/RVPyBe8SO7lXbPfjtqAxRYQKpFpaB8yMq7X2qAqfwK5LKoQufEkSmO5NQ70O6Kc3Afk03RwXw==",
"version": "7.3.3",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz",
"integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==",
"dev": true,
"requires": {
"esutils": "^2.0.2",
"lodash": "^4.17.10",
"lodash": "^4.17.11",
"to-fast-properties": "^2.0.0"
}
},
@@ -282,6 +282,19 @@
"@types/node": "*"
}
},
"@types/jest": {
"version": "24.0.6",
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.0.6.tgz",
"integrity": "sha512-NE7FBG/F4cMDKdCBqgyd+Sa6JZ5GiMOyA5QwJdeS4Ii/Z9a18WgGbFrHbcr48/7I9HdnkaAYP+S2MmQ27qoqJA==",
"requires": {
"@types/jest-diff": "*"
}
},
"@types/jest-diff": {
"version": "20.0.1",
"resolved": "https://registry.npmjs.org/@types/jest-diff/-/jest-diff-20.0.1.tgz",
"integrity": "sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA=="
},
"@types/js-base64": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/@types/js-base64/-/js-base64-2.3.1.tgz",
@@ -471,9 +484,9 @@
},
"dependencies": {
"acorn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.5.tgz",
"integrity": "sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg==",
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz",
"integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==",
"dev": true
}
}
@@ -496,9 +509,9 @@
}
},
"ansi-escapes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
"integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
"integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
"dev": true
},
"ansi-regex": {
@@ -607,12 +620,12 @@
"dev": true
},
"async": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
"integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
"dev": true,
"requires": {
"lodash": "^4.17.10"
"lodash": "^4.17.11"
}
},
"async-limiter": {
@@ -675,19 +688,21 @@
}
},
"babel-jest": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.0.0.tgz",
"integrity": "sha512-YGKRbZUjoRmNIAyG7x4wYxUyHvHPFpYXj6Mx1A5cslhaQOUgP/+LF3wtFgMuOQkIpjbVNBufmOnVY0QVwB5v9Q==",
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.1.0.tgz",
"integrity": "sha512-MLcagnVrO9ybQGLEfZUqnOzv36iQzU7Bj4elm39vCukumLVSfoX+tRy3/jW7lUKc7XdpRmB/jech6L/UCsSZjw==",
"dev": true,
"requires": {
"babel-plugin-istanbul": "^5.1.0",
"babel-preset-jest": "^24.0.0"
"babel-preset-jest": "^24.1.0",
"chalk": "^2.4.2",
"slash": "^2.0.0"
}
},
"babel-plugin-istanbul": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.0.tgz",
"integrity": "sha512-CLoXPRSUWiR8yao8bShqZUIC6qLfZVVY3X1wj+QPNXu0wfmrRRfarh1LYy+dYMVI+bDj0ghy3tuqFFRFZmL1Nw==",
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.1.tgz",
"integrity": "sha512-RNNVv2lsHAXJQsEJ5jonQwrJVWK8AcZpG1oxhnjCUaAjL7xahYLANhPUZbzEQHjKy1NMYUwn+0NPKQc8iSY4xQ==",
"dev": true,
"requires": {
"find-up": "^3.0.0",
@@ -696,19 +711,19 @@
}
},
"babel-plugin-jest-hoist": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.0.0.tgz",
"integrity": "sha512-ipefE7YWNyRNVaV/MonUb/I5nef53ZRFR74P9meMGmJxqt8s1BJmfhw11YeIMbcjXN4fxtWUaskZZe8yreXE1Q==",
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.1.0.tgz",
"integrity": "sha512-gljYrZz8w1b6fJzKcsfKsipSru2DU2DmQ39aB6nV3xQ0DDv3zpIzKGortA5gknrhNnPN8DweaEgrnZdmbGmhnw==",
"dev": true
},
"babel-preset-jest": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.0.0.tgz",
"integrity": "sha512-ECMMOLvNDCmsn3geBa3JkwzylcfpThMpAdfreONQm8EmXcs4tXUpXZDQPxiIMg7nMobTuAC2zDGIKrbrBXW2Vg==",
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.1.0.tgz",
"integrity": "sha512-FfNLDxFWsNX9lUmtwY7NheGlANnagvxq8LZdl5PKnVG3umP+S/g0XbVBfwtA4Ai3Ri/IMkWabBz3Tyk9wdspcw==",
"dev": true,
"requires": {
"@babel/plugin-syntax-object-rest-spread": "^7.0.0",
"babel-plugin-jest-hoist": "^24.0.0"
"babel-plugin-jest-hoist": "^24.1.0"
}
},
"balanced-match": {
@@ -968,6 +983,15 @@
}
}
},
"bs-logger": {
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
"integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
"dev": true,
"requires": {
"fast-json-stable-stringify": "2.x"
}
},
"bser": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz",
@@ -1403,15 +1427,15 @@
"integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4="
},
"cssom": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz",
"integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==",
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz",
"integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==",
"dev": true
},
"cssstyle": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.1.1.tgz",
"integrity": "sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==",
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.1.tgz",
"integrity": "sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A==",
"dev": true,
"requires": {
"cssom": "0.3.x"
@@ -1916,9 +1940,9 @@
}
},
"expect": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/expect/-/expect-24.0.0.tgz",
"integrity": "sha512-qDHRU4lGsme0xjg8dXp/RQhvO9XIo9FWqVo7dTHDPBwzy25JGEHAWFsnpmRYErB50tgi/6euo3ir5e/kF9LUTA==",
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/expect/-/expect-24.1.0.tgz",
"integrity": "sha512-lVcAPhaYkQcIyMS+F8RVwzbm1jro20IG8OkvxQ6f1JfqhVZyyudCwYogQ7wnktlf14iF3ii7ArIUO/mqvrW9Gw==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.0",
@@ -2883,9 +2907,9 @@
}
},
"globals": {
"version": "11.10.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.10.0.tgz",
"integrity": "sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==",
"version": "11.11.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz",
"integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==",
"dev": true
},
"got": {
@@ -2937,9 +2961,9 @@
"dev": true
},
"handlebars": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz",
"integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==",
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz",
"integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==",
"dev": true,
"requires": {
"async": "^2.5.0",
@@ -3180,15 +3204,6 @@
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
"dev": true
},
"is-builtin-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"dev": true,
"requires": {
"builtin-modules": "^1.0.0"
}
},
"is-callable": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
@@ -3373,6 +3388,12 @@
"integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
"dev": true
},
"is-wsl": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
"integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
"dev": true
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -3396,9 +3417,9 @@
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
},
"istanbul-api": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.0.tgz",
"integrity": "sha512-+Ygg4t1StoiNlBGc6x0f8q/Bv26FbZqP/+jegzfNpU7Q8o+4ZRoJxJPhBkgE/UonpAjtxnE4zCZIyJX+MwLRMQ==",
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.1.tgz",
"integrity": "sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw==",
"dev": true,
"requires": {
"async": "^2.6.1",
@@ -3409,7 +3430,7 @@
"istanbul-lib-instrument": "^3.1.0",
"istanbul-lib-report": "^2.0.4",
"istanbul-lib-source-maps": "^3.0.2",
"istanbul-reports": "^2.1.0",
"istanbul-reports": "^2.1.1",
"js-yaml": "^3.12.0",
"make-dir": "^1.3.0",
"minimatch": "^3.0.4",
@@ -3490,22 +3511,22 @@
}
},
"istanbul-reports": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.1.0.tgz",
"integrity": "sha512-azQdSX+dtTtkQEfqq20ICxWi6eOHXyHIgMFw1VOOVi8iIPWeCWRgCyFh/CsBKIhcgskMI8ExXmU7rjXTRCIJ+A==",
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.1.1.tgz",
"integrity": "sha512-FzNahnidyEPBCI0HcufJoSEoKykesRlFcSzQqjH9x0+LC8tnnE/p/90PBLu8iZTxr8yYZNyTtiAujUqyN+CIxw==",
"dev": true,
"requires": {
"handlebars": "^4.0.11"
"handlebars": "^4.1.0"
}
},
"jest": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/jest/-/jest-24.0.0.tgz",
"integrity": "sha512-1Z2EblP4BnERbWZGtipGb9zjHDq7nCHgCY7V57F5SYaFRJV4DE1HKoOz+CRC5OrAThN9OVhRlUhTzsTFArg2iQ==",
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/jest/-/jest-24.1.0.tgz",
"integrity": "sha512-+q91L65kypqklvlRFfXfdzUKyngQLOcwGhXQaLmVHv+d09LkNXuBuGxlofTFW42XMzu3giIcChchTsCNUjQ78A==",
"dev": true,
"requires": {
"import-local": "^2.0.0",
"jest-cli": "^24.0.0"
"jest-cli": "^24.1.0"
},
"dependencies": {
"graceful-fs": {
@@ -3515,9 +3536,9 @@
"dev": true
},
"jest-cli": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.0.0.tgz",
"integrity": "sha512-mElnFipLaGxo1SiQ1CLvuaz3eX07MJc4HcyKrApSJf8xSdY1/EwaHurKwu1g2cDiwIgY8uHj7UcF5OYbtiBOWg==",
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.1.0.tgz",
"integrity": "sha512-U/iyWPwOI0T1CIxVLtk/2uviOTJ/OiSWJSe8qt6X1VkbbgP+nrtLJlmT9lPBe4lK78VNFJtrJ7pttcNv/s7yCw==",
"dev": true,
"requires": {
"ansi-escapes": "^3.0.0",
@@ -3532,16 +3553,16 @@
"istanbul-lib-instrument": "^3.0.1",
"istanbul-lib-source-maps": "^3.0.1",
"jest-changed-files": "^24.0.0",
"jest-config": "^24.0.0",
"jest-config": "^24.1.0",
"jest-environment-jsdom": "^24.0.0",
"jest-get-type": "^24.0.0",
"jest-haste-map": "^24.0.0",
"jest-message-util": "^24.0.0",
"jest-regex-util": "^24.0.0",
"jest-resolve-dependencies": "^24.0.0",
"jest-runner": "^24.0.0",
"jest-runtime": "^24.0.0",
"jest-snapshot": "^24.0.0",
"jest-resolve-dependencies": "^24.1.0",
"jest-runner": "^24.1.0",
"jest-runtime": "^24.1.0",
"jest-snapshot": "^24.1.0",
"jest-util": "^24.0.0",
"jest-validate": "^24.0.0",
"jest-watcher": "^24.0.0",
@@ -3573,27 +3594,26 @@
}
},
"jest-config": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.0.0.tgz",
"integrity": "sha512-9/soqWL5YSq1ZJtgVJ5YYPCL1f9Mi2lVCp5+OXuYBOaN8DHSFRCSWip0rQ6N+mPTOEIAlCvcUH8zaPOwK4hePg==",
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.1.0.tgz",
"integrity": "sha512-FbbRzRqtFC6eGjG5VwsbW4E5dW3zqJKLWYiZWhB0/4E5fgsMw8GODLbGSrY5t17kKOtCWb/Z7nsIThRoDpuVyg==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
"babel-jest": "^24.0.0",
"babel-jest": "^24.1.0",
"chalk": "^2.0.1",
"glob": "^7.1.1",
"jest-environment-jsdom": "^24.0.0",
"jest-environment-node": "^24.0.0",
"jest-get-type": "^24.0.0",
"jest-jasmine2": "^24.0.0",
"jest-jasmine2": "^24.1.0",
"jest-regex-util": "^24.0.0",
"jest-resolve": "^24.0.0",
"jest-resolve": "^24.1.0",
"jest-util": "^24.0.0",
"jest-validate": "^24.0.0",
"micromatch": "^3.1.10",
"pretty-format": "^24.0.0",
"realpath-native": "^1.0.2",
"uuid": "^3.3.2"
"realpath-native": "^1.0.2"
}
},
"jest-diff": {
@@ -3681,22 +3701,23 @@
}
},
"jest-jasmine2": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.0.0.tgz",
"integrity": "sha512-q1xEV9KHM0bgfBj3yrkrjRF5kxpNDkWPCwVfSPN1DC+pD6J5wrM9/u2BgzhKhALXiaZUUhJ+f/OcEC0Gwpw90A==",
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.1.0.tgz",
"integrity": "sha512-H+o76SdSNyCh9fM5K8upK45YTo/DiFx5w2YAzblQebSQmukDcoVBVeXynyr7DDnxh+0NTHYRCLwJVf3tC518wg==",
"dev": true,
"requires": {
"@babel/traverse": "^7.1.0",
"chalk": "^2.0.1",
"co": "^4.6.0",
"expect": "^24.0.0",
"expect": "^24.1.0",
"is-generator-fn": "^2.0.0",
"jest-each": "^24.0.0",
"jest-matcher-utils": "^24.0.0",
"jest-message-util": "^24.0.0",
"jest-snapshot": "^24.0.0",
"jest-snapshot": "^24.1.0",
"jest-util": "^24.0.0",
"pretty-format": "^24.0.0"
"pretty-format": "^24.0.0",
"throat": "^4.0.0"
}
},
"jest-leak-detector": {
@@ -3746,9 +3767,9 @@
"dev": true
},
"jest-resolve": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.0.0.tgz",
"integrity": "sha512-uKDGyJqNaBQKox1DJzm27CJobADsIMNgZGusXhtYzl98LKu/fKuokkRsd7EBVgoDA80HKHc3LOPKuYLryMu1vw==",
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.1.0.tgz",
"integrity": "sha512-TPiAIVp3TG6zAxH28u/6eogbwrvZjBMWroSLBDkwkHKrqxB/RIdwkWDye4uqPlZIXWIaHtifY3L0/eO5Z0f2wg==",
"dev": true,
"requires": {
"browser-resolve": "^1.11.3",
@@ -3757,30 +3778,31 @@
}
},
"jest-resolve-dependencies": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.0.0.tgz",
"integrity": "sha512-CJGS5ME2g5wL16o3Y22ga9p5ntNT5CUYX40/0lYj9ic9jB5YHm/qMKTgbFt9kowEBiMOFpXy15dWtBTEU54+zg==",
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.1.0.tgz",
"integrity": "sha512-2VwPsjd3kRPu7qe2cpytAgowCObk5AKeizfXuuiwgm1a9sijJDZe8Kh1sFj6FKvSaNEfCPlBVkZEJa2482m/Uw==",
"dev": true,
"requires": {
"jest-regex-util": "^24.0.0",
"jest-snapshot": "^24.0.0"
"jest-snapshot": "^24.1.0"
}
},
"jest-runner": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.0.0.tgz",
"integrity": "sha512-XefXm2XimKtwdfi2am4364GfCmLD1tOjiRtDexY65diCXt4Rw23rxj2wiW7p9s8Nh9dzJQNmrheqZ5rzvn762g==",
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.1.0.tgz",
"integrity": "sha512-CDGOkT3AIFl16BLL/OdbtYgYvbAprwJ+ExKuLZmGSCSldwsuU2dEGauqkpvd9nphVdAnJUcP12e/EIlnTX0QXg==",
"dev": true,
"requires": {
"chalk": "^2.4.2",
"exit": "^0.1.2",
"graceful-fs": "^4.1.15",
"jest-config": "^24.0.0",
"jest-config": "^24.1.0",
"jest-docblock": "^24.0.0",
"jest-haste-map": "^24.0.0",
"jest-jasmine2": "^24.0.0",
"jest-jasmine2": "^24.1.0",
"jest-leak-detector": "^24.0.0",
"jest-message-util": "^24.0.0",
"jest-runtime": "^24.0.0",
"jest-runtime": "^24.1.0",
"jest-util": "^24.0.0",
"jest-worker": "^24.0.0",
"source-map-support": "^0.5.6",
@@ -3796,9 +3818,9 @@
}
},
"jest-runtime": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.0.0.tgz",
"integrity": "sha512-UeVoTGiij8upcqfyBlJvImws7IGY+ZWtgVpt1h4VmVbyei39tVGia/20VoP3yvodS6FdjTwBj+JzVNuoh/9UTw==",
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.1.0.tgz",
"integrity": "sha512-59/BY6OCuTXxGeDhEMU7+N33dpMQyXq7MLK07cNSIY/QYt2QZgJ7Tjx+rykBI0skAoigFl0A5tmT8UdwX92YuQ==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
@@ -3809,19 +3831,19 @@
"fast-json-stable-stringify": "^2.0.0",
"glob": "^7.1.3",
"graceful-fs": "^4.1.15",
"jest-config": "^24.0.0",
"jest-config": "^24.1.0",
"jest-haste-map": "^24.0.0",
"jest-message-util": "^24.0.0",
"jest-regex-util": "^24.0.0",
"jest-resolve": "^24.0.0",
"jest-snapshot": "^24.0.0",
"jest-resolve": "^24.1.0",
"jest-snapshot": "^24.1.0",
"jest-util": "^24.0.0",
"jest-validate": "^24.0.0",
"micromatch": "^3.1.10",
"realpath-native": "^1.0.0",
"slash": "^2.0.0",
"strip-bom": "3.0.0",
"write-file-atomic": "^2.4.2",
"strip-bom": "^3.0.0",
"write-file-atomic": "2.4.1",
"yargs": "^12.0.2"
},
"dependencies": {
@@ -3832,9 +3854,9 @@
"dev": true
},
"write-file-atomic": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz",
"integrity": "sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==",
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz",
"integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.11",
@@ -3851,9 +3873,9 @@
"dev": true
},
"jest-snapshot": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.0.0.tgz",
"integrity": "sha512-7OcrckVnfzVYxSGPYl2Sn+HyT30VpDv+FMBFbQxSQ6DV2K9Js6vYT6d4SBPKp6DfDiEL2txNssJBxtlvF+Dymw==",
"version": "24.1.0",
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.1.0.tgz",
"integrity": "sha512-th6TDfFqEmXvuViacU1ikD7xFb7lQsPn2rJl7OEmnfIVpnrx3QNY2t3PE88meeg0u/mQ0nkyvmC05PBqO4USFA==",
"dev": true,
"requires": {
"@babel/types": "^7.0.0",
@@ -3861,7 +3883,7 @@
"jest-diff": "^24.0.0",
"jest-matcher-utils": "^24.0.0",
"jest-message-util": "^24.0.0",
"jest-resolve": "^24.0.0",
"jest-resolve": "^24.1.0",
"mkdirp": "^0.5.1",
"natural-compare": "^1.4.0",
"pretty-format": "^24.0.0",
@@ -4132,9 +4154,9 @@
"dev": true
},
"kleur": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.1.tgz",
"integrity": "sha512-P3kRv+B+Ra070ng2VKQqW4qW7gd/v3iD8sy/zOdcYRsfiD+QBokQNOps/AfP6Hr48cBhIIBFWckB9aO+IZhrWg==",
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.2.tgz",
"integrity": "sha512-3h7B2WRT5LNXOtQiAaWonilegHcPSf9nLVXlSTci8lu1dZUuui61+EsPEZqSVxY7rXYmB2DVKMQILxaO5WL61Q==",
"dev": true
},
"lcid": {
@@ -4259,6 +4281,12 @@
"pify": "^3.0.0"
}
},
"make-error": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
"integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
"dev": true
},
"makeerror": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
@@ -4298,14 +4326,14 @@
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"mem": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz",
"integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==",
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz",
"integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==",
"dev": true,
"requires": {
"map-age-cleaner": "^0.1.1",
"mimic-fn": "^1.0.0",
"p-is-promise": "^1.1.0"
"p-is-promise": "^2.0.0"
}
},
"merge": {
@@ -4558,25 +4586,26 @@
"dev": true
},
"node-notifier": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.3.0.tgz",
"integrity": "sha512-AhENzCSGZnZJgBARsUjnQ7DnZbzyP+HxlVXuD0xqAnvL8q+OqtSX7lGg9e8nHzwXkMMXNdVeqq4E2M3EUAqX6Q==",
"version": "5.4.0",
"resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz",
"integrity": "sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==",
"dev": true,
"requires": {
"growly": "^1.3.0",
"is-wsl": "^1.1.0",
"semver": "^5.5.0",
"shellwords": "^0.1.1",
"which": "^1.3.0"
}
},
"normalize-package-data": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
"requires": {
"hosted-git-info": "^2.1.4",
"is-builtin-module": "^1.0.0",
"resolve": "^1.10.0",
"semver": "2 || 3 || 4 || 5",
"validate-npm-package-license": "^3.0.1"
}
@@ -4611,9 +4640,9 @@
"dev": true
},
"nwsapi": {
"version": "2.0.9",
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.9.tgz",
"integrity": "sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.0.tgz",
"integrity": "sha512-ZG3bLAvdHmhIjaQ/Db1qvBxsGvFMLIRpQszyqbg31VJ53UP++uZX1/gf3Ut96pdwN9AuDwlMqIYLm0UPCdUeHg==",
"dev": true
},
"oauth-sign": {
@@ -4658,9 +4687,9 @@
}
},
"object-keys": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
"integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==",
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz",
"integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==",
"dev": true
},
"object-visit": {
@@ -4782,9 +4811,9 @@
"dev": true
},
"p-is-promise": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
"integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz",
"integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==",
"dev": true
},
"p-limit": {
@@ -4891,9 +4920,9 @@
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
},
"pirates": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.0.tgz",
"integrity": "sha512-8t5BsXy1LUIjn3WWOlOuFDuKswhQb/tkak641lvBgmPOBUQHXveORtlMCp6OdPV1dtuTaEahKA8VNz6uLfKBtA==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz",
"integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==",
"dev": true,
"requires": {
"node-modules-regexp": "^1.0.0"
@@ -4965,12 +4994,12 @@
"dev": true
},
"prompts": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.0.1.tgz",
"integrity": "sha512-8lnEOSIGQbgbnO47+13S+H204L8ISogGulyi0/NNEFAQ9D1VMNTrJ9SBX2Ra03V4iPn/zt36HQMndRYkaPoWiQ==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.0.3.tgz",
"integrity": "sha512-H8oWEoRZpybm6NV4to9/1limhttEo13xK62pNvn2JzY0MA03p7s0OjtmhXyon3uJmxiJJVSuUwEJFFssI3eBiQ==",
"dev": true,
"requires": {
"kleur": "^3.0.0",
"kleur": "^3.0.2",
"sisteransi": "^1.0.0"
}
},
@@ -5104,9 +5133,9 @@
}
},
"realpath-native": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.2.tgz",
"integrity": "sha512-+S3zTvVt9yTntFrBpm7TQmQ3tzpCrnA1a/y+3cUHAc9ZR6aIjG0WNLR+Rj79QpJktY+VeW/TQtFlQ1bzsehI8g==",
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz",
"integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==",
"dev": true,
"requires": {
"util.promisify": "^1.0.0"
@@ -5211,23 +5240,23 @@
}
},
"request-promise-core": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz",
"integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz",
"integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==",
"dev": true,
"requires": {
"lodash": "^4.13.1"
"lodash": "^4.17.11"
}
},
"request-promise-native": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz",
"integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=",
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz",
"integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==",
"dev": true,
"requires": {
"request-promise-core": "1.1.1",
"stealthy-require": "^1.1.0",
"tough-cookie": ">=2.3.3"
"request-promise-core": "1.1.2",
"stealthy-require": "^1.1.1",
"tough-cookie": "^2.3.3"
}
},
"require-directory": {
@@ -5989,9 +6018,9 @@
}
},
"test-exclude": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.0.0.tgz",
"integrity": "sha512-bO3Lj5+qFa9YLfYW2ZcXMOV1pmQvw+KS/DpjqhyX6Y6UZ8zstpZJ+mA2ERkXfpOqhxsJlQiLeVXD3Smsrs6oLw==",
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.1.0.tgz",
"integrity": "sha512-gwf0S2fFsANC55fSeSqpb8BYk6w3FDvwZxfNjeF6FRgvFa43r+7wRiA/Q0IxoRU37wB/LE8IQ4221BsNucTaCA==",
"dev": true,
"requires": {
"arrify": "^1.0.1",
@@ -6106,6 +6135,40 @@
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
"dev": true
},
"ts-jest": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-24.0.0.tgz",
"integrity": "sha512-o8BO3TkMREpAATaFTrXkovMsCpBl2z4NDBoLJuWZcJJj1ijI49UnvDMfVpj+iogn/Jl8Pbhuei5nc/Ti+frEHw==",
"dev": true,
"requires": {
"bs-logger": "0.x",
"buffer-from": "1.x",
"fast-json-stable-stringify": "2.x",
"json5": "2.x",
"make-error": "1.x",
"mkdirp": "0.x",
"resolve": "1.x",
"semver": "^5.5",
"yargs-parser": "10.x"
},
"dependencies": {
"camelcase": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
"integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
"dev": true
},
"yargs-parser": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
"integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
"dev": true,
"requires": {
"camelcase": "^4.1.0"
}
}
}
},
"tslib": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",

View File

@@ -8,7 +8,7 @@
"clean": "sudo ./dev-scripts/dev-clean-run-as-dev.sh",
"tslint": "tslint -c tslint.json -p tsconfig.json",
"build": "rm -rf ./built && npx tsc",
"test": "jest"
"test": "rm -rf ./built && npx tsc && jest"
},
"dependencies": {
"@types/bcryptjs": "^2.4.2",
@@ -19,6 +19,7 @@
"@types/express": "^4.16.1",
"@types/fs-extra": "^5.0.4",
"@types/http-proxy": "^1.16.2",
"@types/jest": "^24.0.6",
"@types/js-base64": "^2.3.1",
"@types/jsonwebtoken": "^8.3.0",
"@types/morgan": "^1.7.35",
@@ -63,6 +64,7 @@
"validator": "^10.11.0"
},
"devDependencies": {
"jest": "^24.0.0"
"jest": "^24.1.0",
"ts-jest": "^24.0.0"
}
}

View File

@@ -1,7 +1,6 @@
import uuid = require('uuid/v4')
import SshClientImport = require('ssh2')
import request = require('request')
import fs = require('fs-extra')
import CaptainConstants = require('../../utils/CaptainConstants')
import Logger = require('../../utils/Logger')
import LoadBalancerManager = require('./LoadBalancerManager')
@@ -16,6 +15,8 @@ import { IRegistryTypes, IRegistryInfo } from '../../models/IRegistryInfo'
import MigrateCaptainDuckDuck from '../../utils/MigrateCaptainDuckDuck'
import Authenticator = require('../Authenticator')
import * as tar from 'tar'
import * as fs from 'fs-extra'
import Utils from '../../utils/Utils'
const BACKUP_JSON = 'backup.json'
@@ -51,6 +52,32 @@ export default class BackupManager {
return !!this.longOperationInProgress
}
checkAndPrepareRestoration() {
if (
!fs.pathExistsSync(CaptainConstants.restoreTarFilePath) ||
!fs.statSync(CaptainConstants.restoreTarFilePath).isFile()
)
return Promise.resolve()
return Promise.resolve() //
.then(function() {
return fs.ensureDir(CaptainConstants.restoreDirectoryPath)
})
.then(function() {
return tar
.extract({
file: CaptainConstants.restoreTarFilePath,
cwd: CaptainConstants.restoreDirectoryPath,
})
.then(function() {
return Utils.getNeverReturningPromise()
})
.then(function(data) {
return Promise.resolve()
})
})
}
createBackup(iBackupCallbacks: IBackupCallbacks) {
const self = this
const certbotManager = iBackupCallbacks.getCertbotManager()
@@ -71,7 +98,7 @@ export default class BackupManager {
})
}
createBackupInternal(iBackupCallbacks: IBackupCallbacks) {
private createBackupInternal(iBackupCallbacks: IBackupCallbacks) {
const self = this
return Promise.resolve() //
.then(function() {

View File

@@ -77,6 +77,10 @@ let data = {
captainBaseDirectory: CAPTAIN_BASE_DIRECTORY,
restoreTarFilePath: CAPTAIN_BASE_DIRECTORY + '/backup.tar',
restoreDirectoryPath: CAPTAIN_BASE_DIRECTORY + '/restoring',
captainRootDirectoryTemp: CAPTAIN_ROOT_DIRECTORY_TEMP,
captainRootDirectoryBackup: CAPTAIN_ROOT_DIRECTORY_TEMP + '/backup',

View File

@@ -4,6 +4,7 @@ import CaptainConstants = require('./CaptainConstants')
import EnvVar = require('./EnvVars')
import http = require('http')
import request = require('request')
import BackupManager from '../user/system/BackupManager'
// internal IP returns Public IP if the machine is not behind a NAT
// No need to directly use Public IP.
@@ -248,6 +249,9 @@ export function install() {
.then(function() {
return checkPortOrThrow(myIp4, 3000)
})
.then(function() {
return new BackupManager().checkAndPrepareRestoration()
})
.then(function() {
return DockerApi.get().initSwarm(myIp4)
})

View File

@@ -8,4 +8,10 @@ export default class Utils {
static isNotGetRequest(req: { method: string }) {
return req.method !== 'GET'
}
static getNeverReturningPromise() {
return new Promise((res, rej) => {
//
})
}
}

View File

@@ -1,27 +0,0 @@
const Encryptor = require('../built/utils/Encryptor');
test('Testing Encryptor 1', () => {
const encryptor = new Encryptor.CaptainEncryptor('8h9hasfasaaaaaaaaaaaaaa75h7553245235423452345235235235254h75h38');
let valueToBeEncrypter = 'qq';
expect(encryptor.decrypt(encryptor.encrypt(valueToBeEncrypter))).toBe(valueToBeEncrypter);
});
test('Testing Encryptor 2', () => {
const encryptor = new Encryptor.CaptainEncryptor('8h9hasfasaaaaaaaaaaaaaa75h7553245235423452345235235235254h75h38');
let valueToBeEncrypter = 'q290852f98nb80nv8m8m bn83vn@ 8098m%#@%$5$@#52q';
expect(encryptor.decrypt(encryptor.encrypt(valueToBeEncrypter))).toBe(valueToBeEncrypter);
});
test('Testing Encryptor - Key too short', () => {
let value = 1;
try {
const encryptor = new Encryptor.CaptainEncryptor('short');
value = 0;
} catch (e) {
}
expect(value).toBe(1);
});