diff --git a/.nvmrc b/.nvmrc index 26ee5b05..72587022 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -10.2.1 +10.11.0 diff --git a/.travis.yml b/.travis.yml index 54474185..53fc8c48 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,7 +45,6 @@ addons: install: - nvm install - - npm install -g npm@6.4.0 - npm install before_script: diff --git a/appveyor.yml b/appveyor.yml index 4ea1e40b..79c901d1 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,7 +7,7 @@ environment: secure: 3IebpEKmC39codi1wT6dXx8mql4/mCL1JzZ7lir7GQ5MWRnCxlED2OXbiKHHigDV CSC_LINK: c:\projects\uhk-agent\scripts\certs\windows-cert.p12 matrix: - - nodejs_version: "10.2.1" + - nodejs_version: "10.11.0" cache: - node_modules -> package.json @@ -24,7 +24,6 @@ install: - choco install chromium - set CI=true - set PATH=%APPDATA%\npm;%PATH% - - npm install -g npm@6.4.0 - node -v - npm -v - appveyor-retry npm install diff --git a/package-lock.json b/package-lock.json index bd08d02c..09fcb577 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2691,9 +2691,9 @@ } }, "@types/fs-extra": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.1.tgz", - "integrity": "sha512-h3wnflb+jMTipvbbZnClgA2BexrT4w0GcfoCz5qyxd0IRsbqhLSyesM6mqZTAnhbVmhyTm5tuxfRu9R+8l+lGw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.0.0.tgz", + "integrity": "sha512-bCtL5v9zdbQW86yexOlXWTEGvLNqWxMFyi7gQA7Gcthbezr2cPSOb8SkESVKA937QD5cIwOFLDFt0MQoXOEr9Q==", "dev": true, "requires": { "@types/node": "*" @@ -7114,14 +7114,22 @@ "dev": true }, "electron": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/electron/-/electron-3.1.10.tgz", - "integrity": "sha512-IORdmdD5gWHmp3ffa+ZRD9kESJwdmQz8carDTeza6+W76dG447AUn7GmKk4cun31bLYTKb56D8pPhxa9S7kOZQ==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/electron/-/electron-4.2.8.tgz", + "integrity": "sha512-/D9zfs+EWLN4yLV7tu2kWyXUnZQ3CKG1cmWbXeSFXF+0dNXQ8iFpY49dqZRoHGIBImFfp2x4N3Zc5Tu7rw3PJw==", "dev": true, "requires": { - "@types/node": "^8.0.24", + "@types/node": "^10.12.18", "electron-download": "^4.1.0", "extract-zip": "^1.0.3" + }, + "dependencies": { + "@types/node": { + "version": "10.14.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.13.tgz", + "integrity": "sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ==", + "dev": true + } } }, "electron-builder": { @@ -7520,9 +7528,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "path-exists": { @@ -9075,14 +9083,22 @@ } }, "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", + "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", + "dev": true + } } }, "fs-extra-p": { @@ -18578,9 +18594,9 @@ "dev": true }, "typescript": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.3.3.tgz", - "integrity": "sha512-Y21Xqe54TBVp+VDSNbuDYdGw0BpoR/Q6wo/+35M8PAU0vipahnyduJWirxxdxjsAkS7hue53x2zp8gz7F05u0A==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", "dev": true }, "uglify-js": { diff --git a/package.json b/package.json index c0f6b657..0de33aed 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@types/electron-devtools-installer": "2.0.2", "@types/electron-settings": "3.0.0", "@types/file-saver": "0.0.1", - "@types/fs-extra": "5.0.1", + "@types/fs-extra": "8.0.0", "@types/jasmine": "3.3.12", "@types/jasminewd2": "2.0.3", "@types/jquery": "3.3.29", @@ -44,7 +44,7 @@ "decompress": "4.2.0", "decompress-tarbz2": "4.1.1", "devtron": "1.4.0", - "electron": "3.1.10", + "electron": "4.2.8", "electron-builder": "20.34.0", "electron-debug": "1.5.0", "electron-devtools-installer": "2.2.3", @@ -54,7 +54,7 @@ "electron-updater": "2.21.4", "exports-loader": "0.6.3", "file-loader": "0.10.0", - "fs-extra": "5.0.0", + "fs-extra": "8.1.0", "gh-pages": "2.0.1", "html-webpack-plugin": "3.2.0", "jasmine": "3.4.0", @@ -64,7 +64,6 @@ "jsonfile": "4.0.0", "lerna": "3.16.1", "lodash": "4.17.15", - "mkdirp": "0.5.1", "node-hid": "0.7.8", "npm-run-all": "4.0.2", "nrf-intel-hex": "1.3.0", @@ -78,7 +77,7 @@ "ts-loader": "5.3.3", "ts-node": "7.0.1", "tslint": "5.18.0", - "typescript": "3.3.3", + "typescript": "3.5.3", "webpack": "4.29.5", "webpack-cli": "3.2.3" }, diff --git a/packages/kboot/package-lock.json b/packages/kboot/package-lock.json index e4524637..12d59252 100644 --- a/packages/kboot/package-lock.json +++ b/packages/kboot/package-lock.json @@ -462,9 +462,9 @@ "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" }, "tunnel-agent": { "version": "0.6.0", diff --git a/packages/kboot/package.json b/packages/kboot/package.json index ecdbf866..0b80304e 100644 --- a/packages/kboot/package.json +++ b/packages/kboot/package.json @@ -16,7 +16,7 @@ "dependencies": { "debug": "^4.1.1", "byte-data": "^16.0.3", - "tslib": "^1.9.3", + "tslib": "^1.10.0", "node-hid": ">= 0.7.3" }, "peer-dependencies": {}, diff --git a/packages/uhk-agent/package-lock.json b/packages/uhk-agent/package-lock.json index 8a8bcf3b..d229d98f 100644 --- a/packages/uhk-agent/package-lock.json +++ b/packages/uhk-agent/package-lock.json @@ -699,9 +699,9 @@ } }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" }, "tunnel-agent": { "version": "0.6.0", diff --git a/packages/uhk-agent/package.json b/packages/uhk-agent/package.json index 416a7f3b..6e1c4620 100644 --- a/packages/uhk-agent/package.json +++ b/packages/uhk-agent/package.json @@ -20,14 +20,14 @@ "node-hid": "0.7.8", "sudo-prompt": "7.0.0", "tmp": "0.0.33", - "tslib": "1.9.3", + "tslib": "1.10.0", "uhk-common": "^1.0.0", "uhk-usb": "^1.0.0" }, "devDependencies": { }, "scripts": { - "start": "electron ./dist/electron-main.js", + "start": "cross-env DEBUG=kboot* electron ./dist/electron-main.js", "electron:spe": "electron ./dist/electron-main.js --spe", "build": "webpack && npm run install:build-deps && npm run build:usb && npm run download-firmware && npm run copy-to-tmp-folder", "build:usb": "electron-rebuild -w node-hid -p -m ./dist", diff --git a/packages/uhk-common/package-lock.json b/packages/uhk-common/package-lock.json index 08882efb..13a41ffa 100644 --- a/packages/uhk-common/package-lock.json +++ b/packages/uhk-common/package-lock.json @@ -24,9 +24,9 @@ "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" } } } diff --git a/packages/uhk-common/package.json b/packages/uhk-common/package.json index 6a58662f..6d0d6926 100644 --- a/packages/uhk-common/package.json +++ b/packages/uhk-common/package.json @@ -21,7 +21,7 @@ }, "dependencies": { "buffer": "5.2.1", - "tslib": "1.9.3" + "tslib": "1.10.0" }, "license": "GPL-3.0", "nyc": { diff --git a/packages/uhk-usb/package-lock.json b/packages/uhk-usb/package-lock.json index 23da863c..e575f02d 100644 --- a/packages/uhk-usb/package-lock.json +++ b/packages/uhk-usb/package-lock.json @@ -440,9 +440,9 @@ "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" }, "tunnel-agent": { "version": "0.6.0", diff --git a/packages/uhk-usb/package.json b/packages/uhk-usb/package.json index 749e7b34..50a2b178 100644 --- a/packages/uhk-usb/package.json +++ b/packages/uhk-usb/package.json @@ -14,7 +14,7 @@ "kboot": "0.0.0", "node-hid": "0.7.8", "nrf-intel-hex": "1.3.0", - "tslib": "1.9.3", + "tslib": "1.10.0", "uhk-common": "1.0.0" } } diff --git a/packages/uhk-web/package-lock.json b/packages/uhk-web/package-lock.json index 8cc1cad9..2e98e78b 100644 --- a/packages/uhk-web/package-lock.json +++ b/packages/uhk-web/package-lock.json @@ -1540,20 +1540,6 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, - "autoprefixer": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz", - "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", - "dev": true, - "requires": { - "browserslist": "^2.11.3", - "caniuse-lite": "^1.0.30000805", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^6.0.17", - "postcss-value-parser": "^3.2.3" - } - }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -2016,16 +2002,6 @@ "pako": "~1.0.5" } }, - "browserslist": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", - "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000792", - "electron-to-chromium": "^1.3.30" - } - }, "browserstack": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.1.tgz", @@ -2166,12 +2142,6 @@ "map-obj": "^1.0.0" } }, - "caniuse-lite": { - "version": "1.0.30000824", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000824.tgz", - "integrity": "sha512-KcgeAvVkpzN05Mjiyz5vf0le5AWRwfRGqGkKXWWsdrLQd4EIBevReSy7mYCdwSq7MqKrmJ0lEQEkUQE2VspRRw==", - "dev": true - }, "canonical-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", @@ -3184,12 +3154,6 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, - "electron-to-chromium": { - "version": "1.3.42", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.42.tgz", - "integrity": "sha1-lcM78B0MxAVVauyJn+Yf1NduoPk=", - "dev": true - }, "elliptic": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", @@ -7979,51 +7943,6 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, - "postcss": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.21.tgz", - "integrity": "sha512-y/bKfbQz2Nn/QBC08bwvYUxEFOVGfPIUOTsJ2CK5inzlXW9SdYR1x4pEsG9blRAF/PX+wRNdOah+gx/hv4q7dw==", - "dev": true, - "requires": { - "chalk": "^2.3.2", - "source-map": "^0.6.1", - "supports-color": "^5.3.0" - }, - "dependencies": { - "chalk": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", - "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", - "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, "postcss-import": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", diff --git a/packages/uhk-web/package.json b/packages/uhk-web/package.json index 1b3b8714..7e645c12 100644 --- a/packages/uhk-web/package.json +++ b/packages/uhk-web/package.json @@ -43,7 +43,6 @@ "@ngrx/store-log-monitor": "3.0.2", "angular-confirmation-popover": "4.2.0", "angular-notifier": "4.1.1", - "autoprefixer": "^7.2.3", "bootstrap": "3.4.1", "codelyzer": "4.5.0", "dragula": "3.7.2", diff --git a/packages/uhk-web/src/app/components/svg/keyboard/svg-keyboard.component.html b/packages/uhk-web/src/app/components/svg/keyboard/svg-keyboard.component.html index ee3c6ad2..e22581ca 100644 --- a/packages/uhk-web/src/app/components/svg/keyboard/svg-keyboard.component.html +++ b/packages/uhk-web/src/app/components/svg/keyboard/svg-keyboard.component.html @@ -26,4 +26,5 @@ diff --git a/packages/uhk-web/src/app/components/svg/keyboard/svg-keyboard.component.ts b/packages/uhk-web/src/app/components/svg/keyboard/svg-keyboard.component.ts index 784b3975..2bd7ca22 100644 --- a/packages/uhk-web/src/app/components/svg/keyboard/svg-keyboard.component.ts +++ b/packages/uhk-web/src/app/components/svg/keyboard/svg-keyboard.component.ts @@ -49,6 +49,16 @@ import { LastEditedKey } from '../../../models'; })), transition('visible => invisible', animate('200ms')), transition('invisible => visible', animate('200ms 500ms')) + ]), + trigger('moveDescription', [ + state('down', style({ + 'margin-top': '0.5em' + })), + state('up', style({ + 'margin-top': '-6.5%' + })), + transition('down => up', animate(500)), + transition('up => down', animate(500)) ]) ] }) @@ -74,6 +84,7 @@ export class SvgKeyboardComponent { separator: SvgSeparator; separatorStyle: SafeStyle; separatorAnimation = 'visible'; + descriptionAnimation = 'down'; constructor(private svgModuleProvider: SvgModuleProviderService, private sanitizer: DomSanitizer) { @@ -123,9 +134,11 @@ export class SvgKeyboardComponent { if (this.halvesInfo.areHalvesMerged) { this.moduleAnimationStates = []; this.separatorAnimation = 'visible'; + this.descriptionAnimation = 'down'; } else { this.moduleAnimationStates = ['rotateRight', 'rotateLeft']; this.separatorAnimation = 'invisible'; + this.descriptionAnimation = 'up'; } if (this.halvesInfo.isLeftHalfConnected) { diff --git a/scripts/generate-svg-sprites.js b/scripts/generate-svg-sprites.js index 0ee79815..449670cb 100644 --- a/scripts/generate-svg-sprites.js +++ b/scripts/generate-svg-sprites.js @@ -1,7 +1,7 @@ const SVGSpriter = require('svg-sprite'); const path = require('path'); -const mkdirp = require('mkdirp'); -const fs = require('fs'); +const fs = require('fs-extra'); + let config = { 'dest': 'packages/uhk-web/src/assets/', log: 'verbose', @@ -90,7 +90,7 @@ function writeResultFiles (error, result) { // Run through all created resources and write them to disk for (const type in result[mode]) { - mkdirp.sync(path.dirname(result[mode][type].path)); + fs.ensureDirSync(path.dirname(result[mode][type].path)); fs.writeFileSync(result[mode][type].path, result[mode][type].contents); } }