Skip to content

Version Packages#1027

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main
Open

Version Packages#1027
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@powersync/attachments@3.0.0

Major Changes

  • 57373f9: Remove the deprecated table v1 syntax. To create tables based on column arrays, use the new ResolvedTable class.
  • 367ad55: Remove CommonJS distribution.

Patch Changes

  • Updated dependencies [ce608a0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [2c3370d]
  • Updated dependencies [06db9d8]
    • @powersync/common@2.0.0

@powersync/common@2.0.0

Major Changes

  • ce608a0: Refactor open and sync options:

    • Sync options are now represented through the SyncOptions interface alone, which
      replaces PowerSyncConnectionOptions and several other existing types.
      Sync options are only set on the call to connect(), and can no longer be set when
      constructing a database.
      SyncOptions is the same type across all SDKs, SDK-specific options need to be specified
      when opening a database.
    • Refactor open options: Each SDK has its own option type (but most use PowerSyncDatabaseOptions).
      Using a custom open factory or an existing DBAdapter instance now requires the factory and
      opened key, respectively (previously these options shadowed the database field).
      On the web, all options that previously required a WASQLiteOpenFactory are now available on
      database too.
      Also on the web, all database open options are represented via WebSQLOpenOptions. Additional
      options related to the sync process have moved to the WebSpecificOptions type to separate those
      concerns better.
    • Aligning the implementation with the public documentation, the default connection method has changed
      from WebSockets to HTTP.

    As a small guide on how to upgrade, consider these examples:

    // Before: Sync options set on database constructor
    new PowerSyncDatabase({database: { dbFilename: 'test.db' }, retryDelayMs: 1000});
    
    // After: Sync options can only be set when connecting
    const db = new PowerSyncDatabase({database: { dbFilename: 'test.db' }});
    await db.connect(yourConnector, { retryDelayMs: 1000 });
    // Before: Using a custom factory
    new PowerSyncDatabase({database: new OPSqliteOpenFactory({ dbFilename: 'test.db' })});
    
    // After: Option renamed to factory
    new PowerSyncDatabase({factory: new OPSqliteOpenFactory({ dbFilename: 'test.db' })});
    // Before (web specific): Using WASQLiteOpenFactory to specify a custom VFS
    new PowerSyncDatabase({
      schema: AppSchema,
      database: new WASQLiteOpenFactory({
        dbFilename: 'exampleVFS.db',
        vfs: WASQLiteVFS.OPFSWriteAheadVFS,
        additionalReaders: 2
      })
    });
    
    // After: Options are available on database variant, factory no longer necessary
    new PowerSyncDatabase({
      schema: AppSchema,
      database: {
        dbFilename: 'exampleVFS.db',
        vfs: WASQLiteVFS.OPFSWriteAheadVFS,
        additionalReaders: 2
      }
    });
    // Before (web specific): Misc options in flags field
    new PowerSyncDatabase({
      schema: AppSchema,
      database: { dbFilename: 'test.db' },
      flags: { broadcastLogs: true, disableSSRWarning: true }
    });
    
    // After: Flags moved to more specific keys.
    new PowerSyncDatabase({
      schema: AppSchema,
      database: {
        dbFilename: 'test.db',
        disableSSRWarning: true,
      },
      broadcastLogs: true,
    });
  • 57373f9: Remove the deprecated table v1 syntax. To create tables based on column arrays, use the new ResolvedTable class.

  • 299adaf: Remove SQLOnChangeOptions.rawTableNames and WatchOnChangeHandler.onError - both were already ignored before.

  • 2c3370d: Make DBAdapter and LockContext abstract classes, refactor QueryResult to provide column names and raw data.

  • 06db9d8: Remove js-logger dependency in favor of a custom logger interface that needs to be passed to PowerSync databases explicitly.

Minor Changes

  • 5650e7f: Rename AbstractPowerSyncDatabase to CommonPowerSyncDatabase, make it a TypeScript interface.

    CrudEntry is now a TypeScript interface, remove it's constructor and CrudEntry.fromRow.

    SyncStatus is no longer constructable in user code.

    Deprecate DataFlowStatus. Use fields on SyncStatus directly instead.

@powersync/kysely-driver@2.0.0

Major Changes

  • 367ad55: Remove CommonJS distribution.

Patch Changes

  • Updated dependencies [ce608a0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [2c3370d]
  • Updated dependencies [06db9d8]
    • @powersync/common@2.0.0

@powersync/react@2.0.0

Major Changes

  • 299adaf: Breaking: Remove usePowerSyncQuery and usePowerSyncWatchedQuery (use useQuery instead) and usePowerSyncStatus (use useStatus instead).

Patch Changes

  • Updated dependencies [ce608a0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [2c3370d]
  • Updated dependencies [06db9d8]
    • @powersync/common@2.0.0

@powersync/react-native@2.0.0

Major Changes

  • 57373f9: Remove the deprecated table v1 syntax. To create tables based on column arrays, use the new ResolvedTable class.

  • 1a644f9: This release removes polyfills previously embedded into the React Native SDK to support
    older React Native versions.

    In particular, the following polyfills have been removed:

    • TextEncoder and TextDecoder: Support for TextDecoder has recently been added to React Native,
      and the SDK only uses it with very old PowerSync service versions as binary streams are preferred.
    • react-native-fetch-api: The package was effectively unmaintained. We now use expo/fetch as a default
      HTTP client. When unavailable, we fall back to the builtin fetch polyfill in React Native.
      Note that this doesn't support streams, so we recommend enabling { connectionMethod: SyncStreamConnectionMethod.WEB_SOCKET } for non-Expo apps with PowerSync.
    • ReadableStream: We expect that fetch implementations correctly implement Response.getReader().
  • 299adaf: Remove SQLOnChangeOptions.rawTableNames and WatchOnChangeHandler.onError - both were already ignored before.

  • 5650e7f: Rename AbstractPowerSyncDatabase to CommonPowerSyncDatabase, make it a TypeScript interface.

    CrudEntry is now a TypeScript interface, remove it's constructor and CrudEntry.fromRow.

    SyncStatus is no longer constructable in user code.

    Deprecate DataFlowStatus. Use fields on SyncStatus directly instead.

  • 2c3370d: Make DBAdapter and LockContext abstract classes, refactor QueryResult to provide column names and raw data.

  • 1a644f9: Remove support for React Native Quick SQLite (RNQS). Additionally, OPSqliteOpenFactory is now the default and part
    of the @powersync/react-native package.

    To upgrade, drop dependencies on @powersync/op-sqlite. If you've previously used RNQS, also add a dependency on
    @op-engineering/op-sqlite.

    If you've previously used a OPSqliteOpenFactory, all options are now available on the PowerSyncDatabase
    constructor directly:

    // Before
    const db = new PowerSyncDatabase({
      database: new OPSqliteOpenFactory({dbFilename: 'test.db'})
    });
    
    // After
    const db = new PowerSyncDatabase({
      database: { dbFilename: 'test.db' }
    });

Minor Changes

  • 9caca19: Internal: Refactor remote to load WebSocket support lazily, reducing the size of the main PowerSync SDK.

Patch Changes

  • Updated dependencies [ce608a0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [2c3370d]
  • Updated dependencies [06db9d8]
    • @powersync/common@2.0.0
    • @powersync/react@2.0.0
    • @powersync/shared-internals@1.0.0

@powersync/web@2.0.0

Major Changes

  • ce608a0: Refactor open and sync options:

    • Sync options are now represented through the SyncOptions interface alone, which
      replaces PowerSyncConnectionOptions and several other existing types.
      Sync options are only set on the call to connect(), and can no longer be set when
      constructing a database.
      SyncOptions is the same type across all SDKs, SDK-specific options need to be specified
      when opening a database.
    • Refactor open options: Each SDK has its own option type (but most use PowerSyncDatabaseOptions).
      Using a custom open factory or an existing DBAdapter instance now requires the factory and
      opened key, respectively (previously these options shadowed the database field).
      On the web, all options that previously required a WASQLiteOpenFactory are now available on
      database too.
      Also on the web, all database open options are represented via WebSQLOpenOptions. Additional
      options related to the sync process have moved to the WebSpecificOptions type to separate those
      concerns better.
    • Aligning the implementation with the public documentation, the default connection method has changed
      from WebSockets to HTTP.

    As a small guide on how to upgrade, consider these examples:

    // Before: Sync options set on database constructor
    new PowerSyncDatabase({database: { dbFilename: 'test.db' }, retryDelayMs: 1000});
    
    // After: Sync options can only be set when connecting
    const db = new PowerSyncDatabase({database: { dbFilename: 'test.db' }});
    await db.connect(yourConnector, { retryDelayMs: 1000 });
    // Before: Using a custom factory
    new PowerSyncDatabase({database: new OPSqliteOpenFactory({ dbFilename: 'test.db' })});
    
    // After: Option renamed to factory
    new PowerSyncDatabase({factory: new OPSqliteOpenFactory({ dbFilename: 'test.db' })});
    // Before (web specific): Using WASQLiteOpenFactory to specify a custom VFS
    new PowerSyncDatabase({
      schema: AppSchema,
      database: new WASQLiteOpenFactory({
        dbFilename: 'exampleVFS.db',
        vfs: WASQLiteVFS.OPFSWriteAheadVFS,
        additionalReaders: 2
      })
    });
    
    // After: Options are available on database variant, factory no longer necessary
    new PowerSyncDatabase({
      schema: AppSchema,
      database: {
        dbFilename: 'exampleVFS.db',
        vfs: WASQLiteVFS.OPFSWriteAheadVFS,
        additionalReaders: 2
      }
    });
    // Before (web specific): Misc options in flags field
    new PowerSyncDatabase({
      schema: AppSchema,
      database: { dbFilename: 'test.db' },
      flags: { broadcastLogs: true, disableSSRWarning: true }
    });
    
    // After: Flags moved to more specific keys.
    new PowerSyncDatabase({
      schema: AppSchema,
      database: {
        dbFilename: 'test.db',
        disableSSRWarning: true,
      },
      broadcastLogs: true,
    });
  • 57373f9: Remove the deprecated table v1 syntax. To create tables based on column arrays, use the new ResolvedTable class.

  • 299adaf: Remove SQLOnChangeOptions.rawTableNames and WatchOnChangeHandler.onError - both were already ignored before.

  • 5650e7f: Rename AbstractPowerSyncDatabase to CommonPowerSyncDatabase, make it a TypeScript interface.

    CrudEntry is now a TypeScript interface, remove it's constructor and CrudEntry.fromRow.

    SyncStatus is no longer constructable in user code.

    Deprecate DataFlowStatus. Use fields on SyncStatus directly instead.

  • 45f4d61: To reduce setup complexity, the database and sync workers have moved to a single file.

    The UMD build for the main library has been removed, import @powersync/web directly and
    remove import mappings pointing to @powersync/web/umd.

    If you were using the pre-bundled sync or web workers, run powersync-web copy-assets again
    and update URLs from /@powersync/worker/WASQLiteDB.umd.js and /@powersync/worker/SharedSyncImplementation.umd.js to /@powersync/worker.js.

  • 2c3370d: Make DBAdapter and LockContext abstract classes, refactor QueryResult to provide column names and raw data.

Minor Changes

  • 97358d0: Allow using in-memory databases with WASQLiteVFS.InMemoryVFS.
  • 9caca19: Internal: Refactor remote to load WebSocket support lazily, reducing the size of the main PowerSync SDK.

Patch Changes

  • Updated dependencies [ce608a0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [2c3370d]
  • Updated dependencies [06db9d8]
    • @powersync/common@2.0.0
    • @powersync/shared-internals@1.0.0

@powersync/capacitor@1.0.0

Minor Changes

  • ce608a0: Refactor open and sync options:

    • Sync options are now represented through the SyncOptions interface alone, which
      replaces PowerSyncConnectionOptions and several other existing types.
      Sync options are only set on the call to connect(), and can no longer be set when
      constructing a database.
      SyncOptions is the same type across all SDKs, SDK-specific options need to be specified
      when opening a database.
    • Refactor open options: Each SDK has its own option type (but most use PowerSyncDatabaseOptions).
      Using a custom open factory or an existing DBAdapter instance now requires the factory and
      opened key, respectively (previously these options shadowed the database field).
      On the web, all options that previously required a WASQLiteOpenFactory are now available on
      database too.
      Also on the web, all database open options are represented via WebSQLOpenOptions. Additional
      options related to the sync process have moved to the WebSpecificOptions type to separate those
      concerns better.
    • Aligning the implementation with the public documentation, the default connection method has changed
      from WebSockets to HTTP.

    As a small guide on how to upgrade, consider these examples:

    // Before: Sync options set on database constructor
    new PowerSyncDatabase({database: { dbFilename: 'test.db' }, retryDelayMs: 1000});
    
    // After: Sync options can only be set when connecting
    const db = new PowerSyncDatabase({database: { dbFilename: 'test.db' }});
    await db.connect(yourConnector, { retryDelayMs: 1000 });
    // Before: Using a custom factory
    new PowerSyncDatabase({database: new OPSqliteOpenFactory({ dbFilename: 'test.db' })});
    
    // After: Option renamed to factory
    new PowerSyncDatabase({factory: new OPSqliteOpenFactory({ dbFilename: 'test.db' })});
    // Before (web specific): Using WASQLiteOpenFactory to specify a custom VFS
    new PowerSyncDatabase({
      schema: AppSchema,
      database: new WASQLiteOpenFactory({
        dbFilename: 'exampleVFS.db',
        vfs: WASQLiteVFS.OPFSWriteAheadVFS,
        additionalReaders: 2
      })
    });
    
    // After: Options are available on database variant, factory no longer necessary
    new PowerSyncDatabase({
      schema: AppSchema,
      database: {
        dbFilename: 'exampleVFS.db',
        vfs: WASQLiteVFS.OPFSWriteAheadVFS,
        additionalReaders: 2
      }
    });
    // Before (web specific): Misc options in flags field
    new PowerSyncDatabase({
      schema: AppSchema,
      database: { dbFilename: 'test.db' },
      flags: { broadcastLogs: true, disableSSRWarning: true }
    });
    
    // After: Flags moved to more specific keys.
    new PowerSyncDatabase({
      schema: AppSchema,
      database: {
        dbFilename: 'test.db',
        disableSSRWarning: true,
      },
      broadcastLogs: true,
    });
  • 57373f9: Remove the deprecated table v1 syntax. To create tables based on column arrays, use the new ResolvedTable class.

  • 299adaf: Remove SQLOnChangeOptions.rawTableNames and WatchOnChangeHandler.onError - both were already ignored before.

  • 5650e7f: Rename AbstractPowerSyncDatabase to CommonPowerSyncDatabase, make it a TypeScript interface.

    CrudEntry is now a TypeScript interface, remove it's constructor and CrudEntry.fromRow.

    SyncStatus is no longer constructable in user code.

    Deprecate DataFlowStatus. Use fields on SyncStatus directly instead.

  • 2c3370d: Make DBAdapter and LockContext abstract classes, refactor QueryResult to provide column names and raw data.

Patch Changes

  • Updated dependencies [ce608a0]
  • Updated dependencies [97358d0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [45f4d61]
  • Updated dependencies [9caca19]
  • Updated dependencies [2c3370d]
    • @powersync/web@2.0.0
    • @powersync/shared-internals@1.0.0

@powersync/drizzle-driver@1.0.0

Minor Changes

  • 367ad55: Remove CommonJS distribution.

Patch Changes

  • Updated dependencies [ce608a0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [2c3370d]
  • Updated dependencies [06db9d8]
    • @powersync/common@2.0.0

@powersync/node@1.0.0

Minor Changes

  • ce608a0: Refactor open and sync options:

    • Sync options are now represented through the SyncOptions interface alone, which
      replaces PowerSyncConnectionOptions and several other existing types.
      Sync options are only set on the call to connect(), and can no longer be set when
      constructing a database.
      SyncOptions is the same type across all SDKs, SDK-specific options need to be specified
      when opening a database.
    • Refactor open options: Each SDK has its own option type (but most use PowerSyncDatabaseOptions).
      Using a custom open factory or an existing DBAdapter instance now requires the factory and
      opened key, respectively (previously these options shadowed the database field).
      On the web, all options that previously required a WASQLiteOpenFactory are now available on
      database too.
      Also on the web, all database open options are represented via WebSQLOpenOptions. Additional
      options related to the sync process have moved to the WebSpecificOptions type to separate those
      concerns better.
    • Aligning the implementation with the public documentation, the default connection method has changed
      from WebSockets to HTTP.

    As a small guide on how to upgrade, consider these examples:

    // Before: Sync options set on database constructor
    new PowerSyncDatabase({database: { dbFilename: 'test.db' }, retryDelayMs: 1000});
    
    // After: Sync options can only be set when connecting
    const db = new PowerSyncDatabase({database: { dbFilename: 'test.db' }});
    await db.connect(yourConnector, { retryDelayMs: 1000 });
    // Before: Using a custom factory
    new PowerSyncDatabase({database: new OPSqliteOpenFactory({ dbFilename: 'test.db' })});
    
    // After: Option renamed to factory
    new PowerSyncDatabase({factory: new OPSqliteOpenFactory({ dbFilename: 'test.db' })});
    // Before (web specific): Using WASQLiteOpenFactory to specify a custom VFS
    new PowerSyncDatabase({
      schema: AppSchema,
      database: new WASQLiteOpenFactory({
        dbFilename: 'exampleVFS.db',
        vfs: WASQLiteVFS.OPFSWriteAheadVFS,
        additionalReaders: 2
      })
    });
    
    // After: Options are available on database variant, factory no longer necessary
    new PowerSyncDatabase({
      schema: AppSchema,
      database: {
        dbFilename: 'exampleVFS.db',
        vfs: WASQLiteVFS.OPFSWriteAheadVFS,
        additionalReaders: 2
      }
    });
    // Before (web specific): Misc options in flags field
    new PowerSyncDatabase({
      schema: AppSchema,
      database: { dbFilename: 'test.db' },
      flags: { broadcastLogs: true, disableSSRWarning: true }
    });
    
    // After: Flags moved to more specific keys.
    new PowerSyncDatabase({
      schema: AppSchema,
      database: {
        dbFilename: 'test.db',
        disableSSRWarning: true,
      },
      broadcastLogs: true,
    });
  • 57373f9: Remove the deprecated table v1 syntax. To create tables based on column arrays, use the new ResolvedTable class.

  • 5650e7f: Rename AbstractPowerSyncDatabase to CommonPowerSyncDatabase, make it a TypeScript interface.

    CrudEntry is now a TypeScript interface, remove it's constructor and CrudEntry.fromRow.

    SyncStatus is no longer constructable in user code.

    Deprecate DataFlowStatus. Use fields on SyncStatus directly instead.

  • 9caca19: Internal: Refactor remote to load WebSocket support lazily, reducing the size of the main PowerSync SDK.

  • 2c3370d: Make DBAdapter and LockContext abstract classes, refactor QueryResult to provide column names and raw data.

Patch Changes

  • Updated dependencies [ce608a0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [2c3370d]
  • Updated dependencies [06db9d8]
    • @powersync/common@2.0.0
    • @powersync/shared-internals@1.0.0

@powersync/nuxt@1.0.0

Minor Changes

  • ce608a0: Refactor open and sync options:

    • Sync options are now represented through the SyncOptions interface alone, which
      replaces PowerSyncConnectionOptions and several other existing types.
      Sync options are only set on the call to connect(), and can no longer be set when
      constructing a database.
      SyncOptions is the same type across all SDKs, SDK-specific options need to be specified
      when opening a database.
    • Refactor open options: Each SDK has its own option type (but most use PowerSyncDatabaseOptions).
      Using a custom open factory or an existing DBAdapter instance now requires the factory and
      opened key, respectively (previously these options shadowed the database field).
      On the web, all options that previously required a WASQLiteOpenFactory are now available on
      database too.
      Also on the web, all database open options are represented via WebSQLOpenOptions. Additional
      options related to the sync process have moved to the WebSpecificOptions type to separate those
      concerns better.
    • Aligning the implementation with the public documentation, the default connection method has changed
      from WebSockets to HTTP.

    As a small guide on how to upgrade, consider these examples:

    // Before: Sync options set on database constructor
    new PowerSyncDatabase({database: { dbFilename: 'test.db' }, retryDelayMs: 1000});
    
    // After: Sync options can only be set when connecting
    const db = new PowerSyncDatabase({database: { dbFilename: 'test.db' }});
    await db.connect(yourConnector, { retryDelayMs: 1000 });
    // Before: Using a custom factory
    new PowerSyncDatabase({database: new OPSqliteOpenFactory({ dbFilename: 'test.db' })});
    
    // After: Option renamed to factory
    new PowerSyncDatabase({factory: new OPSqliteOpenFactory({ dbFilename: 'test.db' })});
    // Before (web specific): Using WASQLiteOpenFactory to specify a custom VFS
    new PowerSyncDatabase({
      schema: AppSchema,
      database: new WASQLiteOpenFactory({
        dbFilename: 'exampleVFS.db',
        vfs: WASQLiteVFS.OPFSWriteAheadVFS,
        additionalReaders: 2
      })
    });
    
    // After: Options are available on database variant, factory no longer necessary
    new PowerSyncDatabase({
      schema: AppSchema,
      database: {
        dbFilename: 'exampleVFS.db',
        vfs: WASQLiteVFS.OPFSWriteAheadVFS,
        additionalReaders: 2
      }
    });
    // Before (web specific): Misc options in flags field
    new PowerSyncDatabase({
      schema: AppSchema,
      database: { dbFilename: 'test.db' },
      flags: { broadcastLogs: true, disableSSRWarning: true }
    });
    
    // After: Flags moved to more specific keys.
    new PowerSyncDatabase({
      schema: AppSchema,
      database: {
        dbFilename: 'test.db',
        disableSSRWarning: true,
      },
      broadcastLogs: true,
    });
  • 57373f9: Remove the deprecated table v1 syntax. To create tables based on column arrays, use the new ResolvedTable class.

  • 5650e7f: Rename AbstractPowerSyncDatabase to CommonPowerSyncDatabase, make it a TypeScript interface.

    CrudEntry is now a TypeScript interface, remove it's constructor and CrudEntry.fromRow.

    SyncStatus is no longer constructable in user code.

    Deprecate DataFlowStatus. Use fields on SyncStatus directly instead.

Patch Changes

  • 2c3370d: Make DBAdapter and LockContext abstract classes, refactor QueryResult to provide column names and raw data.
  • Updated dependencies [ce608a0]
  • Updated dependencies [97358d0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [45f4d61]
  • Updated dependencies [9caca19]
  • Updated dependencies [2c3370d]
  • Updated dependencies [367ad55]
    • @powersync/web@2.0.0
    • @powersync/vue@1.0.0
    • @powersync/kysely-driver@2.0.0
    • @powersync/shared-internals@1.0.0

@powersync/tauri-plugin@0.1.0

Minor Changes

  • 5650e7f: Rename AbstractPowerSyncDatabase to CommonPowerSyncDatabase, make it a TypeScript interface.

    CrudEntry is now a TypeScript interface, remove it's constructor and CrudEntry.fromRow.

    SyncStatus is no longer constructable in user code.

    Deprecate DataFlowStatus. Use fields on SyncStatus directly instead.

Patch Changes

  • ce608a0: Refactor open and sync options:

    • Sync options are now represented through the SyncOptions interface alone, which
      replaces PowerSyncConnectionOptions and several other existing types.
      Sync options are only set on the call to connect(), and can no longer be set when
      constructing a database.
      SyncOptions is the same type across all SDKs, SDK-specific options need to be specified
      when opening a database.
    • Refactor open options: Each SDK has its own option type (but most use PowerSyncDatabaseOptions).
      Using a custom open factory or an existing DBAdapter instance now requires the factory and
      opened key, respectively (previously these options shadowed the database field).
      On the web, all options that previously required a WASQLiteOpenFactory are now available on
      database too.
      Also on the web, all database open options are represented via WebSQLOpenOptions. Additional
      options related to the sync process have moved to the WebSpecificOptions type to separate those
      concerns better.
    • Aligning the implementation with the public documentation, the default connection method has changed
      from WebSockets to HTTP.

    As a small guide on how to upgrade, consider these examples:

    // Before: Sync options set on database constructor
    new PowerSyncDatabase({database: { dbFilename: 'test.db' }, retryDelayMs: 1000});
    
    // After: Sync options can only be set when connecting
    const db = new PowerSyncDatabase({database: { dbFilename: 'test.db' }});
    await db.connect(yourConnector, { retryDelayMs: 1000 });
    // Before: Using a custom factory
    new PowerSyncDatabase({database: new OPSqliteOpenFactory({ dbFilename: 'test.db' })});
    
    // After: Option renamed to factory
    new PowerSyncDatabase({factory: new OPSqliteOpenFactory({ dbFilename: 'test.db' })});
    // Before (web specific): Using WASQLiteOpenFactory to specify a custom VFS
    new PowerSyncDatabase({
      schema: AppSchema,
      database: new WASQLiteOpenFactory({
        dbFilename: 'exampleVFS.db',
        vfs: WASQLiteVFS.OPFSWriteAheadVFS,
        additionalReaders: 2
      })
    });
    
    // After: Options are available on database variant, factory no longer necessary
    new PowerSyncDatabase({
      schema: AppSchema,
      database: {
        dbFilename: 'exampleVFS.db',
        vfs: WASQLiteVFS.OPFSWriteAheadVFS,
        additionalReaders: 2
      }
    });
    // Before (web specific): Misc options in flags field
    new PowerSyncDatabase({
      schema: AppSchema,
      database: { dbFilename: 'test.db' },
      flags: { broadcastLogs: true, disableSSRWarning: true }
    });
    
    // After: Flags moved to more specific keys.
    new PowerSyncDatabase({
      schema: AppSchema,
      database: {
        dbFilename: 'test.db',
        disableSSRWarning: true,
      },
      broadcastLogs: true,
    });
  • 299adaf: Remove SQLOnChangeOptions.rawTableNames and WatchOnChangeHandler.onError - both were already ignored before.

  • 2c3370d: Make DBAdapter and LockContext abstract classes, refactor QueryResult to provide column names and raw data.

  • Updated dependencies [ce608a0]

  • Updated dependencies [57373f9]

  • Updated dependencies [299adaf]

  • Updated dependencies [5650e7f]

  • Updated dependencies [2c3370d]

  • Updated dependencies [06db9d8]

    • @powersync/common@2.0.0
    • @powersync/shared-internals@1.0.0

@powersync/vue@1.0.0

Minor Changes

  • 299adaf: Breaking: Remove usePowerSyncQuery and usePowerSyncWatchedQuery (use useQuery instead) and usePowerSyncStatus (use useStatus instead).

  • 5650e7f: Rename AbstractPowerSyncDatabase to CommonPowerSyncDatabase, make it a TypeScript interface.

    CrudEntry is now a TypeScript interface, remove it's constructor and CrudEntry.fromRow.

    SyncStatus is no longer constructable in user code.

    Deprecate DataFlowStatus. Use fields on SyncStatus directly instead.

Patch Changes

  • Updated dependencies [ce608a0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [2c3370d]
  • Updated dependencies [06db9d8]
    • @powersync/common@2.0.0
    • @powersync/shared-internals@1.0.0

@powersync/adapter-sql-js@0.0.19

Patch Changes

  • Updated dependencies [ce608a0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [2c3370d]
  • Updated dependencies [06db9d8]
    • @powersync/common@2.0.0
    • @powersync/shared-internals@1.0.0

@powersync/attachments-storage-react-native@1.0.0

Patch Changes

  • 367ad55: Remove CommonJS distribution.
  • Updated dependencies [ce608a0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [2c3370d]
  • Updated dependencies [06db9d8]
    • @powersync/common@2.0.0

@powersync/tanstack-react-query@1.0.0

Patch Changes

  • Updated dependencies [ce608a0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [2c3370d]
  • Updated dependencies [06db9d8]
    • @powersync/common@2.0.0
    • @powersync/react@2.0.0
    • @powersync/shared-internals@1.0.0

tauri-plugin-powersync@0.0.5

Patch Changes

  • 2c3370d: Make DBAdapter and LockContext abstract classes, refactor QueryResult to provide column names and raw data.

@powersync/diagnostics-app@0.13.15

Patch Changes

  • Updated dependencies [ce608a0]
  • Updated dependencies [97358d0]
  • Updated dependencies [57373f9]
  • Updated dependencies [299adaf]
  • Updated dependencies [299adaf]
  • Updated dependencies [5650e7f]
  • Updated dependencies [45f4d61]
  • Updated dependencies [9caca19]
  • Updated dependencies [2c3370d]
  • Updated dependencies [06db9d8]
    • @powersync/common@2.0.0
    • @powersync/web@2.0.0
    • @powersync/react@2.0.0
    • @powersync/shared-internals@1.0.0

@github-actions github-actions Bot force-pushed the changeset-release/main branch from 58828f3 to a39a61c Compare July 8, 2026 10:21
@delagen

delagen commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

@simolus3 Is there any schedule for release?

@simolus3

simolus3 commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

@delagen Because this includes breaking changes, we want to coordinate this properly and will probably release this in about 2 weeks. I can prepare a set of dev versions with this if you want to use it earlier than that, but that's not something we'd support officially.

@delagen

delagen commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

@delagen Because this includes breaking changes, we want to coordinate this properly and will probably release this in about 2 weeks. I can prepare a set of dev versions with this if you want to use it earlier than that, but that's not something we'd support officially.

Can we #1015 to v1 branch and release wa-sqlite with latest changes?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants