Commit Graph

397 Commits

Author SHA1 Message Date
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
Kenneth Geisshirt bf7ac66d97 [2.1.1] Bump version 2017-12-15 17:33:45 +01:00
Kenneth Geisshirt 5ed9eba0a2
Updating to Realm Sync 2.1.10 (#1573) 2017-12-15 17:25:42 +01:00
Kenneth Geisshirt d84e1f8c65 [2.1.0] Bump version 2017-12-14 13:36:18 +01: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
Kenneth Geisshirt 517c165c12 [2.0.13] Bump version 2017-12-08 10:57:55 +01:00
Yavor Georgiev 23f965060e
Implement implicit property conversion for date and binary (#1557)
* Implement implicit property conversion for date and binary

Closes #1542
Closes #1551

* fix include

* changelog
2017-12-07 13:47:20 +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
Kenneth Geisshirt 7d6817971d [2.0.12] Bump version 2017-12-01 13:03:22 +01:00
Kenneth Geisshirt 28f9e027b5
Fixing unit tests (discovered on Android). (#1523)
* Fixing unit tests (discovered on Android).
2017-12-01 13:00:02 +01:00
Brian Munkholm fada575aaf
Update CHANGELOG.md 2017-11-30 22:38:57 +01:00
Kenneth Geisshirt 5dac78a97a Upgrading to Realm Sync v2.1.8 2017-11-30 14:51:17 +01:00
Kenneth Geisshirt 93f93de448 localeconv() doesn't exist on Android API < 21. 2017-11-24 15:06:53 +01:00
Kenneth Geisshirt fc6d62c68e [2.0.11] Bump version 2017-11-23 17:54:11 +01:00
Kenneth Geisshirt 3963ffa3db Updating to Realm Sync 2.1.7. 2017-11-23 17:21:03 +01:00
blagoev 8e4ee90424 [2.0.10] Bump version 2017-11-21 11:26:07 +02:00
blagoev 9eb72d531a fix changelog.md 2017-11-21 10:07:13 +02:00
Brian Munkholm 5cc71e8dfe
Update CHANGELOG.md 2017-11-21 08:47:27 +01:00
blagoev 2dce326023 change log entry 2017-11-21 09:04:36 +02:00
Brian Munkholm 1abc668885
Update CHANGELOG.md 2017-11-20 22:12:18 +01:00
Kenneth Geisshirt 70e87b5856 [2.0.9] Bump version 2017-11-20 16:59:15 +01:00
Kenneth Geisshirt 60af2104a3 Making JSON library compile on Android 2017-11-20 13:55:39 +01:00
Kenneth Geisshirt 493ef7dc71 [2.0.8] Bump version 2017-11-17 21:28:15 +01:00
Kenneth Geisshirt 1e701cada2 Update to sync 2.1.6 2017-11-17 15:51:28 +01:00
Kenneth Geisshirt 64f0b29326 Updating change log 2017-11-17 14:56:03 +01:00
blagoev 92273843e5 [2.0.7] Bump version (1) 2017-11-15 21:51:10 +02:00
blagoev e728439e9c [2.0.7] Bump version 2017-11-15 15:05:25 +02:00
Kenneth Geisshirt 9ccf305a99
Updated to Realm Sync 2.1.4 (#1490) 2017-11-14 15:04:30 +01:00
blagoev 255873ab9d add changelog entry 2017-11-14 11:11:28 +02:00
Kenneth Geisshirt c532c139d9 [2.0.6] Bump version 2017-11-10 14:58:05 +01:00
Kenneth Geisshirt 0ca292c133
Enable object Ids on RN Android (#1481)
* Using C function instead of C++ function since Android NDK r10e doesn't support std::stoull().
* Update CHANGELOG.md
2017-11-10 10:05:06 +01:00
Thomas Goyne d567cd2dd9 Update object store 2017-11-09 15:54:24 -08:00
Kenneth Geisshirt 5a8d217dbd [2.0.5] Bump version 2017-11-09 08:18:30 +01:00
Kenneth Geisshirt 687611fb29
Upgrading to Realm Sync 2.1.2. (#1479) 2017-11-09 08:15:17 +01: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 837e8d90a3 Bump version 2017-11-07 14:43:38 +01:00
Kenneth Geisshirt 50ebae917b
Updating to sync 2.1.1 (#1474) 2017-11-07 14:39:54 +01:00
Kenneth Geisshirt 0ca53b2142 [2.0.3] Bump version 2017-11-06 13:54:38 +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
Kenneth Geisshirt d858c4e87a Updating documentation of realmAtPath 2017-11-01 14:44:40 +01:00
Kenneth Geisshirt 973959174d Updating change log for for PRs. 2017-11-01 10:27:54 +01:00
Thomas Goyne 8c6f16d770 [2.0.2] Bump version 2017-10-30 13:06:01 -07:00
Thomas Goyne 80089404ac
Update object store (#1442) 2017-10-30 11:20:52 -07:00
Kenneth Geisshirt 3cac5ae451 [2.0.1] Bump version 2017-10-23 13:49:54 +02:00
Kenneth Geisshirt 7aee9a01c0 Upgrading to Realm Sync 2.1.0. (#1426) 2017-10-23 13:45:42 +02:00
blagoev bbcf5195c2 [2.0.0] Bump version (1) 2017-10-17 01:27:39 +03:00
blagoev 32a53cd3e5 [2.0.0] Bump version 2017-10-16 22:51:30 +03:00
Brian Munkholm 546387cc36 Update CHANGELOG.md 2017-10-16 16:16:55 +02:00
Brian Munkholm 155bcd674d Update CHANGELOG.md 2017-10-16 15:39:17 +02:00
blagoev 3857a19c74 Consolidate 2.0 changes 2017-10-16 16:26:46 +03:00
blagoev de6cec442e intermediate 2.0 changes consolidation 2017-10-16 16:20:47 +03:00
blagoev 863e80643b Merge branch 'master' into fix-partial-sync-config-ts-definition 2017-10-16 15:17:19 +03:00
blagoev 53267f99a2 Add changeling entry 2017-10-16 15:16:16 +03:00
Kenneth Geisshirt a99e433d0a Merge branch 'master' of github.com:realm/realm-js into kneth/bugfix/invalid-token 2017-10-13 18:26:30 +02:00
Kenneth Geisshirt 068dc95606 [2.0.0-rc22] Bump version 2017-10-13 14:44:22 +02:00
Brian Munkholm 6b635ce8d4 Update to latest Sync 2.0.2 and ROS rc.5 (#1411)
* Update to latest Sync 2.0.2 and ROS rc.5
* Update CHANGELOG.md
2017-10-13 14:08:25 +02:00
Kenneth Geisshirt ef4057806c [2.0.0-rc21] Bump version 2017-10-12 20:15:44 +02:00
Kenneth Geisshirt 16957f62eb adminUser() throws an exception if token or url is invalid 2017-10-12 16:30:31 +02:00
Mark Rowe c36c58ec81 Add the ability to override the server that's used by a given sync session
This is for internal use by ROS as part of its support for failover. If
the session is active, we ask it to disconnect then reconnect to the new
server. We also stash away the overridden server's details so it can be
used again we later disconnect and reconnect. If the session is not yet
active, we simply stash away the details to be used when establishing
the connection.
2017-10-11 19:53:58 -07:00
Kenneth Geisshirt 00c0bc33d0 [2.0.0-rc20] Bump version 2017-10-11 22:14:46 +02:00
Kenneth Geisshirt 270604a347 RN Android uses OpenSSL package (#1405) 2017-10-11 21:58:27 +02:00
Kenneth Geisshirt 2e08da3cb8 Merge branch 'master' of github.com:realm/realm-js into kneth/sync-2.0.0-rc28 2017-10-11 18:59:58 +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
Kenneth Geisshirt db1bb5bddd Upgrading to Realm Sync 2.0.0-rc28 and Realm Object Server 2.0.0-rc.4 2017-10-11 18:56:40 +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
Ashwin Phatak 4bcef8baff Add support for bulk updates (#808) 2017-10-10 16:25:47 +05:30
blagoev 99bfc7ef2c [2.0.0-rc19] Bump version 2017-10-07 00:21:03 +03:00
Kenneth Geisshirt 487b6a9552 Merge branch '2.0.x' of github.com:realm/realm-js into kneth/merge-2.0.x-into-master 2017-10-05 16:19:58 +02:00
blagoev b81a387990 1.13.0 Bump version 2017-10-05 13:29:40 +03:00
Kenneth Geisshirt 1f9acb7dae [2.0.0-rc18] Bump version 2017-10-04 12:12:31 +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
blagoev 0d22e329e4 Deprecate node 4 and 5 2017-10-03 10:02:17 +03:00
Kenneth Geisshirt 2e67a7fed3 [2.0.0-rc17] Bump version 2017-10-03 00:17:48 +02:00
Kenneth Geisshirt 67a3fa98c9 Upgrading to sync 2.0.0-rc27 (#1374) 2017-10-03 00:15:02 +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
Kenneth Geisshirt 7c5572b451 Removing deprecated setAccessToken(). (#1371) 2017-10-02 21:03:29 +02:00
Kenneth Geisshirt feb59ae859 Partial sync (#1361) 2017-10-02 20:29:36 +02:00
Kenneth Geisshirt fe121ea27b Client reset (#1341) 2017-10-02 19:44:24 +02:00
blagoev f4d32eba06 Pr review 2017-10-02 17:10:58 +03:00
Ashwin Phatak 670f7507f2 Add 'deleteRealmIfMigrationNeeded' to configuration to delete a Realm if migration needed (#502) 2017-10-02 17:22:42 +05:30
blagoev 6349d22f55 Merge branch '2.0.x' into kneth/v1_v2-upgrade 2017-09-30 17:21:24 +03:00
Kenneth Geisshirt e109e32ac4 Merge branch 'master' of github.com:realm/realm-js into kneth/master-to-2.0.x 2017-09-30 09:55:14 +02:00
Kenneth Geisshirt 9b6569716e [2.0.0-rc16] Bump version 2017-09-29 23:33:27 +02:00
Kenneth Geisshirt 477ead57c9 Updating core (4.0.1) and sync (2.0.0-rc26) (#1362) 2017-09-29 23:29:40 +02:00
Ashwin Phatak 199210eb68 Add support for aggregates on collections (#807) (#1350) 2017-09-29 16:53:37 +05:30
blagoev 8e984feedb Merge branch '2.0.x' into kneth/v1_v2-upgrade 2017-09-29 12:42:27 +03:00
Kenneth Geisshirt 04cf15a36e [2.0.0-rc14] Bump version 2017-09-29 00:33:51 +02:00
Kenneth Geisshirt 51a4f524a9 Updating to core 4.0.0 and sync 2.0.0-rc25 (#1360)
* Updating to core 4.0.0 and sync 2.0.0-rc25
* Adding file to React Native projects
* Move sync_config.cpp to the correct target in the Xcode project.
2017-09-29 00:31:22 +02:00
blagoev 3bf61963e8 Merge branch '2.0.x' into kneth/v1_v2-upgrade 2017-09-28 10:38:09 +03:00
blagoev 37105e7f00 Merge branch '2.0.x' into kneth/lazy-enable-sync 2017-09-28 10:29:37 +03:00
Kenneth Geisshirt 77e05b474a [2.0.0-rc13] Bump version 2017-09-28 09:14:48 +02:00
Kenneth Geisshirt 5616fb6f50 [2.0.0-rc12] Bump version 2017-09-27 22:58:50 +02:00
Mark Rowe 666d606914 Specify a timeout when making the HTTP request to refresh access tokens. (#1356)
* Specify a timeout when making the HTTP request to refresh access tokens.

Without the timeout, some requests are silently never made.

Fixes realm/realm-js-private#338.

* Add a changelog entry.
2017-09-27 22:52:14 +02:00
Kenneth Geisshirt 2caa14abf2 Don't expose an initializer function. 2017-09-27 20:16:44 +02:00
Kenneth Geisshirt fba3b3fc38 Merge branch '2.0.x' of github.com:realm/realm-js into kneth/v1_v2-upgrade 2017-09-27 18:10:39 +02:00
Kenneth Geisshirt f94f351bfb Adding documentation, TS definition and change log. 2017-09-27 17:53:09 +02:00
Kenneth Geisshirt 2efa71ebfb [2.0.0-rc11] Bump version 2017-09-26 11:49:04 +02:00
Kenneth Geisshirt b676201e03 Alignment of permission schemas with ROS 2 (#1344)
* Alignment of permission schemas with ROS 2
2017-09-26 11:23:36 +02:00
Ashwin Phatak e1b70c2f57 Workaround for RN >= 0.49 metro-bundler check for single string literal argument to require() (#1342) 2017-09-26 10:00:31 +05:30
Thomas Goyne 2298609ce5 Merge remote-tracking branch 'origin/master' into tg/merge-master-to-2.0.x
* origin/master: (23 commits)
  Fix api doc error
  fix progress notifications registrations
  Fix typo in Github issue template
  Fix port conflict between RN >= 0.48 and RPC server (#1294)
  Disable testAddListener when running in chrome
  Ensure RN has an event loop running for async tests
  Make permission tests better handle server delays
  Fix race conditions in testAddListener
  Separate build and test steps in xcode to reduce chance of hitting "Early unexpected exit"
  Ignore errors when sourcing nvm.sh
  Don't forward arguments to nvh.sh
  Skip sourcing nvm.sh if it's already available
  Fix some shellcheck warnings
  Ensure node 6.5.0 is installed on CI
  Build realm from source for each test-runner test
  Improve error reporting for incorrect argument counts for Realm methods
  Use the same error messages in the RPC code as the regular code
  Silence an unused variable warning when building with sync disabled
  Check the exception message in all Realm tests which assert an exception is thrown
  Don't discard the actual error message in validated_get_X
  ...
2017-09-25 09:40:56 -07:00
Kenneth Geisshirt 49392bd4c6 Merge branch '2.0.x' of github.com:realm/realm-js into kneth/v1_v2-upgrade 2017-09-25 16:04:43 +02:00
Morten Krogh fbe619c255 Changed ssl_verify_callback to open_ssl_verify_callback.
Changed the preverifyOk to acceptedByOpenSSL and made it a Boolean.
Changed jsdoc formatting.
2017-09-25 11:05:16 +02:00
Kenneth Geisshirt a717b291e8 Merge branch '2.0.x' of github.com:realm/realm-js into kneth/v1_v2-upgrade 2017-09-23 00:18:42 +02:00
Morten Krogh c1e198cbab Documentation and comments for ssl_verify_callback. 2017-09-22 11:21:36 +02:00
Kenneth Geisshirt b0c1db8c45 [2.0.0-rc10] Bump version 2017-09-21 22:56:44 +02:00
Thomas Goyne 086f31c07f Use the objectstore keypath sorting functionality
Adds support for sorting on values over links, reduces the amount of code in
the binding, and is required for sorting non-object lists.
2017-09-21 10:41:19 -07:00
Kenneth Geisshirt d9e50fc41d better name for test 2017-09-20 14:53:28 +02:00
Ashwin Phatak 17759c5ce9 Fix port conflict between RN >= 0.48 and RPC server (#1294) 2017-09-20 13:05:32 +05:30
Kenneth Geisshirt a6bbaeb580 [2.0.0-rc9] Bump version 2017-09-19 08:25:11 +02:00
Kenneth Geisshirt 183f051bb1 v1 -> v2 upgrade path 2017-09-18 17:44:17 +02:00
Kenneth Geisshirt eeb78d8e1b Merge branch 'master' of github.com:realm/realm-js into 2.0.x 2017-09-18 09:46:36 +02:00
Kenneth Geisshirt e18f54594f [1.12.0] Bump verion 2017-09-14 11:07:47 +02:00
astigsen 208aa8ee46 Added support for in-memory realms (#1304)
* Added support for in-memory realms
2017-09-13 20:42:23 +02:00
blagoev 064b487c07 Merge branch 'master' into blagoev/promise3 2017-09-13 14:27:04 +03:00
Kenneth Geisshirt 6444f3fa6f Adding missing instructions to TypeScript definitions (#1301) 2017-09-13 09:21:26 +02:00
blagoev a51ea72151 Fix changelog.md 2017-09-12 20:23:49 +03:00
Maximilian Alexander 1e26717d3f Removing duplicate for changelog 2017-09-12 20:18:54 +03:00
Maximilian Alexander 78515e3b48 adding promisified apis 2017-09-12 20:10:52 +03:00
Kenneth Geisshirt 12a8cd5398 Adding missing TypeScript declaration of setFeatureToken (#1295)
* Adding missing TypeScript declaration of setFeatureToken
2017-09-12 14:28:16 +02:00
Ashwin Phatak 532f517ded Add Realm.deleteModel API (#573) 2017-09-12 14:45:36 +05:30
blagoev 2b6dc8fc14 fix API naming 2017-09-11 15:52:39 +03:00
blagoev 15af834824 Update CHANGELOG.MD
Added entries for progress api
2017-09-11 15:52:39 +03:00
Kenneth Geisshirt 6e394448b6 [2.0.0-rc6] Bump version 2017-09-08 14:59:45 +02:00
Kenneth Geisshirt fa0016ba6b Merge branch 'master' of github.com:realm/realm-js into 2.0.x 2017-09-08 14:54:56 +02:00
Kenneth Geisshirt 38bceddfb1 Add missing TypeScript declaration (#1285)
* Adding missing TypeScript declaration
2017-09-08 10:19:13 +02:00
Ashwin Phatak 119cd79e5d Add Realm.deleteFile API (#363) 2017-09-07 10:12:59 +05:30
Thomas Goyne ca9263be4f Add changelog entry 2017-09-01 10:33:28 -07:00
Kenneth Geisshirt 806146b07c [1.11.1] Bump version 2017-09-01 13:07:37 +02:00
kristiandupont de94dc0e16 [1.11.0] Bump version 2017-08-31 12:52:36 +02:00
Kristian Dupont 402bf48f88 Permissions api (#1244)
* Add basic permissions skeleton

* ...

* Update permissions api

* Wait for server to process management realm, add offer api

* Fix test of apply and get permissions, add offer test

* Accept permission offer

* Accept permission offer test

* Invalidate permission offer

* Add basic docs (still need some links etc)

* Refactor tests

* Only run permission tests where sync is enabled

* Use legal syntax for user name generation

* Add changelog entry

* Streamline permission tests

* Fix casing for access level names etc.

* Add basic definitions to index.d.ts

* Use settimeout for resolving promise from listener

* Complete typescript defs

* Improve docs

* Allow 'any' as default recipient in getGrantedPermissions

* Fix getSpecialPurposeRealm on iOS

* Response to PR comments

* Respond to PR comments

* Fix offer description

* Skip permission tests in chrome debugger :-/
2017-08-29 15:23:22 +02:00
Kenneth Geisshirt 85fb49b354 Adding methods and property to manually control write transactions (#1216)
* Adding methods and property to manually control write transactions
2017-08-21 17:48:53 +02:00
Kenneth Geisshirt bd28c05936 Add shouldCompactOnLaunch option to configuration (#1209)
* Adding shouldCompactOnLaunch option to configuration
* Adding Realm.compact()
2017-08-18 14:22:29 +02:00
kristiandupont 88dbbb4e50 [2.0.0-rc5] Bump version 2017-08-17 15:25:40 +02:00
Yavor Georgiev 614c699385 [2.0.0-rc4] Bump version 2017-08-17 13:21:34 +02:00
Yavor Georgiev 1be5340129 [2.0.0-rc3] Bump version 2017-08-17 13:20:41 +02:00
kristiandupont 0db8fac3e5 [1.10.3] Version bump 2017-08-17 11:35:13 +02:00
Kristian Dupont c24cc16ebf Fix a few publish issues (#1215)
* Stop trying to kill the server twice after testing

* Fix test targets to run before publishing

* ...

* Remove electron runner from publish for now

* Update changelog
2017-08-16 11:11:28 +02:00
kristiandupont 796ebe2533 [1.10.2] Bump version 2017-08-15 15:12:18 +02:00
Yavor Georgiev b71eec6b98
[1.10.1] Bump version 2017-08-02 14:07:16 +02:00
Nikola Irinchev 081c3e5224
Add changelog 2017-07-18 00:22:59 +03:00
Yavor Georgiev 22a086859f
[1.10.0] Bump version 2017-07-12 16:45:35 +02:00
Yavor Georgiev 5dd9264225
Add `Realm.empty` 2017-07-12 13:02:21 +02:00
Yavor Georgiev fe756bdc86
Rethrow callback errors as fatal Node.js errors
Instead of rethrowing the JavaScript error emitted from a callback function, we should instead pass it to `node::FatalException`.

Callbacks are employed when there is no other JavaScript frame on the stack prior so rethrowing the JS error as a C++ exception is not going to propagate the error back to JavaScript. `node::FatalException` will raise the `uncaughtError` event on the `process` object , print the error and stacktrace, and alert the debugger is there is one attached. This would make our async callbacks behave consistently with Node’s own async callbacks such as `setTimeout` when encountering an error.
2017-07-11 17:47:09 +02:00
Yavor Georgiev 7b9c4eee46
[1.9.0] Bump version 2017-07-10 17:26:44 +02:00
Yavor Georgiev 1ba9b434b4 Add a new optional server parameter to User.adminUser (#1111)
* add a new optional server parameter to User.adminUser

This enables `User.openManagementRealm()` for admin token users.

* changelog

* API docs
2017-07-10 15:04:55 +02:00
Mark Rowe 89149c0a75 Make it possible to assign a List or Results to a List property once more (#1126)
* 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
2017-07-10 13:45:49 +02:00
blagoev 516c39deaf Docs for retrieveAccount method (#1127)
* Docs for retrieveAccount method

* fix setTimeout call
2017-07-08 19:30:25 +02:00
Marius Rackwitz 9e0a9a3bd3 Add support for accessing linking objects / backlinks (#1101)
* 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
2017-06-29 11:59:10 +02:00
Yavor Georgiev 1adabdd73e
[1.8.3] Bump version 2017-06-27 20:38:39 +02:00
Yavor Georgiev 7ab3aff82f 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.
2017-06-27 20:32:34 +02:00
Yavor Georgiev e6818d693d
[1.8.2] Bump version 2017-06-26 13:49:50 +02:00
astigsen db4e184524 Added method to find index of object in collections (#1094)
* Added method to find index of object in collections

* rework as the indexOf method
2017-06-26 13:43:49 +02:00
Yavor Georgiev beda604425 Fix refreshing the access token of a logged-in admin user (#1097)
Fixes #1091
2017-06-26 12:03:48 +02:00
Yavor Georgiev feba70333b
[1.8.1] Bump version 2017-06-20 16:27:05 +02:00
Yavor Georgiev 7086ed745f Do not throw when the Sync constructor isn’t there (#1086)
* Do not throw when the Sync constructor isn’t there

with unified packaging it’s there all the time now

Closes #1084
Fixes #996

* Fix running the sync tests when Sync is disabled
2017-06-20 15:40:54 +02:00
Mark Rowe 30e58022cf Include property names in type error exceptions thrown by Realm.create (#1069)
* 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
2017-06-20 14:40:01 +02:00
Maximilian Alexander 775bd8e2ff adding ts and package.json typings (#1076)
* adding ts and package.json typings

* remove DefinitelyTyped needed comments, we are hosting this ourselves

* adding licensing comments

* Added initial contribution support

Thanks @akim95

* changing year

* adding parameters

* Expand on collection typings

* update the windows pre-gyp script (#1072)

* Extract admin status from the refresh token (#1078)

* Extract admin status from the refresh token

Fixes #1063

* wire up rpc

* Make sure all callbacks enqueue on the Node.js event loop (#1079)

Fixes #1077

* Use an uncached realm instance for _waitForDownload (#1083)

Fixes #1061

* Add objectSchema method to Realm Object (#1055)

* Add objectSchema property to Realm Object

* fix

* fixes

* move typings under lib/

* changelog
2017-06-20 13:09:01 +02:00
Yavor Georgiev 3e80683ad8 Extract admin status from the refresh token (#1078)
* Extract admin status from the refresh token

Fixes #1063

* wire up rpc
2017-06-17 16:59:15 +02:00
Yavor Georgiev 0f5d6a1df4
[1.8.0] Bump version 2017-06-15 16:27:43 +02:00
Yavor Georgiev 237e1ba158 Support the new React Native C++ bridge (#1065)
* Support the new React Native C++ bridge

Fixes #1049

* address code review comments

* handle the case when the websocket executor does not exist
2017-06-14 14:44:28 +02:00
kristiandupont 401a6043bf [1.3.1] Bump version 2017-05-18 13:13:28 +02:00
kristiandupont 1323a8d110 Fix changelog 2017-05-18 13:03:21 +02:00
blagoev be328accb4 Merge pull request #1021 from realm/download-api-3
Download API with fixes for windows build
2017-05-17 20:07:00 +03:00
blagoev 216484aede Initial download api support 2017-05-17 16:07:08 +03:00
blagoev 018afe6207 Revert "Download api (aka open async api)" 2017-05-17 15:12:30 +03:00
blagoev 8258e184f4 Merge pull request #1005 from realm/download-api
Download api (aka open async api)
2017-05-17 14:29:42 +03:00
kristiandupont a916958941 [1.3.0] Bump version 2017-05-11 14:34:52 +02:00
blagoev ef63a8829c Initial download api support 2017-05-07 02:26:14 +03:00
Radu Tutueanu f8a8a3ca80 Add a changelog entry 2017-05-05 13:53:20 +02:00
Radu Tutueanu 274661dde4 Use core 2.5.1 and sync 1.5.0 (#949)
* Use core 2.5.1 and sync 1.5.0

* Add changelog entry
2017-03-29 13:41:17 +02:00
Yavor Georgiev 2881cf5502
[1.2.0] Bump version 2017-03-28 14:49:58 +02:00
Yavor Georgiev 80818779ba Fix opening synced realm with an encryption key (#945) 2017-03-28 14:34:27 +02:00
Yavor Georgiev cfc330305b
[1.1.1] Bump version 2017-03-09 14:35:30 +01:00
Yavor Georgiev 72329865ec
[1.1.0] Bump version 2017-03-09 11:53:00 +01:00
Yavor Georgiev db8ebd9333 Node.js Win32 support (#864)
* 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
2017-03-07 23:24:30 +01:00
Nabil Hachicha 33c2f7cefc Nh/fixes 866 (#867) 2017-02-15 13:56:21 +01:00
kristiandupont 0840c136b9 [1.0.2] Bump version 2017-02-07 13:01:16 +01:00
Yavor Georgiev bb0dc575c9 Implement proactive access token refresh (#842)
Closes #840
2017-02-03 16:40:13 +01:00
Yavor Georgiev f22efa7117
[1.0.1] Bump version 2017-02-02 15:50:17 +01:00
Yavor Georgiev de3c3e6788
[1.0.0] Bump version 2017-02-02 13:51:53 +01:00
Yavor Georgiev 408f5588f8 Add Permissions models and User Management Realm API (#824)
* Add Permissions models and User Management Realm API

* docs and changelog

* fix bad merge

* add test

* fix jsdoc annotation

* rename permissions to management schema
2017-01-31 22:56:09 +01:00
Kristian Dupont 35c21c203f [0.15.4] Bump version 2017-01-11 12:53:01 +01:00
Kristian Dupont f9f61aeb36 [0.15.3] Bump version 2017-01-10 16:21:11 +01:00
Kristian Dupont f0fd0d4308 [0.15.2] Bump version 2016-12-29 10:35:07 +01:00
Ari Lazier f44f31e721 [0.15.1-rc] Bump version 2016-11-22 16:42:07 -08:00
Ari Lazier 038a025b81 [0.15.0] Bump version 2016-11-15 11:10:07 -08:00
Ari Lazier db524a56a2 [0.15.0-rc] Bump version 2016-11-15 05:42:25 -08:00
Ari Lazier ee3b59c829 add empty changelog section 2016-08-15 11:13:28 -07:00
Ari Lazier 3e55944818 [0.14.3-rc] Bump version 2016-08-15 11:12:36 -07:00
Ari Lazier 712f4dd5cd [0.14.2] Bump version 2016-08-15 11:11:59 -07:00
Ari Lazier c361031e36 rebase fixes 2016-08-04 10:11:53 -07:00
Ari Lazier ad97836d19 [0.14.2] Bump version 2016-07-31 14:25:13 -07:00
Scott Kyle d303c7bea1 [0.14.0-rc] Bump version 2016-07-31 14:23:12 -07:00
Scott Kyle 502feab8be Fix for linker error when building for iOS 7
By default, React Native projects target a minimum of iOS 7, but our projects were set to iOS 8 because previously we used a dynamic framework.

When building for an iOS 7 minimum target version, the linker would complain about thread local variables not working on iOS 7. So it was necessary to add even more checks (iOS >= 8 or OS X >= 10.7) before using native thread local variables rather than our shim.

This also changes our projects to target iOS 7 so we can catch these issues quicker in the future.
2016-07-31 14:22:46 -07:00
Scott Kyle 717d6781a1 Add support for debugging in Visual Studio Code
Since Code runs in Node, rather than Chrome, we need to require the `sync-request` module. The global `__debug__` object was exposed by the vscode-react-native plugin v0.1.5 for us to be able to do that.

Resolves #374
2016-06-29 16:02:50 -07:00
Scott Kyle c026c198ea Merge tag 'v0.14.1'
* tag 'v0.14.1':
  [0.14.1] Bump version
  [0.14.0-rc] Bump version
  Disable "Strip Linked Product" on our static libs
  Fix for linker error when building for iOS 7
2016-06-28 17:32:48 -07:00
Scott Kyle 63adf8732e [0.14.0-rc] Bump version 2016-06-28 12:15:36 -07:00