* test(user-config): Fix saveAs functionality
* feat(user-config): Add 2 space indent when save user-config to json file
* refactor(user-config): Move user config savings into user config effect
* build: Remove unused package
* add write-hca.js
* refactor: Move config serializer into the uhk-common package
* refactor: Move getTransferBuffers into the uhk-usb package
* refactor: delete obsoleted classes
* build: add uhk-usb build command
* refactor: move eeprom transfer to uhk-usb package
* fix: Fix write-hca.js
* feat: load hardware config from the device and
* style: fix ts lint errors
* build: fix rxjs dependency resolve
* test: Add jasmine unit test framework to the tet serializer
* fix(user-config): A "type": "basic", properties to the "keystroke" action types
* feat(usb): set chmod+x on write-hca.js
* feat(usb): Create USB logger
* style: Fix type
* build: Add chalk to dependencies.
Chalk will colorize the output
* feat(device): Read user config from eeprom
* read data from eeprom
* fix user config serialization
* fix device connected detection
* not allow override default config is eeprom is empty
* add error handling to eeprom parsing
* colorize log output
* add USB[T] feature
* add class name to USB[T] log
* remove redundant error log msg
* Add USB[T] to Apply user config
* feat(device): Add 'Save to keyboard' button
Created a 'Progress Button' that have 2 state in progress or not.
Able to set different text for different state:
- baseText for normal state
- progressText for in progress state
close: #377
* fix 'Save to keyboard' button visibility in web version
* remove success notification when save to keyboard success
* feat(notifier): Turn off auto hide of the notifier
* feat(device): Show saved state of 'Save to keyboard button'
* style: Format import in app.component.ts
* feat(device): Auto hide 'Save to Keyboard' button
* fix(device): Fix saving animation
* fix(device): Fix saving animation
* fix(device): Fix tslint
* refactor(usb): Rewrite jump-to-bootloder to node-hid
* refactor(usb): Rewrite the whole usb packages to HID-API
* refactor(usb): Deleted not valid usb command files
* refactor(usb): Deleted not supported usb commands
* Remove obsolete script.
* Remove obsolete script.
* Fix script.
* Fix script.
* No need to assign the silent property because it has been removed.
* This workaround may work on other platforms, but it certainly doesn't work on Linux. It makes some scripts not work, so I'm commenting it out.
* Fix bootloader VID and PID.
The minification change the class name so constructor.name not give back the correct class name.
Introduced getName() method in KeyAction and MacroAction Abstract class
* add @angular/cli to the project
* increase nodejs version -> 8.2.1
* add lerna
* merge web and shared module
* move electron module into packages as uhk-agent
Electron agent functionality is not working
* delete symlinker
* convert private properties to public of component if used in html
* revert uhk-message.component
* fix component path
* fix the correct name of the uhk-message.component.scss
* building web and electron module
* delete uhk-renderer package
* handle device connect disconnect state
* add privilege detection
* fix set privilege functionality
* turn back download keymap functionality
* add bootstrap, select2 js and fix null pointer exception
* turn back upload data to keyboard
* fix send keymap
* fix test-serializer
* add missing package.json
* merging
* fix appveyor build
* fix linting
* turn back electron storage service
* commit the missing electron-datastorage-repository
* update node to 8.3.0 in .nvmrc and log node version in appveyor build
* set exact version number in appveyor build
* vertical align privilege and missing device components
* set back node version to 8 in appveyor
* move node-usb dependency from usb dir to root
maybe it is fix the appveyor build
* revert usb to root
* fix electron builder script
* fix electron builder script
* turn off electron devtools
* remove CTRL+U functionality
* fix CTRL+o
* fix lint error
* turnoff store freeze
* start process when got `Error: EPERM: operation not permitted` error
* move files from root usb dir -> packages/usb
* feat(notification): Add undoable notification
* feat(notification): Add undoable notification
* feat(notification): Use uhk-header to the notification
* half ready solution
* - fix: "Keymap has been deleted" is displayed for macros.
- When a keymap/macro deletion gets undone, please set the route of the restored keymap/macro.
- When the user switches to another route, please make the undo notification disappear.
* fix(keymap): Store prev user configuration in the application reducer
Store the previous state in application reducer, because refactoring the
user-config reducer is not easy
* feat(keymap): Fix review request
* fix(keymap): Add tooltips to action icons
* fix(keymap): Remove console.log write
* feat(tooltip): New design of the tooltip
* feat(keymap): Show the tooltip of "Long press action" downward
* style(tooltip): Fix linting issues
* build(webpack): Fix the request of a dependency is an expression
Critical dependency: the request of a dependency is an expression
* style: Fix spaces after object literal braces
* style(privilege): Fix typo 'excusive' -> 'exclusive'
* style(privilege): remove unused imports
* style(privilege): Fix typo 'initizalized$' -> 'initialized$'
* feat(log): Add application wide logger and error handler
It is help to debug electron install app on different device
* feat(privilege): Add windows USB driver installation
* build: I need the windows installer to test the app on windows
* fix(privilege): change wdi-simpler installer to zadic
* feat(log): change log level to debug in renderer process
* chore: Add author in package.json
* feat(privilege): Add privilege setter file as extraResource
* fix(log): Allowed transport level change only in main process
* fix(privilege): Fix app path calculation
* fix(privilege): Take the scriptPath between double quote
* build: revert the appveyor settings
* refactor(privilege): Extract vendor ID, product ID and MAX_PAYLOAD_SIZE into constants file
* refactor(privilege): Add both 32 and 64 bit zadics to extraResource of the installer
* feat(device): Add HID API communication protocol
* build: Fix npm install process
* build: Fix npm install process v2
* ci: Add libudev-dev as travis apt dependencies
* ci: Merge travis apt packages
* ci: remove node-hid from build:usb
* ci: try to fix linux build
* ci: node-hid use git repo
* ci: Add libusb-1.0-0-dev to travis apt dependency
* feat(device): Use logging service when communicate with the device
* build: create test build
* build: PUBLISH_FOR_PULL_REQUEST override
* build: revert TEST_BUILD to false
* build: node-hid use package version instead of git repo
* refactor: remove unused device store files from PR
* ci: Manage test build from environment variable
* fix(privilege): Set rules files dir base on dev or prod mode
* fix(log): Extract nested properties of the logged object
* feat(log): use util.inspect in logger service
* build: upgrade @types/node-hid -> 0.5.2
* fix(device): Add extra logging when try to open device.
* fix(device): log device description and not the device
* fix(device): add win specific write
* fix(device): add report id as first byte
* style(privilege): Reformat else and comment in privilege-checker component
* fix(privilege): Comment out windows branch
* build(tsconfig): Rename root tsconfig.json -> tsconfig.base.json
* feat(auto-update): Add update dialog
When new update available than new message will visible of the top of the screen with 2 buttons 'Update' and 'Close'.
- Update button: Update the application (close and restart)
- Close button: Hide the updatePanel
* fix(auto-update): Add types to the event methods
* style: Add comma after SafeStylePipe import
I forgot add the comma when I rebased the branch
* fix(auto-update): Use electron-is-dev package to detect dev build
I removed the isDev() function from the shared util library because it is electron specific code.
* ci: Change osx_image: xcode8.3
Recommended after the last travis upgrade
* feat(auto-update): Add auto update settings page and save config save on electron platform
* ci: Fix osx image
* ci: Upgrade the electron builder -> 19.6.1
The builder now use the 2 package.json structure and build only
the necessary dependencies.
* refactor(store): Refactor reducer initialization
Refactored the ngrx/store reducer initialization, because hard to extend the original solution.
Bad practise the object initialization inside the components / services. The new solution use angular DI everywhere.
Separated the web and electron configuration store.
* Media key support (#294)
* Introduce type for KeystrokeAction
* Increment dataModelVersion
New property 'type' for KeystrokeAction
* Mapping for media keys
* Media key selecting support for KeypressTab
* refactor: Use more meaningful name (selectedScancodeOption)
* Store the keystroke type in key action type instead of a new field
* Fix NoneAction validation
Fixes#301
* Update electron version
It fixes electron build. The types are part of the electron package itself.
* Fix keystroke selection when additional field is given but no scancode (#306)
* Additional media keys with icons (#307)
* Add missing scancodes for media keystrokes
* Use icons for media keys
* Fix media scancodes.
* Create README.md
* build: upgrade electron and typescript version
Electron contains the typings files.
* refactor(store): Refactor reducer initialization
Refactored the ngrx/store reducer initialization, because hard to extend the original solution.
Bad practise the object initialization inside the components / services. The new solution use angular DI everywhere.
Separated the web and electron configuration store.
* build: upgrade electron and typescript version
Electron contains the typings files.
* fix(store): Remove the I prefix from IDataStorageRepositoryService
* fix(store): fix observer operator import
* fix(store): Add missing rxjs imports to user-config effect
* fix(store): Add missing rxjs imports to keymap effect
* style(.editorconfig): Add json rule to editorconfig file
* build(build): Add application images
These images need to create installers
Contains images for:
- Win
- Mac
- Linux
* fix(device): Mac is not allow excusive right to use USB
* build(npm): Add standard-version script
* chore(device): Fix comment in UhkDeviceService
* chore(release): 1.0.0-alpha.1
* ci(travis): Change travis to c language and add osx, linux build matrix
* build(build): Windows icon size must be at least 256x256
* ci(appveyor): Add temporary GH_TOKEN to test msi installer
* build(tsconfig): Optimalize tsconfigs
Needed a tsconfig.json in the shared/src library because if it not exist the code builded after the second build on mac, and travis linux. Reproduce the error:
- Delete node_modules directory
- npm i
- npm run build
- error occured (ERROR in ./shared/src/polyfills.ts
Module build failed: error while parsing tsconfig.json)
Created a new tscfonfig.json in the project root folder.
The old config files extends this root configs.
* build(tsconfig): in tsconfig-electron-main not override module version
* chore(editorconfig): Delete json rule
* style: Reformat the main package.json to apply editorconfig style
* build(npm): Add .nvmrc file
* style(.editorconfig): Add json rule to editorconfig file
* build(npm): Add test srcipt command to the package.json file
* build(appveyor): Add appveyor CI
* build(appveyor): not npm upgrade to the latest version
* style(editorconfig): Revert json rule