Index: node_modules/minipass-flush/LICENSE
===================================================================
--- node_modules/minipass-flush/LICENSE	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
+++ node_modules/minipass-flush/LICENSE	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter and Contributors
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Index: node_modules/minipass-flush/README.md
===================================================================
--- node_modules/minipass-flush/README.md	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
+++ node_modules/minipass-flush/README.md	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
@@ -0,0 +1,47 @@
+# minipass-flush
+
+A Minipass stream that calls a flush function before emitting 'end'
+
+## USAGE
+
+```js
+const Flush = require('minipass-flush')
+cons f = new Flush({
+  flush (cb) {
+    // call the cb when done, or return a promise
+    // the 'end' event will wait for it, along with
+    // close, finish, and prefinish.
+    // call the cb with an error, or return a rejecting
+    // promise to emit 'error' instead of doing the 'end'
+    return rerouteAllEncryptions().then(() => clearAllChannels())
+  },
+  // all other minipass options accepted as well
+})
+
+someDataSource.pipe(f).on('end', () => {
+  // proper flushing has been accomplished
+})
+
+// Or as a subclass implementing a 'flush' method:
+class MyFlush extends Flush {
+  flush (cb) {
+    // old fashioned callback style!
+    rerouteAllEncryptions(er => {
+      if (er)
+        return cb(er)
+      clearAllChannels(er => {
+        if (er)
+          cb(er)
+        cb()
+      })
+    })
+  }
+}
+```
+
+That's about it.
+
+If your `flush` method doesn't have to do anything asynchronous, then it's
+better to call the callback right away in this tick, rather than returning
+`Promise.resolve()`, so that the `end` event can happen as soon as
+possible.
Index: node_modules/minipass-flush/index.js
===================================================================
--- node_modules/minipass-flush/index.js	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
+++ node_modules/minipass-flush/index.js	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
@@ -0,0 +1,39 @@
+const Minipass = require('minipass')
+const _flush = Symbol('_flush')
+const _flushed = Symbol('_flushed')
+const _flushing = Symbol('_flushing')
+class Flush extends Minipass {
+  constructor (opt = {}) {
+    if (typeof opt === 'function')
+      opt = { flush: opt }
+
+    super(opt)
+
+    // or extend this class and provide a 'flush' method in your subclass
+    if (typeof opt.flush !== 'function' && typeof this.flush !== 'function')
+      throw new TypeError('must provide flush function in options')
+
+    this[_flush] = opt.flush || this.flush
+  }
+
+  emit (ev, ...data) {
+    if ((ev !== 'end' && ev !== 'finish') || this[_flushed])
+      return super.emit(ev, ...data)
+
+    if (this[_flushing])
+      return
+
+    this[_flushing] = true
+
+    const afterFlush = er => {
+      this[_flushed] = true
+      er ? super.emit('error', er) : super.emit('end')
+    }
+
+    const ret = this[_flush](afterFlush)
+    if (ret && ret.then)
+      ret.then(() => afterFlush(), er => afterFlush(er))
+  }
+}
+
+module.exports = Flush
Index: node_modules/minipass-flush/package.json
===================================================================
--- node_modules/minipass-flush/package.json	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
+++ node_modules/minipass-flush/package.json	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
@@ -0,0 +1,39 @@
+{
+  "name": "minipass-flush",
+  "version": "1.0.5",
+  "description": "A Minipass stream that calls a flush function before emitting 'end'",
+  "author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)",
+  "license": "ISC",
+  "scripts": {
+    "test": "tap",
+    "snap": "tap",
+    "preversion": "npm test",
+    "postversion": "npm publish",
+    "postpublish": "git push origin --follow-tags"
+  },
+  "tap": {
+    "check-coverage": true
+  },
+  "devDependencies": {
+    "tap": "^14.6.9"
+  },
+  "dependencies": {
+    "minipass": "^3.0.0"
+  },
+  "files": [
+    "index.js"
+  ],
+  "main": "index.js",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/isaacs/minipass-flush.git"
+  },
+  "keywords": [
+    "minipass",
+    "flush",
+    "stream"
+  ],
+  "engines": {
+    "node": ">= 8"
+  }
+}
