## v9.9.0
*August 25, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Resolved the issue because of which requests that were too early received a response and still have been sent. |
| **Modified** | • Decouple and re-organize `SharedWorker` code for better maintainability.<br/>• Additional query parameter (removed before sending) is added for requests triggered by user and state will be updated only for these requests.<br/>• Log entry timestamp will be altered on millisecond if multiple log entries have similar timestamp (logged in fraction of nanoseconds).<br/>• Change the condition that is used to identify whether the `offline` detection timer has been suspended by the browser or not before trying to evict `offline` PubNub clients. |
## v9.8.4
*August 7, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Resolved an issue that prevented access to static fields of the PubNub class when using the SDK in React Native target builds. |
## v9.8.3
*July 28, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Update workflow with `id-token: write` permission for AWS CLI configuration. |
## v9.8.2
*July 28, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Upgraded `form-data` dependency to version 4.0.4 to address potential vulnerability issue. |
## v9.8.1
*July 15, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix incorrect subscription reference timetoken (used by listeners to filter old messages) caused by the server returning timetoken older than the previous one because of MX.<br/>• Fix the issue because of which all subscriptions of the subscription set have been requested to handle the received event. |
## v9.8.0
*July 11, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Depending on client configuration, it will emit `status` for heartbeat, which has been started by the `SharedWorker` backup heartbeat timer mechanism.<br/>• Stop heartbeats until the auth key / access token is changed. On change, `SharedWorker` will send an immediate heartbeat request. |
| **Fixed** | • Fix the issue with the global subscription set (used for legacy interface support) because of which `unsubscribe` with the legacy interface wasn't able to complete the unsubscribe process.<br/>• Fix the issue because of which rapid subscription (from other PubNub clients in response to received subscribe response) throttling causes delayed channel list change. |
| **Modified** | • Restart the timer of the backup heartbeat if an explicit heartbeat request has been received from the main PubNub client.<br/>• Modify the `log` payload for `SharedWorker` to make it possible to log sent / received requests information to the main browser window (not to the `SharedWorker` console). |
## v9.7.0
*June 30, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Launch a backup heartbeat timer per registered PubNub instance in SharedWorker context to protect against browsers throttling of background (hidden) tabs. |
| **Fixed** | • Fix issue because of which in new flow `heartbeat` request not cancelled properly when issued in burst.<br/>• Fix issue because resource names, which consist only of integers, have been decoded as Unicode characters.<br/>• Fix issue because the entity that has been created with `-pnpres` suffix has been removed from subscription loop during unsubscribe from entity with presence listening capability. |
| **Modified** | • Use string names of classes for locations instead of dynamic access to constructor names because it affect how logs looks like after minification. |
## v9.6.2
*June 30, 2025*
| Type | Changes |
|------|----------|
| **Modified** | • Removed deprecation warning from deleteMessages method.<br/>• Added code snippets for docs. |
## v9.6.1
*June 18, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue that has been caused by the race of conditions on tab close and led to `presence leave` for channels that were still in use. |
| **Modified** | • Make leeway depending from the minimal heartbeat interval (5% from it) to filter out too rapid heartbeat calls. |
## v9.6.0
*June 4, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Standardize information printed by logger and places where it is printed.<br/>• Add `logLevel` and `loggers` configuration parameters to specify minimum log level and list of custom `Logger` interface implementations (when own logger needed).<br/>• Add the `cloneEmpty` function, which will let you make a “bare” copy of a subscription / subscription set object, which will have shared state with the original but clear list of event handlers.<br/>• Add a parameter for subscription where closure can be provided and filter events which should be delivered with listener.<br/>• When a new subscription object is created, it won't notify about messages from the past (edge case with active and inactive channel subscriptions). |
## v9.5.2
*April 22, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixed issue because of which client retried for both bad request and access denied. |
| **Modified** | • Add current list of channels and groups to connected status. |
## v9.5.1
*April 15, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Add missing `NoneRetryPolicy` static field for `PubNub` class. |
| **Modified** | • `RetryPolicy.None` exported as a function to not affect tree-shaking and modules exclusion possibilities. |
## v9.5.0
*April 15, 2025*
| Type | Changes |
|------|----------|
| **Added** | • The configured retry policy will be used for any failed request.<br/>• By default, the SDK is configured to use an exponential retry policy for failed subscribe requests. |
| **Fixed** | • `PNSubscriptionChangedCategory` will be emitted each time the list of channels and groups is changing. |
| **Modified** | • Automated request retry has been moved into the network layer to handle all requests (not only subscribed).<br/>• Properly destroy `PubNub` instance after each test case to make sure that all connections closed and prevent tests from hanging. |
## v9.4.0
*April 10, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Compress the published payload if sent by POST.<br/>• Explicitly add `gzip, deflate` to the `Accept-Encoding` header. |
## v9.3.2
*March 31, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix missing `heartbeat` and `leave` REST API calls when the event engine is enabled and `presenceTimeout` or `heartbeatInterval` not set. |
## v9.3.1
*March 25, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue because of which channels and groups aggregated inside PubNub client state objects and didn't clean up properly on unsubscribe / invalidate. |
## v9.3.0
*March 20, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Remove minimum limit for presence timeout (was 20 seconds) to make it possible specify shorter intervals. |
| **Fixed** | • Fix issue because of which channels not aggregated and caused separate heartbeat requests. |
## v9.2.0
*March 19, 2025*
| Type | Changes |
|------|----------|
| **Added** | • On `pagehide` without `bfcache` client on page will send `terminate` to Shared Worker for early long-poll request termination and `leave` request sending (if configured). |
| **Fixed** | • Fix an issue with the client's state update in Shared Worker caused by `-pnpres` suffixed entries being removed from heartbeat / leave request channels and groups. |
## v9.1.0
*March 13, 2025*
| Type | Changes |
|------|----------|
| **Added** | • `SubscriptionSet` will re-add listener every time when `Subscription` or `SubscriptionSet` added to it - this will let receive updates from newly added subscribe capable objects. |
| **Fixed** | • Fix issue because of errors returned by `fetch` taken from `iframe` (to protect against monkey-patching by APM packages) was't handled as Error. |
| **Modified** | • Use access token (auth key) content instead of base64 encoded token to identify PubNub clients, which can be used for requests aggregation. |
## v9.0.0
*March 10, 2025*
| Type | Changes |
|------|----------|
| **Added** | • BREAKING CHANGES: `SubscriptionSet` will subscribe / unsubscribe added / removed `Subscription` or `SubscriptionSet` objects if the set itself already subscribed. |
| **Fixed** | • Fix issue because of which throttle didn't consider difference in client settings (throttled only by user ID and subscribe key, which is not enough).<br/>• With the fix, smart heartbeat as feature has been added to the SDK, and it is disabled by default. |
## v8.10.0
*March 6, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Add `useSmartHeartbeat` configuration option which allows ignoring implicit heartbeat (with successful subscribe response) and keep sending `heartbeat` calls with fixed intervals.<br/>• `subscriptionWorkerOfflineClientsCheckInterval` configuration option can be used to configure the interval at which “offline” PubNub clients (when tab closed) detection will be done.<br/>• `subscriptionWorkerUnsubscribeOfflineClients` configuration option can be used to force unsubscribe (presence leave) for “offline” PubNub clients (when tab closed). |
## v8.9.1
*February 26, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue because of which code doesn't handle edge case when `fetch` reject with empty object and not `Error`. |
| **Modified** | • Remove `-pnpres` channels and groups from presence `leave` and `heartbeat` requests. |
## v8.9.0
*February 18, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Emit 'PNDisconnectedUnexpectedlyCategory' in cases when client receives bad request or unexpected / malformed service response. |
| **Modified** | • Move error / malformed response handling into `AbstractRequest` to simplify actual endpoint classes. |
## v8.8.1
*February 10, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue because of which APM fix worked only when the client has been configured with `logVerbosity: true`. |
## v8.8.0
*February 5, 2025*
| Type | Changes |
|------|----------|
| **Added** | • For the browser version of PubNub SDK, add the ability to switch between `fetch` and `xhr` APIs (`transport` configuration option). |
| **Fixed** | • Fix issue because of which, in Event Engine mode, wrong timeout values have been set for requests which create long-poll request. |
| **Modified** | • Refactor `timeout` implementation for `fetch` transport to properly cancel request when the timeout timer will fire. |
## v8.7.1
*January 31, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix long-poll request cancellation caused by APM packages monkey patching 'fetch' and try to use 'native' implementation instead of patched. |
## v8.7.0
*January 30, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Pass heartbeat request through `SharedWorker` (if used) to optimize the number of requests for clients opened in few tabs and subscribed on same channels / groups list. |
| **Modified** | • Don't send `heartbeat` request to unsubscribe. |
## v8.6.0
*January 21, 2025*
| Type | Changes |
|------|----------|
| **Added** | • A new optional parameter `ifMatchesEtag` is added to `setUUIDMetadata` and `setChannelMetadata`. When provided, the server compares the argument value with the ETag on the server and if they don't match a HTTP 412 error is returned. |
## v8.5.0
*January 15, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Add `fileRequestTimeout` client configuration option which is specific only for requests which upload and download files. |
| **Fixed** | • Fix issue with `instanceId` set to `undefined` for requests with `useInstanceId` configuration flag set to `true`. |
## v8.4.1
*January 2, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixed issue of hereNow response parsing for `totalOccupancy` field. |
## v8.4.0
*December 17, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Add `type` field for members and membership objects and subscribe response. |
| **Fixed** | • Fixed type which limited number of options which can be included into response / used in sorting for members / membership setting API.<br/>• Fix missing `hereNowRefresh` flag from the presence object received from subscribe.<br/>• Fix issue because of which `logVerbosity` set to `true` still didn't print logs for Node.js. |
| **Modified** | • Change format and add proper request body output. |
## v8.3.2
*December 12, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue with `Subscription` and `SubscriptionSet` when one can unsubscribe channel / group which is still in use by another.<br/>• Fix particular `TypeError` emitted when browser forcefully closes long-poll connection before its timeout and reported as bad request. This type of error will be reported as a network error.<br/>• Fix issue because of which `node-fetch` used default agent, which after Node.js 19+ has `keepAlive` enabled by default. |
## v8.3.1
*November 18, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue because of which presence events not delivered to the `Subscription` and `SubscriptionSet` objects (only global listeners). |
## v8.3.0
*November 14, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Add custom message type support for the following APIs: publish, signal, share file, subscribe and history. |
## v8.2.10
*October 31, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix `Actions` type definition. |
| **Modified** | • Remove indexed signature for publish.<br/>• Add serializable objects to `Payload` type.<br/>• Aggregate generated types definitions.<br/>• Fix definition of type which represents message actions received from history and list of users which added action of specific type and value to the message.<br/>• Remove redundant indexed signature from publish message parameters type definition.<br/>• Extend `Payload` type definition with objects which can be serialized by `JSON.stringify` using `toJSON()` methods.<br/>• Aggregate multiple types definitions into single type definition type with proper type names and namespaces.<br/>• Add the Subscribe Event Engine and Event Listener types to the bundled types definition file. |
## v8.2.9
*October 25, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Revert fix created to handle browser timeouts (not gracefully). The Web Fetch API doesn't have descriptive error information, and it sends `TypeError` for both cases when connection closed by browser or network issue (blocked domain). |
## v8.2.8
*September 30, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue because of which leave request modified wrong URL path component with actual channels.<br/>• Fix issue because of which removed channels / groups didn't cancel previous subscribe request to re-subscribe with new set of channels / groups.<br/>• Fix issue because of which suitable active PubNub clients subscription not has been used for aggregation and caused additional connections or wrong set of channels / groups. |
| **Modified** | • Pre-process entries from subscribe response to filter out updates which has been received for channels and groups which are not part of subscription loop (subscription aggregation in shared worker).<br/>• Point to the built-in types definition file when package used with `npm` / `yarn`. |
## v8.2.7
*August 1, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue because of which timeout enforced by browser triggered wrong error status category. |
## v8.2.6
*July 23, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Resolves the issue of manually included presence channels not being unsubscribed from the subscription set. |
## v8.2.5
*July 18, 2024*
| Type | Changes |
|------|----------|
| **Modified** | • Fix PubNub client configuration and listener documentation. |
## v8.2.4
*June 17, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Subscription/SubscriptionSet's `subscribe()` method accepts `timetoken` parameter. Instead as in subscriptionOption. |
## v8.2.3
*June 6, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue because of which single string sort option wasn't serialized properly. |
## v8.2.2
*June 5, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue because of which `heartbeatInterval` wasn't computed if `presenceTimeout` provided during PubNub client configuration. |
## v8.2.1
*May 22, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix revoke token method signature where mistakenly expected object with `token` field. |
## v8.2.0
*May 21, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Add environment flags processing to opt-out feature modules from built bundles. |
| **Fixed** | • Add `application/json` content type for `Grant Token`, `Add Message Action` and `Generate File Upload URL` endpoints. |
## v8.1.0
*May 16, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Use `SharedWorker` instead of `Service Worker` for better PubNub client instances feedback.<br/>• Add configuration option to enable debug log output from the subscription `SharedWorker`. |
| **Modified** | • Create types declaration files. |
## v8.0.1
*April 23, 2024*
| Type | Changes |
|------|----------|
| **Modified** | • Provider configuration option to set service worker from the URL (because of browser restrictions for worker files to be registered from the same domain). |
## v8.0.0
*April 22, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Upgraded the network layer, replacing the `superagent` module with the `Fetch API` for browser integrations and node-fetch for `npm` integrations, ensuring enhanced performance and reliability.<br/>• Added service worker .<br/>• Enhanced the subscribe feature with service worker support, improving user experience across multiple browser windows and tabs. The client interface rewritten with TypeScript, which gives an up-to-date interface. |
## v7.6.3
*April 18, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of add or remove listener of subscription to/from subscriptionSet. |
## v7.6.2
*March 28, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Added support for pagination params for listChannels API of push notification devices. |
## v7.6.1
*February 26, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of App context event handling for channel and membership. |
## v7.6.0
*February 21, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Adding channel, channelGroup, channelMetadata and userMetadata entities to be first-class citizens to access APIs related to them. Currently, access is provided only for subscription API. |
## v7.5.0
*January 16, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Added `enableEventEngine`, `maintainPresenceState` flags and `retryConfiguration` for retry policy configuration. |
| **Fixed** | • Fixes issue of allowing duplicate listener registration.<br/>• Fixes file name conflict in lib directory. |
## v7.4.5
*November 28, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Handle unencrypted messages in subscribe with cryptoModule configured.<br/>• Fixe for missing parameters to request or filter optional fields for App Context memberships api. |
## v7.4.4
*November 14, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of getChannelMembers call not returning status field. |
## v7.4.3
*November 8, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of not able to encrypt Blob file content in web. |
## v7.4.2
*October 30, 2023*
| Type | Changes |
|------|----------|
| **Modified** | • Changed license type from MIT to PubNub Software Development Kit License. |
## v7.4.1
*October 17, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of `pubnub.decrypt()` returning wrong data format. |
## v7.4.0
*October 16, 2023*
| Type | Changes |
|------|----------|
| **Added** | • Add crypto module that allows configure SDK to encrypt and decrypt messages. |
| **Fixed** | • Improved security of crypto implementation by adding enhanced AES-CBC cryptor. |
## v7.3.3
*September 11, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of getting misleading error message when sendFile fails. |
## v7.3.2
*August 31, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of having deprecated superagent version. |
## v7.3.1
*August 21, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of missing get and set methods for userId field of PubNub configuration. |
## v7.3.0
*July 26, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of severe vulnerability warnings for vm2 usage. |
## v7.2.3
*June 19, 2023*
| Type | Changes |
|------|----------|
| **Added** | • Added optional param `withHeartbeat` to set state through heartbeat endpoint. |
## v7.2.2
*December 12, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes a case in React Native with using an error interface in superagent.<br/>• Fixes issue of getFileUrl not setting auth value as token string when token is set. |
## v7.2.1
*November 10, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Removes remains of Buffer from the crypto module. |
## v7.2.0
*July 1, 2022*
| Type | Changes |
|------|----------|
| **Added** | • Allows to specify users and spaces in grantToken method.<br/>• Allows to use userId instead of uuid in configuration. |
## v7.1.2
*June 22, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes parseToken issues on Web and React Native. |
## v7.1.1
*June 14, 2022*
| Type | Changes |
|------|----------|
| **Added** | • Added user and space memberships related methods.<br/>• Added `type` and `status` fields in `User` and `Space`. `status` field in memberships. |
## v7.0.1
*May 24, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes export issue for Node and update config for es module compatibility. |
## v7.0.0
*May 24, 2022*
| Type | Changes |
|------|----------|
| **Modified** | • BREAKING CHANGES: Removed objects v1 methods support. |
## v6.0.0
*April 21, 2022*
| Type | Changes |
|------|----------|
| **Added** | • Added a TypeScript build chain and moved from webpack to rollup.<br/>• Added an initial implementation of Event Engine. |
## v5.0.1
*March 2, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Unsubscribe fix unsubscribe from channel group presence |
## v5.0.0
*January 12, 2022*
| Type | Changes |
|------|----------|
| **Modified** | • BREAKING CHANGES: `uuid` is required parameter in PubNub constructor. |
## v4.37.0
*December 16, 2021*
| Type | Changes |
|------|----------|
| **Added** | • Add revoke token feature. |
## v4.36.0
*December 9, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Remove isomorphic-webcrypto polyfill for web Add buffer polyfill to react native. |
## v4.35.0
*December 2, 2021*
| Type | Changes |
|------|----------|
| **Added** | • Allows to specify multiple origins in the config, which enables domain sharding for custom origins. |
## v4.34.2
*December 1, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix listener callback is invoked multiple times. |
## v4.34.1
*November 19, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Update `.npmignore` and excluded resources from from NPM package. |
## v4.34.0
*November 19, 2021*
| Type | Changes |
|------|----------|
| **Added** | • Upgrade superagent. |
## v4.33.1
*October 18, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of performing file publish message retry according to `fileUploadPublishRetryLimit` setting of PubNub instance. |
## v4.33.0
*August 31, 2021*
| Type | Changes |
|------|----------|
| **Added** | • Added support for Objects v2 in PAM v3 api. |
| **Fixed** | • Fixes issue related to file decryption when cipherkey is provided in method. |
## v4.32.1
*May 26, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of signature does not match error with `getAllUUIDMetadata` call.<br/>• Error handling with global hereNow call to provide detailed error message when feature not enabled. |
## v4.32.0
*April 28, 2021*
| Type | Changes |
|------|----------|
| **Added** | • Add grantToken support for channel and group resources. |
## v4.31.0
*April 22, 2021*
| Type | Changes |
|------|----------|
| **Modified** | • BREAKING CHANGE - Set `true` for `useRandomIVs` by default. |
| **Fixed** | • Fix `channel` and `uuid` which is used with: files API, Objects and presence. |
## v4.30.1
*March 30, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Revert v4.300. |
## v4.29.11
*January 11, 2021*
| Type | Changes |
|------|----------|
| **Modified** | • Set default increased limit for message count of History v3 api single call. |
## v4.29.10
*November 30, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of missing more field in fetch messages response. |
## v4.29.9
*October 5, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Adds timetoken of file publish in the sendFile response. |
| **Fixed** | • Fixes getFileUrl so that it includes auth and signature query params.<br/>• Fixes downloadFile method to generate correct signature. |
## v4.29.8
*September 21, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes compatibility with @sentry/react-native library. |
## v4.29.7
*September 14, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Added support for managing permissions of objects v2 while applying PAM v2. |
| **Fixed** | • Fix uncaught promise exception in subscription manager caused by error in user code inside of subscription handlers. Error will be handled and returned to status handler with PNUnknownCategory category where errorData can be examined. |
## v4.29.6
*September 8, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Add file download to Blob in React Native. |
## v4.29.5
*September 1, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Add support for file upload via file URI in React Native. |
| **Fixed** | • Fix file download to ArrayBuffer in React Native. |
## v4.29.4
*August 14, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes an artifact where ract-native entrypoint didnt use ssl. |
## v4.29.3
*August 14, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes an issue with react-native entrypoint where interfaces to File and Crypto are not included in the build.<br/>• Fixes the ability to sendByPost in publish.<br/>• Fixes an issue where getFileUrl returned and URI without a protocol.<br/>• Fixes an issue where storeInHistory false would not include the param.<br/>• Removes mime types dependency since that will be handled by the server.<br/>• Adds userMetadata to file event listener. |
## v4.29.2
*August 5, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Move @babel/runtime to runtime dependency. |
## v4.29.1
*August 4, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Release 4.291. |
## v4.29.0
*August 4, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Allows to upload files to channels, download them with optional encryption support.<br/>• Allows to enable random IVs when encrypting messages. |
| **Fixed** | • Fixes a bug with PAM and Objects v2. |
## v4.28.4
*July 15, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes issue of high cpu usage when heartbeat interval is not set. |
## v4.28.3
*July 15, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • getAllChannelMetadata no longer includes customFields by default.<br/>• removeChannelMetadata no longer hits wrong endpoint.<br/>• getMemberships and getChannelMembers now includes customFields by default.<br/>• getAllUUIDMetadata now includes totalCount by default.<br/>• getAllUUIDMetadata no longer includes limit by default.<br/>• all membership and channel members methods now accept a callback.<br/>• all objects v2 methods are properly typed now to include an optional callback.<br/>• getMemberships and getChannelMembers now include totalCount, prev, and next in the response. |
## v4.28.2
*June 29, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes a bug in removeChannelMembers and removeMemberships. |
## v4.28.1
*June 19, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Ensure proper bytes padding in ArrayBuffer prepared for `cbor-js` library. |
## v4.28.0
*June 3, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Added Objects v2 API and deprecated Objects v1 API. |
## v4.27.6
*April 24, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Added support for delete permission in the grant method of accesses manager. |
## v4.27.5
*April 21, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Update READMEmd CDN links during deployment.<br/>• Fix pre-compiled scripts update. |
## v4.27.4
*March 18, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Add telemetry (latency) for all existing operation types. |
| **Fixed** | • Replace `cbor-sync` module with `cbor-js` for client implementation for web to fix compatibility with Salesforce Lightning Web Components. |
## v4.27.3
*January 6, 2020*
| Type | Changes |
|------|----------|
| **Modified** | • Support for APNS2 Push API |
| **Fixed** | • Restore functionality to set heartbeat interval when presence timeout is set below the default |
## v4.27.2
*December 5, 2019*
| Type | Changes |
|------|----------|
| **Fixed** | • disable presence heartbeats by default |
## v4.27.1
*November 20, 2019*
| Type | Changes |
|------|----------|
| **Fixed** | • Make changes in fetch_messages endpoint to move message actions (if any) for message from 'data' to 'actions' property (old 'data' will be in place for few updates to not break existing clients). |
| **Modified** | • fix PAMv3 tests mocked signature<br/>• fix lint warnings for tests and code<br/>• fix gulp build so that failures in test and lint will trigger failure in travis |
## v4.27.0
*October 8, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Add Message Actions API support which allow to: add, remove and fetch previously added actions<br/>• Add new arguments to fetch messages function which allow to fetch previously added actions and message metadata<br/>• Add new handler which can be used to track message actions addition / removal events |
## v4.26.1
*September 27, 2019*
| Type | Changes |
|------|----------|
| **Fixed** | • Ensures history response is an array before iterating it |
## v4.26.0
*September 20, 2019*
| Type | Changes |
|------|----------|
| **Fixed** | • Add support for auth tokens with Objects for Users, Spaces and Memberships |
## v4.25.2
*September 3, 2019*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix issue with subdomains ending in 'ps' |
## v4.25.1
*August 23, 2019*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix titanium build to support recent version |
## v4.25.0
*August 16, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Add Objects support for Users, Spaces and Memberships |
## v4.24.6
*August 9, 2019*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix regression: 'PubNub is not a constructor' in Node.js |
## v4.24.5
*August 7, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Add Signals support |
## v4.24.4
*July 26, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Add minimum presence timeout |
## v4.24.3
*June 19, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Added support to enable heartbeat requests while subscribe when heartbeat interval is provided |
## v4.24.2
*June 13, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Added try catch block to handle exception for JSON.parse function<br/>• Updated default origin to ps.pndsn.com |
## v4.24.1
*June 6, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Maintains the state when the presence heartbeat is explicitly disabled |
## v4.24.0
*May 9, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Disables the presence heartbeat by default when a subscribe is called. Presence heartbeat can still be enabled explicitly. |
## v4.23.0
*March 14, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • The `timetoken` parameter is deprecated in the `message-counts` function. Use 'channelTimetokens' instead, pass one value in 'channelTimetokens' to achieve the same results. |
## v4.22.0
*March 4, 2019*
| Type | Changes |
|------|----------|
| **Added** | • message counts |
| **Modified** | • use null instead of '' for NativeScript networking module |
## v4.21.7
*December 20, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • update dependencies<br/>• fix flow process on nativescript |
## v4.21.6
*October 4, 2018*
| Type | Changes |
|------|----------|
| **Fixed** | • fix POST for nativescript adapter over android |
## v4.21.5
*August 6, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • update dependencies |
## v4.21.4
*August 4, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • return error parameter into errorData when logVerbosity = true |
## v4.21.3
*July 10, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • update dependencies |
## v4.21.2
*June 12, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • add stringifiedTimeToken into the fetch endpoint |
## v4.21.1
*June 8, 2018*
| Type | Changes |
|------|----------|
| **Fixed** | • avoid security vulnerability in growl < 1.10.0 |
## v4.21.0
*June 6, 2018*
| Type | Changes |
|------|----------|
| **Added** | • subscribe without using the heartbeat loop with flag withHeartbeats = false |
## v4.20.3
*April 24, 2018*
| Type | Changes |
|------|----------|
| **Fixed** | • fix timetoken announces |
| **Modified** | • categorize ETIMEDOUT errors as PNNetworkIssuesCategory |
## v4.20.2
*February 28, 2018*
| Type | Changes |
|------|----------|
| **Fixed** | • fix signature to delete message |
## v4.20.1
*January 29, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • allow set ssl to false for nodejs |
## v4.20.0
*January 4, 2018*
| Type | Changes |
|------|----------|
| **Added** | • add support for heartbeat sending without subscription via .presence()<br/>• add method setProxy for Nodejs<br/>• set ssl to true for nodejs by default |
## v4.19.0
*December 5, 2017*
| Type | Changes |
|------|----------|
| **Added** | • add support for Native Script |
| **Modified** | • add missing flow types<br/>• upgrade superagent to ^3.8.1 |
## v4.18.0
*November 20, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • keepAlive is now initialized globally instead of per-call, allowing better connection reuse |
| **Added** | • added sdkName configuration parameter which allow completely override pnsdk in request query |
## v4.17.0
*October 19, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • allow disabling of heartbeats by passing 0 during initialization. |
## v4.16.2
*October 19, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • fix UUID library to work in browsers. |
## v4.16.1
*October 12, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • fix incorrect packaging of lil-uuid and uuid |
## v4.16.0
*October 10, 2017*
| Type | Changes |
|------|----------|
| **Added** | • support delete messages from history |
| **Modified** | • swap uuid generator with support for IE9 and IE10 |
## v4.15.1
*August 21, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • fix typo to enable http keep alive support |
## v4.15.0
*August 21, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Support optional message deduping via the dedupeOnSubscribe config<br/>• Do not issue leave events if the channel mix is empty. |
## v4.14.0
*August 14, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Allow disable of heartbeats by passing heartbeatInterval = 0 |
## v4.13.0
*July 27, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • patch up 503 reporting<br/>• fix issue with where now and invalid server response<br/>• fix issue with here now and invalid server response |
## v4.12.0
*June 19, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • fix issue of net with android for titanium |
| **Added** | • add additional hooks for connectivity<br/>• add auto network detection |
## v4.10.0
*May 23, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • fix issue of net with android for react-native |
## v4.9.2
| Type | Changes |
|------|----------|
| **Added** | • metadata is now passed on message envelope |
## v4.9.1
*May 18, 2017*
| Type | Changes |
|------|----------|
| **Added** | • add support custom encryption and decryption |
## v4.9.0
| Type | Changes |
|------|----------|
| **Added** | • integrate fetch for react-native SDK |
| **Modified** | • announce when subscription get reactivated<br/>• stop heartbeats for responses with status PNBadRequestCategory |
## v4.8.0
*April 6, 2017*
| Type | Changes |
|------|----------|
| **Added** | • allow manual control over network state via listenToBrowserNetworkEvents |
## v4.7.0
*March 30, 2017*
| Type | Changes |
|------|----------|
| **Added** | • add support for titanium SDK |
| **Modified** | • fix support for react-native SDK<br/>• add validation for web distribution |
## v4.6.0
*March 27, 2017*
| Type | Changes |
|------|----------|
| **Added** | • add support for presence deltas.<br/>• keep track of new and upcoming timetokens on status messages |
## v4.5.0
*March 8, 2017*
| Type | Changes |
|------|----------|
| **Added** | • add optional support for keepAlive by passing the keepAlive config into the init logic |
## v4.4.4
*February 14, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • add guard to check for channel or channel group on state setting<br/>• add guard to check for publish, secret keys when performing a grant |
## v4.4.3
*February 7, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • downgrade superagent to v2; add a new entry point for react native. |
## v4.4.2
*January 31, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • adjust compilation for webpack based compilations |
## v4.4.1
*January 31, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • proxy support for node |
## v4.4.0
*January 23, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • upgrade dependencies; fix up linting.<br/>• handle network outage cases for correct reporting. |
## v4.3.3
*December 16, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • bump version after v3 release. |
## v4.3.2
*November 28, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • removes bundling of package.json into the dist file |
## v4.3.1
*November 22, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • SDK now supports the restore config to allow message catch-up |
## v4.3.0
*November 18, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • bulk history exposed via pubnub.fetchMessages<br/>• publish supports custom ttl interval<br/>• v2 for audit and grant; no consumer facing changes.<br/>• fixes for param validation on usage of promises |
## v4.2.5
*November 4, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • SDK reports on the id of the publisher in the message |
## v4.2.4
*November 1, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Detection of support of promises improved. |
## v4.2.3
*November 1, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Fixes on encoding of apostrophes. |
## v4.2.2
*October 31, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Add promise support on setState operation (@jskrzypek)<br/>• Add hooks to stop polling time when the number of subscriptions drops to 0 (@jasonpoe) |
## v4.2.1
*October 30, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Encode signatures to avoid sending restricted characters |
## v4.2.0
*October 26, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Add optional support for promises on all endpoints.<br/>• History always returns timetokens in the payloads.<br/>• Optionally, if queue size is set, send status on queue size threshold |
## v4.1.1
*October 17, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Fix state setting for channels with reserved tags. |
## v4.1.0
*October 13, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Reset timetoken when all unsubscribes happen<br/>• Sign requests when a a secret key is passed |
## v4.0.13
*October 5, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Propagate status events to the status callback on subscribe operations. |
## v4.0.12
*October 3, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • affectedChannels and affectedChannelGroups are now populated on subscribe / unsubscribe events |
## v4.0.11
*September 27, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Dependency upgrades |
## v4.0.10
*September 14, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Expose decryption and encryption as a global |
## v4.0.9
*September 9, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Channel / subscription items are populated in<br/>• Constants for operation and category are exposed on global object |
## v4.0.8
*August 25, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Re-publish of v4.0.7 |
## v4.0.7
*August 25, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Dependency upgrades<br/>• Try..catch wrapped around localStorage for iframe compliance |
## v4.0.6
*August 18, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Adjustment of reconnection policies for web distributions.<br/>• PNSDK support for partner identification |
## v4.0.5
*August 10, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Stop exposing .babelrc which causes unpredictable behavior on react native. |
## v4.0.4
*August 9, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Adjust handling of presence payloads for state settings.<br/>• Triggering disconnect, reconnect events on Web distributions.<br/>• React Native adjustments to package.json information. |
| **Added** | • Exposing generateUUID method to create uuids. |
## v4.0.3
*August 7, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Global Here Now parsing adjustments. |
## v4.0.2
*August 3, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Adjustments to internet disconnects on node. |
## v4.0.1
*August 1, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes to avoid double encoding on JSON payloads. |
## v4.0.0
*August 1, 2016*
| Type | Changes |
|------|----------|
| **Added** | • New iteration of JS / Node SDK family |
Fixed | - Resolved the issue because of which requests that were too early received a response and still have been sent.
|
Modified | - Decouple and re-organize
SharedWorker code for better maintainability. - Additional query parameter (removed before sending) is added for requests triggered by user and state will be updated only for these requests.
- Log entry timestamp will be altered on millisecond if multiple log entries have similar timestamp (logged in fraction of nanoseconds).
- Change the condition that is used to identify whether the
offline detection timer has been suspended by the browser or not before trying to evict offline PubNub clients.
|
Fixed | - Resolved an issue that prevented access to static fields of the PubNub class when using the SDK in React Native target builds.
|
Modified | - Update workflow with
id-token: write permission for AWS CLI configuration.
|
Modified | - Upgraded
form-data dependency to version 4.0.4 to address potential vulnerability issue.
|
Fixed | - Fix incorrect subscription reference timetoken (used by listeners to filter old messages) caused by the server returning timetoken older than the previous one because of MX.
- Fix the issue because of which all subscriptions of the subscription set have been requested to handle the received event.
|
Added | - Depending on client configuration, it will emit
status for heartbeat, which has been started by the SharedWorker backup heartbeat timer mechanism. - Stop heartbeats until the auth key / access token is changed. On change,
SharedWorker will send an immediate heartbeat request.
|
Fixed | - Fix the issue with the global subscription set (used for legacy interface support) because of which
unsubscribe with the legacy interface wasn't able to complete the unsubscribe process. - Fix the issue because of which rapid subscription (from other PubNub clients in response to received subscribe response) throttling causes delayed channel list change.
|
Modified | - Restart the timer of the backup heartbeat if an explicit heartbeat request has been received from the main PubNub client.
- Modify the
log payload for SharedWorker to make it possible to log sent / received requests information to the main browser window (not to the SharedWorker console).
|
Added | - Launch a backup heartbeat timer per registered PubNub instance in SharedWorker context to protect against browsers throttling of background (hidden) tabs.
|
Fixed | - Fix issue because of which in new flow
heartbeat request not cancelled properly when issued in burst. - Fix issue because resource names, which consist only of integers, have been decoded as Unicode characters.
- Fix issue because the entity that has been created with
-pnpres suffix has been removed from subscription loop during unsubscribe from entity with presence listening capability.
|
Modified | - Use string names of classes for locations instead of dynamic access to constructor names because it affect how logs looks like after minification.
|
Modified | - Removed deprecation warning from deleteMessages method.
- Added code snippets for docs.
|
Fixed | - Fix issue that has been caused by the race of conditions on tab close and led to
presence leave for channels that were still in use.
|
Modified | - Make leeway depending from the minimal heartbeat interval (5% from it) to filter out too rapid heartbeat calls.
|
Added | - Standardize information printed by logger and places where it is printed.
- Add
logLevel and loggers configuration parameters to specify minimum log level and list of custom Logger interface implementations (when own logger needed). - Add the
cloneEmpty function, which will let you make a “bare” copy of a subscription / subscription set object, which will have shared state with the original but clear list of event handlers. - Add a parameter for subscription where closure can be provided and filter events which should be delivered with listener.
- When a new subscription object is created, it won't notify about messages from the past (edge case with active and inactive channel subscriptions).
|
Fixed | - Fixed issue because of which client retried for both bad request and access denied.
|
Modified | - Add current list of channels and groups to connected status.
|
Fixed | - Add missing
NoneRetryPolicy static field for PubNub class.
|
Modified | RetryPolicy.None exported as a function to not affect tree-shaking and modules exclusion possibilities.
|
Added | - The configured retry policy will be used for any failed request.
- By default, the SDK is configured to use an exponential retry policy for failed subscribe requests.
|
Fixed | PNSubscriptionChangedCategory will be emitted each time the list of channels and groups is changing.
|
Modified | - Automated request retry has been moved into the network layer to handle all requests (not only subscribed).
- Properly destroy
PubNub instance after each test case to make sure that all connections closed and prevent tests from hanging.
|
Added | - Compress the published payload if sent by POST.
- Explicitly add
gzip, deflate to the Accept-Encoding header.
|
Fixed | - Fix missing
heartbeat and leave REST API calls when the event engine is enabled and presenceTimeout or heartbeatInterval not set.
|
Fixed | - Fix issue because of which channels and groups aggregated inside PubNub client state objects and didn't clean up properly on unsubscribe / invalidate.
|
Added | - Remove minimum limit for presence timeout (was 20 seconds) to make it possible specify shorter intervals.
|
Fixed | - Fix issue because of which channels not aggregated and caused separate heartbeat requests.
|
Added | - On
pagehide without bfcache client on page will send terminate to Shared Worker for early long-poll request termination and leave request sending (if configured).
|
Fixed | - Fix an issue with the client's state update in Shared Worker caused by
-pnpres suffixed entries being removed from heartbeat / leave request channels and groups.
|
Added | SubscriptionSet will re-add listener every time when Subscription or SubscriptionSet added to it - this will let receive updates from newly added subscribe capable objects.
|
Fixed | - Fix issue because of errors returned by
fetch taken from iframe (to protect against monkey-patching by APM packages) was't handled as Error.
|
Modified | - Use access token (auth key) content instead of base64 encoded token to identify PubNub clients, which can be used for requests aggregation.
|
Added | - BREAKING CHANGES:
SubscriptionSet will subscribe / unsubscribe added / removed Subscription or SubscriptionSet objects if the set itself already subscribed.
|
Fixed | - Fix issue because of which throttle didn't consider difference in client settings (throttled only by user ID and subscribe key, which is not enough).
- With the fix, smart heartbeat as feature has been added to the SDK, and it is disabled by default.
|
Added | - Add
useSmartHeartbeat configuration option which allows ignoring implicit heartbeat (with successful subscribe response) and keep sending heartbeat calls with fixed intervals. subscriptionWorkerOfflineClientsCheckInterval configuration option can be used to configure the interval at which “offline” PubNub clients (when tab closed) detection will be done.subscriptionWorkerUnsubscribeOfflineClients configuration option can be used to force unsubscribe (presence leave) for “offline” PubNub clients (when tab closed).
|
Fixed | - Fix issue because of which code doesn't handle edge case when
fetch reject with empty object and not Error .
|
Modified | - Remove
-pnpres channels and groups from presence leave and heartbeat requests.
|
Added | - Emit 'PNDisconnectedUnexpectedlyCategory' in cases when client receives bad request or unexpected / malformed service response.
|
Modified | - Move error / malformed response handling into
AbstractRequest to simplify actual endpoint classes.
|
Fixed | - Fix issue because of which APM fix worked only when the client has been configured with
logVerbosity: true .
|
Added | - For the browser version of PubNub SDK, add the ability to switch between
fetch and xhr APIs (transport configuration option).
|
Fixed | - Fix issue because of which, in Event Engine mode, wrong timeout values have been set for requests which create long-poll request.
|
Modified | - Refactor
timeout implementation for fetch transport to properly cancel request when the timeout timer will fire.
|
Fixed | - Fix long-poll request cancellation caused by APM packages monkey patching 'fetch' and try to use 'native' implementation instead of patched.
|
Added | - Pass heartbeat request through
SharedWorker (if used) to optimize the number of requests for clients opened in few tabs and subscribed on same channels / groups list.
|
Modified | - Don't send
heartbeat request to unsubscribe.
|
Added | - A new optional parameter
ifMatchesEtag is added to setUUIDMetadata and setChannelMetadata . When provided, the server compares the argument value with the ETag on the server and if they don't match a HTTP 412 error is returned.
|
Added | - Add
fileRequestTimeout client configuration option which is specific only for requests which upload and download files.
|
Fixed | - Fix issue with
instanceId set to undefined for requests with useInstanceId configuration flag set to true .
|
Fixed | - Fixed issue of hereNow response parsing for
totalOccupancy field.
|
Added | - Add
type field for members and membership objects and subscribe response.
|
Fixed | - Fixed type which limited number of options which can be included into response / used in sorting for members / membership setting API.
- Fix missing
hereNowRefresh flag from the presence object received from subscribe. - Fix issue because of which
logVerbosity set to true still didn't print logs for Node.js.
|
Modified | - Change format and add proper request body output.
|
Fixed | - Fix issue with
Subscription and SubscriptionSet when one can unsubscribe channel / group which is still in use by another. - Fix particular
TypeError emitted when browser forcefully closes long-poll connection before its timeout and reported as bad request. This type of error will be reported as a network error. - Fix issue because of which
node-fetch used default agent, which after Node.js 19+ has keepAlive enabled by default.
|
Fixed | - Fix issue because of which presence events not delivered to the
Subscription and SubscriptionSet objects (only global listeners).
|
Added | - Add custom message type support for the following APIs: publish, signal, share file, subscribe and history.
|
Fixed | - Fix
Actions type definition.
|
Modified | - Remove indexed signature for publish.
- Add serializable objects to
Payload type. - Aggregate generated types definitions.
- Fix definition of type which represents message actions received from history and list of users which added action of specific type and value to the message.
- Remove redundant indexed signature from publish message parameters type definition.
- Extend
Payload type definition with objects which can be serialized by JSON.stringify using toJSON() methods. - Aggregate multiple types definitions into single type definition type with proper type names and namespaces.
- Add the Subscribe Event Engine and Event Listener types to the bundled types definition file.
|
Fixed | - Revert fix created to handle browser timeouts (not gracefully). The Web Fetch API doesn't have descriptive error information, and it sends
TypeError for both cases when connection closed by browser or network issue (blocked domain).
|
Fixed | - Fix issue because of which leave request modified wrong URL path component with actual channels.
- Fix issue because of which removed channels / groups didn't cancel previous subscribe request to re-subscribe with new set of channels / groups.
- Fix issue because of which suitable active PubNub clients subscription not has been used for aggregation and caused additional connections or wrong set of channels / groups.
|
Modified | - Pre-process entries from subscribe response to filter out updates which has been received for channels and groups which are not part of subscription loop (subscription aggregation in shared worker).
- Point to the built-in types definition file when package used with
npm / yarn .
|
Fixed | - Fix issue because of which timeout enforced by browser triggered wrong error status category.
|
Fixed | - Resolves the issue of manually included presence channels not being unsubscribed from the subscription set.
|
Modified | - Fix PubNub client configuration and listener documentation.
|
Fixed | - Subscription/SubscriptionSet's
subscribe() method accepts timetoken parameter. Instead as in subscriptionOption.
|
Fixed | - Fix issue because of which single string sort option wasn't serialized properly.
|
Fixed | - Fix issue because of which
heartbeatInterval wasn't computed if presenceTimeout provided during PubNub client configuration.
|
Fixed | - Fix revoke token method signature where mistakenly expected object with
token field.
|
Added | - Add environment flags processing to opt-out feature modules from built bundles.
|
Fixed | - Add
application/json content type for Grant Token , Add Message Action and Generate File Upload URL endpoints.
|
Added | - Use
SharedWorker instead of Service Worker for better PubNub client instances feedback. - Add configuration option to enable debug log output from the subscription
SharedWorker .
|
Modified | - Create types declaration files.
|
Modified | - Provider configuration option to set service worker from the URL (because of browser restrictions for worker files to be registered from the same domain).
|
Added | - Upgraded the network layer, replacing the
superagent module with the Fetch API for browser integrations and node-fetch for npm integrations, ensuring enhanced performance and reliability. - Added service worker .
- Enhanced the subscribe feature with service worker support, improving user experience across multiple browser windows and tabs. The client interface rewritten with TypeScript, which gives an up-to-date interface.
|
Fixed | - Fixes issue of add or remove listener of subscription to/from subscriptionSet.
|
Added | - Added support for pagination params for listChannels API of push notification devices.
|
Fixed | - Fixes issue of App context event handling for channel and membership.
|
Added | - Adding channel, channelGroup, channelMetadata and userMetadata entities to be first-class citizens to access APIs related to them. Currently, access is provided only for subscription API.
|
Added | - Added
enableEventEngine , maintainPresenceState flags and retryConfiguration for retry policy configuration.
|
Fixed | - Fixes issue of allowing duplicate listener registration.
- Fixes file name conflict in lib directory.
|
Fixed | - Handle unencrypted messages in subscribe with cryptoModule configured.
- Fixe for missing parameters to request or filter optional fields for App Context memberships api.
|
Fixed | - Fixes issue of getChannelMembers call not returning status field.
|
Fixed | - Fixes issue of not able to encrypt Blob file content in web.
|
Modified | - Changed license type from MIT to PubNub Software Development Kit License.
|
Fixed | - Fixes issue of
pubnub.decrypt() returning wrong data format.
|
Added | - Add crypto module that allows configure SDK to encrypt and decrypt messages.
|
Fixed | - Improved security of crypto implementation by adding enhanced AES-CBC cryptor.
|
Fixed | - Fixes issue of getting misleading error message when sendFile fails.
|
Fixed | - Fixes issue of having deprecated superagent version.
|
Fixed | - Fixes issue of missing get and set methods for userId field of PubNub configuration.
|
Fixed | - Fixes issue of severe vulnerability warnings for vm2 usage.
|
Added | - Added optional param
withHeartbeat to set state through heartbeat endpoint.
|
Fixed | - Fixes a case in React Native with using an error interface in superagent.
- Fixes issue of getFileUrl not setting auth value as token string when token is set.
|
Fixed | - Removes remains of Buffer from the crypto module.
|
Added | - Allows to specify users and spaces in grantToken method.
- Allows to use userId instead of uuid in configuration.
|
Fixed | - Fixes parseToken issues on Web and React Native.
|
Added | - Added user and space memberships related methods.
- Added
type and status fields in User and Space . status field in memberships.
|
Fixed | - Fixes export issue for Node and update config for es module compatibility.
|
Modified | - BREAKING CHANGES: Removed objects v1 methods support.
|
Added | - Added a TypeScript build chain and moved from webpack to rollup.
- Added an initial implementation of Event Engine.
|
Fixed | - Unsubscribe fix unsubscribe from channel group presence
|
Modified | - BREAKING CHANGES:
uuid is required parameter in PubNub constructor.
|
Added | - Add revoke token feature.
|
Fixed | - Remove isomorphic-webcrypto polyfill for web Add buffer polyfill to react native.
|
Added | - Allows to specify multiple origins in the config, which enables domain sharding for custom origins.
|
Fixed | - Fix listener callback is invoked multiple times.
|
Fixed | - Update
.npmignore and excluded resources from from NPM package.
|
Fixed | - Fixes issue of performing file publish message retry according to
fileUploadPublishRetryLimit setting of PubNub instance.
|
Added | - Added support for Objects v2 in PAM v3 api.
|
Fixed | - Fixes issue related to file decryption when cipherkey is provided in method.
|
Fixed | - Fixes issue of signature does not match error with
getAllUUIDMetadata call. - Error handling with global hereNow call to provide detailed error message when feature not enabled.
|
Added | - Add grantToken support for channel and group resources.
|
Modified | - BREAKING CHANGE - Set
true for useRandomIVs by default.
|
Fixed | - Fix
channel and uuid which is used with: files API, Objects and presence.
|
Modified | - Set default increased limit for message count of History v3 api single call.
|
Fixed | - Fixes issue of missing more field in fetch messages response.
|
Added | - Adds timetoken of file publish in the sendFile response.
|
Fixed | - Fixes getFileUrl so that it includes auth and signature query params.
- Fixes downloadFile method to generate correct signature.
|
Fixed | - Fixes compatibility with @sentry/react-native library.
|
Added | - Added support for managing permissions of objects v2 while applying PAM v2.
|
Fixed | - Fix uncaught promise exception in subscription manager caused by error in user code inside of subscription handlers. Error will be handled and returned to status handler with PNUnknownCategory category where errorData can be examined.
|
Added | - Add file download to Blob in React Native.
|
Added | - Add support for file upload via file URI in React Native.
|
Fixed | - Fix file download to ArrayBuffer in React Native.
|
Fixed | - Fixes an artifact where ract-native entrypoint didnt use ssl.
|
Fixed | - Fixes an issue with react-native entrypoint where interfaces to File and Crypto are not included in the build.
- Fixes the ability to sendByPost in publish.
- Fixes an issue where getFileUrl returned and URI without a protocol.
- Fixes an issue where storeInHistory false would not include the param.
- Removes mime types dependency since that will be handled by the server.
- Adds userMetadata to file event listener.
|
Fixed | - Move @babel/runtime to runtime dependency.
|
Added | - Allows to upload files to channels, download them with optional encryption support.
- Allows to enable random IVs when encrypting messages.
|
Fixed | - Fixes a bug with PAM and Objects v2.
|
Fixed | - Fixes issue of high cpu usage when heartbeat interval is not set.
|
Fixed | - getAllChannelMetadata no longer includes customFields by default.
- removeChannelMetadata no longer hits wrong endpoint.
- getMemberships and getChannelMembers now includes customFields by default.
- getAllUUIDMetadata now includes totalCount by default.
- getAllUUIDMetadata no longer includes limit by default.
- all membership and channel members methods now accept a callback.
- all objects v2 methods are properly typed now to include an optional callback.
- getMemberships and getChannelMembers now include totalCount, prev, and next in the response.
|
Fixed | - Fixes a bug in removeChannelMembers and removeMemberships.
|
Fixed | - Ensure proper bytes padding in ArrayBuffer prepared for
cbor-js library.
|
Added | - Added Objects v2 API and deprecated Objects v1 API.
|
Added | - Added support for delete permission in the grant method of accesses manager.
|
Fixed | - Update READMEmd CDN links during deployment.
- Fix pre-compiled scripts update.
|
Added | - Add telemetry (latency) for all existing operation types.
|
Fixed | - Replace
cbor-sync module with cbor-js for client implementation for web to fix compatibility with Salesforce Lightning Web Components.
|
Modified | - Support for APNS2 Push API
|
Fixed | - Restore functionality to set heartbeat interval when presence timeout is set below the default
|
Fixed | - disable presence heartbeats by default
|
Fixed | - Make changes in fetch_messages endpoint to move message actions (if any) for message from 'data' to 'actions' property (old 'data' will be in place for few updates to not break existing clients).
|
Modified | - fix PAMv3 tests mocked signature
- fix lint warnings for tests and code
- fix gulp build so that failures in test and lint will trigger failure in travis
|
Added | - Add Message Actions API support which allow to: add, remove and fetch previously added actions
- Add new arguments to fetch messages function which allow to fetch previously added actions and message metadata
- Add new handler which can be used to track message actions addition / removal events
|
Fixed | - Ensures history response is an array before iterating it
|
Fixed | - Add support for auth tokens with Objects for Users, Spaces and Memberships
|
Fixed | - Fix issue with subdomains ending in 'ps'
|
Fixed | - Fix titanium build to support recent version
|
Modified | - Add Objects support for Users, Spaces and Memberships
|
Fixed | - Fix regression: 'PubNub is not a constructor' in Node.js
|
Modified | - Add minimum presence timeout
|
Modified | - Added support to enable heartbeat requests while subscribe when heartbeat interval is provided
|
Modified | - Added try catch block to handle exception for JSON.parse function
- Updated default origin to ps.pndsn.com
|
Modified | - Maintains the state when the presence heartbeat is explicitly disabled
|
Modified | - Disables the presence heartbeat by default when a subscribe is called. Presence heartbeat can still be enabled explicitly.
|
Modified | - The
timetoken parameter is deprecated in the message-counts function. Use 'channelTimetokens' instead, pass one value in 'channelTimetokens' to achieve the same results.
|
Added | |
Modified | - use null instead of '' for NativeScript networking module
|
Modified | - update dependencies
- fix flow process on nativescript
|
Fixed | - fix POST for nativescript adapter over android
|
Modified | - return error parameter into errorData when logVerbosity = true
|
Modified | - add stringifiedTimeToken into the fetch endpoint
|
Fixed | - avoid security vulnerability in growl < 1.10.0
|
Added | - subscribe without using the heartbeat loop with flag withHeartbeats = false
|
Fixed | |
Modified | - categorize ETIMEDOUT errors as PNNetworkIssuesCategory
|
Fixed | - fix signature to delete message
|
Modified | - allow set ssl to false for nodejs
|
Added | - add support for heartbeat sending without subscription via .presence()
- add method setProxy for Nodejs
- set ssl to true for nodejs by default
|
Added | - add support for Native Script
|
Modified | - add missing flow types
- upgrade superagent to ^3.8.1
|
Modified | - keepAlive is now initialized globally instead of per-call, allowing better connection reuse
|
Added | - added sdkName configuration parameter which allow completely override pnsdk in request query
|
Modified | - allow disabling of heartbeats by passing 0 during initialization.
|
Fixed | - fix UUID library to work in browsers.
|
Fixed | - fix incorrect packaging of lil-uuid and uuid
|
Added | - support delete messages from history
|
Modified | - swap uuid generator with support for IE9 and IE10
|
Modified | - fix typo to enable http keep alive support
|
Modified | - Support optional message deduping via the dedupeOnSubscribe config
- Do not issue leave events if the channel mix is empty.
|
Modified | - Allow disable of heartbeats by passing heartbeatInterval = 0
|
Modified | - patch up 503 reporting
- fix issue with where now and invalid server response
- fix issue with here now and invalid server response
|
Modified | - fix issue of net with android for titanium
|
Added | - add additional hooks for connectivity
- add auto network detection
|
Modified | - fix issue of net with android for react-native
|
Added | - metadata is now passed on message envelope
|
Added | - add support custom encryption and decryption
|
Added | - integrate fetch for react-native SDK
|
Modified | - announce when subscription get reactivated
- stop heartbeats for responses with status PNBadRequestCategory
|
Added | - allow manual control over network state via listenToBrowserNetworkEvents
|
Added | - add support for titanium SDK
|
Modified | - fix support for react-native SDK
- add validation for web distribution
|
Added | - add support for presence deltas.
- keep track of new and upcoming timetokens on status messages
|
Added | - add optional support for keepAlive by passing the keepAlive config into the init logic
|
Modified | - add guard to check for channel or channel group on state setting
- add guard to check for publish, secret keys when performing a grant
|
Modified | - downgrade superagent to v2; add a new entry point for react native.
|
Modified | - adjust compilation for webpack based compilations
|
Modified | - upgrade dependencies; fix up linting.
- handle network outage cases for correct reporting.
|
Modified | - bump version after v3 release.
|
Modified | - removes bundling of package.json into the dist file
|
Modified | - SDK now supports the restore config to allow message catch-up
|
Modified | - bulk history exposed via pubnub.fetchMessages
- publish supports custom ttl interval
- v2 for audit and grant; no consumer facing changes.
- fixes for param validation on usage of promises
|
Modified | - SDK reports on the id of the publisher in the message
|
Modified | - Detection of support of promises improved.
|
Modified | - Fixes on encoding of apostrophes.
|
Modified | - Add promise support on setState operation (@jskrzypek)
- Add hooks to stop polling time when the number of subscriptions drops to 0 (@jasonpoe)
|
Modified | - Encode signatures to avoid sending restricted characters
|
Modified | - Add optional support for promises on all endpoints.
- History always returns timetokens in the payloads.
- Optionally, if queue size is set, send status on queue size threshold
|
Modified | - Fix state setting for channels with reserved tags.
|
Modified | - Reset timetoken when all unsubscribes happen
- Sign requests when a a secret key is passed
|
Modified | - Propagate status events to the status callback on subscribe operations.
|
Modified | - affectedChannels and affectedChannelGroups are now populated on subscribe / unsubscribe events
|
Modified | - Expose decryption and encryption as a global
|
Modified | - Channel / subscription items are populated in
- Constants for operation and category are exposed on global object
|
Modified | - Dependency upgrades
- Try..catch wrapped around localStorage for iframe compliance
|
Modified | - Adjustment of reconnection policies for web distributions.
- PNSDK support for partner identification
|
Modified | - Stop exposing .babelrc which causes unpredictable behavior on react native.
|
Modified | - Adjust handling of presence payloads for state settings.
- Triggering disconnect, reconnect events on Web distributions.
- React Native adjustments to package.json information.
|
Added | - Exposing generateUUID method to create uuids.
|
Modified | - Global Here Now parsing adjustments.
|
Modified | - Adjustments to internet disconnects on node.
|
Fixed | - Fixes to avoid double encoding on JSON payloads.
|
Added | - New iteration of JS / Node SDK family
|