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

482.diff (45912B)


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