matrix-art.meta

Issues/PRs archive for MTRNord/matrix-art
git clone git://archive.git.mtrnord.blog/MTRNord/matrix-art.meta.git
Log | Files | Refs

430.diff (42084B)


      1 diff --git a/package-lock.json b/package-lock.json
      2 index 9f8e6a0..97621c9 100644
      3 --- a/package-lock.json
      4 +++ b/package-lock.json
      5 @@ -45,7 +45,7 @@
      6          "typescript": "^4.9.4",
      7          "vite": "^4.0.4",
      8          "vite-plugin-ejs": "^1.6.4",
      9 -        "vitest": "^0.27.3"
     10 +        "vitest": "^0.30.1"
     11        }
     12      },
     13      "node_modules/@adobe/css-tools": {
     14 @@ -1572,6 +1572,76 @@
     15          "vite": "^4"
     16        }
     17      },
     18 +    "node_modules/@vitest/expect": {
     19 +      "version": "0.30.1",
     20 +      "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.30.1.tgz",
     21 +      "integrity": "sha512-c3kbEtN8XXJSeN81iDGq29bUzSjQhjES2WR3aColsS4lPGbivwLtas4DNUe0jD9gg/FYGIteqOenfU95EFituw==",
     22 +      "dev": true,
     23 +      "dependencies": {
     24 +        "@vitest/spy": "0.30.1",
     25 +        "@vitest/utils": "0.30.1",
     26 +        "chai": "^4.3.7"
     27 +      }
     28 +    },
     29 +    "node_modules/@vitest/runner": {
     30 +      "version": "0.30.1",
     31 +      "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.30.1.tgz",
     32 +      "integrity": "sha512-W62kT/8i0TF1UBCNMRtRMOBWJKRnNyv9RrjIgdUryEe0wNpGZvvwPDLuzYdxvgSckzjp54DSpv1xUbv4BQ0qVA==",
     33 +      "dev": true,
     34 +      "dependencies": {
     35 +        "@vitest/utils": "0.30.1",
     36 +        "concordance": "^5.0.4",
     37 +        "p-limit": "^4.0.0",
     38 +        "pathe": "^1.1.0"
     39 +      }
     40 +    },
     41 +    "node_modules/@vitest/runner/node_modules/p-limit": {
     42 +      "version": "4.0.0",
     43 +      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
     44 +      "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
     45 +      "dev": true,
     46 +      "dependencies": {
     47 +        "yocto-queue": "^1.0.0"
     48 +      },
     49 +      "engines": {
     50 +        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
     51 +      },
     52 +      "funding": {
     53 +        "url": "https://github.com/sponsors/sindresorhus"
     54 +      }
     55 +    },
     56 +    "node_modules/@vitest/runner/node_modules/yocto-queue": {
     57 +      "version": "1.0.0",
     58 +      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
     59 +      "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
     60 +      "dev": true,
     61 +      "engines": {
     62 +        "node": ">=12.20"
     63 +      },
     64 +      "funding": {
     65 +        "url": "https://github.com/sponsors/sindresorhus"
     66 +      }
     67 +    },
     68 +    "node_modules/@vitest/snapshot": {
     69 +      "version": "0.30.1",
     70 +      "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.30.1.tgz",
     71 +      "integrity": "sha512-fJZqKrE99zo27uoZA/azgWyWbFvM1rw2APS05yB0JaLwUIg9aUtvvnBf4q7JWhEcAHmSwbrxKFgyBUga6tq9Tw==",
     72 +      "dev": true,
     73 +      "dependencies": {
     74 +        "magic-string": "^0.30.0",
     75 +        "pathe": "^1.1.0",
     76 +        "pretty-format": "^27.5.1"
     77 +      }
     78 +    },
     79 +    "node_modules/@vitest/spy": {
     80 +      "version": "0.30.1",
     81 +      "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.30.1.tgz",
     82 +      "integrity": "sha512-YfJeIf37GvTZe04ZKxzJfnNNuNSmTEGnla2OdL60C8od16f3zOfv9q9K0nNii0NfjDJRt/CVN/POuY5/zTS+BA==",
     83 +      "dev": true,
     84 +      "dependencies": {
     85 +        "tinyspy": "^2.1.0"
     86 +      }
     87 +    },
     88      "node_modules/@vitest/ui": {
     89        "version": "0.27.3",
     90        "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.27.3.tgz",
     91 @@ -1583,6 +1653,17 @@
     92          "sirv": "^2.0.2"
     93        }
     94      },
     95 +    "node_modules/@vitest/utils": {
     96 +      "version": "0.30.1",
     97 +      "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.30.1.tgz",
     98 +      "integrity": "sha512-/c8Xv2zUVc+rnNt84QF0Y0zkfxnaGhp87K2dYJMLtLOIckPzuxLVzAtFCicGFdB4NeBHNzTRr1tNn7rCtQcWFA==",
     99 +      "dev": true,
    100 +      "dependencies": {
    101 +        "concordance": "^5.0.4",
    102 +        "loupe": "^2.3.6",
    103 +        "pretty-format": "^27.5.1"
    104 +      }
    105 +    },
    106      "node_modules/abab": {
    107        "version": "2.0.6",
    108        "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
    109 @@ -1590,9 +1671,9 @@
    110        "dev": true
    111      },
    112      "node_modules/acorn": {
    113 -      "version": "8.8.1",
    114 -      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
    115 -      "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
    116 +      "version": "8.8.2",
    117 +      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
    118 +      "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
    119        "dev": true,
    120        "bin": {
    121          "acorn": "bin/acorn"
    122 @@ -1921,6 +2002,12 @@
    123          "readable-stream": "^3.4.0"
    124        }
    125      },
    126 +    "node_modules/blueimp-md5": {
    127 +      "version": "2.19.0",
    128 +      "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz",
    129 +      "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==",
    130 +      "dev": true
    131 +    },
    132      "node_modules/brace-expansion": {
    133        "version": "1.1.11",
    134        "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
    135 @@ -2002,12 +2089,6 @@
    136          "ieee754": "^1.2.1"
    137        }
    138      },
    139 -    "node_modules/buffer-from": {
    140 -      "version": "1.1.2",
    141 -      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
    142 -      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
    143 -      "dev": true
    144 -    },
    145      "node_modules/builtin-modules": {
    146        "version": "3.3.0",
    147        "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
    148 @@ -2283,6 +2364,25 @@
    149        "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
    150        "dev": true
    151      },
    152 +    "node_modules/concordance": {
    153 +      "version": "5.0.4",
    154 +      "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz",
    155 +      "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==",
    156 +      "dev": true,
    157 +      "dependencies": {
    158 +        "date-time": "^3.1.0",
    159 +        "esutils": "^2.0.3",
    160 +        "fast-diff": "^1.2.0",
    161 +        "js-string-escape": "^1.0.1",
    162 +        "lodash": "^4.17.15",
    163 +        "md5-hex": "^3.0.1",
    164 +        "semver": "^7.3.2",
    165 +        "well-known-symbols": "^2.0.0"
    166 +      },
    167 +      "engines": {
    168 +        "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14"
    169 +      }
    170 +    },
    171      "node_modules/content-type": {
    172        "version": "1.0.4",
    173        "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
    174 @@ -2437,6 +2537,18 @@
    175          "node": ">=12"
    176        }
    177      },
    178 +    "node_modules/date-time": {
    179 +      "version": "3.1.0",
    180 +      "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz",
    181 +      "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==",
    182 +      "dev": true,
    183 +      "dependencies": {
    184 +        "time-zone": "^1.0.0"
    185 +      },
    186 +      "engines": {
    187 +        "node": ">=6"
    188 +      }
    189 +    },
    190      "node_modules/debug": {
    191        "version": "4.3.4",
    192        "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
    193 @@ -3155,6 +3267,12 @@
    194        "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
    195        "dev": true
    196      },
    197 +    "node_modules/fast-diff": {
    198 +      "version": "1.2.0",
    199 +      "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
    200 +      "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
    201 +      "dev": true
    202 +    },
    203      "node_modules/fast-glob": {
    204        "version": "3.2.12",
    205        "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
    206 @@ -4357,6 +4475,15 @@
    207          "url": "https://opencollective.com/js-sdsl"
    208        }
    209      },
    210 +    "node_modules/js-string-escape": {
    211 +      "version": "1.0.1",
    212 +      "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
    213 +      "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==",
    214 +      "dev": true,
    215 +      "engines": {
    216 +        "node": ">= 0.8"
    217 +      }
    218 +    },
    219      "node_modules/js-tokens": {
    220        "version": "4.0.0",
    221        "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
    222 @@ -4518,9 +4645,9 @@
    223        "dev": true
    224      },
    225      "node_modules/local-pkg": {
    226 -      "version": "0.4.2",
    227 -      "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.2.tgz",
    228 -      "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==",
    229 +      "version": "0.4.3",
    230 +      "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
    231 +      "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==",
    232        "dev": true,
    233        "engines": {
    234          "node": ">=14"
    235 @@ -4634,6 +4761,18 @@
    236          "lz-string": "bin/bin.js"
    237        }
    238      },
    239 +    "node_modules/magic-string": {
    240 +      "version": "0.30.0",
    241 +      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz",
    242 +      "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==",
    243 +      "dev": true,
    244 +      "dependencies": {
    245 +        "@jridgewell/sourcemap-codec": "^1.4.13"
    246 +      },
    247 +      "engines": {
    248 +        "node": ">=12"
    249 +      }
    250 +    },
    251      "node_modules/matrix-events-sdk": {
    252        "version": "0.0.1",
    253        "resolved": "https://registry.npmjs.org/matrix-events-sdk/-/matrix-events-sdk-0.0.1.tgz",
    254 @@ -4670,6 +4809,18 @@
    255          "events": "^3.2.0"
    256        }
    257      },
    258 +    "node_modules/md5-hex": {
    259 +      "version": "3.0.1",
    260 +      "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz",
    261 +      "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==",
    262 +      "dev": true,
    263 +      "dependencies": {
    264 +        "blueimp-md5": "^2.10.0"
    265 +      },
    266 +      "engines": {
    267 +        "node": ">=8"
    268 +      }
    269 +    },
    270      "node_modules/merge2": {
    271        "version": "1.4.1",
    272        "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
    273 @@ -4752,23 +4903,17 @@
    274        }
    275      },
    276      "node_modules/mlly": {
    277 -      "version": "1.1.0",
    278 -      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.1.0.tgz",
    279 -      "integrity": "sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==",
    280 +      "version": "1.2.0",
    281 +      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.0.tgz",
    282 +      "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==",
    283        "dev": true,
    284        "dependencies": {
    285 -        "acorn": "^8.8.1",
    286 -        "pathe": "^1.0.0",
    287 -        "pkg-types": "^1.0.1",
    288 -        "ufo": "^1.0.1"
    289 +        "acorn": "^8.8.2",
    290 +        "pathe": "^1.1.0",
    291 +        "pkg-types": "^1.0.2",
    292 +        "ufo": "^1.1.1"
    293        }
    294      },
    295 -    "node_modules/mlly/node_modules/pathe": {
    296 -      "version": "1.1.0",
    297 -      "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
    298 -      "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
    299 -      "dev": true
    300 -    },
    301      "node_modules/mrmime": {
    302        "version": "1.0.1",
    303        "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz",
    304 @@ -5184,9 +5329,9 @@
    305        }
    306      },
    307      "node_modules/pathe": {
    308 -      "version": "0.2.0",
    309 -      "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz",
    310 -      "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==",
    311 +      "version": "1.1.0",
    312 +      "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
    313 +      "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
    314        "dev": true
    315      },
    316      "node_modules/pathval": {
    317 @@ -5225,22 +5370,16 @@
    318        }
    319      },
    320      "node_modules/pkg-types": {
    321 -      "version": "1.0.1",
    322 -      "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.1.tgz",
    323 -      "integrity": "sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==",
    324 +      "version": "1.0.2",
    325 +      "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz",
    326 +      "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==",
    327        "dev": true,
    328        "dependencies": {
    329          "jsonc-parser": "^3.2.0",
    330 -        "mlly": "^1.0.0",
    331 -        "pathe": "^1.0.0"
    332 +        "mlly": "^1.1.1",
    333 +        "pathe": "^1.1.0"
    334        }
    335      },
    336 -    "node_modules/pkg-types/node_modules/pathe": {
    337 -      "version": "1.1.0",
    338 -      "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
    339 -      "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
    340 -      "dev": true
    341 -    },
    342      "node_modules/pluralize": {
    343        "version": "8.0.0",
    344        "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
    345 @@ -6117,16 +6256,6 @@
    346          "node": ">=0.10.0"
    347        }
    348      },
    349 -    "node_modules/source-map-support": {
    350 -      "version": "0.5.21",
    351 -      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
    352 -      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
    353 -      "dev": true,
    354 -      "dependencies": {
    355 -        "buffer-from": "^1.0.0",
    356 -        "source-map": "^0.6.0"
    357 -      }
    358 -    },
    359      "node_modules/spdx-correct": {
    360        "version": "3.1.1",
    361        "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
    362 @@ -6187,9 +6316,9 @@
    363        "dev": true
    364      },
    365      "node_modules/std-env": {
    366 -      "version": "3.3.1",
    367 -      "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.1.tgz",
    368 -      "integrity": "sha512-3H20QlwQsSm2OvAxWIYhs+j01MzzqwMwGiiO1NQaJYZgJZFPuAbf95/DiKRBSTYIJ2FeGUc+B/6mPGcWP9dO3Q==",
    369 +      "version": "3.3.2",
    370 +      "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz",
    371 +      "integrity": "sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==",
    372        "dev": true
    373      },
    374      "node_modules/string_decoder": {
    375 @@ -6278,12 +6407,12 @@
    376        }
    377      },
    378      "node_modules/strip-literal": {
    379 -      "version": "1.0.0",
    380 -      "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.0.tgz",
    381 -      "integrity": "sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ==",
    382 +      "version": "1.0.1",
    383 +      "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz",
    384 +      "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==",
    385        "dev": true,
    386        "dependencies": {
    387 -        "acorn": "^8.8.1"
    388 +        "acorn": "^8.8.2"
    389        },
    390        "funding": {
    391          "url": "https://github.com/sponsors/antfu"
    392 @@ -6420,25 +6549,34 @@
    393        "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
    394        "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
    395      },
    396 +    "node_modules/time-zone": {
    397 +      "version": "1.0.0",
    398 +      "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz",
    399 +      "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==",
    400 +      "dev": true,
    401 +      "engines": {
    402 +        "node": ">=4"
    403 +      }
    404 +    },
    405      "node_modules/tinybench": {
    406 -      "version": "2.3.1",
    407 -      "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.3.1.tgz",
    408 -      "integrity": "sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==",
    409 +      "version": "2.4.0",
    410 +      "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz",
    411 +      "integrity": "sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==",
    412        "dev": true
    413      },
    414      "node_modules/tinypool": {
    415 -      "version": "0.3.0",
    416 -      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.0.tgz",
    417 -      "integrity": "sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==",
    418 +      "version": "0.4.0",
    419 +      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.4.0.tgz",
    420 +      "integrity": "sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==",
    421        "dev": true,
    422        "engines": {
    423          "node": ">=14.0.0"
    424        }
    425      },
    426      "node_modules/tinyspy": {
    427 -      "version": "1.0.2",
    428 -      "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.0.2.tgz",
    429 -      "integrity": "sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==",
    430 +      "version": "2.1.0",
    431 +      "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.0.tgz",
    432 +      "integrity": "sha512-7eORpyqImoOvkQJCSkL0d0mB4NHHIFAy4b1u8PHdDa7SjGS2njzl6/lyGoZLm+eyYEtlUmFGE0rFj66SWxZgQQ==",
    433        "dev": true,
    434        "engines": {
    435          "node": ">=14.0.0"
    436 @@ -6577,9 +6715,9 @@
    437        }
    438      },
    439      "node_modules/ufo": {
    440 -      "version": "1.0.1",
    441 -      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.0.1.tgz",
    442 -      "integrity": "sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==",
    443 +      "version": "1.1.1",
    444 +      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz",
    445 +      "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==",
    446        "dev": true
    447      },
    448      "node_modules/unhomoglyph": {
    449 @@ -6714,25 +6852,23 @@
    450        }
    451      },
    452      "node_modules/vite-node": {
    453 -      "version": "0.27.3",
    454 -      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.27.3.tgz",
    455 -      "integrity": "sha512-eyJYOO64o5HIp8poc4bJX+ZNBwMZeI3f6/JdiUmJgW02Mt7LnoCtDMRVmLaY9S05SIsjGe339ZK4uo2wQ+bF9g==",
    456 +      "version": "0.30.1",
    457 +      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.30.1.tgz",
    458 +      "integrity": "sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==",
    459        "dev": true,
    460        "dependencies": {
    461          "cac": "^6.7.14",
    462          "debug": "^4.3.4",
    463 -        "mlly": "^1.1.0",
    464 -        "pathe": "^0.2.0",
    465 +        "mlly": "^1.2.0",
    466 +        "pathe": "^1.1.0",
    467          "picocolors": "^1.0.0",
    468 -        "source-map": "^0.6.1",
    469 -        "source-map-support": "^0.5.21",
    470          "vite": "^3.0.0 || ^4.0.0"
    471        },
    472        "bin": {
    473          "vite-node": "vite-node.mjs"
    474        },
    475        "engines": {
    476 -        "node": ">=v14.16.0"
    477 +        "node": ">=v14.18.0"
    478        },
    479        "funding": {
    480          "url": "https://github.com/sponsors/antfu"
    481 @@ -6748,36 +6884,43 @@
    482        }
    483      },
    484      "node_modules/vitest": {
    485 -      "version": "0.27.3",
    486 -      "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.27.3.tgz",
    487 -      "integrity": "sha512-Ld3UVgRVhJUtqvQ3dW89GxiApFAgBsWJZBCWzK+gA3w2yG68csXlGZZ4WDJURf+8ecNfgrScga6xY+8YSOpiMg==",
    488 +      "version": "0.30.1",
    489 +      "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.30.1.tgz",
    490 +      "integrity": "sha512-y35WTrSTlTxfMLttgQk4rHcaDkbHQwDP++SNwPb+7H8yb13Q3cu2EixrtHzF27iZ8v0XCciSsLg00RkPAzB/aA==",
    491        "dev": true,
    492        "dependencies": {
    493          "@types/chai": "^4.3.4",
    494          "@types/chai-subset": "^1.3.3",
    495          "@types/node": "*",
    496 -        "acorn": "^8.8.1",
    497 +        "@vitest/expect": "0.30.1",
    498 +        "@vitest/runner": "0.30.1",
    499 +        "@vitest/snapshot": "0.30.1",
    500 +        "@vitest/spy": "0.30.1",
    501 +        "@vitest/utils": "0.30.1",
    502 +        "acorn": "^8.8.2",
    503          "acorn-walk": "^8.2.0",
    504          "cac": "^6.7.14",
    505          "chai": "^4.3.7",
    506 +        "concordance": "^5.0.4",
    507          "debug": "^4.3.4",
    508 -        "local-pkg": "^0.4.2",
    509 +        "local-pkg": "^0.4.3",
    510 +        "magic-string": "^0.30.0",
    511 +        "pathe": "^1.1.0",
    512          "picocolors": "^1.0.0",
    513          "source-map": "^0.6.1",
    514 -        "std-env": "^3.3.1",
    515 -        "strip-literal": "^1.0.0",
    516 -        "tinybench": "^2.3.1",
    517 -        "tinypool": "^0.3.0",
    518 -        "tinyspy": "^1.0.2",
    519 +        "std-env": "^3.3.2",
    520 +        "strip-literal": "^1.0.1",
    521 +        "tinybench": "^2.4.0",
    522 +        "tinypool": "^0.4.0",
    523          "vite": "^3.0.0 || ^4.0.0",
    524 -        "vite-node": "0.27.3",
    525 +        "vite-node": "0.30.1",
    526          "why-is-node-running": "^2.2.2"
    527        },
    528        "bin": {
    529          "vitest": "vitest.mjs"
    530        },
    531        "engines": {
    532 -        "node": ">=v14.16.0"
    533 +        "node": ">=v14.18.0"
    534        },
    535        "funding": {
    536          "url": "https://github.com/sponsors/antfu"
    537 @@ -6787,7 +6930,10 @@
    538          "@vitest/browser": "*",
    539          "@vitest/ui": "*",
    540          "happy-dom": "*",
    541 -        "jsdom": "*"
    542 +        "jsdom": "*",
    543 +        "playwright": "*",
    544 +        "safaridriver": "*",
    545 +        "webdriverio": "*"
    546        },
    547        "peerDependenciesMeta": {
    548          "@edge-runtime/vm": {
    549 @@ -6804,6 +6950,15 @@
    550          },
    551          "jsdom": {
    552            "optional": true
    553 +        },
    554 +        "playwright": {
    555 +          "optional": true
    556 +        },
    557 +        "safaridriver": {
    558 +          "optional": true
    559 +        },
    560 +        "webdriverio": {
    561 +          "optional": true
    562          }
    563        }
    564      },
    565 @@ -6849,6 +7004,15 @@
    566        "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
    567        "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
    568      },
    569 +    "node_modules/well-known-symbols": {
    570 +      "version": "2.0.0",
    571 +      "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz",
    572 +      "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==",
    573 +      "dev": true,
    574 +      "engines": {
    575 +        "node": ">=6"
    576 +      }
    577 +    },
    578      "node_modules/whatwg-encoding": {
    579        "version": "2.0.0",
    580        "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
    581 @@ -8092,6 +8256,66 @@
    582          "@swc/core": "^1.3.22"
    583        }
    584      },
    585 +    "@vitest/expect": {
    586 +      "version": "0.30.1",
    587 +      "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.30.1.tgz",
    588 +      "integrity": "sha512-c3kbEtN8XXJSeN81iDGq29bUzSjQhjES2WR3aColsS4lPGbivwLtas4DNUe0jD9gg/FYGIteqOenfU95EFituw==",
    589 +      "dev": true,
    590 +      "requires": {
    591 +        "@vitest/spy": "0.30.1",
    592 +        "@vitest/utils": "0.30.1",
    593 +        "chai": "^4.3.7"
    594 +      }
    595 +    },
    596 +    "@vitest/runner": {
    597 +      "version": "0.30.1",
    598 +      "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.30.1.tgz",
    599 +      "integrity": "sha512-W62kT/8i0TF1UBCNMRtRMOBWJKRnNyv9RrjIgdUryEe0wNpGZvvwPDLuzYdxvgSckzjp54DSpv1xUbv4BQ0qVA==",
    600 +      "dev": true,
    601 +      "requires": {
    602 +        "@vitest/utils": "0.30.1",
    603 +        "concordance": "^5.0.4",
    604 +        "p-limit": "^4.0.0",
    605 +        "pathe": "^1.1.0"
    606 +      },
    607 +      "dependencies": {
    608 +        "p-limit": {
    609 +          "version": "4.0.0",
    610 +          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
    611 +          "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
    612 +          "dev": true,
    613 +          "requires": {
    614 +            "yocto-queue": "^1.0.0"
    615 +          }
    616 +        },
    617 +        "yocto-queue": {
    618 +          "version": "1.0.0",
    619 +          "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
    620 +          "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
    621 +          "dev": true
    622 +        }
    623 +      }
    624 +    },
    625 +    "@vitest/snapshot": {
    626 +      "version": "0.30.1",
    627 +      "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.30.1.tgz",
    628 +      "integrity": "sha512-fJZqKrE99zo27uoZA/azgWyWbFvM1rw2APS05yB0JaLwUIg9aUtvvnBf4q7JWhEcAHmSwbrxKFgyBUga6tq9Tw==",
    629 +      "dev": true,
    630 +      "requires": {
    631 +        "magic-string": "^0.30.0",
    632 +        "pathe": "^1.1.0",
    633 +        "pretty-format": "^27.5.1"
    634 +      }
    635 +    },
    636 +    "@vitest/spy": {
    637 +      "version": "0.30.1",
    638 +      "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.30.1.tgz",
    639 +      "integrity": "sha512-YfJeIf37GvTZe04ZKxzJfnNNuNSmTEGnla2OdL60C8od16f3zOfv9q9K0nNii0NfjDJRt/CVN/POuY5/zTS+BA==",
    640 +      "dev": true,
    641 +      "requires": {
    642 +        "tinyspy": "^2.1.0"
    643 +      }
    644 +    },
    645      "@vitest/ui": {
    646        "version": "0.27.3",
    647        "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.27.3.tgz",
    648 @@ -8103,6 +8327,17 @@
    649          "sirv": "^2.0.2"
    650        }
    651      },
    652 +    "@vitest/utils": {
    653 +      "version": "0.30.1",
    654 +      "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.30.1.tgz",
    655 +      "integrity": "sha512-/c8Xv2zUVc+rnNt84QF0Y0zkfxnaGhp87K2dYJMLtLOIckPzuxLVzAtFCicGFdB4NeBHNzTRr1tNn7rCtQcWFA==",
    656 +      "dev": true,
    657 +      "requires": {
    658 +        "concordance": "^5.0.4",
    659 +        "loupe": "^2.3.6",
    660 +        "pretty-format": "^27.5.1"
    661 +      }
    662 +    },
    663      "abab": {
    664        "version": "2.0.6",
    665        "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
    666 @@ -8110,9 +8345,9 @@
    667        "dev": true
    668      },
    669      "acorn": {
    670 -      "version": "8.8.1",
    671 -      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
    672 -      "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
    673 +      "version": "8.8.2",
    674 +      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
    675 +      "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
    676        "dev": true
    677      },
    678      "acorn-globals": {
    679 @@ -8345,6 +8580,12 @@
    680          "readable-stream": "^3.4.0"
    681        }
    682      },
    683 +    "blueimp-md5": {
    684 +      "version": "2.19.0",
    685 +      "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz",
    686 +      "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==",
    687 +      "dev": true
    688 +    },
    689      "brace-expansion": {
    690        "version": "1.1.11",
    691        "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
    692 @@ -8393,12 +8634,6 @@
    693          "ieee754": "^1.2.1"
    694        }
    695      },
    696 -    "buffer-from": {
    697 -      "version": "1.1.2",
    698 -      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
    699 -      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
    700 -      "dev": true
    701 -    },
    702      "builtin-modules": {
    703        "version": "3.3.0",
    704        "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
    705 @@ -8582,6 +8817,22 @@
    706        "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
    707        "dev": true
    708      },
    709 +    "concordance": {
    710 +      "version": "5.0.4",
    711 +      "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz",
    712 +      "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==",
    713 +      "dev": true,
    714 +      "requires": {
    715 +        "date-time": "^3.1.0",
    716 +        "esutils": "^2.0.3",
    717 +        "fast-diff": "^1.2.0",
    718 +        "js-string-escape": "^1.0.1",
    719 +        "lodash": "^4.17.15",
    720 +        "md5-hex": "^3.0.1",
    721 +        "semver": "^7.3.2",
    722 +        "well-known-symbols": "^2.0.0"
    723 +      }
    724 +    },
    725      "content-type": {
    726        "version": "1.0.4",
    727        "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
    728 @@ -8705,6 +8956,15 @@
    729          }
    730        }
    731      },
    732 +    "date-time": {
    733 +      "version": "3.1.0",
    734 +      "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz",
    735 +      "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==",
    736 +      "dev": true,
    737 +      "requires": {
    738 +        "time-zone": "^1.0.0"
    739 +      }
    740 +    },
    741      "debug": {
    742        "version": "4.3.4",
    743        "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
    744 @@ -9245,6 +9505,12 @@
    745        "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
    746        "dev": true
    747      },
    748 +    "fast-diff": {
    749 +      "version": "1.2.0",
    750 +      "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
    751 +      "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
    752 +      "dev": true
    753 +    },
    754      "fast-glob": {
    755        "version": "3.2.12",
    756        "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
    757 @@ -10116,6 +10382,12 @@
    758        "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
    759        "dev": true
    760      },
    761 +    "js-string-escape": {
    762 +      "version": "1.0.1",
    763 +      "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
    764 +      "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==",
    765 +      "dev": true
    766 +    },
    767      "js-tokens": {
    768        "version": "4.0.0",
    769        "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
    770 @@ -10244,9 +10516,9 @@
    771        "dev": true
    772      },
    773      "local-pkg": {
    774 -      "version": "0.4.2",
    775 -      "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.2.tgz",
    776 -      "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==",
    777 +      "version": "0.4.3",
    778 +      "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
    779 +      "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==",
    780        "dev": true
    781      },
    782      "locate-path": {
    783 @@ -10322,6 +10594,15 @@
    784        "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==",
    785        "dev": true
    786      },
    787 +    "magic-string": {
    788 +      "version": "0.30.0",
    789 +      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz",
    790 +      "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==",
    791 +      "dev": true,
    792 +      "requires": {
    793 +        "@jridgewell/sourcemap-codec": "^1.4.13"
    794 +      }
    795 +    },
    796      "matrix-events-sdk": {
    797        "version": "0.0.1",
    798        "resolved": "https://registry.npmjs.org/matrix-events-sdk/-/matrix-events-sdk-0.0.1.tgz",
    799 @@ -10355,6 +10636,15 @@
    800          "events": "^3.2.0"
    801        }
    802      },
    803 +    "md5-hex": {
    804 +      "version": "3.0.1",
    805 +      "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz",
    806 +      "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==",
    807 +      "dev": true,
    808 +      "requires": {
    809 +        "blueimp-md5": "^2.10.0"
    810 +      }
    811 +    },
    812      "merge2": {
    813        "version": "1.4.1",
    814        "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
    815 @@ -10413,23 +10703,15 @@
    816        "dev": true
    817      },
    818      "mlly": {
    819 -      "version": "1.1.0",
    820 -      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.1.0.tgz",
    821 -      "integrity": "sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==",
    822 +      "version": "1.2.0",
    823 +      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.0.tgz",
    824 +      "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==",
    825        "dev": true,
    826        "requires": {
    827 -        "acorn": "^8.8.1",
    828 -        "pathe": "^1.0.0",
    829 -        "pkg-types": "^1.0.1",
    830 -        "ufo": "^1.0.1"
    831 -      },
    832 -      "dependencies": {
    833 -        "pathe": {
    834 -          "version": "1.1.0",
    835 -          "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
    836 -          "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
    837 -          "dev": true
    838 -        }
    839 +        "acorn": "^8.8.2",
    840 +        "pathe": "^1.1.0",
    841 +        "pkg-types": "^1.0.2",
    842 +        "ufo": "^1.1.1"
    843        }
    844      },
    845      "mrmime": {
    846 @@ -10723,9 +11005,9 @@
    847        "dev": true
    848      },
    849      "pathe": {
    850 -      "version": "0.2.0",
    851 -      "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz",
    852 -      "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==",
    853 +      "version": "1.1.0",
    854 +      "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
    855 +      "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
    856        "dev": true
    857      },
    858      "pathval": {
    859 @@ -10752,22 +11034,14 @@
    860        "dev": true
    861      },
    862      "pkg-types": {
    863 -      "version": "1.0.1",
    864 -      "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.1.tgz",
    865 -      "integrity": "sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==",
    866 +      "version": "1.0.2",
    867 +      "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz",
    868 +      "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==",
    869        "dev": true,
    870        "requires": {
    871          "jsonc-parser": "^3.2.0",
    872 -        "mlly": "^1.0.0",
    873 -        "pathe": "^1.0.0"
    874 -      },
    875 -      "dependencies": {
    876 -        "pathe": {
    877 -          "version": "1.1.0",
    878 -          "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
    879 -          "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
    880 -          "dev": true
    881 -        }
    882 +        "mlly": "^1.1.1",
    883 +        "pathe": "^1.1.0"
    884        }
    885      },
    886      "pluralize": {
    887 @@ -11354,16 +11628,6 @@
    888        "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
    889        "dev": true
    890      },
    891 -    "source-map-support": {
    892 -      "version": "0.5.21",
    893 -      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
    894 -      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
    895 -      "dev": true,
    896 -      "requires": {
    897 -        "buffer-from": "^1.0.0",
    898 -        "source-map": "^0.6.0"
    899 -      }
    900 -    },
    901      "spdx-correct": {
    902        "version": "3.1.1",
    903        "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
    904 @@ -11420,9 +11684,9 @@
    905        "dev": true
    906      },
    907      "std-env": {
    908 -      "version": "3.3.1",
    909 -      "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.1.tgz",
    910 -      "integrity": "sha512-3H20QlwQsSm2OvAxWIYhs+j01MzzqwMwGiiO1NQaJYZgJZFPuAbf95/DiKRBSTYIJ2FeGUc+B/6mPGcWP9dO3Q==",
    911 +      "version": "3.3.2",
    912 +      "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz",
    913 +      "integrity": "sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==",
    914        "dev": true
    915      },
    916      "string_decoder": {
    917 @@ -11483,12 +11747,12 @@
    918        "dev": true
    919      },
    920      "strip-literal": {
    921 -      "version": "1.0.0",
    922 -      "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.0.tgz",
    923 -      "integrity": "sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ==",
    924 +      "version": "1.0.1",
    925 +      "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz",
    926 +      "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==",
    927        "dev": true,
    928        "requires": {
    929 -        "acorn": "^8.8.1"
    930 +        "acorn": "^8.8.2"
    931        }
    932      },
    933      "styled-components": {
    934 @@ -11586,22 +11850,28 @@
    935        "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
    936        "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
    937      },
    938 +    "time-zone": {
    939 +      "version": "1.0.0",
    940 +      "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz",
    941 +      "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==",
    942 +      "dev": true
    943 +    },
    944      "tinybench": {
    945 -      "version": "2.3.1",
    946 -      "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.3.1.tgz",
    947 -      "integrity": "sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==",
    948 +      "version": "2.4.0",
    949 +      "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz",
    950 +      "integrity": "sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==",
    951        "dev": true
    952      },
    953      "tinypool": {
    954 -      "version": "0.3.0",
    955 -      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.0.tgz",
    956 -      "integrity": "sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==",
    957 +      "version": "0.4.0",
    958 +      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.4.0.tgz",
    959 +      "integrity": "sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==",
    960        "dev": true
    961      },
    962      "tinyspy": {
    963 -      "version": "1.0.2",
    964 -      "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.0.2.tgz",
    965 -      "integrity": "sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==",
    966 +      "version": "2.1.0",
    967 +      "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.0.tgz",
    968 +      "integrity": "sha512-7eORpyqImoOvkQJCSkL0d0mB4NHHIFAy4b1u8PHdDa7SjGS2njzl6/lyGoZLm+eyYEtlUmFGE0rFj66SWxZgQQ==",
    969        "dev": true
    970      },
    971      "tmp": {
    972 @@ -11699,9 +11969,9 @@
    973        "dev": true
    974      },
    975      "ufo": {
    976 -      "version": "1.0.1",
    977 -      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.0.1.tgz",
    978 -      "integrity": "sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==",
    979 +      "version": "1.1.1",
    980 +      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz",
    981 +      "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==",
    982        "dev": true
    983      },
    984      "unhomoglyph": {
    985 @@ -11778,18 +12048,16 @@
    986        }
    987      },
    988      "vite-node": {
    989 -      "version": "0.27.3",
    990 -      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.27.3.tgz",
    991 -      "integrity": "sha512-eyJYOO64o5HIp8poc4bJX+ZNBwMZeI3f6/JdiUmJgW02Mt7LnoCtDMRVmLaY9S05SIsjGe339ZK4uo2wQ+bF9g==",
    992 +      "version": "0.30.1",
    993 +      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.30.1.tgz",
    994 +      "integrity": "sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==",
    995        "dev": true,
    996        "requires": {
    997          "cac": "^6.7.14",
    998          "debug": "^4.3.4",
    999 -        "mlly": "^1.1.0",
   1000 -        "pathe": "^0.2.0",
   1001 +        "mlly": "^1.2.0",
   1002 +        "pathe": "^1.1.0",
   1003          "picocolors": "^1.0.0",
   1004 -        "source-map": "^0.6.1",
   1005 -        "source-map-support": "^0.5.21",
   1006          "vite": "^3.0.0 || ^4.0.0"
   1007        }
   1008      },
   1009 @@ -11803,29 +12071,36 @@
   1010        }
   1011      },
   1012      "vitest": {
   1013 -      "version": "0.27.3",
   1014 -      "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.27.3.tgz",
   1015 -      "integrity": "sha512-Ld3UVgRVhJUtqvQ3dW89GxiApFAgBsWJZBCWzK+gA3w2yG68csXlGZZ4WDJURf+8ecNfgrScga6xY+8YSOpiMg==",
   1016 +      "version": "0.30.1",
   1017 +      "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.30.1.tgz",
   1018 +      "integrity": "sha512-y35WTrSTlTxfMLttgQk4rHcaDkbHQwDP++SNwPb+7H8yb13Q3cu2EixrtHzF27iZ8v0XCciSsLg00RkPAzB/aA==",
   1019        "dev": true,
   1020        "requires": {
   1021          "@types/chai": "^4.3.4",
   1022          "@types/chai-subset": "^1.3.3",
   1023          "@types/node": "*",
   1024 -        "acorn": "^8.8.1",
   1025 +        "@vitest/expect": "0.30.1",
   1026 +        "@vitest/runner": "0.30.1",
   1027 +        "@vitest/snapshot": "0.30.1",
   1028 +        "@vitest/spy": "0.30.1",
   1029 +        "@vitest/utils": "0.30.1",
   1030 +        "acorn": "^8.8.2",
   1031          "acorn-walk": "^8.2.0",
   1032          "cac": "^6.7.14",
   1033          "chai": "^4.3.7",
   1034 +        "concordance": "^5.0.4",
   1035          "debug": "^4.3.4",
   1036 -        "local-pkg": "^0.4.2",
   1037 +        "local-pkg": "^0.4.3",
   1038 +        "magic-string": "^0.30.0",
   1039 +        "pathe": "^1.1.0",
   1040          "picocolors": "^1.0.0",
   1041          "source-map": "^0.6.1",
   1042 -        "std-env": "^3.3.1",
   1043 -        "strip-literal": "^1.0.0",
   1044 -        "tinybench": "^2.3.1",
   1045 -        "tinypool": "^0.3.0",
   1046 -        "tinyspy": "^1.0.2",
   1047 +        "std-env": "^3.3.2",
   1048 +        "strip-literal": "^1.0.1",
   1049 +        "tinybench": "^2.4.0",
   1050 +        "tinypool": "^0.4.0",
   1051          "vite": "^3.0.0 || ^4.0.0",
   1052 -        "vite-node": "0.27.3",
   1053 +        "vite-node": "0.30.1",
   1054          "why-is-node-running": "^2.2.2"
   1055        },
   1056        "dependencies": {
   1057 @@ -11864,6 +12139,12 @@
   1058        "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
   1059        "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
   1060      },
   1061 +    "well-known-symbols": {
   1062 +      "version": "2.0.0",
   1063 +      "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz",
   1064 +      "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==",
   1065 +      "dev": true
   1066 +    },
   1067      "whatwg-encoding": {
   1068        "version": "2.0.0",
   1069        "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
   1070 diff --git a/package.json b/package.json
   1071 index da65691..17f26ec 100644
   1072 --- a/package.json
   1073 +++ b/package.json
   1074 @@ -50,6 +50,6 @@
   1075      "typescript": "^4.9.4",
   1076      "vite": "^4.0.4",
   1077      "vite-plugin-ejs": "^1.6.4",
   1078 -    "vitest": "^0.27.3"
   1079 +    "vitest": "^0.30.1"
   1080    }
   1081  }
   1082 \ No newline at end of file