* 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
* Starting to work through lint errors
* libsignal-protocol: Update changes for primary repo compatibility
* Step 1: task_with_timeout rename
* Step 2: Apply the changes to TaskWithTimeout.ts
* Step 1: All to-be-converted libtextsecure/*.js files moved
* Step 2: No Typescript errors!
* Get libtextsecure tests passing again
* TSLint errors down to 1
* Compilation succeeds, no lint errors or test failures
* WebSocketResources - update import for case-sensitive filesystems
* Fixes for lint-deps
* Remove unnecessary @ts-ignore
* Fix inability to message your own contact after link
* Add log message for the end of migration 20
* lint fix
* 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>
* 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
* 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
* 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
* 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
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
UI now in separate renderer:
- the permissions popup
- settings dialog
- debug log dialog
- about window
Couple bug fixes:
- About Window: Fix 'escape' to close window
- Remove outdated dist/copy tasks from Gruntfile
Eslintified settings_view.js
- messages.getQuoteObjectUrl: early return
- backup.js: explaining variables for long if statement
- types/messages.js: Log if thumbnail has neither data nor path
- sendmessage.js:
- remove extraneous logging
- fix indentation
- upload attachments and thumbnails in parallel
- preload: don't load fs for tests, just fse
- _conversation.scss: split two selectors into two lines, 0px -> 0
- backup_test.js: use fse.existsSync and comment twoSlashes regex
- network_tests_view_test.js: Comment duplicate assignment to window.getSocketStatus
Quite a bit of change here.
First, the basics:
- New dependencies were added: react, typescript, tslint, and react-styleguidist
- A new npm script: transpile. It uses typescript to process .tsx files in js/react, putting .js files next to the original file. It's part of the watch functionality of grunt dev as well as the default task run with just grunt (used to build the app prior to release). A lighter-weight to get watch behavior when just working on React components is to run yarn transpile --watch.
- yarn run clean-transpile will remove generated .js files
Style guide via react-styleguidist. Example site: https://react-styleguidist.js.org/examples/basic/
- Start with yarn styleguide
- Component.md files right next to the .tsx file
- jsdoc-style comments are picked up and added to the generated part of the styleguide - the overall summary and a table listing methods and properties of the component
- It has hot-reloading!
- It uses webpack, which means that our app now pulls in webpack though we don't use it to generate anything for the production app.
- I did a bunch of work to enable the use of Backbone views in this context, which will allow us to move smoothly from the old world to the new. First, add all the permutations in the old way, and then slowly start to re-render those same views with React.
A bit of dependency cleanup to enable use in React components:
- moment was moved from our Bower dependencies to our npm dependencies, so it can be used in React components not running in a browser window.
- i18n was moved into the new commonjs format, so it can be used in React components even if window is not available.
Lastly, a bit of Gruntfile cleanup:
- Removal of Chrome App-era modifications of background.js
- Make jshint/jscs watch more targeted, since more and more we'll be using other tools
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.