Bugfixes:
- LokiJS: Ensure events emit exact the same data as with PouchDB.
- LokiJS: Queries with limit and skip where broken.
- LokiJS: Fix all bugs and run the whole test suite with LokiJS Storage
Other:
- Updated event-reduce for more optimizations.
Bugfixes:
- LokiJS
findDocumentsById()
returned additional$loki
property. - LokiJS
bulkAddRevisions()
must not mutate the input. - LokiJS deletes on GraphQL replication must work.
Bugfixes:
- LokiJS: Upserting a deleted document did not work.
- LokiJS: Storage queries returned additional
$loki
property.
Bugfixes:
- LokiJS Storage must have a deterministic sort order.
Bugfixes:
- Sort queries broken with LokiJS RxStorage.
Bugfixes:
- Fix endless loop when using GrapQL-replication & LokiJS RxStorage.
Features:
- Added LokiJS
RxStorage
plugin.
Bugfixes:
- Fixed missing closings of
RxStorage
instances when the database or collection is destroyed.
Other:
- Improved performance of write operations.
- Removed unnecessary abstraction layer of
LeaderElector
Bugfixes:
Other:
- Improved performance when many queries are created in a short timespan.
Bugfixes:
- GraphQL replication: push not working with keyCompression.
Buffer
is not available in browsers #3454 Thanks @swnf
Bugfixes:
- Observed document data must be deep freezed in dev mode #3434 Thanks @chrisdrackett
Other:
- We now have set
sideEffects: false
to the default in the package.json so tree shaking can work. - Optimized memory usage in the query cache.
Features:
Other:
- Refactored the migration plugin for better performance by writing the documents in bulk requests
- Added svelte example #3287 Thanks @bkeating
- Improved error messages
Bugfixes:
- #3319 Graphql replication checkpoint was not deleted after running
RxDatabase.remove()
- Fixed spelling of
recieved -> received
everywhere. The old getters are still useable butdeprecated
#3392. Thanks chrisdrackett
Bugfixes:
- Calling bulk-methods with an empty array must not throw an error.
RxCollection.remove()
does not delete local documents #3319
10.0.0 (20 July 2021) BREAKING read the announcement
Breaking:
-
Setting a
primaryKey
for a schema is now required. -
When using the type
RxJsonSchema<DocType>
theDocType
is now required. -
A JsonSchema must have the
required
array at the top level and it must contain the primary key. -
Outgoing data is now
Readonly
typed and deep-frozen in dev mode -
RxDocument.putAttachment()
no longer supports string as data, onlyBlob
orBuffer
. -
Changed the default of
putAttachment
toskipIfSame=true
. -
Removed the deprecated
atomicSet()
, useatomicPatch()
instead. -
Removed the deprecated
RxDatabase.collection()
useRxDatabase().addCollections()
instead. -
Moved everything pouchdb related to the
pouchdb
plugin. -
Pouchdb plugins are not longer added via
addRxPlugin()
butaddPouchPlugin()
. (RxDB plugins are still added viaaddRxPlugin
). -
Removed plugin hook
preCreatePouchDb
. -
Removed the
watch-for-changes
plugin, this is now directly integrated into the pouchdbRxStorage
. -
Removed the
adapter-check
plugin. (The functionadapterCheck
is move to the pouchdb plugin). -
Calling
RxDatabase.server()
now returns a promise that resolves when the server is started up. -
Changed the defaults of
PouchDBExpressServerOptions
from theserver()
method, by default we now store logs in the tmp folder and the config is in memory. -
Renamed
replication
-plugin toreplication-couchdb
to be more consistend in naming like withreplication-graphql
- Renamed
RxCollection().sync()
toRxCollection().syncCouchDB()
- Renamed
-
Renamed the functions of the json import/export plugin to be less confusing
dump()
is nowexportJSON()
importDump()
is nowimportJSON()
-
RxCollection
uses a separate pouchdb instance for local documents, so that they can persist during migrations.
Features:
- Added support for composite primary keys.
Other:
- Moved all
should never happen
errors into own error code.
Typings:
- Improved typings of error codes.
Features:
- Added
dataPath
property to GraphQL replication pull options to allow the document JSON lookup path to configured instead of assuming the document data is always the first child of the response #2606 Thanks @joshmcarthur
Types:
getLocal()
can returnundefined
. Thanks @chrisdrackett- Fixed typings in the dependencies so you can use
noUncheckedIndexedAccess
. Thanks @seanwu1105
Bugfixes:
- Auto-cancel one time couchdb replications to not cause a memory leak
- Fixed another memory leak when calling the couchdb replication many times.
Features:
- Added the backup-plugin
Other:
- Updated
rxjs
to version7.0.1
Bugfixes:
- Fixed memory leak in
RxCollection().findByIds$()
Other:
- Added collection name when throwing errors in
RxQuery
Other:
- Added hints abount 2021 user survey.
Features:
- Added possibility to change, update, remove and add
RxAttachment
s inside of a migration strategy.
Features:
- Added
RxDatabase.migrationStates()
which returns an observable to observe the state of all ongoing migrations. - Added
startupPromise
to the returned object ofRxDatabase().server()
Bugfixes:
- Ensure every background task is done when
RxDatabase.destroy()
resolves. #2938
Other:
- Added analytics to docs page
Bugfixes:
- Updated
pouchdb-all-dbs
fixes #2874 Thanks @openscript
Other:
- Determinstic handling of revision keys during data migration
- Added more information to
RxError
when data migration fails
Features:
- Added
RxReplicationState.awaitInitialReplication()
Bugfixes:
- Using the replication plugins must not required to also use leader-election
- Refactor
QueryCache.triggerCacheReplacement()
to not spawnsetTimeout
regulary. This is needed for server side rendering with angular universal.
Other:
- Added server side rendering to the angular example
Features:
- Added
RxCollection().bulkRemove()
#2845 Thanks @qinyang912
Other:
- Improved typings of
insertLocal()
#2850 Thanks @openscript - Improved typings of
bulkInsert()
Bugfixes:
- #2785 postInsert hook not working when use bulkInsert to insert doc. Thanks @qinyang912
- Setted
sideEffects: true
for main module #2798
Other:
- (docs) added warning about indexeddb adapter
- Upgraded typescript to
4.1.3
Features:
- Allow
primary
andref
at the same time in a schema. #2747
Bugfixes:
- #2705 when use bulkInsert to insert doc, the rxDocument property on changeEvent is an object, not a RxDocument instance. Thanks @qinyang912
- When the mutation function of
atomicUpdate()
has thrown once, it was not possible to use it again.
Features:
- Added
putAttachment(skipIfSame)
, if set totrue
a write will be skipped if the attachment already exists with the same data.
Bugfixes:
awaitInitialReplication()
resolves on failed replication #2745. Thanks @dome4insertLocal()
not emitted the state change across tabs
Other:
- Added
name
identifier toRxPlugin
- Throw error when
dev-mode
plugin is added multiple times because there is no way that this was done intentional likely the developer has mixed core and default usage of RxDB. - Fix reported security problem with the query builders mquery api.
Other:
- Additional refactorings to improve collection creation speed
Features:
- Added
RxCollection.getLocal$()
andRxDatabase.getLocal$()
to observe local documents. - Added
RxDatabase.addCollections()
to create multiple collections at once. Is faster and better typed than the now deprecatedRxDatabase.collection()
Other:
- Improved typings for
pouchdb.changes()
- Moved from travisci to github actions
Other:
- Improved startup performance by doing a index-exist check
- Added check for
properties
to dev-mode schema check - Add better checks for query input in dev-mode
Features:
- Added subscription parameters for
graphQLSchemaFromRxSchema()
- Added RxDocument.atomicPatch()
Bugfixes:
- (types) Returned values of
syncGraphQL()
did not type-match withRxGraphQLReplicationState
RxDocument.atomicUpdate()
now does a retry on 409 write conflicts
Other:
- Added authentication to graphql example
- Deprecated
RxDocument.atomicSet()
. UsedatomicPatch
instead, it works better with typescript - (docs) added workarounds for 6-connection limit at couchdb replication #2659. Thanks @MuresanSergiu
Bugfixes:
- Server-Plugin: Replication did not work until there is at least one document.
- Fix skipping docs in graphql push replication #2627 Thanks @DDoerner
Bugfixes:
RxLocalDocument.$
emitted to often on changes #2471- Fix typings of
RxReplicationState.collection
Features:
- Allow to skip docs in push/pull modifiers with the graphql-replication. #2552 Thanks @DDoerner
- Allow to type the data of
RxLocalDocument
likemyDatabase.getLocal<{foo: string}>('bar')
Other:
Features:
Bugfixes:
- wrong key handling on compound indexes #2456 Thanks @dome4
- Nested
$or
queries where broken when they used the primaryKey in the selector
Other:
- Upgraded pouchdb to
7.2.2
- Upgraded typescript to
3.9.7
Features:
- Add cache-replacement-policy for the QueryCache
- GraphQL replication async modifier function #2367
Bugfixes:
- GraphQL replication run increasing requests when offline #2336
Features:
- Added (beta)
RxCollection.findByIds()
to get many documents by their id with a better performance.
Other:
- Added typings for
pouch.allDocs()
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
Features:
RxDatabase.server()
does now acceptpouchdbExpressOptions
to set the log file and other stuff configured on express-pouchdb
Bugfixes:
- prepareQuery should handle all comparison operators #2213 Thanks @kunal15595
Other:
- Added webpack tree shaking optimization via
sideEffects: false
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 afteratomicUpdate()
andatomicSet()
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()
tocreateRxDatabase()
- Renamed
removeDatabase()
toremoveRxDatabase()
- Renamed
plugin()
toaddRxPlugin()
- Replaced plugins
error-messages
andschema-check
with dev-mode - Moved data migration from core to migration plugin
- Replaced key-compression implementation with jsonschema-key-compression
- Renamed
RxDatabase.queryChangeDetection
toeventReduce
and set default totrue
(no beta anymore) - Change
.find()
and.findOne()
to acccept a full MangoQuery withsort
andlimit
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)
tofalse
- Refactored
RxCollection
- Creating a collection will no longer emit an
RxChangeEvent
- Removed
RxCollection.docChanges$()
because all events are from the docs - Renamed
RxSchema.jsonID
toRxSchema.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
Other:
Features:
Other:
- Upgraded PouchDB and other dependencies
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
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
Features:
- Added
RxCollection.bulkInsert()
Bugfixes:
- Fix replication of migrated schemas in the server plugin
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
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
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
Migrated to typescript.
- Fixed import of
@types/pouchdb-core
and@types/pouchdb-find
Bugfixes:
- Fixed typings of
preCreateRxCollection
#1533 Thanks @yanshiyason
Migrated to typescript.
Features:
- Add ability to use
server
app as a part of bigger Express app #1448 Thanks @dstudzinski
Bugfixes:
- custom server path not working on
server
-plugin #1447 Thanks @dstudzinski - Fix CORS headers when the request's credentials mode is 'include' #1450 Thanks @dstudzinski
Other:
- Improved
QueryChangeDetection
to not run on irrelevant changes
Bugfixes:
- Fix imports of encryption-plugin to work with rollup #1413 Thanks @kenshyx
- Removed
express-pouchdb
from the dependencies #884
Features:
- Added
RxQuery.doesDocumentDataMatch()
read the docs
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
Features:
- Added a plugin for GraphQL-replication
Bugfixes:
Features:
Bugfixes:
Typings:
- ADD typings to access the
PouchSyncHandler
ofRxReplicationState
Bugfixes:
- Vue devtools broke the application #1126
Typings:
RxDocument.getAttachment()
andRxDocument.allAttachments()
did not return promises- ADD RxJsonSchema generic for better TypeScript experience
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 noRxAttachment
RxDocument.toJSON(false)
does no longer return the_attachments
attribute
Bugfixes:
- Fix creating a collection mutates to arguments object #939
- Fix not having optional encrypted fields in a document throws an error #917
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
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
Bugfixes:
- Updated the dependencies with some bugfixes
Bugfixes:
- Reopening a database after using the wrong password did not work #837
Features:
Bugfixes:
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 tokeyCompression
which defaults tofalse
RxDatabase.collection()
now only accepts the json-schema as schema-attribute- It is no longer allowed to set required fields via
required: true
, userequired: ['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$
andRxDocument.resync()
- Middleware-Hooks now have
plainJson
as first parameter andRxDocument
-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 onRxDocument.atomicUpdate()
andRxDocument.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 withRxReplicationState.complete$
- Split
RxCollection.watchForChanges()
into own plugin - Refactored
RxQuery
Bugfixes:
- newRxError is not a constructor #719 thanks @errorx666
- Collection name validation is too strict #720 thanks @errorx666
- Field names can't be one character long #717 thanks @errorx666
- Invalid value persists in document after failed update #734 thanks @rybaczewa
Other
- Moved
@types/core-js
to dev-dependencies #712 - Added more example the the RxQuery-Docs #740 thanks @Celludriel
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()
orRxQuery.$
does not affect future calls #698#issuecomment-402604237
Other:
- Updated Angular-Example to 6.0.5 Thanks @fuerst
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)
Bugfixes:
- Query cache is not being invalidated by replication #630
Other:
- Updated to rxjs 6.0.0
- Added integration tests for couchdb
Bugfixes:
Other:
- Fixed typings for
additionalProperties
in schemas - Added performance-tests
- Removed workarround for pouchdb#6733
Typings:
- Added optional type for ORM-Methods
Features:
- Added
RxCollection.insert$
,RxCollection.update$
,RxCollection.remove$
read the docs
Other:
- Added
dangerousRemoveCollectionInfo()
for migrations over rxdb-versions. - Improved typings for
RxChangeEvent
Bugfixes:
- Wrong index used when no sort specified #609
Other:
- Improved typings of
RxChangeEvent
thx @hubgit
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
Bugfixes:
- Wrong typings with custom build #576
Features:
Bugfixes:
- Remove preinstall-script #558 thx @adam-lebon
Features:
- Added
RxDatabase.server()
to quickly spawn couchdb-compatibe endpoint out of RxDB. Read this - Use
CustomIdleQueue
for atomic updates to enable #494
Bugfixes:
Other:
- Update to pouchdb version 6.4.3
- Improve performance by using the profiler
- Added typings for internal
pouchdb
-instance
Features:
- Upgraded to pouchdb 6.4.2. Read this
Typings:
- Fix
RxCollection.findOne()
can returnnull
Other:
- Improved react-native-example thx @Darkbladecr
Bugfixes:
Features:
- Added ajv-validate-plugin. Thx @rybaczewa
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
Warning:
- Removed automatic import of
pouchdb-adapter-memory
for in-memory-collections. Read this
Features:
- Added options-parameter
- Added
postCreateRxDocument
plugin-hook - Added no-validate-plugin
- Added typings for
RxPlugin
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
Bugfixes:
- Error on key-compression when nested value is null
- Fix typings of
RxDocument.putAttachment()
Other:
- Reduced build-size by using rxjs-lettable-operators. Read this if you have problems.
- Improved typings #368 thx @FlorianKoerner
Bugfixes:
- Include
pouchdb-adapter-memory
as dependency #365
Breaking:
Features:
- Added attachments
- Added final fields
- Added inMemory-collections
- Added local documents
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
- Fix
core is not defined
#296
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:
- Added RxDatabase.requestIdlePromise()
- Added RxDB.checkAdapter()
- Added ignoreDuplicate-parameter to
RxDB.create()
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 theparameters
-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
Features:
- Added custom builds
- Added plugin-support
- Added default exports. Use
import RxDB from 'rxdb'
instead ofimport * as RxDB from 'rxdb'
Bugfixes:
RxQuery.or()
did not work with KeyCompression #252
Quickfix because of new pouchdb-import
Features:
- Added RxCollection.atomicUpsert
- Added default values
- Added generic typings so it's easier to be extended see
Other:
- Split out test-util into its own npm-module async-test-util
- Upgrade to pouchdb version 6.3.4
Bugfixes:
- Settings values to
null
did not work on temporaryDocuments #215 RxDocument.atomicUpdate()
did not run when reusing after a whileRxQuery.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.
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
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 asyncRxCollection.sync()
completely changed docs
Other:
- Added .babelrc to .npmignore
- Added build-tests to travis
Features:
- Added
postCreate
-hook #165 - Added
RxQuery.update()
andRxDocument.update()
#143 Thanks @lgandecki
Bugfixes:
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
Bugfixes:
- Ensure es6-build does not contain es7-features
- Ensure everything works after using UglifyJs
Bugfixes:
jsnext:main
andmodule
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
Breaking:
- RxQuery's are now immutable
- RxQuery.$ does not emit
null
when running - RxQuery will sort by primary (ASC) as default
Features:
- Added QueryChangeDetection (in beta, disabled by default)
Other:
- upgraded to pouchdb v6.2.0
- re-executing queries while nothing happend to the collection, is now fetched
Bugfixes:
findOne().$
did not havelimit:1
findOne(string).$
streams all documents when_id
as primary
Bugfixes:
- Fixed es6-imports for webpack-builds
Features:
- Population can now be done on arrays
Other:
- improved typings
Bugfixes:
- overwrites default selector on
RxQuery.sort()
Other:
- Refactor RxQuery for better performance
- Refactor mquery for smaller build
- More tests for RxQuery
Bugfixes:
- Vuejs runs populate-getter on changedetection #75
isDeepEqual
does not work correctly for Arrays #76- wrong
storageEngine
in the typings
Features:
- Added RxDocument.deleted
- Added RxDocument.synced
- moved from jsonschema to is-my-json-valid
Bugfixes:
- No error on sync when remote document is deleted 680f75bfcbda3f71b6ba0a95ceecdc6b6f30ba58
Bugfixes:
- compound-index not being created #68
Bugfixes:
- new document does not get new state on remove-reinsert #66
Features:
- added DataMigration
- added ORM/DRM-capabilities
- added RxQuery.remove()
- added Population
- added RxDocument.deleted$
- added RxDocument.synced$
- added RxDocument.resnyc()
- added RxCollection.upsert()
- non-top-level-indexes are now allowed
RxQuery.sort()
now works on non-top-level-indexes
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, usemyDatabase.heroes
to get existing oneRxDB.create()
multiInstance is now true by defaultrxjs
andbabel-polyfill
are now peerDependencies
Features:
- possibility to add
pouchSettings
when creating a collection - typings compatible with
noImplicitAny
Typescript projects
Bugfixes:
- top-level array of document not working #50
- event on document.remove() not fired at query-obserable #52
Features:
- save full schema in internal database once
Bugfixes:
- Throw when .findOne() is called with number or array
- ADD babel-polyfill to dependencies #40
Bugfixes:
- Throw when .regex() is used on primary
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
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
Features:
Features:
- add middleware-hooks
Bugfixes:
- direct import 'url'-module for react native
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