realm-js/CHANGELOG.md

46 KiB

2.14.0 Release notes (2018-7-24)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Various bugfixes.

Internals

  • Upgraded to Realm Core v5.7.2.
  • Upgraded to Realm Sync v3.8.3.

2.13.0 Release notes (2018-7-12)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • [Sync] Improved performance of changeset parsing.

Bug fixes

  • [Sync] Fixed a bug in the build system which prevented OpenSSL to be linked (#1864)
  • Fixed a bug in RN Android which prevented apps to specify minSdkVersion, etc. (#1914).

Internals

  • Upgraded to Realm Core v5.7.1.
  • Upgraded to Realm Sync v3.8.0.

2.12.0 Release notes (2018-7-3)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • Improved performance of creating objects with string primary keys.
  • Improved memory management to allow larger transactions.
  • Improved performance of realm.create() when running in node.

Bug fixes

  • Fixed a bug which caused RN Android to fail loading (#1904).

Internals

  • Upgraded to Realm Core v5.6.5.
  • Upgraded to Realm Sync v3.7.0.

2.11.0 Release notes (2018-6-28)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • Improved performance for devices which can support large address spaces.
  • [Sync] Exposed custom HTTP headers in Realm.Configuration (#1897).
  • Improved performance of Realm.compact().

Bug fixes

  • [RN Android] Ported workaround for crashes in memmove/memcpy on some old Android devices (#1163 and #1895).

Internals

  • Upgraded to Realm Core v5.6.3.
  • Upgraded to Realm Sync v3.5.8.
  • Added properties of Realm.Sync.User to debugger support.
  • Fixed class names in API documentation (wrong names were introduced in v2.6.0).
  • Added prebuilding for Electron v2.0 (Electron is not supported).

2.10.0 Release notes (2018-6-19)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • Added Realm.createTemplateObject(objectSchema) (#1870).

Bug fixes

  • [Sync] Fixed a bug which could potentially flood Realm Object Server with PING messages.

Internals

  • Upgraded to Realm Sync v3.5.6.
  • Realm Core v5.6.2.

2.9.0 Release notes (2018-6-19)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • Added support for compacting synchronized Realms and allowed setting the shouldCompactOnLaunch config property for them.

Bug fixes

  • Fix incorrect documentation of the shouldCompactOnLaunch parameters.

Internals

  • Realm Core v5.6.2.
  • Realm Sync v3.5.5.

2.8.5 Release notes (2018-6-18)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Fixed a bug that could result in a crash with the message "bad changeset error".

Internals

  • Upgraded to Realm Sync v3.5.5.
  • Realm Core v5.6.2.

2.8.4 Release notes (2018-6-15)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • Fixed a potential corruption.

Internals

  • Upgraded to Realm Core v5.6.2.
  • Upgraded to Realm Sync v3.5.4.

2.8.3 Release notes (2018-6-13)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • Fixed a bug in how arrays of primitive types are represented. The bug prevented a schema from one Realm to be used when opening another (#1847).
  • Added a more readable error message in the query parser when requesting an a bad argument (#1808).

Internal

  • Upgraded to Realm Core v5.6.1.
  • Upgraded to Realm Sync v3.5.3.

2.8.2 Release notes (2018-6-12)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Fixed a problem which would sometimes cause bad permission object and bad changeset errors.

Internal

  • Upgraded to Realm Sync v3.5.2.
  • Realm Core v5.6.0.

2.8.1 Release notes (2018-6-8)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • Add the oldModifications and newModifications properties to the listener change objects, which report the indices that changed in the collection both before and after the changes being notified for. The modifications property is kept as an alias for oldModifications but might be removed in a future version.

Bug fixes

  • [Sync] Fixed a bug which crash query-based Realms. A bug in gcc's optimizer will generate code which in some case will lead to a memory violation and eventually a segmentation fault.

Internal

  • Changed download URL for Linux binaries (scripts/download-realm.js).
  • Upgraded to Realm Sync v3.5.1.
  • Realm Core v5.6.0.
  • Realm Sync v3.5.1.

2.8.0 Release notes (2018-6-6)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Notes

The feature known as Partial synchronization has been renamed to Query-based synchronization and is now the default mode for synchronized Realms. This has impacted a number of APIs. See below for the details.

Deprecated

  • [Sync] Realm.Configuration.SyncConfiguration.partial has been deprecated in favor of Realm.Configuration.SyncConfiguration.fullSynchronization.
  • [Sync] Realm.automaticSyncConfiguration() has been deprecated in favor of Realm.Sync.User.createConfiguration().

Breaking changes

  • None.

Enhancements

  • [Sync] Realm.Configuration.SyncConfiguration.fullSynchronization has been added.
  • [Sync] Realm.Sync.User.createConfiguration(config) has been added for creating default and user defined sync configurations.

Bug fixes

  • Fixed TypeScript definition of Realm.objects() and Realm.objectForPrimaryKey() (#1803).

Internal

  • [Sync] Realm.Configuration.SyncConfig._disablePartialSyncUrlChecks has been renamed to Realm.Configuration.sync._disableQueryBasedSyncUrlChecks.
  • Realm Sync v3.3.0.
  • Realm Core v5.6.0.

2.7.2 Release notes (2018-6-1)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • Fixed a segfault when the object schema is unknown (realm-js-private #454).

Internal

  • Realm Sync v3.3.0.
  • Realm Core v5.6.0.

2.7.1 Release notes (2018-5-31)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • Fixed a crash when invalid schema cache is used to look up a property (realm-js-private #452).

Internal

  • Realm Sync v3.3.0.
  • Realm Core v5.6.0.

2.7.0 Release notes (2018-5-29)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • Added isEmpty() method on Realm.Results and Realm.List.
  • Added schema change listener to Realm.addListener() (#1825).

Bug fixes

  • Fixed Realm.open() to work without passing a config.
  • Fixed a bug in Realm.open() to work without passing a config.

Internal

  • Realm Sync v3.3.0.
  • Realm Core v5.6.0.

2.6.0 Release notes (2018-5-16)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • [Sync] The SSL configuration options are now grouped in a new config object. (#1465)
  • [Sync] The Adapter can accept a new config parameter that specifies SSL settings for spawned sync sessions.
  • Added Object.linkingObjectsCount() method, that returns total count of incoming links.

Bug fixes

  • Fix a crash when attempting to use the data adaptor or sync event listener introduced in 2.4.1.

Internal

  • Realm Sync v3.3.0.
  • Realm Core v5.6.0.

2.5.0 Release notes (2018-5-14)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • [Sync] Emit a delete event to the Sync event listener whenever a Realm matching the regex is deleted from the server.

Bug fixes

  • Building React Native Android projects using Java version 9 used deprecated API's (#1779).

Internal

  • None.

2.4.1 Release notes (2018-5-7)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • Added minimal support for Realm deletions to the Global Notifier (realm-js-private #443).

Bug fixes

  • Fixed TypeScript defintion for open_ssl_verify_callback configuration option (#1652).

Internal

  • Updated to Relm Sync 3.3.0.
  • Updated to Realm Core 5.6.0.

2.4.0 Release notes (2018-4-26)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • Added password reset wrappers (#1699).
  • Added a certificate validation using Android Keystore for RN (#1761).

Bug fixes

  • Fixed logout error due to fetch body not being stringified (#1731).
  • Added Subscription import to browser/index.js and register type converter (#1711).
  • Fixed call to logout() when debugging React Native apps (#1744).

Internal

  • Updated scripts/test.sh so it doesn't hang forever when the React tests fail to start (#1764).

2.3.4 Release notes (2018-4-12)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • Fixed named LinkingObject queries across different classes (#1734).
  • Fixed a bug when refreshing admin token due to network errors (realm-js-private #433).

Internal

  • None.

2.3.3 Release notes (2018-3-23)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • Fixed a bug where leaking Realms when an error occurs within an event handler (#1725).

Internal

  • Added trace logging to the global notifier (realm-js-private #426).

2.3.2 Release notes (2018-3-21)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0 or later

Breaking changes

  • None.

Enhancements

  • Added Realm.Sync.Subscription.removeAllListeners().

Internal

  • Tested with Realm Object Server 3.0.0.

2.3.1 Release notes (2018-3-16)

Compatibility

  • Sync protocol: 24
  • Server-side history format: 4
  • File format: 7
  • Realm Object Server: 3.0.0-alpha.8 or later

Breaking changes

  • None.

Enhancements

  • Added an optional user as argument to Realm.automaticSyncConfiguration (#1708).

Bug fixes

  • [Sync] Avoid hammering the ROS authentication service when large numbers of Realms are opened at once.

Internal

  • Tested with Realm Object Server 3.0.0-rc.1.

2.3.0 Release notes (2018-3-13)

Breaking changes

  • [Sync] Sync protocol changed to version 24.
  • [Sync] History schema format for server-side Realm files bumped to version 4. This means that after the server has been upgraded, it cannot be downgraded again without restoring state from backup.
  • [Sync] Realm.subscribeToObjects() has been removed. Use Realm.Results.subscribe() instead.

Enhancements

  • [Sync] Reduced initial download times in Realms with long transaction histories.
  • [Sync] Wait for pending notifications to complete when removing a sync listener (#1648).
  • Enabled sort and distinct in the query string. If sort or distinct are also applied outside of the query string, the conditions are stacked.
    • Example syntax: age > 20 SORT(name ASC, age DESC) DISTINCT(name)
    • The ordering for sorting can be one of the following case insensitive literals: ASC, ASCENDING, DESC, DESCENDING.
    • Any number of properties can appear inside the brackets in a comma separated list.
    • Any number of sort/distinct conditions can be indicated, they will be applied in the specified order.
    • Sort or distinct cannot operate independently, these conditions must be attached to at least one query filter.
  • Added support for queries over named backlinks (#1498/#1660).
    • Example syntax: parents.age > 25 and parents.@count == 2.
  • [Sync] Added Realm.Results.subscribe() to subscribe to partial synced Realms.
  • [Sync] Added class Realm.Sync.Subscription and enum Realm.Sync.SubscriptionState to support partial synced Realms.
  • [Sync] Added an object-level permission subsystem. It is possible to grant fine-grained priviliges to users.
  • Added object-level permissions:
    • Schemas Realm.Permissions.Realm, Realm.Permissions.Class, Realm.Permissions.Role, Realm.Permissions.User, and Realm.Permissions.Permission to support working with permissions. These schemas can be used in user-defined Realms and schemas.
    • Permissions are enforced by the object server but connectivity is not required.
    • Method Realm.privilges() to compute privileges on a Realm, a Realm object schema, or a Realm object. The method returns either a Realm.Permissions.Realm or Realm.Permissions.Class object.
    • For non-synced Realms, all privileges are always granted.
    • For more details, please read the reference documentation.
  • [Sync] Revoke refresh token upon logout (#1354).
  • Added Realm.automaticSyncConfiguration() which will return the configuration for a default synced Realm (#1688).
  • [Sync] Deprecated Realm.Sync.setFeatureToken (#1689).

Bug fixes

  • Fixed usage of disk space preallocation which would occasionally fail on recent MacOS running with the APFS filesystem (Realm Core #3005).

Internal

  • Updated to Realm Core 5.4.0.
  • Updated to Realm Sync 3.0.0.
  • Tested against Realm Object Server 3.0.0-alpha.8.
  • Added _disablePartialSyncUrlChecks to Realm.Configuration.

2.2.20 Release notes (2018-4-13)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • None.

Internal

  • Updated to Realm Sync 2.2.17

2.2.19 Release notes (2018-4-10)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • Avoid crashing if partial Realms find their way into the admin Realm when using Realm Object Server v3.0.0 or later (realm-js-private #430).

Internal

  • None.

2.2.18 Release notes (2018-3-23)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • Fixed a bug where leaking Realms when an error occurs within an event handler (#1725).

Internal

  • Added trace logging to the global notifier (realm-js-private #426).

2.2.17 Release notes (2018-3-21)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Do a better job of not opening the notifier pipe file for global notifier realms.

Internal

  • None.

2.2.16 Release notes (2018-3-16)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Avoid hammering the ROS authentication service when large numbers of Realms are opened at once.

Internal

  • None.

2.2.15 Release notes (2018-3-9)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • Fixed a bug that could result in notifications from the global notifier being delayed or not delivered at all when multiple Realms change at once.

Internal

  • None.

2.2.14 Release notes (2018-3-5)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Fixed race condition in handling of session bootstrapping in client.

Internal

  • Updated to Realm Sync 2.2.15.

2.2.13 Release notes (2018-3-2)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Fixed handling of SSL certificates for the sync client.

Internal

  • Updated to Realm Sync 2.2.14.

2.2.12 Release notes (2018-2-23)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • Validate that a given type appears at most once in the schema.

Internal

  • None.

2.2.10 Release notes (2018-2-20)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] A use-after-free bug was fixed which could cause arrays of primitives to behave unexpectedly.

Internal

  • Updated to Realm Sync 2.2.12.

2.2.9 Release notes (2018-2-19)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • Improved root certificate checking.

Internal

  • Updated to Realm Sync 2.2.11.

2.2.8 Release notes (2018-2-13)

Breaking changes

  • None.

Enhancements

  • [Sync] For OpenSSL, the sync client includes a fixed list of certificates in its SSL certificate verification besides the default trust store in the case where the user is not specifying its own trust certificates or callback.

Bug fixes

  • None.

Internal

  • Updated to Realm Sync 2.2.10.

2.2.7 Release notes (2018-2-6)

Breaking changes

  • None.

Enhancements

  • [Sync] Wait for pending notifications to complete when removing a sync listener (#1648).
  • Add schema name to missing primary key error message

Bug fixes

  • [Sync] Fixed a bug causing use-after-free crashes in Global Notifier (realm-js-private #405).

Internal

  • None.

2.2.6 Release notes (2018-1-26)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Fixed a bug where arguments were not transferred when debugging.

Internal

  • None.

2.2.5 Release notes (2018-1-25)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Fixed a typing error leading to _getExistingUser wasn't defined in the Chrome debugging support library (#1625).
  • Fixed a bug in the TypeScript definition of PermissionCondition (#1574).
  • [Electron] Fixed a dlopen error related to OpenSSL that prevented using realm-js on Linux (#1636).

Internal

  • None.

2.2.4 Release notes (2018-1-18)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Fixed a bug where errors in refreshAdminToken wasn't catched (#1627).
  • [Sync] Added _getExitingUser to the Chrome debugging support library.

Internal

  • None.

2.2.3 Release notes (2018-1-17)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Fixed a bug in upload progress reporting.
  • [Sync] Fixed a bug where any errors which occurred when trying to sync the admin Realm were ignored, which made attempting to add a listener with an invalid admin user silently do nothing.

Internal

  • None.

2.2.2 Release notes (2018-1-16)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Added missing Realm.Sync listener functions.

Internal

  • None.

2.2.1 Release notes (2018-1-13)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Fixed a bug preventing opening Realms with an admin token without a working ROS directory service (#1615).

Internal

  • None.

2.2.0 Release notes (2018-1-12)

Breaking changes

  • None.

Enhancements

  • Added new query features to support a subset of NSPredicates for example LIKE for string matches, @count and @sum in lists. See documentation for more details.
  • Potential performance enhancements in cases of many writes between queries.
  • [Sync] Added method Realm.Sync.User.authenticate to unify authentication of users.
  • [Sync] Added JWT authenfication (#1548).

Bug fixes

  • Fix a bug where Realm.open could unexpectedly raise a "Realm at path ... already opened with different schema version" error.
  • subscribeToObjects was added as a property for Chrome debugging (#1608).
  • Increased request timeout for token refresh requests to 10 seconds. This should help with failing token refreshes on a loaded server (#1586).

Internal

  • Updated to Realm Sync 2.2.9.
  • Updated to Realm Core 5.1.2 (see "Enhancements").
  • Explicitly send register: false when logging in with Realm.Sync.User.login to avoid creating the user if they don't exist.

2.1.1 Release notes (2017-12-15)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] Fixed a bug where long reconnection happens when a proxy in front of the sync worker returns one of those.

Internal

  • [Sync] Updated to Realm Object Server v2.2.0 for testing.
  • Updated to Realm Sync 2.1.10 (see "Bug fixes").

2.1.0 Release notes (2017-12-14)

Breaking changes

  • None.

Enhancements

  • Added property Realm.isClosed which indicates if a Realm instance is closed or not.
  • Added property disableFormatUpgrade to the Realm configuration object which disables automatic file format upgrade when opening a Realm file.

Bug fixes

  • None.

Internal

  • Updated to React Native 0.50.4 (test and example apps).

2.0.13 Release notes (2017-12-8)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • [Sync] When authentication fails due to a misbehaving server, a proper error is thrown.

Internal

  • [Sync] Strings can now be assigned to Date columns. When that happens the JavaScript Date constructor will be invoked to parse the string.
  • [Sync] Base64 strings can now be assigned to Data columns.

2.0.12 Release notes (2017-12-1)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • Fixed a bug in 3rd party JSON parser: localeconv() does not exist on Android API < 21 and should not be called.

Internal

  • Fixed issues in unit tests (addListener hangs on Android).
  • Upgraded to Realm Sync 2.1.8 (no external effects).

2.0.11 Release notes (2017-11-23)

Breaking changes

  • None.

Enhancements

  • None

Bug fixes

  • [Sync] Fixed a bug where deleted-then-recreated objects with identical primary keys to become empty.
  • [Sync] Fixed a bug in outward partial sync is changed to ensure convergence of partial sync in the case where the client creates a primary key object, that is already present on the server, and subscribes to it in the same transaction.

Internal

  • Updated to Realm Sync 2.1.7 (see under "Bug fixes").

2.0.10 Release notes (2017-11-21)

Breaking changes

  • None.

Enhancements

  • None

Bug fixes

  • Fix json parsing in RN debugger.

Internal

  • None.

2.0.9 Release notes (2017-11-20)

Breaking changes

  • None.

Enhancements

  • None

Bug fixes

  • Reenable Realm for RN Android (#1506), which was disabled only in 2.0.8 by mistake.

Internal

  • None.

2.0.8 Release notes (2017-11-17)

Breaking changes

  • None.

Enhancements

  • [Sync] Improving performance of processing large changesets.

Bug fixes

  • [Sync] Changesets over 16MB in size are now handled correctly.

Internal

  • Updated to Realm Sync 2.1.6.
  • Updated to JSON for Modern C++ 2.1.1.

2.0.7 Release notes (2017-11-15)

Breaking changes

  • None

Enhancements

  • None

Bug fixes

  • Fixes Realm.open hangs in React Native debugger for iOS and Android

Internal

  • Updated to Realm Sync 2.1.4.

2.0.6 Release notes (2017-11-10)

Breaking changes

  • None.

Enhancements

  • Improved notification performance for objects with no object or list properties.

Bug fixes

  • Fixed a compilation error related to object IDs for React Native on Android (#1480).
  • Fixed a race condition where closing and immediately reopening a synchronized Realm opened using an admin token user would fail.

Internal

  • None.

2.0.5 Release notes (2017-11-9)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • None.

Internal

  • Added support for object IDs.
  • Updated to Realm Sync 2.1.2.

2.0.4 Release notes (2017-11-7)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • None.

Internal

  • Updated to Realm Sync 2.1.1.

2.0.3 Release notes (2017-11-6)

Breaking changes

  • None.

Enhancements

  • Better support for React Native 0.49 for iOS (#1431).
  • Added property name to error in Sync.error callback.
  • Sync error handler provides also a property called name; code is not changed.

Bug fixed

  • Fixed missing Realm constructor in while debugging React Native apps (#1436).
  • Removed argument in documentation of Realm.Sync.Adapter.realmAtPath().

Internal

  • None.

2.0.2 Release notes (2017-10-30)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • Fix several cases where adding collection listeners from within a listener callback would produce incorrect results.

Internal

  • None.

2.0.1 Release notes (2017-10-23)

Breaking changes

  • None.

Enhancements

  • None.

Bug fixes

  • None.

Internal

  • Upgraded to Realm Sync 2.1.0.

2.0.0 Release notes (2017-10-17)

Breaking changes

  • Switch to Sync protocol 2.0, compatible with Realm Object Server 2.0.0. This version does NOT support 1.x.x of Realm Object Server.
  • Upgraded to Realm Core 4.0.1, which has a new file format. If older Realm versions are opened, the database will be migrated automatically.
  • Deprecate node 4 and node 5 support.
  • Renamed setAccessToken() to setFeatureToken().
  • During iteration (for ... of) of Realm.Results, the results will be frozen using the snapshot() method (#1366).

Enhancements

  • The data model now support arrays of primitive types!
  • Added update method to Realm.Results to support bulk updates (#808).
  • Added support for aggregate functions on Realm.Results and Realm.List of primitive types.
  • Handling of the situation when the client has to reset due to mismatching Realm versions (#795).
  • Added Realm.subscribeToObjects() to listen for changes in partially synced Realms.
  • Add support for sorting Lists and Results on values from linked objects.
  • Configuration of sync file system is not done on module import but later when actually needed by sync (#1351)
  • Realm.Sync.User.adminUser() will now throw an exception if either token or server argument is invalid.

Bug fixes

  • Avoid closing then reopening a sync session when using Realm.open (#1391).
  • Respect custom Realm paths when using Realm.open (#1392 and #1393).
  • Fixed bug in Realm.subscribeToObjects().
  • An issue where access tokens were not refreshed correctly has been addressed.

Internal

  • OpenSSL for Android is distributed in a separate package, and the build system needed updates to accommendate this.
  • Added -fvisibility=hidden to Android builds (reduces size of .so file).
  • Add Session._overrideServer to force an existing session to connect to a different server.
  • Alignment of permission schemas.
  • Upgrading to Realm Sync 2.0.2.
  • Upgrading to Realm Object Server 2.0.0

1.13.0 Release notes (2017-10-5)

Breaking changes

  • None.

Enhancements

  • Add a callback function used to verify SSL certificates in the sync config.
  • Added aggregate functions min(), max(), sum(), and avg() to Realm.Results and Realm.List (#807).
  • Added deleteRealmIfMigrationNeeded to configuration to delete a Realm if migration needed (#502).

Bug fixes

  • Fixed port conflict between RN >= 0.48 inspector proxy and RPC server used for Chrome debugging (#1294).
  • Workaround for RN >= 0.49 metro-bundler check for single string literal argument to require() (#1342)

1.12.0 Release notes (2017-9-14)

Enhancements

  • Improve performance of the RPC worker for chrome debugging.
  • Added Progress API realm.syncSession.addProgressNotification and realm.syncSession.removeProgressNotification
  • Added additional parameter for Realm.open and Realm.openAsync for download progress notifications
  • Added Realm.deleteFile for deleting a Realm (#363).
  • Added Realm.deleteModel for deleting a Realm model in a migration (#573).
  • Added support for in-memory Realms.
  • Realm.Sync.User.login, Realm.Sync.User.register, and Realm.Sync.User.registerWithProvider return Promises and deprecate the callback style for them. Callbacks will continue to work for backward compatibility.

Bug fixes

  • Adding missing TypeScript definitions; Permissions (#1283), setFeatureToken(), and instructions (#1298).
  • Removed loginWithProvider from TypeScript definition files. This API never existed and was incorrectly added.

1.11.1 Release notes (2017-9-1)

Breaking changes

  • None

Enhancements

  • None

Bug fixes

  • Fix accessToken.

1.11.0 Release notes (2017-8-31)

Breaking changes

  • None

Enhancements

  • Added methods Realm.beginTransaction(), Realm.commitTransaction(), Realm.cancelTransaction() to manually control write transactions.
  • Added property Realm.isInTransaction which indicates if write transaction is in progress.
  • Added shouldCompactOnLaunch to configuration (#507).
  • Added Realm.compact() for manually compacting Realm files.
  • Added various methods for permission management (#1204).

Bug fixes

  • None

1.10.3 Release notes (2017-8-16)

Breaking changes

  • setAccessToken renamed to setFeatureToken. setAccessToken still works for now.

Enhancements

  • None

Bug fixes

  • None

1.10.2 Release notes (2017-8-16)

Breaking changes

  • None

Enhancements

  • None

Bug fixes

  • RN 0.47 no longer breaks for Android due to a superfluous @override annotation

1.10.1 Release notes (2017-8-2)

Breaking changes

  • None

Enhancements

  • None

Bug fixes

  • Realm.openAsync will no longer open the realm if a sync error has occured. Previously this resulted in the callback being invoked twice - once with an error and a second time - with the synchronously opened Realm.
  • Database adapters will no longer process the sync history of realm files that are not requested by the adapter configuration. Previously this would lead to crashes for realm files that contained schemas that don't define primary keys.

=======

  • None

1.10.0 Release notes (2017-7-12)

Breaking changes

  • None

Enhancements

  • Added Realm.prototype.empty which is a property that indicates whether or not the realm has any objects in it.

Bug fixes

  • Fix crash on Node.js when a listener callback throws an error. The error will now be forwarded to Node's fatal error handling facilities. This means better error reporting, the ability to debug such errors in a Node.js debugger, and proper invocation of the uncaughtError event on the process object.

1.9.0 Release notes (2017-7-10)

Breaking changes

  • None

Enhancements

  • Add support for iOS React Native 0.46. Thanks @ovr!
  • Add support for Linking Objects (AKA Backlinks).
  • Add support for retrieving user account information.
  • Add optional server parameter to Realm.Sync.User.adminUser Specifying the server address the same way as in Realm.Sync.User.login allows the admin token user to use the permission realm APIs.

Bug fixes

  • Fix regression where setting a Results or List object to a list property would throw.

1.8.3 Release notes (2017-6-27)

Breaking changes

  • None

Enhancements

  • None

Bug fixes

  • Fix admin users not appearing in Realm.Sync.User.all, which broke getting an access token for them.

1.8.2 Release notes (2017-6-26)

Breaking changes

  • None

Enhancements

  • Added indexOf() method on Realm.Results and Realm.List that returns the index of the object in the collection.

Bug fixes

  • Fix opening synced realms with a logged-in admin user.

1.8.1 Release notes (2017-6-20)

Breaking changes

  • None

Enhancements

  • Accessing Realm.Sync when sync is not enabled will no longer throw, but return undefined.
  • Better error messages when creating objects.
  • Added bundled TypeScript declarations of the Realm API.
  • Added objectSchema() method on Realm.Object that returns the schema for the object.

Bug fixes

  • Fix Realm.Sync.User.prototype.isAdmin returning false for logged-in admin users.

1.8.0 Release notes (2017-6-15)

Breaking changes

  • None

Enhancements

  • Updated core and sync dependencies
  • Unified packaging

Bug fixes

  • Fix crash when used with the React Native C++ bridge
  • Fix Realm.open and Realm.asyncOpen missing when in the React Native debugger

1.3.1 Release notes (2017-5-18)

Breaking changes

  • None

Enhancements

  • Add Realm open async API support.

Bug fixes

  • None

1.3.0 Release notes (2017-5-11)

Breaking changes

  • Files written by Realm this version cannot be read by earlier versions of Realm. Old files can still be opened and files open in read-only mode will not be modified.
  • The setVerifyServersSslCertificate method has been deleted
  • The SyncConfig now gets two more optional parameters, validate_ssl and ssl_trust_certificate_path.

Enhancements

  • None

Bug fixes

  • None

1.2.0 Release notes (2017-3-28)

Breaking changes

  • This version is not compatible with versions of the Realm Object Server lower than 1.3.0.

Enhancements

  • None.

Bug fixes

  • Fixed bug where opening synced realms with an encryption key would fail.

1.1.1 Release notes (2017-3-9)

Breaking changes

  • None

Enhancements

  • Add support for Node.js on Windows (#863).

Bug fixes

  • Fixed an error when installing Realm React Native module on Windows (#799).

Credits

  • Thanks to David Howell (@dbhowell) for adding a fix to Windows install (#849).

1.0.2 Release notes (2017-2-7)

Breaking changes

  • None

Enhancements

  • None

Bug fixes

  • Proactively refresh sync user tokens to avoid a reconnect delay (#840)

1.0.1 Release notes (2017-2-2)

Breaking changes

  • None

Enhancements

  • None

Bug fixes

  • Fix crash when the sync user token expires (#839)

1.0.0 Release notes (2017-2-2)

Breaking changes

  • None

Enhancements

  • Add the Management Realm accessor on the User class, and its schema (#779)

Bug fixes

  • None

0.15.4 Release notes (2017-1-11)

Breaking changes

  • None

Enhancements

  • None

Bug fixes

  • Always download Node binaries except on Windows, for unit testing (#789)

0.15.3 Release notes (2017-1-10)

Breaking changes

  • None

Enhancements

  • More specific error message when setting a property to a wrong type (#730)

Bug fixes

  • Fix chrome debugging on React Native 0.39 and up (#766)

0.15.2 Release notes (2016-12-29)

Breaking changes

  • None

Enhancements

  • More explicit handling of missing constructor (#742)

Bugfixes

  • Realm open on another thread (#473)
  • symbol() variable not found (#761)

0.15.1 Release notes (2016-11-22)

Breaking changes

  • None

Enhancements

  • None

Bugfixes

  • Fix compile error for collection notification in chrome debug mode

0.15.0 Release notes (2016-11-15)

Breaking changes

  • None

Enhancements

  • Node.js support
  • Support for fine grained notifications on List and Results objects
  • Updated test and examples for react-natve v0.37.0

Bugfixes

  • None

0.14.3 Release notes (2016-8-8)

Breaking changes

  • None

Enhancements

  • None

Bugfixes

  • Support for react-native v0.31.0

0.14.2 Release notes (2016-8-3)

Breaking changes

  • Deprecate Realm.Types. Please specify the type name as lowercase string instead.

Enhancements

  • None

Bugfixes

  • None

0.14.2 Release notes (2016-7-11)

Breaking changes

  • Please use rnpm 1.9.0 or later to link your project. Older versions are no longer supported.
  • ReactNative versions older than v0.14.0 are no longer supported

Enhancements

  • Support for ReactNative versions v0.28.0+
  • Added support for debugging in Visual Studio Code.

Bugfixes

  • None

0.14.1 Release notes (2016-6-28)

Breaking changes

  • None

Enhancements

  • None

Bugfixes

  • Fix linker error when building for minimum target version of iOS 7.
  • Fix for failure in strip command when building an archive.

0.14.0 Release notes (2016-6-22)

Breaking changes

  • None

Enhancements

  • Added isValid() method to List and Results to check for deleted or invalidated objects
  • Added objectForPrimaryKey(type, key) method to Realm

Bugfixes

  • Fix for crash when setting object properties to objects from other Realms
  • Fix for exception sometimes thrown when reloading in Chrome debug mode

0.13.2 Release notes (2016-5-26)

Breaking changes

  • None

Enhancements

  • None

Bugfixes

  • Fix for crash when updating Realms with optional date properties to the new file format

0.13.1 Release notes (2016-5-24)

Breaking changes

  • None

Enhancements

  • None

Bugfixes

  • Fix for crash when inserting dates from before the epoch
  • Fix for crash when using collection snapshot after realm.deleteAll()

0.13.0 Release notes (2016-5-19)

Breaking changes

  • With this release we have switched over to a new cross platform compatible date format. This change will only require action from users who are using both the JS and Cocoa or Android bindings simultaneously and accessing Realm files from both bindings. In these cases you need to open the Realm file with the latest version of the iOS or Android bindings before accessing the Realm from JS to prevent an unnecessary conversion.

Enhancements

  • None

Bugfixes

  • Date properties are now stored in a format compatible with the Realm Browser and other bindings.
  • Fix for using class MyObject extends Realm.Object in a React Native project.
  • Fix a memory leak caused by constructing a Realm instance of an already opened Realm.
  • Fix for better supporting hot module reloading.
  • Fix for some warnings when using ListView with React Native 0.25+
  • Fix for queries that use a keypath starting with "not".

0.12.0 Release notes (2016-5-4)

Breaking changes

  • None

Enhancements

  • Support for queries comparing optional properties to null
  • object.isValid() has been added to enable checking if an object has been deleted
    • Note: Custom object classes can extend Realm.Object to inherit this method
  • Support opening a Realm as read-only with the readOnly configuration option
  • Support for providing a custom migration function (please see the docs for details)
  • Added path, readOnly, schema, and schemaVersion properties to Realm instances
  • Optional and list properties are no longer required when creating objects

Bugfixes

  • When accessing an empty Results undefined is returned rather than throwing an exception
  • Accessing a deleted object throws a JS exception rather than crashing
  • Accessing an invalidated Results snapshot throws a JS exception rather than crashing
  • Fix for error message when specifying properties with invalid object types
  • Fix memory leak when reloading an app in debug mode
  • Setting non-persisted properties now works as expected

0.11.1 Release notes (2016-3-29)

Bugfixes

  • Fix for using Android Studio to build app using Realm
  • Fix for sharing Realm between JS and Objective-C/Swift

0.11.0 Release notes (2016-3-24)

Breaking changes

  • Realm for React Native is now packaged as a static library for iOS
    • Remove the reference to RealmJS.xcodeproj from your Xcode project (under the Libraries group)
    • Make sure rnpm is installed and up-to-date: npm install -g rnpm
    • Run rnpm link realm from your app's root directory

Enhancements

  • Support for encrypted Realms
  • List and Results now inherit from Realm.Collection
  • List and Results is now iterable (e.g. supports for...of loops)
  • Add common Array methods to List and Results
  • Accept constructor in create() and objects() methods
  • Support relative paths when opening Realms
  • Support case insensitive queries by adding [c] after operators
  • Support for indexed bool, string, and int properties
  • Added Realm.schemaVersion method, which supports unopened Realms

Bugfixes

  • Fix for crash on Android when initializing the Realm module
  • Fix for using Chrome debug mode from a device
  • Fix for List splice method not accepting a single argument
  • Don't download or unpack core libraries unnecessarily

0.10.0 Release notes (2016-2-22)

Enhancements

  • Initial Release