Skip to content

Latest commit

 

History

History
834 lines (585 loc) · 35 KB

CHANGELOG.md

File metadata and controls

834 lines (585 loc) · 35 KB

Changelog

X.X.X (comming soon)

Bugfixes:

  • RxLocalDocument.$ emitted to often on changes #2471

Other:

  • Refactored GraphQL replication to run faster #2524 Thanks @corinv

9.6.0 (7 September 2020)

Features:

  • Add RxReplicationState.setHeaders() #2399 Thanks @DDoerner
  • Added RxCollection.findByIds$() see

Bugfixes:

  • wrong key handling on compound indexes #2456 Thanks @dome4
  • Nested $or queries where broken when they used the primaryKey in the selector

9.5.0 (2 August 2020)

Other:

  • Upgraded pouchdb to 7.2.2
  • Upgraded typescript to 3.9.7

9.4.0 (24 July 2020)

Features:

  • Add cache-replacement-policy for the QueryCache
  • GraphQL replication async modifier function #2367

Bugfixes:

  • GraphQL replication run increasing requests when offline #2336

9.3.0 (26 June 2020)

Features:

  • Added (beta) RxCollection.findByIds() to get many documents by their id with a better performance.

Other:

  • Added typings for pouch.allDocs()

9.2.0 (21 June 2020)

Bugfixes:

  • ref-fields must be nullable #2285 Thanks @kunal15595
  • RxDatabase names can no longer end with a slash #2251 which breaks the server plugin.

Other:

  • Added "sideEffects": false to all plugins

9.1.0 (31 May 2020)

Features:

  • RxDatabase.server() does now accept pouchdbExpressOptions to set the log file and other stuff configured on express-pouchdb

Bugfixes:

Other:

9.0.0 (16 May 2020) BREAKING read the announcement

Features:

  • Added RxQuery.exec(throwIfMissing: true)
  • Added helper functions to GraphQL replication to generate GraphQL Schemas from the RxJsonSchema

Bugfixes:

  • GraphQL replication plugin fires exponentially #2048
  • When a default is set in the schema, the default values are also applied after atomicUpdate() and atomicSet()

Breaking:

  • Indexes are now specified at the top-level of the schema-definition. #1655
  • Encrypted fields are now specified at the top-level of the schema-definition
  • Removed all default exports. Please only import the stuff that you really need.
  • Renamed RxDB.create() to createRxDatabase()
  • Renamed removeDatabase() to removeRxDatabase()
  • Renamed plugin() to addRxPlugin()
  • Replaced plugins error-messages and schema-check with dev-mode
  • Moved data migration from core to migration plugin
  • Replaced key-compression implementation with jsonschema-key-compression
  • Renamed RxDatabase.queryChangeDetection to eventReduce and set default to true (no beta anymore)
  • Change .find() and .findOne() to acccept a full MangoQuery with sort and limit instead of just the selector
  • Chained queries like collection.find().where('x').eq('foo') moved out of the core module into the query-builder plugin
  • The internal hash() function does now use a RxDB specific salt
  • Change default of RxDocument().toJSON(withRevAndAttachments) to false
  • Refactored RxCollection
  • Creating a collection will no longer emit an RxChangeEvent
  • Removed RxCollection.docChanges$() because all events are from the docs
  • Renamed RxSchema.jsonID to RxSchema.jsonSchema
  • Moved remaining stuff of leader-election from core into the plugin
  • Merged multiple internal databases for metadata into one internalStore
  • In dev-mode, the GraphQL-replication will run a schema validation of each document that comes from the server

Other:

  • Removed many runtime type checks that now should be covered by typescript in buildtime
  • The GraphQL replication is now out of beta mode

Docs:

  • Removed examples for require() CommonJS loading

8.9.0 (14 March 2020)

Other:

Features:

  • Added option to replicate revisions with graphql-replication #2000 Thanks @gautambt

8.8.0 (5 March 2020)

Other:

  • Upgraded PouchDB and other dependencies

8.7.5 (6 January 2020)

Other:

  • Added a new example for electron with the remote API. Thanks @SebastienWae
  • Fixed Typing error on database.dump() #1754. Thanks @PVermeer

Bugfixes:

  • Updates to documents fail with GraphQL replication. #1812. Thanks @gautambt
  • RxQuery.doesDocumentDataMatch() was wrong on queries with $and which lead to a wrong result with QueryChangeDetection

8.7.4 (2 December 2019)

Other:

  • Improved performance of QueryChangeDetection by using array-push-at-sort-position instead of re-sorting the whole results of a query
  • Improved performance by removing unnecessary calls to deep-clone

8.7.3 (10 November 2019)

Features:

  • Added RxCollection.bulkInsert()

Bugfixes:

  • Fix replication of migrated schemas in the server plugin

8.7.2 (24 October 2019)

Bugfixes:

  • GraphQL replication sometimes not pushes when a big amount of documents has been pulled before
  • Fixed typings of PouchdbReplicationOptions

Other:

  • Upgrade pouchdb to 7.1.1
  • Refactor some internals

8.7.1 (18 October 2019)

Other:

  • Json-Import now uses bulkDocs for better performance
  • Refactored prototype merging so it can be optimised later
  • Moved some check into the check-plugin to optimize production build size
  • Refactor schema-validation-plugins since sub-path validation is no longer needed

8.7.0 (11 October 2019)

Features:

  • RxDB server can now be used with an existing express-app. #1448 Thanks @dstudzinski
  • Wrapped pouchdb conflict error into RxError

Other:

  • Fixed typings of RxError parameters
  • Fix GraphQL-example to propper use Websocket-Pub-Sub

8.6.0 (4 October 2019)

Migrated to typescript.

8.5.0-beta.3 (1 October 2019)

  • Fixed import of @types/pouchdb-core and @types/pouchdb-find

8.5.0-beta.2 (1 October 2019)

Bugfixes:

8.5.0-beta.1 (30 September 2019)

Migrated to typescript.

8.5.0 (18 September 2019)

Features:

  • Add ability to use server app as a part of bigger Express app #1448 Thanks @dstudzinski

Bugfixes:

Other:

  • Improved QueryChangeDetection to not run on irrelevant changes

8.4.0 (1 September 2019)

Bugfixes:

  • Fix imports of encryption-plugin to work with rollup #1413 Thanks @kenshyx
  • Removed express-pouchdb from the dependencies #884

8.3.1 (23 August 2019)

Features:

Bugfixes:

  • Attachments not working in electron renderer with IndexedDb adapter #1371 Thanks @rixo
  • json export/import not working when a document has attachments #1396 Thanks @rixo

Other:

  • Improved performance of query-change-detection by reusing the result of massageSelector

8.3.0 (5 August 2019)

Features:

Bugfixes:

  • .populate() returns findOne() on empty string. This results in a random find #1325 Thanks @PVermeer

8.2.1 (5 July 2019)

Features:

Bugfixes:

  • Collection change event was emitted before the actual change happened #1225. Thanks @milanpro

Typings:

  • ADD typings to access the PouchSyncHandler of RxReplicationState

8.2.0 (21 May 2019)

Bugfixes:

  • Vue devtools broke the application #1126

Typings:

  • RxDocument.getAttachment() and RxDocument.allAttachments() did not return promises
  • ADD RxJsonSchema generic for better TypeScript experience

8.1.0 (22 April 2019)

Bugfixes:

  • Server-plugin did not work with absolute paths and leveldb
  • Vue threw get is not a function when a RxDocument was added to a component's state
  • RxDocument.allAttachments() did throw an error when the document has no RxAttachment
  • RxDocument.toJSON(false) does no longer return the _attachments attribute

8.0.7 (6 April 2019)

Bugfixes:

  • Fix creating a collection mutates to arguments object #939
  • Fix not having optional encrypted fields in a document throws an error #917

8.0.6 (20 March 2019)

Features:

  • RxDocument().toJSON() can be called with .toJSON(false) and then returns not _rev attribute

Bugfixes:

  • (typings) Fix additionalProperties: boolean is allowed for nested objects
  • (typings) Fix RxQuery().toJSON()' was missing

8.0.5 (7 February 2019)

Bugfixes:

  • Calling remove() on a deleted RxDocument should return a rejected promise #830
  • Passing auto_compaction to a collection did not work via gitter
  • util missing in react-native #890

8.0.4 (13 November 2018)

Bugfixes:

  • Updated the dependencies with some bugfixes

8.0.3 (29. October 2018)

Bugfixes:

  • Reopening a database after using the wrong password did not work #837

8.0.2 (7. October 2018)

Features:

Bugfixes:

  • RxDB.removeDatabase() did not return a Promise #822. Thanks @will118

8.0.1 (21. September 2018)

Bugfixes:

  • Does not compile in TypeScript with strict flag enabled #448

8.0.0 (18. September 2018) BREAKING read the announcement

Breaking:

  • Upgraded to pouchdb 7.0.0
  • disableKeyCompression is renamed to keyCompression which defaults to false
  • RxDatabase.collection() now only accepts the json-schema as schema-attribute
  • It is no longer allowed to set required fields via required: true, use required: ['myfield'] in compliance with the jsonschema standard
  • QueryChangeDetection is not enabled in the RxDatabase-options queryChangeDetection: true
  • Setters and save() are only callable on temporary documents
  • Removed RxDocument.synced$ and RxDocument.resync()
  • Middleware-Hooks now have plainJson as first parameter and RxDocument-instance as second
  • Typings have been modified, see
  • postCreateRxDocument-hooks will not be awaited if they are async

Features:

  • Added RxDocument.atomicSet()
  • Added RxCollection.awaitPersistence() for in-memory-collections
  • Added RxReplicationState.denied$ #763
  • Added option for CORS to server-plugin
  • this-scope of collection-hooks are bound to the collection itself #788
  • All methods of RxDocument are bound to the instance #791
  • Added RxReplicationState.alive$, see. Thanks @rafamel

Bugfixes:

  • checkAdapter doesn't cleanup test databases #714
  • inMemory collections don't implement static methods #744
  • inMemory collections do not sync up removals #754
  • Ensure final fields cannot be changed on RxDocument.atomicUpdate() and RxDocument.update()
  • Fixed a missing dependency on the server-plugin

Other:

  • cross-instance communication is now done with https://github.com/pubkey/broadcast-channel (way better performance)
  • Upgrade to eslint 5 (no more babel-eslint)
  • Upgrade to babel7
  • Refactored plugins/replication/.watchForChanges() to fix sometimes-breaking-test with RxReplicationState.complete$
  • Split RxCollection.watchForChanges() into own plugin
  • Refactored RxQuery

7.7.1 (August 1, 2018)

Bugfixes:

Other

  • Moved @types/core-js to dev-dependencies #712
  • Added more example the the RxQuery-Docs #740 thanks @Celludriel

7.7.0 (July 6, 2018)

Bugfixes:

  • Indexes do not work in objects named "properties" #697
  • Wrong pouch-location when folderpath used for collection #677
  • Mutating a result-array from RxQuery.exec() or RxQuery.$ does not affect future calls #698#issuecomment-402604237

Other:

  • Updated Angular-Example to 6.0.5 Thanks @fuerst

7.6.1 (May 26, 2018)

Bugfixes:

  • Unhandled promise rejection with DOMException #644
  • Prevent bug with replication of internal pouchdb's #641
  • LocalDocument observe on field not working #661
  • Skip defining getter and setter when property not defined in schema #646
  • (typings) Fix type: 'object' not correctly recognized (via gitter at 2018 Mai 22 19:20)

7.6.0 (May 12, 2018)

Bugfixes:

  • Query cache is not being invalidated by replication #630

Other:

  • Updated to rxjs 6.0.0
  • Added integration tests for couchdb

7.5.1 (May 3, 2018)

Bugfixes:

Other:

  • Fixed typings for additionalProperties in schemas
  • Added performance-tests
  • Removed workarround for pouchdb#6733

Typings:

  • Added optional type for ORM-Methods

7.5.0 (April 24, 2018)

Features:

  • Added RxCollection.insert$, RxCollection.update$, RxCollection.remove$ read the docs

Other:

  • Added dangerousRemoveCollectionInfo() for migrations over rxdb-versions.
  • Improved typings for RxChangeEvent

7.4.4 (April 18, 2018)

Bugfixes:

  • Wrong index used when no sort specified #609

Other:

  • Improved typings of RxChangeEvent thx @hubgit

7.4.3 (April 7,2018)

Bugfixes:

  • Sort by sub object is not working #585
  • Encrypted attachments not working inside of electron-renderer #587
  • Schema fails with sub-sub-index #590
  • Default value not applied when the stored value is undefined #596

7.4.2 (March 22, 2018)

Bugfixes:

  • Wrong typings with custom build #576

Features:

  • Add option to add pouchSettings to all pouchdb-instances #567 Thx @EugeniaM

7.4.1 (March 11, 2018)

Bugfixes:

7.4.0 (March 9, 2018)

Features:

  • Added RxDatabase.server() to quickly spawn couchdb-compatibe endpoint out of RxDB. Read this
  • Use CustomIdleQueue for atomic updates to enable #494

Bugfixes:

7.3.3 (February 4, 2018)

Other:

  • Update to pouchdb version 6.4.3
  • Improve performance by using the profiler
  • Added typings for internal pouchdb-instance

7.3.2 (January 25, 2018)

Features:

Typings:

  • Fix RxCollection.findOne() can return null

Other:

7.3.1 (January 3, 2018)

Bugfixes:

  • Allow number-fields as index #438
  • Ensure typescript strict: true works #448

7.3.0 (December 18, 2017)

Features:

Bugfixes:

  • inMemory() throws error when using primary-key #401

Other:

  • Update to pouchdb 6.4.0
  • Optimize socket-pull by comparing internal last-change-time
  • do not hide fields with value: undefined in error-message #403

7.2.0 (December 7, 2017)

Warning:

  • Removed automatic import of pouchdb-adapter-memory for in-memory-collections. Read this

Features:

Bugfixes:

  • Query-Cache not used when declaring queries without mango-chain

Other:

  • Do not throw errors if the same plugin is added multiple times
  • Allow getting the collection via RxDatabase().collection(name: string)
  • Allow recreating the collection with different schema, if it has no documents
  • Split out error-messages into separate own plugin

7.1.1 (November 27, 2017)

Bugfixes:

  • Error on key-compression when nested value is null
  • Fix typings of RxDocument.putAttachment()

7.1.0 (November 22, 2017)

Other:

7.0.1 (November 14, 2017)

Bugfixes:

  • Include pouchdb-adapter-memory as dependency #365

7.0.0 (November 14, 2017)

Breaking:

  • Renamed ingoreDuplicate to ingoreDuplicate #314
  • Improved typings #329 by @ihadeed

Features:

Bugfixes:

  • Added error-message when you json-import on a non-existing collection #319
  • Allow windows-foldernames (with backslash) as collection-name 343

Other:

  • Split out idle-queue into own npm-module
  • Enfore usage of strict-equality via eslint

6.0.1 (September 20, 2017)

  • Fix core is not defined #296

6.0.0 (September 19, 2017) BREAKING

Breaking:

  • Filenames are now kebab-case
  • pouchdb-replication-plugin is now imported by default, do not import it by your own.
  • RxDB.create() throws if you create the same database twice. (You can use ignoreDuplicate)

Features:

Custom-Build:

  • Custom-build is now out of beta
  • If you use a custom-build, you have to change the import-paths. See custom-build
  • Replication is now its own module see
  • Json import/exportis now its own module see

Bugfixes:

  • Allow null-selector #267
  • RxQuery.exec() throws when out of change-event-buffer-bounds #278
  • Fix deprecated warning that sometimes occurs with indexeddb-adapter db.type()
  • Add fallback to leader-election when unload not works (mostly when you use RxDB inside of an iFrame)

Other:

  • Use RxError-class to throw Custom errors with the parameters-attribute
  • Optimize leader-election to not waste resources when many tabs open
  • Optimize schema-parsing when multiple collections have the same schema
  • Reduced build-size by only using async/await if it makes sense
  • Pre-Parse schema to validator when requestIdleCallback available
  • Optimize socket-cleanup by using requestIdlePromise
  • Added plugin-hook for preCreatePouchDb

5.3.0 (August 25, 2017)

Features:

Bugfixes:

  • RxQuery.or() did not work with KeyCompression #252

5.2.1 (July 17, 2017)

Quickfix because of new pouchdb-import

5.2.0 (July 17, 2017)

Features:

Other:

Bugfixes:

  • Settings values to null did not work on temporaryDocuments #215
  • RxDocument.atomicUpdate() did not run when reusing after a while
  • RxQuery.toString() was sometimes not predictable

WARNING: If you use RxDB with angular2||zone.js, you might have the error _global is not defined. Wait for the next zone.js release before updating RxDB.

5.1.0 (July 10, 2017)

Features:

  • Added instanceOf-checks

Bugfixes:

  • AutoMigrated caused infinity-loop #212
  • Minor bugs on the typings

Other:

  • Use requestIdleCallback on non-prio-tasks for better performance on browsers
  • Optimise socket-pull-intervall to not waste resources on slow devices
  • split out test-util from util to optimize build-size
  • remove lodash completely

5.0.0 (June 20, 2017) BREAKING

Features:

  • Added RxDocument.atomicUpdate() docs
  • Added RxCollection.remove() docs
  • Added RxDatabase.remove() docs
  • Added options for RxCollection.sync(): direction and pouchdb-replication-settings docs
  • Added query-param for RxCollection.sync() to allow selector-based replication docs
  • Added TemporaryDocuments RxCollection.newDocument() docs

Breaking:

  • postCreate-hooks can no longer be async
  • RxCollection.sync() completely changed docs

Other:

  • Added .babelrc to .npmignore
  • Added build-tests to travis

4.1.0 (June 7, 2017)

Features:

Bugfixes:

  • QueryCache returns old RxQuery when .regex() is used #190
  • RxDocument.resync() was broken 174

Other:

  • Throw error if RxQuery.sort() runs on field which is not in the schema #146
  • extract watchForChanges to allow custom sync-operations #197
  • Added travis-ci

4.0.2 (May 17, 2017)

Bugfixes:

  • Ensure es6-build does not contain es7-features
  • Ensure everything works after using UglifyJs

4.0.1 (May 17, 2017)

Bugfixes:

  • jsnext:main and module now point to es6 instead of es7-stage-0 commit issue
  • Sort on primary fails without non-id primary commit
  • QueryChangeDetection breaks on no-resort-optimisation commit

4.0.0 (May 5, 2017) BREAKING

Breaking:

  • RxQuery's are now immutable
  • RxQuery.$ does not emit null when running
  • RxQuery will sort by primary (ASC) as default

Features:

Other:

  • upgraded to pouchdb v6.2.0
  • re-executing queries while nothing happend to the collection, is now fetched

3.0.8 (April 20, 2017)

Bugfixes:

  • findOne().$ did not have limit:1
  • findOne(string).$ streams all documents when _id as primary

3.0.7 (April 10, 2017)

Bugfixes:

  • Fixed es6-imports for webpack-builds

3.0.6 (March 29, 2017)

Features:

Other:

  • improved typings

3.0.5 (March 21, 2017)

Bugfixes:

  • overwrites default selector on RxQuery.sort()

Other:

  • Refactor RxQuery for better performance
  • Refactor mquery for smaller build
  • More tests for RxQuery

3.0.4 (March 12, 2017)

Bugfixes:

  • Vuejs runs populate-getter on changedetection #75
  • isDeepEqual does not work correctly for Arrays #76
  • wrong storageEngine in the typings

3.0.3 (March 6, 2017)

Features:

Bugfixes:

3.0.2 (March 2, 2017)

Bugfixes:

  • compound-index not being created #68

3.0.1 (March 2, 2017)

Bugfixes:

  • new document does not get new state on remove-reinsert #66

3.0.0 (February 27, 2017) BREAKING

Features:

Bugfixes:

  • running RxDocument().save() twice did not work

Breaking:

  • Collection-names must match ^[a-z][a-z0-9]*$ Fixes #45
  • RxDB.create has new api with destructuring see
  • RxDatabase.collection() has new api with destructuring see
  • schema-fieldnames must match the regex: ^[a-zA-Z][[a-zA-Z0-9_]*]?[a-zA-Z0-9]$
  • RxDatabase.collection() only to create collection, use myDatabase.heroes to get existing one
  • RxDB.create() multiInstance is now true by default
  • rxjs and babel-polyfill are now peerDependencies

2.0.5 (February 25, 2017)

Features:

  • possibility to add pouchSettings when creating a collection
  • typings compatible with noImplicitAny Typescript projects

2.0.4 (February 12, 2017)

Bugfixes:

  • top-level array of document not working #50
  • event on document.remove() not fired at query-obserable #52

2.0.3 (January 31, 2017)

Features:

  • save full schema in internal database once

Bugfixes:

  • Throw when .findOne() is called with number or array
  • ADD babel-polyfill to dependencies #40

2.0.2 (January 27, 2017)

Bugfixes:

  • Throw when .regex() is used on primary

2.0.1 (January 26, 2017)

Refactor:

  • Because IE11 does not support the Proxy-Object, defineGetter/Setter is now used
  • Tests now run in all installed browsers

Bugfixes:

  • Fixed tests for IE11

2.0.0 (January 23, 2017) BREAKING

Features:

  • key-compression for better space-usage

Breaking:

  • schema-objects are now normalized (order alphabetic) before hashing
  • RxQuery.select() is removed since it has no better performance than getting the whole document
  • RxChangeEvent on sockets do no longer contain the documents-data for performance-reason
  • RxQuery.$ only emits when the result actually changes #31

Bugfixes:

  • console.dir on RxDocument now works

1.7.7 (January 13, 2017)

Features:

1.6.7 (January 11, 2017)

Features:

1.5.6 (December 22, 2016)

Bugfixes:

  • direct import 'url'-module for react native

1.5.5 (December 20, 2016)

Features:

  • refactor socket to save db-io
  • wrap BroadcastChannel-API
  • added leader-election
  • sync() will only start if db is leader

Bugfixes:

  • cleanup all databases after tests
  • remove broken builds from dist-folder