* 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.
* 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
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`).
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.
* Specify a timeout when making the HTTP request to refresh access tokens.
Without the timeout, some requests are silently never made.
Fixesrealm/realm-js-private#338.
* Add a changelog entry.