PowerSync Product Team

JS Web Client SDK: v1.2.0

AUTHOR: PowerSync Product Team

We are pleased to announce the release of version 1.2.0 of the PowerSync JavaScript/web client SDK.

See the full changelog below.

Have any questions or feedback? Chat with us and the PowerSync community on Discord.





  • Updated dependencies:

    • [FIXED] CRUD uploads which would not retry after failing until the connection status was updated. A failed CRUD operation should not change the status to connected: false.


  • Updated dependencies.


  • This SDK is now in a stable release

  • Updated dependencies:

    • [ADDED] A mechanism for throttling watch callback executions.


  • [FIXED] The issue where watched queries would not update after syncing upstream changes.


  • [IMPROVED] Allow the package to be used without web workers.


  • [IMPROVED] The import and usage of the BSON library.


  • Updated dependencies:

    • [FIXED] An issue with Vite not being able to resolve Sourcemaps by introducing a tsconfig.base file in the root of the repo.


  • [ADDED] Support for WebSocket sync stream connections. Learn more here.

  • Updated dependencies:

    • [IMPROVED] Removed the uuid dependency.


  • Updated dependencies:

    • [FIXED] hasSynced to also change when there is no data on app load.


  • Updated dependencies:

    • [IMPROVED] Allow compilable queries to be used as hook arguments so that queries from an ORM can be used.

    • [FIXED]disconnectAndClear() not clearing ps_untyped records.

    • [FIXED] Incorrect type of Schema.tables.


  • [IMRPOVED] Renamed the package from @journeyapps/powersync- to @powersync/. The @journeyapps/powersync-sdk-web package is deprecated and the renamed package is published here:

  • Updated dependencies:

    • [FIXED] Default onError callback for watch() and onChange() that used an unbounded member.


  • Updated dependencies:

    • [ADDED] Support for Full-text search and enabled recursive triggers.


  • Updated dependencies:

    • [ADDED]hasSynced property to SyncStatus. This value is managed in AbstractPowerSyncDatabase, and becomes true after the first sync has completed.

    • [ADDED] Added waitForFirstSync method to allow users to await on the state change of hasSynced to true.

    • [FIXED] Resolving tables for watch() before handling any results, eliminating a potential race condition between initial results and updates.

    • [FIXED] Also handled a potential uncaught exception.


  • [ADDED] The ability to disable broadcast logging in WebPowerSyncFlags.

  • [FIXED] Shared sync broadcast logger sanitization and error handling.

  • Updated dependencies:

    • [ADDED] Added executeBatch method. This allows a SQL statement with multiple parameters to be executed in a single transaction, improving performance and consistency.

    • [FIXED] A potential unhandled exception when aborting a stream fetch request for the /sync/stream endpoint.


  • Updated dependencies:

    • [IMPROVED] Introduced overloaded versions of the watch and onChange methods to support a callback approach to handle results and errors alongside the existing AsyncGenerator mechanism.


  • [IMPROVED] Minor code cleanup for the shared sync worker.

  • Updated dependencies:

    • [FIXED] A regression where watched queries would update for table changes in external (not in query) tables.


  • [IMPROVED] Added some serialization checks for broadcasted logs from the shared web worker. Unserializable items will now return a warning.

  • [FIXED] An issue where SyncBucketStorage logs would not be broadcasted from the shared sync worker to individual tabs.

  • Updated dependencies:

    • [FIXED] An issue where sync stream exceptions would not close previous streaming connections.

    • [IMPROVED] Reduced JS bundle size.


  • [IMPROVED] Multiple tab syncing by unloading stream and sync bucket adapter functionality to shared webworker.

  • Updated dependencies:

    • [ADDED] dispose methods for sync stream clients and better closing of clients.

    • [FIXED] PowerSyncBackendConnector.fetchCredentials type to allow returning null.

    • [IMPROVED] Internally moved crud upload watching to SqliteBucketStorageAdapter.


  • [FIXED] Issue on Next.js 14.1.0 where the shared sync web worker would fail to initialize.

  • Updated dependencies:

    • [ADDED] equals method on CrudEntry class to better align comparison operations with JavaScript.

    • [IMPROVED] AbstractPowerSyncDatabase.getCrudBatch now use a getAll instead of using database.execute.

    • [FIXED] Minor bugs in BucketStorage adapter.

    • [FIXED] Removed object-hash package as a dependency as this caused issues with Next.js 14.1.0.


  • Updated dependencies:

    • [FIXED] Missing transactionId value in the response of getNextCrudTransaction.


  • Updated dependencies:

    • [ADDED] viewName option to Schema Table definitions. This allows for overriding a table's view name, which allows having separate tables for a synced mode and a local-only mode, and moving data between the two.

    • [IMPROVED] Table change updates to be throttled on the trailing edge. This prevents unnecessary query on both the leading and rising edge.


  • [FIXED] Watched queries not updating due to race condition when opening multiple WA-SQLite connections due to initiating multiple PowerSync instances simultaneously.


  • Updated dependencies:

    • [IMPROVED] Connector CRUD uploads will now be triggered whenever an internal CRUD operation change is triggered.

    • [IMPROVED] CRUD upload debouncing will now rather use a throttled approach - executing multiple continuous write/CRUD operations will now trigger a connector upload at most (every) 1 second (by default).

  • [FIXED] A bug where opening multiple WA-SQLite instances to the same DB could break watched queries. This issue could arise when using multiple tabs or when opening multiple PowerSync instances for the same DB (e.g when initializing PowerSync in React strict mode under some circumstances).


  • [ADDED] Two example projects:

  • [IMPROVED] Introduced a new pnpm format script to correctly format corresponding files with prettier.

  • [FIXED] Ignore directives for Vite to enable bundling the workers correctly.


  • Initial beta release.

Powered by LaunchNotes