v1.1.3 Ship all of our packages as both ESM and CJS modules. By upgrading, your project’s bundler can now perform (better) tree-shaking on the Liveblocks code.
You can expect (at least) the following bundle size reductions:
@liveblocks/clientfrom 80kB → 70kB@liveblocks/reactfrom 129kB → 80kB@liveblocks/reduxfrom 84kB → 38kB@liveblocks/zustandfrom 83kB → 37kB@liveblocks/yjsfrom 129kB → 74kB
v1.1.2 @liveblocks/yjsAdded Yjs support to open beta through the new
@liveblocks/yjspackage (not stable yet).- Fixes a missing internal export.
v1.1.1 - Fixes a bug where under certain circumstances the Liveblocks client could
incorrectly throw a
Not started yeterror message.
- Fixes a bug where under certain circumstances the Liveblocks client could
incorrectly throw a
v1.1.0 This release improves the client’s internals to ensure a more reliable connection with Liveblocks servers.
@liveblocks/client- New APIs:
room.getStatus(): returns the current status of the WebSocket connection:"initial","connecting","connected","reconnecting", or"disconnected"room.subscribe("status"): subscribe to changes of the connection status.room.subscribe("lost-connection"): high-level API to get informed when Liveblocks’ automatic reconnection process is taking longer than usual, so you can show a toast message on screen. (See this example for an illustration.)
- New behavior:
- The client will stop retrying to establish a connection in cases where retrying would not help. For example an explicit 403 forbidden response from your backend, or a configuration error.
- The client will more quickly reconnect even after long periods of sleep.
@liveblocks/react-
New APIs:
useStatus()- React hook version ofroom.getStatus()useLostConnectionListener()- React hook version ofroom.subscribe("lost-connection")(See this example for an illustration.)
-
Reconnection would sometimes not work after long periods of sleep. Waking up is now instant.
-
React clients using Suspense could sometimes incorrectly bounce back to the Suspense boundary after a successful load. No longer!
-
Client could sometimes not load storage after reconnecting. Not anymore!
-
Others array will no longer flash during an internal reconnect.
-
DevTools now keeps working even when the client goes offline.
These APIs still work, but are replaced by newer APIs. The old APIs will be removed in a future release of Liveblocks.
Old connection status codes are replaced by the new ones:
❌ Old statuses ✅ New statuses closed initial authenticating connecting connecting connecting open connected unavailable reconnecting failed disconnected Recommended steps to upgrade:
- ❌
room.getConnectionState()→ ✅room.getStatus() - ❌
room.subscribe('connection')→ ✅room.subscribe('status') - Old client options:
- ❌
clientOptions.fetchPolyfill - ❌
clientOptions.WebSocketPolyfill→ ✅clientOptions.polyfills: { fetch, WebSocket }
- ❌
- New APIs:
v1.0.12 create-liveblocks-app- Added
export type TypedRoom = Room<...>to init command for non-React apps.
- Added
v1.0.11 @liveblocks/client- Fix a bug where undo/redo on
LiveObjectcreates exponentially larger deltas.
- Fix a bug where undo/redo on
v1.0.10 @liveblocks/client- Fix a bug related to proactive token expiration detection.
- Internal refactorings.
- Add unstable_fallbackToHTTP option to the core client to support messages over 1MB.
@liveblocks/node- Fix incorrect status code when Liveblocks server cannot be reached temporarily.
v1.0.9 @liveblocks/client- Export
LiveListUpdate,LiveMapUpdate, andLiveObjectUpdatetypes used by the storage update callback. - Export new utility,
toPlainLson, to assist in calling the initialize storage API. - Internal refactorings.
- Export
v1.0.8 @liveblocks/client- Internal refactorings.
create-liveblocks-app- Added
flags
for creating config files with
--init. (e.g.--framework react) - Added an error if an incorrect flag is used.
- Slightly changed the format of the default config file.
@liveblocks/client- Internal refactorings.
v1.0.7 - Private API changes only.