Commit graph

695 commits

Author SHA1 Message Date
Fedor Indutny
1ce39478a2
Update signal-client to 0.11.0 2021-11-24 09:39:47 +01:00
Fedor Indutny
bd6ee4b16d
Use strict @electron/fuses 2021-11-23 23:00:44 +01:00
Jim Gustafson
f9ad013e16
Update to RingRTC v2.15.0 2021-11-20 09:47:35 -06:00
Jim Gustafson
b9518ed0c5
Update to RingRTC v2.14.3 2021-11-19 09:17:41 -06:00
Jim Gustafson
4f4431bc30
Update to RingRTC v2.14.2 2021-11-16 21:18:13 -06:00
Fedor Indutnyy
4a055d4b95 Update electron to 15.3.2 2021-11-16 09:56:00 +01:00
Scott Nonnenberg
1982d5c8db
Update several dependencies, remove a few as well 2021-11-15 16:49:34 -08:00
Evan Hahn
ede34ecee3
Enable noImplicitOverride TypeScript compiler option 2021-11-12 15:44:20 -08:00
Evan Hahn
4490d9f2d0
Upgrade Reselect to 4.1.2
Co-authored-by: Fedor Indutnyy <indutny@signal.org>
2021-11-12 16:37:44 -06:00
Evan Hahn
5619eeca83
Upgrade Prettier to 2.4.1 2021-11-11 16:43:05 -06:00
Jordan Rose
983713003d
Update to libsignal-client v0.10.1 with zkgroup included 2021-11-11 16:24:28 +01:00
Jim Gustafson
d2592de366
Update to RingRTC v2.14.1 2021-11-10 09:31:10 -06:00
Fedor Indutny
f65c25b7d8
Downgrade sass-loader to 10.2.0 2021-11-09 10:53:37 -06:00
Jim Gustafson
dd342e1f22
Update to RingRTC v2.14.0 2021-11-08 17:44:18 -06:00
Fedor Indutny
409bf1fc82
WebSocket API for CDS 2021-11-08 15:32:31 -08:00
Fedor Indutny
4cb1ea9e5d
Update electron to 15.3.1 2021-11-09 00:09:56 +01:00
Fedor Indutny
519ca05911
Update electron to 15.3.0 2021-11-08 22:43:37 +01:00
Fedor Indutny
927c22ef73
Update better-sqlite3 to update sqlcipher 2021-11-02 09:41:52 -07:00
Scott Nonnenberg
3190f95fac
Usernames: Create/update/delete in profile editor 2021-11-01 12:13:35 -07:00
Fedor Indutny
33090b5cbd
Bump better-sqlite3 2021-10-27 11:44:37 -07:00
Josh Perez
3e38a4b761
Downgrade to electron v13.5.0 2021-10-22 20:24:20 -04:00
Fedor Indutny
d359048747
Use read stream for fetching debug logs 2021-10-21 15:53:14 -07:00
Jim Gustafson
df06e13041
Update to RingRTC v2.13.6 2021-10-21 16:58:40 -05:00
Fedor Indutny
1b1ed2cd05
Better reporting for DB corruption errors 2021-10-21 13:13:33 -07:00
Josh Perez
3a507349cd
Change electron version to v13.5.1 2021-10-20 19:42:39 -04:00
Jim Gustafson
e6ca3872d1
Update to RingRTC v2.13.5 2021-10-15 13:27:25 -07:00
Josh Perez
d0e8fbd5a6
Animates ModalHost overlay 2021-10-14 09:52:42 -07:00
Scott Nonnenberg
cfc5407d03
Update to Electron 3.5.2 2021-10-14 09:48:53 -07:00
Josh Perez
8220ea4c87
Remove dead css 2021-10-07 16:46:11 -07:00
Fedor Indutny
1466f9f1b2
Update got/form-data to latest 2021-10-06 09:25:22 -07:00
Jim Gustafson
65a604bf36
Update to RingRTC v2.13.4 2021-10-05 17:03:11 -07:00
Scott Nonnenberg
48229332ea
Introduce focus traps for ModalHost, add button role to DropZone 2021-10-04 10:14:00 -07:00
Jim Gustafson
adaeb81c32
Update to RingRTC v2.13.3 2021-10-04 09:03:20 -05:00
Scott Nonnenberg
9a1430a460
Typescriptify main.js 2021-10-01 13:49:59 -05:00
Evan Hahn
af510c9096
Upgrade zkgroup to v0.8.2 2021-09-30 11:06:03 -07:00
Josh Perez
b6cfe0933d
Adds open/close animations to dialogs and modals 2021-09-29 16:59:37 -04:00
Evan Hahn
1303fd009e
Upgrade RingRTC to v2.13.2 2021-09-28 13:16:58 -05:00
Evan Hahn
7b9a68b7f9
Upgrade zkgroup to v0.8.1 2021-09-28 09:30:30 -07:00
Fedor Indutny
daf75190b8
Upgrade @signalapp/signal-client to 0.9.5 2021-09-23 17:06:57 -07:00
Evan Hahn
04a4e6e5ff
Upgrade RingRTC to v2.13.1 2021-09-23 08:49:33 -07:00
Evan Hahn
09d729a780
Support emoji 13.1 2021-09-16 16:25:11 -07:00
Evan Hahn
f9095d372a
Upgrade electron-mocha to v10.1.0 2021-09-16 14:00:52 -07:00
Jim Gustafson
9ffa29ca0d
Update to RingRTC v2.13.0 2021-09-12 11:58:50 -05:00
Evan Hahn
49434d7a81
Update eslint-plugin-mocha to 9.0.0 2021-09-10 09:22:13 -07:00
Fedor Indutny
a67335272c
Update Electron to 13.3.0 2021-09-09 16:43:00 -05:00
Evan Hahn
82f1920ce2
Support ?? operator in Storybook 2021-09-03 14:39:46 -07:00
Scott Nonnenberg
ee5f276e0c
Update proxy-agent to 5.0.0, move @types/pino to dev dependencies 2021-09-02 17:29:15 -07:00
Scott Nonnenberg
5bf3720d1d
Update to libsignal-client@0.9.0, handle new invalid registration error 2021-09-02 13:44:34 -07:00
Evan Hahn
eed873d4e0
Update RingRTC to v2.12.0 2021-09-01 17:31:43 -05:00
Evan Hahn
9890a51f25
Upgrade @typescript-eslint dependencies to v4.30.0 2021-08-31 09:47:57 -07:00
Scott Nonnenberg
dcf29078f4
ConversationView: Improve types 2021-08-30 14:32:56 -07:00
Fedor Indutny
a43abe628a
Update TypeScript to 4.4.2 2021-08-27 15:21:42 -05:00
Evan Hahn
f0c7804929
Upgrade p-queue to v6.6.2 2021-08-23 12:12:05 -05:00
Evan Hahn
79c976668b
Receive rings for group calls 2021-08-20 09:06:15 -07:00
Fedor Indutny
19f4bdd337
Update signal-client to 0.8.4 2021-08-18 17:04:40 -07:00
Evan Hahn
fe12ca936f
Update better-sqlite3 types 2021-08-17 11:17:16 -05:00
Evan Hahn
520a213bf6
Update RingRTC to v2.11.0 2021-08-17 11:16:48 -05:00
Josh Perez
9078919545
Transcode heic/heif images 2021-08-09 13:06:21 -07:00
Fedor Indutny
674ea824c2
Update electron, electron-builder, @electron/fuses 2021-08-04 15:15:38 -07:00
Evan Hahn
402dda0e67
Remove tar dependency\ 2021-08-03 15:20:17 -07:00
dependabot-preview[bot]
7b22428a6f
Bump tar from 4.4.8 to 4.4.15 2021-08-03 16:31:16 -05:00
Evan Hahn
3b476fb60d
Fix tooltip placement bugs by upgrading Popper 2021-08-03 12:04:49 -05:00
Jim Gustafson
eceae64d41
Update to RingRTC v2.10.7 2021-07-27 14:25:54 -05:00
Evan Hahn
dd346f496d
Upgrade @typescript-eslint dependencies to squash warning 2021-07-23 10:13:09 -07:00
Evan Hahn
ceb2f594e3
Upgrade Sinon to v11.1.1 2021-07-22 14:53:49 -05:00
Fedor Indutny
c3bdf3d411
Show lightbox for GIFs 2021-07-14 16:39:52 -07:00
Fedor Indutny
570fb182d4
Fully move to protobufjs 2021-07-13 11:54:53 -07:00
Evan Hahn
3827f05db9
Upgrade to TypeScript v4.3.5 2021-07-07 11:37:55 -05:00
Evan Hahn
f46fbf99df
Upgrade Electron to v13.1.6 2021-07-06 12:29:11 -07:00
Fedor Indutny
299fe2af36
More protobufjs use 2021-07-02 14:21:24 -05:00
Scott Nonnenberg
3b444479c0
Include new database corruption check for SQL errors 2021-06-30 15:06:50 -07:00
Fedor Indutny
d11283f0f1
Update RingRTC to v2.10.6 2021-06-29 09:39:53 -05:00
Evan Hahn
7cf7b1fca5
Upgrade zkgroup to v0.7.3 2021-06-28 12:16:55 -07:00
Josh Perez
01eabf9ec6
Option to send photos as high quality 2021-06-25 11:08:16 -05:00
Evan Hahn
672d060172
Upgrade from Electron v13.1.2 to v13.1.3 2021-06-21 17:49:31 -07:00
Scott Nonnenberg
24960d481e
Move all files under /app to typescript 2021-06-18 10:04:27 -07:00
dependabot-preview[bot]
2674e2f9f9
Upgrade merge-deep to v3.0.3 2021-06-14 14:53:09 -07:00
dependabot-preview[bot]
ca81a2adc2
Upgrade dns-packet to v1.3.4 2021-06-14 14:52:15 -07:00
Fedor Indutny
df0aadc8a4
Update electron to 13.1.2 2021-06-10 13:53:43 -07:00
Jim Gustafson
5a3d2f7807
Update to RingRTC v2.10.5 2021-06-09 15:29:19 -07:00
Evan Hahn
a374772dc8
Upgrade Backbone to v1.4.0 2021-06-07 09:43:42 -07:00
Fedor Indutny
6e2d0ff2ae
update electron to 13.1.0 2021-06-04 14:27:06 -07:00
dependabot-preview[bot]
2e3f0831bd
Bump ws from 6.2.1 to 6.2.2
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2021-06-04 08:22:47 -05:00
Evan Hahn
d98345f20f
Update RingRTC to v2.10.4 2021-06-03 09:01:07 -07:00
Fedor Indutny
0f4a1d6e28
Update @signalapp/signal-client to 0.8.1 2021-06-02 13:47:25 -07:00
Josh Perez
373ffe4663
Screen sharing improvements 2021-06-01 12:47:55 -07:00
Scott Nonnenberg
ee513a1965
Support for message retry requests 2021-05-28 12:11:19 -07:00
Evan Hahn
05f9224273
Update Babel dependencies to allow import type 2021-05-27 08:44:06 -07:00
Scott Nonnenberg
e6f1ec2b6b
Send support for Sender Key 2021-05-25 15:40:04 -07:00
Josh Perez
ceffc2380c Add screensharing behind a feature flag 2021-05-20 17:37:19 -07:00
Fedor Indutny
028b4f162b update @signalapp/signal-client to 0.5.2 2021-05-20 17:37:18 -07:00
Scott Nonnenberg
4ce4569afb Upgrade a number of sub-dependencies 2021-05-20 17:37:09 -07:00
Fedor Indutny
94d2c56ab9 Introduce in-memory transactions for sessions 2021-05-20 17:37:09 -07:00
Scott Nonnenberg
e6bab06510 Receive support for Sender Key
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2021-05-20 17:37:08 -07:00
Scott Nonnenberg
c62b5a900e
Update proxy-agent to v4.0.1 2021-05-10 15:38:39 -07:00
dependabot-preview[bot]
bfc1524b49
Upgrade bl to v1.2.3 2021-05-07 13:19:30 -07:00
dependabot-preview[bot]
64314bc10b
Upgrade hosted-git-info to v2.8.9 2021-05-07 13:17:43 -07:00
Fedor Indutny
2347bb334c
Update Electron to 12.0.7 2021-05-07 15:10:19 -05:00
dependabot-preview[bot]
97fe907483
Upgrade websocket-extensions to v0.1.4 2021-05-07 12:04:35 -07:00
dependabot-preview[bot]
16034f9358
Upgrade underscore to v1.12.1 2021-05-07 12:04:05 -07:00
dependabot-preview[bot]
0339026103
Upgrade elliptic to v6.5.4 2021-05-07 11:23:59 -07:00
dependabot-preview[bot]
166bb3a50d
Upgrade y18n to v3.2.2 2021-05-07 11:23:17 -07:00
dependabot-preview[bot]
c82c67f726
Upgrade ssri to v6.0.2 2021-05-07 11:22:39 -07:00
Fedor Indutny
dc695732bf
Use fuses to disable ELECTRON_RUN_AS_NODE 2021-05-07 11:04:38 -07:00
Josh Perez
a1e4820cb7
Upgrade to moment@2.29.1 2021-05-07 10:44:41 -05:00
Evan Hahn
cd61d8464d
Upgrade Lodash to latest version, v4.17.21 2021-05-07 09:46:09 -05:00
dependabot-preview[bot]
82a9705010
Upgrade handlebars to v4.7.7 2021-05-06 17:16:03 -05:00
dependabot-preview[bot]
378763ec53
Upgrade ua-parser-js to v0.7.28 2021-05-06 17:15:27 -05:00
dependabot-preview[bot]
bfbcdab67b
Upgrade url-parse to v1.5.1 2021-05-06 17:12:02 -05:00
Evan Hahn
f71f789c94
Upgrade Grunt to v1.4.0 2021-05-06 17:07:11 -05:00
Scott Nonnenberg
504a967be1
Revert "Update to RingRTC v2.9.6" 2021-05-06 16:30:23 -05:00
Fedor Indutny
03c68da17d
Update to electron 12.0.6 2021-05-05 15:41:32 -07:00
Evan Hahn
736075322c
Render disappearing message timers generically 2021-05-03 16:24:40 -07:00
Jim Gustafson
805eab6878 Update to RingRTC v2.9.6 2021-04-29 14:27:36 -07:00
Evan Hahn
a5a64f354f Upgrade Prettier from v2.1.2 to v2.2.1 2021-04-29 14:27:36 -07:00
Scott Nonnenberg
86d2a4b5dd decrypt/encrypt with libsignal-client, remove libsignal-protocol-javascript 2021-04-29 14:27:35 -07:00
Fedor Indutny
863e700325
deps: update better-sqlite3 2021-04-27 12:31:49 -07:00
Scott Nonnenberg
97a4361c6f yarn.lock fixup 2021-04-14 14:25:25 -07:00
Evan Hahn
31a777a130 Merge branch 'WhyNotHugo-python3' into next-beta 2021-04-14 14:15:24 -07:00
Fedor Indutny
25458be515
upgrade electron-builder to 22.10.5 2021-04-13 18:27:43 -07:00
Fedor Indutny
c6d5d852a9
Upgrade electron to 12.0.3 2021-04-13 16:18:05 -07:00
Josh Perez
ef781af0ce
Updates a11y dev deps 2021-04-13 17:33:24 -04:00
Hugo Osvaldo Barrera
207c533de1 Use a node-gyp version which supports Python3
The currently pinned version of `node-gyp` requires Python 2.  Python 2
has reached its EOL a long time ago and is unsupported by upstream.

The requirement on Python 2 is also an unnecessary barrier for new
developers to contribute to Signal.

This changeset updates the required version of node-gyp to one
compatible with Python 3.

`CONTRIBUTING.md` remains unchanged, since this dependency was not
previously mentioned anyway.

Supersedes #4407
Fixes #4783
2021-04-09 22:13:11 +02:00
Evan Hahn
23b3d34eef Upgrade Sharp to v0.28.1 2021-04-09 15:01:25 -04:00
Fedor Indutny
4fd3ed7242 Bundle preload.js 2021-04-09 00:06:14 -04:00
Fedor Indutny
c609389aaf Update to Webpack 5 2021-04-09 00:05:41 -04:00
Fedor Indutny
37c8c1727f Types, better-sqlite3, and worker_threads for our sqlite 2021-04-08 23:53:18 -04:00
Fedor Indutny
6e41009d74 Update zkgroup to the latest 2021-04-08 23:51:54 -04:00
Fedor Indutny
5bcf50ede9 Update electron to 12.0.2 2021-04-08 23:51:53 -04:00
Josh Perez
d6bb8ae35e
Adds axe-storybook-testing 2021-04-06 16:12:33 -04:00
Evan Hahn
eb97c1194a Add Zod for runtime and compile-time type checking, use it in logging code 2021-04-05 18:08:50 -04:00
Fedor Indutny
b93164a8c0 Reduce size of asar file and unpacked asar folder 2021-03-19 16:57:35 -04:00
Evan Hahn
e81c18e84c Storybook: allow optional chaining 2021-03-19 16:57:35 -04:00
Josh Perez
d85a43fe93 Replace bunyan with pino 2021-03-19 16:57:35 -04:00
Fedor Indutny
12d7f24d0f New UI for audio playback and global audio player
Introduce new UI and behavior for playing audio attachments in
conversations. Previously, playback stopped unexpectedly during window
resizes and scrolling through the messages due to the row height
recomputation in `react-virtualized`.

With this commit we introduce `<GlobalAudioContext/>` instance that
wraps whole conversation and provides an `<audio/>` element that
doesn't get re-rendered (or destroyed) whenever `react-virtualized`
recomputes messages. The audio players (with a freshly designed UI) now
share this global `<audio/>` instance and manage access to it using
`audioPlayer.owner` state from the redux.

New UI computes on the fly, caches, and displays waveforms for each
audio attachment. Storybook had to be slightly modified to accomodate
testing of Android bubbles by introducing the new knob for
`authorColor`.
2021-03-19 16:57:35 -04:00
Jim Gustafson
5447d0ad69 Update to RingRTC v2.9.4 2021-03-19 16:53:51 -04:00
Jack Lloyd
84dc166b63 Bump to using 0.3.0 release of the libsignal-client library
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2021-03-19 16:53:51 -04:00
Jim Gustafson
79ddd48c28 Update to RingRTC v2.9.3 2021-03-19 16:53:51 -04:00
Evan Hahn
fe187226bb Upgrade protobufjs to 6.10.2 2021-03-19 16:53:51 -04:00
Scott Nonnenberg
66d30f2a0d Update libsignal-client for improved win32 build 2021-02-17 11:07:18 -08:00
Scott Nonnenberg
220d906422 Update google-libphonenumber to v3.2.17 2021-02-16 12:14:54 -08:00
Scott Nonnenberg
ed786898fb
Update to Electron v11.2.3 2021-02-11 12:20:05 -06:00
Evan Hahn
24f2363ebe Upgrade Sinon to latest version, v9.2.4 2021-02-10 14:47:55 -08:00
Jim Gustafson
245f8c665d
Update to RingRTC v2.9.2 2021-02-04 11:54:18 -08:00
Evan Hahn
850482ea70
Upgrade libsignal-client to fix CI issues 2021-02-04 10:12:21 -08:00
Evan Hahn
d22add261b
Upgrade blueimp-load-image to v5.14.0 2021-01-29 14:44:57 -08:00
Jack Lloyd
a769402c0c
Use the libsignal-client for curve operations 2021-01-27 14:39:09 -08:00
Evan Hahn
a8787e7c9e
Convert logging infrastructure to TypeScript 2021-01-27 13:13:33 -08:00
Evan Hahn
c8b551edab Upgrade to Electron 11 2021-01-25 18:29:01 -08:00
Evan Hahn
ca669a2638 Update Sharp to the latest version, v0.27.0 2021-01-25 18:29:01 -08:00
Evan Hahn
c85c073669 Update Bunyan to the latest version, v1.8.15 2021-01-25 18:29:00 -08:00
Evan Hahn
38a898cdb8 Update read-last-lines to v1.8.0 2021-01-25 18:28:59 -08:00
Evan Hahn
8ccf402497 Use consistent User-Agent when uploading debug logs 2021-01-25 18:28:59 -08:00
Evan Hahn
dd0ea6b3fe Upgrade TypeScript to the latest version, v4.1.3 2021-01-25 18:28:57 -08:00
dependabot-preview[bot]
eaa65bbc63
Bump ini from v1.3.4 to v1.3.7 2020-12-14 16:09:37 -06:00
Evan Hahn
dd01942d2c
Update to RingRTC v2.8.7 2020-12-07 14:18:46 -08:00
Evan Hahn
c151d09088
Update to RingRTC v2.8.6, fixing group calling audio bugs 2020-12-07 09:25:02 -08:00
Evan Hahn
6b2e955a82
Update to RingRTC v2.8.5 2020-12-04 09:32:31 -08:00
Evan Hahn
f3f2cb2b5e
Show active speaker in group calling PiP 2020-12-01 15:52:09 -08:00
Josh Perez
af6ec26225 Upgrades to RingRTC v2.8.3 2020-11-23 14:49:32 -05:00
Josh Perez
ce68eb4dc6 Upgrades to RingRTC v2.8.2 2020-11-23 14:49:31 -05:00
Josh Perez
c6eafbb8d5 Fix tooltip bugs 2020-11-23 14:49:31 -05:00
Evan Hahn
b366967ca5 Upgrade to RingRTC v2.8.2 RC.6 2020-11-23 14:48:12 -05:00
Scott Nonnenberg
26884432a2 Update TypeScript, Prettier and typescript-eslint for new TypeScript 3.8 syntax 2020-11-23 14:45:44 -05:00
Jim Gustafson
ff0794e08b
Update to RingRTC v2.8.1 2020-11-11 15:10:41 -06:00
Evan Hahn
753e0279c6
Upgrade to Emoji v13
This adds support for the [117 new emojis added in Emoji v13](https://emojipedia.org/emoji-13.0/).
2020-11-06 09:36:20 -08:00
Evan Hahn
8c3da11996 Convert emoji actions to use redux-thunk 2020-11-04 13:03:13 -06:00
dependabot-preview[bot]
4383945c1f Bump dot-prop from 4.1.1 to 4.2.1 2020-11-04 13:03:13 -06:00
Scott Nonnenberg
5629634aff Introduced encoding dependency, needed by node-fetch 2020-11-04 13:00:40 -06:00
Jim Gustafson
a8eb281292 Update to RingRTC v2.7.3 2020-11-04 13:00:40 -06:00
Sidney Keese
fbf93374c1 Replace Draft with Quill for composition area
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-11-04 13:00:40 -06:00
Evan Hahn
60f2422e2a Consolidate sleep usages into a tested utility function 2020-10-26 15:48:44 -07:00
Evan Hahn
459eebcd90 Upgrade Electron to v8.5.2 2020-10-12 18:10:08 -04:00
Evan Hahn
313faab774 Outbound link previews 2020-10-12 18:10:08 -04:00
Evan Hahn
333dc17c0a Proper call requests for callee 2020-10-12 18:10:07 -04:00
Sidney Keese
dabab60f56 Remove TSLint
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-10-12 18:10:07 -04:00
Evan Hahn
be705bc312 Remove unused @types/agent-base dependency 2020-10-12 18:10:07 -04:00
Jim Gustafson
32c49760f4 Update to RingRTC v2.7.1 2020-09-21 15:42:51 -04:00
Chris Svenningsen
b4e9c278d3 Migrate to eslint 2020-09-21 15:42:51 -04:00
Jim Gustafson
64c3a6eae0 Update to RingRTC v2.7.0 2020-09-21 15:42:51 -04:00
Sidney Keese
2ade4acd52 Migrate util, types, state, sticker-creator to ESLint 2020-09-21 15:42:51 -04:00
Evan Hahn
b4f0f3c685 Upgrade node-fetch to v2.6.1 2020-09-21 15:42:51 -04:00
Peter Thatcher
3c9c581854 RingRTC: Update to v2.6.0 2020-09-21 15:42:50 -04:00
dependabot-preview[bot]
c126a71864 Bump markdown-to-jsx from 6.10.3 to 6.11.4 2020-09-21 15:42:37 -04:00
dependabot-preview[bot]
ad4799b036 Bump http-proxy from 1.17.0 to 1.18.1 2020-09-21 15:42:37 -04:00
dependabot-preview[bot]
38f706f140 Bump acorn from 6.3.0 to 6.4.1 2020-09-21 15:42:36 -04:00
Ken Powers
8290881bd8 Support for Contact Discovery Service 2020-09-09 17:34:57 -07:00
Evan Hahn
2bedd41e57
Upgrade node-sass to v4.14.1 2020-09-04 11:35:42 -04:00
Jim Gustafson
315be542b8
Update to RingRTC v2.5.2 2020-09-04 09:38:08 -04:00
Chris Svenningsen
5b1536cc02 Initial move towards new ESLint config supporting TS
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-09-01 17:11:16 -04:00
Evan Hahn
de7a69dee9 Improve parsing of sgnl:// hrefs 2020-08-28 15:42:25 -04:00
Jim Gustafson
90bf0f4eea Update to RingRTC v2.5.1
Co-authored-by: Vladimir Skuratovich <vlad@signal.org>
2020-08-28 15:42:25 -04:00
Chris Svenningsen
e9cf5ba67c Remove react-styleguidist
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-08-28 15:42:25 -04:00
Josh Perez
8ab1013f70 Calling: Device Selection 2020-08-28 15:42:25 -04:00
Evan Hahn
098bab2d5e Update to Lodash v4.17.20 2020-08-28 15:42:24 -04:00
Evan Hahn
b32445cd20
Upgrade node-fetch to latest version, v2.6.0 2020-08-11 14:23:37 -07:00
Jim Gustafson
1227a51c99
Update to RingRTC v2.4.2 2020-08-05 14:35:42 -07:00
Jim Gustafson
7eb5c922a7 Update to RingRTC v2.4.1 2020-07-30 13:27:44 -07:00
Jim Gustafson
2f015863ca Upgrade to RingRTC v2.4.0 2020-07-30 13:27:44 -07:00
Scott Nonnenberg
901179440f Merge contacts when we discover split or duplicated contacts 2020-07-30 13:17:45 -07:00
Jim Gustafson
12745a2c79 Update to RingRTC v2.3.1 2020-07-30 13:10:05 -07:00
Jim Gustafson
870a0d2b65 Support RingRTC message sending queue 2020-07-30 13:10:05 -07:00
Peter Thatcher
d3a27a6442 Calling support 2020-07-30 13:08:47 -07:00
Ken Powers
83574eb067 Message Requests 2020-07-30 13:08:44 -07:00
Josh Perez
1ad2b175dc Delete right away if we already have the message 2020-07-27 14:39:19 -07:00
Scott Nonnenberg
f1182fa609 Update to Electron 8.3.4 2020-07-13 16:06:24 -07:00
Scott Nonnenberg
ebafc52f61
Update zkgroup dependency to 0.7.1 2020-05-15 17:01:14 -07:00
Scott Nonnenberg
721401bbeb Introduce snyk, update dependencies 2020-05-05 14:18:46 -07:00
Scott Nonnenberg
7b358f1111
Update Electron to 8.2.5 2020-05-01 13:28:32 -04:00
Scott Nonnenberg
5cfcedb549 Update dependencies 2020-04-29 17:42:41 -07:00
Scott Nonnenberg
c1dfe3e5b4
Adds support for versioned profiles
* Add zkgroup library

* tsconfig.json: Prettier wants to mess it up. :0(

* Initial take on versioned profile fetches

* Fix up the logging in getProfiles() - warn instead of error

* Introduce new VERSIONED_PROFILE_FETCH flag

* Update zkgroup dependency to v0.5.0

* Fix lint-deps - new zkgroup library brought in new debug dep

* ts/zkgroup: Introduce some commonly-used helper functions

* Update to latest serverPublicParams

* Don't derive profileKeyVersion unless flag is set
2020-04-15 16:12:28 -07:00
Scott Nonnenberg
5f0c07eec2
Updates to Electron 8.2.2 2020-04-15 15:54:03 -07:00
Scott Nonnenberg
9ab54b9b83 Move web_api.js and js/modules/crypto.js to TypeScript 2020-04-15 14:44:51 -07:00
Josh Perez
a12ac2aa37
Upgrade small logo icons 2020-04-15 10:25:20 -07:00
Scott Nonnenberg
f1fbd92369 Update to Electron 8.2.1 2020-04-06 18:06:54 -07:00
Ken Powers
a1270867ff Debug Logs: gzip before upload 2020-03-24 17:03:22 -07:00
Ken Powers
4a8f5db0a4 Use Electron Spellchecker 2020-03-24 17:03:22 -07:00
Scott Nonnenberg
8d6cba1b43 Eliminate remaining Electron 8 deprecations
* Change systemPreferences.isDarkMode() to nativeTheme.shouldUseDarkColors

* Remove vibrancy parameter to BrowserWindow

* Update curve25519-n; removes context-aware deprecation warning

* Set app.allowRendererProcessReuse = true to remove warning

* Move from deprecated setters to direct property set

* Serialized sender certificates: Store less, store plain object

* isMenuBarAutoHide -> autoHideMenuBar

* UUID: Fix sealed sender indicator on message details screen

* Data._cleanData: Remove function keys, handle null in array

Also:
- run _cleanData when saving attachment download jobs
- remove job from jobs table when the send itself throws error

* _cleanData: Don't dig into strings, booleans, or numbers

* getPropsForMessageDetail: Make it clear what we're reducing

Co-authored-by: Ken Powers <ken@signal.org>
2020-03-24 17:03:01 -07:00
Scott Nonnenberg
b9ecdb0602 Update to Electron 8.1.1 2020-03-24 17:02:01 -07:00
Scott Nonnenberg
5c14ae6459 Update electron to 8.0.3, electron-builder to 22.3.6 2020-03-04 17:12:56 -08:00
Scott Nonnenberg
6e4dc2a117 Update electron, electron-builder and add more preload logging
* electron to 8.0.2, electron-builder to 22.3.5

* preload.js: add last-ditch logging on startup error
2020-03-02 17:13:45 -08:00
Scott Nonnenberg
1726e1b77a
Fix windows fast-glob usage in lint-deps test task
* Introduce normalize-path wherever we use fastGlob

* CI: Update yarn version; install yarn via npm on windows

* Add more logging to Grunt file spectron usage

* Lock core.js to what it was resolving to before: 2.4.1

* test/index.html: Remove nonexistent test file

* test/index.html: Remove missing registration.js

* preload.js: Introduce client-side logging for load failures

* Gruntfile: Introduce better debuggability if prod test fails

* Reintroduce glob for searches inside asar
2020-02-26 17:53:39 -08:00
Ken Powers
8d9ccd3c0a
Ensure proper file permissions on startup
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2020-02-21 15:40:04 -08:00
Ken Powers
2f9bebe567 Upgrade to Electron 8
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2020-02-19 15:22:37 -08:00
Scott Nonnenberg
68ee557dcf
Update SQLCipher to 4.3.0 2020-02-19 16:11:06 -05:00
Josh Perez
9e9401693c
Replace spellchecker in favor of typo-js 2020-02-18 10:58:05 -08:00
blckfalcon
7f7e33c6cd
Upgrade linkify-it to 2.2.0 (#3870) 2020-02-12 13:59:17 -08:00
Scott Nonnenberg
3938eb9801
A set of fixes and upgrades
* writeToDownloads: Add missing await
* Remove window.isFocused() - not used anywhere!
* Update typescript, p-queue, make necessary changes to fix build
* Slow down sender certificate retries with no existing cert
* Slow down signed prekey refreshes when unlinked - 5s -> 5m
* Update protobufjs to 4.1.2
2020-02-07 14:37:04 -05:00
Ken Powers
38c7fa3da6
Storybook: Basic messages and messages with reactions 2020-02-07 11:07:22 -08:00
josh-signal
de7bc8b1b1 Upgrade emoji support to Unicode v12 2020-01-23 16:17:06 -05:00
Scott Nonnenberg
1bf9ca7233 Save attachments with macOS quarantine attribute
* Attachments: Always save file to downloads directory, show toast
* Add new build:dev command for casual builds
2020-01-09 14:57:43 -05:00
Ken Powers
0d3b390129 Upgrade Prettier 2020-01-08 09:44:54 -08:00
Ken Powers
681222c0c0 Fix styleguide: upgrade deps, lock core-js to version babel needs 2020-01-06 17:49:00 -08:00
AJ Jordan
1a2031d584 yarn.lock: Change http reference to https (#3373) 2020-01-06 17:16:40 -08:00
Ken Powers
fe65fd3eaa Sticker creator updates: new 200 sticker max, WebP supported 2019-12-19 15:27:02 -08:00
Ken Powers
11d47a8eb9 Sticker Creator 2019-12-17 12:28:46 -08:00
Scott Nonnenberg
e9f08c3da9 Bugfixes for v1.29
* If focus was set to document.body during archive, focus left pane
* Shortcut Guide: Add space between text and shortcut highlight
* Ensure that draft attachment can be closed with click on X button
* Move to keyDown event for user idle checking
* Additional resiliency around avatars; check for them on on-disk
* Increase timeouts to preserve websocket connection
* On startup, be resilient to malformed JSON in log files
* Don't crash if shell.openExternal returns an error
* Whenever we request a contact/group sync, also request block list
* Avatar popup: Ensure styling is mouse- and keyboard-appropriate
* MainHeader: Create popperRoot on demand, not on mount
* CompositionInput: Disable default Ctrl-/ shortcut
* Update libphonenumber
2019-12-03 15:02:50 -05:00
Scott Nonnenberg
ed55006f20 Update to Electron 6.1.4 2019-11-21 10:17:55 -08:00
Scott Nonnenberg
20a892247f Keyboard shortcuts and accessibility 2019-11-13 16:53:42 -08:00
Scott Nonnenberg
957f6f6474 Add entitlements and build configuration for MacOS catalina 2019-10-10 11:30:47 -07:00
Scott Nonnenberg
1dea66dd73 Update Electron to 6.0.9 2019-09-13 13:55:13 -07:00
Scott Nonnenberg
d3d2b0ec52 Use curve functions from native module 2019-08-21 14:55:12 -07:00
Scott Nonnenberg
e29eee4583 Update Electron to 6.0.1, SQLCipher to 4.2.0 2019-08-21 14:55:12 -07:00
Scott Nonnenberg
5ebd8bc690 Virtualize Messages List - only render what's visible 2019-08-21 14:52:30 -07:00
Ken Powers
6c0365a770 One emoji image set for picker, composition, message bubble 2019-07-25 09:28:44 -07:00
Scott Nonnenberg
50ca51ca2c Update node gyp to remove fstream in production 2019-07-19 13:34:38 -04:00
Scott Nonnenberg
e475d99be3 Update yarn version in CI, resolve dependency conflict 2019-07-17 11:29:51 -07:00
Scott Nonnenberg
d5d8df3bf6 Update lodash 2019-07-17 11:29:51 -07:00
Ken Powers
7b645011c2 New composition area with emoji typeahead 2019-07-17 11:29:51 -07:00
Scott Nonnenberg
8ece7fac19 Update js-yaml dependency 2019-06-19 13:00:28 -04:00
Ken Powers
3a46f4c9a2 Upgrade emoji-datasource to 4.1.0 2019-06-06 11:28:47 -07:00
Ken Powers
9abd4e6495 Upgrade electron to v4.2.2 2019-05-29 11:01:32 -07:00
Ken Powers
0e9d549cf3 Fuzzy-Searchable Emoji Picker 2019-05-24 17:03:13 -07:00
Scott Nonnenberg
8a61736201
Update jquery dependency 2019-05-16 17:32:36 -07:00
Ken Powers
29de50c12a Stickers
Co-authored-by: scott@signal.org
Co-authored-by: ken@signal.org
2019-05-16 16:10:37 -07:00
Scott Nonnenberg
c41bc53614 Refactor messages model; New timeline react components 2019-05-16 15:23:21 -07:00
Scott Nonnenberg
0ffda78ecb Update libphonenumber dependency 2019-04-11 18:01:28 -07:00
Gabe Stocco
851c1a0e47 Adding right click listener for URLs and Text Selections (#3197)
* Adds right-click listener

For urls and text selections

* Fixes build-release on windows

Should still be bash compatible too

* Update context menu line

Responding to feedback from @JaredPotter
2019-04-10 12:06:21 -07:00
Scott Nonnenberg
eae7660074 Downgrade to electron-builder@20.39.0 due to windows install bug
https://github.com/electron-userland/electron-builder/issues/3813
2019-04-05 17:18:37 -07:00
Scott Nonnenberg
c8ea2e9463 Download and install updates without the help of electron-updater 2019-04-05 17:18:37 -07:00
Scott Nonnenberg
e15daf7a37 Update to Electron v4.1.2 to fix permissions issue
https://github.com/electron/electron/releases/tag/v4.1.2

Permissions issue: https://github.com/electron/electron/issues/17581
2019-03-28 17:23:09 -07:00
Scott Nonnenberg
065b58fb6b Update Electron to 4.1.1 2019-03-22 12:28:02 -07:00
Scott Nonnenberg
d251282da1 Upgrade electron-builder and electron-updater 2019-03-22 12:24:07 -07:00
Scott Nonnenberg
81696b4b15 Update sqlcipher dependency to get win vc++ redistributable 2019-03-22 11:06:33 -07:00
Scott Nonnenberg
3b140d9b51 Update react-contextmenu to avoid event handler issues un unload 2019-03-20 13:43:24 -07:00
Scott Nonnenberg
b0a3ef5d29 Update spellchecker to reenable spellcheck on linux w/electron v4 2019-03-18 16:46:56 -07:00
Scott Nonnenberg
6d8ab33e93 Update to Electron 4.0.8 2019-03-14 17:30:46 -07:00
Scott Nonnenberg
ba461eb44a Update electron-updater to fix its handling of node_module pkging 2019-03-12 19:45:02 -07:00
Scott Nonnenberg
1c48db7df0 Update electron-builder/updater to fix build error on MacOS 2019-03-12 18:49:22 -07:00
Scott Nonnenberg
d72f89d776 Render only visible conversations in left pane 2019-03-12 17:44:14 -07:00
Scott Nonnenberg
b3ac1373fa Move left pane entirely to React 2019-03-12 17:44:14 -07:00
Scott Nonnenberg
ae161c6cf6 Update to Electron 4.x 2019-03-12 17:44:14 -07:00
Scott Nonnenberg
ae2db9f09a Improve handling for URLs composed of mixed character sets 2019-03-12 17:44:14 -07:00
Scott Nonnenberg
3f8223ff48 Revert electron-builder upgrade due to bugs
This reverts commit 8a3acc6b7e
2019-02-13 16:04:58 -08:00
Scott Nonnenberg
8a3acc6b7e Update electron-builder and electron-updater 2019-01-29 13:53:14 -08:00
Scott Nonnenberg
813924685e Link Previews 2019-01-29 13:53:14 -08:00
Scott Nonnenberg
92c2a0f996 Data infrastructure work 2019-01-14 17:40:31 -08:00
Scott Nonnenberg
57abb8300f Upgrade Electron to 3.0.14 2019-01-14 17:40:31 -08:00
Scott Nonnenberg
e4babdaef0 Updates to backup infrastructure 2019-01-04 12:21:26 -08:00
Scott Nonnenberg
281e613a1d Remove nsp; its registry has now been taken offline 2018-12-10 14:31:20 -08:00
Scott Nonnenberg
8add0ac8a1
Enable CI and packaged builds with Electron v3 (#2939)
* Update spectron to fix linux CI runs

* Point test-release grunt task at release folder

* Ensure that build folders of socks/smart-buffer are in build

* AppVeyor: windows build output folder is now release

* Travis: Force build output to release directory
2018-11-27 16:20:48 -08:00
Scott Nonnenberg
3e0abe80eb Update proxy-agent to latest 2018-11-27 09:53:02 -08:00
Scott Nonnenberg
bdec2d4781 Update icon-gen for Electron v3 compatibility 2018-11-26 18:14:22 -08:00
Scott Nonnenberg
97bfe5859c Update lodash to latest release 2018-11-26 18:09:50 -08:00
Scott Nonnenberg
68af1ae1ea Show dialog if application fails to start up properly 2018-11-26 15:26:22 -08:00
Scott Nonnenberg
dc2afe4b6e Update websocket dep; 1.0.25 was causing errors w/Electron3 2018-11-26 15:26:04 -08:00
Scott Nonnenberg
58544472c8 Upgrade to node 10.13.0; update chokidar, its dep upath fails 2018-11-26 15:26:04 -08:00
Scott Nonnenberg
6039c29d12 Update to Electron3; reinstall native deps for nan which builds 2018-11-26 15:26:04 -08:00
Scott Nonnenberg
d600c384cf yarn.lock: Update to latest yarn, add integrity fields 2018-11-26 15:26:04 -08:00
Scott Nonnenberg
ecb126e74c
Custom linter to check code quality (#2753) 2018-09-20 15:24:52 -07:00
Scott Nonnenberg
998c35dcb3 Split configuration into low and high traffic files
Also, we're now handling config ourselves instead of using
electron-config and config dependencies.
2018-08-29 10:40:16 -07:00
Scott Nonnenberg
f59ec92fef Routine update to Electron v2.0.8 2018-08-28 13:54:03 -07:00
Scott Nonnenberg
e13f431456 Build libcrypto.a on Ubuntu 14.04 for maximum compatibility 2018-08-02 19:12:18 -07:00
Scott Nonnenberg
fe84e92359 node-sqlcipher update: always build, statically link openssl 2018-08-02 17:32:51 -07:00
Scott Nonnenberg
ce2f3bd3c4 Statically compile openssl into sqlcipher for linux targets 2018-08-01 10:58:26 -07:00
Scott Nonnenberg
f9780f85bf Yarn lockfile catch-up 2018-07-31 17:17:53 -07:00
Scott Nonnenberg
3105b77475 Migrate to SQLCipher for messages/cache
Quite a few other fixes, including:
  - Sending to contact with no avatar yet (not synced from mobile)
  - Left pane doesn't update quickly or at all on new message
  - Left pane doesn't show sent or error status

Also:
 - Contributing.md: Ensure set of linux dev dependencies is complete
2018-07-31 17:08:45 -07:00
Scott Nonnenberg
3c69886320 Finish new Message component, integrate into application
Also:
- New schema version 8 with video/image thumbnails, screenshots, sizes
- Upgrade messages not at current schema version when loading messages
  to show in conversation
- New MessageDetail react component
- New ConversationHeader react component
2018-07-17 15:58:07 -07:00
Scott Nonnenberg
43a44793c5 Remove jshint - move everything over to eslint
Also removed all hints of previous linters
2018-07-17 15:54:32 -07:00
Scott Nonnenberg
8eeaad8e18 Remove unused export/import functionality 2018-06-21 11:54:01 -07:00
Scott Nonnenberg
ec3e36824c Remove jscs from the project 2018-05-23 16:26:48 -07:00
Scott Nonnenberg
cfe0bd0e79 Move to npm for several dependencies
mustache
jQuery
underscore
backbone
mocha
chai
intl-tel-input
2018-05-23 16:26:48 -07:00
Scott Nonnenberg
91c247ef8d Move all forks to @scottnonnenberg-signal account 2018-05-23 12:26:17 -07:00
Scott Nonnenberg
e02887565b
Update to electron v2.0.1 (#2401)
* Remove extra parenthesis causing warnings on latest chromium

* Update to electron 2.0.1

* Move all @types dependencies to devDependencies

* Update electron-builder/electron-updater

* Update to Node.js 8.9.3 to match Electron 2.0.1
2018-05-23 12:17:58 -07:00
Scott Nonnenberg
4e5c8965ff Move to react for newlines, emoji, and links in message body 2018-05-14 16:09:37 -07:00
Scott Nonnenberg
41be7f126b Visuals for embedded contacts as well as contact detail screen 2018-05-07 19:09:55 -07:00
Daniel Gasienica
58399549c3 Add protobufjs dependency 2018-05-07 21:53:39 -04:00
Daniel Gasienica
38b23c6627 Add @types/semver 2018-05-02 20:01:56 -04:00
Daniel Gasienica
0b4c60c272 Add @types/sinon 2018-05-02 19:58:33 -04:00
Daniel Gasienica
e3191c9017 Remove node-notifier 2018-05-02 19:58:33 -04:00
Scott Nonnenberg
58fddc4e9d Remove electron builder support for publishing to S3
We do this ourselves now.
2018-05-01 09:46:36 -07:00
Daniel Gasienica
1bf3ab630c Add eslint-config-prettier 2018-04-30 16:52:43 -04:00
Daniel Gasienica
5ec8b1c6e1 Add @types/jquery 2018-04-25 15:24:51 -04:00
Daniel Gasienica
3a8c3ccdab Add prettier 2018-04-25 15:24:51 -04:00
Daniel Gasienica
8ef04cb1fd Move @types/* dependencies to devDependencies 2018-04-25 15:24:51 -04:00
Daniel Gasienica
10bede85c9 Add filesize dependency 2018-04-25 15:24:50 -04:00
Daniel Gasienica
9533c09707 Add @types/lodash 2018-04-25 15:24:50 -04:00
Scott Nonnenberg
21bf02c94d
Fixed examples in Quote.md, rough Android visuals 2018-04-13 18:05:44 -07:00
Daniel Gasienica
9d159da79c Add Microsoft contributed TSlint rules: tslint-microsoft-contrib 2018-04-11 19:45:31 -04:00
Daniel Gasienica
9d41b86162 Remove escaping from linkText
We leverage jQuery’s HTML escaping in `$.html(…)`.
2018-04-11 16:36:42 -04:00
Daniel Gasienica
d9381c543e Add linkify-it dependency 2018-04-11 16:36:42 -04:00
Daniel Gasienica
6f8dee402d Add @types/mocha 2018-04-11 16:36:42 -04:00
Daniel Gasienica
7ac4bee959 Add @types/chai 2018-04-11 16:36:42 -04:00
Daniel Gasienica
78ba4eddc1 Add @types/lodash 2018-04-11 16:36:42 -04:00
Daniel Gasienica
f5641fe6d6 Add link-text dependency
It only has the minimum required dependencies:
- `linkify-it`: Best-in-class link detection library with support for
                Unicode/IDN.
- `escape-html`: Standalone dependency for escaping HTML.
- `uc.micro`: Standalone dependency of Unicode data files.
2018-04-11 16:36:42 -04:00
Scott Nonnenberg
be91a89d68
Parse theme from querystring, put on util. Moment from require()
We also fully set up i18n and put it on util as well as making
it available on windows.i18n for Backbone views.
2018-04-05 08:31:43 -07:00
Scott Nonnenberg
1326b26585
Full styleguide now available via yarn styleguide
Due to a number of hacks, the style guide can be used to show Backbone
views. This will allow a smooth path from the old way of doing things to
the new.
2018-04-04 16:08:38 -07:00
Scott Nonnenberg
893fb1cb9e
Introduce React/TypeScript/TSLint into app for new UI components
npm run transpile
  Works on files under js/react/
  Outputs files right next to the .tsx file

This is part of our `grunt dev` task, as well as the default grunt task,
which does everything else necessary to get a raw git checkout ready to
run.
2018-04-04 16:08:27 -07:00
Scott Nonnenberg
1ad2b080c8
Move moment from bower deps to npm deps 2018-04-04 16:00:38 -07:00
Daniel Gasienica
29832c445a Add @sindresorhus/is dependency
This will allow us to do runtime and, once we have TypeScript support,
compile-time type checks.
2018-04-04 17:40:19 -04:00
Scott Nonnenberg
4e6d1e128f
Update to electron 1.8.4 (#2186) 2018-03-26 14:39:55 -07:00
Daniel Gasienica
7eaa6ef2f7 Remove string-to-arraybuffer dependency
The function is simple enough to inline and this allows us to reduce our
dependencies surface area.
2018-03-26 16:38:34 -04:00
Daniel Gasienica
19a70ad8b8 Add to-arraybuffer dependency
Used for converting Node.js buffers to `ArrayBuffer`.
2018-03-26 16:38:34 -04:00
Daniel Gasienica
0fc2868f0e Remove tempy dependency
We already use `tmp`.
2018-03-26 16:38:34 -04:00
Daniel Gasienica
14f58281bc Add string-to-array-buffer as dev dependency
Used for testing attachment data migration.
2018-03-26 16:38:34 -04:00
Daniel Gasienica
925ddbd7db Add tempy as dev dependency
Useful for creating random temporary directories for testing.
2018-03-26 16:38:34 -04:00
Scott Nonnenberg
6d8f4b7b6e
Backup: zipped messages.json, flat attachments dir
Backup creates, in a target directory:
  - An attachments folder, with all attachments, each named for their
    parent message's id - a GUID. If there is more than one attachment
    in a given message,  each attachment beyond the first will end with
    '-N', zero-indexed.
  - A file named messages.zip. It contains exactly what went to disk in
    the original export code, but zipped up.

Export is now only 'light,' and in this new messages.zip format.

Import supports both the new format and the old format. If the target
directory has a messages.zip file, we'll treat it as the new format.

Next up: Encrypting attachments and the messages.zip!
2018-03-20 11:53:22 -07:00
Scott Nonnenberg
fd056e1b4c
Add nsp to dev dependencies and to travis and CI scripts 2018-03-14 14:42:13 -07:00
Daniel Gasienica
c317f34f67 Remove ensure-error and clean-error dependency
It potentially could leak information from serialized non-errors that are thrown
due to `util.inspect`.
2018-03-08 17:45:55 -05:00
Daniel Gasienica
96442967cc Add eslint-plugin-mocha
Allows us to set various lint rules for our tests.
2018-03-08 16:23:51 -05:00
Daniel Gasienica
ef40dfa841 Use forked electron-unhandled
Omits use of `ensure-error` for privacy.

Before:
`Uncaught error or unhandled promise rejection: NonError: { private: true }`

After:
`Uncaught error or unhandled promise rejection: [object Object]`

Tested using:

```
setTimeout(() => {
  throw new Error('sync: booooom!');
}, 5000);

setTimeout(() => {
  Promise.reject(new Error('async: promise'))
}, 10000);

setTimeout(() => {
  Promise.reject({private: true});
}, 15000);
```
2018-03-08 16:23:51 -05:00
Daniel Gasienica
9e5fec1d81 Add electron-unhandled dependency 2018-03-08 16:22:37 -05:00
Daniel Gasienica
0810ea6909 Remove superagent dependency
We’ve replaced it with more modern and Node.js based `got`:
https://www.npmjs.com/package/got
2018-03-08 16:21:27 -05:00
Daniel Gasienica
04afb6a318 Add form-data dependency
Used for upload debug logs to S3.
2018-03-08 16:21:27 -05:00
Daniel Gasienica
b4c6f6733b Add got dependency
The plan is to use this for our future HTTP needs as it is:
- modern
- promise based
- popular
- likely to support custom certificate authorities (CAs)

Chosen over the following alternatives:
- superagent (older, promises added later, potential lack of custom CA support)
- axios (no team experience with it; less popular than `got`)
- request (older, heavy-weight, promises not native)
- jQuery (old, trying to move away from jQuery altogether and move towards
  declarative UIs)
- `fetch` (too low-level, no native timeout support)
2018-03-08 16:21:27 -05:00
Daniel Gasienica
e289479c6b Add superagent dependency
HTTP client with higher-level API than `fetch` and support for timeouts, etc.
2018-03-08 16:21:27 -05:00
Daniel Gasienica
a98a7ba690 Add sinon dev dependency
Useful tool for testing: http://sinonjs.org/
2018-03-05 10:29:11 -05:00
Daniel Gasienica
9eb1fed766
Update yarn.lock after manual package.json changes (#2097)
To update the following dependencies…

- electron-updater
- electron-builder
- electron-publisher-s3
- spectron

…`package.json` was mistakenly updated manually which prevented an update
of `yarn.lock`.

This change brings them in sync.
2018-03-02 15:22:22 -05:00
Daniel Gasienica
a4c52b8d64
Upgrade to Electron 1.8.2 / Node.js 8.2.1 (#2066)
* Upgrade to Electron 1.8.2 / Node.js 8.2.1

* Update CI Node.js versions

* Make `engines` top-level property

This was accidentally included under `build` which is disallowed
by `electron-builder`.

* Refactor notification updates

Allows easier debugging through variable inspection.

* Use `appId` for Application User Model ID

Recommended in:
https://github.com/electron/electron/issues/10864#issuecomment-346229090

* Update `spectron` to 3.8.0

* Bump `electron-builder` based dependencies

* Use `config.extraMetadata` instead of `em`

Prevents `Unknown argument: em` error.

See: https://github.com/electron-userland/electron-builder/issues/2615

* Revert AUMID to be based on `packageJson.name`

In our build artifact `packageJson.build.appId` causes an NPE.
2018-03-02 14:43:03 -05:00
Daniel Gasienica
a1ac810343 Security: Replace Unicode order overrides in attachment names
As a user, when I receive a file attachment, I want to have confidence that the
filename I see in the Signal Desktop app is the same as it will be on disk.

To prevent user confusion when receiving files with Unicode order override
characters, e.g. `test<LTRO>fig.exe` appearing as `testexe.gif`, we replace all
occurrences of order overrides (`U+202D` and `U+202E`) with `U+FFFD`.

**Changes**
- [x] Bump `Attachment` `schemaVersion` to 2.
- [x] Replace all Unicode order overrides in `attachment.filename`:
      `Attachment.replaceUnicodeOrderOverrides`.
- [x] Add tests for existing `Attachment.upgradeSchema`
- [x] Add tests for existing `Attachment.withSchemaVersion`
- [x] Add tests for `Attachment.replaceUnicodeOrderOverrides` positives.
- [x] Add `testcheck` generative property-based testing library
      (based on QuickCheck) to ensure valid filenames are preserved.

---

commit 855bdbc7e647e44f73b9e1f5e6d64f734c61169a
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Thu Feb 22 13:02:01 2018 -0500

    Log error stack in case of error

commit 6e053ed66aee136f186568fa88aacd4814b2ab07
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Thu Feb 22 12:30:28 2018 -0500

    Improve `upgradeStep` error handling

commit 8c226a2523b701cb578b2137832c3eaf3475bb2b
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Thu Feb 22 12:30:08 2018 -0500

    Check for expected version before upgrade

    Prevents out of order upgrade steps.

commit 28b0675591e782169128f75429b7bab2a22307fa
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Thu Feb 22 12:29:52 2018 -0500

    Reject invalid attachments

commit 41f4f457dae9416dae66dc2fa2079483d1f127a9
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Thu Feb 22 12:29:36 2018 -0500

    Fix upgrade pipeline order

commit 3935629e91c49b8d96c1e02bd37b1b31d1180720
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Thu Feb 22 12:28:25 2018 -0500

    Avoid `_.isPlainObject`

    Attachments are deserialized from a protocol buffer and can have a
    non-plain-object constructor.

commit 39f6e7f622ff4885e2ccafa354e0edb5864c55d8
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Thu Feb 22 12:19:07 2018 -0500

    Define basic attachment validity

commit adcf7e3243cd90866cc35990c558ff7829019037
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Thu Feb 22 12:18:54 2018 -0500

    Add tests for attachment upgrade pipeline

commit 82fc4644d7e654eea9f348518b086497be2b0cb4
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Wed Feb 21 12:20:24 2018 -0500

    Favor `async` / `await` over `then`

commit 8fe49e3c40e78ced0b8f2eb0b678f4bae842855d
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Wed Feb 21 12:19:59 2018 -0500

    Add `eslint-more` plugin

    This will enable us to disallow `then` in favor of `async` / `await`.

commit 020beefb25f508ae96cf3fc099599fbbca98802b
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Wed Feb 21 11:31:49 2018 -0500

    Remove unnecessary `async` modifiers

commit 177090c5f5ad9836f0ca0a5c2f298779519e3692
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Wed Feb 21 11:30:55 2018 -0500

    Document `operator-linebreak` ESLint rule

commit 25622b7c59291cb672ae057c47e7327a564cca40
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Wed Feb 21 11:14:15 2018 -0500

    Prefix internal function with `_`

commit 6aa3cf5098df71e9b710064739ec49d74f81b7bf
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Fri Feb 16 19:00:07 2018 -0500

    Replace all Unicode order override occurrences

commit fd6e23b0a519bce3c12c5b9ac676bcd198034fed
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Fri Feb 16 17:48:41 2018 -0500

    Whitelist `testcheck` `check` and `gen` globals

commit 400bae9fac5078821813bc0ca17a5d7a72900161
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Fri Feb 16 17:46:57 2018 -0500

    🎨 Fix lint errors

commit da53d3960aa7aa36b7cc1fcff414c9e929c0d9fc
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Fri Feb 16 17:42:42 2018 -0500

    Add tests for `Attachment.withSchemaVersion`

commit ec203444239d9e3c443ba88cab7ef4672151072d
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Fri Feb 16 17:42:17 2018 -0500

    Add test for `Attachment.upgradeSchema`

commit 4540d5bdf7a4279f49d2e4c6ee03f47b93df46bf
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Fri Feb 16 17:05:29 2018 -0500

    Rename `setSchemaVersion` --> `withSchemaVersion`

    Put the schema version first for better readability.

commit e379cf919feda31d1fa96d406c30fd38e159a11d
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Fri Feb 16 17:03:22 2018 -0500

    Add filename sanitization to upgrade pipeline

commit 1e344a0d15926fc3e17be20cd90bfa882b65f337
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Fri Feb 16 17:01:55 2018 -0500

    Test that we preserve non-suspicious filenames

commit a2452bfc98f93f82bed48b438757af2e66a6af82
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Fri Feb 16 17:00:56 2018 -0500

    Add `testcheck` dependency

    Allows for generative property-based testing similar to Haskell’s QuickCheck.
    See: https://medium.com/javascript-inside/f91432247c27

commit ceb5bfd2484a77689fdb8e9edd18d4a7b093a486
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Fri Feb 16 16:15:33 2018 -0500

    Replace Unicode order override characters

    Prevents users from being tricked into clicking a file named `testexe.fig`
    that appears as `testexe.gif` due to a Unicode order override character.

    See:
    - http://unicode.org/reports/tr36/#Bidirectional_Text_Spoofing
    - https://krebsonsecurity.com/2011/09/right-to-left-override-aids-email-attacks/

commit bc605afb1c6af3a5ebc31a4c1523ff170eb96ffe
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Fri Feb 16 16:12:29 2018 -0500

    Remove `CURRENT_PROCESS_VERSION`

    Reintroduce this whenever we need it. We currently only deal with schema version
    numbers within this module.
2018-02-22 13:21:53 -05:00