- Add support for using fetch signal
- Add pause, resume support to freeze subscriptions
- Remove negotiate call from signalrCore websocket
- Add signalrCore longpoliing as a fallback
- Fix transport fallback
- Fix rounding numbers
- Fix cloud streaming fallback
- Handle disconnect and reconnect correctly
- Send close message frame when switching between on-premise and cloud streaming services
- Add more logs and guards
- Handle reset messages better - don't spam the server if they spam us
- Better setting of isNetworkError property when fetch fails due to excessive auth errors
- Signalr core - Fixes exception in IE11 if abortController polyfill is not provided
- Signalr core - Add guard to avoid token renewal request before connection is established
- Allow
useCloud
option to be a function
- Revert rounding fix introduced in v8.0.5
- Fix rounding function that was sometimes inaccurate
- Propogate extended asset types header to batch requests
- Signalr core - send last received message id while reconnecting
- Pure websockets - reconnect immediately on first disconnect
- Some tweaks to protobuf logging messages and data
- BREAKING - Add support for cloud /oapi services. The baseUrl used when constructing transports should no longer include "/openapi"; this is now added by the library.
- Fix some log messages not passing LOG_AREA and add more details to a parsing error
- Update signalr core auth to use websocket for session renewal
- Add signalr core transport support
- BREAKING - Review all log messages. Most network errors and expected events should not be errors or warnings.
- BREAKING - Remove maxAuthErrors from TransportAuth - we now detect multiple auth errors on a endpoint intelligently
- BREAKING - Rename authErrorsCleanupDebounce to authErrorsIgnoreDuration
- Retry failed attempts to update websocket authentication
- Added new EVENT_STREAMING_FAILED when a streaming connection completely fails
- If a request for a subscription is sent twice, unsubscribe from the subscription that the library did not receive a response for
- If an error occurs processing a protobuf message, we now reset the subscription so it isn't stuck
- Use fetch instead of openapi transport for authorization
- Use TextDecoder to decode utf8 string payload
- Fix typed array slice method not supported exception in IE11 and old chrome
- Fix stackoverflow exception during JSON payload parsing.
- More detailed error logging for streaming.
- Refactoring of Plain Websocket Transport reconnecting logic.
- Fixed Plain Websocket Transport error with null contextId.
- Add TransportPutPatchDiagnositicsQueue which waits on any put/patch until a diagnostics call has been made to check if a proxy rejects it and revert to POST instead.
- Allow formatting price up to 8 decimals, avoiding trailing zeroes
- Fix level based retry mechanism by ensuring retryCount is set initially to 0.
- BREAKING - Source is now in ecmascript 2019 (no change to output, only affects if you are using the package source directly and not transpiling)
- BREAKING - AuthProvider has been created on clientLib.openApi.AuthProvider and this needs passing into TransportAuth and Streaming
- BREAKING - RetryTransport is more strict - it only retries if the status matches a provided one or its a network error and retryNetworkError is set
- Add support for leveled delays for streaming reconnects.
- Fix - streaming authentication errors trigger a new token request
- Add support for octet-stream as blobs
- Clone headers passed to subscription to make sure an mutations are not carried over between subscribe requests.
- Add support for json string format for batch responses.
- Patch release including prebuilt dist.
- Add subscription option argument and move optional arguments there.
- Add the state variables to the prototype
- add onQueueEmpty callback to subscription
- change percentage formatter to not include a space
- Implement raw/plain websocket support which allows to drop signalr and use our onw transport layer.
- Fix parsing and do not attempt to stringify FormData.
- Fix broken protobuf fallback logic. Making sure that onerror is not called when falling back from protobuf to json is done.
- Use undefined for body if it's not defined in rest request. This is required to support EDGE fetch handling logic which disallows null body for GET requests. Ref: JakeChampion/fetch#402
- Add body payload defaulting for PATCH request to fix issue with some proxy configurations not accepting empty PATCH requests.
- Add logging for scenario when signalr fallbacks to longPolling.
- Add x-correlation header data to error log details.
- Improvements to logging
- Switch to Jest
- Remove Grunt
- Upgrade all development packages (incl. rollup and babel)
- Add Localization options for short format
- Add authorization error limits per endpoint.
- Add fallback mechanism for endpoints which don't support protobuf yet
- Improve logging and functionality when a auth token is expired
- Add log messages when requests get stuck
- New FX Swap price formatting
- Improvements for handling network errors
- Tweaks to better detect subscription problems
- Fix parsing of negative modern fractions
- Add billion to the list of shorthands for the short format function.
- Make sure that request ids are unique across requests and batch requests so open api doesnt incorrectly reject them
- If a network error occurs subscribing, we need to unsubscribe - it may have got through
- The retry transport used to retry network errors, but this is now configurable and defaults to not retrying them.
- Fix for-style to be more normal and better performant
- Support negative numbers in short format
- Breaking Change - The signature of the short format function has been changed (breaks if using the precision parameter added in 1.9.0)
- Breaking Change - TransportBatch no longer has an auth argument. It requires that either individual calls have auth headers or that the underlying transport is authenticated
- Breaking change to the batch building utils - it now returns the boundary it will use
- Much smaller batch requests
- Do not format and create "-0" for small negative numbers
- Allow pagination top arguments in subscriptions
- Add nano-precision to protobuf deserialization
- Add precision parameter to short formatter
- Support for Protobuf deserialization
- Add ability to unsubscribe by tag
- No longer send /active as part of the subscribe url
- Align price and number parsing of invalid special futures format values
- Align price and number formatting of non-numbers
- Allow fetchRequest to handle binary responses when content-type is a pdf or an excel
- Add support for decimal values to NumberFormatting.shortFormat
- Increased MS_TO_IGNORE_DATA_ON_UNSUBSCRIBED to 10000 to avoid warning after unsubscribing on slower connections
- Add requestCounter to identify unique request for every open api rest request
- Fix transport retry to send on reject objects correctly
- Remove reference to unused Tag parameters
- Make open api refresh problems warnings when it is due to sleeping on android
- Fix the interface for modify-patch subscriptions
- Fix the language header to be Accept-Language
- Delete subscriptions when a reset occurs
- Allow modifying with a patch request with
- Fixes to the subscription state management
- Use throw instead of return Promise.reject to avoid unnecessary unhandledrejections
- Only try a new action when the connection becomes available if we are not already transitioning
- Improve logging - include url in failed fetch calls
- Improve logging - arguments on failed subscriptions and treat disconnect as a warning
- Dispose the retry transport correctly
- Add custom timeouts based on response code to the retry transport
- Introduce modify method for subscriptions which queues the subscription modification
- Support formatting prices that javascript would format using scientific notation (high precision)
- RetryTransport now only retries if has not received a response (e.g. network failure)
- Initial release to Github