327 Commits

Author SHA1 Message Date
Thomas Goyne
e6591a7c9c Wait for pending notifications to complete when removing a sync listener (#1648)
With async callbacks, in-process listeners need to be able to wait for anything
currently in progress to complete just like out-of-process listeners. In
addition, removeListener() needs to be declared as returning a Promise so that
typescript code can actually use it.
2018-02-01 14:38:02 +01:00
Kenneth Geisshirt
30b87645df
Paramters must be transferred. (#1638) 2018-01-26 17:21:09 +01:00
Kenneth Geisshirt
f9e8161017
Clarifying PermissionCondition. (#1637) 2018-01-25 15:44:47 +01:00
Kenneth Geisshirt
ac82bd285d
Fixing a typo in _getExistingUser (#1634) 2018-01-24 08:07:19 +01:00
Kenneth Geisshirt
0c67e2a834
Adding catch to refreshAdminToken. (#1631) 2018-01-18 13:26:14 +01:00
Kenneth Geisshirt
a996a1a8b8
Adding _getExitingUser to Chrome debugger support library. (#1628)
* Adding _getExitingUser to Chrome debugger support library.
2018-01-18 12:21:35 +01:00
Thomas Goyne
0c6e254494 Support async sync change listeners (#1626) 2018-01-18 12:20:17 +01:00
Kenneth Geisshirt
193314834e
Copying definition of functions (#1621)
* Copying definition of functions
* Avoid loading when using React Native
2018-01-16 10:11:30 +01:00
Thomas Goyne
b9cce49972 Support opening Realms with an admin token without a working ROS directory service (#1615)
* Support opening Realms with an admin token without a working ROS directory service
2018-01-13 10:02:08 +01:00
Kenneth Geisshirt
fccc782612
subscribeToObjects is implemented in JS. (#1611) 2018-01-12 10:28:05 +01:00
Mark Rowe
cd8db46aa7 When refreshing the token, look up the user in a way that doesn't suffer from #1586 (#1587)
* When refreshing the token, look up the user in a way that doesn't suffer
from #1586

Expose a means of looking up a user by identity and server to avoid
problems if the same user identity exists for multiple servers, which
can happen when connecting to the same server via different hostnames.

* Return undefined if the user doesn't exist rather than returning an object wrapping a null SyncUser.
2018-01-11 16:00:31 +01:00
Thomas Goyne
ce67446976 Perform a pseudo-refresh for admin token users (#1599)
* Perform a pseudo-refresh for admin token users

Although we don't need to actually refresh the token, when multiplexing is
enabled we do still need to hit ROS to let it know we're accessing a Realm and
get the sync label.

* Adding brief JSdoc and TS definition for isAdminToken.

* Perform a pseudo-refresh for admin token users

Although we don't need to actually refresh the token, when multiplexing is
enabled we do still need to hit ROS to let it know we're accessing a Realm and
get the sync label.

* Adding brief JSdoc and TS definition for isAdminToken.

* Make the timeout consistent

* Add basic docs for multiprocess notifications (#1594)

* Add basic docs for multiprocess notifications

* Adopt core's query parser and update to core v5.1.2 (#1563)

* Adopt core's query parser.
* Realm Core 5.1.2
* Realm Sync 2.2.9

* Remove tar.xz (#1585)

* remove tar.xz decompression and lzma deps

* Fixing merge

* Updating object store
2018-01-11 14:47:54 +01:00
Nikola Irinchev
d6a8cbb1f3
Explicitly send register: false during login (#1596)
* Explicitly send register: false during login

* Update CHANGELOG.md
2018-01-08 11:32:05 +02:00
Kenneth Geisshirt
16a218ad49
Adding JWT auth (#1564)
* Adding method Realm.Sync.User.authenticate()
* Adding JWT provider support to Realm.Sync.User.authenticate()
* Adding password provider support to Realm.Sync.User.authenticate()
2018-01-05 09:38:53 +01:00
Constantin S. Pan
1b0f6c0b21
Increase the token refresh timeout to 10 sec (#1584) 2017-12-21 14:14:07 +01:00
Mark Rowe
c2de29ab0c Fix an issue where Realm.open would complain about the Realm already
being open with a different schema version

In order to correctly open read-only synchronized Realms, `Realm.open`
would open the Realm without specifying a schema or schema version, wait
for any remote changes to be downloaded (if appropriate), and then
re-open the Realm with the specified schema and schema version. This
would lead to an exception about the Realm being open with a different
schema version if the Realm had previously been opened with a different
schema version, due to the way `RealmCoordinator` caches information
about the schema of open Realms.

We address this by making two changes:
1. `Realm.open` for non-synchronized Realms no longer goes through
`_waitForDownload`. This means the dance described above where the Realm
is opened twice is not used for local Realms.
2. `_waitForDownload` no longer keeps the `Realm` alive until after its
callback has returned. It instead keeps the `SyncSession` alive. This is
sufficient to avoid the connection being torn down and having to
reconnect when `_waitForDownload`'s callback later opens the Realm with
the correct schema and schema version, while also allowing for
`RealmCoordinator`'s cached information to be cleared when the
schemaless Realm is closed prior to the Realm being reopened.

In addition, tests have been added that reproduced the problem in both a
local and sync context.
2017-12-18 14:54:08 -08:00
Yavor Georgiev
4e6cb299b3
Add disableFormatUpgrade to Realm configuration (#1566) 2017-12-14 07:53:03 +01:00
Kenneth Geisshirt
aed1ea104b
Adding property Realm.isClosed. (#1560)
* Adding property Realm.isClosed.
2017-12-13 10:09:26 +01:00
Kræn Hansen
70004b9304 Checking the content-type of authentication responses (#1556)
* Checking the content-type of authentication responses
* Adding a changelog entry
* Fixing changelog typos and line endings
2017-12-07 10:36:24 +01:00
Thomas Goyne
8faf94918b Use the sync label as the multiplex identifier 2017-11-16 16:36:58 -08:00
blagoev
c68c3983cf format the code 2017-11-14 11:08:40 +02:00
blagoev
9bcfa35bba fix js code 2017-11-14 08:58:21 +02:00
blagoev
ba2309a540 revert the promise resolve 2017-11-13 23:31:33 +02:00
blagoev
3e65994474 remove debug code 2017-11-13 22:53:27 +02:00
blagoev
c3ac7ac81d fix iOS code 2017-11-13 22:52:50 +02:00
blagoev
f10df2164c fix RN Android debugger 2017-11-13 14:19:59 +02:00
blagoev
7b49cf89ef android debugger looper fixes 2017-11-13 14:16:46 +02:00
Mark Rowe
848a5b1c09 Expose an object's internal object ID, and allow fetching an object by its object ID (#1460)
* Expose an object's internal object ID, and allow fetching an object by its object ID
* Throw an exception if methods related to object IDs are used on non-synced Realms.
* Use `std::stoull` to ensure we can return the entire range of possible values.
* Add tests for _objectId() / _objectForObjectId().
* Adding change log
* Skip ObjectIdTests.testSynced for non-Node.
2017-11-08 11:22:59 +01:00
Kenneth Geisshirt
e81d8589ae
Post-release feedback on client reset (#1372) (#1459)
* Post-release feedback on client reset (#1372)
* Using error.name instead
2017-11-06 13:51:33 +01:00
Kræn Hansen
1de8fbbf39 Update index.d.ts (#1458) 2017-11-03 16:02:34 +01:00
Kenneth Geisshirt
d858c4e87a Updating documentation of realmAtPath 2017-11-01 14:44:40 +01:00
Michel Albers
0a43df6860 remove uneccessary blank line 2017-10-25 18:16:59 +02:00
Michel Albers
f98eb7a4ec Fix "realm constructor not defined" in JS remote debugging mode 2017-10-25 18:16:23 +02:00
blagoev
0b5aa68c62 Revert "Merge pull request #1409 from realm/kneth/bugfix/invalid-token"
This reverts commit 4055c9e047b93053eb35402dfc56f2e57e260b92, reversing
changes made to d6b3fcb8b14e316756da90d712cb7767e1cfb3a7.
2017-10-17 00:51:47 +03:00
blagoev
863e80643b Merge branch 'master' into fix-partial-sync-config-ts-definition 2017-10-16 15:17:19 +03:00
blagoev
f534d64382 fix partial in ts definitions 2017-10-16 12:48:07 +03:00
Kenneth Geisshirt
7e85220e47 Merge branch 'kneth/bugfix/invalid-token' of github.com:realm/realm-js into kneth/bugfix/invalid-token 2017-10-13 18:18:05 +02:00
Kenneth Geisshirt
28c51335d2 Ugly hack. 2017-10-13 18:12:30 +02:00
Kenneth Geisshirt
fca7cd4566 wip 2017-10-13 14:39:28 +02:00
Mark Rowe
5ea64ef4b3 Merge pull request #1402 from realm/mar/simplify-wait-for-download
Remove configuration handling from Realm._waitForDownload
2017-10-11 09:56:49 -07:00
Mark Rowe
718ee3296c Fix how _waitForDownload is treated by the RPC code. 2017-10-11 09:29:53 -07:00
Kenneth Geisshirt
6bc5a45272 Merge pull request #1403 from realm/tg/skip-analytics-modules
Check for REALM_DISABLE_ANALYTICS earlier in submit-analytics.js
2017-10-11 15:19:56 +02:00
Thomas Goyne
643c19ea75 Add support for aggregates on arrays of primitives (#1401)
* 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
2017-10-11 14:54:52 +02:00
Mark Rowe
0249722a02 Remove configuration handling from Realm._waitForDownload
There's no reason for `_waitForDownload` to be responsible for
constructing a new Realm instance when we can instead use the
constructor for that. This eliminates the potential for different
handling of the Realm configuration between `_waitForDownload` and `new
Realm`, which was responsible for various issues (#1391, #1392, #1393).
In turn, this requires that `_waitForDownload` become an instance method.

In addition, we update `Realm.openAsync` and `getSpecialPurposeRealm` to
delegate to `Realm.open` rather than reimplementing equivalent logic
themselves.

Finally, the private mechanism for registering a download progress
handler as part of the sync configuration (`_onDownloadProgress`) is
removed in favor of the public API (`progress()` on the promise returned
by `Realm.open`).
2017-10-10 21:16:23 -07:00
Thomas Goyne
f4b96a1782 Check for REALM_DISABLE_ANALYTICS earlier in submit-analytics.js
Node's `require()` is synchronous and somewhat slow, so importing the modules
for submit-analytics.js ends up being about half of the runtime of
`require('realm')`. With this change, when analytics is disabled, nearly all of
the time spent on `require('realm')` (~100ms on my machine) is spent in
node-pre-gyp-related functionality for loading the native module.
2017-10-10 16:27:32 -07:00
Ashwin Phatak
4bcef8baff Add support for bulk updates (#808) 2017-10-10 16:25:47 +05:30
blagoev
5c9b254b4a fix sync error (#1379)
* fix sync error
2017-10-04 11:29:32 +02:00
blagoev
aefd81ccf7 Kneth/fix partial sync (#1383)
* fix typo in subscribeToObjects
* Fix partial sync test
* Swap error and result order in callback
* Use correct url
2017-10-04 11:28:50 +02:00
Kenneth Geisshirt
19d05c2021 Merge master into 2.0.x (#1377)
* Add 'deleteRealmIfMigrationNeeded' to configuration to delete a Realm if migration needed (#502)
* Minor update due to changes in objec store
2017-10-03 13:37:21 +02:00
Kenneth Geisshirt
53fec37e84 Frozen results during iteration. (#1368)
* Frozen results during iteration.
* Adding a note about iterators are frozen.
2017-10-02 23:15:19 +02:00