diff --git a/package-lock.json b/package-lock.json
index d9d8a75..9bda02e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2043,6 +2043,8 @@
       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.2.tgz",
       "integrity": "sha512-l076A6o/PIgcyM24s0dWmDI/b8RQf41uWoJu9I0M71CtW/YSw5T5NUeXxs5lo2tFQD+O4CW4nBHJXx3OY5NpXg==",
       "hasInstallScript": true,
+      "optional": true,
+      "peer": true,
       "bin": {
         "esbuild": "bin/esbuild"
       },
@@ -2076,7 +2078,8 @@
       "optional": true,
       "os": [
         "android"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-darwin-64": {
       "version": "0.14.2",
@@ -2088,7 +2091,8 @@
       "optional": true,
       "os": [
         "darwin"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-darwin-arm64": {
       "version": "0.14.2",
@@ -2100,7 +2104,8 @@
       "optional": true,
       "os": [
         "darwin"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-freebsd-64": {
       "version": "0.14.2",
@@ -2112,7 +2117,8 @@
       "optional": true,
       "os": [
         "freebsd"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-freebsd-arm64": {
       "version": "0.14.2",
@@ -2124,7 +2130,8 @@
       "optional": true,
       "os": [
         "freebsd"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-linux-32": {
       "version": "0.14.2",
@@ -2136,7 +2143,8 @@
       "optional": true,
       "os": [
         "linux"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-linux-64": {
       "version": "0.14.2",
@@ -2148,7 +2156,8 @@
       "optional": true,
       "os": [
         "linux"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-linux-arm": {
       "version": "0.14.2",
@@ -2160,7 +2169,8 @@
       "optional": true,
       "os": [
         "linux"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-linux-arm64": {
       "version": "0.14.2",
@@ -2172,7 +2182,8 @@
       "optional": true,
       "os": [
         "linux"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-linux-mips64le": {
       "version": "0.14.2",
@@ -2184,7 +2195,8 @@
       "optional": true,
       "os": [
         "linux"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-linux-ppc64le": {
       "version": "0.14.2",
@@ -2196,7 +2208,8 @@
       "optional": true,
       "os": [
         "linux"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-netbsd-64": {
       "version": "0.14.2",
@@ -2208,7 +2221,8 @@
       "optional": true,
       "os": [
         "netbsd"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-openbsd-64": {
       "version": "0.14.2",
@@ -2220,7 +2234,8 @@
       "optional": true,
       "os": [
         "openbsd"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-sunos-64": {
       "version": "0.14.2",
@@ -2232,7 +2247,8 @@
       "optional": true,
       "os": [
         "sunos"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-windows-32": {
       "version": "0.14.2",
@@ -2244,7 +2260,8 @@
       "optional": true,
       "os": [
         "win32"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-windows-64": {
       "version": "0.14.2",
@@ -2256,7 +2273,8 @@
       "optional": true,
       "os": [
         "win32"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/esbuild-windows-arm64": {
       "version": "0.14.2",
@@ -2268,7 +2286,8 @@
       "optional": true,
       "os": [
         "win32"
-      ]
+      ],
+      "peer": true
     },
     "node_modules/escalade": {
       "version": "3.1.1",
@@ -5463,12 +5482,11 @@
       }
     },
     "node_modules/ts-jest": {
-      "version": "27.1.0",
-      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.0.tgz",
-      "integrity": "sha512-ZouWlP03JMtzfNHg0ZeDrxAESYGmVhWyHtIl2/01kBbXaMbTr4Vhv6/GeMxUed6GFg/4ycMo+yU6Eo9gI16xTQ==",
+      "version": "27.1.3",
+      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.3.tgz",
+      "integrity": "sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA==",
       "dependencies": {
         "bs-logger": "0.x",
-        "esbuild": "~0.14.0",
         "fast-json-stable-stringify": "2.x",
         "jest-util": "^27.0.0",
         "json5": "2.x",
@@ -5487,6 +5505,7 @@
         "@babel/core": ">=7.0.0-beta.0 <8",
         "@types/jest": "^27.0.0",
         "babel-jest": ">=27.0.0 <28",
+        "esbuild": "~0.14.0",
         "jest": "^27.0.0",
         "typescript": ">=3.8 <5.0"
       },
@@ -5499,6 +5518,9 @@
         },
         "babel-jest": {
           "optional": true
+        },
+        "esbuild": {
+          "optional": true
         }
       }
     },
@@ -7392,6 +7414,8 @@
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.2.tgz",
       "integrity": "sha512-l076A6o/PIgcyM24s0dWmDI/b8RQf41uWoJu9I0M71CtW/YSw5T5NUeXxs5lo2tFQD+O4CW4nBHJXx3OY5NpXg==",
+      "optional": true,
+      "peer": true,
       "requires": {
         "esbuild-android-arm64": "0.14.2",
         "esbuild-darwin-64": "0.14.2",
@@ -7416,103 +7440,120 @@
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.2.tgz",
       "integrity": "sha512-hEixaKMN3XXCkoe+0WcexO4CcBVU5DCSUT+7P8JZiWZCbAjSkc9b6Yz2X5DSfQmRCtI/cQRU6TfMYrMQ5NBfdw==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-darwin-64": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.2.tgz",
       "integrity": "sha512-Uq8t0cbJQkxkQdbUfOl2wZqZ/AtLZjvJulR1HHnc96UgyzG9YlCLSDMiqjM+NANEy7/zzvwKJsy3iNC9wwqLJA==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-darwin-arm64": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.2.tgz",
       "integrity": "sha512-619MSa17sr7YCIrUj88KzQu2ESA4jKYtIYfLU/smX6qNgxQt3Y/gzM4s6sgJ4fPQzirvmXgcHv1ZNQAs/Xh48A==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-freebsd-64": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.2.tgz",
       "integrity": "sha512-aP6FE/ZsChZpUV6F3HE3x1Pz0paoYXycJ7oLt06g0G9dhJKknPawXCqQg/WMyD+ldCEZfo7F1kavenPdIT/SGQ==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-freebsd-arm64": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.2.tgz",
       "integrity": "sha512-LSm98WTb1QIhyS83+Po0KTpZNdd2XpVpI9ua5rLWqKWbKeNRFwOsjeiuwBaRNc+O32s9oC2ZMefETxHBV6VNkQ==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-linux-32": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.2.tgz",
       "integrity": "sha512-8VxnNEyeUbiGflTKcuVc5JEPTqXfsx2O6ABwUbfS1Hp26lYPRPC7pKQK5Dxa0MBejGc50jy7YZae3EGQUQ8EkQ==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-linux-64": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.2.tgz",
       "integrity": "sha512-4bzMS2dNxOJoFIiHId4w+tqQzdnsch71JJV1qZnbnErSFWcR9lRgpSqWnTTFtv6XM+MvltRzSXC5wQ7AEBY6Hg==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-linux-arm": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.2.tgz",
       "integrity": "sha512-PaylahvMHhH8YMfJPMKEqi64qA0Su+d4FNfHKvlKes/2dUe4QxgbwXT9oLVgy8iJdcFMrO7By4R8fS8S0p8aVQ==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-linux-arm64": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.2.tgz",
       "integrity": "sha512-RlIVp0RwJrdtasDF1vTFueLYZ8WuFzxoQ1OoRFZOTyJHCGCNgh7xJIC34gd7B7+RT0CzLBB4LcM5n0LS+hIoww==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-linux-mips64le": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.2.tgz",
       "integrity": "sha512-Fdwrq2roFnO5oetIiUQQueZ3+5soCxBSJswg3MvYaXDomj47BN6oAWMZgLrFh1oVrtWrxSDLCJBenYdbm2s+qQ==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-linux-ppc64le": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.2.tgz",
       "integrity": "sha512-vxptskw8JfCDD9QqpRO0XnsM1osuWeRjPaXX1TwdveLogYsbdFtcuiuK/4FxGiNMUr1ojtnCS2rMPbY8puc5NA==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-netbsd-64": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.2.tgz",
       "integrity": "sha512-I8+LzYK5iSNpspS9eCV9sW67Rj8FgMHimGri4mKiGAmN0pNfx+hFX146rYtzGtewuxKtTsPywWteHx+hPRLDsw==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-openbsd-64": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.2.tgz",
       "integrity": "sha512-120HgMe9elidWUvM2E6mMf0csrGwx8sYDqUIJugyMy1oHm+/nT08bTAVXuwYG/rkMIqsEO9AlMxuYnwR6En/3Q==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-sunos-64": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.2.tgz",
       "integrity": "sha512-Q3xcf9Uyfra9UuCFxoLixVvdigo0daZaKJ97TL2KNA4bxRUPK18wwGUk3AxvgDQZpRmg82w9PnkaNYo7a+24ow==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-windows-32": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.2.tgz",
       "integrity": "sha512-TW7O49tPsrq+N1sW8mb3m24j/iDGa4xzAZH4wHWwoIzgtZAYPKC0hpIhufRRG/LA30bdMChO9pjJZ5mtcybtBQ==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-windows-64": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.2.tgz",
       "integrity": "sha512-Rym6ViMNmi1E2QuQMWy0AFAfdY0wGwZD73BnzlsQBX5hZBuy/L+Speh7ucUZ16gwsrMM9v86icZUDrSN/lNBKg==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "esbuild-windows-arm64": {
       "version": "0.14.2",
       "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.2.tgz",
       "integrity": "sha512-ZrLbhr0vX5Em/P1faMnHucjVVWPS+m3tktAtz93WkMZLmbRJevhiW1y4CbulBd2z0MEdXZ6emDa1zFHq5O5bSA==",
-      "optional": true
+      "optional": true,
+      "peer": true
     },
     "escalade": {
       "version": "3.1.1",
@@ -9824,12 +9865,11 @@
       }
     },
     "ts-jest": {
-      "version": "27.1.0",
-      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.0.tgz",
-      "integrity": "sha512-ZouWlP03JMtzfNHg0ZeDrxAESYGmVhWyHtIl2/01kBbXaMbTr4Vhv6/GeMxUed6GFg/4ycMo+yU6Eo9gI16xTQ==",
+      "version": "27.1.3",
+      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.3.tgz",
+      "integrity": "sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA==",
       "requires": {
         "bs-logger": "0.x",
-        "esbuild": "~0.14.0",
         "fast-json-stable-stringify": "2.x",
         "jest-util": "^27.0.0",
         "json5": "2.x",