gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] branch master updated (e22ac132 -> 5ff3b445)


From: gnunet
Subject: [taler-wallet-core] branch master updated (e22ac132 -> 5ff3b445)
Date: Thu, 10 Feb 2022 19:53:47 +0100

This is an automated email from the git hooks/post-receive script.

dold pushed a change to branch master
in repository wallet-core.

    from e22ac132 remove useless file
     new 1de42383 dependencies
     new 5ff3b445 idb-bridge: update tests for ava 4.x

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 package.json                                       |    3 +-
 packages/anastasis-core/package.json               |   10 +-
 packages/idb-bridge/package.json                   |   11 +-
 packages/idb-bridge/src/MemoryBackend.test.ts      |   36 +-
 packages/idb-bridge/src/MemoryBackend.ts           |   20 +-
 packages/idb-bridge/src/backend-interface.ts       |    4 +-
 packages/idb-bridge/src/bridge-idb.ts              |   33 +-
 .../abort-in-initial-upgradeneeded.test.ts         |    2 +-
 .../idb-wpt-ported/close-in-upgradeneeded.test.ts  |   76 +-
 .../src/idb-wpt-ported/cursor-overloads.test.ts    |  211 +--
 .../event-dispatch-active-flag.test.ts             |    5 +-
 .../idb-wpt-ported/idbcursor-advance-index.test.ts |    6 +-
 .../idbcursor-continue-index.test.ts               |  694 +++++-----
 .../idbcursor-continue-objectstore.test.ts         |  439 +++---
 .../idbcursor-delete-exception-order.test.ts       |    2 +-
 .../idb-wpt-ported/idbcursor-delete-index.test.ts  |  354 ++---
 .../idbcursor-delete-objectstore.test.ts           |  330 ++---
 .../src/idb-wpt-ported/idbcursor-reused.test.ts    |    2 +-
 .../idb-wpt-ported/idbcursor-update-index.test.ts  |  594 ++++----
 .../src/idb-wpt-ported/idbfactory-cmp.test.ts      |    2 +-
 .../src/idb-wpt-ported/idbfactory-open.test.ts     |    6 +-
 .../src/idb-wpt-ported/idbindex-get.test.ts        |    6 +-
 .../src/idb-wpt-ported/idbindex-openCursor.test.ts |  125 +-
 .../idbobjectstore-add-put-exception-order.test.ts |    5 +-
 .../src/idb-wpt-ported/idbobjectstore-add.test.ts  |    6 +-
 .../src/idb-wpt-ported/idbobjectstore-get.test.ts  |  275 ++--
 .../src/idb-wpt-ported/idbobjectstore-put.test.ts  |  776 ++++++-----
 .../idbobjectstore-rename-store.test.ts            |    2 +-
 .../idbtransaction-oncomplete.test.ts              |    2 +-
 .../idb-bridge/src/idb-wpt-ported/keypath.test.ts  |    2 +-
 .../request-bubble-and-capture.test.ts             |    5 +-
 .../transaction-requestqueue.test.ts               |    6 +-
 .../idb-bridge/src/idb-wpt-ported/value.test.ts    |   72 +-
 .../idb-bridge/src/idb-wpt-ported/wptsupport.ts    |   11 +-
 packages/idb-bridge/src/util/FakeEvent.ts          |    4 +-
 packages/idb-bridge/src/util/FakeEventTarget.ts    |    4 +-
 packages/idb-bridge/src/util/canInjectKey.test.ts  |    2 +-
 packages/idb-bridge/src/util/canInjectKey.ts       |    2 +-
 packages/idb-bridge/src/util/cmp.ts                |    4 +-
 packages/idb-bridge/src/util/extractKey.ts         |    4 +-
 packages/idb-bridge/src/util/fakeDOMStringList.ts  |    1 -
 packages/idb-bridge/src/util/getIndexKeys.test.ts  |   10 +-
 packages/idb-bridge/src/util/getIndexKeys.ts       |    6 +-
 .../idb-bridge/src/util/makeStoreKeyValue.test.ts  |    2 +-
 packages/idb-bridge/src/util/makeStoreKeyValue.ts  |   10 +-
 .../idb-bridge/src/util/structuredClone.test.ts    |    2 +-
 packages/idb-bridge/src/util/validateKeyPath.ts    |    2 +-
 packages/idb-bridge/src/util/valueToKey.ts         |    4 +-
 packages/pogen/package.json                        |    4 +-
 pnpm-lock.yaml                                     | 1458 +++++++++++++++-----
 50 files changed, 3285 insertions(+), 2367 deletions(-)

diff --git a/package.json b/package.json
index d5a5fd84..79bff475 100644
--- a/package.json
+++ b/package.json
@@ -8,9 +8,10 @@
     "check": "pnpm run --filter '{packages}' --if-present test"
   },
   "devDependencies": {
+    "@babel/core": "7.13.16",
     "@linaria/esbuild": "^3.0.0-beta.15",
     "@linaria/shaker": "^3.0.0-beta.15",
-    "esbuild": "^0.14.10",
+    "esbuild": "^0.14.21",
     "prettier": "^2.5.1"
   }
 }
diff --git a/packages/anastasis-core/package.json 
b/packages/anastasis-core/package.json
index 3c3aad62..a339f271 100644
--- a/packages/anastasis-core/package.json
+++ b/packages/anastasis-core/package.json
@@ -20,19 +20,19 @@
     "@rollup/plugin-commonjs": "^21.0.1",
     "@rollup/plugin-json": "^4.1.0",
     "@rollup/plugin-node-resolve": "^13.1.3",
-    "ava": "^3.15.0",
+    "ava": "^4.0.1",
     "rimraf": "^3.0.2",
-    "rollup": "^2.63.0",
+    "rollup": "^2.67.2",
     "rollup-plugin-sourcemaps": "^0.6.3",
     "source-map-support": "^0.5.21",
-    "typescript": "^4.5.4"
+    "typescript": "^4.5.5"
   },
   "dependencies": {
     "@gnu-taler/taler-util": "workspace:*",
     "fetch-ponyfill": "^7.1.0",
-    "fflate": "^0.7.2",
+    "fflate": "^0.7.3",
     "hash-wasm": "^4.9.0",
-    "node-fetch": "^3.1.0",
+    "node-fetch": "^3.2.0",
     "tslib": "^2.3.1"
   },
   "ava": {
diff --git a/packages/idb-bridge/package.json b/packages/idb-bridge/package.json
index 87add525..b26ce20e 100644
--- a/packages/idb-bridge/package.json
+++ b/packages/idb-bridge/package.json
@@ -4,6 +4,7 @@
   "description": "IndexedDB implementation that uses SQLite3 as storage",
   "main": "./dist/idb-bridge.js",
   "module": "./lib/index.js",
+  "type": "module",
   "types": "./lib/index.d.ts",
   "author": "Florian Dold",
   "license": "AGPL-3.0-or-later",
@@ -19,13 +20,13 @@
     "@rollup/plugin-commonjs": "^21.0.1",
     "@rollup/plugin-json": "^4.1.0",
     "@rollup/plugin-node-resolve": "^13.1.3",
-    "@types/node": "^17.0.8",
-    "ava": "^3.15.0",
+    "@types/node": "^17.0.17",
+    "ava": "^4.0.1",
     "esm": "^3.2.25",
-    "prettier": "^2.2.1",
+    "prettier": "^2.5.1",
     "rimraf": "^3.0.2",
-    "rollup": "^2.63.0",
-    "typescript": "^4.5.4"
+    "rollup": "^2.67.2",
+    "typescript": "^4.5.5"
   },
   "dependencies": {
     "tslib": "^2.3.1"
diff --git a/packages/idb-bridge/src/MemoryBackend.test.ts 
b/packages/idb-bridge/src/MemoryBackend.test.ts
index 3c5e13df..b36143aa 100644
--- a/packages/idb-bridge/src/MemoryBackend.test.ts
+++ b/packages/idb-bridge/src/MemoryBackend.test.ts
@@ -22,14 +22,14 @@ import {
   BridgeIDBKeyRange,
   BridgeIDBRequest,
   BridgeIDBTransaction,
-} from "./bridge-idb";
+} from "./bridge-idb.js";
 import {
   IDBCursorDirection,
   IDBCursorWithValue,
   IDBKeyRange,
   IDBValidKey,
 } from "./idbtypes.js";
-import { MemoryBackend } from "./MemoryBackend";
+import { MemoryBackend } from "./MemoryBackend.js";
 
 function promiseFromRequest(request: BridgeIDBRequest): Promise<any> {
   return new Promise((resolve, reject) => {
@@ -150,7 +150,7 @@ test("Spec: Example 1 Part 3", async (t) => {
 
   await promiseFromRequest(request3);
 
-  let cursor: BridgeIDBCursorWithValue;
+  let cursor: BridgeIDBCursorWithValue | null;
   cursor = request3.result as BridgeIDBCursorWithValue;
   t.is(cursor.value.author, "Fred");
   t.is(cursor.value.isbn, 123456);
@@ -172,6 +172,9 @@ test("Spec: Example 1 Part 3", async (t) => {
   await promiseFromRequest(request4);
 
   cursor = request4.result;
+  if (!cursor) {
+    throw new Error();
+  }
   t.is(cursor.value.isbn, 123456);
 
   cursor.continue();
@@ -179,6 +182,9 @@ test("Spec: Example 1 Part 3", async (t) => {
   await promiseFromRequest(request4);
 
   cursor = request4.result;
+  if (!cursor) {
+    throw new Error();
+  }
   t.is(cursor.value.isbn, 234567);
 
   cursor.continue();
@@ -186,6 +192,9 @@ test("Spec: Example 1 Part 3", async (t) => {
   await promiseFromRequest(request4);
 
   cursor = request4.result;
+  if (!cursor) {
+    throw new Error();
+  }
   t.is(cursor.value.isbn, 345678);
 
   cursor.continue();
@@ -203,16 +212,25 @@ test("Spec: Example 1 Part 3", async (t) => {
 
   await promiseFromRequest(request5);
   cursor = request5.result;
+  if (!cursor) {
+    throw new Error();
+  }
   t.is(cursor.value.author, "Barney");
   cursor.continue();
 
   await promiseFromRequest(request5);
   cursor = request5.result;
+  if (!cursor) {
+    throw new Error();
+  }
   t.is(cursor.value.author, "Fred");
   cursor.continue();
 
   await promiseFromRequest(request5);
   cursor = request5.result;
+  if (!cursor) {
+    throw new Error();
+  }
   t.is(cursor.value.author, "Fred");
   cursor.continue();
 
@@ -224,11 +242,17 @@ test("Spec: Example 1 Part 3", async (t) => {
 
   await promiseFromRequest(request6);
   cursor = request6.result;
+  if (!cursor) {
+    throw new Error();
+  }
   t.is(cursor.value.author, "Barney");
   cursor.continue();
 
   await promiseFromRequest(request6);
   cursor = request6.result;
+  if (!cursor) {
+    throw new Error();
+  }
   t.is(cursor.value.author, "Fred");
   t.is(cursor.value.isbn, 123456);
   cursor.continue();
@@ -240,12 +264,18 @@ test("Spec: Example 1 Part 3", async (t) => {
   const request7 = index5.openCursor(null, "prevunique");
   await promiseFromRequest(request7);
   cursor = request7.result;
+  if (!cursor) {
+    throw new Error();
+  }
   t.is(cursor.value.author, "Fred");
   t.is(cursor.value.isbn, 123456);
   cursor.continue();
 
   await promiseFromRequest(request7);
   cursor = request7.result;
+  if (!cursor) {
+    throw new Error();
+  }
   t.is(cursor.value.author, "Barney");
   cursor.continue();
 
diff --git a/packages/idb-bridge/src/MemoryBackend.ts 
b/packages/idb-bridge/src/MemoryBackend.ts
index b37dd376..3919cdf9 100644
--- a/packages/idb-bridge/src/MemoryBackend.ts
+++ b/packages/idb-bridge/src/MemoryBackend.ts
@@ -26,20 +26,20 @@ import {
   ResultLevel,
   StoreLevel,
   RecordStoreResponse,
-} from "./backend-interface";
+} from "./backend-interface.js";
 import {
   structuredClone,
   structuredEncapsulate,
   structuredRevive,
-} from "./util/structuredClone";
-import { ConstraintError, DataError } from "./util/errors";
-import BTree, { ISortedMapF, ISortedSetF } from "./tree/b+tree";
-import { compareKeys } from "./util/cmp";
-import { StoreKeyResult, makeStoreKeyValue } from "./util/makeStoreKeyValue";
-import { getIndexKeys } from "./util/getIndexKeys";
-import { openPromise } from "./util/openPromise";
-import { IDBKeyRange, IDBTransactionMode, IDBValidKey } from "./idbtypes";
-import { BridgeIDBKeyRange } from "./bridge-idb";
+} from "./util/structuredClone.js";
+import { ConstraintError, DataError } from "./util/errors.js";
+import BTree, { ISortedMapF, ISortedSetF } from "./tree/b+tree.js";
+import { compareKeys } from "./util/cmp.js";
+import { StoreKeyResult, makeStoreKeyValue } from 
"./util/makeStoreKeyValue.js";
+import { getIndexKeys } from "./util/getIndexKeys.js";
+import { openPromise } from "./util/openPromise.js";
+import { IDBKeyRange, IDBTransactionMode, IDBValidKey } from "./idbtypes.js";
+import { BridgeIDBKeyRange } from "./bridge-idb.js";
 
 type Key = IDBValidKey;
 type Value = unknown;
diff --git a/packages/idb-bridge/src/backend-interface.ts 
b/packages/idb-bridge/src/backend-interface.ts
index 1b9883d2..a2151554 100644
--- a/packages/idb-bridge/src/backend-interface.ts
+++ b/packages/idb-bridge/src/backend-interface.ts
@@ -14,12 +14,12 @@
  permissions and limitations under the License.
  */
 
-import { BridgeIDBDatabaseInfo, BridgeIDBKeyRange } from "./bridge-idb";
+import { BridgeIDBDatabaseInfo, BridgeIDBKeyRange } from "./bridge-idb.js";
 import {
   IDBCursorDirection,
   IDBTransactionMode,
   IDBValidKey,
-} from "./idbtypes";
+} from "./idbtypes.js";
 
 /** @public */
 export interface ObjectStoreProperties {
diff --git a/packages/idb-bridge/src/bridge-idb.ts 
b/packages/idb-bridge/src/bridge-idb.ts
index 8264b43e..35cedb1d 100644
--- a/packages/idb-bridge/src/bridge-idb.ts
+++ b/packages/idb-bridge/src/bridge-idb.ts
@@ -24,7 +24,7 @@ import {
   ResultLevel,
   Schema,
   StoreLevel,
-} from "./backend-interface";
+} from "./backend-interface.js";
 import {
   DOMException,
   DOMStringList,
@@ -41,10 +41,10 @@ import {
   IDBTransaction,
   IDBTransactionMode,
   IDBValidKey,
-} from "./idbtypes";
-import { canInjectKey } from "./util/canInjectKey";
-import { compareKeys } from "./util/cmp";
-import { enforceRange } from "./util/enforceRange";
+} from "./idbtypes.js";
+import { canInjectKey } from "./util/canInjectKey.js";
+import { compareKeys } from "./util/cmp.js";
+import { enforceRange } from "./util/enforceRange.js";
 import {
   AbortError,
   ConstraintError,
@@ -56,20 +56,19 @@ import {
   ReadOnlyError,
   TransactionInactiveError,
   VersionError,
-} from "./util/errors";
-import { FakeDOMStringList, fakeDOMStringList } from 
"./util/fakeDOMStringList";
-import FakeEvent from "./util/FakeEvent";
-import FakeEventTarget from "./util/FakeEventTarget";
-import { makeStoreKeyValue } from "./util/makeStoreKeyValue";
-import { normalizeKeyPath } from "./util/normalizeKeyPath";
-import { openPromise } from "./util/openPromise";
-import queueTask from "./util/queueTask";
+} from "./util/errors.js";
+import { FakeDOMStringList, fakeDOMStringList } from 
"./util/fakeDOMStringList.js";
+import FakeEvent from "./util/FakeEvent.js";
+import FakeEventTarget from "./util/FakeEventTarget.js";
+import { makeStoreKeyValue } from "./util/makeStoreKeyValue.js";
+import { normalizeKeyPath } from "./util/normalizeKeyPath.js";
+import { openPromise } from "./util/openPromise.js";
+import queueTask from "./util/queueTask.js";
 import {
   checkStructuredCloneOrThrow,
-  structuredClone,
-} from "./util/structuredClone";
-import { validateKeyPath } from "./util/validateKeyPath";
-import { valueToKey } from "./util/valueToKey";
+} from "./util/structuredClone.js";
+import { validateKeyPath } from "./util/validateKeyPath.js";
+import { valueToKey } from "./util/valueToKey.js";
 
 /** @public */
 export type CursorSource = BridgeIDBIndex | BridgeIDBObjectStore;
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/abort-in-initial-upgradeneeded.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/abort-in-initial-upgradeneeded.test.ts
index 3b65a903..bbbcf9b9 100644
--- 
a/packages/idb-bridge/src/idb-wpt-ported/abort-in-initial-upgradeneeded.test.ts
+++ 
b/packages/idb-bridge/src/idb-wpt-ported/abort-in-initial-upgradeneeded.test.ts
@@ -1,5 +1,5 @@
 import test from "ava";
-import { createdb } from "./wptsupport";
+import { createdb } from "./wptsupport.js";
 
 test("WPT test abort-in-initial-upgradeneeded.htm", async (t) => {
   await new Promise<void>((resolve, reject) => {
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/close-in-upgradeneeded.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/close-in-upgradeneeded.test.ts
index 96abe391..723a0abb 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/close-in-upgradeneeded.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/close-in-upgradeneeded.test.ts
@@ -1,44 +1,44 @@
 import test from "ava";
-import { BridgeIDBCursor } from "..";
-import { BridgeIDBCursorWithValue } from "../bridge-idb";
-import { createdb } from "./wptsupport";
+import { createdb } from "./wptsupport.js";
 
 // When db.close is called in upgradeneeded, the db is cleaned up on refresh
-test.cb("WPT test close-in-upgradeneeded.htm", (t) => {
-  var db: any;
-  var open_rq = createdb(t);
-  var sawTransactionComplete = false;
-
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    t.deepEqual(db.version, 1);
-
-    db.createObjectStore("os");
-    db.close();
+test("WPT test close-in-upgradeneeded.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    var open_rq = createdb(t);
+    var sawTransactionComplete = false;
+
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      t.deepEqual(db.version, 1);
+
+      db.createObjectStore("os");
+      db.close();
+
+      e.target.transaction.oncomplete = function () {
+        sawTransactionComplete = true;
+      };
+    };
 
-    e.target.transaction.oncomplete = function () {
-      sawTransactionComplete = true;
+    open_rq.onerror = function (e: any) {
+      t.true(sawTransactionComplete, "saw transaction.complete");
+
+      t.deepEqual(e.target.error.name, "AbortError");
+      t.deepEqual(e.result, undefined);
+
+      t.true(!!db);
+      t.deepEqual(db.version, 1);
+      t.deepEqual(db.objectStoreNames.length, 1);
+      t.throws(
+        () => {
+          db.transaction("os");
+        },
+        {
+          name: "InvalidStateError",
+        },
+      );
+
+      resolve();
     };
-  };
-
-  open_rq.onerror = function (e: any) {
-    t.true(sawTransactionComplete, "saw transaction.complete");
-
-    t.deepEqual(e.target.error.name, "AbortError");
-    t.deepEqual(e.result, undefined);
-
-    t.true(!!db);
-    t.deepEqual(db.version, 1);
-    t.deepEqual(db.objectStoreNames.length, 1);
-    t.throws(
-      () => {
-        db.transaction("os");
-      },
-      {
-        name: "InvalidStateError",
-      },
-    );
-
-    t.end();
-  };
+  });
 });
diff --git a/packages/idb-bridge/src/idb-wpt-ported/cursor-overloads.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/cursor-overloads.test.ts
index c4bce874..db2cdbca 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/cursor-overloads.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/cursor-overloads.test.ts
@@ -1,117 +1,130 @@
 import test from "ava";
-import { BridgeIDBCursor, BridgeIDBKeyRange } from "..";
-import { BridgeIDBCursorWithValue } from "../bridge-idb";
-import { IDBRequest } from "../idbtypes";
-import { createdb } from "./wptsupport";
+import { BridgeIDBKeyRange } from "../bridge-idb.js";
+import { IDBRequest } from "../idbtypes.js";
+import { createdb } from "./wptsupport.js";
 
 const IDBKeyRange = BridgeIDBKeyRange;
 
 // Validate the overloads of IDBObjectStore.openCursor(),
 // IDBIndex.openCursor() and IDBIndex.openKeyCursor()
-test.cb("WPT test cursor-overloads.htm", (t) => {
-  var db: any, store: any, index: any;
+test("WPT test cursor-overloads.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any, store: any, index: any;
 
-  var request = createdb(t);
-  request.onupgradeneeded = function (e: any) {
-    db = request.result;
-    store = db.createObjectStore("store");
-    index = store.createIndex("index", "value");
-    store.put({ value: 0 }, 0);
-    const trans = request.transaction!;
-    trans.oncomplete = verifyOverloads;
-  };
+    var request = createdb(t);
+    request.onupgradeneeded = function (e: any) {
+      db = request.result;
+      store = db.createObjectStore("store");
+      index = store.createIndex("index", "value");
+      store.put({ value: 0 }, 0);
+      const trans = request.transaction!;
+      trans.oncomplete = verifyOverloads;
+    };
 
-  async function verifyOverloads() {
-    const trans = db.transaction("store");
-    store = trans.objectStore("store");
-    index = store.index("index");
+    async function verifyOverloads() {
+      const trans = db.transaction("store");
+      store = trans.objectStore("store");
+      index = store.index("index");
 
-    await checkCursorDirection(store.openCursor(), "next");
-    await checkCursorDirection(store.openCursor(0), "next");
-    await checkCursorDirection(store.openCursor(0, "next"), "next");
-    await checkCursorDirection(store.openCursor(0, "nextunique"), 
"nextunique");
-    await checkCursorDirection(store.openCursor(0, "prev"), "prev");
-    await checkCursorDirection(store.openCursor(0, "prevunique"), 
"prevunique");
+      await checkCursorDirection(store.openCursor(), "next");
+      await checkCursorDirection(store.openCursor(0), "next");
+      await checkCursorDirection(store.openCursor(0, "next"), "next");
+      await checkCursorDirection(
+        store.openCursor(0, "nextunique"),
+        "nextunique",
+      );
+      await checkCursorDirection(store.openCursor(0, "prev"), "prev");
+      await checkCursorDirection(
+        store.openCursor(0, "prevunique"),
+        "prevunique",
+      );
 
-    await checkCursorDirection(store.openCursor(IDBKeyRange.only(0)), "next");
-    await checkCursorDirection(
-      store.openCursor(BridgeIDBKeyRange.only(0), "next"),
-      "next",
-    );
-    await checkCursorDirection(
-      store.openCursor(IDBKeyRange.only(0), "nextunique"),
-      "nextunique",
-    );
-    await checkCursorDirection(
-      store.openCursor(IDBKeyRange.only(0), "prev"),
-      "prev",
-    );
-    await checkCursorDirection(
-      store.openCursor(IDBKeyRange.only(0), "prevunique"),
-      "prevunique",
-    );
+      await checkCursorDirection(store.openCursor(IDBKeyRange.only(0)), 
"next");
+      await checkCursorDirection(
+        store.openCursor(BridgeIDBKeyRange.only(0), "next"),
+        "next",
+      );
+      await checkCursorDirection(
+        store.openCursor(IDBKeyRange.only(0), "nextunique"),
+        "nextunique",
+      );
+      await checkCursorDirection(
+        store.openCursor(IDBKeyRange.only(0), "prev"),
+        "prev",
+      );
+      await checkCursorDirection(
+        store.openCursor(IDBKeyRange.only(0), "prevunique"),
+        "prevunique",
+      );
 
-    await checkCursorDirection(index.openCursor(), "next");
-    await checkCursorDirection(index.openCursor(0), "next");
-    await checkCursorDirection(index.openCursor(0, "next"), "next");
-    await checkCursorDirection(index.openCursor(0, "nextunique"), 
"nextunique");
-    await checkCursorDirection(index.openCursor(0, "prev"), "prev");
-    await checkCursorDirection(index.openCursor(0, "prevunique"), 
"prevunique");
+      await checkCursorDirection(index.openCursor(), "next");
+      await checkCursorDirection(index.openCursor(0), "next");
+      await checkCursorDirection(index.openCursor(0, "next"), "next");
+      await checkCursorDirection(
+        index.openCursor(0, "nextunique"),
+        "nextunique",
+      );
+      await checkCursorDirection(index.openCursor(0, "prev"), "prev");
+      await checkCursorDirection(
+        index.openCursor(0, "prevunique"),
+        "prevunique",
+      );
 
-    await checkCursorDirection(index.openCursor(IDBKeyRange.only(0)), "next");
-    await checkCursorDirection(
-      index.openCursor(IDBKeyRange.only(0), "next"),
-      "next",
-    );
-    await checkCursorDirection(
-      index.openCursor(IDBKeyRange.only(0), "nextunique"),
-      "nextunique",
-    );
-    await checkCursorDirection(
-      index.openCursor(IDBKeyRange.only(0), "prev"),
-      "prev",
-    );
-    await checkCursorDirection(
-      index.openCursor(IDBKeyRange.only(0), "prevunique"),
-      "prevunique",
-    );
+      await checkCursorDirection(index.openCursor(IDBKeyRange.only(0)), 
"next");
+      await checkCursorDirection(
+        index.openCursor(IDBKeyRange.only(0), "next"),
+        "next",
+      );
+      await checkCursorDirection(
+        index.openCursor(IDBKeyRange.only(0), "nextunique"),
+        "nextunique",
+      );
+      await checkCursorDirection(
+        index.openCursor(IDBKeyRange.only(0), "prev"),
+        "prev",
+      );
+      await checkCursorDirection(
+        index.openCursor(IDBKeyRange.only(0), "prevunique"),
+        "prevunique",
+      );
 
-    await checkCursorDirection(index.openKeyCursor(), "next");
-    await checkCursorDirection(index.openKeyCursor(0), "next");
-    await checkCursorDirection(index.openKeyCursor(0, "next"), "next");
-    await checkCursorDirection(
-      index.openKeyCursor(0, "nextunique"),
-      "nextunique",
-    );
-    await checkCursorDirection(index.openKeyCursor(0, "prev"), "prev");
-    await checkCursorDirection(
-      index.openKeyCursor(0, "prevunique"),
-      "prevunique",
-    );
+      await checkCursorDirection(index.openKeyCursor(), "next");
+      await checkCursorDirection(index.openKeyCursor(0), "next");
+      await checkCursorDirection(index.openKeyCursor(0, "next"), "next");
+      await checkCursorDirection(
+        index.openKeyCursor(0, "nextunique"),
+        "nextunique",
+      );
+      await checkCursorDirection(index.openKeyCursor(0, "prev"), "prev");
+      await checkCursorDirection(
+        index.openKeyCursor(0, "prevunique"),
+        "prevunique",
+      );
 
-    await checkCursorDirection(
-      index.openKeyCursor(IDBKeyRange.only(0)),
-      "next",
-    );
-    await checkCursorDirection(
-      index.openKeyCursor(IDBKeyRange.only(0), "next"),
-      "next",
-    );
-    await checkCursorDirection(
-      index.openKeyCursor(IDBKeyRange.only(0), "nextunique"),
-      "nextunique",
-    );
-    await checkCursorDirection(
-      index.openKeyCursor(IDBKeyRange.only(0), "prev"),
-      "prev",
-    );
-    await checkCursorDirection(
-      index.openKeyCursor(IDBKeyRange.only(0), "prevunique"),
-      "prevunique",
-    );
+      await checkCursorDirection(
+        index.openKeyCursor(IDBKeyRange.only(0)),
+        "next",
+      );
+      await checkCursorDirection(
+        index.openKeyCursor(IDBKeyRange.only(0), "next"),
+        "next",
+      );
+      await checkCursorDirection(
+        index.openKeyCursor(IDBKeyRange.only(0), "nextunique"),
+        "nextunique",
+      );
+      await checkCursorDirection(
+        index.openKeyCursor(IDBKeyRange.only(0), "prev"),
+        "prev",
+      );
+      await checkCursorDirection(
+        index.openKeyCursor(IDBKeyRange.only(0), "prevunique"),
+        "prevunique",
+      );
 
-    t.end();
-  }
+      resolve();
+    }
+  });
 
   function checkCursorDirection(
     request: IDBRequest,
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/event-dispatch-active-flag.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/event-dispatch-active-flag.test.ts
index b8151f46..acc2a757 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/event-dispatch-active-flag.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/event-dispatch-active-flag.test.ts
@@ -1,11 +1,10 @@
 import test from "ava";
-import { BridgeIDBRequest } from "..";
+import { BridgeIDBRequest } from "../bridge-idb.js";
 import {
-  createdb,
   indexeddb_test,
   is_transaction_active,
   keep_alive,
-} from "./wptsupport";
+} from "./wptsupport.js";
 
 test("WPT test abort-in-initial-upgradeneeded.htm (subtest 1)", async (t) => {
   // Transactions are active during success handlers
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-advance-index.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-advance-index.test.ts
index fac04799..108e7c91 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-advance-index.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-advance-index.test.ts
@@ -1,8 +1,6 @@
 import test from "ava";
-import { BridgeIDBCursor } from "..";
-import { BridgeIDBRequest } from "../bridge-idb";
-import { InvalidStateError } from "../util/errors";
-import { createdb } from "./wptsupport";
+import { BridgeIDBCursor,BridgeIDBRequest } from "../bridge-idb.js";
+import { createdb } from "./wptsupport.js";
 
 test("WPT test idbcursor_advance_index.htm", async (t) => {
   await new Promise<void>((resolve, reject) => {
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-continue-index.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-continue-index.test.ts
index 9b96a2e9..f8b3a0f0 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-continue-index.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-continue-index.test.ts
@@ -1,385 +1,401 @@
 import test from "ava";
-import { BridgeIDBCursor } from "..";
-import { BridgeIDBCursorWithValue } from "../bridge-idb";
-import { createdb } from "./wptsupport";
-
-test.cb("WPT test idbcursor_continue_index.htm", (t) => {
-  var db: any;
-  let count = 0;
-  const records = [
-    { pKey: "primaryKey_0", iKey: "indexKey_0" },
-    { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    { pKey: "primaryKey_1-2", iKey: "indexKey_1" },
-  ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-
-    objStore.createIndex("index", "iKey");
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var cursor_rq = db
-      .transaction("test")
-      .objectStore("test")
-      .index("index")
-      .openCursor();
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-      if (!cursor) {
-        t.deepEqual(count, records.length, "cursor run count");
-        t.end();
-        return;
-      }
+import { BridgeIDBCursor, BridgeIDBCursorWithValue } from "../bridge-idb.js";
+import { createdb } from "./wptsupport.js";
+
+test("WPT test idbcursor_continue_index.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    let count = 0;
+    const records = [
+      { pKey: "primaryKey_0", iKey: "indexKey_0" },
+      { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      { pKey: "primaryKey_1-2", iKey: "indexKey_1" },
+    ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
 
-      var record = cursor.value;
-      t.deepEqual(record.pKey, records[count].pKey, "primary key");
-      t.deepEqual(record.iKey, records[count].iKey, "index key");
+      objStore.createIndex("index", "iKey");
 
-      cursor.continue();
-      count++;
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
     };
-  };
-});
 
-// IDBCursor.continue() - index - attempt to pass a key parameter that is not 
a valid key
-test.cb("WPT idbcursor-continue-index2.htm", (t) => {
-  var db: any;
-  let records = [
-    { pKey: "primaryKey_0", iKey: "indexKey_0" },
-    { pKey: "primaryKey_1", iKey: "indexKey_1" },
-  ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-
-    objStore.createIndex("index", "iKey");
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var cursor_rq = db
-      .transaction("test")
-      .objectStore("test")
-      .index("index")
-      .openCursor();
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-
-      t.throws(
-        () => {
-          cursor.continue({ foo: "bar" });
-        },
-        { name: "DataError" },
-      );
-
-      t.true(cursor instanceof BridgeIDBCursorWithValue, "cursor");
-
-      t.end();
+    open_rq.onsuccess = function (e: any) {
+      var cursor_rq = db
+        .transaction("test")
+        .objectStore("test")
+        .index("index")
+        .openCursor();
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+        if (!cursor) {
+          t.deepEqual(count, records.length, "cursor run count");
+          resolve();
+          return;
+        }
+
+        var record = cursor.value;
+        t.deepEqual(record.pKey, records[count].pKey, "primary key");
+        t.deepEqual(record.iKey, records[count].iKey, "index key");
+
+        cursor.continue();
+        count++;
+      };
     };
-  };
+  });
 });
 
-// IDBCursor.continue() - index - attempt to iterate to the previous
-// record when the direction is set for the next record
-test.cb("WPT idbcursor-continue-index3.htm", (t) => {
-  var db: any;
-  const records = [
-    { pKey: "primaryKey_0", iKey: "indexKey_0" },
-    { pKey: "primaryKey_1", iKey: "indexKey_1" },
-  ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-
-    objStore.createIndex("index", "iKey");
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var count = 0;
-    var cursor_rq = db
-      .transaction("test")
-      .objectStore("test")
-      .index("index")
-      .openCursor(undefined, "next"); // XXX: Fx has issue with "undefined"
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-      if (!cursor) {
-        t.deepEqual(count, 2, "ran number of times");
-        t.end();
-        return;
-      }
+// IDBCursor.continue() - index - attempt to pass a key parameter that is not 
a valid key
+test("WPT idbcursor-continue-index2.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    let records = [
+      { pKey: "primaryKey_0", iKey: "indexKey_0" },
+      { pKey: "primaryKey_1", iKey: "indexKey_1" },
+    ];
 
-      // First time checks key equal, second time checks key less than
-      t.throws(
-        () => {
-          cursor.continue(records[0].iKey);
-        },
-        { name: "DataError" },
-      );
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
 
-      cursor.continue();
+      objStore.createIndex("index", "iKey");
 
-      count++;
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
     };
-  };
-});
 
-// IDBCursor.continue() - index - attempt to iterate to the next
-// record when the direction is set for the previous record
-test.cb("WPT idbcursor-continue-index4.htm", (t) => {
-  var db: any;
-  const records = [
-    { pKey: "primaryKey_0", iKey: "indexKey_0" },
-    { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    { pKey: "primaryKey_2", iKey: "indexKey_2" },
-  ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-
-    objStore.createIndex("index", "iKey");
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var count = 0,
-      cursor_rq = db
+    open_rq.onsuccess = function (e: any) {
+      var cursor_rq = db
         .transaction("test")
         .objectStore("test")
         .index("index")
-        .openCursor(undefined, "prev"); // XXX Fx issues w undefined
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result,
-        record = cursor.value;
-
-      switch (count) {
-        case 0:
-          t.deepEqual(record.pKey, records[2].pKey, "first pKey");
-          t.deepEqual(record.iKey, records[2].iKey, "first iKey");
-          cursor.continue();
-          break;
-
-        case 1:
-          t.deepEqual(record.pKey, records[1].pKey, "second pKey");
-          t.deepEqual(record.iKey, records[1].iKey, "second iKey");
-          t.throws(
-            () => {
-              cursor.continue("indexKey_2");
-            },
-            { name: "DataError" },
-          );
-          t.end();
-          break;
-
-        default:
-          t.fail("Unexpected count value: " + count);
-      }
+        .openCursor();
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+
+        t.throws(
+          () => {
+            cursor.continue({ foo: "bar" });
+          },
+          { name: "DataError" },
+        );
+
+        t.true(cursor instanceof BridgeIDBCursorWithValue, "cursor");
 
-      count++;
+        resolve();
+      };
     };
-  };
+  });
 });
 
-// IDBCursor.continue() - index - iterate using 'prevunique'
-test.cb("WPT idbcursor-continue-index5.htm", (t) => {
-  var db: any;
-  const records = [
-    { pKey: "primaryKey_0", iKey: "indexKey_0" },
-    { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    { pKey: "primaryKey_1-2", iKey: "indexKey_1" },
-    { pKey: "primaryKey_2", iKey: "indexKey_2" },
-  ];
-  const expected = [
-    { pKey: "primaryKey_2", iKey: "indexKey_2" },
-    { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    { pKey: "primaryKey_0", iKey: "indexKey_0" },
-  ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-
-    objStore.createIndex("index", "iKey");
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var count = 0,
-      cursor_rq = db
-        .transaction("test")
-        .objectStore("test")
-        .index("index")
-        .openCursor(undefined, "prevunique");
+// IDBCursor.continue() - index - attempt to iterate to the previous
+// record when the direction is set for the next record
+test("WPT idbcursor-continue-index3.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    const records = [
+      { pKey: "primaryKey_0", iKey: "indexKey_0" },
+      { pKey: "primaryKey_1", iKey: "indexKey_1" },
+    ];
 
-    cursor_rq.onsuccess = function (e: any) {
-      if (!e.target.result) {
-        t.deepEqual(count, expected.length, "count");
-        t.end();
-        return;
-      }
-      const cursor = e.target.result;
-      const record = cursor.value;
-      t.deepEqual(record.pKey, expected[count].pKey, "pKey #" + count);
-      t.deepEqual(record.iKey, expected[count].iKey, "iKey #" + count);
-
-      t.deepEqual(cursor.key, expected[count].iKey, "cursor.key #" + count);
-      t.deepEqual(
-        cursor.primaryKey,
-        expected[count].pKey,
-        "cursor.primaryKey #" + count,
-      );
-
-      count++;
-      cursor.continue(expected[count] ? expected[count].iKey : undefined);
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+
+      objStore.createIndex("index", "iKey");
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
     };
-  };
-});
 
-// IDBCursor.continue() - index - iterate using nextunique
-test.cb("WPT idbcursor-continue-index6.htm", (t) => {
-  var db: any;
-  const records = [
-    { pKey: "primaryKey_0", iKey: "indexKey_0" },
-    { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    { pKey: "primaryKey_1-2", iKey: "indexKey_1" },
-    { pKey: "primaryKey_2", iKey: "indexKey_2" },
-  ];
-  const expected = [
-    { pKey: "primaryKey_0", iKey: "indexKey_0" },
-    { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    { pKey: "primaryKey_2", iKey: "indexKey_2" },
-  ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-
-    objStore.createIndex("index", "iKey");
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var count = 0,
-      cursor_rq = db
+    open_rq.onsuccess = function (e: any) {
+      var count = 0;
+      var cursor_rq = db
         .transaction("test")
         .objectStore("test")
         .index("index")
-        .openCursor(undefined, "nextunique");
+        .openCursor(undefined, "next"); // XXX: Fx has issue with "undefined"
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+        if (!cursor) {
+          t.deepEqual(count, 2, "ran number of times");
+          resolve();
+          return;
+        }
+
+        // First time checks key equal, second time checks key less than
+        t.throws(
+          () => {
+            cursor.continue(records[0].iKey);
+          },
+          { name: "DataError" },
+        );
+
+        cursor.continue();
+
+        count++;
+      };
+    };
+  });
+});
 
-    cursor_rq.onsuccess = function (e: any) {
-      if (!e.target.result) {
-        t.deepEqual(count, expected.length, "count");
-        t.end();
-        return;
-      }
-      var cursor = e.target.result,
-        record = cursor.value;
+// IDBCursor.continue() - index - attempt to iterate to the next
+// record when the direction is set for the previous record
+test("WPT idbcursor-continue-index4.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    const records = [
+      { pKey: "primaryKey_0", iKey: "indexKey_0" },
+      { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      { pKey: "primaryKey_2", iKey: "indexKey_2" },
+    ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
 
-      t.deepEqual(record.pKey, expected[count].pKey, "pKey #" + count);
-      t.deepEqual(record.iKey, expected[count].iKey, "iKey #" + count);
+      objStore.createIndex("index", "iKey");
 
-      t.deepEqual(cursor.key, expected[count].iKey, "cursor.key #" + count);
-      t.deepEqual(
-        cursor.primaryKey,
-        expected[count].pKey,
-        "cursor.primaryKey #" + count,
-      );
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
 
-      count++;
-      cursor.continue(expected[count] ? expected[count].iKey : undefined);
+    open_rq.onsuccess = function (e: any) {
+      var count = 0,
+        cursor_rq = db
+          .transaction("test")
+          .objectStore("test")
+          .index("index")
+          .openCursor(undefined, "prev"); // XXX Fx issues w undefined
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result,
+          record = cursor.value;
+
+        switch (count) {
+          case 0:
+            t.deepEqual(record.pKey, records[2].pKey, "first pKey");
+            t.deepEqual(record.iKey, records[2].iKey, "first iKey");
+            cursor.continue();
+            break;
+
+          case 1:
+            t.deepEqual(record.pKey, records[1].pKey, "second pKey");
+            t.deepEqual(record.iKey, records[1].iKey, "second iKey");
+            t.throws(
+              () => {
+                cursor.continue("indexKey_2");
+              },
+              { name: "DataError" },
+            );
+            resolve();
+            break;
+
+          default:
+            t.fail("Unexpected count value: " + count);
+        }
+
+        count++;
+      };
     };
-  };
+  });
 });
 
-// IDBCursor.continue() - index - throw TransactionInactiveError
-test.cb("WPT idbcursor-continue-index7.htm", (t) => {
-  var db: any,
-    records = [
+// IDBCursor.continue() - index - iterate using 'prevunique'
+test("WPT idbcursor-continue-index5.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    const records = [
       { pKey: "primaryKey_0", iKey: "indexKey_0" },
       { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      { pKey: "primaryKey_1-2", iKey: "indexKey_1" },
+      { pKey: "primaryKey_2", iKey: "indexKey_2" },
+    ];
+    const expected = [
+      { pKey: "primaryKey_2", iKey: "indexKey_2" },
+      { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      { pKey: "primaryKey_0", iKey: "indexKey_0" },
     ];
 
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (event: any) {
-    db = event.target.result;
-    var objStore = db.createObjectStore("store", { keyPath: "pKey" });
-    objStore.createIndex("index", "iKey");
-    for (var i = 0; i < records.length; i++) {
-      objStore.add(records[i]);
-    }
-    var rq = objStore.index("index").openCursor();
-    rq.onsuccess = function (event: any) {
-      var cursor = event.target.result;
-      t.true(cursor instanceof BridgeIDBCursor);
-
-      event.target.transaction.abort();
-      t.throws(
-        () => {
-          cursor.continue();
-        },
-        { name: "TransactionInactiveError" },
-        "Calling continue() should throws an exception 
TransactionInactiveError when the transaction is not active.",
-      );
-      t.end();
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+
+      objStore.createIndex("index", "iKey");
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function (e: any) {
+      var count = 0,
+        cursor_rq = db
+          .transaction("test")
+          .objectStore("test")
+          .index("index")
+          .openCursor(undefined, "prevunique");
+
+      cursor_rq.onsuccess = function (e: any) {
+        if (!e.target.result) {
+          t.deepEqual(count, expected.length, "count");
+          resolve();
+          return;
+        }
+        const cursor = e.target.result;
+        const record = cursor.value;
+        t.deepEqual(record.pKey, expected[count].pKey, "pKey #" + count);
+        t.deepEqual(record.iKey, expected[count].iKey, "iKey #" + count);
+
+        t.deepEqual(cursor.key, expected[count].iKey, "cursor.key #" + count);
+        t.deepEqual(
+          cursor.primaryKey,
+          expected[count].pKey,
+          "cursor.primaryKey #" + count,
+        );
+
+        count++;
+        cursor.continue(expected[count] ? expected[count].iKey : undefined);
+      };
     };
-  };
+  });
 });
 
-// IDBCursor.continue() - index - throw InvalidStateError caused by object 
store been deleted
-test.cb("WPT idbcursor-continue-index8.htm", (t) => {
-  var db: any,
-    records = [
+// IDBCursor.continue() - index - iterate using nextunique
+test("WPT idbcursor-continue-index6.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    const records = [
+      { pKey: "primaryKey_0", iKey: "indexKey_0" },
+      { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      { pKey: "primaryKey_1-2", iKey: "indexKey_1" },
+      { pKey: "primaryKey_2", iKey: "indexKey_2" },
+    ];
+    const expected = [
       { pKey: "primaryKey_0", iKey: "indexKey_0" },
       { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      { pKey: "primaryKey_2", iKey: "indexKey_2" },
     ];
 
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (event: any) {
-    db = event.target.result;
-    var objStore = db.createObjectStore("store", { keyPath: "pKey" });
-    objStore.createIndex("index", "iKey");
-    for (var i = 0; i < records.length; i++) {
-      objStore.add(records[i]);
-    }
-    var rq = objStore.index("index").openCursor();
-    rq.onsuccess = function (event: any) {
-      var cursor = event.target.result;
-      t.true(cursor instanceof BridgeIDBCursor);
-
-      db.deleteObjectStore("store");
-
-      t.throws(
-        () => {
-          cursor.continue();
-        },
-        { name: "InvalidStateError" },
-        "If the cursor's source or effective object store has been deleted, 
the implementation MUST throw a DOMException of type InvalidStateError",
-      );
-
-      t.end();
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+
+      objStore.createIndex("index", "iKey");
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function (e: any) {
+      var count = 0,
+        cursor_rq = db
+          .transaction("test")
+          .objectStore("test")
+          .index("index")
+          .openCursor(undefined, "nextunique");
+
+      cursor_rq.onsuccess = function (e: any) {
+        if (!e.target.result) {
+          t.deepEqual(count, expected.length, "count");
+          resolve();
+          return;
+        }
+        var cursor = e.target.result,
+          record = cursor.value;
+
+        t.deepEqual(record.pKey, expected[count].pKey, "pKey #" + count);
+        t.deepEqual(record.iKey, expected[count].iKey, "iKey #" + count);
+
+        t.deepEqual(cursor.key, expected[count].iKey, "cursor.key #" + count);
+        t.deepEqual(
+          cursor.primaryKey,
+          expected[count].pKey,
+          "cursor.primaryKey #" + count,
+        );
+
+        count++;
+        cursor.continue(expected[count] ? expected[count].iKey : undefined);
+      };
+    };
+  });
+});
+
+// IDBCursor.continue() - index - throw TransactionInactiveError
+test("WPT idbcursor-continue-index7.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event: any) {
+      db = event.target.result;
+      var objStore = db.createObjectStore("store", { keyPath: "pKey" });
+      objStore.createIndex("index", "iKey");
+      for (var i = 0; i < records.length; i++) {
+        objStore.add(records[i]);
+      }
+      var rq = objStore.index("index").openCursor();
+      rq.onsuccess = function (event: any) {
+        var cursor = event.target.result;
+        t.true(cursor instanceof BridgeIDBCursor);
+
+        event.target.transaction.abort();
+        t.throws(
+          () => {
+            cursor.continue();
+          },
+          { name: "TransactionInactiveError" },
+          "Calling continue() should throws an exception 
TransactionInactiveError when the transaction is not active.",
+        );
+        resolve();
+        return;
+      };
+    };
+  });
+});
+
+// IDBCursor.continue() - index - throw InvalidStateError caused by object 
store been deleted
+test("WPT idbcursor-continue-index8.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event: any) {
+      db = event.target.result;
+      var objStore = db.createObjectStore("store", { keyPath: "pKey" });
+      objStore.createIndex("index", "iKey");
+      for (var i = 0; i < records.length; i++) {
+        objStore.add(records[i]);
+      }
+      var rq = objStore.index("index").openCursor();
+      rq.onsuccess = function (event: any) {
+        var cursor = event.target.result;
+        t.true(cursor instanceof BridgeIDBCursor);
+
+        db.deleteObjectStore("store");
+
+        t.throws(
+          () => {
+            cursor.continue();
+          },
+          { name: "InvalidStateError" },
+          "If the cursor's source or effective object store has been deleted, 
the implementation MUST throw a DOMException of type InvalidStateError",
+        );
+
+        resolve();
+      };
     };
-  };
+  });
 });
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-continue-objectstore.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-continue-objectstore.test.ts
index 4843b13a..e3169195 100644
--- 
a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-continue-objectstore.test.ts
+++ 
b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-continue-objectstore.test.ts
@@ -1,243 +1,264 @@
 import test from "ava";
-import { BridgeIDBCursor } from "..";
-import { BridgeIDBCursorWithValue } from "../bridge-idb";
-import { IDBDatabase } from "../idbtypes";
-import { createdb } from "./wptsupport";
+import { BridgeIDBCursor } from "../bridge-idb.js";
+import { IDBDatabase } from "../idbtypes.js";
+import { createdb } from "./wptsupport.js";
 
 // IDBCursor.continue() - object store - iterate to the next record
-test.cb("WPT test idbcursor_continue_objectstore.htm", (t) => {
-  var db: any;
-  let count = 0;
-  const records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", {
-      autoIncrement: true,
-      keyPath: "pKey",
-    });
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var store = db.transaction("test").objectStore("test");
-
-    var cursor_rq = store.openCursor();
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-      if (!cursor) {
-        t.deepEqual(count, records.length, "cursor run count");
-        t.end();
-      }
-
-      var record = cursor.value;
-      t.deepEqual(record.pKey, records[count].pKey, "primary key");
-
-      cursor.continue();
-      count++;
+test("WPT test idbcursor_continue_objectstore.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    let count = 0;
+    const records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", {
+        autoIncrement: true,
+        keyPath: "pKey",
+      });
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
     };
-  };
+
+    open_rq.onsuccess = function (e: any) {
+      var store = db.transaction("test").objectStore("test");
+
+      var cursor_rq = store.openCursor();
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+        if (!cursor) {
+          t.deepEqual(count, records.length, "cursor run count");
+          resolve();
+          return;
+        }
+
+        var record = cursor.value;
+        t.deepEqual(record.pKey, records[count].pKey, "primary key");
+
+        cursor.continue();
+        count++;
+      };
+    };
+  });
 });
 
 // IDBCursor.continue() - index - attempt to pass a
 // key parameter that is not a valid key
-test.cb("WPT test idbcursor_continue_objectstore2.htm", (t) => {
-  var db: any;
-  const records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
+test("WPT test idbcursor_continue_objectstore2.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    const records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
 
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
 
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
 
-  open_rq.onsuccess = function (e: any) {
-    var cursor_rq = db.transaction("test").objectStore("test").openCursor();
+    open_rq.onsuccess = function (e: any) {
+      var cursor_rq = db.transaction("test").objectStore("test").openCursor();
 
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
 
-      t.true(cursor instanceof BridgeIDBCursor, "cursor exists");
-      t.throws(
-        () => {
-          cursor.continue({ foo: "42" });
-        },
-        { name: "DataError" },
-      );
+        t.true(cursor instanceof BridgeIDBCursor, "cursor exists");
+        t.throws(
+          () => {
+            cursor.continue({ foo: "42" });
+          },
+          { name: "DataError" },
+        );
 
-      t.end();
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBCursor.continue() - object store - attempt to iterate to the
 // previous record when the direction is set for the next record
-test.cb("WPT test idbcursor_continue_objectstore3.htm", (t) => {
-  var db: IDBDatabase;
-  const records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var cursor_rq = db
-      .transaction("test")
-      .objectStore("test")
-      .openCursor(undefined, "next");
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-
-      t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
-      t.throws(
-        () => {
-          cursor.continue(records[0].pKey);
-        },
-        {
-          name: "DataError",
-        },
-      );
-
-      t.end();
+test("WPT test idbcursor_continue_objectstore3.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: IDBDatabase;
+    const records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function (e: any) {
+      var cursor_rq = db
+        .transaction("test")
+        .objectStore("test")
+        .openCursor(undefined, "next");
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+
+        t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
+        t.throws(
+          () => {
+            cursor.continue(records[0].pKey);
+          },
+          {
+            name: "DataError",
+          },
+        );
+
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBCursor.continue() - object store - attempt to iterate to the
 // next record when the direction is set for the previous record
-test.cb("WPT test idbcursor_continue_objectstore4.htm", (t) => {
-  var db: any;
-  const records = [
-    { pKey: "primaryKey_0" },
-    { pKey: "primaryKey_1" },
-    { pKey: "primaryKey_2" },
-  ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var count = 0,
-      cursor_rq = db
-        .transaction("test")
-        .objectStore("test")
-        .openCursor(null, "prev");
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-
-      t.true(cursor != null, "cursor exist");
-
-      switch (count) {
-        case 0:
-          t.deepEqual(cursor.value.pKey, records[2].pKey, "first cursor pkey");
-          cursor.continue(records[1].pKey);
-          break;
-
-        case 1:
-          t.deepEqual(cursor.value.pKey, records[1].pKey, "second cursor 
pkey");
-          t.throws(
-            () => {
-              console.log("**** continuing cursor");
-              cursor.continue(records[2].pKey);
-              console.log("**** this should not happen");
-            },
-            {
-              name: "DataError",
-            },
-          );
-          t.end();
-          break;
-
-        default:
-          t.fail("Unexpected count value: " + count);
-      }
-
-      count++;
+test("WPT test idbcursor_continue_objectstore4.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    const records = [
+      { pKey: "primaryKey_0" },
+      { pKey: "primaryKey_1" },
+      { pKey: "primaryKey_2" },
+    ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function (e: any) {
+      var count = 0,
+        cursor_rq = db
+          .transaction("test")
+          .objectStore("test")
+          .openCursor(null, "prev");
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+
+        t.true(cursor != null, "cursor exist");
+
+        switch (count) {
+          case 0:
+            t.deepEqual(
+              cursor.value.pKey,
+              records[2].pKey,
+              "first cursor pkey",
+            );
+            cursor.continue(records[1].pKey);
+            break;
+
+          case 1:
+            t.deepEqual(
+              cursor.value.pKey,
+              records[1].pKey,
+              "second cursor pkey",
+            );
+            t.throws(
+              () => {
+                console.log("**** continuing cursor");
+                cursor.continue(records[2].pKey);
+                console.log("**** this should not happen");
+              },
+              {
+                name: "DataError",
+              },
+            );
+            resolve();
+            return;
+
+          default:
+            t.fail("Unexpected count value: " + count);
+        }
+
+        count++;
+      };
     };
-  };
+  });
 });
 
 // IDBCursor.continue() - object store - throw TransactionInactiveError
-test.cb("WPT test idbcursor_continue_objectstore5.htm", (t) => {
-  var db: any;
-  const records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var cursor_rq = db.transaction("test").objectStore("test").openCursor();
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-      t.true(cursor instanceof BridgeIDBCursor, "cursor exists");
-
-      e.target.transaction.abort();
-      t.throws(
-        () => {
-          cursor.continue();
-        },
-        {
-          name: "TransactionInactiveError",
-        },
-        "Calling continue() should throw an exception TransactionInactiveError 
when the transaction is not active.",
-      );
-
-      t.end();
+test("WPT test idbcursor_continue_objectstore5.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    const records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function (e: any) {
+      var cursor_rq = db.transaction("test").objectStore("test").openCursor();
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+        t.true(cursor instanceof BridgeIDBCursor, "cursor exists");
+
+        e.target.transaction.abort();
+        t.throws(
+          () => {
+            cursor.continue();
+          },
+          {
+            name: "TransactionInactiveError",
+          },
+          "Calling continue() should throw an exception 
TransactionInactiveError when the transaction is not active.",
+        );
+
+        resolve();
+        return;
+      };
     };
-  };
+  });
 });
 
 // IDBCursor.continue() - object store - throw InvalidStateError caused by 
object store been deleted
-test.cb("WPT test idbcursor_continue_objectstore6.htm", (t) => {
-  var db: any;
-  const records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-
-    var cursor_rq = objStore.openCursor();
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-      t.true(cursor instanceof BridgeIDBCursor, "cursor exists");
-
-      db.deleteObjectStore("test");
-      t.throws(
-        () => {
-          cursor.continue();
-        },
-        {
-          name: "InvalidStateError",
-        },
-        "If the cursor's source or effective object store has been deleted, 
the implementation MUST throw a DOMException of type InvalidStateError",
-      );
-
-      t.end();
+test("WPT test idbcursor_continue_objectstore6.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    const records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+
+      var cursor_rq = objStore.openCursor();
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+        t.true(cursor instanceof BridgeIDBCursor, "cursor exists");
+
+        db.deleteObjectStore("test");
+        t.throws(
+          () => {
+            cursor.continue();
+          },
+          {
+            name: "InvalidStateError",
+          },
+          "If the cursor's source or effective object store has been deleted, 
the implementation MUST throw a DOMException of type InvalidStateError",
+        );
+
+        resolve();
+      };
     };
-  };
+  });
 });
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-delete-exception-order.test.ts
 
b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-delete-exception-order.test.ts
index 604061ac..f771d19a 100644
--- 
a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-delete-exception-order.test.ts
+++ 
b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-delete-exception-order.test.ts
@@ -1,5 +1,5 @@
 import test from "ava";
-import { createdb, indexeddb_test } from "./wptsupport";
+import { indexeddb_test } from "./wptsupport.js";
 
 test("WPT idbcursor-delete-exception-order.htm", async (t) => {
   // 'IDBCursor.delete exception order: TransactionInactiveError vs. 
ReadOnlyError'
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-delete-index.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-delete-index.test.ts
index 0b28a4d4..0232cf24 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-delete-index.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-delete-index.test.ts
@@ -1,204 +1,214 @@
 import test from "ava";
-import { BridgeIDBCursor } from "..";
-import { IDBCursor } from "../idbtypes";
-import { createdb, indexeddb_test } from "./wptsupport";
+import { BridgeIDBCursor } from "../bridge-idb.js";
+import { IDBCursor } from "../idbtypes.js";
+import { createdb } from "./wptsupport.js";
 
 // IDBCursor.delete() - index - remove a record from the object store
-test.cb("WPT idbcursor-delete-index.htm", (t) => {
-  var db: any;
-  let count = 0,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-    objStore.createIndex("index", "iKey");
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
+test("WPT idbcursor-delete-index.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    let count = 0,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+      objStore.createIndex("index", "iKey");
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
 
-  open_rq.onsuccess = CursorDeleteRecord;
+    open_rq.onsuccess = CursorDeleteRecord;
 
-  function CursorDeleteRecord(e: any) {
-    var txn = db.transaction("test", "readwrite"),
-      cursor_rq = txn.objectStore("test").index("index").openCursor();
+    function CursorDeleteRecord(e: any) {
+      var txn = db.transaction("test", "readwrite"),
+        cursor_rq = txn.objectStore("test").index("index").openCursor();
 
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
 
-      t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
-      cursor.delete();
-    };
+        t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
+        cursor.delete();
+      };
 
-    txn.oncomplete = VerifyRecordWasDeleted;
-  }
+      txn.oncomplete = VerifyRecordWasDeleted;
+    }
 
-  function VerifyRecordWasDeleted(e: any) {
-    var cursor_rq = db.transaction("test").objectStore("test").openCursor();
+    function VerifyRecordWasDeleted(e: any) {
+      var cursor_rq = db.transaction("test").objectStore("test").openCursor();
 
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
 
-      if (!cursor) {
-        t.deepEqual(count, 1, "count");
-        t.end();
-        return;
-      }
+        if (!cursor) {
+          t.deepEqual(count, 1, "count");
+          resolve();
+          return;
+        }
 
-      t.deepEqual(cursor.value.pKey, records[1].pKey);
-      t.deepEqual(cursor.value.iKey, records[1].iKey);
-      cursor.continue();
-      count++;
-    };
-  }
+        t.deepEqual(cursor.value.pKey, records[1].pKey);
+        t.deepEqual(cursor.value.iKey, records[1].iKey);
+        cursor.continue();
+        count++;
+      };
+    }
+  });
 });
 
 // IDBCursor.delete() - object store - attempt to remove a record in a 
read-only transaction
-test.cb("WPT idbcursor-delete-index2.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var cursor_rq = db.transaction("test").objectStore("test").openCursor();
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-
-      t.true(cursor != null, "cursor exist");
-      t.throws(
-        () => {
-          cursor.delete();
-        },
-        {
-          name: "ReadOnlyError",
-        },
-      );
-      t.end();
-    };
-  };
-});
+test("WPT idbcursor-delete-index2.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
 
-// IDBCursor.delete() - index - attempt to remove a record in an inactive 
transaction
-test.cb("WPT idbcursor-delete-index3.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
 
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-    var index = objStore.createIndex("index", "iKey");
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
 
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-
-    var cursor_rq = index.openCursor();
-
-    let myCursor: IDBCursor | undefined;
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
 
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-      t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
-      myCursor = cursor;
+    open_rq.onsuccess = function (e: any) {
+      var cursor_rq = db.transaction("test").objectStore("test").openCursor();
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+
+        t.true(cursor != null, "cursor exist");
+        t.throws(
+          () => {
+            cursor.delete();
+          },
+          {
+            name: "ReadOnlyError",
+          },
+        );
+        resolve();
+      };
     };
+  });
+});
 
-    e.target.transaction.oncomplete = function (e: any) {
-      t.throws(
-        () => {
-          myCursor!.delete();
-        },
-        { name: "TransactionInactiveError" },
-      );
-      t.end();
+// IDBCursor.delete() - index - attempt to remove a record in an inactive 
transaction
+test("WPT idbcursor-delete-index3.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+      var index = objStore.createIndex("index", "iKey");
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+
+      var cursor_rq = index.openCursor();
+
+      let myCursor: IDBCursor | undefined;
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+        t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
+        myCursor = cursor;
+      };
+
+      e.target.transaction.oncomplete = function (e: any) {
+        t.throws(
+          () => {
+            myCursor!.delete();
+          },
+          { name: "TransactionInactiveError" },
+        );
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBCursor.delete() - index - throw InvalidStateError caused by object store 
been deleted
-test.cb("WPT idbcursor-delete-index4.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (event: any) {
-    db = event.target.result;
-    var objStore = db.createObjectStore("store", { keyPath: "pKey" });
-    objStore.createIndex("index", "iKey");
-    for (var i = 0; i < records.length; i++) {
-      objStore.add(records[i]);
-    }
-    var rq = objStore.index("index").openCursor();
-    rq.onsuccess = function (event: any) {
-      var cursor = event.target.result;
-      t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
-
-      db.deleteObjectStore("store");
-      t.throws(
-        function () {
-          cursor.delete();
-        },
-        { name: "InvalidStateError" },
-        "If the cursor's source or effective object store has been deleted, 
the implementation MUST throw a DOMException of type InvalidStateError",
-      );
-
-      t.end();
+test("WPT idbcursor-delete-index4.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event: any) {
+      db = event.target.result;
+      var objStore = db.createObjectStore("store", { keyPath: "pKey" });
+      objStore.createIndex("index", "iKey");
+      for (var i = 0; i < records.length; i++) {
+        objStore.add(records[i]);
+      }
+      var rq = objStore.index("index").openCursor();
+      rq.onsuccess = function (event: any) {
+        var cursor = event.target.result;
+        t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
+
+        db.deleteObjectStore("store");
+        t.throws(
+          function () {
+            cursor.delete();
+          },
+          { name: "InvalidStateError" },
+          "If the cursor's source or effective object store has been deleted, 
the implementation MUST throw a DOMException of type InvalidStateError",
+        );
+
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBCursor.delete() - index - throw InvalidStateError when the cursor is 
being iterated
-test.cb("WPT idbcursor-delete-index5.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (event: any) {
-    db = event.target.result;
-    var objStore = db.createObjectStore("store", { keyPath: "pKey" });
-    objStore.createIndex("index", "iKey");
-    for (var i = 0; i < records.length; i++) {
-      objStore.add(records[i]);
-    }
-
-    var rq = objStore.index("index").openCursor();
-    rq.onsuccess = function (event: any) {
-      var cursor = event.target.result;
-      t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
-
-      cursor.continue();
-      t.throws(
-        function () {
-          cursor.delete();
-        },
-        { name: "InvalidStateError" },
-      );
+test("WPT idbcursor-delete-index5.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event: any) {
+      db = event.target.result;
+      var objStore = db.createObjectStore("store", { keyPath: "pKey" });
+      objStore.createIndex("index", "iKey");
+      for (var i = 0; i < records.length; i++) {
+        objStore.add(records[i]);
+      }
 
-      t.end();
+      var rq = objStore.index("index").openCursor();
+      rq.onsuccess = function (event: any) {
+        var cursor = event.target.result;
+        t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
+
+        cursor.continue();
+        t.throws(
+          function () {
+            cursor.delete();
+          },
+          { name: "InvalidStateError" },
+        );
+
+        resolve();
+      };
     };
-  };
+  });
 });
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-delete-objectstore.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-delete-objectstore.test.ts
index 7afe1e48..9410ca79 100644
--- 
a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-delete-objectstore.test.ts
+++ 
b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-delete-objectstore.test.ts
@@ -1,194 +1,204 @@
 import test from "ava";
-import { BridgeIDBCursor } from "..";
-import { IDBCursor } from "../idbtypes";
-import { createdb, indexeddb_test } from "./wptsupport";
+import { BridgeIDBCursor } from "../bridge-idb.js";
+import { createdb } from "./wptsupport.js";
 
 // IDBCursor.delete() - object store - remove a record from the object store
-test.cb("WPT idbcursor-delete-objectstore.htm", (t) => {
-  var db: any,
-    count = 0,
-    records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
+test("WPT idbcursor-delete-objectstore.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      count = 0,
+      records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
 
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
 
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
 
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
 
-  open_rq.onsuccess = CursorDeleteRecord;
+    open_rq.onsuccess = CursorDeleteRecord;
 
-  function CursorDeleteRecord(e: any) {
-    var txn = db.transaction("test", "readwrite"),
-      cursor_rq = txn.objectStore("test").openCursor();
+    function CursorDeleteRecord(e: any) {
+      var txn = db.transaction("test", "readwrite"),
+        cursor_rq = txn.objectStore("test").openCursor();
 
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
 
-      t.true(cursor != null, "cursor exist");
-      cursor.delete();
-    };
+        t.true(cursor != null, "cursor exist");
+        cursor.delete();
+      };
 
-    txn.oncomplete = VerifyRecordWasDeleted;
-  }
+      txn.oncomplete = VerifyRecordWasDeleted;
+    }
 
-  function VerifyRecordWasDeleted(e: any) {
-    var cursor_rq = db.transaction("test").objectStore("test").openCursor();
+    function VerifyRecordWasDeleted(e: any) {
+      var cursor_rq = db.transaction("test").objectStore("test").openCursor();
 
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
 
-      if (!cursor) {
-        t.deepEqual(count, 1, "count");
-        t.end();
-      }
+        if (!cursor) {
+          t.deepEqual(count, 1, "count");
+          resolve();
+          return;
+        }
 
-      t.deepEqual(cursor.value.pKey, records[1].pKey);
-      count++;
-      cursor.continue();
-    };
-  }
+        t.deepEqual(cursor.value.pKey, records[1].pKey);
+        count++;
+        cursor.continue();
+      };
+    }
+  });
 });
 
 // IDBCursor.delete() - object store - attempt to remove a record in a 
read-only transaction
-test.cb("WPT idbcursor-delete-objectstore2.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var cursor_rq = db.transaction("test").objectStore("test").openCursor();
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-
-      t.true(cursor != null, "cursor exist");
-      t.throws(
-        function () {
-          cursor.delete();
-        },
-        { name: "ReadOnlyError" },
-      );
-      t.end();
-    };
-  };
-});
-
-// IDBCursor.delete() - index - attempt to remove a record in an inactive 
transaction
-test.cb("WPT idbcursor-delete-objectstore3.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
+test("WPT idbcursor-delete-objectstore2.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
 
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
 
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
 
-    var cursor_rq = objStore.openCursor();
-
-    const window: any = {};
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
 
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-      t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
-      window.cursor = cursor;
+    open_rq.onsuccess = function (e: any) {
+      var cursor_rq = db.transaction("test").objectStore("test").openCursor();
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+
+        t.true(cursor != null, "cursor exist");
+        t.throws(
+          function () {
+            cursor.delete();
+          },
+          { name: "ReadOnlyError" },
+        );
+        resolve();
+      };
     };
+  });
+});
 
-    e.target.transaction.oncomplete = function (e: any) {
-      t.throws(
-        function () {
-          window.cursor.delete();
-        },
-        {
-          name: "TransactionInactiveError",
-        },
-      );
-      t.end();
+// IDBCursor.delete() - index - attempt to remove a record in an inactive 
transaction
+test("WPT idbcursor-delete-objectstore3.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+
+      var cursor_rq = objStore.openCursor();
+
+      const window: any = {};
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+        t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
+        window.cursor = cursor;
+      };
+
+      e.target.transaction.oncomplete = function (e: any) {
+        t.throws(
+          function () {
+            window.cursor.delete();
+          },
+          {
+            name: "TransactionInactiveError",
+          },
+        );
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBCursor.delete() - object store - throw InvalidStateError caused by 
object store been deleted
-test.cb("WPT idbcursor-delete-objectstore4.htm", (t) => {
-  var db: any,
-    records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (event: any) {
-    db = event.target.result;
-    var objStore = db.createObjectStore("store", { keyPath: "pKey" });
-    for (var i = 0; i < records.length; i++) {
-      objStore.add(records[i]);
-    }
-    var rq = objStore.openCursor();
-    rq.onsuccess = function (event: any) {
-      var cursor = event.target.result;
-      t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
-
-      db.deleteObjectStore("store");
-      t.throws(
-        function () {
-          cursor.delete();
-        },
-        { name: "InvalidStateError" },
-        "If the cursor's source or effective object store has been deleted, 
the implementation MUST throw a DOMException of type InvalidStateError",
-      );
-
-      t.end();
+test("WPT idbcursor-delete-objectstore4.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event: any) {
+      db = event.target.result;
+      var objStore = db.createObjectStore("store", { keyPath: "pKey" });
+      for (var i = 0; i < records.length; i++) {
+        objStore.add(records[i]);
+      }
+      var rq = objStore.openCursor();
+      rq.onsuccess = function (event: any) {
+        var cursor = event.target.result;
+        t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
+
+        db.deleteObjectStore("store");
+        t.throws(
+          function () {
+            cursor.delete();
+          },
+          { name: "InvalidStateError" },
+          "If the cursor's source or effective object store has been deleted, 
the implementation MUST throw a DOMException of type InvalidStateError",
+        );
+
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBCursor.delete() - object store - throw InvalidStateError when the cursor 
is being iterated
-test.cb("WPT idbcursor-delete-objectstore5.htm", (t) => {
-  var db: any,
-    records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (event: any) {
-    db = event.target.result;
-    var objStore = db.createObjectStore("store", { keyPath: "pKey" });
-    for (var i = 0; i < records.length; i++) {
-      objStore.add(records[i]);
-    }
-  };
-
-  open_rq.onsuccess = function (event: any) {
-    var txn = db.transaction("store", "readwrite");
-    var rq = txn.objectStore("store").openCursor();
-    rq.onsuccess = function (event: any) {
-      var cursor = event.target.result;
-      t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
-
-      cursor.continue();
-      t.throws(
-        function () {
-          cursor.delete();
-        },
-        {
-          name: "InvalidStateError",
-        },
-      );
-
-      t.end();
+test("WPT idbcursor-delete-objectstore5.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [{ pKey: "primaryKey_0" }, { pKey: "primaryKey_1" }];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event: any) {
+      db = event.target.result;
+      var objStore = db.createObjectStore("store", { keyPath: "pKey" });
+      for (var i = 0; i < records.length; i++) {
+        objStore.add(records[i]);
+      }
+    };
+
+    open_rq.onsuccess = function (event: any) {
+      var txn = db.transaction("store", "readwrite");
+      var rq = txn.objectStore("store").openCursor();
+      rq.onsuccess = function (event: any) {
+        var cursor = event.target.result;
+        t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
+
+        cursor.continue();
+        t.throws(
+          function () {
+            cursor.delete();
+          },
+          {
+            name: "InvalidStateError",
+          },
+        );
+
+        resolve();
+      };
     };
-  };
+  });
 });
diff --git a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-reused.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-reused.test.ts
index 3c2ee875..54745802 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-reused.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-reused.test.ts
@@ -1,5 +1,5 @@
 import test from "ava";
-import { createdb } from "./wptsupport";
+import { createdb } from "./wptsupport.js";
 
 test("WPT idbcursor-reused.htm", async (t) => {
   await new Promise<void>((resolve, reject) => {
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-update-index.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-update-index.test.ts
index dcbee2b1..81a7cd75 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbcursor-update-index.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbcursor-update-index.test.ts
@@ -1,340 +1,356 @@
 import test from "ava";
-import { BridgeIDBCursor, BridgeIDBKeyRange } from "..";
+import { BridgeIDBCursor, BridgeIDBKeyRange } from "../bridge-idb.js";
 import {
   createDatabase,
   createdb,
   promiseForRequest,
   promiseForTransaction,
-} from "./wptsupport";
+} from "./wptsupport.js";
 
 // IDBCursor.update() - index - modify a record in the object store
-test.cb("WPT test idbcursor_update_index.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
+test("WPT test idbcursor_update_index.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
 
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
 
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-    objStore.createIndex("index", "iKey");
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+      objStore.createIndex("index", "iKey");
 
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
 
-    // XXX: Gecko doesn't like this
-    //e.target.transaction.oncomplete = t.step_func(CursorUpdateRecord);
-  };
+      // XXX: Gecko doesn't like this
+      //e.target.transaction.oncomplete = t.step_func(CursorUpdateRecord);
+    };
 
-  open_rq.onsuccess = CursorUpdateRecord;
+    open_rq.onsuccess = CursorUpdateRecord;
 
-  function CursorUpdateRecord(e: any) {
-    var txn = db.transaction("test", "readwrite"),
-      cursor_rq = txn.objectStore("test").index("index").openCursor();
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
+    function CursorUpdateRecord(e: any) {
+      var txn = db.transaction("test", "readwrite"),
+        cursor_rq = txn.objectStore("test").index("index").openCursor();
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
 
-      cursor.value.iKey += "_updated";
-      cursor.update(cursor.value);
-    };
+        cursor.value.iKey += "_updated";
+        cursor.update(cursor.value);
+      };
 
-    txn.oncomplete = VerifyRecordWasUpdated;
-  }
+      txn.oncomplete = VerifyRecordWasUpdated;
+    }
 
-  function VerifyRecordWasUpdated(e: any) {
-    var cursor_rq = db.transaction("test").objectStore("test").openCursor();
+    function VerifyRecordWasUpdated(e: any) {
+      var cursor_rq = db.transaction("test").objectStore("test").openCursor();
 
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
 
-      t.deepEqual(cursor.value.iKey, records[0].iKey + "_updated");
-      t.end();
-    };
-  }
+        t.deepEqual(cursor.value.iKey, records[0].iKey + "_updated");
+        resolve();
+      };
+    }
+  });
 });
 
 // IDBCursor.update() - index - attempt to modify a record in a read-only 
transaction
-test.cb("WPT test idbcursor_update_index2.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-    objStore.createIndex("index", "iKey");
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var cursor_rq = db
-      .transaction("test")
-      .objectStore("test")
-      .index("index")
-      .openCursor();
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-      t.throws(
-        function () {
-          cursor.update(cursor.value);
-        },
-        { name: "ReadOnlyError" },
-      );
-      t.end();
+test("WPT test idbcursor_update_index2.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+      objStore.createIndex("index", "iKey");
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
     };
-  };
-});
 
-//IDBCursor.update() - index - attempt to modify a record in an inactive 
transaction
-test.cb("WPT test idbcursor_update_index3.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-    var index = objStore.createIndex("index", "iKey");
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-
-    var cursor_rq = index.openCursor();
-
-    const window: any = {};
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-      t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
-      window.cursor = cursor;
-      window.record = cursor.value;
+    open_rq.onsuccess = function (e: any) {
+      var cursor_rq = db
+        .transaction("test")
+        .objectStore("test")
+        .index("index")
+        .openCursor();
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+        t.throws(
+          function () {
+            cursor.update(cursor.value);
+          },
+          { name: "ReadOnlyError" },
+        );
+        resolve();
+      };
     };
+  });
+});
 
-    e.target.transaction.oncomplete = function (e: any) {
-      t.throws(
-        function () {
-          window.cursor.update(window.record);
-        },
-        { name: "TransactionInactiveError" },
-      );
-      t.end();
+//IDBCursor.update() - index - attempt to modify a record in an inactive 
transaction
+test("WPT test idbcursor_update_index3.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+      var index = objStore.createIndex("index", "iKey");
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+
+      var cursor_rq = index.openCursor();
+
+      const window: any = {};
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+        t.true(cursor instanceof BridgeIDBCursor, "cursor exist");
+        window.cursor = cursor;
+        window.record = cursor.value;
+      };
+
+      e.target.transaction.oncomplete = function (e: any) {
+        t.throws(
+          function () {
+            window.cursor.update(window.record);
+          },
+          { name: "TransactionInactiveError" },
+        );
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBCursor.update() - index - attempt to modify a record when object store 
been deleted
-test.cb("WPT test idbcursor_update_index4.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (event: any) {
-    db = event.target.result;
-    var objStore = db.createObjectStore("store", { keyPath: "pKey" });
-    objStore.createIndex("index", "iKey");
-    for (var i = 0; i < records.length; i++) {
-      objStore.add(records[i]);
-    }
-    var rq = objStore.index("index").openCursor();
-    rq.onsuccess = function (event: any) {
-      var cursor = event.target.result;
-      t.true(cursor instanceof BridgeIDBCursor);
-
-      db.deleteObjectStore("store");
-      cursor.value.iKey += "_updated";
-      t.throws(
-        function () {
-          cursor.update(cursor.value);
-        },
-        { name: "InvalidStateError" },
-        "If the cursor's source or effective object store has been deleted, 
the implementation MUST throw a DOMException of type InvalidStateError",
-      );
-
-      t.end();
+test("WPT test idbcursor_update_index4.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event: any) {
+      db = event.target.result;
+      var objStore = db.createObjectStore("store", { keyPath: "pKey" });
+      objStore.createIndex("index", "iKey");
+      for (var i = 0; i < records.length; i++) {
+        objStore.add(records[i]);
+      }
+      var rq = objStore.index("index").openCursor();
+      rq.onsuccess = function (event: any) {
+        var cursor = event.target.result;
+        t.true(cursor instanceof BridgeIDBCursor);
+
+        db.deleteObjectStore("store");
+        cursor.value.iKey += "_updated";
+        t.throws(
+          function () {
+            cursor.update(cursor.value);
+          },
+          { name: "InvalidStateError" },
+          "If the cursor's source or effective object store has been deleted, 
the implementation MUST throw a DOMException of type InvalidStateError",
+        );
+
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBCursor.update() - index - throw DataCloneError
-test.cb("WPT test idbcursor_update_index5.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-    objStore.createIndex("index", "iKey");
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var cursor_rq = db
-      .transaction("test", "readwrite")
-      .objectStore("test")
-      .index("index")
-      .openCursor();
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-      t.true(cursor instanceof BridgeIDBCursor);
-
-      var record = cursor.value;
-      // Original test uses different uncloneable value
-      record.data = { foo: () => {} };
-      t.throws(
-        function () {
-          cursor.update(record);
-        },
-        { name: "DataCloneError" },
-      );
-      t.end();
+test("WPT test idbcursor_update_index5.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+      objStore.createIndex("index", "iKey");
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function (e: any) {
+      var cursor_rq = db
+        .transaction("test", "readwrite")
+        .objectStore("test")
+        .index("index")
+        .openCursor();
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+        t.true(cursor instanceof BridgeIDBCursor);
+
+        var record = cursor.value;
+        // Original test uses different uncloneable value
+        record.data = { foo: () => {} };
+        t.throws(
+          function () {
+            cursor.update(record);
+          },
+          { name: "DataCloneError" },
+        );
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBCursor.update() - index - no argument
-test.cb("WPT test idbcursor_update_index6.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-    objStore.createIndex("index", "iKey");
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var cursor_rq = db
-      .transaction("test")
-      .objectStore("test")
-      .index("index")
-      .openCursor();
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-      t.true(cursor instanceof BridgeIDBCursor);
-
-      t.throws(
-        function () {
-          cursor.update();
-        },
-        {
-          instanceOf: TypeError,
-        },
-      );
-      t.end();
+test("WPT test idbcursor_update_index6.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+      objStore.createIndex("index", "iKey");
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function (e: any) {
+      var cursor_rq = db
+        .transaction("test")
+        .objectStore("test")
+        .index("index")
+        .openCursor();
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+        t.true(cursor instanceof BridgeIDBCursor);
+
+        t.throws(
+          function () {
+            cursor.update();
+          },
+          {
+            instanceOf: TypeError,
+          },
+        );
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBCursor.update() - index - throw DataError
-test.cb("WPT test idbcursor_update_index7.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-
-    var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-    objStore.createIndex("index", "iKey");
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var cursor_rq = db
-      .transaction("test", "readwrite")
-      .objectStore("test")
-      .index("index")
-      .openCursor();
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-      t.true(cursor instanceof BridgeIDBCursor);
-
-      t.throws(
-        function () {
-          cursor.update(null);
-        },
-        { name: "DataError" },
-      );
-      t.end();
+test("WPT test idbcursor_update_index7.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+
+      var objStore = db.createObjectStore("test", { keyPath: "pKey" });
+      objStore.createIndex("index", "iKey");
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
+
+    open_rq.onsuccess = function (e: any) {
+      var cursor_rq = db
+        .transaction("test", "readwrite")
+        .objectStore("test")
+        .index("index")
+        .openCursor();
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+        t.true(cursor instanceof BridgeIDBCursor);
+
+        t.throws(
+          function () {
+            cursor.update(null);
+          },
+          { name: "DataError" },
+        );
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBCursor.update() - index - throw InvalidStateError when the cursor is 
being iterated
-test.cb("WPT test idbcursor_update_index8.htm", (t) => {
-  var db: any,
-    records = [
-      { pKey: "primaryKey_0", iKey: "indexKey_0" },
-      { pKey: "primaryKey_1", iKey: "indexKey_1" },
-    ];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-
-    var objStore = db.createObjectStore("store", { keyPath: "pKey" });
-    objStore.createIndex("index", "iKey");
-
-    for (var i = 0; i < records.length; i++) objStore.add(records[i]);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var cursor_rq = db
-      .transaction("store", "readwrite")
-      .objectStore("store")
-      .index("index")
-      .openCursor();
-
-    cursor_rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-      t.true(cursor instanceof BridgeIDBCursor, "cursor exists");
+test("WPT test idbcursor_update_index8.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      records = [
+        { pKey: "primaryKey_0", iKey: "indexKey_0" },
+        { pKey: "primaryKey_1", iKey: "indexKey_1" },
+      ];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+
+      var objStore = db.createObjectStore("store", { keyPath: "pKey" });
+      objStore.createIndex("index", "iKey");
+
+      for (var i = 0; i < records.length; i++) objStore.add(records[i]);
+    };
 
-      cursor.continue();
-      t.throws(
-        function () {
-          cursor.update({ pKey: "primaryKey_0", iKey: "indexKey_0_updated" });
-        },
-        {
-          name: "InvalidStateError",
-        },
-      );
-
-      t.end();
+    open_rq.onsuccess = function (e: any) {
+      var cursor_rq = db
+        .transaction("store", "readwrite")
+        .objectStore("store")
+        .index("index")
+        .openCursor();
+
+      cursor_rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+        t.true(cursor instanceof BridgeIDBCursor, "cursor exists");
+
+        cursor.continue();
+        t.throws(
+          function () {
+            cursor.update({ pKey: "primaryKey_0", iKey: "indexKey_0_updated" 
});
+          },
+          {
+            name: "InvalidStateError",
+          },
+        );
+
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // Index cursor - indexed values updated during iteration
diff --git a/packages/idb-bridge/src/idb-wpt-ported/idbfactory-cmp.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbfactory-cmp.test.ts
index c7a25a46..a6cb9761 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbfactory-cmp.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbfactory-cmp.test.ts
@@ -1,5 +1,5 @@
 import test from "ava";
-import { createdb, idbFactory } from "./wptsupport";
+import { idbFactory } from "./wptsupport.js";
 
 test("WPT idbfactory-cmp*.html", async (t) => {
   const indexedDB = idbFactory;
diff --git a/packages/idb-bridge/src/idb-wpt-ported/idbfactory-open.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbfactory-open.test.ts
index bba9c6e5..02618f17 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbfactory-open.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbfactory-open.test.ts
@@ -1,7 +1,7 @@
 import test from "ava";
-import { BridgeIDBVersionChangeEvent } from "../bridge-idb";
-import FakeEvent from "../util/FakeEvent";
-import { createdb, format_value, idbFactory } from "./wptsupport";
+import { BridgeIDBVersionChangeEvent } from "../bridge-idb.js";
+import FakeEvent from "../util/FakeEvent.js";
+import { createdb, format_value, idbFactory } from "./wptsupport.js";
 
 // IDBFactory.open() - request has no source
 test("WPT idbfactory-open.htm", async (t) => {
diff --git a/packages/idb-bridge/src/idb-wpt-ported/idbindex-get.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbindex-get.test.ts
index 751b4f98..d3b6e844 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbindex-get.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbindex-get.test.ts
@@ -1,7 +1,7 @@
 import test from "ava";
-import { BridgeIDBKeyRange, BridgeIDBRequest } from "..";
-import { IDBDatabase } from "../idbtypes";
-import { createdb } from "./wptsupport";
+import { BridgeIDBKeyRange } from "../bridge-idb.js";
+import { IDBDatabase } from "../idbtypes.js";
+import { createdb } from "./wptsupport.js";
 
 // IDBIndex.get() - returns the record
 test("WPT idbindex_get.htm", async (t) => {
diff --git a/packages/idb-bridge/src/idb-wpt-ported/idbindex-openCursor.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbindex-openCursor.test.ts
index f4515b69..765bcf06 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbindex-openCursor.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbindex-openCursor.test.ts
@@ -1,82 +1,85 @@
 import test from "ava";
-import { BridgeIDBCursor } from "..";
-import { BridgeIDBCursorWithValue } from "../bridge-idb";
-import { IDBDatabase } from "../idbtypes";
-import { createdb } from "./wptsupport";
+import { createdb } from "./wptsupport.js";
 
 // IDBIndex.openCursor() - throw InvalidStateError when the index is deleted
-test.cb("WPT test idbindex-openCursor.htm", (t) => {
-  var db;
+test("WPT test idbindex-openCursor.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db;
 
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var store = db.createObjectStore("store", { keyPath: "key" });
-    var index = store.createIndex("index", "indexedProperty");
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var store = db.createObjectStore("store", { keyPath: "key" });
+      var index = store.createIndex("index", "indexedProperty");
 
-    store.add({ key: 1, indexedProperty: "data" });
-    store.deleteIndex("index");
+      store.add({ key: 1, indexedProperty: "data" });
+      store.deleteIndex("index");
 
-    t.throws(
-      () => {
-        index.openCursor();
-      },
-      { name: "InvalidStateError" },
-    );
+      t.throws(
+        () => {
+          index.openCursor();
+        },
+        { name: "InvalidStateError" },
+      );
 
-    t.end();
-  };
+      resolve();
+    };
+  });
 });
 
 // IDBIndex.openCursor() - throw TransactionInactiveError on aborted 
transaction
-test.cb("WPT test idbindex-openCursor2.htm", (t) => {
-  var db;
+test("WPT test idbindex-openCursor2.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db;
 
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var store = db.createObjectStore("store", { keyPath: "key" });
-    var index = store.createIndex("index", "indexedProperty");
-    store.add({ key: 1, indexedProperty: "data" });
-  };
-  open_rq.onsuccess = function (e: any) {
-    db = e.target.result;
-    var tx = db.transaction("store");
-    var index = tx.objectStore("store").index("index");
-    tx.abort();
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var store = db.createObjectStore("store", { keyPath: "key" });
+      var index = store.createIndex("index", "indexedProperty");
+      store.add({ key: 1, indexedProperty: "data" });
+    };
+    open_rq.onsuccess = function (e: any) {
+      db = e.target.result;
+      var tx = db.transaction("store");
+      var index = tx.objectStore("store").index("index");
+      tx.abort();
 
-    t.throws(
-      () => {
-        index.openCursor();
-      },
-      { name: "TransactionInactiveError" },
-    );
+      t.throws(
+        () => {
+          index.openCursor();
+        },
+        { name: "TransactionInactiveError" },
+      );
 
-    t.end();
-  };
+      resolve();
+    };
+  });
 });
 
 // IDBIndex.openCursor() - throw InvalidStateError on index deleted by aborted 
upgrade
-test.cb("WPT test idbindex-openCursor3.htm", (t) => {
-  var db;
+test("WPT test idbindex-openCursor3.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db;
 
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var store = db.createObjectStore("store", { keyPath: "key" });
-    var index = store.createIndex("index", "indexedProperty");
-    store.add({ key: 1, indexedProperty: "data" });
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var store = db.createObjectStore("store", { keyPath: "key" });
+      var index = store.createIndex("index", "indexedProperty");
+      store.add({ key: 1, indexedProperty: "data" });
 
-    e.target.transaction.abort();
+      e.target.transaction.abort();
 
-    t.throws(
-      () => {
-        console.log("index before openCursor", index);
-        index.openCursor();
-      },
-      { name: "InvalidStateError" },
-    );
+      t.throws(
+        () => {
+          console.log("index before openCursor", index);
+          index.openCursor();
+        },
+        { name: "InvalidStateError" },
+      );
 
-    t.end();
-  };
+      resolve();
+    };
+  });
 });
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-add-put-exception-order.test.ts
 
b/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-add-put-exception-order.test.ts
index a3aead9d..901eda89 100644
--- 
a/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-add-put-exception-order.test.ts
+++ 
b/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-add-put-exception-order.test.ts
@@ -1,8 +1,5 @@
 import test, { ExecutionContext } from "ava";
-import { BridgeIDBCursor } from "..";
-import { BridgeIDBRequest } from "../bridge-idb";
-import { InvalidStateError } from "../util/errors";
-import { createdb, indexeddb_test } from "./wptsupport";
+import { indexeddb_test } from "./wptsupport.js";
 
 async function t1(t: ExecutionContext, method: string): Promise<void> {
   await indexeddb_test(
diff --git a/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-add.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-add.test.ts
index 02f05f46..e8bc1747 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-add.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-add.test.ts
@@ -1,7 +1,7 @@
 import test from "ava";
-import { BridgeIDBRequest } from "..";
-import { IDBDatabase } from "../idbtypes";
-import { createdb } from "./wptsupport";
+import { BridgeIDBRequest } from "../bridge-idb.js";
+import { IDBDatabase } from "../idbtypes.js";
+import { createdb } from "./wptsupport.js";
 
 // IDBObjectStore.add() - add with an inline key
 test("WPT idbobjectstore_add.htm", async (t) => {
diff --git a/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-get.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-get.test.ts
index 0c9d30b7..79064d19 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-get.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-get.test.ts
@@ -1,159 +1,172 @@
 import test from "ava";
-import { BridgeIDBKeyRange, BridgeIDBRequest } from "..";
-import { IDBDatabase } from "../idbtypes";
-import { createdb } from "./wptsupport";
+import { BridgeIDBKeyRange } from "../bridge-idb.js";
+import { createdb } from "./wptsupport.js";
 
 // IDBObjectStore.get() - key is a number
-test.cb("WPT idbobjectstore_get.htm", (t) => {
-  var db: any,
-    record = { key: 3.14159265, property: "data" };
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    db.createObjectStore("store", { keyPath: "key" }).add(record);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var rq = db.transaction("store").objectStore("store").get(record.key);
-
-    rq.onsuccess = function (e: any) {
-      t.deepEqual(e.target.result.key, record.key);
-      t.deepEqual(e.target.result.property, record.property);
-      t.end();
+test("WPT idbobjectstore_get.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      record = { key: 3.14159265, property: "data" };
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      db.createObjectStore("store", { keyPath: "key" }).add(record);
     };
-  };
+
+    open_rq.onsuccess = function (e: any) {
+      var rq = db.transaction("store").objectStore("store").get(record.key);
+
+      rq.onsuccess = function (e: any) {
+        t.deepEqual(e.target.result.key, record.key);
+        t.deepEqual(e.target.result.property, record.property);
+        resolve();
+      };
+    };
+  });
 });
 
 // IDBObjectStore.get() - key is a string
-test.cb("WPT idbobjectstore_get2.htm", (t) => {
-  var db: any,
-    record = { key: "this is a key that's a string", property: "data" };
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    db.createObjectStore("store", { keyPath: "key" }).add(record);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var rq = db.transaction("store").objectStore("store").get(record.key);
-
-    rq.onsuccess = function (e: any) {
-      t.deepEqual(e.target.result.key, record.key);
-      t.deepEqual(e.target.result.property, record.property);
-      t.end();
+test("WPT idbobjectstore_get2.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      record = { key: "this is a key that's a string", property: "data" };
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      db.createObjectStore("store", { keyPath: "key" }).add(record);
+    };
+
+    open_rq.onsuccess = function (e: any) {
+      var rq = db.transaction("store").objectStore("store").get(record.key);
+
+      rq.onsuccess = function (e: any) {
+        t.deepEqual(e.target.result.key, record.key);
+        t.deepEqual(e.target.result.property, record.property);
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBObjectStore.get() - key is a date
-test.cb("WPT idbobjectstore_get3.htm", (t) => {
-  var db: any;
-  const record = { key: new Date(), property: "data" };
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    db.createObjectStore("store", { keyPath: "key" }).add(record);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var rq = db.transaction("store").objectStore("store").get(record.key);
-
-    rq.onsuccess = function (e: any) {
-      t.deepEqual(e.target.result.key.valueOf(), record.key.valueOf());
-      t.deepEqual(e.target.result.property, record.property);
-      t.end();
+test("WPT idbobjectstore_get3.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    const record = { key: new Date(), property: "data" };
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      db.createObjectStore("store", { keyPath: "key" }).add(record);
     };
-  };
+
+    open_rq.onsuccess = function (e: any) {
+      var rq = db.transaction("store").objectStore("store").get(record.key);
+
+      rq.onsuccess = function (e: any) {
+        t.deepEqual(e.target.result.key.valueOf(), record.key.valueOf());
+        t.deepEqual(e.target.result.property, record.property);
+        resolve();
+      };
+    };
+  });
 });
 
 // IDBObjectStore.get() - attempt to retrieve a record that doesn't exist
-test.cb("WPT idbobjectstore_get4.htm", (t) => {
-  var db: any;
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var rq = db.createObjectStore("store", { keyPath: "key" }).get(1);
-    rq.onsuccess = function (e: any) {
-      t.deepEqual(e.target.results, undefined);
-      setTimeout(function () {
-        t.end();
-      }, 10);
+test("WPT idbobjectstore_get4.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var rq = db.createObjectStore("store", { keyPath: "key" }).get(1);
+      rq.onsuccess = function (e: any) {
+        t.deepEqual(e.target.results, undefined);
+        setTimeout(function () {
+          resolve();
+        }, 10);
+      };
     };
-  };
 
-  open_rq.onsuccess = function () {};
+    open_rq.onsuccess = function () {};
+  });
 });
 
 // IDBObjectStore.get() - returns the record with the first key in the range
-test.cb("WPT idbobjectstore_get5.htm", (t) => {
-  var db: any;
-  var open_rq = createdb(t);
-
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var os = db.createObjectStore("store");
-
-    for (var i = 0; i < 10; i++) os.add("data" + i, i);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    db
-      .transaction("store")
-      .objectStore("store")
-      .get(BridgeIDBKeyRange.bound(3, 6)).onsuccess = function (e: any) {
-      t.deepEqual(e.target.result, "data3", "get(3-6)");
-      t.end();
+test("WPT idbobjectstore_get5.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+    var open_rq = createdb(t);
+
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var os = db.createObjectStore("store");
+
+      for (var i = 0; i < 10; i++) os.add("data" + i, i);
+    };
+
+    open_rq.onsuccess = function (e: any) {
+      db
+        .transaction("store")
+        .objectStore("store")
+        .get(BridgeIDBKeyRange.bound(3, 6)).onsuccess = function (e: any) {
+        t.deepEqual(e.target.result, "data3", "get(3-6)");
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBObjectStore.get() - throw TransactionInactiveError on aborted transaction
-test.cb("WPT idbobjectstore_get6.htm", (t) => {
-  var db: any;
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    db.createObjectStore("store", { keyPath: "key" });
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var store = db.transaction("store").objectStore("store");
-    store.transaction.abort();
-    t.throws(
-      function () {
-        store.get(1);
-      },
-      { name: "TransactionInactiveError" },
-      "throw TransactionInactiveError on aborted transaction.",
-    );
-    t.end();
-  };
+test("WPT idbobjectstore_get6.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      db.createObjectStore("store", { keyPath: "key" });
+    };
+
+    open_rq.onsuccess = function (e: any) {
+      var store = db.transaction("store").objectStore("store");
+      store.transaction.abort();
+      t.throws(
+        function () {
+          store.get(1);
+        },
+        { name: "TransactionInactiveError" },
+        "throw TransactionInactiveError on aborted transaction.",
+      );
+      resolve();
+    };
+  });
 });
 
 // IDBObjectStore.get() - throw DataError when using invalid key
-test.cb("WPT idbobjectstore_get7.htm", (t) => {
-  var db: any;
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    db.createObjectStore("store", { keyPath: "key" });
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var store = db.transaction("store").objectStore("store");
-    t.throws(
-      function () {
-        store.get(null);
-      },
-      { name: "DataError" },
-      "throw DataError when using invalid key.",
-    );
-    t.end();
-  };
+test("WPT idbobjectstore_get7.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      db.createObjectStore("store", { keyPath: "key" });
+    };
+
+    open_rq.onsuccess = function (e: any) {
+      var store = db.transaction("store").objectStore("store");
+      t.throws(
+        function () {
+          store.get(null);
+        },
+        { name: "DataError" },
+        "throw DataError when using invalid key.",
+      );
+      resolve();
+    };
+  });
 });
diff --git a/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-put.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-put.test.ts
index 3ca1b8ec..152e3a9c 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-put.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-put.test.ts
@@ -1,449 +1,483 @@
 import test from "ava";
-import { BridgeIDBKeyRange, BridgeIDBRequest } from "..";
-import { IDBDatabase } from "../idbtypes";
-import { createdb } from "./wptsupport";
+import { BridgeIDBRequest } from "../bridge-idb.js";
+import { createdb } from "./wptsupport.js";
 
 // IDBObjectStore.put() - put with an inline key
-test.cb("WPT idbobjectstore_put.htm", (t) => {
-  var db: any,
-    record = { key: 1, property: "data" };
+test("WPT idbobjectstore_put.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      record = { key: 1, property: "data" };
 
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("store", { keyPath: "key" });
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("store", { keyPath: "key" });
 
-    objStore.put(record);
-  };
+      objStore.put(record);
+    };
 
-  open_rq.onsuccess = function (e: any) {
-    var rq = db.transaction("store").objectStore("store").get(record.key);
+    open_rq.onsuccess = function (e: any) {
+      var rq = db.transaction("store").objectStore("store").get(record.key);
 
-    rq.onsuccess = function (e: any) {
-      t.deepEqual(e.target.result.property, record.property);
-      t.deepEqual(e.target.result.key, record.key);
-      t.end();
+      rq.onsuccess = function (e: any) {
+        t.deepEqual(e.target.result.property, record.property);
+        t.deepEqual(e.target.result.key, record.key);
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBObjectStore.put() - put with an out-of-line key
-test.cb("WPT idbobjectstore_put2.htm", (t) => {
-  var db: any,
-    key = 1,
-    record = { property: "data" };
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("store");
-
-    objStore.put(record, key);
-  };
+test("WPT idbobjectstore_put2.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      key = 1,
+      record = { property: "data" };
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("store");
+
+      objStore.put(record, key);
+    };
 
-  open_rq.onsuccess = function (e: any) {
-    var rq = db.transaction("store").objectStore("store").get(key);
+    open_rq.onsuccess = function (e: any) {
+      var rq = db.transaction("store").objectStore("store").get(key);
 
-    rq.onsuccess = function (e: any) {
-      t.deepEqual(e.target.result.property, record.property);
+      rq.onsuccess = function (e: any) {
+        t.deepEqual(e.target.result.property, record.property);
 
-      t.end();
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBObjectStore.put() - put with an out-of-line key
-test.cb("WPT idbobjectstore_put3.htm", (t) => {
-  var db: any,
-    success_event: any,
-    record = { key: 1, property: "data" },
-    record_put = { key: 1, property: "changed", more: ["stuff", 2] };
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("store", { keyPath: "key" });
-    objStore.put(record);
-
-    var rq = objStore.put(record_put);
-    rq.onerror = () => t.fail("error on put");
-
-    rq.onsuccess = function (e: any) {
-      success_event = true;
+test("WPT idbobjectstore_put3.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      success_event: any,
+      record = { key: 1, property: "data" },
+      record_put = { key: 1, property: "changed", more: ["stuff", 2] };
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("store", { keyPath: "key" });
+      objStore.put(record);
+
+      var rq = objStore.put(record_put);
+      rq.onerror = () => t.fail("error on put");
+
+      rq.onsuccess = function (e: any) {
+        success_event = true;
+      };
     };
-  };
 
-  open_rq.onsuccess = function (e: any) {
-    t.true(success_event);
+    open_rq.onsuccess = function (e: any) {
+      t.true(success_event);
 
-    var rq = db.transaction("store").objectStore("store").get(1);
+      var rq = db.transaction("store").objectStore("store").get(1);
 
-    rq.onsuccess = function (e: any) {
-      var rec = e.target.result;
+      rq.onsuccess = function (e: any) {
+        var rec = e.target.result;
 
-      t.deepEqual(rec.key, record_put.key);
-      t.deepEqual(rec.property, record_put.property);
-      t.deepEqual(rec.more, record_put.more);
+        t.deepEqual(rec.key, record_put.key);
+        t.deepEqual(rec.property, record_put.property);
+        t.deepEqual(rec.more, record_put.more);
 
-      t.end();
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBObjectStore.put() - put where an index has unique:true specified
-test.cb("WPT idbobjectstore_put4.htm", (t) => {
-  var db: any,
-    record = { key: 1, property: "data" };
+test("WPT idbobjectstore_put4.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      record = { key: 1, property: "data" };
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("store", { autoIncrement: true });
+      objStore.createIndex("i1", "property", { unique: true });
+      objStore.put(record);
+
+      var rq = objStore.put(record);
+      rq.onsuccess = () =>
+        t.fail("success on putting duplicate indexed record");
+
+      rq.onerror = function (e: any) {
+        t.deepEqual(rq.error.name, "ConstraintError");
+        t.deepEqual(e.target.error.name, "ConstraintError");
+
+        t.deepEqual(e.type, "error");
+
+        e.preventDefault();
+        e.stopPropagation();
+      };
+    };
 
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("store", { autoIncrement: true });
-    objStore.createIndex("i1", "property", { unique: true });
-    objStore.put(record);
+    // Defer done, giving a spurious rq.onsuccess a chance to run
+    open_rq.onsuccess = function (e: any) {
+      resolve();
+    };
+  });
+});
 
-    var rq = objStore.put(record);
-    rq.onsuccess = () => t.fail("success on putting duplicate indexed record");
+// IDBObjectStore.put() - object store's key path is an object attribute
+test("WPT idbobjectstore_put5.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      record = { test: { obj: { key: 1 } }, property: "data" };
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("store", { keyPath: "test.obj.key" 
});
+      objStore.put(record);
+    };
 
-    rq.onerror = function (e: any) {
-      t.deepEqual(rq.error.name, "ConstraintError");
-      t.deepEqual(e.target.error.name, "ConstraintError");
+    open_rq.onsuccess = function (e: any) {
+      var rq = db
+        .transaction("store")
+        .objectStore("store")
+        .get(record.test.obj.key);
 
-      t.deepEqual(e.type, "error");
+      rq.onsuccess = function (e: any) {
+        t.deepEqual(e.target.result.property, record.property);
 
-      e.preventDefault();
-      e.stopPropagation();
+        resolve();
+      };
     };
-  };
-
-  // Defer done, giving a spurious rq.onsuccess a chance to run
-  open_rq.onsuccess = function (e: any) {
-    t.end();
-  };
+  });
 });
 
-// IDBObjectStore.put() - object store's key path is an object attribute
-test.cb("WPT idbobjectstore_put5.htm", (t) => {
-  var db: any,
-    record = { test: { obj: { key: 1 } }, property: "data" };
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("store", { keyPath: "test.obj.key" });
-    objStore.put(record);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var rq = db
-      .transaction("store")
-      .objectStore("store")
-      .get(record.test.obj.key);
-
-    rq.onsuccess = function (e: any) {
-      t.deepEqual(e.target.result.property, record.property);
-
-      t.end();
+// IDBObjectStore.put() - autoIncrement and inline keys
+test("WPT idbobjectstore_put6.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      record = { property: "data" },
+      expected_keys = [1, 2, 3, 4];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("store", {
+        keyPath: "key",
+        autoIncrement: true,
+      });
+
+      objStore.put(record);
+      objStore.put(record);
+      objStore.put(record);
+      objStore.put(record);
     };
-  };
-});
 
-// IDBObjectStore.put() - autoIncrement and inline keys
-test.cb("WPT idbobjectstore_put6.htm", (t) => {
-  var db: any,
-    record = { property: "data" },
-    expected_keys = [1, 2, 3, 4];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("store", {
-      keyPath: "key",
-      autoIncrement: true,
-    });
-
-    objStore.put(record);
-    objStore.put(record);
-    objStore.put(record);
-    objStore.put(record);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var actual_keys: any[] = [],
-      rq = db.transaction("store").objectStore("store").openCursor();
-
-    rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-
-      if (cursor) {
-        actual_keys.push(cursor.value.key);
-        cursor.continue();
-      } else {
-        t.deepEqual(actual_keys, expected_keys);
-        t.end();
-      }
+    open_rq.onsuccess = function (e: any) {
+      var actual_keys: any[] = [],
+        rq = db.transaction("store").objectStore("store").openCursor();
+
+      rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+
+        if (cursor) {
+          actual_keys.push(cursor.value.key);
+          cursor.continue();
+        } else {
+          t.deepEqual(actual_keys, expected_keys);
+          resolve();
+          return;
+        }
+      };
     };
-  };
+  });
 });
 
 // IDBObjectStore.put() - autoIncrement and out-of-line keys
-test.cb("WPT idbobjectstore_put7.htm", (t) => {
-  var db: any,
-    record = { property: "data" },
-    expected_keys = [1, 2, 3, 4];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("store", { autoIncrement: true });
-
-    objStore.put(record);
-    objStore.put(record);
-    objStore.put(record);
-    objStore.put(record);
-  };
-
-  open_rq.onsuccess = function (e) {
-    var actual_keys: any[] = [],
-      rq = db.transaction("store").objectStore("store").openCursor();
-
-    rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-
-      if (cursor) {
-        actual_keys.push(cursor.key);
-        cursor.continue();
-      } else {
-        t.deepEqual(actual_keys, expected_keys);
-        t.end();
-      }
+test("WPT idbobjectstore_put7.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      record = { property: "data" },
+      expected_keys = [1, 2, 3, 4];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("store", { autoIncrement: true });
+
+      objStore.put(record);
+      objStore.put(record);
+      objStore.put(record);
+      objStore.put(record);
     };
-  };
+
+    open_rq.onsuccess = function (e) {
+      var actual_keys: any[] = [],
+        rq = db.transaction("store").objectStore("store").openCursor();
+
+      rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+
+        if (cursor) {
+          actual_keys.push(cursor.key);
+          cursor.continue();
+        } else {
+          t.deepEqual(actual_keys, expected_keys);
+          resolve();
+        }
+      };
+    };
+  });
 });
 
 // IDBObjectStore.put() - object store has autoIncrement:true and the key path 
is an object attribute
-test.cb("WPT idbobjectstore_put8.htm", (t) => {
-  var db: any,
-    record = { property: "data" },
-    expected_keys = [1, 2, 3, 4];
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-    var objStore = db.createObjectStore("store", {
-      keyPath: "test.obj.key",
-      autoIncrement: true,
-    });
-
-    objStore.put(record);
-    objStore.put(record);
-    objStore.put(record);
-    objStore.put(record);
-  };
-
-  open_rq.onsuccess = function (e: any) {
-    var actual_keys: any[] = [],
-      rq = db.transaction("store").objectStore("store").openCursor();
-
-    rq.onsuccess = function (e: any) {
-      var cursor = e.target.result;
-
-      if (cursor) {
-        actual_keys.push(cursor.value.test.obj.key);
-        cursor.continue();
-      } else {
-        t.deepEqual(actual_keys, expected_keys);
-        t.end();
-      }
+test("WPT idbobjectstore_put8.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      record = { property: "data" },
+      expected_keys = [1, 2, 3, 4];
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+      var objStore = db.createObjectStore("store", {
+        keyPath: "test.obj.key",
+        autoIncrement: true,
+      });
+
+      objStore.put(record);
+      objStore.put(record);
+      objStore.put(record);
+      objStore.put(record);
+    };
+
+    open_rq.onsuccess = function (e: any) {
+      var actual_keys: any[] = [],
+        rq = db.transaction("store").objectStore("store").openCursor();
+
+      rq.onsuccess = function (e: any) {
+        var cursor = e.target.result;
+
+        if (cursor) {
+          actual_keys.push(cursor.value.test.obj.key);
+          cursor.continue();
+        } else {
+          t.deepEqual(actual_keys, expected_keys);
+          resolve();
+          return;
+        }
+      };
     };
-  };
+  });
 });
 
 //IDBObjectStore.put() - Attempt to put a record that does not meet the 
constraints of an object store's inline key requirements
-test.cb("WPT idbobjectstore_put9.htm", (t) => {
-  var record = { key: 1, property: "data" };
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    var rq,
-      db = e.target.result,
-      objStore = db.createObjectStore("store", { keyPath: "key" });
-
-    t.throws(
-      function () {
-        rq = objStore.put(record, 1);
-      },
-      { name: "DataError" },
-    );
-
-    t.deepEqual(rq, undefined);
-    t.end();
-  };
+test("WPT idbobjectstore_put9.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var record = { key: 1, property: "data" };
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      var rq,
+        db = e.target.result,
+        objStore = db.createObjectStore("store", { keyPath: "key" });
+
+      t.throws(
+        function () {
+          rq = objStore.put(record, 1);
+        },
+        { name: "DataError" },
+      );
+
+      t.deepEqual(rq, undefined);
+      resolve();
+    };
+  });
 });
 
 //IDBObjectStore.put() - Attempt to call 'put' without an key parameter when 
the object store uses out-of-line keys
-test.cb("WPT idbobjectstore_put10.htm", (t) => {
-  var db: any,
-    record = { property: "data" };
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-
-    var rq,
-      objStore = db.createObjectStore("store", { keyPath: "key" });
-
-    t.throws(
-      function () {
-        rq = objStore.put(record);
-      },
-      { name: "DataError" },
-    );
-
-    t.deepEqual(rq, undefined);
-    t.end();
-  };
+test("WPT idbobjectstore_put10.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      record = { property: "data" };
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+
+      var rq,
+        objStore = db.createObjectStore("store", { keyPath: "key" });
+
+      t.throws(
+        function () {
+          rq = objStore.put(record);
+        },
+        { name: "DataError" },
+      );
+
+      t.deepEqual(rq, undefined);
+      resolve();
+    };
+  });
 });
 
 // IDBObjectStore.put() - Attempt to put a record where the record's key does 
not meet the constraints of a valid key
-test.cb("WPT idbobjectstore_put11.htm", (t) => {
-  var db: any,
-    record = { key: { value: 1 }, property: "data" };
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-
-    var rq,
-      objStore = db.createObjectStore("store", { keyPath: "key" });
-
-    t.throws(
-      function () {
-        rq = objStore.put(record);
-      },
-      { name: "DataError" },
-    );
-
-    t.deepEqual(rq, undefined);
-    t.end();
-  };
+test("WPT idbobjectstore_put11.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      record = { key: { value: 1 }, property: "data" };
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+
+      var rq,
+        objStore = db.createObjectStore("store", { keyPath: "key" });
+
+      t.throws(
+        function () {
+          rq = objStore.put(record);
+        },
+        { name: "DataError" },
+      );
+
+      t.deepEqual(rq, undefined);
+      resolve();
+    };
+  });
 });
 
 // IDBObjectStore.put() - Attempt to put a record where the record's in-line 
key is not defined
-test.cb("WPT idbobjectstore_put12.htm", (t) => {
-  var db: any,
-    record = { property: "data" };
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-
-    var rq,
-      objStore = db.createObjectStore("store", { keyPath: "key" });
-
-    t.throws(
-      function () {
-        rq = objStore.put(record);
-      },
-      { name: "DataError" },
-    );
-
-    t.deepEqual(rq, undefined);
-    t.end();
-  };
+test("WPT idbobjectstore_put12.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      record = { property: "data" };
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+
+      var rq,
+        objStore = db.createObjectStore("store", { keyPath: "key" });
+
+      t.throws(
+        function () {
+          rq = objStore.put(record);
+        },
+        { name: "DataError" },
+      );
+
+      t.deepEqual(rq, undefined);
+      resolve();
+    };
+  });
 });
 
 // IDBObjectStore.put() - Attempt to put a record where the out of line key 
provided does not meet the constraints of a valid key
-test.cb("WPT idbobjectstore_put13.htm", (t) => {
-  var db: any,
-    record = { property: "data" };
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
-
-    var rq,
-      objStore = db.createObjectStore("store");
-
-    t.throws(
-      function () {
-        rq = objStore.put(record, { value: 1 });
-      },
-      {
-        name: "DataError",
-      },
-    );
-
-    t.deepEqual(rq, undefined);
-    t.end();
-  };
+test("WPT idbobjectstore_put13.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      record = { property: "data" };
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
+
+      var rq,
+        objStore = db.createObjectStore("store");
+
+      t.throws(
+        function () {
+          rq = objStore.put(record, { value: 1 });
+        },
+        {
+          name: "DataError",
+        },
+      );
+
+      t.deepEqual(rq, undefined);
+      resolve();
+    };
+  });
 });
 
 // IDBObjectStore.put() - Put a record where a value being indexed does not 
meet the constraints of a valid key
-test.cb("WPT idbobjectstore_put14.htm", (t) => {
-  var db: any,
-    record = { key: 1, indexedProperty: { property: "data" } };
+test("WPT idbobjectstore_put14.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any,
+      record = { key: 1, indexedProperty: { property: "data" } };
 
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (e: any) {
-    db = e.target.result;
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (e: any) {
+      db = e.target.result;
 
-    var rq,
-      objStore = db.createObjectStore("store", { keyPath: "key" });
+      var rq,
+        objStore = db.createObjectStore("store", { keyPath: "key" });
 
-    objStore.createIndex("index", "indexedProperty");
+      objStore.createIndex("index", "indexedProperty");
 
-    rq = objStore.put(record);
+      rq = objStore.put(record);
 
-    t.true(rq instanceof BridgeIDBRequest);
-    rq.onsuccess = function () {
-      t.end();
+      t.true(rq instanceof BridgeIDBRequest);
+      rq.onsuccess = function () {
+        resolve();
+      };
     };
-  };
+  });
 });
 
 // IDBObjectStore.put() - If the transaction this IDBObjectStore belongs to 
has its mode set to readonly, throw ReadOnlyError
-test.cb("WPT idbobjectstore_put15.htm", (t) => {
-  var db: any;
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (event: any) {
-    db = event.target.result;
-    db.createObjectStore("store", { keyPath: "pKey" });
-  };
-
-  open_rq.onsuccess = function (event: any) {
-    var txn = db.transaction("store");
-    var ostore = txn.objectStore("store");
-    t.throws(
-      function () {
-        ostore.put({ pKey: "primaryKey_0" });
-      },
-      {
-        name: "ReadOnlyError",
-      },
-    );
-    t.end();
-  };
+test("WPT idbobjectstore_put15.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any;
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event: any) {
+      db = event.target.result;
+      db.createObjectStore("store", { keyPath: "pKey" });
+    };
+
+    open_rq.onsuccess = function (event: any) {
+      var txn = db.transaction("store");
+      var ostore = txn.objectStore("store");
+      t.throws(
+        function () {
+          ostore.put({ pKey: "primaryKey_0" });
+        },
+        {
+          name: "ReadOnlyError",
+        },
+      );
+      resolve();
+    };
+  });
 });
 
 // IDBObjectStore.put() - If the object store has been deleted, the 
implementation must throw a DOMException of type InvalidStateError
-test.cb("WPT idbobjectstore_put16.htm", (t) => {
-  var db: any, ostore: any;
-
-  var open_rq = createdb(t);
-  open_rq.onupgradeneeded = function (event: any) {
-    db = event.target.result;
-    ostore = db.createObjectStore("store", { keyPath: "pKey" });
-    db.deleteObjectStore("store");
-    t.throws(
-      function () {
-        ostore.put({ pKey: "primaryKey_0" });
-      },
-      {
-        name: "InvalidStateError",
-      },
-    );
-    t.end();
-  };
+test("WPT idbobjectstore_put16.htm", (t) => {
+  return new Promise((resolve, reject) => {
+    var db: any, ostore: any;
+
+    var open_rq = createdb(t);
+    open_rq.onupgradeneeded = function (event: any) {
+      db = event.target.result;
+      ostore = db.createObjectStore("store", { keyPath: "pKey" });
+      db.deleteObjectStore("store");
+      t.throws(
+        function () {
+          ostore.put({ pKey: "primaryKey_0" });
+        },
+        {
+          name: "InvalidStateError",
+        },
+      );
+      resolve();
+    };
+  });
 });
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-rename-store.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-rename-store.test.ts
index b60e932b..a8aab828 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-rename-store.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbobjectstore-rename-store.test.ts
@@ -7,7 +7,7 @@ import {
   createDatabase,
   createNotBooksStore,
   migrateDatabase,
-} from "./wptsupport";
+} from "./wptsupport.js";
 
 // IndexedDB: object store renaming support
 // IndexedDB object store rename in new transaction
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/idbtransaction-oncomplete.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/idbtransaction-oncomplete.test.ts
index 8f54fb7c..a501ff2c 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/idbtransaction-oncomplete.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/idbtransaction-oncomplete.test.ts
@@ -1,5 +1,5 @@
 import test from "ava";
-import { createdb } from "./wptsupport";
+import { createdb } from "./wptsupport.js";
 
 // IDBTransaction - complete event
 test("WPT idbtransaction-oncomplete.htm", async (t) => {
diff --git a/packages/idb-bridge/src/idb-wpt-ported/keypath.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/keypath.test.ts
index 20ec6f3f..7ef1301f 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/keypath.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/keypath.test.ts
@@ -1,5 +1,5 @@
 import test from "ava";
-import { assert_key_equals, createdb } from "./wptsupport";
+import { assert_key_equals, createdb } from "./wptsupport.js";
 
 test("WPT test keypath.htm", async (t) => {
   function keypath(
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/request-bubble-and-capture.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/request-bubble-and-capture.test.ts
index a7541a68..526c0678 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/request-bubble-and-capture.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/request-bubble-and-capture.test.ts
@@ -1,7 +1,6 @@
 import test from "ava";
-import { BridgeIDBRequest } from "..";
-import { EventTarget, IDBDatabase } from "../idbtypes";
-import { createdb } from "./wptsupport";
+import { EventTarget } from "../idbtypes.js";
+import { createdb } from "./wptsupport.js";
 
 // Bubbling and capturing of request events
 test("WPT request_bubble-and-capture.htm", async (t) => {
diff --git 
a/packages/idb-bridge/src/idb-wpt-ported/transaction-requestqueue.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/transaction-requestqueue.test.ts
index 707bb525..9d76e79f 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/transaction-requestqueue.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/transaction-requestqueue.test.ts
@@ -1,5 +1,5 @@
 import test from "ava";
-import { createdb } from "./wptsupport";
+import { createdb } from "./wptsupport.js";
 
 // Transactions have a request queue
 test("transaction-requestqueue.htm", async (t) => {
@@ -72,7 +72,7 @@ test("transaction-requestqueue.htm", async (t) => {
           "os2: 1",
           "os2: 1",
           "os1: 2",
-        ],
+        ] as any,
         "transaction keys",
       );
 
@@ -93,7 +93,7 @@ test("transaction-requestqueue.htm", async (t) => {
           "os3: 1",
           "os1: 2",
           "os4: 5",
-        ],
+        ] as any,
         "transaction 2 keys",
       );
 
diff --git a/packages/idb-bridge/src/idb-wpt-ported/value.test.ts 
b/packages/idb-bridge/src/idb-wpt-ported/value.test.ts
index acae2fe6..a80ec2b5 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/value.test.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/value.test.ts
@@ -1,47 +1,51 @@
 import test from "ava";
-import { IDBVersionChangeEvent } from "../idbtypes";
-import { createdb } from "./wptsupport";
+import { IDBVersionChangeEvent } from "../idbtypes.js";
+import { createdb } from "./wptsupport.js";
 
-test.cb("WPT test value.htm, array", (t) => {
-  const value = new Array();
-  const _instanceof = Array;
+test("WPT test value.htm, array", (t) => {
+  return new Promise((resolve, reject) => {
+    const value = new Array();
+    const _instanceof = Array;
 
-  t.plan(1);
+    t.plan(1);
 
-  createdb(t).onupgradeneeded = function (e: IDBVersionChangeEvent) {
-    (e.target as any).result.createObjectStore("store").add(value, 1);
-    (e.target as any).onsuccess = (e: any) => {
-      console.log("in first onsuccess");
-      e.target.result
-        .transaction("store")
-        .objectStore("store")
-        .get(1).onsuccess = (e: any) => {
-        t.assert(e.target.result instanceof _instanceof, "instanceof");
-        t.end();
+    createdb(t).onupgradeneeded = function (e: IDBVersionChangeEvent) {
+      (e.target as any).result.createObjectStore("store").add(value, 1);
+      (e.target as any).onsuccess = (e: any) => {
+        console.log("in first onsuccess");
+        e.target.result
+          .transaction("store")
+          .objectStore("store")
+          .get(1).onsuccess = (e: any) => {
+          t.assert(e.target.result instanceof _instanceof, "instanceof");
+          resolve();
+        };
       };
     };
-  };
+  });
 });
 
-test.cb("WPT test value.htm, date", (t) => {
-  const value = new Date();
-  const _instanceof = Date;
+test("WPT test value.htm, date", (t) => {
+  return new Promise((resolve, reject) => {
+    const value = new Date();
+    const _instanceof = Date;
 
-  t.plan(1);
+    t.plan(1);
 
-  createdb(t).onupgradeneeded = function (e: IDBVersionChangeEvent) {
-    (e.target as any).result.createObjectStore("store").add(value, 1);
-    (e.target as any).onsuccess = (e: any) => {
-      console.log("in first onsuccess");
-      e.target.result
-        .transaction("store")
-        .objectStore("store")
-        .get(1).onsuccess = (e: any) => {
-        console.log("target", e.target);
-        console.log("result", e.target.result);
-        t.assert(e.target.result instanceof _instanceof, "instanceof");
-        t.end();
+    createdb(t).onupgradeneeded = function (e: IDBVersionChangeEvent) {
+      (e.target as any).result.createObjectStore("store").add(value, 1);
+      (e.target as any).onsuccess = (e: any) => {
+        console.log("in first onsuccess");
+        e.target.result
+          .transaction("store")
+          .objectStore("store")
+          .get(1).onsuccess = (e: any) => {
+          console.log("target", e.target);
+          console.log("result", e.target.result);
+          t.assert(e.target.result instanceof _instanceof, "instanceof");
+          resolve();
+        };
       };
     };
-  };
+  });
 });
diff --git a/packages/idb-bridge/src/idb-wpt-ported/wptsupport.ts 
b/packages/idb-bridge/src/idb-wpt-ported/wptsupport.ts
index 38b44bbe..7f68a53e 100644
--- a/packages/idb-bridge/src/idb-wpt-ported/wptsupport.ts
+++ b/packages/idb-bridge/src/idb-wpt-ported/wptsupport.ts
@@ -1,5 +1,5 @@
-import test, { ExecutionContext } from "ava";
-import { BridgeIDBFactory, BridgeIDBRequest } from "..";
+import { ExecutionContext } from "ava";
+import { BridgeIDBFactory, BridgeIDBRequest } from "../bridge-idb.js";
 import {
   IDBDatabase,
   IDBIndex,
@@ -7,10 +7,9 @@ import {
   IDBOpenDBRequest,
   IDBRequest,
   IDBTransaction,
-  IDBTransactionMode,
-} from "../idbtypes";
-import { MemoryBackend } from "../MemoryBackend";
-import { compareKeys } from "../util/cmp";
+} from "../idbtypes.js";
+import { MemoryBackend } from "../MemoryBackend.js";
+import { compareKeys } from "../util/cmp.js";
 
 BridgeIDBFactory.enableTracing = true;
 const backend = new MemoryBackend();
diff --git a/packages/idb-bridge/src/util/FakeEvent.ts 
b/packages/idb-bridge/src/util/FakeEvent.ts
index c16a58fd..e3ba864e 100644
--- a/packages/idb-bridge/src/util/FakeEvent.ts
+++ b/packages/idb-bridge/src/util/FakeEvent.ts
@@ -14,8 +14,8 @@
  permissions and limitations under the License.
 */
 
-import FakeEventTarget from "./FakeEventTarget";
-import { Event, EventTarget } from "../idbtypes";
+import FakeEventTarget from "./FakeEventTarget.js";
+import { Event, EventTarget } from "../idbtypes.js";
 
 /** @public */
 export type EventType =
diff --git a/packages/idb-bridge/src/util/FakeEventTarget.ts 
b/packages/idb-bridge/src/util/FakeEventTarget.ts
index 95489b4a..7ff22071 100644
--- a/packages/idb-bridge/src/util/FakeEventTarget.ts
+++ b/packages/idb-bridge/src/util/FakeEventTarget.ts
@@ -14,8 +14,8 @@
  permissions and limitations under the License.
  */
 
-import { InvalidStateError } from "./errors";
-import FakeEvent, { EventType } from "./FakeEvent";
+import { InvalidStateError } from "./errors.js";
+import FakeEvent, { EventType } from "./FakeEvent.js";
 import {
   EventTarget,
   Event,
diff --git a/packages/idb-bridge/src/util/canInjectKey.test.ts 
b/packages/idb-bridge/src/util/canInjectKey.test.ts
index b57dd1c9..c73552ea 100644
--- a/packages/idb-bridge/src/util/canInjectKey.test.ts
+++ b/packages/idb-bridge/src/util/canInjectKey.test.ts
@@ -16,7 +16,7 @@
 */
 
 import test from "ava";
-import { canInjectKey } from "./canInjectKey";
+import { canInjectKey } from "./canInjectKey.js";
 
 test("canInjectKey", (t) => {
   t.false(canInjectKey("foo", null));
diff --git a/packages/idb-bridge/src/util/canInjectKey.ts 
b/packages/idb-bridge/src/util/canInjectKey.ts
index 903a9d3d..e2927b70 100644
--- a/packages/idb-bridge/src/util/canInjectKey.ts
+++ b/packages/idb-bridge/src/util/canInjectKey.ts
@@ -15,7 +15,7 @@
  permissions and limitations under the License.
 */
 
-import { IDBKeyPath } from "../idbtypes";
+import { IDBKeyPath } from "../idbtypes.js";
 
 /**
  * Check that a key could be injected into a value.
diff --git a/packages/idb-bridge/src/util/cmp.ts 
b/packages/idb-bridge/src/util/cmp.ts
index e7f26bf1..19e1d01b 100644
--- a/packages/idb-bridge/src/util/cmp.ts
+++ b/packages/idb-bridge/src/util/cmp.ts
@@ -14,8 +14,8 @@
  permissions and limitations under the License.
  */
 
-import { DataError } from "./errors";
-import { valueToKey } from "./valueToKey";
+import { DataError } from "./errors.js";
+import { valueToKey } from "./valueToKey.js";
 
 const getType = (x: any) => {
   if (typeof x === "number") {
diff --git a/packages/idb-bridge/src/util/extractKey.ts 
b/packages/idb-bridge/src/util/extractKey.ts
index 09306dde..b768ed92 100644
--- a/packages/idb-bridge/src/util/extractKey.ts
+++ b/packages/idb-bridge/src/util/extractKey.ts
@@ -15,8 +15,8 @@
  permissions and limitations under the License.
 */
 
-import { IDBKeyPath, IDBValidKey } from "../idbtypes";
-import { valueToKey } from "./valueToKey";
+import { IDBKeyPath, IDBValidKey } from "../idbtypes.js";
+import { valueToKey } from "./valueToKey.js";
 
 // 
http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-extracting-a-key-from-a-value-using-a-key-path
 export const extractKey = (keyPath: IDBKeyPath | IDBKeyPath[], value: any) => {
diff --git a/packages/idb-bridge/src/util/fakeDOMStringList.ts 
b/packages/idb-bridge/src/util/fakeDOMStringList.ts
index 0549e128..92785f9e 100644
--- a/packages/idb-bridge/src/util/fakeDOMStringList.ts
+++ b/packages/idb-bridge/src/util/fakeDOMStringList.ts
@@ -14,7 +14,6 @@
  * permissions and limitations under the License.
  */
 
-import { DOMStringList } from "../idbtypes";
 
 /** @public */
 export interface FakeDOMStringList extends Array<string> {
diff --git a/packages/idb-bridge/src/util/getIndexKeys.test.ts 
b/packages/idb-bridge/src/util/getIndexKeys.test.ts
index 782b3da2..d3bbd519 100644
--- a/packages/idb-bridge/src/util/getIndexKeys.test.ts
+++ b/packages/idb-bridge/src/util/getIndexKeys.test.ts
@@ -16,7 +16,7 @@
 */
 
 import test from "ava";
-import { getIndexKeys } from "./getIndexKeys";
+import { getIndexKeys } from "./getIndexKeys.js";
 
 test("basics", (t) => {
   t.deepEqual(getIndexKeys({ foo: 42 }, "foo", false), [42]);
@@ -31,10 +31,10 @@ test("basics", (t) => {
   });
 
   t.deepEqual(getIndexKeys({ foo: 42 }, "foo", true), [42]);
-  t.deepEqual(getIndexKeys({ foo: 42, bar: 10 }, ["foo", "bar"], true), [
-    42,
-    10,
-  ]);
+  t.deepEqual(
+    getIndexKeys({ foo: 42, bar: 10 }, ["foo", "bar"], true),
+    [42, 10],
+  );
   t.deepEqual(getIndexKeys({ foo: 42, bar: 10 }, ["foo", "bar"], false), [
     [42, 10],
   ]);
diff --git a/packages/idb-bridge/src/util/getIndexKeys.ts 
b/packages/idb-bridge/src/util/getIndexKeys.ts
index 8515d79e..17e77e63 100644
--- a/packages/idb-bridge/src/util/getIndexKeys.ts
+++ b/packages/idb-bridge/src/util/getIndexKeys.ts
@@ -15,9 +15,9 @@
  permissions and limitations under the License.
 */
 
-import { IDBKeyPath, IDBValidKey } from "../idbtypes";
-import { extractKey } from "./extractKey";
-import { valueToKey } from "./valueToKey";
+import { IDBKeyPath, IDBValidKey } from "../idbtypes.js";
+import { extractKey } from "./extractKey.js";
+import { valueToKey } from "./valueToKey.js";
 
 export function getIndexKeys(
   value: any,
diff --git a/packages/idb-bridge/src/util/makeStoreKeyValue.test.ts 
b/packages/idb-bridge/src/util/makeStoreKeyValue.test.ts
index df974831..97169702 100644
--- a/packages/idb-bridge/src/util/makeStoreKeyValue.test.ts
+++ b/packages/idb-bridge/src/util/makeStoreKeyValue.test.ts
@@ -15,7 +15,7 @@
 */
 
 import test from "ava";
-import { makeStoreKeyValue } from "./makeStoreKeyValue";
+import { makeStoreKeyValue } from "./makeStoreKeyValue.js";
 
 test("basics", (t) => {
   let result;
diff --git a/packages/idb-bridge/src/util/makeStoreKeyValue.ts 
b/packages/idb-bridge/src/util/makeStoreKeyValue.ts
index c0fdb19a..4c7dab8d 100644
--- a/packages/idb-bridge/src/util/makeStoreKeyValue.ts
+++ b/packages/idb-bridge/src/util/makeStoreKeyValue.ts
@@ -14,11 +14,11 @@
  permissions and limitations under the License.
 */
 
-import { extractKey } from "./extractKey";
-import { DataCloneError, DataError } from "./errors";
-import { valueToKey } from "./valueToKey";
-import { structuredClone } from "./structuredClone";
-import { IDBKeyPath, IDBValidKey } from "../idbtypes";
+import { extractKey } from "./extractKey.js";
+import { DataCloneError, DataError } from "./errors.js";
+import { valueToKey } from "./valueToKey.js";
+import { structuredClone } from "./structuredClone.js";
+import { IDBKeyPath, IDBValidKey } from "../idbtypes.js";
 
 export interface StoreKeyResult {
   updatedKeyGenerator: number;
diff --git a/packages/idb-bridge/src/util/structuredClone.test.ts 
b/packages/idb-bridge/src/util/structuredClone.test.ts
index a14260da..0c613e6c 100644
--- a/packages/idb-bridge/src/util/structuredClone.test.ts
+++ b/packages/idb-bridge/src/util/structuredClone.test.ts
@@ -15,7 +15,7 @@
 */
 
 import test, { ExecutionContext } from "ava";
-import { structuredClone } from "./structuredClone";
+import { structuredClone } from "./structuredClone.js";
 
 function checkClone(t: ExecutionContext, x: any): void {
   t.deepEqual(structuredClone(x), x);
diff --git a/packages/idb-bridge/src/util/validateKeyPath.ts 
b/packages/idb-bridge/src/util/validateKeyPath.ts
index 8c29c1d5..1c614fcc 100644
--- a/packages/idb-bridge/src/util/validateKeyPath.ts
+++ b/packages/idb-bridge/src/util/validateKeyPath.ts
@@ -14,7 +14,7 @@
  permissions and limitations under the License.
 */
 
-import { IDBKeyPath } from "../idbtypes";
+import { IDBKeyPath } from "../idbtypes.js";
 
 // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-valid-key-path
 export const validateKeyPath = (
diff --git a/packages/idb-bridge/src/util/valueToKey.ts 
b/packages/idb-bridge/src/util/valueToKey.ts
index c65604df..6df82af8 100644
--- a/packages/idb-bridge/src/util/valueToKey.ts
+++ b/packages/idb-bridge/src/util/valueToKey.ts
@@ -14,8 +14,8 @@
  permissions and limitations under the License.
  */
 
-import { IDBValidKey } from "..";
-import { DataError } from "./errors";
+import { IDBValidKey } from "../idbtypes.js";
+import { DataError } from "./errors.js";
 
 // https://www.w3.org/TR/IndexedDB-2/#convert-a-value-to-a-key
 export function valueToKey(
diff --git a/packages/pogen/package.json b/packages/pogen/package.json
index 34c5e6a3..763edca7 100644
--- a/packages/pogen/package.json
+++ b/packages/pogen/package.json
@@ -11,9 +11,9 @@
     "compile": "tsc"
   },
   "devDependencies": {
-    "typescript": "^4.5.4"
+    "typescript": "^4.5.5"
   },
   "dependencies": {
-    "@types/node": "^17.0.8"
+    "@types/node": "^17.0.17"
   }
 }
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 7a2682d7..08a93d0c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -4,14 +4,16 @@ importers:
 
   .:
     specifiers:
+      '@babel/core': 7.13.16
       '@linaria/esbuild': ^3.0.0-beta.15
       '@linaria/shaker': ^3.0.0-beta.15
-      esbuild: ^0.14.10
+      esbuild: ^0.14.21
       prettier: ^2.5.1
     devDependencies:
-      '@linaria/esbuild': 3.0.0-beta.15
-      '@linaria/shaker': 3.0.0-beta.15
-      esbuild: 0.14.10
+      '@babel/core': 7.13.16
+      '@linaria/esbuild': 3.0.0-beta.15_@babel+core@7.13.16
+      '@linaria/shaker': 3.0.0-beta.15_@babel+core@7.13.16
+      esbuild: 0.14.21
       prettier: 2.5.1
 
   packages/anastasis-core:
@@ -20,34 +22,34 @@ importers:
       '@rollup/plugin-commonjs': ^21.0.1
       '@rollup/plugin-json': ^4.1.0
       '@rollup/plugin-node-resolve': ^13.1.3
-      ava: ^3.15.0
+      ava: ^4.0.1
       fetch-ponyfill: ^7.1.0
-      fflate: ^0.7.2
+      fflate: ^0.7.3
       hash-wasm: ^4.9.0
-      node-fetch: ^3.1.0
+      node-fetch: ^3.2.0
       rimraf: ^3.0.2
-      rollup: ^2.63.0
+      rollup: ^2.67.2
       rollup-plugin-sourcemaps: ^0.6.3
       source-map-support: ^0.5.21
       tslib: ^2.3.1
-      typescript: ^4.5.4
+      typescript: ^4.5.5
     dependencies:
       '@gnu-taler/taler-util': link:../taler-util
       fetch-ponyfill: 7.1.0
-      fflate: 0.7.2
+      fflate: 0.7.3
       hash-wasm: 4.9.0
-      node-fetch: 3.1.0
+      node-fetch: 3.2.0
       tslib: 2.3.1
     devDependencies:
-      '@rollup/plugin-commonjs': 21.0.1_rollup@2.63.0
-      '@rollup/plugin-json': 4.1.0_rollup@2.63.0
-      '@rollup/plugin-node-resolve': 13.1.3_rollup@2.63.0
-      ava: 3.15.0
+      '@rollup/plugin-commonjs': 21.0.1_rollup@2.67.2
+      '@rollup/plugin-json': 4.1.0_rollup@2.67.2
+      '@rollup/plugin-node-resolve': 13.1.3_rollup@2.67.2
+      ava: 4.0.1
       rimraf: 3.0.2
-      rollup: 2.63.0
-      rollup-plugin-sourcemaps: 0.6.3_rollup@2.63.0
+      rollup: 2.67.2
+      rollup-plugin-sourcemaps: 0.6.3_rollup@2.67.2
       source-map-support: 0.5.21
-      typescript: 4.5.4
+      typescript: 4.5.5
 
   packages/anastasis-webui:
     specifiers:
@@ -123,36 +125,36 @@ importers:
       '@rollup/plugin-commonjs': ^21.0.1
       '@rollup/plugin-json': ^4.1.0
       '@rollup/plugin-node-resolve': ^13.1.3
-      '@types/node': ^17.0.8
-      ava: ^3.15.0
+      '@types/node': ^17.0.17
+      ava: ^4.0.1
       esm: ^3.2.25
-      prettier: ^2.2.1
+      prettier: ^2.5.1
       rimraf: ^3.0.2
-      rollup: ^2.63.0
+      rollup: ^2.67.2
       tslib: ^2.3.1
-      typescript: ^4.5.4
+      typescript: ^4.5.5
     dependencies:
       tslib: 2.3.1
     devDependencies:
-      '@rollup/plugin-commonjs': 21.0.1_rollup@2.63.0
-      '@rollup/plugin-json': 4.1.0_rollup@2.63.0
-      '@rollup/plugin-node-resolve': 13.1.3_rollup@2.63.0
-      '@types/node': 17.0.8
-      ava: 3.15.0
+      '@rollup/plugin-commonjs': 21.0.1_rollup@2.67.2
+      '@rollup/plugin-json': 4.1.0_rollup@2.67.2
+      '@rollup/plugin-node-resolve': 13.1.3_rollup@2.67.2
+      '@types/node': 17.0.17
+      ava: 4.0.1
       esm: 3.2.25
-      prettier: 2.2.1
+      prettier: 2.5.1
       rimraf: 3.0.2
-      rollup: 2.63.0
-      typescript: 4.5.4
+      rollup: 2.67.2
+      typescript: 4.5.5
 
   packages/pogen:
     specifiers:
-      '@types/node': ^17.0.8
-      typescript: ^4.5.4
+      '@types/node': ^17.0.17
+      typescript: ^4.5.5
     dependencies:
-      '@types/node': 17.0.8
+      '@types/node': 17.0.17
     devDependencies:
-      typescript: 4.5.4
+      typescript: 4.5.5
 
   packages/taler-util:
     specifiers:
@@ -477,7 +479,7 @@ packages:
     resolution: {integrity: 
sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/highlight': 7.16.7
+      '@babel/highlight': 7.16.10
     dev: true
 
   /@babel/compat-data/7.15.0:
@@ -495,6 +497,11 @@ packages:
     engines: {node: '>=6.9.0'}
     dev: true
 
+  /@babel/compat-data/7.17.0:
+    resolution: {integrity: 
sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==}
+    engines: {node: '>=6.9.0'}
+    dev: true
+
   /@babel/core/7.12.9:
     resolution: {integrity: 
sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==}
     engines: {node: '>=6.9.0'}
@@ -523,17 +530,17 @@ packages:
     resolution: {integrity: 
sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/code-frame': 7.14.5
-      '@babel/generator': 7.15.0
-      '@babel/helper-compilation-targets': 7.15.0_@babel+core@7.13.16
-      '@babel/helper-module-transforms': 7.15.0
-      '@babel/helpers': 7.15.3
-      '@babel/parser': 7.15.3
-      '@babel/template': 7.14.5
-      '@babel/traverse': 7.15.0
-      '@babel/types': 7.15.0
+      '@babel/code-frame': 7.16.7
+      '@babel/generator': 7.17.0
+      '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.13.16
+      '@babel/helper-module-transforms': 7.16.7
+      '@babel/helpers': 7.17.2
+      '@babel/parser': 7.17.0
+      '@babel/template': 7.16.7
+      '@babel/traverse': 7.17.0
+      '@babel/types': 7.17.0
       convert-source-map: 1.8.0
-      debug: 4.3.2
+      debug: 4.3.3
       gensync: 1.0.0-beta.2
       json5: 2.2.0
       semver: 6.3.0
@@ -652,6 +659,15 @@ packages:
       source-map: 0.5.7
     dev: true
 
+  /@babel/generator/7.17.0:
+    resolution: {integrity: 
sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/types': 7.17.0
+      jsesc: 2.5.2
+      source-map: 0.5.7
+    dev: true
+
   /@babel/helper-annotate-as-pure/7.14.5:
     resolution: {integrity: 
sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==}
     engines: {node: '>=6.9.0'}
@@ -670,7 +686,7 @@ packages:
     resolution: {integrity: 
sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.16.7
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/helper-builder-binary-assignment-operator-visitor/7.14.5:
@@ -694,20 +710,7 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/helper-explode-assignable-expression': 7.16.7
-      '@babel/types': 7.16.7
-    dev: true
-
-  /@babel/helper-compilation-targets/7.15.0_@babel+core@7.13.16:
-    resolution: {integrity: 
sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0
-    dependencies:
-      '@babel/compat-data': 7.15.0
-      '@babel/core': 7.13.16
-      '@babel/helper-validator-option': 7.14.5
-      browserslist: 4.16.8
-      semver: 6.3.0
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/helper-compilation-targets/7.15.0_@babel+core@7.15.0:
@@ -774,13 +777,14 @@ packages:
       semver: 6.3.0
     dev: true
 
-  /@babel/helper-compilation-targets/7.16.7:
+  /@babel/helper-compilation-targets/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
     dependencies:
-      '@babel/compat-data': 7.16.4
+      '@babel/compat-data': 7.17.0
+      '@babel/core': 7.13.16
       '@babel/helper-validator-option': 7.16.7
       browserslist: 4.19.1
       semver: 6.3.0
@@ -879,12 +883,13 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/helper-create-class-features-plugin/7.16.7:
-    resolution: {integrity: 
sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw==}
+  /@babel/helper-create-class-features-plugin/7.17.1_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-annotate-as-pure': 7.16.7
       '@babel/helper-environment-visitor': 7.16.7
       '@babel/helper-function-name': 7.16.7
@@ -928,25 +933,36 @@ packages:
       regexpu-core: 4.8.0
     dev: true
 
-  /@babel/helper-create-regexp-features-plugin/7.16.7:
+  /@babel/helper-create-regexp-features-plugin/7.16.7_@babel+core@7.16.0:
     resolution: {integrity: 
sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
     dependencies:
+      '@babel/core': 7.16.0
       '@babel/helper-annotate-as-pure': 7.16.7
       regexpu-core: 4.8.0
     dev: true
 
-  /@babel/helper-create-regexp-features-plugin/7.16.7_@babel+core@7.16.0:
-    resolution: {integrity: 
sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g==}
+  /@babel/helper-create-regexp-features-plugin/7.17.0:
+    resolution: {integrity: 
sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
     dependencies:
-      '@babel/core': 7.16.0
       '@babel/helper-annotate-as-pure': 7.16.7
-      regexpu-core: 4.8.0
+      regexpu-core: 5.0.1
+    dev: true
+
+  /@babel/helper-create-regexp-features-plugin/7.17.0_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-annotate-as-pure': 7.16.7
+      regexpu-core: 5.0.1
     dev: true
 
   /@babel/helper-define-polyfill-provider/0.1.5_@babel+core@7.15.0:
@@ -1038,12 +1054,13 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/helper-define-polyfill-provider/0.3.0:
+  /@babel/helper-define-polyfill-provider/0.3.0_@babel+core@7.16.0:
     resolution: {integrity: 
sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==}
     peerDependencies:
       '@babel/core': ^7.4.0-0
     dependencies:
-      '@babel/helper-compilation-targets': 7.16.7
+      '@babel/core': 7.16.0
+      '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.16.0
       '@babel/helper-module-imports': 7.16.7
       '@babel/helper-plugin-utils': 7.16.7
       '@babel/traverse': 7.16.7
@@ -1055,19 +1072,19 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/helper-define-polyfill-provider/0.3.0_@babel+core@7.16.0:
-    resolution: {integrity: 
sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==}
+  /@babel/helper-define-polyfill-provider/0.3.1_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==}
     peerDependencies:
       '@babel/core': ^7.4.0-0
     dependencies:
-      '@babel/core': 7.16.0
-      '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.16.0
+      '@babel/core': 7.13.16
+      '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.13.16
       '@babel/helper-module-imports': 7.16.7
       '@babel/helper-plugin-utils': 7.16.7
-      '@babel/traverse': 7.16.7
+      '@babel/traverse': 7.17.0
       debug: 4.3.3
       lodash.debounce: 4.0.8
-      resolve: 1.21.0
+      resolve: 1.22.0
       semver: 6.3.0
     transitivePeerDependencies:
       - supports-color
@@ -1077,7 +1094,7 @@ packages:
     resolution: {integrity: 
sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.16.7
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/helper-explode-assignable-expression/7.14.5:
@@ -1098,7 +1115,7 @@ packages:
     resolution: {integrity: 
sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.16.7
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/helper-function-name/7.14.5:
@@ -1125,7 +1142,7 @@ packages:
     dependencies:
       '@babel/helper-get-function-arity': 7.16.7
       '@babel/template': 7.16.7
-      '@babel/types': 7.16.7
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/helper-get-function-arity/7.14.5:
@@ -1146,7 +1163,7 @@ packages:
     resolution: {integrity: 
sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.16.7
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/helper-hoist-variables/7.14.5:
@@ -1167,7 +1184,7 @@ packages:
     resolution: {integrity: 
sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.16.7
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/helper-member-expression-to-functions/7.15.0:
@@ -1188,7 +1205,7 @@ packages:
     resolution: {integrity: 
sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.16.7
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/helper-module-imports/7.14.5:
@@ -1209,7 +1226,7 @@ packages:
     resolution: {integrity: 
sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.16.7
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/helper-module-transforms/7.15.0:
@@ -1254,8 +1271,8 @@ packages:
       '@babel/helper-split-export-declaration': 7.16.7
       '@babel/helper-validator-identifier': 7.16.7
       '@babel/template': 7.16.7
-      '@babel/traverse': 7.16.7
-      '@babel/types': 7.16.7
+      '@babel/traverse': 7.17.0
+      '@babel/types': 7.17.0
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -1278,7 +1295,7 @@ packages:
     resolution: {integrity: 
sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.16.7
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/helper-plugin-utils/7.10.4:
@@ -1328,13 +1345,13 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/helper-remap-async-to-generator/7.16.7:
-    resolution: {integrity: 
sha512-C3o117GnP/j/N2OWo+oepeWbFEKRfNaay+F1Eo5Mj3A1SRjyx+qaFhm23nlipub7Cjv2azdUUiDH+VlpdwUFRg==}
+  /@babel/helper-remap-async-to-generator/7.16.8:
+    resolution: {integrity: 
sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==}
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/helper-annotate-as-pure': 7.16.7
-      '@babel/helper-wrap-function': 7.16.7
-      '@babel/types': 7.16.7
+      '@babel/helper-wrap-function': 7.16.8
+      '@babel/types': 7.17.0
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -1370,8 +1387,8 @@ packages:
       '@babel/helper-environment-visitor': 7.16.7
       '@babel/helper-member-expression-to-functions': 7.16.7
       '@babel/helper-optimise-call-expression': 7.16.7
-      '@babel/traverse': 7.16.7
-      '@babel/types': 7.16.7
+      '@babel/traverse': 7.17.0
+      '@babel/types': 7.17.0
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -1394,7 +1411,7 @@ packages:
     resolution: {integrity: 
sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.16.7
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/helper-skip-transparent-expression-wrappers/7.14.5:
@@ -1408,7 +1425,7 @@ packages:
     resolution: {integrity: 
sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.16.7
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/helper-split-export-declaration/7.14.5:
@@ -1429,7 +1446,7 @@ packages:
     resolution: {integrity: 
sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==}
     engines: {node: '>=6.9.0'}
     dependencies:
-      '@babel/types': 7.16.7
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/helper-validator-identifier/7.14.0:
@@ -1485,14 +1502,14 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/helper-wrap-function/7.16.7:
-    resolution: {integrity: 
sha512-7a9sABeVwcunnztZZ7WTgSw6jVYLzM1wua0Z4HIXm9S3/HC96WKQTkFgGEaj5W06SHHihPJ6Le6HzS5cGOQMNw==}
+  /@babel/helper-wrap-function/7.16.8:
+    resolution: {integrity: 
sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==}
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/helper-function-name': 7.16.7
       '@babel/template': 7.16.7
-      '@babel/traverse': 7.16.7
-      '@babel/types': 7.16.7
+      '@babel/traverse': 7.17.0
+      '@babel/types': 7.17.0
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -1524,8 +1541,19 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/template': 7.16.7
-      '@babel/traverse': 7.16.7
-      '@babel/types': 7.16.7
+      '@babel/traverse': 7.17.0
+      '@babel/types': 7.17.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
+  /@babel/helpers/7.17.2:
+    resolution: {integrity: 
sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/template': 7.16.7
+      '@babel/traverse': 7.17.0
+      '@babel/types': 7.17.0
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -1556,8 +1584,8 @@ packages:
       js-tokens: 4.0.0
     dev: true
 
-  /@babel/highlight/7.16.7:
-    resolution: {integrity: 
sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==}
+  /@babel/highlight/7.16.10:
+    resolution: {integrity: 
sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==}
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/helper-validator-identifier': 7.16.7
@@ -1589,6 +1617,12 @@ packages:
     hasBin: true
     dev: true
 
+  /@babel/parser/7.17.0:
+    resolution: {integrity: 
sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==}
+    engines: {node: '>=6.0.0'}
+    hasBin: true
+    dev: true
+
   
/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.2:
     resolution: {integrity: 
sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==}
     engines: {node: '>=6.9.0'}
@@ -1608,12 +1642,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  
/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.7:
+  
/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -1652,15 +1687,16 @@ packages:
       '@babel/plugin-proposal-optional-chaining': 7.16.0_@babel+core@7.16.0
     dev: true
 
-  /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.16.7:
+  
/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.13.0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
       '@babel/helper-skip-transparent-expression-wrappers': 7.16.0
-      '@babel/plugin-proposal-optional-chaining': 7.16.7
+      '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.13.16
     dev: true
 
   /@babel/plugin-proposal-async-generator-functions/7.14.9_@babel+core@7.15.0:
@@ -1718,15 +1754,16 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-proposal-async-generator-functions/7.16.7:
-    resolution: {integrity: 
sha512-TTXBT3A5c11eqRzaC6beO6rlFT3Mo9C2e8eB44tTr52ESXSK2CIc2fOp1ynpAwQA8HhBMho+WXhMHWlAe3xkpw==}
+  /@babel/plugin-proposal-async-generator-functions/7.16.8_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
-      '@babel/helper-remap-async-to-generator': 7.16.7
-      '@babel/plugin-syntax-async-generators': 7.8.4
+      '@babel/helper-remap-async-to-generator': 7.16.8
+      '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.13.16
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -1769,13 +1806,14 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-proposal-class-properties/7.16.7:
+  /@babel/plugin-proposal-class-properties/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/helper-create-class-features-plugin': 7.16.7
+      '@babel/core': 7.13.16
+      '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     transitivePeerDependencies:
       - supports-color
@@ -1822,15 +1860,16 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-proposal-class-static-block/7.16.7:
+  /@babel/plugin-proposal-class-static-block/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.12.0
     dependencies:
-      '@babel/helper-create-class-features-plugin': 7.16.7
+      '@babel/core': 7.13.16
+      '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.13.16
       '@babel/helper-plugin-utils': 7.16.7
-      '@babel/plugin-syntax-class-static-block': 7.14.5
+      '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.13.16
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -1895,14 +1934,15 @@ packages:
       '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.16.0
     dev: true
 
-  /@babel/plugin-proposal-dynamic-import/7.16.7:
+  /@babel/plugin-proposal-dynamic-import/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
-      '@babel/plugin-syntax-dynamic-import': 7.8.3
+      '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.13.16
     dev: true
 
   /@babel/plugin-proposal-export-default-from/7.14.5_@babel+core@7.15.0:
@@ -1959,14 +1999,15 @@ packages:
       '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.16.0
     dev: true
 
-  /@babel/plugin-proposal-export-namespace-from/7.16.7:
+  /@babel/plugin-proposal-export-namespace-from/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
-      '@babel/plugin-syntax-export-namespace-from': 7.8.3
+      '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.13.16
     dev: true
 
   /@babel/plugin-proposal-json-strings/7.14.5_@babel+core@7.15.0:
@@ -2001,14 +2042,15 @@ packages:
       '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.16.0
     dev: true
 
-  /@babel/plugin-proposal-json-strings/7.16.7:
+  /@babel/plugin-proposal-json-strings/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
-      '@babel/plugin-syntax-json-strings': 7.8.3
+      '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.13.16
     dev: true
 
   
/@babel/plugin-proposal-logical-assignment-operators/7.14.5_@babel+core@7.15.0:
@@ -2043,14 +2085,15 @@ packages:
       '@babel/plugin-syntax-logical-assignment-operators': 
7.10.4_@babel+core@7.16.0
     dev: true
 
-  /@babel/plugin-proposal-logical-assignment-operators/7.16.7:
+  
/@babel/plugin-proposal-logical-assignment-operators/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
-      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4
+      '@babel/plugin-syntax-logical-assignment-operators': 
7.10.4_@babel+core@7.13.16
     dev: true
 
   
/@babel/plugin-proposal-nullish-coalescing-operator/7.14.5_@babel+core@7.15.0:
@@ -2085,14 +2128,15 @@ packages:
       '@babel/plugin-syntax-nullish-coalescing-operator': 
7.8.3_@babel+core@7.16.0
     dev: true
 
-  /@babel/plugin-proposal-nullish-coalescing-operator/7.16.7:
+  
/@babel/plugin-proposal-nullish-coalescing-operator/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
-      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3
+      '@babel/plugin-syntax-nullish-coalescing-operator': 
7.8.3_@babel+core@7.13.16
     dev: true
 
   /@babel/plugin-proposal-numeric-separator/7.14.5_@babel+core@7.15.0:
@@ -2127,14 +2171,15 @@ packages:
       '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.16.0
     dev: true
 
-  /@babel/plugin-proposal-numeric-separator/7.16.7:
+  /@babel/plugin-proposal-numeric-separator/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
-      '@babel/plugin-syntax-numeric-separator': 7.10.4
+      '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.13.16
     dev: true
 
   /@babel/plugin-proposal-object-rest-spread/7.12.1_@babel+core@7.12.9:
@@ -2189,17 +2234,18 @@ packages:
       '@babel/plugin-transform-parameters': 7.16.0_@babel+core@7.16.0
     dev: true
 
-  /@babel/plugin-proposal-object-rest-spread/7.16.7:
+  /@babel/plugin-proposal-object-rest-spread/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/compat-data': 7.16.4
-      '@babel/helper-compilation-targets': 7.16.7
+      '@babel/compat-data': 7.17.0
+      '@babel/core': 7.13.16
+      '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.13.16
       '@babel/helper-plugin-utils': 7.16.7
-      '@babel/plugin-syntax-object-rest-spread': 7.8.3
-      '@babel/plugin-transform-parameters': 7.16.7
+      '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.13.16
+      '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.13.16
     dev: true
 
   /@babel/plugin-proposal-optional-catch-binding/7.14.5_@babel+core@7.15.0:
@@ -2234,14 +2280,15 @@ packages:
       '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.16.0
     dev: true
 
-  /@babel/plugin-proposal-optional-catch-binding/7.16.7:
+  /@babel/plugin-proposal-optional-catch-binding/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
-      '@babel/plugin-syntax-optional-catch-binding': 7.8.3
+      '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.13.16
     dev: true
 
   /@babel/plugin-proposal-optional-chaining/7.14.5_@babel+core@7.15.0:
@@ -2279,15 +2326,16 @@ packages:
       '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.16.0
     dev: true
 
-  /@babel/plugin-proposal-optional-chaining/7.16.7:
+  /@babel/plugin-proposal-optional-chaining/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
       '@babel/helper-skip-transparent-expression-wrappers': 7.16.0
-      '@babel/plugin-syntax-optional-chaining': 7.8.3
+      '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.13.16
     dev: true
 
   /@babel/plugin-proposal-private-methods/7.14.5_@babel+core@7.15.0:
@@ -2328,13 +2376,14 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-proposal-private-methods/7.16.7:
-    resolution: {integrity: 
sha512-7twV3pzhrRxSwHeIvFE6coPgvo+exNDOiGUMg39o2LiLo1Y+4aKpfkcLGcg1UHonzorCt7SNXnoMyCnnIOA8Sw==}
+  /@babel/plugin-proposal-private-methods/7.16.11_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/helper-create-class-features-plugin': 7.16.7
+      '@babel/core': 7.13.16
+      '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     transitivePeerDependencies:
       - supports-color
@@ -2384,16 +2433,17 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-proposal-private-property-in-object/7.16.7:
+  
/@babel/plugin-proposal-private-property-in-object/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-annotate-as-pure': 7.16.7
-      '@babel/helper-create-class-features-plugin': 7.16.7
+      '@babel/helper-create-class-features-plugin': 7.17.1_@babel+core@7.13.16
       '@babel/helper-plugin-utils': 7.16.7
-      '@babel/plugin-syntax-private-property-in-object': 7.14.5
+      '@babel/plugin-syntax-private-property-in-object': 
7.14.5_@babel+core@7.13.16
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -2436,7 +2486,18 @@ packages:
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/helper-create-regexp-features-plugin': 7.16.7
+      '@babel/helper-create-regexp-features-plugin': 7.17.0
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
+  /@babel/plugin-proposal-unicode-property-regex/7.16.7_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==}
+    engines: {node: '>=4'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -2459,6 +2520,15 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
+  /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
   /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
     peerDependencies:
@@ -2485,6 +2555,15 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
+  /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
   /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
     peerDependencies:
@@ -2512,6 +2591,16 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
+  /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
   /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
     engines: {node: '>=6.9.0'}
@@ -2615,6 +2704,15 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
+  /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
   /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
     peerDependencies:
@@ -2641,6 +2739,15 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
+  /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
   /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
     peerDependencies:
@@ -2715,6 +2822,15 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
+  
/@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
   /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
     peerDependencies:
@@ -2741,6 +2857,15 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
+  /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
   /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
     peerDependencies:
@@ -2767,6 +2892,15 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
+  /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
   /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
     peerDependencies:
@@ -2802,6 +2936,15 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
+  /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
   /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
     peerDependencies:
@@ -2828,6 +2971,15 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
+  /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
   /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
     peerDependencies:
@@ -2854,6 +3006,15 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
+  /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
   /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
     peerDependencies:
@@ -2881,6 +3042,16 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
+  /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
   /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
     engines: {node: '>=6.9.0'}
@@ -2910,6 +3081,16 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
+  /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+    dev: true
+
   /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
     engines: {node: '>=6.9.0'}
@@ -2989,12 +3170,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-arrow-functions/7.16.7:
+  /@babel/plugin-transform-arrow-functions/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -3039,15 +3221,16 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-transform-async-to-generator/7.16.7:
-    resolution: {integrity: 
sha512-pFEfjnK4DfXCfAlA5I98BYdDJD8NltMzx19gt6DAmfE+2lXRfPUoa0/5SUjT4+TDE1W/rcxU/1lgN55vpAjjdg==}
+  /@babel/plugin-transform-async-to-generator/7.16.8_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-module-imports': 7.16.7
       '@babel/helper-plugin-utils': 7.16.7
-      '@babel/helper-remap-async-to-generator': 7.16.7
+      '@babel/helper-remap-async-to-generator': 7.16.8
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -3081,12 +3264,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-block-scoped-functions/7.16.7:
+  /@babel/plugin-transform-block-scoped-functions/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -3119,12 +3303,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-block-scoping/7.16.7:
+  /@babel/plugin-transform-block-scoping/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -3181,12 +3366,13 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-transform-classes/7.16.7:
+  /@babel/plugin-transform-classes/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-annotate-as-pure': 7.16.7
       '@babel/helper-environment-visitor': 7.16.7
       '@babel/helper-function-name': 7.16.7
@@ -3228,12 +3414,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-computed-properties/7.16.7:
+  /@babel/plugin-transform-computed-properties/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -3266,12 +3453,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-destructuring/7.16.7:
+  /@babel/plugin-transform-destructuring/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -3302,18 +3490,29 @@ packages:
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.16.0
-      '@babel/helper-create-regexp-features-plugin': 7.16.0_@babel+core@7.16.0
-      '@babel/helper-plugin-utils': 7.14.5
+      '@babel/core': 7.16.0
+      '@babel/helper-create-regexp-features-plugin': 7.16.0_@babel+core@7.16.0
+      '@babel/helper-plugin-utils': 7.14.5
+    dev: true
+
+  /@babel/plugin-transform-dotall-regex/7.16.7:
+    resolution: {integrity: 
sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/helper-create-regexp-features-plugin': 7.17.0
+      '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
-  /@babel/plugin-transform-dotall-regex/7.16.7:
+  /@babel/plugin-transform-dotall-regex/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/helper-create-regexp-features-plugin': 7.16.7
+      '@babel/core': 7.13.16
+      '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -3357,12 +3556,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-duplicate-keys/7.16.7:
+  /@babel/plugin-transform-duplicate-keys/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -3398,12 +3598,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-exponentiation-operator/7.16.7:
+  /@babel/plugin-transform-exponentiation-operator/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-builder-binary-assignment-operator-visitor': 7.16.7
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
@@ -3437,12 +3638,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-for-of/7.16.7:
+  /@babel/plugin-transform-for-of/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -3478,13 +3680,14 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-function-name/7.16.7:
+  /@babel/plugin-transform-function-name/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/helper-compilation-targets': 7.16.7
+      '@babel/core': 7.13.16
+      '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.13.16
       '@babel/helper-function-name': 7.16.7
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
@@ -3518,12 +3721,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-literals/7.16.7:
+  /@babel/plugin-transform-literals/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -3556,12 +3760,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-member-expression-literals/7.16.7:
+  
/@babel/plugin-transform-member-expression-literals/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -3606,12 +3811,13 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-transform-modules-amd/7.16.7:
+  /@babel/plugin-transform-modules-amd/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-module-transforms': 7.16.7
       '@babel/helper-plugin-utils': 7.16.7
       babel-plugin-dynamic-import-node: 2.3.3
@@ -3663,12 +3869,13 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-transform-modules-commonjs/7.16.7:
-    resolution: {integrity: 
sha512-h2RP2kE7He1ZWKyAlanMZrAbdv+Acw1pA8dQZhE025WJZE2z0xzFADAinXA9fxd5bn7JnM+SdOGcndGx1ARs9w==}
+  /@babel/plugin-transform-modules-commonjs/7.16.8_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-module-transforms': 7.16.7
       '@babel/helper-plugin-utils': 7.16.7
       '@babel/helper-simple-access': 7.16.7
@@ -3724,12 +3931,13 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-transform-modules-systemjs/7.16.7:
+  /@babel/plugin-transform-modules-systemjs/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-hoist-variables': 7.16.7
       '@babel/helper-module-transforms': 7.16.7
       '@babel/helper-plugin-utils': 7.16.7
@@ -3777,12 +3985,13 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-transform-modules-umd/7.16.7:
+  /@babel/plugin-transform-modules-umd/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-module-transforms': 7.16.7
       '@babel/helper-plugin-utils': 7.16.7
     transitivePeerDependencies:
@@ -3818,13 +4027,14 @@ packages:
       '@babel/helper-create-regexp-features-plugin': 7.16.0_@babel+core@7.16.0
     dev: true
 
-  /@babel/plugin-transform-named-capturing-groups-regex/7.16.7:
-    resolution: {integrity: 
sha512-kFy35VwmwIQwCjwrAQhl3+c/kr292i4KdLPKp5lPH03Ltc51qnFlIADoyPxc/6Naz3ok3WdYKg+KK6AH+D4utg==}
+  
/@babel/plugin-transform-named-capturing-groups-regex/7.16.8_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
     dependencies:
-      '@babel/helper-create-regexp-features-plugin': 7.16.7
+      '@babel/core': 7.13.16
+      '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.13.16
     dev: true
 
   /@babel/plugin-transform-new-target/7.14.5_@babel+core@7.15.0:
@@ -3856,12 +4066,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-new-target/7.16.7:
+  /@babel/plugin-transform-new-target/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -3923,12 +4134,13 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/plugin-transform-object-super/7.16.7:
+  /@babel/plugin-transform-object-super/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
       '@babel/helper-replace-supers': 7.16.7
     transitivePeerDependencies:
@@ -3984,12 +4196,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-parameters/7.16.7:
+  /@babel/plugin-transform-parameters/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -4022,12 +4235,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-property-literals/7.16.7:
+  /@babel/plugin-transform-property-literals/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -4187,12 +4401,13 @@ packages:
       regenerator-transform: 0.14.5
     dev: true
 
-  /@babel/plugin-transform-regenerator/7.16.7:
+  /@babel/plugin-transform-regenerator/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       regenerator-transform: 0.14.5
     dev: true
 
@@ -4225,26 +4440,28 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-reserved-words/7.16.7:
+  /@babel/plugin-transform-reserved-words/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
-  /@babel/plugin-transform-runtime/7.16.7:
-    resolution: {integrity: 
sha512-2FoHiSAWkdq4L06uaDN3rS43i6x28desUVxq+zAFuE6kbWYQeiLPJI5IC7Sg9xKYVcrBKSQkVUfH6aeQYbl9QA==}
+  /@babel/plugin-transform-runtime/7.17.0_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-module-imports': 7.16.7
       '@babel/helper-plugin-utils': 7.16.7
-      babel-plugin-polyfill-corejs2: 0.3.0
-      babel-plugin-polyfill-corejs3: 0.4.0
-      babel-plugin-polyfill-regenerator: 0.3.0
+      babel-plugin-polyfill-corejs2: 0.3.1_@babel+core@7.13.16
+      babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.13.16
+      babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.13.16
       semver: 6.3.0
     transitivePeerDependencies:
       - supports-color
@@ -4279,12 +4496,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-shorthand-properties/7.16.7:
+  /@babel/plugin-transform-shorthand-properties/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -4320,12 +4538,13 @@ packages:
       '@babel/helper-skip-transparent-expression-wrappers': 7.16.0
     dev: true
 
-  /@babel/plugin-transform-spread/7.16.7:
+  /@babel/plugin-transform-spread/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
       '@babel/helper-skip-transparent-expression-wrappers': 7.16.0
     dev: true
@@ -4359,12 +4578,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-sticky-regex/7.16.7:
+  /@babel/plugin-transform-sticky-regex/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -4397,12 +4617,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-template-literals/7.16.7:
+  /@babel/plugin-transform-template-literals/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -4435,12 +4656,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-typeof-symbol/7.16.7:
+  /@babel/plugin-transform-typeof-symbol/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -4515,12 +4737,13 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-unicode-escapes/7.16.7:
+  /@babel/plugin-transform-unicode-escapes/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
+      '@babel/core': 7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -4556,13 +4779,14 @@ packages:
       '@babel/helper-plugin-utils': 7.14.5
     dev: true
 
-  /@babel/plugin-transform-unicode-regex/7.16.7:
+  /@babel/plugin-transform-unicode-regex/7.16.7_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/helper-create-regexp-features-plugin': 7.16.7
+      '@babel/core': 7.13.16
+      '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.13.16
       '@babel/helper-plugin-utils': 7.16.7
     dev: true
 
@@ -4819,6 +5043,91 @@ packages:
       - supports-color
     dev: true
 
+  /@babel/preset-env/7.16.11_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/compat-data': 7.17.0
+      '@babel/core': 7.13.16
+      '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+      '@babel/helper-validator-option': 7.16.7
+      
'@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression':
 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 
7.16.7_@babel+core@7.13.16
+      '@babel/plugin-proposal-async-generator-functions': 
7.16.8_@babel+core@7.13.16
+      '@babel/plugin-proposal-class-properties': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-proposal-class-static-block': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-proposal-dynamic-import': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-proposal-export-namespace-from': 
7.16.7_@babel+core@7.13.16
+      '@babel/plugin-proposal-json-strings': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-proposal-logical-assignment-operators': 
7.16.7_@babel+core@7.13.16
+      '@babel/plugin-proposal-nullish-coalescing-operator': 
7.16.7_@babel+core@7.13.16
+      '@babel/plugin-proposal-numeric-separator': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-proposal-object-rest-spread': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-proposal-optional-catch-binding': 
7.16.7_@babel+core@7.13.16
+      '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-proposal-private-methods': 7.16.11_@babel+core@7.13.16
+      '@babel/plugin-proposal-private-property-in-object': 
7.16.7_@babel+core@7.13.16
+      '@babel/plugin-proposal-unicode-property-regex': 
7.16.7_@babel+core@7.13.16
+      '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.13.16
+      '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.13.16
+      '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.13.16
+      '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.13.16
+      '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.13.16
+      '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.13.16
+      '@babel/plugin-syntax-logical-assignment-operators': 
7.10.4_@babel+core@7.13.16
+      '@babel/plugin-syntax-nullish-coalescing-operator': 
7.8.3_@babel+core@7.13.16
+      '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.13.16
+      '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.13.16
+      '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.13.16
+      '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.13.16
+      '@babel/plugin-syntax-private-property-in-object': 
7.14.5_@babel+core@7.13.16
+      '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.13.16
+      '@babel/plugin-transform-arrow-functions': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-async-to-generator': 7.16.8_@babel+core@7.13.16
+      '@babel/plugin-transform-block-scoped-functions': 
7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-block-scoping': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-classes': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-computed-properties': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-destructuring': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-duplicate-keys': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-exponentiation-operator': 
7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-for-of': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-function-name': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-literals': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-member-expression-literals': 
7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-modules-amd': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-modules-commonjs': 7.16.8_@babel+core@7.13.16
+      '@babel/plugin-transform-modules-systemjs': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-modules-umd': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-named-capturing-groups-regex': 
7.16.8_@babel+core@7.13.16
+      '@babel/plugin-transform-new-target': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-object-super': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-property-literals': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-regenerator': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-reserved-words': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-shorthand-properties': 
7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-spread': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-sticky-regex': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-template-literals': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-typeof-symbol': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-unicode-escapes': 7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-unicode-regex': 7.16.7_@babel+core@7.13.16
+      '@babel/preset-modules': 0.1.5_@babel+core@7.13.16
+      '@babel/types': 7.17.0
+      babel-plugin-polyfill-corejs2: 0.3.1_@babel+core@7.13.16
+      babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.13.16
+      babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.13.16
+      core-js-compat: 3.21.0
+      semver: 6.3.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/preset-env/7.16.4_@babel+core@7.16.0:
     resolution: {integrity: 
sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==}
     engines: {node: '>=6.9.0'}
@@ -4904,90 +5213,6 @@ packages:
       - supports-color
     dev: true
 
-  /@babel/preset-env/7.16.7:
-    resolution: {integrity: 
sha512-urX3Cee4aOZbRWOSa3mKPk0aqDikfILuo+C7qq7HY0InylGNZ1fekq9jmlr3pLWwZHF4yD7heQooc2Pow2KMyQ==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/compat-data': 7.16.4
-      '@babel/helper-compilation-targets': 7.16.7
-      '@babel/helper-plugin-utils': 7.16.7
-      '@babel/helper-validator-option': 7.16.7
-      
'@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression':
 7.16.7
-      '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.16.7
-      '@babel/plugin-proposal-async-generator-functions': 7.16.7
-      '@babel/plugin-proposal-class-properties': 7.16.7
-      '@babel/plugin-proposal-class-static-block': 7.16.7
-      '@babel/plugin-proposal-dynamic-import': 7.16.7
-      '@babel/plugin-proposal-export-namespace-from': 7.16.7
-      '@babel/plugin-proposal-json-strings': 7.16.7
-      '@babel/plugin-proposal-logical-assignment-operators': 7.16.7
-      '@babel/plugin-proposal-nullish-coalescing-operator': 7.16.7
-      '@babel/plugin-proposal-numeric-separator': 7.16.7
-      '@babel/plugin-proposal-object-rest-spread': 7.16.7
-      '@babel/plugin-proposal-optional-catch-binding': 7.16.7
-      '@babel/plugin-proposal-optional-chaining': 7.16.7
-      '@babel/plugin-proposal-private-methods': 7.16.7
-      '@babel/plugin-proposal-private-property-in-object': 7.16.7
-      '@babel/plugin-proposal-unicode-property-regex': 7.16.7
-      '@babel/plugin-syntax-async-generators': 7.8.4
-      '@babel/plugin-syntax-class-properties': 7.12.13
-      '@babel/plugin-syntax-class-static-block': 7.14.5
-      '@babel/plugin-syntax-dynamic-import': 7.8.3
-      '@babel/plugin-syntax-export-namespace-from': 7.8.3
-      '@babel/plugin-syntax-json-strings': 7.8.3
-      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4
-      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3
-      '@babel/plugin-syntax-numeric-separator': 7.10.4
-      '@babel/plugin-syntax-object-rest-spread': 7.8.3
-      '@babel/plugin-syntax-optional-catch-binding': 7.8.3
-      '@babel/plugin-syntax-optional-chaining': 7.8.3
-      '@babel/plugin-syntax-private-property-in-object': 7.14.5
-      '@babel/plugin-syntax-top-level-await': 7.14.5
-      '@babel/plugin-transform-arrow-functions': 7.16.7
-      '@babel/plugin-transform-async-to-generator': 7.16.7
-      '@babel/plugin-transform-block-scoped-functions': 7.16.7
-      '@babel/plugin-transform-block-scoping': 7.16.7
-      '@babel/plugin-transform-classes': 7.16.7
-      '@babel/plugin-transform-computed-properties': 7.16.7
-      '@babel/plugin-transform-destructuring': 7.16.7
-      '@babel/plugin-transform-dotall-regex': 7.16.7
-      '@babel/plugin-transform-duplicate-keys': 7.16.7
-      '@babel/plugin-transform-exponentiation-operator': 7.16.7
-      '@babel/plugin-transform-for-of': 7.16.7
-      '@babel/plugin-transform-function-name': 7.16.7
-      '@babel/plugin-transform-literals': 7.16.7
-      '@babel/plugin-transform-member-expression-literals': 7.16.7
-      '@babel/plugin-transform-modules-amd': 7.16.7
-      '@babel/plugin-transform-modules-commonjs': 7.16.7
-      '@babel/plugin-transform-modules-systemjs': 7.16.7
-      '@babel/plugin-transform-modules-umd': 7.16.7
-      '@babel/plugin-transform-named-capturing-groups-regex': 7.16.7
-      '@babel/plugin-transform-new-target': 7.16.7
-      '@babel/plugin-transform-object-super': 7.16.7
-      '@babel/plugin-transform-parameters': 7.16.7
-      '@babel/plugin-transform-property-literals': 7.16.7
-      '@babel/plugin-transform-regenerator': 7.16.7
-      '@babel/plugin-transform-reserved-words': 7.16.7
-      '@babel/plugin-transform-shorthand-properties': 7.16.7
-      '@babel/plugin-transform-spread': 7.16.7
-      '@babel/plugin-transform-sticky-regex': 7.16.7
-      '@babel/plugin-transform-template-literals': 7.16.7
-      '@babel/plugin-transform-typeof-symbol': 7.16.7
-      '@babel/plugin-transform-unicode-escapes': 7.16.7
-      '@babel/plugin-transform-unicode-regex': 7.16.7
-      '@babel/preset-modules': 0.1.5
-      '@babel/types': 7.16.7
-      babel-plugin-polyfill-corejs2: 0.3.0
-      babel-plugin-polyfill-corejs3: 0.4.0
-      babel-plugin-polyfill-regenerator: 0.3.0
-      core-js-compat: 3.20.2
-      semver: 6.3.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
   /@babel/preset-modules/0.1.4_@babel+core@7.15.0:
     resolution: {integrity: 
sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==}
     peerDependencies:
@@ -5009,7 +5234,20 @@ packages:
       '@babel/helper-plugin-utils': 7.16.7
       '@babel/plugin-proposal-unicode-property-regex': 7.16.7
       '@babel/plugin-transform-dotall-regex': 7.16.7
-      '@babel/types': 7.16.7
+      '@babel/types': 7.17.0
+      esutils: 2.0.3
+    dev: true
+
+  /@babel/preset-modules/0.1.5_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.13.16
+      '@babel/helper-plugin-utils': 7.16.7
+      '@babel/plugin-proposal-unicode-property-regex': 
7.16.7_@babel+core@7.13.16
+      '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.13.16
+      '@babel/types': 7.17.0
       esutils: 2.0.3
     dev: true
 
@@ -5161,6 +5399,13 @@ packages:
       regenerator-runtime: 0.13.9
     dev: true
 
+  /@babel/runtime/7.17.2:
+    resolution: {integrity: 
sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      regenerator-runtime: 0.13.9
+    dev: true
+
   /@babel/template/7.14.5:
     resolution: {integrity: 
sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==}
     engines: {node: '>=6.9.0'}
@@ -5184,8 +5429,8 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/code-frame': 7.16.7
-      '@babel/parser': 7.16.7
-      '@babel/types': 7.16.7
+      '@babel/parser': 7.17.0
+      '@babel/types': 7.17.0
     dev: true
 
   /@babel/traverse/7.15.0:
@@ -5257,6 +5502,24 @@ packages:
       - supports-color
     dev: true
 
+  /@babel/traverse/7.17.0:
+    resolution: {integrity: 
sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/code-frame': 7.16.7
+      '@babel/generator': 7.17.0
+      '@babel/helper-environment-visitor': 7.16.7
+      '@babel/helper-function-name': 7.16.7
+      '@babel/helper-hoist-variables': 7.16.7
+      '@babel/helper-split-export-declaration': 7.16.7
+      '@babel/parser': 7.17.0
+      '@babel/types': 7.17.0
+      debug: 4.3.3
+      globals: 11.12.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/types/7.15.0:
     resolution: {integrity: 
sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==}
     engines: {node: '>=6.9.0'}
@@ -5281,6 +5544,14 @@ packages:
       to-fast-properties: 2.0.0
     dev: true
 
+  /@babel/types/7.17.0:
+    resolution: {integrity: 
sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/helper-validator-identifier': 7.16.7
+      to-fast-properties: 2.0.0
+    dev: true
+
   /@base2/pretty-print-object/1.0.0:
     resolution: {integrity: 
sha512-4Th98KlMHr5+JkxfcoDT//6vY8vM+iSPrLNpHhRyLx2CFYi8e2RfqPLdpbnpo0Q5lQC5hNB79yes07zb02fvCw==}
     dev: true
@@ -5570,13 +5841,14 @@ packages:
       chalk: 4.1.2
     dev: true
 
-  /@linaria/babel-preset/3.0.0-beta.15:
+  /@linaria/babel-preset/3.0.0-beta.15_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-oJIyUn2SCIH4vW1vBxOsN2BTU6Y0mq4ywkqxwQ1py4HgtEnYlvpq4Ca0ba7vXvMWk1pMCgd/V+VpMjbr19uXgQ==}
     peerDependencies:
       '@babel/core': '>=7'
     dependencies:
-      '@babel/generator': 7.16.7
-      '@babel/plugin-syntax-dynamic-import': 7.8.3
+      '@babel/core': 7.13.16
+      '@babel/generator': 7.17.0
+      '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.13.16
       '@babel/template': 7.16.7
       '@linaria/core': 3.0.0-beta.15
       '@linaria/logger': 3.0.0-beta.15
@@ -5634,12 +5906,13 @@ packages:
     resolution: {integrity: 
sha512-NzxeMDxRt57nR6tLFZ8xIstp5ld9JQPIyp9+TKtQZhoX3oJuUru+S4vXPr1Gach6VaqKKKT5T6fmJgJl9MMprw==}
     dev: true
 
-  /@linaria/esbuild/3.0.0-beta.15:
+  /@linaria/esbuild/3.0.0-beta.15_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-fhTLGMRBN2wCmApCzhC/hv+qGcJkmB/yaZCM3Ijj4mR6VgYbZG71HEUBrOMM70/mHzSzDR1C5wb7NRtG0K1Z3g==}
     peerDependencies:
       '@babel/core': '>=7'
     dependencies:
-      '@linaria/babel-preset': 3.0.0-beta.15
+      '@babel/core': 7.13.16
+      '@linaria/babel-preset': 3.0.0-beta.15_@babel+core@7.13.16
       esbuild: 0.12.29
     transitivePeerDependencies:
       - supports-color
@@ -5662,12 +5935,13 @@ packages:
       - supports-color
     dev: true
 
-  /@linaria/preeval/3.0.0-beta.15:
+  /@linaria/preeval/3.0.0-beta.15_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-621wPHry4L4YFRdMXE0wxVKsocFL2KC+RECSdc6Oy4MVtMMeTyps671pV27+kQldWIRvp1ZsdhknNMEug+rKdg==}
     peerDependencies:
       '@babel/core': '>=7'
     dependencies:
-      '@linaria/babel-preset': 3.0.0-beta.15
+      '@babel/core': 7.13.16
+      '@linaria/babel-preset': 3.0.0-beta.15_@babel+core@7.13.16
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -5693,18 +5967,19 @@ packages:
       - supports-color
     dev: true
 
-  /@linaria/shaker/3.0.0-beta.15:
+  /@linaria/shaker/3.0.0-beta.15_@babel+core@7.13.16:
     resolution: {integrity: 
sha512-+PZRf8hM7fO4RiNpVVYUhIXQPPKYxowXYMaiILq/9zGcy2tQ6onqsKaQ71SCXvVrL+gVo6A/R13njOCJRZRTew==}
     peerDependencies:
       '@babel/core': '>=7'
     dependencies:
-      '@babel/generator': 7.16.7
-      '@babel/plugin-transform-runtime': 7.16.7
-      '@babel/plugin-transform-template-literals': 7.16.7
-      '@babel/preset-env': 7.16.7
-      '@linaria/babel-preset': 3.0.0-beta.15
+      '@babel/core': 7.13.16
+      '@babel/generator': 7.17.0
+      '@babel/plugin-transform-runtime': 7.17.0_@babel+core@7.13.16
+      '@babel/plugin-transform-template-literals': 7.16.7_@babel+core@7.13.16
+      '@babel/preset-env': 7.16.11_@babel+core@7.13.16
+      '@linaria/babel-preset': 3.0.0-beta.15_@babel+core@7.13.16
       '@linaria/logger': 3.0.0-beta.15
-      '@linaria/preeval': 3.0.0-beta.15
+      '@linaria/preeval': 3.0.0-beta.15_@babel+core@7.13.16
       babel-plugin-transform-react-remove-prop-types: 0.4.24
       ts-invariant: 0.9.4
     transitivePeerDependencies:
@@ -6039,6 +6314,22 @@ packages:
       rollup: 2.63.0
     dev: true
 
+  /@rollup/plugin-commonjs/21.0.1_rollup@2.67.2:
+    resolution: {integrity: 
sha512-EA+g22lbNJ8p5kuZJUYyhhDK7WgJckW5g4pNN7n4mAFUM96VuwUnNT3xr2Db2iCZPI1pJPbGyfT5mS9T1dHfMg==}
+    engines: {node: '>= 8.0.0'}
+    peerDependencies:
+      rollup: ^2.38.3
+    dependencies:
+      '@rollup/pluginutils': 3.1.0_rollup@2.67.2
+      commondir: 1.0.1
+      estree-walker: 2.0.2
+      glob: 7.2.0
+      is-reference: 1.2.1
+      magic-string: 0.25.7
+      resolve: 1.21.0
+      rollup: 2.67.2
+    dev: true
+
   /@rollup/plugin-image/2.1.1_rollup@2.63.0:
     resolution: {integrity: 
sha512-AgP4U85zuQJdUopLUCM+hTf45RepgXeTb8EJsleExVy99dIoYpt3ZlDYJdKmAc2KLkNntCDg6BPJvgJU3uGF+g==}
     engines: {node: '>= 8.0.0'}
@@ -6059,6 +6350,15 @@ packages:
       rollup: 2.63.0
     dev: true
 
+  /@rollup/plugin-json/4.1.0_rollup@2.67.2:
+    resolution: {integrity: 
sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==}
+    peerDependencies:
+      rollup: ^1.20.0 || ^2.0.0
+    dependencies:
+      '@rollup/pluginutils': 3.1.0_rollup@2.67.2
+      rollup: 2.67.2
+    dev: true
+
   /@rollup/plugin-node-resolve/11.2.1_rollup@2.59.0:
     resolution: {integrity: 
sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==}
     engines: {node: '>= 10.0.0'}
@@ -6104,6 +6404,21 @@ packages:
       rollup: 2.63.0
     dev: true
 
+  /@rollup/plugin-node-resolve/13.1.3_rollup@2.67.2:
+    resolution: {integrity: 
sha512-BdxNk+LtmElRo5d06MGY4zoepyrXX1tkzX2hrnPEZ53k78GuOMWLqmJDGIIOPwVRIFZrLQOo+Yr6KtCuLIA0AQ==}
+    engines: {node: '>= 10.0.0'}
+    peerDependencies:
+      rollup: ^2.42.0
+    dependencies:
+      '@rollup/pluginutils': 3.1.0_rollup@2.67.2
+      '@types/resolve': 1.17.1
+      builtin-modules: 3.2.0
+      deepmerge: 4.2.2
+      is-module: 1.0.0
+      resolve: 1.21.0
+      rollup: 2.67.2
+    dev: true
+
   /@rollup/plugin-replace/2.4.2_rollup@2.59.0:
     resolution: {integrity: 
sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==}
     peerDependencies:
@@ -6173,6 +6488,18 @@ packages:
       rollup: 2.63.0
     dev: true
 
+  /@rollup/pluginutils/3.1.0_rollup@2.67.2:
+    resolution: {integrity: 
sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==}
+    engines: {node: '>= 8.0.0'}
+    peerDependencies:
+      rollup: ^1.20.0||^2.0.0
+    dependencies:
+      '@types/estree': 0.0.39
+      estree-walker: 1.0.1
+      picomatch: 2.3.1
+      rollup: 2.67.2
+    dev: true
+
   /@rollup/pluginutils/4.1.1:
     resolution: {integrity: 
sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==}
     engines: {node: '>= 8.0.0'}
@@ -9796,6 +10123,9 @@ packages:
     resolution: {integrity: 
sha512-LMy+vDDcQR48EZdEx5wRX1q/sEl6NdGuHXPnfeL8ixkwCOSZ2qnIyIZmcCbdX0MeRqHhAcHmX+haCbrS8Run+A==}
     dev: true
 
+  /@types/node/17.0.17:
+    resolution: {integrity: 
sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==}
+
   /@types/node/17.0.8:
     resolution: {integrity: 
sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==}
 
@@ -9858,7 +10188,7 @@ packages:
   /@types/resolve/1.17.1:
     resolution: {integrity: 
sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
     dependencies:
-      '@types/node': 17.0.8
+      '@types/node': 17.0.17
     dev: true
 
   /@types/scheduler/0.16.2:
@@ -11134,6 +11464,65 @@ packages:
       - supports-color
     dev: true
 
+  /ava/4.0.1:
+    resolution: {integrity: 
sha512-+12A/JDWyShBCZAKISEEPyM2dwkUrrAfPILqXi4LI4Aa58d92PzjY829hmuoSeACPNqrn2Wlbnja8c/n7bKV6Q==}
+    engines: {node: '>=12.22 <13 || >=14.17 <15 || >=16.4 <17 || >=17'}
+    hasBin: true
+    peerDependencies:
+      '@ava/typescript': '*'
+    peerDependenciesMeta:
+      '@ava/typescript':
+        optional: true
+    dependencies:
+      acorn: 8.7.0
+      acorn-walk: 8.2.0
+      ansi-styles: 6.1.0
+      arrgv: 1.0.2
+      arrify: 3.0.0
+      callsites: 4.0.0
+      cbor: 8.1.0
+      chalk: 5.0.0
+      chokidar: 3.5.3
+      chunkd: 2.0.1
+      ci-info: 3.3.0
+      ci-parallel-vars: 1.0.1
+      clean-yaml-object: 0.1.0
+      cli-truncate: 3.1.0
+      code-excerpt: 3.0.0
+      common-path-prefix: 3.0.0
+      concordance: 5.0.4
+      currently-unhandled: 0.4.1
+      debug: 4.3.3
+      del: 6.0.0
+      emittery: 0.10.1
+      figures: 4.0.0
+      globby: 12.2.0
+      ignore-by-default: 2.0.0
+      indent-string: 5.0.0
+      is-error: 2.2.2
+      is-plain-object: 5.0.0
+      is-promise: 4.0.0
+      matcher: 5.0.0
+      mem: 9.0.2
+      ms: 2.1.3
+      p-event: 5.0.1
+      p-map: 5.3.0
+      picomatch: 2.3.1
+      pkg-conf: 4.0.0
+      plur: 5.1.0
+      pretty-ms: 7.0.1
+      resolve-cwd: 3.0.0
+      slash: 3.0.0
+      stack-utils: 2.0.5
+      strip-ansi: 7.0.1
+      supertap: 2.0.0
+      temp-dir: 2.0.0
+      write-file-atomic: 3.0.3
+      yargs: 17.3.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /aws-sign2/0.7.0:
     resolution: {integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=}
     dev: true
@@ -11339,26 +11728,27 @@ packages:
       - supports-color
     dev: true
 
-  /babel-plugin-polyfill-corejs2/0.3.0:
+  /babel-plugin-polyfill-corejs2/0.3.0_@babel+core@7.16.0:
     resolution: {integrity: 
sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/compat-data': 7.16.4
-      '@babel/helper-define-polyfill-provider': 0.3.0
+      '@babel/core': 7.16.0
+      '@babel/helper-define-polyfill-provider': 0.3.0_@babel+core@7.16.0
       semver: 6.3.0
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  /babel-plugin-polyfill-corejs2/0.3.0_@babel+core@7.16.0:
-    resolution: {integrity: 
sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==}
+  /babel-plugin-polyfill-corejs2/0.3.1_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/compat-data': 7.16.4
-      '@babel/core': 7.16.0
-      '@babel/helper-define-polyfill-provider': 0.3.0_@babel+core@7.16.0
+      '@babel/compat-data': 7.17.0
+      '@babel/core': 7.13.16
+      '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.13.16
       semver: 6.3.0
     transitivePeerDependencies:
       - supports-color
@@ -11423,25 +11813,26 @@ packages:
       - supports-color
     dev: true
 
-  /babel-plugin-polyfill-corejs3/0.4.0:
+  /babel-plugin-polyfill-corejs3/0.4.0_@babel+core@7.16.0:
     resolution: {integrity: 
sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/helper-define-polyfill-provider': 0.3.0
+      '@babel/core': 7.16.0
+      '@babel/helper-define-polyfill-provider': 0.3.0_@babel+core@7.16.0
       core-js-compat: 3.20.2
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  /babel-plugin-polyfill-corejs3/0.4.0_@babel+core@7.16.0:
-    resolution: {integrity: 
sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==}
+  /babel-plugin-polyfill-corejs3/0.5.2_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.16.0
-      '@babel/helper-define-polyfill-provider': 0.3.0_@babel+core@7.16.0
-      core-js-compat: 3.20.2
+      '@babel/core': 7.13.16
+      '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.13.16
+      core-js-compat: 3.21.0
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -11478,23 +11869,24 @@ packages:
       - supports-color
     dev: true
 
-  /babel-plugin-polyfill-regenerator/0.3.0:
+  /babel-plugin-polyfill-regenerator/0.3.0_@babel+core@7.16.0:
     resolution: {integrity: 
sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/helper-define-polyfill-provider': 0.3.0
+      '@babel/core': 7.16.0
+      '@babel/helper-define-polyfill-provider': 0.3.0_@babel+core@7.16.0
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  /babel-plugin-polyfill-regenerator/0.3.0_@babel+core@7.16.0:
-    resolution: {integrity: 
sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==}
+  /babel-plugin-polyfill-regenerator/0.3.1_@babel+core@7.13.16:
+    resolution: {integrity: 
sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.16.0
-      '@babel/helper-define-polyfill-provider': 0.3.0_@babel+core@7.16.0
+      '@babel/core': 7.13.16
+      '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.13.16
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -11856,10 +12248,10 @@ packages:
     engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
     hasBin: true
     dependencies:
-      caniuse-lite: 1.0.30001296
-      electron-to-chromium: 1.4.35
+      caniuse-lite: 1.0.30001311
+      electron-to-chromium: 1.4.68
       escalade: 3.1.1
-      node-releases: 2.0.1
+      node-releases: 2.0.2
       picocolors: 1.0.0
     dev: true
 
@@ -12129,8 +12521,8 @@ packages:
     resolution: {integrity: 
sha512-kFXwYvHe5rix25uwueBxC569o53J6TpnGu0BEEn+6Lhl2vsnAumRFWEBhDft1fwyo6m1r4i+RqA4+163FpeFcA==}
     dev: true
 
-  /caniuse-lite/1.0.30001296:
-    resolution: {integrity: 
sha512-WfrtPEoNSoeATDlf4y3QvkwiELl9GyPLISV5GejTbbQRtQx4LhsXmc9IQ6XCL2d7UxCyEzToEZNMeqR79OUw8Q==}
+  /caniuse-lite/1.0.30001311:
+    resolution: {integrity: 
sha512-mleTFtFKfykEeW34EyfhGIFjGCqzhh38Y0LhdQ9aWF+HorZTtdgKV/1hEE0NlFkG2ubvisPV6l400tlbPys98A==}
     dev: true
 
   /capture-exit/2.0.0:
@@ -12255,15 +12647,30 @@ packages:
       is-binary-path: 1.0.1
       is-glob: 4.0.3
       normalize-path: 3.0.0
-      path-is-absolute: 1.0.1
-      readdirp: 2.2.1
-      upath: 1.2.0
+      path-is-absolute: 1.0.1
+      readdirp: 2.2.1
+      upath: 1.2.0
+    optionalDependencies:
+      fsevents: 1.2.13
+    dev: true
+
+  /chokidar/3.5.2:
+    resolution: {integrity: 
sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==}
+    engines: {node: '>= 8.10.0'}
+    dependencies:
+      anymatch: 3.1.2
+      braces: 3.0.2
+      glob-parent: 5.1.2
+      is-binary-path: 2.1.0
+      is-glob: 4.0.3
+      normalize-path: 3.0.0
+      readdirp: 3.6.0
     optionalDependencies:
-      fsevents: 1.2.13
+      fsevents: 2.3.2
     dev: true
 
-  /chokidar/3.5.2:
-    resolution: {integrity: 
sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==}
+  /chokidar/3.5.3:
+    resolution: {integrity: 
sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
     engines: {node: '>= 8.10.0'}
     dependencies:
       anymatch: 3.1.2
@@ -12396,7 +12803,7 @@ packages:
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
     dependencies:
       slice-ansi: 5.0.0
-      string-width: 5.0.1
+      string-width: 5.1.0
     dev: true
 
   /cliui/5.0.0:
@@ -12789,6 +13196,13 @@ packages:
       semver: 7.0.0
     dev: true
 
+  /core-js-compat/3.21.0:
+    resolution: {integrity: 
sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==}
+    dependencies:
+      browserslist: 4.19.1
+      semver: 7.0.0
+    dev: true
+
   /core-js-pure/3.16.2:
     resolution: {integrity: 
sha512-oxKe64UH049mJqrKkynWp6Vu0Rlm/BTXO/bJZuN2mmR3RtOFNepLlSWDd1eo16PzHpQAoNG97rLU1V/YxesJjw==}
     requiresBuild: true
@@ -13527,7 +13941,7 @@ packages:
     resolution: {integrity: 
sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==}
     engines: {node: '>=10'}
     dependencies:
-      globby: 11.0.4
+      globby: 11.1.0
       graceful-fs: 4.2.9
       is-glob: 4.0.3
       is-path-cwd: 2.2.0
@@ -13807,6 +14221,10 @@ packages:
       stream-shift: 1.0.1
     dev: true
 
+  /eastasianwidth/0.2.0:
+    resolution: {integrity: 
sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+    dev: true
+
   /ecc-jsbn/0.1.2:
     resolution: {integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=}
     dependencies:
@@ -13843,8 +14261,8 @@ packages:
     resolution: {integrity: 
sha512-w16Dtd2zl7VZ4N4Db+FIa7n36sgPGCKjrKvUUmp5ialsikvcQLjcJR9RWnlYNxIyEHLdHaoIZEqKsPxU9MdyBg==}
     dev: true
 
-  /electron-to-chromium/1.4.35:
-    resolution: {integrity: 
sha512-wzTOMh6HGFWeALMI3bif0mzgRrVGyP1BdFRx7IvWukFrSC5QVQELENuy+Fm2dCrAdQH9T3nuqr07n94nPDFBWA==}
+  /electron-to-chromium/1.4.68:
+    resolution: {integrity: 
sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA==}
     dev: true
 
   /element-resize-detector/1.2.3:
@@ -13870,6 +14288,11 @@ packages:
     engines: {node: '>=12'}
     dev: true
 
+  /emittery/0.10.1:
+    resolution: {integrity: 
sha512-OBSS9uVXbpgqEGq2V5VnpfCu9vSnfiR9eYVJmxFYToNIcWRHkM4BAFbJe/PWjf/pQdEL7OPxd2jOW/bJiyX7gg==}
+    engines: {node: '>=12'}
+    dev: true
+
   /emittery/0.8.1:
     resolution: {integrity: 
sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==}
     engines: {node: '>=10'}
@@ -14108,6 +14531,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-android-arm64/0.14.21:
+    resolution: {integrity: 
sha512-Bqgld1TY0wZv8TqiQmVxQFgYzz8ZmyzT7clXBDZFkOOdRybzsnj8AZuK1pwcLVA7Ya6XncHgJqIao7NFd3s0RQ==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [android]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-darwin-64/0.14.10:
     resolution: {integrity: 
sha512-DJwzFVB95ZV7C3PQbf052WqaUuuMFXJeZJ0LKdnP1w+QOU0rlbKfX0tzuhoS//rOXUj1TFIwRuRsd0FX6skR7A==}
     cpu: [x64]
@@ -14116,6 +14548,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-darwin-64/0.14.21:
+    resolution: {integrity: 
sha512-j+Eg+e13djzyYINVvAbOo2/zvZ2DivuJJTaBrJnJHSD7kUNuGHRkHoSfFjbI80KHkn091w350wdmXDNSgRjfYQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [darwin]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-darwin-arm64/0.14.10:
     resolution: {integrity: 
sha512-RNaaoZDg3nsqs5z56vYCjk/VJ76npf752W0rOaCl5lO5TsgV9zecfdYgt7dtUrIx8b7APhVaNYud+tGsDOVC9g==}
     cpu: [arm64]
@@ -14124,6 +14565,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-darwin-arm64/0.14.21:
+    resolution: {integrity: 
sha512-nDNTKWDPI0RuoPj5BhcSB2z5EmZJJAyRtZLIjyXSqSpAyoB8eyAKXl4lB8U2P78Fnh4Lh1le/fmpewXE04JhBQ==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [darwin]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-freebsd-64/0.14.10:
     resolution: {integrity: 
sha512-10B3AzW894u6bGZZhWiJOHw1uEHb4AFbUuBdyml1Ht0vIqd+KqWW+iY/yMwQAzILr2WJZqEhbOXRkJtY8aRqOw==}
     cpu: [x64]
@@ -14132,6 +14582,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-freebsd-64/0.14.21:
+    resolution: {integrity: 
sha512-zIurkCHXhxELiDZtLGiexi8t8onQc2LtuE+S7457H/pP0g0MLRKMrsn/IN4LDkNe6lvBjuoZZi2OfelOHn831g==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [freebsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-freebsd-arm64/0.14.10:
     resolution: {integrity: 
sha512-mSQrKB7UaWvuryBTCo9leOfY2uEUSimAvcKIaUWbk5Hth9Sg+Try+qNA/NibPgs/vHkX0KFo/Rce6RPea+P15g==}
     cpu: [arm64]
@@ -14140,6 +14599,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-freebsd-arm64/0.14.21:
+    resolution: {integrity: 
sha512-wdxMmkJfbwcN+q85MpeUEamVZ40FNsBa9mPq8tAszDn8TRT2HoJvVRADPIIBa9SWWwlDChIMjkDKAnS3KS/sPA==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [freebsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-linux-32/0.14.10:
     resolution: {integrity: 
sha512-lktF09JgJLZ63ANYHIPdYe339PDuVn19Q/FcGKkXWf+jSPkn5xkYzAabboNGZNUgNqSJ/vY7VrOn6UrBbJjgYA==}
     cpu: [ia32]
@@ -14148,6 +14616,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-linux-32/0.14.21:
+    resolution: {integrity: 
sha512-fmxvyzOPPh2xiEHojpCeIQP6pXcoKsWbz3ryDDIKLOsk4xp3GbpHIEAWP0xTeuhEbendmvBDVKbAVv3PnODXLg==}
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-linux-64/0.14.10:
     resolution: {integrity: 
sha512-K+gCQz2oLIIBI8ZM77e9sYD5/DwEpeYCrOQ2SYXx+R4OU2CT9QjJDi4/OpE7ko4AcYMlMW7qrOCuLSgAlEj4Wg==}
     cpu: [x64]
@@ -14156,6 +14633,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-linux-64/0.14.21:
+    resolution: {integrity: 
sha512-edZyNOv1ql+kpmlzdqzzDjRQYls+tSyi4QFi+PdBhATJFUqHsnNELWA9vMSzAaInPOEaVUTA5Ml28XFChcy4DA==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-linux-arm/0.14.10:
     resolution: {integrity: 
sha512-BYa60dZ/KPmNKYxtHa3LSEdfKWHcm/RzP0MjB4AeBPhjS0D6/okhaBesZIY9kVIGDyeenKsJNOmnVt4+dhNnvQ==}
     cpu: [arm]
@@ -14164,6 +14650,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-linux-arm/0.14.21:
+    resolution: {integrity: 
sha512-aSU5pUueK6afqmLQsbU+QcFBT62L+4G9hHMJDHWfxgid6hzhSmfRH9U/f+ymvxsSTr/HFRU4y7ox8ZyhlVl98w==}
+    engines: {node: '>=12'}
+    cpu: [arm]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-linux-arm64/0.14.10:
     resolution: {integrity: 
sha512-+qocQuQvcp5wo/V+OLXxqHPc+gxHttJEvbU/xrCGE03vIMqraL4wMua8JQx0SWEnJCWP+Nhf//v8OSwz1Xr5kA==}
     cpu: [arm64]
@@ -14172,6 +14667,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-linux-arm64/0.14.21:
+    resolution: {integrity: 
sha512-t5qxRkq4zdQC0zXpzSB2bTtfLgOvR0C6BXYaRE/6/k8/4SrkZcTZBeNu+xGvwCU4b5dU9ST9pwIWkK6T1grS8g==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-linux-mips64le/0.14.10:
     resolution: {integrity: 
sha512-nmUd2xoBXpGo4NJCEWoaBj+n4EtDoLEvEYc8Z3aSJrY0Oa6s04czD1flmhd0I/d6QEU8b7GQ9U0g/rtBfhtxBg==}
     cpu: [mips64el]
@@ -14180,6 +14684,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-linux-mips64le/0.14.21:
+    resolution: {integrity: 
sha512-jLZLQGCNlUsmIHtGqNvBs3zN+7a4D9ckf0JZ+jQTwHdZJ1SgV9mAjbB980OFo66LoY+WeM7t3WEnq3FjI1zw4A==}
+    engines: {node: '>=12'}
+    cpu: [mips64el]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-linux-ppc64le/0.14.10:
     resolution: {integrity: 
sha512-vsOWZjm0rZix7HSmqwPph9arRVCyPtUpcURdayQDuIhMG2/UxJxpbdRaa//w4zYqcJzAWwuyH2PAlyy0ZNuxqQ==}
     cpu: [ppc64]
@@ -14188,6 +14701,24 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-linux-ppc64le/0.14.21:
+    resolution: {integrity: 
sha512-4TWxpK391en2UBUw6GSrukToTDu6lL9vkm3Ll40HrI08WG3qcnJu7bl8e1+GzelDsiw1QmfAY/nNvJ6iaHRpCQ==}
+    engines: {node: '>=12'}
+    cpu: [ppc64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /esbuild-linux-riscv64/0.14.21:
+    resolution: {integrity: 
sha512-fElngqOaOfTsF+u+oetDLHsPG74vB2ZaGZUqmGefAJn3a5z9Z2pNa4WpVbbKgHpaAAy5tWM1m1sbGohj6Ki6+Q==}
+    engines: {node: '>=12'}
+    cpu: [riscv64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-linux-s390x/0.14.10:
     resolution: {integrity: 
sha512-knArKKZm0ypIYWOWyOT7+accVwbVV1LZnl2FWWy05u9Tyv5oqJ2F5+X2Vqe/gqd61enJXQWqoufXopvG3zULOg==}
     cpu: [s390x]
@@ -14196,6 +14727,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-linux-s390x/0.14.21:
+    resolution: {integrity: 
sha512-brleZ6R5fYv0qQ7ZBwenQmP6i9TdvJCB092c/3D3pTLQHBGHJb5zWgKxOeS7bdHzmLy6a6W7GbFk6QKpjyD6QA==}
+    engines: {node: '>=12'}
+    cpu: [s390x]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-netbsd-64/0.14.10:
     resolution: {integrity: 
sha512-6Gg8neVcLeyq0yt9bZpReb8ntZ8LBEjthxrcYWVrBElcltnDjIy1hrzsujt0+sC2rL+TlSsE9dzgyuvlDdPp2w==}
     cpu: [x64]
@@ -14204,6 +14744,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-netbsd-64/0.14.21:
+    resolution: {integrity: 
sha512-nCEgsLCQ8RoFWVV8pVI+kX66ICwbPP/M9vEa0NJGIEB/Vs5sVGMqkf67oln90XNSkbc0bPBDuo4G6FxlF7PN8g==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [netbsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-openbsd-64/0.14.10:
     resolution: {integrity: 
sha512-9rkHZzp10zI90CfKbFrwmQjqZaeDmyQ6s9/hvCwRkbOCHuto6RvMYH9ghQpcr5cUxD5OQIA+sHXi0zokRNXjcg==}
     cpu: [x64]
@@ -14212,6 +14761,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-openbsd-64/0.14.21:
+    resolution: {integrity: 
sha512-h9zLMyVD0T73MDTVYIb/qUTokwI6EJH9O6wESuTNq6+XpMSr6C5aYZ4fvFKdNELW+Xsod+yDS2hV2JTUAbFrLA==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [openbsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-sunos-64/0.14.10:
     resolution: {integrity: 
sha512-mEU+pqkhkhbwpJj5DiN3vL0GUFR/yrL3qj8ER1amIVyRibKbj02VM1QaIuk1sy5DRVIKiFXXgCaHvH3RNWCHIw==}
     cpu: [x64]
@@ -14220,6 +14778,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-sunos-64/0.14.21:
+    resolution: {integrity: 
sha512-Kl+7Cot32qd9oqpLdB1tEGXEkjBlijrIxMJ0+vlDFaqsODutif25on0IZlFxEBtL2Gosd4p5WCV1U7UskNQfXA==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [sunos]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-windows-32/0.14.10:
     resolution: {integrity: 
sha512-Z5DieUL1N6s78dOSdL95KWf8Y89RtPGxIoMF+LEy8ChDsX+pZpz6uAVCn+YaWpqQXO+2TnrcbgBIoprq2Mco1g==}
     cpu: [ia32]
@@ -14228,6 +14795,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-windows-32/0.14.21:
+    resolution: {integrity: 
sha512-V7vnTq67xPBUCk/9UtlolmQ798Ecjdr1ZoI1vcSgw7M82aSSt0eZdP6bh5KAFZU8pxDcx3qoHyWQfHYr11f22A==}
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-windows-64/0.14.10:
     resolution: {integrity: 
sha512-LE5Mm62y0Bilu7RDryBhHIX8rK3at5VwJ6IGM3BsASidCfOBTzqcs7Yy0/Vkq39VKeTmy9/66BAfVoZRNznoDw==}
     cpu: [x64]
@@ -14236,6 +14812,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-windows-64/0.14.21:
+    resolution: {integrity: 
sha512-kDgHjKOHwjfJDCyRGELzVxiP/RBJBTA+wyspf78MTTJQkyPuxH2vChReNdWc+dU2S4gIZFHMdP1Qrl/k22ZmaA==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild-windows-arm64/0.14.10:
     resolution: {integrity: 
sha512-OJOyxDtabvcUYTc+O4dR0JMzLBz6G9+gXIHA7Oc5d5Fv1xiYa0nUeo8+W5s2e6ZkPRdIwOseYoL70rZz80S5BA==}
     cpu: [arm64]
@@ -14244,6 +14829,15 @@ packages:
     dev: true
     optional: true
 
+  /esbuild-windows-arm64/0.14.21:
+    resolution: {integrity: 
sha512-8Sbo0zpzgwWrwjQYLmHF78f7E2xg5Ve63bjB2ng3V2aManilnnTGaliq2snYg+NOX60+hEvJHRdVnuIAHW0lVw==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /esbuild/0.12.29:
     resolution: {integrity: 
sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==}
     hasBin: true
@@ -14275,6 +14869,33 @@ packages:
       esbuild-windows-arm64: 0.14.10
     dev: true
 
+  /esbuild/0.14.21:
+    resolution: {integrity: 
sha512-7WEoNMBJdLN993dr9h0CpFHPRc3yFZD+EAVY9lg6syJJ12gc5fHq8d75QRExuhnMkT2DaRiIKFThRvDWP+fO+A==}
+    engines: {node: '>=12'}
+    hasBin: true
+    requiresBuild: true
+    optionalDependencies:
+      esbuild-android-arm64: 0.14.21
+      esbuild-darwin-64: 0.14.21
+      esbuild-darwin-arm64: 0.14.21
+      esbuild-freebsd-64: 0.14.21
+      esbuild-freebsd-arm64: 0.14.21
+      esbuild-linux-32: 0.14.21
+      esbuild-linux-64: 0.14.21
+      esbuild-linux-arm: 0.14.21
+      esbuild-linux-arm64: 0.14.21
+      esbuild-linux-mips64le: 0.14.21
+      esbuild-linux-ppc64le: 0.14.21
+      esbuild-linux-riscv64: 0.14.21
+      esbuild-linux-s390x: 0.14.21
+      esbuild-netbsd-64: 0.14.21
+      esbuild-openbsd-64: 0.14.21
+      esbuild-sunos-64: 0.14.21
+      esbuild-windows-32: 0.14.21
+      esbuild-windows-64: 0.14.21
+      esbuild-windows-arm64: 0.14.21
+    dev: true
+
   /escalade/3.1.1:
     resolution: {integrity: 
sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
     engines: {node: '>=6'}
@@ -14953,6 +15574,17 @@ packages:
       micromatch: 3.1.10
     dev: true
 
+  /fast-glob/3.2.11:
+    resolution: {integrity: 
sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==}
+    engines: {node: '>=8.6.0'}
+    dependencies:
+      '@nodelib/fs.stat': 2.0.5
+      '@nodelib/fs.walk': 1.2.8
+      glob-parent: 5.1.2
+      merge2: 1.4.1
+      micromatch: 4.0.4
+    dev: true
+
   /fast-glob/3.2.7:
     resolution: {integrity: 
sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==}
     engines: {node: '>=8'}
@@ -14996,23 +15628,30 @@ packages:
       bser: 2.1.1
     dev: true
 
-  /fetch-blob/3.1.3:
-    resolution: {integrity: 
sha512-ax1Y5I9w+9+JiM+wdHkhBoxew+zG4AJ2SvAD1v1szpddUIiPERVGBxrMcB2ZqW0Y3PP8bOWYv2zqQq1Jp2kqUQ==}
+  /fetch-blob/3.1.4:
+    resolution: {integrity: 
sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==}
     engines: {node: ^12.20 || >= 14.13}
     dependencies:
+      node-domexception: 1.0.0
       web-streams-polyfill: 3.2.0
     dev: false
 
   /fetch-ponyfill/7.1.0:
     resolution: {integrity: 
sha512-FhbbL55dj/qdVO3YNK7ZEkshvj3eQ7EuIGV2I6ic/2YiocvyWv+7jg2s4AyS0wdRU75s3tA8ZxI/xPigb0v5Aw==}
     dependencies:
-      node-fetch: 2.6.6
+      node-fetch: 2.6.7
+    transitivePeerDependencies:
+      - encoding
     dev: false
 
   /fflate/0.7.2:
     resolution: {integrity: 
sha512-h/YiXnc37yYaGe61h3A4ZdsBzBqKG5hhrmopFizTru8xrfOiJuYX5oLnatBwNEpf9biOJrZVscuEQsUzIUAhpQ==}
     dev: false
 
+  /fflate/0.7.3:
+    resolution: {integrity: 
sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==}
+    dev: false
+
   /figgy-pudding/3.5.2:
     resolution: {integrity: 
sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==}
     dev: true
@@ -15169,11 +15808,11 @@ packages:
       path-exists: 4.0.0
     dev: true
 
-  /find-up/6.2.0:
-    resolution: {integrity: 
sha512-yWHzMzXCaFoABSnFTCPKNFlYoq4mSga9QLRRKOCLSJ33hSkzROB14ITbAWW0QDQDyuzsPQ33S1DsOWQb/oW1yA==}
+  /find-up/6.3.0:
+    resolution: {integrity: 
sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
     dependencies:
-      locate-path: 7.0.0
+      locate-path: 7.1.0
       path-exists: 5.0.0
     dev: true
 
@@ -15375,7 +16014,7 @@ packages:
     resolution: {integrity: 
sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
     engines: {node: '>=12.20.0'}
     dependencies:
-      fetch-blob: 3.1.3
+      fetch-blob: 3.1.4
     dev: false
 
   /forwarded/0.2.0:
@@ -15794,6 +16433,18 @@ packages:
       slash: 3.0.0
     dev: true
 
+  /globby/11.1.0:
+    resolution: {integrity: 
sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+    engines: {node: '>=10'}
+    dependencies:
+      array-union: 2.1.0
+      dir-glob: 3.0.1
+      fast-glob: 3.2.11
+      ignore: 5.2.0
+      merge2: 1.4.1
+      slash: 3.0.0
+    dev: true
+
   /globby/12.0.2:
     resolution: {integrity: 
sha512-lAsmb/5Lww4r7MM9nCCliDZVIKbZTavrsunAsHLr9oHthrZP1qi7/gAnHOsUs9bLvEt2vKVJhHmxuL7QbDuPdQ==}
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -15806,6 +16457,18 @@ packages:
       slash: 4.0.0
     dev: true
 
+  /globby/12.2.0:
+    resolution: {integrity: 
sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==}
+    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+    dependencies:
+      array-union: 3.0.1
+      dir-glob: 3.0.1
+      fast-glob: 3.2.11
+      ignore: 5.2.0
+      merge2: 1.4.1
+      slash: 4.0.0
+    dev: true
+
   /globby/6.1.0:
     resolution: {integrity: sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=}
     engines: {node: '>=0.10.0'}
@@ -16695,6 +17358,12 @@ packages:
       has: 1.0.3
     dev: true
 
+  /is-core-module/2.8.1:
+    resolution: {integrity: 
sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==}
+    dependencies:
+      has: 1.0.3
+    dev: true
+
   /is-data-descriptor/0.1.4:
     resolution: {integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=}
     engines: {node: '>=0.10.0'}
@@ -17645,8 +18314,8 @@ packages:
       p-locate: 5.0.0
     dev: true
 
-  /locate-path/7.0.0:
-    resolution: {integrity: 
sha512-+cg2yXqDUKfo4hsFxwa3G1cBJeA+gs1vD8FyV9/odWoUlQe/4syxHQ5DPtKjtfm6gnKbZzjCqzX03kXosvZB1w==}
+  /locate-path/7.1.0:
+    resolution: {integrity: 
sha512-HNx5uOnYeK4SxEoid5qnhRfprlJeGMzFRKPLCf/15N3/B4AiofNwC/yq7VBKdVk9dx7m+PiYCJOGg55JYTAqoQ==}
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
     dependencies:
       p-locate: 6.0.0
@@ -17951,6 +18620,14 @@ packages:
       mimic-fn: 4.0.0
     dev: true
 
+  /mem/9.0.2:
+    resolution: {integrity: 
sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A==}
+    engines: {node: '>=12.20'}
+    dependencies:
+      map-age-cleaner: 0.1.3
+      mimic-fn: 4.0.0
+    dev: true
+
   /memfs/3.2.2:
     resolution: {integrity: 
sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q==}
     engines: {node: '>= 4.0.0'}
@@ -18380,6 +19057,11 @@ packages:
       tslib: 2.3.1
     dev: true
 
+  /node-domexception/1.0.0:
+    resolution: {integrity: 
sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
+    engines: {node: '>=10.5.0'}
+    dev: false
+
   /node-fetch/2.6.1:
     resolution: {integrity: 
sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==}
     engines: {node: 4.x || >=6.0.0}
@@ -18390,13 +19072,26 @@ packages:
     engines: {node: 4.x || >=6.0.0}
     dependencies:
       whatwg-url: 5.0.0
+    dev: true
+
+  /node-fetch/2.6.7:
+    resolution: {integrity: 
sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}
+    engines: {node: 4.x || >=6.0.0}
+    peerDependencies:
+      encoding: ^0.1.0
+    peerDependenciesMeta:
+      encoding:
+        optional: true
+    dependencies:
+      whatwg-url: 5.0.0
+    dev: false
 
-  /node-fetch/3.1.0:
-    resolution: {integrity: 
sha512-QU0WbIfMUjd5+MUzQOYhenAazakV7Irh1SGkWCsRzBwvm4fAhzEUaHMJ6QLP7gWT6WO9/oH2zhKMMGMuIrDyKw==}
+  /node-fetch/3.2.0:
+    resolution: {integrity: 
sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw==}
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
     dependencies:
       data-uri-to-buffer: 4.0.0
-      fetch-blob: 3.1.3
+      fetch-blob: 3.1.4
       formdata-polyfill: 4.0.10
     dev: false
 
@@ -18461,6 +19156,10 @@ packages:
     resolution: {integrity: 
sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==}
     dev: true
 
+  /node-releases/2.0.2:
+    resolution: {integrity: 
sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==}
+    dev: true
+
   /nodent-compiler/3.2.13:
     resolution: {integrity: 
sha512-nzzWPXZwSdsWie34om+4dLrT/5l1nT/+ig1v06xuSgMtieJVAnMQFuZihUwREM+M7dFso9YoHfDmweexEXXrrw==}
     engines: {'0': n, '1': o, '2': d, '3': e, '4': ' ', '5': '>', '6': '=', 
'7': ' ', '8': '0', '9': ., '10': '1', '11': '0', '12': ., '13': '0'}
@@ -19284,7 +19983,7 @@ packages:
     resolution: {integrity: 
sha512-7dmgi4UY4qk+4mj5Cd8v/GExPo0K+SlY+hulOSdfZ/T6jVH6//y7NtzZo5WrfhDBxuQ0jCa7fLZmNaNh7EWL/w==}
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
     dependencies:
-      find-up: 6.2.0
+      find-up: 6.3.0
       load-json-file: 7.0.1
     dev: true
 
@@ -21192,6 +21891,13 @@ packages:
       prismjs: 1.25.0
     dev: true
 
+  /regenerate-unicode-properties/10.0.1:
+    resolution: {integrity: 
sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==}
+    engines: {node: '>=4'}
+    dependencies:
+      regenerate: 1.4.2
+    dev: true
+
   /regenerate-unicode-properties/8.2.0:
     resolution: {integrity: 
sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==}
     engines: {node: '>=4'}
@@ -21220,7 +21926,7 @@ packages:
   /regenerator-transform/0.14.5:
     resolution: {integrity: 
sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==}
     dependencies:
-      '@babel/runtime': 7.16.7
+      '@babel/runtime': 7.17.2
     dev: true
 
   /regex-not/1.0.2:
@@ -21268,6 +21974,18 @@ packages:
       unicode-match-property-value-ecmascript: 2.0.0
     dev: true
 
+  /regexpu-core/5.0.1:
+    resolution: {integrity: 
sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==}
+    engines: {node: '>=4'}
+    dependencies:
+      regenerate: 1.4.2
+      regenerate-unicode-properties: 10.0.1
+      regjsgen: 0.6.0
+      regjsparser: 0.8.4
+      unicode-match-property-ecmascript: 2.0.0
+      unicode-match-property-value-ecmascript: 2.0.0
+    dev: true
+
   /registry-auth-token/4.2.1:
     resolution: {integrity: 
sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==}
     engines: {node: '>=6.0.0'}
@@ -21286,6 +22004,10 @@ packages:
     resolution: {integrity: 
sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==}
     dev: true
 
+  /regjsgen/0.6.0:
+    resolution: {integrity: 
sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==}
+    dev: true
+
   /regjsparser/0.6.9:
     resolution: {integrity: 
sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==}
     hasBin: true
@@ -21300,6 +22022,13 @@ packages:
       jsesc: 0.5.0
     dev: true
 
+  /regjsparser/0.8.4:
+    resolution: {integrity: 
sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==}
+    hasBin: true
+    dependencies:
+      jsesc: 0.5.0
+    dev: true
+
   /relateurl/0.2.7:
     resolution: {integrity: sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=}
     engines: {node: '>= 0.10'}
@@ -21522,6 +22251,15 @@ packages:
       supports-preserve-symlinks-flag: 1.0.0
     dev: true
 
+  /resolve/1.22.0:
+    resolution: {integrity: 
sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==}
+    hasBin: true
+    dependencies:
+      is-core-module: 2.8.1
+      path-parse: 1.0.7
+      supports-preserve-symlinks-flag: 1.0.0
+    dev: true
+
   /resolve/2.0.0-next.3:
     resolution: {integrity: 
sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==}
     dependencies:
@@ -21617,7 +22355,7 @@ packages:
       source-map-resolve: 0.6.0
     dev: true
 
-  /rollup-plugin-sourcemaps/0.6.3_rollup@2.63.0:
+  /rollup-plugin-sourcemaps/0.6.3_rollup@2.67.2:
     resolution: {integrity: 
sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==}
     engines: {node: '>=10.0.0'}
     peerDependencies:
@@ -21627,8 +22365,8 @@ packages:
       '@types/node':
         optional: true
     dependencies:
-      '@rollup/pluginutils': 3.1.0_rollup@2.63.0
-      rollup: 2.63.0
+      '@rollup/pluginutils': 3.1.0_rollup@2.67.2
+      rollup: 2.67.2
       source-map-resolve: 0.6.0
     dev: true
 
@@ -21672,6 +22410,14 @@ packages:
       fsevents: 2.3.2
     dev: true
 
+  /rollup/2.67.2:
+    resolution: {integrity: 
sha512-hoEiBWwZtf1QdK3jZIq59L0FJj4Fiv4RplCO4pvCRC86qsoFurWB4hKQIjoRf3WvJmk5UZ9b0y5ton+62fC7Tw==}
+    engines: {node: '>=10.0.0'}
+    hasBin: true
+    optionalDependencies:
+      fsevents: 2.3.2
+    dev: true
+
   /rst-selector-parser/2.2.3:
     resolution: {integrity: sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=}
     dependencies:
@@ -22056,6 +22802,10 @@ packages:
     resolution: {integrity: 
sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==}
     dev: true
 
+  /signal-exit/3.0.7:
+    resolution: {integrity: 
sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+    dev: true
+
   /simple-swizzle/0.2.2:
     resolution: {integrity: sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=}
     dependencies:
@@ -22508,12 +23258,12 @@ packages:
       strip-ansi: 6.0.1
     dev: true
 
-  /string-width/5.0.1:
-    resolution: {integrity: 
sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==}
+  /string-width/5.1.0:
+    resolution: {integrity: 
sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ==}
     engines: {node: '>=12'}
     dependencies:
+      eastasianwidth: 0.2.0
       emoji-regex: 9.2.2
-      is-fullwidth-code-point: 4.0.0
       strip-ansi: 7.0.1
     dev: true
 
@@ -23272,6 +24022,12 @@ packages:
     hasBin: true
     dev: true
 
+  /typescript/4.5.5:
+    resolution: {integrity: 
sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==}
+    engines: {node: '>=4.2.0'}
+    hasBin: true
+    dev: true
+
   /uglify-js/3.14.5:
     resolution: {integrity: 
sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==}
     engines: {node: '>=0.8.0'}
@@ -24522,7 +25278,7 @@ packages:
     dependencies:
       imurmurhash: 0.1.4
       is-typedarray: 1.0.0
-      signal-exit: 3.0.6
+      signal-exit: 3.0.7
       typedarray-to-buffer: 3.1.5
     dev: true
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]