RxDB v12.0.0 Release Notes

Release Date: 2022-04-26 // about 2 years ago
    • All indexes that do not contain the primaryKey, get the primary key added.
    • You can now set a custom index when doing a query.
    • ๐Ÿ”Œ Unified the replication primitives and the GraphQL replication plugin.
    • โœ‚ Removed the deprecated in-memory plugin.
    • โž• Added cleanup plugin
    • ๐Ÿ”จ Refactor local documents plugin to only create a storage instance for local documents when needed.
    • โœ‚ Removed the core plugin. The default export from 'rxdb' now exports only the RxDB core without plugins.

    • The Dexie.js RxStorage is no longer in beta mode.

    • โž• Added the in memory storage plugin.

    • โž• Added RxDocument().toMutableJSON()

    • โž• Added RxCollection().bulkUpsert()

    • โž• Added optional init() function to RxPlugin.

    • dev-mode: Add check to ensure all top-level fields in a query are defined in the schema.

    • ๐Ÿ‘Œ Support for array field based indexes like data.[].subfield was removed, as it anyway never really worked.

    • ๐Ÿ”จ Refactored the usage of RxCollection.storageInstance to ensure all hooks run properly.

    • ๐Ÿ”จ Refactored the encryption plugin so no more plugin specific code is in the RxDB core.

    • โœ‚ Removed the encrypted export from the json-import-export plugin. This was barely used and made everything more complex. All exports are no non-encrypted. If you need them encrypted, you can still run by encryption after the export is done.

    • ๐Ÿ”Œ RxPlugin hooks now can be defined as running before or after other plugin hooks.

    • Attachments are now internally handled as string instead of Blob or Buffer

    • ๐Ÿ›  Fix (replication primitives) only drop pulled documents when a relevant document was changed locally.

    • ๐Ÿ›  Fix dexie.js was not able to query over an index when keyCompression: true

    ๐Ÿ”„ Changes to RxStorageInterface:

    • RxStorageInstance must have the RxStorage in the storage property.
    • The _deleted field is now required for each data interaction with RxStorage.
    • โœ‚ Removed RxStorageInstance.getChangedDocuments() and added RxStorageInstance.getChangedDocumentsSince() for better performance.
    • โž• Added doesBroadcastChangestream() to RxStorageStatics
    • โž• Added withDeleted parameter to RxStorageKeyObjectInstance.findLocalDocumentsById()
    • โž• Added internal _meta property to stored document data that contains internal document related data like last-write-time and replication checkpoints.