docs/posts/2024-05-24-pouchdb-9.0.0.md
The PouchDB developers are delighted to announce the immediate availability of PouchDB 9.0.0. This is a major release with 202 PRs merged since the last version.
For a full changelog from 8.0.1 to 9.0.0, please see the releases page or view the latest commits.
The PouchDB developers would like to thank all contributors for their hard and diligent work.
indexeddb adapter. Special thanks to @alxndrsn, Medic, and the Google Advanced Web Apps Fund.25) to the .find() method. This constitutes a backwards incompatible change and is the reason for the major version bump.clone-buffer polyfill (#8957)AbortController dependency and polyfillsArrayBuffer.slice()Set/Map polyfill_design/ prefix removal more specific (#8946)Array.flat() built-in (#8929)lodash.flatten() with Array.flat() built-in (#8928)isValidRev(): reject revs with more than one dash (#8933)db.post(), db.bulkDocs(): throw INVALID_REV consistently (#8934)watch-glob with maintained glob-watcherjsnext:main (#8663)isValidRev(): cache regexallDocs() perf with skip & key ranges (#8603)oneSetIsSubArrayOfOther loop update (#8921)... of loops (#8892)Blob.slice() (#8895)Object.assign() (#8896)var with const (#8880)isLocalId() (#8883)CheckpointerInternal (#8871)immediate with queueMicrotaskbundle-collapser and es3ifyheckBlobSupport() (#8804)findIndex() (#8791)commonUtils.createDocId(): simplify with padStart() (#8795)adapter.getAttachment(): don't pass rev (#8792)indexeddb.bulkDocs(): inline parseBase64() (#8793)forEach() instead of map() when result not used (#8790)compareByIdThenRev() (#8787)indexeddb.getAttachment(): don't open unnecessary transaction (#8786)idb.allDocs(): use seqStore.openKeyCursor() in place of openCursor() (#8764)indexeddb.getAttachments(): reduce selects from N+1 (#8771)getMaxUpdateSeq() (#8762)idb.info(): use seqStore.openKeyCursor() in place of openCursor() (#8763)promise-polyfill (#8643).gitignore: remove lerna reference"?" when no params presentconst where possiblenode-fetch to 2.6.9idb.allDocs(): reference keys consistently (#8578)db.put(): throw INVALID_REV for invalid revs (#8931)fetch-cookie from 2.1.0 to 2.2.0 (#8859)last_seqfind() (#8807)var in with let/const (#8932)Debug mode link (#8916)since (#8624)baseurl for faviconjwt usageci.yml permissionsNOT_AN_OBJECT: throw for null; add additional tests (#8930)test.slash_id: assert getAttachment() result (#8923)test.slash_id: fix test name (#8924)5007 sync 2 databasestest.issue3179.js conflicts synced live syncdone() when closing express servers (#8840)mocha from v3.5 to v10 (#8838)externally-triggered browser-close event (#8836)fetch-cookie from 0.11.0 to 2.1.0before() above beforeEach() (#8832)this.iterations in setup/tearDown (#8777)commonUtils.params() (#8780)URLSearchParams (#8779)URLSearchParams (#8781)COUCH_HOST value when waiting (#8761)leveldown.migration.js (#8755)asyncLoadScript() (#8751)this.skip() (#8744) event-listener-leak test namesPromiseRejectionEventascii_only=trueget-postfixed-pouchdb-build (#8622)start_standalone_couch.sh (#8635)As always, we welcome feedback from the community. Please don't hesitate to file issues, open discussions or get in touch. And of course, a big thanks to all of our new and existing contributors!