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

383.diff (28778B)


      1 diff --git a/package-lock.json b/package-lock.json
      2 index 9f8e6a0..b14d558 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.29.3"
     11        }
     12      },
     13      "node_modules/@adobe/css-tools": {
     14 @@ -1572,6 +1572,64 @@
     15          "vite": "^4"
     16        }
     17      },
     18 +    "node_modules/@vitest/expect": {
     19 +      "version": "0.29.3",
     20 +      "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.29.3.tgz",
     21 +      "integrity": "sha512-z/0JqBqqrdtrT/wzxNrWC76EpkOHdl+SvuNGxWulLaoluygntYyG5wJul5u/rQs5875zfFz/F+JaDf90SkLUIg==",
     22 +      "dev": true,
     23 +      "dependencies": {
     24 +        "@vitest/spy": "0.29.3",
     25 +        "@vitest/utils": "0.29.3",
     26 +        "chai": "^4.3.7"
     27 +      }
     28 +    },
     29 +    "node_modules/@vitest/runner": {
     30 +      "version": "0.29.3",
     31 +      "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.29.3.tgz",
     32 +      "integrity": "sha512-XLi8ctbvOWhUWmuvBUSIBf8POEDH4zCh6bOuVxm/KGfARpgmVF1ku+vVNvyq85va+7qXxtl+MFmzyXQ2xzhAvw==",
     33 +      "dev": true,
     34 +      "dependencies": {
     35 +        "@vitest/utils": "0.29.3",
     36 +        "p-limit": "^4.0.0",
     37 +        "pathe": "^1.1.0"
     38 +      }
     39 +    },
     40 +    "node_modules/@vitest/runner/node_modules/p-limit": {
     41 +      "version": "4.0.0",
     42 +      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
     43 +      "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
     44 +      "dev": true,
     45 +      "dependencies": {
     46 +        "yocto-queue": "^1.0.0"
     47 +      },
     48 +      "engines": {
     49 +        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
     50 +      },
     51 +      "funding": {
     52 +        "url": "https://github.com/sponsors/sindresorhus"
     53 +      }
     54 +    },
     55 +    "node_modules/@vitest/runner/node_modules/yocto-queue": {
     56 +      "version": "1.0.0",
     57 +      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
     58 +      "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
     59 +      "dev": true,
     60 +      "engines": {
     61 +        "node": ">=12.20"
     62 +      },
     63 +      "funding": {
     64 +        "url": "https://github.com/sponsors/sindresorhus"
     65 +      }
     66 +    },
     67 +    "node_modules/@vitest/spy": {
     68 +      "version": "0.29.3",
     69 +      "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.29.3.tgz",
     70 +      "integrity": "sha512-LLpCb1oOCOZcBm0/Oxbr1DQTuKLRBsSIHyLYof7z4QVE8/v8NcZKdORjMUq645fcfX55+nLXwU/1AQ+c2rND+w==",
     71 +      "dev": true,
     72 +      "dependencies": {
     73 +        "tinyspy": "^1.0.2"
     74 +      }
     75 +    },
     76      "node_modules/@vitest/ui": {
     77        "version": "0.27.3",
     78        "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.27.3.tgz",
     79 @@ -1583,6 +1641,18 @@
     80          "sirv": "^2.0.2"
     81        }
     82      },
     83 +    "node_modules/@vitest/utils": {
     84 +      "version": "0.29.3",
     85 +      "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.29.3.tgz",
     86 +      "integrity": "sha512-hg4Ff8AM1GtUnLpUJlNMxrf9f4lZr/xRJjh3uJ0QFP+vjaW82HAxKrmeBmLnhc8Os2eRf+f+VBu4ts7TafPPkA==",
     87 +      "dev": true,
     88 +      "dependencies": {
     89 +        "cli-truncate": "^3.1.0",
     90 +        "diff": "^5.1.0",
     91 +        "loupe": "^2.3.6",
     92 +        "pretty-format": "^27.5.1"
     93 +      }
     94 +    },
     95      "node_modules/abab": {
     96        "version": "2.0.6",
     97        "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
     98 @@ -1590,9 +1660,9 @@
     99        "dev": true
    100      },
    101      "node_modules/acorn": {
    102 -      "version": "8.8.1",
    103 -      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
    104 -      "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
    105 +      "version": "8.8.2",
    106 +      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
    107 +      "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
    108        "dev": true,
    109        "bin": {
    110          "acorn": "bin/acorn"
    111 @@ -2002,12 +2072,6 @@
    112          "ieee754": "^1.2.1"
    113        }
    114      },
    115 -    "node_modules/buffer-from": {
    116 -      "version": "1.1.2",
    117 -      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
    118 -      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
    119 -      "dev": true
    120 -    },
    121      "node_modules/builtin-modules": {
    122        "version": "3.3.0",
    123        "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
    124 @@ -2231,6 +2295,22 @@
    125          "url": "https://github.com/sponsors/sindresorhus"
    126        }
    127      },
    128 +    "node_modules/cli-truncate": {
    129 +      "version": "3.1.0",
    130 +      "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
    131 +      "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
    132 +      "dev": true,
    133 +      "dependencies": {
    134 +        "slice-ansi": "^5.0.0",
    135 +        "string-width": "^5.0.0"
    136 +      },
    137 +      "engines": {
    138 +        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
    139 +      },
    140 +      "funding": {
    141 +        "url": "https://github.com/sponsors/sindresorhus"
    142 +      }
    143 +    },
    144      "node_modules/cli-width": {
    145        "version": "4.0.0",
    146        "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz",
    147 @@ -2571,6 +2651,15 @@
    148        "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
    149        "dev": true
    150      },
    151 +    "node_modules/diff": {
    152 +      "version": "5.1.0",
    153 +      "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
    154 +      "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
    155 +      "dev": true,
    156 +      "engines": {
    157 +        "node": ">=0.3.1"
    158 +      }
    159 +    },
    160      "node_modules/diff-sequences": {
    161        "version": "29.3.1",
    162        "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz",
    163 @@ -3985,6 +4074,18 @@
    164          "node": ">=0.10.0"
    165        }
    166      },
    167 +    "node_modules/is-fullwidth-code-point": {
    168 +      "version": "4.0.0",
    169 +      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
    170 +      "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
    171 +      "dev": true,
    172 +      "engines": {
    173 +        "node": ">=12"
    174 +      },
    175 +      "funding": {
    176 +        "url": "https://github.com/sponsors/sindresorhus"
    177 +      }
    178 +    },
    179      "node_modules/is-glob": {
    180        "version": "4.0.3",
    181        "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
    182 @@ -4752,23 +4853,17 @@
    183        }
    184      },
    185      "node_modules/mlly": {
    186 -      "version": "1.1.0",
    187 -      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.1.0.tgz",
    188 -      "integrity": "sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==",
    189 +      "version": "1.2.0",
    190 +      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.0.tgz",
    191 +      "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==",
    192        "dev": true,
    193        "dependencies": {
    194 -        "acorn": "^8.8.1",
    195 -        "pathe": "^1.0.0",
    196 -        "pkg-types": "^1.0.1",
    197 -        "ufo": "^1.0.1"
    198 +        "acorn": "^8.8.2",
    199 +        "pathe": "^1.1.0",
    200 +        "pkg-types": "^1.0.2",
    201 +        "ufo": "^1.1.1"
    202        }
    203      },
    204 -    "node_modules/mlly/node_modules/pathe": {
    205 -      "version": "1.1.0",
    206 -      "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
    207 -      "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
    208 -      "dev": true
    209 -    },
    210      "node_modules/mrmime": {
    211        "version": "1.0.1",
    212        "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz",
    213 @@ -5184,9 +5279,9 @@
    214        }
    215      },
    216      "node_modules/pathe": {
    217 -      "version": "0.2.0",
    218 -      "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz",
    219 -      "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==",
    220 +      "version": "1.1.0",
    221 +      "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
    222 +      "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
    223        "dev": true
    224      },
    225      "node_modules/pathval": {
    226 @@ -5225,22 +5320,16 @@
    227        }
    228      },
    229      "node_modules/pkg-types": {
    230 -      "version": "1.0.1",
    231 -      "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.1.tgz",
    232 -      "integrity": "sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==",
    233 +      "version": "1.0.2",
    234 +      "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz",
    235 +      "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==",
    236        "dev": true,
    237        "dependencies": {
    238          "jsonc-parser": "^3.2.0",
    239 -        "mlly": "^1.0.0",
    240 -        "pathe": "^1.0.0"
    241 +        "mlly": "^1.1.1",
    242 +        "pathe": "^1.1.0"
    243        }
    244      },
    245 -    "node_modules/pkg-types/node_modules/pathe": {
    246 -      "version": "1.1.0",
    247 -      "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
    248 -      "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
    249 -      "dev": true
    250 -    },
    251      "node_modules/pluralize": {
    252        "version": "8.0.0",
    253        "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
    254 @@ -6099,6 +6188,34 @@
    255          "node": ">=8"
    256        }
    257      },
    258 +    "node_modules/slice-ansi": {
    259 +      "version": "5.0.0",
    260 +      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
    261 +      "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
    262 +      "dev": true,
    263 +      "dependencies": {
    264 +        "ansi-styles": "^6.0.0",
    265 +        "is-fullwidth-code-point": "^4.0.0"
    266 +      },
    267 +      "engines": {
    268 +        "node": ">=12"
    269 +      },
    270 +      "funding": {
    271 +        "url": "https://github.com/chalk/slice-ansi?sponsor=1"
    272 +      }
    273 +    },
    274 +    "node_modules/slice-ansi/node_modules/ansi-styles": {
    275 +      "version": "6.2.1",
    276 +      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
    277 +      "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
    278 +      "dev": true,
    279 +      "engines": {
    280 +        "node": ">=12"
    281 +      },
    282 +      "funding": {
    283 +        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
    284 +      }
    285 +    },
    286      "node_modules/source-map": {
    287        "version": "0.6.1",
    288        "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
    289 @@ -6117,16 +6234,6 @@
    290          "node": ">=0.10.0"
    291        }
    292      },
    293 -    "node_modules/source-map-support": {
    294 -      "version": "0.5.21",
    295 -      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
    296 -      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
    297 -      "dev": true,
    298 -      "dependencies": {
    299 -        "buffer-from": "^1.0.0",
    300 -        "source-map": "^0.6.0"
    301 -      }
    302 -    },
    303      "node_modules/spdx-correct": {
    304        "version": "3.1.1",
    305        "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
    306 @@ -6427,9 +6534,9 @@
    307        "dev": true
    308      },
    309      "node_modules/tinypool": {
    310 -      "version": "0.3.0",
    311 -      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.0.tgz",
    312 -      "integrity": "sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==",
    313 +      "version": "0.3.1",
    314 +      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.1.tgz",
    315 +      "integrity": "sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==",
    316        "dev": true,
    317        "engines": {
    318          "node": ">=14.0.0"
    319 @@ -6577,9 +6684,9 @@
    320        }
    321      },
    322      "node_modules/ufo": {
    323 -      "version": "1.0.1",
    324 -      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.0.1.tgz",
    325 -      "integrity": "sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==",
    326 +      "version": "1.1.1",
    327 +      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz",
    328 +      "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==",
    329        "dev": true
    330      },
    331      "node_modules/unhomoglyph": {
    332 @@ -6714,18 +6821,16 @@
    333        }
    334      },
    335      "node_modules/vite-node": {
    336 -      "version": "0.27.3",
    337 -      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.27.3.tgz",
    338 -      "integrity": "sha512-eyJYOO64o5HIp8poc4bJX+ZNBwMZeI3f6/JdiUmJgW02Mt7LnoCtDMRVmLaY9S05SIsjGe339ZK4uo2wQ+bF9g==",
    339 +      "version": "0.29.3",
    340 +      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.29.3.tgz",
    341 +      "integrity": "sha512-QYzYSA4Yt2IiduEjYbccfZQfxKp+T1Do8/HEpSX/G5WIECTFKJADwLs9c94aQH4o0A+UtCKU61lj1m5KvbxxQA==",
    342        "dev": true,
    343        "dependencies": {
    344          "cac": "^6.7.14",
    345          "debug": "^4.3.4",
    346          "mlly": "^1.1.0",
    347 -        "pathe": "^0.2.0",
    348 +        "pathe": "^1.1.0",
    349          "picocolors": "^1.0.0",
    350 -        "source-map": "^0.6.1",
    351 -        "source-map-support": "^0.5.21",
    352          "vite": "^3.0.0 || ^4.0.0"
    353        },
    354        "bin": {
    355 @@ -6748,29 +6853,34 @@
    356        }
    357      },
    358      "node_modules/vitest": {
    359 -      "version": "0.27.3",
    360 -      "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.27.3.tgz",
    361 -      "integrity": "sha512-Ld3UVgRVhJUtqvQ3dW89GxiApFAgBsWJZBCWzK+gA3w2yG68csXlGZZ4WDJURf+8ecNfgrScga6xY+8YSOpiMg==",
    362 +      "version": "0.29.3",
    363 +      "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.29.3.tgz",
    364 +      "integrity": "sha512-muMsbXnZsrzDGiyqf/09BKQsGeUxxlyLeLK/sFFM4EXdURPQRv8y7dco32DXaRORYP0bvyN19C835dT23mL0ow==",
    365        "dev": true,
    366        "dependencies": {
    367          "@types/chai": "^4.3.4",
    368          "@types/chai-subset": "^1.3.3",
    369          "@types/node": "*",
    370 +        "@vitest/expect": "0.29.3",
    371 +        "@vitest/runner": "0.29.3",
    372 +        "@vitest/spy": "0.29.3",
    373 +        "@vitest/utils": "0.29.3",
    374          "acorn": "^8.8.1",
    375          "acorn-walk": "^8.2.0",
    376          "cac": "^6.7.14",
    377          "chai": "^4.3.7",
    378          "debug": "^4.3.4",
    379          "local-pkg": "^0.4.2",
    380 +        "pathe": "^1.1.0",
    381          "picocolors": "^1.0.0",
    382          "source-map": "^0.6.1",
    383          "std-env": "^3.3.1",
    384          "strip-literal": "^1.0.0",
    385          "tinybench": "^2.3.1",
    386 -        "tinypool": "^0.3.0",
    387 +        "tinypool": "^0.3.1",
    388          "tinyspy": "^1.0.2",
    389          "vite": "^3.0.0 || ^4.0.0",
    390 -        "vite-node": "0.27.3",
    391 +        "vite-node": "0.29.3",
    392          "why-is-node-running": "^2.2.2"
    393        },
    394        "bin": {
    395 @@ -8092,6 +8202,54 @@
    396          "@swc/core": "^1.3.22"
    397        }
    398      },
    399 +    "@vitest/expect": {
    400 +      "version": "0.29.3",
    401 +      "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.29.3.tgz",
    402 +      "integrity": "sha512-z/0JqBqqrdtrT/wzxNrWC76EpkOHdl+SvuNGxWulLaoluygntYyG5wJul5u/rQs5875zfFz/F+JaDf90SkLUIg==",
    403 +      "dev": true,
    404 +      "requires": {
    405 +        "@vitest/spy": "0.29.3",
    406 +        "@vitest/utils": "0.29.3",
    407 +        "chai": "^4.3.7"
    408 +      }
    409 +    },
    410 +    "@vitest/runner": {
    411 +      "version": "0.29.3",
    412 +      "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.29.3.tgz",
    413 +      "integrity": "sha512-XLi8ctbvOWhUWmuvBUSIBf8POEDH4zCh6bOuVxm/KGfARpgmVF1ku+vVNvyq85va+7qXxtl+MFmzyXQ2xzhAvw==",
    414 +      "dev": true,
    415 +      "requires": {
    416 +        "@vitest/utils": "0.29.3",
    417 +        "p-limit": "^4.0.0",
    418 +        "pathe": "^1.1.0"
    419 +      },
    420 +      "dependencies": {
    421 +        "p-limit": {
    422 +          "version": "4.0.0",
    423 +          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
    424 +          "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
    425 +          "dev": true,
    426 +          "requires": {
    427 +            "yocto-queue": "^1.0.0"
    428 +          }
    429 +        },
    430 +        "yocto-queue": {
    431 +          "version": "1.0.0",
    432 +          "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
    433 +          "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
    434 +          "dev": true
    435 +        }
    436 +      }
    437 +    },
    438 +    "@vitest/spy": {
    439 +      "version": "0.29.3",
    440 +      "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.29.3.tgz",
    441 +      "integrity": "sha512-LLpCb1oOCOZcBm0/Oxbr1DQTuKLRBsSIHyLYof7z4QVE8/v8NcZKdORjMUq645fcfX55+nLXwU/1AQ+c2rND+w==",
    442 +      "dev": true,
    443 +      "requires": {
    444 +        "tinyspy": "^1.0.2"
    445 +      }
    446 +    },
    447      "@vitest/ui": {
    448        "version": "0.27.3",
    449        "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.27.3.tgz",
    450 @@ -8103,6 +8261,18 @@
    451          "sirv": "^2.0.2"
    452        }
    453      },
    454 +    "@vitest/utils": {
    455 +      "version": "0.29.3",
    456 +      "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.29.3.tgz",
    457 +      "integrity": "sha512-hg4Ff8AM1GtUnLpUJlNMxrf9f4lZr/xRJjh3uJ0QFP+vjaW82HAxKrmeBmLnhc8Os2eRf+f+VBu4ts7TafPPkA==",
    458 +      "dev": true,
    459 +      "requires": {
    460 +        "cli-truncate": "^3.1.0",
    461 +        "diff": "^5.1.0",
    462 +        "loupe": "^2.3.6",
    463 +        "pretty-format": "^27.5.1"
    464 +      }
    465 +    },
    466      "abab": {
    467        "version": "2.0.6",
    468        "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
    469 @@ -8110,9 +8280,9 @@
    470        "dev": true
    471      },
    472      "acorn": {
    473 -      "version": "8.8.1",
    474 -      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
    475 -      "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
    476 +      "version": "8.8.2",
    477 +      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
    478 +      "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
    479        "dev": true
    480      },
    481      "acorn-globals": {
    482 @@ -8393,12 +8563,6 @@
    483          "ieee754": "^1.2.1"
    484        }
    485      },
    486 -    "buffer-from": {
    487 -      "version": "1.1.2",
    488 -      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
    489 -      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
    490 -      "dev": true
    491 -    },
    492      "builtin-modules": {
    493        "version": "3.3.0",
    494        "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
    495 @@ -8542,6 +8706,16 @@
    496        "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz",
    497        "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw=="
    498      },
    499 +    "cli-truncate": {
    500 +      "version": "3.1.0",
    501 +      "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
    502 +      "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
    503 +      "dev": true,
    504 +      "requires": {
    505 +        "slice-ansi": "^5.0.0",
    506 +        "string-width": "^5.0.0"
    507 +      }
    508 +    },
    509      "cli-width": {
    510        "version": "4.0.0",
    511        "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz",
    512 @@ -8804,6 +8978,12 @@
    513        "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
    514        "dev": true
    515      },
    516 +    "diff": {
    517 +      "version": "5.1.0",
    518 +      "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
    519 +      "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
    520 +      "dev": true
    521 +    },
    522      "diff-sequences": {
    523        "version": "29.3.1",
    524        "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz",
    525 @@ -9853,6 +10033,12 @@
    526        "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
    527        "dev": true
    528      },
    529 +    "is-fullwidth-code-point": {
    530 +      "version": "4.0.0",
    531 +      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
    532 +      "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
    533 +      "dev": true
    534 +    },
    535      "is-glob": {
    536        "version": "4.0.3",
    537        "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
    538 @@ -10413,23 +10599,15 @@
    539        "dev": true
    540      },
    541      "mlly": {
    542 -      "version": "1.1.0",
    543 -      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.1.0.tgz",
    544 -      "integrity": "sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==",
    545 +      "version": "1.2.0",
    546 +      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.0.tgz",
    547 +      "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==",
    548        "dev": true,
    549        "requires": {
    550 -        "acorn": "^8.8.1",
    551 -        "pathe": "^1.0.0",
    552 -        "pkg-types": "^1.0.1",
    553 -        "ufo": "^1.0.1"
    554 -      },
    555 -      "dependencies": {
    556 -        "pathe": {
    557 -          "version": "1.1.0",
    558 -          "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
    559 -          "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
    560 -          "dev": true
    561 -        }
    562 +        "acorn": "^8.8.2",
    563 +        "pathe": "^1.1.0",
    564 +        "pkg-types": "^1.0.2",
    565 +        "ufo": "^1.1.1"
    566        }
    567      },
    568      "mrmime": {
    569 @@ -10723,9 +10901,9 @@
    570        "dev": true
    571      },
    572      "pathe": {
    573 -      "version": "0.2.0",
    574 -      "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz",
    575 -      "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==",
    576 +      "version": "1.1.0",
    577 +      "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
    578 +      "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
    579        "dev": true
    580      },
    581      "pathval": {
    582 @@ -10752,22 +10930,14 @@
    583        "dev": true
    584      },
    585      "pkg-types": {
    586 -      "version": "1.0.1",
    587 -      "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.1.tgz",
    588 -      "integrity": "sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==",
    589 +      "version": "1.0.2",
    590 +      "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz",
    591 +      "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==",
    592        "dev": true,
    593        "requires": {
    594          "jsonc-parser": "^3.2.0",
    595 -        "mlly": "^1.0.0",
    596 -        "pathe": "^1.0.0"
    597 -      },
    598 -      "dependencies": {
    599 -        "pathe": {
    600 -          "version": "1.1.0",
    601 -          "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz",
    602 -          "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
    603 -          "dev": true
    604 -        }
    605 +        "mlly": "^1.1.1",
    606 +        "pathe": "^1.1.0"
    607        }
    608      },
    609      "pluralize": {
    610 @@ -11342,6 +11512,24 @@
    611        "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
    612        "dev": true
    613      },
    614 +    "slice-ansi": {
    615 +      "version": "5.0.0",
    616 +      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
    617 +      "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
    618 +      "dev": true,
    619 +      "requires": {
    620 +        "ansi-styles": "^6.0.0",
    621 +        "is-fullwidth-code-point": "^4.0.0"
    622 +      },
    623 +      "dependencies": {
    624 +        "ansi-styles": {
    625 +          "version": "6.2.1",
    626 +          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
    627 +          "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
    628 +          "dev": true
    629 +        }
    630 +      }
    631 +    },
    632      "source-map": {
    633        "version": "0.6.1",
    634        "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
    635 @@ -11354,16 +11542,6 @@
    636        "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
    637        "dev": true
    638      },
    639 -    "source-map-support": {
    640 -      "version": "0.5.21",
    641 -      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
    642 -      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
    643 -      "dev": true,
    644 -      "requires": {
    645 -        "buffer-from": "^1.0.0",
    646 -        "source-map": "^0.6.0"
    647 -      }
    648 -    },
    649      "spdx-correct": {
    650        "version": "3.1.1",
    651        "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
    652 @@ -11593,9 +11771,9 @@
    653        "dev": true
    654      },
    655      "tinypool": {
    656 -      "version": "0.3.0",
    657 -      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.0.tgz",
    658 -      "integrity": "sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==",
    659 +      "version": "0.3.1",
    660 +      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.1.tgz",
    661 +      "integrity": "sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==",
    662        "dev": true
    663      },
    664      "tinyspy": {
    665 @@ -11699,9 +11877,9 @@
    666        "dev": true
    667      },
    668      "ufo": {
    669 -      "version": "1.0.1",
    670 -      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.0.1.tgz",
    671 -      "integrity": "sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==",
    672 +      "version": "1.1.1",
    673 +      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz",
    674 +      "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==",
    675        "dev": true
    676      },
    677      "unhomoglyph": {
    678 @@ -11778,18 +11956,16 @@
    679        }
    680      },
    681      "vite-node": {
    682 -      "version": "0.27.3",
    683 -      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.27.3.tgz",
    684 -      "integrity": "sha512-eyJYOO64o5HIp8poc4bJX+ZNBwMZeI3f6/JdiUmJgW02Mt7LnoCtDMRVmLaY9S05SIsjGe339ZK4uo2wQ+bF9g==",
    685 +      "version": "0.29.3",
    686 +      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.29.3.tgz",
    687 +      "integrity": "sha512-QYzYSA4Yt2IiduEjYbccfZQfxKp+T1Do8/HEpSX/G5WIECTFKJADwLs9c94aQH4o0A+UtCKU61lj1m5KvbxxQA==",
    688        "dev": true,
    689        "requires": {
    690          "cac": "^6.7.14",
    691          "debug": "^4.3.4",
    692          "mlly": "^1.1.0",
    693 -        "pathe": "^0.2.0",
    694 +        "pathe": "^1.1.0",
    695          "picocolors": "^1.0.0",
    696 -        "source-map": "^0.6.1",
    697 -        "source-map-support": "^0.5.21",
    698          "vite": "^3.0.0 || ^4.0.0"
    699        }
    700      },
    701 @@ -11803,29 +11979,34 @@
    702        }
    703      },
    704      "vitest": {
    705 -      "version": "0.27.3",
    706 -      "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.27.3.tgz",
    707 -      "integrity": "sha512-Ld3UVgRVhJUtqvQ3dW89GxiApFAgBsWJZBCWzK+gA3w2yG68csXlGZZ4WDJURf+8ecNfgrScga6xY+8YSOpiMg==",
    708 +      "version": "0.29.3",
    709 +      "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.29.3.tgz",
    710 +      "integrity": "sha512-muMsbXnZsrzDGiyqf/09BKQsGeUxxlyLeLK/sFFM4EXdURPQRv8y7dco32DXaRORYP0bvyN19C835dT23mL0ow==",
    711        "dev": true,
    712        "requires": {
    713          "@types/chai": "^4.3.4",
    714          "@types/chai-subset": "^1.3.3",
    715          "@types/node": "*",
    716 +        "@vitest/expect": "0.29.3",
    717 +        "@vitest/runner": "0.29.3",
    718 +        "@vitest/spy": "0.29.3",
    719 +        "@vitest/utils": "0.29.3",
    720          "acorn": "^8.8.1",
    721          "acorn-walk": "^8.2.0",
    722          "cac": "^6.7.14",
    723          "chai": "^4.3.7",
    724          "debug": "^4.3.4",
    725          "local-pkg": "^0.4.2",
    726 +        "pathe": "^1.1.0",
    727          "picocolors": "^1.0.0",
    728          "source-map": "^0.6.1",
    729          "std-env": "^3.3.1",
    730          "strip-literal": "^1.0.0",
    731          "tinybench": "^2.3.1",
    732 -        "tinypool": "^0.3.0",
    733 +        "tinypool": "^0.3.1",
    734          "tinyspy": "^1.0.2",
    735          "vite": "^3.0.0 || ^4.0.0",
    736 -        "vite-node": "0.27.3",
    737 +        "vite-node": "0.29.3",
    738          "why-is-node-running": "^2.2.2"
    739        },
    740        "dependencies": {
    741 diff --git a/package.json b/package.json
    742 index da65691..36b561b 100644
    743 --- a/package.json
    744 +++ b/package.json
    745 @@ -50,6 +50,6 @@
    746      "typescript": "^4.9.4",
    747      "vite": "^4.0.4",
    748      "vite-plugin-ejs": "^1.6.4",
    749 -    "vitest": "^0.27.3"
    750 +    "vitest": "^0.29.3"
    751    }
    752  }
    753 \ No newline at end of file