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
andOnDisconnect#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 theDatasyncService.completeSubscriptionOnCancelation
option istrue
Version 2.14.1
2021-07-08
- feature datasync: rename
cancelCallback
intocompletionCallback
in subscription callbacks and call thiscompletionCallback
withnull
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 theQuery#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 passedonComplete
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 theacknowledged()
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
- fix auth: fix the following methods that were broken:
Webcom#removeIdentity
,Webcom#removeAccount
,Webcom#updateIdentityProfile
,Webcom#subscribe
,Webcom#unsubscribe
- fix datasync: fix the management of loss of authentication at web-socket reconnection during the authentication flow (WEBCOM-575)
Version 2.11.1
2020-07-02
- fix auth: fix the multifactor authentication that was broken
Version 2.11.0
2020-07-02
- fix auth: run the OAuth2 call flow using a session id generated locally on the client and private to the client (WEBCOM-599)
- feature datasync: start refactoring the API on a per-service basis:
- add the
AuthenticationService
andDatasyncService
classes and theWebcomBase#authenticator
andWebcomBase#datasync
properties to access them - move
Webcom#goOnline
,Webcom#goOffline
,Webcom#shouldBeOnline
,Webcom#persist
methods toDatasyncService#connect
,DatasyncService#disconnect
,DatasyncService#shouldBeConnected
andDatasyncService#persist
- move
Webcom#authState
property toAuthenticationService#currentState
- update the format of options passed to the
Webcom
constructor (to be continued) - prepare a new global logging mechanism (to be continued)
- add the
- feature datasync: add
DatasyncService#offlineData
,DatasyncService#cleanOfflineData
andQuery#offPreservingOfflineData
to properly preserve data within the local cache when unwatching them (WEBCOM-575) - feature datasync: manage the loss of authentication at web-socket reconnection (WEBCOM-575)
- feature datasync: add the
".info/authentication"
virtual node to make it possible to watch the full authentication state real-time - feature datasync: add the
".info/connection"
virtual node that gathers the deprecated".info/connected"
and".info/serverTimeOffset"
nodes - misc improve the internal mock API (add the MockedMember#member property to retrieve the mocked object)
- misc auth: simplify the internal implementation of the OAuth2 call-flow, no longer using the WinChan library
- misc datasync: move the
Webcom#name
,Webcom#name
andWebcom#parent
methods to theQuery
class
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 anull
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 firstWebcom
instance for a given application - feature auth: add the
Webcom#addAuthCallback
andWebcom#removeAuthCallback
methods and deprecate theWebcom#registerAuthCallback
andWebcom#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
andWebcom#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 depreciateWebcom#addAccount
- feature auth: add the
Webcom#authInternally
method, which manages both authentication with email/password and authentication with phone, and deprecateWebcom#authWithPassword
andWebcom#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
andapi.Query#once
methods accept a list of event types (WEBCOM-302) - feature datasync: add an a
valueFormat
option to theWebcom#transaction
method to pass aapi.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 aapi.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
andapi.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
andWebcom#goOffline
switch on or off only the websocket associated to theWebcom
instance (WEBCOM-218) - fix datasync: make a websocket switched off by
Webcom#goOffline
stay off until the next call toWebcom#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
- feature auth: add
Webcom#sendOtp
,Webcom#addAccount
,Webcom#verifyIdentity
,Webcom#updateIdentityProfile
andWebcom#authWithPhone
to use the new phone/Otp authentication method (WEBCOM-128) - feature auth: add
Webcom#sendPasswordResetCode
,Webcom#sendVerificationCode
to manage email- and phone-base identities, as well as message parameters (WEBCOM-180) - feature auth: add
Webcom#removeAccount
andWebcom#removeIdentity
methods to share account deletion between all kinds of authentication methods - feature auth: make the
Webcom#verifyIdentity
authenticate with the verified user (WEBCOM-71) - feature auth: make the
Webcom#registerAuthCallback
method return the registered callback - feature datasync: add the
api.DataSnapshot#rawVal
method (WEBCOM-38) - feature datasync: add the
api.Query#pathString
method to get the current node path (without the host) - fix datasync: fix the JSON array extraction computed by the
api.DataSnapshot#val
method (WEBCOM-38) - misc auth: deprecate
Webcom#updateEmailPasswordProfile
,Webcom#createUser
,Webcom#removeUser
,Webcom#sendConfirmationEmail
, {@Webcom#sendPasswordResetEmail}
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
- feature auth: add the
Webcom#sendConfirmationEmail
method - fix auth: removed the
email
parameter of theWebcom#updateEmailPasswordProfile
method
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
- feature auth: add the
Webcom#updateEmailPasswordProfile
method - fix network error properly caught at websocket establishment in NodeJs
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
andapi.Query#equalTo
methods
Version 2.1.0
2018-03-12
- feature auth: add the
Webcom#registerAuthCallback
andWebcom#unregisterAuthCallback
methods
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
andauthWithPrivateKey
methods and deprecate theauth
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, useWebcom#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)