Index: node_modules/@tootallnate/once/dist/index.d.ts
===================================================================
--- node_modules/@tootallnate/once/dist/index.d.ts	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
+++ node_modules/@tootallnate/once/dist/index.d.ts	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
@@ -0,0 +1,14 @@
+/// <reference types="node" />
+import { EventEmitter } from 'events';
+declare function once<T>(emitter: EventEmitter, name: string): once.CancelablePromise<T>;
+declare namespace once {
+    interface CancelFunction {
+        (): void;
+    }
+    interface CancelablePromise<T> extends Promise<T> {
+        cancel: CancelFunction;
+    }
+    type CancellablePromise<T> = CancelablePromise<T>;
+    function spread<T extends any[]>(emitter: EventEmitter, name: string): once.CancelablePromise<T>;
+}
+export = once;
Index: node_modules/@tootallnate/once/dist/index.js
===================================================================
--- node_modules/@tootallnate/once/dist/index.js	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
+++ node_modules/@tootallnate/once/dist/index.js	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
@@ -0,0 +1,39 @@
+"use strict";
+function noop() { }
+function once(emitter, name) {
+    const o = once.spread(emitter, name);
+    const r = o.then((args) => args[0]);
+    r.cancel = o.cancel;
+    return r;
+}
+(function (once) {
+    function spread(emitter, name) {
+        let c = null;
+        const p = new Promise((resolve, reject) => {
+            function cancel() {
+                emitter.removeListener(name, onEvent);
+                emitter.removeListener('error', onError);
+                p.cancel = noop;
+            }
+            function onEvent(...args) {
+                cancel();
+                resolve(args);
+            }
+            function onError(err) {
+                cancel();
+                reject(err);
+            }
+            c = cancel;
+            emitter.on(name, onEvent);
+            emitter.on('error', onError);
+        });
+        if (!c) {
+            throw new TypeError('Could not get `cancel()` function');
+        }
+        p.cancel = c;
+        return p;
+    }
+    once.spread = spread;
+})(once || (once = {}));
+module.exports = once;
+//# sourceMappingURL=index.js.map
Index: node_modules/@tootallnate/once/dist/index.js.map
===================================================================
--- node_modules/@tootallnate/once/dist/index.js.map	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
+++ node_modules/@tootallnate/once/dist/index.js.map	(revision 81bc7da776d8cda42939ef4ab350c88d13b4941f)
@@ -0,0 +1,1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,SAAS,IAAI,KAAI,CAAC;AAElB,SAAS,IAAI,CACZ,OAAqB,EACrB,IAAY;IAEZ,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAM,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAA8B,CAAC;IACtE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACpB,OAAO,CAAC,CAAC;AACV,CAAC;AAED,WAAU,IAAI;IAWb,SAAgB,MAAM,CACrB,OAAqB,EACrB,IAAY;QAEZ,IAAI,CAAC,GAA+B,IAAI,CAAC;QACzC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,SAAS,MAAM;gBACd,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACtC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACzC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,SAAS,OAAO,CAAC,GAAG,IAAW;gBAC9B,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,IAAS,CAAC,CAAC;YACpB,CAAC;YACD,SAAS,OAAO,CAAC,GAAU;gBAC1B,MAAM,EAAE,CAAC;gBACT,MAAM,CAAC,GAAG,CAAC,CAAC;YACb,CAAC;YACD,CAAC,GAAG,MAAM,CAAC;YACX,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,CAAC,CAA8B,CAAC;QAChC,IAAI,CAAC,CAAC,EAAE;YACP,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;SACzD;QACD,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACb,OAAO,CAAC,CAAC;IACV,CAAC;IA5Be,WAAM,SA4BrB,CAAA;AACF,CAAC,EAxCS,IAAI,KAAJ,IAAI,QAwCb;AAED,iBAAS,IAAI,CAAC"}
