This is for internal use by ROS as part of its support for failover. If
the session is active, we ask it to disconnect then reconnect to the new
server. We also stash away the overridden server's details so it can be
used again we later disconnect and reconnect. If the session is not yet
active, we simply stash away the details to be used when establishing
the connection.
* Fix an unused variable warning in js_sync.hpp
* Add support for aggregates on arrays of primitives
* Update documentation and typescript declarations
* Update collection.js
* origin/master: (23 commits)
Fix api doc error
fix progress notifications registrations
Fix typo in Github issue template
Fix port conflict between RN >= 0.48 and RPC server (#1294)
Disable testAddListener when running in chrome
Ensure RN has an event loop running for async tests
Make permission tests better handle server delays
Fix race conditions in testAddListener
Separate build and test steps in xcode to reduce chance of hitting "Early unexpected exit"
Ignore errors when sourcing nvm.sh
Don't forward arguments to nvh.sh
Skip sourcing nvm.sh if it's already available
Fix some shellcheck warnings
Ensure node 6.5.0 is installed on CI
Build realm from source for each test-runner test
Improve error reporting for incorrect argument counts for Realm methods
Use the same error messages in the RPC code as the regular code
Silence an unused variable warning when building with sync disabled
Check the exception message in all Realm tests which assert an exception is thrown
Don't discard the actual error message in validated_get_X
...
The callback is used to let JS code decide whether the server's SSL
certificate should be accepted or rejected. The ssl_verify_callback
function is only applicable for platforms using OpenSSL.
The JS binding used to conflate `SyncUser::is_admin()` with the user being created by calling `Realm.Sync.User.adminToken()`, but now that we expose a user’s role on the server under `is_admin()` this supposition is no longer correct.
#1097 attempted to fix one such case, but fixing it only uncovered another: in `UserClass<T>::all_users()`. I’ve gone through all the callsites of `SyncUser::is_admin()` to make sure they don’t assume an admin token user.
* Get a session’s error handler
* Change the signature of all methods to add the callee
* Deserialize rpc callbacks
* Expose the session error handle on its config property
* When a token refresh error occurs and there is a session error handler
propagate the error to the handler
* Add Session class and expose it to JS
* Add error property on the sync config object for the event handler
* tests
* refactor access token refresh
* chrome debugging
* Add user tests
* Add Sync member to Realm
* Add a simple test for addListener
* Introduce browser User class
* Introduce Sync.User proxy
* Fix User.all
* Add User.logout
* Remove some console.log statements
* Update rpc.cpp from tests-folder
* Use user.current from user-methods, not cpp
* remove user.current from two missing places
* Start server in realmjs and react tests
* Add user tests
* Add Sync member to Realm
* Add a simple test for addListener
* Introduce browser User class
* Introduce Sync.User proxy
* Fix User.all
* Add User.logout
* Remove some console.log statements
* Update rpc.cpp from tests-folder
* Use user.current from user-methods, not cpp
* remove user.current from two missing places
* Start server in realmjs and react tests
* Replace needle with node-fetch
* Make AuthError work in the browser
* Allow for persistent callbacks
* Expose _authenticateRealm to native
* Use clear_test_state in roc
* Streamline test inclusion
* Fix login tests
* Promisify testLogin()
* Disable AsyncTests for now
* Mode jasmine timeout to spec/unit_tests.js
* Avoid use of global for fetch module
* Only include user-tests is sync is enabled
* Skip ROS for android tests
* Add some comments about persistent callbacks
* Fix results-test
* Run async-tests in node
* Add a comment about (user object)
* Cache all users in User.current and return promises in fetch
* node_require async-tests so RN doesn't try and package them
* Add missing parenthesis
* Always invoke sync callbacks on the JavaScript thread
* Address review comments
* Make Callback::m_state be a shared, not a weak pointer
* Use the protected GlobalContext in the session bind handler
* Only dispatch on the event loop if we’re not on its thread
* Update to sync v1.0.0-BETA-6.3.
This requires updating to current object store master to accommodate the
changes to sync error reporting.
* Add some include folder search paths
* Add thread_safe_reference to the RealmJS target