diff --git a/package-lock.json b/package-lock.json index 96e8aaf..2dc2f8b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,56 +25,6 @@ "@pushrocks/smartpath": "^4.0.1", "@pushrocks/smartpromise": "^2.0.5", "typescript": "^3.0.1" - }, - "dependencies": { - "@pushrocks/smartfile": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/@pushrocks/smartfile/-/smartfile-6.0.8.tgz", - "integrity": "sha512-YkAovvQ0pcVphXLynlQ1D4nhEoUqALqqUn2pRXc2vXNy0RDSU22puLlLVhoXT0NPAqYNMazhqc4OAixgEOpdFw==", - "dev": true, - "requires": { - "@pushrocks/smartpath": "^4.0.1", - "@pushrocks/smartpromise": "^2.0.5", - "@pushrocks/smartrequest": "^1.1.14", - "@types/fs-extra": "^5.0.4", - "@types/vinyl": "^2.0.2", - "fs-extra": "^7.0.0", - "glob": "^7.1.2", - "js-yaml": "^3.10.0", - "vinyl-file": "^3.0.0" - } - }, - "@pushrocks/smartrequest": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@pushrocks/smartrequest/-/smartrequest-1.1.14.tgz", - "integrity": "sha512-+sDQB4Mxvpn8BIMPUQ7TPSCKUVMln3tHC4rp4pmfEHmBQK+g1XwtNr59aMA9kEoBDMt7li1hu+1cs+SNsWt6Gw==", - "dev": true, - "requires": { - "@pushrocks/smartpromise": "^2.0.5", - "@types/form-data": "^2.2.1", - "form-data": "^2.3.2" - } - }, - "@types/fs-extra": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.4.tgz", - "integrity": "sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "fs-extra": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", - "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } } }, "@gitzone/tsrun": { @@ -103,67 +53,6 @@ "@pushrocks/smartshell": "^2.0.6", "@types/figures": "^2.0.0", "figures": "^2.0.0" - }, - "dependencies": { - "@pushrocks/smartfile": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/@pushrocks/smartfile/-/smartfile-6.0.8.tgz", - "integrity": "sha512-YkAovvQ0pcVphXLynlQ1D4nhEoUqALqqUn2pRXc2vXNy0RDSU22puLlLVhoXT0NPAqYNMazhqc4OAixgEOpdFw==", - "dev": true, - "requires": { - "@pushrocks/smartpath": "^4.0.1", - "@pushrocks/smartpromise": "^2.0.5", - "@pushrocks/smartrequest": "^1.1.14", - "@types/fs-extra": "^5.0.4", - "@types/vinyl": "^2.0.2", - "fs-extra": "^7.0.0", - "glob": "^7.1.2", - "js-yaml": "^3.10.0", - "vinyl-file": "^3.0.0" - } - }, - "@pushrocks/smartrequest": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@pushrocks/smartrequest/-/smartrequest-1.1.14.tgz", - "integrity": "sha512-+sDQB4Mxvpn8BIMPUQ7TPSCKUVMln3tHC4rp4pmfEHmBQK+g1XwtNr59aMA9kEoBDMt7li1hu+1cs+SNsWt6Gw==", - "dev": true, - "requires": { - "@pushrocks/smartpromise": "^2.0.5", - "@types/form-data": "^2.2.1", - "form-data": "^2.3.2" - } - }, - "@pushrocks/smartshell": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@pushrocks/smartshell/-/smartshell-2.0.6.tgz", - "integrity": "sha512-D48KB3DDqLfMjOXGEutqJi+v3Z4RcWacu5BJXxUwrecvd6oetbKobfmNGxeHSQPmNGb7U3ISfKwV6c5T5EZkJg==", - "dev": true, - "requires": { - "@pushrocks/smartpromise": "^2.0.5", - "@types/which": "^1.3.1", - "which": "^1.3.1" - } - }, - "@types/fs-extra": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.4.tgz", - "integrity": "sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "fs-extra": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", - "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } } }, "@pushrocks/consolecolor": { @@ -247,6 +136,15 @@ "@pushrocks/smartfile": "^6.0.6" } }, + "@pushrocks/smartanalytics": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@pushrocks/smartanalytics/-/smartanalytics-2.0.15.tgz", + "integrity": "sha512-zOtZCuNcTw8o31g06t03nT+uSmtFGoyzWmRZ0gw8v/JU4+ph3iaCiFq5lAoeWZHveCy8b3eSH4q/cVtZvDIa5w==", + "requires": { + "@pushrocks/smartpromise": "^2.0.5", + "@pushrocks/smartrequest": "^1.1.14" + } + }, "@pushrocks/smartcli": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@pushrocks/smartcli/-/smartcli-3.0.6.tgz", @@ -430,9 +328,9 @@ } }, "@types/chai": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.4.tgz", - "integrity": "sha512-h6+VEw2Vr3ORiFCyyJmcho2zALnUq9cvdB/IO8Xs9itrJVCenC7o26A6+m7D0ihTTr65eS259H5/Ghl/VjYs6g==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.7.tgz", + "integrity": "sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA==", "dev": true }, "@types/chai-as-promised": { @@ -446,7 +344,7 @@ }, "@types/chai-string": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@types/chai-string/-/chai-string-1.4.1.tgz", + "resolved": "http://registry.npmjs.org/@types/chai-string/-/chai-string-1.4.1.tgz", "integrity": "sha512-aRNMs6TKgjgPlCHwDfq/YNy5VtRR2hJ4AUWByddrT0TRVVD8eX4MiHW6/iHvmQHRlVuuPZcwnTUE7b4yFt7bEA==", "dev": true, "requires": { @@ -572,6 +470,59 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -622,23 +573,29 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "chai": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chai-as-promised": { @@ -746,6 +703,12 @@ "delayed-stream": "~1.0.0" } }, + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -856,6 +819,12 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, "execa": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", @@ -967,6 +936,23 @@ "function-bind": "^1.1.1" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -1054,6 +1040,12 @@ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.8.tgz", "integrity": "sha512-hm2nYpDrwoO/OzBhdcqs/XGT6XjSuSSCVEpia+Kl2J6x4CYt5hISlVL/AYU1khoDXv0AQVgxtdJySb9gjAn56Q==" }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, "js-yaml": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", @@ -1212,9 +1204,9 @@ } }, "nan": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", - "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", + "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", "dev": true }, "nice-try": { @@ -1479,16 +1471,6 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, - "smartanalytics": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/smartanalytics/-/smartanalytics-2.0.9.tgz", - "integrity": "sha512-bzElOk2M5LpR5qopDXRJnubWHo/VrGTUosrRym7S8FwVcy4Ka+yklpz3oCQNe+8PhNAnj8F9WsDnp2eg7tN8Bg==", - "requires": { - "smartq": "^1.1.1", - "smartrequest": "^1.0.4", - "typings-global": "^1.0.14" - } - }, "smartchai": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/smartchai/-/smartchai-2.0.1.tgz", @@ -1539,15 +1521,6 @@ "util.promisify": "^1.0.0" } }, - "smartrequest": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/smartrequest/-/smartrequest-1.0.6.tgz", - "integrity": "sha1-oAZFQzJFOwpw04oAOimWPQOad4M=", - "requires": { - "smartq": "^1.1.1", - "typings-global": "^1.0.17" - } - }, "smartshell": { "version": "1.0.19", "resolved": "https://registry.npmjs.org/smartshell/-/smartshell-1.0.19.tgz", @@ -1682,6 +1655,41 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, + "tslint": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz", + "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.27.2" + } + }, + "tslint-config-prettier": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.15.0.tgz", + "integrity": "sha512-06CgrHJxJmNYVgsmeMoa1KXzQRoOdvfkqnJth6XUkNeOz707qxN0WfxfhYwhL5kXHHbYJRby2bqAPKwThlZPhw==", + "dev": true + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", diff --git a/package.json b/package.json index 5c16846..446f5be 100644 --- a/package.json +++ b/package.json @@ -36,19 +36,21 @@ "@gitzone/tsrun": "^1.1.13", "@gitzone/tstest": "^1.0.15", "@pushrocks/tapbundle": "^3.0.7", - "@types/node": "^10.12.0" + "@types/node": "^10.12.0", + "tslint": "^5.11.0", + "tslint-config-prettier": "^1.15.0" }, "dependencies": { "@pushrocks/npmextra": "^3.0.1", "@pushrocks/projectinfo": "^4.0.2", "@pushrocks/qenv": "^2.0.2", + "@pushrocks/smartanalytics": "^2.0.15", "@pushrocks/smartcli": "^3.0.6", "@pushrocks/smartfile": "^6.0.8", "@pushrocks/smartpromise": "^2.0.5", "@pushrocks/smartshell": "^2.0.8", "@pushrocks/smartstring": "^3.0.4", "@types/shelljs": "^0.8.0", - "beautylog": "^6.1.10", - "smartanalytics": "^2.0.9" + "beautylog": "^6.1.10" } -} +} \ No newline at end of file diff --git a/ts/analytics.ts b/ts/analytics.ts index dcbae67..cbf0a9b 100644 --- a/ts/analytics.ts +++ b/ts/analytics.ts @@ -9,7 +9,7 @@ * Have a nice day and regards * Your Open Source team at Lossless GmbH :) */ -import * as smartanalytics from 'smartanalytics'; +import * as smartanalytics from '@pushrocks/smartanalytics'; let npmdockerAnalytics = new smartanalytics.Analytics({ apiEndPoint: 'https://pubapi.lossless.one', appName: 'npmdocker', diff --git a/ts/npmdocker.cli.ts b/ts/npmdocker.cli.ts index 20134da..a190200 100644 --- a/ts/npmdocker.cli.ts +++ b/ts/npmdocker.cli.ts @@ -28,7 +28,7 @@ export let run = () => { let configArg = await ConfigModule.run(); const smartshellInstance = new plugins.smartshell.Smartshell({ executor: 'bash' - }) + }); await smartshellInstance.exec(configArg.command).then(response => { if (response.exitCode !== 0) { process.exit(1); @@ -42,7 +42,7 @@ export let run = () => { if (argvArg.all) { const smartshellInstance = new plugins.smartshell.Smartshell({ executor: 'bash' - }) + }); plugins.beautylog.ora.text('killing any running docker containers...'); await smartshellInstance.exec(`docker kill $(docker ps -q)`); @@ -64,7 +64,7 @@ export let run = () => { npmdockerCli.addCommand('speedtest').subscribe(async argvArg => { const smartshellInstance = new plugins.smartshell.Smartshell({ executor: 'bash' - }) + }); plugins.beautylog.figletSync('npmdocker'); plugins.beautylog.ok('Starting speedtest'); await smartshellInstance.exec( diff --git a/ts/npmdocker.docker.ts b/ts/npmdocker.docker.ts index 71f7fb3..7d44a22 100644 --- a/ts/npmdocker.docker.ts +++ b/ts/npmdocker.docker.ts @@ -4,7 +4,7 @@ import * as snippets from './npmdocker.snippets'; const smartshellInstance = new plugins.smartshell.Smartshell({ executor: 'bash' -}) +}); // interfaces import { IConfig } from './npmdocker.config'; @@ -28,7 +28,7 @@ let dockerData = { let checkDocker = () => { let done = plugins.smartpromise.defer(); plugins.beautylog.ora.text('checking docker...'); - + if (smartshellInstance.exec('which docker')) { plugins.beautylog.ok('Docker found!'); done.resolve(); @@ -74,7 +74,7 @@ let buildDockerImage = async () => { plugins.beautylog.ok('Dockerimage built!'); }; -let buildDockerProjectMountString = async () => { +const buildDockerProjectMountString = async () => { if (process.env.CI !== 'true') { dockerData.dockerProjectMountString = `-v ${paths.cwd}:/workspace`; } @@ -83,7 +83,7 @@ let buildDockerProjectMountString = async () => { /** * builds an environment string that docker cli understands */ -let buildDockerEnvString = async () => { +const buildDockerEnvString = async () => { for (let keyValueObjectArg of config.keyValueObjectArray) { let envString = (dockerData.dockerEnvString = dockerData.dockerEnvString + `-e ${keyValueObjectArg.key}=${keyValueObjectArg.value} `); @@ -93,7 +93,7 @@ let buildDockerEnvString = async () => { /** * creates string to mount the docker.sock inside the testcontainer */ -let buildDockerSockString = async () => { +const buildDockerSockString = async () => { if (config.dockerSock) { dockerData.dockerSockString = `-v /var/run/docker.sock:/var/run/docker.sock`; } diff --git a/tslint.json b/tslint.json index 45052ad..4424397 100644 --- a/tslint.json +++ b/tslint.json @@ -1,3 +1,10 @@ { - "extends": "tslint-config-standard" + "extends": ["tslint:latest", "tslint-config-prettier"], + "rules": { + "semicolon": [true, "always"], + "no-console": false, + "ordered-imports": false, + "object-literal-sort-keys": false + }, + "defaultSeverity": "warning" }