Changelog

Version 2.15.11

2022-02-17

  • fix datasync: make the client automatically reconnect when the server shuts down the websocket because of ping timeout (WEBCOM-1270)

Version 2.15.10

2022-02-03

  • misc remove the dependency to the request external library in Node.js (WEBCOM-1208)

Version 2.15.9

2022-02-02

  • fix make the import of the Webcom library return directly the Webcom class (WEBCOM-1255)
  • fix simplify the external event management (online/offline) especially for the Android SDK wrapper (WEBCOM-1245)

Version 2.15.8

2022-01-31

  • fix update the build chain components (webpack 5)

Version 2.15.7

2022-01-24

  • misc update the build chain components (webpack, babel) and shrink a bit the generated JS library

Version 2.15.6

2022-01-18

  • feature datasync: prevent the subscription callbacks from being called with data from the local cache when the subscription is done while the websocket is being established (WEBCOM-1152)

Version 2.15.5

2022-01-12

  • fix datasync: make cancelled queries keep the sibling data within the local cache (WEBCOM-1227)

Version 2.15.4

2022-01-10

  • feature datasync: send the specified keep alive period (in the datasync service options) to the websocket endpoint (WEBCOM-947) and check its range (between 30s and 5m)

Version 2.15.3

2021-12-08

  • fix datasync: add a parameter to the Webcom#unsubscribe method to request that a revocation is notified, and make this method return the updated Subscription object (WEBCOM-1192)
  • fix datasync: prevent the notified data snapshots (sent to subscription callbacks) to include child nodes with null values (WEBCOM-1190)

Version 2.15.2

2021-10-04

  • fix datasync: make the DatasyncService#offlineData include the running transactions, which have not yet been sent to the back end (WEBCOM-712)

  • break remove the support for JSONP, all browsers must now provide the XMLHttpRequest class

  • misc improve the internal API to inject window, document, XMLHttpRequest, localStorage dependencies into the Webcom library

Version 2.15.1

2021-09-27

  • fix datasync: fix the Webcom#transaction method when called with a "server value" (WEBCOM-1122)
  • fix datasync: fix the OnDisconnect#set and OnDisconnect#update methods when called with "server values" (WEBCOM-1122)
  • fix datasync: make the Webcom#transaction method properly notify the subscriptions when the transaction value is acknowledged by the back end (WEBCOM-1124)
  • fix datasync: make the Webcom#transaction method report the value acknowledged by the back end at the end of the transaction to the completion callback function and keep this value within the local cache (WEBCOM-1124)
  • fix auth: no longer log sensible authentication data at INFO level when resuming state (WEBCOM-1125)

Version 2.15.0

2021-08-30

  • feature datasync: control the local data cache policy by the value returned by completion callbacks: the data watched by a completed subscription may either be forgotten, kept or kept and still watched in background (WEBCOM-670)
  • misc datasync: deprecate the Query#offPreservingOfflineData method, the local cache policy is now controlled by the return value of the completion callbacks
  • break datasync: subscriptions are no longer persisted (in DatasyncService#offlineData) so that they can no longer be restored at start (WEBCOM-679)

Version 2.14.2

2021-07-20

  • fix datasync: fix the Promise returned by the Query#get method when the DatasyncService.completeSubscriptionOnCancelation option is true

Version 2.14.1

2021-07-08

  • feature datasync: rename cancelCallback into completionCallback in subscription callbacks and call this completionCallback with null when its subscription is canceled by the app (WEBCOM-597)
  • fix datasync: when subscribing to an unknown data node (i.e. with no value in the local cache) while offline, return a not acknowledged value (WEBCOM-1070)
  • fix datasync: when a callback subscription is revoked by the back end, clean its related data from the cache, just as when the subscription is canceled by the app (WEBCOM-597)
  • misc auth: improve the security of the retrieval of the authentication result in case of an OAuth redirected call-flow, using a PKCE-like protocol (WEBCOM-999)
  • break auth: when signing in using OAuth, the access token has moved under the AuthenticationService.AuthenticationDetails#extra property and is no longer saved in the local storage (the app has to do so explicitly if needed) (WEBCOM-604)

Version 2.14.0

2021-04-29

  • feature datasync: replace the Query#once with the Query#get one, simpler to use
  • feature datasync: improve the child_ack events when the value of a child node results from updating its parent node (WEBCOM-982)
  • fix datasync: when called with n event types and a callback, Query#off now cancels n corresponding subscriptions instead of only one (WEBCOM-987)
  • fix datasync: when the WebSocket is disconnected (WEBCOM-988):
    • pass an error to the callback of pending non-idempotent operations (including "increment"),
    • as soon as a new WebSocket is established, replay the pending authentication and idempotent operations (including "put" and "merge")
  • fix datasync: remove all websocket-related timers when the websocket is disconnected (to avoid handle leaks in the javascript event-loop)
  • fix auth: in browser environments, make the resuming of OAuth2 session (at the end of the redirection flow) properly catch rejected promises that wrap the underlying REST request
  • misc improve the internal API to inject dependencies into the Webcom library
  • misc start a long-term task to shrink the code of the Webcom library

Version 2.13.1

2021-03-10

  • fix datasync: fix the transaction function, so that the passed onComplete callback is called even in case of failure

Version 2.13.0

2021-02-11

  • feature datasync: add the Webcom#increment method to increment atomically the value of a data node (WEBCOM-818)
  • fix datasync: fix the raise of "child_ack" events to subscriptions using constraints or "queries" (WEBCOM-889)
  • misc improve the fix the MockedMember.returns method of the internal mock API to return sucessive values

Version 2.12.0

2020-12-17

  • feature datasync: add 2 new subscription events "value_ack" and "child_ack" to be notified of synchronization changes between the local cache and the Webcom back end (WEBCOM-567). Extend the DataSnapshot class with the acknowledged() method to retrieve the source of the received notification (WEBCOM-561).
  • feature new logging system, exposed via Webcom.Log. The old one (using the "logging_enabled" setter in the session storage doesn't work any longer).
  • fix auth: interpret a wrong imported authentication state as unauthenticated instead of throwing

Version 2.11.12

2020-12-02

  • fix datasync: make the authentication subscription from datasync be notified after all other ones, so that subscriptions to the datasync service are guaranteed to read a consistent state updated by other applicative subscriptions to the authentication service.

Version 2.11.10

2020-10-22

  • fix datasync: prevent "onComplete" callbacks from being called twice for write operations in certain circumstances, e.g. while logging out (WEBCOM-638)

Version 2.11.9

2020-10-19

  • fix datasync: switch the ".info/connection/initializing" property off when the network goes down or when the WS is explicitly disconnected (WEBCOM-320)

Version 2.11.8

2020-10-12

  • feature datasync: extend the ".info/connection/initializing" property to every web socket connection attempt and not only the initial one (WEBCOM-320)

Version 2.11.7

2020-10-08

  • feature datasync: add the "initializing" property to ".info/connection" to handle the transient state during the initial web socket connection attempt (WEBCOM-320)
  • fix datasync: make the Query#cleanOfflineData method clean the cache in addition to cancelling all implicit subscriptions (WEBCOM-664)

Version 2.11.6

2020-09-24

  • fix datasync: fix the exception thrown by the Query#cleanOfflineData method
  • fix auth: resolve the promises returned by authentication functions after notifying all subscribers of the resulting authentication changes

Version 2.11.5

2020-09-08

  • fix remove a buggy and redundant log in the implementation of REST requests for node.js

Version 2.11.4

2020-09-02

  • fix datasync: fix the Webcom#unsubscribe method (the underlying REST request was buggy)

Version 2.11.3

2020-08-05

  • fix fix the target of mocked static functions in the internal mock API

Version 2.11.2

2020-07-29

Version 2.11.1

2020-07-02

  • fix auth: fix the multifactor authentication that was broken

Version 2.11.0

2020-07-02

Version 2.10.4

2020-05-12

  • fix datasync: restore a private method reserved for mobile Software Development Kits

Version 2.10.3

2020-05-11

  • feature datasync: add a path parameter to Webcom.root() in order to get references with an absolute path specification, and move this method into the Query class (WEBCOM-572)
  • fix datasync: fix the restoration of persisted data at start-up (WEBCOM-562)

Version 2.10.2

2020-04-07

  • feature datasync: add the virtual ".info/reachable" node to check the device network connectivity (WEBCOM-547)
  • fix datasync: fix an exception thrown in special conditions when a subscription is revoked by the back end (WEBCOM-551)
  • fix datasync: fix the cancellation callback when a subscription with an empty startAt query is revoked by the back end (WEBCOM-551)

Version 2.10.1

2020-03-26

  • feature auth: add an option to Webcom.authWithOAuth() in order to control the redirection behavior (WEBCOM-451)
  • fix datasync: fix the lock on websocket when attempting to run online with the goOnline() function (WEBCOM-541)
  • fix datasync: fix missing or wrongs calls to child_changed subscription callbacks in some synchronization cases (WEBCOM-533)
  • fix remove trailing spaces from formatted logs

Version 2.10.0

2020-03-04

  • feature datasync: add the web-hook subscription API (WEBCOM-487)
  • misc doc: improve the ergonomic design of Javascript Reference documentation page
  • misc add an internal mock API for unit tests of wrapping SDK like iOS or Android (WEBCOM-400)

Version 2.9.7

2020-03-03

  • fix remove the URI validation for https proxy in nodejs, which was buggy with some URIs (WEBCOM-532)

Version 2.9.6

2020-02-17

  • fix datasync: remove the usage of the String.prototype.startsWith() and Array.prototype.findIndex() methods, which are not supported by IE11 (WEBCOM-527)

Version 2.9.4

2020-02-12 datasync: fix the reading of updated data from the server that contains nodes with keys starting with the ".list." special prefix (WEBCOM-521)

Version 2.9.3

2020-02-03 (port fixes from 2.8.1)

Version 2.8.1

2020-02-03

  • fix doc: Remove the private sections that appeared within the public reference doc

Version 2.9.2

2020-01-22

  • fix datasync: fix the Webcom#update method when working offline in persistent mode (WEBCOM-472)
  • fix auth: fix the Webcom#updateIdentityProfile method when passing no data or a null data
  • misc auth: pass the token to decode within header to the REST request (WEBCOM-457)

Version 2.9.1

2020-01-07

  • fix datasync: reject hashed path segments containing forbidden characters in the Webcom#child method (WEBCOM-305)

Version 2.9.0

2020-01-07

  • feature datasync: interpret special path segments (".", "..", "#...", ".list....") in the Webcom#child method (WEBCOM-305)
  • feature datasync: route the opening of web-sockets on the datasync/v2 route (WEBCOM-224)
  • fix auth: make the Webcom#removeAuthCallback method actually return a boolean as described in the documentation
  • fix auth: make the Webcom#logout method call the passed callback even in offline mode (WEBCOM-455)
  • fix auth: fix the URL returned by Webcom#avatarURL method for the "facebook" provider
  • fix doc: generate a target="_blank" attribute for all external href links in the javascript documentation (WEBCOM-404)

Version 2.8.0

2019-11-21

  • feature datasync: deprecate the Webcom#resume method, it is now called automatically when creating the first Webcom instance for a given application
  • feature auth: add the Webcom#addAuthCallback and Webcom#removeAuthCallback methods and deprecate the Webcom#registerAuthCallback and Webcom#unregisterAuthCallback methods
  • feature auth: add the Webcom#authState property to get the current authentication state
  • feature datasync: add the Webcom#pushIdToDateTime method to retrieve the timestamp associated to a push id
  • feature auth: add the Webcom#avatarURL method to get a user's avatar from the auth details passed to the authentication callbacks
  • feature auth: add the Webcom#useCurrentContextForNextAuthOperation and Webcom#useNewContextForNextAuthOperation methods to turn sign-in and sign-up operations in multi- or single-factor modes (WEBCOM-117)
  • feature auth: add the Webcom#addIdentity method and depreciate Webcom#addAccount
  • feature auth: add the Webcom#authInternally method, which manages both authentication with email/password and authentication with phone, and deprecate Webcom#authWithPassword and Webcom#authWithPhone
  • feature datasync: implement a ping-pong mechanism on the websocket to watch its disconnection in cases the OS doesn't send the offline event (WEBCOM-217)
  • feature datasync: make the Webcom#persist method return a boolean indicating whether some data have been actually persisted
  • feature datasync: make the api.Query#on and api.Query#once methods accept a list of event types (WEBCOM-302)
  • feature datasync: add an a valueFormat option to the Webcom#transaction method to pass a api.DataSnapshot object instead of a JSON object to the update function
  • feature datasync: make Webcom#set, Webcom#update, Webcom#push, Webcom#remove, Webcom#transaction, api.Query#on, api.Query#once methods pass errors to their callback functions instead of throwing them
  • feature add the api.WebcomApp class to represent a Webcom app associated to a Webcom platform
  • feature add a constructor signature to the Webcom class that accepts a api.WebcomApp descriptor
  • feature datasync: add a {@code goOnline} option to the Webcom constructor to prevent the websocket to be established at startup (WEBCOM-218)
  • fix datasync: make the Webcom#persist function save pending write operations together with locally cached data (WEBCOM-258)
  • fix datasync: a new subscription doesn't call its callbacks on cached data when it requires to send a listen command to the server and the websocket is already established (WEBCOM-245)
  • fix datasync: fix queries combining api.Query#startAt and api.Query#limit constraints when the queried node has already an ongoing subscription (WEBCOM-249)
  • fix datasync: fixed queries with api.Query#startAt and {link api.Query#limit} (WEBCOM-249)
  • fix datasync: make Webcom#goOnline and Webcom#goOffline switch on or off only the websocket associated to the Webcom instance (WEBCOM-218)
  • fix datasync: make a websocket switched off by Webcom#goOffline stay off until the next call to Webcom#goOnline, even if the network comes online (WEBCOM-218)
  • fix datasync: make each websocket save its own authentication state without collision with each other (WEBCOM-218)
  • fix datasync: make the local authentication callbacks passed to the Webcom#authXXX methods not require a datasync websocket to be called (WEBCOM-218)
  • misc datasync: use the new /datasync/v2 route to establish the websocket (WEBCOM-228)

Version 2.7.1

2019-03-27

  • feature datasync: add Webcom#shouldBeOnline to get the websocket connectivity state expected by the user
  • fix auth: fix the promise returned by the new Webcom#updateIdentityProfile function
  • misc update dependencies of nodejs version: faye-websocket (0.11.1), request (2.88.0), babel-runtime (6.26.0)

Version 2.7.0

2019-03-13

Version 2.6.1

2018-09-19

  • fix fix some REST request that were failing in nodejs
  • misc doc: replace bower with node in the quickreference guide

Version 2.6.0

2018-09-12

  • feature datasync: add a persistent mode to make it possible to work offline
  • fix datasync: make several queries on the same node work together
  • fix datasync: properly initialize the online monitor when run on Android
  • fix datasync: adapt the promises returned by the Webcom API to work properly with iOS native callbacks
  • misc doc: fix typo in wakeup doc

Version 2.5.0

2018-08-23

Version 2.4.1

2018-08-23

  • misc doc: fix typo in equalsTo Quary SDK method
  • misc doc: fix typo in REST API tutorial
  • misc doc: fix android api doc references

(doc fixes only)

Version 2.4.0

2018-07-09

Version 2.3.2

2018-06-21

  • fix a mis-wired test was randomly crashing the websocket initialization in NodeJs

Version 2.3.1

2018-06-15

  • fix auth: fix the Promise returned by authWithPrivateKey()

Version 2.3.0

2018-06-06

  • feature auth: authentication with a custom 3rd-party identity provider
  • fix auth: improve the management of rejected promises when using ES5-callback style
  • misc doc: update tutorials with OIDC and custom login

Version 2.2.1

2018-05-29

  • fix auth: fix POST requests in nodejs, with forms including a JSON object field

Version 2.2.0

2018-04-05

  • feature datasync: add queries api.Query#limit, api.Query#endAt, api.Query#startAt and api.Query#equalTo methods

Version 2.1.0

2018-03-12

Version 2.0.0

2018-01-18

  • feature auth: add authentication with Mobile Connect for some Orange countries (France, Spain, Morocco, Jordan, Madagascar)
  • feature auth: add support for Orange-Wassup authentication (used by mobile SDKs that encapsulate the javascript SDK)
  • break auth: some error message codes have changed for authentication-related operations
  • feature auth: improve the error message of XHR requests in case of network error

 


 

Older versions

These versions are no longer supported and may not work anymore.

Version 1.3.2

2017-06-29

  • feature auth: add authentication with login-oauth2
  • feature auth: add an optional user-profile option to the authWithPassword method
  • feature auth: add the authWithToken and authWithPrivateKey methods and deprecate the auth method
  • feature auth: use the callback function passed to authXXX methods act as a (local) Promise-callback and no longer register it as a global authentication callback
  • fix auth: fix transport for REST request in nodejs
  • fix datasync: fix transaction method when the hash of the data to update has changed
  • break auth: deprecate the unauth method, use Webcom#logout instead

Version 1.2.4

2017-02-16

  • fix proxy usage with nodejs

Version 1.2.3

2017-02-08

  • fix proxy support for node. Uses HTTPS_PROXY or https_proxy environment variable.

Version 1.2.2

2017-01-17

  • feature auth: add anonymous login feature
  • feature datasync: add the transaction method

Version 1.0.3

2016-07-06

  • fix fix crash on react-native: returns empty useragent if navigator.useragent undefined

Version 1.0.1

2016-06-09

  • break change namespace URL
  • Before : https://webcom.orange.com/base/YOUR_NAMESPACE
  • Now : https://io.datasync.orange.com/base/YOUR_NAMESPACE
  • fix auth: use XHR for login purpose with Safari browsers

Version 0.2.3

2015-11-23

  • feature add proxy support for nodejs:

Use HTTPS_PROXY env variable to set a proxy, for example:

  • http://proxy.example.com
  • http://username:password@proxy.example.com (with auth)
show
deprecated