Compare commits

..
3431 Commits
Author SHA1 Message Date
marc 43d5279acf package.json 2021-12-23 13:30:37 +01:00
Dimitri Witkowski e674607fce Merge pull request #1945 from dolfinus/develop
Install NativeMessagingHost for Chromium and Chrome dev/canary
2021-12-20 22:01:39 +01:00
dolfinus 2e6239f637 Install NativeMessagingHost for Chromium and Chrome dev/canary 2021-12-06 00:53:23 +03:00
antelle bcb8ddc17b fixed msteams html file name 2021-07-19 23:21:43 +02:00
antelle cd619582ec fixed variable usage 2021-07-13 19:05:25 +02:00
antelle 3b49562f64 added MS Teams apps 2021-07-13 19:04:27 +02:00
antelle 674ed2cc72 renames some ms teams constants 2021-07-11 16:22:38 +02:00
Dimitri Witkowski 5621fd8a06 Merge pull request #1856 from saulobejo/develop
added teams storage; added tenant id configuration for microsot
2021-07-11 16:18:53 +02:00
Saulo Alves af27e0b111 renamed teams to microsoft teams; fixed grunt prettier error in onedrive 2021-07-11 10:52:40 +02:00
Saulo Alves 5a78e12f7d added teams storage; added tenant id configuration for onedrive and teams 2021-07-11 00:56:51 +02:00
antelle 47b19d1d74 Merge branch 'master' into develop 2021-05-19 10:42:24 +02:00
antelle 070573e68a Merge branch 'release-1.18'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2021-05-19 10:35:35 +02:00
antelle 946d7769f1 bump version 2021-05-19 10:33:41 +02:00
antelle f0426a3ec2 fix #1820: minimize on close on macOS 2021-05-19 10:33:17 +02:00
antelle b2d67818a8 fix #1818: extension connection error if browser cannot be identified 2021-05-19 10:16:40 +02:00
antelle c0b159d824 fix #1824: saving KDBX3 files with compression disabled 2021-05-19 10:07:59 +02:00
antelle d7e11e20c1 Merge branch 'master' into develop 2021-05-14 21:18:46 +02:00
antelle d590318153 Merge branch 'release-1.18'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2021-05-14 21:02:12 +02:00
antelle 5816ca9c4d bump version 2021-05-14 21:01:43 +02:00
antelle 6627e8c0ec fix #1817: crash on files with large attachments as KDBX3 2021-05-14 21:00:43 +02:00
antelle 379e28e8a4 about version in the the bug report template 2021-05-14 20:56:48 +02:00
antelle 4fb25451a2 fix #1816: old Chromium support, such as Android Edge 2021-05-13 10:45:48 +02:00
antelle 58a6a97130 Merge branch 'master' into develop 2021-05-12 21:43:27 +02:00
antelle f59b846643 Merge branch 'release-1.18'
Build / linux (push) Canceled after 0s
Build / web (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2021-05-12 21:40:25 +02:00
antelle 28d7dfeb67 bump version 2021-05-12 21:39:47 +02:00
antelle 6cc39d2107 fix #1808: restore KeeWeb from system tray on extension request 2021-05-12 21:38:54 +02:00
antelle a92a01095b fix #1814: option to disable auto-type title filter by default 2021-05-12 21:00:51 +02:00
antelle 3f4cddd2a2 fix #1811: app doesn't quit during update 2021-05-12 20:50:24 +02:00
antelle aa734ea976 fix #1813: fixed custom icon selection 2021-05-11 18:50:37 +02:00
antelle 30628004fd https link in the readme 2021-05-10 20:40:38 +02:00
antelle a6e87b52fd fix #1810: fixed the extension on old macOS starting 10.11 2021-05-10 20:40:30 +02:00
antelle 6d06d825e5 fixed donate button border 2021-05-10 18:12:11 +02:00
antelle 0800d5f33a Merge branch 'master' into develop 2021-05-09 23:25:27 +02:00
antelle 337ef44b56 Merge branch 'release-1.18'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2021-05-09 14:32:23 +02:00
antelle 70b4effde8 fix #1806: fixed a possible config loading error during startup 2021-05-09 14:31:58 +02:00
antelle 9e4c0f5c47 Merge branch 'release-1.18' 2021-05-09 14:12:50 +02:00
antelle 535cdc72f7 fix #1805: auto-unchecking auto-type filters if nothing found 2021-05-09 14:07:22 +02:00
antelle 8d258ecab2 fix #1804: entry table sizing in Firefox 2021-05-09 10:17:55 +02:00
antelle 3079e28f6f bump version 2021-05-09 10:09:26 +02:00
antelle 4970290614 fix #1804: filling OTP in browser extensions 2021-05-09 10:08:59 +02:00
antelle 6929931cae Merge branch 'master' into develop 2021-05-09 09:04:12 +02:00
antelle e348310602 Merge branch 'release-1.18'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2021-05-08 22:33:52 +02:00
antelle 7abbd2f253 bump version 2021-05-08 22:32:53 +02:00
antelle c56698492e fix #1802: opening files with saved keyfiles 2021-05-08 22:32:35 +02:00
antelle bc4c33fcbb Merge branch 'release-1.18'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2021-05-08 21:02:32 +02:00
antelle 05d5ac960c bump version 2021-05-08 21:01:00 +02:00
antelle 80331401b5 Merge branch 'master' into release-1.18 2021-05-08 21:00:47 +02:00
antelle b4459e1247 fixed entry attachments display 2021-05-08 21:00:38 +02:00
antelle 706c82d3ca fixed Windows code signing
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2021-05-08 19:57:02 +02:00
antelle 0e1b086096 Merge branch 'develop' 2021-05-08 19:37:01 +02:00
antelle 80359c98f5 bump version 2021-05-08 19:35:51 +02:00
antelle 034e0ec2e3 always write version with 2 spaces 2021-05-08 19:35:36 +02:00
antelle cc6839d13e fixed native messaging host mode 2021-05-08 17:48:30 +02:00
antelle 0ce436c2e9 fixed phonetic password generation 2021-05-08 17:13:10 +02:00
antelle 966d814281 fixed removing an extra url 2021-05-08 16:59:36 +02:00
antelle c983bc10ab fixed git tag name 2021-05-08 16:11:26 +02:00
antelle d603398da0 upgrading node.js on ci 2021-05-08 14:21:56 +02:00
antelle 1404d2688f ci bugfixes 2021-05-08 14:14:00 +02:00
antelle c72158cf0d release name 2021-05-08 14:12:05 +02:00
antelle 1e6ed1308f fix eslint 2021-05-08 13:50:25 +02:00
antelle fae241373a fixed tests 2021-05-08 13:46:08 +02:00
antelle 2bf4cd83df upgrading node.js 2021-05-08 13:45:14 +02:00
antelle efd3290ee8 upgraded github release publishing 2021-05-08 13:35:03 +02:00
antelle aa729d9af8 don't log extension events when not connected 2021-05-08 11:46:53 +02:00
antelle 2d6d3658a1 fixed an error during exit without launcher 2021-05-08 11:42:08 +02:00
antelle 0cbdd6281a kdbxweb v2 2021-05-08 11:38:23 +02:00
antelle a845a42d0d up deps 2021-05-08 10:56:49 +02:00
antelle 60329e086a translated application menu on macOS 2021-05-08 10:37:24 +02:00
antelle a3174b96d7 up languages 2021-05-08 09:57:33 +02:00
antelle 29c00066bc Safari extension link 2021-05-08 09:53:57 +02:00
antelle b90ffc4d3f fix #1794: update installation on Windows when minimize instead of close is enabled 2021-05-06 20:44:09 +02:00
antelle 7e030320f5 option to auto-save on file change, fix #1364 2021-05-06 20:13:58 +02:00
antelle c96bcad32d release notes formatting 2021-05-05 19:56:29 +02:00
antelle a655cce195 removed file version fix 2021-05-05 18:49:24 +02:00
antelle aafb0e7964 editorconfig 2021-05-04 17:18:26 +02:00
antelle 288f7f117f removed an http link 2021-05-02 20:51:32 +02:00
antelle 125ac2eda8 wording 2021-05-02 20:43:44 +02:00
antelle ea80bfae07 fix #keeweb/keeweb-connect#3: extension manifest file name 2021-05-01 19:20:14 +02:00
antelle 5e727a3547 fixed native messaging host permissions 2021-04-30 10:16:30 +02:00
antelle 6672b60d0f fix #1779: don't copy passwords from the inline genertor in fields 2021-04-29 14:20:36 +02:00
antelle 09fe1a4649 fix #1780: custom icon selection issue 2021-04-29 14:16:39 +02:00
antelle e4fa4cc413 fixed selecting password as custom field 2021-04-29 14:02:42 +02:00
antelle 0be60475cf selecting other fields for browser extensions 2021-04-29 12:55:00 +02:00
antelle b7e53185b0 returning otp codes 2021-04-29 12:16:53 +02:00
antelle cd8c76b3eb up deps 2021-04-29 11:30:01 +02:00
antelle a1d7a1fe48 ignoring errors during usb init 2021-04-29 10:15:41 +02:00
antelle c48153819f checking all urls in the auto-type search 2021-04-29 09:18:32 +02:00
antelle d2d5590887 replaced a constant 2021-04-29 08:31:37 +02:00
antelle 65b319e127 extension ids constants 2021-04-29 08:29:33 +02:00
antelle b34c0dd34e ignoring custom websites in the selectiong pop-up 2021-04-28 23:47:56 +02:00
antelle ddc1a371bf increased the timeout 2021-04-28 23:40:37 +02:00
antelle a0c0b7b195 cancel button in the entry selection view 2021-04-28 23:37:15 +02:00
antelle b07cea9049 option to show an empty entry selection screen 2021-04-28 23:29:13 +02:00
antelle 991388d4cd removed debugging code 2021-04-28 23:09:24 +02:00
antelle 7adc77c823 closing the selection view on inactivity 2021-04-28 23:08:01 +02:00
antelle 550f93d4ae release notes
fix #874
2021-04-28 22:12:07 +02:00
antelle b43187e5b8 update deps again 2021-04-28 21:08:42 +02:00
antelle 6230710bb0 fixing build 2021-04-28 21:07:22 +02:00
antelle ff119cbc0a Revert "audit fix"
This reverts commit 2a2ec713
2021-04-28 21:05:22 +02:00
antelle 2a2ec713af audit fix 2021-04-28 21:04:37 +02:00
antelle 41eb560d1a fixed deps 2021-04-28 21:03:49 +02:00
antelle f7b9b91144 temporary safari link 2021-04-28 20:25:46 +02:00
antelle 97ab5d066e Added extension links 2021-04-28 20:22:21 +02:00
antelle 448e19d28c fixed entry searching with subdomains 2021-04-28 18:57:41 +02:00
antelle 391f2c9c00 fixed entry creation 2021-04-28 18:29:45 +02:00
antelle 18524ad9eb returning one matching entry automatically 2021-04-28 17:59:47 +02:00
antelle 732c35625b entry selection filters 2021-04-28 17:34:48 +02:00
antelle 95857450c2 focusing KeeWeb before entry selection 2021-04-28 12:04:54 +02:00
antelle 98ea7a542d extracted select-entry-filter 2021-04-28 11:29:48 +02:00
antelle 338f6d47d1 extracted entry selection view 2021-04-28 09:44:02 +02:00
antelle fdb492c572 don't prevent closing main window during auto-type 2021-04-28 08:25:18 +02:00
antelle ce3ff8c3d8 fixed extra file opened during auto-type 2021-04-28 08:23:15 +02:00
antelle 1789d9bb67 up deps 2021-04-28 07:47:13 +02:00
antelle 1883b527a4 fixed window blur during auto-type 2021-04-27 21:38:31 +02:00
antelle 2f4a9d450a displaying extension name in views 2021-04-27 20:01:53 +02:00
antelle 12fc33a15e fixed web extension focus 2021-04-27 19:38:27 +02:00
antelle e4693ecf61 updating entries 2021-04-27 19:15:03 +02:00
antelle c15d709db2 fixed table view column width 2021-04-27 16:23:49 +02:00
antelle e09040b0fb fixed auto-type from minimized state 2021-04-27 14:49:13 +02:00
antelle 4477c3fc2c get-logins messages 2021-04-27 14:29:00 +02:00
antelle f52a00a156 implemented set-login for extensions 2021-04-27 13:58:43 +02:00
antelle 946a063993 fixed data decryption error 2021-04-26 23:55:44 +02:00
antelle d3fcbcb6a5 fixed read passwords count display 2021-04-26 23:44:41 +02:00
antelle f91cfc0f79 processing triggerUnlock sent by the extension 2021-04-26 22:35:17 +02:00
antelle f0bbc54fd5 fixed extension version 2021-04-26 22:29:02 +02:00
antelle 3ca5f94b9b creating new groups form browser extensions 2021-04-26 20:47:43 +02:00
antelle 7a35ebec73 fixed a memory leak
see #1580
2021-04-26 19:20:29 +02:00
antelle 66d3623f90 implemented new group creation 2021-04-26 16:40:36 +02:00
antelle 8c9badd440 checking available files per connection 2021-04-26 15:36:21 +02:00
antelle e0d47a474d switching to the open view on request 2021-04-26 13:40:37 +02:00
antelle 1a8aff0594 fix eslint 2021-04-26 13:34:33 +02:00
antelle cf5e01c213 wording 2021-04-26 13:31:57 +02:00
antelle ffae956e21 removing empty websites 2021-04-26 13:30:12 +02:00
antelle 5c4cb7ff6d displaying extra websites as urls 2021-04-26 13:26:27 +02:00
antelle 7794c8b89b release notes 2021-04-26 12:49:59 +02:00
antelle bb78e8e8a7 adding multiple websites to entries 2021-04-26 12:49:25 +02:00
antelle 00a2a95adc fixed read passwords display 2021-04-26 12:22:35 +02:00
antelle e55dd47f6e don't hide keeweb after successful result 2021-04-26 12:16:22 +02:00
antelle 7b10bda0a4 eslint fix 2021-04-26 12:08:30 +02:00
antelle d5b9aefa01 unlocking on request from browser extension 2021-04-26 12:06:03 +02:00
antelle cdc3f5e1df displaying a message on the open screen 2021-04-26 11:51:24 +02:00
antelle 8fc6f49fb4 reworked unlocking files for auto-type and browser extension connection
fix #1768
2021-04-26 11:20:20 +02:00
antelle 29e5c14009 setting for saving credentials 2021-04-25 23:17:14 +02:00
antelle fe9ff205b9 wording 2021-04-25 23:02:02 +02:00
antelle 87b59eccee fixed extension connection on web 2021-04-25 20:38:49 +02:00
antelle 42cb5a6c36 editing file permissions in settings 2021-04-25 19:59:52 +02:00
antelle 9826965803 session management in settings 2021-04-25 18:08:16 +02:00
antelle 47153e41d3 extension connection timeout 2021-04-25 14:09:54 +02:00
antelle 677b428e63 all other files and all files 2021-04-25 13:50:03 +02:00
antelle 15936fcef0 extension connection dialog 2021-04-25 13:46:59 +02:00
antelle b2e828e7ef up native messaging host 2021-04-25 00:17:35 +02:00
antelle ac6e5a3ae8 fixed processing first message 2021-04-24 23:47:35 +02:00
antelle 3722477eea added a warning about extension association 2021-04-24 19:31:39 +02:00
antelle 72d0f76acc getting parent info for cmd 2021-04-24 10:48:28 +02:00
antelle b7333574aa replaced .exe in app name on windows 2021-04-24 10:38:43 +02:00
antelle 5caccbd1f5 getting appName 2021-04-24 10:26:07 +02:00
antelle 698b559935 up native-messaging-host 2021-04-24 10:06:55 +02:00
antelle 36d5e8f730 windows process information 2021-04-23 23:49:14 +02:00
antelle 233721bf51 extension installation on Windows 2021-04-23 23:17:35 +02:00
antelle 822602a38f added a note about windows-registry 2021-04-23 21:25:49 +02:00
antelle e69dbf697c up keeweb-native-modules 2021-04-23 21:17:11 +02:00
antelle 184d71a1b9 fixed firefox manifest 2021-04-21 23:30:32 +02:00
antelle ccb9b03287 creating native manifests 2021-04-21 22:23:17 +02:00
antelle dd4ad6d72b starting the extension host based on settings 2021-04-21 20:27:55 +02:00
antelle 195e2cc8f0 fixed exports 2021-04-21 20:09:26 +02:00
antelle ef573336d8 moved isDev to utils 2021-04-21 19:31:37 +02:00
antelle 9377a849f6 added native messaging host package 2021-04-21 19:28:44 +02:00
antelle 00ccbf4be2 deleted native-messaging-host 2021-04-20 17:07:50 +02:00
antelle 00159d26dc extracted protocolimpl 2021-04-19 23:40:57 +02:00
antelle b4f93adf05 reorganized imports a bit 2021-04-19 23:33:16 +02:00
antelle 5bbc9003f4 enable extension settings 2021-04-19 22:40:59 +02:00
antelle c4be926b7c better extension messages 2021-04-19 21:56:08 +02:00
antelle 147e3911f1 fixed no extensions message 2021-04-19 21:31:55 +02:00
antelle c7b814fc01 browser extension settings 2021-04-19 21:29:52 +02:00
antelle 8525571afc disabled the extension setting for mobile 2021-04-19 18:18:37 +02:00
antelle 5c5de91672 fixed links in desktop apps 2021-04-19 18:15:41 +02:00
antelle 7dbb0a2e8f added a missing whitespace 2021-04-18 21:42:22 +02:00
antelle 11b54ffdf9 wording 2021-04-18 21:39:24 +02:00
antelle 5d76ac33dd wording 2021-04-18 21:38:58 +02:00
antelle 8e92bf3766 kw.runtimeData api 2021-04-18 21:37:17 +02:00
antelle 56517eec62 typo 2021-04-18 21:35:45 +02:00
antelle ed56f0733e added an option to focus KeeWeb when the file is locked 2021-04-18 21:02:43 +02:00
antelle 3fd799ee74 browser extension settings page 2021-04-18 20:55:27 +02:00
antelle 4ed8a67eda simplified a condition 2021-04-18 18:57:38 +02:00
antelle cbb9a8dbd0 sending origin information in the first message 2021-04-18 18:50:03 +02:00
antelle 4280b84459 moved browser socket connection management to the main process 2021-04-18 14:26:45 +02:00
antelle e06e9ac1f8 moved ipc handlers setup to corresponding files 2021-04-18 11:50:11 +02:00
antelle 7bea4ad282 added team id to avoid the requirement for codesigning config 2021-04-17 20:33:37 +02:00
antelle 316c14d845 shorter socket name 2021-04-17 17:25:14 +02:00
antelle d17be63312 keeweb-browse => keeweb-connect 2021-04-17 17:00:14 +02:00
antelle 2c2253db31 renamed the extension 2021-04-17 16:57:06 +02:00
antelle a3128e56a3 client.supportsNotifications 2021-04-17 09:51:18 +02:00
antelle de0cf0ce67 fixed an empty notification about closing files 2021-04-17 09:28:25 +02:00
antelle e3f33b9d4c don't require client id for ping 2021-04-16 21:06:20 +02:00
antelle 27143e2663 fixed macos socket 2021-04-15 23:46:34 +02:00
antelle 566e2fb35d creating browser socket in a group container on macOS 2021-04-15 20:38:13 +02:00
antelle dc5ada1c04 etter error handling 2021-04-14 21:31:29 +02:00
antelle 603e698f5a fixed socket cleanup on windows 2021-04-14 21:26:58 +02:00
antelle f893dcb19a native messaging host tests 2021-04-14 21:11:24 +02:00
antelle 27b116798e tests fix 2021-04-14 20:41:45 +02:00
antelle ae932e5710 windows extension connection fixes 2021-04-14 20:34:03 +02:00
antelle bab5a979be windows compilation options 2021-04-13 23:37:43 +02:00
antelle 1b8c9a3e0c fixed linux helper paths 2021-04-13 23:03:38 +02:00
antelle 99d0fa30ed removed keeweb launching 2021-04-13 22:59:39 +02:00
antelle 5cc146481b fixed grunt-cmake 2021-04-13 22:55:38 +02:00
antelle 102da5cba1 signing the native messaging host 2021-04-13 22:40:35 +02:00
antelle d374eecb18 running cmake on build 2021-04-13 22:39:07 +02:00
antelle 08d31c0ffe don't launch keeweb if it's not running 2021-04-13 21:37:00 +02:00
antelle c62e40465a eslint 2021-04-13 20:43:34 +02:00
antelle 5367f32d5c reorganized app startup 2021-04-13 20:27:20 +02:00
antelle ad20698a42 deleted the browser extension setting 2021-04-13 20:27:07 +02:00
antelle e865d80a63 moved more code to protocol-impl 2021-04-12 23:42:42 +02:00
antelle 81a311e7fa refactored browser extension connector module 2021-04-12 23:37:08 +02:00
antelle 5397fa8fd3 create-group 2021-04-12 23:23:22 +02:00
antelle b9e08cd9e3 implemented get-database-groups 2021-04-12 23:05:57 +02:00
antelle fe86cd6320 native messaging on Firefox 2021-04-11 23:28:24 +02:00
antelle bba07bb83a fixed constant name 2021-04-11 19:52:49 +02:00
antelle 83a53ee1f0 error code property 2021-04-11 19:14:34 +02:00
antelle 23ba363a0d asking questions about accessing data in the extension 2021-04-11 18:59:33 +02:00
antelle 101aee81c0 added more browser extensions to the native host 2021-04-11 18:01:36 +02:00
antelle fa60d02129 option to debug browser extension transport 2021-04-11 17:59:05 +02:00
antelle 6a9e5fd801 always returning KeeWeb hash 2021-04-11 17:22:58 +02:00
antelle 12ae7845ec renamed the file 2021-04-11 15:41:39 +02:00
antelle 045e8ee96f fixed error codes 2021-04-11 15:04:04 +02:00
antelle 993f75b14e fixed some contract types 2021-04-11 14:53:56 +02:00
antelle b48f3746bc closing browser extension connections 2021-04-11 12:48:58 +02:00
antelle dcc477acbc tightened content security policy to prevent browser extension from adding scripts to KeeWeb 2021-04-11 11:44:51 +02:00
antelle 5f4f007b31 more extension logging 2021-04-11 10:17:02 +02:00
antelle 9d4788cb7c returning appName only for own extension 2021-04-10 23:37:24 +02:00
antelle 5a1380f9ef removed extra check 2021-04-10 23:36:21 +02:00
antelle 0d82aa26f3 checking own extension 2021-04-10 23:35:42 +02:00
antelle 05f2ec19f2 reorganized the extension connector code 2021-04-10 21:32:29 +02:00
antelle 25c3c9c565 connecting to the native app from the extension 2021-04-10 21:16:48 +02:00
antelle d6e7e3d4a0 reverted the timeout 2021-04-10 19:33:31 +02:00
antelle 6148112904 max 1 minute to connect to KeeWeb 2021-04-10 19:31:34 +02:00
antelle ba338e9282 launching keeweb 2021-04-10 19:29:24 +02:00
antelle 2e132690d1 fixed deletion 2021-04-10 18:59:58 +02:00
antelle 8f1b6ca3b7 removed some manual memory management 2021-04-10 18:54:15 +02:00
antelle 85d0252972 removed double stderr 2021-04-10 18:47:00 +02:00
antelle 077f72a0c5 printing stderr 2021-04-10 18:42:12 +02:00
antelle 25bec513f3 extracted some constants 2021-04-10 18:39:23 +02:00
antelle 0a6378d84c renamed the tests 2021-04-10 18:39:12 +02:00
antelle 1e6034ce37 native host tests 2021-04-10 18:38:27 +02:00
antelle ef6e5ebcbe added native messaging host 2021-04-10 17:00:10 +02:00
antelle 19a42b7463 fix #1783: crash after disabling USB devices on Linux 2021-04-10 00:19:58 +02:00
antelle 9d0e608454 Merge branch 'master' into develop
# Conflicts:
#	app/scripts/locales/base.json
#	app/scripts/storage/impl/storage-gdrive.js
#	package-lock.json
#	release-notes.md
2021-04-09 20:10:52 +02:00
antelle bd9a98dbfd fixed docker image tagging 2021-04-09 20:09:44 +02:00
antelle 0ffca3dfe4 npm audit fix 2021-04-09 19:03:02 +02:00
antelle 01958559ee fix #1767: updater issues on macOS 2021-04-09 19:01:55 +02:00
antelle bb4aef206a fixed wait-pid 2021-04-09 19:01:54 +02:00
antelle e74227b0db added --verbose option to the installer 2021-04-09 19:01:53 +02:00
antelle a47aec1cc4 bump version 2021-04-09 19:01:52 +02:00
antelle cd9d8cde3e release notes 2021-04-09 19:01:49 +02:00
antelle d4f68d5ec7 fix #1786: refresh_token in Google Drive 2021-04-09 19:01:48 +02:00
antelle a910cfcb35 fix #618: team drive support in Google Drive 2021-04-09 19:01:47 +02:00
antelle 962de503fd up kdbxweb 2021-04-09 19:01:27 +02:00
antelle f40e72c882 shared drives variable 2021-04-09 18:20:15 +02:00
antelle b7993e1d0e renamed team drives to shared drives 2021-04-09 18:19:26 +02:00
antelle d6e5e73e82 fixed refresh_token in Google Drive
see #1786
2021-04-08 23:07:19 +02:00
antelle 1794f87f99 fix #618: team drive support in Google Drive 2021-04-08 21:47:57 +02:00
antelle 81c7d57f30 localized templates folder name 2021-04-08 20:09:25 +02:00
antelle b4f0149bd8 saving extension name 2021-04-08 19:01:08 +02:00
antelle 87ec06eef0 browser extension: generate-password method 2021-04-08 18:10:48 +02:00
antelle c764548214 browser extension: generate-password method 2021-04-08 17:59:39 +02:00
antelle c78af7c3ad setting nonce in response payload 2021-04-08 17:36:42 +02:00
antelle f9cd0d4e29 browser extension: asking for user attention 2021-04-08 17:28:41 +02:00
antelle ee03435ca7 implemented lock-database 2021-04-07 22:49:23 +02:00
antelle a9b83256c6 returning only active db hashes 2021-04-07 22:07:16 +02:00
antelle 7086ddcf58 returning the list of hashes 2021-04-07 22:04:21 +02:00
antelle 26d226bb17 browser-extension: returning appName 2021-04-07 21:16:48 +02:00
antelle dc4742bf5c browser extension connector: implemented get-databasehash 2021-04-07 21:08:22 +02:00
antelle 933df5fae4 browser extension file notifications 2021-04-06 21:27:58 +02:00
antelle 4b17ac19dc browser extension backend 101 2021-04-06 20:10:42 +02:00
antelle 43f6a4f499 clone keeweb-browser in dev-env 2021-04-05 09:53:49 +02:00
antelle 076b99676d fix #1775: special error message for cases when Touch ID is changed after setup
also added Touch ID key deletion when it's disabled
2021-04-02 18:47:04 +02:00
antelle b3dfa05a4a added menu translations 2021-04-02 13:34:27 +02:00
antelle c5946b1a0b fixed default character count calculation in the generator 2021-04-01 21:57:42 +02:00
antelle 58a85eabdf fix #1774: password generator now includes all selected character ranges 2021-04-01 21:54:42 +02:00
Dimitri Witkowski 8a1d9b96dd Merge pull request #1770 from aslafy-z/patch-1
fix(docker): publish all docker image tags
2021-03-29 20:31:41 +02:00
Zadkiel 36a3d2f766 fix(docker): publish all docker image tags 2021-03-29 20:25:37 +02:00
antelle 68010076f9 renamed external model to otp-device 2021-03-28 19:05:20 +02:00
antelle 92da783e82 moved spawn to the main process 2021-03-28 18:41:31 +02:00
antelle 7d1e343d25 fixed wait-pid 2021-03-27 14:24:54 +01:00
antelle 84d17b7255 added --verbose option to the installer 2021-03-27 14:11:28 +01:00
antelle 64e06a32ec Merge branch 'master' into develop
# Conflicts:
#	package-lock.json
#	release-notes.md
2021-03-27 10:25:29 +01:00
antelle 4ee87e197d using new accounts ykman command
Build / publish (push) Canceled after 0s
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
2021-03-27 09:19:20 +01:00
antelle cace667b26 release notes 2021-03-27 09:19:19 +01:00
antelle 67d3e28af7 bump version 2021-03-27 09:19:18 +01:00
antelle 3c5f4e7b84 release notes 2021-03-27 09:19:17 +01:00
antelle 8f913c737c removed debugging code from build 2021-03-27 09:19:16 +01:00
antelle 8ba147f52f fix #1762: line breaks in Markdown notes 2021-03-27 09:19:15 +01:00
antelle 9cfbd24b76 fix #1758: export format HTML issues 2021-03-27 09:19:14 +01:00
antelle 259abf6d25 added missing overflow to revealed passwords 2021-03-27 09:19:13 +01:00
antelle 8c59838a6f fix #1734: overlapping generator icon on password inputs 2021-03-27 09:19:12 +01:00
antelle f7d24c6379 fix #1725: setting expire date in the past 2021-03-27 09:19:11 +01:00
antelle 0f5466e075 fix #1755: calendar tooltips in different time zones 2021-03-27 09:19:10 +01:00
antelle 7ab0e83f55 ykman v4 support 2021-03-27 09:19:09 +01:00
antelle dc02ede8d7 up kdbxweb 2021-03-27 09:19:08 +01:00
antelle 42e484827f restored the missing disk icon 2021-03-27 09:19:07 +01:00
antelle 576c8f97bd removed dist from dev-env 2021-03-27 09:19:06 +01:00
antelle 808b4a687d fix #1762: line breaks in Markdown notes 2021-03-24 17:02:05 +01:00
antelle 954f2c235b fix #1758: export format HTML issues 2021-03-22 17:13:09 +01:00
antelle 51a7bbbfb8 added missing overflow to revealed passwords 2021-03-21 17:38:36 +01:00
antelle 9b5f5857bb fix #1734: overlapping generator icon on password inputs 2021-03-21 17:35:06 +01:00
antelle e66f52a8ce fix #1753: option to use short-lived tokens in cloud storages 2021-03-21 17:22:38 +01:00
antelle 8023bcea96 fix #1725: setting expire date in the past 2021-03-21 16:38:09 +01:00
antelle dfb7491503 fix #1755: calendar tooltips in different time zones 2021-03-21 16:36:18 +01:00
antelle b43d9c963a ykman v4 support 2021-03-20 22:45:42 +01:00
antelle 51c0637134 fixed list item size in firefox 2021-03-20 22:40:13 +01:00
antelle b16c23190b fixed scrolled entry modification 2021-03-20 20:26:29 +01:00
antelle fddf2892cd fix #1580: high memory usage on large files, virtual scrolling of entries 2021-03-20 19:17:57 +01:00
antelle 53b5715da0 up kdbxweb 2021-03-19 23:07:10 +01:00
antelle 3a79fcb366 optimized memory consumption for large files
see #1580
2021-03-19 22:52:41 +01:00
antelle 4df034ac55 restored the missing disk icon 2021-03-19 22:11:55 +01:00
antelle a0bb04fe3a removed dist from dev-env 2021-03-19 22:08:33 +01:00
antelle a923f28a8d Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2021-03-19 18:57:01 +01:00
antelle 78642f1c9b opening XML and CSV files using the Open button 2021-03-19 18:56:36 +01:00
antelle f8a85af859 Merge branch 'release-1.17' into master
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2021-03-18 17:14:58 +01:00
antelle bdb5bd0428 bump version 2021-03-18 17:14:37 +01:00
antelle 9e07f55c12 fix #1749: auto-type freezes on macOS 2021-03-18 17:14:01 +01:00
antelle 6a3e129ed5 fixed update installation when minimize on close is enabled
see #1740
2021-03-15 19:31:40 +01:00
antelle 879ba17760 Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2021-03-14 21:17:26 +01:00
antelle 0d2107e72a Merge branch 'release-1.17' into master
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2021-03-14 20:24:38 +01:00
antelle a23a47fded bump version 2021-03-14 20:23:03 +01:00
antelle 7737a29cca fix #1747: white screen in old Safari 2021-03-14 20:22:37 +01:00
antelle 34278b3bff fixed usb-detection link 2021-03-13 19:37:47 +01:00
antelle 40b0643eaa Merge branch 'master' into develop 2021-03-13 19:31:54 +01:00
antelle ae7f5fbff2 Merge branch 'release-1.17' into master
Build / publish (push) Canceled after 0s
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
2021-03-13 17:46:55 +01:00
antelle 0a776c6a72 Merge branch 'release-1.17' into develop
# Conflicts:
#	release-notes.md
2021-03-13 17:31:05 +01:00
antelle 5caecb1c8f fix #1738: fixed auto-type on Linux with NumLock pressed 2021-03-13 14:27:48 +01:00
antelle 0def3f8b2d fix #1745: deleting selected text in auto-type selector 2021-03-13 10:11:32 +01:00
antelle 1593acd8e9 fixed auto-type searchbox clear button alignment 2021-03-13 10:01:51 +01:00
antelle da5553364a using proper call sequence in node-usb-detection 2021-03-12 23:37:29 +01:00
antelle b7c03490d8 bump version 2021-03-12 23:17:22 +01:00
antelle b8dd7b0f71 fix #1744, fix #1743: fixed crashes in the USB module on Windows 2021-03-12 23:06:19 +01:00
antelle e7a8d5232f Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2021-03-10 21:37:23 +01:00
antelle c638fa38e8 Merge branch 'release-1.17' into master
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2021-03-10 19:07:57 +01:00
antelle f74b054f01 release date 2021-03-10 19:06:56 +01:00
antelle b7af33edae bump version 2021-03-10 19:01:00 +01:00
antelle 166211b6f8 fix #1735: issue with auto-typing some characters on Windows 2021-03-10 17:58:17 +01:00
antelle f8ec47bfdb release notes 2021-03-08 22:34:29 +01:00
antelle 4e84121553 cleaned up legacy auto-type 2021-03-08 22:29:59 +01:00
antelle ccf4ce8e58 package name 2021-03-07 16:25:07 +01:00
antelle 6ba3d44fa1 Merge branch 'master' into develop 2021-03-07 15:16:48 +01:00
antelle c03ed76fec increased memory limit
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2021-03-07 14:35:27 +01:00
antelle 31214b10e7 Merge branch 'develop' into master 2021-03-07 14:23:29 +01:00
antelle 5bbc324b2e bump version 2021-03-07 14:22:49 +01:00
antelle 7dcb22950e fixed bump version 2021-03-07 14:22:41 +01:00
antelle 3c06f1f1a3 release date 2021-03-07 14:20:32 +01:00
antelle 6bcf5161b1 release notes 2021-03-07 11:14:34 +01:00
antelle ccc6765e2e release date 2021-03-07 10:56:18 +01:00
antelle 14d40d4e2d release notes 2021-03-07 10:55:41 +01:00
antelle 75d563b320 removed debugging code 2021-03-06 21:40:23 +01:00
antelle 2fdd53b55e removed debugging code 2021-03-06 21:30:51 +01:00
antelle 4ac16a6701 debugging patching on ci 2021-03-06 21:24:45 +01:00
antelle e998788d25 git+https 2021-03-06 21:05:54 +01:00
antelle e23b80b11b languages 2021-03-06 20:52:59 +01:00
antelle 7eb884dcb9 up deps 2021-03-06 20:17:47 +01:00
antelle 92397adbb3 eslint 2021-03-06 20:17:31 +01:00
antelle 828485789f ignore password quality warnings alert box 2021-03-06 19:19:23 +01:00
antelle 2f84474216 disabled draggable window on Windows 2021-03-06 11:38:05 +01:00
antelle 762aab397d fixes for custom titlebar 2021-03-06 11:35:14 +01:00
antelle b03cb4590f release notes 2021-03-05 22:12:09 +01:00
antelle 5d40831dd7 reverted debug code 2021-03-05 21:16:42 +01:00
antelle 0d291afb05 fix #1729: prevent double encoding move path 2021-03-05 21:16:12 +01:00
antelle e107c5c108 disabled auto-switching theme 2021-03-05 21:08:09 +01:00
antelle 44905e674d fixed titlebar events 2021-03-03 23:46:23 +01:00
antelle 5b790e711a added a logo on the custom titlebar for Windows 2021-03-03 23:42:41 +01:00
antelle 1a9c54b237 extracted the inline logo 2021-03-03 22:33:29 +01:00
antelle 0f4434a361 fix #689: custom title bar on Windows 2021-03-03 22:12:49 +01:00
antelle 7e2823903b up electron 2021-03-03 17:34:57 +01:00
antelle 92937dbb86 fix #1727: tabs in notes 2021-03-03 17:13:41 +01:00
antelle 0868efe095 added --native-module-host-process option 2021-03-02 21:17:04 +01:00
antelle 97374f63f9 Merge branch 'master' into develop
# Conflicts:
#	desktop/package-lock.json
#	package-lock.json
#	release-notes.md
2021-03-02 20:10:18 +01:00
antelle 69f7b02ce6 Merge branch 'release-1.16' into master
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2021-03-02 19:21:21 +01:00
antelle b5ee682a41 bump version 2021-03-02 19:18:46 +01:00
antelle 70f82bdfd8 release date fix 2021-03-02 19:18:29 +01:00
antelle e70185560b release notes 2021-03-02 19:18:21 +01:00
antelle be4be0e7e8 fix #1715: storage authentication in Epiphany browser 2021-03-02 19:17:42 +01:00
antelle b9a5c64113 fix #1713: OneDrive authentication on web 2021-03-02 19:17:36 +01:00
antelle 215f398547 fix #1726: search in protected fields 2021-03-02 19:17:29 +01:00
antelle ace18f9d95 fix #1715: storage authentication in Epiphany browser 2021-03-01 18:06:45 +01:00
antelle c4ec91f61a fix #1713: OneDrive authentication on web 2021-03-01 18:03:13 +01:00
antelle a4881419df fix #1726: search in protected fields 2021-03-01 17:55:08 +01:00
antelle 839359a794 removed a readme 2021-03-01 17:53:20 +01:00
antelle d4d9b7c7a7 readme about translations 2021-02-26 18:54:43 +01:00
antelle d4526c0c8a release notes 2021-02-26 18:48:18 +01:00
Dimitri Witkowski 78f0bc6f02 Merge pull request #1721 from enter-is/develop
Option to minimize KeeWeb on copy
2021-02-26 18:46:43 +01:00
is ad3f5afeba Option to minimize KeeWeb on copy
Code review changes: https://github.com/keeweb/keeweb/pull/1721

https://github.com/keeweb/keeweb/issues/1718
2021-02-23 08:43:01 +02:00
is 7c4326939a Option to minimize KeeWeb on copy
https://github.com/keeweb/keeweb/issues/1718
2021-02-22 15:02:42 +02:00
antelle e5428b67b8 npm 2021-02-14 11:42:10 +01:00
antelle 59616bd8af disabled touch id check 2021-02-14 11:36:20 +01:00
antelle fdc9ac95d2 up native-modules 2021-02-13 21:06:14 +01:00
antelle a8f0d1af62 extended the oauth fix to iOS, see #1711 2021-02-12 20:14:21 +01:00
antelle f6e377f222 fix #1711: workaround for Dropbox on iOS PWA 2021-02-12 20:14:07 +01:00
antelle c43d7ab92a extended the oauth fix to iOS, see #1711 2021-02-12 09:34:42 +01:00
antelle 0464e1de5c fix #1711: workaround for Dropbox on iOS PWA 2021-02-11 23:01:28 +01:00
antelle 7a7381eac0 don't spawn another process 2021-02-09 21:38:49 +01:00
antelle 1379db1e92 fixed yubikey touch 2021-02-09 21:37:54 +01:00
antelle ee10894f5f added an option to prevent another process from being created 2021-02-09 20:19:12 +01:00
antelle 87d760708d removed an extra code 2021-02-09 19:54:30 +01:00
antelle ec7155809b fixed native module helper 2021-02-08 22:49:53 +01:00
antelle 5af7837468 patching electron 2021-02-06 14:46:24 +01:00
antelle d3f79af2ab up 2021-02-06 14:25:12 +01:00
antelle a6c0fc3984 option do disable caching files in offline storage
fix #404, fix #1115
2021-02-06 13:53:12 +01:00
antelle 56604de7f1 up deps 2021-02-06 13:24:59 +01:00
antelle d5e6199775 added linux dependencies 2021-02-04 21:30:52 +01:00
antelle 15920abcf7 replaced a year 2021-02-04 21:09:21 +01:00
antelle 88205d716a new npm 2021-02-04 21:05:26 +01:00
antelle fa1a16f140 added an explanation about auto-type issues on macOS 2021-02-04 20:54:13 +01:00
antelle 4f8075ca6c package-lock 2021-02-04 19:47:15 +01:00
antelle 2615d0644d up 2021-02-03 23:59:15 +01:00
antelle d2686937fd fixed linux build 2021-02-03 22:00:03 +01:00
antelle b60307e28b removed com.apple.security.get-task-allow entitlement 2021-02-03 21:58:49 +01:00
antelle 08d49ddc54 fix #679, fix #1383: Touch ID on macOS 2021-02-03 20:30:59 +01:00
antelle 4cdc80e530 Touch ID settings, see #679 2021-02-01 22:24:53 +01:00
antelle acd360efb9 cleaned up old touch id implementation 2021-02-01 21:08:02 +01:00
antelle 87ad89beeb fix #1697: creating files with Argon2id KDF 2021-02-01 17:25:46 +01:00
antelle c2663ca7d8 new completion page after storage provider authentication 2021-01-31 13:24:49 +01:00
antelle 4e58285cc2 using batch text entry 2021-01-31 12:27:20 +01:00
antelle ef354fb8af up deps 2021-01-31 00:47:27 +01:00
antelle 79ce535d4a up deps 2021-01-31 00:20:34 +01:00
antelle 50c43c4408 year 2021-01-30 23:41:32 +01:00
antelle 8fdec5aadc added a module link 2021-01-30 21:40:00 +01:00
antelle 73eccd5308 added a message about delay 2021-01-30 21:37:09 +01:00
antelle 4449677e36 entering text as key codes 2021-01-30 21:34:08 +01:00
antelle 8dc3a4b51f fixed vkey 2021-01-30 20:29:26 +01:00
antelle cd2de3a1db native auto type: unpressing keys 2021-01-30 20:22:13 +01:00
antelle 1fa0eebc3b changed ipc method naming convention 2021-01-30 18:39:25 +01:00
antelle e13002bab3 typing key codes 2021-01-30 18:24:42 +01:00
antelle a750e80ea1 auto-type progress 2021-01-30 16:00:57 +01:00
antelle 66e1b0a089 first auto-type emitter implementation 2021-01-30 15:37:25 +01:00
antelle 00c0b3f88c native auto-type helper implementation 2021-01-30 14:55:00 +01:00
antelle 674311cb4b native auto-type methods 2021-01-30 14:16:32 +01:00
antelle f54b8e00e1 up deps 2021-01-30 14:03:59 +01:00
antelle c1beac5d0d up native-modules 2021-01-30 13:18:11 +01:00
antelle 7123345341 cleaned up useless conditions 2021-01-28 08:08:11 +01:00
antelle 0e2475e667 cleanup 2021-01-17 08:20:08 +01:00
antelle acf1f1146d removed other links 2021-01-17 08:14:42 +01:00
antelle d136fa4fdf disabled discussions 2021-01-17 08:14:01 +01:00
antelle 61067391b6 added a link to node-secure-enclave 2021-01-10 17:23:23 +01:00
antelle affebb1ba4 progress logging 2021-01-10 17:16:21 +01:00
antelle cbffa3d4ef message formatting 2021-01-10 17:11:47 +01:00
antelle 6ef5ae2517 separated encrypt and decrypt 2021-01-10 16:56:53 +01:00
antelle 9701496897 better message 2021-01-10 16:40:16 +01:00
antelle 22d6a3011f added a string for touch id 2021-01-10 16:31:50 +01:00
antelle d22ddd99f6 secure enclave support for #679 2021-01-10 14:31:33 +01:00
antelle 4e8648fca0 using the provisioning profile on ci 2021-01-10 12:23:18 +01:00
antelle 9f49c357e9 using provisioning profile for codesigning macos apps 2021-01-10 12:16:27 +01:00
antelle d318467039 added a possibility to build a signed desktop app with npm dev-desktop-macos-signed 2021-01-10 11:55:00 +01:00
antelle b05c25ac1a up keeweb-native-modules 2021-01-10 11:36:51 +01:00
antelle 5dd0d51514 removed endswith 2021-01-10 09:59:51 +01:00
antelle c7574a6b83 debug message in the installer 2021-01-10 09:41:30 +01:00
antelle ab64e9343b sleep time 2021-01-10 09:36:34 +01:00
antelle b82cb0e849 fixed Windows update installation 2021-01-10 09:28:09 +01:00
antelle c44a8fab42 fixed update buttons margin 2021-01-10 09:25:12 +01:00
antelle 9a75eb0a22 removed a newline 2021-01-10 00:17:14 +01:00
antelle f994278a8b windows update installer spaces fix 2021-01-10 00:16:45 +01:00
antelle bd882d0e17 fixed windows update installer 2021-01-10 00:14:28 +01:00
antelle fddf62409a fixed updater settings view 2021-01-09 23:04:22 +01:00
antelle a8967ac764 timeout before copying files in the updater 2021-01-09 22:10:39 +01:00
antelle 20bc254a42 fixed windows uninstaller 2021-01-09 21:52:38 +01:00
antelle e298d5fbd8 ignoring cancellation errors 2021-01-09 21:37:20 +01:00
antelle ff54c2070d fixed the macos updater 2021-01-09 21:34:59 +01:00
antelle e092caa2ef better syntax 2021-01-09 18:48:48 +01:00
antelle feb44be9d0 disable updater on Linux 2021-01-09 18:00:19 +01:00
antelle a43a2e8ce2 checking minVersion against app version 2021-01-09 17:53:13 +01:00
antelle 6fcf77829d using ES5 in the installer 2021-01-09 17:41:34 +01:00
antelle 733833e8a4 fix #1661: using the new Windows installer 2021-01-09 17:15:50 +01:00
antelle 890f998fe0 updating support in win32 installer 2021-01-09 17:14:56 +01:00
antelle 28c708f599 moved desktop scripts 2021-01-09 13:30:19 +01:00
antelle f1e536cbcf moved icons to a folder 2021-01-09 13:27:28 +01:00
antelle 8dc7ad4f01 renamed a module 2021-01-09 13:26:19 +01:00
antelle 43c8976282 fixed a typo 2021-01-09 13:24:50 +01:00
antelle 8ee63ccc24 always using updater cache 2021-01-09 13:21:37 +01:00
antelle 2900fe07bf fixed app launch 2021-01-09 13:19:24 +01:00
antelle 1d572d1fa9 installing updates on macos 2021-01-09 13:15:25 +01:00
antelle 21b8e9ae8f removed globals 2021-01-09 11:50:40 +01:00
antelle cb77b7fc1e moved the installer script 2021-01-09 11:49:54 +01:00
antelle 763141592f fixed dev build 2021-01-09 11:48:40 +01:00
antelle 09fcddfad2 removed an old script 2021-01-09 11:44:52 +01:00
antelle b8ce1b5cc1 macos installer 2021-01-09 11:44:13 +01:00
antelle 6a34fffcc4 more options for auto-lock timeout 2021-01-08 22:56:48 +01:00
antelle 75fa636366 disabled desktop update archives 2021-01-08 22:54:45 +01:00
antelle bee96ebf15 reading update.json 2021-01-07 23:00:16 +01:00
antelle 9ec23fac5d semver test 2021-01-07 22:59:07 +01:00
antelle 2a7cd3574d update.json 2021-01-07 22:05:04 +01:00
antelle 4f96629e22 simplified perf-tracker 2021-01-07 20:54:00 +01:00
antelle 74bd270423 rename 2021-01-07 20:52:52 +01:00
antelle 0469f28a54 removed main.js 2021-01-07 20:52:43 +01:00
antelle a9c2da3fdb Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2021-01-07 20:01:20 +01:00
antelle 2ec37c3ece fixed a js error 2021-01-02 10:40:24 +01:00
antelle ef812c5697 updated keeweb-plugin dev certificate 2021-01-02 10:38:12 +01:00
antelle 8ab4e7c433 twitter link 2021-01-01 20:06:21 +01:00
antelle 23bb30be92 issue links 2021-01-01 19:57:42 +01:00
antelle a13d44d560 discussions link 2021-01-01 19:55:30 +01:00
antelle 42b5b002cc Merge branch 'release-1.16' into master
Build / darwin (push) Canceled after 0s
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-12-31 17:26:37 +01:00
antelle f889488915 bump version 2020-12-31 17:26:18 +01:00
antelle 57f3a287c2 Merge branch 'release-1.16' into master 2020-12-31 17:25:58 +01:00
antelle 143b1a73f7 fix #1671: new lines removal issue in notes 2020-12-31 17:24:59 +01:00
antelle 54a1860398 removed an extra output 2020-12-30 18:17:46 +01:00
antelle 014b6b2319 added --commit-sha 2020-12-30 18:12:28 +01:00
antelle 33763ab865 fix #1670: building without git 2020-12-30 17:46:16 +01:00
antelle 5f5ea892a3 Merge branch 'master' into develop 2020-12-30 13:30:40 +01:00
antelle a3fc2b2cdd debugging windows code signing
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-12-30 13:30:11 +01:00
antelle 2cad70dae0 uploading artifacts before virustotal checks 2020-12-30 13:01:55 +01:00
antelle fb56ba2f0d Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2020-12-30 13:01:12 +01:00
antelle 7c2b7a09f8 Merge branch 'master' into release-1.16 2020-12-30 13:00:41 +01:00
antelle abf5531fc5 fixed another virustotal check failure 2020-12-30 12:52:48 +01:00
antelle 18775e3cea fixed virustotal check failure 2020-12-30 12:44:48 +01:00
antelle 9d5e7be105 Merge branch 'release-1.16' into master 2020-12-30 11:35:50 +01:00
antelle eed647c867 bump version 2020-12-30 11:34:43 +01:00
antelle 072271bbe6 languages 2020-12-30 11:34:06 +01:00
antelle a84499d7d4 upgraded vulnerable dependencies 2020-12-30 11:31:37 +01:00
antelle c06db5a2b7 fix #1668: replacing more bad characters in entry fields 2020-12-30 11:30:17 +01:00
antelle fc737b1f51 fix #1665: removed a package.json dependency from keeweb-plugin 2020-12-26 11:18:48 +01:00
antelle 4f068008bd fixed issues link color 2020-12-20 18:06:20 +01:00
antelle 953f6dc61f option to disable entropy-based checks 2020-12-20 17:53:43 +01:00
antelle 01fac1f0ca password quality warnings 2020-12-20 17:44:27 +01:00
antelle 1796ac743d fixed dropdown 2020-12-19 17:33:19 +01:00
antelle 60329b3cab made the light blue background a bit better 2020-12-19 16:58:25 +01:00
antelle f489eca5c2 fix #1505: pre-selecting first field in auto-type dropdown 2020-12-19 16:47:37 +01:00
antelle 1617cae518 fixed app startup background color 2020-12-19 16:39:18 +01:00
antelle 6c7b99af58 fix #1655: separated custom icons to make the download and selection buttons more visible 2020-12-19 16:30:03 +01:00
antelle ddd242b9df fix #1655: selecting downloaded favicon automatically 2020-12-19 16:29:19 +01:00
antelle c24fe2806c contrast theme position 2020-12-19 14:05:56 +01:00
antelle 8da0a2e239 more themes 2020-12-19 14:00:51 +01:00
antelle 8aff64ce47 removed an extra border on the open view 2020-12-19 14:00:42 +01:00
antelle 677f1ce75f fix #1584: automatically switching between dark and light theme 2020-12-19 12:14:32 +01:00
antelle f99ff95a57 Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2020-12-18 20:32:44 +01:00
antelle 7a522acdd9 Merge branch 'release-1.16' into master
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-12-18 20:30:46 +01:00
antelle 9888a0cf5b bump version 2020-12-18 20:27:19 +01:00
antelle 9b586f7059 bump version 2020-12-18 20:27:13 +01:00
antelle 90666cea99 GitHub funding link 2020-12-18 20:26:36 +01:00
antelle cabf0d388d using custom OneDrive without a secret 2020-12-18 20:17:34 +01:00
antelle 39a33bd77a a bit more padding in advanced search options 2020-12-17 22:38:39 +01:00
antelle f184915849 fix #1657: clear searchbox button 2020-12-17 22:22:00 +01:00
antelle 683b0bc4e6 Merge branch 'master' into develop 2020-12-17 21:15:11 +01:00
antelle 212042556f Merge branch 'release-1.16' into master
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-12-17 19:29:14 +01:00
antelle cc4aa6fc1a bump version 2020-12-17 19:28:45 +01:00
antelle b4b6ef3206 calling oauth authorize again if the refresh token is expired 2020-12-17 19:25:36 +01:00
antelle ccfd5126bc release notes 2020-12-16 21:15:40 +01:00
antelle b733b43f8b release notes 2020-12-16 21:15:27 +01:00
antelle 3c0693fdd9 skip VirusTotal checks in ci-sandbox 2020-12-16 21:14:39 +01:00
antelle 938f2be487 passing sha to VirusTotal 2020-12-16 21:12:48 +01:00
antelle 9f2a09cc97 optional oauth secret 2020-12-16 20:32:48 +01:00
antelle 27d5fc4cba running VirusTotal checks on CI, see #1656 2020-12-16 20:15:14 +01:00
antelle 251b763ea9 fix #1656: false positive report on VirusTotal 2020-12-16 18:53:15 +01:00
antelle 8a07162e6b fixed checkbox positioning in settings 2020-12-12 11:02:56 +01:00
antelle 4097d81b8a fixed whitespace replacing in templates 2020-12-12 10:59:34 +01:00
antelle bf2d72745a removed the runtime chunk 2020-12-12 10:38:39 +01:00
antelle acc60e6297 Merge branch 'master' into develop 2020-12-10 23:16:06 +01:00
antelle 211b058686 Merge branch 'release-1.16' into master
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-12-10 20:35:28 +01:00
antelle 95c077a0ba bump version 2020-12-10 20:34:11 +01:00
antelle 0b70017780 fix #1650: keyfiles stored in the app can't be used 2020-12-10 20:33:48 +01:00
antelle 513e258869 removed an unused workflow 2020-12-10 19:18:36 +01:00
antelle 7cd046ecc0 Merge branch 'release-1.16' into master
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-12-10 19:11:47 +01:00
antelle 220a27e030 keyx 2020-12-10 19:10:18 +01:00
antelle 3728fbc367 bump version 2020-12-10 19:08:20 +01:00
antelle 6d41c71542 up 2020-12-10 19:07:54 +01:00
antelle a1b4dde3e3 release date 2020-12-10 19:06:03 +01:00
antelle 677586e882 fix #1649: missing Argon2 options 2020-12-10 17:41:59 +01:00
antelle 3177a87690 possibility to use V2 keyfiles (.keyx) 2020-12-09 19:21:18 +01:00
antelle f8fda777db Merge branch 'master' into develop 2020-12-06 10:31:16 +01:00
antelle e955c3ddc1 fix #1575: auto-type menu scrolling 2020-12-06 10:30:54 +01:00
antelle 7e36418276 fixed a js error in closing all files 2020-12-05 15:24:45 +01:00
antelle e5616dffa7 more precise license wording 2020-12-04 21:01:08 +01:00
antelle be3087d2cc removed a non-needed link 2020-12-04 20:58:10 +01:00
antelle 396721fce6 fixed a wrong copyright symbol 2020-12-04 20:57:36 +01:00
antelle d49af938d9 switched to setup-gcloud 2020-12-04 20:22:42 +01:00
antelle d2ae8522b5 release notes 2020-12-04 18:01:09 +01:00
antelle a3e27709d0 fixed local file icon 2020-12-04 16:48:48 +01:00
antelle a245553cad Merge branch 'release-1.16' into master
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-12-04 16:07:25 +01:00
antelle 8bcdc6d109 bump version 2020-12-04 16:06:10 +01:00
antelle 8a1b28a793 up 2020-12-04 16:05:45 +01:00
antelle 90b236e6f9 Merge branch 'release-1.16' into master 2020-12-04 16:03:42 +01:00
antelle 804b8cf17b release notes 2020-12-04 16:03:14 +01:00
antelle ed3eefbbfc Merge branch 'master' into release-1.16 2020-12-04 16:01:55 +01:00
antelle 51564056a1 Merge branch 'develop' into master 2020-12-04 16:00:48 +01:00
antelle 4884caadd4 fixed icon positioning in links 2020-12-04 09:19:19 +01:00
antelle e129e52e01 fixed icon positioning in links 2020-12-04 09:18:23 +01:00
antelle 893a0f43c1 release date 2020-12-04 08:55:22 +01:00
antelle 083cbe9840 release date 2020-12-04 08:16:27 +01:00
antelle a7fcbae65f up native modules 2020-12-04 07:25:29 +01:00
antelle 7ae80c2e7c copyrights 2020-12-03 23:57:40 +01:00
antelle f1ede2b876 license year 2020-12-03 23:31:42 +01:00
antelle 8c51adbca1 up node_modules 2020-12-03 22:12:52 +01:00
antelle 446f293da0 rebuilt KeeWebHelper as a universal app 2020-12-03 22:12:42 +01:00
antelle bbd7f9c6d6 keyfile paths are saved by default, see #325 2020-12-03 21:09:51 +01:00
antelle 9e5fb90bd6 Argon2id KDF support 2020-12-03 20:22:33 +01:00
antelle 2ed735ad95 fixed list borders on mobile 2020-12-02 21:01:56 +01:00
antelle 00be6f0181 fixed default theme 2020-12-01 19:53:18 +01:00
antelle 29a4d367f9 added missing rgba 2020-12-01 19:42:37 +01:00
antelle df43c61785 fix #1645: color contrast on the selection 2020-12-01 19:28:07 +01:00
antelle 464c49257a building arm64.dmg 2020-11-30 21:16:17 +01:00
antelle bd4a6d0eee fixed arm64 2020-11-30 21:03:20 +01:00
antelle 9410fc6a8c apple silicon build 2020-11-30 20:52:09 +01:00
antelle bd400c0797 up native modules 2020-11-30 18:51:26 +01:00
Dimitri Witkowski 54c721c265 Merge pull request #1642 from PeterDaveHello/DockerfileRefactor
Clean up apt local cache in Dockerfile
2020-11-30 07:49:33 +01:00
Peter Dave Hello 94cfa4f3d4 Replace ADD with COPY instruction in Dockerfile
Reference:

- https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#add-or-copy

> For other items (files, directories) that do not require ADD’s tar
> auto-extraction capability, you should always use COPY.
2020-11-30 10:11:32 +08:00
antelle f21ef7f444 fixed min electron version 2020-11-29 19:58:34 +01:00
Dimitri Witkowski 66a0cf4782 Merge pull request #1639 from PeterDaveHello/patch-3
Ask apk to leave no cache in Dockerfile
2020-11-29 18:57:12 +01:00
Dimitri Witkowski 52f27ce743 Merge pull request #1638 from PeterDaveHello/patch-2
Clean up apt local cache in Dockerfile
2020-11-29 18:56:38 +01:00
Peter Dave Hello 57296ba313 Ask apk to leave no cache in Dockerfile
This will make the image smaller
2020-11-30 01:51:47 +08:00
Peter Dave Hello 47dc1727df Clean up apt local cache in Dockerfile
This will make the image smaller
2020-11-30 01:49:53 +08:00
antelle cd9fe46fdb fixed jumping title in Safari 2020-11-29 18:06:56 +01:00
antelle 775cdf237c fix #1637: git commit in the About box 2020-11-29 17:10:56 +01:00
antelle 63367998bf Merge branch 'develop' into master
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-11-29 15:06:59 +01:00
antelle 5d3e110a9e release notes 2020-11-29 15:05:47 +01:00
antelle 42267eaef8 languages 2020-11-29 15:05:15 +01:00
antelle b716599c90 up deps 2020-11-29 14:53:21 +01:00
antelle 6d80de9216 bump version 2020-11-29 14:48:43 +01:00
antelle 212dc99cec updated screenshot 2020-11-29 14:44:39 +01:00
antelle 6f4f8ec1ea action names 2020-11-29 14:12:42 +01:00
antelle 24c64daa49 gcloud action 2020-11-29 13:29:01 +01:00
antelle bdd9a51d25 style fixes 2020-11-29 13:12:32 +01:00
antelle f27862b036 mac menubar icon 2020-11-29 12:17:49 +01:00
antelle f7e9f725b0 bugfixes 2020-11-29 11:10:34 +01:00
antelle 4ee430284b some fixes 2020-11-29 00:19:49 +01:00
antelle 96458048fc fixed menu color 2020-11-28 23:43:56 +01:00
antelle a31f9d5a50 new themes 2020-11-28 23:38:12 +01:00
antelle 33d5f0b5bb some icon fixes 2020-11-28 12:30:46 +01:00
antelle ec43f0a549 fixed themes grid size 2020-11-27 22:28:10 +01:00
antelle 8e0dc326cb better theme selector 2020-11-27 21:17:27 +01:00
antelle 9994c87446 default locale in settings 2020-11-27 20:21:24 +01:00
antelle 647ce573b0 set the default language to en-US to reflect what it is 2020-11-27 18:47:55 +01:00
antelle 1ca4ead313 release notes 2020-11-27 18:40:52 +01:00
antelle 1ef5ffab52 Merge branch 'MrSnix-feature/time-format' into develop 2020-11-27 18:40:05 +01:00
antelle f4f2ddfb3c fix 2020-11-27 18:38:11 +01:00
antelle 650b4805be fixed test runner fatal error reporting 2020-11-26 23:34:08 +01:00
antelle 22754f32ec revert 2020-11-26 23:33:37 +01:00
antelle 85a67b533a fixed test runner fatal error reporting 2020-11-26 22:27:20 +01:00
antelle 974dbd224a release notes 2020-11-26 22:04:06 +01:00
antelle b8c7a8b936 fixed the yubikey icon 2020-11-26 22:04:06 +01:00
antelle 86844064db updated macOS helper icon 2020-11-26 22:04:05 +01:00
antelle 0c9b9a1b97 removed app icon for macos 2020-11-26 22:04:01 +01:00
Giuseppe 0a9846b86f Fix: wrong argument passed 2020-11-26 21:41:24 +01:00
Giuseppe 96ee17b8cc Moved date-format.js to comp/util/ 2020-11-26 21:19:36 +01:00
Giuseppe 4b65792585 Tests now are UTC based to avoid locale conflicts 2020-11-26 20:48:43 +01:00
Giuseppe 32b871e338 Forgot to remove useless import 2020-11-26 11:45:47 +01:00
Giuseppe 46ddb725db Initial commit 2020-11-26 11:32:10 +01:00
antelle d0fdada9f7 release notes 2020-11-25 23:45:14 +01:00
antelle a343853b38 fixed the yubikey icon 2020-11-25 23:33:45 +01:00
antelle 136fbc2f77 updated macOS helper icon 2020-11-25 23:29:43 +01:00
antelle 25bc5643b1 removed app icon for macos 2020-11-25 23:21:29 +01:00
antelle a0c03363a7 removed an old favicon 2020-11-25 22:50:35 +01:00
antelle 8dd7a97769 removed a comment 2020-11-25 21:51:32 +01:00
antelle f70dfaaa28 icons adjustment 2020-11-25 21:40:54 +01:00
antelle 01ceb6dc37 replaced an icon 2020-11-25 21:07:07 +01:00
antelle d56e50b29d reverted the onedrive icon 2020-11-25 20:14:40 +01:00
antelle 0b2c722f61 replaced some icons 2020-11-25 20:10:37 +01:00
antelle 26990f38dd new pinned tab icon 2020-11-25 19:38:17 +01:00
antelle b2d87efc99 yubikey image 2020-11-25 18:28:26 +01:00
antelle 63b7b32e9c fontawesome 5 2020-11-25 18:20:53 +01:00
antelle 8925a48822 bugfix 2020-11-24 18:04:30 +01:00
antelle 8ad47181a9 removed an old edge hack 2020-11-24 17:54:04 +01:00
antelle c1b9ec7a77 icon 2020-11-23 23:39:04 +01:00
antelle 6daf34e261 new icon 2020-11-22 12:25:43 +01:00
antelle fc5c865b18 disabled contextIsolation 2020-11-20 20:46:01 +01:00
antelle 083306a1cd google-github-actions 2020-11-20 15:24:20 +01:00
antelle 5ebacbc347 building on node.js 15 2020-11-20 14:53:28 +01:00
antelle 08c4adfd46 fixed tests 2020-11-20 14:48:53 +01:00
antelle 27f87ad09f get-git-tag 2020-11-20 14:47:14 +01:00
antelle d0b33ca0c1 fix #1523: support for WebDAV servers without Last-Modified header 2020-11-20 14:08:13 +01:00
antelle bb44c7cb3e fixed some that=this 2020-11-20 13:12:06 +01:00
antelle 66e366d9d0 fix #1615: restoring the app window if it's activated when minimized 2020-11-20 10:29:47 +01:00
antelle 31390eac80 fix #1555: auto-saving files when minimize options is enabled 2020-11-19 23:37:09 +01:00
antelle 543a71f6f2 up deps 2020-11-19 18:43:50 +01:00
antelle 5d29b79dab bump electron 2020-11-19 16:52:27 +01:00
antelle 207ff77778 fix #1599: switched to Dropbox short-lived access tokens 2020-11-19 16:05:08 +01:00
antelle b85d25614b fix #1616: auto-type with no matching entries 2020-11-19 13:00:56 +01:00
antelle d1bcdca0d3 fix #1619: auto-locking ignored a field being edited 2020-11-19 11:21:45 +01:00
antelle ffb68b1651 fix #1561: error during loading configs after reset 2020-11-19 11:12:36 +01:00
antelle 49d46cfedc fixed YubiKey errors display 2020-11-11 23:08:08 +01:00
antelle 9c18e2877b fix #1589: shortcut to copy OTP 2020-11-11 19:01:12 +01:00
antelle a1da5ceabe fix #1608: improved the "Show all file" checkbox behavior 2020-11-11 18:44:57 +01:00
antelle 759b92bfd6 fixed a performance issue in searching entries 2020-11-10 23:19:26 +01:00
antelle b4f3d19259 Merge branch 'master' into develop 2020-11-09 21:35:57 +01:00
antelle 35e3271839 added a check for safety 2020-10-28 20:18:27 +01:00
antelle 90da86ebb8 fix #1621: colors on Linux 2020-10-28 20:17:13 +01:00
antelle ad978d2ed3 fix #1612: added WebCrypto check back 2020-10-02 18:07:46 +02:00
antelle 7140a2d894 npm i
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-09-12 12:23:51 +02:00
antelle eb86603b47 Merge branch 'release-1.15' into master 2020-09-12 12:17:03 +02:00
antelle 1e1117c28b updated vulnerable dependencies 2020-09-12 12:16:41 +02:00
antelle f3de0d8391 Merge branch 'release-1.15' into master 2020-09-12 12:12:28 +02:00
antelle 4749be20b4 bump version 2020-09-12 12:10:15 +02:00
antelle 3eea00bf6d release notes 2020-09-12 12:06:38 +02:00
antelle d301287fdc readme 2020-09-12 12:05:45 +02:00
antelle 07f4090498 readme 2020-09-12 12:04:27 +02:00
antelle 067d3778d8 PKCE enabled on Dropbox 2020-09-12 12:04:16 +02:00
antelle daa250e8fa fix 1597: dropbox 2020-09-12 12:03:20 +02:00
antelle 91f992df39 up kdbxweb, fix #1591, fix #1598 2020-09-12 11:30:15 +02:00
antelle ecaf9a37da prettier 2020-09-09 21:42:37 +02:00
antelle 31cc2fbdd4 Merge branch 'opennomad-linux_auto_type' into release-1.15 2020-09-09 21:40:58 +02:00
Matthias Johnson 6e30687919 use windowactivate via xdotool 2020-09-08 12:31:33 -06:00
antelle dbf212f0df Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2020-08-08 14:29:11 +02:00
antelle af49645f8d Merge branch 'release-1.15'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-08-08 14:25:41 +02:00
antelle 59bed7593d fix #1581: double-clicking KeeWeb icon in Dock 2020-08-08 14:24:47 +02:00
antelle 43ca723c75 bump version 2020-08-08 14:23:42 +02:00
antelle 855370074f fix #1553: empty fields display for templates 2020-08-08 14:11:12 +02:00
antelle 84f707d6cd fix #1581: double-clicking KeeWeb icon in Dock 2020-08-08 12:20:08 +02:00
antelle 17be9cf266 removed some old stuff from v1.15 2020-06-21 13:04:09 +02:00
antelle 0e3d01ade6 always using native argon2 in desktop 2020-06-21 13:02:06 +02:00
antelle 02fe2b1754 Merge branch 'hesalx-fix-macos-quit' into release-1.15 2020-06-15 17:46:18 +02:00
hesalx a0c553b3a9 allow the app to quit when not minimized and window is closed 2020-06-15 11:32:48 +03:00
antelle 62ea631269 Merge branch 'release-1.15'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-06-13 19:30:36 +02:00
antelle b32d842394 bump version 2020-06-13 13:08:32 +02:00
antelle 0c38b5b9f1 fixed exe code signing 2020-06-13 13:08:16 +02:00
antelle dd0b20634c release notes 2020-06-13 13:08:09 +02:00
antelle f8319408f1 don't clear cache from the ci sandbox 2020-06-13 13:08:00 +02:00
antelle c451e92a9c fixed exe code signing 2020-06-13 12:31:48 +02:00
antelle 36cf70202d Merge branch 'master' into develop
# Conflicts:
#	desktop/app.js
#	release-notes.md
2020-06-13 12:30:48 +02:00
antelle 39fe83fdd1 Merge branch 'release-1.15'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-06-13 10:54:59 +02:00
antelle cc5a465dc3 up 2020-06-13 10:54:31 +02:00
antelle 2018f04bdf fixed exports 2020-06-13 10:54:10 +02:00
antelle f0e79eab95 Merge branch 'release-1.15' 2020-06-13 10:25:22 +02:00
antelle fc1b2fbbaa fix #1532: crashes on some Windows version (updated electron) 2020-06-13 08:49:59 +02:00
antelle a8e89da5e9 up deps 2020-06-13 08:48:37 +02:00
antelle e369a6b7be bump version 2020-06-12 21:15:58 +02:00
antelle ae4d4398cd fix #1536: added a missing dependency on linux 2020-06-12 21:15:36 +02:00
antelle 5781d20615 Merge branch 'release-1.15'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-06-11 19:54:52 +02:00
antelle a6e9521435 bump version 2020-06-11 19:53:53 +02:00
antelle 1e72711bc3 bump version script 2020-06-11 19:53:33 +02:00
antelle 1f793e2d00 bump version script 2020-06-11 19:53:21 +02:00
antelle af8d94d102 fix #1535: network errors in Dropbox and GDrive on Windows 2020-06-11 19:48:30 +02:00
antelle a424c3286a extracting files after signing 2020-06-10 20:27:55 +02:00
antelle 5f9b33506a Merge branch 'master' into release-1.15 2020-06-09 21:04:48 +02:00
antelle 819b10e1f6 fixed version
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-06-09 21:02:08 +02:00
antelle 0c170766e5 Merge branch 'release-1.15' 2020-06-09 20:47:36 +02:00
antelle f7a0025b97 bump version 2020-06-09 20:47:07 +02:00
antelle 22776e9088 fix #1409: auto-type wrong character issues on Linux 2020-06-09 20:39:09 +02:00
antelle d23d393c39 - fixed duplicated YubiKeys displayed in file settings 2020-06-09 19:50:35 +02:00
antelle bbf6e796f8 updated electron version 2020-06-09 19:46:37 +02:00
antelle 1c3c194b3a possibility to debug startup with --start-logging 2020-06-09 19:36:18 +02:00
antelle 0cc633c5c1 added a possibility to log messages on startup 2020-06-09 19:35:17 +02:00
antelle 9a8f1ad508 fix #1530: running from directories with hash symbols 2020-06-09 19:26:59 +02:00
antelle 65f09c6535 fix #1530: running from directories with hash symbols 2020-06-09 19:26:41 +02:00
antelle d7db5d2c77 removed some debugging code 2020-06-09 19:09:37 +02:00
antelle 8205b01c65 added temporary debug logging 2020-06-08 22:58:11 +02:00
antelle d7ee936b27 fix #1530: recursive creation of the portable directory 2020-06-08 19:13:34 +02:00
antelle d9ae6f312f fix #1530: recursive creation of the portable directory 2020-06-08 19:12:59 +02:00
antelle aea9a513b4 removed a non-working link 2020-06-07 16:55:42 +02:00
antelle d3b65f6280 added a vimeo link 2020-06-07 13:53:15 +02:00
antelle 3bf53aa87f Merge branch 'master' into develop 2020-06-07 12:33:31 +02:00
antelle 5081df4f2f Merge branch 'master' into release-1.15 2020-06-07 12:33:10 +02:00
antelle b91dbdaa8f purging cloudflare cache after publishing a release 2020-06-07 12:32:22 +02:00
antelle c313de9f93 release date
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-06-07 11:04:57 +02:00
antelle 09b00f3137 Merge branch 'release-1.15' 2020-06-07 11:03:39 +02:00
antelle 8342336e8d bump version 2020-06-07 09:48:23 +02:00
antelle fe245dc95e fix #1528: OTP generation for stored values 2020-06-07 09:47:36 +02:00
antelle 3001afd9db Merge branch 'develop'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-06-06 16:50:23 +02:00
antelle 48b5c8d4e7 up deps 2020-06-06 16:48:48 +02:00
antelle 21dc4e758f bump version 2020-06-06 16:47:32 +02:00
antelle 5c5fc0271e languages 2020-06-06 16:43:13 +02:00
antelle 082c6bee93 moved native modules to a native module host 2020-06-06 13:30:35 +02:00
antelle c1d354a6fb added an error when usb is disabled 2020-06-05 20:37:13 +02:00
antelle eab683ec71 removed all mentions of cordova
It never got enough love by contributors and it seems to be abandoned. Better to
implement this API in a separate repo.
2020-06-05 16:45:37 +02:00
antelle cd2b87b317 fixed refreshing the yubikey status 2020-06-05 16:41:54 +02:00
antelle 4abe63c00f fixed ykman path on macos 2020-06-05 16:41:38 +02:00
antelle 7e4e61e005 fixed ykman path on macos 2020-06-04 21:33:42 +02:00
antelle db38e015f8 option to skip code signing on macos 2020-06-04 20:13:15 +02:00
antelle ff20d2a554 up kdbxweb 2020-06-04 18:49:33 +02:00
antelle cb7df205bb up deps 2020-06-03 22:42:39 +02:00
antelle dfe2c42172 utils sh 2020-06-03 21:31:32 +02:00
antelle 4854c0c100 removed an unnecessary task 2020-06-03 21:28:31 +02:00
antelle 33bdf124c2 up languages 2020-06-03 21:27:17 +02:00
antelle 2d752ef144 fix #917: option to install without a desktop icon on Windows 2020-06-03 18:11:38 +02:00
antelle d258bce037 de 2020-06-03 11:31:40 +02:00
antelle 21ff37d82e workflow 2020-06-03 09:58:57 +02:00
antelle 312b08ca99 workflow 2020-06-03 09:58:39 +02:00
antelle a47f0d0ae5 up 2020-06-03 09:51:47 +02:00
antelle c1a6268c2d added some logging 2020-06-03 08:33:26 +02:00
antelle 65b6fe2e2e removed an old task 2020-06-02 22:30:21 +02:00
antelle 0f29e94272 default format for new files is now KDBX4 2020-06-02 21:57:41 +02:00
antelle dd9b6a1943 disabled codeql-analysis 2020-06-02 19:33:06 +02:00
antelle a45bc13248 override language detection 2020-06-02 19:26:59 +02:00
antelle b7b5caac9d trying out codeql-analysis 2020-06-02 19:22:27 +02:00
antelle 0eb5ebab0d wording 2020-06-02 19:14:48 +02:00
antelle f34b1011c8 more contributions 2020-06-02 17:48:09 +02:00
antelle 33049c21e7 contribution links 2020-06-02 17:39:03 +02:00
antelle 6c12822279 contribution links 2020-06-02 17:37:20 +02:00
antelle 8a3ff150a6 added contributions 2020-06-02 17:36:13 +02:00
antelle de4bfdf9e0 reformatted build.yaml 2020-06-02 14:16:06 +02:00
antelle 461a45dc51 packaging native dependencies separately 2020-06-02 13:58:25 +02:00
antelle 2b24d716a9 up deps 2020-06-02 13:00:17 +02:00
antelle 36b6fd80b8 added a comment to the workflow 2020-06-02 12:56:27 +02:00
antelle f8cbf51842 skipping code signing on windows 2020-06-02 12:43:05 +02:00
antelle 17fbf9188d option to skip code signing on Windows 2020-06-02 12:41:30 +02:00
antelle ec5bacd951 updated the workflow 2020-06-02 12:29:55 +02:00
antelle 56c8649040 up yk-api 2020-06-02 12:23:22 +02:00
antelle 435eb5779f fixed some portable installation issues on macos 2020-06-02 10:47:20 +02:00
antelle a83e04fe4d reverted config changes 2020-06-01 23:54:55 +02:00
antelle bdbff334a5 syntax for old node.js 2020-06-01 23:30:33 +02:00
antelle f70eb35f69 syntax for old node.js 2020-06-01 23:27:48 +02:00
antelle f1a5aba485 refactored codesignconfig 2020-06-01 22:54:38 +02:00
antelle f8e454dab3 splitted macos app signing and notarization 2020-06-01 22:51:42 +02:00
antelle 9988454af1 fixed app exit while the app is not ready 2020-06-01 16:59:32 +02:00
antelle e0b65bbebf up modules; prettier 2020-06-01 16:53:51 +02:00
antelle 09fd37820b bumped min electron version 2020-06-01 16:46:21 +02:00
antelle 360194c627 loading native modules from updated desktop archives 2020-06-01 16:45:18 +02:00
antelle 21768b1b59 testing builds 2020-06-01 15:55:52 +02:00
antelle 325d521f49 fix #448: minimized login option support on macOS 2020-06-01 15:02:19 +02:00
antelle 2deb241ff2 fix #830: minimize instead of close option on macOS 2020-06-01 14:42:06 +02:00
antelle a2194435e6 fix #1460: auto-type on double-clicking field labels 2020-06-01 10:25:16 +02:00
antelle 448e173f7e added a warning about Input Monitoring for mac 2020-06-01 07:30:00 +02:00
antelle 4b52280549 fixed sticky tips 2020-05-31 23:31:14 +02:00
antelle 9e09f7b7e7 fixed double yubikey alert when opening files from storages 2020-05-31 22:28:38 +02:00
antelle 83293d909e up 2020-05-31 20:26:48 +02:00
antelle 176553a674 fixed challenge-response calculation with padding 2020-05-31 16:35:36 +02:00
antelle a4b22b6c88 silenced the deprecation warning 2020-05-31 14:25:50 +02:00
antelle fb6bcdf5c9 added a possibility to refresh the list of yubikeys 2020-05-31 14:23:37 +02:00
antelle 776c75d823 grammar 2020-05-31 14:13:32 +02:00
antelle 143f7c6a7a yubikey enrollment 2020-05-31 14:13:08 +02:00
antelle b520c58ef4 cancelChalResp 2020-05-31 13:06:36 +02:00
antelle 3c47adbf32 fixed argon2 in browsers 2020-05-31 13:03:59 +02:00
antelle 835acff637 up 2020-05-31 13:00:35 +02:00
antelle a08e3c7d27 option to remember challenge-response codes 2020-05-31 10:15:27 +02:00
antelle d9258745d0 fixed file saving errors 2020-05-30 23:28:33 +02:00
antelle 70bd4f1c4e fixed main window close/closed events confusion 2020-05-30 17:46:13 +02:00
antelle ab3860cdc9 fixed errors during auto-save 2020-05-30 17:40:18 +02:00
antelle 9185ef9a55 showing main window for yubikey alerts 2020-05-30 17:12:48 +02:00
antelle e6826b176e yubikey ui alerts 2020-05-30 16:02:02 +02:00
antelle f5bb29e61a fixed open args 2020-05-30 14:28:06 +02:00
antelle d0d013e046 clearing cache on file close 2020-05-30 12:45:56 +02:00
antelle 5002c2ce67 better building instructions 2020-05-30 12:06:53 +02:00
antelle 8e3b218a74 readme 2020-05-30 12:02:04 +02:00
antelle 51bd80faf4 fixed saved yubikeys 2020-05-30 10:29:02 +02:00
antelle b4fe0af53a extracted challenge-response calculator 2020-05-30 08:19:47 +02:00
antelle 2ba9a03e2c using yubikeys for opening files 2020-05-30 08:10:19 +02:00
antelle 7394754b6f fixed an error when files were closed during sync 2020-05-30 07:47:52 +02:00
antelle b41b291e60 added desktop module description 2020-05-30 07:39:31 +02:00
antelle 0f582e3248 refreshing the list of yubikeys on the start screen 2020-05-29 23:24:05 +02:00
antelle b90e84be42 loading yubikeys using a native module 2020-05-29 23:15:10 +02:00
antelle ef627c9530 updated keeweb-native-modules 2020-05-29 21:49:33 +02:00
antelle b3f021a577 fixed eslint 2020-05-28 18:34:32 +02:00
antelle 96263c11ec escaping more characters in xml, see #1520 2020-05-28 10:54:52 +02:00
antelle b2a6e1180c reverted renderer process native modules, it crashes 2020-05-28 10:48:09 +02:00
antelle 817b44b152 fixed an error during loading the list of yubikeys 2020-05-26 23:26:26 +02:00
antelle 701bb4caa4 loading compatible modules in renderer process 2020-05-26 23:24:00 +02:00
antelle a1b8682316 moved the stuck yubikey flag to the otp section 2020-05-25 19:40:04 +02:00
antelle 8c386dbe57 challenge-response calculation function 2020-05-24 21:06:53 +02:00
antelle d8e49d993a added a text about used yubikey 2020-05-24 20:31:03 +02:00
antelle 93310eb029 listing YubiKeys on the open view 2020-05-24 20:02:49 +02:00
antelle f215c26a63 removed plugin cache invalidation with timestamps 2020-05-24 19:07:01 +02:00
antelle b5fddeb627 added a missing check 2020-05-24 18:42:14 +02:00
antelle 81d4c5c403 extracted YubiKey module 2020-05-24 18:39:56 +02:00
antelle bf7dec2437 fixed writing unencrypted configs 2020-05-24 13:46:03 +02:00
antelle efa9b5f9a7 fixed the yubikey challenge-response icon on the open screen 2020-05-23 19:26:54 +02:00
antelle 1f862a37e9 fixed yubikey icon on the open screen 2020-05-23 19:07:45 +02:00
antelle e8a491dba5 disabled sandbox mode in package.json/electron 2020-05-23 17:08:55 +02:00
antelle aa899b8096 fix #1409: fixed auto-typing Tab character on Debian 2020-05-23 17:07:59 +02:00
antelle 8de55c450a fixed sticky tooltips in settings 2020-05-22 22:44:50 +02:00
antelle 1fafa68793 restructured settings code a bit 2020-05-22 22:28:12 +02:00
antelle e69219697a serializing settings in renderer 2020-05-22 22:17:36 +02:00
Dimitri Witkowski 08a0f6e587 Merge pull request #1514 from b3nj5m1n/add_check_support_windowid
Added check for system supporting window id
2020-05-22 21:48:06 +02:00
b3nj5m1n 7a26d80255 Removed log from debugging 2020-05-22 21:10:52 +02:00
b3nj4m1n 4171848655 Added check for system supporting window id 2020-05-22 21:05:30 +02:00
antelle a7193fd783 fixed config writing 2020-05-22 20:55:05 +02:00
antelle ccce95d4fe fixed configs for portable installations 2020-05-22 20:54:47 +02:00
antelle b9f37c22d9 config encryption with a key from keychain 2020-05-22 20:46:03 +02:00
Dimitri Witkowski 3b3c95e57c Merge pull request #1513 from b3nj5m1n/fix_app_dock
Added check for platform before calling app.dock
2020-05-22 18:58:50 +02:00
b3nj4m1n fadea36232 Added check for platform before calling app.dock 2020-05-22 18:47:26 +02:00
antelle 99b687244c release notes: fix #1509: fixed auto-type for tiling mode in Linux 2020-05-22 12:34:31 +02:00
antelle 813b26270f extracted a constant 2020-05-22 12:30:01 +02:00
antelle b715507dd0 Merge branch 'b3nj5m1n-autotype-tilingwm' into develop 2020-05-22 12:25:11 +02:00
b3nj4m1n 0cb502ca67 Fixed possible error for undefined window id 2020-05-22 12:10:27 +02:00
antelle e5073eb65f default theme on macOS 2020-05-22 11:44:49 +02:00
antelle c3b55cd7fa better portable app checks 2020-05-22 10:56:08 +02:00
antelle e9ef1bd698 fixed remote events 2020-05-22 10:44:59 +02:00
antelle 045fe99158 made dropbox secret hidden 2020-05-22 10:15:21 +02:00
antelle dad95033c0 added a possibility to clear a storage provider field in app settings 2020-05-22 10:14:43 +02:00
b3nj4m1n 02e4d52db6 windowId gets passed in a different place 2020-05-21 21:36:26 +02:00
b3nj4m1n 1f83f34e55 Addressed requested changes 2020-05-21 19:41:19 +02:00
b3nj4m1n 1ffb45433c Fixed auto-type on tiling wm 2020-05-21 17:10:32 +02:00
antelle b6780dff03 ignored tags for yubikey entries 2020-05-16 10:03:02 +02:00
antelle 5b91dcb272 fix #1440: fixed auto-type for maximized windows 2020-05-15 22:41:39 +02:00
antelle 099f1ca9d0 calling openDevTools from window.webContents 2020-05-15 21:54:34 +02:00
antelle c73f81a80a dev desktop tasks 2020-05-15 21:38:33 +02:00
antelle 177b150c95 Merge branch 'master' into develop
# Conflicts:
#	app/templates/export/entry.hbs
#	release-notes.md
2020-05-15 20:52:16 +02:00
antelle 489eb5598c Merge branch 'release-1.14'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-05-15 20:37:24 +02:00
antelle ad571c1e27 fix eslint 2020-05-15 20:36:59 +02:00
antelle 9827b871fc Merge branch 'release-1.14' 2020-05-15 20:26:25 +02:00
antelle 004436e868 bump version 2020-05-15 20:25:57 +02:00
antelle 008b615903 improved exporting files with markdown notes 2020-05-15 20:25:22 +02:00
antelle 451b465e4f disabled markdown in export 2020-05-15 20:17:40 +02:00
antelle c91e5de961 readme formatting 2020-05-15 20:14:55 +02:00
antelle 8251423d95 up deps 2020-05-15 20:00:18 +02:00
antelle 65f66ac60c fix #1503: arm64 Windows installer 2020-05-14 22:59:11 +02:00
antelle 94caa1fca3 fix #1503: building windows arm64 2020-05-14 20:52:02 +02:00
antelle f7d1708550 removed pcsclite 2020-05-14 20:47:11 +02:00
antelle b888f9da32 ignored unnecessary native modules 2020-05-14 20:36:14 +02:00
antelle 4d678184f3 option to create a portable installation 2020-05-14 20:11:41 +02:00
antelle a2bf157b01 fixed portable executable dir 2020-05-14 18:55:11 +02:00
antelle 1b279119cb auto-opening yubikeys with other files 2020-05-14 18:31:26 +02:00
antelle 2075e82381 increased the yubikey reconnect timeout 2020-05-13 22:29:12 +02:00
antelle 9f60ca8ece fix #1506: replaced incorrectly added client secret config properties 2020-05-13 22:25:33 +02:00
antelle d6867fb62e added native modules links 2020-05-13 21:25:43 +02:00
antelle 07e918965b fix #620: clearing middle-click clipboard in Linux 2020-05-13 21:20:26 +02:00
antelle 24bcc758e7 release notes 2020-05-13 20:26:25 +02:00
antelle 7ae64b0552 fixed native argon2 2020-05-13 20:25:45 +02:00
antelle 38e46f6d85 building native modules into asar 2020-05-13 20:25:33 +02:00
antelle 530316c25f native modules for all available architectures 2020-05-13 19:15:56 +02:00
antelle cc750df077 moved native modules to the main process 2020-05-13 17:44:33 +02:00
antelle 3c85694fc2 removed temp paths from profile 2020-05-13 17:03:23 +02:00
antelle 955a1346ff removed old cookie handling 2020-05-13 16:37:35 +02:00
antelle 8e4566fe5f moved app options 2020-05-12 23:46:19 +02:00
antelle 20623e4c42 disabled unnecessary caching 2020-05-12 23:10:26 +02:00
antelle cac31d3350 added a yubikey selection icon to the open screen 2020-05-11 19:29:39 +02:00
antelle 746b56ac57 release notes 2020-05-11 19:11:14 +02:00
antelle bc140b3fb5 auto-opening yubikeys 2020-05-11 18:49:21 +02:00
antelle 5d15411d3d fixed sequential otp generation 2020-05-11 17:44:18 +02:00
antelle c6ce694dfe displaying matching otp codes in entries 2020-05-11 17:24:06 +02:00
antelle 16d303d966 fixed password field after idle period 2020-05-10 19:44:29 +02:00
antelle f422dbd3db fixed variable name 2020-05-10 16:48:58 +02:00
antelle 5125a44170 added enter to the default totp command 2020-05-10 11:42:13 +02:00
antelle 6e7f2c570f fixed dev app icon 2020-05-10 09:49:09 +02:00
antelle db31e65cdf fixed entry creation on a yubikey 2020-05-09 23:55:57 +02:00
antelle 3cd9bf6505 html => empty 2020-05-09 20:15:46 +02:00
antelle 3b05f6267e escaping fields autocomplete 2020-05-09 17:00:39 +02:00
antelle 3e5b0bff4f renamed content to contentHtml 2020-05-09 16:39:04 +02:00
antelle c9cb15d7b7 removed shortcuts formatting 2020-05-09 16:35:11 +02:00
antelle 89415c86a4 escaping details shortcuts 2020-05-09 16:18:39 +02:00
antelle 4cd515b19f put export csp back 2020-05-09 16:16:27 +02:00
antelle 730e2c5ba5 removed export csp 2020-05-09 16:14:56 +02:00
antelle 3735a6689c escaping attachments 2020-05-09 16:14:43 +02:00
antelle 15c81d8f35 partials support 2020-05-09 16:14:20 +02:00
antelle 154c780281 disabled markdown in export 2020-05-09 15:25:11 +02:00
antelle ec9422d22d added csp for exported html 2020-05-09 14:39:18 +02:00
antelle 101e8eaa24 fixed sort options 2020-05-09 10:59:23 +02:00
antelle 6a31bba69c using optional chaining 2020-05-09 10:45:12 +02:00
antelle 96ee68dee7 fixed yubikey totp auto-type 2020-05-09 10:37:34 +02:00
antelle 5a94c81b11 fixed yubikey username auto-type 2020-05-09 08:57:57 +02:00
antelle cf8aa6f9a4 copying otp from yubikeys 2020-05-08 23:33:57 +02:00
antelle 20e201795e options for yubikey username field 2020-05-08 23:16:13 +02:00
antelle e95902d2bb wording: one-time codes 2020-05-08 23:15:38 +02:00
antelle 79a3b39248 disabled KEEWEB_HTML_PATH in prod builds 2020-05-08 16:20:23 +02:00
antelle c08a0eb8d1 fixed the details view 2020-05-07 23:10:35 +02:00
antelle a280258d4f cleaned up openProcess 2020-05-07 23:10:23 +02:00
antelle 7985a7a522 added a better message when a yubikey is stuck 2020-05-07 22:07:58 +02:00
antelle 6ba2e16a91 fixed yubikey reconnection 2020-05-07 21:22:34 +02:00
antelle f34ebe2fd3 code cleanup 2020-05-07 19:00:18 +02:00
antelle ab3d4a056f fixed the yubikey workaround 2020-05-07 18:58:17 +02:00
antelle c88a7c000b extracted a method 2020-05-06 23:12:49 +02:00
antelle 53b700aa70 fixed yubikey serial detection 2020-05-06 23:06:22 +02:00
antelle 66c219f6d1 locale 2020-05-06 21:08:37 +02:00
antelle 06dd153955 fixed stuck yubikeys 2020-05-06 21:06:19 +02:00
antelle 88a0e63894 disabled auto-open by default 2020-05-06 19:49:21 +02:00
antelle cac7e53ea8 fixed work with several yubikeys 2020-05-06 19:30:30 +02:00
antelle 3e390388eb removed a workaround for Edge 2020-05-06 18:44:00 +02:00
antelle 2a1b01c0aa displaying last open file after detaching a yubikey 2020-05-06 18:43:04 +02:00
antelle 5a535bb07a Added a yubikey workaround 2020-05-06 18:37:37 +02:00
antelle 235ceae228 restarting the yubikey application if it's stuck 2020-05-05 22:36:23 +02:00
antelle 46710aead4 watching yubikeys 2020-05-05 21:26:41 +02:00
antelle 277d443d4c Merge branch 'usb' into develop 2020-05-05 20:58:20 +02:00
antelle 770c25a273 fixed open files 2020-05-05 20:57:26 +02:00
antelle c935de3ec1 message 2020-05-05 20:51:01 +02:00
antelle 8350123839 devices 2020-05-05 20:50:11 +02:00
antelle 02adb81ae0 settings 2020-05-05 20:47:15 +02:00
antelle cf26427e68 fix otp cancel 2020-05-05 20:14:32 +02:00
antelle 6e357e93ec props 2020-05-05 20:03:38 +02:00
antelle 1c8f3932fb search fix 2020-05-05 18:11:58 +02:00
antelle 75671a0a8a canUseNativeModules 2020-05-05 18:01:16 +02:00
antelle 58296dd896 disabled yubikey on win32 2020-05-05 17:57:01 +02:00
antelle 2fff34dc61 grammar 2020-05-05 17:49:19 +02:00
antelle 851ade7e24 fixed drag 2020-05-05 17:46:07 +02:00
antelle 13585f5317 splitted detail fields 2020-05-05 17:28:20 +02:00
antelle 5d0ab36f2c fixed details 2020-05-05 17:05:20 +02:00
antelle be46cf9a25 lint fix 2020-05-05 16:37:25 +02:00
antelle ffdc438091 removed app-model prepare 2020-05-05 16:34:39 +02:00
antelle 52741cf46a search tests 2020-05-05 16:23:17 +02:00
antelle 9263caed59 search 2020-05-05 15:08:19 +02:00
antelle aa5a9fc6d2 Merge branch 'master' into usb
# Conflicts:
#	app/scripts/app.js
#	package.json
#	release-notes.md
2020-05-04 19:46:07 +02:00
antelle 316518d63b Merge branch 'master' into develop
# Conflicts:
#	package.json
#	release-notes.md
2020-05-04 19:45:03 +02:00
antelle 03c44d76c9 Merge branch 'release-1.14'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-05-04 19:21:54 +02:00
antelle 346d6cb119 fixed dist html file location 2020-05-04 19:21:29 +02:00
antelle dae3d57d1e Merge branch 'release-1.14' 2020-05-04 19:12:47 +02:00
antelle aa65cef103 bump version 2020-05-04 19:12:08 +02:00
antelle e19c923538 up deps 2020-05-04 19:11:20 +02:00
antelle ec292705b3 distinct redirect URIs for storage providers 2020-05-04 19:06:05 +02:00
antelle d36588d148 ignored the whole file in prettier 2020-05-02 19:54:47 +02:00
antelle 32c171d05b Merge branch 'develop' into usb 2020-05-02 14:05:47 +02:00
antelle f031be4ce2 Merge branch 'master' into develop
# Conflicts:
#	app/scripts/storage/storage-base.js
#	release-notes.md
2020-05-02 14:04:53 +02:00
antelle d3ebcabec4 Merge branch 'master' into release-1.14 2020-05-02 14:03:04 +02:00
antelle f683f14a30 up gh-actions
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-05-02 13:40:03 +02:00
antelle 0a311e87e4 up gh-actions 2020-05-02 13:39:42 +02:00
antelle d42ce3e7bb npm audit 2020-05-02 13:36:09 +02:00
antelle 4c5d7eb762 Merge branch 'release-1.14' 2020-05-02 13:31:26 +02:00
antelle 1d58779d90 bump version 2020-05-02 13:30:24 +02:00
antelle 1434d81d3e bump version 2020-05-02 13:30:10 +02:00
antelle b44d060fac languages 2020-05-02 13:29:05 +02:00
antelle 7c89ebc047 fixed a typo 2020-05-01 18:37:27 +02:00
antelle d140427c94 fix #1478: fixed proxy issues with storage providers 2020-04-30 17:59:22 +02:00
antelle 2abdf3693c Merge branch 'master' into release-1.14 2020-04-30 16:33:18 +02:00
antelle 8d1eafe2bc Merge branch 'develop' into usb 2020-04-29 19:24:47 +02:00
antelle 510f982579 Merge branch 'master' into develop 2020-04-29 18:59:43 +02:00
antelle 63e6be9867 plugin ids 2020-04-29 18:48:39 +02:00
antelle 0a2957449f added blob: to script-src 2020-04-29 18:41:50 +02:00
antelle ee2ba047ab removed eval's 2020-04-29 18:41:16 +02:00
antelle a8590c1b90 icon 2020-04-29 18:17:26 +02:00
Dimitri Witkowski 374f4bc116 Create SECURITY.md 2020-04-28 23:33:23 +02:00
antelle 76fa1f6c9f merge 2020-04-23 20:50:53 +02:00
antelle dd68aa342a Merge branch 'develop' into usb
# Conflicts:
#	app/scripts/const/default-app-settings.js
#	app/scripts/views/open-view.js
2020-04-23 20:26:52 +02:00
antelle 21d614aa97 escaping dangerous places 2020-04-23 20:09:37 +02:00
antelle f4e4bbbb8f escaping dangerous places 2020-04-23 20:06:10 +02:00
antelle d30c9d9d90 escaping more dangerous places 2020-04-23 19:55:52 +02:00
antelle e0884a4eec escaping dangerous places 2020-04-23 19:24:39 +02:00
antelle 446c7f3ab5 fixed webdav pattern 2020-04-23 19:17:05 +02:00
antelle 48a6189fe7 dropdown hint option 2020-04-23 19:12:15 +02:00
antelle e568d06b02 fix #1350: clearing master password after auto lock period 2020-04-23 18:47:46 +02:00
antelle 243c962667 #1471: WebDAV url validation 2020-04-23 18:39:59 +02:00
antelle 908510ff0b fix #1342: hint that the data will be stored in unencrypted form after exporting 2020-04-23 18:36:26 +02:00
antelle d6aab0c470 fix #1463: copying the original url instead of adding https: 2020-04-23 18:30:17 +02:00
antelle 8d2640d99d fix #1400: auto-apply tag when creating new entry in tag view 2020-04-23 18:20:46 +02:00
antelle d45748cc32 fix #557, fix #513: Argon2 speed improvements in desktop apps 2020-04-23 18:12:16 +02:00
antelle 2693dd9366 more network logging
(cherry picked from commit 92fb322f7b)
2020-04-21 16:35:20 +02:00
antelle dcfa070176 translated a dropbox message
(cherry picked from commit abc154738c)
2020-04-21 16:34:22 +02:00
antelle eb577d61d5 fix 2020-04-19 20:55:38 +02:00
antelle f79bb90b69 tooling check 2020-04-19 20:42:55 +02:00
antelle 4591268063 settings 2020-04-19 18:52:21 +02:00
antelle 7e849934ff Merge branch 'develop' into usb 2020-04-19 16:11:11 +02:00
antelle 92fb322f7b more network logging 2020-04-18 15:48:47 +02:00
antelle abc154738c translated a dropbox message 2020-04-18 15:48:29 +02:00
antelle 63850f75af Merge branch 'master' into develop 2020-04-18 15:23:40 +02:00
antelle e0498e5e87 contributing 2020-04-18 13:11:05 +02:00
antelle 232f0b8d69 issue template 2020-04-18 13:08:43 +02:00
antelle d410dbb17d issue template 2020-04-18 13:06:04 +02:00
antelle e7c3d0441c issue template 2020-04-18 13:04:27 +02:00
antelle 0119d69641 readme 2020-04-18 13:00:21 +02:00
antelle a21fdf50bb contributing 2020-04-18 12:59:09 +02:00
antelle 8fdc5e6d94 contributing 2020-04-18 12:56:18 +02:00
antelle 41e81c2d7a contributing 2020-04-18 12:53:30 +02:00
antelle 10d2f5e641 contributing 2020-04-18 12:53:05 +02:00
antelle cdfcc6493c contributing 2020-04-18 12:48:57 +02:00
antelle 6b26f6d93f contributing 2020-04-18 12:48:26 +02:00
antelle a11cf38378 contributing 2020-04-18 12:47:28 +02:00
antelle 7d061c4aaf contributing 2020-04-18 12:47:00 +02:00
antelle 152fcccf60 contributing 2020-04-18 12:40:10 +02:00
antelle 159104a50a merge 2020-04-18 11:04:06 +02:00
antelle 66b2b77791 Merge branch 'develop' into usb
# Conflicts:
#	app/scripts/models/app-settings-model.js
#	desktop/app.js
2020-04-18 11:03:06 +02:00
antelle 36ade29e46 Merge branch 'master' into develop 2020-04-18 10:52:41 +02:00
antelle 61c44057cb Merge branch 'release-1.14' 2020-04-18 10:52:07 +02:00
antelle fd9dc1a801 github action rebuilt 2020-04-18 10:51:29 +02:00
antelle 57b813196f Merge branch 'release-1.14' into develop 2020-04-18 09:04:49 +02:00
antelle eaf429de3d downgraded a dependency dut to failing ci
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
2020-04-18 08:40:33 +02:00
antelle 45923d034e Merge branch 'develop' 2020-04-18 08:30:17 +02:00
antelle fbdfacd14d saving only modified settings instead of everything 2020-04-18 08:28:56 +02:00
antelle a55ddda6cf release notes 2020-04-18 08:05:57 +02:00
antelle 6c66d0791a deps 2020-04-18 08:05:12 +02:00
antelle c19d427f3a bump version 2020-04-17 23:28:21 +02:00
antelle a078081347 bump version 2020-04-17 22:25:52 +02:00
antelle 3a042f25c2 disabled navigation in desktop 2020-04-17 21:54:34 +02:00
antelle 6d781a6358 disabled creation of new windows 2020-04-17 21:50:53 +02:00
antelle 349ec59df7 option to log out from storages 2020-04-17 21:36:56 +02:00
antelle 833aa3c748 canOpenWebdav is now canOpenStorage 2020-04-17 20:58:47 +02:00
antelle eca5b1c7a0 moved CSP a bit closer to the beginning of the html 2020-04-17 20:56:23 +02:00
antelle 0aa925f95d checking origin in window message handlers 2020-04-17 20:53:40 +02:00
antelle 2f214b25c7 filtering protocols in the url field 2020-04-17 20:45:41 +02:00
antelle 38c3a46395 escaping html in dropdowns 2020-04-17 20:28:03 +02:00
antelle cbb9a29c8d escaping html in tooltips 2020-04-17 20:06:30 +02:00
antelle dddc4f235e escaping html in the notes field 2020-04-17 19:58:17 +02:00
antelle c537d0f464 using OAuth authorization code grant for all storage providers 2020-04-17 19:42:35 +02:00
antelle 8be588afdf Merge branch 'develop' into usb 2020-04-15 19:52:54 +02:00
antelle 5b6c707de5 Merge branch 'master' into develop 2020-04-15 19:52:29 +02:00
antelle 8b6dd322a7 release notes template 2020-04-15 19:51:42 +02:00
antelle dfdbd8b092 devtools fix 2020-04-15 19:37:03 +02:00
antelle 4fad58b1e9 Merge branch 'develop' into usb
# Conflicts:
#	app/scripts/models/app-settings-model.js
#	app/templates/open.hbs
2020-04-15 18:23:52 +02:00
antelle 6003b21f6a Merge branch 'master' into develop 2020-04-15 18:22:41 +02:00
antelle 963f09057c Merge branch 'release-1.13'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-04-15 17:52:15 +02:00
antelle b185c3e102 bump version 2020-04-15 17:29:56 +02:00
antelle 272365dde7 up languages 2020-04-15 17:28:51 +02:00
antelle da91254cf0 #1456: options to hide webdav and password generator 2020-04-15 17:26:10 +02:00
antelle 70642b464e fix #1457: fixed styles in theme plugins 2020-04-15 17:12:02 +02:00
antelle 035a4485b7 usb 101 2020-04-15 16:50:01 +02:00
antelle 73ac7496e2 Merge branch 'master' into develop 2020-04-11 18:29:15 +02:00
antelle 40d816f86d Merge remote-tracking branch 'remotes/origin/release-1.13'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-04-11 18:25:40 +02:00
antelle c513fb06e7 bump version 2020-04-11 18:24:46 +02:00
antelle dec0b4d171 fix #1451: fixed slow global auto-type on desktop 2020-04-11 18:24:23 +02:00
antelle 03ed25f617 Merge branch 'master' into develop 2020-04-11 17:14:59 +02:00
antelle 487afe799e up deps 2020-04-10 19:53:19 +02:00
antelle d15366ee24 copying 404 to dist 2020-04-09 18:38:27 +02:00
antelle 816c7776f7 copying 404 to dist 2020-04-09 18:36:56 +02:00
antelle f5eadc5d9e Merge branch 'release-1.13'
Build / web (push) Canceled after 0s
Build / linux (push) Canceled after 0s
Build / darwin (push) Canceled after 0s
Build / win32 (push) Canceled after 0s
Build / publish (push) Canceled after 0s
2020-04-09 07:22:35 +02:00
antelle 8e02c0bd10 bump version 2020-04-09 07:21:08 +02:00
antelle 614f61ce29 Merge branch 'develop' 2020-04-09 07:18:27 +02:00
antelle 6c80d50290 deleted GCP_SA_EMAIL 2020-04-08 23:37:21 +02:00
antelle 5492e53ba9 fix #1443: CI 2020-04-08 23:32:32 +02:00
antelle e795a317cc fixed docker build 2020-04-08 20:23:45 +02:00
antelle 8eb7366a4e finish-release task 2020-04-08 08:02:59 +02:00
antelle b85eab9d10 fix app name 2020-04-07 22:49:19 +02:00
antelle 09b0920337 release notes publishing: bin 2020-04-07 20:21:34 +02:00
antelle 502860ac5e release notes publishing 2020-04-07 20:17:56 +02:00
antelle 68d845ff3d fixed Docker build 2020-04-07 17:12:53 +02:00
antelle b2e69b60a6 files previously created as v4.1 will be written as v4.0 2020-04-07 17:07:05 +02:00
antelle 8015da09e8 debugging publish 2020-04-06 21:56:27 +02:00
antelle 06ed20f59c debugging publish 2020-04-06 21:51:54 +02:00
antelle a003d8bfe6 fixed release file path 2020-04-06 21:48:32 +02:00
antelle 468aa28449 publish release action 2020-04-06 21:41:44 +02:00
antelle e0615c751e ci 2020-04-05 23:39:36 +02:00
antelle 81e4a0eff9 ci 2020-04-05 23:29:34 +02:00
antelle b48ece91b2 ci 2020-04-05 23:21:39 +02:00
antelle 912d2b1e0a signtool 2020-04-05 22:45:46 +02:00
antelle c97f45e3e5 exlint 2020-04-05 22:15:35 +02:00
antelle de4230e0d0 code signing 2020-04-05 22:13:06 +02:00
antelle 79ca627e7c remote code signing 2020-04-05 21:43:32 +02:00
antelle 52045ad2a6 removed an old comment 2020-04-04 22:55:12 +02:00
antelle a6a9554868 Merge branch 'master' into develop 2020-04-04 22:54:23 +02:00
antelle d92229095d bump version 2020-04-04 21:53:02 +02:00
antelle 1d1ce0c322 Merge branch 'release-1.13' 2020-04-04 21:42:05 +02:00
antelle cb45eb4b3c Merge branch 'master' into release-1.13
# Conflicts:
#	Gruntfile.js
2020-04-04 21:41:29 +02:00
antelle 0b31150a43 Merge branch 'develop' 2020-04-04 21:39:40 +02:00
antelle b626152fda desktop-win32 2020-04-04 21:15:07 +02:00
antelle 3cc2cedaa5 codesign path 2020-04-04 20:27:43 +02:00
antelle e2fb54f88d desktop-darwin 2020-04-04 20:07:26 +02:00
antelle 1f334ab3dc ci 2020-04-04 19:53:18 +02:00
antelle c39933c051 fix #1447: fixed opening databases from Dock 2020-04-04 19:46:19 +02:00
antelle b6719e8972 promise 2020-04-04 19:43:12 +02:00
antelle cfaa765858 building desktop apps on ci 2020-04-04 19:26:27 +02:00
antelle 8477df7e5c build folder 2020-04-04 18:04:42 +02:00
antelle 40f3ccc112 fix deploy 2020-04-04 18:02:51 +02:00
antelle a40c116617 linux build action 2020-04-04 18:02:32 +02:00
antelle c97219311f dist name 2020-04-04 17:12:01 +02:00
antelle 49d618f066 disabled publish 2020-04-04 17:00:07 +02:00
antelle 129a77ae7c disabled publish 2020-04-04 16:36:24 +02:00
antelle b2d13db01f disabled publish 2020-04-04 16:27:19 +02:00
antelle c76cebc469 desktop-linux 2020-04-04 10:52:53 +02:00
antelle 668bb9b5d5 removed --no-sign 2020-04-04 10:25:12 +02:00
antelle ec82af7a68 fixed codesign config error 2020-04-04 10:07:10 +02:00
antelle 73b7880d73 fixed codesign config error 2020-04-04 09:55:11 +02:00
antelle a584eecb70 a developer => the developer 2020-04-03 22:47:14 +02:00
antelle cd0a25f910 fix #1445: fixed offline mode in Chrome and Firefox 2020-04-03 22:44:08 +02:00
antelle 6cf2bf109c fix #1444: fixed website favicons and attached images 2020-04-03 22:30:20 +02:00
antelle f6b7c7bb00 Merge branch 'develop' 2020-04-03 21:09:32 +02:00
antelle e987970969 languages 2020-04-03 21:08:02 +02:00
antelle 18d8037309 bump version 2020-04-03 20:28:48 +02:00
antelle 4c1dda68b5 signing code on a Windows VM 2020-04-03 20:26:27 +02:00
antelle 086f2c73db checking links being opened 2020-04-03 18:25:26 +02:00
antelle f7eab86166 removed insecure options from popups, see #1437 2020-04-03 18:17:44 +02:00
antelle 05b2b395ad preventing navigation in the main window 2020-04-03 18:06:14 +02:00
antelle c5298242f6 fixed appimage 2020-04-03 17:17:30 +02:00
antelle 37914d3cb5 allow key rotation in updated plugins 2020-04-02 16:47:50 +02:00
antelle 280ed45199 fix #1438: content security policy 2020-04-02 16:27:10 +02:00
antelle ea20740581 downgraded prettier 2020-03-31 22:00:56 +02:00
antelle 3b7d28130b up deps 2020-03-31 19:30:50 +02:00
antelle 72503916a1 svg icons 2020-03-29 15:01:11 +02:00
antelle cb150bdba9 fetching time 2020-03-29 11:11:16 +02:00
antelle 7c16a79629 fix profiling 2020-03-29 11:06:05 +02:00
antelle 1f5cd55272 app startup time profiling 2020-03-29 10:59:40 +02:00
antelle 7f4a7f05f5 displaying fetch time 2020-03-29 09:55:17 +02:00
antelle 95239fb257 start profiler 2020-03-29 09:23:49 +02:00
antelle f2583bc37f renamed the variable to KEEWEB_PORTABLE_EXECUTABLE_DIR, see #1065 2020-03-24 17:07:30 +01:00
antelle 00d7ff6604 favicon service url 2020-03-24 07:55:28 +01:00
antelle 5011c3ba04 deploy 2020-03-23 21:46:02 +01:00
antelle 9baa446675 removed tools 2020-03-23 21:33:11 +01:00
antelle 9e7f86e4d6 cloning keeweb-site from master 2020-03-23 18:36:20 +01:00
antelle 5ac4b42452 logging storage requests 2020-03-22 20:58:29 +01:00
antelle e9b05fe345 release notes 2020-03-22 07:55:16 +01:00
antelle 13ac013e9f input position 2020-03-21 17:46:39 +01:00
antelle d3b635ffd6 eslint 2020-03-21 17:39:36 +01:00
antelle e09609cc68 input width 2020-03-21 17:38:34 +01:00
antelle d2f64630f5 input width 2020-03-21 16:53:44 +01:00
antelle 0c3d8b77e4 grammar 2020-03-21 16:49:25 +01:00
antelle 905d09899c fix #1295, fix #1353: displaying passwords as protected fields regardless of settings in the file 2020-03-21 15:54:12 +01:00
antelle 0712c9f24b moved tests 2020-03-21 12:43:59 +01:00
antelle 29329f924e password presenter test 2020-03-21 12:24:21 +01:00
antelle c6c307c50c url format tests 2020-03-21 12:08:27 +01:00
antelle b96b477f65 format tests 2020-03-21 11:56:26 +01:00
antelle 4f53e39f8d md-to-html test 2020-03-21 11:45:40 +01:00
antelle 5cac16a632 string format test 2020-03-21 11:37:55 +01:00
antelle a1a02d5098 id generator test 2020-03-21 11:26:49 +01:00
antelle 72c77305e4 password generator tests 2020-03-21 11:23:19 +01:00
antelle d6980ab0b3 up deps 2020-03-20 21:05:39 +01:00
antelle 4ee0a1edaf removed an expensive check from startup 2020-03-20 18:40:43 +01:00
antelle ef7a4ff583 using pkcs11-smartcard-sign 2020-03-19 20:53:30 +01:00
antelle e8979594a1 up deps 2020-03-19 19:56:12 +01:00
antelle 690488abdd rotated the signature key 2020-03-19 19:50:44 +01:00
antelle f7910a1546 Merge pull request #1432 from canthar/maintainer
Fix: MAINTAINER directive in Dockerfile is deprecated
2020-03-19 18:56:30 +01:00
Tomasz Meresiński 42b92ec081 Fix: MAINTAINER directive in Dockerfile is deprecated 2020-03-19 18:34:10 +01:00
antelle b32684ab7b file associations for rpm 2020-03-18 19:52:17 +01:00
antelle eedc4374b9 fix #890: deb will no longer install to /opt 2020-03-17 23:09:46 +01:00
antelle 76304395bd fixed appdata package id 2020-03-17 23:05:04 +01:00
antelle d3dabc35e5 moved appdata package 2020-03-17 23:04:20 +01:00
antelle 039b45e926 renamed appdata package 2020-03-17 23:03:47 +01:00
antelle bf1b162cbc fix #855: appdata file in deb packages 2020-03-17 22:58:08 +01:00
antelle be3c7a8314 fix #784, fix #572, fix #450: more linux releases: AppImage, RPM, Snap 2020-03-17 22:46:21 +01:00
antelle 3bfa95a032 page => tab 2020-03-17 20:17:07 +01:00
antelle 5f1121a241 added a better message for the browser tab 2020-03-17 20:16:44 +01:00
antelle 7ccf38f0df fix #1359: fixed Google Drive login issues in desktop apps 2020-03-17 19:45:38 +01:00
antelle 61d83319d4 KEEWEB_OPEN_DEVTOOLS variable 2020-03-17 07:52:34 +01:00
antelle 1bc8cffbf3 cleaned up code 2020-03-15 18:44:20 +01:00
antelle a7acfb0291 eslint 2020-03-15 18:41:27 +01:00
antelle fb34f8890f #1029: fixed syncing files by timeout when there are no changes 2020-03-15 18:40:37 +01:00
antelle 3d3864d535 #615: translated shortcut modifier keys 2020-03-15 17:34:57 +01:00
antelle 3f9296e38c #411: option to automatically use group icon for new entries 2020-03-15 17:22:25 +01:00
antelle 3a17a370f2 fix #516: scrolling on the open screen on mobile 2020-03-15 17:02:39 +01:00
antelle 42833accc0 #766: setting for no/unlimited history 2020-03-15 15:54:06 +01:00
antelle 85e9a4c4c6 fix #895: generator positioning in list view 2020-03-15 15:19:50 +01:00
antelle 2c0624d5b4 fix #1142: submit button on mobile password input 2020-03-15 13:01:24 +01:00
antelle 347c8fff73 fix #1309: back button in attachment preview 2020-03-15 12:41:02 +01:00
antelle fa17aa4a57 fixed enter keypress in custom field title 2020-03-15 11:51:10 +01:00
antelle 8021c6bb81 fix #1006: password generator patterns 2020-03-15 11:20:01 +01:00
antelle c4be2e5d00 fix #1338: minimized option not working on linux 2020-03-15 10:14:00 +01:00
antelle cbd0c7b228 - fix #1378: screen orientation issues on Android PWA 2020-03-14 21:14:29 +01:00
antelle 0b13c06a09 fix #1293: copying full urls 2020-03-14 21:12:13 +01:00
antelle a5c6180154 fix #1387: fixed drag-drop for otp fields 2020-03-14 21:01:41 +01:00
antelle 19e899ba97 #1393: option to disable saving and exporting (canSaveTo) 2020-03-14 20:51:42 +01:00
antelle 3d9965c4af fix #1391: passwords imported from CSV were not hidden 2020-03-14 20:45:28 +01:00
antelle 98c22a4323 fix #1396: fixed hyperlinks in notes 2020-03-14 20:32:55 +01:00
antelle 649516cf32 removed debug code 2020-03-14 20:30:47 +01:00
antelle 29c0e840d3 up deps 2020-03-14 20:29:55 +01:00
antelle 3a5a7063cd fix #1397: using Segoe UI on Windows 2020-03-14 19:25:00 +01:00
antelle f601dbe313 proper fix #1395 2020-03-14 19:22:48 +01:00
antelle 0640009752 Merge pull request #1427 from harshlele/advanced-search-password
fix #1395 - advanced search will cause a typeerror
2020-03-13 18:05:43 +01:00
Harshal Lele f153d99744 fix #1395 - advanced search will cause a typeerror 2020-03-13 13:37:12 +05:30
antelle 85c07dba9c checking if the directory exists, see #1418 2020-03-09 16:33:28 +01:00
antelle 7ace45929a Merge pull request #1405 from loginov-rocks/patch-2
Make the app installable as PWA
2020-02-10 17:28:46 +01:00
Danila Loginov 212a7a7551 Make the app installable as PWA
In order to be installable as PWA, the app should have at least start_url property in the manifest.

To address https://github.com/keeweb/keeweb/issues/1360
2020-02-06 16:59:42 +03:00
antelle fd9f579802 package-lock.json 2020-01-19 12:28:35 +01:00
antelle ee1b451f59 moved the config a bit later 2020-01-19 12:20:19 +01:00
antelle a2873fd782 Merge pull request #1394 from bradchristensen/bugfix/build-on-windows
Add support for building KeeWeb on Windows
2020-01-19 12:19:29 +01:00
Brad Christensen fc549fe006 Update README to use npm scripts (which use --no-sign by default) 2020-01-19 23:31:32 +13:00
Brad Christensen b931e5d273 Follow the existing convention to use the provided grunt instance 2020-01-19 23:18:50 +13:00
Brad Christensen 25101b5a02 Use Grunt's built-in method of parsing command line args 2020-01-19 23:12:16 +13:00
Brad Christensen 9c32293fa8 Add --no-sign arg to toggle code signing in Grunt 2020-01-19 21:01:59 +13:00
Brad Christensen de6255b388 Fix npm script to run Electron on Windows 2020-01-18 17:21:54 +13:00
Brad Christensen 6566fbe71c Gracefully degrade if code signing config is not available 2020-01-18 17:00:25 +13:00
Brad Christensen 556fc31000 Fix build config to support Windows path separators and newlines 2020-01-18 16:42:36 +13:00
antelle 1072e5778f fix #1385: fixed a file watcher error on network locations 2020-01-05 15:45:06 +01:00
antelle 29bad845b1 Merge pull request #1377 from alex-shpak/cordova
Update cordova launcher, remove unnecessary code.
2019-12-16 22:51:34 +01:00
Alex Shpak a80061d97f Update cordova launcher, remove unnecessary code 2019-12-16 22:37:42 +01:00
antelle bc1d6ce5d8 fixed auto-type text 2019-12-06 18:29:23 +01:00
antelle c6c41d5f2d fixed password generation entropy 2019-11-13 17:00:43 +01:00
antelle 4ded2c1848 simplified generator code a bit 2019-11-13 16:59:22 +01:00
antelle df90fc9c33 Merge branch 'GrantMoyer-develop' into develop 2019-11-13 16:57:37 +01:00
Grant Moyer b1da50133b Remove "binning" from password generation 2019-11-12 20:39:08 -05:00
antelle a65d7208c7 fix #1208: webdav credentials corruption 2019-11-08 19:07:38 +01:00
antelle 36a53cc405 fix #1065: PORTABLE_EXECUTABLE_DIR environment variable 2019-11-06 23:14:20 +01:00
antelle cccb9ac681 fix #1341: auto-lock the app on screen lock on Windows 2019-11-06 23:01:05 +01:00
antelle 0a025d807b Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2019-11-06 22:59:07 +01:00
antelle 9b07bbd505 Merge branch 'release-1.12' 2019-11-06 19:54:08 +01:00
antelle f224aea444 fixed entry title input size 2019-11-06 19:53:50 +01:00
antelle e21257de0c bump version 2019-11-06 19:48:57 +01:00
antelle ecf2a65e16 fix #1334: saving new files not working 2019-11-06 19:46:17 +01:00
antelle 1f4f3101f2 fix #1335: removed the menubar on Windows and Linux 2019-11-04 21:36:14 +01:00
antelle d66b33fd19 Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2019-11-03 12:52:37 +01:00
antelle 5d5913233b Merge branch 'release-1.12' 2019-11-03 12:26:29 +01:00
antelle 2b6e8c030d bump version 2019-11-03 12:25:55 +01:00
antelle b1e0056a3a shorter notation 2019-11-03 11:31:46 +01:00
antelle d64eb95388 filtering file info properties 2019-11-03 11:31:08 +01:00
antelle 8794b0d37c fix #1337: displaying groups in trash 2019-11-03 11:24:33 +01:00
antelle beda8972e8 fix #1333: item selection in the auto-type pop-up 2019-11-03 10:04:34 +01:00
antelle c655defe6d fix #1336: saving disabled storage option 2019-11-03 10:00:46 +01:00
antelle 6dc459a64f readme links 2019-11-03 09:51:05 +01:00
antelle 90979be600 Update FUNDING.yml 2019-10-27 22:34:12 +01:00
antelle 6b1361ad9d fix #734: OTP secrets with spaces 2019-10-27 18:59:09 +01:00
antelle bede42388f fixed non-working updater 2019-10-27 16:43:47 +01:00
antelle 604c1bd3d4 Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2019-10-27 11:05:23 +01:00
antelle 149c565ee6 Merge branch 'release-1.12' 2019-10-27 10:41:42 +01:00
antelle efca3632cc bump version 2019-10-27 10:41:02 +01:00
antelle 60468b4afa fix #1313: disabled code signing for macOS dmg 2019-10-27 10:39:00 +01:00
antelle 50976b2d09 collection tests 2019-10-27 10:35:36 +01:00
antelle 0fce37cc73 fix #1324: duplicated shortcut editor in settings 2019-10-27 09:10:00 +01:00
antelle 12c7313935 fixed electron deprecations 2019-10-26 22:58:48 +02:00
antelle 5d1162bd32 fix #1323: version in the About dialog 2019-10-26 22:56:36 +02:00
antelle 6aa3a71761 Merge branch 'release-1.12' into develop 2019-10-26 21:53:22 +02:00
antelle 3e1f1e557e Merge branch 'develop' 2019-10-26 21:09:08 +02:00
antelle 0a993fb151 languages 2019-10-26 21:08:26 +02:00
antelle e4da7ee601 bump version 2019-10-26 21:05:47 +02:00
antelle d6ef6ecdd8 fix #197: mobile actions panel 2019-10-26 20:50:52 +02:00
antelle e1f242d973 fixed adding new entries on mobile 2019-10-26 19:53:20 +02:00
antelle 1f0503907e up 2019-10-26 19:45:53 +02:00
antelle a9da298dd7 fixed generator on mobile 2019-10-26 19:19:06 +02:00
antelle d3dc13d58a removed hook-rcedit 2019-10-26 14:45:59 +02:00
antelle c7eb8caf8b fix #1319: removed a storage request for invalid passwords 2019-10-26 14:43:34 +02:00
antelle 2ca5f93e8b case 2019-10-17 20:49:36 +02:00
antelle b08ff12760 fix #1310: password generator on the start screen 2019-10-17 19:52:34 +02:00
antelle c62193d1fe #1307: option to disable Markdown support 2019-10-17 19:13:11 +02:00
antelle 858a9bf93b fix #1311: better monospace fonts 2019-10-17 18:53:09 +02:00
antelle 7a22746f67 Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2019-10-16 22:49:45 +02:00
antelle 92215e8817 Merge branch 'release-1.11' 2019-10-16 22:08:23 +02:00
antelle b449def7e6 bump version 2019-10-16 22:07:43 +02:00
antelle b7f020f69c fix #1263: desktop apps crashes when argon2 is used 2019-10-16 22:07:11 +02:00
antelle be79f67510 fix #1305: WebDAV issues 2019-10-15 20:02:44 +02:00
antelle 57af428b9e Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2019-10-13 23:27:52 +02:00
antelle 2c9c8b9ab4 Merge branch 'release-1.11' 2019-10-13 23:10:24 +02:00
antelle bc4dbc7de2 bump version 2019-10-13 23:10:05 +02:00
antelle ce55ca1e0d release date 2019-10-13 23:09:46 +02:00
antelle 99bcbc288c fix #1290: generator popup positioning in custom themes 2019-10-13 13:16:57 +02:00
antelle 517134c95b fix #1300: selecting auto-type sequence items issues 2019-10-12 18:56:33 +02:00
antelle e866bac25a fix #1300: selecting auto-type sequence items issues 2019-10-12 18:55:11 +02:00
antelle 0f5b03ce64 model tests 2019-10-12 15:33:48 +02:00
antelle 4d1cbe7f62 closing browser in tests 2019-10-12 14:24:51 +02:00
antelle 69c38cbeca running tests during build 2019-10-12 14:23:19 +02:00
antelle 936de04b1e running tests during build 2019-10-12 14:22:39 +02:00
antelle b8f7a89291 tests 2019-10-12 13:24:37 +02:00
antelle 11a3995722 extracted focus manager 2019-10-12 12:26:22 +02:00
antelle eb68da635f removed an old task 2019-10-12 08:56:23 +02:00
antelle eb2de6f3f2 focus managing refactoring 2019-10-12 08:20:44 +02:00
antelle 5b118667ef Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2019-10-11 23:51:44 +02:00
antelle f346b73baa Merge branch 'master' into release-1.11 2019-10-11 23:51:03 +02:00
antelle 0fabdac9e0 fixing build 2019-10-11 23:20:32 +02:00
antelle 590035cce9 copying mac helpers 2019-10-11 23:06:36 +02:00
antelle f1d5965bb5 bump version 2019-10-11 21:11:35 +02:00
antelle 85027aa504 Merge branch 'release-1.11' 2019-10-11 21:07:12 +02:00
antelle 72b7517623 release date 2019-10-11 20:57:30 +02:00
antelle 29c3e98c05 fixed issues with some theme plugins 2019-10-11 20:56:35 +02:00
antelle fa15c56f1c Merge pull request #1299 from trickert76/make_docker_image_customizable
Make docker image customizable
2019-10-11 20:29:35 +02:00
antelle 3eca440e0c fix #1296: search in auto-type 2019-10-11 20:26:14 +02:00
Thoralf Rickert-Wendt 9679841e22 #1298 wrong path 2019-10-11 17:49:16 +02:00
Thoralf Rickert-Wendt 16612bface #1298 using url conform delimiter 2019-10-11 17:45:54 +02:00
antelle e48f12de4a Merge pull request #1297 from coliff/patch-1
remove duplicate apple-mobile-web-app-capable meta tag
2019-10-11 17:34:15 +02:00
Thoralf Rickert-Wendt 7b4953a049 #1298 add variable to define a custom configuration within docker 2019-10-11 17:33:50 +02:00
Christian Oliff 6010bf0ba9 remove duplicate apple-mobile-web-app-capable meta tag
the meta tag:
` <meta name="apple-mobile-web-app-capable" content="yes" />`
was appearing twice
2019-10-11 18:49:18 +09:00
antelle 320bc0fe06 fix #1292: macOS app notarization 2019-10-10 23:49:51 +02:00
antelle 0411fe4cfe Merge branch 'master' into develop
# Conflicts:
#	release-notes.md
2019-10-09 23:22:04 +02:00
antelle 9513a6eb80 Merge branch 'master' into release-1.11 2019-10-09 23:21:13 +02:00
Antelle dc6afb765a added a hook for rcedit while wine is not working on macOS 2019-10-09 22:54:32 +02:00
Antelle b944e36d5c Merge branch 'release-1.11' 2019-10-08 20:21:18 +02:00
Antelle 458ba2de77 bump version 2019-10-08 20:19:45 +02:00
antelle 77423ad833 fix #1288: issues when opening a file during in auto-type mode 2019-10-08 20:09:06 +02:00
antelle 3c6c929854 fix #1289: crash on Auto sorting mode 2019-10-08 19:41:08 +02:00
antelle 89a4ef2e4d keeweb-tools 2019-10-07 19:32:51 +02:00
antelle 4644dda250 #1273: using a string from locale while creating new files 2019-10-06 18:53:39 +02:00
antelle 8c124f8980 fix #480: option to launch the app minimized 2019-10-06 13:14:12 +02:00
antelle 769cf19d5c fix #862: downloading attachments on mobile 2019-10-06 12:56:44 +02:00
antelle 42f6c51393 fixed shortcut text 2019-10-06 12:39:38 +02:00
antelle 2a47afa672 better texts on the shortcuts page 2019-10-06 12:33:03 +02:00
antelle 5a8927b547 fix #565: global shortcut to open KeeWeb 2019-10-06 12:27:18 +02:00
antelle cc9e369b6f fix #963: keyboard shortcut to copy OTP in background 2019-10-06 08:48:11 +02:00
antelle 63aee0e876 fix #1108: setting for running in an iframe 2019-10-06 08:28:59 +02:00
antelle dcce37d99e fix #1273: untranslated menu items 2019-10-05 08:37:10 +02:00
antelle 39aaac2d1b Merge branch 'master' into develop 2019-10-04 21:30:44 +02:00
antelle f1a632fb52 Merge branch 'master' into release-1.11 2019-10-04 21:29:39 +02:00
antelle 37ad3fbf0b release date 2019-10-04 21:14:49 +02:00
antelle 87cb6f8262 Merge branch 'release-1.11' 2019-10-04 21:13:43 +02:00
antelle 60eee04922 fixed the opencollective image 2019-10-04 21:13:32 +02:00
antelle 3250816523 manifest update 2019-10-04 20:13:36 +02:00
antelle 7e62173f01 bump version 2019-10-04 20:10:13 +02:00
antelle 6c0124fcf2 fix #1285: issues in moving entries across files 2019-10-04 20:09:44 +02:00
antelle a361fdac9e fixed field name 2019-10-04 19:44:31 +02:00
antelle 911772510c disabled spellcheck on the search input 2019-10-04 19:26:37 +02:00
antelle d2777ba42d fixed advanced entry search 2019-10-03 19:09:22 +02:00
antelle a4b9d1e98b fix #1022: fuzzy search 2019-09-30 20:31:12 +02:00
antelle 3b8e6d7585 up handlebars.js 2019-09-30 19:36:16 +02:00
antelle 7e0565df3b Merge branch 'master' into develop 2019-09-30 19:33:21 +02:00
antelle e8e2b49993 Merge branch 'release-1.11' 2019-09-29 23:26:32 +02:00
antelle a72aea3190 bump version 2019-09-29 23:26:07 +02:00
antelle e97572cfab fix #1279: error opening files with saved keyfiles 2019-09-29 23:25:53 +02:00
antelle 3a0ba29e25 Merge branch 'release-1.11' 2019-09-29 15:45:50 +02:00
antelle f699ece732 bump version 2019-09-29 15:45:27 +02:00
antelle 8bfa1fadda fix #1278: entry selection auto-type window issues 2019-09-29 15:43:17 +02:00
antelle 511fccd084 fix #1277: auto-type window matching on Linux 2019-09-29 15:31:02 +02:00
antelle db091b2b39 readme 2019-09-29 14:37:10 +02:00
antelle fd51fdddb3 fixed displaying errors on the plugins page 2019-09-29 12:35:47 +02:00
antelle bece4a44f1 Merge branch 'release-1.11' 2019-09-29 11:57:49 +02:00
antelle be5dcba4c6 fix #1276: release notes 2019-09-29 11:49:23 +02:00
antelle ae975cdc2f fixed GDrive connection issues 2019-09-29 11:32:03 +02:00
antelle 890097885a bump version 2019-09-29 10:38:58 +02:00
antelle 9a8f595514 fix #1275: starting the app after closing on macOS 2019-09-29 10:34:47 +02:00
antelle 113db1c97d Merge branch 'master' into release-1.11 2019-09-29 10:17:03 +02:00
antelle 11f2355099 fixed eventlisteners leak 2019-09-29 10:06:47 +02:00
antelle a275a895cb Merge branch 'release-1.11' 2019-09-29 10:01:20 +02:00
antelle f84a5a2b51 bump version 2019-09-29 10:00:31 +02:00
antelle 3c0444d812 fixed plugin search filtering 2019-09-29 09:58:45 +02:00
antelle 1c744d8d6b fixed Dropbox connection on iOS 13 homescreen 2019-09-29 09:54:52 +02:00
antelle 82cad800c2 eslint 2019-09-28 23:42:21 +02:00
antelle b6be4375bd fix #1271: loading custom plugins from config 2019-09-28 23:40:17 +02:00
antelle b635281428 Merge branch 'master' into release-1.11 2019-09-28 22:59:18 +02:00
antelle 326b9658fd fix #1271: loading custom plugins from config 2019-09-28 22:47:00 +02:00
antelle d0cc9b54f4 Merge branch 'release-1.11' 2019-09-28 22:32:09 +02:00
antelle 92dec8a7aa bump version 2019-09-28 22:30:42 +02:00
antelle 3e987cc2dc fix #1270: password change control focus 2019-09-28 22:30:21 +02:00
antelle 20843dd1fb Merge branch 'release-1.11' into develop 2019-09-28 20:56:19 +02:00
antelle 29f014abc3 fixed desktop build 2019-09-28 20:27:39 +02:00
antelle 49b5b3d41e fixed desktop apps startup 2019-09-28 20:03:03 +02:00
antelle efb0c39d33 up 2019-09-28 19:36:57 +02:00
antelle 10460f270d Merge branch 'develop' 2019-09-28 19:34:08 +02:00
antelle 0eafc4ac88 bump version 2019-09-28 19:33:27 +02:00
antelle bfc6d4b3c0 field options fix 2019-09-28 19:30:13 +02:00
antelle 9626eb904e fixed trash 2019-09-28 19:26:09 +02:00
antelle c9f62c3f3a fix otp 2019-09-28 19:22:44 +02:00
antelle be52cf86b5 file-changed event 2019-09-28 19:18:24 +02:00
antelle 922c8f2100 languages 2019-09-28 15:50:43 +02:00
antelle 7dbac45670 fixed comments in output 2019-09-28 15:49:04 +02:00
antelle 0dd4fa666a moved a lib 2019-09-28 15:44:46 +02:00
antelle 94aa1665ab release notes 2019-09-28 15:24:26 +02:00
antelle 009d854622 appmodel for keewebhttp 2019-09-28 15:20:29 +02:00
antelle 886d452996 prettier 2019-09-28 14:55:36 +02:00
antelle 0afed3f9aa comment 2019-09-28 14:52:54 +02:00
antelle e42b28ae9e fixed settings shortcuts editor 2019-09-28 14:49:49 +02:00
antelle 0672180233 fixed prop deletion 2019-09-28 14:45:47 +02:00
antelle 0cd401c45d fix #1252: public key rotation 2019-09-28 14:40:46 +02:00
antelle 2913a0421d using one key for everything 2019-09-28 14:17:55 +02:00
antelle 42134b4888 fix a color flash on start 2019-09-28 13:43:30 +02:00
antelle 8b2df9e1c8 about 2019-09-28 13:37:52 +02:00
antelle adb1fd421a fixed details on mobile 2019-09-28 13:31:52 +02:00
antelle f1173c496a plugins for Edge 2019-09-28 13:20:51 +02:00
antelle 59aebd3666 fixed copypaste 2019-09-28 12:25:07 +02:00
antelle 85b89a2d80 fixed layout issues on the import screen 2019-09-28 10:18:00 +02:00
antelle 17dedb6b8e obfuscating displayed password values 2019-09-27 07:37:26 +02:00
antelle 8fb8a9d096 #1125: field actions: copy, reveal, auto-type 2019-09-26 23:43:07 +02:00
antelle 26d0cbf2b2 group selector in csv import 2019-09-26 07:19:20 +02:00
antelle bcee01cdd1 CSV import. fix #498, fix #453 2019-09-25 23:24:38 +02:00
antelle 8060ba6453 fixed the beta build 2019-09-25 22:51:15 +02:00
antelle 62f723ff6f fix #564: Steam OTP support 2019-09-25 22:48:32 +02:00
antelle 86b5113c46 fixed method case 2019-09-25 22:47:44 +02:00
antelle e9fbd49864 Merge branch 'monroe-dylan-m-develop' into develop 2019-09-25 22:46:03 +02:00
Dylan Monroe 9c765ced45 De-linted 2019-09-25 16:25:52 -04:00
Dylan Monroe 4405fdb5fe Fixed typo 2019-09-25 16:04:25 -04:00
Dylan Monroe 645d904954 Removed duplicate assignment 2019-09-25 15:54:39 -04:00
Dylan Monroe b8be888f05 Added Steam TOTP output format 2019-09-25 15:54:10 -04:00
antelle 6aca16c336 prettified service worker 2019-09-23 20:36:54 +02:00
antelle a01d85411c fix #156: using ServiceWorker instead of AppCache 2019-09-23 20:32:56 +02:00
antelle b280c6f723 fixed authHeight property name 2019-09-22 22:30:03 +02:00
antelle f74e2bcc7f symbol name 2019-09-22 22:24:45 +02:00
antelle ae2d54f454 fixed a memory leak 2019-09-22 22:24:19 +02:00
antelle 63be5932be isequal fix 2019-09-22 22:14:45 +02:00
antelle 1565c26823 simple CSV parser 2019-09-22 18:57:18 +02:00
antelle ae72b55a2e fix #336: moving entries across files 2019-09-22 09:56:48 +02:00
antelle b83e2519ac fixed menu resize 2019-09-21 07:41:33 +02:00
antelle 22f5e61978 events in electron 2019-09-21 07:39:03 +02:00
antelle 966097e1ff up 2019-09-20 23:39:12 +02:00
antelle 0c2de37cf8 autoprefixer 2019-09-20 23:37:17 +02:00
antelle 328bdd68e2 bugfixes 2019-09-20 23:25:43 +02:00
antelle a10ee6c9f2 fix 2019-09-20 23:12:02 +02:00
antelle 383847d3aa woff2 2019-09-20 23:03:25 +02:00
antelle 2b8dca7748 added some ids 2019-09-20 22:57:36 +02:00
antelle 9a19339ec5 bugfixes 2019-09-20 22:26:32 +02:00
antelle 2f07c87801 better way of rendering collections 2019-09-20 22:20:53 +02:00
antelle c14567311b fixed file list 2019-09-20 22:18:23 +02:00
antelle bc8aad5062 fix #1256: error during updating the app 2019-09-20 20:35:05 +02:00
antelle a1a649cd9f electron events 2019-09-20 20:31:19 +02:00
antelle ba0586d407 bugfixes 2019-09-20 06:30:04 +02:00
antelle c2212ac4ad Merge branch 'master' into develop
# Conflicts:
#	package.json
#	release-notes.md
2019-09-20 06:01:44 +02:00
antelle 4548829595 release date 2019-09-20 05:58:20 +02:00
antelle 07177222a0 fixed argon2 2019-09-20 05:43:22 +02:00
antelle 723c39de85 up packages 2019-09-19 23:16:18 +02:00
antelle a20dab859f Merge branch 'release-1.10' 2019-09-19 23:06:41 +02:00
antelle acf3bc945c bump version 2019-09-19 23:06:10 +02:00
antelle 379ea9c208 languages 2019-09-19 23:05:44 +02:00
antelle 74f282a69d updated argon2 2019-09-19 23:04:18 +02:00
antelle ef7ae9ada9 Revert "fix #1154: relative Destination header in WebDAV MOVE"
This reverts commit cbbf5f83

fix #1259
2019-09-19 23:01:51 +02:00
antelle 64bf07c71e collection toJSON 2019-09-19 22:07:14 +02:00
antelle 8e30d99e94 at 2019-09-19 18:28:55 +02:00
antelle 0367966ae6 bugfixes 2019-09-19 17:42:53 +02:00
antelle 4d7cef70d2 menu models 2019-09-18 23:37:57 +02:00
antelle 2f93e53716 storage 2019-09-18 21:26:43 +02:00
antelle ebfdff90c7 plugins 2019-09-18 21:15:48 +02:00
antelle 3a5d6bc2ca button padding 2019-09-18 20:43:01 +02:00
antelle 15518a4ce0 removed underscore, added lodash 2019-09-18 20:42:17 +02:00
antelle c41bd1a4ef terser 2019-09-18 19:59:39 +02:00
antelle 9b1335720b less underscore 2019-09-18 07:12:06 +02:00
antelle 731994c9fe less underscore 2019-09-18 07:08:23 +02:00
antelle 3341f3e7f6 less underscore 2019-09-17 23:48:31 +02:00
antelle 08d7261488 less underscore 2019-09-17 23:44:17 +02:00
antelle 89ccb99395 less underscore 2019-09-17 22:17:40 +02:00
antelle 94660d9e71 updater model 2019-09-17 21:56:58 +02:00
antelle 8f4932610c runtime-data model 2019-09-17 21:50:46 +02:00
antelle b405ca970c file model 2019-09-17 21:39:06 +02:00
antelle 05b12c2d59 attachment model 2019-09-17 20:08:58 +02:00
antelle 268dfee75d app model 2019-09-17 19:58:39 +02:00
antelle 9c3c9d28fa app setting model 2019-09-17 19:50:42 +02:00
antelle 00291da933 models and collections 2019-09-17 19:01:24 +02:00
antelle 87eb0468a6 events 2019-09-17 19:01:12 +02:00
antelle f2fe249560 fix 2019-09-16 23:36:22 +02:00
antelle 42e70c1d05 key handler 2019-09-16 23:32:05 +02:00
antelle 19fa54f9d0 otp qr reader 2019-09-16 23:27:31 +02:00
antelle ec6a6e08ff fix 2019-09-16 23:19:54 +02:00
antelle 39e683baf0 cleanup 2019-09-16 23:10:22 +02:00
antelle 2fcc6f2ea3 events 2019-09-16 22:57:56 +02:00
antelle 7f30350873 readme 2019-09-16 22:03:03 +02:00
antelle 9859e921d2 exports 2019-09-16 22:01:59 +02:00
antelle 0dea89c0de event listeners 2019-09-16 21:49:21 +02:00
antelle 1aa29237e2 Merge branch 'views' into develop 2019-09-16 21:08:20 +02:00
antelle 727887fb79 bugfixes 2019-09-16 21:07:39 +02:00
antelle 12079f6ac6 bugfixes 2019-09-16 20:54:14 +02:00
antelle f1d9b5c645 moved views 2019-09-16 20:42:33 +02:00
antelle 75b4ed05ab settings views 2019-09-16 20:40:20 +02:00
antelle a2f938b0a0 removed some readme paragraphs 2019-09-16 20:12:18 +02:00
antelle 8869a27ac9 field views 2019-09-16 19:55:06 +02:00
antelle 927278317e fixed list clicks 2019-09-16 19:26:31 +02:00
antelle ccace95a6c details view 2019-09-16 19:24:15 +02:00
antelle 813ed6d541 linter fix 2019-09-16 19:10:14 +02:00
antelle e7d13ff254 details views 2019-09-16 19:09:57 +02:00
antelle b16dd74492 details views 2019-09-16 18:41:06 +02:00
antelle 2bcaa1926a jsconfig for vscode 2019-09-16 18:34:58 +02:00
antelle 1a48270a28 fake config for IDE's 2019-09-16 18:18:51 +02:00
antelle 6606fa8108 fix 2019-09-16 17:58:44 +02:00
antelle 7730486f30 move views 2019-09-16 17:43:57 +02:00
antelle ad0963e412 key change view 2019-09-16 07:13:56 +02:00
antelle 5ae07b721a dropdown view 2019-09-16 07:06:55 +02:00
antelle a695b35eca fix 2019-09-16 06:56:39 +02:00
antelle 2ce1d01535 storage-file-list view 2019-09-15 23:41:00 +02:00
antelle f8f8a7c1d1 open-config view 2019-09-15 23:24:53 +02:00
antelle 6277a48419 modal view 2019-09-15 23:18:09 +02:00
antelle 155eb493bf list-wrap view 2019-09-15 23:08:36 +02:00
antelle de2443eb5a auto-type-select view 2019-09-15 23:02:51 +02:00
antelle c9ac7f2fa3 drag view 2019-09-15 21:22:23 +02:00
antelle 22d1b478f9 auto-type-hint-view 2019-09-15 20:17:08 +02:00
antelle 43b11277ad icon select view 2019-09-15 20:09:28 +02:00
antelle 7589a112d0 view refactoring 2019-09-15 18:33:45 +02:00
antelle 9bbea458c6 imports 2019-09-15 14:16:32 +02:00
antelle 556c5dd56a moved phonetic export 2019-09-15 13:30:38 +02:00
antelle 2688e761ba moved PluginManager 2019-09-15 13:29:20 +02:00
antelle 5a10dc1f2f removed unnecessary exports 2019-09-15 13:27:24 +02:00
antelle 9c1de2aca9 moved storage modules 2019-09-15 13:24:53 +02:00
antelle c83dff46a7 renamed the mixin 2019-09-15 12:41:38 +02:00
antelle 3bae948218 grammar 2019-09-15 12:40:25 +02:00
antelle 6551622e07 fixed an error message 2019-09-15 12:37:11 +02:00
antelle 3319478876 updated browserslist 2019-09-15 12:18:21 +02:00
antelle 58b8ed7940 renamed mixins to view-engine 2019-09-15 12:14:53 +02:00
antelle bc808889a1 removed some view methods 2019-09-15 12:12:00 +02:00
antelle 5cd19cee56 protected-value-ex 2019-09-15 12:09:18 +02:00
antelle f82791096d renamed helpers 2019-09-15 08:51:24 +02:00
antelle 58726de491 path fix 2019-09-15 08:49:41 +02:00
antelle 60dcfbb071 organized files inside comp 2019-09-15 08:47:57 +02:00
antelle 9e7a86a1db organized files inside util 2019-09-15 08:11:11 +02:00
antelle 0028f2293f checking if devtools are supported before adding a shortcut 2019-09-15 07:47:45 +02:00
antelle e7d88cce58 fix #1141: opening file from storage if cache is not available 2019-09-15 07:44:04 +02:00
antelle 73635e2784 fix plugin gallery layout on mobile 2019-09-14 23:35:10 +02:00
antelle 92d4a40228 about 2019-09-14 22:32:35 +02:00
antelle 0b8bc1afb0 fixed a warning in XHR.send 2019-09-14 22:21:21 +02:00
antelle 27d86d8185 webpack fix 2019-09-14 22:14:44 +02:00
antelle dbc73a73e2 fix #713: markdown notes 2019-09-14 22:12:02 +02:00
antelle f7ef9a7b4a wording 2019-09-14 17:09:35 +02:00
antelle b06cb26edc fix #743: copying entry fields to clipboard 2019-09-14 17:06:38 +02:00
antelle 56d84e1d18 fix #348: configurable system-wide shortcuts 2019-09-14 16:36:30 +02:00
antelle 3859beb543 devtools are now opened with alt-cmd-I 2019-09-14 14:07:56 +02:00
antelle 1b2f83ea80 fix #502: increased the default value of encryption rounds 2019-09-14 13:47:47 +02:00
antelle ba122e786c fix #1255: file format version and kdf selection in settings 2019-09-14 09:34:23 +02:00
antelle cdedcd9dac babel preset-env 2019-09-13 23:25:57 +02:00
antelle 2214356d27 es6 2019-09-13 20:34:52 +02:00
antelle 02b7266206 updated windows helper for #554 2019-09-12 23:37:31 +02:00
antelle e0291b2d52 fix #554: checking active window id during auto-type 2019-09-12 22:38:21 +02:00
antelle 068e49c53c checking modal before closing the dropdown 2019-09-12 20:21:49 +02:00
antelle 0fe67c9e4a Revert "fix #1154: relative Destination header in WebDAV MOVE"
This reverts commit cbbf5f83

fix #1259
2019-09-12 20:09:45 +02:00
antelle 79dd95facd fix #1243: auto-type any field 2019-09-12 19:59:35 +02:00
antelle 9e5d6403fa fixed auto-type select view on macos theme 2019-09-12 07:12:52 +02:00
antelle 0a9296c6c4 fix #107: multiline custom fields support 2019-09-11 23:50:18 +02:00
antelle 07df05304e fix multi-line fields display in history 2019-09-11 23:04:28 +02:00
antelle 5d0556debc fix #1226: 7-digit Authy OTP support 2019-09-11 22:41:00 +02:00
antelle 789103a2b8 fix #764: multiple attachments display 2019-09-11 22:25:33 +02:00
antelle f48713409b spacing fix 2019-09-09 22:10:29 +02:00
antelle 8ecae7e745 Merge branch 'master' into develop 2019-09-09 17:30:03 +02:00
antelle 1b64dd6d56 fix build 2019-09-09 17:13:28 +02:00
antelle d4c255e240 Merge branch 'develop' 2019-09-09 17:10:44 +02:00
antelle 09894d1c8f set version 2019-09-09 17:09:42 +02:00
antelle 574fa84f7d fix set-version 2019-09-09 17:08:31 +02:00
antelle 0953a29b4e prettier 2019-09-09 17:07:24 +02:00
antelle e82732c8c0 up languages 2019-09-09 17:06:29 +02:00
antelle e2588e81f8 bump version 2019-09-09 17:03:39 +02:00
antelle c525d1f9e0 padding 2019-09-09 17:01:47 +02:00
antelle b21b9cd24e fix 2019-09-09 16:56:32 +02:00
antelle 31b0097afb fixed links 2019-09-09 16:54:14 +02:00
antelle e6aef150ee fix #1244: deb file permissions issue 2019-09-09 16:24:45 +02:00
antelle aa0d3d329e Merge branch 'master' into develop 2019-09-09 08:34:26 +02:00
antelle a9ae7ad815 removed stale bot config 2019-09-09 08:33:57 +02:00
antelle 65ba766b0f mobile fixes 2019-09-08 21:21:20 +02:00
antelle bd37cb2c26 field order 2019-09-08 20:29:07 +02:00
antelle 5703dceb0c HTML export 2019-09-08 20:28:02 +02:00
antelle 15b170db5d pretty-printing exported XML files 2019-09-08 18:09:13 +02:00
antelle ef71035e0d fixed tip size 2019-09-08 15:29:02 +02:00
antelle 7977bbf6e1 smooth window startup color transition for the dark theme 2019-09-08 15:11:41 +02:00
antelle a7f769d4f6 new screenshot 2019-09-08 15:07:34 +02:00
antelle a634d824d0 fixed calendar styles 2019-09-08 14:59:08 +02:00
antelle 42f0cc307f grammar 2019-09-08 14:39:06 +02:00
antelle 68e5955d09 mac colors 2019-09-08 14:38:26 +02:00
antelle 3df178a026 confirmation for deleting an entry on mobile 2019-09-08 14:20:11 +02:00
antelle ba57bf9503 updated the demo file 2019-09-08 14:14:07 +02:00
antelle c216d785aa displaying websites as HTTPS if no scheme is provided 2019-09-08 14:11:33 +02:00
antelle f4359fef92 fixed field editing issues 2019-09-08 14:10:35 +02:00
antelle 13f90d7a39 up bourbon 2019-09-08 13:43:55 +02:00
antelle 135c4dc60e grammar 2019-09-08 13:13:30 +02:00
antelle a78c63b05b style adjustments 2019-09-08 13:10:01 +02:00
antelle e3081cba17 changed the icon of automatic search 2019-09-08 12:59:45 +02:00
antelle bfbfaf559a fixed the button position 2019-09-08 12:54:29 +02:00
antelle 6e03932e6d show the macOS theme only on Apple devices 2019-09-08 12:53:05 +02:00
antelle c5f2bd4aa3 fix generator 2019-09-08 11:50:26 +02:00
antelle ba56444a6e fixed paddings 2019-09-08 11:46:03 +02:00
antelle 56fbc14893 picker 2019-09-08 11:32:31 +02:00
antelle 7f20e6cc46 mobile fix 2019-09-08 11:05:38 +02:00
antelle 6dba3f9bf7 macos dark theme 2019-09-08 10:54:18 +02:00
antelle 47b2c32031 bg 2019-09-08 09:56:41 +02:00
antelle 7a3281bd23 up argon2-browser 2019-09-08 09:55:46 +02:00
antelle 55f4ff8f73 eslint 2019-09-08 09:39:30 +02:00
antelle c5d8732031 up deps 2019-09-08 09:38:31 +02:00
antelle 2181c9aa91 dropped support for browsers without css variables 2019-09-08 09:31:25 +02:00
antelle 82f841fdf9 macOS dark theme 2019-09-08 09:12:15 +02:00
antelle bebb9a88eb fixed field editing styles 2019-09-08 08:25:15 +02:00
antelle 8df70602c0 Merge branch 'master' into develop 2019-09-07 21:16:57 +02:00
antelle ef39b5c79c donation link changed 2019-09-07 21:15:20 +02:00
antelle a77dd32d20 donation link 2019-09-07 21:06:33 +02:00
antelle c4dc65761c Merge branch 'open-collective' 2019-09-07 20:55:06 +02:00
antelle bc6d3fba55 removed paypal 2019-09-07 20:34:25 +02:00
antelle 1cf5171526 removed paypal 2019-09-07 20:33:46 +02:00
antelle db850ece85 wording 2019-09-07 20:29:49 +02:00
antelle be3acbe13a funding 2019-09-07 20:23:50 +02:00
antelle 670fc425ac link 2019-09-07 20:23:04 +02:00
antelle 83bd89fe50 opencollective button 2019-09-07 20:21:32 +02:00
antelle c4489d1ea0 npm audit fix 2019-09-07 19:31:25 +02:00
antelle 82a11aaf4f Merge branch 'release-1.9' 2019-09-07 19:29:41 +02:00
antelle 04a513556b bump version 2019-09-07 19:28:59 +02:00
antelle d670deb0cb Merge branch 'master' into release-1.9 2019-09-07 19:24:48 +02:00
antelle cc089b2bd1 release notes 2019-09-07 19:23:14 +02:00
antelle e812218919 fix titlebar color on macOS dark theme 2019-09-07 19:22:45 +02:00
antelle 35b531dad0 release notes 2019-09-07 19:21:48 +02:00
antelle 6715c614ac fix titlebar color on macOS dark theme 2019-09-07 19:16:09 +02:00
antelle 1a7975072f Merge branch 'master' into develop 2019-09-05 22:34:56 +02:00
antelle 2dc9959ca4 fixed menu padding issues in some browsers 2019-09-05 22:30:04 +02:00
antelle a69a5a5472 Stale bot config 2019-09-02 07:34:31 +02:00
antelle b689c96870 xml files can be now opened as regular files 2019-08-25 12:46:53 +02:00
antelle ea00818573 fix #1129: webdav storage error on Unicode filenames 2019-08-24 07:47:13 +02:00
antelle cbbf5f833a fix #1154: relative Destination header in WebDAV MOVE 2019-08-24 07:37:08 +02:00
antelle 8a258998dd fixed group settings not being displayed 2019-08-24 07:14:29 +02:00
antelle 80c44c4c03 fixed group settings not being displayed 2019-08-24 07:09:53 +02:00
antelle ba122bd9d0 fix #1241: config option to disable xml export (canExportXml) 2019-08-24 06:56:25 +02:00
antelle 58709c33a0 added a forgotten comma 2019-08-22 22:49:55 +02:00
antelle 087b1937de Merge branch 'master' into release-1.9 2019-08-22 22:42:02 +02:00
antelle 54430cd83d Merge branch 'develop' 2019-08-22 22:26:25 +02:00
antelle a35817c379 up languages 2019-08-22 22:25:59 +02:00
antelle 9375f5c281 bump version 2019-08-22 22:23:38 +02:00
antelle ba29687865 fix #1234 auto-type issues in xubuntu/xfce 2019-08-22 22:15:04 +02:00
antelle c5c64bee20 fix #1235: custom themes loading 2019-08-20 20:18:16 +02:00
antelle 74e9bb5fc7 Merge branch 'master' into develop 2019-08-19 23:34:39 +02:00
antelle e6556ca92d 2019 2019-08-19 23:33:52 +02:00
antelle 9737272e19 Create FUNDING.yml 2019-08-19 23:17:05 +02:00
antelle f5b4a2a887 Merge branch 'master' into release-1.9 2019-08-19 21:04:10 +02:00
antelle d16f335627 up de 2019-08-19 21:03:33 +02:00
antelle 46adf5dcc1 version 2019-08-19 20:59:54 +02:00
antelle 2c38f3c8f2 fix #1234: auto-type not working on linux 2019-08-19 20:55:25 +02:00
antelle 105205661f fix #1232: removed an unwanted menubar on windows and linux 2019-08-19 20:10:58 +02:00
antelle a69cf5cd85 improved ranking search 2019-08-18 16:14:47 +02:00
antelle 7c5b76fda3 fix #1231: tooltip arrow positioning 2019-08-18 14:44:51 +02:00
antelle 7e2d531533 Merge branch 'release-1.9' into develop 2019-08-18 11:39:12 +02:00
antelle 64c41785f6 removed linux-ia32 2019-08-18 11:24:25 +02:00
antelle 69a3dd14ba removed old lib 2019-08-18 11:21:24 +02:00
antelle 2a4ed6f264 removed support for linux/ia32
See more details here: https://electronjs.org/blog/linux-32bit-support
2019-08-18 11:17:00 +02:00
antelle ba2d9415be version 2019-08-18 11:10:27 +02:00
antelle 60dfb3c21f Merge branch 'develop' 2019-08-18 11:08:42 +02:00
antelle 9816ab5c80 eslintrc 2019-08-18 10:18:18 +02:00
antelle 904a1e12d2 release notes 2019-08-18 10:17:54 +02:00
antelle f8395f7f38 better eslint 2019-08-18 10:17:09 +02:00
antelle 0df1ba97d5 min electron version 2019-08-18 08:19:39 +02:00
antelle d581cb13af release notes 2019-08-18 08:18:36 +02:00
antelle ede597d67e comma 2019-08-18 08:17:32 +02:00
antelle fe7078aebf version 2019-08-18 08:16:10 +02:00
antelle 2f855d5c8a deleted old file 2019-08-18 08:15:46 +02:00
antelle 6788b77f32 year 2019-08-18 08:12:11 +02:00
antelle 2bb4584235 prettier path 2019-08-18 08:10:45 +02:00
antelle 3e3d3571be eslint 2019-08-18 08:09:42 +02:00
antelle fa4ff0b0c3 prettier 2019-08-18 08:05:38 +02:00
antelle 176c2a6edd moved the loader 2019-08-18 07:58:23 +02:00
antelle 74a005d0e3 removed an unused field 2019-08-17 20:09:24 +02:00
antelle 02bb56357f better error description 2019-08-17 19:30:42 +02:00
antelle d9ad69b085 readme 2019-08-17 17:59:24 +02:00
antelle 824b0d3e3c readme 2019-08-17 17:58:00 +02:00
antelle 8ab1ec615f bugfixes for new Electron and webpack 2019-08-17 15:20:00 +02:00
antelle 5fb3228841 release notes 2019-08-17 13:36:30 +02:00
antelle 0e4538650d fix #1171: enabled updater on Linux 2019-08-17 13:36:03 +02:00
antelle 012bc61f4a fixed electron script 2019-08-17 13:17:54 +02:00
antelle 0d126ae0d8 fix #1166: prevent webdav password logging 2019-08-17 11:39:22 +02:00
antelle 2c064989c1 fix #1215: url matching when there's no website field 2019-08-17 11:28:45 +02:00
antelle 51cc550502 fix #1209: copying app information to clipboard 2019-08-17 11:15:23 +02:00
antelle e2e7176b51 readme 2019-08-17 10:51:46 +02:00
antelle de784bd95c readme 2019-08-17 10:48:16 +02:00
antelle 854e627065 fixed editorconfig 2019-08-16 23:09:14 +02:00
antelle 84a23e4aea prettier 2019-08-16 23:05:39 +02:00
antelle 68245629e4 fixed argon2 2019-08-16 22:30:03 +02:00
antelle fd0a8287dc fix fonts 2019-08-16 22:04:29 +02:00
antelle ebd0578ea2 up deps 2019-08-16 21:51:50 +02:00
antelle e1b0409648 up deps 2019-08-16 21:50:23 +02:00
antelle 17a777b7e6 readme 2019-08-16 21:36:30 +02:00
antelle 336c80e296 up eslint 2019-08-16 21:36:22 +02:00
antelle fcd8a99924 ignored .iml 2019-08-16 20:03:58 +02:00
antelle a7096b5cdf building css with webpack 2019-08-16 18:45:11 +02:00
antelle 32b4e99c12 merge GrantMoyer-develop: option to hide password in the generator 2019-08-15 22:08:26 +02:00
antelle c2658395c0 fixed generator style issues in Firefox, see #1222 2019-08-15 21:25:02 +02:00
antelle d3935a49de up node-sass 2019-08-15 21:25:02 +02:00
Grant Moyer 4892e7aa2b Only create a hidden input if not simpleCopy 2019-08-14 23:20:03 -04:00
Grant Moyer d96f458a1b Easy requested changes 2019-08-14 22:59:53 -04:00
Grant Moyer 93b05e448e Remove hide button from copy mode of password generator
Also fix a regression I had introduced
2019-08-07 19:49:27 -04:00
antelle 63f68dff04 fixed generator style issues in Firefox, see #1222 2019-08-07 20:32:38 +02:00
antelle 7d0760469a up node-sass 2019-08-07 20:30:00 +02:00
Grant Moyer 065ca2dad4 Remove extraneous change and fix indentation 2019-08-06 22:25:57 -04:00
Grant Moyer 03f566e7cd Fix copying hidden password 2019-08-06 20:07:55 -04:00
Grant Moyer 9c8ebde19d Move hide button to top of dialog 2019-08-06 18:48:21 -04:00
Grant Moyer ebcbe6496a Add tooltip to password hiding button 2019-08-05 22:24:26 -04:00
Grant Moyer a2a5d6d10a Remove existing tooltip when creating a new one 2019-08-05 22:23:54 -04:00
Grant Moyer 276afa42da Add option to hide generated password 2019-08-05 19:22:29 -04:00
antelle 2437ae575c fix #1221: added '30 min' lock option 2019-08-05 18:47:01 +02:00
antelle ce5b0cb303 copy the cookies file if it's not possible to move it 2019-04-25 18:17:37 +02:00
antelle 1357c7cb1c fixed a phrase 2019-04-23 19:06:05 +02:00
antelle 2c334f4346 fixed a phrase 2019-04-23 19:05:41 +02:00
antelle 0a7c0f64d2 Merge branch 'master' into develop 2019-04-22 11:47:41 +02:00
emyarod 9427d2191a bump kdbxweb version 2019-04-22 11:43:29 +02:00
antelle 8096353e6e bump version 2019-04-22 11:43:29 +02:00
antelle 3f400a8b2a fix #1163: fixed libgconf-2-4 dependency 2019-04-22 11:43:29 +02:00
antelle 3ddefff1df merge emyarod/1161-bump-kdbxweb-version develop 2019-04-20 09:30:30 +02:00
emyarod ddd5370f69 bump kdbxweb version 2019-04-15 13:17:05 -07:00
antelle 6f203f0a3e removed obsolete code 2019-04-13 11:04:31 +02:00
antelle c795784417 Merge branch 'master' into develop 2019-04-05 20:49:31 +02:00
antelle c115ba79c8 Merge branch 'release-1.8' 2019-04-05 20:27:04 +02:00
antelle e6c78c3407 bump version 2019-04-05 20:26:05 +02:00
Dennis Ploeger 20b39b51bf bug: Fixed missing preparation for filter on autotype 2019-04-04 19:18:31 +02:00
antelle 47eb538444 Merge pull request #1153 from dploeger/fix-1152
Fixed missing preparation for filter on autotype
2019-04-04 19:16:25 +02:00
Dennis Ploeger fa136af90a bug: Fixed missing preparation for filter on autotype 2019-04-02 14:09:12 +02:00
Dennis Ploeger 1ab397be0a bug: Fixed missing preparation for filter on autotype 2019-04-02 14:08:56 +02:00
antelle 8a47ed864c package-lock 2019-03-31 15:55:21 +02:00
antelle 8215d608b7 Merge branch 'develop' 2019-03-31 15:52:38 +02:00
antelle 65398b68a4 bump version 2019-03-31 15:51:47 +02:00
antelle 44b4779a9d readme 2019-03-31 15:51:27 +02:00
antelle 7795006337 languages 2019-03-31 15:50:36 +02:00
antelle 2820141897 fix #910: removing bad characters from input 2019-03-31 15:05:48 +02:00
antelle 62e3068af1 fix #1104: update unsaved flag for all entries 2019-03-31 14:51:35 +02:00
antelle 4e3b0b73b4 fix 1127: auto-type markup 2019-03-31 14:34:55 +02:00
antelle f5775c6a02 release notes 2019-03-31 14:32:12 +02:00
antelle 3012d1b4e1 fixed auto-type window on mac 2019-03-31 14:30:36 +02:00
antelle 35ed03021a merge dploeger-autotypeopendatabase 2019-03-31 14:30:14 +02:00
antelle 443a7b4f8d Merge pull request #1138 from HarlemSquirrel/linux-focus-fix
Update Launcher.showMainWindow
2019-03-31 14:07:00 +02:00
antelle 172a6cec2a Merge pull request #1134 from kee-org/fix-details-shortcuts-do-not-preventdefault
Prevent default on details copy keyboard shortcuts
2019-03-31 14:04:51 +02:00
antelle 6a9640ec29 mobile improvements 2019-03-31 13:55:00 +02:00
antelle 2daa28ec0b mobile list styles 2019-03-30 23:49:14 +01:00
antelle fb418d3aa0 better detail editor styles on mobile 2019-03-30 23:39:33 +01:00
antelle a7d7400309 fixed filter reset 2019-03-30 23:05:48 +01:00
antelle a49eaa2103 Merge pull request #1151 from kee-org/fix-emptying-trash-unreliable
Improve reliability of emptying trash
2019-03-30 20:30:59 +01:00
luckyrat 400a0ab04f Improve reliability of emptying trash 2019-03-30 12:22:39 +00:00
antelle 7126db88c0 images 2019-03-29 19:53:46 +01:00
antelle 04fc3ee3d4 bigger list on mobile 2019-03-28 22:49:51 +01:00
antelle 16bbae35f2 PWA styles fixes 2019-03-28 22:31:53 +01:00
antelle cf6fca86f3 iOS PWA improvements 2019-03-28 22:02:04 +01:00
antelle b434d69fd1 Merge pull request #1148 from kee-org/fix-string-comparator-maximum-char-value
Change string comparator last char value to 0xfffd
2019-03-25 22:27:37 +01:00
luckyrat 7e6892f828 Change string comparator last char value to 0xfffd 2019-03-25 17:54:49 +00:00
antelle 7fa8ba6a5a fix eslint 2019-03-15 19:19:53 +01:00
antelle 2b591b3384 Merge pull request #1137 from dploeger/fix-1073
Fixed sorting by rank without giving a filter
2019-03-15 19:16:24 +01:00
Kevin McCormack 36bb2ff175 Update Launcher.showMainWindow
Fixes #1095
2019-03-15 09:19:25 -04:00
Dennis Ploeger bd75f50a0a Fixed sorting by rank without giving a filter 2019-03-15 10:30:00 +01:00
luckyrat 3841148820 Prevent default on details copy keyboard shortcuts 2019-03-12 12:48:44 +00:00
antelle 1a421a7b34 Merge pull request #1131 from dploeger/rank-calculation-lowercase-fix
Lowercased the search string, so case doesn't produce different ranking results
2019-03-09 14:26:13 +01:00
Dennis Ploeger b6bac6d11f Moved prepareFilter to a better place 2019-03-09 12:13:41 +01:00
Dennis Ploeger ef68fe1742 Optimization 2019-03-08 08:01:39 +01:00
Dennis Ploeger 197c64ad14 Lowercased the search string, so case doesn't produce different ranking results 2019-03-07 09:18:54 +01:00
antelle f0ff26ebb4 merge master 2019-03-06 19:28:10 +01:00
antelle e6a8a8c335 removed an unnecessary copy 2019-03-05 18:49:44 +01:00
antelle 4ebe99d54e Merge pull request #1126 from dploeger/directautotype
New Feature: Disable direct autotype
2019-03-04 23:04:55 +01:00
Dennis Ploeger 9f845c4eb8 Optimized settings template 2019-03-04 21:59:21 +01:00
Dennis Ploeger c6e2e48a98 Optimized setting description 2019-03-04 08:31:52 +01:00
Dennis Ploeger a955fcf12f New Feature: Disable direct autotype 2019-03-03 12:53:47 +01:00
antelle 014264d1b6 bump version 2019-03-02 17:20:11 +01:00
antelle 9e640b92f8 Merge branch 'release-1.7' 2019-03-02 17:16:56 +01:00
antelle 9312fd105b improved link security 2019-03-02 17:16:14 +01:00
antelle ce527f4af5 fix #1124: keyboard navigation issues 2019-03-02 17:14:38 +01:00
antelle 73e2fa3883 Merge pull request #1122 from return42/develop
icon-select-view.js: remove unused Launcher (eslint:app)
2019-02-22 19:15:34 +01:00
Markus Heiser 40fd5c4a7b icon-select-view.js: remove unused Launcher (eslint:app)
Running "eslint:app" (eslint) task

keeweb/app/scripts/views/icon-select-view.js
  3:7  error  'Launcher' is assigned a value but never used  no-unused-vars

Aborted due to warnings.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2019-02-22 19:05:55 +01:00
antelle a2c6f2e366 Merge pull request #1121 from return42/develop
dev-env.sh: use HTTP schema as default for cloning
2019-02-22 19:02:18 +01:00
Markus Heiser 00dcd900e3 dev-env.sh: use HTTP schema as default for cloning
It's what will work for the most of users.

Suggested-by: @antelle
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2019-02-22 18:58:29 +01:00
antelle 4f08757c04 Merge pull request #1120 from return42/develop
dev-env.sh: allow to clone via http url
2019-02-22 18:42:55 +01:00
Markus Heiser 983a7d8dd9 README.md: remove SCHEMA variable from build instructions
Requested-by: @antelle [1]

[1] https://github.com/keeweb/keeweb/pull/1120#pullrequestreview-206936479

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2019-02-22 18:38:29 +01:00
Markus Heiser 222fc10ed1 dev-env.sh: allow to clone via http url
BTW, instead of cloning keeweb twice add a git-worktree for the gh-pages.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2019-02-22 10:57:49 +01:00
antelle 31986b1d50 merge master 2019-02-09 21:49:23 +01:00
antelle 4ca2eb4c0e merge release-1.7 2019-02-09 21:25:42 +01:00
antelle 3d691f5a13 release notes 2019-02-09 16:07:42 +01:00
antelle f729872d70 using favicon.keeweb.info to download icons 2019-02-09 16:05:42 +01:00
antelle bcd627663b bump version 2019-02-09 12:12:04 +01:00
antelle ab0da3f49c focus issues fix 2019-02-09 12:11:32 +01:00
antelle f0530e2270 Merge branch 'master' into develop 2019-02-07 22:38:58 +01:00
antelle ddc8359b04 release date 2019-02-07 22:34:09 +01:00
antelle 1e281644eb bump version 2019-02-07 22:34:09 +01:00
antelle 6cad71e859 fixed focus issues 2019-02-07 22:34:09 +01:00
antelle b2f439ff0b release date 2019-02-07 22:03:20 +01:00
antelle 2b22a64818 bump version 2019-02-06 20:37:27 +01:00
antelle 243e068fd6 fixed focus issues 2019-02-06 20:36:50 +01:00
antelle b9cedc15b8 locale 2019-02-05 20:03:29 +01:00
antelle 7d8ddd2408 Merge branch 'dploeger-issue-814' into develop 2019-02-05 20:02:51 +01:00
umlx5h fcc816ffec Add close window item to menu on Mac 2019-02-05 19:23:10 +01:00
antelle a17723dac9 bump version 2019-02-05 19:23:10 +01:00
antelle b35465fa8e fix #1094: plugin installation in MS Edge 2019-02-05 19:23:10 +01:00
antelle 0915e5d6ca fix #1096: focus issues after minimizing 2019-02-05 19:23:10 +01:00
antelle 51a8568d4d Merge pull request #1103 from umlx5h/develop
Add close window item to menu on Mac
2019-02-05 19:14:41 +01:00
Dennis Ploeger 8cd66607ef Made ranking calculation stateless 2019-02-05 18:08:06 +00:00
umlx5h 2f6996c1fb Add close window item to menu on Mac 2019-02-05 11:19:29 +09:00
Dennis Ploeger e89eac9a32 Merge branch 'develop' into issue-814 2019-02-04 21:53:09 +01:00
antelle 3927d8b1ab merge master 2019-02-04 20:11:04 +01:00
antelle 41a4e7efd4 bump version 2019-02-04 19:49:01 +01:00
antelle 5ebc63833d fix #1094: plugin installation in MS Edge 2019-02-04 19:49:01 +01:00
antelle e79e903f25 fix #1096: focus issues after minimizing 2019-02-04 19:49:01 +01:00
antelle 28c9faf48f focusdetector static 2019-02-04 19:49:01 +01:00
antelle adcc270e51 bump version 2019-02-04 19:46:54 +01:00
antelle e4ebcfaf99 fix #1094: plugin installation in MS Edge 2019-02-04 19:43:45 +01:00
antelle 1afc3a414b fix #1096: focus issues after minimizing 2019-02-04 19:20:12 +01:00
antelle 3c105c6091 focusdetector static 2019-02-04 19:14:31 +01:00
antelle 8cc80dbd69 focusdetector static 2019-01-21 20:52:40 +01:00
antelle 44528a40b7 Merge branch 'master' into develop 2019-01-17 21:07:57 +01:00
antelle f2303f447d Merge branch 'release-1.7' 2019-01-17 20:34:58 +01:00
antelle ddf5b39872 bump version 2019-01-17 20:34:26 +01:00
antelle 6f2cc1c187 release notes 2019-01-17 20:33:27 +01:00
antelle 75eaf88d84 fixed focus detector 2019-01-15 19:03:23 +01:00
Dennis Ploeger 7fd72ff687 Moved complete focus detection to a new util component 2019-01-15 19:03:10 +01:00
Dennis Ploeger 29a250d16f Only focuses input field when app or browser is active on lock. Fixes #423 2019-01-15 19:03:02 +01:00
antelle 903d6dc271 fixed focus detector 2019-01-14 19:05:16 +01:00
antelle 591a9456dc Merge pull request #1088 from dploeger/issue-423
Only focuses input field when app or browser is active on lock
2019-01-14 18:52:44 +01:00
Dennis Ploeger 265b6efc96 Moved complete focus detection to a new util component 2019-01-14 08:56:33 +01:00
Dennis Ploeger 69e079c319 Only focuses input field when app or browser is active on lock. Fixes #423 2019-01-13 19:39:37 +01:00
antelle 20c651da41 Merge branch 'master' into develop 2019-01-13 17:28:43 +01:00
antelle da922d2216 bump version 2019-01-13 17:05:57 +01:00
antelle 00fb500287 fix #1085: disabled manifest.json to fix dropbox in iOS PWA 2019-01-13 17:02:01 +01:00
antelle 98f1b1087c fix #1087: release notes 2019-01-13 16:33:56 +01:00
antelle 2262aaa181 windows helper for .net framework 4 2019-01-13 16:32:41 +01:00
antelle f18d053cbf Merge pull request #674 from alex-shpak/cordova
Cordova specific file system and fingerprint fixes.
2019-01-10 18:48:49 +01:00
Alex Shpak a740c51d82 #674, Move fingerprint reset code to setSyncComplete 2019-01-09 23:25:45 +01:00
Alex Shpak b9ffe62e8b #674, Update fingerprint code to expose password less, remove fingerprint suggestion on password change 2019-01-09 22:45:26 +01:00
Alex Shpak d3d1685785 Lock cordova app on minimize 2019-01-09 21:17:20 +01:00
Alex Shpak adeb58bd6b Fix clipboard for cordova to use existing hidden input 2019-01-09 21:17:20 +01:00
Alex Shpak bd33a72ddc Fix bug with file-info saving for cordova, implement simple copy to clipboard 2019-01-09 21:17:20 +01:00
Alex Shpak 92cfcf4415 Added missed semicolon 2019-01-09 21:17:20 +01:00
Alex Shpak dd850197e4 Moved password insertion 2019-01-09 21:17:20 +01:00
Alex Shpak 59fa9253b3 Added fingerprint support for changed password 2019-01-09 21:17:20 +01:00
Alex Shpak 14b953f764 Fixed fingerprint and mkdir bugs 2019-01-09 21:16:15 +01:00
antelle 572be56d75 fixed second-instance unsubscription 2019-01-08 18:40:51 +01:00
antelle d9860935c1 fixed window activation when KeeWeb is launched second time 2019-01-08 18:39:38 +01:00
antelle 0c7210b177 fixed require(electron) 2019-01-07 22:04:39 +01:00
antelle af26c7d1ee minimum node.js version 2019-01-07 21:41:46 +01:00
antelle 5bd7f53fdd removed no-response 2019-01-07 20:53:41 +01:00
antelle ee94183e2a devtools mode 2019-01-07 20:43:14 +01:00
antelle bd9144628f fixed electron dev requests 2019-01-07 20:38:58 +01:00
antelle 9a364d3294 no-response bot config 2019-01-07 19:38:24 +01:00
antelle bb76c9a6c3 version 2019-01-07 18:45:12 +01:00
antelle 97e89ed8be up translations 2019-01-07 18:42:59 +01:00
antelle c49d5c0755 fixed set-version script 2019-01-07 18:39:58 +01:00
antelle f89842e753 fixed set-version script 2019-01-07 18:39:49 +01:00
antelle acc3d8f76b fixed set-version script 2019-01-07 18:39:40 +01:00
antelle 0e379abcd2 release notes 2019-01-07 18:36:18 +01:00
antelle 090e75b6ed moveing files 2019-01-07 18:35:29 +01:00
antelle f3c4af1cbb Merge branch 'master' into release-1.7 2019-01-07 18:34:45 +01:00
antelle 8b0d741087 Merge branch 'develop' 2019-01-07 18:34:25 +01:00
antelle d9c85d16c8 Added missing files 2019-01-07 18:33:21 +01:00
antelle 3ff98e06de wording 2019-01-06 23:34:39 +01:00
antelle ae8e6e4bc8 fix #810: Google Drive cookies 2019-01-06 23:33:09 +01:00
antelle 19545e5cca disabled auto-updating, which will throw an error 2019-01-06 20:33:13 +01:00
antelle 039e6ae8e9 fixed onedrive popup issues observed in #821 2019-01-06 20:21:56 +01:00
antelle 845f672650 bump version 2019-01-06 19:21:11 +01:00
antelle 51bc308fa8 fix #1078: updater hanged on "extracting files" 2019-01-06 19:20:56 +01:00
antelle 72b1ea7f5d fix #1079 2019-01-06 19:10:43 +01:00
antelle cf3a69d1e2 fix 1079: error launching another instance 2019-01-06 19:09:34 +01:00
antelle 22728d89b9 package lock 2019-01-06 18:46:43 +01:00
antelle 29642c4910 release notes 2019-01-06 18:45:47 +01:00
antelle a7acd8041f v1.7.1 2019-01-06 18:44:39 +01:00
antelle 01b57cf33f 2019 2019-01-06 18:40:23 +01:00
antelle 9fcba3dac8 removed duplicated text 2019-01-06 18:39:32 +01:00
antelle 48c09b89d4 language 2019-01-06 18:39:03 +01:00
antelle 5b7723b9b1 removed a broken link 2019-01-06 18:38:36 +01:00
antelle 78bf20e3c3 fix #1077: broken auto-type 2019-01-06 18:33:48 +01:00
antelle af9d668d2a fix 2019-01-06 17:58:40 +01:00
antelle a21ff6233f bump version 2019-01-06 17:05:40 +01:00
antelle d8894dcd7e languages 2019-01-06 17:05:15 +01:00
antelle 7f0656649d release notes 2019-01-06 17:04:33 +01:00
antelle 46ea0ac03e removed filesaver 2019-01-06 16:50:13 +01:00
antelle 0a9cf32fa6 fixed code signing 2019-01-06 16:41:29 +01:00
antelle 810db8ce2e removed old issue templates 2019-01-06 16:05:52 +01:00
antelle d69d1a9534 Merge pull request #1076 from keeweb/issue-templates
Update issue templates
2019-01-06 16:05:20 +01:00
antelle 6cedfadccf removed labels 2019-01-06 16:04:56 +01:00
antelle a795ec9387 Update issue templates 2019-01-06 16:03:46 +01:00
antelle 5f7eff27d1 grunt date 2019-01-06 15:51:45 +01:00
antelle 03cc056558 removed StatsPlugin 2019-01-06 15:38:37 +01:00
antelle 92678730ca removed file-saver 2019-01-06 15:38:03 +01:00
antelle 32ce0cb6ba up deps 2019-01-06 15:19:10 +01:00
antelle 437311fe65 up deps 2019-01-06 14:53:09 +01:00
antelle 89fa0f2d9b up min electron version 2019-01-06 14:46:20 +01:00
antelle 567f349bb0 up electron 2019-01-06 14:45:50 +01:00
antelle ccbf9ac9b3 release notes 2019-01-06 14:39:57 +01:00
antelle b4e24dbb98 grunt fix 2019-01-06 14:33:27 +01:00
antelle e8088b232a moved grunt stuff 2019-01-06 14:32:31 +01:00
antelle 8208bf1d04 up deps 2019-01-06 14:27:55 +01:00
antelle 85f78257ed webpack 4 2019-01-06 13:09:45 +01:00
antelle 91a15c4b5e upgraded modules, fixed argon2 2019-01-06 11:44:10 +01:00
antelle 77ffb13549 Merge pull request #1002 from Coises/always-restore-to-a-connected-monitor
always-restore-to-a-connected-monitor (addresses Issue #954)
2019-01-05 22:55:39 +01:00
antelle 152bea3547 fixed webpackDevConfig 2019-01-04 22:20:01 +01:00
antelle 9f836be3c8 Merge branch 'dploeger-grunt-dev-srv-fix' into develop 2019-01-04 22:13:37 +01:00
Dennis Ploeger e3122da6f0 Missing modules. Fixes a bug introduced in #1056 2019-01-04 09:11:45 +01:00
Dennis Ploeger 1b896f3218 Rank calculation when searching and a new sorter based on that rank.
Rank is calculated as requested in #814.
String rank calculation was taken from the auto type filter and
moved into a mixin.
Fixes #814
2019-01-04 09:05:44 +01:00
antelle 85e5af7c77 Merge branch 'dploeger-issue-791' into develop 2019-01-03 19:40:34 +01:00
Dennis Ploeger 77123756b6 Introduced a tooltip to make the secure field feature more understandable
Fixes #805
2019-01-03 19:40:27 +01:00
Dennis Ploeger 6a7bea7120 URL matching moved from helper to auto-type 2019-01-03 19:40:27 +01:00
Dennis Ploeger eb9c6cbf69 Moved error interpretation to storage provider 2019-01-03 19:40:27 +01:00
Dennis Ploeger 1338cf33dd Introduced a new verb form of "Sync" as setFileSync was already used as a noun 2019-01-03 19:40:27 +01:00
antelle 86567521dd removed an exposed variable 2019-01-03 19:40:27 +01:00
antelle 331c1658d9 eslint 2019-01-03 19:40:27 +01:00
Dennis Ploeger c810220df6 Implemented an auto save feature that periodically saves all files
Changed the label for the old "auto save feature" to make it more distinct from the new feature
Removed the setting from view for non-desktop users, because it wasn't supported there anyway
Fixes #745
2019-01-03 19:40:27 +01:00
Dennis Ploeger 807128bc2f Check for a URL in the title for unsupported apps 2019-01-03 19:40:26 +01:00
Dennis Ploeger 0b25fbdef2 Moved to a mixin 2019-01-03 19:40:26 +01:00
Dennis Ploeger 4b59500f32 ESLint fixes 2019-01-03 19:40:26 +01:00
Dennis Ploeger 6f5c173efd Corrected object clone 2019-01-03 19:40:26 +01:00
Dennis Ploeger 969892f9e1 Added tooltip when field from history was copied. Fixes #857 2019-01-03 19:40:26 +01:00
Dennis Ploeger bd904c3bd6 Better error message, when backup path is a directory and not a file. closes #869 2019-01-03 19:40:26 +01:00
Dennis Ploeger 02c355ae43 Use "Sync" instead of "Save" on cloud storage. Fixes #880 2019-01-03 19:40:25 +01:00
Dennis Ploeger 7eadd94292 Use non-minified versions of depending libraries on dev-server 2019-01-03 19:40:25 +01:00
antelle 4af4ac52af Merge pull request #1070 from dploeger/issue-805
Introduced a tooltip to make the secure field feature more understandable
2019-01-03 19:27:33 +01:00
antelle b38c86e42b Merge pull request #1067 from dploeger/issue-812
Check for a URL in the title for unsupported apps
2019-01-03 19:24:20 +01:00
antelle 0b7187d98b Merge pull request #1058 from dploeger/issue-869
Better error message, when backup path is a directory and not a file
2019-01-03 19:20:44 +01:00
antelle 3ee3ca89a4 Merge pull request #1057 from dploeger/issue-880
Use "Sync" instead of "Save" on cloud storage. Fixes #880
2019-01-03 19:19:14 +01:00
Dennis Ploeger 498dfad299 Introduced a tooltip to make the secure field feature more understandable
Fixes #805
2019-01-03 09:11:06 +01:00
Dennis Ploeger 7055c9421f URL matching moved from helper to auto-type 2019-01-03 08:43:22 +01:00
Dennis Ploeger 363ff309e6 Moved error interpretation to storage provider 2019-01-03 08:18:13 +01:00
Dennis Ploeger 3b3baf1c27 Introduced a new verb form of "Sync" as setFileSync was already used as a noun 2019-01-03 08:13:08 +01:00
antelle 5204350453 removed an exposed variable 2019-01-02 21:45:53 +01:00
antelle 1669fcc6d4 Merge pull request #1069 from dploeger/issue-745
Implemented an auto save feature that periodically saves all files
2019-01-02 21:45:20 +01:00
antelle 3136abc337 Merge pull request #1059 from dploeger/issue-857
Added tooltip when field from history was copied. Fixes #857
2019-01-02 21:22:11 +01:00
antelle 55948a1fa7 eslint 2019-01-02 21:18:06 +01:00
antelle 9da3ca872c Merge pull request #1056 from dploeger/grunt-dev-srv
Use non-minified versions of depending libraries on dev-server
2019-01-02 21:17:01 +01:00
Dennis Ploeger 425389051a Implemented an auto save feature that periodically saves all files
Changed the label for the old "auto save feature" to make it more distinct from the new feature
Removed the setting from view for non-desktop users, because it wasn't supported there anyway
Fixes #745
2019-01-02 15:19:19 +01:00
Dennis Ploeger 20ed2fd33c Support removing custom fields by emptying their title, too 2019-01-02 14:31:08 +01:00
Dennis Ploeger a6c97e496e No transition and a bigger bar for reordering via drag and drop 2019-01-02 14:03:22 +01:00
Dennis Ploeger 0aa029a495 Check for a URL in the title for unsupported apps 2019-01-02 13:25:01 +01:00
Dennis Ploeger 1e58a5419c Moved to a mixin 2019-01-02 10:49:12 +01:00
Dennis Ploeger 11b7f2a9dc ESLint fixes 2019-01-02 09:52:36 +01:00
Dennis Ploeger cd09658745 Corrected object clone 2019-01-02 09:38:13 +01:00
antelle 72c912d57f typo 2019-01-01 20:18:33 +01:00
antelle 753fd6ba2f Merge pull request #1063 from ik9999/develop
Fix: search filters UI opens when user clicks on folder with adancedSearch set in config.json
2018-12-31 17:35:11 +01:00
ik9999 b7ecf9d925 Fix bug: search filters UI opens when user clicks on folder when advancedSearch is set in settings 2018-12-31 15:54:42 +03:00
antelle 718eb43e9d Merge pull request #1061 from ik9999/develop
Allow custom default advancedSearch filters in settings json
2018-12-30 21:10:40 +01:00
ik9999 5e57938aab Allow custom advancedSearch in settings json 2018-12-30 22:03:02 +03:00
antelle e07777179f eslint 2018-12-28 19:11:45 +01:00
antelle 6202de44df fix #848: disabled auto-type shortcut if there's no auto-type 2018-12-28 19:10:25 +01:00
antelle 57eb6bc85d Merge branch 'dploeger-issue-889' into develop 2018-12-28 18:51:54 +01:00
antelle f8a35f9ac3 eslint 2018-12-28 18:51:45 +01:00
Dennis Ploeger 31902697c0 Trigger fileinfo reset on keyfile change. Closes #845 2018-12-28 18:51:45 +01:00
antelle 94a400d0f4 eslint 2018-12-28 18:51:03 +01:00
antelle ba420747a6 Merge pull request #1060 from dploeger/issue-845
Trigger fileinfo reset on keyfile change. Closes #845
2018-12-28 18:49:53 +01:00
Dennis Ploeger cddd9bb8dc Trigger fileinfo reset on keyfile change. Closes #845 2018-12-28 13:16:19 +01:00
Dennis Ploeger fee7ac1e02 Added tooltip when field from history was copied. Fixes #857 2018-12-28 12:23:20 +01:00
Dennis Ploeger d738f367de Better error message, when backup path is a directory and not a file. closes #869 2018-12-28 11:57:05 +01:00
Dennis Ploeger 81aafce72b Use "Sync" instead of "Save" on cloud storage. Fixes #880 2018-12-28 08:24:26 +01:00
Dennis Ploeger d3e5115500 Use non-minified versions of depending libraries on dev-server 2018-12-28 08:15:37 +01:00
Dennis Ploeger 223827ad76 Select from last open files by using arrow keys. Fixes #889 2018-12-28 08:14:36 +01:00
antelle 0d85a08955 Merge pull request #1054 from dploeger/issue-904
Removed invalid (?) sanity check to fix #904
2018-12-27 19:11:47 +01:00
Dennis Ploeger 3691a382da Removed invalid (?) sanity check, that hindered the render of file settings views. Fixes #904 2018-12-27 15:04:21 +01:00
antelle 7cc8e125e5 Merge pull request #1053 from dploeger/issue-974
Set file to be modified after deleting a version. Fixes #974
2018-12-21 17:52:06 +01:00
antelle 164cc5c346 Merge pull request #1052 from dploeger/issue-975
Added name field. fixes #975
2018-12-21 17:48:21 +01:00
Dennis Ploeger 107beaec62 Set file to be modified after deleting a version. Fixes #974 2018-12-21 08:35:10 +01:00
Dennis Ploeger 3bde78d9f2 Added name field. fixes #975 2018-12-21 08:24:25 +01:00
antelle 1dfc91aa66 fix #1042: applying themes from config 2018-12-20 20:58:10 +01:00
antelle 9b9cda384a eslint 2018-10-22 22:03:51 +02:00
antelle 9860fb231b Merge branch 'BorisB-keyboard-navigation' into develop 2018-10-22 21:39:58 +02:00
Boris Bondarenko 389c3859c6 Added shortcuts Action+Opt+Up/Down to navigate menu 2018-10-22 20:16:08 +02:00
antelle b0a07428d0 Merge branch 'dploeger-issue-10017' into develop 2018-10-13 17:32:23 +02:00
Dennis Ploeger 06b3e80880 Nasty typo fix, added shortcut information in the autotype selector 2018-10-13 15:21:55 +02:00
Dennis Ploeger d8dbe0464f Cleaned up the code a bit 2018-10-13 11:04:58 +02:00
Dennis Ploeger e23beaf831 Implemented hotkeys (option/enter and command/enter) to support separate username or password entry. Fixes #1017 2018-10-12 12:31:04 +02:00
antelle 4a070bbc57 Removed autocapitalization from WebDav fields, fix #1014 2018-10-11 22:52:11 +02:00
Coises 415eb11677 always-restore-to-a-connected-monitor
Issue #954: If a display is disconnected while KeeWeb is minimized,
when the window position is restored (either during the same session
or after quitting and restarting KeeWeb) it will typically be positioned
where the now disconnected display used to be, making it difficult
for the user to find the window and reposition it to a connected display.

This commit makes KeeWeb check whenever the window position is restored
to be sure there is enough of the title bar on some connected display
that the user can find and drag the window. If there is not, the window
is repositioned to the primary display.
2018-09-23 14:31:29 -07:00
antelle 61ca037357 Merge pull request #995 from Coises/tray-min-auto-type-select-fix
tray-min-auto-type-select-fix
2018-09-05 20:44:24 +03:00
antelle 39da546129 Merge pull request #994 from Coises/details-overflow-adjust
Adjust some overflow behavior in the details panel, includes fixing Issue #945
2018-09-05 20:43:05 +03:00
Coises d2446cd0e1 tray-min-auto-type-select-fix
The fix for alt-tab behavior when KeeWeb is minimized to the tray
in 3dae878 left a problem when auto-type raises a selection list: the
taskbar button shows, and after a selection is made KeeWeb minimizes
to the taskbar but leaves a tray icon present. The same thing happens
if auto-type is canceled by clicking either the minimize button or the
close button at the top right of the selection window. From this state,
various scenarios lead to having duplicate tray icons.

This commit restores the behavior of 1.6.3 when auto-type raises
a selection list while KeeWeb is minimized to the tray: the selection
window shows, the tray icon stays, and no taskbar button shows.

We used to minimize the window after selection regardless of its
previous state; this worked because we hid the taskbar button and
minimized the window when minimizing to the tray, but that's what caused
the alt-tab problem. Since we now hide when minimizing to the tray,
we have to know whether to minimize or hide after selection.

The simplest way to do that is to keep the old behavior of leaving the
tray icon present when auto-type raises a selection window while KeeWeb
is minimized to the tray. Instead of calling minimize on the main
window, launcher-electron.js now calls app.minimizeThenHideIfInTray
which is defined in desktop/app.js. That routine minimizes KeeWeb (which
returns focus to the previously active window) and then hides the main
window if and only if a tray icon is present. Because we don't want a
tray icon and a taskbar button present at the same time, app.minimizeApp
is also changed to restore the call to mainWindow.setSkipTaskbar(true)
in the non-Darwin path; thus, when auto-type raises a selection window,
there won't be a taskbar button if KeeWeb was minimized to the tray.

If auto-type is canceled by clicking the top right close button while a
selection list is displayed and there is a tray icon, the KeeWeb window
is hidden and the tray icon stays, just as one would expect. This is
the most likely way someone using "Minimize app instead of close" would
choose to dismiss the auto-type selection list.

If auto-type is canceled when a selection list is displayed while there
is a tray icon by clicking the top right minimize button, by using
alt-tab, or by clicking outside the selection window, the KeeWeb window
reverts to its normal display and shows in the alt-tab list, but the
tray icon remains and no taskbar button is shown. This is not ideal;
it could be addressed in another commit if it seems worth doing. This
commit mitigates these scenarios by adding a check to app.minimizeApp
to assure that we never create a second tray icon if one is already
present. This can do no harm and might catch other "corner cases" that
are difficult to foresee. The next time the tray icon is clicked or
the app is minimized to the tray by clicking the top right close button
normal behavior is fully restored.

If I've made no mistakes, the only change to the Darwin path is that it,
too, is subject to the check that a new tray icon is not created if one
already exists. I'm guessing that's OK, but I have no way to test
Darwin.
2018-09-04 20:34:11 -07:00
Coises 2e54d30b9d Adjust some overflow behavior in the details panel
Adding max-width, white-space, overflow and text-overflow to "a" children
of .details_field-value elements corrects an anomaly with long Website
values. Previously they displayed wider than other values, and the space
in which one could click to edit the field without triggering the link
was very thin. This establishes what was presumably the intended behavior.

Removing white-space from .details__attachment-preview-download-text
allows the text to wrap when the details pane is too narrow to show it all
on one line.

Replacing margin-right with max-width in .details__history fixes
issue #945 and makes fields in the history wrap as they do
in the ordinary details pane.

Adding flex to .details_history-top prevents the history details from
overlapping the navigation controls when the window height is too small
to show everything without scrolling.

Adding padding-right and margin-right to .details__history-top and
.details__history-buttons keeps those elements from overlapping
the scroll bar and aligns their right edges with the right edges
of the widest .details_field-value elements.
2018-09-03 14:13:42 -07:00
antelle c8995ad65f Merge pull request #993 from Coises/single-instance-fix
Fix Issue #807 - single instance not enforced
2018-09-03 00:05:11 +03:00
Coises 1e036a3d58 Fix Issue #807 - single instance not enforced
We were checking for single instance too late.
It needs to be done before almost anything else happens.
2018-09-02 12:25:42 -07:00
antelle 9924dff39a removed old feature detecting stuff 2018-08-30 22:21:57 +02:00
antelle 1054cdcfc4 Testing features on start 2018-08-30 22:16:31 +02:00
antelle 0405ba0321 Reverted https warning back 2018-08-30 21:38:52 +02:00
antelle c8dc0aefa0 removed debug code 2018-08-30 21:33:07 +02:00
antelle e889f5f5ba Require https on start: some browser APIs are not available when the app is loaded via HTTP, it's better to fail fast. 2018-08-30 21:32:37 +02:00
antelle 23477e1d2f release notes 2018-08-30 21:23:44 +02:00
antelle e344bc993e improved messages 2018-08-30 21:22:17 +02:00
antelle d0c556263a Merge branch 'sahalsaad-develop' into develop 2018-08-30 21:21:57 +02:00
antelle 3f3ba4d34b saving cookies during ajax requests, this could fix #810 2018-08-30 21:13:40 +02:00
Coises 8f379a1d55 Fix for Issue #877 - remove bad Origin header
When sending a PUT XMLHttpRequest Chromium includes the header
"Origin: file://".
This confuses some WebDAV clients, notably OwnCloud.
The header is invalid, so removing it everywhere it occurs
should do no harm.
2018-08-30 21:13:40 +02:00
sahal.sahal 00d12b96db #646 Change confirm password message. 2018-08-31 02:31:39 +08:00
sahal.sahal dbbf759aaa #646 Fix switch to another tab bug. 2018-08-31 01:26:16 +08:00
sahal.sahal 50b7df3c45 #646 Update confirm password ux. 2018-08-29 07:10:54 +08:00
antelle 62efa587cb saving cookies during ajax requests, this could fix #810 2018-08-28 23:43:25 +02:00
antelle 1d72600e05 Merge pull request #990 from Coises/remove-bad-origin-header
Fix for Issue #877 - remove bad Origin header
2018-08-28 19:53:54 +02:00
Coises 8218f39192 Fix for Issue #877 - remove bad Origin header
When sending a PUT XMLHttpRequest Chromium includes the header
"Origin: file://".
This confuses some WebDAV clients, notably OwnCloud.
The header is invalid, so removing it everywhere it occurs
should do no harm.
2018-08-28 00:49:45 -07:00
sahal.sahal 3e55478f4b #646 Implement confirm master password 2018-08-28 00:15:23 +08:00
antelle 91f08b0853 Merge branch 'Coises-draggable-field-labels' into develop 2018-08-24 20:52:41 +02:00
Coises 0f1a248fcc Make field labels in details view draggable
These changes make it possible to drag the value of a field in the
details view by dragging its label. The value dragged is the same
as would be copied by clicking on the label.
2018-08-23 13:45:35 -07:00
Coises 2450e3a0b6 Avoid spurious drop-target indications
While app-view already prevented the default action for files and urls
in a browser window (navigation), the drag indicator showed that any
drop was possible. These changes cause the drag indicator to show that
nothing can be dropped on areas of the interface that don't contain
a drop target. The addition of dragenter avoids some flickering which
otherwise can occur when dragging a file rapidly across the group
or entry lists.

Accompanying changes to details-view, menu-item-view and open-view are
needed because those views relied on "inheriting" from app-view
the indication that dropping anything was allowed.
2018-08-23 13:45:35 -07:00
Coises 7a3cc9c863 Only show drop files message in details view when dragging a file
In testing, making labels draggable resulted in a lot of annoying,
flashing indications of drop targets in places where text cannot
be dropped. This change causes the details view to show the message
panel indicating that a file can be dropped only when the drag contains
a file.
2018-08-23 13:45:35 -07:00
antelle 150f258b70 fixed a group moving bug 2018-08-23 22:14:44 +02:00
antelle 797bc4820b fix #984: wrong group placement when moving groups inside one subgroups below itself 2018-08-23 22:13:02 +02:00
antelle d95ccdf01a Revert "fix #432: drag-drop in vivaldi": the Vivaldi hack is no longer required, see keeweb/keeweb#983
This reverts commit 60e59da94d.

# Conflicts:
#	app/scripts/comp/drag-drop-info.js
#	app/scripts/views/menu/menu-item-view.js
#	release-notes.md
2018-08-23 19:05:49 +02:00
antelle 3a398a9a26 Merge pull request #979 from Coises/tray-min-alt-tab-fix
Proper minimize to tray for Windows (and Linux?)
2018-08-19 19:00:50 +02:00
Coises 3dae87853c Proper minimize to tray for Windows (and Linux?) 2018-08-15 15:41:08 -07:00
antelle 94bda624d4 Merge branch 'andredasilvapinto-perf' into develop 2018-08-15 19:23:32 +02:00
André Pinto f45de3e759 Improve GroupModel.setGroup performance 2018-08-12 23:37:47 +01:00
antelle 3b91dccb9d Merge pull request #950 from bahamas10/dave-1530205288
sign-html task can hang if it fails with --force
2018-06-28 19:27:45 +02:00
Dave Eddy 86404544f3 sign-html task can hang if it fails with --force 2018-06-28 13:14:51 -04:00
antelle 204965a693 fix after merge 2018-06-21 19:38:06 +02:00
antelle 10a0aa75f0 Merge branch 'twang2218-remove-bower' into develop 2018-06-21 19:22:22 +02:00
Tao Wang c13eb67999 Add yarn.lock
Signed-off-by: Tao Wang <twang2218@gmail.com>
2018-06-21 15:20:07 +10:00
Tao Wang 48fcdd7a6c Replace the bower dependencies with NPM dependencies
Signed-off-by: Tao Wang <twang2218@gmail.com>
2018-06-21 15:11:03 +10:00
antelle b121958686 Merge branch 'cyosp-bugfix/FileSaver.js' into develop 2018-05-13 15:13:18 +02:00
CYOSP 6d93a57bc3 Force FileSaver.js version to 1.3.3 2018-05-13 14:42:43 +02:00
antelle 091de3e4e0 fix #896: increased wasm timeout 2018-04-02 08:32:27 +02:00
antelle a4a878c30b fix #893: log levels 2018-03-24 21:17:20 +01:00
antelle 26d6844b65 travis 2018-03-18 19:01:59 +01:00
antelle 7504393e67 travis 2018-03-18 19:01:34 +01:00
antelle b95469330f travis config 2018-03-18 18:56:47 +01:00
antelle 1fefaf91af don't send Authorization header to OneDrive 2018-03-13 19:17:16 +01:00
antelle bd5f8afe99 using 'me' in OneDrive API 2018-03-13 19:11:18 +01:00
antelle 972b7066dc removed asm.js fallback 2018-03-09 21:25:41 +01:00
antelle 6854531584 grammar 2018-03-09 15:23:15 +01:00
antelle 7c0a3b11e0 strip url params for oauth 2018-03-08 19:37:52 +01:00
antelle 75e778862c up deps 2018-03-03 18:13:58 +01:00
antelle 07ae35e94f up deps 2018-03-03 11:13:03 +01:00
antelle 90aaf45282 removed old libs 2018-03-03 11:04:33 +01:00
antelle 4e96402bd4 added SF Mono font 2018-02-22 19:57:18 +01:00
antelle 86596b2095 ignore _etm_template_uuid field 2018-02-22 18:48:41 +01:00
antelle 5c8e37f70d fixed logs and events 2018-02-16 19:32:44 +01:00
antelle 3d22970600 Merge branch 'tanob-fix-issue-456' into develop 2018-02-16 19:32:12 +01:00
antelle 4457c0e2b3 up kdbxweb 2018-02-16 19:28:05 +01:00
antelle b4a490b796 up kdbxweb 2018-02-14 20:30:11 +01:00
Adriano Bonat f3e6caaa46 Fix #456: Add more logs around PopupNotifier & handle crash & did-fail-load events 2018-02-07 23:55:13 -02:00
antelle f9598228cd Merge branch 'meduzen-app-icons' into develop 2018-02-04 09:07:59 +01:00
Mehdi M f4eccc7805 Add manifest and dist-manifest tasks to Gruntfile 2018-02-04 01:46:41 +01:00
Mehdi M 191819d56f Add fallback icons and app name in HTML <head> 2018-02-04 01:46:13 +01:00
Mehdi M 6c9c0da14d Add Microsoft Edge app icons 2018-02-04 01:45:14 +01:00
Mehdi M 4f62d3591f Add app icons to manifest.json and link it in HTML 2018-02-04 01:42:49 +01:00
Mehdi M 0efacb3cd5 Remove IE-only icon declaration 2018-02-04 01:40:40 +01:00
Mehdi M 6edfd721f1 Update and add app icons for supported platforms 2018-02-04 01:37:17 +01:00
antelle cc14a5e7e5 fix #844: increased Google Drive pageSize to 1000 2018-01-16 19:04:57 +01:00
antelle 7f71546006 Merge pull request #843 from kasoban/develop
Fixes #531: Window icon scaling error on win32 Electron app
2018-01-15 19:03:07 +01:00
kasoban 55bb0fa1df Fixes #531: Window icon scaling error on win32 Electron app 2018-01-15 14:50:48 +01:00
antelle 9f1cd55ffa Merge pull request #836 from jalmeroth/develop
Fix broken "Help Wanted" link
2018-01-06 23:25:49 +01:00
jalmeroth bd51cd66b6 Fix broken "Help Wanted" link 2018-01-06 21:43:58 +01:00
antelle 5addbdf0fe fix #833: allow to save files with the same name as existing folders 2018-01-03 22:49:29 +01:00
antelle 1f45284639 fixed google drive files with multi-parents 2018-01-03 22:41:06 +01:00
antelle 30e3dae3e0 fixed plugins scroll 2018-01-01 21:40:49 +01:00
antelle f917856698 better way to print errors from plugin creation script 2017-12-30 23:30:49 +01:00
antelle c65f29c2d1 removed an old script 2017-12-26 19:28:56 +01:00
antelle 8561756335 fix #795: inputs validation in file settings 2017-12-26 09:54:42 +01:00
antelle 688e363c89 prevent promise rejection, we don't care about it here 2017-12-25 19:01:47 +01:00
antelle 0e63e955ce fix #821: auto-click OneDrive popup login button if it's the only option 2017-12-25 18:58:23 +01:00
antelle a6bd460469 fixed auth popup options 2017-12-25 18:57:09 +01:00
antelle 460065a95b serve KeeWeb in plugin server 2017-12-24 13:36:38 +01:00
antelle 2af6a39a93 refactored open-view focus handling and styles 2017-12-23 21:47:31 +01:00
antelle 1ce659f803 fixed package.json 2017-12-23 21:19:34 +01:00
antelle 5ee435be0c merge WhatIfWeDigDeeper-master 2017-12-23 21:18:08 +01:00
antelle d0b3c4c9eb keeweb-plugin readme 2017-12-23 21:08:23 +01:00
antelle 8f39e4234a fix #817: keeweb-plugin server default port 2017-12-23 21:08:23 +01:00
antelle 0779620a66 fix #815: disabled autocomplete for empty file passwords 2017-12-23 21:08:23 +01:00
antelle 37a54e5ff8 moved history strings to locale 2017-12-23 21:08:23 +01:00
antelle 23f6b151c7 using local google drive app on localhost 2017-12-23 21:08:23 +01:00
florian 14509eea65 fix(DetailsHistoryView): small typo 2017-12-23 21:08:23 +01:00
antelle 5e3be270d7 fix #808: don't use Intl in Edge 2017-12-23 21:08:23 +01:00
antelle 3b913304be typo 2017-12-23 21:08:23 +01:00
antelle 882cf367ad typo 2017-12-23 21:08:23 +01:00
antelle 925b7463e9 fixed version comparison 2017-12-23 21:08:23 +01:00
antelle b7276e2f49 fixed eslint 2017-12-23 21:08:23 +01:00
antelle 3b9f69a112 Fixed eslint 2017-12-23 21:08:23 +01:00
antelle 06751e26a8 RuntimeInfo.beta 2017-12-23 21:08:23 +01:00
antelle a5bd4bb0e5 version suffix for beta 2017-12-23 21:08:23 +01:00
antelle 560a7f1d93 grammar 2017-12-23 21:08:23 +01:00
antelle d5a5795e60 removed $'s in scripts 2017-12-23 21:08:23 +01:00
antelle ab41f45196 copy-beta => build-beta 2017-12-23 21:08:23 +01:00
antelle 9e9fa75a81 https url in features 2017-12-23 21:07:41 +01:00
antelle fa9928c4a7 clone script description 2017-12-23 21:07:41 +01:00
antelle e709c047a6 dev-env script paths 2017-12-23 21:07:41 +01:00
antelle 4e6504992e branches 2017-12-23 21:07:41 +01:00
antelle bd894a11ac clone description 2017-12-23 21:07:41 +01:00
antelle 3ca10b1dfe dev-env script: fixed beta path 2017-12-23 21:07:41 +01:00
antelle b774b3cd7a added dev-env script 2017-12-23 21:07:41 +01:00
antelle b5d14fbddb readme 2017-12-23 21:07:41 +01:00
antelle 9e25b31e6d grammar 2017-12-23 21:07:41 +01:00
antelle d5cc174d98 fix #799: gdrive auth error 2017-12-23 21:07:41 +01:00
antelle 968a64ff7b log weird oauth tokens 2017-12-23 21:07:41 +01:00
antelle 857302878c fixed storage providers authentication in desktop apps 2017-12-23 21:07:40 +01:00
antelle 31197e44f4 Revert "added special folder mime types to google drive"
This reverts commit 0f3807d
2017-12-23 21:06:21 +01:00
antelle e506abf5b0 added special folder mime types to google drive 2017-12-23 21:06:21 +01:00
antelle 12fe7c495d optimized mac menubar icon image 2017-12-23 21:06:21 +01:00
antelle d76cc891e1 mac menubar icon (wip) 2017-12-23 21:06:21 +01:00
antelle eb617dda04 fix 787: support shared files in Google Drive 2017-12-23 21:06:21 +01:00
antelle 747ef62411 fixed eslint 2017-12-23 21:06:21 +01:00
antelle 04958db14d fix #731: option to open keyfile from command line 2017-12-23 21:06:21 +01:00
antelle b7013c548e fix #672: calendar colors 2017-12-23 21:04:54 +01:00
antelle 84e9099952 compare fs dates before starting from updated data 2017-12-23 21:04:54 +01:00
antelle ac53b55dd9 removed unnecessary timeout 2017-12-23 21:04:54 +01:00
antelle aec666bfab fixed color flash on startup 2017-12-23 21:04:54 +01:00
Gregory e479595c27 apply consistent action-color on focus for labels and icons. 2017-12-23 13:25:08 -06:00
Gregory ea9875db38 add tabindex to labels on open screen and listen to keydown event to trigger same functionality as onclick.
add handlebar helper for addition to use with iteration to set tabindex from index plus some starting number.
add dev script to package.json
2017-12-23 13:00:55 -06:00
antelle 93918416b1 keeweb-plugin readme 2017-12-23 13:43:49 +01:00
antelle cc18eb1fa2 fix #817: keeweb-plugin server default port 2017-12-23 13:40:38 +01:00
antelle 21a42aab8e fix #815: disabled autocomplete for empty file passwords 2017-12-21 23:22:56 +01:00
antelle 0eecec2c7c moved history strings to locale 2017-12-17 18:22:20 +01:00
antelle 9931c746f3 using local google drive app on localhost 2017-12-17 18:06:18 +01:00
antelle 60494d2f33 Merge pull request #811 from ffflorian/fix/typo
fix(DetailsHistoryView): small typo
2017-12-17 15:26:52 +01:00
florian 5064fc8eca fix(DetailsHistoryView): small typo 2017-12-17 12:52:23 +01:00
antelle 27b42ec8b9 fix #808: don't use Intl in Edge 2017-12-16 19:50:30 +01:00
antelle d7375c35ad typo 2017-12-16 19:48:01 +01:00
antelle ea6505f62b typo 2017-12-16 15:55:00 +01:00
antelle 10d2d9aaaf fixed version comparison 2017-12-16 13:30:07 +01:00
antelle bba52b1eb6 fixed eslint 2017-12-16 13:17:01 +01:00
antelle 2dc8e85563 Fixed eslint 2017-12-16 13:13:59 +01:00
antelle afaf9ebd02 RuntimeInfo.beta 2017-12-16 13:12:30 +01:00
antelle 70eb727d7a version suffix for beta 2017-12-16 13:01:34 +01:00
antelle 84b8c85d59 grammar 2017-12-16 12:55:10 +01:00
antelle 40cdfe40a6 removed $'s in scripts 2017-12-16 12:43:53 +01:00
antelle 2fe9107e5d copy-beta => build-beta 2017-12-16 12:41:35 +01:00
antelle bcfc4af28c https url in features 2017-12-16 12:37:51 +01:00
antelle 72de9c7a6f clone script description 2017-12-16 12:35:53 +01:00
antelle 66e33aff0f dev-env script paths 2017-12-16 12:35:31 +01:00
antelle 8895b5ea6d branches 2017-12-16 12:31:03 +01:00
antelle 56e685b0d4 clone description 2017-12-16 12:30:09 +01:00
antelle 53255143a7 dev-env script: fixed beta path 2017-12-16 12:28:22 +01:00
antelle 50d6562e51 added dev-env script 2017-12-16 12:26:36 +01:00
antelle 6a16752cde readme 2017-12-11 21:53:52 +01:00
antelle b2bf8685d8 Merge branch 'master' into develop 2017-12-11 21:51:15 +01:00
antelle cded8a41f9 Merge branch 'release-1.6' 2017-12-11 19:46:19 +01:00
antelle 376c1a9cbc fix #804: Windows installer upgrade issue 2017-12-11 19:42:26 +01:00
antelle 3f2befe3e6 grammar 2017-12-09 23:50:05 +01:00
antelle d96df170c4 Merge branch 'master' into develop 2017-12-09 22:48:04 +01:00
antelle 102c2804c2 Merge branch 'release-1.6' 2017-12-09 22:30:43 +01:00
antelle 977cd00187 fix #799: gdrive auth error
(cherry picked from commit 02aa303)
2017-12-09 22:27:07 +01:00
antelle 4b7f6fdf9b bump version 2017-12-09 22:25:25 +01:00
antelle eedc51f48a fixed cookie-manager 2017-12-09 22:24:50 +01:00
antelle 0e42436082 fix 787: support shared files in Google Drive
(cherry picked from commit e477a6a)
2017-12-09 22:19:53 +01:00
antelle de6c21715b release notes 2017-12-09 22:18:45 +01:00
antelle cfb1116b7e updated readme 2017-12-09 22:13:55 +01:00
antelle 93b60a1731 use console.info instead of console.log 2017-12-09 22:13:49 +01:00
antelle e6f78859a3 use console.log instead of console.debug: debug is doomed 2017-12-09 22:13:43 +01:00
antelle 869b6443e8 fixed storage providers authentication in desktop apps 2017-12-09 22:13:26 +01:00
antelle 0941a2666c fixed error on open 2017-12-09 22:09:30 +01:00
antelle ebccdcb3f7 fix #788: added the icon to linux zip archives 2017-12-09 22:07:50 +01:00
antelle 40c3b0b5bd fixed google drive files listing 2017-12-09 22:06:36 +01:00
antelle b6d507d5bc update message wording 2017-12-09 22:05:56 +01:00
antelle a360ee1308 fixed color flash on startup 2017-12-09 22:05:36 +01:00
antelle 02aa303dfc fix #799: gdrive auth error 2017-12-09 21:46:08 +01:00
antelle e967056dee updated readme 2017-12-09 16:30:48 +01:00
antelle 480fe474d5 use console.info instead of console.log 2017-12-09 12:44:58 +01:00
antelle aa12298111 use console.log instead of console.debug: debug is doomed 2017-12-09 12:43:46 +01:00
antelle 1092fea3a5 log weird oauth tokens 2017-12-09 12:39:18 +01:00
antelle 334e439f94 fixed storage providers authentication in desktop apps 2017-12-09 12:22:33 +01:00
antelle 76386cb403 Revert "added special folder mime types to google drive"
This reverts commit 0f3807d
2017-12-09 11:21:11 +01:00
antelle 0f3807d6ad added special folder mime types to google drive 2017-12-09 10:58:11 +01:00
antelle 349320c80d fixed error on open 2017-12-07 18:46:46 +01:00
antelle 759134c85b fix #788: added the icon to linux zip archives 2017-12-05 19:13:44 +01:00
antelle ccd89ec2e3 Merge branch 'master' into develop 2017-12-04 22:35:58 +01:00
antelle c0901835dc optimized mac menubar icon image 2017-12-04 22:35:18 +01:00
antelle 0e148594fb mac menubar icon (wip) 2017-12-04 22:33:40 +01:00
antelle 60a85c088e Update LICENSE 2017-12-04 22:01:46 +01:00
antelle 88947f4e54 Rename LICENSES-DEPENDENCIES to DEPS-LICENSE 2017-12-04 22:00:27 +01:00
antelle 07dbb7d7f9 Rename LICENSE-DEPS to LICENSES-DEPENDENCIES 2017-12-04 21:58:23 +01:00
antelle e477a6a3e6 fix 787: support shared files in Google Drive 2017-12-04 19:50:36 +01:00
antelle 9b30a17df0 fixed eslint 2017-12-04 19:32:06 +01:00
antelle 4fefe8775e fixed google drive files listing 2017-12-04 19:30:55 +01:00
antelle a4d5963620 fix #731: option to open keyfile from command line 2017-12-03 20:31:54 +01:00
antelle c063cd3461 fix #672: calendar colors 2017-12-03 19:16:24 +01:00
antelle b894153c43 Merge branch 'master' into develop 2017-12-03 12:38:14 +01:00
antelle db3ed73ee6 readme 2017-12-03 12:37:35 +01:00
antelle 3ad376e2ae images 2017-12-03 12:35:37 +01:00
antelle f8f6424bb1 compare fs dates before starting from updated data 2017-12-03 10:03:03 +01:00
antelle 1158e1bef2 update message wording 2017-12-03 09:04:24 +01:00
antelle 1557a9a92f removed unnecessary timeout 2017-12-03 09:03:56 +01:00
antelle 7c69c1305f fixed color flash on startup 2017-12-03 09:02:27 +01:00
antelle c59b14026c Merge branch 'master' into develop 2017-12-03 08:47:36 +01:00
antelle 7de3f5b94a Merge branch 'master' into release-1.6 2017-12-03 08:47:10 +01:00
antelle 214c39e4f6 bump version 2017-12-03 01:13:22 +01:00
antelle 09b1c60cc7 Merge branch 'release-1.6'
* release-1.6:
  bump version
  fixed white screen on startup
  fixed white screen on startup
2017-12-03 01:06:41 +01:00
antelle a5873b8fcc bump version 2017-12-03 01:06:12 +01:00
antelle f82312b9d0 fixed white screen on startup 2017-12-03 01:04:16 +01:00
antelle 9ee1080240 fixed white screen on startup 2017-12-03 01:04:04 +01:00
antelle 182c9701e6 Merge branch 'master' into develop 2017-12-02 23:53:56 +01:00
antelle dac5713451 licence formatting 2017-12-02 23:52:51 +01:00
antelle aeae97f690 Merge branch 'master' into develop 2017-12-02 23:27:54 +01:00
antelle abd8f6d20a desktop packages 2017-12-02 22:55:11 +01:00
antelle 5247599eaa merge develop 2017-12-02 22:52:04 +01:00
antelle 9669b72015 release date 2017-12-02 22:50:05 +01:00
antelle f8245fac62 up translations 2017-12-02 22:46:32 +01:00
antelle f886cf6ee2 skip signature validation for configured plugins 2017-12-02 22:31:18 +01:00
antelle 27a0d811be plugin signature validation 2017-12-02 21:20:19 +01:00
antelle 2aadc27db8 asar packaging 2017-12-02 20:38:13 +01:00
antelle fd11c3011e removed old texts 2017-12-02 16:45:16 +01:00
antelle 0f47430b8d fixed locking message texts 2017-12-02 16:31:29 +01:00
antelle b7135334fd updated electron params 2017-12-02 15:39:11 +01:00
antelle 7a3643aa62 bump version 2017-12-02 15:34:42 +01:00
antelle dbb792c337 updated electron params 2017-12-02 15:34:36 +01:00
antelle 2ec8308f73 package lock 2017-12-02 15:30:26 +01:00
antelle e0570c09b1 up electron and node-stream-zip 2017-12-02 15:17:26 +01:00
antelle 75ff0e4311 fixed official plugins display 2017-11-28 18:54:06 +01:00
antelle f390b690a7 fix #353: WebDAV file creation 2017-11-27 22:11:00 +01:00
antelle 33519c7c60 fixed double OAuth errors 2017-11-27 19:00:39 +01:00
antelle 4ec08bf50e fix #648: auto-type on subdomains 2017-11-26 22:49:57 +01:00
antelle 62cdb32423 onedrive Graph API 2017-11-26 21:43:36 +01:00
antelle 08fbb9bf79 fix #750: prevent undo at login 2017-11-26 21:00:45 +01:00
antelle 42bea50907 fix #467: don't remove spaces in custom fields 2017-11-26 20:52:00 +01:00
antelle 78fed18d75 fix 509: clear clipboard on exit 2017-11-26 20:44:53 +01:00
antelle 51cd1eea9a removed duplicated parameter 2017-11-26 20:34:32 +01:00
antelle 8f8fa6faa1 list google drive files 2017-11-26 20:34:14 +01:00
antelle 3e5b27e415 keeweb plugin server 2017-11-26 20:03:22 +01:00
antelle c60a441b01 fix plugin docs 2017-11-26 20:01:57 +01:00
antelle df6fc53a1f fix #721: serve keeweb plugins 2017-11-26 20:01:42 +01:00
antelle 9624abbc5e fix plugin docs 2017-11-26 19:32:59 +01:00
antelle 7568a59019 fix #665: draggable area fix 2017-11-26 19:30:14 +01:00
antelle db36cbaebb fix #686: disable click to open for canOpen=false 2017-11-26 19:21:16 +01:00
antelle fb12ce3a6a fix #707: fix discard changes 2017-11-26 19:13:48 +01:00
antelle b3cd56b9c4 fix #780: clear template group on deletion 2017-11-26 18:58:37 +01:00
antelle 7d13b49093 redesigned Dropbox chooser 2017-11-26 17:26:58 +01:00
antelle 577d23e212 fixed tip transition animation in safari 2017-11-26 13:35:43 +01:00
antelle 32dcb31085 support more memory in argon2 2017-11-14 22:46:23 +01:00
antelle 5e6cb5fc4a docs 2017-11-13 23:09:09 +01:00
antelle 168e246c53 fixed email address 2017-11-13 23:06:50 +01:00
antelle 6dd1d0e1f7 added contributing 2017-11-13 23:04:42 +01:00
antelle 04d29ce512 added code of conduct 2017-11-13 23:04:30 +01:00
antelle c660388ffd removed unnecessary reference 2017-11-13 22:49:19 +01:00
antelle 9d3b904988 fixed license links 2017-11-13 22:48:38 +01:00
antelle 5a55b1469c renamed license 2017-11-13 22:45:08 +01:00
antelle 078af21a01 fix #777: replaced favicon service url 2017-11-13 22:35:46 +01:00
antelle 15b8d8362d fix #733: safari icons 2017-11-11 19:40:07 +01:00
antelle 8eaa9c92fa fix #774: reset creation time for cloned entries 2017-11-06 18:59:59 +01:00
antelle ae57a5a65e fix #768: password can be hidden as other fields 2017-11-04 09:53:26 +01:00
antelle 360d3ac6f6 fix #770: show usernames in in entry list 2017-11-04 09:38:56 +01:00
antelle 8d523f7e85 fixed typos 2017-10-15 16:29:56 +02:00
antelle 85471d672d Merge branch 'tfenster-docker-rpi' into develop 2017-10-15 12:28:50 +02:00
Tobias Fenster 0591a09ced implement Docker support on raspberry pi 2017-10-15 11:46:43 +02:00
antelle 215809d9c2 updated beta path 2017-10-09 19:59:20 +02:00
antelle c3c60fd613 check params on xml import 2017-09-29 20:37:38 +02:00
antelle 49b999693c fixed error after importing bad xml 2017-09-29 20:35:35 +02:00
antelle 34f91ac3af fix #724: loading app config bug 2017-08-31 22:26:06 +02:00
antelle c48db9dfca release notes 2017-08-31 21:31:02 +02:00
antelle 954a38b8d8 Merge branch 'master' into develop 2017-08-31 21:30:20 +02:00
antelle 10229e7a4e Merge branch 'release-1.5' 2017-08-31 19:15:42 +02:00
antelle 37dc62018d bump version 2017-08-31 19:15:24 +02:00
antelle 21b973f508 release notes 2017-08-31 19:14:44 +02:00
antelle c1decbcd5a fix #653: auto-closing tab when starting from link
(cherry picked from commit bcafbde)
2017-08-31 19:12:00 +02:00
antelle 9defd2476d fixed autocompletes in new chrome 2017-08-31 19:10:59 +02:00
antelle 7961d2a660 fixed config link check 2017-08-31 19:08:39 +02:00
antelle 1ac61799fe prevent keeweb from working in iframe 2017-08-31 18:56:11 +02:00
antelle 4c33e60c69 fixed hang in new electron: return void 0 from events 2017-08-31 18:40:17 +02:00
antelle d3ffceb1b5 fix window close 2017-08-31 18:40:09 +02:00
antelle 42e8d31d86 Merge branch 'release-1.5' 2017-08-30 19:30:16 +02:00
antelle b8346c5381 bump version 2017-08-30 19:29:09 +02:00
antelle e51bb2ae6e fix #621, fix #340: tray icon crash 2017-08-30 19:27:31 +02:00
antelle 3df40af7ab up packages 2017-08-30 19:23:20 +02:00
antelle 624755029f check config location 2017-08-30 19:14:42 +02:00
antelle 18a5f27cb7 added zip file link to the readme 2017-08-30 19:14:21 +02:00
antelle 36f3d18ef0 fixed escape order on openFile 2017-08-30 19:14:14 +02:00
antelle 4ab388caf7 skip signing beta 2017-08-30 19:14:08 +02:00
sainaen 9ff47971c7 Add rel=noreferrer to links in the URL field
When opened from the webapp, a malicious target page could trigger
navigation in the KeeWeb's tab using `window.opener`.

The proper way to fix this would be using `rel=noopener`, but
unfortunately even the latest versions of IE do not support it.
At the same time `rel=noreferrer`, for historical reasons, implies
`rel=noopener` when used with `target=blank` and is supported
by IE11 (in later versions of Windows 10) and Edge.

More details and examples of the attack
at [Mathias Bynens' website](https://mathiasbynens.github.io/rel-noopener/).
2017-08-30 19:13:58 +02:00
antelle b183bd0ebe removed slot 2017-08-30 19:13:52 +02:00
antelle 5dd77907fc removed old options 2017-08-30 19:13:46 +02:00
antelle c6b409738b key slot 2017-08-30 19:13:40 +02:00
antelle 134d1c3f0f new code signing 2017-08-30 19:13:34 +02:00
antelle 951f604dc8 read code signing private key from smartcard 2017-08-30 19:13:16 +02:00
antelle 2efea09f2b sha256 code signing 2017-08-30 19:13:07 +02:00
antelle a970a83409 support external code signing module 2017-08-30 19:12:51 +02:00
antelle 55aaea087f fixed key path 2017-08-30 19:12:44 +02:00
antelle 9bd9785537 use private key from smart card 2017-08-30 19:12:04 +02:00
antelle b29615b5aa check config location 2017-08-30 18:52:54 +02:00
antelle 719d72bd86 added zip file link to the readme 2017-08-29 18:35:18 +02:00
antelle d312f22b5a fixed escape order on openFile 2017-08-15 07:19:30 +02:00
antelle 0e45d80a0a skip signing beta 2017-08-06 16:25:23 +02:00
antelle afda7b630e fix #654: Chinese fonts 2017-08-06 16:22:53 +02:00
antelle 18a3a4450e Merge branch 'sainaen-imp-ext-links-sec' into develop 2017-07-24 23:20:46 +02:00
sainaen 7a99e42bde Add rel=noreferrer to links in the URL field
When opened from the webapp, a malicious target page could trigger
navigation in the KeeWeb's tab using `window.opener`.

The proper way to fix this would be using `rel=noopener`, but
unfortunately even the latest versions of IE do not support it.
At the same time `rel=noreferrer`, for historical reasons, implies
`rel=noopener` when used with `target=blank` and is supported
by IE11 (in later versions of Windows 10) and Edge.

More details and examples of the attack
at [Mathias Bynens' website](https://mathiasbynens.github.io/rel-noopener/).
2017-07-24 23:50:42 +03:00
antelle 9f47699a49 removed slot 2017-07-04 23:32:32 +02:00
antelle 758d10ed14 removed old options 2017-07-04 23:05:05 +02:00
antelle baa7a32dc7 key slot 2017-07-04 23:04:19 +02:00
antelle 29f88fcadf new code signing 2017-07-04 22:34:19 +02:00
antelle 97995fb6f1 check app file in signatures 2017-06-13 22:43:22 +02:00
antelle 569c44f78c hide unsupported option 2017-06-12 21:07:09 +02:00
antelle 6163fa4ba8 fix #422: lock on mac lock 2017-06-12 21:02:16 +02:00
antelle a3456b2941 read code signing private key from smartcard 2017-06-12 00:33:50 +02:00
antelle ca9d01af79 sha256 code signing 2017-06-11 23:29:43 +02:00
antelle 51d172c79a fixed auth popup message 2017-06-11 19:41:56 +02:00
antelle bee819cc98 show dropbox list errors 2017-06-11 19:35:18 +02:00
antelle ecaf465e16 renames reference to self 2017-06-11 19:06:36 +02:00
antelle 39e2ddc5be support external code signing module 2017-06-11 19:02:09 +02:00
antelle 849b9b06a9 preview pem files 2017-06-11 12:14:41 +02:00
antelle b9cda3efd8 fixed key path 2017-06-11 12:05:07 +02:00
antelle dbe2ca80a8 up packages 2017-06-11 12:00:29 +02:00
antelle f59f68bebd up packages 2017-06-11 11:45:27 +02:00
antelle df81cb5ab3 use private key from smart card 2017-06-11 11:37:09 +02:00
antelle f8cbf0e5bf removed config example 2017-06-11 09:14:26 +02:00
antelle d02a4671cb fix #656: prevent master password autocomplete 2017-06-07 19:31:06 +02:00
antelle 087dd6cae0 eslint 2017-06-06 20:42:25 +02:00
antelle 31f5f2d88a plugin signature validation 2017-06-06 20:40:27 +02:00
antelle c86042b885 local resource signature validation 2017-06-06 19:55:46 +02:00
antelle ac23f70bb5 fixed hang in new electron: return void 0 from events 2017-06-05 23:20:47 +02:00
antelle ad446e7adc release notes 2017-06-05 18:08:07 +02:00
antelle 2392329e93 fix window close 2017-06-05 17:14:41 +02:00
antelle 0d2f00657c bump electron min version 2017-06-05 16:33:29 +02:00
antelle 9ba645cb81 added Microsoft YaHei font 2017-06-05 14:45:10 +02:00
antelle ac00b77fc4 added a workaround for tray issue in ubuntu 2017-06-05 14:30:22 +02:00
antelle b7475a8d4c fix #621, fix #340: tray icon crash 2017-06-05 14:15:22 +02:00
antelle b732eb9a74 read public key from app 2017-06-05 13:55:31 +02:00
antelle f4d5e51983 override userData path for desktop 2017-06-05 13:33:12 +02:00
antelle 1b07e77167 release notes 2017-06-05 12:01:08 +02:00
antelle 69257b82ad validate desktop updates before running 2017-06-05 12:00:30 +02:00
antelle 41656b76b6 save plugin gallery in desktop 2017-06-05 11:48:03 +02:00
antelle 2efb2911b1 fix chown typo 2017-06-05 11:32:18 +02:00
antelle 857593232c set app folder permissions to root on mac 2017-06-05 11:31:50 +02:00
antelle e5bfa59c50 fix #422: better lock or sleep message 2017-06-03 21:09:03 +02:00
antelle bcafbde0d6 fix #653: auto-closing tab when starting from link 2017-06-03 20:11:09 +02:00
antelle dc20bdae10 Merge branch 'master' into develop 2017-06-03 16:55:32 +02:00
antelle b730cbdc02 Merge branch 'release-1.5' 2017-06-03 16:27:03 +02:00
antelle a2cfaf8717 bump version 2017-06-03 16:25:30 +02:00
antelle ecb0449ce6 release notes 2017-06-03 16:24:21 +02:00
antelle ade2d77662 fix #652: create a copy bug 2017-06-03 16:22:02 +02:00
antelle 818e547572 fix window drag style 2017-06-03 16:21:12 +02:00
antelle f083e50fad fix #649: loading keyfiles with path 2017-06-03 16:21:03 +02:00
antelle 338414f6af fix #645: layout issues while switching table view 2017-06-03 16:20:54 +02:00
antelle 80c396bb48 fix #652: create a copy bug 2017-06-03 16:14:03 +02:00
antelle fc629a7760 fix window drag style 2017-06-02 22:28:18 +02:00
antelle 65a47a8fe4 lock on computer sleep 2017-06-02 20:16:09 +02:00
antelle bb8e3390a0 auto-lock when Windows is locked 2017-06-02 20:04:57 +02:00
antelle f8f81ae07f fix #649: loading keyfiles with path 2017-06-01 21:35:56 +02:00
antelle 9918b63a4c fix #645: layout issues while switching table view 2017-05-29 23:46:36 +02:00
antelle a4a0589512 fix #645: layout issues while switching table view 2017-05-29 23:46:00 +02:00
antelle 517f662864 Merge branch 'release-1.5' 2017-05-29 20:51:15 +02:00
antelle 7564143f92 Merge branch 'develop' into release-1.5 2017-05-29 20:49:44 +02:00
antelle 14432e519f release date 2017-05-29 20:48:54 +02:00
antelle a3af54cefc translations 2017-05-29 20:47:19 +02:00
antelle c51cf1d9b2 more edge hacks 2017-05-28 21:24:48 +02:00
antelle a39b4e63a1 refactor selfhosted app detection 2017-05-28 17:30:00 +02:00
antelle 928be7b8e4 release notes 2017-05-28 17:10:22 +02:00
antelle 196bb3385b fix #644: plugin gallery load button 2017-05-28 17:03:10 +02:00
antelle 413b643d4b sign files inside desktop updates 2017-05-27 23:25:38 +02:00
antelle 6deab5f022 don't test localStorage on electron 2017-05-27 22:15:49 +02:00
antelle ff6fc99920 hide password auto-fill in Safari 2017-05-27 18:11:38 +02:00
antelle c5f3e75ae5 fixed dropdowns in Edge 2017-05-27 00:15:00 +02:00
antelle 15449602b2 added links to edge hacks 2017-05-26 19:26:21 +02:00
antelle 99ef3f2b43 fix #636: workaround to make clicks work in Edge 14 2017-05-26 19:18:22 +02:00
antelle bacb65b584 fix #641: fixed mac app layout issues with custom titlebar styles 2017-05-26 18:57:45 +02:00
antelle 4634281870 fix #636: broken layout in edge 15 2017-05-25 21:37:04 +02:00
antelle eafc81c938 fix #638: password generator drag issues 2017-05-25 20:24:20 +02:00
antelle 2af53d108b fix plugin version parsing 2017-05-25 19:41:06 +02:00
antelle ce916a5750 removed iml 2017-05-25 09:33:23 +02:00
antelle c827436e32 Merge branch 'master' into develop 2017-05-25 09:16:50 +02:00
antelle 84d8edaed4 Merge branch 'release-1.5' 2017-05-25 08:53:37 +02:00
antelle 2ce3ad9495 bump version 2017-05-25 08:52:58 +02:00
antelle 8c842aaaa1 ignored dev files
(cherry picked from commit f484d34)
2017-05-25 08:50:59 +02:00
antelle f484d345d8 ignored dev files 2017-05-25 08:49:25 +02:00
antelle 8c188637c9 release date 2017-05-25 08:40:14 +02:00
antelle c55571fd87 - fix #633: template ids issues 2017-05-25 08:39:52 +02:00
antelle d66bfb4cab - fix #633: template ids issues 2017-05-24 23:02:19 +02:00
antelle f554295ab4 keeweb-plugin: help; private-key optional argument 2017-05-23 22:13:55 +02:00
antelle 467306295e Merge branch 'master' into develop 2017-05-23 21:36:14 +02:00
antelle daba40e51a Merge branch 'release-1.5' 2017-05-23 21:11:41 +02:00
antelle c07484fb3d translation 2017-05-23 21:11:15 +02:00
antelle 4ce654c9da release date 2017-05-23 21:09:02 +02:00
antelle 7854a4e502 merge develop 2017-05-23 21:07:21 +02:00
antelle 6624051047 Merge branch 'master' into develop 2017-05-23 20:05:16 +02:00
antelle fa4669355c bump version 2017-05-23 20:03:58 +02:00
antelle ea0f612747 plugin manifest fields: versionMin, versionMax, desktop 2017-05-23 20:03:29 +02:00
antelle 997b5f9cb3 Merge pull request #632 from mulles3008/master
Fix typo in release notes
2017-05-23 09:31:02 -07:00
antelle 1810480cf2 fix backups in desktop 2017-05-23 18:30:17 +02:00
Erik Müller 801f69145b Fix typo in release notes 2017-05-23 11:58:00 +02:00
antelle ed7a05eae2 private package 2017-05-22 22:36:18 +02:00
antelle 5f3a8aa661 allow to bump version in keeweb-plugin 2017-05-22 22:32:24 +02:00
antelle 9569716e96 kw.settings.del method 2017-05-22 22:19:42 +02:00
antelle 37110d75cf hide desktop-only plugins 2017-05-22 22:03:22 +02:00
antelle 174c205d7a expose AppModel.instance for plugins 2017-05-22 21:59:01 +02:00
antelle 145aa4bac4 fix #631: unicode characters in Dropbox files 2017-05-22 21:50:28 +02:00
antelle 245662a941 check for WebCrypto during startup 2017-05-21 18:13:07 +02:00
antelle 17b5f7bc5f moved release stats html to keeweb-site 2017-05-21 13:46:34 +02:00
antelle 6626fde49f release stats script 2017-05-21 13:40:47 +02:00
antelle 1461617e62 Merge branch 'develop' into release-1.5 2017-05-21 10:08:55 +02:00
antelle d796dd36e1 fixed mac app signing 2017-05-21 10:00:40 +02:00
antelle dd88eee287 fix dockerfile 2017-05-20 21:08:08 +02:00
antelle 4c4a308f9e Merge branch 'develop' 2017-05-20 20:13:53 +02:00
antelle 0b3e93fdb5 fix deb path 2017-05-20 20:13:18 +02:00
antelle fc2f4ff5e5 bump version 2017-05-20 19:54:48 +02:00
antelle 6749547336 downgrade electron again 2017-05-20 19:47:16 +02:00
antelle 7359c4ee50 languages 2017-05-20 18:55:04 +02:00
antelle 3833ecfc41 downgrage electron to stable version 2017-05-20 18:53:08 +02:00
antelle 970029feb2 up electron 2017-05-20 18:29:22 +02:00
antelle 9c7a8ea7ce theme example 2017-05-20 13:18:06 +02:00
antelle 9b36e4f327 theme example 2017-05-20 13:17:35 +02:00
antelle 2526d64148 enforce theme selector rules 2017-05-20 13:11:31 +02:00
antelle 646550cc4e trim unused css 2017-05-20 12:49:09 +02:00
antelle 8f24cfff11 decrease auto-update timeout 2017-05-20 12:46:48 +02:00
antelle 1e84c48213 auto-updating plugins 2017-05-20 12:46:21 +02:00
antelle 04013a67a4 removed debug code 2017-05-20 11:27:40 +02:00
antelle a219d4254c auto-update plugins checkbox 2017-05-20 11:27:28 +02:00
antelle a65f89e1a9 watch plugins 2017-05-20 09:41:09 +02:00
antelle 11dc8bef67 special A key handling, fixed all inputs 2017-05-19 23:57:49 +02:00
antelle 13519a3d5d fix arrows error 2017-05-19 23:36:31 +02:00
antelle f40cfaffef description 2017-05-19 22:39:22 +02:00
antelle a15491496e update plugin example 2017-05-19 22:17:25 +02:00
antelle a8e6f95dac uncommented code 2017-05-19 22:14:53 +02:00
antelle afe5725f6c removed some code 2017-05-19 22:13:21 +02:00
antelle e4d848c306 manifest 2017-05-19 22:05:57 +02:00
antelle 5bfce6c871 plugin settings 2017-05-19 22:05:35 +02:00
antelle a131d7435c translations 2017-05-18 22:52:13 +02:00
antelle 320c5cb7da removed unused code 2017-05-17 22:45:18 +02:00
antelle 7c7e8f5900 removed utility from libraries 2017-05-17 22:41:12 +02:00
antelle 8c7b4e07b7 languages 2017-05-17 22:15:25 +02:00
antelle 49bfcc6994 fix #628: merge errors 2017-05-17 20:32:46 +02:00
antelle a006b0f5fc plugin link 2017-05-17 20:06:44 +02:00
antelle 78200e6935 removed old code 2017-05-17 19:38:33 +02:00
antelle c0a6a9f4c3 removed obsolete plugin creation cli 2017-05-17 19:37:05 +02:00
antelle f59c4970c9 plugin dev and translation links 2017-05-17 19:25:08 +02:00
antelle d4721664bf translations 2017-05-17 18:50:28 +02:00
antelle 61e6536d02 fancy not supported message 2017-05-16 22:56:52 +02:00
antelle cb0f81840a better plugin install page 2017-05-16 22:28:29 +02:00
antelle 16a90ccf08 removed redundant escape 2017-05-16 21:29:24 +02:00
antelle fa14998d8d fix oauth popups 2017-05-16 21:26:42 +02:00
antelle 7d86e8323c loading plugins from config 2017-05-16 21:26:25 +02:00
antelle d01e06349f don't show backups if there's no suitable provider 2017-05-15 22:27:01 +02:00
antelle 371afa38ff removed mscrypto 2017-05-14 23:30:13 +02:00
antelle aabd460bf5 hide unicode flags on windows 2017-05-14 21:23:49 +02:00
antelle 8072c3f028 fixed styles in edge 2017-05-14 21:17:10 +02:00
antelle 38a6d69dde fix plugin disable 2017-05-14 18:38:35 +02:00
antelle af2de71e5d check plugins public keys 2017-05-14 17:14:21 +02:00
antelle fae40c8c3e more error handling 2017-05-14 17:04:14 +02:00
antelle f1fdfffd5a support plugins in safari 10.1 2017-05-14 16:58:42 +02:00
antelle 05c92b2266 plugin search 2017-05-14 13:13:09 +02:00
antelle 4a99ead4b4 removed old code 2017-05-14 12:04:13 +02:00
antelle 43dc8ff59d refactored similar code 2017-05-14 00:24:06 +02:00
antelle 930596f243 hide installed plugins 2017-05-13 23:57:09 +02:00
antelle 70dc9a64ce plugin styles 2017-05-13 22:57:06 +02:00
antelle 14755294b2 plugin install progress button 2017-05-13 22:53:45 +02:00
antelle f602f64c66 fix eslint 2017-05-13 22:36:49 +02:00
antelle 4664979e8d plugin gallery 2017-05-13 22:36:07 +02:00
antelle 6d8afb678e plugins in docker 2017-05-13 14:12:12 +02:00
antelle 9275c7802e print plugin update date 2017-05-13 14:00:03 +02:00
antelle 4bf147c939 fix noscript message 2017-05-13 13:38:34 +02:00
antelle 0072e5d55f readme 2017-05-13 11:48:04 +02:00
antelle b027c9d658 fix link 2017-05-13 11:17:49 +02:00
antelle 62e3e551d3 fix #619: deb-ia32 2017-05-12 20:58:53 +02:00
antelle 34a4a0cbf7 fix #623: release hashes 2017-05-12 20:37:27 +02:00
antelle 06dcfcb2cb fix donation link 2017-05-12 18:43:04 +02:00
antelle 919df8f4e6 fix #559: show all entries on auto-type 2017-05-07 19:46:41 +02:00
antelle fac7c41275 fix 559: show all entries on auto-type 2017-05-07 19:45:53 +02:00
antelle 0fadcf564a fix #527: error syncing file from filesystem to gdrive 2017-05-07 19:05:29 +02:00
antelle 947a9f867a fix #545: auto-type error on windows 2017-05-06 20:21:20 +02:00
antelle 7ef2dba018 fix #582: auto-type custom fields with spaces 2017-05-06 19:28:22 +02:00
antelle 3978f3c11d fix copy languages 2017-05-06 14:53:32 +02:00
antelle 158dba9df2 user-friendly message 2017-05-05 23:23:42 +02:00
antelle 56a07ad0e7 open plugins from languages 2017-05-05 20:41:45 +02:00
antelle 9f87d8fe49 fix 2017-05-05 20:27:52 +02:00
antelle 68a07855de top locales: de, fr 2017-05-05 20:27:06 +02:00
antelle 3662a67de3 entry templates fields 2017-05-03 21:21:29 +02:00
antelle 6930b23ad9 create entry templates 2017-05-03 20:44:16 +02:00
antelle a4cdb37594 fix button styles 2017-05-02 21:27:07 +02:00
antelle 0bb7602bf8 fix #112: entry templates 2017-05-02 21:22:08 +02:00
antelle 5f2eea2c29 better config error handling 2017-05-01 21:19:43 +02:00
antelle 1195408b1d button in settings 2017-04-29 18:57:18 +02:00
antelle c4a348f8e0 removed color 2017-04-29 16:23:01 +02:00
antelle 4a6ec85ab5 fix plugin install 2017-04-27 23:49:32 +02:00
antelle 4a994f26e4 fix #196: sign mac app 2017-04-27 21:28:28 +02:00
antelle fd96ecfd43 plugins page 2017-04-27 14:50:36 +02:00
antelle df02408d42 plugin example 2017-04-27 12:11:26 +02:00
antelle c4adde0560 set css plugin theme properties 2017-04-27 12:02:41 +02:00
antelle a9e51b75ee fix plugin install 2017-04-27 10:24:36 +02:00
antelle afe0dabc5c removed form-box-shadow-color from theme variables 2017-04-27 09:47:28 +02:00
antelle 995f13c60f extracted theme vars scss 2017-04-27 09:40:18 +02:00
antelle 1618ff0109 removed extra variable 2017-04-27 08:12:32 +02:00
antelle 0a873ac9c8 fix window style setting 2017-04-26 22:38:01 +02:00
antelle 7327487cfd fix transparent color name 2017-04-26 22:25:48 +02:00
antelle 10d2ef808f fix transparent color name 2017-04-26 22:24:48 +02:00
antelle d6bda901c1 fix transparent color name 2017-04-26 22:24:08 +02:00
antelle 499cd675a0 bugfixes; plugin sorting 2017-04-26 22:12:41 +02:00
antelle f8bfa8b7db fix jshint 2017-04-26 22:07:48 +02:00
antelle 4433654686 fix #609: enable/disable plugins 2017-04-26 22:06:07 +02:00
antelle 8cf469e55c update theme example 2017-04-26 21:05:26 +02:00
antelle 09a7ee1642 removed old file 2017-04-24 23:54:00 +02:00
antelle 354ebe626b theming with css variables 2017-04-24 23:52:48 +02:00
antelle 9067eee63b fix 2017-04-18 19:32:01 +02:00
antelle 9f21842a68 variables for url parts 2017-04-18 19:24:17 +02:00
antelle ef44bd95d7 fix #602: treat www, wwws and secure as the same domain 2017-04-18 19:05:27 +02:00
antelle dadc8160f7 fix #600: added dep dependency 2017-04-17 10:12:00 +02:00
antelle e210e42e63 wording 2017-04-16 21:30:18 +02:00
antelle 28781dabff example config 2017-04-16 21:29:26 +02:00
antelle b452c9c837 fix #514: save to WebDAV with PUT 2017-04-16 21:23:18 +02:00
antelle 9e16a8dac3 remove unused code 2017-04-16 21:09:17 +02:00
antelle e1d798917f use flexbox without vendor-prefixes 2017-04-16 18:37:16 +02:00
antelle 85d4f9797d fix #298: support cloud storages in iOS homescreen apps 2017-04-16 18:05:58 +02:00
antelle 312545cf08 removed unused code 2017-04-16 17:24:58 +02:00
antelle 8cac1b8cdd Dropbox V2 API endpoints 2017-04-16 17:00:35 +02:00
antelle 8ee596b067 fix mobile bugs 2017-04-16 12:15:53 +02:00
antelle 0c42629f32 fix clicks 2017-04-16 11:57:25 +02:00
antelle b771170144 fix clicks on labels 2017-04-16 11:56:06 +02:00
antelle a45ec36d21 fix mobile tips 2017-04-16 11:53:14 +02:00
antelle aa7a7415df hide copy tip on edit 2017-04-16 10:19:46 +02:00
antelle 6fb745bbc3 metter mobile buttons 2017-04-16 10:05:55 +02:00
antelle fe47201643 prevent buttons select 2017-04-16 09:19:11 +02:00
antelle 67520a35ba fix #583: reduced mobile footer icons density 2017-04-16 00:01:07 +02:00
antelle 769ba1c12b mobile field editing improvements 2017-04-15 23:26:52 +02:00
antelle 9c0528e711 log strings 2017-04-15 20:34:58 +02:00
antelle c2660c318b better log view 2017-04-15 20:32:43 +02:00
antelle 88ad83ac37 load webassembly in web worker 2017-04-15 20:14:57 +02:00
antelle c94cacb14c removed support of devices without clipboard api 2017-04-15 16:57:37 +02:00
antelle 539f60ef5d fix #598: up wasm version 2017-04-15 00:35:24 +02:00
antelle 04f2548a22 Merge branch 'alex-shpak-cordova' into develop 2017-04-14 23:22:33 +02:00
antelle 55eb63d651 Merge branch 'cordova' of https://github.com/alex-shpak/keeweb into alex-shpak-cordova 2017-04-14 22:17:25 +02:00
Alex Shpak 945a902071 Fixed some PR comments 2017-04-12 00:06:44 +02:00
antelle 4ee3bb4e23 removed all translations 2017-04-11 18:58:44 +02:00
antelle 17aafef1b8 Merge branch 'lawrencium-lock-after-auto-type' into develop 2017-04-11 18:46:00 +02:00
antelle 294e333120 fix ignore 2017-04-11 18:43:55 +02:00
antelle 87549c0d13 Merge branch 'lock-after-auto-type' of https://github.com/lawrencium/keeweb into lawrencium-lock-after-auto-type 2017-04-11 18:41:03 +02:00
lawrencium b7507b8cd6 remove event listener on 'hide' 2017-04-10 23:16:12 -07:00
lawrencium 2236f7f73d remove event listener for 'hide' 2017-04-10 23:14:58 -07:00
lawrencium db7b7dc83b removed log statement 2017-04-10 23:12:52 -07:00
lawrencium 6f12efe84b removed event listener for 'hide' 2017-04-10 18:27:03 -07:00
Alex Shpak 12603ff2ab Removing duplicate joinPath 2017-04-11 01:34:59 +02:00
Alex Shpak 17c0bd7b25 Fix file chooser error message 2017-04-11 01:03:31 +02:00
Alex Shpak 03302428e7 Removed mobiel css 2017-04-11 01:03:31 +02:00
Alex Shpak 1b6ecd1e70 Cordova launcher formatting 2017-04-11 01:03:31 +02:00
Alex Shpak ad246ba180 Fixed aligned launcher methods 2017-04-11 01:03:31 +02:00
Alex Shpak c799574aee Remove cloud drives from cordova 2017-04-11 01:03:31 +02:00
Alex Shpak 0e2b1386ec Implementing mkdir and other improvements 2017-04-11 01:03:31 +02:00
Alex Shpak ac723b7ef5 Added cordova calls 2017-04-11 01:03:31 +02:00
Alex Shpak 159d08d6c2 added fingerprint hooks 2017-04-11 01:03:31 +02:00
antelle 0820394e50 fix plugin url 2017-04-10 20:51:31 +02:00
lawrencium 1ffdf2b438 code changes per @antelle's review 2017-04-09 01:31:05 -07:00
antelle 3db55f7657 fixed plugin update errors 2017-04-09 09:32:05 +02:00
antelle f51dcddfee Merge pull request #591 from lawrencium/keeweb-helper-not-found
KeeWeb helper not found
2017-04-09 00:09:05 -07:00
lawrencium fe7ccf93d6 have statFileSync() return something since the caller checks the file stats 2017-04-08 16:10:53 -07:00
lawrencium b0288b8815 added option to auto-lock database after an auto-type action is performed 2017-04-08 15:53:12 -07:00
antelle c084746b3e updating plugins 2017-04-08 23:35:26 +02:00
antelle 782488f8fa removed 'use script' 2017-04-08 18:31:38 +02:00
antelle 70cbcb5c36 desktop plugins 2017-04-08 17:34:27 +02:00
antelle d57d6a6ff2 removed update warning 2017-03-29 20:16:58 +02:00
antelle 3766a0e1b5 Merge branch 'master' into develop 2017-03-29 20:11:00 +02:00
antelle 4fb7f9a0f8 cleanup readme 2017-03-29 20:10:30 +02:00
antelle 09d634c462 Merge branch 'EnricoMonese-lock-on-hide' into develop 2017-03-28 20:19:38 +02:00
antelle cf88eb448f Merge branch 'lock-on-hide' of https://github.com/EnricoMonese/keeweb into EnricoMonese-lock-on-hide
# Conflicts:
#	desktop/app.js
2017-03-28 20:15:28 +02:00
antelle c8fa6a7ac5 Merge branch 'EnricoMonese-ui' into develop 2017-03-28 20:08:14 +02:00
antelle 2b7e007199 Merge branch 'ui' of https://github.com/EnricoMonese/keeweb into EnricoMonese-ui 2017-03-28 19:28:11 +02:00
Enrico Monese c3156b8a5f Emit 'launcher-minimize' event on 'hide' too 2017-03-28 19:19:35 +02:00
Enrico Monese eac53175bf Reduce menu padding transition duration 2017-03-28 18:43:25 +02:00
Enrico Monese 956b105128 Basic 'no file' error catching 2017-03-28 18:19:39 +02:00
Enrico Monese a0ca1238f3 Add transition to menu top padding 2017-03-28 18:17:43 +02:00
Enrico Monese cc250b441b Add missing parenthesis to supportsTitleBarStyle function call 2017-03-26 17:02:30 +02:00
Enrico Monese aec6129041 Move platform check to FeatureDetector 2017-03-26 16:46:26 +02:00
Enrico Monese ff65ef6cc6 Only display titlebar style setting on macOS 2017-03-26 16:36:07 +02:00
Enrico Monese 978c9e06ce Change draggable regions depending on titlebar style 2017-03-26 16:14:28 +02:00
Enrico Monese 79452441ca Correct layout when entering and leaving fullscreen 2017-03-26 15:24:14 +02:00
Enrico Monese eda7ebf6ae Make titlebarStyle const 2017-03-26 15:23:28 +02:00
Enrico Monese 6d622ff2c2 Fix titlebar-style-hidden padding amount 2017-03-26 15:22:29 +02:00
antelle f0f0738576 merge master 2017-03-26 12:31:53 +02:00
antelle df218aeb98 Merge branch 'release-1.4' 2017-03-26 11:27:21 +02:00
antelle 46209ecd2b bump version 2017-03-26 11:26:32 +02:00
antelle 5c00c4437e release date 2017-03-26 11:18:16 +02:00
antelle 9c9fa149ff fix #555: keyfile selection issue
(cherry picked from commit 55c224d)
2017-03-26 11:17:29 +02:00
antelle 55c224dff6 fix #555: keyfile selection issue 2017-03-26 11:15:36 +02:00
antelle f573c205f7 fix #544: read files with empty binaries
(cherry picked from commit cbe9d0e)
2017-03-26 10:57:15 +02:00
Enrico Monese 165efc1192 Fix menu layout for title styles 2017-03-26 03:42:21 +02:00
Enrico Monese 7330d87b6b Move up titlebar style setting 2017-03-26 01:59:26 +01:00
Enrico Monese 91286fd7a9 Finalize titlebar style setting 2017-03-26 01:57:52 +01:00
Enrico Monese b4a5b24ef2 Add dropdown for titlebar style in general settings 2017-03-25 21:31:12 +01:00
Enrico Monese 632f0ca31f Fix webkit drag area preventing some other dragging functionality 2017-03-25 18:58:33 +01:00
Enrico Monese d8c522fadd Fix layout to not overlap with inset title bar 2017-03-25 18:57:03 +01:00
Enrico Monese bab63f8093 Title bar style inset 2017-03-25 18:55:05 +01:00
Enrico Monese 08d46b1bef Make window draggable everywhere
Make window draggable everywhere with -webkit-app-region:drag
2017-03-25 16:48:14 +01:00
antelle 046a78e32b fix #552: update google drive icon 2017-03-06 20:57:42 +01:00
antelle cbe9d0e691 fix #544: read files with empty binaries 2017-02-27 23:54:31 +01:00
antelle 8a14d0f4e9 wiki page link 2017-02-27 20:47:15 +01:00
antelle cb76fce2a2 project status info 2017-02-24 23:42:46 +01:00
antelle d7efdadea4 update signature 2017-02-21 22:13:59 +01:00
antelle a8f162b67e warning 2017-02-21 22:10:49 +01:00
antelle e459b8ef7b theme plugins 2017-02-21 22:05:18 +01:00
antelle 0c155c1e6a pluggable storage example 2017-02-21 21:20:43 +01:00
antelle 06e2491248 fixed storage-file error handling 2017-02-21 20:02:39 +01:00
antelle 7f9a6a31b7 fixed storage-file-cache logging and callbacks 2017-02-21 19:55:50 +01:00
antelle a102a5877c fixed callback consistency in mdkir 2017-02-21 19:44:45 +01:00
antelle adcf3c5377 Merge branch 'alex-shpak-develop' into develop 2017-02-20 23:39:13 +01:00
antelle 1438ae5642 Merge branch 'alex-shpak-develop' into develop 2017-02-20 23:38:52 +01:00
antelle 5082fbf5fc prevent plugin caching 2017-02-19 20:38:53 +01:00
antelle 04cd5c7456 fix locale plugins uninstall 2017-02-19 20:35:06 +01:00
antelle 14a045bf2a startup time logging 2017-02-19 20:19:03 +01:00
antelle 8e36237d2f removed extra logging line 2017-02-19 20:09:09 +01:00
antelle f5f41e3694 renamed package 2017-02-19 20:00:37 +01:00
antelle bd37bbb3c9 keeweb-plugin package 2017-02-19 19:58:06 +01:00
antelle b78457f356 plugin load times display 2017-02-19 19:30:59 +01:00
antelle 1ee89da0b5 fix plugin uninstall 2017-02-19 19:14:09 +01:00
antelle 35d74033fd loading saved plugins 2017-02-19 18:51:52 +01:00
antelle 664e7c50ae fixed plugin installation error 2017-02-19 15:57:41 +01:00
antelle 6dfcfdc9d4 deps info 2017-02-19 12:50:59 +01:00
antelle 9c30035381 plugin management page 2017-02-19 12:40:21 +01:00
antelle 624a1c10c7 locale plugins 2017-02-19 10:29:18 +01:00
antelle 0191b84c92 make eslint happy 2017-02-18 23:57:00 +01:00
antelle 20cc765fb5 plugins first implementation 2017-02-18 23:46:59 +01:00
antelle 07c8150c2c fix #482: auto-type with empty text fields 2017-02-16 23:14:54 +01:00
antelle 8b4d0636d3 locales: sv-SE 2017-02-15 19:11:48 +01:00
antelle 86b068f3c6 lint translations 2017-02-14 20:29:37 +01:00
Alex Shpak cd2f53b525 Fixed callbacks in mkdir and initFs 2017-02-11 23:59:26 +01:00
Alex Shpak bda4cbf2ad Merge branch 'upstream/develop' into develop
# Conflicts:
#	app/scripts/app.js
2017-02-11 23:06:03 +01:00
antelle 0003562085 showOnlyFilesFromConfig config option 2017-02-07 19:17:34 +01:00
Alex Shpak 0ea8b00cd7 Fixed electron ready method. wait for jQuery 2017-02-06 01:23:45 +01:00
Alex Shpak f127be3799 Implementing async mkdir 2017-02-05 23:34:37 +01:00
Alex Shpak 542db7fd0d Refactor settiing stores to work with promises, wait untill all loaded before showing the app 2017-02-05 21:28:43 +01:00
antelle ac1b4da549 kw.require now provides access to modules 2017-02-05 20:39:38 +01:00
Alex Shpak b04cd843dc Remove auto-loading from settings 2017-02-05 20:28:17 +01:00
antelle 5c6e5a42e1 fix eslint 2017-02-05 19:49:08 +01:00
antelle 29824986b8 removed old code 2017-02-05 19:46:25 +01:00
antelle 8550a2fc64 removed version upgrade warning 2017-02-05 16:15:14 +01:00
Alex Shpak cba2fddfa6 Fixed launcher to have ready method 2017-02-05 15:19:45 +01:00
antelle acbb36fc46 fix #473: entry auto-type context menu 2017-02-05 15:16:40 +01:00
Alex Shpak db701754b0 Move launcher to launcher-electron 2017-02-05 15:15:24 +01:00
antelle c6d6e4eeb8 fixed chrome input height 2017-02-05 15:05:45 +01:00
antelle 58c8038e5b fix #504: keyboard-accessible autocomplete 2017-02-05 14:33:32 +01:00
antelle 048d22775f rollback bourbon 2017-02-05 14:23:22 +01:00
antelle e2db39dcd1 moved settings field 2017-02-05 13:35:38 +01:00
antelle 60b0d68516 fix #428: cacheConfigSettings config option 2017-02-05 13:33:23 +01:00
antelle eee4ff2130 up deps 2017-02-05 13:21:42 +01:00
antelle dd0e69c094 eslint rule 2017-02-05 13:11:24 +01:00
antelle 1900324880 fixed launcher file methods 2017-02-05 11:49:22 +01:00
antelle b8c400185b some bugfixes 2017-02-05 11:08:26 +01:00
antelle 6ddee52d57 Merge branch 'develop' of https://github.com/alex-shpak/keeweb into alex-shpak-develop 2017-02-05 09:03:56 +01:00
antelle 41c40bc86e fix #506: auto-type for empty window title 2017-02-05 08:54:01 +01:00
Alex Shpak 783e94c6ad Fixing fileinfo refresh 2017-02-05 02:16:52 +01:00
Alex Shpak 7f22893bb6 Fixed storages, comment android launcher for now 2017-02-05 01:35:57 +01:00
Alex Shpak 1f752ffbdd Remove unnecesary fsWatcher check 2017-02-05 01:12:01 +01:00
Alex Shpak 9573ca8440 Removed console.log 2017-02-05 00:47:38 +01:00
Alex Shpak 36f0c59fec Merge branch 'udevelop' into develop 2017-02-05 00:43:47 +01:00
Alex Shpak 30a31aa8b1 Fixing async settings store 2017-02-05 00:30:29 +01:00
antelle 7cd93c0b6b webdav paths 2017-02-04 23:51:17 +01:00
antelle b24d49dd93 file path hint in recent files list 2017-02-04 23:48:27 +01:00
antelle 2ecf4b0e3c use themes translation 2017-02-04 23:21:08 +01:00
Alex Shpak a9d3b08c49 Finished with async settings store,
Removed cloud drives from cordova
2017-02-04 19:31:26 +01:00
antelle fcb93f6df8 2017 2017-02-04 17:30:39 +01:00
antelle c651343f80 release notes 2017-02-04 15:55:17 +01:00
antelle b5f714cc4d release date 2017-02-04 15:47:37 +01:00
antelle dc5d542c39 Merge branch 'develop' 2017-02-04 15:44:26 +01:00
antelle d0f06bab3b bump version 2017-02-04 15:41:05 +01:00
antelle 0c6d31331e fix script 2017-02-04 15:39:39 +01:00
Alex Shpak b35edd8c9c Added separate html file for cordova apps 2017-02-04 15:31:21 +01:00
antelle 1164e9aa3f update warning 2017-02-04 15:27:39 +01:00
antelle 354220383d fixed alert translations 2017-02-04 15:05:50 +01:00
Alex Shpak 3f15c4a6b8 Added callbacks to settings store 2017-02-04 14:17:34 +01:00
antelle 349fca7643 argon2-wasm 2017-02-04 14:17:33 +01:00
antelle 9275d74b2b fix desktop build 2017-02-03 23:01:49 +01:00
Alex Shpak ab243dda4d Fixed eslint 2017-02-03 00:48:20 +01:00
antelle da1c4fd4f3 don't shorten locale 2017-02-02 21:49:27 +01:00
antelle cd037f8e86 up translations 2017-02-02 21:35:02 +01:00
antelle a086a2f0e4 migrate settings locale 2017-02-01 23:46:23 +01:00
antelle c85b2c75f7 fixed loading locale on startup 2017-02-01 22:27:08 +01:00
Alex Shpak 017c03a4e0 Fix formatting 2017-02-01 10:28:14 +01:00
Alex Shpak b8f027dad4 Change launcher to callbacks style 2017-02-01 02:37:43 +01:00
Alex Shpak 220f058885 Merge remote-tracking branch 'upstream/develop' into develop
# Conflicts:
#	app/scripts/app.js
#	app/scripts/auto-type/auto-type-emitter-factory.js
#	app/scripts/auto-type/auto-type-helper-factory.js
#	app/scripts/comp/launcher.js
2017-01-31 23:40:48 +01:00
antelle ab46c0d08b argon2 kdf settings editor 2017-01-31 23:18:58 +01:00
Alex Shpak 5624c5472a Refactor app and launcher to support cordova apps 2017-01-31 23:09:35 +01:00
antelle a77f61cc5d var => let 2017-01-31 07:50:28 +01:00
antelle 4ed8da4d2f output kdf params 2017-01-30 23:21:07 +01:00
antelle a14b322752 removed unused module 2017-01-30 23:02:24 +01:00
antelle dc3d1445fe webpack2 2017-01-30 22:55:26 +01:00
antelle 334b50b074 kdbx4 2017-01-30 21:26:31 +01:00
antelle a8290d8199 up kdbxweb 2017-01-29 23:30:18 +01:00
antelle 6ce1789953 switch to new kdbx api 2017-01-29 23:28:04 +01:00
antelle fd8028e752 more careful minimize check 2017-01-29 20:21:07 +01:00
antelle 10fde76499 fix #389: minimize instead of close, after changes are saved 2017-01-29 20:19:45 +01:00
antelle a862919824 fix #413: default entry group selection 2017-01-29 19:34:47 +01:00
antelle 2923fbd846 fix #377: auto-type filtering issues 2017-01-29 19:03:38 +01:00
antelle 1db38c595d fix #385: auto-type flag 2017-01-29 18:37:23 +01:00
antelle 989a914600 fix #382: backup error on windows 2017-01-29 08:48:18 -08:00
antelle a8cc4581f7 fix #444: url display 2017-01-29 13:04:49 +01:00
antelle 60e59da94d fix #432: drag-drop in vivaldi 2017-01-29 12:54:19 +01:00
antelle de1dc22fd2 fix #429: option to disable latest file removal 2017-01-29 12:03:33 +01:00
antelle b340b21b5c fix #409: text fields context menu on desktop 2017-01-29 11:53:09 +01:00
antelle 19b3a16c5f fix #408: auto-lock in 12 hours or day 2017-01-29 11:35:07 +01:00
antelle 9eaf5be988 fix #388: minimize hotkey on mac 2017-01-29 11:29:21 +01:00
antelle ac983a2dc0 skip localhost warning 2017-01-29 11:24:41 +01:00
antelle 74170f9094 skip https warning on launcher 2017-01-29 11:22:05 +01:00
antelle 4b8e011217 pull request notes 2017-01-29 11:04:55 +01:00
antelle 9a715a7f19 languages 2017-01-29 10:53:43 +01:00
antelle 25bdf6f3c0 translation download script 2017-01-29 10:53:36 +01:00
antelle a832768668 use browser language as default locale 2017-01-29 10:04:18 +01:00
antelle cff110fde5 fixed default settings 2017-01-29 09:44:17 +01:00
antelle c028f419de settings cleanup 2017-01-28 23:36:30 +01:00
antelle cebf1e95d6 Merge branch 'settings-remember-key-files-path' of https://github.com/arantir/keeweb into arantir-settings-remember-key-files-path 2017-01-28 23:31:01 +01:00
antelle 89463345bb Merge branch 'jaden-self_hosted_google_drive_instructions' into develop 2017-01-28 23:28:14 +01:00
antelle 3b8858af39 Merge branch 'etienne-martin-master' into develop 2017-01-28 23:25:09 +01:00
antelle 604eefa21c Merge branch 'master' of https://github.com/etienne-martin/keeweb into etienne-martin-master 2017-01-28 23:19:21 +01:00
antelle a29688c1a5 Merge branch 'cema-sp-master' into develop 2017-01-28 23:16:41 +01:00
antelle 2602a50b80 up deps 2017-01-28 23:13:39 +01:00
Etienne Martin c2b30c238c New dark theme (Terminal) 2017-01-26 19:52:53 -05:00
Dan Hersam ae8c1ab9df Add instructions for self-hosted Google Drive.
Also fixed typo (heed --> need)
2017-01-05 18:45:11 -05:00
Semyon Pisarev 71c5c7ad40 Fix issue #431 2016-12-26 12:51:59 +03:00
arantir c2d4037c24 Added a setting to store key files path only 2016-12-11 15:39:59 +02:00
antelle 3e01a8eaa2 fix generator in fields 2016-12-05 13:18:07 +03:00
antelle 2416b5fb44 fix #458: improved phonetic.js password generator 2016-12-04 08:43:57 +03:00
dmitriy.vitkovskiy f5b75dd874 Merge branch 'master' into develop 2016-11-19 20:33:12 +03:00
antelle 5479947e52 Merge pull request #439 from TimStallard/webdav_dest_fix
Fixed WebDav save destination
2016-11-14 00:52:00 +03:00
Tim Stallard c89ba02466 Modified WebDav save destination to work correctly with relative and root paths, removing any URL paramaters 2016-11-13 21:39:05 +00:00
antelle 81bf2b0191 Merge pull request #437 from RhysBower/develop
Remove extra charset setting in EditorConfig.
2016-11-13 23:57:13 +03:00
Rhys Bower 134bafe18a Remove extra charset setting in EditorConfig. 2016-11-13 12:26:50 -08:00
antelle 78d5f420fe shrinkwrap 2016-09-23 22:12:18 +03:00
antelle 1df47d11ec webpack stats 2016-09-23 22:12:02 +03:00
antelle 0c0d9c41b3 fix #379: locale example config 2016-09-21 21:16:04 +03:00
antelle a40324cbc2 formatting 2016-09-21 19:44:41 +03:00
antelle a00e955bdb fix config loading 2016-09-21 19:44:32 +03:00
antelle 7ba47860cc Merge branch 'master' into develop 2016-09-21 00:10:53 +03:00
antelle 52701af6d6 Merge branch 'release-1.3' 2016-09-20 23:46:26 +03:00
antelle d5be964a47 bump version 2016-09-20 23:45:56 +03:00
antelle 9bd47d7468 jshint 2016-09-20 23:32:48 +03:00
antelle 7876d32237 jshint 2016-09-20 23:31:37 +03:00
antelle 1e3e351dd8 fix #376: init storages when config is read 2016-09-20 23:30:36 +03:00
antelle 8f6e0430cf fix #376: init storages when config is read 2016-09-20 23:30:19 +03:00
antelle ed7e0a6222 removed test code 2016-09-20 23:06:20 +03:00
antelle b6ca699ec3 fix #371: decode protected titles and urls 2016-09-20 23:06:01 +03:00
antelle 0812f84334 removed test code 2016-09-19 20:32:18 +03:00
antelle a76b5aa2b7 fix #371: decode protected titles and urls 2016-09-19 20:31:52 +03:00
antelle 9379ee3d44 fix #372: hide generator on lock 2016-09-19 20:05:23 +03:00
antelle 3d47be0638 it locale 2016-09-19 19:30:17 +03:00
antelle 6d207143ff it locale 2016-09-19 19:30:07 +03:00
antelle 5e58ed348c wording 2016-09-19 00:07:20 +03:00
antelle 0a0c2e48a6 fix protected value in url 2016-09-19 00:06:14 +03:00
antelle 76d0db15b9 separate license 2016-09-19 00:06:08 +03:00
antelle d141c1091f wording 2016-09-19 00:05:21 +03:00
antelle 1fa8759fdb replaced ie icon with edge 2016-09-18 22:29:03 +03:00
antelle 98fe206a8f fix protected value in url 2016-09-18 21:18:14 +03:00
antelle 656b1e38da separate license 2016-09-18 20:59:17 +03:00
antelle cc16733cab fix #370: donation link 2016-09-18 20:48:33 +03:00
antelle b4702908f9 fix #370: donation link 2016-09-18 19:52:09 +03:00
antelle dc88b5ca06 fix dep 2016-09-18 14:06:07 +03:00
antelle ab45e2f388 downgrade failing package 2016-09-18 14:05:20 +03:00
antelle b23d9e7d71 up deps 2016-09-18 14:01:22 +03:00
antelle 13ae47dd8c improved dev-server 2016-09-18 13:30:09 +03:00
antelle c2cca3e487 allow password copy on mobile Safari 2016-09-18 11:33:17 +03:00
antelle 1624c4a916 jshint 2016-09-18 09:52:30 +03:00
antelle 47d1ac41a8 release notes 2016-09-18 09:45:19 +03:00
antelle 259396208a pl, pt 2016-09-18 09:44:49 +03:00
antelle d54b137f26 fr-fr 2016-09-18 09:44:40 +03:00
antelle e0799a3488 fix #369: removed additional webdav request 2016-09-18 09:41:50 +03:00
antelle 4c254a67ed jshint 2016-09-18 09:13:26 +03:00
antelle c8ba1ce900 pl, pt 2016-09-18 09:12:15 +03:00
antelle 9a259081e6 warning about several tabs 2016-09-16 20:33:38 +03:00
antelle b29e30cb1a fix #368: desktop file save error 2016-09-16 19:27:58 +03:00
antelle c2ff1686b4 allow copy char ranges in generator presets 2016-09-14 21:06:26 +03:00
antelle fb8398381c generator length range improved 2016-09-14 21:04:37 +03:00
antelle c521dd27cc allow password copy on mobile Safari 2016-09-14 08:16:43 +03:00
antelle 999101fac9 Merge branch 'master' into develop 2016-09-13 23:47:40 +03:00
antelle fb3b74149c Merge branch 'release-1.3' 2016-09-13 23:14:14 +03:00
antelle f450a1e6b5 bump version 2016-09-13 23:13:57 +03:00
antelle ec1d3d9389 up t 2016-09-13 08:28:41 +03:00
antelle 8ee020d471 release notes 2016-09-12 22:57:19 +03:00
antelle 48f3445be2 fix #342: edge url detection 2016-09-12 22:56:39 +03:00
antelle f7d78bc9d7 fix #357: linux auto-type issues 2016-09-12 22:45:16 +03:00
antelle a17143164c fix #363: drag-drop in Firefox 2016-09-12 22:16:14 +03:00
antelle b62a0e79b6 removed tricky options 2016-09-11 21:56:44 +03:00
antelle d07de9c098 fix #344: prevent caching WebDAV requests 2016-09-11 21:40:34 +03:00
antelle d74bc86b29 fix #351: error alert on power shutdown 2016-09-07 19:48:08 +03:00
antelle bba0734a81 fix #343: blur input on window blur 2016-09-05 22:15:16 +03:00
antelle f79cba14f9 release notes 2016-09-05 22:15:16 +03:00
antelle 7df6d9d783 fix #342: edge url detection 2016-09-05 21:36:34 +03:00
antelle 201b7e511f fr-fr 2016-09-05 00:51:34 +03:00
antelle 289a463c3f translate advanced search options 2016-09-05 00:51:01 +03:00
antelle a0a1ff00ad fix #341: shortcuts in text fields 2016-09-04 10:26:54 +03:00
antelle e59b59b5f6 Merge branch 'master' into develop 2016-09-04 10:26:20 +03:00
antelle 234333d97a Merge branch 'release-1.3' 2016-09-02 19:42:26 +03:00
antelle b65f71da5e bump version 2016-09-02 19:40:38 +03:00
antelle 50139c39d6 fix #337: storage sync error 2016-09-02 19:39:58 +03:00
antelle 7040d8ade6 Merge branch 'develop' 2016-09-01 21:13:00 +03:00
antelle ea5a990a49 release notes 2016-09-01 21:12:09 +03:00
antelle 94e4b6f356 validation 2016-09-01 21:08:53 +03:00
antelle 8d4cdd9d59 check helper permissions 2016-09-01 21:08:47 +03:00
antelle ea8e8ec106 fix update archive 2016-09-01 21:08:35 +03:00
antelle 3e30e014da include helper in desktop update 2016-09-01 20:24:11 +03:00
antelle 0670ad00e5 mark keytar as optional 2016-09-01 08:02:36 +03:00
antelle a76723ec9a Merge branch 'izissise-develop' into develop 2016-08-29 20:43:21 +03:00
Hugues Morisset b7a89bdf47 Check if the otpValue is valid without space
Some website (google) give you the key separated with spaces
2016-08-28 12:09:00 +02:00
antelle 44eab6c313 jshint 2016-08-25 19:45:01 +03:00
antelle 2278d2b1d3 order 2016-08-25 19:39:42 +03:00
antelle 713aa03b4b localize list dropdowns 2016-08-25 19:30:22 +03:00
antelle c53dd73601 fix #330: prevent cmd-L only when there are open files 2016-08-25 19:18:27 +03:00
antelle 480631cfbf removed country 2016-08-25 00:25:49 +03:00
antelle 6476f9a8c1 use native locale name 2016-08-25 00:12:09 +03:00
antelle d041c02985 up de 2016-08-25 00:07:32 +03:00
antelle abdaa0b99c fix tags locale 2016-08-25 00:05:08 +03:00
antelle 413bee8530 update visible views on locale change 2016-08-24 23:06:25 +03:00
antelle d8d68c06db update details 2016-08-24 22:30:43 +03:00
antelle 7546551d70 jshint 2016-08-24 22:19:41 +03:00
antelle 352fc29ec9 german locale 2016-08-24 22:18:25 +03:00
antelle 427c57cfc6 apply locale to menu 2016-08-24 22:18:18 +03:00
antelle 06fb55c6d3 fix #327: auto-type auto-selected entry after unlock 2016-08-24 19:19:59 +03:00
antelle 4dfcc89988 cleanup locale 2016-08-23 23:20:13 +03:00
antelle eca1179192 allow app screenshots 2016-08-23 22:16:14 +03:00
antelle 4eeba9151b fix #315: loading keyfiles with bom 2016-08-23 19:47:44 +03:00
antelle 13ef62178a Merge branch 'master' into develop 2016-08-22 22:33:38 +03:00
antelle 420ab06cb8 translation note 2016-08-22 22:33:23 +03:00
antelle 749b417e93 import locale 2016-08-22 21:51:52 +03:00
antelle 00570c0461 rename locale file 2016-08-22 21:38:38 +03:00
antelle 6a5482c73f remove empty locale 2016-08-22 20:21:32 +03:00
antelle da12fb9909 translation link 2016-08-22 20:20:16 +03:00
antelle 67b8e43cbc cleanup locale 2016-08-22 19:58:14 +03:00
antelle 9582117e4a move locale to json 2016-08-22 19:51:44 +03:00
antelle e4c6315219 fix #324: save field on cmd-s 2016-08-22 19:41:40 +03:00
antelle ba9c8fa2a9 eslint 2016-08-22 00:14:26 +03:00
antelle 3332914a0f locale support 2016-08-22 00:12:49 +03:00
antelle 8c5f5cd73e readable links 2016-08-21 21:49:00 +03:00
antelle 6fe7d129b1 fix #247: data loss on exit with focused field 2016-08-21 21:38:18 +03:00
antelle 3c5392a072 config example 2016-08-21 21:24:34 +03:00
antelle 7eef501d88 fix #292: option to disable open, new and demo buttons 2016-08-21 21:23:09 +03:00
antelle 701c296ba7 fix #313: copy entries 2016-08-21 20:39:02 +03:00
antelle 9b97c248b1 release notes 2016-08-21 19:59:46 +03:00
antelle 603a7ab66a scheduled backups 2016-08-21 19:46:44 +03:00
antelle c12fa8ffdb backup to file 2016-08-21 19:07:59 +03:00
antelle 24d18cd296 backupFile 2016-08-21 18:43:59 +03:00
antelle 26fad0c5fa up kdbxweb 2016-08-21 11:20:12 +03:00
antelle ece562c343 allow backup to self 2016-08-20 11:58:03 +03:00
antelle 858811e133 fix 2016-08-20 11:53:09 +03:00
antelle b1a3308a42 fix backup property saving 2016-08-20 11:51:26 +03:00
antelle 65606a827d backup now 2016-08-20 11:01:33 +03:00
antelle 314af31951 remove listeners 2016-08-20 10:07:01 +03:00
antelle 6dbd93e4ce fix idle timer 2016-08-20 10:04:30 +03:00
antelle 74ec3992d1 no beta for me 2016-08-20 09:54:59 +03:00
antelle 9f30a810ce package 2016-08-19 20:59:04 +03:00
antelle ba862f37b6 fix rwin 2016-08-19 20:58:59 +03:00
antelle ff6dbf42ac up deps 2016-08-19 20:44:50 +03:00
antelle e5664bf50a sign script 2016-08-19 20:30:19 +03:00
antelle 10bfafc3f0 wait for keyup on windows 2016-08-19 20:30:11 +03:00
antelle 15c5494658 fix window focus 2016-08-19 00:26:35 +03:00
antelle 2f0b16d40c fix mac runner 2016-08-18 23:01:08 +03:00
antelle 673094c1c3 make otp url valid base32 2016-08-17 21:19:24 +03:00
antelle ddadf0f9fa save backup options 2016-08-17 00:24:08 +03:00
antelle 8a89de6b80 backup view 2016-08-16 23:55:17 +03:00
antelle 57b677dcc7 backups ui 2016-08-16 23:11:54 +03:00
antelle 6436b3807a fix #315: support keyfiles with unicode 2016-08-16 20:21:52 +03:00
antelle a23cc93e65 fix g key 2016-08-15 23:08:17 +03:00
antelle 969e60212c fix label 2016-08-15 21:38:43 +03:00
antelle 871987d4e5 fix #283: preveng storage popup when no action is required 2016-08-15 00:22:25 +03:00
antelle 857c937df1 fix storage load in electron dev-server 2016-08-14 23:51:01 +03:00
antelle 433cb37457 fix dropbox 2016-08-14 23:40:13 +03:00
antelle d7124164be fix for electron v1.0.1 2016-08-14 23:25:37 +03:00
antelle 201ad00c49 JAFA 2016-08-14 23:01:36 +03:00
antelle 83a7041b1f bump version for beta 2016-08-14 22:50:49 +03:00
antelle a09d567301 support field references in auto-type 2016-08-14 22:32:13 +03:00
antelle e28d58a1cf don't close value after generator result applied 2016-08-14 22:14:20 +03:00
antelle ae96fca478 field references decoding 2016-08-14 21:53:55 +03:00
antelle f52578f6de ignore www 2016-08-14 20:25:23 +03:00
antelle 5c518c8aad release notes 2016-08-14 20:16:39 +03:00
antelle e88de37314 fix #301: inline generator keyboard management 2016-08-14 19:40:44 +03:00
antelle f94493a82c generator presets 2016-08-14 19:18:51 +03:00
antelle e978f2adb8 fix window focus 2016-08-14 11:09:35 +03:00
antelle 285f74d55e presets selection 2016-08-13 23:19:15 +03:00
antelle 2ca03401e4 generator presets view 2016-08-13 22:13:16 +03:00
antelle 9d52e96270 fix helper path 2016-08-13 21:29:06 +03:00
antelle fa02e6d5b5 fix #260: confirmation in password change dialog 2016-08-13 19:22:55 +03:00
antelle 64e4d17062 helpers 2016-08-13 17:38:45 +03:00
antelle cc1698e7e1 fix #303: open files without a name 2016-08-13 17:35:08 +03:00
antelle 6b9b6f741f desktop watcher 2016-08-13 17:28:06 +03:00
antelle ab3eaf00a4 fix logs on white theme 2016-08-13 17:12:37 +03:00
antelle 94acc1850b mode fix 2016-08-12 21:30:47 +03:00
antelle 9963c60e74 set helper permissions 2016-08-12 21:21:32 +03:00
antelle 4cfe6dfcfb fix path 2016-08-12 21:11:46 +03:00
antelle 88fd80a669 fix installer builder 2016-08-12 21:06:10 +03:00
antelle 6cd0197b2a fix #308: auto-type for single entry 2016-08-11 21:15:23 +03:00
antelle dc74f763fb fix #304: select input on focus 2016-08-11 20:51:54 +03:00
antelle 71c443a0e6 move helper 2016-08-09 05:59:44 +03:00
antelle b3f604805b copy helper 2016-08-08 22:53:59 +03:00
antelle 2623ab7d38 fix helperpath 2016-08-08 22:47:35 +03:00
antelle 0af0e52a96 fix text 2016-08-08 21:18:36 +03:00
antelle ca25ebe09a release notes 2016-08-08 21:17:58 +03:00
antelle 87ff9a9cc2 fix check 2016-08-08 20:55:38 +03:00
antelle d26dd37096 fix auto-type on windows 2016-08-08 20:55:30 +03:00
antelle 83780a1435 linux auto-type bugfixes 2016-08-07 20:56:40 +03:00
antelle a5d2bb41ed auto-type after lock 2016-08-07 20:34:31 +03:00
antelle 0bd22add57 send text with modifiers 2016-08-07 18:24:25 +03:00
antelle 08d22f8465 mac helper rewritten in objective c 2016-08-07 13:55:12 +03:00
antelle 4f2f3188a6 Merge pull request #297 from mikfoo/develop
Fix favicons and images from being stretched horizontally
2016-08-04 20:52:01 +03:00
Mikkel 69ce357474 Fix favicons and images from being stretched horizontally.
When downloading or setting custom icons, they were 2px too wide.
Before: 16x14, now: 14x14.
2016-08-04 19:33:08 +02:00
antelle 8329a7abc8 fix auto-type matching bugs 2016-08-03 20:20:50 +03:00
antelle 548ed11997 check url path only from start 2016-08-02 23:34:00 +03:00
antelle 7d3d47d812 fix condition 2016-08-02 23:25:21 +03:00
antelle 40598774cd auto-type entry matching 2016-08-02 23:10:05 +03:00
antelle 39b5451bfd entries filter 2016-07-31 21:38:08 +03:00
antelle 8093279b95 allow to add multiple files 2016-07-31 10:47:56 +03:00
antelle f10fd3172e fix #290: idle timer on computer sleep 2016-07-31 08:58:35 +03:00
antelle bd30f84f4c fix jshint 2016-07-30 23:52:10 +03:00
antelle 23f69c82ed handle window close while auto-type is active 2016-07-30 23:51:37 +03:00
antelle c73252004c comment 2016-07-30 23:20:22 +03:00
antelle b6c6c0b341 wait for all key events to be processed 2016-07-30 23:20:14 +03:00
antelle 4016d5c772 fix unicode auto-type on linux 2016-07-30 22:12:49 +03:00
antelle f4c3d59850 fix auto-type start 2016-07-30 22:12:29 +03:00
antelle cc7d9fab73 group reorder 2016-07-30 21:41:15 +03:00
antelle 42e542a249 app manifest draft 2016-07-30 14:37:47 +03:00
antelle 31067d6bf3 fix #220: option to preload webdav config 2016-07-30 13:38:37 +03:00
antelle 389101a70f fix #86: context menu 2016-07-30 12:25:22 +03:00
antelle f3e1ccdb3c fix #272: save displayed table columns 2016-07-27 01:01:32 +03:00
antelle f779809994 fix #287: option to preload default config 2016-07-26 23:32:32 +03:00
antelle 76ccaa6c23 auto-type select 2016-07-26 23:21:20 +03:00
antelle c490243685 auto-type select view 2016-07-25 21:27:22 +03:00
antelle 57c5998cdd fix min window size 2016-07-25 00:53:51 +03:00
antelle cb28c0cb37 auto-type filter 2016-07-25 00:53:42 +03:00
antelle 5ba304c06d remove auto-type view on window blur 2016-07-25 00:10:03 +03:00
antelle e9110e679c fix #135: app redraw in background 2016-07-24 23:58:21 +03:00
antelle d9a6de570f show auto-type view inside app window 2016-07-24 23:57:12 +03:00
antelle 6a4c6594a7 auto-type popup 2016-07-24 20:11:25 +03:00
antelle 8cd5d2b1d7 Merge branch 'master' into develop 2016-07-24 11:05:16 +03:00
antelle 35b3ca53e8 removed old info 2016-07-24 11:04:58 +03:00
antelle ead91a31e9 mac auto-type native helper 2016-07-24 10:53:34 +03:00
antelle 9d8a162980 fix parser 2016-07-24 10:41:12 +03:00
antelle 55b366d763 move 2016-07-23 23:45:21 +03:00
antelle f2f7053d9f fixed key parser 2016-07-23 23:37:24 +03:00
antelle f2b74db0c0 darwin helper implementation 2016-07-23 23:22:24 +03:00
antelle 81394c8c59 darwin keewebhelper draft 2016-07-23 10:48:56 +03:00
antelle c4a9c867f1 simplify script 2016-07-22 22:41:17 +03:00
antelle 595142b0ae sign code and uninstallers 2016-07-22 22:13:39 +03:00
antelle 43582ffbef build signed 2016-07-21 23:54:03 +03:00
antelle 94ad11b835 codesign 2016-07-21 23:15:22 +03:00
antelle 7819af0e0e add libappindicator1 for linux deb 2016-07-21 22:37:23 +03:00
antelle e8dd9afa97 up deps 2016-07-21 22:29:17 +03:00
antelle f0b0854088 up deb 2016-07-21 22:12:51 +03:00
antelle 8049b888d6 check if the app is running 2016-07-21 21:55:21 +03:00
antelle a03f6a4459 uninstall before install 2016-07-21 00:49:42 +03:00
antelle 72b6ce3df2 Merge branch 'master' into develop 2016-07-20 20:47:19 +03:00
antelle 4dd63bc822 issues link 2016-07-20 20:46:50 +03:00
antelle 16cfffd17d fix jshint 2016-07-20 20:45:12 +03:00
antelle 479d533a6a Merge branch 'master' into develop 2016-07-20 20:32:21 +03:00
antelle c30e305c09 Merge branch 'release-1.2' 2016-07-20 20:07:34 +03:00
antelle 8b86f82633 bump version 2016-07-20 20:06:44 +03:00
antelle ac61484594 digital signature in installer 2016-07-20 20:05:39 +03:00
antelle 5f5fc34e87 sign win32 helper 2016-07-20 19:32:36 +03:00
antelle 511ecd2a25 fix #278: mark file as modified on trash empty 2016-07-19 20:42:47 +03:00
antelle 0ed8f6ce97 fix #276: save to file 2016-07-19 20:39:46 +03:00
antelle 60f8a59e30 fix #275: select field contents on search hotkey 2016-07-18 20:18:19 +03:00
antelle 0eaa69dcd4 fix mobile detection 2016-07-17 22:08:23 +03:00
antelle d25ff4741b dev-desktop task 2016-07-17 16:44:13 +03:00
antelle ef80142610 fix #232: dropbox popup close error 2016-07-17 16:43:21 +03:00
antelle e84551a081 hide minimize lock on web 2016-07-17 16:01:06 +03:00
antelle 43b627674e Merge branch 'master' into develop
Conflicts:
	release-notes.md
2016-07-17 15:56:01 +03:00
antelle eea9cde9b0 Merge branch 'release-1.2' 2016-07-17 15:32:37 +03:00
antelle e9feeee718 bump version 2016-07-17 15:32:23 +03:00
antelle dd0e01a89f fix #271: option to skip lock on minimize under mac 2016-07-17 15:31:11 +03:00
antelle 0904465fe3 release notes 2016-07-17 15:27:19 +03:00
antelle 991bde98f3 trigger auto-type change on item select 2016-07-17 15:26:41 +03:00
antelle 35f824caae fix #270: dropbox popup error 2016-07-17 15:23:23 +03:00
antelle c96431c46c eslint 2016-07-17 14:30:38 +03:00
antelle ddf11a2ec4 removed confusing win32 name 2016-07-17 12:13:14 +03:00
antelle dd886a1e41 syntax 2016-07-17 11:50:58 +03:00
antelle b3e737e7f4 nsis 2016-07-17 11:43:48 +03:00
antelle 0ec98dde6c nsis 2016-07-16 21:35:16 +03:00
antelle 32a826c8e8 remove old gif 2016-07-16 20:59:53 +03:00
antelle 24d23b3360 fix description 2016-07-16 20:09:55 +03:00
antelle 48601885bf version-string for windows 2016-07-16 20:09:06 +03:00
antelle 2bce42f0ee icon 2016-07-16 19:49:19 +03:00
antelle 86143304de dev shrinkwrap 2016-07-16 19:49:12 +03:00
antelle 8eae3ae1b8 new build system 2016-07-16 19:39:52 +03:00
antelle c17b711a2e fix copy tip hide 2016-07-16 16:30:17 +03:00
antelle 1459f547fd up deps 2016-07-16 14:49:55 +03:00
antelle 1ad6e1e777 webpack dev server 2016-07-16 14:36:15 +03:00
antelle 61174dfeb6 es6 2016-07-16 13:21:37 +03:00
antelle 0ee53071b7 reset selection after locking 2016-07-16 13:01:19 +03:00
antelle 4fa9167555 Merge branch 'master' into develop 2016-07-16 12:08:24 +03:00
antelle 9d7cdc05f4 Merge branch 'release-1.2' 2016-07-16 12:08:08 +03:00
antelle daf43fcc5c up deb builder 2016-07-16 12:07:54 +03:00
antelle 7921e6de59 solarized themes 2016-07-16 10:58:14 +03:00
antelle 574bcd47e5 Merge branch 'ericbn-solarized' into develop 2016-07-16 10:57:20 +03:00
antelle c0544c3d4a reverted back to sass; resorted colors 2016-07-16 10:57:12 +03:00
Eric e6fb3514e7 Sort theme names in select tag
- Make theme names appear in ascending order in the settings page
2016-07-15 18:00:10 -05:00
Eric 52b8c54db9 Add Solarized themes
- Add solarized-dark and solarized-light themes, based on
  http://ethanschoonover.com/solarized#usage-development
- Update text-contrast-color() to pick the best color, based on Compass
  http://compass-style.org/reference/compass/utilities/color/contrast/
- Previous text-contrast-color() or other simple implementations that
  were experimented didn't work well with both solarized-dark and
  solarized-light
2016-07-15 17:56:07 -05:00
Eric 41e36bb6bd Compile scss with Compass
- Replace Sass by Compass
- Replace grunt-sass by grunt-contrib-compass plugin
- Fix errors pointed by Compass
- This is being introduced to be able to efectivelly compute color
  contrast. Compass has 
  http://compass-style.org/reference/compass/utilities/color/contrast/
  and any other implementation needs pow() with decimal numbers, also
  provided by Compass.
2016-07-15 17:43:41 -05:00
antelle 09ccfdf038 trigger auto-type change on item select 2016-07-14 22:33:46 +03:00
antelle 0c6f8bcf00 Merge branch 'master' into develop 2016-07-14 22:00:50 +03:00
antelle 24cde9ad91 Merge branch 'release-1.2' 2016-07-14 21:59:49 +03:00
antelle c3553552aa bump version 2016-07-14 21:58:55 +03:00
antelle d0325e48e3 fix special keys auto-type in linux 2016-07-14 21:56:48 +03:00
antelle 24e17c6b79 Merge branch 'release-1.2' 2016-07-12 20:58:37 +03:00
antelle 51e97d69c0 bump version 2016-07-12 20:58:24 +03:00
antelle e8884f08ae Merge branch 'release-1.2' 2016-07-12 20:57:16 +03:00
antelle b14b20f233 release date 2016-07-12 20:56:59 +03:00
antelle 57437c8eb9 Merge branch 'release-1.2' 2016-07-12 20:56:30 +03:00
antelle 2c0d837237 fix electron deprecations 2016-07-12 08:05:07 +03:00
antelle 91e8ce5c86 fix #261: storage auth popups on desktop 2016-07-12 07:40:01 +03:00
antelle a29c14275a Merge branch 'master' into develop 2016-07-11 23:16:12 +03:00
antelle 5df8d62bab release date 2016-07-11 22:42:43 +03:00
antelle bdce1c008f win fix 2016-07-11 22:37:04 +03:00
antelle 71c3aaa313 packaging fix 2016-07-11 21:44:39 +03:00
antelle 18d18a6aba packaging 2016-07-11 21:32:44 +03:00
antelle d20c9a40f4 up electron-builder 2016-07-11 20:44:03 +03:00
antelle fc2f8e522e package 2016-07-11 20:41:36 +03:00
antelle 6156b9858a bump version 2016-07-11 20:28:03 +03:00
antelle 2338ca589c Merge branch 'develop' 2016-07-11 20:26:23 +03:00
antelle cff052eccc release date 2016-07-11 20:25:46 +03:00
antelle 989836e96f up electron 2016-07-11 20:25:02 +03:00
antelle 27982cc6a6 hide global auto-type shortcut 2016-07-04 23:16:26 +03:00
antelle 75478c7c10 Merge branch 'master' into develop 2016-07-03 19:46:56 +03:00
antelle f0139c93e2 Change master password if it's expired 2016-07-03 19:46:43 +03:00
antelle a9dbc86db1 update link in pr template 2016-06-22 21:44:16 +03:00
antelle d9ec8550ab Merge pull request #246 from fl0at/patch-1
Updated ISSUE_TEMPLATE: point antelle -> keeweb org
2016-06-22 21:42:50 +03:00
Scott Paeth 0a3e26601d Updated ISSUE_TEMPLATE: antelle -> keeweb org
The template wasn't updated to point to the new Github org, so following the link wouldn't work anymore when people submit images.
2016-06-22 11:05:20 -07:00
antelle f7da41db3e ability to load json config 2016-06-16 20:00:24 +03:00
antelle b987de7d12 Merge pull request #244 from grinsted/patch-1
Fix broken links to antelle/keeweb
2016-06-16 00:31:02 +04:00
Aslak Grinsted 5c6b8790c9 Fix broken links to antelle/keeweb
changed antelle/keeweb to keeweb/keeweb throughout.
2016-06-15 21:11:30 +02:00
antelle 303ea5ac24 better advanced search icon 2016-06-12 10:53:30 +03:00
antelle 3c9ecfc3f3 fix cursor on collapse control 2016-06-12 00:44:32 +03:00
antelle b09e504e9e customizable table view 2016-06-11 17:18:11 +03:00
antelle e08a104935 Merge pull request #243 from cttttt/preserve-newlines-while-copying-values
Try harder to to preserve newlines while copying in the Desktop app
2016-06-11 12:22:50 +04:00
Chris Taylor 7f19d90514 ct: Try to preserve newlines while copying.
- For some reason, copying a multi-line field's value in Chrome does so
  whilst preserving newlines.  In the desktop app on OSX, though,
  multiline values are copied as a single line.

- Although non-standard, the .innerText property of a Node will do
  better at preserving plain-text-formatting (newlines, and such) from
  child elements.  Where it doesn't exist, fallback to whatever JQuery's
  `.text()` uses.
2016-06-10 21:36:58 -04:00
antelle 8990058bca table columns list ui 2016-06-10 22:08:28 +03:00
antelle 72ee188351 up jquery 2016-06-10 20:52:19 +03:00
antelle 3c675ebe1b removed non-important issue from readme 2016-06-10 20:46:41 +03:00
antelle 07e8db1e37 fix #242: webdav in ie 2016-06-10 20:31:16 +03:00
antelle a07f31d47b fix table borders 2016-06-05 17:58:44 +03:00
antelle 1c7405ae76 select file for new records 2016-06-05 17:49:00 +03:00
antelle c7325076ca fix #170: local files are not saved to cache 2016-06-05 14:48:23 +03:00
antelle c7240edca9 fix #163: allow opening same file twice 2016-06-05 13:25:50 +03:00
antelle 5fe2ec0c15 typo 2016-06-05 00:09:46 +03:00
antelle 810a743106 release notes 2016-06-05 00:08:42 +03:00
antelle 172bd0eefb repo links 2016-06-04 23:34:49 +03:00
antelle 1ea002095e exclude shrinkwrap 2016-06-04 19:11:56 +03:00
antelle f80a9ff1ad fix #205: webdav relative url error 2016-06-04 18:34:15 +03:00
antelle 6ba0808c17 fix #176: logout from remote storages on disable 2016-06-04 18:08:50 +03:00
antelle 571702a8f8 fix logs display 2016-06-04 15:59:03 +03:00
antelle bd3423cec1 fix #224: group info in entry details 2016-06-04 15:47:56 +03:00
antelle 556a7b3236 fix #230: open files with spaces on linux 2016-06-04 12:22:17 +03:00
antelle 049f801c2e fix #236: drag-drop in Safari 2016-06-04 11:46:13 +03:00
antelle 466c0a24d1 option to show app logs 2016-06-04 11:31:06 +03:00
antelle 4d1e2fbee8 disabled ios safari click background 2016-06-04 10:28:12 +03:00
antelle 5878356d59 fix manifest link 2016-06-04 10:09:10 +03:00
antelle 8de14a7ab0 shrinkwrap 2016-06-04 10:04:10 +03:00
antelle ec004c7584 fixed deps versions 2016-06-04 10:03:34 +03:00
antelle 532513ebf5 Merge pull request #233 from smacleod/patch-1
fix #113: increased max password length
2016-05-21 22:20:40 +04:00
Steven MacLeod 3fd7e9de9f fix #113: increased max password length
0198828ca7 missed a couple places to increase the max password length
2016-05-21 14:17:29 -04:00
antelle 0198828ca7 fix #113: increased max password length 2016-05-21 20:55:20 +03:00
antelle 8788e67cf8 fix #217: ability to increase font size 2016-05-15 10:57:29 +03:00
antelle fc62872ff2 release notes 2016-05-15 10:00:12 +03:00
antelle 928b561a65 high contrast theme 2016-05-13 16:14:13 +03:00
antelle 47112c42da typo 2016-05-13 15:09:56 +03:00
antelle 1e1a5aeefc fix word wrapping in notes field 2016-05-13 15:09:45 +03:00
antelle b5b932fd6b better open page ux on launch screen 2016-05-13 15:09:21 +03:00
antelle 6cb2693c02 electron v1.0.1 2016-05-13 15:07:46 +03:00
antelle 31db0aa594 fix webpack ext dep 2016-05-13 15:05:01 +03:00
antelle b1265177a7 fixed dep version 2016-05-13 15:04:33 +03:00
antelle b0a009aa80 fix menu item 2016-05-01 18:39:44 +03:00
antelle ad6fb55e9d better browser url detection 2016-04-27 23:54:13 +03:00
antelle 46f3d76380 auto-type hint 2016-04-26 22:40:18 +03:00
antelle 4c7072eeed linux auto-type impl 2016-04-26 00:19:40 +03:00
antelle 41cace7805 get linux window title 2016-04-24 23:29:28 +03:00
antelle 4503f4bcd8 fix naming 2016-04-24 23:08:59 +03:00
antelle d88a3c9dc9 fix helper path 2016-04-24 23:04:26 +03:00
antelle c48f947a0f get helper path from app path 2016-04-24 23:03:52 +03:00
antelle 9028232664 get windows browser url 2016-04-24 19:57:01 +03:00
antelle 1857244d1e SendKey fix 2016-04-24 15:23:58 +03:00
antelle 59eccc8cfb removed debug log 2016-04-24 15:22:22 +03:00
antelle 9f8dfdccbb windows helper app 2016-04-24 15:12:33 +03:00
antelle b3d92e0f2b windows emitter switched to helper app 2016-04-24 15:08:46 +03:00
antelle 5e4a13a765 fix group seq 2016-04-23 22:59:28 +03:00
antelle bf7e18b844 const 2016-04-23 22:55:57 +03:00
antelle db12c76987 don't check updates at startup 2016-04-23 22:53:48 +03:00
antelle ecd9d5c812 fix obfuscation 2016-04-23 22:35:30 +03:00
antelle a3afc4f7e4 escape chars 2016-04-23 19:31:39 +03:00
antelle 31c6c10381 typo 2016-04-23 18:34:56 +03:00
antelle 15b25c8395 fix delay 2016-04-23 18:34:49 +03:00
antelle b16f07b72c fix auto-type layout 2016-04-23 18:19:48 +03:00
antelle 463b383ba7 get auto-type properties from entry 2016-04-23 18:05:33 +03:00
antelle 316ef85269 omit xmldom 2016-04-23 18:01:56 +03:00
antelle 48f10ca4a7 entry auto-type ui 2016-04-23 17:50:40 +03:00
antelle b00e1196a1 fix add attachment button 2016-04-23 01:11:36 +03:00
antelle e07259a93d Merge branch 'master' into develop 2016-04-22 22:42:14 +03:00
antelle 1bc795b7e6 Update README.md 2016-04-22 22:41:28 +03:00
antelle 1ed57d2000 readme 2016-04-22 22:40:23 +03:00
antelle 09006ed030 short manual 2016-04-22 22:00:18 +03:00
antelle 758e20dd51 install with wget 2016-04-22 21:45:14 +03:00
antelle 44a453b663 default dh size 2016-04-22 21:13:21 +03:00
antelle cc44f3211b docker 2016-04-22 20:50:27 +03:00
antelle 7485fe8760 fix style 2016-04-22 20:18:28 +03:00
antelle 8c962195ef keycodes links 2016-04-22 19:39:35 +03:00
antelle c39ec3db53 ext 2016-04-22 08:06:13 +03:00
antelle 89ee918062 fixes 2016-04-22 00:30:05 +03:00
antelle ad24e24633 docker container 2016-04-21 23:48:21 +03:00
antelle b33dcd2331 show add attachment button on mobile 2016-04-21 22:44:29 +03:00
antelle 1456cff1b9 fix #198: always show add attachment icon 2016-04-21 22:37:54 +03:00
antelle 4e64c87485 removed xmldom 2016-04-21 21:34:23 +03:00
antelle a2a0d9cb53 Merge branch 'release-1.1' into develop 2016-04-21 21:33:38 +03:00
antelle 08087c3853 Merge branch 'release-1.1' 2016-04-21 21:18:17 +03:00
antelle 2c043de19d bump version 2016-04-21 21:18:10 +03:00
antelle 897eb5670f Merge branch 'release-1.1' 2016-04-21 21:16:05 +03:00
antelle 7d9b1ce70f release notes 2016-04-21 21:15:54 +03:00
antelle fe17819970 up kdbxweb 2016-04-21 21:14:35 +03:00
antelle a7ebce1bd8 Merge branch 'release-1.1' into develop 2016-04-21 01:06:28 +03:00
antelle 87dc496790 Merge branch 'release-1.1' 2016-04-21 00:55:54 +03:00
antelle 3538adef68 bump version 2016-04-21 00:55:42 +03:00
antelle a62a684e0c release date 2016-04-21 00:55:15 +03:00
antelle a8b7a020d1 up kdbxweb 2016-04-21 00:41:03 +03:00
antelle e655250fc9 fix jshint 2016-04-19 22:21:32 +03:00
antelle 177cbea905 emitter-impl => emitter 2016-04-19 22:19:08 +03:00
antelle 53f266f7c3 linux emitter 2016-04-19 21:48:49 +03:00
antelle e135fc010b cleanup 2016-04-19 21:48:42 +03:00
antelle 93fbe645a2 win32 helper stub 2016-04-19 21:03:02 +03:00
antelle f9d593356b auto-type bugfixes 2016-04-19 20:39:17 +03:00
antelle 35c19e4578 windows emitter impl 2016-04-18 23:46:54 +03:00
antelle 10521554de write to stdin 2016-04-18 00:38:31 +03:00
antelle 111182458d edit and remove tags 2016-04-17 23:02:39 +03:00
antelle 7e205e6958 fix #33: save groups collapsed/expanded state 2016-04-17 19:16:51 +03:00
antelle e14e97efda mac file types 2016-04-17 17:31:03 +03:00
antelle 566c322e22 fix enable searching/auto-type 2016-04-17 17:00:58 +03:00
antelle 23b0fe4607 fix jshint 2016-04-17 15:31:58 +03:00
antelle 3de0836c85 auto-type group ui 2016-04-17 15:31:08 +03:00
antelle b7586f5be9 fix emitter copy-paste 2016-04-17 14:56:19 +03:00
antelle 11a12cceb4 [wip] win32 auto-type emitter 2016-04-17 14:24:33 +03:00
antelle 253455d874 better export api 2016-04-17 13:28:23 +03:00
antelle a5da669a3b fix #190: allow selecting attachments with click 2016-04-17 13:17:07 +03:00
antelle d61b60d316 release notes 2016-04-17 13:00:21 +03:00
antelle a1a0e6d87c install gif 2016-04-17 12:25:56 +03:00
antelle 3413983021 fix windows setup 2016-04-17 09:18:33 +03:00
antelle 1198f97476 uncommented å task 2016-04-16 23:42:50 +03:00
antelle 94196ca32d email 2016-04-16 23:42:12 +03:00
antelle 9ee20331ee new electron-builder 2016-04-16 23:38:54 +03:00
antelle 5553b1053a readme 2016-04-16 00:47:57 +03:00
antelle eef6e3aca6 Merge branch 'release-1.1' into develop 2016-04-16 00:45:40 +03:00
antelle 96939ae29f readme 2016-04-16 00:45:25 +03:00
antelle 3373a28c73 Merge branch 'release-1.1' into develop 2016-04-15 23:48:55 +03:00
antelle cb6eb18bf7 export settings get/set interface 2016-04-15 23:48:43 +03:00
antelle 783663fe79 fix #138: prevent second app instance on windows 2016-04-15 23:40:55 +03:00
antelle 413d10fbd6 Merge branch 'release-1.1' into develop 2016-04-15 22:28:00 +03:00
antelle e26e902943 hide generator on lock 2016-04-15 22:27:48 +03:00
antelle 09afe56efa fix tooltip 2016-04-15 22:21:49 +03:00
antelle 64cae9d354 fix generator preset for empty passwords 2016-04-15 22:18:29 +03:00
antelle a9b94df12c release notes 2016-04-15 07:44:28 +03:00
antelle 8d9b442fd1 Merge branch 'release-1.1' into develop 2016-04-15 07:44:12 +03:00
antelle bd687bd06c release notes 2016-04-15 07:44:01 +03:00
antelle ef5a276208 change color message 2016-04-15 07:43:25 +03:00
antelle 8ce8c7694d removed mime-type from google drive 2016-04-14 21:29:05 +03:00
antelle 19d44c1ea5 removed mime-type from google drive 2016-04-13 23:28:36 +03:00
antelle 9d93afaefc Merge branch 'release-1.1' into develop 2016-04-12 21:39:16 +03:00
antelle 53f2a7e54d fix generator 2016-04-12 21:38:59 +03:00
antelle 8dcd76da37 Merge branch 'release-1.1' into develop 2016-04-11 23:37:31 +03:00
antelle 678cb5b52c fixed layout bug 2016-04-11 23:37:16 +03:00
antelle 731e8fe54e fix arrow function 2016-04-11 00:15:43 +03:00
antelle fb00cf5d85 Merge branch 'release-1.1' 2016-04-10 23:06:47 +03:00
antelle 7c76614511 Merge branch 'release-1.1' into develop 2016-04-10 23:06:09 +03:00
antelle a380048835 bump version 2016-04-10 23:05:56 +03:00
antelle 4a31284f99 Merge branch 'release-1.1' into develop 2016-04-10 22:55:54 +03:00
antelle 072405c610 fix #185: deletion to trash when there's no trash folder 2016-04-10 22:55:26 +03:00
antelle 9eb04dcd17 author name 2016-04-10 22:54:22 +03:00
antelle 55a793ed8b fix delay 2016-04-10 12:10:48 +03:00
antelle 4f66d35600 Merge branch 'release-1.1' into develop 2016-04-10 12:02:01 +03:00
antelle 88b9661927 disable timer throttling 2016-04-10 12:01:47 +03:00
antelle d7e2dd81a4 Merge branch 'release-1.1' into develop 2016-04-10 11:26:52 +03:00
antelle 64a6124b86 option to try beta version in desktop app 2016-04-10 11:26:40 +03:00
antelle 0b167536b7 disable timer throttling 2016-04-10 10:37:55 +03:00
antelle 5b87b9a560 remove trash from log 2016-04-10 10:31:08 +03:00
antelle ba1624e631 auto-type shortcuts 2016-04-10 10:02:32 +03:00
antelle e07055f7df Merge branch 'release-1.1' into develop 2016-04-10 09:46:45 +03:00
antelle df3d3a7209 fix message about not found files 2016-04-10 09:44:17 +03:00
antelle ab07be1080 fix copy key console error 2016-04-10 09:41:33 +03:00
antelle 55378e67ba explaining comment 2016-04-10 09:36:09 +03:00
antelle 195884062e fix auto-type 2016-04-10 09:32:18 +03:00
antelle 8236146ed2 better window title detection 2016-04-09 23:19:56 +03:00
antelle c21ecbc785 auto-type helper 2016-04-09 21:58:22 +03:00
antelle db17018f9d mac auto-type emitter 2016-04-09 21:10:11 +03:00
antelle aa8af8eaa3 auto-type emitter impl stub 2016-04-09 18:07:53 +03:00
antelle e35d5eb9ae auto-type emitter 2016-04-09 17:27:42 +03:00
antelle 806f375e05 auto-type obfuscator 2016-04-09 15:55:27 +03:00
antelle 382c7fc6dc debug log 2016-04-09 12:28:14 +03:00
antelle 8cfabab0bc print seqs 2016-04-09 12:17:01 +03:00
antelle 030a47e43f Merge branch 'release-1.1' into develop 2016-04-09 11:44:43 +03:00
antelle 8fdc0ebd25 release notes 2016-04-09 11:44:32 +03:00
antelle cfcd54a1a3 fix notes field color 2016-04-09 11:43:56 +03:00
antelle 0cdbfe04d4 invoke auto-type obfuscation 2016-04-09 11:41:52 +03:00
antelle 90cabeda9d remove spaces 2016-04-09 09:29:30 +03:00
antelle b5a08bf53a auto-type otp 2016-04-09 09:29:20 +03:00
antelle 6e34581669 runner replacements 2016-04-09 01:21:58 +03:00
antelle ba360ac907 log message 2016-04-09 00:14:09 +03:00
antelle 92fef49758 auto-type runner bugfixes 2016-04-09 00:12:56 +03:00
antelle 6e7442afbf fix auto-type parser 2016-04-08 23:33:07 +03:00
antelle 4183d46501 Merge branch 'release-1.1' into develop 2016-04-08 18:49:07 +03:00
antelle 25717f94f4 fix deb package 2016-04-08 18:47:37 +03:00
antelle ee3e9dcb95 auto-type parser 2016-04-08 18:40:00 +03:00
antelle 735ba1fbcf up dep 2016-04-07 21:57:10 +03:00
antelle 31f7e97c42 removed sudo 2016-04-07 21:02:07 +03:00
antelle 599fd5e3c2 Merge branch 'release-1.1' into develop 2016-04-07 20:18:27 +03:00
antelle 88bfa7ec44 Merge branch 'release-1.1' 2016-04-07 19:48:18 +03:00
antelle 02d0df47dd bump version 2016-04-07 19:48:02 +03:00
antelle 8dbc7b0e61 Merge branch 'release-1.1' 2016-04-07 19:44:16 +03:00
antelle 492844f2fb hotfix 2016-04-07 19:44:05 +03:00
antelle 74ac9474e8 fix open keyfile 2016-04-07 19:43:19 +03:00
antelle bd0c5a498c fix cmd-o 2016-04-07 19:36:34 +03:00
antelle ba66c69235 minimize app on linux, fix #181, fix 51 2016-04-07 19:33:01 +03:00
antelle 09cb45198c don't assign path for different storage 2016-04-07 08:11:59 +03:00
antelle 2d4280c5ef release notes 2016-04-07 00:16:20 +03:00
antelle e7f11cf0b1 display open keyfile name 2016-04-07 00:13:44 +03:00
antelle 4520730452 bug number 2016-04-07 00:00:39 +03:00
antelle d18eeded63 fix #182: save window position on Windows 2016-04-07 00:00:21 +03:00
antelle 50674a43f1 Merge branch 'master' into develop 2016-04-05 20:53:37 +03:00
antelle da0b0239c1 copy task 2016-04-05 20:38:11 +03:00
antelle f5e54bd2e8 up dep 2016-04-05 20:09:47 +03:00
antelle c35fe2e72e Merge branch 'develop' 2016-04-05 19:37:40 +03:00
antelle 34c587f355 version 2016-04-05 19:36:55 +03:00
antelle 8143c31e20 up electron 2016-04-05 19:35:47 +03:00
antelle 103367e3e4 fix #178: postinstall script 2016-04-05 19:34:13 +03:00
antelle 98ebff0534 enter otp manually 2016-04-04 21:45:17 +03:00
antelle 33f9df3fe3 up jsqrcode 2016-04-03 22:36:19 +03:00
antelle c836532a93 fix qr alert 2016-04-03 22:16:05 +03:00
antelle e25447cc27 up jsqrcode 2016-04-03 21:58:07 +03:00
antelle 19334f7390 up normalize.css 2016-04-03 17:48:51 +03:00
antelle cc15cc24e0 extracted get url method 2016-04-03 17:33:34 +03:00
antelle 307e9786e4 Merge branch 'master' into develop 2016-04-03 16:17:47 +03:00
antelle e7593e52ca readme 2016-04-03 16:17:17 +03:00
antelle 341b963608 fix list dropbox 2016-04-03 15:56:38 +03:00
antelle 4891dbfb3d up kdbxweb 2016-04-03 15:56:31 +03:00
antelle 8e4e2993f0 delete old totp fields 2016-04-03 13:54:51 +03:00
antelle af38103a71 hide totp fields 2016-04-03 13:44:43 +03:00
antelle 5eec337e75 fix #89: disallow protected fields value selection 2016-04-03 12:48:37 +03:00
antelle 3599c72db4 fix #132: theme color for mobile chrome 2016-04-03 12:32:38 +03:00
antelle 29677458a7 fix dropdown position 2016-04-03 11:23:38 +03:00
antelle 8f4b88b3f4 up electron 2016-04-03 10:48:33 +03:00
antelle f69ec4d773 up deps 2016-04-03 10:47:34 +03:00
antelle 7b8b108ac7 fix normalize version 2016-04-03 09:48:42 +03:00
antelle 08245562d1 up deb 2016-04-03 09:45:30 +03:00
antelle 0c8b0f72c4 up components 2016-04-03 09:30:50 +03:00
antelle be2699f2d1 sign html 2016-04-02 23:44:53 +03:00
antelle 68a51a27c5 postinstall script 2016-04-02 22:37:25 +03:00
antelle e78d21c725 fix deb icon and mode 2016-04-02 22:03:02 +03:00
antelle 2e0f80a994 removed unused dependency 2016-04-02 20:45:04 +03:00
antelle ca299d426c comment 2016-04-02 19:43:13 +03:00
antelle 6a19c97742 support ie11 msCrypto 2016-04-02 19:00:15 +03:00
antelle 2ba344a0f6 scan or select qr codes on mobile 2016-04-02 17:34:30 +03:00
antelle c6f2f9c145 fix open message 2016-04-02 16:57:47 +03:00
antelle be401fe8b5 fix otp in safari 2016-04-02 16:57:38 +03:00
antelle 32d532d69f release notes 2016-04-02 16:27:00 +03:00
antelle 8252d72598 otp bugfixes 2016-04-02 16:20:48 +03:00
antelle 8b3e1e4f3c grunt deb build 2016-04-02 14:21:07 +03:00
antelle 8a588e5d99 #141: buliding deb file 2016-04-02 11:13:24 +03:00
antelle 737d4df8e6 hotp 2016-04-02 00:16:23 +03:00
antelle b3ee43e519 otp moved to model 2016-04-02 00:09:16 +03:00
antelle 6217c97441 otp 2016-04-01 22:19:27 +03:00
antelle 2dbc350b53 reading otp qr codes 2016-03-31 23:52:04 +03:00
antelle 31a18b52b3 fix dropdown padding 2016-03-29 22:12:08 +03:00
antelle 970393a7c1 fix confusing message 2016-03-27 21:40:33 +03:00
antelle 9bc441b3bf webdav save message 2016-03-27 21:39:16 +03:00
antelle 3cb3ec471f fix log 2016-03-27 21:33:07 +03:00
antelle 774919fafb save to google drive 2016-03-27 21:14:31 +03:00
antelle f351d934eb add files to onedrive 2016-03-27 20:17:09 +03:00
antelle cc95625c77 save to dropbox 2016-03-27 19:38:33 +03:00
antelle 131a18aff0 hide settings on changed password 2016-03-27 19:38:21 +03:00
antelle b7b30190e7 fix dropbox 2016-03-27 19:03:58 +03:00
antelle eb72490884 fix svg align 2016-03-27 18:02:20 +03:00
antelle 7d4152a02c oauth for desktop 2016-03-27 17:47:29 +03:00
antelle 0a74168ace remove copy tip 2016-03-27 16:41:13 +03:00
antelle 9e43f1d3c1 popup warning 2016-03-27 16:36:07 +03:00
antelle c8d18f9f98 jshint 2016-03-27 16:18:58 +03:00
antelle 61b1ec5ecf validate and update tokens 2016-03-27 16:18:05 +03:00
antelle ec8efbf4d3 oauth2 2016-03-27 15:57:22 +03:00
antelle 039bb075c4 different onedrive client ids 2016-03-27 15:06:27 +03:00
antelle e209a49d7c onedrive 2016-03-27 14:54:35 +03:00
antelle 67f282220a gdrive client in settings 2016-03-27 12:08:54 +03:00
antelle 6e65381e97 fix #105 2016-03-27 10:52:44 +03:00
antelle 30dfc38b27 fix init 2016-03-27 10:48:26 +03:00
antelle f83e39b1aa fix jshint 2016-03-27 10:46:43 +03:00
antelle d6625d2825 get rid of drive api 2016-03-27 10:42:48 +03:00
antelle aa200d3c88 storage providers refactoring 2016-03-27 10:06:23 +03:00
antelle 9c9abaae80 svg icons in last open files list 2016-03-27 09:14:15 +03:00
antelle 8b660ca5de gdrive setting 2016-03-27 01:05:59 +03:00
antelle b36c0e9221 enabled gdrive 2016-03-27 01:04:34 +03:00
antelle 02a80a18aa google drive 2016-03-26 23:12:56 +03:00
antelle cc907749e2 commented out hard-coded dropbox code 2016-03-26 12:17:32 +03:00
antelle c33031dd57 save to... in file settings 2016-03-26 11:57:58 +03:00
antelle f22f8c29be Merge branch 'master' into develop 2016-03-24 22:04:36 +03:00
antelle 6e9368c3ea shield 2016-03-24 22:03:49 +03:00
antelle 3180f36049 fix open password 2016-03-23 20:15:39 +03:00
antelle 16e5396263 fix open files 2016-03-22 20:22:21 +03:00
antelle 5d77dd0863 don't mark file as modified on group expand/collapse 2016-03-20 16:47:26 +03:00
antelle 021b60b6ed fix set opts 2016-03-19 15:59:28 +03:00
antelle 6c930f9ac6 encrypt stored webdav password 2016-03-19 15:43:50 +03:00
antelle 90b51376b9 devtools shortcut 2016-03-19 14:37:52 +03:00
antelle b19dd8d594 fix lock during sync 2016-03-19 14:17:52 +03:00
antelle 340ae933bf speedup: open from cache and sync after open 2016-03-19 12:27:26 +03:00
antelle 452830b651 show warning for deleting modified files 2016-03-19 09:15:20 +03:00
Antelle e6f56526ac google drive branding requirements 2016-03-18 20:44:12 +03:00
Antelle 627ec27f92 removed github url from dropbox 2016-03-18 20:43:54 +03:00
Antelle 505682a197 add beta 2016-03-18 00:58:48 +03:00
Antelle 3fa3c17291 reset dropbox client on change 2016-03-18 00:49:39 +03:00
Antelle cf20379c93 fix locale message 2016-03-18 00:38:03 +03:00
Antelle 850fa5fce8 fix double render on view switch 2016-03-18 00:35:19 +03:00
Antelle fff01ce091 fix #57: support custom Dropbox apps and folders 2016-03-18 00:10:49 +03:00
Antelle 060d4cd3ee don't delete files deleted remotely 2016-03-15 22:08:43 +03:00
Antelle 11c6ad6ded fix #162: show error details on open 2016-03-15 22:08:08 +03:00
Antelle c9b58f2c9e open more items layout and auto-open 2016-03-14 23:57:14 +03:00
Antelle 0de302c61b fix #81: fix dropbox folder selection 2016-03-14 08:16:33 +03:00
Antelle a75a1bc66c dropbox folders setup 2016-03-14 08:04:55 +03:00
Antelle 87f148f0c3 spacing inside more 2016-03-13 20:40:10 +03:00
Antelle c18539833b fix #157: option to disable storage providers 2016-03-13 20:33:25 +03:00
Antelle 4d4b0b3fab dropbox provider settings config 2016-03-13 19:45:55 +03:00
Antelle 0eda512479 unified storage providers creation 2016-03-13 19:08:25 +03:00
Antelle c2244f48ae fix webdav class name 2016-03-13 17:33:03 +03:00
Antelle b6c09dc0c0 fix #155: show dropbox chooser only if it's working 2016-03-13 16:41:55 +03:00
Antelle 5185434b97 move demo up 2016-03-13 13:41:08 +03:00
Antelle f75f936bd3 fix #53: hide demo once opened 2016-03-13 12:54:16 +03:00
Antelle f4857f4e97 new save flow 2016-03-13 11:34:36 +03:00
Antelle 757c76996d fix opts 2016-03-12 23:08:49 +03:00
Antelle 8cf00c355d jshint 2016-03-12 20:24:31 +03:00
Antelle fff9135207 better 404 error message 2016-03-12 20:23:28 +03:00
Antelle 7303119b4e not implemeted stubs 2016-03-12 20:20:20 +03:00
Antelle 29a697f2bf release notes 2016-03-12 20:15:06 +03:00
Antelle 3cdc6b2cb9 WebDAV 2016-03-12 19:49:52 +03:00
Antelle 9725f8bb61 fix error message height 2016-03-12 14:37:04 +03:00
Antelle 898cf5ecb4 ctrl-key 2016-03-12 14:25:25 +03:00
Antelle 4a13d4f130 webdav settings ui 2016-03-12 14:22:35 +03:00
Antelle 1c17bcc8c5 configurable way to skip security warning 2016-03-11 21:15:15 +03:00
Antelle 4a9a61168a more open options icons 2016-03-09 23:52:19 +03:00
Antelle f7cd5d8203 fix min menu width 2016-03-08 13:04:50 +03:00
Antelle b99c6a46b3 Merge branch 'baumhoto-missing_settings_shortcut' into develop
Conflicts:
	app/scripts/util/locale.js
	app/templates/settings/settings-shortcuts.hbs
2016-03-08 10:38:33 +03:00
Tobias Baumhöver 1a4c4a7862 - added missing shortcut description for Lock (Cmd/Ctrl+L) 2016-03-06 19:33:28 +01:00
Antelle 002fa224c1 fix #150: display favicon download error 2016-03-05 21:31:32 +03:00
Antelle 720f2cb612 fix #150: favicon download 2016-03-05 21:22:00 +03:00
Antelle 910f6f80f0 fix details 2016-03-05 16:59:36 +03:00
Antelle 7b6d07889c release notes 2016-03-05 16:37:17 +03:00
Antelle 5cc080b565 more spacing 2016-03-05 16:36:43 +03:00
Antelle 3cf3f4c153 key location 2016-03-05 15:05:44 +03:00
Antelle 686e3bd2e2 fix public key location 2016-03-05 14:45:37 +03:00
Antelle 141098b1d0 sign desktop update archive 2016-03-05 14:16:12 +03:00
Antelle 32eaa38b30 disallow select system fields 2016-03-05 12:10:38 +03:00
Antelle 077b3f8488 fix adding new records 2016-03-05 12:00:43 +03:00
Antelle 022d5e9d5d hide more options on render 2016-03-05 11:47:49 +03:00
Antelle 336704696e fix double fields 2016-03-05 11:40:07 +03:00
Antelle ebf8baac94 fix #58: hide empty fields 2016-03-05 11:35:22 +03:00
Antelle 079d0f53c8 fix open warnings 2016-03-04 22:21:34 +03:00
Antelle 32edbb5de9 fix #125: warning for kdb files 2016-03-04 21:45:37 +03:00
Antelle 2b68ae1356 removed extra call to setTheme 2016-03-04 21:14:09 +03:00
Antelle 274c64b388 Merge branch 'master' into develop 2016-03-04 20:40:54 +03:00
Antelle a94eda9eac readme 2016-03-04 20:39:40 +03:00
Antelle 0967209ba8 preserve empty fields 2016-03-04 20:31:50 +03:00
Antelle dccb1b2bf5 Merge branch 'exromany-master' into develop 2016-03-04 20:06:18 +03:00
Antelle 6721084812 Merge branch 'master' of https://github.com/exromany/keeweb into exromany-master 2016-03-04 19:42:55 +03:00
Antelle dfd0f2829b file settings input behavior: close #143, close #144 2016-03-04 19:39:29 +03:00
Antelle 6732650cfb Merge branch 'master' into develop 2016-03-03 07:52:13 +03:00
Antelle 82537b67c1 item 2016-03-03 07:51:59 +03:00
Antelle e07ad5e520 Merge branch 'master' into develop 2016-03-03 07:46:51 +03:00
Antelle 77a3b0b13f templates 2016-03-03 07:46:29 +03:00
Antelle 4bcf2ee13d up kdbxweb 2016-03-02 23:54:44 +03:00
exromany d7542a44c6 fix import 2016-03-02 01:17:19 +04:00
Antelle 95195a60e5 fix #131: build for 32-bit linux 2016-03-01 22:06:23 +03:00
exromany 6729754049 import db from xml file 2016-03-01 07:29:20 +04:00
Antelle 7b856f2120 Merge branch 'master' into develop 2016-02-29 00:19:41 +03:00
Antelle 75cdfc4e33 typo 2016-02-29 00:18:13 +03:00
Antelle 2fe33765d6 remove item 2016-02-29 00:17:13 +03:00
Antelle d0ab8dd9b2 link 2016-02-29 00:16:12 +03:00
Antelle 4222d710c5 issue templates 2016-02-29 00:15:12 +03:00
Antelle 978e2de942 don't show tips if view is hidden 2016-02-28 20:21:13 +03:00
Antelle e432fd9748 hide global shortcuts for webapp 2016-02-28 20:18:11 +03:00
Antelle 12cb153939 Merge branch 'baumhoto-globalshortcut' into develop 2016-02-28 20:13:23 +03:00
Antelle 8e208e28be Merge branch 'globalshortcut' of https://github.com/baumhoto/keeweb into baumhoto-globalshortcut 2016-02-28 19:25:01 +03:00
Tobias Baumhöver 73c334191b fixed unsubscribe offkey calls 2016-02-28 16:15:28 +01:00
Antelle b5a4a06f88 Merge branch 'master' into develop 2016-02-28 17:27:53 +03:00
Antelle 5ca32302d7 fix #127: downgrade buggy package 2016-02-28 17:27:36 +03:00
Tobias Baumhöver a7d00f8cfa - refactored 3 copyKeyPress functions into one
- added additional shortcut keys to settings-shortcuts.hbs
- added locales for new shortcut keys
- fixed code formatting issue
2016-02-28 15:08:49 +01:00
Tobias Baumhöver 1fe626f4d9 merged with latest changes from urlcopykeyboardshortcut 2016-02-28 13:19:34 +01:00
Tobias Baumhöver b3e1d0fd70 url keyboardshortcut deregister on remove 2016-02-28 13:14:26 +01:00
Tobias Baumhöver cc8b1ef92b support for electron global keyboard shortcuts on non OSX platforms: Shift+Alt+(c/b/u) 2016-02-28 12:47:47 +01:00
Antelle 8f35f64148 usernames autocomplete 2016-02-28 14:16:05 +03:00
Antelle 35bd1ab3be hide tips on lock 2016-02-28 13:36:56 +03:00
Tobias Baumhöver 7e4c1f186d added support for electron global keyboard shortcuts, copy contents to clipboard without having to refocus the app, supported shortcuts are: Ctrl+Alt+(c/b/u) (password/user/url) 2016-02-28 10:34:14 +01:00
Tobias Baumhöver b2bea6c234 added support for copying url with cmd/ctrl+u 2016-02-28 09:41:16 +01:00
Antelle 2de1515205 fix #119: open files created without password 2016-02-26 23:45:54 +03:00
Antelle 4e1b5b58b1 up kdbxweb 2016-02-26 23:23:48 +03:00
Antelle 90fdfd5f68 fix #120: settings shortcut description 2016-02-26 20:20:08 +03:00
Antelle 191de578a5 Merge branch 'pathway27-patch-1' into develop 2016-02-26 07:47:50 +03:00
Sree 793660f810 typo(settings-about): normalize.css 2016-02-26 11:53:41 +11:00
Antelle 781d5e712c Merge branch 'release-1.0' into develop
Conflicts:
	release-notes.md
2016-02-26 00:04:46 +03:00
Antelle a6e7afe394 Merge branch 'release-1.0' 2016-02-26 00:01:08 +03:00
Antelle 6df00aa7ae release notes 2016-02-26 00:00:53 +03:00
Antelle f6caeac8a6 fix #110: workaround for chrome bug 2016-02-25 23:58:17 +03:00
Antelle 7e5b7aed0d fix #110: workaround for chrome bug 2016-02-25 23:53:54 +03:00
Antelle 9595cee273 fix #99: option to search in title 2016-02-25 22:50:31 +03:00
Antelle f129b827f9 fix generator flicker 2016-02-23 23:31:21 +03:00
Antelle 46427a97a9 fix generator 2016-02-23 17:23:33 +03:00
Antelle 681ec9c9aa Merge branch 'release-1.0' into develop 2016-02-23 15:23:10 +03:00
Antelle aebb11e6a3 Merge branch 'release-1.0' 2016-02-23 15:18:55 +03:00
Antelle 2cb916d2a3 message 2016-02-23 15:18:30 +03:00
Antelle 7118522381 spacing 2016-02-23 15:17:12 +03:00
Antelle f876ad63e4 fix 2016-02-23 15:16:50 +03:00
Antelle 5ff18d316b release notes 2016-02-23 15:11:55 +03:00
Antelle 2bbd3fb569 release notes 2016-02-23 15:11:31 +03:00
Antelle ad7d2f6c26 Merge branch 'release-1.0' into develop
Conflicts:
	release-notes.md
2016-02-23 15:03:19 +03:00
Antelle 4cd1ac8184 Merge branch 'release-1.0' 2016-02-23 14:49:14 +03:00
Antelle 3893ba2c06 correct electron version 2016-02-23 14:48:59 +03:00
Antelle 6316c032f4 Merge branch 'release-1.0' 2016-02-23 14:46:32 +03:00
Antelle 93bdda42d1 version 2016-02-23 14:45:30 +03:00
Antelle f38ae5a45a release notes 2016-02-23 14:45:10 +03:00
Antelle c25317ab23 downgrage electron to min working version for arch 2016-02-23 14:44:10 +03:00
Antelle 6f929ffd5b fix #96: regenerate password button 2016-02-23 09:43:43 +03:00
Antelle 0d256ac6c3 Merge branch 'release-1.0' into develop
Conflicts:
	app/scripts/models/app-settings-model.js
	release-notes.md
2016-02-23 09:10:42 +03:00
Antelle b577faffdd fix #94: warn user about local files 2016-02-23 09:08:57 +03:00
Antelle d5fedb8d97 fix #95: unlock by opening settings 2016-02-23 08:20:01 +03:00
Antelle 3272cd2553 fix #93: save on exit 2016-02-23 08:14:07 +03:00
Antelle 11ab09d641 fix #92: shortcut to copy username 2016-02-22 10:09:23 +03:00
Antelle 99496253d9 fix #93: save on exit 2016-02-22 09:59:50 +03:00
Antelle 9a315f3104 fix #88: capslock indicator 2016-02-18 21:57:18 +03:00
Antelle eea911224b Merge branch 'release-1.0' into develop
Conflicts:
	release-notes.md
2016-02-18 00:15:29 +03:00
Antelle e88aabe431 Merge branch 'release-1.0' 2016-02-17 23:59:57 +03:00
Antelle 59544a630d bump version 2016-02-17 23:59:47 +03:00
Antelle a3317ce51c release notes 2016-02-17 23:58:30 +03:00
Antelle 6108a0c072 up baron to more stable version 2016-02-17 23:57:42 +03:00
Antelle 7eba0bccef fix #90: restored dragdrop support 2016-02-17 23:57:12 +03:00
Antelle 1df068c92a fix details layout 2016-02-17 00:01:37 +03:00
Antelle 935b49899f fix #18: close generator popup on lock 2016-02-16 23:01:04 +03:00
Antelle dd50de3409 up scrollbar 2016-02-16 00:07:24 +03:00
Antelle ab76e3f90d generator presets 2016-02-16 00:06:11 +03:00
Antelle ef23e91d34 Merge branch 'release-1.0' into develop
Conflicts:
	release-notes.md
2016-02-14 19:46:03 +03:00
Antelle feb8b2f66b Merge branch 'release-1.0' 2016-02-14 19:36:11 +03:00
Antelle f524dc9fc9 bump version 2016-02-14 19:36:04 +03:00
Antelle 387f8a4840 Merge branch 'release-1.0' 2016-02-14 19:32:30 +03:00
Antelle e5301b8047 release notes 2016-02-14 19:31:39 +03:00
Antelle 23c778dca7 fix updater 2016-02-14 19:31:05 +03:00
Antelle 1aaa2d325d Merge branch 'release-1.0' into develop
Conflicts:
	release-notes.md
2016-02-14 17:10:38 +03:00
Antelle 3258940d07 fix tags 2016-02-14 17:09:57 +03:00
Antelle b5be61f15c fix #82: check position 2016-02-14 16:24:49 +03:00
Antelle 01e6533419 save/restore window position after close 2016-02-14 16:17:17 +03:00
Antelle 8fc4fec3c2 fix #75: option to lock on password copy 2016-02-14 15:05:31 +03:00
Antelle 4eb5eb39e9 option to remember keyfiles 2016-02-14 14:20:21 +03:00
Antelle c65b7f7331 beta 2016-02-14 10:56:24 +03:00
Antelle c542d42be1 npm beta script 2016-02-14 10:47:10 +03:00
Antelle cd6704792b warning for beta version 2016-02-14 10:38:57 +03:00
Antelle 5449e01da8 typo 2016-02-13 10:54:41 +03:00
Antelle be21ed8c61 hide statusbar in iphone homescreen app 2016-02-13 10:33:44 +03:00
Antelle ef7e316225 Merge branch 'master' into develop 2016-02-12 22:20:39 +03:00
Antelle af34c966b9 up electron 2016-02-12 20:43:03 +03:00
Antelle 186eb7b359 Merge branch 'develop' 2016-02-12 20:41:29 +03:00
Antelle d128e89cb2 version 2016-02-12 20:41:14 +03:00
Antelle 163c4045fe screenshot 2016-02-07 16:28:05 +03:00
Antelle b1992e3df1 screenshot 2016-02-07 16:26:04 +03:00
Antelle bea406d9eb readme 2016-02-07 16:23:40 +03:00
Antelle 99f1e20246 include order 2016-02-07 16:09:35 +03:00
Antelle 00f65b5835 fix #77: touch icon 2016-02-07 16:08:37 +03:00
Antelle 0c8a73b099 check local version in updater 2016-02-07 14:49:31 +03:00
Antelle f1b1c8a8d5 fix #79: using system proxy settings for updater 2016-02-07 14:14:43 +03:00
Antelle 1df736d85b fixed memory leaks, updated libs, switched to jquery 2016-02-07 12:16:24 +03:00
Antelle 8119c75412 fix #78: command-line option to disable updater 2016-02-06 14:40:40 +03:00
Antelle 08c61056b5 track changes in local files 2016-02-06 13:59:57 +03:00
Antelle 31307d7710 fix open styles 2016-02-06 10:29:26 +03:00
Antelle 68845b2be8 show last file after lock fix 2016-02-06 10:27:11 +03:00
Antelle 8bf5699cf4 list icon alignment 2016-02-05 22:04:45 +03:00
Antelle c68fef14e6 updater link 2016-02-05 00:08:04 +03:00
Antelle 66c0d4ec3d hide tip on page resize 2016-02-04 22:48:25 +03:00
Antelle 92262b3d7b fix details 2016-02-04 22:41:44 +03:00
Antelle d0182a65f8 footer tips 2016-02-04 22:38:57 +03:00
Antelle f0d4125c97 check electron version in updater 2016-02-03 23:44:18 +03:00
Antelle 2fd6e11b46 layout bugfixes 2016-02-03 23:31:54 +03:00
Antelle bb6f4a55c4 Merge branch 'master' into develop
Conflicts:
	release-notes.md
2016-02-02 21:00:05 +03:00
Antelle c59441e31e fix release date 2016-02-02 20:59:07 +03:00
Antelle 8f7c7d1151 Merge branch 'master' into develop 2016-02-02 20:19:09 +03:00
Antelle f35c4abc50 fix mobile back button height 2016-02-02 19:32:48 +03:00
Antelle 2227c1df19 fix updater for v1 2016-01-31 17:28:09 +03:00
Antelle f663c483b5 fix details field editor overlap 2016-01-31 17:25:01 +03:00
Antelle fbb4c97128 Merge branch 'master' into develop 2016-01-31 17:01:58 +03:00
Antelle fa57125e38 remove console 2016-01-31 12:26:30 +03:00
Antelle e2e5cac020 version 2016-01-22 21:19:22 +03:00
Antelle d8e3b67d0a fix issues with clipboard clear 2016-01-22 20:51:36 +03:00
Antelle 6b301d8040 fix #80: prevent data loss on group move 2016-01-22 20:23:53 +03:00
Antelle 4173b20c92 typo 2016-01-20 20:03:20 +03:00
575 changed files with 63129 additions and 10147 deletions
+14
View File
@@ -0,0 +1,14 @@
{
"presets": [],
"plugins": [
["@babel/plugin-proposal-class-properties", { "loose": true }],
["@babel/plugin-proposal-object-rest-spread", { "loose": true,
"useBuiltIns": true
}],
"@babel/plugin-proposal-optional-catch-binding",
"@babel/plugin-proposal-optional-chaining",
"@babel/plugin-proposal-nullish-coalescing-operator",
"@babel/plugin-proposal-logical-assignment-operators",
"@babel/plugin-external-helpers"
]
}
+1 -8
View File
@@ -10,17 +10,10 @@ insert_final_newline = true
charset = utf-8
indent_style = space
indent_size = 4
charset = utf-8
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[*.json]
indent_size = 2
[.jshintrc]
indent_size = 2
[*.scss]
[{*.nsh,*.yml,*.yaml,*.json}]
indent_size = 2
+69
View File
@@ -0,0 +1,69 @@
{
"plugins": ["prettier", "import", "babel"],
"extends": ["standard", "eslint:recommended", "plugin:prettier/recommended"],
"rules": {
"semi": ["error", "always"],
"one-var": "off",
"space-before-function-paren": "off",
"no-throw-literal": "off",
"camelcase": ["error", { "properties": "always" }],
"no-console": "error",
"no-alert": "error",
"no-debugger": "error",
"prefer-arrow-callback": "error",
"object-property-newline": "off",
"no-useless-escape": "off",
"no-var": "error",
"prefer-const": "error",
"no-unused-expressions": "off",
"strict": ["error", "never"],
"no-mixed-operators": "off",
"prefer-promise-reject-errors": "off",
"standard/no-callback-literal": "off",
"object-curly-spacing": "off",
"quote-props": "off",
"no-new-object": "error",
"object-shorthand": "error",
"no-array-constructor": "error",
"array-callback-return": "error",
"no-eval": "error",
"no-new-func": "error",
"prefer-rest-params": "error",
"prefer-spread": "error",
"no-useless-constructor": "error",
"no-dupe-class-members": "error",
"no-duplicate-imports": "error",
"eqeqeq": "error",
"no-unneeded-ternary": "error",
"curly": "error",
"prettier/prettier": "error",
"no-empty": "off",
"no-restricted-syntax": [
"error",
{
"selector": "ExportDefaultDeclaration",
"message": "Prefer named exports"
}
],
"import/no-webpack-loader-syntax": "off",
"import/no-relative-parent-imports": "error",
"import/first": "error",
"import/no-default-export": "error",
"babel/no-unused-expressions": "error",
"node/no-callback-literal": "off"
},
"parserOptions": {
"sourceType": "module",
"ecmaFeatures": {
"impliedStrict": true
}
},
"parser": "babel-eslint",
"globals": {
"_": true,
"$": true
},
"env": {
"browser": true
}
}
+46
View File
@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at antelle.net@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
+12
View File
@@ -0,0 +1,12 @@
# These are supported funding model platforms
github: [keeweb, antelle]
patreon: # Replace with a single Patreon username
open_collective: keeweb
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # for example PayPal links
+34
View File
@@ -0,0 +1,34 @@
---
name: Bug report
about: Create a report to help us improve KeeWeb
title: ''
labels: 'bug'
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Environment**
Please copy all version information from Settings/Help
**Kdbx File**
Does it happen on Demo or New database?
If you have a test db without your personal data, please attach it.
**Logs**
Please open dev tools in your browser and attach output log from Console tab. If you are using a desktop app, devtools can be opened from Settings/General/Advanced.
+1
View File
@@ -0,0 +1 @@
blank_issues_enabled: true
+20
View File
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: 'enhancement'
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
+15
View File
@@ -0,0 +1,15 @@
Thanks for taking the time to contribute! :gift:
Please follow these steps:
1. work on the right branch: it must be `develop` for new features and `master` for hotfixes
2. make sure the feature you add is not listed in [banned features](https://github.com/keeweb/keeweb/wiki/Unsupported-Features)
3. check compatibility with [the project roadmap](https://github.com/keeweb/keeweb/wiki/TODO) and key features: you should not break anything
4. if your feature is introducing a lot of new UI or changing any UX or design concept, please open an issue to discuss it first
5. please respect existing style in code, styles, and markup (hint: install and enable [editorconfig](http://editorconfig.org/) in your editor)
6. don't add any dependencies
7. test your code: it must work in all browsers, Windows, OSX, and Linux
8. if your code is platform-dependent, please add corresponding switches
9. respect each platform: don't create a behaviour that breaks interface guidelines or user expectations
10. run `grunt` and make sure it's passing
11. replace this message with the actual description
+11
View File
@@ -0,0 +1,11 @@
FROM snapcore/snapcraft:stable
COPY entrypoint.sh /entrypoint.sh
RUN apt-get update
RUN apt-get install -y build-essential git-core unzip curl pkg-config rpm
RUN curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash -
RUN apt-get install -y nodejs
RUN npm i -g grunt-cli
ENTRYPOINT ["/entrypoint.sh"]
+5
View File
@@ -0,0 +1,5 @@
name: 'Linux Build'
description: 'Build KeeWeb on Linux in Docker'
runs:
using: 'docker'
image: 'Dockerfile'
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash -e
cd /github/workspace
npm ci
grunt desktop-linux
+404
View File
@@ -0,0 +1,404 @@
#!/usr/bin/env python3
#
# git-restore-mtime - Change mtime of files based on commit date of last change
#
# Copyright (C) 2012 Rodrigo Silva (MestreLion) <linux@rodrigosilva.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. See <http://www.gnu.org/licenses/gpl.html>
#
"""
Change the modification time (mtime) of all files in work tree, based on the
date of the most recent commit that modified the file.
Useful prior to generating release tarballs, so each file is archived with a
date that is similar to the date when the file was actually last modified,
assuming the actual modification date and its commit date are close.
By default ignores all ignored and untracked files, and also refuses to work
on trees with uncommitted changes.
"""
# TODO:
# - Add -z on git whatchanged/ls-files so we don't deal with filename decode/OS normalization
# - When Python is bumped to 3.7, use text instead of universal_newlines on subprocess
# - Update "Statistics for some large projects" with modern hardware and repositories.
# - Create a README.md for git-restore-mtime alone. It deserves extensive documentation
# - Move Statistics there
# FIXME:
# - When current dir is outside the worktree, e.g. using --work-tree, `git ls-files`
# assume any relative pathspecs are to worktree root, not the current dir. As such,
# relative pathspecs may not work.
# - Renames and mode changes should not change file mtime:
# - Must check on status 'R100' and mode changes with same blobs
# - Should require status to be (A, C, M, R<100, T). D will never be processed as
# filelist is a subset of lsfileslist.
# - Check file (A, D) for directory mtime is not sufficient:
# - Renames also change dir mtime, unless rename was on a parent dir
# - If most recent change of all files in a dir was a [M]odification,
# dir might not be touched at all.
# - Dirs containing only subdirectories but no direct files will also
# not be touched. They're files' [grand]parent dir, but never their dirname().
# - Some solutions:
# - After files done, perform some dir processing for missing dirs, finding latest
# file (A, D, R)
# - Simple approach: dir mtime is most recent child (dir or file) mtime
# - Use a virtual concept of "created at most at" to fill missing info, bubble up
# to parents and grandparents
# - When handling [grand]parent dirs, stay inside <pathspec>
# - Better handling of merge commits. `-m` is plain *wrong*. `-c/--cc` is perfect, but
# painfully slow. First pass without merge commits is not accurate. Maybe add a new
# `--accurate` mode for `--cc`?
if __name__ != "__main__":
raise ImportError("{} should not be used as a module.".format(__name__))
import subprocess, shlex
import sys, os.path
import logging
import argparse
import time
# Update symlinks only if the OS supports not following them
UPDATE_SYMLINKS = bool(os.utime in getattr(os, 'supports_follow_symlinks', []))
STEPMISSING = 100
# Command-line interface ######################################################
def parse_args():
parser = argparse.ArgumentParser(
description="""Restore original modification time of files based on the date of the
most recent commit that modified them. Useful when generating release tarballs.""")
group = parser.add_mutually_exclusive_group()
group.add_argument('--quiet', '-q', dest='loglevel',
action="store_const", const=logging.WARNING, default=logging.INFO,
help="Suppress informative messages and summary statistics.")
group.add_argument('--verbose', '-v', action="count",
help="Print additional information for each processed file.")
parser.add_argument('--force', '-f', action="store_true",
help="Force execution on trees with uncommitted changes.")
parser.add_argument('--merge', '-m', action="store_true",
help="""Include merge commits. Leads to more recent mtimes and more files per
commit, thus with the same mtime (which may or may not be what you want). Including
merge commits may lead to less commits being evaluated (all files are found sooner),
which improves performance, sometimes substantially. But since merge commits are
usually huge, processing them may also take longer, sometimes substantially.
By default merge logs are only used for files missing from regular commit logs.""")
parser.add_argument('--first-parent', action="store_true",
help="""Consider only the first parent, the "main branch", when parsing merge
commit logs. Only effective when merge commits are included in the log, either
by --merge or to find missing files after first log parse. See --skip-missing.""")
parser.add_argument('--skip-missing', '-s',
action="store_false", default=True, dest="missing",
help="""Do not try to find missing files. If some files were not found in regular
commit logs, by default it re-tries using merge commit logs for these files (if
--merge was not already used). This option disables this behavior, which may slightly
improve performance, but files found only in merge commits will not be updated.""")
parser.add_argument('--no-directories', '-D',
action="store_false", default=True, dest='dirs',
help="""Do not update directory mtime for files created, renamed or deleted in it.
Note: just modifying a file will not update its directory mtime.""")
parser.add_argument('--test', '-t', action="store_true", default=False,
help="Test run: do not actually update any file")
parser.add_argument('--commit-time', '-c',
action='store_true', default=False, dest='commit_time',
help="Use commit time instead of author time")
parser.add_argument('pathspec', nargs='*', metavar='PATH',
help="""Only modify paths matching PATH, directories or files, relative to current
directory. Default is to modify all files handled by git, ignoring untracked files
and submodules.""")
parser.add_argument('--work-tree', dest='workdir',
help="Path to the work tree, if not current directory or one of its parents.")
parser.add_argument('--git-dir', dest='gitdir',
help="Path to the git repository, if not the default <work-tree-root>/.git")
parser.add_argument('--skip-older-than', metavar='SECONDS', type=int,
help="""Do not modify files that are older than %(metavar)s.
It can significantly improve performance if fewer files are processed.
Useful on CI builds, which can eventually switch workspace to different branch,
but mostly performs builds on the same one (e.g. master).
""")
return parser.parse_args()
# Helper functions ############################################################
def setup_logging(args):
TRACE = logging.DEBUG // 2
logging.Logger.trace = lambda _, m, *a, **k: _.log(TRACE, m, *a, **k)
level = (args.verbose and max(TRACE, logging.DEBUG // args.verbose)) or args.loglevel
logging.basicConfig(level=level, format='%(message)s')
return logging.getLogger()
def normalize(path):
"""Normalize paths from git, handling non-ASCII characters.
Git for Windows, as of v1.7.10, stores paths as UTF-8 normalization form C. If path
contains non-ASCII or non-printable chars it outputs the UTF-8 in octal-escaped
notation, double-quoting the whole path. Double-quotes and backslashes are also escaped.
https://git-scm.com/docs/git-config#Documentation/git-config.txt-corequotePath
https://github.com/msysgit/msysgit/wiki/Git-for-Windows-Unicode-Support
https://github.com/git/git/blob/master/Documentation/i18n.txt
Example on git output, this function reverts this:
r'back\slash_double"quote_açaí' -> r'"back\\slash_double\"quote_a\303\247a\303\255"'
"""
if path and path[0] == '"':
# Python 2: path = path[1:-1].decode("string-escape")
# Python 3: https://stackoverflow.com/a/46650050/624066
path = (path[1:-1] # Remove enclosing double quotes
.encode('latin1') # Convert to bytes, required 'unicode-escape'
.decode('unicode-escape') # Perform the actual octal-escaping decode
.encode('latin1') # 1:1 mapping to bytes, forming UTF-8 encoding
.decode('utf8')) # Decode from UTF-8
# Make sure the slash matches the OS; for Windows we need a backslash
return os.path.normpath(path)
if UPDATE_SYMLINKS:
def touch(path, mtime, test=False):
"""The actual mtime update"""
if test: return
os.utime(path, (mtime, mtime), follow_symlinks=False)
else:
def touch(path, mtime, test=False):
"""The actual mtime update"""
if test: return
os.utime(path, (mtime, mtime))
def isodate(secs):
return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(secs))
# Git class and parselog(), the heart of the script ###########################
class Git():
def __init__(self, workdir=None, gitdir=None):
self.gitcmd = ['git']
if workdir: self.gitcmd.extend(('--work-tree', workdir))
if gitdir : self.gitcmd.extend(('--git-dir', gitdir))
self.workdir, self.gitdir = self._repodirs()
def ls_files(self, pathlist=None):
return (normalize(_) for _ in self._run('ls-files --full-name', pathlist))
def is_dirty(self):
return bool(self._run('diff --no-ext-diff --quiet', output=False))
def log(self, merge=False, first_parent=False, commit_time=False, pathlist=None):
cmd = 'whatchanged --pretty={}'.format('%ct' if commit_time else '%at')
if merge: cmd += ' -m'
if first_parent: cmd += ' --first-parent'
return self._run(cmd, pathlist)
def _repodirs(self):
return (os.path.normpath(_) for _ in
self._run('rev-parse --show-toplevel --absolute-git-dir', check=True))
def _run(self, cmdstr, pathlist=None, output=True, check=False):
cmdlist = self.gitcmd + shlex.split(cmdstr)
if pathlist:
cmdlist.append('--')
cmdlist.extend(pathlist)
log.trace("Executing: %s", ' '.join(cmdlist))
if not output:
return subprocess.call(cmdlist)
if check:
try:
stdout = subprocess.check_output(cmdlist, universal_newlines=True)
return stdout.splitlines()
except subprocess.CalledProcessError as e:
raise self.Error(e.returncode, e.cmd, e.output, e.stderr)
self.proc = subprocess.Popen(cmdlist, stdout=subprocess.PIPE, universal_newlines=True)
return (_.strip() for _ in self.proc.stdout)
class Error(subprocess.CalledProcessError): pass
def parselog(filelist, dirlist, stats, git, merge=False, filterlist=None):
mtime = 0
for line in git.log(merge, args.first_parent, args.commit_time, filterlist):
stats['loglines'] += 1
# Blank line between Date and list of files
if not line: continue
# File line
if line[0] == ':': # Faster than line.startswith(':')
# If line describes a rename, linetok has three tokens, otherwise two
linetok = line.split('\t')
status = linetok[0]
file = linetok[-1]
# Handles non-ASCII chars and OS path separator
file = normalize(file)
if file in filelist:
stats['files'] -= 1
log.debug("%d\t%d\t%d\t%s\t%s",
stats['loglines'], stats['commits'], stats['files'],
isodate(mtime), file)
filelist.remove(file)
try:
touch(os.path.join(git.workdir, file), mtime, args.test)
stats['touches'] += 1
except Exception as e:
log.error("ERROR: %s", e)
stats['errors'] += 1
if args.dirs:
dirname = os.path.dirname(file)
if status[-1] in ('A', 'D') and dirname in dirlist:
log.debug("%d\t%d\t-\t%s\t%s",
stats['loglines'], stats['commits'],
isodate(mtime), "{}/".format(dirname or '.'))
dirlist.remove(dirname)
try:
touch(os.path.join(git.workdir, dirname), mtime, args.test)
stats['dirtouches'] += 1
except Exception as e:
log.error("ERROR: %s", e)
stats['direrrors'] += 1
# Date line
else:
stats['commits'] += 1
mtime = int(line)
# All files done?
if not stats['files']:
git.proc.terminate() # hackish, but does the job. Not needed anyway
return
# Main Logic ##################################################################
def main():
start = time.time() # yes, Wall time. CPU time is not realistic for users.
stats = {_: 0 for _ in ('loglines', 'commits', 'touches', 'errors', 'dirtouches', 'direrrors')}
# First things first: Where and Who are we?
try:
git = Git(args.workdir, args.gitdir)
except Git.Error as e:
# Not in a git repository, and git already informed user on stderr. So we just...
return e.returncode
# Do not work on dirty repositories, unless --force
if not args.force and git.is_dirty():
log.critical(
"ERROR: There are local changes in the working directory.\n"
"This could lead to undesirable results for modified files.\n"
"Please, commit your changes (or use --force) and try again.\n"
"Aborting")
return 1
# Get the files managed by git and build file and dir list to be processed
filelist = set()
dirlist = set()
if UPDATE_SYMLINKS and not args.skip_older_than:
filelist = set(git.ls_files(args.pathspec))
dirlist = set(os.path.dirname(_) for _ in filelist)
else:
for path in git.ls_files(args.pathspec):
fullpath = os.path.join(git.workdir, path)
# Symlink (to file, to dir or broken - git handles the same way)
if not UPDATE_SYMLINKS and os.path.islink(fullpath):
log.warning("WARNING: Skipping symlink, OS does not support update: %s", path)
continue
# skip files which are older than given threshold
if args.skip_older_than and start - os.path.getmtime(fullpath) > args.skip_older_than:
continue
# Always add them relative to worktree root
filelist.add(path)
dirlist.add(os.path.dirname(path))
stats['totalfiles'] = stats['files'] = len(filelist)
log.info("{0:,} files to be processed in work dir".format(stats['totalfiles']))
if not filelist:
# Nothing to do. Exit silently and without errors, just like git does
return
# Process the log until all files are 'touched'
log.debug("Line #\tLog #\tF.Left\tModification Time\tFile Name")
parselog(filelist, dirlist, stats, git, args.merge, args.pathspec)
# Missing files
if filelist:
# Try to find them in merge logs, if not done already
# (usually HUGE, thus MUCH slower!)
if args.missing and not args.merge:
filterlist = list(filelist)
for i in range(0, len(filterlist), STEPMISSING):
parselog(filelist, dirlist, stats, git,
merge=True, filterlist=filterlist[i:i+STEPMISSING])
# Still missing some?
for file in filelist:
log.warning("WARNING: not found in log: %s", file)
# Final statistics
# Suggestion: use git-log --before=mtime to brag about skipped log entries
log.info(
"Statistics:\n"
"{:13,.2f} seconds\n"
"{:13,} log lines processed\n"
"{:13,} commits evaluated"
"".format(time.time()-start, stats['loglines'], stats['commits']))
if args.dirs:
if stats['direrrors']: log.info("{:13,} directory update errors".format(stats['direrrors']))
log.info("{:13,} directories updated".format(stats['dirtouches']))
if stats['touches'] != stats['totalfiles']: log.info("{:13,} files".format(stats['totalfiles']))
if stats['files']: log.info("{:13,} files missing".format(stats['files']))
if stats['errors']: log.info("{:13,} file update errors".format(stats['errors']))
log.info("{:13,} files updated".format(stats['touches']))
if args.test:
log.info("TEST RUN - No files modified!")
args = parse_args()
log = setup_logging(args)
log.trace("Arguments: %s", args)
# UI done, it's show time!
try:
sys.exit(main())
except KeyboardInterrupt:
log.info("Aborting")
sys.exit(-1)
+426
View File
@@ -0,0 +1,426 @@
name: Build
on:
push:
tags: [ '*' ]
jobs:
web:
runs-on: ubuntu-latest
steps:
- name: Get current git tag
id: get_tag
uses: keeweb/get-git-tag@v3.0.2
with:
tagRegex: "^v(\\d+\\.\\d+\\.\\d+)$"
tagRegexGroup: 1
- name: Checkout
uses: actions/checkout@v2
with:
repository: keeweb/keeweb
ref: ${{ github.repository == 'keeweb/keeweb' && github.sha || 'develop' }}
- name: Upgrade Node.js
uses: actions/setup-node@v2
with:
node-version: '16'
registry-url: 'https://registry.npmjs.org'
- name: Install npm modules
run: npm ci
- name: Test
run: npm test
- name: Grunt
run: grunt
- name: Upload artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.html
path: dist
- name: Write secrets
env:
VIRUS_TOTAL: ${{ secrets.VIRUS_TOTAL }}
run: |
mkdir keys
echo "$VIRUS_TOTAL" > keys/virus-total.json
- name: Check on VirusTotal
run: grunt virustotal
if: ${{ github.repository == 'keeweb/keeweb' }}
linux:
runs-on: ubuntu-latest
needs:
- web
steps:
- name: Get current git tag
id: get_tag
uses: keeweb/get-git-tag@v3.0.2
with:
tagRegex: "^v(\\d+\\.\\d+\\.\\d+)$"
tagRegexGroup: 1
- name: Checkout
uses: actions/checkout@v2
with:
repository: keeweb/keeweb
ref: ${{ github.repository == 'keeweb/keeweb' && github.sha || 'develop' }}
- name: Download artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.html
path: dist
- name: Write secrets
env:
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
KEEWEB_SIGN: ${{ secrets.KEEWEB_SIGN }}
run: |
mkdir keys
echo "$PRIVATE_KEY" > keys/private-key.pem
echo "$KEEWEB_SIGN" > keys/keeweb-sign.json
- name: Build in Docker
uses: ./.github/actions/linux-build
- name: Upload AppImage artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.AppImage
path: dist/desktop/KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.AppImage
- name: Upload snap artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.snap
path: dist/desktop/KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.snap
- name: Upload deb artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.x64.deb
path: dist/desktop/KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.x64.deb
- name: Upload zip artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.x64.zip
path: dist/desktop/KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.x64.zip
- name: Upload rpm artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.x86_64.rpm
path: dist/desktop/KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.x86_64.rpm
darwin:
runs-on: macos-latest
needs:
- web
steps:
- name: Get current git tag
id: get_tag
uses: keeweb/get-git-tag@v3.0.2
with:
tagRegex: "^v(\\d+\\.\\d+\\.\\d+)$"
tagRegexGroup: 1
- name: Checkout
uses: actions/checkout@v2
with:
repository: keeweb/keeweb
ref: ${{ github.repository == 'keeweb/keeweb' && github.sha || 'develop' }}
- name: Download artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.html
path: dist
- name: Upgrade Node.js
uses: actions/setup-node@v2
with:
node-version: '16'
registry-url: 'https://registry.npmjs.org'
- name: Install npm modules
run: npm ci
- name: Install grunt
run: sudo npm i -g grunt-cli
- name: Write secrets
env:
CODESIGN: ${{ secrets.CODESIGN }}
APPLE_DEPLOY_PASSWORD: ${{ secrets.APPLE_DEPLOY_PASSWORD }}
APPLE_ID_USERNAME: ${{ secrets.APPLE_ID_USERNAME }}
APPLE_PROVISIONING_PROFILE: ${{ secrets.APPLE_PROVISIONING_PROFILE }}
run: |
mkdir keys
echo "$CODESIGN" > keys/codesign.json
xcrun altool --store-password-in-keychain-item "AC_PASSWORD" -u "$APPLE_ID_USERNAME" -p "$APPLE_DEPLOY_PASSWORD"
echo "$APPLE_PROVISIONING_PROFILE" | base64 -d > keys/keeweb.provisionprofile
- name: Import certificates
uses: keeweb/import-codesign-certs@v1
with:
p12-file-base64: ${{ secrets.APPLE_CERTIFICATE }}
p12-password: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
- name: Grunt
run: grunt --max-old-space-size=4096 desktop-darwin ${{ github.repository != 'keeweb/keeweb' && '--skip-sign' || '' }}
- name: Upload x64 dmg artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.mac.x64.dmg
path: dist/desktop/KeeWeb-${{ steps.get_tag.outputs.tag }}.mac.x64.dmg
- name: Upload arm64 dmg artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.mac.arm64.dmg
path: dist/desktop/KeeWeb-${{ steps.get_tag.outputs.tag }}.mac.arm64.dmg
win32:
runs-on: windows-latest
needs:
- web
steps:
- name: Get current git tag
id: get_tag
uses: keeweb/get-git-tag@v3.0.2
with:
tagRegex: "^v(\\d+\\.\\d+\\.\\d+)$"
tagRegexGroup: 1
- name: Checkout
uses: actions/checkout@v2
with:
repository: keeweb/keeweb
ref: ${{ github.repository == 'keeweb/keeweb' && github.sha || 'develop' }}
- name: Download artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.html
path: dist
- name: Upgrade Node.js
uses: actions/setup-node@v2
with:
node-version: '16'
registry-url: 'https://registry.npmjs.org'
- name: Install npm modules
run: npm ci
- name: Install grunt
run: npm i -g grunt-cli
- name: Write secrets
env:
CODESIGN: ${{ secrets.CODESIGN }}
MS_CODESIGN_PRIVATE_KEY_CLIENT: ${{ secrets.MS_CODESIGN_PRIVATE_KEY_CLIENT }}
MS_CODESIGN_PUBLIC_KEY_CLIENT: ${{ secrets.MS_CODESIGN_PUBLIC_KEY_CLIENT }}
MS_CODESIGN_PUBLIC_KEY_SERVER: ${{ secrets.MS_CODESIGN_PUBLIC_KEY_SERVER }}
run: |
mkdir keys
echo $Env:CODESIGN > keys/codesign.json
mkdir keys/code-signing
echo $Env:MS_CODESIGN_PRIVATE_KEY_CLIENT > keys/code-signing/private-key-client.pem
echo $Env:MS_CODESIGN_PUBLIC_KEY_CLIENT > keys/code-signing/public-key-client.pem
echo $Env:MS_CODESIGN_PUBLIC_KEY_SERVER > keys/code-signing/public-key-server.pem
- name: Grunt
run: grunt desktop-win32 ${{ github.repository != 'keeweb/keeweb' && '--skip-sign' || '' }}
- name: Upload ia32 exe artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.win.ia32.exe
path: dist/desktop/KeeWeb-${{ steps.get_tag.outputs.tag }}.win.ia32.exe
- name: Upload ia32 zip artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.win.ia32.zip
path: dist/desktop/KeeWeb-${{ steps.get_tag.outputs.tag }}.win.ia32.zip
- name: Upload x64 exe artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.win.x64.exe
path: dist/desktop/KeeWeb-${{ steps.get_tag.outputs.tag }}.win.x64.exe
- name: Upload x64 zip artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.win.x64.zip
path: dist/desktop/KeeWeb-${{ steps.get_tag.outputs.tag }}.win.x64.zip
- name: Upload arm64 exe artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.win.arm64.exe
path: dist/desktop/KeeWeb-${{ steps.get_tag.outputs.tag }}.win.arm64.exe
- name: Upload arm64 zip artifact
uses: actions/upload-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.win.arm64.zip
path: dist/desktop/KeeWeb-${{ steps.get_tag.outputs.tag }}.win.arm64.zip
publish:
runs-on: ubuntu-latest
needs:
- linux
- darwin
- win32
steps:
- name: Get current git tag
id: get_tag
uses: keeweb/get-git-tag@v3.0.2
with:
tagRegex: "^v(\\d+\\.\\d+\\.\\d+)$"
tagRegexGroup: 1
- name: Setup GCloud
uses: google-github-actions/setup-gcloud@master
with:
version: '285.0.0'
service_account_key: ${{ secrets.GCP_SA_KEY }}
export_default_credentials: true
- name: Checkout
uses: actions/checkout@v2
with:
repository: keeweb/keeweb
path: keeweb
ref: ${{ github.repository == 'keeweb/keeweb' && github.sha || 'develop' }}
- name: Upgrade Node.js
uses: actions/setup-node@v2
with:
node-version: '16'
registry-url: 'https://registry.npmjs.org'
- name: Install npm modules
working-directory: keeweb
run: npm ci
- name: Download html artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.html
path: html
- name: Download linux.AppImage artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.AppImage
path: assets
- name: Download linux.snap artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.snap
path: assets
- name: Download linux.deb artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.x64.deb
path: assets
- name: Download linux.zip artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.x64.zip
path: assets
- name: Download linux.rpm artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.linux.x86_64.rpm
path: assets
- name: Download darwin.x64.dmg artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.mac.x64.dmg
path: assets
- name: Download darwin.arm64.dmg artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.mac.arm64.dmg
path: assets
- name: Download win32.ia32.exe artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.win.ia32.exe
path: assets
- name: Download win32.ia32.zip artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.win.ia32.zip
path: assets
- name: Download win32.x64.exe artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.win.x64.exe
path: assets
- name: Download win32.x64.zip artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.win.x64.zip
path: assets
- name: Download win32.arm64.exe artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.win.arm64.exe
path: assets
- name: Download win32.arm64.zip artifact
uses: actions/download-artifact@v1
with:
name: KeeWeb-${{ steps.get_tag.outputs.tag }}.win.arm64.zip
path: assets
- name: Zip html
working-directory: html
run: zip -vr ../assets/KeeWeb-${{ steps.get_tag.outputs.tag }}.html.zip .
- name: Copy assets to dist
run: mkdir -p keeweb/dist/desktop && cp assets/* keeweb/dist/desktop
- name: Write secrets
env:
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
KEEWEB_SIGN: ${{ secrets.KEEWEB_SIGN }}
working-directory: keeweb
run: |
mkdir keys
echo "$PRIVATE_KEY" > keys/private-key.pem
echo "$KEEWEB_SIGN" > keys/keeweb-sign.json
- name: Grunt
working-directory: keeweb
run: grunt finish-release
- name: Copy signatures to assets
run: cp keeweb/dist/desktop/Verify.sign.sha256 assets
- name: Copy checksums to assets
run: cp keeweb/dist/desktop/Verify.sha256 assets
- name: Login to DockerHub Registry
env:
DOCKERHUB_ACCESS_TOKEN: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
run: echo $DOCKERHUB_ACCESS_TOKEN | docker login -u $DOCKERHUB_USERNAME --password-stdin
- name: Copy dist to the Docker context
run: cp -r html keeweb/package/docker/dist
- name: Build the Docker image
working-directory: keeweb
run: docker build -t antelle/keeweb:latest -t antelle/keeweb:${{ steps.get_tag.outputs.tag }} package/docker
- name: Push the Docker image to dockerhub
if: ${{ github.repository == 'keeweb/keeweb' }}
run: docker push --all-tags antelle/keeweb
- name: Extract release notes
run: node util/extract-release-notes.js --version=${{ steps.get_tag.outputs.tag }} --output=tmp/release-body.md
working-directory: keeweb
- name: Publish GitHub release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ steps.get_tag.outputs.tag }}
name: Desktop apps v${{ steps.get_tag.outputs.tag }}
files: assets/*
body_path: keeweb/tmp/release-body.md
- name: Checkout gh-pages
uses: actions/checkout@v2
with:
ref: gh-pages
path: gh-pages
fetch-depth: 0
- name: Commit dist to gh-pages
working-directory: gh-pages
run: |
git rm -r '*'
cp -r ../html/* .
mkdir -p .github/workflows
echo $GITHUB_SHA > build.txt
date >> build.txt
git add .
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git commit -am v${{ steps.get_tag.outputs.tag }}
- name: Push gh-pages
uses: keeweb/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages
directory: gh-pages
- name: Restore git mtime
working-directory: gh-pages
run: python3 ../keeweb/.github/actions/scripts/git-restore-mtime.py
- name: Sync the website
if: ${{ github.repository == 'keeweb/keeweb' }}
run: gsutil -m rsync -r -d -x "^\." gh-pages gs://app.keeweb.info/
- name: Purge CloudFlare cache
if: ${{ github.repository == 'keeweb/keeweb' }}
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
run: |
curl -sS -X POST "https://api.cloudflare.com/client/v4/zones/dbda8e7e454d23edb08d4bc3b3f6f872/purge_cache" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-H "Content-Type: application/json" \
--data '{"purge_everything":true}'
+12 -3
View File
@@ -2,9 +2,18 @@ workspace.xml
misc.xml
.DS_Store
node_modules/
bower_components/
*.log
dist/
/dist/
tmp/
build/
coverage/
keys
*.user
bin/
obj/
*.xcworkspace/
xcuserdata/
*.suo
.idea/
.vscode/
*.iml
test/dist/
Generated
-1
View File
@@ -1 +0,0 @@
keeweb
-13
View File
@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectCodeStyleSettingsManager">
<option name="PER_PROJECT_SETTINGS">
<value>
<XML>
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
</XML>
</value>
</option>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (1)" />
</component>
</project>
-22
View File
@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="!?*.java" />
<entry name="!?*.form" />
<entry name="!?*.class" />
<entry name="!?*.groovy" />
<entry name="!?*.scala" />
<entry name="!?*.flex" />
<entry name="!?*.kt" />
<entry name="!?*.clj" />
<entry name="!?*.aj" />
</wildcardResourcePatterns>
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
</component>
</project>
-3
View File
@@ -1,3 +0,0 @@
<component name="CopyrightManager">
<settings default="" />
</component>
-6
View File
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>
-6
View File
@@ -1,6 +0,0 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="JSHint" enabled="true" level="ERROR" enabled_by_default="true" />
</profile>
</component>
-7
View File
@@ -1,7 +0,0 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="PROJECT_PROFILE" value="Project Default" />
<option name="USE_PROJECT_PROFILE" value="true" />
<version value="1.0" />
</settings>
</component>
-2
View File
@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4" />
-70
View File
@@ -1,70 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JSHintConfiguration" version="2.6.3" use-config-file="true">
<option asi="false" />
<option bitwise="true" />
<option boss="false" />
<option browser="true" />
<option camelcase="false" />
<option couch="false" />
<option curly="true" />
<option debug="false" />
<option devel="false" />
<option dojo="false" />
<option eqeqeq="true" />
<option eqnull="false" />
<option es3="false" />
<option esnext="false" />
<option evil="false" />
<option expr="false" />
<option forin="true" />
<option freeze="false" />
<option funcscope="false" />
<option gcl="false" />
<option globalstrict="false" />
<option immed="false" />
<option iterator="false" />
<option jquery="false" />
<option lastsemic="false" />
<option latedef="false" />
<option laxbreak="false" />
<option laxcomma="false" />
<option loopfunc="false" />
<option maxerr="50" />
<option mootools="false" />
<option moz="false" />
<option multistr="false" />
<option newcap="false" />
<option noarg="true" />
<option node="false" />
<option noempty="true" />
<option nomen="false" />
<option nonbsp="false" />
<option nonew="true" />
<option nonstandard="false" />
<option notypeof="false" />
<option noyield="false" />
<option onevar="false" />
<option passfail="false" />
<option phantom="false" />
<option plusplus="false" />
<option proto="false" />
<option prototypejs="false" />
<option quotmark="false" />
<option rhino="false" />
<option scripturl="false" />
<option shadow="false" />
<option smarttabs="false" />
<option strict="true" />
<option sub="false" />
<option supernew="false" />
<option trailing="false" />
<option undef="true" />
<option unused="false" />
<option validthis="false" />
<option white="false" />
<option worker="false" />
<option wsh="false" />
<option yui="false" />
</component>
</project>
-15
View File
@@ -1,15 +0,0 @@
<component name="libraryTable">
<library name="keeweb node_modules" type="javaScript">
<properties>
<option name="frameworkName" value="node_modules" />
<sourceFilesUrls>
<item url="file://$PROJECT_DIR$/node_modules" />
</sourceFilesUrls>
</properties>
<CLASSES>
<root url="file://$PROJECT_DIR$/node_modules" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>
-8
View File
@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/keeweb.iml" filepath="$PROJECT_DIR$/keeweb.iml" />
</modules>
</component>
</project>
Generated
-6
View File
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
-94
View File
@@ -1,94 +0,0 @@
{
"maxerr" : 50, // {int} Maximum error before stopping
// Enforcing
"bitwise" : false, // true: Prohibit bitwise operators (&, |, ^, etc.)
"camelcase" : true, // true: Identifiers must be in camelCase
"curly" : true, // true: Require {} for every new block or scope
"eqeqeq" : true, // true: Require triple equals (===) for comparison
"forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty()
"freeze" : true, // true: prohibits overwriting prototypes of native objects such as Array, Date etc.
"immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
"indent" : 4, // {int} Number of spaces to use for indentation
"latedef" : false, // true: Require variables/functions to be defined before being used
"newcap" : true, // true: Require capitalization of all constructor functions e.g. `new F()`
"noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee`
"noempty" : true, // true: Prohibit use of empty blocks
"nonbsp" : true, // true: Prohibit "non-breaking whitespace" characters.
"nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment)
"plusplus" : false, // true: Prohibit use of `++` & `--`
"quotmark" : "single", // Quotation mark consistency:
// false : do nothing (default)
// true : ensure whatever is used is consistent
// "single" : require single quotes
// "double" : require double quotes
"undef" : true, // true: Require all non-global variables to be declared (prevents global leaks)
"unused" : true, // Unused variables:
// true : all variables, last function parameter
// "vars" : all variables only
// "strict" : all variables, all function parameters
"strict" : true, // true: Requires all functions run in ES5 Strict Mode
"maxparams" : false, // {int} Max number of formal params allowed per function
"maxdepth" : false, // {int} Max depth of nested blocks (within functions)
"maxstatements" : false, // {int} Max number statements per function
"maxcomplexity" : false, // {int} Max cyclomatic complexity per function
"maxlen" : 160, // {int} Max number of characters per line
"varstmt" : false, // true: Disallow any var statements. Only `let` and `const` are allowed.
// Relaxing
"asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons)
"boss" : false, // true: Tolerate assignments where comparisons would be expected
"debug" : false, // true: Allow debugger statements e.g. browser breakpoints.
"eqnull" : false, // true: Tolerate use of `== null`
"esnext" : true, // true: Allow ES.next (ES6) syntax (ex: `const`)
"moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features)
// (ex: `for each`, multiple try/catch, function expression…)
"evil" : false, // true: Tolerate use of `eval` and `new Function()`
"expr" : false, // true: Tolerate `ExpressionStatement` as Programs
"funcscope" : false, // true: Tolerate defining variables inside control statements
"globalstrict" : true, // true: Allow global "use strict" (also enables 'strict')
"iterator" : false, // true: Tolerate using the `__iterator__` property
"lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block
"laxbreak" : false, // true: Tolerate possibly unsafe line breakings
"laxcomma" : false, // true: Tolerate comma-first style coding
"loopfunc" : false, // true: Tolerate functions being defined in loops
"multistr" : false, // true: Tolerate multi-line strings
"noyield" : false, // true: Tolerate generator functions with no yield statement in them.
"notypeof" : false, // true: Tolerate invalid typeof operator values
"proto" : false, // true: Tolerate using the `__proto__` property
"scripturl" : false, // true: Tolerate script-targeted URLs
"shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;`
"sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation
"supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;`
"validthis" : false, // true: Tolerate using this in a non-constructor function
// Environments
"browser" : true, // Web Browser (window, document, etc)
"browserify" : false, // Browserify (node.js code in the browser)
"couch" : false, // CouchDB
"devel" : false, // Development/debugging (alert, confirm, etc)
"dojo" : false, // Dojo Toolkit
"jasmine" : true, // Jasmine
"jquery" : false, // jQuery
"mocha" : true, // Mocha
"mootools" : false, // MooTools
"node" : false, // Node.js
"nonstandard" : false, // Widely adopted globals (escape, unescape, etc)
"phantom" : false, // PhantomJS
"prototypejs" : false, // Prototype and Scriptaculous
"qunit" : false, // QUnit
"rhino" : false, // Rhino
"shelljs" : false, // ShellJS
"typed" : false, // Globals for typed array constructions
"worker" : false, // Web Workers
"wsh" : false, // Windows Scripting Host
"yui" : false, // Yahoo User Interface
// Custom Globals
"globals" : {
"require": true,
"module": true,
"$": true,
"_": true
}
}
+8
View File
@@ -0,0 +1,8 @@
{
"tabWidth": 4,
"singleQuote": true,
"printWidth": 100,
"trailingComma": "none",
"quoteProps": "preserve",
"endOfLine": "auto"
}
+57 -19
View File
@@ -1,28 +1,66 @@
# Contributing to KeeWeb
:+1: Thanks for taking the time to contribute! :gift:
Thanks for taking the time to contribute! :gift:
There are different ways to help the project, you will find a summary here.
## Code of conduct
This project and everyone participating in it is governed by the [KeeWeb Code of Conduct](https://github.com/keeweb/keeweb/blob/master/.github/CODE_OF_CONDUCT.md#readme).
By participating, you are expected to uphold this code. Please report unacceptable behavior to antelle.net@gmail.com.
## Issues
If you have found an bug, please [open an issue](https://github.com/antelle/keeweb/issues/new) and fill in the app version and your user-agent
(you can find these details in Settings/Help section). Please check [FAQ](https://github.com/antelle/keeweb/wiki/FAQ) before submitting a new issue
and [TODO](https://github.com/antelle/keeweb/wiki/TODO) before creating a feature request.
First, let's check if it's [already there](https://github.com/keeweb/keeweb/issues).
Perhaps, someone has already reported it?
Please, describe the issue in details: what were your actions? What has happened?
Does it happen on Demo or New database? If no, how to reproduce this? If you are using a test db without your personal data, please attach it.
If it's possible, please, open dev tools in your browser and attach output log from it (Console tab). If you are using desktop app,
devtools can be opened from Settings/General/Advanced.
[Click here](https://github.com/keeweb/keeweb/issues/new/choose) to create a new issue.
When creating issues, please answer some questions asked on that page.
They will help to understand, reproduce, and fix your issue.
## Pull Requests
## Vulnerabilities
Plugins are not supported for now. So, if you want to add a feature, please, follow these steps:
We would appreciate [responsible disclosure](https://en.wikipedia.org/wiki/Responsible_disclosure).
If you would like to report a vulnerability, the preferred way to do so is [contacting the developer directly](mailto:antelle.net@gmail.com).
1. make sure it's not listed in [banned features](https://github.com/antelle/keeweb/wiki/Unsupported-Features)
2. check compatibility with [the project roadmap](https://github.com/antelle/keeweb/wiki/TODO) and key features: you should not break anything
3. if your feature is introducing a lot of new UI, or is changing any UX or design concept, please, open an issue to discuss it first
4. please, respect existing style in code, styles and markup (hint: install and enable [editorconfig](http://editorconfig.org/) in your editor)
5. don't add any dependencies
6. test your code: it must work in browser, Windows, OSX and Linux
7. if your code is platform-dependent, please add corresponding switches
8. respect each platform: don't create behaviour which breaks interface guidelines or user expectations
9. run `grunt` and make sure it's passing
## Questions, great ideas, etc...
You can [create an issue](https://github.com/keeweb/keeweb/issues/new/choose) to discuss any topic.
Indeed, questions on that page are not applicable in this case.
## Development
We don't accept (and in foreseeable future, we won't accept) anyone as a project collaborator directly.
Instead, the code should be contributed via pull requests. To get started with development, take a look at these pages:
- [Architecture](https://github.com/keeweb/keeweb/wiki/Architecture)
- [Engineering](https://github.com/keeweb/keeweb/wiki/Engineering)
- [Unsupported Features](https://github.com/keeweb/keeweb/wiki/Unsupported%20Features)
- [Pull Request Guidelines](https://github.com/keeweb/keeweb/blob/master/.github/PULL_REQUEST_TEMPLATE.md#readme)
## Pull requests
Please follow [this guide](https://github.com/keeweb/keeweb/blob/master/.github/PULL_REQUEST_TEMPLATE.md#readme).
## Docs (Wiki pages)
KeeWeb has [Wiki pages](https://github.com/keeweb/keeweb/wiki), however it's not possible to contribute with pull requests.
If you would like to improve it, please [open an issue](https://github.com/keeweb/keeweb/issues/new/choose) and submit your changes in Markdown format.
## Donations
There are two ways of donating:
- join as backer on [OpenCollective](https://opencollective.com/keeweb#support);
- sponsor the developer directly on [GitHub](https://github.com/sponsors/antelle).
Please note: donation does not imply any type of service contract.
## Translations
All KeeWeb translations are contributed by the community. To improve a translation or add a missing one,
join us on [OneSky](https://keeweb.oneskyapp.com).
## PR
We would be happy to support you if you decide to post, blog, or review the project,
or provide any other kind of PR. Please [contact the developer](mailto:antelle.net@gmail.com)
if you have anything to share. You can also poke us on [Twitter](https://twitter.com/kee_web).
+211
View File
@@ -0,0 +1,211 @@
======================================================================================
Dependencies Licenses
======================================================================================
jsqrcode license: Apache-2.0
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================================================
+693 -303
View File
File diff suppressed because it is too large Load Diff
+24
View File
@@ -0,0 +1,24 @@
MIT License
Copyright (c) 2021 Antelle https://antelle.net
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Licences of dependencies can be found here:
https://raw.githubusercontent.com/keeweb/keeweb/master/DEPS-LICENSE
-20
View File
@@ -1,20 +0,0 @@
Copyright (C) 2015 Antelle
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+77 -31
View File
@@ -1,54 +1,100 @@
# KeePass web app (unofficial)
# Free cross-platform password manager compatible with KeePass
This webapp is a browser and desktop password manager compatible with KeePass databases. It doesn't require any server or additional resources.
The app can run either in browser, or as a desktop app.
![screenshot](https://habrastorage.org/files/bfb/51e/d8d/bfb51ed8d19847d8afb827c4fbff7dd5.png)
![screenshot](img/screenshot.png)
# Quick Links
## Quick Links
Apps: [Web](https://app.keeweb.info/) [Desktop](https://github.com/antelle/keeweb/releases/latest)
Timeline: [Release Notes](release-notes.md) [TODO](https://github.com/antelle/keeweb/wiki/TODO)
On one page: [Features](https://keeweb.info/#features) [FAQ](https://github.com/antelle/keeweb/wiki/FAQ)
Apps: [Web](https://app.keeweb.info/), [Desktop](https://github.com/keeweb/keeweb/releases/latest)
Timeline: [Release Notes](release-notes.md), [TODO](https://github.com/keeweb/keeweb/wiki/TODO)
On one page: [Features](https://keeweb.info/#features), [FAQ](https://github.com/keeweb/keeweb/wiki/FAQ)
Website: [keeweb.info](https://keeweb.info)
Twitter: [kee_web](https://twitter.com/kee_web)
Donate: [OpenCollective](https://opencollective.com/keeweb#support), [GitHub](https://github.com/sponsors/antelle)
# Status
## Status
The app is already rather stable but might still need polishing, testing and improvements before v1 release, which is expected to happen in Feb 2016.
Please see [TODO](https://github.com/antelle/keeweb/wiki/TODO) for more details.
The app is quite stable now. Basic stuff, as well as more advanced operations, should be rather reliable.
# Self-hosting
## Self-hosting
Everything you need to host this app on your server is any static file server. The app is a single HTML file + cache manifest (optionally; for offline access).
You can download the latest distribution files from [gh-pages](https://github.com/antelle/keeweb/tree/gh-pages) branch.
To make Dropbox work in your self-hosted app:
Everything you need to host this app on your server is any static file server. The app is a single HTML file + a service worker (optionally; for offline access).
You can download the latest distribution files from [gh-pages](https://github.com/keeweb/keeweb/archive/gh-pages.zip) branch.
1. [create](https://www.dropbox.com/developers/apps/create) a Dropbox app
2. find your app key (in Dropbox App page, go to Settings/App key)
3. change Dropbox app key in index.html file: `sed -i.bak s/qp7ctun6qt5n9d6/your_app_key/g index.html`
(or, if you are building from source, change it [here](app/scripts/comp/dropbox-link.js#L12))
If you are using Docker:
# Building
The app can be built with grunt: `grunt` (html file will be in `dist/`).
Desktop apps are built with `grunt desktop`. This works only in mac osx as it builds dmg; requires wine.
To run Electron app without building installer, install electron package (`npm install electron-prebuilt -g`), build the app with `grunt` and start in this way:
1. put your dh.pem, cert.pem, key.pem to /etc/nginx/external/
2. run this script:
```bash
$ grunt
$ electron electron --htmlpath=tmp
docker run --name keeweb -d -p 443:443 -p 80:80 -v $EXT_DIR:/etc/nginx/external/ antelle/keeweb
```
To make Dropbox work in your self-hosted app, [go to this Wiki page](https://github.com/keeweb/keeweb/wiki/Dropbox-and-GDrive).
## Building
The easiest way to clone all KeeWeb repos is:
```bash
curl https://raw.githubusercontent.com/keeweb/keeweb/develop/dev-env.sh | bash -
```
The app can be built with grunt: `grunt` (html files will be in `dist/`).
Desktop apps are built with `grunt desktop`. This requires some magic and currently works only on CI,
you can find more details in [the GitHub Actions workflow](.github/workflows/build.yaml).
To run the desktop (electron) app without building an installer, build the app with `grunt` and start it this way:
```bash
npm run dev
npm run electron
```
For debug build:
1. run `grunt`
2. run `grunt watch`
3. open `tmp/index.html`
1. run `npm run dev`
2. open `http://localhost:8085`
# Contributing
To build desktop apps, use these goals, the result can be found in `tmp`:
Please, read [contribution guidelines](CONTRIBUTING.md).
```
npm run dev-desktop-macos
npm run dev-desktop-windows
npm run dev-desktop-linux
```
# License
## Contributing
[MIT](https://github.com/antelle/keeweb/blob/master/MIT-LICENSE.txt)
Please read contribution guidelines [for pull requests](.github/PULL_REQUEST_TEMPLATE.md).
Here's a [list of issues](https://github.com/keeweb/keeweb/labels/help%20wanted) where your help would be very welcome.
Also you can help by [translating KeeWeb](https://keeweb.oneskyapp.com) to your language.
Other ways of contribution can be found [on this page](CONTRIBUTING.md).
#### Important notes for pull requests
- please branch from `develop`, not `master`
- don't edit translation files except base.json, they will be replaced
## Donations
KeeWeb is not free to develop. It takes time, requires paid code signing certificates and domains.
You can help the project or say "thank you" with this button:
[<img src="https://opencollective.com/keeweb/tiers/backer.svg?avatarHeight=42&width=880" alt="OpenCollective">](https://opencollective.com/keeweb#support)
You can also sponsor the developer directly [on GitHub](https://github.com/sponsors/antelle).
Please note: donation does not imply any type of service contract.
## Thank you
Notable contributions to KeeWeb:
- Florian Reuschel ([@Loilo](https://github.com/Loilo)): [German translation](https://keeweb.oneskyapp.com/collaboration/translate/project/project/173183/language/550)
- Dennis Ploeger ([@dploeger](https://github.com/dploeger)): [auto-type improvements](https://github.com/keeweb/keeweb/pulls?q=is%3Apr+is%3Aclosed+author%3Adploeger)
- Hackmanit ([hackmanit.de](https://www.hackmanit.de)): [penetration test](https://www.hackmanit.de/en/blog-en/104-pro-bono-penetration-test-keeweb)
- Peter Bittner ([@bittner](https://github.com/bittner)): [Wikipedia article](https://en.wikipedia.org/wiki/KeeWeb)
## License
[MIT](https://github.com/keeweb/keeweb/blob/master/LICENSE)
+11
View File
@@ -0,0 +1,11 @@
# Security Policy
## Supported Versions
Only the latest version of the product is supported. This version can be accessed at https://app.keeweb.info
and downloaded from https://keeweb.info or GitHub releases ([latest release link](https://github.com/keeweb/keeweb/releases/latest)).
## Reporting a Vulnerability
We would appreciate [responsible disclosure](https://en.wikipedia.org/wiki/Responsible_disclosure).
If you would like to report a vulnerability, the preferred way to do so is [contacting the developer directly](mailto:antelle.net@gmail.com).
+28
View File
@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Not Found</title>
<style>
body {
font-family: -apple-system, 'BlinkMacSystemFont', 'Raleway', 'Helvetica Neue',
'Helvetica', 'Arial', sans-serif;
font-feature-settings: 'liga' 0;
text-align: center;
background: #f5f5f5;
font-weight: 300;
}
h1 {
font-size: 3em;
margin-top: 10vh;
}
p {
line-height: 1.5em;
}
</style>
</head>
<body>
<h1>404 Not Found</h1>
<p>Sorry, the page you're looking for was not found.</p>
</body>
</html>
+16
View File
@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>KeeWeb</title>
</head>
<body>
<script>
window.opener.postMessage(
{ storage: 'dropbox', search: location.search },
window.location.origin
);
window.close();
</script>
</body>
</html>
+16
View File
@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>KeeWeb</title>
</head>
<body>
<script>
window.opener.postMessage(
{ storage: 'gdrive', search: location.search },
window.location.origin
);
window.close();
</script>
</body>
</html>
+16
View File
@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>KeeWeb</title>
</head>
<body>
<script>
window.opener.postMessage(
{ storage: 'teams', search: location.search },
window.location.origin
);
window.close();
</script>
</body>
</html>
+16
View File
@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>KeeWeb</title>
</head>
<body>
<script>
window.opener.postMessage(
{ storage: 'onedrive', search: location.search },
window.location.origin
);
window.close();
</script>
</body>
</html>
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 -64 640 640"><path d="M136.736 512c-4.892-.008-10.322-2.061-15.92-4.997-11.941-6.265-20.13-14.185-13.293-27.218l166.101-316.638c-1.972-1.022-3.619-1.88-4.743-2.469-59.892-31.418-86.463-77.87-64.952-118.877 24.726-47.135 101.304-55.69 171.042-19.107 69.738 36.584 106.227 104.451 81.501 151.586-21.264 40.536-76.784 44.151-132.61 14.866-1.538-.807-4.033-2.103-6.857-3.567L150.768 502.471c-3.632 6.924-8.488 9.538-14.032 9.529zm-30.582-67.835l-3.144-1.649-.7-.366-42.546-22.32v-.001l-10.256-5.38c-1.738-.911-2.407-3.057-1.496-4.794l13.465-25.667c.906-1.728 3.036-2.399 4.768-1.509l.028.013 20.513 10.761c1.736.911 3.883.241 4.794-1.496l13.466-25.667c.911-1.737.24-3.883-1.497-4.794l-10.256-5.382-10.256-5.38c-1.737-.911-2.406-3.057-1.495-4.794l13.464-25.669c.911-1.737 3.058-2.406 4.794-1.494l10.258 5.38 26.697 14.005 16.548 8.681c.007.003.014.007.021.011l3.125 1.639-14.142 26.957-.973 1.855c0 .001-.001.003-.002.004l-20.063 38.245-2.041 3.888-11.424 21.779c-.002.004-.005.009-.008.014zm67.232-128.162l-3.145-1.651-14.938-7.837-11.794-6.187c-1.737-.911-2.408-3.057-1.497-4.794l13.466-25.667c.911-1.737 3.058-2.408 4.794-1.497l11.795 6.188 14.939 7.837c.007.003.014.007.021.01l3.125 1.64-1.651 3.145-6.731 12.834-6.733 12.833c-.003.005-.006.008-.009.013zm219.778-151.914c8.857.016 15.784-3.552 20.386-12.326 14.027-26.737-11.92-67.987-57.953-92.135-46.032-24.148-94.719-22.049-108.746 4.688-14.026 26.737 24.987 44.293 71.02 68.441 30.928 16.224 57.156 31.296 75.293 31.332z"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1013 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 960 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 KiB

+82 -15
View File
@@ -1,18 +1,85 @@
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>KeeWeb</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="shortcut icon" href="favicon.png?__inline=true" />
<link rel="stylesheet" href="css/main.css?__inline=true" />
<script src="js/vendor.js?__inline=true"></script>
<script src="js/app.js?__inline=true"></script>
</head>
<body class="th-d">
<noscript>
<h1>KeeWeb</h1>
<p>This app is written entirely in JavaScript. Please, enable JavaScript to run it.</p>
</noscript>
</body>
<head lang="en">
<meta charset="UTF-8" />
<title>KeeWeb</title>
<meta
http-equiv="Content-Security-Policy"
content="
default-src 'self';
font-src data:;
script-src 'self' 'unsafe-eval';
style-src 'self' blob:;
connect-src 'self' ws: https:;
child-src 'self' blob:;
worker-src 'self' blob:;
img-src 'self' data: blob: https://services.keeweb.info/;
object-src 'none';
form-action 'none';
"
/>
<meta name="application-name" content="KeeWeb" />
<meta name="kw-config" content="(no-config)" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="KeeWeb" />
<meta name="theme-color" content="#6386ec" />
<meta name="msapplication-config" content="browserconfig.xml" />
<meta name="msapplication-TileColor" content="#6386ec" />
<link rel="apple-touch-icon" sizes="180x180" href="icons/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="icons/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon-16x16.png" />
<link rel="mask-icon" href="icons/safari-pinned-tab.svg" color="#6386ec" />
<link
rel="apple-touch-startup-image"
href="icons/splash-640x1136.png"
media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="icons/splash-750x1294.png"
media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="icons/splash-1242x2148.png"
media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="icons/splash-1125x2436.png"
media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="icons/splash-1536x2048.png"
media="(min-device-width: 768px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="icons/splash-1668x2224.png"
media="(min-device-width: 834px) and (max-device-width: 834px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link
rel="apple-touch-startup-image"
href="icons/splash-2048x2732.png"
media="(min-device-width: 1024px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)"
/>
<link rel="manifest" href="manifest.json" />
<link rel="stylesheet" href="css/app.css?__inline=true" />
<script src="js/app.js?__inline=true"></script>
</head>
<body class="th-d">
<noscript>
<h1>KeeWeb</h1>
<p>
KeeWeb is a password manager written in JavaScript. Please enable JavaScript to run
it.
</p>
</noscript>
</body>
</html>
+71
View File
@@ -0,0 +1,71 @@
(function (global) {
var babelHelpers = global.babelHelpers = {};
babelHelpers.typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
babelHelpers.defineProperty = function (obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
};
babelHelpers.slicedToArray = function () {
function sliceIterator(arr, i) {
var _arr = [];
var _n = true;
var _d = false;
var _e = undefined;
try {
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"]) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
return function (arr, i) {
if (Array.isArray(arr)) {
return arr;
} else if (Symbol.iterator in Object(arr)) {
return sliceIterator(arr, i);
} else {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
};
}();
babelHelpers.toConsumableArray = function (arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
} else {
return Array.from(arr);
}
};
})(typeof global === "undefined" ? self : global);
-10
View File
@@ -1,10 +0,0 @@
CACHE MANIFEST
# YYYY-MM-DD:v0.0.0
# updmin:v0.0.0
CACHE:
index.html
NETWORK:
*
+12
View File
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square70x70logo src="/icons/mstile-70x70.png"/>
<square150x150logo src="/icons/mstile-150x150.png"/>
<square310x310logo src="/icons/mstile-310x310.png"/>
<wide310x150logo src="/icons/mstile-310x150.png"/>
<TileColor>#6386ec</TileColor>
</tile>
</msapplication>
</browserconfig>
+21
View File
@@ -0,0 +1,21 @@
{
"name": "KeeWeb",
"short_name": "KeeWeb",
"description": "Free cross-platform password manager compatible with KeePass",
"start_url": "./",
"display": "standalone",
"theme_color": "#6386ec",
"background_color": "#6386ec",
"icons": [
{
"src": "icons/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "icons/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}
Binary file not shown.
+9
View File
@@ -0,0 +1,9 @@
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyZAmWXMpKsh9WCyUO5TR
2/QIJsgyaViWRAgY5nHZhTR/sjhfG97OeurW7NYC4XPsnyJDepEjDsj9LNzquMES
xsLRSmxo+m1lVWn8Q59LwqOvUK+BKH4eZYF89Nwv2HZjZnr/w7xYcxJbhOuAzpbq
FD/gAvlozrsHG9uI95h1FHPd6mfolEHLK30LXPQ5FdJ/AWb29ILKYbVEdM8qsjoN
fSICw7XTbd7wB0TMcgRpjWllzKaftxCO38svhBjAz4cUvtZ05yi4dzK0VsJHfW33
uno3YBn0/bwLkqMzD1/Hv05p6CVzuDTOCBsXkEobra8OBviatoSukot6cS4Famki
9QIDAQAB
-----END PUBLIC KEY-----
+9
View File
@@ -0,0 +1,9 @@
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRq2k3TTx0ewTe6wDr6Q
VeB5diwiIWzsJD+ApfZu1KNPedcAgslAfjpNsYF1if6cYsPMJH70xJ2np6RQBl1V
PdwShOuxkD7m0BD5Hw/Aar8Hdp5cvAdOOMdBO+0DbGeUMy+z66s+oUCJmqVp19T6
PkkxbhN08rgtT7v+aFvrbqbO/vlsskbJpH2K2io+e1XmRGPnSr9q4KSqfGbTfe5g
LwDIOFd66Z4mb5Utb5wWpsy6Gjh06Yf257AccGD3A1bkTNOyeeX0tqciYBePWMk0
icP/aZ6hnErfhnUKf3tOgPLppSHiGcaSKekhChZ2xLUs3U64JwrXSmwHj+TzdO3S
0QIDAQAB
-----END PUBLIC KEY-----
+5
View File
@@ -0,0 +1,5 @@
{
"rules": {
"import/no-commonjs": "error"
}
}
+203 -34
View File
@@ -1,43 +1,212 @@
'use strict';
import { Events } from 'framework/events';
import { StartProfiler } from 'comp/app/start-profiler';
import { FileInfoCollection } from 'collections/file-info-collection';
import { AppRightsChecker } from 'comp/app/app-rights-checker';
import { ExportApi } from 'comp/app/export-api';
import { SingleInstanceChecker } from 'comp/app/single-instance-checker';
import { Updater } from 'comp/app/updater';
import { UsbListener } from 'comp/app/usb-listener';
import { BrowserExtensionConnector } from 'comp/extension/browser-extension-connector';
import { FeatureTester } from 'comp/browser/feature-tester';
import { FocusDetector } from 'comp/browser/focus-detector';
import { IdleTracker } from 'comp/browser/idle-tracker';
import { ThemeWatcher } from 'comp/browser/theme-watcher';
import { KeyHandler } from 'comp/browser/key-handler';
import { PopupNotifier } from 'comp/browser/popup-notifier';
import { Launcher } from 'comp/launcher';
import { SettingsManager } from 'comp/settings/settings-manager';
import { Alerts } from 'comp/ui/alerts';
import { Timeouts } from 'const/timeouts';
import { AppModel } from 'models/app-model';
import { AppSettingsModel } from 'models/app-settings-model';
import { RuntimeDataModel } from 'models/runtime-data-model';
import { UpdateModel } from 'models/update-model';
import { PluginManager } from 'plugins/plugin-manager';
import { Features } from 'util/features';
import { KdbxwebInit } from 'util/kdbxweb/kdbxweb-init';
import { Locale } from 'util/locale';
import { AppView } from 'views/app-view';
import 'hbs-helpers';
import { AutoType } from './auto-type';
import { Storage } from './storage';
var AppModel = require('./models/app-model'),
AppView = require('./views/app-view'),
KeyHandler = require('./comp/key-handler'),
IdleTracker = require('./comp/idle-tracker'),
Alerts = require('./comp/alerts'),
DropboxLink = require('./comp/dropbox-link'),
Updater = require('./comp/updater'),
ThemeChanger = require('./util/theme-changer'),
Locale = require('./util/locale');
StartProfiler.milestone('loading modules');
$(function() {
if (location.href.indexOf('state=') >= 0) {
DropboxLink.receive();
return;
}
require('./mixins/view');
require('./helpers');
KeyHandler.init();
IdleTracker.init();
const ready = (Launcher && Launcher.ready) || $;
var appModel = new AppModel();
if (appModel.settings.get('theme')) {
ThemeChanger.setTheme(appModel.settings.get('theme'));
}
if (['https:', 'file:', 'app:'].indexOf(location.protocol) < 0 && !localStorage.disableSecurityCheck) {
Alerts.error({ header: Locale.appSecWarn, icon: 'user-secret', esc: false, enter: false, click: false,
body: Locale.appSecWarnBody1 + '<br/><br/>' + Locale.appSecWarnBody2,
buttons: [
{ result: '', title: Locale.appSecWarnBtn, error: true }
],
complete: showApp
ready(() => {
StartProfiler.milestone('document ready');
const appModel = new AppModel();
StartProfiler.milestone('creating app model');
Promise.resolve()
.then(loadConfigs)
.then(initModules)
.then(loadRemoteConfig)
.then(ensureCanRun)
.then(initStorage)
.then(initUsbListener)
.then(showApp)
.then(postInit)
.catch((e) => {
appModel.appLogger.error('Error starting app', e);
});
} else {
showApp();
function ensureCanRun() {
if (Features.isFrame && !appModel.settings.allowIframes) {
return Promise.reject(
'Running in iframe is not allowed (this can be changed in the app config).'
);
}
return FeatureTester.test()
.catch((e) => {
Alerts.error({
header: Locale.appSettingsError,
body: Locale.appNotSupportedError,
pre: e,
buttons: [],
esc: false,
enter: false,
click: false
});
throw 'Feature testing failed: ' + e;
})
.then(() => {
StartProfiler.milestone('checking features');
});
}
function loadConfigs() {
return Promise.all([
AppSettingsModel.load(),
UpdateModel.load(),
RuntimeDataModel.load(),
FileInfoCollection.load()
]).then(() => {
StartProfiler.milestone('loading configs');
});
}
function initModules() {
KeyHandler.init();
PopupNotifier.init();
KdbxwebInit.init();
FocusDetector.init();
AutoType.init();
ThemeWatcher.init();
SettingsManager.init();
window.kw = ExportApi;
return PluginManager.init().then(() => {
StartProfiler.milestone('initializing modules');
});
}
function showSettingsLoadError() {
Alerts.error({
header: Locale.appSettingsError,
body: Locale.appSettingsErrorBody,
buttons: [],
esc: false,
enter: false,
click: false
});
}
function loadRemoteConfig() {
return Promise.resolve()
.then(() => {
SettingsManager.setBySettings();
const configParam = getConfigParam();
if (configParam) {
return appModel
.loadConfig(configParam)
.then(() => {
SettingsManager.setBySettings();
})
.catch((e) => {
if (!appModel.settings.cacheConfigSettings) {
showSettingsLoadError();
throw e;
}
});
}
})
.then(() => {
StartProfiler.milestone('loading remote config');
});
}
function initStorage() {
for (const prv of Object.values(Storage)) {
prv.init();
}
StartProfiler.milestone('initializing storage');
}
function initUsbListener() {
UsbListener.init();
StartProfiler.milestone('starting usb');
}
function showApp() {
new AppView({ model: appModel }).render();
Updater.init();
return Promise.resolve().then(() => {
const skipHttpsWarning =
localStorage.skipHttpsWarning || appModel.settings.skipHttpsWarning;
const protocolIsInsecure = ['https:', 'file:', 'app:'].indexOf(location.protocol) < 0;
const hostIsInsecure = location.hostname !== 'localhost';
if (protocolIsInsecure && hostIsInsecure && !skipHttpsWarning) {
return new Promise((resolve) => {
Alerts.error({
header: Locale.appSecWarn,
icon: 'user-secret',
esc: false,
enter: false,
click: false,
body: Locale.appSecWarnBody1 + '\n\n' + Locale.appSecWarnBody2,
buttons: [{ result: '', title: Locale.appSecWarnBtn, error: true }],
complete: () => {
showView();
resolve();
}
});
});
} else {
showView();
return new Promise((resolve) => requestAnimationFrame(resolve));
}
});
}
function postInit() {
setTimeout(() => {
Updater.init();
SingleInstanceChecker.init();
AppRightsChecker.init();
IdleTracker.init();
BrowserExtensionConnector.init(appModel);
PluginManager.runAutoUpdate();
}, Timeouts.AutoUpdatePluginsAfterStart);
}
function showView() {
new AppView(appModel).render();
StartProfiler.milestone('first view rendering');
Events.emit('app-ready');
StartProfiler.milestone('app ready event');
StartProfiler.report();
}
function getConfigParam() {
const metaConfig = document.head.querySelector('meta[name=kw-config]');
if (metaConfig && metaConfig.content && metaConfig.content[0] !== '(') {
return metaConfig.content;
}
const match = location.search.match(/[?&]config=([^&]+)/i);
if (match && match[1]) {
return match[1];
}
}
});
+160
View File
@@ -0,0 +1,160 @@
import { Features } from 'util/features';
import { NativeModules } from 'comp/launcher/native-modules';
import { Logger } from 'util/logger';
import { Launcher } from 'comp/launcher';
import { Timeouts } from 'const/timeouts';
const logger = new Logger('auto-type-emitter');
const KeyMap = {
tab: 'Tab',
enter: 'Return',
space: 'Space',
up: 'UpArrow',
down: 'DownArrow',
left: 'LeftArrow',
right: 'RightArrow',
home: 'Home',
end: 'End',
pgup: 'PageUp',
pgdn: 'PageDown',
ins: 'Insert',
del: 'ForwardDelete',
bs: 'BackwardDelete',
esc: 'Escape',
win: 'Meta',
rwin: 'RightMeta',
f1: 'F1',
f2: 'F2',
f3: 'F3',
f4: 'F4',
f5: 'F5',
f6: 'F6',
f7: 'F7',
f8: 'F8',
f9: 'F9',
f10: 'F10',
f11: 'F11',
f12: 'F12',
f13: 'F13',
f14: 'F14',
f15: 'F15',
f16: 'F16',
add: 'KeypadPlus',
subtract: 'KeypadMinus',
multiply: 'KeypadMultiply',
divide: 'KeypadDivide',
n0: 'D0',
n1: 'D1',
n2: 'D2',
n3: 'D3',
n4: 'D4',
n5: 'D5',
n6: 'D6',
n7: 'D7',
n8: 'D8',
n9: 'D9'
};
const ModMap = {
'^': Features.isMac ? 'Command' : 'Ctrl',
'+': 'Shift',
'%': 'Alt',
'^^': 'Ctrl'
};
class AutoTypeEmitter {
constructor(callback) {
this.callback = callback;
this.mod = {};
}
begin() {
this.withCallback(NativeModules.kbdEnsureModifierNotPressed());
}
setMod(mod, enabled) {
const nativeMod = ModMap[mod];
if (!nativeMod) {
return this.callback(`Bad modifier: ${mod}`);
}
NativeModules.kbdKeyMoveWithModifier(!!enabled, [nativeMod]).catch((e) => {
logger.error('Error moving modifier', mod, enabled ? 'down' : 'up', e);
});
if (enabled) {
this.mod[nativeMod] = true;
} else {
delete this.mod[nativeMod];
}
}
text(str) {
if (!str) {
return this.withCallback(Promise.resolve());
}
const mods = Object.keys(this.mod);
if (mods.length) {
this.withCallback(NativeModules.kbdTextAsKeys(str, mods));
} else {
this.withCallback(NativeModules.kbdText(str));
}
}
key(key) {
const mods = Object.keys(this.mod);
if (typeof key === 'number') {
this.withCallback(NativeModules.kbdKeyPressWithCharacter(0, key, mods));
} else {
if (!KeyMap[key]) {
return this.callback('Bad key: ' + key);
}
const code = KeyMap[key];
this.withCallback(NativeModules.kbdKeyPress(code, mods));
}
}
copyPaste(text) {
setTimeout(() => {
Launcher.setClipboardText(text);
setTimeout(() => {
this.withCallback(NativeModules.kbdShortcut('V'));
}, Timeouts.AutoTypeCopyPaste);
}, Timeouts.AutoTypeCopyPaste);
}
wait(time) {
setTimeout(() => this.withCallback(Promise.resolve()), time);
}
waitComplete() {
this.withCallback(Promise.resolve());
}
setDelay() {
this.callback('Not implemented');
}
withCallback(promise) {
promise
.then(() => {
try {
this.callback();
} catch (err) {
logger.error('Callback error', err);
}
})
.catch((err) => {
const keyPressFailed = err.message === 'Key press failed';
if (keyPressFailed) {
err.keyPressFailed = true;
}
try {
this.callback(err);
} catch (err) {
logger.error('Callback error', err);
}
});
}
}
export { AutoTypeEmitter };
+16
View File
@@ -0,0 +1,16 @@
import { NativeModules } from 'comp/launcher/native-modules';
class AutoTypeHelper {
getActiveWindowInfo(callback) {
NativeModules.kbdGetActiveWindow({
getWindowTitle: true,
getBrowserUrl: true
})
.then((win) => {
callback(undefined, win);
})
.catch((err) => callback(err));
}
}
export { AutoTypeHelper };
@@ -0,0 +1,209 @@
import { Logger } from 'util/logger';
const logger = new Logger(
'auto-type-obfuscator',
undefined,
localStorage.debugAutoType ? Logger.Level.All : Logger.Level.Warn
);
const MaxFakeOps = 30;
const MaxSteps = 1000;
const MaxCopy = 2;
const FakeCharAlphabet = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz123456789O0oIl';
const AutoTypeObfuscator = function (chars) {
this.chars = chars;
this.inputChars = [];
this.inputCursor = 0;
this.inputSel = 0;
this.ops = [];
this.stepCount = 0;
this.copyCount = 0;
};
AutoTypeObfuscator.prototype.obfuscate = function () {
while (!this.finished()) {
this.step();
if (this.stepCount++ > MaxSteps) {
throw 'Obfuscate failed';
}
}
for (let i = 0; i < this.chars.length; i++) {
this.chars[i] = null;
this.inputChars[i] = null;
}
return this.ops;
};
AutoTypeObfuscator.prototype.finished = function () {
return (
this.chars.length === this.inputChars.length &&
this.chars.every(function (ch, ix) {
return this.inputChars[ix].ch === ch;
}, this)
);
};
AutoTypeObfuscator.prototype.step = function () {
const isFake = this.stepCount < MaxFakeOps && Math.random() > this.stepCount / MaxFakeOps;
if (isFake) {
this.stepFake();
} else {
this.stepReal();
}
if (logger.getLevel() >= Logger.Level.Debug) {
logger.debug('value', this.inputChars.map((ic) => ic.ch).join(''));
}
};
AutoTypeObfuscator.prototype.stepFake = function () {
const pos = Math.floor(Math.random() * (this.inputChars.length + 1));
const ch = FakeCharAlphabet[Math.floor(Math.random() * FakeCharAlphabet.length)];
logger.info('step.fake', pos, ch);
this.moveToPos(pos);
const insert = this.inputChars.length === 0 || Math.random() > 0.3;
if (insert) {
this.inputChar(ch);
} else {
let moveLeft = Math.random() > 0.5;
let maxMove = moveLeft ? pos : this.inputChars.length - pos;
if (maxMove === 0) {
moveLeft = !moveLeft;
maxMove = moveLeft ? pos : this.inputChars.length - pos;
}
const moveCount = Math.max(Math.floor(Math.pow(Math.random(), 3) * maxMove), 1);
if (moveCount <= 1 && Math.random() > 0.5) {
this.deleteText(moveLeft);
} else {
this.selectText(moveLeft, moveCount);
if (Math.random() > 0.3) {
this.deleteText(Math.random() > 0.5);
} else {
this.inputChar(ch);
}
}
}
};
AutoTypeObfuscator.prototype.stepReal = function () {
const possibleActions = [];
const inputRealPositions = [];
let i;
for (i = 0; i < this.chars.length; i++) {
inputRealPositions.push(-1);
}
for (i = 0; i < this.inputChars.length; i++) {
const ix = this.inputChars[i].ix;
if (ix === undefined) {
possibleActions.push({ del: true, pos: i });
} else {
inputRealPositions[ix] = i;
}
}
for (i = 0; i < this.chars.length; i++) {
if (inputRealPositions[i] < 0) {
let from = 0,
to = this.inputChars.length;
for (let j = 0; j < this.chars.length; j++) {
if (j < i && inputRealPositions[j] >= 0) {
from = inputRealPositions[j] + 1;
}
if (j > i && inputRealPositions[j] >= 0) {
to = inputRealPositions[j];
break;
}
}
possibleActions.push({ ins: true, ch: this.chars[i], ix: i, from, to });
}
}
const action = possibleActions[Math.floor(Math.random() * possibleActions.length)];
logger.info('step.real', inputRealPositions, action);
if (action.del) {
this.moveToPos(action.pos + 1);
this.deleteText(true);
} else {
const insPos = action.from + Math.floor(Math.random() * (action.to - action.from));
this.moveToPos(insPos);
if (this.copyCount < MaxCopy && action.ch !== '\n' && Math.random() > 0.5) {
this.copyCount++;
this.copyPaste(action.ch);
} else {
this.inputChar(action.ch);
}
this.inputChars[insPos].ix = action.ix;
}
};
AutoTypeObfuscator.prototype.moveToPos = function (pos) {
logger.debug('moveToPos', pos);
while (this.inputCursor > pos) {
this.moveLeft();
}
while (this.inputCursor < pos) {
this.moveRight();
}
};
AutoTypeObfuscator.prototype.moveLeft = function () {
logger.debug('moveLeft');
this.ops.push({ type: 'key', value: 'left' });
this.inputCursor--;
this.inputSel = 0;
};
AutoTypeObfuscator.prototype.moveRight = function () {
logger.debug('moveRight');
this.ops.push({ type: 'key', value: 'right' });
this.inputCursor++;
this.inputSel = 0;
};
AutoTypeObfuscator.prototype.inputChar = function (ch) {
logger.debug('inputChar', ch);
this.ops.push({ type: 'text', value: ch });
this.inputChars.splice(this.inputCursor, this.inputSel, { ch });
this.inputCursor++;
this.inputSel = 0;
};
AutoTypeObfuscator.prototype.copyPaste = function (ch) {
logger.debug('copyPaste', ch);
this.ops.push({ type: 'cmd', value: 'copyPaste', arg: ch });
this.inputChars.splice(this.inputCursor, this.inputSel, { ch });
this.inputCursor++;
this.inputSel = 0;
};
AutoTypeObfuscator.prototype.selectText = function (backward, count) {
logger.debug('selectText', backward ? 'left' : 'right', count);
const ops = [];
for (let i = 0; i < count; i++) {
ops.push({ type: 'key', value: backward ? 'left' : 'right' });
}
if (ops.length === 1) {
ops[0].mod = { '+': true };
this.ops.push(ops[0]);
} else {
this.ops.push({ type: 'group', value: ops, mod: { '+': true } });
}
if (backward) {
this.inputCursor -= count;
}
this.inputSel = count;
};
AutoTypeObfuscator.prototype.deleteText = function (backward) {
logger.debug('deleteText', backward ? 'left' : 'right');
this.ops.push({ type: 'key', value: backward ? 'bs' : 'del' });
if (this.inputSel) {
this.inputChars.splice(this.inputCursor, this.inputSel);
this.inputSel = 0;
} else {
this.inputChars.splice(backward ? this.inputCursor - 1 : this.inputCursor, 1);
if (backward) {
this.inputCursor--;
}
}
};
export { AutoTypeObfuscator };
+127
View File
@@ -0,0 +1,127 @@
import { AutoTypeRunner } from 'auto-type/auto-type-runner';
const AutoTypeParser = function (sequence) {
this.sequence = sequence;
this.ix = 0;
this.states = [];
};
AutoTypeParser.opRegex = /^(.*?)(?:([\s:=])[\s:=]*(.*))?$/;
AutoTypeParser.prototype.parse = function () {
const len = this.sequence.length;
this.pushState();
while (this.ix < len) {
const ch = this.sequence[this.ix];
switch (ch) {
case '{':
this.readOp();
continue;
case '+':
case '%':
case '^':
this.readModifier(ch);
break;
case '(':
this.pushState();
break;
case ')':
this.popState();
break;
case ' ':
break;
case '~':
this.addOp('enter');
break;
default:
this.addChar(ch);
break;
}
this.ix++;
}
if (this.states.length !== 1) {
throw 'Groups count mismatch';
}
return new AutoTypeRunner(this.state().ops);
};
AutoTypeParser.prototype.pushState = function () {
this.states.unshift({
modifiers: null,
ops: []
});
};
AutoTypeParser.prototype.popState = function () {
if (this.states.length <= 1) {
throw 'Unexpected ")" at index ' + this.ix;
}
const state = this.states.shift();
this.addState(state);
};
AutoTypeParser.prototype.state = function () {
return this.states[0];
};
AutoTypeParser.prototype.readOp = function () {
const toIx = this.sequence.indexOf('}', this.ix + 2);
if (toIx < 0) {
throw 'Mismatched "{" at index ' + this.ix;
}
const contents = this.sequence.substring(this.ix + 1, toIx);
this.ix = toIx + 1;
if (contents.length === 1) {
this.addChar(contents);
return;
}
const [, op, sep, arg] = contents.match(AutoTypeParser.opRegex);
this.addOp(op, sep, arg);
};
AutoTypeParser.prototype.readModifier = function (modifier) {
const state = this.state();
if (!state.modifiers) {
state.modifiers = {};
}
if (modifier === '^' && state.modifiers['^']) {
delete state.modifiers['^'];
modifier = '^^';
}
state.modifiers[modifier] = true;
};
AutoTypeParser.prototype.resetModifiers = function () {
const state = this.state();
const modifiers = state.modifiers;
state.modifiers = null;
return modifiers;
};
AutoTypeParser.prototype.addState = function (state) {
this.state().ops.push({
type: 'group',
value: state.ops,
mod: this.resetModifiers()
});
};
AutoTypeParser.prototype.addChar = function (ch) {
this.state().ops.push({
type: 'text',
value: ch,
mod: this.resetModifiers()
});
};
AutoTypeParser.prototype.addOp = function (op, sep, arg) {
this.state().ops.push({
type: 'op',
value: op,
mod: this.resetModifiers(),
sep,
arg
});
};
export { AutoTypeParser };
+541
View File
@@ -0,0 +1,541 @@
import { AutoTypeEmitter } from 'auto-type/auto-type-emitter';
import { AutoTypeObfuscator } from 'auto-type/auto-type-obfuscator';
import { StringFormat } from 'util/formatting/string-format';
import { Logger } from 'util/logger';
const emitterLogger = new Logger(
'auto-type-emitter',
undefined,
localStorage.debugAutoType ? Logger.Level.All : Logger.Level.Info
);
const AutoTypeRunner = function (ops) {
this.ops = ops;
this.pendingResolvesCount = 0;
this.entry = null;
this.now = new Date();
};
AutoTypeRunner.PendingResolve = { pending: true };
AutoTypeRunner.Keys = {
tab: 'tab',
enter: 'enter',
space: 'space',
up: 'up',
down: 'down',
left: 'left',
right: 'right',
home: 'home',
end: 'end',
pgup: 'pgup',
pgdn: 'pgdn',
insert: 'ins',
ins: 'ins',
delete: 'del',
del: 'del',
backspace: 'bs',
bs: 'bs',
bksp: 'bs',
esc: 'esc',
win: 'win',
lwin: 'win',
rwin: 'rwin',
f1: 'f1',
f2: 'f2',
f3: 'f3',
f4: 'f4',
f5: 'f5',
f6: 'f6',
f7: 'f7',
f8: 'f8',
f9: 'f9',
f10: 'f10',
f11: 'f11',
f12: 'f12',
f13: 'f13',
f14: 'f14',
f15: 'f15',
f16: 'f16',
add: 'add',
subtract: 'subtract',
multiply: 'multiply',
divide: 'divide',
numpad0: 'n0',
numpad1: 'n1',
numpad2: 'n2',
numpad3: 'n3',
numpad4: 'n4',
numpad5: 'n5',
numpad6: 'n6',
numpad7: 'n7',
numpad8: 'n8',
numpad9: 'n9'
};
AutoTypeRunner.Substitutions = {
title(runner, op) {
return runner.getEntryFieldKeys('Title', op);
},
username(runner, op) {
return runner.getEntryFieldKeys('UserName', op);
},
url(runner, op) {
return runner.getEntryFieldKeys('URL', op);
},
password(runner, op) {
return runner.getEntryFieldKeys('Password', op);
},
notes(runner, op) {
return runner.getEntryFieldKeys('Notes', op);
},
group(runner) {
return runner.getEntryGroupName();
},
totp(runner, op) {
return runner.getOtp(op);
},
s(runner, op) {
return runner.getEntryFieldKeys(op.arg, op);
},
'dt_simple'(runner) {
return runner.dt('simple');
},
'dt_year'(runner) {
return runner.dt('Y');
},
'dt_month'(runner) {
return runner.dt('M');
},
'dt_day'(runner) {
return runner.dt('D');
},
'dt_hour'(runner) {
return runner.dt('h');
},
'dt_minute'(runner) {
return runner.dt('m');
},
'dt_second'(runner) {
return runner.dt('s');
},
'dt_utc_simple'(runner) {
return runner.udt('simple');
},
'dt_utc_year'(runner) {
return runner.udt('Y');
},
'dt_utc_month'(runner) {
return runner.udt('M');
},
'dt_utc_day'(runner) {
return runner.udt('D');
},
'dt_utc_hour'(runner) {
return runner.udt('h');
},
'dt_utc_minute'(runner) {
return runner.udt('m');
},
'dt_utc_second'(runner) {
return runner.udt('s');
}
};
AutoTypeRunner.prototype.resolve = function (entry, context, callback) {
this.entry = entry;
this.context = context;
try {
this.resolveOps(this.ops);
if (!this.pendingResolvesCount) {
callback();
} else {
this.resolveCallback = callback;
}
} catch (e) {
return callback(e);
}
};
AutoTypeRunner.prototype.resolveOps = function (ops) {
for (let i = 0, len = ops.length; i < len; i++) {
const op = ops[i];
if (op.type === 'group') {
this.resolveOps(op.value);
} else {
this.resolveOp(op);
}
}
};
AutoTypeRunner.prototype.resolveOp = function (op) {
if (op.value.length === 1 && !op.sep) {
// {x}
op.type = 'text';
return;
}
if (op.value.length === 1 && op.sep === ' ') {
// {x 3}
op.type = 'text';
const ch = op.value;
let text = ch;
const len = +op.arg;
while (text.length < len) {
text += ch;
}
op.value = text;
return;
}
const lowerValue = op.value.toLowerCase();
const key = AutoTypeRunner.Keys[lowerValue];
if (key) {
if (op.sep === ' ' && +op.arg > 0) {
// {TAB 3}
op.type = 'group';
op.value = [];
const count = +op.arg;
for (let i = 0; i < count; i++) {
op.value.push({ type: 'key', value: key });
}
} else {
// {TAB}
op.type = 'key';
op.value = key;
}
return;
}
if (this.context?.resolved?.[lowerValue]) {
op.type = 'text';
op.value = this.context.resolved[lowerValue];
return;
}
const substitution = AutoTypeRunner.Substitutions[lowerValue];
if (substitution) {
// {title}
op.type = 'text';
op.value = substitution(this, op);
if (op.value === AutoTypeRunner.PendingResolve) {
this.pendingResolvesCount++;
}
return;
}
if (!this.tryParseCommand(op)) {
throw 'Bad op: ' + op.value;
}
};
AutoTypeRunner.prototype.tryParseCommand = function (op) {
switch (op.value.toLowerCase()) {
case 'clearfield':
// {CLEARFIELD}
op.type = 'group';
op.value = [
{ type: 'key', value: 'end' },
{ type: 'key', value: 'home', mod: { '+': true } },
{ type: 'key', value: 'bs' }
];
return true;
case 'vkey':
// {VKEY 10} {VKEY 0x1F}
op.type = 'key';
op.value = parseInt(op.arg);
if (isNaN(op.value) || op.value < 0) {
throw 'Bad vkey: ' + op.arg;
}
return true;
case 'delay':
// {DELAY 5} {DELAY=5}
op.type = 'cmd';
op.value = op.sep === '=' ? 'setDelay' : 'wait';
if (!op.arg) {
throw 'Delay requires milliseconds count';
}
if (isNaN(+op.arg)) {
throw 'Bad delay: ' + op.arg;
}
if (op.arg < 0) {
throw 'Delay requires positive interval';
}
op.arg = +op.arg;
return true;
default:
return false;
}
};
AutoTypeRunner.prototype.getEntryFieldKeys = function (field, op) {
if (!field || !this.entry) {
return '';
}
const value = this.entry.getFieldValue(field);
if (!value) {
return '';
}
if (value.isProtected) {
op.type = 'group';
const ops = [];
value.forEachChar((ch) => {
if (ch === 10 || ch === 13) {
ops.push({ type: 'key', value: 'enter' });
} else {
ops.push({ type: 'text', value: String.fromCharCode(ch) });
}
});
return ops;
} else {
const parts = value.split(/[\r\n]/g);
if (parts.length === 1) {
return value;
}
op.type = 'group';
const partsOps = [];
parts.forEach((part) => {
if (partsOps.length) {
partsOps.push({ type: 'key', value: 'enter' });
}
if (part) {
partsOps.push({ type: 'text', value: part });
}
});
return partsOps;
}
};
AutoTypeRunner.prototype.getEntryGroupName = function () {
return this.entry && this.entry.group.title;
};
AutoTypeRunner.prototype.dt = function (part) {
switch (part) {
case 'simple':
return (
this.dt('Y') +
this.dt('M') +
this.dt('D') +
this.dt('h') +
this.dt('m') +
this.dt('s')
);
case 'Y':
return this.now.getFullYear().toString();
case 'M':
return StringFormat.pad(this.now.getMonth() + 1, 2);
case 'D':
return StringFormat.pad(this.now.getDate(), 2);
case 'h':
return StringFormat.pad(this.now.getHours(), 2);
case 'm':
return StringFormat.pad(this.now.getMinutes(), 2);
case 's':
return StringFormat.pad(this.now.getSeconds(), 2);
default:
throw 'Bad part: ' + part;
}
};
AutoTypeRunner.prototype.udt = function (part) {
switch (part) {
case 'simple':
return (
this.udt('Y') +
this.udt('M') +
this.udt('D') +
this.udt('h') +
this.udt('m') +
this.udt('s')
);
case 'Y':
return this.now.getUTCFullYear().toString();
case 'M':
return StringFormat.pad(this.now.getUTCMonth() + 1, 2);
case 'D':
return StringFormat.pad(this.now.getUTCDate(), 2);
case 'h':
return StringFormat.pad(this.now.getUTCHours(), 2);
case 'm':
return StringFormat.pad(this.now.getUTCMinutes(), 2);
case 's':
return StringFormat.pad(this.now.getUTCSeconds(), 2);
default:
throw 'Bad part: ' + part;
}
};
AutoTypeRunner.prototype.getOtp = function (op) {
if (!this.entry) {
return '';
}
this.entry.initOtpGenerator();
if (!this.entry.otpGenerator) {
return '';
}
this.entry.otpGenerator.next((err, otp) => {
this.pendingResolved(op, otp, err);
});
return AutoTypeRunner.PendingResolve;
};
AutoTypeRunner.prototype.pendingResolved = function (op, value, error) {
const wasPending = op.value === AutoTypeRunner.PendingResolve;
if (value) {
op.value = value;
}
if (!wasPending) {
return;
}
this.pendingResolvesCount--;
if ((this.pendingResolvesCount === 0 || error) && this.resolveCallback) {
this.resolveCallback(error);
this.resolveCallback = null;
}
};
AutoTypeRunner.prototype.obfuscate = function () {
this.obfuscateOps(this.ops);
};
AutoTypeRunner.prototype.obfuscateOps = function (ops) {
for (let i = 0, len = ops.length; i < len; i++) {
const op = ops[i];
if (op.mod) {
continue;
}
if (op.type === 'text') {
this.obfuscateOp(op);
} else if (op.type === 'group') {
const onlyText = op.value.every((grOp) => grOp.type === 'text' && !grOp.mod);
if (onlyText) {
this.obfuscateOp(op);
} else {
this.obfuscateOps(op.value);
}
}
}
};
AutoTypeRunner.prototype.obfuscateOp = function (op) {
let letters = [];
if (op.type === 'text') {
if (!op.value || op.value.length <= 1) {
return;
}
letters = op.value.split('');
} else {
op.value.forEach((grOp) => letters.push(...grOp.value.split('')));
}
if (letters.length <= 1) {
return;
}
const obfuscator = new AutoTypeObfuscator(letters);
op.value = obfuscator.obfuscate();
op.type = 'group';
};
AutoTypeRunner.prototype.run = function (callback, windowId) {
this.emitter = new AutoTypeEmitter(this.emitNext.bind(this), windowId);
this.emitterState = {
callback,
stack: [],
ops: this.ops,
opIx: 0,
mod: {},
activeMod: {},
finished: null
};
this.emitter.begin();
};
AutoTypeRunner.prototype.emitNext = function (err) {
if (err) {
this.emitterState.finished = true;
this.emitterState.callback(err);
return;
}
if (this.emitterState.finished) {
this.emitterState.callback();
return;
}
this.resetEmitterMod(this.emitterState.mod);
if (this.emitterState.opIx >= this.emitterState.ops.length) {
const state = this.emitterState.stack.pop();
if (state) {
Object.assign(this.emitterState, { ops: state.ops, opIx: state.opIx, mod: state.mod });
this.emitNext();
} else {
this.resetEmitterMod({});
this.emitterState.finished = true;
emitterLogger.debug('waitComplete');
this.emitter.waitComplete();
}
return;
}
const op = this.emitterState.ops[this.emitterState.opIx];
if (op.type === 'group') {
if (op.mod) {
this.setEmitterMod(op.mod);
}
this.emitterState.stack.push({
ops: this.emitterState.ops,
opIx: this.emitterState.opIx + 1,
mod: { ...this.emitterState.mod }
});
Object.assign(this.emitterState, {
ops: op.value,
opIx: 0,
mod: { ...this.emitterState.activeMod }
});
this.emitNext();
return;
}
this.emitterState.opIx++;
if (op.mod) {
this.setEmitterMod(op.mod);
}
switch (op.type) {
case 'text':
emitterLogger.debug('text', op.value);
if (op.value) {
this.emitter.text(op.value);
} else {
this.emitNext();
}
break;
case 'key':
emitterLogger.debug('key', op.value);
this.emitter.key(op.value);
break;
case 'cmd': {
const method = this.emitter[op.value];
if (!method) {
throw 'Bad cmd: ' + op.value;
}
emitterLogger.debug(op.value, op.arg);
method.call(this.emitter, op.arg);
break;
}
default:
throw 'Bad op: ' + op.type;
}
};
AutoTypeRunner.prototype.setEmitterMod = function (addedMod) {
Object.keys(addedMod).forEach(function (mod) {
if (addedMod[mod] && !this.emitterState.activeMod[mod]) {
emitterLogger.debug('mod', mod, true);
this.emitter.setMod(mod, true);
this.emitterState.activeMod[mod] = true;
}
}, this);
};
AutoTypeRunner.prototype.resetEmitterMod = function (targetState) {
Object.keys(this.emitterState.activeMod).forEach(function (mod) {
if (this.emitterState.activeMod[mod] && !targetState[mod]) {
emitterLogger.debug('mod', mod, false);
this.emitter.setMod(mod, false);
delete this.emitterState.activeMod[mod];
}
}, this);
};
export { AutoTypeRunner };
+312
View File
@@ -0,0 +1,312 @@
import { Events } from 'framework/events';
import { AutoTypeHelper } from 'auto-type/auto-type-helper';
import { AutoTypeParser } from 'auto-type/auto-type-parser';
import { SelectEntryFilter } from 'comp/app/select-entry-filter';
import { Launcher } from 'comp/launcher';
import { Features } from 'util/features';
import { Alerts } from 'comp/ui/alerts';
import { Timeouts } from 'const/timeouts';
import { AppSettingsModel } from 'models/app-settings-model';
import { AppModel } from 'models/app-model';
import { Locale } from 'util/locale';
import { Logger } from 'util/logger';
import { Links } from 'const/links';
import { SelectEntryView } from 'views/select/select-entry-view';
const logger = new Logger('auto-type');
const clearTextAutoTypeLog = !!localStorage.debugAutoType;
const AutoType = {
enabled: !!(Launcher && Launcher.autoTypeSupported),
supportsEventsWithWindowId: !!(Launcher && Launcher.platform() === 'linux'),
selectEntryView: false,
running: false,
init() {
if (!this.enabled) {
return;
}
Events.on('auto-type', (e) => this.handleEvent(e));
},
handleEvent(e) {
const entry = (e && e.entry) || null;
const sequence = (e && e.sequence) || null;
const context = (e && e.context) || null;
logger.debug('Auto type event', entry);
if (this.running) {
logger.debug('Already running, skipping event');
return;
}
if (entry) {
this.hideWindow(() => {
this.runAndHandleResult({ entry, sequence, context });
});
} else {
if (this.selectEntryView) {
return;
}
if (Launcher.isAppFocused()) {
return Alerts.error({
header: Locale.autoTypeError,
body: Locale.autoTypeErrorGlobal,
skipIfAlertDisplayed: true
});
}
this.selectEntryAndRun();
}
},
runAndHandleResult(result, windowId) {
this.run(result, windowId, (err) => {
if (err) {
let body = Locale.autoTypeErrorGeneric.replace('{}', err.message || err.toString());
let link;
if (err.keyPressFailed && Features.isMac) {
body = Locale.autoTypeErrorAccessibilityMacOS;
link = Links.AutoTypeMacOS;
}
Alerts.error({
header: Locale.autoTypeError,
body,
link
});
}
});
if (AppSettingsModel.lockOnAutoType) {
Events.emit('lock-workspace');
}
},
run(result, windowId, callback) {
this.running = true;
const sequence = result.sequence || result.entry.getEffectiveAutoTypeSeq();
const context = result.context;
logger.debug('Start', sequence);
const ts = logger.ts();
try {
const parser = new AutoTypeParser(sequence);
const runner = parser.parse();
logger.debug('Parsed', this.printOps(runner.ops));
runner.resolve(result.entry, context, (err) => {
if (err) {
this.running = false;
logger.error('Resolve error', err);
return callback && callback(err);
}
logger.debug('Resolved', this.printOps(runner.ops));
if (result.entry.autoTypeObfuscation) {
try {
runner.obfuscate();
} catch (e) {
this.running = false;
logger.error('Obfuscate error', e);
return callback && callback(e);
}
logger.debug('Obfuscated');
}
runner.run((err) => {
this.running = false;
if (err) {
logger.error('Run error', err);
return callback && callback(err);
}
logger.debug('Complete', logger.ts(ts));
return callback && callback();
}, windowId);
});
} catch (ex) {
this.running = false;
logger.error('Parse error', ex);
return callback && callback(ex);
}
},
validate(entry, sequence, callback) {
try {
const parser = new AutoTypeParser(sequence);
const runner = parser.parse();
runner.resolve(entry, null, callback);
} catch (ex) {
return callback(ex);
}
},
printOps(ops) {
return '[' + ops.map(this.printOp, this).join(',') + ']';
},
printOp(op) {
const mod = op.mod ? Object.keys(op.mod).join('') : '';
if (op.type === 'group') {
return mod + this.printOps(op.value);
}
if (op.type === 'text') {
let value = op.value;
if (!clearTextAutoTypeLog) {
value = value.replace(/./g, '*');
}
return mod + value;
}
return mod + op.type + ':' + op.value;
},
hideWindow(callback) {
logger.debug('Hide window');
if (Launcher.isAppFocused()) {
Launcher.hideApp();
setTimeout(callback, Timeouts.AutoTypeAfterHide);
} else {
callback();
}
},
getActiveWindowInfo(callback) {
logger.debug('Getting window info');
const helper = new AutoTypeHelper();
return helper.getActiveWindowInfo((err, windowInfo) => {
if (err) {
logger.error('Error getting window info', err);
} else {
if (!windowInfo.url) {
// try to find a URL in the title
const urlMatcher = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\\+.~#?&\/=]*)/;
const urlMatches = urlMatcher.exec(windowInfo.title);
windowInfo.url = urlMatches && urlMatches.length > 0 ? urlMatches[0] : null;
}
logger.debug('Window info', windowInfo.id, windowInfo.title, windowInfo.url);
}
return callback(err, windowInfo);
});
},
activeWindowMatches(windowInfo, callback) {
if (!windowInfo || !windowInfo.id) {
logger.debug('Skipped active window check because window id is unknown');
return callback(true);
}
this.getActiveWindowInfo((err, activeWindowInfo) => {
if (!activeWindowInfo) {
logger.debug('Error during active window check, something is wrong', err);
return callback(false);
}
if (activeWindowInfo.id !== windowInfo.id && !this.supportsEventsWithWindowId) {
logger.info(
`Active window doesn't match: ID is different. ` +
`Expected ${windowInfo.id}, got ${activeWindowInfo.id}`
);
return callback(false, activeWindowInfo);
}
if (activeWindowInfo.url !== windowInfo.url && !this.supportsEventsWithWindowId) {
logger.info(
`Active window doesn't match: url is different. ` +
`Expected "${windowInfo.url}", got "${activeWindowInfo.url}"`
);
return callback(false, activeWindowInfo);
}
logger.info('Active window matches');
callback(true, activeWindowInfo);
});
},
selectEntryAndRun() {
this.getActiveWindowInfo(async (e, windowInfo) => {
const filter = new SelectEntryFilter(
windowInfo,
AppModel.instance,
AppModel.instance.files,
{
autoType: true
}
);
const evt = { filter, windowInfo };
if (!AppModel.instance.files.hasOpenFiles()) {
logger.debug('auto-type event delayed');
this.focusMainWindow();
try {
await AppModel.instance.unlockAnyFile('autoTypeUnlockMessage');
} catch {
logger.debug('auto-type event canceled');
return;
}
if (this.selectEntryView) {
this.selectEntryView.show();
}
}
logger.debug('processing auto-type event');
this.processEventWithFilter(evt);
});
},
focusMainWindow() {
if (!Launcher.isAppFocused()) {
setTimeout(() => Launcher.showMainWindow(), Timeouts.RedrawInactiveWindow);
}
},
processEventWithFilter(evt) {
let entries = evt.filter.getEntries();
if (entries.length === 1 && AppSettingsModel.directAutotype) {
this.hideWindow(() => {
this.runAndHandleResult({ entry: entries[0] }, evt.windowInfo.id);
});
return;
}
this.focusMainWindow();
if (entries.length === 0) {
if (evt.filter.useUrl) {
evt.filter.useUrl = false;
if (evt.filter.title && AppSettingsModel.autoTypeTitleFilterEnabled) {
evt.filter.useTitle = true;
}
}
entries = evt.filter.getEntries();
if (entries.length === 0 && evt.filter.useTitle) {
evt.filter.useTitle = false;
}
}
const humanReadableTarget = evt.filter.title || evt.filter.url;
const topMessage = humanReadableTarget
? Locale.autoTypeMsgMatchedByWindow.replace('{}', humanReadableTarget)
: Locale.autoTypeMsgNoWindow;
this.selectEntryView = new SelectEntryView({
isAutoType: true,
itemOptions: true,
filter: evt.filter,
topMessage
});
this.selectEntryView.on('result', (result) => {
logger.debug('Entry selected', result);
this.selectEntryView.off('result');
this.selectEntryView.remove();
this.selectEntryView = null;
this.hideWindow(() => {
if (result?.entry) {
this.activeWindowMatches(evt.windowInfo, (matches, activeWindowInfo) => {
if (matches) {
this.runAndHandleResult(result, evt.windowInfo.id);
}
});
}
});
});
this.selectEntryView.render();
this.selectEntryView.on('show-open-files', async () => {
this.selectEntryView.hide();
try {
await AppModel.instance.unlockAnyFile('autoTypeUnlockMessage');
} catch {
this.selectEntryView.emit('result', undefined);
return;
}
this.selectEntryView.show();
this.selectEntryView.render();
});
}
};
export { AutoType };
+6 -45
View File
@@ -1,47 +1,8 @@
'use strict';
import { Collection } from 'framework/collection';
import { EntryModel } from 'models/entry-model';
var Backbone = require('backbone'),
EntryModel = require('../models/entry-model'),
Comparators = require('../util/comparators');
class EntryCollection extends Collection {
static model = EntryModel;
}
var EntryCollection = Backbone.Collection.extend({
model: EntryModel,
comparator: function() {},
comparators: {
'title': Comparators.stringComparator('title', true),
'-title': Comparators.stringComparator('title', false),
'website': Comparators.stringComparator('url', true),
'-website': Comparators.stringComparator('url', false),
'user': Comparators.stringComparator('user', true),
'-user': Comparators.stringComparator('user', false),
'created': Comparators.dateComparator('created', true),
'-created': Comparators.dateComparator('created', false),
'updated': Comparators.dateComparator('updated', true),
'-updated': Comparators.dateComparator('updated', false),
'-attachments': function(x, y) { return this.attachmentSortVal(x).localeCompare(this.attachmentSortVal(y)); }
},
defaultComparator: 'title',
initialize: function() {
this.comparator = this.comparators[this.defaultComparator];
},
sortEntries: function(comparator) {
this.comparator = this.comparators[comparator] || this.comparators[this.defaultComparator];
this.sort();
},
attachmentSortVal: function(entry) {
var att = entry.attachments;
var str = att.length ? String.fromCharCode(64 + att.length) : 'Z';
if (att[0]) {
str += att[0].title;
}
return str;
}
});
module.exports = EntryCollection;
export { EntryCollection };
+20 -26
View File
@@ -1,30 +1,24 @@
'use strict';
import { Collection } from 'framework/collection';
import { Model } from 'framework/model';
var Backbone = require('backbone'),
FileModel = require('../models/file-model');
class FileCollection extends Collection {
static model = Model;
var FileCollection = Backbone.Collection.extend({
model: FileModel,
hasOpenFiles: function() {
return this.some(function(file) { return file.get('open'); });
},
hasUnsavedFiles: function() {
return this.some(function(file) { return file.get('modified'); });
},
hasDirtyFiles: function() {
return this.some(function(file) { return file.get('dirty'); });
},
getByName: function(name) {
return this.find(function(file) { return file.get('name').toLowerCase() === name.toLowerCase(); });
},
getById: function(id) {
return this.find(function(file) { return file.get('id') === id; });
hasOpenFiles() {
return this.some((file) => file.active);
}
});
module.exports = FileCollection;
hasUnsavedFiles() {
return this.some((file) => file.modified);
}
hasDirtyFiles() {
return this.some((file) => file.dirty);
}
getByName(name) {
return this.find((file) => file.name.toLowerCase() === name.toLowerCase());
}
}
export { FileCollection };
+33 -41
View File
@@ -1,47 +1,39 @@
'use strict';
import { Collection } from 'framework/collection';
import { SettingsStore } from 'comp/settings/settings-store';
import { FileInfoModel } from 'models/file-info-model';
var Backbone = require('backbone'),
FileInfoModel = require('../models/file-info-model'),
SettingsStore = require('../comp/settings-store');
class FileInfoCollection extends Collection {
static model = FileInfoModel;
var FileInfoCollection = Backbone.Collection.extend({
model: FileInfoModel,
initialize: function () {
},
load: function () {
var data = SettingsStore.load('file-info');
if (data) {
this.reset(data, {silent: true});
}
},
save: function () {
SettingsStore.save('file-info', this.toJSON());
},
getLast: function () {
return this.first();
},
getMatch: function (storage, name, path) {
return this.find(function(fi) {
return (fi.get('storage') || '') === (storage || '') &&
(fi.get('name') || '') === (name || '') &&
(fi.get('path') || '') === (path || '');
load() {
return SettingsStore.load('file-info').then((data) => {
if (data) {
for (const item of data) {
this.push(new FileInfoModel(item));
}
}
});
},
getByName: function(name) {
return this.find(function(file) { return file.get('name').toLowerCase() === name.toLowerCase(); });
}
});
FileInfoCollection.load = function() {
var coll = new FileInfoCollection();
coll.load();
return coll;
};
save() {
SettingsStore.save('file-info', this);
}
module.exports = FileInfoCollection;
getMatch(storage, name, path) {
return this.find((fi) => {
return (
(fi.storage || '') === (storage || '') &&
(fi.name || '') === (name || '') &&
(fi.path || '') === (path || '')
);
});
}
getByName(name) {
return this.find((file) => file.name.toLowerCase() === name.toLowerCase());
}
}
const instance = new FileInfoCollection();
export { instance as FileInfoCollection };
+6 -8
View File
@@ -1,10 +1,8 @@
'use strict';
import { Collection } from 'framework/collection';
import { GroupModel } from 'models/group-model';
var Backbone = require('backbone'),
GroupModel = require('../models/group-model');
class GroupCollection extends Collection {
static model = GroupModel;
}
var GroupCollection = Backbone.Collection.extend({
model: GroupModel
});
module.exports = GroupCollection;
export { GroupCollection };
@@ -1,10 +1,8 @@
'use strict';
import { Collection } from 'framework/collection';
import { MenuItemModel } from 'models/menu/menu-item-model';
var Backbone = require('backbone'),
MenuItemModel = require('../../models/menu/menu-item-model');
class MenuItemCollection extends Collection {
static model = MenuItemModel;
}
var MenuItemCollection = Backbone.Collection.extend({
model: MenuItemModel
});
module.exports = MenuItemCollection;
export { MenuItemCollection };
@@ -1,10 +1,8 @@
'use strict';
import { Collection } from 'framework/collection';
import { MenuOptionModel } from 'models/menu/menu-option-model';
var Backbone = require('backbone'),
MenuOptionModel = require('../../models/menu/menu-option-model');
class MenuOptionCollection extends Collection {
static model = MenuOptionModel;
}
var MenuOptionCollection = Backbone.Collection.extend({
model: MenuOptionModel
});
module.exports = MenuOptionCollection;
export { MenuOptionCollection };
@@ -1,10 +1,8 @@
'use strict';
import { Collection } from 'framework/collection';
import { MenuSectionModel } from 'models/menu/menu-section-model';
var Backbone = require('backbone'),
MenuSectionModel = require('../../models/menu/menu-section-model');
class MenuSectionCollection extends Collection {
static model = MenuSectionModel;
}
var MenuSectionCollection = Backbone.Collection.extend({
model: MenuSectionModel
});
module.exports = MenuSectionCollection;
export { MenuSectionCollection };
@@ -0,0 +1,52 @@
import { Collection } from 'framework/collection';
import { Model } from 'framework/model';
import { Comparators } from 'util/data/comparators';
class SearchResultCollection extends Collection {
static model = Model;
comparators = {
'none': null,
'title': Comparators.stringComparator('title', true),
'-title': Comparators.stringComparator('title', false),
'website': Comparators.stringComparator('url', true),
'-website': Comparators.stringComparator('url', false),
'user': Comparators.stringComparator('user', true),
'-user': Comparators.stringComparator('user', false),
'created': Comparators.dateComparator('created', true),
'-created': Comparators.dateComparator('created', false),
'updated': Comparators.dateComparator('updated', true),
'-updated': Comparators.dateComparator('updated', false),
'-attachments': (x, y) => {
return this.attachmentSortVal(x).localeCompare(this.attachmentSortVal(y));
},
'-rank': Comparators.rankComparator().bind(this)
};
defaultComparator = 'title';
entryFilter = null;
constructor(models, options) {
super(models);
const comparatorName = (options && options.comparator) || this.defaultComparator;
this.comparator = this.comparators[comparatorName];
}
sortEntries(comparator, filter) {
this.entryFilter = filter;
this.comparator = this.comparators[comparator] || this.comparators[this.defaultComparator];
this.sort();
}
attachmentSortVal(entry) {
const att = entry.attachments;
let str = att.length ? String.fromCharCode(64 + att.length) : 'Z';
if (att[0]) {
str += att[0].title;
}
return str;
}
}
export { SearchResultCollection };
-82
View File
@@ -1,82 +0,0 @@
'use strict';
var ModalView = require('../views/modal-view'),
Locale = require('../util/locale');
var Alerts = {
alertDisplayed: false,
buttons: {
ok: {result: 'yes', title: Locale.alertOk},
yes: {result: 'yes', title: Locale.alertYes},
no: {result: '', title: Locale.alertNo}
},
alert: function(config) {
Alerts.alertDisplayed = true;
var view = new ModalView({ model: config });
view.render();
view.on('result', function(res, check) {
Alerts.alertDisplayed = false;
if (res && config.success) {
config.success(res, check);
}
if (!res && config.cancel) {
config.cancel();
}
if (config.complete) {
config.complete(res, check);
}
});
},
notImplemented: function() {
this.alert({
header: Locale.notImplemented,
body: '',
icon: 'exclamation-triangle',
buttons: [this.buttons.ok],
esc: '',
click: '',
enter: ''
});
},
info: function(config) {
this.alert(_.extend({
header: '',
body: '',
icon: 'info',
buttons: [this.buttons.ok],
esc: '',
click: '',
enter: ''
}, config));
},
error: function(config) {
this.alert(_.extend({
header: '',
body: '',
icon: 'exclamation-circle',
buttons: [this.buttons.ok],
esc: '',
click: '',
enter: ''
}, config));
},
yesno: function(config) {
this.alert(_.extend({
header: '',
body: '',
icon: 'question',
buttons: [this.buttons.yes, this.buttons.no],
esc: '',
click: '',
enter: 'yes'
}, config));
}
};
module.exports = Alerts;
@@ -0,0 +1,81 @@
import { Launcher } from 'comp/launcher';
import { Alerts } from 'comp/ui/alerts';
import { AppSettingsModel } from 'models/app-settings-model';
import { Features } from 'util/features';
import { Locale } from 'util/locale';
const AppRightsChecker = {
AppPath: '/Applications/KeeWeb.app',
init() {
if (!Features.isDesktop || !Features.isMac) {
return;
}
if (AppSettingsModel.skipFolderRightsWarning) {
return;
}
if (!Launcher.getAppPath().startsWith(this.AppPath)) {
return;
}
this.needRunInstaller((needRun) => {
if (needRun) {
this.showAlert();
this.runInstaller();
}
});
},
needRunInstaller(callback) {
Launcher.statFile(this.AppPath, (stat) => {
const folderIsRoot = stat && stat.uid === 0;
callback(!folderIsRoot);
});
},
showAlert() {
const command = 'sudo chown -R root ' + this.AppPath;
this.alert = Alerts.alert({
icon: 'lock',
header: Locale.appRightsAlert,
body:
Locale.appRightsAlertBody1.replace('{}', this.AppPath) +
'\n' +
Locale.appRightsAlertBody2,
pre: command,
buttons: [
{ result: 'skip', title: Locale.alertDoNotAsk, error: true },
Alerts.buttons.ok
],
success: (result) => {
if (result === 'skip') {
this.dontAskAnymore();
}
this.alert = null;
}
});
},
runInstaller() {
Launcher.spawn({
cmd: this.AppPath + '/Contents/Installer/KeeWeb Installer.app/Contents/MacOS/applet',
args: ['--install'],
complete: () => {
this.needRunInstaller((needRun) => {
if (this.alert && !needRun) {
this.alert.closeWithResult('cancel');
}
});
}
});
},
dontAskAnymore() {
this.needRunInstaller((needRun) => {
if (needRun) {
AppSettingsModel.skipFolderRightsWarning = true;
}
});
}
};
export { AppRightsChecker };
@@ -0,0 +1,194 @@
import { Events } from 'framework/events';
import { Logger } from 'util/logger';
import { YubiKey } from 'comp/app/yubikey';
import { UsbListener } from 'comp/app/usb-listener';
import { Alerts } from 'comp/ui/alerts';
import { Locale } from 'util/locale';
import { Timeouts } from 'const/timeouts';
import { Launcher } from 'comp/launcher';
import { AppSettingsModel } from 'models/app-settings-model';
const logger = new Logger('chal-resp');
const ChalRespCalculator = {
cache: {},
getCacheKey(params) {
return `${params.vid}:${params.pid}:${params.serial}:${params.slot}`;
},
build(params) {
if (!params) {
return null;
}
return (challenge) => {
return new Promise((resolve, reject) => {
challenge = Buffer.from(challenge);
const hexChallenge = challenge.toString('hex');
const cacheKey = this.getCacheKey(params);
const respFromCache = this.cache[cacheKey]?.[hexChallenge];
if (respFromCache) {
logger.debug('Found ChalResp in cache');
return resolve(Buffer.from(respFromCache, 'hex'));
}
if (!AppSettingsModel.enableUsb) {
logger.debug('USB is disabled');
Alerts.error({
header: Locale.yubiKeyDisabledErrorHeader,
body: Locale.yubiKeyDisabledErrorBody,
complete() {
const err = new Error(Locale.yubiKeyDisabledErrorHeader);
err.userCanceled = true;
err.ykError = true;
reject(err);
}
});
return;
}
logger.debug('Calculating ChalResp using a YubiKey', params);
this._calc(params, challenge, (err, response) => {
if (err) {
return reject(err);
}
resolve(response);
});
});
};
},
_calc(params, challenge, callback) {
let touchAlert = null;
let userCanceled = false;
YubiKey.calculateChalResp(params, challenge, (err, response) => {
if (userCanceled) {
userCanceled = false;
return;
}
if (touchAlert) {
touchAlert.closeWithoutResult();
touchAlert = null;
}
if (err) {
if (err.noKey) {
logger.info('YubiKey ChalResp: no key');
this._showNoKeyAlert(params.serial, (err) => {
if (err) {
return callback(err);
}
this._calc(params, challenge, callback);
});
return;
} else if (err.touchRequested) {
logger.info('YubiKey ChalResp: touch requested');
touchAlert = this._showTouchAlert(params.serial, (err) => {
touchAlert = null;
userCanceled = true;
logger.info('YubiKey ChalResp canceled');
YubiKey.cancelChalResp();
callback(err);
});
return;
} else {
logger.error('YubiKey ChalResp error', err);
}
return callback(err);
}
const cacheKey = this.getCacheKey(params);
if (!this.cache[cacheKey]) {
this.cache[cacheKey] = {};
}
const hexChallenge = challenge.toString('hex');
this.cache[cacheKey][hexChallenge] = response.toString('hex');
logger.info('Calculated YubiKey ChalResp');
callback(null, response);
});
},
_showNoKeyAlert(serial, callback) {
Launcher.showMainWindow();
let noKeyAlert = null;
let deviceEnumerationTimer;
const onUsbDevicesChanged = () => {
if (!UsbListener.attachedYubiKeys) {
return;
}
deviceEnumerationTimer = setTimeout(() => {
YubiKey.list((err, list) => {
if (err) {
logger.error('YubiKey list error', err);
return;
}
const isAttached = list.some((yk) => yk.serial === serial);
logger.info(isAttached ? 'YubiKey found' : 'YubiKey not found');
if (isAttached) {
Events.off('usb-devices-changed', onUsbDevicesChanged);
if (noKeyAlert) {
noKeyAlert.closeWithoutResult();
}
callback();
}
});
}, Timeouts.ExternalDeviceAfterReconnect);
};
Events.on('usb-devices-changed', onUsbDevicesChanged);
noKeyAlert = Alerts.alert({
header: Locale.yubiKeyNoKeyHeader,
body: Locale.yubiKeyNoKeyBody.replace('{}', serial),
buttons: [Alerts.buttons.cancel],
icon: 'usb-token',
cancel: () => {
logger.info('No key alert closed');
clearTimeout(deviceEnumerationTimer);
Events.off('usb-devices-changed', onUsbDevicesChanged);
const err = new Error('User canceled the YubiKey no key prompt');
err.userCanceled = true;
err.ykError = true;
return callback(err);
}
});
},
_showTouchAlert(serial, callback) {
Launcher.showMainWindow();
return Alerts.alert({
header: Locale.yubiKeyTouchRequestedHeader,
body: Locale.yubiKeyTouchRequestedBody.replace('{}', serial),
buttons: [Alerts.buttons.cancel],
icon: 'usb-token',
cancel: () => {
logger.info('Touch alert closed');
const err = new Error('User canceled the YubiKey touch prompt');
err.userCanceled = true;
err.ykError = true;
return callback(err);
}
});
},
clearCache(params) {
delete this.cache[this.getCacheKey(params)];
}
};
export { ChalRespCalculator };
+5
View File
@@ -0,0 +1,5 @@
const DragDropInfo = {
dragObject: null
};
export { DragDropInfo };
+102
View File
@@ -0,0 +1,102 @@
import { AppSettingsModel } from 'models/app-settings-model';
import { UrlFormat } from 'util/formatting/url-format';
const ChooserAppKey = 'qp7ctun6qt5n9d6';
const DropboxChooser = function (callback) {
this.cb = callback;
this.onMessage = this.onMessage.bind(this);
};
DropboxChooser.prototype.callback = function (err, res) {
if (this.cb) {
this.cb(err, res);
}
this.cb = null;
};
DropboxChooser.prototype.choose = function () {
const windowFeatures = 'width=640,height=552,left=357,top=100,resizable=yes,location=yes';
const url = this.buildUrl();
this.popup = window.open(url, 'dropbox', windowFeatures);
if (!this.popup) {
return this.callback('Failed to open window');
}
window.addEventListener('message', this.onMessage);
this.closeInt = setInterval(this.checkClose.bind(this), 200);
};
DropboxChooser.prototype.buildUrl = function () {
return UrlFormat.makeUrl('https://www.dropbox.com/chooser', {
origin: window.location.protocol + '//' + window.location.host,
'app_key': AppSettingsModel.dropboxAppKey || ChooserAppKey,
'link_type': 'direct',
trigger: 'js',
multiselect: 'false',
extensions: '',
folderselect: 'false',
iframe: 'false',
version: 2
});
};
DropboxChooser.prototype.onMessage = function (e) {
if (e.source !== this.popup || e.origin !== 'https://www.dropbox.com') {
return;
}
const data = JSON.parse(e.data);
switch (data.method) {
case 'origin_request':
e.source.postMessage(JSON.stringify({ method: 'origin' }), 'https://www.dropbox.com');
break;
case 'files_selected':
this.popup.close();
this.success(data.params);
break;
case 'close_dialog':
this.popup.close();
break;
case 'web_session_error':
case 'web_session_unlinked':
this.callback(data.method);
break;
case 'resize':
this.popup.resize(data.params);
break;
case 'error':
this.callback(data.params);
break;
}
};
DropboxChooser.prototype.checkClose = function () {
if (this.popup.closed) {
clearInterval(this.closeInt);
window.removeEventListener('message', this.onMessage);
if (!this.result) {
this.callback('closed');
}
}
};
DropboxChooser.prototype.success = function (params) {
if (!params || !params[0] || !params[0].link || params[0].is_dir) {
return this.callback('bad result');
}
this.result = params[0];
this.readFile(this.result.link);
};
DropboxChooser.prototype.readFile = function (url) {
const xhr = new XMLHttpRequest();
xhr.addEventListener('load', () => {
this.callback(null, { name: this.result.name, data: xhr.response });
});
xhr.addEventListener('error', this.callback.bind(this, 'download error'));
xhr.addEventListener('abort', this.callback.bind(this, 'download abort'));
xhr.open('GET', url);
xhr.responseType = 'arraybuffer';
xhr.send();
};
export { DropboxChooser };
+29
View File
@@ -0,0 +1,29 @@
import { AppSettingsModel } from 'models/app-settings-model';
import { RuntimeDataModel } from 'models/runtime-data-model';
const ExportApi = {
settings: {
get(key) {
return key ? AppSettingsModel[key] : { ...AppSettingsModel };
},
set(key, value) {
AppSettingsModel[key] = value;
},
del(key) {
delete AppSettingsModel[key];
}
},
runtimeData: {
get(key) {
return key ? RuntimeDataModel[key] : { ...RuntimeDataModel };
},
set(key, value) {
RuntimeDataModel[key] = value;
},
del(key) {
delete RuntimeDataModel[key];
}
}
};
export { ExportApi };
+18
View File
@@ -0,0 +1,18 @@
import { Logger } from 'util/logger';
const logger = new Logger(
'focus-manager',
undefined,
localStorage.debugFocusManager ? Logger.Level.Debug : Logger.Level.Info
);
const FocusManager = {
modal: null,
setModal(modal) {
this.modal = modal;
logger.debug('Set modal', modal);
}
};
export { FocusManager };
+177
View File
@@ -0,0 +1,177 @@
import { AppSettingsModel } from 'models/app-settings-model';
import { Locale } from 'util/locale';
const GeneratorPresets = {
get defaultPreset() {
return {
name: 'Default',
title: Locale.genPresetDefault,
length: 16,
upper: true,
lower: true,
digits: true
};
},
get browserExtensionPreset() {
return {
name: 'BrowserExtension',
length: 20,
upper: true,
lower: true,
special: true,
brackets: true,
ambiguous: true
};
},
get builtIn() {
return [
this.defaultPreset,
{
name: 'Pronounceable',
title: Locale.genPresetPronounceable,
length: 10,
lower: true,
upper: true
},
{
name: 'Med',
title: Locale.genPresetMed,
length: 16,
upper: true,
lower: true,
digits: true,
special: true,
brackets: true,
ambiguous: true
},
{
name: 'Long',
title: Locale.genPresetLong,
length: 32,
upper: true,
lower: true,
digits: true
},
{ name: 'Pin4', title: Locale.genPresetPin4, length: 4, digits: true },
{
name: 'Mac',
title: Locale.genPresetMac,
length: 17,
include: '0123456789ABCDEF',
pattern: 'XX-'
},
{
name: 'Hash128',
title: Locale.genPresetHash128,
length: 32,
include: '0123456789abcdef'
},
{
name: 'Hash256',
title: Locale.genPresetHash256,
length: 64,
include: '0123456789abcdef'
}
];
},
get all() {
let presets = this.builtIn;
presets.forEach((preset) => {
preset.builtIn = true;
});
const setting = AppSettingsModel.generatorPresets;
if (setting) {
if (setting.user) {
presets = presets.concat(setting.user.map((item) => ({ ...item })));
}
let hasDefault = false;
presets.forEach((preset) => {
if (setting.disabled && setting.disabled[preset.name]) {
preset.disabled = true;
}
if (setting.default === preset.name) {
hasDefault = true;
preset.default = true;
}
});
if (!hasDefault) {
presets[0].default = true;
}
}
return presets;
},
get enabled() {
const allPresets = this.all.filter((preset) => !preset.disabled);
if (!allPresets.length) {
allPresets.push(this.defaultPreset);
}
return allPresets;
},
getOrCreateSetting() {
let setting = AppSettingsModel.generatorPresets;
if (!setting) {
setting = { user: [] };
}
return setting;
},
add(preset) {
const setting = this.getOrCreateSetting();
if (preset.name && !setting.user.filter((p) => p.name === preset.name).length) {
setting.user.push(preset);
this.save(setting);
}
},
remove(name) {
const setting = this.getOrCreateSetting();
setting.user = setting.user.filter((p) => p.name !== name);
this.save(setting);
},
setPreset(name, props) {
const setting = this.getOrCreateSetting();
const preset = setting.user.filter((p) => p.name === name)[0];
if (preset) {
Object.assign(preset, props);
this.save(setting);
}
},
setDisabled(name, disabled) {
const setting = this.getOrCreateSetting();
if (disabled) {
if (!setting.disabled) {
setting.disabled = {};
}
setting.disabled[name] = true;
} else {
if (setting.disabled) {
delete setting.disabled[name];
}
}
this.save(setting);
},
setDefault(name) {
const setting = this.getOrCreateSetting();
if (name) {
setting.default = name;
} else {
delete setting.default;
}
this.save(setting);
},
save(setting) {
AppSettingsModel.set({ generatorPresets: undefined }, { silent: true });
AppSettingsModel.generatorPresets = setting;
}
};
export { GeneratorPresets };
@@ -0,0 +1,37 @@
import * as kdbxweb from 'kdbxweb';
import { Logger } from 'util/logger';
const logger = new Logger('online-password-checker');
const exposedPasswords = {};
function checkIfPasswordIsExposedOnline(password) {
if (!password || !password.isProtected || !password.byteLength) {
return false;
}
const saltedValue = password.saltedValue();
const cached = exposedPasswords[saltedValue];
if (cached !== undefined) {
return cached;
}
const passwordBytes = password.getBinary();
return crypto.subtle
.digest({ name: 'SHA-1' }, passwordBytes)
.then((sha1) => {
kdbxweb.ByteUtils.zeroBuffer(passwordBytes);
sha1 = kdbxweb.ByteUtils.bytesToHex(sha1).toUpperCase();
const shaFirst = sha1.substr(0, 5);
return fetch(`https://api.pwnedpasswords.com/range/${shaFirst}`)
.then((response) => response.text())
.then((response) => {
const isPresent = response.includes(sha1.substr(5));
exposedPasswords[saltedValue] = isPresent;
return isPresent;
});
})
.catch((e) => {
logger.error('Error checking password online', e);
});
}
export { checkIfPasswordIsExposedOnline };
@@ -0,0 +1,99 @@
import { SearchResultCollection } from 'collections/search-result-collection';
import { Ranking } from 'util/data/ranking';
const urlPartsRegex = /^(\w+:\/\/)?(?:(?:www|wwws|secure)\.)?([^\/]+)\/?(.*)/;
class SelectEntryFilter {
constructor(windowInfo, appModel, files, filterOptions) {
this.title = windowInfo.title;
this.useTitle = !!windowInfo.title && !windowInfo.url;
this.url = windowInfo.url;
this.useUrl = !!windowInfo.url;
this.subdomains = true;
this.text = '';
this.appModel = appModel;
this.files = files;
this.filterOptions = filterOptions;
}
getEntries() {
const filter = {
text: this.text,
...this.filterOptions
};
let entries = this.appModel
.getEntriesByFilter(filter, this.files)
.map((e) => [e, this._getEntryRank(e)]);
if (this.useUrl || this.useTitle) {
entries = entries.filter((e) => e[1]);
}
entries = entries.sort((x, y) =>
x[1] === y[1] ? x[0].title.localeCompare(y[0].title) : y[1] - x[1]
);
entries = entries.map((p) => p[0]);
return new SearchResultCollection(entries, { comparator: 'none' });
}
_getEntryRank(entry) {
let titleRank = 0;
let urlRank = 0;
if (this.useTitle && this.title && entry.title) {
titleRank = Ranking.getStringRank(entry.title.toLowerCase(), this.title.toLowerCase());
if (!titleRank) {
return 0;
}
}
if (this.useUrl && this.url) {
const searchUrlLower = this.url.toLowerCase();
const searchUrlParts = urlPartsRegex.exec(searchUrlLower);
for (const url of entry.getAllUrls()) {
const entryUrlParts = urlPartsRegex.exec(url.toLowerCase());
if (entryUrlParts) {
const [, scheme, domain, path] = entryUrlParts;
const [, searchScheme, searchDomain, searchPath] = searchUrlParts;
if (
domain === searchDomain ||
(this.subdomains && searchDomain.indexOf('.' + domain) > 0)
) {
if (domain === searchDomain) {
urlRank += 20;
} else {
urlRank += 10;
}
if (path === searchPath) {
urlRank += 10;
} else if (path && searchPath) {
if (path.lastIndexOf(searchPath, 0) === 0) {
urlRank += 5;
} else if (searchPath.lastIndexOf(path, 0) === 0) {
urlRank += 3;
}
}
if (scheme === searchScheme) {
urlRank += 1;
}
}
}
}
if (entry.searchText.includes(searchUrlLower)) {
// the url is in some field; include it
urlRank += 5;
}
}
if (this.useTitle && !titleRank) {
return 0;
}
if (this.useUrl && !urlRank) {
return 0;
}
return titleRank + urlRank;
}
}
export { SelectEntryFilter };
+138
View File
@@ -0,0 +1,138 @@
import { Launcher } from 'comp/launcher';
import { Keys } from 'const/keys';
import { AppSettingsModel } from 'models/app-settings-model';
import { Features } from 'util/features';
import { StringFormat } from 'util/formatting/string-format';
import { Locale } from 'util/locale';
let allowedKeys;
function getAllowedKeys() {
if (!allowedKeys) {
allowedKeys = {};
for (const [name, code] of Object.entries(Keys)) {
const keyName = name.replace('DOM_VK_', '');
if (/^([0-9A-Z]|F\d{1,2})$/.test(keyName)) {
allowedKeys[code] = keyName;
}
}
}
return allowedKeys;
}
const globalShortcuts = {
copyPassword: { mac: 'Ctrl+Alt+C', all: 'Shift+Alt+C' },
copyUser: { mac: 'Ctrl+Alt+B', all: 'Shift+Alt+B' },
copyUrl: { mac: 'Ctrl+Alt+U', all: 'Shift+Alt+U' },
copyOtp: {},
autoType: { mac: 'Ctrl+Alt+T', all: 'Shift+Alt+T' },
restoreApp: {}
};
const Shortcuts = {
keyEventToShortcut(event) {
const modifiers = [];
if (event.ctrlKey) {
modifiers.push('Ctrl');
}
if (event.altKey) {
modifiers.push('Alt');
}
if (event.shiftKey) {
modifiers.push('Shift');
}
if (Features.isMac && event.metaKey) {
modifiers.push('Meta');
}
const keyName = getAllowedKeys()[event.which];
return {
value: modifiers.join('+') + '+' + (keyName || '…'),
valid: modifiers.length > 0 && !!keyName
};
},
presentShortcut(shortcutValue, formatting) {
if (!shortcutValue) {
return '-';
}
return shortcutValue
.split(/\+/g)
.map((part) => {
switch (part) {
case 'Ctrl':
return this.ctrlShortcutSymbol(formatting);
case 'Alt':
return this.altShortcutSymbol(formatting);
case 'Shift':
return this.shiftShortcutSymbol(formatting);
case 'Meta':
return this.actionShortcutSymbol(formatting);
default:
return part;
}
})
.join('');
},
actionShortcutSymbol(formatting) {
return Features.isMac ? '⌘' : this.formatShortcut(Locale.ctrlKey, formatting);
},
altShortcutSymbol(formatting) {
return Features.isMac ? '⌥' : this.formatShortcut(Locale.altKey, formatting);
},
shiftShortcutSymbol(formatting) {
return Features.isMac ? '⇧' : this.formatShortcut(Locale.shiftKey, formatting);
},
ctrlShortcutSymbol(formatting) {
return Features.isMac ? '⌃' : this.formatShortcut(Locale.ctrlKey, formatting);
},
formatShortcut(shortcut, formatting) {
return formatting ? `${shortcut} + ` : `${shortcut}+`;
},
globalShortcutText(type, formatting) {
return this.presentShortcut(this.globalShortcut(type), formatting);
},
globalShortcut(type) {
const appSettingsShortcut = AppSettingsModel[this.globalShortcutAppSettingsKey(type)];
if (appSettingsShortcut) {
return appSettingsShortcut;
}
const globalShortcut = globalShortcuts[type];
if (globalShortcut) {
if (Features.isMac && globalShortcut.mac) {
return globalShortcut.mac;
}
return globalShortcut.all;
}
return undefined;
},
setGlobalShortcut(type, value) {
if (!globalShortcuts[type]) {
throw new Error('Bad shortcut: ' + type);
}
if (value) {
AppSettingsModel[this.globalShortcutAppSettingsKey(type)] = value;
} else {
delete AppSettingsModel[this.globalShortcutAppSettingsKey(type)];
}
Launcher.setGlobalShortcuts(AppSettingsModel);
},
globalShortcutAppSettingsKey(type) {
return 'globalShortcut' + StringFormat.capFirst(type);
},
screenshotToClipboardShortcut() {
if (Features.isiOS) {
return 'Sleep+Home';
}
if (Features.isMobile) {
return '';
}
if (Features.isMac) {
return 'Command-Shift-Control-4';
}
if (Features.isWindows) {
return 'Alt+PrintScreen';
}
return '';
}
};
export { Shortcuts };
@@ -0,0 +1,43 @@
import { Events } from 'framework/events';
import { Launcher } from 'comp/launcher';
const LocalStorageKeyName = 'instanceCheck';
const LocalStorageResponseKeyName = 'instanceMaster';
const instanceKey = Date.now().toString();
const SingleInstanceChecker = {
init() {
if (Launcher) {
return;
}
window.addEventListener('storage', SingleInstanceChecker.storageChanged);
SingleInstanceChecker.setKey(LocalStorageKeyName, instanceKey);
},
storageChanged(e) {
if (!e.newValue) {
return;
}
if (e.key === LocalStorageKeyName && e.newValue !== instanceKey) {
SingleInstanceChecker.setKey(
LocalStorageResponseKeyName,
instanceKey + Math.random().toString()
);
} else if (e.key === LocalStorageResponseKeyName && e.newValue.indexOf(instanceKey) < 0) {
window.removeEventListener('storage', SingleInstanceChecker.storageChanged);
Events.emit('second-instance');
}
},
setKey(key, value) {
try {
localStorage.setItem(key, value);
setTimeout(() => {
localStorage.removeItem(key);
}, 100);
} catch (e) {}
}
};
export { SingleInstanceChecker };
+54
View File
@@ -0,0 +1,54 @@
import { Logger } from 'util/logger';
const logger = new Logger('start-profiler');
let lastTs = 0;
const operations = [];
const StartProfiler = {
milestone(name) {
const ts = logger.ts();
const elapsed = ts - lastTs;
lastTs = ts;
operations.push({ name, elapsed });
},
report() {
const networkTime = this.getNetworkTime();
operations.unshift({ name: 'fetching', elapsed: networkTime });
const time = Math.round(performance.now());
this.printReport('App', operations, time);
},
reportAppProfile(data) {
this.printReport('Electron app', data.timings, data.totalTime);
},
printReport(name, operations, totalTime) {
const message =
`${name} started in ${totalTime}ms: ` +
operations.map((op) => `${op.name}=${Math.round(op.elapsed)}ms`).join(', ');
logger.info(message);
},
getNetworkTime() {
let perfEntry;
if (performance.getEntriesByType) {
[perfEntry] = performance.getEntriesByType('navigation');
}
if (!perfEntry || !perfEntry.responseEnd || !perfEntry.fetchStart) {
perfEntry = performance.timing;
}
return perfEntry.responseEnd - perfEntry.fetchStart;
}
};
StartProfiler.milestone('pre-init');
export { StartProfiler };
+306
View File
@@ -0,0 +1,306 @@
import * as kdbxweb from 'kdbxweb';
import { Events } from 'framework/events';
import { RuntimeInfo } from 'const/runtime-info';
import { Transport } from 'comp/browser/transport';
import { Launcher } from 'comp/launcher';
import { Links } from 'const/links';
import { AppSettingsModel } from 'models/app-settings-model';
import { UpdateModel } from 'models/update-model';
import { SemVer } from 'util/data/semver';
import { Logger } from 'util/logger';
import { SignatureVerifier } from 'util/data/signature-verifier';
const logger = new Logger('updater');
const Updater = {
UpdateInterval: 1000 * 60 * 60 * 24,
MinUpdateTimeout: 500,
MinUpdateSize: 10000,
nextCheckTimeout: null,
updateCheckDate: new Date(0),
enabled: Launcher?.updaterEnabled(),
getAutoUpdateType() {
if (!this.enabled) {
return false;
}
let autoUpdate = AppSettingsModel.autoUpdate;
if (autoUpdate && autoUpdate === true) {
autoUpdate = 'install';
}
return autoUpdate;
},
updateInProgress() {
return (
UpdateModel.status === 'checking' ||
['downloading', 'extracting', 'updating'].indexOf(UpdateModel.updateStatus) >= 0
);
},
init() {
this.scheduleNextCheck();
if (!Launcher && navigator.serviceWorker && !RuntimeInfo.beta && !RuntimeInfo.devMode) {
navigator.serviceWorker
.register('service-worker.js')
.then((reg) => {
logger.info('Service worker registered');
reg.addEventListener('updatefound', () => {
if (reg.active) {
logger.info('Service worker found an update');
UpdateModel.set({ updateStatus: 'ready' });
}
});
})
.catch((e) => {
logger.error('Failed to register a service worker', e);
});
}
},
scheduleNextCheck() {
if (this.nextCheckTimeout) {
clearTimeout(this.nextCheckTimeout);
this.nextCheckTimeout = null;
}
if (!this.getAutoUpdateType()) {
return;
}
let timeDiff = this.MinUpdateTimeout;
const lastCheckDate = UpdateModel.lastCheckDate;
if (lastCheckDate) {
timeDiff = Math.min(
Math.max(this.UpdateInterval + (lastCheckDate - new Date()), this.MinUpdateTimeout),
this.UpdateInterval
);
}
this.nextCheckTimeout = setTimeout(this.check.bind(this), timeDiff);
logger.info('Next update check will happen in ' + Math.round(timeDiff / 1000) + 's');
},
check(startedByUser) {
if (!this.enabled || this.updateInProgress()) {
return;
}
UpdateModel.set({ status: 'checking' });
if (!startedByUser) {
// additional protection from broken program logic, to ensure that auto-checks are not performed more than once an hour
const diffMs = new Date() - this.updateCheckDate;
if (isNaN(diffMs) || diffMs < 1000 * 60 * 60) {
logger.error(
'Prevented update check; last check was performed at ' + this.updateCheckDate
);
this.scheduleNextCheck();
return;
}
this.updateCheckDate = new Date();
}
logger.info('Checking for update...');
Transport.httpGet({
url: Links.UpdateJson,
json: true,
success: (updateJson) => {
const dt = new Date();
logger.info('Update check: ' + (updateJson.version || 'unknown'));
if (!updateJson.version) {
const errMsg = 'No version info found';
UpdateModel.set({
status: 'error',
lastCheckDate: dt,
lastCheckError: errMsg
});
UpdateModel.save();
this.scheduleNextCheck();
return;
}
const prevLastVersion = UpdateModel.lastVersion;
UpdateModel.set({
status: 'ok',
lastCheckDate: dt,
lastSuccessCheckDate: dt,
lastVersionReleaseDate: new Date(updateJson.date),
lastVersion: updateJson.version,
lastCheckError: null,
lastCheckUpdMin: updateJson.minVersion || null
});
UpdateModel.save();
this.scheduleNextCheck();
if (!this.canAutoUpdate()) {
return;
}
if (
prevLastVersion === UpdateModel.lastVersion &&
UpdateModel.updateStatus === 'ready'
) {
logger.info('Waiting for the user to apply downloaded update');
return;
}
if (!startedByUser && this.getAutoUpdateType() === 'install') {
this.update(startedByUser);
} else if (
SemVer.compareVersions(UpdateModel.lastVersion, RuntimeInfo.version) > 0
) {
UpdateModel.set({ updateStatus: 'found' });
}
},
error: (e) => {
logger.error('Update check error', e);
UpdateModel.set({
status: 'error',
lastCheckDate: new Date(),
lastCheckError: 'Error checking last version'
});
UpdateModel.save();
this.scheduleNextCheck();
}
});
},
canAutoUpdate() {
const minLauncherVersion = UpdateModel.lastCheckUpdMin;
if (minLauncherVersion) {
const cmp = SemVer.compareVersions(RuntimeInfo.version, minLauncherVersion);
if (cmp < 0) {
UpdateModel.set({ updateStatus: 'ready', updateManual: true });
return false;
}
}
return true;
},
update(startedByUser, successCallback) {
const ver = UpdateModel.lastVersion;
if (!this.enabled) {
logger.info('Updater is disabled');
return;
}
if (SemVer.compareVersions(RuntimeInfo.version, ver) >= 0) {
logger.info('You are using the latest version');
return;
}
UpdateModel.set({ updateStatus: 'downloading', updateError: null });
logger.info('Downloading update', ver);
const updateAssetName = this.getUpdateAssetName(ver);
if (!updateAssetName) {
logger.error('Empty updater asset name for', Launcher.platform(), Launcher.arch());
return;
}
const updateUrlBasePath = Links.UpdateBasePath.replace('{ver}', ver);
const updateAssetUrl = updateUrlBasePath + updateAssetName;
Transport.httpGet({
url: updateAssetUrl,
file: updateAssetName,
cleanupOldFiles: true,
cache: true,
success: (assetFilePath) => {
logger.info('Downloading update signatures');
Transport.httpGet({
url: updateUrlBasePath + 'Verify.sign.sha256',
text: true,
file: updateAssetName + '.sign',
cleanupOldFiles: true,
cache: true,
success: (assetFileSignaturePath) => {
this.verifySignature(assetFilePath, updateAssetName, (err, valid) => {
if (err || !valid) {
UpdateModel.set({
updateStatus: 'error',
updateError: err
? 'Error verifying update signature'
: 'Invalid update signature'
});
Launcher.deleteFile(assetFilePath);
Launcher.deleteFile(assetFileSignaturePath);
return;
}
logger.info('Update is ready', assetFilePath);
UpdateModel.set({ updateStatus: 'ready', updateError: null });
if (!startedByUser) {
Events.emit('update-app');
}
if (typeof successCallback === 'function') {
successCallback();
}
});
},
error(e) {
logger.error('Error downloading update signatures', e);
UpdateModel.set({
updateStatus: 'error',
updateError: 'Error downloading update signatures'
});
}
});
},
error(e) {
logger.error('Error downloading update', e);
UpdateModel.set({
updateStatus: 'error',
updateError: 'Error downloading update'
});
}
});
},
verifySignature(assetFilePath, assetName, callback) {
logger.info('Verifying update signature', assetName);
const fs = Launcher.req('fs');
const signaturesTxt = fs.readFileSync(assetFilePath + '.sign', 'utf8');
const assetSignatureLine = signaturesTxt
.split('\n')
.find((line) => line.endsWith(assetName));
if (!assetSignatureLine) {
logger.error('Signature not found for asset', assetName);
callback('Asset signature not found');
return;
}
const signature = kdbxweb.ByteUtils.hexToBytes(assetSignatureLine.split(' ')[0]);
const fileBytes = fs.readFileSync(assetFilePath);
SignatureVerifier.verify(fileBytes, signature)
.catch((e) => {
logger.error('Error verifying signature', e);
callback('Error verifying signature');
})
.then((valid) => {
logger.info(`Update asset signature is ${valid ? 'valid' : 'invalid'}`);
callback(undefined, valid);
});
},
getUpdateAssetName(ver) {
const platform = Launcher.platform();
const arch = Launcher.arch();
switch (platform) {
case 'win32':
switch (arch) {
case 'x64':
return `KeeWeb-${ver}.win.x64.exe`;
case 'ia32':
return `KeeWeb-${ver}.win.ia32.exe`;
case 'arm64':
return `KeeWeb-${ver}.win.arm64.exe`;
}
break;
case 'darwin':
switch (arch) {
case 'x64':
return `KeeWeb-${ver}.mac.x64.dmg`;
case 'arm64':
return `KeeWeb-${ver}.mac.arm64.dmg`;
}
break;
}
return undefined;
},
installAndRestart() {
if (!Launcher) {
return;
}
const updateAssetName = this.getUpdateAssetName(UpdateModel.lastVersion);
const updateFilePath = Transport.cacheFilePath(updateAssetName);
Launcher.requestRestartAndUpdate(updateFilePath);
}
};
export { Updater };
+69
View File
@@ -0,0 +1,69 @@
import { Events } from 'framework/events';
import { Logger } from 'util/logger';
import { NativeModules } from 'comp/launcher/native-modules';
import { AppSettingsModel } from 'models/app-settings-model';
import { Features } from 'util/features';
const logger = new Logger('usb-listener');
const UsbListener = {
supported: Features.isDesktop,
attachedYubiKeys: 0,
init() {
if (!this.supported) {
return;
}
Events.on('native-modules-yubikeys', (e) => {
if (e.numYubiKeys !== this.attachedYubiKeys) {
logger.debug(`YubiKeys changed ${this.attachedYubiKeys} => ${e.numYubiKeys}`);
this.attachedYubiKeys = e.numYubiKeys;
Events.emit('usb-devices-changed');
}
});
AppSettingsModel.on('change:enableUsb', (model, enabled) => {
if (enabled) {
this.start();
} else {
this.stop();
}
});
if (AppSettingsModel.enableUsb) {
this.start();
}
},
start() {
logger.info('Starting USB listener');
if (this.usb) {
this.stop();
}
try {
NativeModules.startUsbListener();
} catch (e) {
logger.error('Error starting USB listener', e);
}
},
stop() {
logger.info('Stopping USB listener');
try {
NativeModules.stopUsbListener();
} catch (e) {
logger.error('Error stopping USB listener', e);
}
if (this.attachedYubiKeys) {
this.attachedYubiKeys = 0;
Events.emit('usb-devices-changed');
}
}
};
export { UsbListener };
+291
View File
@@ -0,0 +1,291 @@
import { Events } from 'framework/events';
import { Launcher } from 'comp/launcher';
import { NativeModules } from 'comp/launcher/native-modules';
import { Logger } from 'util/logger';
import { UsbListener } from 'comp/app/usb-listener';
import { AppSettingsModel } from 'models/app-settings-model';
import { Timeouts } from 'const/timeouts';
import { YubiKeyProductIds, YubiKeyChallengeSize } from 'const/hardware';
import { Locale } from 'util/locale';
const logger = new Logger('yubikey');
const YubiKey = {
ykmanStatus: undefined,
process: null,
aborted: false,
cmd() {
if (this._cmd) {
return this._cmd;
}
const macYkmanPath = '/usr/local/bin/ykman';
if (Launcher.platform() === 'darwin' && Launcher.fileExistsSync(macYkmanPath)) {
this._cmd = macYkmanPath;
} else {
this._cmd = 'ykman';
}
return this._cmd;
},
checkToolStatus() {
if (this.ykmanStatus === 'ok') {
return Promise.resolve(this.ykmanStatus);
}
return new Promise((resolve) => {
this.ykmanStatus = 'checking';
this._cmd = undefined;
Launcher.spawn({
cmd: this.cmd(),
args: ['-v'],
noStdOutLogging: true,
complete: (err, stdout, code) => {
if (err || code !== 0) {
this.ykmanStatus = 'error';
} else {
this.ykmanStatus = 'ok';
}
resolve(this.ykmanStatus);
}
});
});
},
abort() {
logger.info('Aborting');
if (this.process) {
logger.info('Killing the process');
try {
this.process.kill();
} catch {}
}
this.aborted = true;
this.process = null;
},
list(callback) {
NativeModules.getYubiKeys({})
.then((yubiKeys) => {
yubiKeys = yubiKeys.map(({ serial, vid, pid, version, slots }) => {
return {
vid,
pid,
serial,
slots,
fullName: this.getKeyFullName(pid, version, serial)
};
});
callback(null, yubiKeys);
})
.catch(callback);
},
getKeyFullName(pid, version, serial) {
let name = 'YubiKey';
if (YubiKeyProductIds.Gen1.includes(pid)) {
name += ' Gen 1';
} else if (YubiKeyProductIds.NEO.includes(pid)) {
name += ' NEO';
} else if (YubiKeyProductIds.YK4.includes(pid)) {
if (version >= '5.1.0') {
name += ' 5';
}
}
return `${name} ${serial}`;
},
listWithYkman(callback) {
this._listWithYkman(callback, true);
},
_listWithYkman(callback, canRetry) {
if (this.process) {
return callback('Already in progress');
}
this.aborted = false;
logger.info('Listing YubiKeys');
if (!UsbListener.attachedYubiKeys) {
return callback(null, []);
}
this.process = Launcher.spawn({
cmd: this.cmd(),
args: ['list'],
noStdOutLogging: true,
complete: (err, stdout) => {
this.process = null;
if (this.aborted) {
return callback('Aborted');
}
if (err) {
return callback(err);
}
const yubiKeysIncludingEmpty = stdout
.trim()
.split(/\n/g)
.map((line) => {
const fullName = line;
const serial = (line.match(/\d{5,}$/g) || [])[0];
return { fullName, serial };
});
const yubiKeys = yubiKeysIncludingEmpty.filter((s) => s.serial);
if (
yubiKeysIncludingEmpty.length === 1 &&
yubiKeys.length === 0 &&
stdout.startsWith('YubiKey') &&
stdout.includes('CCID') &&
!stdout.includes('Serial')
) {
logger.info('The YubiKey is probably stuck');
if (!AppSettingsModel.yubiKeyStuckWorkaround) {
return callback(Locale.yubiKeyStuckError);
}
if (canRetry) {
return this._repairStuckYubiKey(callback);
}
}
if (!yubiKeys.length) {
return callback('No YubiKeys returned by "ykman list"');
}
callback(null, yubiKeys);
}
});
},
_repairStuckYubiKey(callback) {
logger.info('Repairing a stuck YubiKey');
let openTimeout;
const countYubiKeys = UsbListener.attachedYubiKeys;
const onDevicesChangedDuringRepair = () => {
if (UsbListener.attachedYubiKeys === countYubiKeys) {
logger.info('YubiKey was reconnected');
Events.off('usb-devices-changed', onDevicesChangedDuringRepair);
clearTimeout(openTimeout);
this.aborted = false;
setTimeout(() => {
this._listWithYkman(callback, false);
}, Timeouts.ExternalDeviceAfterReconnect);
}
};
Events.on('usb-devices-changed', onDevicesChangedDuringRepair);
Launcher.spawn({
cmd: this.cmd(),
args: ['config', 'usb', '-e', 'oath', '-f'],
noStdOutLogging: true,
complete: (err) => {
logger.info('Repair complete', err ? 'with error' : 'OK');
if (err) {
Events.off('usb-devices-changed', onDevicesChangedDuringRepair);
return callback(`YubiKey repair error: ${err}`);
}
openTimeout = setTimeout(() => {
Events.off('usb-devices-changed', onDevicesChangedDuringRepair);
}, Timeouts.ExternalDeviceReconnect);
}
});
},
getOtpCodes(serial, callback) {
if (this.process) {
return callback('Already in progress');
}
this.aborted = false;
this.process = Launcher.spawn({
cmd: this.cmd(),
args: ['-d', serial, 'oath', 'accounts', 'code'],
noStdOutLogging: true,
throwOnStdErr: true,
complete: (err, stdout) => {
this.process = null;
if (this.aborted) {
return callback('Aborted');
}
if (err) {
return callback(err);
}
const codes = [];
for (const line of stdout.split('\n')) {
const match = line.match(/^(.*?):(.*?)\s+(.*)$/);
if (!match) {
continue;
}
const [, title, user, code] = match;
const needsTouch = !code.match(/^\d+$/);
codes.push({
title,
user,
needsTouch
});
}
callback(null, codes);
}
});
},
getOtp(serial, entry, callback) {
return Launcher.spawn({
cmd: this.cmd(),
args: ['-d', serial, 'oath', 'accounts', 'code', '--single', entry],
noStdOutLogging: true,
complete: (err, stdout) => {
if (err) {
return callback(err);
}
const otp = stdout.trim();
callback(null, otp);
}
});
},
calculateChalResp(chalResp, challenge, callback) {
const { vid, pid, serial, slot } = chalResp;
const yubiKey = { vid, pid, serial };
challenge = Buffer.from(challenge);
// https://github.com/Yubico/yubikey-personalization-gui/issues/86
// https://github.com/keepassxreboot/keepassxc/blob/develop/src/keys/drivers/YubiKey.cpp#L318
const padLen = YubiKeyChallengeSize - challenge.byteLength;
const paddedChallenge = Buffer.alloc(YubiKeyChallengeSize, padLen);
challenge.copy(paddedChallenge);
NativeModules.yubiKeyChallengeResponse(
yubiKey,
[...paddedChallenge],
slot,
(err, result) => {
if (result) {
result = Buffer.from(result);
}
if (err) {
err.ykError = true;
}
return callback(err, result);
}
);
},
cancelChalResp() {
NativeModules.yubiKeyCancelChallengeResponse();
}
};
export { YubiKey };
+74
View File
@@ -0,0 +1,74 @@
import { Events } from 'framework/events';
import { Launcher } from 'comp/launcher';
import { AppSettingsModel } from 'models/app-settings-model';
const CopyPaste = {
simpleCopy: !!(Launcher && Launcher.clipboardSupported),
copy(text) {
if (this.simpleCopy) {
Launcher.setClipboardText(text);
const clipboardSeconds = AppSettingsModel.clipboardSeconds;
if (clipboardSeconds > 0) {
const clearClipboard = () => {
if (Launcher.getClipboardText() === text) {
Launcher.clearClipboardText();
}
};
Events.on('main-window-will-close', clearClipboard);
setTimeout(() => {
clearClipboard();
Events.off('main-window-will-close', clearClipboard);
}, clipboardSeconds * 1000);
}
return { success: true, seconds: clipboardSeconds };
} else {
try {
if (document.execCommand('copy')) {
return { success: true };
}
} catch (e) {}
return false;
}
},
createHiddenInput(text) {
const hiddenInput = $('<input/>')
.val(text)
.attr({ type: 'text', 'class': 'hide-by-pos' })
.appendTo(document.body);
hiddenInput[0].selectionStart = 0;
hiddenInput[0].selectionEnd = text.length;
hiddenInput.focus();
hiddenInput.on({
'copy cut paste'() {
setTimeout(() => hiddenInput.blur(), 0);
},
blur() {
hiddenInput.remove();
}
});
},
copyHtml(html) {
const el = document.createElement('div');
el.style.userSelect = 'auto';
el.style.webkitUserSelect = 'auto';
el.style.mozUserSelect = 'auto';
el.innerHTML = html;
document.body.appendChild(el);
const range = document.createRange();
range.selectNodeContents(el);
const sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
const result = document.execCommand('copy');
el.remove();
return result;
}
};
export { CopyPaste };

Some files were not shown because too many files have changed in this diff Show More