* Make it possible to assign a List or Results to a List property.
The change made in #1069 to improve error messages when values of
incorrect types were assigned to a given property was being too
narrow in the types it accepted for list properties, allowing only
arrays. Lists and Results are now accepted once more.
* Update CHANGELOG.md
* Add support for linkingObjects
* Test linkingObjects
* Borrow names helper from list tests
* include computed properties when serializing the schema for the RN debugger
* add API docs
* review comments
* Expose admin users to JS (#1100)
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.
* [1.8.3] Bump version
* add linkingObjects method to Realm.Object
* changelog
* Do not throw when the Sync constructor isn’t there
with unified packaging it’s there all the time now
Closes#1084Fixes#996
* Fix running the sync tests when Sync is disabled
* Add and adopt `Value::is_binary` / `Value::to_binary` / `Value::from_binary`.
These methods allow conversions between `BinaryData` and the equivalent
JavaScript types without using `NativeAccessor`. Instead,
`NativeAccessor` now itself delegates to these methods.
* Have `NativeAccessor::value_for_property` and `RealmObjectClass::set_property`
verify that values are valid for the property in question.
If not, we throw an exception that includes the name and type of the
property in question.
`NativeAccessor` is changed to always hold a reference to a `Realm` and
an `ObjectSchema` in order to make this validation possible.
* Fix the Windows build.
* Remove an unused, incorrect forward declaration of a template class
named `Realm` that caused ambiguity with object store's `Realm` class.
* Disambiguate between `realm::js::PropertyType` and
`realm::PropertyType`.
* Update CHANGELOG.md
* Remove the windows install check
* Node.js Win32 support
* Bring back the `REALM_HAVE_CONFIG` definition
* Download core for Windows when building
* Implement cross-platform node platform.cpp with libuv
* wip
* Make jasmine run quicker
https://github.com/jasmine/jasmine/issues/1204
* Wait for worker process to close in AsyncTests
* Cross-platform paths in tests
* Normalize path separator for forward slash on Windows
* MSVC exception voodoo
* cross-platform uv_cwd
* fix linux build
* make the prepublish script cross-platform
* Disable encryption tests on windows
* ignore vendor/realm-node
* jenkinsfile work
* Only run the prepublish script for publish and pack
* Jenkinsfile work
* Include gyp files in package
* rewrite default_realm_file_directory()
* fix React Native Android build
* delete all realm artifacts in remove_realm_files_from_directory
* bring back build environment variables
* node-pre-gyp windows
* Update CHANGELOG.md
* Temporary disable realmjs target on CI
It's broken because it doesn't support the node-fetch module. Let's disable it for now.
* Temporarily disable Android tests
They need an Object Server to talk to on CI
* Disable test assertion
* 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 Permissions models and User Management Realm API
* docs and changelog
* fix bad merge
* add test
* fix jsdoc annotation
* rename permissions to management schema
* 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
* Add a test
* Catch TypeErrorException
* Make exception asserts check error type
* Remove commented-out testcase and check for error type
* Test for Error, not TypeError
No longer leave this up to the test. All testing passes through the runTest() function, so we use that spot to delete the Realms. It also now deletes them beforehand too since a crash in a previous run could leave a Realm in place.