All Versions
222
Latest Version
Avg Release Cycle
3 days
Latest Release
479 days ago

Changelog History
Page 10

  • v12.0.0 Changes

    April 26, 2022
    • 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.
  • v11.6.0 Changes

    February 04, 2022

    ๐Ÿ›  Bugfixes:

    • #3666 RxDB with lokijs works bad in Safari and FF when using multiple tabs

    Other:

    • Replication primitives must throw an error if _deleted field is missing. #3671
  • v11.5.1 Changes

    January 30, 2022

    ๐Ÿ›  Bugfixes:

    • RxStorage.statics.getQueryMatcher() must not match documents with _deleted: true.
    • Fixed multiple problems with RxCollection.findByIds$() #3659 Thanks @Hideman85
  • v11.5.0 Changes

    January 30, 2022

    ๐Ÿ”‹ Features:

  • v11.4.0 Changes

    January 28, 2022

    ๐Ÿ›  Bugfixes:

    • RxDocument.toJSON() is leaking meta field _deleted. #3645 Thanks @Bessonov

    ๐Ÿ”‹ Features:

    • Allow truthy values for the GraphQL replication deletedFlag field. #3644 Thanks @nirvdrum

    Other:

    • .findOne(documentId) should use RxStorage().findDocumentsById() instead of RxStorage().query()
  • v11.3.0 Changes

    January 17, 2022

    ๐Ÿ›  Bugfixes:

    • GraphQL replication: Unnecessary local document writes fill up the database #3627 Thanks @hdwatts
  • v11.2.0 Changes

    January 12, 2022

    ๐Ÿ›  Bugfixes:

    • Replication Primitives: Local writes while running the pull must not be lost but send to the remote.
    • Replication Primitives: Should not stack up failed runs and then run many times.
    • Support composite indices in schema literal types #3609 Thanks @nirvdrum
  • v11.1.0 Changes

    January 06, 2022

    ๐Ÿ”‹ Features:

    • Added toTypedRxJsonSchema and ExtractDocumentTypeFromTypedRxJsonSchema to generate the document types from the schema.
  • v11.0.0 Changes

    January 03, 2022

    ๐Ÿ’ฅ BREAKING:

    • RxStorage: The non async functions prepareQuery, getSortComparator and getQueryMatcher have been moved out of RxStorageInstance into RxStorage. This was needed to have better WebWorker support. This will not affect you do not use a custom RxStorage implementation.
    • LokiJS: Do not use the IdleQueue of the RxDatabase to handle calls to saveDatabase(), instead wait for CPU idleness of the JavaScript process.
    • RxStorageInterface:
      • Replaced all Map with plain json objects so that they can be JSON.stringify-ed
      • Replaced typings of event stream to use EventBulk and process events in bulks to save performance.
      • Move all static methods into the statics property so we can code-split when using the worker plugin.
      • digest and length of attachment data is now created by RxDB, not by the RxStorage. #3548
      • Added the statics hashKey property to identify the used hash function.
    • Internally all events are handles via bulks, this saves performance when events are transfered over a WebWorker or a BroadcastChannel.
    • Removed the deprecated recieved methods, use received instead. See #3392
    • Removed the no-validate plugin. To use RxDB without schema validation, just do not add a validation plugin to your custom build.

    ๐Ÿ›  Bugfixes:

    • Do not throw an error when database is destroyed while a GraphQL replication is running.
    • Compound primary key migration throws "Value of primary key(s) cannot be changed" #3546 Thanks @nothingkid
    • Allow _id as primaryKey #3562 Thanks @SuperKirik
    • LokiJS: Remote operations do never resolve when remote instance was leader and died.

    Other:

    • LokiJS: All documents are stored with a $lastWriteAt field, so we can implement an auto compaction later.
    • Transpile async/await to promises instead of generators. via babel-plugin-transform-async-to-promises
  • v11.0.0-beta.X Changes

    December 13, 2021

    ๐Ÿ’ฅ BREAKING:

    • RxStorage: The non async functions prepareQuery, getSortComparator and getQueryMatcher have been moved out of RxStorageInstance into RxStorage. This was needed to have better WebWorker support. This will not affect you do not use a custom RxStorage implementation.
    • LokiJS: Do not use the IdleQueue of the RxDatabase to handle calls to saveDatabase(), instead wait for CPU idleness of the JavaScript process.
    • RxStorageInterface:
      • Replaced all Map with plain json objects so that they can be JSON.stringify-ed
      • Replaced typings of event stream to use EventBulk and process events in bulks to save performance.
      • Move all static methods into the statics property so we can code-split when using the worker plugin.
      • digest and length of attachment data is now created by RxDB, not by the RxStorage. #3548
    • Internally all events are handles via bulks, this saves performance when events are transfered over a WebWorker or a BroadcastChannel.
    • Removed the deprecated recieved methods, use received instead. See #3392

    ๐Ÿ›  Bugfixes:

    • Do not throw an error when database is destroyed while a GraphQL replication is running.
    • Compound primary key migration throws "Value of primary key(s) cannot be changed" #3546 Thanks @nothingkid
    • Allow _id as primaryKey #3562 Thanks @SuperKirik

    Other:

    • LokiJS: All documents are stored with a $lastWriteAt field, so we can implement an auto compaction later.