diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..799cbbf --- /dev/null +++ b/.drone.yml @@ -0,0 +1,9 @@ +pipeline: + build: + image: node:8 + commands: + - apt-get update + - apt-get install -yq libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libcups2 libxss1 libxrandr2 libpangocairo-1.0-0 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0 libnss3 libasound2 + - npm install + - npm run test:ci + - npm run build-prod diff --git a/README.md b/README.md index 41347b0..f405646 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ This is a short introduction to the awesome Convertorizr hosted at https://conv.friedli.info/. -Deployment is automated with Gitlab CI. Usage is self-explanatory. What else do you need to know? +Continuous integration is automated with Drone CI ([Build status of develop branch](https://ci.gittr.ch/api/badges/manuel/converter/status.svg?branch=develop)). Usage is self-explanatory. What else do you need to know? The source code is hosted at https://gittr.ch/manuel/converter.git. Contact the author at manuel-convertorizr|at|fritteli.ch. diff --git a/package-lock.json b/package-lock.json index 8bd5f8d..5133b8a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1114,6 +1114,12 @@ "dev": true, "optional": true }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha1-ePrtjD0HSrgfIrTphdeehzj3IPg=", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/asynckit/-/asynckit-0.4.0.tgz", @@ -1777,7 +1783,6 @@ "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, - "optional": true, "requires": { "camelcase": "2.1.1", "map-obj": "1.0.1" @@ -1787,8 +1792,7 @@ "version": "2.1.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/camelcase/-/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true, - "optional": true + "dev": true } } }, @@ -1936,6 +1940,12 @@ } } }, + "clone": { + "version": "1.0.4", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, "clone-deep": { "version": "2.0.2", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/clone-deep/-/clone-deep-2.0.2.tgz", @@ -2042,6 +2052,15 @@ "delayed-stream": "1.0.0" } }, + "commander": { + "version": "1.0.4", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/commander/-/commander-1.0.4.tgz", + "integrity": "sha1-Xt6xruI8T7VBprcNaSq+8ZZpotM=", + "dev": true, + "requires": { + "keypress": "0.1.0" + } + }, "commondir": { "version": "1.0.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/commondir/-/commondir-1.0.1.tgz", @@ -2462,12 +2481,35 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "deep-defaults": { + "version": "1.0.4", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/deep-defaults/-/deep-defaults-1.0.4.tgz", + "integrity": "sha1-Gpdi4rbI1qTpkxuO5/+M3O4dF1A=", + "dev": true, + "requires": { + "lodash": "3.0.1" + }, + "dependencies": { + "lodash": { + "version": "3.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/lodash/-/lodash-3.0.1.tgz", + "integrity": "sha1-FNSQKKOLx0AkHRHi7NV+wG1zwZo=", + "dev": true + } + } + }, "deep-equal": { "version": "1.0.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", "dev": true }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/deep-is/-/deep-is-0.1.3.tgz", @@ -2493,6 +2535,15 @@ "strip-bom": "3.0.0" } }, + "defaults": { + "version": "1.0.3", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "1.0.4" + } + }, "define-properties": { "version": "1.1.3", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/define-properties/-/define-properties-1.1.3.tgz", @@ -2805,6 +2856,34 @@ "integrity": "sha1-SY7A1JVlWrxvI81hho2SZGQHGqA=", "dev": true }, + "electron": { + "version": "1.8.8", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/electron/-/electron-1.8.8.tgz", + "integrity": "sha1-qQzdsHUpH0lXaZPm9ci7RDkwHK4=", + "dev": true, + "requires": { + "@types/node": "8.9.5", + "electron-download": "3.3.0", + "extract-zip": "1.6.7" + } + }, + "electron-download": { + "version": "3.3.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/electron-download/-/electron-download-3.3.0.tgz", + "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", + "dev": true, + "requires": { + "debug": "2.6.9", + "fs-extra": "0.30.0", + "home-path": "1.0.6", + "minimist": "1.2.0", + "nugget": "2.0.1", + "path-exists": "2.1.0", + "rc": "1.2.8", + "semver": "5.5.1", + "sumchecker": "1.3.1" + } + }, "electron-to-chromium": { "version": "1.3.62", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/electron-to-chromium/-/electron-to-chromium-1.3.62.tgz", @@ -2940,6 +3019,23 @@ "tapable": "1.0.0" } }, + "enqueue": { + "version": "1.0.2", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/enqueue/-/enqueue-1.0.2.tgz", + "integrity": "sha1-kBTpvOVw7pPKlubI5jrVTBkra8g=", + "dev": true, + "requires": { + "sliced": "0.0.5" + }, + "dependencies": { + "sliced": { + "version": "0.0.5", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/sliced/-/sliced-0.0.5.tgz", + "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8=", + "dev": true + } + } + }, "ent": { "version": "2.2.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/ent/-/ent-2.2.0.tgz", @@ -3551,6 +3647,18 @@ } } }, + "extract-zip": { + "version": "1.6.7", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "dev": true, + "requires": { + "concat-stream": "1.6.2", + "debug": "2.6.9", + "mkdirp": "0.5.1", + "yauzl": "2.4.1" + } + }, "extsprintf": { "version": "1.3.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/extsprintf/-/extsprintf-1.3.0.tgz", @@ -3590,6 +3698,15 @@ "websocket-driver": "0.7.0" } }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "1.2.0" + } + }, "file-loader": { "version": "1.1.11", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/file-loader/-/file-loader-1.1.11.tgz", @@ -3785,6 +3902,19 @@ "null-check": "1.0.0" } }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.2" + } + }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -4350,6 +4480,12 @@ "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", "dev": true }, + "function-source": { + "version": "0.1.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/function-source/-/function-source-0.1.0.tgz", + "integrity": "sha1-2RBL8+RniLVUaMAr8bL6vPj8Ga8=", + "dev": true + }, "gauge": { "version": "2.7.4", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/gauge/-/gauge-2.7.4.tgz", @@ -4737,6 +4873,12 @@ "minimalistic-crypto-utils": "1.0.1" } }, + "home-path": { + "version": "1.0.6", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/home-path/-/home-path-1.0.6.tgz", + "integrity": "sha1-1UncJGU4in+GZyQsWzFYjSmvKfw=", + "dev": true + }, "hosted-git-info": { "version": "2.7.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/hosted-git-info/-/hosted-git-info-2.7.1.tgz", @@ -5045,7 +5187,6 @@ "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, - "optional": true, "requires": { "repeating": "2.0.1" } @@ -5799,6 +5940,15 @@ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/jsprim/-/jsprim-1.4.1.tgz", @@ -6061,6 +6211,16 @@ "karma-jasmine": "1.1.2" } }, + "karma-nightmare": { + "version": "0.4.15", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/karma-nightmare/-/karma-nightmare-0.4.15.tgz", + "integrity": "sha1-mWwF17TpSCMp+MsFTvHNJnH3fA8=", + "dev": true, + "requires": { + "make-dir": "1.3.0", + "nightmare": "2.10.0" + } + }, "karma-source-map-support": { "version": "1.3.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz", @@ -6070,6 +6230,12 @@ "source-map-support": "0.5.9" } }, + "keypress": { + "version": "0.1.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/keypress/-/keypress-0.1.0.tgz", + "integrity": "sha1-SjGI1CkbZrT2XtuZ+AaqmuKTWSo=", + "dev": true + }, "killable": { "version": "1.0.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/killable/-/killable-1.0.0.tgz", @@ -6082,6 +6248,15 @@ "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true }, + "klaw": { + "version": "1.3.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, "lazy-cache": { "version": "1.0.4", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/lazy-cache/-/lazy-cache-1.0.4.tgz", @@ -6463,7 +6638,6 @@ "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, - "optional": true, "requires": { "camelcase-keys": "2.1.0", "decamelize": "1.2.0", @@ -6598,6 +6772,15 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, + "minstache": { + "version": "1.2.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/minstache/-/minstache-1.2.0.tgz", + "integrity": "sha1-/xzEA6woRPaNvxjGYhKb5+sO/EE=", + "dev": true, + "requires": { + "commander": "1.0.4" + } + }, "mississippi": { "version": "2.0.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/mississippi/-/mississippi-2.0.0.tgz", @@ -6770,6 +6953,35 @@ "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", "dev": true }, + "nightmare": { + "version": "2.10.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/nightmare/-/nightmare-2.10.0.tgz", + "integrity": "sha1-6cXVkLspb1loX9SCGML7rER2eyE=", + "dev": true, + "requires": { + "debug": "2.6.9", + "deep-defaults": "1.0.4", + "defaults": "1.0.3", + "electron": "1.8.8", + "enqueue": "1.0.2", + "function-source": "0.1.0", + "jsesc": "0.5.0", + "minstache": "1.2.0", + "mkdirp": "0.5.1", + "once": "1.4.0", + "rimraf": "2.6.2", + "sliced": "1.0.1", + "split2": "2.2.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, "no-case": { "version": "2.3.2", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/no-case/-/no-case-2.3.2.tgz", @@ -7087,6 +7299,21 @@ "boolbase": "1.0.0" } }, + "nugget": { + "version": "2.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/nugget/-/nugget-2.0.1.tgz", + "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", + "dev": true, + "requires": { + "debug": "2.6.9", + "minimist": "1.2.0", + "pretty-bytes": "1.0.4", + "progress-stream": "1.2.0", + "request": "2.88.0", + "single-line-log": "1.1.2", + "throttleit": "0.0.2" + } + }, "null-check": { "version": "1.0.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/null-check/-/null-check-1.0.0.tgz", @@ -7154,6 +7381,12 @@ } } }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, "object-visit": { "version": "1.0.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/object-visit/-/object-visit-1.0.1.tgz", @@ -7565,6 +7798,12 @@ "sha.js": "2.4.11" } }, + "pend": { + "version": "1.2.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, "performance-now": { "version": "2.1.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/performance-now/-/performance-now-2.1.0.tgz", @@ -7713,6 +7952,16 @@ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, + "pretty-bytes": { + "version": "1.0.4", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "dev": true, + "requires": { + "get-stdin": "4.0.1", + "meow": "3.7.0" + } + }, "pretty-error": { "version": "2.1.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/pretty-error/-/pretty-error-2.1.1.tgz", @@ -7735,6 +7984,22 @@ "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=", "dev": true }, + "progress": { + "version": "2.0.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, + "progress-stream": { + "version": "1.2.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/progress-stream/-/progress-stream-1.2.0.tgz", + "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", + "dev": true, + "requires": { + "speedometer": "0.1.4", + "through2": "0.2.3" + } + }, "promise": { "version": "7.3.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/promise/-/promise-7.3.1.tgz", @@ -7846,6 +8111,12 @@ "ipaddr.js": "1.8.0" } }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "dev": true + }, "prr": { "version": "1.0.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/prr/-/prr-1.0.1.tgz", @@ -7903,6 +8174,48 @@ "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/punycode/-/punycode-2.1.1.tgz", "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" }, + "puppeteer": { + "version": "1.7.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/puppeteer/-/puppeteer-1.7.0.tgz", + "integrity": "sha1-7cuiMApQhHICwPGf0V56lhcf870=", + "dev": true, + "requires": { + "debug": "3.1.0", + "extract-zip": "1.6.7", + "https-proxy-agent": "2.2.1", + "mime": "2.3.1", + "progress": "2.0.0", + "proxy-from-env": "1.0.0", + "rimraf": "2.6.2", + "ws": "5.2.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/debug/-/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "mime": { + "version": "2.3.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/mime/-/mime-2.3.1.tgz", + "integrity": "sha1-sWIcVNY7l8R9PP5/chX31kUXw2k=", + "dev": true + }, + "ws": { + "version": "5.2.2", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/ws/-/ws-5.2.2.tgz", + "integrity": "sha1-3/7xSGa46NyRM1glFNG++vlumA8=", + "dev": true, + "requires": { + "async-limiter": "1.0.0" + } + } + } + }, "q": { "version": "1.4.1", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/q/-/q-1.4.1.tgz", @@ -8009,6 +8322,18 @@ "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", "dev": true }, + "rc": { + "version": "1.2.8", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/rc/-/rc-1.2.8.tgz", + "integrity": "sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=", + "dev": true, + "requires": { + "deep-extend": "0.6.0", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + } + }, "read-cache": { "version": "1.0.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/read-cache/-/read-cache-1.0.0.tgz", @@ -8079,7 +8404,6 @@ "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, - "optional": true, "requires": { "indent-string": "2.1.0", "strip-indent": "1.0.1" @@ -8747,12 +9071,27 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, + "single-line-log": { + "version": "1.1.2", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/single-line-log/-/single-line-log-1.1.2.tgz", + "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", + "dev": true, + "requires": { + "string-width": "1.0.2" + } + }, "slash": { "version": "1.0.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, + "sliced": { + "version": "1.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=", + "dev": true + }, "slide": { "version": "1.1.6", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/slide/-/slide-1.1.6.tgz", @@ -9180,6 +9519,12 @@ "wbuf": "1.7.3" } }, + "speedometer": { + "version": "0.1.4", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/speedometer/-/speedometer-0.1.4.tgz", + "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", + "dev": true + }, "split-string": { "version": "3.1.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/split-string/-/split-string-3.1.0.tgz", @@ -9189,6 +9534,33 @@ "extend-shallow": "3.0.2" } }, + "split2": { + "version": "2.2.0", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/split2/-/split2-2.2.0.tgz", + "integrity": "sha1-GGsldbz4PoW30YRldWI47k7kJJM=", + "dev": true, + "requires": { + "through2": "2.0.3" + }, + "dependencies": { + "through2": { + "version": "2.0.3", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.6", + "xtend": "4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -9368,11 +9740,16 @@ "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, - "optional": true, "requires": { "get-stdin": "4.0.1" } }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, "style-loader": { "version": "0.21.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/style-loader/-/style-loader-0.21.0.tgz", @@ -9439,6 +9816,16 @@ "when": "3.6.4" } }, + "sumchecker": { + "version": "1.3.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/sumchecker/-/sumchecker-1.3.1.tgz", + "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", + "dev": true, + "requires": { + "debug": "2.6.9", + "es6-promise": "4.2.4" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/supports-color/-/supports-color-5.5.0.tgz", @@ -9472,12 +9859,54 @@ "inherits": "2.0.3" } }, + "throttleit": { + "version": "0.0.2", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/throttleit/-/throttleit-0.0.2.tgz", + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", + "dev": true + }, "through": { "version": "2.3.8", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, + "through2": { + "version": "0.2.3", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/through2/-/through2-0.2.3.tgz", + "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", + "dev": true, + "requires": { + "readable-stream": "1.1.14", + "xtend": "2.1.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "thunky": { "version": "1.0.2", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/thunky/-/thunky-1.0.2.tgz", @@ -9596,8 +10025,7 @@ "version": "1.0.0", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/trim-newlines/-/trim-newlines-1.0.0.tgz", "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true, - "optional": true + "dev": true }, "trim-right": { "version": "1.0.1", @@ -10714,6 +11142,15 @@ "integrity": "sha1-5pgYneSd0qGMxWh7BeF8jkOUMCA=", "dev": true }, + "xtend": { + "version": "2.1.2", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, + "requires": { + "object-keys": "0.4.0" + } + }, "xxhashjs": { "version": "0.2.2", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/xxhashjs/-/xxhashjs-0.2.2.tgz", @@ -10766,6 +11203,15 @@ "camelcase": "4.1.0" } }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "1.0.1" + } + }, "yeast": { "version": "0.1.2", "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/yeast/-/yeast-0.1.2.tgz", diff --git a/package.json b/package.json index ddb98f6..d408a3a 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "build": "ng build --delete-output-path", "build-prod": "ng build --prod --optimization --aot --delete-output-path --build-optimizer", "test": "ng test", + "test:ci": "ng test --browsers ChromeHeadlessNoSandbox --watch=false", "lint": "ng lint", "e2e": "ng e2e", "postinstall": "npm rebuild node-sass" @@ -60,7 +61,9 @@ "karma-coverage-istanbul-reporter": "~2.0.0", "karma-jasmine": "~1.1.1", "karma-jasmine-html-reporter": "^0.2.2", + "karma-nightmare": "~0.4.15", "protractor": "~5.4.0", + "puppeteer": "~1.7.0", "ts-node": "~5.0.1", "tslint": "~5.9.1", "typescript": "2.9.2" diff --git a/src/karma.conf.js b/src/karma.conf.js index 4a9730b..5b5db64 100644 --- a/src/karma.conf.js +++ b/src/karma.conf.js @@ -1,13 +1,16 @@ // Karma configuration file, see link for more information // https://karma-runner.github.io/1.0/config/configuration-file.html +process.env.CHROME_BIN = require('puppeteer').executablePath(); + module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ - require('karma-jasmine'), require('karma-chrome-launcher'), + require('karma-jasmine'), + require('karma-nightmare'), require('karma-jasmine-html-reporter'), require('karma-coverage-istanbul-reporter'), require('@angular-devkit/build-angular/plugins/karma') @@ -25,7 +28,13 @@ module.exports = function (config) { colors: true, logLevel: config.LOG_INFO, autoWatch: true, - browsers: ['Chrome'], + browsers: ['ChromeHeadless'], + customLaunchers: { + ChromeHeadlessNoSandbox: { + base: 'ChromeHeadless', + flags: ['--no-sandbox'] + } + }, singleRun: false }); };