redgeoff / delta-pouch

Conflict-free collaborative editing for PouchDB
196 stars 13 forks source link

Update pouchdb to the latest version 🚀 #125

Closed greenkeeper[bot] closed 5 years ago

greenkeeper[bot] commented 5 years ago

Version 7.0.0 of the pouchdb packages was just published.

Monorepo release group pouchdb
Current Version 6.4.3
Type devDependency

This monorepo update includes releases of one or more dependencies which all belong to the pouchdb group definition.

The version 7.0.0 is not covered by your current version range.

If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

It might be worth looking into these changes and trying to get this project onto the latest version of pouchdb.

If you have a solid test suite and good coverage, a passing build is a strong indicator that you can take advantage of these changes directly by merging the proposed change into your project. If the build fails or you don’t have such unconditional trust in your tests, this branch is a great starting point for you to work on the update.


Release Notes 7.0.0

As promised back in January it is time to drop WebSQL from our default builds. This not only lets us focus our development efforts on a single engine but along with the other changes explained below reduces the default PouchDB package size from 148KB to 122KB, thats 17.5% smaller!

Removed WebSQL

#6943 - The WebSQL adapter is still available to download and use, it will no longer be available as part of a default PouchDB build and will eventually be moved to the pouchdb-community repo. If you need to migrate your users from WebSQL to IndexeDB then there is some advice available in our previous release post.

Removed Promise Polyfill

#6945 - Including our own Promise polyfill means larger bundles when most apps already include their own polyfill if they need it. So if you support browsers which do not support Promises natively you will need to include a polyfill yourself. We use promise-polyfill and have found it to work great.

Switch to fetch

#6944 - This is another API that may need polyfilled if you use PouchDB and support IE, we use whatwg-fetch. Switching to fetch has allowed us to expose the ability to intercept the requests PouchDB makes for more flexibility, such as:

var db = new PouchDB('http://example.com/dbname', {
  fetch: function (url, opts) {
    opts.headers.set('X-Some-Special-Header', 'foo');
    return PouchDB.fetch(url, opts);
  }
});

That will add a X-Some-Special-Header to every HTTP request PouchDB makes.

Deterministic Revisions

#4642 - We now match CouchDB default behaviour and use the documents contents to determine its revision, this means automated conflict resolution handlers are less likely to generate extra conflicts.

More Deprecations

  • #6946 - Remove debug dep
  • #7134 - Remove IndexedDB storage option
  • #6944 - Remove deprecated skipSetup

Fixes

  • #7040 - Use fixed-length array in idb/indexeddb allDocs
  • #6655 - Use consistent types for replication progress values
  • #7085 - Accept old Safari version as valid
  • #7095 - Reduce replication to server requests
  • #7115 - Remove catastrophic backtracking vulnerability
  • #7127 - Fix docs for db.query()'s options.reduce default
  • #7141 - Fix ios idb blobSupport silent fail
  • #6502 - Set return_docs default false when opts.live = true
  • #7126 - Check level.destroy exists before calling
  • #5814 - Ensure prefix has trailing slash

Get in touch

As always, we welcome feedback from the community and would love to hear what you think of this release as well as PouchDB's future direction. Please don't hesitate to file issues or get in touch. And of course, a big thanks to all of our new and existing contributors!

FAQ and help There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).

Your Greenkeeper bot :palm_tree: