Skip to content

Releases: realm/realm-js

v2.19.1

15 Nov 21:00
Compare
Choose a tag to compare

Enhancements

  • None.

Fixed

  • The Typescript definition for Realm.Permissions.Permission did not have the correct role property defined. This could result in compilation errors like this error TS2339: Property 'role' does not exist on type 'Permission'. (#2106, since v2.3.0.)
  • Removes calls to new Buffer() as this is deprecated with Node 10. (#2107, since v2.19.0)
  • Updates the type definitions to be explicit that the return type of the generics Realm.objects<T>, Realm.objectForPrimaryKey<T>, etc. is an intersection of T & Realm.Object. (#1838)
  • A set of bugs that could lead to bad changesets have been fixed. An example of error message is Failed to parse, or apply received changeset: ndx out of range. (Fixed by Realm Sync v3.13.3)

Compatibility

  • Realm Object Server: 3.11.0 or later.
  • APIs are backwards compatible with all previous release of realm in the 2.x.y series.
  • File format: Generates Realms with format v9 (Reads and upgrades all previous formats)

Internal

  • Introduces 100 ms delay before submitting analytics so that an app may disable it after importing Realm. (#2108)
  • Distinguish between node.js and electron in the BindingType field when submitting analytics. (#2108)
  • Adds a package to compute the Windows analytics identifier rather than returning null which likely accounts for the disproportionally large number of unique Windows users. (#2108)
  • Upgrades to Realm Core v5.12.1.
  • Upgrades to Realm Sync v3.13.4.

2.19.0

08 Nov 11:44
e875c4d
Compare
Choose a tag to compare

This release contains all changes from v2.19.0-rc.1 to v2.19.0-rc.5.

Enhancements

  • Adds SyncConfig.customQueryBasedSyncIdentifier to allow customizing the identifier appended to the Realm path when opening a query based Realm. This identifier is used to distinguish between query based Realms opened on different devices and by default Realm builds it as a combination of a user's id and a random string, allowing the same user to subscribe to different queries on different devices. In very rare cases, you may want to share query based Realms between devices and specifying the customQueryBasedSyncIdentifier allows you to do that.
  • Adds Realm.subscriptions() to query active query-based sync subscriptions. This method is in beta and might change in future releases. (#2052)
  • Adds Realm.unsubscribe() to unsubscribe by name an active query-based sync subscription. This method is in beta and might change in future releases. (#2052)
  • Improves the proactive token refresh mechanism to make several attempts to refresh the token before it expires and to also ensure that there is only one ongoing refresh timer for a combination of user and realm path. Previously it was possible to end up in a situation where many redundant refreshes were scheduled for the same Realm. (#2071)
  • A more meaningful exception will be thrown when trying to refresh the access token for a Realm with an invalid url. Previously, trying to connect to a Realm with an url that lacks the path component (e.g. realm://foo.com) would result in errors like Cannot read property ‘token_data’ of undefined. Instead, now we'll print out the Realm url and provide a more meaningful exception message. (#ROS-1310)
  • Adds support for Node 10. Pre-gyp'ed binaries are available for Node 6, 8, and 10. (#1813 and #2087)
  • Building for iOS can now use the n node version manager. Thanks to @SandyChapman! (#2078)

Fixed

  • Fixes the TypeScript definitions for User.login to make it explicit in which cases a promise and in which a User is returned. (#2050, since 2.16.0).
  • Fixes the exception being thrown when using the deprecated User.registerWithProvider API and not providing a value for userInfo. (#2050, since 2.16.0).
  • Fixes the signature of user.logout to return a Promise<void> rather than void. It has always done asynchronous work, but previously, it was impossible to be notified that the call has completed. Since that is now possible, the superfluous User is logged out message printed in the console upon logout has been removed. (#2071, since v2.3.0)
  • Fixes opening query-based Realms with a dynamic schema. Previously the schema would always contain only the types present when the Realm was first added and not any types added later. (#2077, since v2.3.0)

Compatibility

  • Realm Object Server: 3.11.0 or later.
  • APIs are backwards compatible with all previous release of realm in the 2.x.y series.
  • File format: Generates Realms with format v9 (Reads and upgrades all previous formats)

Internal

  • Upgrades to Realm Core v5.12.0.
  • Upgrades to Realm Sync v3.13.1.
  • Updates to package.json and README.md. Thanks to @hyandell.

2.19.0-rc.5

07 Nov 12:28
Compare
Choose a tag to compare
2.19.0-rc.5 Pre-release
Pre-release

Enhancements

  • A more meaningful exception will be thrown when trying to refresh the access token for a Realm with an invalid url. Previously, trying to connect to a Realm with a url that lacks the path component (e.g. realm://foo.com) would result in errors like Cannot read property ‘token_data’ of undefined. Instead, now we'll print out the Realm url and provide a more meaningful exception message. (#ROS-1310, since v1.0.2)
  • Adds support for Node 10. Pre-gyp'ed binaries are available for Node 6, 8, and 10. (#1813 and #2087)

Fixed

  • None.

Compatibility

  • Realm Object Server: 3.11.0 or later.
  • APIs are backwards compatible with all previous release of realm in the 2.x.y series.
  • File format: Generates Realms with format v9 (Reads and upgrades all previous formats)

Internal

  • Building for iOS can now use the n node version manager. Thanks to @SandyChapman! (#2078)
  • Upgrading to Realm Core v5.12.0.
  • Upgrading to Realm Sync v3.13.1.

2.19.0-rc.3

16 Oct 12:40
Compare
Choose a tag to compare
2.19.0-rc.3 Pre-release
Pre-release

Enhancements

  • Improved the proactive token refresh mechanism to make several attempts to refresh the token before it expires and to also ensure that there is only one ongoing refresh timer for a combination of user and realm path. Previously it was possible to end up in a situation where many redundant refreshes were scheduled for the same Realm. (#2071, since v1.0.2)

Fixes

  • Fixed the signature of user.logout to return a Promise<void> rather than void. It has always done asynchronous work, but previously, it was impossible to be notified that the call has completed. Since that is now possible, the superfluous "User is logged out" message printed in the console upon logout has been removed. (#2071, since v2.3.0)

Compatibility

  • Realm Object Server: 3.11.0 or later.
  • APIs are backwards compatible with all previous release of realm in the 2.x.y series.
  • File format: Generates Realms with format v9 (Reads and upgrades all previous formats).

Internal

  • None.

2.19.0-rc.2

10 Oct 10:36
Compare
Choose a tag to compare
2.19.0-rc.2 Pre-release
Pre-release

Enhancements

  • Added Realm.subscriptions() to query active query-based sync subscriptions. This method is in beta and might change in future releases. (#2052)
  • Added Realm.unsubscribe() to unsubscribe by name an active query-based sync subscription. This method is in beta and might change in future releases. (#2052)

Fixed

  • None.

Compatibility

  • File format: ver. 9 (upgrades automatically from previous formats)
  • Realm Object Server: 3.11.0 or later.
  • APIs are backwards compatible with all previous release of realm in the 2.x.y series.

v2.19.0-rc.1

09 Oct 10:57
Compare
Choose a tag to compare
v2.19.0-rc.1 Pre-release
Pre-release

Enhancements

  • Added SyncConfig.customQueryBasedSyncIdentifier to allow customizing the identifier appended to the realm path when opening a query based Realm. This identifier is used to distinguish between query based Realms opened on different devices and by default Realm builds it as a combination of a user's id and a random string, allowing the same user to subscribe to different queries on different devices. In very rare cases, you may want to share query based Realms between devices and specifying the customQueryBasedSyncIdentifier allows you to do that.

Fixed

  • Fixed the typescript definitions for User.login to make it explicit in which cases a promise is returned and in which - a User. (#2050, since 2.16.0).
  • Fixed an exception being thrown when using the deprecated User.registerWithProvider API and not providing a value for userInfo. (#2050, since 2.16.0).

Compatibility

  • File format: ver. 9 (upgrades automatically from previous formats)
  • Realm Object Server: 3.11.0 or later.
  • APIs are backwards compatible with all previous release of realm in the 2.x.y series.

v2.18.0

04 Oct 13:06
Compare
Choose a tag to compare

Enhancements

  • Added support for finding Realm-level permissions in Query-based Realms using realm.getPermissions(). (#2036)
  • Added support for finding Class-level permissions in Query-based Realms using realm.getPermissions(className). (#2036)
  • Added Realm.Permissions.Realm.findOrCreate(roleName) and Realm.Permissions.Class.findOrCreate(roleName) which makes it easier to find or create permissions for a given role when using query-based Realms. (#2036)

Fixes

  • Allow Realm.deleteFile to be used with a sync configuration. Previously, only local Realms could be deleted with this API and the sync property on the configuration would be ignored. (#2045, since v1.0.0)

Compatibility

  • File format: ver. 7 (upgrades automatically from previous formats)
  • Realm Object Server: 3.11.0 or later.
  • APIs are backwards compatible with all previous release of realm in the 2.x.y series.

v2.17.0

28 Sep 13:18
Compare
Choose a tag to compare

No changes compared to v2.17.0-rc.1

v2.17.0-rc.1

25 Sep 08:13
Compare
Choose a tag to compare
v2.17.0-rc.1 Pre-release
Pre-release

Enhancements

  • When using a synced Realm where you only receive updates from the server and never update the realm locally, the client will now report download progress to the server such that it can compact files on the server. This enhancement doesn't affect the client.

Compatibility

  • File format: ver. 7 (upgrades automatically from previous formats)
  • Realm Object Server: 3.11.0 or later.
    You will need to upgrade your Realm Object Server to at least version 3.11.0 or use Realm Cloud.
    If you try to connect to a ROS v3.10.x or previous, you will see an error like Wrong protocol version in Sync HTTP request, client protocol version = 25, server protocol version = 24.
  • APIs are backwards compatible with all previous release of realm in the 2.x.y series.

v2.16.2

25 Sep 07:07
Compare
Choose a tag to compare

Fixes

  • Fixed a bug where logging in using an admin token returned a promise. The correct behavior is to be synchronous. (related to #2037, since v2.16.1)

Compatibility

  • File format: ver. 7 (upgrades automatically from previous formats)
  • Realm Object Server: 3.0.0 or later.
  • APIs are backwards compatible with all previous release of realm in the 2.x.y series.