11 Commits

Author SHA1 Message Date
László Monda
aba0b09109 Bump Agent to version 1.2.8 and update changelog. 2018-08-26 23:42:31 +02:00
László Monda
af608ee17d Downgrade to firmware 8.2.5 2018-08-26 23:35:54 +02:00
Róbert Kiss
df817e86d6 fix: use OnPush change detection on the keymap edit and add pages (#760)
* fix: use OnPush change detection on the keymap edit and add pages

* fix: font-size
2018-08-26 22:08:29 +02:00
Róbert Kiss
a7d3b62512 chore: upgrade many dependencies and restructure tsconfigs (#757)
* chore: upgrade many dependencies and restructure tsconfigs

Summary:
- upgrade many dependencies
- remove dev dependencies from test-serializer and uhk-common
- created root tsconfig.json and test-serializer and uhk-common
  tsconfigs extends it
- fixed e2e test

* chore: upgrade more dependencies
2018-08-22 00:34:16 +02:00
Róbert Kiss
b41f14192a chore: upgrade stylelint => 9.5.0 (#756)
it is fix "Unknown CSS word" error in IntelliJ
2018-08-21 20:43:18 +02:00
Róbert Kiss
475ec71983 fix: uncheck 'Remap on all keyboard' and 'Remap on all layer' checkbox by default (#754)
* fix: uncheck 'Remap on all keyboard' and 'Remap on all layer' checkbox by default

* fix: popover checkbox checked state
2018-08-21 20:41:54 +02:00
László Monda
b5cff2fa93 Fix the padding of the secondary role tooltip. 2018-08-14 04:10:30 +02:00
László Monda
80e8c014ec Bind left and right Shift on the Mouse layer of all keymaps in the default configuration. 2018-08-08 17:00:32 +02:00
László Monda
67d42f666c Simplify the output of get-debug-info.js 2018-08-04 02:29:39 +02:00
László Monda
fa32f95438 Add note to the LED brightness page saying that current UHK versions are not backlit. Also include spacing-bootstrap-3 2018-07-30 00:05:04 +02:00
László Monda
06878dd56a Remove the redundant scrollbar from the LED brightness page. 2018-07-29 00:28:34 +02:00
36 changed files with 12371 additions and 5739 deletions

View File

@@ -6,6 +6,17 @@ The format is loosely based on [Keep a Changelog](http://keepachangelog.com/en/1
Every Agent version includes the most recent firmware version. See the [firmware changelog](https://github.com/UltimateHackingKeyboard/firmware/blob/master/CHANGELOG.md). Every Agent version includes the most recent firmware version. See the [firmware changelog](https://github.com/UltimateHackingKeyboard/firmware/blob/master/CHANGELOG.md).
## [1.2.8] - 2018-08-26
Firmware: 8.**2.5** [[release](https://github.com/UltimateHackingKeyboard/firmware/releases/tag/v8.2.5)] | Device Protocol: 4.4.0 | User Config: 4.0.1 | Hardware Config: 1.0.0
- Uncheck the "Remap on all keymaps" and "Remap on all layers" checkboxes of the key action popover by default.
- Bind left and right Shift on the Mouse layer of all keymaps in the default configuration.
- Make ng2-select2 widgets faster.
- Add note to the LED brightness page saying that current UHK versions are not backlit.
- Fix the padding of the secondary role tooltip.
- Remove the redundant scrollbar from the LED brightness page.
## [1.2.7] - 2018-07-26 ## [1.2.7] - 2018-07-26
Firmware: 8.4.0 [[release](https://github.com/UltimateHackingKeyboard/firmware/releases/tag/v8.4.0)] | Device Protocol: 4.4.0 | User Config: 4.0.1 | Hardware Config: 1.0.0 Firmware: 8.4.0 [[release](https://github.com/UltimateHackingKeyboard/firmware/releases/tag/v8.4.0)] | Device Protocol: 4.4.0 | User Config: 4.0.1 | Hardware Config: 1.0.0

9524
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -3,8 +3,8 @@
"private": true, "private": true,
"author": "Ultimate Gadget Laboratories", "author": "Ultimate Gadget Laboratories",
"main": "electron/dist/electron-main.js", "main": "electron/dist/electron-main.js",
"version": "1.2.7", "version": "1.2.8",
"firmwareVersion": "8.4.0", "firmwareVersion": "8.2.5",
"deviceProtocolVersion": "4.4.0", "deviceProtocolVersion": "4.4.0",
"userConfigVersion": "4.0.1", "userConfigVersion": "4.0.1",
"hardwareConfigVersion": "1.0.0", "hardwareConfigVersion": "1.0.0",
@@ -22,7 +22,7 @@
"@types/electron-devtools-installer": "2.0.2", "@types/electron-devtools-installer": "2.0.2",
"@types/electron-settings": "3.0.0", "@types/electron-settings": "3.0.0",
"@types/fs-extra": "5.0.1", "@types/fs-extra": "5.0.1",
"@types/jasmine": "2.6.0", "@types/jasmine": "2.8.8",
"@types/jquery": "3.3.1", "@types/jquery": "3.3.1",
"@types/jsonfile": "4.0.1", "@types/jsonfile": "4.0.1",
"@types/lodash-es": "4.17.0", "@types/lodash-es": "4.17.0",
@@ -40,35 +40,39 @@
"decompress": "4.2.0", "decompress": "4.2.0",
"decompress-tarbz2": "4.1.1", "decompress-tarbz2": "4.1.1",
"devtron": "1.4.0", "devtron": "1.4.0",
"electron": "1.8.4", "electron": "1.8.7",
"electron-builder": "20.8.1", "electron-builder": "20.8.1",
"electron-debug": "1.5.0", "electron-debug": "1.5.0",
"electron-devtools-installer": "2.2.3", "electron-devtools-installer": "2.2.3",
"electron-log": "2.2.16", "electron-log": "2.2.16",
"electron-rebuild": "1.8.1", "electron-rebuild": "1.8.2",
"electron-settings": "3.1.4", "electron-settings": "3.1.4",
"electron-updater": "2.21.4", "electron-updater": "2.21.4",
"exports-loader": "0.6.3", "exports-loader": "0.6.3",
"file-loader": "0.10.0", "file-loader": "0.10.0",
"fs-extra": "5.0.0", "fs-extra": "5.0.0",
"gh-pages": "1.1.0", "gh-pages": "1.1.0",
"jasmine": "2.8.0",
"jasmine-core": "2.8.0",
"jasmine-node": "2.0.1",
"jasmine-ts": "0.2.1",
"jsonfile": "4.0.0", "jsonfile": "4.0.0",
"lerna": "2.9.0", "lerna": "3.1.4",
"lodash-es": "4.17.4", "lodash-es": "4.17.4",
"mkdirp": "0.5.1", "mkdirp": "0.5.1",
"node-hid": "0.5.7", "node-hid": "0.5.7",
"npm-run-all": "4.0.2", "npm-run-all": "4.0.2",
"pre-commit": "1.2.2", "pre-commit": "1.2.2",
"request": "2.83.0", "request": "2.88.0",
"rimraf": "2.6.1", "rimraf": "2.6.1",
"standard-version": "4.2.0", "standard-version": "4.2.0",
"stylelint": "7.13.0", "stylelint": "9.5.0",
"svg-sprite": "1.3.7", "svg-sprite": "1.4.0",
"ts-loader": "2.3.1", "ts-loader": "2.3.1",
"ts-node": "3.0.4", "ts-node": "7.0.1",
"tslint": "5.9.1", "tslint": "5.9.1",
"typescript": "2.6.2", "typescript": "2.6.2",
"webpack": "3.10.0" "webpack": "3.12.0"
}, },
"pre-commit": [ "pre-commit": [
"precommit-msg" "precommit-msg"
@@ -88,6 +92,7 @@
"lint:ts:test-serializer": "tslint --project ./packages/test-serializer/tsconfig.json", "lint:ts:test-serializer": "tslint --project ./packages/test-serializer/tsconfig.json",
"lint:ts:uhk-usb": "tslint --project ./packages/uhk-usb/tsconfig.json", "lint:ts:uhk-usb": "tslint --project ./packages/uhk-usb/tsconfig.json",
"lint:style": "stylelint \"packages/uhk-agent/src/**/*.scss\" \"packages/uhk-web/src/**/*.scss\" --syntax scss", "lint:style": "stylelint \"packages/uhk-agent/src/**/*.scss\" \"packages/uhk-web/src/**/*.scss\" --syntax scss",
"e2e": "lerna run e2e --scope uhk-web",
"prebuild": "check-node-version --package", "prebuild": "check-node-version --package",
"build": "run-s build:common build:usb build:web build:electron", "build": "run-s build:common build:usb build:web build:electron",
"build:web": "lerna exec --scope uhk-web npm run build", "build:web": "lerna exec --scope uhk-web npm run build",

View File

@@ -201,11 +201,11 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
}, },
"gaze": { "gaze": {
"version": "0.5.2", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
"integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
"requires": { "requires": {
"globule": "0.1.0" "globule": "1.2.1"
} }
}, },
"get-caller-file": { "get-caller-file": {
@@ -219,41 +219,37 @@
"integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
}, },
"glob": { "glob": {
"version": "3.1.21", "version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": { "requires": {
"graceful-fs": "1.2.3", "fs.realpath": "1.0.0",
"inherits": "1.0.2", "inflight": "1.0.6",
"minimatch": "0.2.14" "inherits": "2.0.3",
}, "minimatch": "3.0.4",
"dependencies": { "once": "1.4.0",
"inherits": { "path-is-absolute": "1.0.1"
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
"integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js="
}
} }
}, },
"globule": { "globule": {
"version": "0.1.0", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
"integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
"requires": { "requires": {
"glob": "3.1.21", "glob": "7.1.2",
"lodash": "1.0.2", "lodash": "4.17.10",
"minimatch": "0.2.14" "minimatch": "3.0.4"
} }
}, },
"graceful-fs": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
"integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q="
},
"growl": { "growl": {
"version": "1.7.0", "version": "1.10.5",
"resolved": "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
"integrity": "sha1-3i1mE20ALhErpw8/EMMc98NQsto=" "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="
},
"grunt-exec": {
"version": "0.4.7",
"resolved": "https://registry.npmjs.org/grunt-exec/-/grunt-exec-0.4.7.tgz",
"integrity": "sha1-QAUf+k6wyWV+BTuV6I1ENSocLCU="
}, },
"has-flag": { "has-flag": {
"version": "2.0.0", "version": "2.0.0",
@@ -362,31 +358,34 @@
"integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=" "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4="
}, },
"jasmine-growl-reporter": { "jasmine-growl-reporter": {
"version": "0.2.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/jasmine-growl-reporter/-/jasmine-growl-reporter-0.2.1.tgz", "resolved": "https://registry.npmjs.org/jasmine-growl-reporter/-/jasmine-growl-reporter-1.0.1.tgz",
"integrity": "sha1-1fCje5L2qD/VxkgrgJSVyQqLVf4=", "integrity": "sha512-dh7VjP3l0OLxL9+sw5vK6RrdH4gdHCNkTnUd9orViHDPr7Fe8LsXY+IObWauS2hX5khMFtjKRZCfTcDHKAjm/A==",
"requires": { "requires": {
"growl": "1.7.0" "growl": "1.10.5"
} }
}, },
"jasmine-node": { "jasmine-node": {
"version": "2.0.0", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/jasmine-node/-/jasmine-node-2.0.0.tgz", "resolved": "https://registry.npmjs.org/jasmine-node/-/jasmine-node-2.0.1.tgz",
"integrity": "sha1-gXUacjJfVJdJCxQYGlUIfxsDcf8=", "integrity": "sha512-1S5Z4Mof5yxwqLIApzyo2pV5WN2kRpTSgICvEo3+rJmKve9P94kolzC9eS0u5cyiT+gxBY2mwOQdxLbkhwKzoA==",
"requires": { "requires": {
"coffee-script": "1.7.1", "coffee-script": "1.7.1",
"gaze": "0.5.2", "gaze": "1.1.3",
"jasmine-growl-reporter": "0.2.1", "grunt-exec": "0.4.7",
"minimist": "0.0.8", "jasmine-growl-reporter": "1.0.1",
"jasmine-reporters": "git://github.com/larrymyers/jasmine-reporters.git#2c7242dc11c15c2f156169bc704798568b8cb50d",
"minimist": "0.0.10",
"mkdirp": "0.3.5", "mkdirp": "0.3.5",
"underscore": "1.6.0", "underscore": "1.6.0",
"walkdir": "0.0.12" "walkdir": "0.0.12",
"xml2js": "0.4.19"
}, },
"dependencies": { "dependencies": {
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.10",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
}, },
"mkdirp": { "mkdirp": {
"version": "0.3.5", "version": "0.3.5",
@@ -395,6 +394,19 @@
} }
} }
}, },
"jasmine-reporters": {
"version": "git://github.com/larrymyers/jasmine-reporters.git#2c7242dc11c15c2f156169bc704798568b8cb50d",
"requires": {
"mkdirp": "0.3.5"
},
"dependencies": {
"mkdirp": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
"integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc="
}
}
},
"jasmine-ts": { "jasmine-ts": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/jasmine-ts/-/jasmine-ts-0.2.1.tgz", "resolved": "https://registry.npmjs.org/jasmine-ts/-/jasmine-ts-0.2.1.tgz",
@@ -442,14 +454,9 @@
} }
}, },
"lodash": { "lodash": {
"version": "1.0.2", "version": "4.17.10",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
"integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=" "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg=="
},
"lru-cache": {
"version": "2.7.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
"integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI="
}, },
"make-error": { "make-error": {
"version": "1.3.0", "version": "1.3.0",
@@ -470,12 +477,11 @@
"integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg="
}, },
"minimatch": { "minimatch": {
"version": "0.2.14", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": { "requires": {
"lru-cache": "2.7.3", "brace-expansion": "1.1.8"
"sigmund": "1.0.1"
} }
}, },
"minimist": { "minimist": {
@@ -633,6 +639,11 @@
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
}, },
"sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"semver": { "semver": {
"version": "5.4.1", "version": "5.4.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
@@ -656,11 +667,6 @@
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
}, },
"sigmund": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
"integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA="
},
"signal-exit": { "signal-exit": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
@@ -854,6 +860,20 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
}, },
"xml2js": {
"version": "0.4.19",
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
"integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
"requires": {
"sax": "1.2.4",
"xmlbuilder": "9.0.7"
}
},
"xmlbuilder": {
"version": "9.0.7",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
"integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="
},
"y18n": { "y18n": {
"version": "3.2.1", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",

View File

@@ -14,16 +14,9 @@
"npm": ">=5.1.0 <6.0.0" "npm": ">=5.1.0 <6.0.0"
}, },
"dependencies": { "dependencies": {
"uhk-common": "1.0.0"
}, },
"devDependencies": { "devDependencies": {
"@types/jasmine": "2.6.0",
"@types/node": "8.0.30",
"jasmine": "2.8.0",
"jasmine-core": "2.8.0",
"jasmine-node": "2.0.0",
"jasmine-ts": "0.2.1",
"ts-node": "3.3.0",
"uhk-common": "1.0.0"
}, },
"scripts": { "scripts": {
"test": "jasmine-ts --config=jasmine.json" "test": "jasmine-ts --config=jasmine.json"

View File

@@ -1,11 +1,9 @@
{ {
"extends": "../../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"target": "es6", "target": "es6",
"module": "commonjs", "module": "commonjs",
"moduleResolution": "node", "moduleResolution": "node",
"experimentalDecorators": true, "experimentalDecorators": true
"typeRoots": [
"./node_modules/@types"
]
} }
} }

View File

@@ -1,11 +1,14 @@
{ {
"requires": true, "name": "uhk-agent",
"version": "0.0.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true,
"dependencies": { "dependencies": {
"@types/decompress": { "@types/decompress": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/@types/decompress/-/decompress-4.2.0.tgz", "resolved": "https://registry.npmjs.org/@types/decompress/-/decompress-4.2.0.tgz",
"integrity": "sha512-f7bLkRy09Z+1kid9ylcWMRlJrEWe4ceqtoGvlFQ/hnxL7WIr+AEy5Bv8SCIRDm8FLqTv4VF+hTUCpSd7rHgtkQ==", "integrity": "sha512-f7bLkRy09Z+1kid9ylcWMRlJrEWe4ceqtoGvlFQ/hnxL7WIr+AEy5Bv8SCIRDm8FLqTv4VF+hTUCpSd7rHgtkQ==",
"dev": true,
"requires": { "requires": {
"@types/node": "8.0.33" "@types/node": "8.0.33"
} }
@@ -13,12 +16,14 @@
"@types/node": { "@types/node": {
"version": "8.0.33", "version": "8.0.33",
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.33.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.33.tgz",
"integrity": "sha512-vmCdO8Bm1ExT+FWfC9sd9r4jwqM7o97gGy2WBshkkXbf/2nLAJQUrZfIhw27yVOtLUev6kSZc4cav/46KbDd8A==" "integrity": "sha512-vmCdO8Bm1ExT+FWfC9sd9r4jwqM7o97gGy2WBshkkXbf/2nLAJQUrZfIhw27yVOtLUev6kSZc4cav/46KbDd8A==",
"dev": true
}, },
"@types/tmp": { "@types/tmp": {
"version": "0.0.33", "version": "0.0.33",
"resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz", "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz",
"integrity": "sha1-EHPEvIJHVK49EM+riKsCN7qWTk0=" "integrity": "sha1-EHPEvIJHVK49EM+riKsCN7qWTk0=",
"dev": true
}, },
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",

View File

@@ -19,16 +19,6 @@
"coverage": "nyc jasmine-ts --config=jasmine.json" "coverage": "nyc jasmine-ts --config=jasmine.json"
}, },
"license": "GPL-3.0", "license": "GPL-3.0",
"devDependencies": {
"@types/jasmine": "2.6.0",
"@types/node": "8.0.30",
"jasmine": "2.8.0",
"jasmine-core": "2.8.0",
"jasmine-node": "2.0.0",
"jasmine-ts": "0.2.1",
"nyc": "11.2.1",
"ts-node": "3.3.0"
},
"nyc": { "nyc": {
"extension": [ "extension": [
".ts" ".ts"

View File

@@ -1,4 +1,5 @@
{ {
"extends": "../../tsconfig.json",
"compileOnSave": false, "compileOnSave": false,
"compilerOptions": { "compilerOptions": {
"sourceMap": true, "sourceMap": true,
@@ -9,9 +10,6 @@
"emitDecoratorMetadata": true, "emitDecoratorMetadata": true,
"experimentalDecorators": true, "experimentalDecorators": true,
"target": "es5", "target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [ "lib": [
"es2015.iterable", "es2015.iterable",
"dom", "dom",

View File

@@ -1,11 +1,14 @@
{ {
"requires": true, "name": "uhk-usb",
"version": "1.0.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true,
"dependencies": { "dependencies": {
"@types/node": { "@types/node": {
"version": "8.0.28", "version": "8.0.28",
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.28.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.28.tgz",
"integrity": "sha512-HupkFXEv3O3KSzcr3Ylfajg0kaerBg1DyaZzRBBQfrU3NN1mTBRE7sCveqHwXLS5Yrjvww8qFzkzYQQakG9FuQ==" "integrity": "sha512-HupkFXEv3O3KSzcr3Ylfajg0kaerBg1DyaZzRBBQfrU3NN1mTBRE7sCveqHwXLS5Yrjvww8qFzkzYQQakG9FuQ==",
"dev": true
}, },
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",

View File

@@ -7,8 +7,8 @@ describe('web App', () => {
page = new WebPage(); page = new WebPage();
}); });
it('should display welcome message', () => { it('should display default device name', () => {
page.navigateTo(); page.navigateTo();
expect(page.getParagraphText()).toEqual('Welcome to app!'); expect(page.getDeviceName()).toEqual('My UHK');
}); });
}); });

View File

@@ -5,7 +5,8 @@ export class WebPage {
return browser.get('/'); return browser.get('/');
} }
getParagraphText() { getDeviceName() {
return element(by.css('app-root h1')).getText(); return element(by.css('body > main-app > side-menu > ul > li:nth-child(1) > div > auto-grow-input > input'))
.getAttribute('value');
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -36,8 +36,8 @@
"@types/electron-devtools-installer": "2.0.2", "@types/electron-devtools-installer": "2.0.2",
"@types/electron-settings": "3.0.0", "@types/electron-settings": "3.0.0",
"@types/file-saver": "0.0.1", "@types/file-saver": "0.0.1",
"@types/jasmine": "2.5.53", "@types/jasmine": "2.8.8",
"@types/jasminewd2": "2.0.2", "@types/jasminewd2": "2.0.3",
"@types/jquery": "3.2.9", "@types/jquery": "3.2.9",
"@types/usb": "1.1.3", "@types/usb": "1.1.3",
"angular-confirmation-popover": "3.2.0", "angular-confirmation-popover": "3.2.0",
@@ -50,23 +50,23 @@
"dragula": "3.7.2", "dragula": "3.7.2",
"font-awesome": "4.7.0", "font-awesome": "4.7.0",
"html-webpack-plugin": "^2.29.0", "html-webpack-plugin": "^2.29.0",
"jasmine-core": "2.6.2", "jasmine-core": "3.2.1",
"jasmine-spec-reporter": "4.1.0", "jasmine-spec-reporter": "4.2.1",
"jquery": "3.2.1", "jquery": "3.2.1",
"jsonfile": "3.0.1", "jsonfile": "3.0.1",
"karma": "1.7.0", "karma": "3.0.0",
"karma-chrome-launcher": "2.1.1", "karma-chrome-launcher": "2.2.0",
"karma-coverage-istanbul-reporter": "1.2.1", "karma-coverage-istanbul-reporter": "2.0.1",
"karma-jasmine": "1.1.0", "karma-jasmine": "1.1.2",
"karma-jasmine-html-reporter": "0.2.2", "karma-jasmine-html-reporter": "1.3.1",
"ng2-dragula": "1.5.0", "ng2-dragula": "1.5.0",
"ng2-nouislider": "^1.7.7", "ng2-nouislider": "^1.7.7",
"ngx-clipboard": "10.0.0", "ngx-clipboard": "10.0.0",
"@ert78gb/ngx-select-ex": "3.7.0", "@ert78gb/ngx-select-ex": "3.7.2",
"ngrx-store-freeze": "0.1.9", "ngrx-store-freeze": "0.1.9",
"nouislider": "^11.1.0", "nouislider": "^11.1.0",
"postcss-url": "^7.1.2", "postcss-url": "^7.1.2",
"protractor": "5.1.2", "protractor": "5.4.0",
"reselect": "3.0.1", "reselect": "3.0.1",
"rxjs": "5.5.8", "rxjs": "5.5.8",
"typescript": "2.6.2", "typescript": "2.6.2",
@@ -78,6 +78,7 @@
}, },
"dependencies": { "dependencies": {
"classlist.js": "1.1.20150312", "classlist.js": "1.1.20150312",
"file-saver": "1.3.3" "file-saver": "1.3.3",
"spacing-bootstrap-3": "^1.0.0"
} }
} }

View File

@@ -12,7 +12,7 @@ exports.config = {
'browserName': 'chrome' 'browserName': 'chrome'
}, },
directConnect: true, directConnect: true,
baseUrl: 'http://localhost:4200/', baseUrl: 'http://localhost:8080/',
framework: 'jasmine', framework: 'jasmine',
jasmineNodeOpts: { jasmineNodeOpts: {
showColors: true, showColors: true,

View File

@@ -29,7 +29,7 @@
<div class="row led-setting"> <div class="row led-setting">
<div class="col-xs-12 col-md-6"> <div class="col-xs-12 col-md-6">
<slider-wrapper <slider-wrapper
label="Key backlight brightness" label="Key backlight brightness <span class='text-muted pl-1'>Please note that current UHK versions are not backlit.</span>"
[min]="0" [min]="0"
[max]="255" [max]="255"
[step]="1" [step]="1"

View File

@@ -1,5 +1,4 @@
:host { :host {
overflow-y: auto;
display: block; display: block;
height: 100%; height: 100%;
width: 100%; width: 100%;

View File

@@ -1,4 +1,4 @@
import { Component } from '@angular/core'; import { ChangeDetectionStrategy, Component } from '@angular/core';
import { Store } from '@ngrx/store'; import { Store } from '@ngrx/store';
import { Keymap } from 'uhk-common'; import { Keymap } from 'uhk-common';
@@ -14,6 +14,7 @@ import { KeymapActions } from '../../../store/actions';
selector: 'keymap-add', selector: 'keymap-add',
templateUrl: './keymap-add.component.html', templateUrl: './keymap-add.component.html',
styleUrls: ['./keymap-add.component.scss'], styleUrls: ['./keymap-add.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
host: { host: {
'class': 'container-fluid' 'class': 'container-fluid'
} }

View File

@@ -1,4 +1,4 @@
import { Component, HostListener } from '@angular/core'; import { ChangeDetectionStrategy, Component, HostListener } from '@angular/core';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { Store } from '@ngrx/store'; import { Store } from '@ngrx/store';
import { Keymap } from 'uhk-common'; import { Keymap } from 'uhk-common';
@@ -24,6 +24,7 @@ import { ChangeKeymapDescription } from '../../../models/ChangeKeymapDescription
selector: 'keymap-edit', selector: 'keymap-edit',
templateUrl: './keymap-edit.component.html', templateUrl: './keymap-edit.component.html',
styleUrls: ['./keymap-edit.component.scss'], styleUrls: ['./keymap-edit.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
host: { host: {
'class': 'container-fluid' 'class': 'container-fluid'
} }

View File

@@ -81,14 +81,14 @@
<label> <label>
<input type="checkbox" <input type="checkbox"
name="remapOnAllKeymap" name="remapOnAllKeymap"
[(ngModel)]="remapOnAllKeymap"> Remap on all keymaps [(ngModel)]="remapInfo.remapOnAllKeymap"> Remap on all keymaps
</label> </label>
</div> </div>
<div class="checkbox"> <div class="checkbox">
<label> <label>
<input type="checkbox" <input type="checkbox"
name="remapOnAllLayer" name="remapOnAllLayer"
[(ngModel)]="remapOnAllLayer"> Remap on all layers [(ngModel)]="remapInfo.remapOnAllLayer"> Remap on all layers
</label> </label>
</div> </div>
<div class="d-inline-block"> <div class="d-inline-block">

View File

@@ -1,4 +1,5 @@
import { import {
ChangeDetectionStrategy,
Component, Component,
ElementRef, ElementRef,
EventEmitter, EventEmitter,
@@ -32,6 +33,7 @@ import { Tab } from './tab';
import { AppState } from '../../store'; import { AppState } from '../../store';
import { getKeymaps } from '../../store/reducers/user-configuration'; import { getKeymaps } from '../../store/reducers/user-configuration';
import { KeyActionRemap } from '../../models/key-action-remap'; import { KeyActionRemap } from '../../models/key-action-remap';
import { RemapInfo } from '../../models/remap-info';
enum TabName { enum TabName {
Keypress, Keypress,
@@ -46,6 +48,7 @@ enum TabName {
selector: 'popover', selector: 'popover',
templateUrl: './popover.component.html', templateUrl: './popover.component.html',
styleUrls: ['./popover.component.scss'], styleUrls: ['./popover.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
animations: [ animations: [
trigger('popover', [ trigger('popover', [
state('closed', style({ state('closed', style({
@@ -84,8 +87,7 @@ export class PopoverComponent implements OnChanges {
@Input() wrapPosition: any; @Input() wrapPosition: any;
@Input() visible: boolean; @Input() visible: boolean;
@Input() allowLayerDoubleTap: boolean; @Input() allowLayerDoubleTap: boolean;
@Input() remapOnAllKeymap: boolean; @Input() remapInfo: RemapInfo;
@Input() remapOnAllLayer: boolean;
@Output() cancel = new EventEmitter<any>(); @Output() cancel = new EventEmitter<any>();
@Output() remap = new EventEmitter<KeyActionRemap>(); @Output() remap = new EventEmitter<KeyActionRemap>();
@@ -160,8 +162,8 @@ export class PopoverComponent implements OnChanges {
if (this.keyActionValid) { if (this.keyActionValid) {
try { try {
this.remap.emit({ this.remap.emit({
remapOnAllKeymap: this.remapOnAllKeymap, remapOnAllKeymap: this.remapInfo.remapOnAllKeymap,
remapOnAllLayer: this.remapOnAllLayer, remapOnAllLayer: this.remapInfo.remapOnAllLayer,
action: this.selectedTab.toKeyAction() action: this.selectedTab.toKeyAction()
}); });
} catch (e) { } catch (e) {

View File

@@ -88,7 +88,7 @@
<li>Tap this key to trigger Escape. <i>(Primary role)</i></li> <li>Tap this key to trigger Escape. <i>(Primary role)</i></li>
<li>Hold this key and press another key to activate the relevant key of the Mouse layer. <i>(Secondary role)</i></li> <li>Hold this key and press another key to activate the relevant key of the Mouse layer. <i>(Secondary role)</i></li>
</ul> </ul>
<p class='text-left pt-3'>The secondary role can be any layer or modifier.</p>" <p class='text-left'>The secondary role can be any layer or modifier.</p>"
data-placement="bottom"></icon> data-placement="bottom"></icon>
</div> </div>

View File

@@ -1,10 +1,11 @@
import { Component, EventEmitter, HostListener, Output, Input } from '@angular/core'; import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
import { CaptureService } from '../../../../services/capture.service'; import { CaptureService } from '../../../../services/capture.service';
@Component({ @Component({
selector: 'capture-keystroke-button', selector: 'capture-keystroke-button',
templateUrl: './capture-keystroke-button.component.html', templateUrl: './capture-keystroke-button.component.html',
styleUrls: ['./capture-keystroke-button.component.scss'] styleUrls: ['./capture-keystroke-button.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush
}) })
export class CaptureKeystrokeButtonComponent { export class CaptureKeystrokeButtonComponent {
@Input() isLink = false; @Input() isLink = false;

View File

@@ -1,9 +1,10 @@
import { Component, Input, OnInit } from '@angular/core'; import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';
@Component({ @Component({
selector: 'icon', selector: 'icon',
templateUrl: './icon.component.html', templateUrl: './icon.component.html',
styleUrls: ['./icon.component.scss'] styleUrls: ['./icon.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush
}) })
export class IconComponent implements OnInit { export class IconComponent implements OnInit {

View File

@@ -1,5 +1,5 @@
<label *ngIf="label"> <label *ngIf="label">
<span>{{label}}</span> <span [innerHtml]="label"></span>
<icon name="question-circle" <icon name="question-circle"
data-toggle="tooltip" data-toggle="tooltip"
[title]="tooltip" [title]="tooltip"

View File

@@ -125,6 +125,8 @@ export class SvgKeyboardKeyComponent implements OnInit, OnChanges, OnDestroy {
shiftPressed: this.pressedShiftLocation > -1, shiftPressed: this.pressedShiftLocation > -1,
altPressed: this.pressedAltLocation > -1 altPressed: this.pressedAltLocation > -1
}); });
this.pressedShiftLocation = -1;
this.pressedAltLocation = -1;
} }
@HostListener('mousedown', ['$event']) @HostListener('mousedown', ['$event'])

View File

@@ -22,8 +22,7 @@
[currentKeymap]="keymap" [currentKeymap]="keymap"
[currentLayer]="currentLayer" [currentLayer]="currentLayer"
[allowLayerDoubleTap]="allowLayerDoubleTap" [allowLayerDoubleTap]="allowLayerDoubleTap"
[remapOnAllKeymap]="remapOnAllKeymap" [remapInfo]="remapInfo"
[remapOnAllLayer]="remapOnAllLayer"
(cancel)="hidePopover()" (cancel)="hidePopover()"
(remap)="onRemap($event)"></popover> (remap)="onRemap($event)"></popover>

View File

@@ -48,6 +48,7 @@ import {
SvgKeyboardKeyClickEvent, SvgKeyboardKeyClickEvent,
SvgKeyHoverEvent SvgKeyHoverEvent
} from '../../../models/svg-key-events'; } from '../../../models/svg-key-events';
import { RemapInfo } from '../../../models/remap-info';
interface NameValuePair { interface NameValuePair {
name: string; name: string;
@@ -87,8 +88,10 @@ export class SvgKeyboardWrapComponent implements OnInit, OnChanges {
layers: Layer[]; layers: Layer[];
keyPosition: ClientRect; keyPosition: ClientRect;
wrapPosition: ClientRect; wrapPosition: ClientRect;
remapOnAllKeymap: boolean; remapInfo: RemapInfo = {
remapOnAllLayer: boolean; remapOnAllKeymap: false,
remapOnAllLayer: false
};
private wrapHost: HTMLElement; private wrapHost: HTMLElement;
private keyElement: HTMLElement; private keyElement: HTMLElement;
@@ -156,8 +159,10 @@ export class SvgKeyboardWrapComponent implements OnInit, OnChanges {
this.selectedKey = {layerId: this.currentLayer, moduleId: event.moduleId, keyId: event.keyId}; this.selectedKey = {layerId: this.currentLayer, moduleId: event.moduleId, keyId: event.keyId};
const keyActionToEdit: KeyAction = this.layers[this.currentLayer].modules[event.moduleId].keyActions[event.keyId]; const keyActionToEdit: KeyAction = this.layers[this.currentLayer].modules[event.moduleId].keyActions[event.keyId];
this.keyElement = event.keyTarget; this.keyElement = event.keyTarget;
this.remapOnAllKeymap = event.shiftPressed; this.remapInfo = {
this.remapOnAllLayer = event.altPressed; remapOnAllKeymap: event.shiftPressed,
remapOnAllLayer: event.altPressed
};
this.showPopover(keyActionToEdit); this.showPopover(keyActionToEdit);
} }
} }

View File

@@ -0,0 +1,4 @@
export interface RemapInfo {
remapOnAllKeymap: boolean;
remapOnAllLayer: boolean;
}

View File

@@ -888,7 +888,11 @@
null, null,
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 32
},
null, null,
{ {
"keyActionType": "mouse", "keyActionType": "mouse",
@@ -959,7 +963,11 @@
}, },
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 2
},
null, null,
null, null,
null, null,
@@ -1875,7 +1883,11 @@
null, null,
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 32
},
null, null,
{ {
"keyActionType": "mouse", "keyActionType": "mouse",
@@ -1946,7 +1958,11 @@
}, },
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 2
},
null, null,
null, null,
null, null,
@@ -2856,7 +2872,11 @@
null, null,
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 32
},
null, null,
{ {
"keyActionType": "mouse", "keyActionType": "mouse",
@@ -2921,7 +2941,11 @@
}, },
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 2
},
null, null,
null, null,
null, null,
@@ -3840,7 +3864,11 @@
null, null,
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 32
},
null, null,
{ {
"keyActionType": "mouse", "keyActionType": "mouse",
@@ -3905,7 +3933,11 @@
}, },
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 2
},
null, null,
null, null,
null, null,
@@ -4809,7 +4841,11 @@
null, null,
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 32
},
null, null,
{ {
"keyActionType": "mouse", "keyActionType": "mouse",
@@ -4874,7 +4910,11 @@
}, },
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 2
},
null, null,
null, null,
null, null,
@@ -5790,7 +5830,11 @@
null, null,
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 32
},
null, null,
{ {
"keyActionType": "mouse", "keyActionType": "mouse",
@@ -5855,7 +5899,11 @@
}, },
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 2
},
null, null,
null, null,
null, null,
@@ -6755,7 +6803,11 @@
null, null,
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 32
},
null, null,
{ {
"keyActionType": "mouse", "keyActionType": "mouse",
@@ -6816,7 +6868,11 @@
}, },
null, null,
null, null,
null, {
"keyActionType": "keystroke",
"type": "basic",
"modifierMask": 2
},
null, null,
null, null,
null, null,

View File

@@ -1,4 +1,8 @@
/* You can add global styles to this file, and also import other style files */ /* You can add global styles to this file, and also import other style files */
$grid-gutter-width: 30px;
$zindex-navbar-fixed: 1030;
@import '~spacing-bootstrap-3/spacing';
@import './styles/variables'; @import './styles/variables';
@import '~angular-notifier/styles'; @import '~angular-notifier/styles';
@import '~font-awesome/scss/font-awesome'; @import '~font-awesome/scss/font-awesome';

View File

@@ -4,6 +4,10 @@ ngx-select,
font-size: 14px; font-size: 14px;
} }
input.input-sm {
font-size: 14px;
}
.dropdown-header { .dropdown-header {
font-weight: bold; font-weight: bold;
font-size: 1em; font-size: 1em;

View File

@@ -14,11 +14,11 @@ let prevGeneric, prevBasic, prevMedia, prevSystem, prevMouse;
function getDebugInfo() { function getDebugInfo() {
const payload = new Buffer([uhk.usbCommands.getDebugBuffer]); const payload = new Buffer([uhk.usbCommands.getDebugBuffer]);
console.log(payload) // console.log(payload)
console.log('Sending ', uhk.bufferToString(payload)); // console.log('Sending ', uhk.bufferToString(payload));
device.write(uhk.getTransferData(payload)); device.write(uhk.getTransferData(payload));
const rxBuffer = Buffer.from(device.readSync()); const rxBuffer = Buffer.from(device.readSync());
console.log('Received', uhk.bufferToString(rxBuffer)); // console.log('Received', uhk.bufferToString(rxBuffer));
const I2C_Watchdog = getUint32(rxBuffer, 1); const I2C_Watchdog = getUint32(rxBuffer, 1);
const I2cSlaveScheduler_Counter = getUint32(rxBuffer, 5); const I2cSlaveScheduler_Counter = getUint32(rxBuffer, 5);
@@ -33,25 +33,25 @@ function getDebugInfo() {
const UsbSystemKeyboardActionCounter = getUint32(rxBuffer, 41); const UsbSystemKeyboardActionCounter = getUint32(rxBuffer, 41);
const UsbMouseActionCounter = getUint32(rxBuffer, 45); const UsbMouseActionCounter = getUint32(rxBuffer, 45);
process.stdout.write(`I2C_Watchdog:${I2C_Watchdog} | `); process.stdout.write(`I2cWatchdog:${I2C_Watchdog} | `);
process.stdout.write(`I2cSlaveScheduler_Counter:${I2cSlaveScheduler_Counter} | `); process.stdout.write(`I2cSlave:${I2cSlaveScheduler_Counter} | `);
process.stdout.write(`I2cWatchdog_WatchCounter:${I2cWatchdog_WatchCounter} | `); process.stdout.write(`I2cWatch:${I2cWatchdog_WatchCounter} | `);
process.stdout.write(`I2cWatchdog_RecoveryCounter:${I2cWatchdog_RecoveryCounter} | `); process.stdout.write(`I2cRecovery:${I2cWatchdog_RecoveryCounter} | `);
process.stdout.write(`KeyScannerCounter:${KeyScannerCounter} | `); process.stdout.write(`KeyMatrix:${KeyScannerCounter} | `);
process.stdout.write(`UsbReportUpdateCounter:${UsbReportUpdateCounter} | `); process.stdout.write(`UsbReport:${UsbReportUpdateCounter} | `);
process.stdout.write(`CurrentTime:${CurrentTime} | `); process.stdout.write(`Time:${CurrentTime} | `);
process.stdout.write(`UsbGenericHidActionCounter:${UsbGenericHidActionCounter} | `); process.stdout.write(`UsbGeneric:${UsbGenericHidActionCounter} | `);
process.stdout.write(`UsbBasicKeyboardActionCounter:${UsbBasicKeyboardActionCounter} | `); process.stdout.write(`UsbBasic:${UsbBasicKeyboardActionCounter} | `);
process.stdout.write(`UsbMediaKeyboardActionCounter:${UsbMediaKeyboardActionCounter} | `); process.stdout.write(`UsbMedia:${UsbMediaKeyboardActionCounter} | `);
process.stdout.write(`UsbSystemKeyboardActionCounter:${UsbSystemKeyboardActionCounter} | `); process.stdout.write(`UsbSystem:${UsbSystemKeyboardActionCounter} | `);
process.stdout.write(`UsbMouseActionCounter:${UsbMouseActionCounter} | `); process.stdout.write(`UsbMouse:${UsbMouseActionCounter}`);
process.stdout.write('\n'); process.stdout.write('\n');
process.stdout.write(`generic:${UsbGenericHidActionCounter - prevGeneric} `) // process.stdout.write(`generic:${UsbGenericHidActionCounter - prevGeneric} `)
process.stdout.write(`basic:${UsbBasicKeyboardActionCounter - prevBasic} `) // process.stdout.write(`basic:${UsbBasicKeyboardActionCounter - prevBasic} `)
process.stdout.write(`basic:${UsbMediaKeyboardActionCounter - prevMedia} `) // process.stdout.write(`basic:${UsbMediaKeyboardActionCounter - prevMedia} `)
process.stdout.write(`basic:${UsbSystemKeyboardActionCounter - prevSystem} `) // process.stdout.write(`basic:${UsbSystemKeyboardActionCounter - prevSystem} `)
process.stdout.write(`basic:${UsbMouseActionCounter - prevMouse} `) // process.stdout.write(`basic:${UsbMouseActionCounter - prevMouse} `)
prevGeneric = UsbGenericHidActionCounter; prevGeneric = UsbGenericHidActionCounter;
prevBasic = UsbBasicKeyboardActionCounter; prevBasic = UsbBasicKeyboardActionCounter;

View File

@@ -1,11 +1,14 @@
{ {
"requires": true, "name": "agent-usb",
"version": "1.0.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true,
"dependencies": { "dependencies": {
"@types/node": { "@types/node": {
"version": "8.0.28", "version": "8.0.28",
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.28.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.28.tgz",
"integrity": "sha512-HupkFXEv3O3KSzcr3Ylfajg0kaerBg1DyaZzRBBQfrU3NN1mTBRE7sCveqHwXLS5Yrjvww8qFzkzYQQakG9FuQ==" "integrity": "sha512-HupkFXEv3O3KSzcr3Ylfajg0kaerBg1DyaZzRBBQfrU3NN1mTBRE7sCveqHwXLS5Yrjvww8qFzkzYQQakG9FuQ==",
"dev": true
}, },
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
@@ -241,7 +244,8 @@
"es6-object-assign": { "es6-object-assign": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
"integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=",
"dev": true
}, },
"escape-string-regexp": { "escape-string-regexp": {
"version": "1.0.5", "version": "1.0.5",
@@ -657,6 +661,7 @@
"version": "0.2.2", "version": "0.2.2",
"resolved": "https://registry.npmjs.org/shx/-/shx-0.2.2.tgz", "resolved": "https://registry.npmjs.org/shx/-/shx-0.2.2.tgz",
"integrity": "sha1-CjBNAgsO3xMGrYFXDoDwNG31ijk=", "integrity": "sha1-CjBNAgsO3xMGrYFXDoDwNG31ijk=",
"dev": true,
"requires": { "requires": {
"es6-object-assign": "1.1.0", "es6-object-assign": "1.1.0",
"minimist": "1.2.0", "minimist": "1.2.0",
@@ -787,7 +792,8 @@
"typescript": { "typescript": {
"version": "2.6.2", "version": "2.6.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz",
"integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=" "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=",
"dev": true
}, },
"unbzip2-stream": { "unbzip2-stream": {
"version": "1.2.5", "version": "1.2.5",

12
tsconfig.json Normal file
View File

@@ -0,0 +1,12 @@
{
"compileOnSave": false,
"compilerOptions": {
"sourceMap": true,
"declaration": true,
"module": "commonjs",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5"
}
}