From 605358ac06253e350ca4ceba2d8d3de94615089d Mon Sep 17 00:00:00 2001 From: Eejit <76887639+Eejit43@users.noreply.github.com> Date: Tue, 8 Oct 2024 19:13:04 -0400 Subject: [PATCH] chore: run prettier with new printWidth --- package.json | 6 +- pnpm-lock.yaml | 8615 +++++++++-------- src/app.ts | 44 +- src/public/data/audio-tracks.ts | 36 +- src/public/data/pages-data.ts | 165 +- src/public/data/pages.ts | 145 +- src/public/scripts/external/odometer.js | 20 +- src/public/scripts/functions.ts | 19 +- src/public/scripts/global.ts | 13 +- .../scripts/pages/fun/astronomy-picture.ts | 8 +- src/public/scripts/pages/fun/mp3-player.ts | 11 +- src/public/scripts/pages/fun/random-joke.ts | 4 +- src/public/scripts/pages/info/coins-info.ts | 13 +- src/public/scripts/pages/info/coins-list.ts | 97 +- .../pages/info/foreign-collections-list.ts | 42 +- .../pages/tools/base64-image-converter.ts | 5 +- .../scripts/pages/tools/binary-converter.ts | 3 +- src/public/scripts/pages/tools/calendar.ts | 35 +- src/public/scripts/pages/tools/color-info.ts | 8 +- src/public/scripts/pages/tools/countdowns.ts | 11 +- .../scripts/pages/tools/currency-exchange.ts | 7 +- .../scripts/pages/tools/image-converter.ts | 5 +- src/public/scripts/pages/tools/ip-info.ts | 6 +- .../scripts/pages/tools/keycode-info.ts | 10 +- .../scripts/pages/tools/length-converter.ts | 13 +- src/public/scripts/pages/tools/list-sorter.ts | 4 +- src/public/scripts/pages/tools/quick-copy.ts | 13 +- .../scripts/pages/tools/radical-simplifier.ts | 20 +- .../scripts/pages/tools/roman-converter.ts | 21 +- .../tools/scientific-notation-converter.ts | 23 +- .../pages/tools/temperature-converter.ts | 11 +- src/public/scripts/pages/tools/tides-info.ts | 44 +- .../scripts/pages/tools/time-converter.ts | 13 +- src/public/scripts/pages/tools/time.ts | 15 +- .../pages/tools/unix-time-converter.ts | 20 +- .../scripts/pages/tools/weather-info.ts | 43 +- src/public/styles/pages/tools/color-info.css | 3 +- src/public/styles/styles.css | 11 +- src/route-handlers/all-pages.ts | 26 +- src/route-handlers/astronomy-picture.ts | 190 +- src/route-handlers/calendar.ts | 80 +- src/route-handlers/coins-list.ts | 129 +- .../foreign-collections-list.ts | 63 +- src/route-handlers/ip-info.ts | 8 +- src/route-handlers/weather-info.ts | 6 +- src/views/layouts/layout.hbs | 6 +- 46 files changed, 5394 insertions(+), 4696 deletions(-) diff --git a/package.json b/package.json index 67d0590..6080217 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "@fastify/rate-limit": "^10.1.1", "@fastify/static": "^8.0.1", "@fastify/view": "^10.0.1", - "canvas": "^3.0.0-rc2", + "canvas": "^2.11.2", "chalk": "^5.3.0", "chokidar": "^4.0.1", "consola": "^3.2.3", @@ -28,11 +28,11 @@ }, "devDependencies": { "@eejit/eslint-config-typescript": "^13.3.0", - "@eejit/prettier-config": "^3.0.0", + "@eejit/prettier-config": "^3.1.1", "@eejit/stylelint-config": "^4.0.0", "@tsconfig/recommended": "^1.0.7", "@types/chroma-js": "^2.4.4", - "@types/node": "^20.16.10", + "@types/node": "^22.7.5", "@types/ua-parser-js": "^0.7.39", "mathjs": "^13.2.0", "stylelint": "^16.9.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 51b7965..a11b937 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4846 +1,4861 @@ lockfileVersion: '9.0' settings: - autoInstallPeers: true - excludeLinksFromLockfile: false + autoInstallPeers: true + excludeLinksFromLockfile: false importers: - - .: - dependencies: - '@fastify/rate-limit': - specifier: ^10.1.1 - version: 10.1.1 - '@fastify/static': - specifier: ^8.0.1 - version: 8.0.1 - '@fastify/view': - specifier: ^10.0.1 - version: 10.0.1 - canvas: - specifier: ^3.0.0-rc2 - version: 3.0.0-rc2 - chalk: - specifier: ^5.3.0 - version: 5.3.0 - chokidar: - specifier: ^4.0.1 - version: 4.0.1 - consola: - specifier: ^3.2.3 - version: 3.2.3 - esbuild: - specifier: ^0.24.0 - version: 0.24.0 - esbuild-postcss: - specifier: ^0.0.4 - version: 0.0.4(esbuild@0.24.0)(postcss@8.4.47) - fastify: - specifier: ^5.0.0 - version: 5.0.0 - handlebars: - specifier: ^4.7.8 - version: 4.7.8 - mongoose: - specifier: ^8.7.0 - version: 8.7.0 - node-html-parser: - specifier: ^6.1.13 - version: 6.1.13 - postcss: - specifier: ^8.4.47 - version: 8.4.47 - postcss-preset-env: - specifier: ^10.0.6 - version: 10.0.6(postcss@8.4.47) - devDependencies: - '@eejit/eslint-config-typescript': - specifier: ^13.3.0 - version: 13.3.0(typescript@5.6.2) - '@eejit/prettier-config': - specifier: ^3.0.0 - version: 3.0.0(postcss@8.4.47)(typescript@5.6.2) - '@eejit/stylelint-config': - specifier: ^4.0.0 - version: 4.0.0(stylelint@16.9.0(typescript@5.6.2)) - '@tsconfig/recommended': - specifier: ^1.0.7 - version: 1.0.7 - '@types/chroma-js': - specifier: ^2.4.4 - version: 2.4.4 - '@types/node': - specifier: ^20.16.10 - version: 20.16.10 - '@types/ua-parser-js': - specifier: ^0.7.39 - version: 0.7.39 - mathjs: - specifier: ^13.2.0 - version: 13.2.0 - stylelint: - specifier: ^16.9.0 - version: 16.9.0(typescript@5.6.2) - tree-kill: - specifier: ^1.2.2 - version: 1.2.2 - typescript: - specifier: ^5.6.2 - version: 5.6.2 + .: + dependencies: + '@fastify/rate-limit': + specifier: ^10.1.1 + version: 10.1.1 + '@fastify/static': + specifier: ^8.0.1 + version: 8.0.1 + '@fastify/view': + specifier: ^10.0.1 + version: 10.0.1 + canvas: + specifier: ^2.11.2 + version: 2.11.2 + chalk: + specifier: ^5.3.0 + version: 5.3.0 + chokidar: + specifier: ^4.0.1 + version: 4.0.1 + consola: + specifier: ^3.2.3 + version: 3.2.3 + esbuild: + specifier: ^0.24.0 + version: 0.24.0 + esbuild-postcss: + specifier: ^0.0.4 + version: 0.0.4(esbuild@0.24.0)(postcss@8.4.47) + fastify: + specifier: ^5.0.0 + version: 5.0.0 + handlebars: + specifier: ^4.7.8 + version: 4.7.8 + mongoose: + specifier: ^8.7.0 + version: 8.7.0 + node-html-parser: + specifier: ^6.1.13 + version: 6.1.13 + postcss: + specifier: ^8.4.47 + version: 8.4.47 + postcss-preset-env: + specifier: ^10.0.6 + version: 10.0.6(postcss@8.4.47) + devDependencies: + '@eejit/eslint-config-typescript': + specifier: ^13.3.0 + version: 13.3.0(typescript@5.6.2) + '@eejit/prettier-config': + specifier: ^3.1.1 + version: 3.1.1(postcss@8.4.47)(typescript@5.6.2) + '@eejit/stylelint-config': + specifier: ^4.0.0 + version: 4.0.0(stylelint@16.9.0(typescript@5.6.2)) + '@tsconfig/recommended': + specifier: ^1.0.7 + version: 1.0.7 + '@types/chroma-js': + specifier: ^2.4.4 + version: 2.4.4 + '@types/node': + specifier: ^22.7.5 + version: 22.7.5 + '@types/ua-parser-js': + specifier: ^0.7.39 + version: 0.7.39 + mathjs: + specifier: ^13.2.0 + version: 13.2.0 + stylelint: + specifier: ^16.9.0 + version: 16.9.0(typescript@5.6.2) + tree-kill: + specifier: ^1.2.2 + version: 1.2.2 + typescript: + specifier: ^5.6.2 + version: 5.6.2 packages: + '@babel/code-frame@7.25.7': + resolution: { integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g== } + engines: { node: '>=6.9.0' } + + '@babel/helper-validator-identifier@7.25.7': + resolution: { integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg== } + engines: { node: '>=6.9.0' } + + '@babel/highlight@7.25.7': + resolution: { integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw== } + engines: { node: '>=6.9.0' } + + '@babel/runtime@7.25.7': + resolution: { integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w== } + engines: { node: '>=6.9.0' } + + '@csstools/cascade-layer-name-parser@2.0.1': + resolution: { integrity: sha512-G9ZYN5+yr/E6xYSiy1BwOEFP5p88ZtWo8sL4NztKBkRRAwRkzVGa70M+D+fYHugMID5jkLeNt5X9jYd5EaVuyg== } + engines: { node: '>=18' } + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.1 + '@csstools/css-tokenizer': ^3.0.1 + + '@csstools/color-helpers@5.0.1': + resolution: { integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA== } + engines: { node: '>=18' } + + '@csstools/css-calc@2.0.1': + resolution: { integrity: sha512-e59V+sNp6e5m+9WnTUydA1DQO70WuKUdseflRpWmXxocF/h5wWGIxUjxfvLtajcmwstH0vm6l0reKMzcyI757Q== } + engines: { node: '>=18' } + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.1 + '@csstools/css-tokenizer': ^3.0.1 + + '@csstools/css-color-parser@3.0.2': + resolution: { integrity: sha512-mNg7A6HnNjlm0we/pDS9dUafOuBxcanN0TBhEGeIk6zZincuk0+mAbnBqfVs29NlvWHZ8diwTG6g5FeU8246sA== } + engines: { node: '>=18' } + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.1 + '@csstools/css-tokenizer': ^3.0.1 + + '@csstools/css-parser-algorithms@3.0.1': + resolution: { integrity: sha512-lSquqZCHxDfuTg/Sk2hiS0mcSFCEBuj49JfzPHJogDBT0mGCyY5A1AQzBWngitrp7i1/HAZpIgzF/VjhOEIJIg== } + engines: { node: '>=18' } + peerDependencies: + '@csstools/css-tokenizer': ^3.0.1 + + '@csstools/css-tokenizer@3.0.1': + resolution: { integrity: sha512-UBqaiu7kU0lfvaP982/o3khfXccVlHPWp0/vwwiIgDF0GmqqqxoiXC/6FCjlS9u92f7CoEz6nXKQnrn1kIAkOw== } + engines: { node: '>=18' } + + '@csstools/media-query-list-parser@3.0.1': + resolution: { integrity: sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw== } + engines: { node: '>=18' } + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.1 + '@csstools/css-tokenizer': ^3.0.1 + + '@csstools/postcss-cascade-layers@5.0.0': + resolution: { integrity: sha512-h+VunB3KXaoWTWEPBcdVk8Kz1eZ/CtDD+HXgKw5JLdbsViLEQdKUtFYH73VIQigdodng8s5DCrrwNQY7pnuWBA== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-color-function@4.0.2': + resolution: { integrity: sha512-q/W3RXh66SM7WqxW3/KU6koL8nOgqyB/wrcU3+ThXnNtXY2+k8UgdE301ISJpMt6PDyYgC7eMaIBo535RvFIgw== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-color-mix-function@3.0.2': + resolution: { integrity: sha512-zG9PHNzZVCRk6eprm+T/ybrnuiwLdO+RR7+GCtNut+NZJGtPJj6bfPOEX23aOlMslLcRAlN6QOpxH3tovn+WpA== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-content-alt-text@2.0.1': + resolution: { integrity: sha512-TWjjewVZqdkjavsi8a2THuXgkhUum1k/m4QJpZpzOv72q6WnaoQZGSj5t5uCs7ymJr0H3qj6JcXMwMApSWUOGQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-exponential-functions@2.0.1': + resolution: { integrity: sha512-A/MG8es3ylFzZ30oYIQUyJcMOfTfCs0dqqBMzeuzaPRlx4q/72WG+BbKe/pL9BUNIWsM0Q8jn3e3la8enjHJJA== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-font-format-keywords@4.0.0': + resolution: { integrity: sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-gamut-mapping@2.0.2': + resolution: { integrity: sha512-/1ur3ca9RWg/KnbLlxaDswyjLSGoaHNDruAzrVhkn5axgd7LOH6JHCBRhrKDafdMw9bf4MQrYFoaLfHAPekLFg== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-gradients-interpolation-method@5.0.2': + resolution: { integrity: sha512-qRpvA4sduAfiV9yZG4OM7q/h2Qhr3lg+GrHe9NZwuzWnfSDLGh+Dh4Ea6fQ+1++jdKXW/Cb4/vHRp0ssQYra4w== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-hwb-function@4.0.2': + resolution: { integrity: sha512-RUBVCyJE1hTsf9vGp3zrALeMollkAlHRFKm+T36y67nLfOOf+6GNQsdTGFAyLrY65skcm8ddC26Jp1n9ZIauEA== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-ic-unit@4.0.0': + resolution: { integrity: sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-initial@2.0.0': + resolution: { integrity: sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-is-pseudo-class@5.0.0': + resolution: { integrity: sha512-E/CjrT03BL06WmrjupnrT0VUBTvxJdoW1hRVeXFa9qatWtvcLLw0j8hP372G4A9PpSGEMXi3/AoHzPf7DNryCQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-light-dark-function@2.0.4': + resolution: { integrity: sha512-yHUt5DZ61Irvp72notmAl3Zt4Me50EWToWNocazyIFTVYFwwo/EucmV3hWi9zJehu3rOSvMclL7DzvRDfbak/A== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-logical-float-and-clear@3.0.0': + resolution: { integrity: sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-logical-overflow@2.0.0': + resolution: { integrity: sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-logical-overscroll-behavior@2.0.0': + resolution: { integrity: sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-logical-resize@3.0.0': + resolution: { integrity: sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-logical-viewport-units@3.0.1': + resolution: { integrity: sha512-JsfaoTiBqIuRE+CYL4ZpYKOqJ965GyiMH4b8UrY0Z7i5GfMiHZrK7xtTB29piuyKQzrW+Z8w3PAExhwND9cuAQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-media-minmax@2.0.1': + resolution: { integrity: sha512-EMa3IgUip+F/MwH4r2KfIA9ym9hQkT2PpR9MOukdomfGGCFuw9V3n/iIOBKziN1qfeddsYoOvtYOKQcHU2yIjg== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.1': + resolution: { integrity: sha512-JTzMQz//INahTALkvXnC5lC2fJKzwb5PY443T2zaM9hAzM7nzHMLIlEfFgdtBahVIBtBSalMefdxNr99LGW1lQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-nested-calc@4.0.0': + resolution: { integrity: sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-normalize-display-values@4.0.0': + resolution: { integrity: sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-oklab-function@4.0.2': + resolution: { integrity: sha512-2iSK/T77PHMeorakBAk/WLxSodfIJ/lmi6nxEkuruXfhGH7fByZim4Fw6ZJf4B73SVieRSH2ep8zvYkA2ZfRtA== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-progressive-custom-properties@4.0.0': + resolution: { integrity: sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-relative-color-syntax@3.0.2': + resolution: { integrity: sha512-aBpuUdpJBswNGfw6lOkhown2cZ0YXrMjASye56nkoRpgRe9yDF4BM1fvEuakrCDiaeoUzVaI4SF6+344BflXfQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-scope-pseudo-class@4.0.0': + resolution: { integrity: sha512-+ZUOBtVMDcmHZcZqsP/jcNRriEILfWQflTI3tCTA+/RheXAg57VkFGyPDAilpQSqlCpxWLWG8VUFKFtZJPwuOg== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-stepped-value-functions@4.0.1': + resolution: { integrity: sha512-dk3KqVcIEYzy9Mvx8amoBbk123BWgd5DfjXDiPrEqxGma37PG7m/MoMmHQhuVHIjvPDHoJwyIZi2yy7j0RA5fw== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-text-decoration-shorthand@4.0.1': + resolution: { integrity: sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-trigonometric-functions@4.0.1': + resolution: { integrity: sha512-QHOYuN3bzS/rcpAygFhJxJUtD8GuJEWF6f9Zm518Tq/cSMlcTgU+v0geyi5EqbmYxKMig2oKCKUSGqOj9gehkg== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-unset-value@4.0.0': + resolution: { integrity: sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@csstools/selector-resolve-nested@2.0.0': + resolution: { integrity: sha512-oklSrRvOxNeeOW1yARd4WNCs/D09cQjunGZUgSq6vM8GpzFswN+8rBZyJA29YFZhOTQ6GFzxgLDNtVbt9wPZMA== } + engines: { node: '>=18' } + peerDependencies: + postcss-selector-parser: ^6.1.0 + + '@csstools/selector-specificity@4.0.0': + resolution: { integrity: sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ== } + engines: { node: '>=18' } + peerDependencies: + postcss-selector-parser: ^6.1.0 + + '@csstools/utilities@2.0.0': + resolution: { integrity: sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + '@dual-bundle/import-meta-resolve@4.1.0': + resolution: { integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg== } + + '@eejit/eslint-config-typescript@13.3.0': + resolution: { integrity: sha512-9/BNlT0BwkABVD/f97xc93OBSvc7U+47z5s5Ph5lUpH8JGMYDJEpnnoCDEsb57yCukse4BmfmT1aL+kr616ADQ== } + + '@eejit/prettier-config@3.1.1': + resolution: { integrity: sha512-9XziOTXGR6zAtn2v0TSbOPhq2A11Ap6A/gektB39TPDI4eW+giInh7W+zB0E0KkaDakATN4lENdggWpFSghEnQ== } + + '@eejit/stylelint-config@4.0.0': + resolution: { integrity: sha512-bmE96m4zWU0aU1lMlmdaEbtJzt0EiLAXbQcvyqnGsTwUflkKB3NGF9IrdQPklSi3zUz6n/89RjoPRdaqNj09og== } + + '@es-joy/jsdoccomment@0.48.0': + resolution: { integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw== } + engines: { node: '>=16' } + + '@esbuild/aix-ppc64@0.24.0': + resolution: { integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw== } + engines: { node: '>=18' } + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.24.0': + resolution: { integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w== } + engines: { node: '>=18' } + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.24.0': + resolution: { integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew== } + engines: { node: '>=18' } + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.24.0': + resolution: { integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ== } + engines: { node: '>=18' } + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.24.0': + resolution: { integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw== } + engines: { node: '>=18' } + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.24.0': + resolution: { integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA== } + engines: { node: '>=18' } + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.24.0': + resolution: { integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA== } + engines: { node: '>=18' } + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.24.0': + resolution: { integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ== } + engines: { node: '>=18' } + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.24.0': + resolution: { integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g== } + engines: { node: '>=18' } + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.24.0': + resolution: { integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw== } + engines: { node: '>=18' } + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.24.0': + resolution: { integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA== } + engines: { node: '>=18' } + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.24.0': + resolution: { integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g== } + engines: { node: '>=18' } + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.24.0': + resolution: { integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA== } + engines: { node: '>=18' } + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.24.0': + resolution: { integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ== } + engines: { node: '>=18' } + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.24.0': + resolution: { integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw== } + engines: { node: '>=18' } + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.24.0': + resolution: { integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g== } + engines: { node: '>=18' } + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.24.0': + resolution: { integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA== } + engines: { node: '>=18' } + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.24.0': + resolution: { integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg== } + engines: { node: '>=18' } + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.24.0': + resolution: { integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg== } + engines: { node: '>=18' } + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.24.0': + resolution: { integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q== } + engines: { node: '>=18' } + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.24.0': + resolution: { integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA== } + engines: { node: '>=18' } + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.24.0': + resolution: { integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA== } + engines: { node: '>=18' } + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.24.0': + resolution: { integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw== } + engines: { node: '>=18' } + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.24.0': + resolution: { integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA== } + engines: { node: '>=18' } + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.0': + resolution: { integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.11.1': + resolution: { integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q== } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + + '@eslint/config-array@0.18.0': + resolution: { integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@eslint/core@0.6.0': + resolution: { integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@eslint/eslintrc@3.1.0': + resolution: { integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@eslint/js@9.12.0': + resolution: { integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@eslint/object-schema@2.1.4': + resolution: { integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@eslint/plugin-kit@0.2.0': + resolution: { integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@fastify/accept-negotiator@2.0.0': + resolution: { integrity: sha512-/Sce/kBzuTxIq5tJh85nVNOq9wKD8s+viIgX0fFMDBdw95gnpf53qmF1oBgJym3cPFliWUuSloVg/1w/rH0FcQ== } + + '@fastify/ajv-compiler@4.0.1': + resolution: { integrity: sha512-DxrBdgsjNLP0YM6W5Hd6/Fmj43S8zMKiFJYgi+Ri3htTGAowPVG/tG1wpnWLMjufEnehRivUCKZ1pLDIoZdTuw== } + + '@fastify/error@4.0.0': + resolution: { integrity: sha512-OO/SA8As24JtT1usTUTKgGH7uLvhfwZPwlptRi2Dp5P4KKmJI3gvsZ8MIHnNwDs4sLf/aai5LzTyl66xr7qMxA== } + + '@fastify/fast-json-stringify-compiler@5.0.1': + resolution: { integrity: sha512-f2d3JExJgFE3UbdFcpPwqNUEoHWmt8pAKf8f+9YuLESdefA0WgqxeT6DrGL4Yrf/9ihXNSKOqpjEmurV405meA== } + + '@fastify/merge-json-schemas@0.1.1': + resolution: { integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA== } + + '@fastify/rate-limit@10.1.1': + resolution: { integrity: sha512-v6ZrDhWVjmDHWYdW2vbALyTCPz9W6Jqvf0QXbl9/atMXlZeFQw4XJkHUm5GGbJReCxaj5dHKbD+P32kkI3xzCA== } + + '@fastify/send@3.1.1': + resolution: { integrity: sha512-LdiV2mle/2tH8vh6GwGl0ubfUAgvY+9yF9oGI1iiwVyNUVOQamvw5n+OFu6iCNNoyuCY80FFURBn4TZCbTe8LA== } + + '@fastify/static@8.0.1': + resolution: { integrity: sha512-7idyhbcgf14v4bjWzUeHEFvnVxvNJ1n5cyGPgFtwTZjnjUQ1wgC7a2FQai7OGKqCKywDEjzbPhAZRW+uEK1LMg== } + + '@fastify/view@10.0.1': + resolution: { integrity: sha512-rXtBN0oVDmoRZAS7lelrCIahf+qFtlMOOas8VPdA7JvrJ9ChcF7e36pIUPU0Vbs3KmHxESUb7XatavUZEe/k5Q== } + + '@humanfs/core@0.19.0': + resolution: { integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw== } + engines: { node: '>=18.18.0' } + + '@humanfs/node@0.16.5': + resolution: { integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg== } + engines: { node: '>=18.18.0' } + + '@humanwhocodes/module-importer@1.0.1': + resolution: { integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== } + engines: { node: '>=12.22' } + + '@humanwhocodes/retry@0.3.1': + resolution: { integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== } + engines: { node: '>=18.18' } + + '@isaacs/cliui@8.0.2': + resolution: { integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== } + engines: { node: '>=12' } + + '@lukeed/ms@2.0.2': + resolution: { integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA== } + engines: { node: '>=8' } + + '@mapbox/node-pre-gyp@1.0.11': + resolution: { integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== } + hasBin: true + + '@mongodb-js/saslprep@1.1.9': + resolution: { integrity: sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw== } + + '@nodelib/fs.scandir@2.1.5': + resolution: { integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== } + engines: { node: '>= 8' } + + '@nodelib/fs.stat@2.0.5': + resolution: { integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== } + engines: { node: '>= 8' } + + '@nodelib/fs.walk@1.2.8': + resolution: { integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== } + engines: { node: '>= 8' } + + '@pkgr/core@0.1.1': + resolution: { integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== } + engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } + + '@stylistic/eslint-plugin-ts@2.9.0': + resolution: { integrity: sha512-CxB73paAKlmaIDtOfKoIHlhNJVlyRMVobuBqdOc4wbVSqfhbgpCWuJYpBkV3ydGDKRfVWNJ9yg5b99lzZtrjhg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: '>=8.40.0' + + '@tsconfig/recommended@1.0.7': + resolution: { integrity: sha512-xiNMgCuoy4mCL4JTywk9XFs5xpRUcKxtWEcMR6FNMtsgewYTIgIR+nvlP4A4iRCAzRsHMnPhvTRrzp4AGcRTEA== } + + '@types/chroma-js@2.4.4': + resolution: { integrity: sha512-/DTccpHTaKomqussrn+ciEvfW4k6NAHzNzs/sts1TCqg333qNxOhy8TNIoQCmbGG3Tl8KdEhkGAssb1n3mTXiQ== } + + '@types/estree@1.0.6': + resolution: { integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== } + + '@types/json-schema@7.0.15': + resolution: { integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== } + + '@types/node@22.7.5': + resolution: { integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ== } + + '@types/normalize-package-data@2.4.4': + resolution: { integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== } + + '@types/ua-parser-js@0.7.39': + resolution: { integrity: sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg== } + + '@types/webidl-conversions@7.0.3': + resolution: { integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA== } + + '@types/whatwg-url@11.0.5': + resolution: { integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ== } + + '@typescript-eslint/eslint-plugin@8.8.1': + resolution: { integrity: sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.8.1': + resolution: { integrity: sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@8.8.1': + resolution: { integrity: sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@typescript-eslint/type-utils@8.8.1': + resolution: { integrity: sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@8.8.1': + resolution: { integrity: sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + '@typescript-eslint/typescript-estree@8.8.1': + resolution: { integrity: sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@8.8.1': + resolution: { integrity: sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@8.8.1': + resolution: { integrity: sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + abbrev@1.1.1: + resolution: { integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== } + + abort-controller@3.0.0: + resolution: { integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== } + engines: { node: '>=6.5' } + + abstract-logging@2.0.1: + resolution: { integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== } + + acorn-jsx@5.3.2: + resolution: { integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.12.1: + resolution: { integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== } + engines: { node: '>=0.4.0' } + hasBin: true + + agent-base@6.0.2: + resolution: { integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== } + engines: { node: '>= 6.0.0' } + + ajv-formats@3.0.1: + resolution: { integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== } + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv@6.12.6: + resolution: { integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== } + + ajv@8.17.1: + resolution: { integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== } + + ansi-regex@5.0.1: + resolution: { integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== } + engines: { node: '>=8' } + + ansi-regex@6.1.0: + resolution: { integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== } + engines: { node: '>=12' } + + ansi-styles@3.2.1: + resolution: { integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== } + engines: { node: '>=4' } + + ansi-styles@4.3.0: + resolution: { integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== } + engines: { node: '>=8' } + + ansi-styles@6.2.1: + resolution: { integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== } + engines: { node: '>=12' } + + aproba@2.0.0: + resolution: { integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== } + + are-docs-informative@0.0.2: + resolution: { integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig== } + engines: { node: '>=14' } + + are-we-there-yet@2.0.0: + resolution: { integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== } + engines: { node: '>=10' } + deprecated: This package is no longer supported. + + argparse@2.0.1: + resolution: { integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== } + + array-union@2.1.0: + resolution: { integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== } + engines: { node: '>=8' } - '@babel/code-frame@7.23.4': - resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.24.5': - resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.25.7': - resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.23.4': - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} - engines: {node: '>=6.9.0'} - - '@babel/runtime@7.25.6': - resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} - engines: {node: '>=6.9.0'} - - '@csstools/cascade-layer-name-parser@2.0.1': - resolution: {integrity: sha512-G9ZYN5+yr/E6xYSiy1BwOEFP5p88ZtWo8sL4NztKBkRRAwRkzVGa70M+D+fYHugMID5jkLeNt5X9jYd5EaVuyg==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.1 - '@csstools/css-tokenizer': ^3.0.1 - - '@csstools/color-helpers@5.0.1': - resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} - engines: {node: '>=18'} - - '@csstools/css-calc@2.0.1': - resolution: {integrity: sha512-e59V+sNp6e5m+9WnTUydA1DQO70WuKUdseflRpWmXxocF/h5wWGIxUjxfvLtajcmwstH0vm6l0reKMzcyI757Q==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.1 - '@csstools/css-tokenizer': ^3.0.1 - - '@csstools/css-color-parser@3.0.2': - resolution: {integrity: sha512-mNg7A6HnNjlm0we/pDS9dUafOuBxcanN0TBhEGeIk6zZincuk0+mAbnBqfVs29NlvWHZ8diwTG6g5FeU8246sA==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.1 - '@csstools/css-tokenizer': ^3.0.1 - - '@csstools/css-parser-algorithms@3.0.1': - resolution: {integrity: sha512-lSquqZCHxDfuTg/Sk2hiS0mcSFCEBuj49JfzPHJogDBT0mGCyY5A1AQzBWngitrp7i1/HAZpIgzF/VjhOEIJIg==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-tokenizer': ^3.0.1 - - '@csstools/css-tokenizer@3.0.1': - resolution: {integrity: sha512-UBqaiu7kU0lfvaP982/o3khfXccVlHPWp0/vwwiIgDF0GmqqqxoiXC/6FCjlS9u92f7CoEz6nXKQnrn1kIAkOw==} - engines: {node: '>=18'} - - '@csstools/media-query-list-parser@3.0.1': - resolution: {integrity: sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.1 - '@csstools/css-tokenizer': ^3.0.1 - - '@csstools/postcss-cascade-layers@5.0.0': - resolution: {integrity: sha512-h+VunB3KXaoWTWEPBcdVk8Kz1eZ/CtDD+HXgKw5JLdbsViLEQdKUtFYH73VIQigdodng8s5DCrrwNQY7pnuWBA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-color-function@4.0.2': - resolution: {integrity: sha512-q/W3RXh66SM7WqxW3/KU6koL8nOgqyB/wrcU3+ThXnNtXY2+k8UgdE301ISJpMt6PDyYgC7eMaIBo535RvFIgw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-color-mix-function@3.0.2': - resolution: {integrity: sha512-zG9PHNzZVCRk6eprm+T/ybrnuiwLdO+RR7+GCtNut+NZJGtPJj6bfPOEX23aOlMslLcRAlN6QOpxH3tovn+WpA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-content-alt-text@2.0.1': - resolution: {integrity: sha512-TWjjewVZqdkjavsi8a2THuXgkhUum1k/m4QJpZpzOv72q6WnaoQZGSj5t5uCs7ymJr0H3qj6JcXMwMApSWUOGQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-exponential-functions@2.0.1': - resolution: {integrity: sha512-A/MG8es3ylFzZ30oYIQUyJcMOfTfCs0dqqBMzeuzaPRlx4q/72WG+BbKe/pL9BUNIWsM0Q8jn3e3la8enjHJJA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-font-format-keywords@4.0.0': - resolution: {integrity: sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-gamut-mapping@2.0.2': - resolution: {integrity: sha512-/1ur3ca9RWg/KnbLlxaDswyjLSGoaHNDruAzrVhkn5axgd7LOH6JHCBRhrKDafdMw9bf4MQrYFoaLfHAPekLFg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-gradients-interpolation-method@5.0.2': - resolution: {integrity: sha512-qRpvA4sduAfiV9yZG4OM7q/h2Qhr3lg+GrHe9NZwuzWnfSDLGh+Dh4Ea6fQ+1++jdKXW/Cb4/vHRp0ssQYra4w==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-hwb-function@4.0.2': - resolution: {integrity: sha512-RUBVCyJE1hTsf9vGp3zrALeMollkAlHRFKm+T36y67nLfOOf+6GNQsdTGFAyLrY65skcm8ddC26Jp1n9ZIauEA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-ic-unit@4.0.0': - resolution: {integrity: sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-initial@2.0.0': - resolution: {integrity: sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-is-pseudo-class@5.0.0': - resolution: {integrity: sha512-E/CjrT03BL06WmrjupnrT0VUBTvxJdoW1hRVeXFa9qatWtvcLLw0j8hP372G4A9PpSGEMXi3/AoHzPf7DNryCQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-light-dark-function@2.0.4': - resolution: {integrity: sha512-yHUt5DZ61Irvp72notmAl3Zt4Me50EWToWNocazyIFTVYFwwo/EucmV3hWi9zJehu3rOSvMclL7DzvRDfbak/A==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-logical-float-and-clear@3.0.0': - resolution: {integrity: sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-logical-overflow@2.0.0': - resolution: {integrity: sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-logical-overscroll-behavior@2.0.0': - resolution: {integrity: sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-logical-resize@3.0.0': - resolution: {integrity: sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-logical-viewport-units@3.0.1': - resolution: {integrity: sha512-JsfaoTiBqIuRE+CYL4ZpYKOqJ965GyiMH4b8UrY0Z7i5GfMiHZrK7xtTB29piuyKQzrW+Z8w3PAExhwND9cuAQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-media-minmax@2.0.1': - resolution: {integrity: sha512-EMa3IgUip+F/MwH4r2KfIA9ym9hQkT2PpR9MOukdomfGGCFuw9V3n/iIOBKziN1qfeddsYoOvtYOKQcHU2yIjg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.1': - resolution: {integrity: sha512-JTzMQz//INahTALkvXnC5lC2fJKzwb5PY443T2zaM9hAzM7nzHMLIlEfFgdtBahVIBtBSalMefdxNr99LGW1lQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-nested-calc@4.0.0': - resolution: {integrity: sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-normalize-display-values@4.0.0': - resolution: {integrity: sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-oklab-function@4.0.2': - resolution: {integrity: sha512-2iSK/T77PHMeorakBAk/WLxSodfIJ/lmi6nxEkuruXfhGH7fByZim4Fw6ZJf4B73SVieRSH2ep8zvYkA2ZfRtA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-progressive-custom-properties@4.0.0': - resolution: {integrity: sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-relative-color-syntax@3.0.2': - resolution: {integrity: sha512-aBpuUdpJBswNGfw6lOkhown2cZ0YXrMjASye56nkoRpgRe9yDF4BM1fvEuakrCDiaeoUzVaI4SF6+344BflXfQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-scope-pseudo-class@4.0.0': - resolution: {integrity: sha512-+ZUOBtVMDcmHZcZqsP/jcNRriEILfWQflTI3tCTA+/RheXAg57VkFGyPDAilpQSqlCpxWLWG8VUFKFtZJPwuOg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-stepped-value-functions@4.0.1': - resolution: {integrity: sha512-dk3KqVcIEYzy9Mvx8amoBbk123BWgd5DfjXDiPrEqxGma37PG7m/MoMmHQhuVHIjvPDHoJwyIZi2yy7j0RA5fw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-text-decoration-shorthand@4.0.1': - resolution: {integrity: sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-trigonometric-functions@4.0.1': - resolution: {integrity: sha512-QHOYuN3bzS/rcpAygFhJxJUtD8GuJEWF6f9Zm518Tq/cSMlcTgU+v0geyi5EqbmYxKMig2oKCKUSGqOj9gehkg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-unset-value@4.0.0': - resolution: {integrity: sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/selector-resolve-nested@2.0.0': - resolution: {integrity: sha512-oklSrRvOxNeeOW1yARd4WNCs/D09cQjunGZUgSq6vM8GpzFswN+8rBZyJA29YFZhOTQ6GFzxgLDNtVbt9wPZMA==} - engines: {node: '>=18'} - peerDependencies: - postcss-selector-parser: ^6.1.0 - - '@csstools/selector-specificity@4.0.0': - resolution: {integrity: sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==} - engines: {node: '>=18'} - peerDependencies: - postcss-selector-parser: ^6.1.0 - - '@csstools/utilities@2.0.0': - resolution: {integrity: sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@dual-bundle/import-meta-resolve@4.1.0': - resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} - - '@eejit/eslint-config-typescript@13.3.0': - resolution: {integrity: sha512-9/BNlT0BwkABVD/f97xc93OBSvc7U+47z5s5Ph5lUpH8JGMYDJEpnnoCDEsb57yCukse4BmfmT1aL+kr616ADQ==} - - '@eejit/prettier-config@3.0.0': - resolution: {integrity: sha512-eTp3LnMhh65iDRZeTuLCtf1H7Bvqs18rQ/EyaIoJfiBrlyEW+8T9vjBJlZzZFFuiT+8mQIh312Q5jVMYfs7txQ==} - - '@eejit/stylelint-config@4.0.0': - resolution: {integrity: sha512-bmE96m4zWU0aU1lMlmdaEbtJzt0EiLAXbQcvyqnGsTwUflkKB3NGF9IrdQPklSi3zUz6n/89RjoPRdaqNj09og==} - - '@es-joy/jsdoccomment@0.48.0': - resolution: {integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==} - engines: {node: '>=16'} - - '@esbuild/aix-ppc64@0.24.0': - resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.24.0': - resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.24.0': - resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.24.0': - resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.24.0': - resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.24.0': - resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.24.0': - resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.24.0': - resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.24.0': - resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.24.0': - resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.24.0': - resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.24.0': - resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.24.0': - resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.24.0': - resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.24.0': - resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.24.0': - resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.24.0': - resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.24.0': - resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.24.0': - resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.24.0': - resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.24.0': - resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.24.0': - resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.24.0': - resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.24.0': - resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/config-array@0.18.0': - resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.6.0': - resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/eslintrc@3.1.0': - resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.12.0': - resolution: {integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.4': - resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.2.0': - resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@fastify/accept-negotiator@2.0.0': - resolution: {integrity: sha512-/Sce/kBzuTxIq5tJh85nVNOq9wKD8s+viIgX0fFMDBdw95gnpf53qmF1oBgJym3cPFliWUuSloVg/1w/rH0FcQ==} - - '@fastify/ajv-compiler@4.0.1': - resolution: {integrity: sha512-DxrBdgsjNLP0YM6W5Hd6/Fmj43S8zMKiFJYgi+Ri3htTGAowPVG/tG1wpnWLMjufEnehRivUCKZ1pLDIoZdTuw==} - - '@fastify/error@4.0.0': - resolution: {integrity: sha512-OO/SA8As24JtT1usTUTKgGH7uLvhfwZPwlptRi2Dp5P4KKmJI3gvsZ8MIHnNwDs4sLf/aai5LzTyl66xr7qMxA==} - - '@fastify/fast-json-stringify-compiler@5.0.1': - resolution: {integrity: sha512-f2d3JExJgFE3UbdFcpPwqNUEoHWmt8pAKf8f+9YuLESdefA0WgqxeT6DrGL4Yrf/9ihXNSKOqpjEmurV405meA==} - - '@fastify/merge-json-schemas@0.1.1': - resolution: {integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==} - - '@fastify/rate-limit@10.1.1': - resolution: {integrity: sha512-v6ZrDhWVjmDHWYdW2vbALyTCPz9W6Jqvf0QXbl9/atMXlZeFQw4XJkHUm5GGbJReCxaj5dHKbD+P32kkI3xzCA==} - - '@fastify/send@3.1.1': - resolution: {integrity: sha512-LdiV2mle/2tH8vh6GwGl0ubfUAgvY+9yF9oGI1iiwVyNUVOQamvw5n+OFu6iCNNoyuCY80FFURBn4TZCbTe8LA==} - - '@fastify/static@8.0.1': - resolution: {integrity: sha512-7idyhbcgf14v4bjWzUeHEFvnVxvNJ1n5cyGPgFtwTZjnjUQ1wgC7a2FQai7OGKqCKywDEjzbPhAZRW+uEK1LMg==} - - '@fastify/view@10.0.1': - resolution: {integrity: sha512-rXtBN0oVDmoRZAS7lelrCIahf+qFtlMOOas8VPdA7JvrJ9ChcF7e36pIUPU0Vbs3KmHxESUb7XatavUZEe/k5Q==} - - '@humanfs/core@0.19.0': - resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.5': - resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} - engines: {node: '>=18.18.0'} + astral-regex@2.0.0: + resolution: { integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== } + engines: { node: '>=8' } - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} + atomic-sleep@1.0.0: + resolution: { integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== } + engines: { node: '>=8.0.0' } - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} + autoprefixer@10.4.20: + resolution: { integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== } + engines: { node: ^10 || ^12 || >=14 } + hasBin: true + peerDependencies: + postcss: ^8.1.0 - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + avvio@9.0.0: + resolution: { integrity: sha512-UbYrOXgE/I+knFG+3kJr9AgC7uNo8DG+FGGODpH9Bj1O1kL/QDjBXnTem9leD3VdQKtaHjV3O85DQ7hHh4IIHw== } - '@lukeed/ms@2.0.2': - resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==} - engines: {node: '>=8'} + balanced-match@1.0.2: + resolution: { integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== } - '@mongodb-js/saslprep@1.1.5': - resolution: {integrity: sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA==} + balanced-match@2.0.0: + resolution: { integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== } - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + base64-js@1.5.1: + resolution: { integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== } - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + boolbase@1.0.0: + resolution: { integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== } - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + brace-expansion@1.1.11: + resolution: { integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== } - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} + brace-expansion@2.0.1: + resolution: { integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== } - '@pkgr/core@0.1.0': - resolution: {integrity: sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + braces@3.0.3: + resolution: { integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== } + engines: { node: '>=8' } - '@stylistic/eslint-plugin-ts@2.9.0': - resolution: {integrity: sha512-CxB73paAKlmaIDtOfKoIHlhNJVlyRMVobuBqdOc4wbVSqfhbgpCWuJYpBkV3ydGDKRfVWNJ9yg5b99lzZtrjhg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' + browserslist@4.24.0: + resolution: { integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A== } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true - '@tsconfig/recommended@1.0.7': - resolution: {integrity: sha512-xiNMgCuoy4mCL4JTywk9XFs5xpRUcKxtWEcMR6FNMtsgewYTIgIR+nvlP4A4iRCAzRsHMnPhvTRrzp4AGcRTEA==} + bson@6.8.0: + resolution: { integrity: sha512-iOJg8pr7wq2tg/zSlCCHMi3hMm5JTOxLTagf3zxhcenHsFp+c6uOs6K7W5UE7A4QIJGtqh/ZovFNMP4mOPJynQ== } + engines: { node: '>=16.20.1' } - '@types/chroma-js@2.4.4': - resolution: {integrity: sha512-/DTccpHTaKomqussrn+ciEvfW4k6NAHzNzs/sts1TCqg333qNxOhy8TNIoQCmbGG3Tl8KdEhkGAssb1n3mTXiQ==} + buffer@6.0.3: + resolution: { integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== } - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + builtin-modules@3.3.0: + resolution: { integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== } + engines: { node: '>=6' } - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + callsites@3.1.0: + resolution: { integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== } + engines: { node: '>=6' } - '@types/node@20.16.10': - resolution: {integrity: sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==} + caniuse-lite@1.0.30001667: + resolution: { integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw== } - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + canvas@2.11.2: + resolution: { integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw== } + engines: { node: '>=6' } - '@types/ua-parser-js@0.7.39': - resolution: {integrity: sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==} + chalk@2.4.2: + resolution: { integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== } + engines: { node: '>=4' } - '@types/webidl-conversions@7.0.3': - resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==} + chalk@4.1.2: + resolution: { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== } + engines: { node: '>=10' } - '@types/whatwg-url@11.0.4': - resolution: {integrity: sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==} + chalk@5.3.0: + resolution: { integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } - '@typescript-eslint/eslint-plugin@8.8.0': - resolution: {integrity: sha512-wORFWjU30B2WJ/aXBfOm1LX9v9nyt9D3jsSOxC3cCaTQGCW5k4jNpmjFv3U7p/7s4yvdjHzwtv2Sd2dOyhjS0A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + chokidar@4.0.1: + resolution: { integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA== } + engines: { node: '>= 14.16.0' } - '@typescript-eslint/parser@8.8.0': - resolution: {integrity: sha512-uEFUsgR+tl8GmzmLjRqz+VrDv4eoaMqMXW7ruXfgThaAShO9JTciKpEsB+TvnfFfbg5IpujgMXVV36gOJRLtZg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@8.8.0': - resolution: {integrity: sha512-EL8eaGC6gx3jDd8GwEFEV091210U97J0jeEHrAYvIYosmEGet4wJ+g0SYmLu+oRiAwbSA5AVrt6DxLHfdd+bUg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/type-utils@8.8.0': - resolution: {integrity: sha512-IKwJSS7bCqyCeG4NVGxnOP6lLT9Okc3Zj8hLO96bpMkJab+10HIfJbMouLrlpyOr3yrQ1cA413YPFiGd1mW9/Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + chownr@2.0.0: + resolution: { integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== } + engines: { node: '>=10' } - '@typescript-eslint/types@8.8.0': - resolution: {integrity: sha512-QJwc50hRCgBd/k12sTykOJbESe1RrzmX6COk8Y525C9l7oweZ+1lw9JiU56im7Amm8swlz00DRIlxMYLizr2Vw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.8.0': - resolution: {integrity: sha512-ZaMJwc/0ckLz5DaAZ+pNLmHv8AMVGtfWxZe/x2JVEkD5LnmhWiQMMcYT7IY7gkdJuzJ9P14fRy28lUrlDSWYdw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + ci-info@4.0.0: + resolution: { integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg== } + engines: { node: '>=8' } - '@typescript-eslint/utils@8.8.0': - resolution: {integrity: sha512-QE2MgfOTem00qrlPgyByaCHay9yb1+9BjnMFnSFkUKQfu7adBXDTnCAivURnuPPAG/qiB+kzKkZKmKfaMT0zVg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - - '@typescript-eslint/visitor-keys@8.8.0': - resolution: {integrity: sha512-8mq51Lx6Hpmd7HnA2fcHQo3YgfX1qbccxQOgZcb4tvasu//zXRaA1j5ZRFeCw/VRAdFi4mRM9DnZw0Nu0Q2d1g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - abstract-logging@2.0.1: - resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} - hasBin: true - - ajv-formats@3.0.1: - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true + clean-regexp@1.0.0: + resolution: { integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw== } + engines: { node: '>=4' } - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + color-convert@1.9.3: + resolution: { integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== } - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + color-convert@2.0.1: + resolution: { integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== } + engines: { node: '>=7.0.0' } - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + color-name@1.1.3: + resolution: { integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== } - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} + color-name@1.1.4: + resolution: { integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== } - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + color-support@1.1.3: + resolution: { integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== } + hasBin: true - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + colord@2.9.3: + resolution: { integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== } - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + comment-parser@1.4.1: + resolution: { integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg== } + engines: { node: '>= 12.0.0' } - are-docs-informative@0.0.2: - resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} - engines: {node: '>=14'} + complex.js@2.2.4: + resolution: { integrity: sha512-pXNwUld1KC6YJmeNhOWtwCSRQF4384CHeZc6m/YmpRl8vwRaiwFHOxt7RTqbWZtwCu9z48JW5BtUmovZEuovkw== } - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + concat-map@0.0.1: + resolution: { integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== } - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + consola@3.2.3: + resolution: { integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== } + engines: { node: ^14.18.0 || >=16.10.0 } - astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} + console-control-strings@1.1.0: + resolution: { integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== } + + content-disposition@0.5.4: + resolution: { integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== } + engines: { node: '>= 0.6' } + + cookie@0.7.2: + resolution: { integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== } + engines: { node: '>= 0.6' } + + core-js-compat@3.38.1: + resolution: { integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw== } + + cosmiconfig@9.0.0: + resolution: { integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== } + engines: { node: '>=14' } + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true - atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} - engines: {node: '>=8.0.0'} + cross-spawn@7.0.3: + resolution: { integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== } + engines: { node: '>= 8' } - autoprefixer@10.4.19: - resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 + css-blank-pseudo@7.0.0: + resolution: { integrity: sha512-v9xXYGdm6LIn4iHEfu3egk/PM1g/yJr8uwTIj6E44kurv5dE/4y3QW7WdVmZ0PVnqfTuK+C0ClZcEEiaKWBL9Q== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 - avvio@9.0.0: - resolution: {integrity: sha512-UbYrOXgE/I+knFG+3kJr9AgC7uNo8DG+FGGODpH9Bj1O1kL/QDjBXnTem9leD3VdQKtaHjV3O85DQ7hHh4IIHw==} + css-declaration-sorter@7.2.0: + resolution: { integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow== } + engines: { node: ^14 || ^16 || >=18 } + peerDependencies: + postcss: ^8.0.9 - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + css-functions-list@3.2.2: + resolution: { integrity: sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ== } + engines: { node: '>=12 || >=16' } - balanced-match@2.0.0: - resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + css-has-pseudo@7.0.0: + resolution: { integrity: sha512-vO6k9bBt4/eEZ2PeHmS2VXjJga5SBy6O1ESyaOkse5/lvp6piFqg8Sh5KTU7X33M7Uh/oqo+M3EeMktQrZoTCQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + css-prefers-color-scheme@10.0.0: + resolution: { integrity: sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + css-select@5.1.0: + resolution: { integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== } - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + css-tree@2.3.1: + resolution: { integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== } + engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 } - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + css-what@6.1.0: + resolution: { integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== } + engines: { node: '>= 6' } - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + cssdb@8.1.1: + resolution: { integrity: sha512-kRbSRgZoxtZNl5snb3nOzBkFOt5AwnephcUTIEFc2DebKG9PN50/cHarlwOooTxYQ/gxsnKs3BxykhNLmfvyLg== } - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} + cssesc@3.0.0: + resolution: { integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== } + engines: { node: '>=4' } + hasBin: true - browserslist@4.23.1: - resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + debug@4.3.7: + resolution: { integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - browserslist@4.24.0: - resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + decimal.js@10.4.3: + resolution: { integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== } - bson@6.7.0: - resolution: {integrity: sha512-w2IquM5mYzYZv6rs3uN2DZTOBe2a0zXLj53TGDqwF4l6Sz/XsISrisXOJihArF9+BZ6Cq/GjVht7Sjfmri7ytQ==} - engines: {node: '>=16.20.1'} + decompress-response@4.2.1: + resolution: { integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== } + engines: { node: '>=8' } - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + deep-is@0.1.4: + resolution: { integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== } + + delegates@1.0.0: + resolution: { integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== } + + depd@2.0.0: + resolution: { integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== } + engines: { node: '>= 0.8' } + + detect-indent@7.0.1: + resolution: { integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g== } + engines: { node: '>=12.20' } + + detect-libc@2.0.3: + resolution: { integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== } + engines: { node: '>=8' } + + detect-newline@4.0.1: + resolution: { integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + + dir-glob@3.0.1: + resolution: { integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== } + engines: { node: '>=8' } + + dom-serializer@2.0.0: + resolution: { integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== } + + domelementtype@2.3.0: + resolution: { integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== } + + domhandler@5.0.3: + resolution: { integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== } + engines: { node: '>= 4' } + + domutils@3.1.0: + resolution: { integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== } + + eastasianwidth@0.2.0: + resolution: { integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== } + + electron-to-chromium@1.5.33: + resolution: { integrity: sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA== } + + emoji-regex@8.0.0: + resolution: { integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== } + + emoji-regex@9.2.2: + resolution: { integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== } + + entities@4.5.0: + resolution: { integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== } + engines: { node: '>=0.12' } + + env-paths@2.2.1: + resolution: { integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== } + engines: { node: '>=6' } - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + error-ex@1.3.2: + resolution: { integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== } - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} + es-module-lexer@1.5.4: + resolution: { integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== } - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + esbuild-postcss@0.0.4: + resolution: { integrity: sha512-CKYibp+aCswskE+gBPnGZ0b9YyuY0n9w2dxyMaoLYEvGTwmjkRj5SV8l1zGJpw8KylqmcMTK0Gr349RnOLd+8A== } + peerDependencies: + esbuild: '*' + postcss: ^8.0.0 - caniuse-lite@1.0.30001638: - resolution: {integrity: sha512-5SuJUJ7cZnhPpeLHaH0c/HPAnAHZvS6ElWyHK9GSIbVOQABLzowiI2pjmpvZ1WEbkyz46iFd4UXlOHR5SqgfMQ==} + esbuild@0.24.0: + resolution: { integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ== } + engines: { node: '>=18' } + hasBin: true - caniuse-lite@1.0.30001667: - resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} + escalade@3.2.0: + resolution: { integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== } + engines: { node: '>=6' } - canvas@3.0.0-rc2: - resolution: {integrity: sha512-esx4bYDznnqgRX4G8kaEaf0W3q8xIc51WpmrIitDzmcoEgwnv9wSKdzT6UxWZ4wkVu5+ileofppX0TpyviJRdQ==} - engines: {node: ^18.12.0 || >= 20.9.0} + escape-html@1.0.3: + resolution: { integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== } - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + escape-latex@1.2.0: + resolution: { integrity: sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw== } - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + escape-string-regexp@1.0.5: + resolution: { integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== } + engines: { node: '>=0.8.0' } - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + escape-string-regexp@4.0.0: + resolution: { integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== } + engines: { node: '>=10' } - chokidar@4.0.1: - resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} - engines: {node: '>= 14.16.0'} + eslint-plugin-jsdoc@50.3.1: + resolution: { integrity: sha512-SY9oUuTMr6aWoJggUS40LtMjsRzJPB5ZT7F432xZIHK3EfHF+8i48GbUBpwanrtlL9l1gILNTHK9o8gEhYLcKA== } + engines: { node: '>=18' } + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + eslint-plugin-unicorn@56.0.0: + resolution: { integrity: sha512-aXpddVz/PQMmd69uxO98PA4iidiVNvA0xOtbpUoz1WhBd4RxOQQYqN618v68drY0hmy5uU2jy1bheKEVWBjlPw== } + engines: { node: '>=18.18' } + peerDependencies: + eslint: '>=8.56.0' - ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} + eslint-scope@8.1.0: + resolution: { integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} + eslint-visitor-keys@3.4.3: + resolution: { integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + eslint-visitor-keys@4.1.0: + resolution: { integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + eslint@9.12.0: + resolution: { integrity: sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + espree@10.2.0: + resolution: { integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + esquery@1.6.0: + resolution: { integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== } + engines: { node: '>=0.10' } - colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + esrecurse@4.3.0: + resolution: { integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== } + engines: { node: '>=4.0' } - comment-parser@1.4.1: - resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} - engines: {node: '>= 12.0.0'} + estraverse@5.3.0: + resolution: { integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== } + engines: { node: '>=4.0' } - complex.js@2.1.1: - resolution: {integrity: sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==} + esutils@2.0.3: + resolution: { integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== } + engines: { node: '>=0.10.0' } - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + event-target-shim@5.0.1: + resolution: { integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== } + engines: { node: '>=6' } - consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} - engines: {node: ^14.18.0 || >=16.10.0} + events@3.3.0: + resolution: { integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== } + engines: { node: '>=0.8.x' } - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + fast-decode-uri-component@1.0.1: + resolution: { integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== } - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} + fast-deep-equal@3.1.3: + resolution: { integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== } - core-js-compat@3.38.1: - resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} + fast-glob@3.3.2: + resolution: { integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== } + engines: { node: '>=8.6.0' } - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + fast-json-stable-stringify@2.1.0: + resolution: { integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== } - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - css-blank-pseudo@7.0.0: - resolution: {integrity: sha512-v9xXYGdm6LIn4iHEfu3egk/PM1g/yJr8uwTIj6E44kurv5dE/4y3QW7WdVmZ0PVnqfTuK+C0ClZcEEiaKWBL9Q==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - css-declaration-sorter@7.1.1: - resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.0.9 - - css-functions-list@3.2.2: - resolution: {integrity: sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==} - engines: {node: '>=12 || >=16'} - - css-has-pseudo@7.0.0: - resolution: {integrity: sha512-vO6k9bBt4/eEZ2PeHmS2VXjJga5SBy6O1ESyaOkse5/lvp6piFqg8Sh5KTU7X33M7Uh/oqo+M3EeMktQrZoTCQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - css-prefers-color-scheme@10.0.0: - resolution: {integrity: sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - - cssdb@8.1.1: - resolution: {integrity: sha512-kRbSRgZoxtZNl5snb3nOzBkFOt5AwnephcUTIEFc2DebKG9PN50/cHarlwOooTxYQ/gxsnKs3BxykhNLmfvyLg==} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + fast-json-stringify@6.0.0: + resolution: { integrity: sha512-FGMKZwniMTgZh7zQp9b6XnBVxUmKVahQLQeRQHqwYmPDqDhcEKZ3BaQsxelFFI5PY7nN71OEeiL47/zUWcYe1A== } - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + fast-levenshtein@2.0.6: + resolution: { integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== } - decompress-response@4.2.1: - resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} - engines: {node: '>=8'} + fast-querystring@1.1.2: + resolution: { integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg== } - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} + fast-redact@3.5.0: + resolution: { integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A== } + engines: { node: '>=6' } - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} + fast-uri@2.4.0: + resolution: { integrity: sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA== } - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + fast-uri@3.0.2: + resolution: { integrity: sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row== } - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + fastest-levenshtein@1.0.16: + resolution: { integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== } + engines: { node: '>= 4.9.1' } - detect-indent@7.0.1: - resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} - engines: {node: '>=12.20'} + fastify-plugin@5.0.1: + resolution: { integrity: sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ== } - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} + fastify@5.0.0: + resolution: { integrity: sha512-Qe4dU+zGOzg7vXjw4EvcuyIbNnMwTmcuOhlOrOJsgwzvjEZmsM/IeHulgJk+r46STjdJS/ZJbxO8N70ODXDMEQ== } - detect-newline@4.0.1: - resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + fastq@1.17.1: + resolution: { integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== } - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + file-entry-cache@8.0.0: + resolution: { integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== } + engines: { node: '>=16.0.0' } - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + file-entry-cache@9.1.0: + resolution: { integrity: sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg== } + engines: { node: '>=18' } - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + fill-range@7.1.1: + resolution: { integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== } + engines: { node: '>=8' } - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + find-my-way@9.1.0: + resolution: { integrity: sha512-Y5jIsuYR4BwWDYYQ2A/RWWE6gD8a0FMgtU+HOq1WKku+Cwdz8M1v8wcAmRXXM1/iqtoqg06v+LjAxMYbCjViMw== } + engines: { node: '>=14' } - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + find-up@4.1.0: + resolution: { integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== } + engines: { node: '>=8' } - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + find-up@5.0.0: + resolution: { integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== } + engines: { node: '>=10' } - electron-to-chromium@1.4.815: - resolution: {integrity: sha512-OvpTT2ItpOXJL7IGcYakRjHCt8L5GrrN/wHCQsRB4PQa1X9fe+X9oen245mIId7s14xvArCGSTIq644yPUKKLg==} + flat-cache@4.0.1: + resolution: { integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== } + engines: { node: '>=16' } - electron-to-chromium@1.5.32: - resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} + flat-cache@5.0.0: + resolution: { integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ== } + engines: { node: '>=18' } - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + flatted@3.3.1: + resolution: { integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== } - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + foreground-child@3.3.0: + resolution: { integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== } + engines: { node: '>=14' } - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + forwarded@0.2.0: + resolution: { integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== } + engines: { node: '>= 0.6' } - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + fraction.js@4.3.7: + resolution: { integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== } - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} + fs-minipass@2.1.0: + resolution: { integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== } + engines: { node: '>= 8' } - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + fs.realpath@1.0.0: + resolution: { integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== } - es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + function-bind@1.1.2: + resolution: { integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== } - esbuild-postcss@0.0.4: - resolution: {integrity: sha512-CKYibp+aCswskE+gBPnGZ0b9YyuY0n9w2dxyMaoLYEvGTwmjkRj5SV8l1zGJpw8KylqmcMTK0Gr349RnOLd+8A==} - peerDependencies: - esbuild: '*' - postcss: ^8.0.0 + gauge@3.0.2: + resolution: { integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== } + engines: { node: '>=10' } + deprecated: This package is no longer supported. - esbuild@0.24.0: - resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} - engines: {node: '>=18'} - hasBin: true + get-stdin@9.0.0: + resolution: { integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== } + engines: { node: '>=12' } - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} + git-hooks-list@3.1.0: + resolution: { integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA== } - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} + glob-parent@5.1.2: + resolution: { integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== } + engines: { node: '>= 6' } - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + glob-parent@6.0.2: + resolution: { integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== } + engines: { node: '>=10.13.0' } - escape-latex@1.2.0: - resolution: {integrity: sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==} + glob@11.0.0: + resolution: { integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g== } + engines: { node: 20 || >=22 } + hasBin: true - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + glob@7.2.3: + resolution: { integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== } + deprecated: Glob versions prior to v9 are no longer supported - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + global-modules@2.0.0: + resolution: { integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== } + engines: { node: '>=6' } - eslint-plugin-jsdoc@50.3.1: - resolution: {integrity: sha512-SY9oUuTMr6aWoJggUS40LtMjsRzJPB5ZT7F432xZIHK3EfHF+8i48GbUBpwanrtlL9l1gILNTHK9o8gEhYLcKA==} - engines: {node: '>=18'} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + global-prefix@3.0.0: + resolution: { integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== } + engines: { node: '>=6' } - eslint-plugin-unicorn@56.0.0: - resolution: {integrity: sha512-aXpddVz/PQMmd69uxO98PA4iidiVNvA0xOtbpUoz1WhBd4RxOQQYqN618v68drY0hmy5uU2jy1bheKEVWBjlPw==} - engines: {node: '>=18.18'} - peerDependencies: - eslint: '>=8.56.0' + globals@14.0.0: + resolution: { integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== } + engines: { node: '>=18' } - eslint-scope@8.1.0: - resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + globals@15.10.0: + resolution: { integrity: sha512-tqFIbz83w4Y5TCbtgjZjApohbuh7K9BxGYFm7ifwDR240tvdb7P9x+/9VvUKlmkPoiknoJtanI8UOrqxS3a7lQ== } + engines: { node: '>=18' } - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + globby@11.1.0: + resolution: { integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== } + engines: { node: '>=10' } - eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + globby@13.2.2: + resolution: { integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - eslint-visitor-keys@4.1.0: - resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + globjoin@0.1.4: + resolution: { integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== } - eslint@9.12.0: - resolution: {integrity: sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true + graphemer@1.4.0: + resolution: { integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== } - espree@10.1.0: - resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + handlebars@4.7.8: + resolution: { integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== } + engines: { node: '>=0.4.7' } + hasBin: true - espree@10.2.0: - resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + has-flag@3.0.0: + resolution: { integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== } + engines: { node: '>=4' } - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} + has-flag@4.0.0: + resolution: { integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== } + engines: { node: '>=8' } - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + has-unicode@2.0.1: + resolution: { integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== } - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + hasown@2.0.2: + resolution: { integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== } + engines: { node: '>= 0.4' } - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + he@1.2.0: + resolution: { integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== } + hasBin: true - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} + hosted-git-info@2.8.9: + resolution: { integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== } - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + html-tags@3.3.1: + resolution: { integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== } + engines: { node: '>=8' } - expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} + http-errors@2.0.0: + resolution: { integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== } + engines: { node: '>= 0.8' } - fast-decode-uri-component@1.0.1: - resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + https-proxy-agent@5.0.1: + resolution: { integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== } + engines: { node: '>= 6' } - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + ieee754@1.2.1: + resolution: { integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== } - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + ignore@5.3.2: + resolution: { integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== } + engines: { node: '>= 4' } - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + import-fresh@3.3.0: + resolution: { integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== } + engines: { node: '>=6' } - fast-json-stringify@6.0.0: - resolution: {integrity: sha512-FGMKZwniMTgZh7zQp9b6XnBVxUmKVahQLQeRQHqwYmPDqDhcEKZ3BaQsxelFFI5PY7nN71OEeiL47/zUWcYe1A==} + imurmurhash@0.1.4: + resolution: { integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== } + engines: { node: '>=0.8.19' } - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + indent-string@4.0.0: + resolution: { integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== } + engines: { node: '>=8' } - fast-querystring@1.1.2: - resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + inflight@1.0.6: + resolution: { integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== } + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - fast-redact@3.3.0: - resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==} - engines: {node: '>=6'} + inherits@2.0.4: + resolution: { integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== } - fast-uri@2.3.0: - resolution: {integrity: sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==} + ini@1.3.8: + resolution: { integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== } - fast-uri@3.0.1: - resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + ipaddr.js@1.9.1: + resolution: { integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== } + engines: { node: '>= 0.10' } - fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} + is-arrayish@0.2.1: + resolution: { integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== } - fastify-plugin@5.0.1: - resolution: {integrity: sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ==} + is-builtin-module@3.2.1: + resolution: { integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== } + engines: { node: '>=6' } - fastify@5.0.0: - resolution: {integrity: sha512-Qe4dU+zGOzg7vXjw4EvcuyIbNnMwTmcuOhlOrOJsgwzvjEZmsM/IeHulgJk+r46STjdJS/ZJbxO8N70ODXDMEQ==} + is-core-module@2.15.1: + resolution: { integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== } + engines: { node: '>= 0.4' } - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + is-extglob@2.1.1: + resolution: { integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== } + engines: { node: '>=0.10.0' } - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} + is-fullwidth-code-point@3.0.0: + resolution: { integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== } + engines: { node: '>=8' } - file-entry-cache@9.0.0: - resolution: {integrity: sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==} - engines: {node: '>=18'} + is-glob@4.0.3: + resolution: { integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== } + engines: { node: '>=0.10.0' } - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + is-number@7.0.0: + resolution: { integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== } + engines: { node: '>=0.12.0' } - find-my-way@9.0.1: - resolution: {integrity: sha512-/5NN/R0pFWuff16TMajeKt2JyiW+/OE8nOO8vo1DwZTxLaIURb7lcBYPIgRPh61yCNh9l8voeKwcrkUzmB00vw==} - engines: {node: '>=14'} + is-plain-obj@4.1.0: + resolution: { integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== } + engines: { node: '>=12' } - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + is-plain-object@5.0.0: + resolution: { integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== } + engines: { node: '>=0.10.0' } - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + isexe@2.0.0: + resolution: { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== } - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} + jackspeak@4.0.2: + resolution: { integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw== } + engines: { node: 20 || >=22 } - flat-cache@5.0.0: - resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} - engines: {node: '>=18'} + javascript-natural-sort@0.7.1: + resolution: { integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw== } - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + js-tokens@4.0.0: + resolution: { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== } - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} + js-yaml@4.1.0: + resolution: { integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== } + hasBin: true - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} + jsdoc-type-pratt-parser@4.1.0: + resolution: { integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg== } + engines: { node: '>=12.0.0' } - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + jsesc@0.5.0: + resolution: { integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== } + hasBin: true - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + jsesc@3.0.2: + resolution: { integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== } + engines: { node: '>=6' } + hasBin: true - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + json-buffer@3.0.1: + resolution: { integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== } - get-stdin@9.0.0: - resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} - engines: {node: '>=12'} + json-parse-even-better-errors@2.3.1: + resolution: { integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== } - git-hooks-list@3.1.0: - resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==} + json-schema-ref-resolver@1.0.1: + resolution: { integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw== } - github-from-package@0.0.0: - resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + json-schema-traverse@0.4.1: + resolution: { integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== } - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + json-schema-traverse@1.0.0: + resolution: { integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== } - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + json-stable-stringify-without-jsonify@1.0.1: + resolution: { integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== } - glob@11.0.0: - resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} - engines: {node: 20 || >=22} - hasBin: true + kareem@2.6.3: + resolution: { integrity: sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q== } + engines: { node: '>=12.0.0' } - global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} + keyv@4.5.4: + resolution: { integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== } - global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} + kind-of@6.0.3: + resolution: { integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== } + engines: { node: '>=0.10.0' } - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} + known-css-properties@0.34.0: + resolution: { integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ== } - globals@15.10.0: - resolution: {integrity: sha512-tqFIbz83w4Y5TCbtgjZjApohbuh7K9BxGYFm7ifwDR240tvdb7P9x+/9VvUKlmkPoiknoJtanI8UOrqxS3a7lQ==} - engines: {node: '>=18'} + levn@0.4.1: + resolution: { integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== } + engines: { node: '>= 0.8.0' } - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + light-my-request@6.1.0: + resolution: { integrity: sha512-+NFuhlOGoEwxeQfJ/pobkVFxcnKyDtiX847hLjuB/IzBxIl3q4VJeFI8uRCgb3AlTWL1lgOr+u5+8QdUcr33ng== } - globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lilconfig@2.1.0: + resolution: { integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== } + engines: { node: '>=10' } - globjoin@0.1.4: - resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + lines-and-columns@1.2.4: + resolution: { integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== } - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + locate-path@5.0.0: + resolution: { integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== } + engines: { node: '>=8' } - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} - engines: {node: '>=0.4.7'} - hasBin: true + locate-path@6.0.0: + resolution: { integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== } + engines: { node: '>=10' } - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + lodash.merge@4.6.2: + resolution: { integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== } - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + lodash.truncate@4.4.2: + resolution: { integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== } - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + lru-cache@11.0.1: + resolution: { integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ== } + engines: { node: 20 || >=22 } - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true + make-dir@3.1.0: + resolution: { integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== } + engines: { node: '>=8' } + + mathjs@13.2.0: + resolution: { integrity: sha512-P5PZoiUX2Tkghkv3tsSqlK0B9My/ErKapv1j6wdxd0MOrYQ30cnGE4LH/kzYB2gA5rN46Njqc4cFgJjaxgijoQ== } + engines: { node: '>= 18' } + hasBin: true + + mathml-tag-names@2.1.3: + resolution: { integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== } + + mdn-data@2.0.30: + resolution: { integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== } + + memory-pager@1.5.0: + resolution: { integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== } + + meow@13.2.0: + resolution: { integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA== } + engines: { node: '>=18' } + + merge2@1.4.1: + resolution: { integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== } + engines: { node: '>= 8' } + + micromatch@4.0.8: + resolution: { integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== } + engines: { node: '>=8.6' } + + mime@3.0.0: + resolution: { integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== } + engines: { node: '>=10.0.0' } + hasBin: true + + mimic-response@2.1.0: + resolution: { integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== } + engines: { node: '>=8' } + + min-indent@1.0.1: + resolution: { integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== } + engines: { node: '>=4' } + + minimatch@10.0.1: + resolution: { integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== } + engines: { node: 20 || >=22 } + + minimatch@3.1.2: + resolution: { integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== } + + minimatch@9.0.5: + resolution: { integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== } + engines: { node: '>=16 || 14 >=14.17' } + + minimist@1.2.8: + resolution: { integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== } + + minipass@3.3.6: + resolution: { integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== } + engines: { node: '>=8' } + + minipass@5.0.0: + resolution: { integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== } + engines: { node: '>=8' } + + minipass@7.1.2: + resolution: { integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== } + engines: { node: '>=16 || 14 >=14.17' } + + minizlib@2.1.2: + resolution: { integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== } + engines: { node: '>= 8' } + + mkdirp@1.0.4: + resolution: { integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== } + engines: { node: '>=10' } + hasBin: true + + mongodb-connection-string-url@3.0.1: + resolution: { integrity: sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg== } + + mongodb@6.9.0: + resolution: { integrity: sha512-UMopBVx1LmEUbW/QE0Hw18u583PEDVQmUmVzzBRH0o/xtE9DBRA5ZYLOjpLIa03i8FXjzvQECJcqoMvCXftTUA== } + engines: { node: '>=16.20.1' } + peerDependencies: + '@aws-sdk/credential-providers': ^3.188.0 + '@mongodb-js/zstd': ^1.1.0 + gcp-metadata: ^5.2.0 + kerberos: ^2.0.1 + mongodb-client-encryption: '>=6.0.0 <7' + snappy: ^7.2.2 + socks: ^2.7.1 + peerDependenciesMeta: + '@aws-sdk/credential-providers': + optional: true + '@mongodb-js/zstd': + optional: true + gcp-metadata: + optional: true + kerberos: + optional: true + mongodb-client-encryption: + optional: true + snappy: + optional: true + socks: + optional: true + + mongoose@8.7.0: + resolution: { integrity: sha512-rUCSF1mMYQXjXYdqEQLLlMD3xbcj2j1/hRn+9VnVj7ipzru/UoUZxlj/hWmteKMAh4EFnDZ+BIrmma9l/0Hi1g== } + engines: { node: '>=16.20.1' } + + mpath@0.9.0: + resolution: { integrity: sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew== } + engines: { node: '>=4.0.0' } + + mquery@5.0.0: + resolution: { integrity: sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg== } + engines: { node: '>=14.0.0' } + + ms@2.1.3: + resolution: { integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== } + + nan@2.20.0: + resolution: { integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw== } + + nanoid@3.3.7: + resolution: { integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + + natural-compare@1.4.0: + resolution: { integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== } + + neo-async@2.6.2: + resolution: { integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== } + + node-fetch@2.7.0: + resolution: { integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== } + engines: { node: 4.x || >=6.0.0 } + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-html-parser@6.1.13: + resolution: { integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg== } + + node-releases@2.0.18: + resolution: { integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== } + + nopt@5.0.0: + resolution: { integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== } + engines: { node: '>=6' } + hasBin: true + + normalize-package-data@2.5.0: + resolution: { integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== } + + normalize-path@3.0.0: + resolution: { integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== } + engines: { node: '>=0.10.0' } + + normalize-range@0.1.2: + resolution: { integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== } + engines: { node: '>=0.10.0' } + + npmlog@5.0.1: + resolution: { integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== } + deprecated: This package is no longer supported. + + nth-check@2.1.1: + resolution: { integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== } + + object-assign@4.1.1: + resolution: { integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== } + engines: { node: '>=0.10.0' } + + on-exit-leak-free@2.1.2: + resolution: { integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA== } + engines: { node: '>=14.0.0' } + + once@1.4.0: + resolution: { integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== } + + optionator@0.9.4: + resolution: { integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== } + engines: { node: '>= 0.8.0' } + + p-limit@2.3.0: + resolution: { integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== } + engines: { node: '>=6' } + + p-limit@3.1.0: + resolution: { integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== } + engines: { node: '>=10' } + + p-locate@4.1.0: + resolution: { integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== } + engines: { node: '>=8' } + + p-locate@5.0.0: + resolution: { integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== } + engines: { node: '>=10' } + + p-try@2.2.0: + resolution: { integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== } + engines: { node: '>=6' } + + package-json-from-dist@1.0.1: + resolution: { integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== } + + parent-module@1.0.1: + resolution: { integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== } + engines: { node: '>=6' } + + parse-imports@2.2.1: + resolution: { integrity: sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ== } + engines: { node: '>= 18' } + + parse-json@5.2.0: + resolution: { integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== } + engines: { node: '>=8' } + + path-exists@4.0.0: + resolution: { integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== } + engines: { node: '>=8' } + + path-is-absolute@1.0.1: + resolution: { integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== } + engines: { node: '>=0.10.0' } + + path-key@3.1.1: + resolution: { integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== } + engines: { node: '>=8' } + + path-parse@1.0.7: + resolution: { integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== } + + path-scurry@2.0.0: + resolution: { integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== } + engines: { node: 20 || >=22 } + + path-type@4.0.0: + resolution: { integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== } + engines: { node: '>=8' } + + picocolors@1.1.0: + resolution: { integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== } + + picomatch@2.3.1: + resolution: { integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== } + engines: { node: '>=8.6' } + + pino-abstract-transport@1.2.0: + resolution: { integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q== } + + pino-std-serializers@7.0.0: + resolution: { integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA== } + + pino@9.4.0: + resolution: { integrity: sha512-nbkQb5+9YPhQRz/BeQmrWpEknAaqjpAqRK8NwJpmrX/JHu7JuZC5G1CeAwJDJfGes4h+YihC6in3Q2nGb+Y09w== } + hasBin: true + + pluralize@8.0.0: + resolution: { integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== } + engines: { node: '>=4' } + + postcss-attribute-case-insensitive@7.0.0: + resolution: { integrity: sha512-ETMUHIw67Kyv9Q81nden/NuJbRh+4/S963giXpfSLd5eaKK8kd1UdAHMVRV/NG/w/N6Cq8B0qZIZbZZWU/67+A== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-clamp@4.1.0: + resolution: { integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== } + engines: { node: '>=7.6.0' } + peerDependencies: + postcss: ^8.4.6 + + postcss-color-functional-notation@7.0.2: + resolution: { integrity: sha512-c2WkR0MS73s+P5SgY1KBaSEE61Rj+miW095rkWDnMQxbTCQkp6y/jft8U0QMxEsI4k1Pd4PdV+TP9/1zIDR6XQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-color-hex-alpha@10.0.0: + resolution: { integrity: sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-color-rebeccapurple@10.0.0: + resolution: { integrity: sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-custom-media@11.0.2: + resolution: { integrity: sha512-IDtxB1VgPayRLjNBMjuf827sn1j2m9EGnhIxpx2coVerbWJF+twt590+PKvdDc4K8QNFqFJh+W/SOiHpasVXsg== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-custom-properties@14.0.1: + resolution: { integrity: sha512-SB4GjuZjIq5GQFNbxFrirQPbkdbJooyNy8bh+fcJ8ZG0oasJTflTTtR4geb56h+FBVDIb9Hx4v/NiG2caOj8nQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-custom-selectors@8.0.1: + resolution: { integrity: sha512-2McIpyhAeKhUzVqrP4ZyMBpK5FuD+Y9tpQwhcof49652s7gez8057cSaOg/epYcKlztSYxb0GHfi7W5h3JoGUg== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-dir-pseudo-class@9.0.0: + resolution: { integrity: sha512-T59BG9lURiXmhcJMyKbyjNAK3KCyEQYEhaz9GAETHXfIy9XbGQeyz+H0zIwRJlrP4KKRPJolNYe3QjQPemMjBA== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-double-position-gradients@6.0.0: + resolution: { integrity: sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-focus-visible@10.0.0: + resolution: { integrity: sha512-GJjzvTj7JY+zN7wVBQ4osdKX53QLUdr6r2rSEkBUqrEMDKu3fHMHKOY9rirdirbHCx3IETnK25EtpPARR2KWNw== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-focus-within@9.0.0: + resolution: { integrity: sha512-QwflAWUToNZvQLGbc4qJhrQO8yZ5617L6hSNzNWDoqRX4FoIh9fbJbEjy0nvFPciaaOoCaeqcxBwYPbFU0HvBw== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-font-variant@5.0.0: + resolution: { integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== } + peerDependencies: + postcss: ^8.1.0 + + postcss-gap-properties@6.0.0: + resolution: { integrity: sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-image-set-function@7.0.0: + resolution: { integrity: sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-lab-function@7.0.2: + resolution: { integrity: sha512-h4ARGLIBtC1PmCHsLgTWWj8j1i1CXoaht4A5RlITDX2z9AeFBak0YlY6sdF4oJGljrep+Dg2SSccIj4QnFbRDg== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-less@6.0.0: + resolution: { integrity: sha512-FPX16mQLyEjLzEuuJtxA8X3ejDLNGGEG503d2YGZR5Ask1SpDN8KmZUMpzCvyalWRywAn1n1VOA5dcqfCLo5rg== } + engines: { node: '>=12' } + peerDependencies: + postcss: ^8.3.5 + + postcss-load-config@3.1.4: + resolution: { integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== } + engines: { node: '>= 10' } + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-logical@8.0.0: + resolution: { integrity: sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-nesting@13.0.0: + resolution: { integrity: sha512-TCGQOizyqvEkdeTPM+t6NYwJ3EJszYE/8t8ILxw/YoeUvz2rz7aM8XTAmBWh9/DJjfaaabL88fWrsVHSPF2zgA== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-opacity-percentage@3.0.0: + resolution: { integrity: sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-overflow-shorthand@6.0.0: + resolution: { integrity: sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-page-break@3.0.4: + resolution: { integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== } + peerDependencies: + postcss: ^8 + + postcss-place@10.0.0: + resolution: { integrity: sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-preset-env@10.0.6: + resolution: { integrity: sha512-qixfM2wbvKJhUjJELLB8lV2UCsyrMdSXqiXHiNKMgAbNturstc80j/8MsthJeOpxYEekrCrFzcaoOJm8JRSdBg== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-pseudo-class-any-link@10.0.0: + resolution: { integrity: sha512-bde8VE08Gq3ekKDq2BQ0ESOjNX54lrFDK3U9zABPINaqHblbZL/4Wfo5Y2vk6U64yVd/sjDwTzuiisFBpGNNIQ== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-replace-overflow-wrap@4.0.0: + resolution: { integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== } + peerDependencies: + postcss: ^8.0.3 + + postcss-resolve-nested-selector@0.1.6: + resolution: { integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw== } + + postcss-safe-parser@7.0.1: + resolution: { integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A== } + engines: { node: '>=18.0' } + peerDependencies: + postcss: ^8.4.31 + + postcss-scss@4.0.9: + resolution: { integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A== } + engines: { node: '>=12.0' } + peerDependencies: + postcss: ^8.4.29 + + postcss-selector-not@8.0.0: + resolution: { integrity: sha512-g/juh7A83GWc3+kWL8BiS3YUIJb3XNqIVKz1kGvgN3OhoGCsPncy1qo/+q61tjy5r87OxBhSY1+hcH3yOhEW+g== } + engines: { node: '>=18' } + peerDependencies: + postcss: ^8.4 + + postcss-selector-parser@6.1.2: + resolution: { integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== } + engines: { node: '>=4' } + + postcss-value-parser@4.2.0: + resolution: { integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== } + + postcss@8.4.47: + resolution: { integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ== } + engines: { node: ^10 || ^12 || >=14 } + + prelude-ls@1.2.1: + resolution: { integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== } + engines: { node: '>= 0.8.0' } + + prettier-plugin-css-order@2.1.2: + resolution: { integrity: sha512-vomxPjHI6pOMYcBuouSJHxxQClJXaUpU9rsV9IAO2wrSTZILRRlrxAAR8t9UF6wtczLkLfNRFUwM+ZbGXOONUA== } + engines: { node: '>=16' } + peerDependencies: + prettier: 3.x + + prettier-plugin-organize-imports@4.1.0: + resolution: { integrity: sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A== } + peerDependencies: + prettier: '>=2.0' + typescript: '>=2.9' + vue-tsc: ^2.1.0 + peerDependenciesMeta: + vue-tsc: + optional: true + + prettier-plugin-packagejson@2.5.3: + resolution: { integrity: sha512-ATMEEXr+ywls1kgrZEWl4SBPEm0uDdyDAjyNzUC0/Z8WZTD3RqbJcQDR+Dau+wYkW9KHK6zqQIsFyfn+9aduWg== } + peerDependencies: + prettier: '>= 1.16.0' + peerDependenciesMeta: + prettier: + optional: true + + prettier@3.3.3: + resolution: { integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== } + engines: { node: '>=14' } + hasBin: true + + process-warning@4.0.0: + resolution: { integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw== } + + process@0.11.10: + resolution: { integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== } + engines: { node: '>= 0.6.0' } + + proxy-addr@2.0.7: + resolution: { integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== } + engines: { node: '>= 0.10' } + + punycode@2.3.1: + resolution: { integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== } + engines: { node: '>=6' } + + queue-microtask@1.2.3: + resolution: { integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== } + + quick-format-unescaped@4.0.4: + resolution: { integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== } + + read-pkg-up@7.0.1: + resolution: { integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== } + engines: { node: '>=8' } + + read-pkg@5.2.0: + resolution: { integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== } + engines: { node: '>=8' } + + readable-stream@3.6.2: + resolution: { integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== } + engines: { node: '>= 6' } + + readable-stream@4.5.2: + resolution: { integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + + readdirp@4.0.2: + resolution: { integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA== } + engines: { node: '>= 14.16.0' } + + real-require@0.2.0: + resolution: { integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== } + engines: { node: '>= 12.13.0' } + + regenerator-runtime@0.14.1: + resolution: { integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== } - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + regexp-tree@0.1.27: + resolution: { integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== } + hasBin: true - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} + regjsparser@0.10.0: + resolution: { integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA== } + hasBin: true - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + require-from-string@2.0.2: + resolution: { integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== } + engines: { node: '>=0.10.0' } - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + resolve-from@4.0.0: + resolution: { integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== } + engines: { node: '>=4' } - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} + resolve-from@5.0.0: + resolution: { integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== } + engines: { node: '>=8' } - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + resolve@1.22.8: + resolution: { integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== } + hasBin: true - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + ret@0.5.0: + resolution: { integrity: sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw== } + engines: { node: '>=10' } - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} + reusify@1.0.4: + resolution: { integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== } + engines: { iojs: '>=1.0.0', node: '>=0.10.0' } - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + rfdc@1.4.1: + resolution: { integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== } - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + rimraf@3.0.2: + resolution: { integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== } + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} + run-parallel@1.2.0: + resolution: { integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== } - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + safe-buffer@5.2.1: + resolution: { integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== } - is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} + safe-regex2@4.0.0: + resolution: { integrity: sha512-Hvjfv25jPDVr3U+4LDzBuZPPOymELG3PYcSk5hcevooo1yxxamQL/bHs/GrEPGmMoMEwRrHVGiCA1pXi97B8Ew== } - is-core-module@2.14.0: - resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} - engines: {node: '>= 0.4'} + safe-stable-stringify@2.5.0: + resolution: { integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA== } + engines: { node: '>=10' } - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + secure-json-parse@2.7.0: + resolution: { integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== } - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + seedrandom@3.0.5: + resolution: { integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== } - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + semver@5.7.2: + resolution: { integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== } + hasBin: true - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + semver@6.3.1: + resolution: { integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== } + hasBin: true - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + semver@7.6.3: + resolution: { integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== } + engines: { node: '>=10' } + hasBin: true - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} + set-blocking@2.0.0: + resolution: { integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== } - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + set-cookie-parser@2.7.0: + resolution: { integrity: sha512-lXLOiqpkUumhRdFF3k1osNXCy9akgx/dyPZ5p8qAg9seJzXr5ZrlqZuWIMuY6ejOsVLE6flJ5/h3lsn57fQ/PQ== } - jackspeak@4.0.1: - resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==} - engines: {node: 20 || >=22} + setprototypeof@1.2.0: + resolution: { integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== } - javascript-natural-sort@0.7.1: - resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} + shebang-command@2.0.0: + resolution: { integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== } + engines: { node: '>=8' } - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + shebang-regex@3.0.0: + resolution: { integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== } + engines: { node: '>=8' } - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + sift@17.1.3: + resolution: { integrity: sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ== } - jsdoc-type-pratt-parser@4.1.0: - resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} - engines: {node: '>=12.0.0'} + signal-exit@3.0.7: + resolution: { integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== } - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true + signal-exit@4.1.0: + resolution: { integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== } + engines: { node: '>=14' } - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true + simple-concat@1.0.1: + resolution: { integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== } - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + simple-get@3.1.1: + resolution: { integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== } - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + slash@3.0.0: + resolution: { integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== } + engines: { node: '>=8' } - json-schema-ref-resolver@1.0.1: - resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==} + slash@4.0.0: + resolution: { integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== } + engines: { node: '>=12' } - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + slashes@3.0.12: + resolution: { integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA== } - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + slice-ansi@4.0.0: + resolution: { integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== } + engines: { node: '>=10' } - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + sonic-boom@4.1.0: + resolution: { integrity: sha512-NGipjjRicyJJ03rPiZCJYjwlsuP2d1/5QUviozRXC7S3WdVWNK5e3Ojieb9CCyfhq2UC+3+SRd9nG3I2lPRvUw== } - kareem@2.6.3: - resolution: {integrity: sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==} - engines: {node: '>=12.0.0'} + sort-object-keys@1.1.3: + resolution: { integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg== } - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + sort-package-json@2.10.1: + resolution: { integrity: sha512-d76wfhgUuGypKqY72Unm5LFnMpACbdxXsLPcL27pOsSrmVqH3PztFp1uq+Z22suk15h7vXmTesuh2aEjdCqb5w== } + hasBin: true - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} + source-map-js@1.2.1: + resolution: { integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== } + engines: { node: '>=0.10.0' } - known-css-properties@0.34.0: - resolution: {integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==} + source-map@0.6.1: + resolution: { integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== } + engines: { node: '>=0.10.0' } - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + sparse-bitfield@3.0.3: + resolution: { integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== } - light-my-request@6.0.0: - resolution: {integrity: sha512-kFkFXrmKCL0EEeOmJybMH5amWFd+AFvlvMlvFTRxCUwbhfapZqDmeLMPoWihntnYY6JpoQDE9k+vOzObF1fDqg==} + spdx-correct@3.2.0: + resolution: { integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== } - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + spdx-exceptions@2.5.0: + resolution: { integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== } - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + spdx-expression-parse@3.0.1: + resolution: { integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== } - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + spdx-expression-parse@4.0.0: + resolution: { integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ== } - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + spdx-license-ids@3.0.20: + resolution: { integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== } - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + split2@4.2.0: + resolution: { integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== } + engines: { node: '>= 10.x' } - lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + statuses@2.0.1: + resolution: { integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== } + engines: { node: '>= 0.8' } - lru-cache@11.0.1: - resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==} - engines: {node: 20 || >=22} + string-width@4.2.3: + resolution: { integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== } + engines: { node: '>=8' } - mathjs@13.2.0: - resolution: {integrity: sha512-P5PZoiUX2Tkghkv3tsSqlK0B9My/ErKapv1j6wdxd0MOrYQ30cnGE4LH/kzYB2gA5rN46Njqc4cFgJjaxgijoQ==} - engines: {node: '>= 18'} - hasBin: true + string-width@5.1.2: + resolution: { integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== } + engines: { node: '>=12' } - mathml-tag-names@2.1.3: - resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + string_decoder@1.3.0: + resolution: { integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== } - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + strip-ansi@6.0.1: + resolution: { integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== } + engines: { node: '>=8' } - memory-pager@1.5.0: - resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} + strip-ansi@7.1.0: + resolution: { integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== } + engines: { node: '>=12' } - meow@13.2.0: - resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} - engines: {node: '>=18'} + strip-indent@3.0.0: + resolution: { integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== } + engines: { node: '>=8' } - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + strip-json-comments@3.1.1: + resolution: { integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== } + engines: { node: '>=8' } - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} + stylelint-config-recommended@14.0.1: + resolution: { integrity: sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg== } + engines: { node: '>=18.12.0' } + peerDependencies: + stylelint: ^16.1.0 - mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true + stylelint-config-standard@36.0.1: + resolution: { integrity: sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw== } + engines: { node: '>=18.12.0' } + peerDependencies: + stylelint: ^16.1.0 - mimic-response@2.1.0: - resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} - engines: {node: '>=8'} + stylelint-use-nesting@6.0.0: + resolution: { integrity: sha512-5/Icok0O35pU3DpHRmISTsElba2btHpPlNcbVrwy6AhapIPKE1QqaMslYhI0Cjt5/w4ALS4iICde9BhVq7HYKA== } + engines: { node: '>=20.0.0' } + peerDependencies: + stylelint: '>= 16.9.0' - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} + stylelint@16.9.0: + resolution: { integrity: sha512-31Nm3WjxGOBGpQqF43o3wO9L5AC36TPIe6030Lnm13H3vDMTcS21DrLh69bMX+DBilKqMMVLian4iG6ybBoNRQ== } + engines: { node: '>=18.12.0' } + hasBin: true - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} + supports-color@5.5.0: + resolution: { integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== } + engines: { node: '>=4' } - minimatch@10.0.1: - resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} - engines: {node: 20 || >=22} + supports-color@7.2.0: + resolution: { integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== } + engines: { node: '>=8' } - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + supports-hyperlinks@3.1.0: + resolution: { integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A== } + engines: { node: '>=14.18' } - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} + supports-preserve-symlinks-flag@1.0.0: + resolution: { integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== } + engines: { node: '>= 0.4' } - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - - mongodb-connection-string-url@3.0.0: - resolution: {integrity: sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==} - - mongodb@6.9.0: - resolution: {integrity: sha512-UMopBVx1LmEUbW/QE0Hw18u583PEDVQmUmVzzBRH0o/xtE9DBRA5ZYLOjpLIa03i8FXjzvQECJcqoMvCXftTUA==} - engines: {node: '>=16.20.1'} - peerDependencies: - '@aws-sdk/credential-providers': ^3.188.0 - '@mongodb-js/zstd': ^1.1.0 - gcp-metadata: ^5.2.0 - kerberos: ^2.0.1 - mongodb-client-encryption: '>=6.0.0 <7' - snappy: ^7.2.2 - socks: ^2.7.1 - peerDependenciesMeta: - '@aws-sdk/credential-providers': - optional: true - '@mongodb-js/zstd': - optional: true - gcp-metadata: - optional: true - kerberos: - optional: true - mongodb-client-encryption: - optional: true - snappy: - optional: true - socks: - optional: true + svg-tags@1.0.0: + resolution: { integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== } - mongoose@8.7.0: - resolution: {integrity: sha512-rUCSF1mMYQXjXYdqEQLLlMD3xbcj2j1/hRn+9VnVj7ipzru/UoUZxlj/hWmteKMAh4EFnDZ+BIrmma9l/0Hi1g==} - engines: {node: '>=16.20.1'} + synckit@0.9.2: + resolution: { integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw== } + engines: { node: ^14.18.0 || >=16.0.0 } - mpath@0.9.0: - resolution: {integrity: sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==} - engines: {node: '>=4.0.0'} + table@6.8.2: + resolution: { integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA== } + engines: { node: '>=10.0.0' } - mquery@5.0.0: - resolution: {integrity: sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==} - engines: {node: '>=14.0.0'} + tar@6.2.1: + resolution: { integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== } + engines: { node: '>=10' } + + text-table@0.2.0: + resolution: { integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== } + + thread-stream@3.1.0: + resolution: { integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A== } + + tiny-emitter@2.1.0: + resolution: { integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== } + + to-regex-range@5.0.1: + resolution: { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } + engines: { node: '>=8.0' } + + toad-cache@3.7.0: + resolution: { integrity: sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw== } + engines: { node: '>=12' } + + toidentifier@1.0.1: + resolution: { integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== } + engines: { node: '>=0.6' } + + tr46@0.0.3: + resolution: { integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== } + + tr46@4.1.1: + resolution: { integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw== } + engines: { node: '>=14' } + + tree-kill@1.2.2: + resolution: { integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== } + hasBin: true + + ts-api-utils@1.3.0: + resolution: { integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== } + engines: { node: '>=16' } + peerDependencies: + typescript: '>=4.2.0' - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + tslib@2.7.0: + resolution: { integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== } + + type-check@0.4.0: + resolution: { integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== } + engines: { node: '>= 0.8.0' } - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + type-fest@0.6.0: + resolution: { integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== } + engines: { node: '>=8' } - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + type-fest@0.8.1: + resolution: { integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== } + engines: { node: '>=8' } - napi-build-utils@1.0.2: - resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + typed-function@4.2.1: + resolution: { integrity: sha512-EGjWssW7Tsk4DGfE+5yluuljS1OGYWiI1J6e8puZz9nTMM51Oug8CD5Zo4gWMsOhq5BI+1bF+rWTm4Vbj3ivRA== } + engines: { node: '>= 18' } - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + typescript-eslint@8.8.1: + resolution: { integrity: sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ== } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + typescript@5.6.2: + resolution: { integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw== } + engines: { node: '>=14.17' } + hasBin: true - node-abi@3.65.0: - resolution: {integrity: sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==} - engines: {node: '>=10'} + uglify-js@3.19.3: + resolution: { integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== } + engines: { node: '>=0.8.0' } + hasBin: true - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + undici-types@6.19.8: + resolution: { integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== } - node-html-parser@6.1.13: - resolution: {integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==} + update-browserslist-db@1.1.1: + resolution: { integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== } + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + uri-js@4.4.1: + resolution: { integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== } - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + util-deprecate@1.0.2: + resolution: { integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== } - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + validate-npm-package-license@3.0.4: + resolution: { integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== } - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + webidl-conversions@3.0.1: + resolution: { integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== } - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} + webidl-conversions@7.0.0: + resolution: { integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== } + engines: { node: '>=12' } - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + whatwg-url@13.0.0: + resolution: { integrity: sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig== } + engines: { node: '>=16' } - on-exit-leak-free@2.1.2: - resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} - engines: {node: '>=14.0.0'} + whatwg-url@5.0.0: + resolution: { integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== } - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + which@1.3.1: + resolution: { integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== } + hasBin: true - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} + which@2.0.2: + resolution: { integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== } + engines: { node: '>= 8' } + hasBin: true - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + wide-align@1.1.5: + resolution: { integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== } - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + word-wrap@1.2.5: + resolution: { integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== } + engines: { node: '>=0.10.0' } - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + wordwrap@1.0.0: + resolution: { integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== } - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: + resolution: { integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== } + engines: { node: '>=10' } - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + wrap-ansi@8.1.0: + resolution: { integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== } + engines: { node: '>=12' } - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + wrappy@1.0.2: + resolution: { integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== } - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + write-file-atomic@5.0.1: + resolution: { integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } - parse-imports@2.1.1: - resolution: {integrity: sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==} - engines: {node: '>= 18'} + yallist@4.0.0: + resolution: { integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== } - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + yaml@1.10.2: + resolution: { integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== } + engines: { node: '>= 6' } - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + yocto-queue@0.1.0: + resolution: { integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== } + engines: { node: '>=10' } - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} - engines: {node: 20 || >=22} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pino-abstract-transport@1.2.0: - resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} - - pino-std-serializers@6.2.2: - resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} - - pino@9.0.0: - resolution: {integrity: sha512-uI1ThkzTShNSwvsUM6b4ND8ANzWURk9zTELMztFkmnCQeR/4wkomJ+echHee5GMWGovoSfjwdeu80DsFIt7mbA==} - hasBin: true - - pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - - postcss-attribute-case-insensitive@7.0.0: - resolution: {integrity: sha512-ETMUHIw67Kyv9Q81nden/NuJbRh+4/S963giXpfSLd5eaKK8kd1UdAHMVRV/NG/w/N6Cq8B0qZIZbZZWU/67+A==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-clamp@4.1.0: - resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} - engines: {node: '>=7.6.0'} - peerDependencies: - postcss: ^8.4.6 - - postcss-color-functional-notation@7.0.2: - resolution: {integrity: sha512-c2WkR0MS73s+P5SgY1KBaSEE61Rj+miW095rkWDnMQxbTCQkp6y/jft8U0QMxEsI4k1Pd4PdV+TP9/1zIDR6XQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-color-hex-alpha@10.0.0: - resolution: {integrity: sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-color-rebeccapurple@10.0.0: - resolution: {integrity: sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-custom-media@11.0.2: - resolution: {integrity: sha512-IDtxB1VgPayRLjNBMjuf827sn1j2m9EGnhIxpx2coVerbWJF+twt590+PKvdDc4K8QNFqFJh+W/SOiHpasVXsg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-custom-properties@14.0.1: - resolution: {integrity: sha512-SB4GjuZjIq5GQFNbxFrirQPbkdbJooyNy8bh+fcJ8ZG0oasJTflTTtR4geb56h+FBVDIb9Hx4v/NiG2caOj8nQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-custom-selectors@8.0.1: - resolution: {integrity: sha512-2McIpyhAeKhUzVqrP4ZyMBpK5FuD+Y9tpQwhcof49652s7gez8057cSaOg/epYcKlztSYxb0GHfi7W5h3JoGUg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-dir-pseudo-class@9.0.0: - resolution: {integrity: sha512-T59BG9lURiXmhcJMyKbyjNAK3KCyEQYEhaz9GAETHXfIy9XbGQeyz+H0zIwRJlrP4KKRPJolNYe3QjQPemMjBA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-double-position-gradients@6.0.0: - resolution: {integrity: sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-focus-visible@10.0.0: - resolution: {integrity: sha512-GJjzvTj7JY+zN7wVBQ4osdKX53QLUdr6r2rSEkBUqrEMDKu3fHMHKOY9rirdirbHCx3IETnK25EtpPARR2KWNw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-focus-within@9.0.0: - resolution: {integrity: sha512-QwflAWUToNZvQLGbc4qJhrQO8yZ5617L6hSNzNWDoqRX4FoIh9fbJbEjy0nvFPciaaOoCaeqcxBwYPbFU0HvBw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-font-variant@5.0.0: - resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} - peerDependencies: - postcss: ^8.1.0 - - postcss-gap-properties@6.0.0: - resolution: {integrity: sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-image-set-function@7.0.0: - resolution: {integrity: sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-lab-function@7.0.2: - resolution: {integrity: sha512-h4ARGLIBtC1PmCHsLgTWWj8j1i1CXoaht4A5RlITDX2z9AeFBak0YlY6sdF4oJGljrep+Dg2SSccIj4QnFbRDg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-less@6.0.0: - resolution: {integrity: sha512-FPX16mQLyEjLzEuuJtxA8X3ejDLNGGEG503d2YGZR5Ask1SpDN8KmZUMpzCvyalWRywAn1n1VOA5dcqfCLo5rg==} - engines: {node: '>=12'} - peerDependencies: - postcss: ^8.3.5 - - postcss-load-config@3.1.4: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: +snapshots: + '@babel/code-frame@7.25.7': + dependencies: + '@babel/highlight': 7.25.7 + picocolors: 1.1.0 + + '@babel/helper-validator-identifier@7.25.7': {} + + '@babel/highlight@7.25.7': + dependencies: + '@babel/helper-validator-identifier': 7.25.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.0 + + '@babel/runtime@7.25.7': + dependencies: + regenerator-runtime: 0.14.1 + + '@csstools/cascade-layer-name-parser@2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + + '@csstools/color-helpers@5.0.1': {} + + '@csstools/css-calc@2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + + '@csstools/css-color-parser@3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': + dependencies: + '@csstools/color-helpers': 5.0.1 + '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + + '@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1)': + dependencies: + '@csstools/css-tokenizer': 3.0.1 + + '@csstools/css-tokenizer@3.0.1': {} + + '@csstools/media-query-list-parser@3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + + '@csstools/postcss-cascade-layers@5.0.0(postcss@8.4.47)': + dependencies: + '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + '@csstools/postcss-color-function@4.0.2(postcss@8.4.47)': + dependencies: + '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + + '@csstools/postcss-color-mix-function@3.0.2(postcss@8.4.47)': + dependencies: + '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + + '@csstools/postcss-content-alt-text@2.0.1(postcss@8.4.47)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + + '@csstools/postcss-exponential-functions@2.0.1(postcss@8.4.47)': + dependencies: + '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + postcss: 8.4.47 + + '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.4.47)': + dependencies: + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-gamut-mapping@2.0.2(postcss@8.4.47)': + dependencies: + '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + postcss: 8.4.47 + + '@csstools/postcss-gradients-interpolation-method@5.0.2(postcss@8.4.47)': + dependencies: + '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + + '@csstools/postcss-hwb-function@4.0.2(postcss@8.4.47)': + dependencies: + '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + + '@csstools/postcss-ic-unit@4.0.0(postcss@8.4.47)': + dependencies: + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-initial@2.0.0(postcss@8.4.47)': + dependencies: + postcss: 8.4.47 + + '@csstools/postcss-is-pseudo-class@5.0.0(postcss@8.4.47)': + dependencies: + '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + '@csstools/postcss-light-dark-function@2.0.4(postcss@8.4.47)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + + '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.4.47)': + dependencies: + postcss: 8.4.47 + + '@csstools/postcss-logical-overflow@2.0.0(postcss@8.4.47)': + dependencies: + postcss: 8.4.47 + + '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.4.47)': + dependencies: + postcss: 8.4.47 + + '@csstools/postcss-logical-resize@3.0.0(postcss@8.4.47)': + dependencies: + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-logical-viewport-units@3.0.1(postcss@8.4.47)': + dependencies: + '@csstools/css-tokenizer': 3.0.1 + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + + '@csstools/postcss-media-minmax@2.0.1(postcss@8.4.47)': + dependencies: + '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + postcss: 8.4.47 + + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.1(postcss@8.4.47)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + postcss: 8.4.47 + + '@csstools/postcss-nested-calc@4.0.0(postcss@8.4.47)': + dependencies: + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.4.47)': + dependencies: + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-oklab-function@4.0.2(postcss@8.4.47)': + dependencies: + '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + + '@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.4.47)': + dependencies: + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-relative-color-syntax@3.0.2(postcss@8.4.47)': + dependencies: + '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + + '@csstools/postcss-scope-pseudo-class@4.0.0(postcss@8.4.47)': + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + '@csstools/postcss-stepped-value-functions@4.0.1(postcss@8.4.47)': + dependencies: + '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + postcss: 8.4.47 + + '@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.4.47)': + dependencies: + '@csstools/color-helpers': 5.0.1 + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-trigonometric-functions@4.0.1(postcss@8.4.47)': + dependencies: + '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + postcss: 8.4.47 + + '@csstools/postcss-unset-value@4.0.0(postcss@8.4.47)': + dependencies: + postcss: 8.4.47 + + '@csstools/selector-resolve-nested@2.0.0(postcss-selector-parser@6.1.2)': + dependencies: + postcss-selector-parser: 6.1.2 + + '@csstools/selector-specificity@4.0.0(postcss-selector-parser@6.1.2)': + dependencies: + postcss-selector-parser: 6.1.2 + + '@csstools/utilities@2.0.0(postcss@8.4.47)': + dependencies: + postcss: 8.4.47 + + '@dual-bundle/import-meta-resolve@4.1.0': {} + + '@eejit/eslint-config-typescript@13.3.0(typescript@5.6.2)': + dependencies: + '@eslint/js': 9.12.0 + '@stylistic/eslint-plugin-ts': 2.9.0(eslint@9.12.0)(typescript@5.6.2) + eslint: 9.12.0 + eslint-plugin-jsdoc: 50.3.1(eslint@9.12.0) + eslint-plugin-unicorn: 56.0.0(eslint@9.12.0) + typescript-eslint: 8.8.1(eslint@9.12.0)(typescript@5.6.2) + transitivePeerDependencies: + - jiti + - supports-color + - typescript + + '@eejit/prettier-config@3.1.1(postcss@8.4.47)(typescript@5.6.2)': + dependencies: + prettier: 3.3.3 + prettier-plugin-css-order: 2.1.2(postcss@8.4.47)(prettier@3.3.3) + prettier-plugin-organize-imports: 4.1.0(prettier@3.3.3)(typescript@5.6.2) + prettier-plugin-packagejson: 2.5.3(prettier@3.3.3) + transitivePeerDependencies: + - postcss + - typescript + - vue-tsc + + '@eejit/stylelint-config@4.0.0(stylelint@16.9.0(typescript@5.6.2))': + dependencies: + stylelint-config-standard: 36.0.1(stylelint@16.9.0(typescript@5.6.2)) + stylelint-use-nesting: 6.0.0(stylelint@16.9.0(typescript@5.6.2)) + transitivePeerDependencies: + - stylelint + + '@es-joy/jsdoccomment@0.48.0': + dependencies: + comment-parser: 1.4.1 + esquery: 1.6.0 + jsdoc-type-pratt-parser: 4.1.0 + + '@esbuild/aix-ppc64@0.24.0': optional: true - postcss-logical@8.0.0: - resolution: {integrity: sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-nesting@13.0.0: - resolution: {integrity: sha512-TCGQOizyqvEkdeTPM+t6NYwJ3EJszYE/8t8ILxw/YoeUvz2rz7aM8XTAmBWh9/DJjfaaabL88fWrsVHSPF2zgA==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-opacity-percentage@3.0.0: - resolution: {integrity: sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-overflow-shorthand@6.0.0: - resolution: {integrity: sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-page-break@3.0.4: - resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} - peerDependencies: - postcss: ^8 - - postcss-place@10.0.0: - resolution: {integrity: sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-preset-env@10.0.6: - resolution: {integrity: sha512-qixfM2wbvKJhUjJELLB8lV2UCsyrMdSXqiXHiNKMgAbNturstc80j/8MsthJeOpxYEekrCrFzcaoOJm8JRSdBg==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-pseudo-class-any-link@10.0.0: - resolution: {integrity: sha512-bde8VE08Gq3ekKDq2BQ0ESOjNX54lrFDK3U9zABPINaqHblbZL/4Wfo5Y2vk6U64yVd/sjDwTzuiisFBpGNNIQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-replace-overflow-wrap@4.0.0: - resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} - peerDependencies: - postcss: ^8.0.3 - - postcss-resolve-nested-selector@0.1.6: - resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} - - postcss-safe-parser@7.0.0: - resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==} - engines: {node: '>=18.0'} - peerDependencies: - postcss: ^8.4.31 - - postcss-scss@4.0.9: - resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.4.29 - - postcss-selector-not@8.0.0: - resolution: {integrity: sha512-g/juh7A83GWc3+kWL8BiS3YUIJb3XNqIVKz1kGvgN3OhoGCsPncy1qo/+q61tjy5r87OxBhSY1+hcH3yOhEW+g==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} - engines: {node: ^10 || ^12 || >=14} - - prebuild-install@7.1.2: - resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} - engines: {node: '>=10'} - hasBin: true - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-plugin-css-order@2.1.2: - resolution: {integrity: sha512-vomxPjHI6pOMYcBuouSJHxxQClJXaUpU9rsV9IAO2wrSTZILRRlrxAAR8t9UF6wtczLkLfNRFUwM+ZbGXOONUA==} - engines: {node: '>=16'} - peerDependencies: - prettier: 3.x - - prettier-plugin-organize-imports@4.0.0: - resolution: {integrity: sha512-vnKSdgv9aOlqKeEFGhf9SCBsTyzDSyScy1k7E0R1Uo4L0cTcOV7c1XQaT7jfXIOc/p08WLBfN2QUQA9zDSZMxA==} - peerDependencies: - '@vue/language-plugin-pug': ^2.0.24 - prettier: '>=2.0' - typescript: '>=2.9' - vue-tsc: ^2.0.24 - peerDependenciesMeta: - '@vue/language-plugin-pug': - optional: true - vue-tsc: + '@esbuild/android-arm64@0.24.0': optional: true - prettier-plugin-packagejson@2.5.0: - resolution: {integrity: sha512-6XkH3rpin5QEQodBSVNg+rBo4r91g/1mCaRwS1YGdQJZ6jwqrg2UchBsIG9tpS1yK1kNBvOt84OILsX8uHzBGg==} - peerDependencies: - prettier: '>= 1.16.0' - peerDependenciesMeta: - prettier: + '@esbuild/android-arm@0.24.0': optional: true - prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} - engines: {node: '>=14'} - hasBin: true - - process-warning@3.0.0: - resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} - - process-warning@4.0.0: - resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} - - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - quick-format-unescaped@4.0.4: - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} - - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readable-stream@4.4.2: - resolution: {integrity: sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - readdirp@4.0.1: - resolution: {integrity: sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==} - engines: {node: '>= 14.16.0'} - - real-require@0.2.0: - resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} - engines: {node: '>= 12.13.0'} - - regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - - regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - - regjsparser@0.10.0: - resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - ret@0.5.0: - resolution: {integrity: sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==} - engines: {node: '>=10'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-regex2@4.0.0: - resolution: {integrity: sha512-Hvjfv25jPDVr3U+4LDzBuZPPOymELG3PYcSk5hcevooo1yxxamQL/bHs/GrEPGmMoMEwRrHVGiCA1pXi97B8Ew==} - - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} - - secure-json-parse@2.7.0: - resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} - - seedrandom@3.0.5: - resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - - set-cookie-parser@2.6.0: - resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - sift@17.1.3: - resolution: {integrity: sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - - simple-get@3.1.1: - resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==} - - simple-get@4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - - slashes@3.0.12: - resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} - - slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - - sonic-boom@3.7.0: - resolution: {integrity: sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==} - - sort-object-keys@1.1.3: - resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} - - sort-package-json@2.10.0: - resolution: {integrity: sha512-MYecfvObMwJjjJskhxYfuOADkXp1ZMMnCFC8yhp+9HDsk7HhR336hd7eiBs96lTXfiqmUNI+WQCeCMRBhl251g==} - hasBin: true - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - sparse-bitfield@3.0.3: - resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-expression-parse@4.0.0: - resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} - - spdx-license-ids@3.0.18: - resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} - - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - stylelint-config-recommended@14.0.1: - resolution: {integrity: sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==} - engines: {node: '>=18.12.0'} - peerDependencies: - stylelint: ^16.1.0 - - stylelint-config-standard@36.0.1: - resolution: {integrity: sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==} - engines: {node: '>=18.12.0'} - peerDependencies: - stylelint: ^16.1.0 - - stylelint-use-nesting@6.0.0: - resolution: {integrity: sha512-5/Icok0O35pU3DpHRmISTsElba2btHpPlNcbVrwy6AhapIPKE1QqaMslYhI0Cjt5/w4ALS4iICde9BhVq7HYKA==} - engines: {node: '>=20.0.0'} - peerDependencies: - stylelint: '>= 16.9.0' - - stylelint@16.9.0: - resolution: {integrity: sha512-31Nm3WjxGOBGpQqF43o3wO9L5AC36TPIe6030Lnm13H3vDMTcS21DrLh69bMX+DBilKqMMVLian4iG6ybBoNRQ==} - engines: {node: '>=18.12.0'} - hasBin: true - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-hyperlinks@3.1.0: - resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==} - engines: {node: '>=14.18'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svg-tags@1.0.0: - resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - - synckit@0.9.0: - resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} - engines: {node: ^14.18.0 || >=16.0.0} - - synckit@0.9.1: - resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} - engines: {node: ^14.18.0 || >=16.0.0} - - table@6.8.2: - resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} - engines: {node: '>=10.0.0'} - - tar-fs@2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} - - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - thread-stream@2.7.0: - resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} - - tiny-emitter@2.1.0: - resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - toad-cache@3.7.0: - resolution: {integrity: sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==} - engines: {node: '>=12'} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - tr46@4.1.1: - resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} - engines: {node: '>=14'} - - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - - tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - - typed-function@4.2.1: - resolution: {integrity: sha512-EGjWssW7Tsk4DGfE+5yluuljS1OGYWiI1J6e8puZz9nTMM51Oug8CD5Zo4gWMsOhq5BI+1bF+rWTm4Vbj3ivRA==} - engines: {node: '>= 18'} - - typescript-eslint@8.8.0: - resolution: {integrity: sha512-BjIT/VwJ8+0rVO01ZQ2ZVnjE1svFBiRczcpr1t1Yxt7sT25VSbPfrJtDsQ8uQTy2pilX5nI9gwxhUyLULNentw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: + '@esbuild/android-x64@0.24.0': optional: true - typescript@5.6.2: - resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} - engines: {node: '>=14.17'} - hasBin: true - - uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} - hasBin: true - - undici-types@6.19.6: - resolution: {integrity: sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org==} - - update-browserslist-db@1.0.16: - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - - whatwg-url@13.0.0: - resolution: {integrity: sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==} - engines: {node: '>=16'} - - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - -snapshots: - - '@babel/code-frame@7.23.4': - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - - '@babel/helper-validator-identifier@7.24.5': {} - - '@babel/helper-validator-identifier@7.25.7': {} - - '@babel/highlight@7.23.4': - dependencies: - '@babel/helper-validator-identifier': 7.24.5 - chalk: 2.4.2 - js-tokens: 4.0.0 - - '@babel/runtime@7.25.6': - dependencies: - regenerator-runtime: 0.14.0 - - '@csstools/cascade-layer-name-parser@2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - - '@csstools/color-helpers@5.0.1': {} - - '@csstools/css-calc@2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - - '@csstools/css-color-parser@3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': - dependencies: - '@csstools/color-helpers': 5.0.1 - '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - - '@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1)': - dependencies: - '@csstools/css-tokenizer': 3.0.1 - - '@csstools/css-tokenizer@3.0.1': {} - - '@csstools/media-query-list-parser@3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - - '@csstools/postcss-cascade-layers@5.0.0(postcss@8.4.47)': - dependencies: - '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - '@csstools/postcss-color-function@4.0.2(postcss@8.4.47)': - dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - - '@csstools/postcss-color-mix-function@3.0.2(postcss@8.4.47)': - dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - - '@csstools/postcss-content-alt-text@2.0.1(postcss@8.4.47)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - - '@csstools/postcss-exponential-functions@2.0.1(postcss@8.4.47)': - dependencies: - '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - postcss: 8.4.47 - - '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.4.47)': - dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - '@csstools/postcss-gamut-mapping@2.0.2(postcss@8.4.47)': - dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - postcss: 8.4.47 - - '@csstools/postcss-gradients-interpolation-method@5.0.2(postcss@8.4.47)': - dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - - '@csstools/postcss-hwb-function@4.0.2(postcss@8.4.47)': - dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - - '@csstools/postcss-ic-unit@4.0.0(postcss@8.4.47)': - dependencies: - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - '@csstools/postcss-initial@2.0.0(postcss@8.4.47)': - dependencies: - postcss: 8.4.47 - - '@csstools/postcss-is-pseudo-class@5.0.0(postcss@8.4.47)': - dependencies: - '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - '@csstools/postcss-light-dark-function@2.0.4(postcss@8.4.47)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - - '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.4.47)': - dependencies: - postcss: 8.4.47 - - '@csstools/postcss-logical-overflow@2.0.0(postcss@8.4.47)': - dependencies: - postcss: 8.4.47 - - '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.4.47)': - dependencies: - postcss: 8.4.47 - - '@csstools/postcss-logical-resize@3.0.0(postcss@8.4.47)': - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - '@csstools/postcss-logical-viewport-units@3.0.1(postcss@8.4.47)': - dependencies: - '@csstools/css-tokenizer': 3.0.1 - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - - '@csstools/postcss-media-minmax@2.0.1(postcss@8.4.47)': - dependencies: - '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - postcss: 8.4.47 - - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.1(postcss@8.4.47)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - postcss: 8.4.47 - - '@csstools/postcss-nested-calc@4.0.0(postcss@8.4.47)': - dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.4.47)': - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - '@csstools/postcss-oklab-function@4.0.2(postcss@8.4.47)': - dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - - '@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.4.47)': - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - '@csstools/postcss-relative-color-syntax@3.0.2(postcss@8.4.47)': - dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - - '@csstools/postcss-scope-pseudo-class@4.0.0(postcss@8.4.47)': - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - '@csstools/postcss-stepped-value-functions@4.0.1(postcss@8.4.47)': - dependencies: - '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - postcss: 8.4.47 - - '@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.4.47)': - dependencies: - '@csstools/color-helpers': 5.0.1 - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - '@csstools/postcss-trigonometric-functions@4.0.1(postcss@8.4.47)': - dependencies: - '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - postcss: 8.4.47 - - '@csstools/postcss-unset-value@4.0.0(postcss@8.4.47)': - dependencies: - postcss: 8.4.47 - - '@csstools/selector-resolve-nested@2.0.0(postcss-selector-parser@6.1.2)': - dependencies: - postcss-selector-parser: 6.1.2 - - '@csstools/selector-specificity@4.0.0(postcss-selector-parser@6.1.2)': - dependencies: - postcss-selector-parser: 6.1.2 - - '@csstools/utilities@2.0.0(postcss@8.4.47)': - dependencies: - postcss: 8.4.47 - - '@dual-bundle/import-meta-resolve@4.1.0': {} - - '@eejit/eslint-config-typescript@13.3.0(typescript@5.6.2)': - dependencies: - '@eslint/js': 9.12.0 - '@stylistic/eslint-plugin-ts': 2.9.0(eslint@9.12.0)(typescript@5.6.2) - eslint: 9.12.0 - eslint-plugin-jsdoc: 50.3.1(eslint@9.12.0) - eslint-plugin-unicorn: 56.0.0(eslint@9.12.0) - typescript-eslint: 8.8.0(eslint@9.12.0)(typescript@5.6.2) - transitivePeerDependencies: - - jiti - - supports-color - - typescript - - '@eejit/prettier-config@3.0.0(postcss@8.4.47)(typescript@5.6.2)': - dependencies: - prettier: 3.3.3 - prettier-plugin-css-order: 2.1.2(postcss@8.4.47)(prettier@3.3.3) - prettier-plugin-organize-imports: 4.0.0(prettier@3.3.3)(typescript@5.6.2) - prettier-plugin-packagejson: 2.5.0(prettier@3.3.3) - transitivePeerDependencies: - - '@vue/language-plugin-pug' - - postcss - - typescript - - vue-tsc - - '@eejit/stylelint-config@4.0.0(stylelint@16.9.0(typescript@5.6.2))': - dependencies: - stylelint-config-standard: 36.0.1(stylelint@16.9.0(typescript@5.6.2)) - stylelint-use-nesting: 6.0.0(stylelint@16.9.0(typescript@5.6.2)) - transitivePeerDependencies: - - stylelint - - '@es-joy/jsdoccomment@0.48.0': - dependencies: - comment-parser: 1.4.1 - esquery: 1.6.0 - jsdoc-type-pratt-parser: 4.1.0 - - '@esbuild/aix-ppc64@0.24.0': - optional: true - - '@esbuild/android-arm64@0.24.0': - optional: true - - '@esbuild/android-arm@0.24.0': - optional: true - - '@esbuild/android-x64@0.24.0': - optional: true - - '@esbuild/darwin-arm64@0.24.0': - optional: true - - '@esbuild/darwin-x64@0.24.0': - optional: true - - '@esbuild/freebsd-arm64@0.24.0': - optional: true - - '@esbuild/freebsd-x64@0.24.0': - optional: true - - '@esbuild/linux-arm64@0.24.0': - optional: true - - '@esbuild/linux-arm@0.24.0': - optional: true - - '@esbuild/linux-ia32@0.24.0': - optional: true - - '@esbuild/linux-loong64@0.24.0': - optional: true - - '@esbuild/linux-mips64el@0.24.0': - optional: true - - '@esbuild/linux-ppc64@0.24.0': - optional: true - - '@esbuild/linux-riscv64@0.24.0': - optional: true - - '@esbuild/linux-s390x@0.24.0': - optional: true - - '@esbuild/linux-x64@0.24.0': - optional: true - - '@esbuild/netbsd-x64@0.24.0': - optional: true - - '@esbuild/openbsd-arm64@0.24.0': - optional: true - - '@esbuild/openbsd-x64@0.24.0': - optional: true - - '@esbuild/sunos-x64@0.24.0': - optional: true - - '@esbuild/win32-arm64@0.24.0': - optional: true - - '@esbuild/win32-ia32@0.24.0': - optional: true - - '@esbuild/win32-x64@0.24.0': - optional: true - - '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0)': - dependencies: - eslint: 9.12.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.11.0': {} - - '@eslint/config-array@0.18.0': - dependencies: - '@eslint/object-schema': 2.1.4 - debug: 4.3.6 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/core@0.6.0': {} + '@esbuild/darwin-arm64@0.24.0': + optional: true - '@eslint/eslintrc@3.1.0': - dependencies: - ajv: 6.12.6 - debug: 4.3.6 - espree: 10.2.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + '@esbuild/darwin-x64@0.24.0': + optional: true - '@eslint/js@9.12.0': {} + '@esbuild/freebsd-arm64@0.24.0': + optional: true - '@eslint/object-schema@2.1.4': {} + '@esbuild/freebsd-x64@0.24.0': + optional: true - '@eslint/plugin-kit@0.2.0': - dependencies: - levn: 0.4.1 + '@esbuild/linux-arm64@0.24.0': + optional: true - '@fastify/accept-negotiator@2.0.0': {} + '@esbuild/linux-arm@0.24.0': + optional: true - '@fastify/ajv-compiler@4.0.1': - dependencies: - ajv: 8.12.0 - ajv-formats: 3.0.1(ajv@8.12.0) - fast-uri: 3.0.1 + '@esbuild/linux-ia32@0.24.0': + optional: true - '@fastify/error@4.0.0': {} + '@esbuild/linux-loong64@0.24.0': + optional: true - '@fastify/fast-json-stringify-compiler@5.0.1': - dependencies: - fast-json-stringify: 6.0.0 + '@esbuild/linux-mips64el@0.24.0': + optional: true - '@fastify/merge-json-schemas@0.1.1': - dependencies: - fast-deep-equal: 3.1.3 + '@esbuild/linux-ppc64@0.24.0': + optional: true - '@fastify/rate-limit@10.1.1': - dependencies: - '@lukeed/ms': 2.0.2 - fastify-plugin: 5.0.1 - toad-cache: 3.7.0 + '@esbuild/linux-riscv64@0.24.0': + optional: true - '@fastify/send@3.1.1': - dependencies: - '@lukeed/ms': 2.0.2 - escape-html: 1.0.3 - fast-decode-uri-component: 1.0.1 - http-errors: 2.0.0 - mime: 3.0.0 - - '@fastify/static@8.0.1': - dependencies: - '@fastify/accept-negotiator': 2.0.0 - '@fastify/send': 3.1.1 - content-disposition: 0.5.4 - fastify-plugin: 5.0.1 - fastq: 1.17.1 - glob: 11.0.0 - - '@fastify/view@10.0.1': - dependencies: - fastify-plugin: 5.0.1 - toad-cache: 3.7.0 - - '@humanfs/core@0.19.0': {} - - '@humanfs/node@0.16.5': - dependencies: - '@humanfs/core': 0.19.0 - '@humanwhocodes/retry': 0.3.1 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.3.1': {} - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@lukeed/ms@2.0.2': {} - - '@mongodb-js/saslprep@1.1.5': - dependencies: - sparse-bitfield: 3.0.3 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@pkgr/core@0.1.0': {} - - '@stylistic/eslint-plugin-ts@2.9.0(eslint@9.12.0)(typescript@5.6.2)': - dependencies: - '@typescript-eslint/utils': 8.8.0(eslint@9.12.0)(typescript@5.6.2) - eslint: 9.12.0 - eslint-visitor-keys: 4.1.0 - espree: 10.2.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@tsconfig/recommended@1.0.7': {} - - '@types/chroma-js@2.4.4': {} - - '@types/estree@1.0.6': {} - - '@types/json-schema@7.0.15': {} - - '@types/node@20.16.10': - dependencies: - undici-types: 6.19.6 - - '@types/normalize-package-data@2.4.4': {} - - '@types/ua-parser-js@0.7.39': {} - - '@types/webidl-conversions@7.0.3': {} - - '@types/whatwg-url@11.0.4': - dependencies: - '@types/webidl-conversions': 7.0.3 - - '@typescript-eslint/eslint-plugin@8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0)(typescript@5.6.2))(eslint@9.12.0)(typescript@5.6.2)': - dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.8.0(eslint@9.12.0)(typescript@5.6.2) - '@typescript-eslint/scope-manager': 8.8.0 - '@typescript-eslint/type-utils': 8.8.0(eslint@9.12.0)(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.0(eslint@9.12.0)(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.8.0 - eslint: 9.12.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.8.0(eslint@9.12.0)(typescript@5.6.2)': - dependencies: - '@typescript-eslint/scope-manager': 8.8.0 - '@typescript-eslint/types': 8.8.0 - '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.8.0 - debug: 4.3.6 - eslint: 9.12.0 - optionalDependencies: - typescript: 5.6.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.8.0': - dependencies: - '@typescript-eslint/types': 8.8.0 - '@typescript-eslint/visitor-keys': 8.8.0 - - '@typescript-eslint/type-utils@8.8.0(eslint@9.12.0)(typescript@5.6.2)': - dependencies: - '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.0(eslint@9.12.0)(typescript@5.6.2) - debug: 4.3.6 - ts-api-utils: 1.3.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - transitivePeerDependencies: - - eslint - - supports-color - - '@typescript-eslint/types@8.8.0': {} - - '@typescript-eslint/typescript-estree@8.8.0(typescript@5.6.2)': - dependencies: - '@typescript-eslint/types': 8.8.0 - '@typescript-eslint/visitor-keys': 8.8.0 - debug: 4.3.6 - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.4 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.8.0(eslint@9.12.0)(typescript@5.6.2)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) - '@typescript-eslint/scope-manager': 8.8.0 - '@typescript-eslint/types': 8.8.0 - '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) - eslint: 9.12.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@8.8.0': - dependencies: - '@typescript-eslint/types': 8.8.0 - eslint-visitor-keys: 3.4.3 - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - abstract-logging@2.0.1: {} - - acorn-jsx@5.3.2(acorn@8.12.1): - dependencies: - acorn: 8.12.1 - - acorn@8.12.1: {} - - ajv-formats@3.0.1(ajv@8.12.0): - optionalDependencies: - ajv: 8.12.0 - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ajv@8.12.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ansi-regex@5.0.1: {} - - ansi-regex@6.0.1: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.1: {} - - are-docs-informative@0.0.2: {} - - argparse@2.0.1: {} - - array-union@2.1.0: {} - - astral-regex@2.0.0: {} - - atomic-sleep@1.0.0: {} - - autoprefixer@10.4.19(postcss@8.4.47): - dependencies: - browserslist: 4.23.1 - caniuse-lite: 1.0.30001638 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.0 - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - avvio@9.0.0: - dependencies: - '@fastify/error': 4.0.0 - fastq: 1.17.1 + '@esbuild/linux-s390x@0.24.0': + optional: true - balanced-match@1.0.2: {} + '@esbuild/linux-x64@0.24.0': + optional: true - balanced-match@2.0.0: {} + '@esbuild/netbsd-x64@0.24.0': + optional: true - base64-js@1.5.1: {} + '@esbuild/openbsd-arm64@0.24.0': + optional: true - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 + '@esbuild/openbsd-x64@0.24.0': + optional: true - boolbase@1.0.0: {} + '@esbuild/sunos-x64@0.24.0': + optional: true - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 + '@esbuild/win32-arm64@0.24.0': + optional: true - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 + '@esbuild/win32-ia32@0.24.0': + optional: true - braces@3.0.3: - dependencies: - fill-range: 7.1.1 + '@esbuild/win32-x64@0.24.0': + optional: true - browserslist@4.23.1: - dependencies: - caniuse-lite: 1.0.30001638 - electron-to-chromium: 1.4.815 - node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.1) + '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0)': + dependencies: + eslint: 9.12.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.11.1': {} + + '@eslint/config-array@0.18.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.6.0': {} + + '@eslint/eslintrc@3.1.0': + dependencies: + ajv: 6.12.6 + debug: 4.3.7 + espree: 10.2.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.12.0': {} + + '@eslint/object-schema@2.1.4': {} + + '@eslint/plugin-kit@0.2.0': + dependencies: + levn: 0.4.1 + + '@fastify/accept-negotiator@2.0.0': {} + + '@fastify/ajv-compiler@4.0.1': + dependencies: + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + fast-uri: 3.0.2 + + '@fastify/error@4.0.0': {} + + '@fastify/fast-json-stringify-compiler@5.0.1': + dependencies: + fast-json-stringify: 6.0.0 + + '@fastify/merge-json-schemas@0.1.1': + dependencies: + fast-deep-equal: 3.1.3 + + '@fastify/rate-limit@10.1.1': + dependencies: + '@lukeed/ms': 2.0.2 + fastify-plugin: 5.0.1 + toad-cache: 3.7.0 + + '@fastify/send@3.1.1': + dependencies: + '@lukeed/ms': 2.0.2 + escape-html: 1.0.3 + fast-decode-uri-component: 1.0.1 + http-errors: 2.0.0 + mime: 3.0.0 + + '@fastify/static@8.0.1': + dependencies: + '@fastify/accept-negotiator': 2.0.0 + '@fastify/send': 3.1.1 + content-disposition: 0.5.4 + fastify-plugin: 5.0.1 + fastq: 1.17.1 + glob: 11.0.0 + + '@fastify/view@10.0.1': + dependencies: + fastify-plugin: 5.0.1 + toad-cache: 3.7.0 + + '@humanfs/core@0.19.0': {} + + '@humanfs/node@0.16.5': + dependencies: + '@humanfs/core': 0.19.0 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@lukeed/ms@2.0.2': {} + + '@mapbox/node-pre-gyp@1.0.11': + dependencies: + detect-libc: 2.0.3 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.7.0 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.6.3 + tar: 6.2.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@mongodb-js/saslprep@1.1.9': + dependencies: + sparse-bitfield: 3.0.3 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@pkgr/core@0.1.1': {} + + '@stylistic/eslint-plugin-ts@2.9.0(eslint@9.12.0)(typescript@5.6.2)': + dependencies: + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.6.2) + eslint: 9.12.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@tsconfig/recommended@1.0.7': {} + + '@types/chroma-js@2.4.4': {} + + '@types/estree@1.0.6': {} + + '@types/json-schema@7.0.15': {} + + '@types/node@22.7.5': + dependencies: + undici-types: 6.19.8 + + '@types/normalize-package-data@2.4.4': {} + + '@types/ua-parser-js@0.7.39': {} + + '@types/webidl-conversions@7.0.3': {} + + '@types/whatwg-url@11.0.5': + dependencies: + '@types/webidl-conversions': 7.0.3 + + '@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.2))(eslint@9.12.0)(typescript@5.6.2)': + dependencies: + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0)(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.8.1 + '@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0)(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.8.1 + eslint: 9.12.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.2)': + dependencies: + '@typescript-eslint/scope-manager': 8.8.1 + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.8.1 + debug: 4.3.7 + eslint: 9.12.0 + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.8.1': + dependencies: + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/visitor-keys': 8.8.1 + + '@typescript-eslint/type-utils@8.8.1(eslint@9.12.0)(typescript@5.6.2)': + dependencies: + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.6.2) + debug: 4.3.7 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - eslint + - supports-color + + '@typescript-eslint/types@8.8.1': {} + + '@typescript-eslint/typescript-estree@8.8.1(typescript@5.6.2)': + dependencies: + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/visitor-keys': 8.8.1 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.8.1(eslint@9.12.0)(typescript@5.6.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) + '@typescript-eslint/scope-manager': 8.8.1 + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2) + eslint: 9.12.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@8.8.1': + dependencies: + '@typescript-eslint/types': 8.8.1 + eslint-visitor-keys: 3.4.3 + + abbrev@1.1.1: {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + abstract-logging@2.0.1: {} + + acorn-jsx@5.3.2(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + agent-base@6.0.2: + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + ajv-formats@3.0.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.2 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + aproba@2.0.0: {} + + are-docs-informative@0.0.2: {} + + are-we-there-yet@2.0.0: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + + argparse@2.0.1: {} - browserslist@4.24.0: - dependencies: - caniuse-lite: 1.0.30001667 - electron-to-chromium: 1.5.32 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.0) + array-union@2.1.0: {} - bson@6.7.0: {} + astral-regex@2.0.0: {} - buffer@5.7.1: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 + atomic-sleep@1.0.0: {} - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 + autoprefixer@10.4.20(postcss@8.4.47): + dependencies: + browserslist: 4.24.0 + caniuse-lite: 1.0.30001667 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.0 + postcss: 8.4.47 + postcss-value-parser: 4.2.0 - builtin-modules@3.3.0: {} + avvio@9.0.0: + dependencies: + '@fastify/error': 4.0.0 + fastq: 1.17.1 - callsites@3.1.0: {} + balanced-match@1.0.2: {} - caniuse-lite@1.0.30001638: {} + balanced-match@2.0.0: {} - caniuse-lite@1.0.30001667: {} + base64-js@1.5.1: {} - canvas@3.0.0-rc2: - dependencies: - node-addon-api: 7.1.1 - prebuild-install: 7.1.2 - simple-get: 3.1.1 + boolbase@1.0.0: {} - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 - chalk@5.3.0: {} + braces@3.0.3: + dependencies: + fill-range: 7.1.1 - chokidar@4.0.1: - dependencies: - readdirp: 4.0.1 + browserslist@4.24.0: + dependencies: + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.33 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.0) - chownr@1.1.4: {} + bson@6.8.0: {} - ci-info@4.0.0: {} + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 - clean-regexp@1.0.0: - dependencies: - escape-string-regexp: 1.0.5 + builtin-modules@3.3.0: {} - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 + callsites@3.1.0: {} - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 + caniuse-lite@1.0.30001667: {} - color-name@1.1.3: {} + canvas@2.11.2: + dependencies: + '@mapbox/node-pre-gyp': 1.0.11 + nan: 2.20.0 + simple-get: 3.1.1 + transitivePeerDependencies: + - encoding + - supports-color - color-name@1.1.4: {} + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 - colord@2.9.3: {} + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 - comment-parser@1.4.1: {} + chalk@5.3.0: {} - complex.js@2.1.1: {} + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 - concat-map@0.0.1: {} + chownr@2.0.0: {} - consola@3.2.3: {} + ci-info@4.0.0: {} - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 + clean-regexp@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 - cookie@0.6.0: {} + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 - core-js-compat@3.38.1: - dependencies: - browserslist: 4.24.0 + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 - cosmiconfig@9.0.0(typescript@5.6.2): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - optionalDependencies: - typescript: 5.6.2 + color-name@1.1.3: {} - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 + color-name@1.1.4: {} - css-blank-pseudo@7.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 + color-support@1.1.3: {} - css-declaration-sorter@7.1.1(postcss@8.4.47): - dependencies: - postcss: 8.4.47 + colord@2.9.3: {} - css-functions-list@3.2.2: {} + comment-parser@1.4.1: {} - css-has-pseudo@7.0.0(postcss@8.4.47): - dependencies: - '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 + complex.js@2.2.4: {} - css-prefers-color-scheme@10.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 + concat-map@0.0.1: {} - css-select@5.1.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 5.0.3 - domutils: 3.1.0 - nth-check: 2.1.1 + consola@3.2.3: {} - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.0 + console-control-strings@1.1.0: {} - css-what@6.1.0: {} + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 - cssdb@8.1.1: {} + cookie@0.7.2: {} - cssesc@3.0.0: {} + core-js-compat@3.38.1: + dependencies: + browserslist: 4.24.0 - debug@4.3.6: - dependencies: - ms: 2.1.2 + cosmiconfig@9.0.0(typescript@5.6.2): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.6.2 - decimal.js@10.4.3: {} + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 - decompress-response@4.2.1: - dependencies: - mimic-response: 2.1.0 + css-blank-pseudo@7.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 - decompress-response@6.0.0: - dependencies: - mimic-response: 3.1.0 + css-declaration-sorter@7.2.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 - deep-extend@0.6.0: {} + css-functions-list@3.2.2: {} - deep-is@0.1.4: {} + css-has-pseudo@7.0.0(postcss@8.4.47): + dependencies: + '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 - depd@2.0.0: {} + css-prefers-color-scheme@10.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 - detect-indent@7.0.1: {} + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 - detect-libc@2.0.3: {} + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.1 - detect-newline@4.0.1: {} + css-what@6.1.0: {} - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 + cssdb@8.1.1: {} - dom-serializer@2.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - - domelementtype@2.3.0: {} - - domhandler@5.0.3: - dependencies: - domelementtype: 2.3.0 - - domutils@3.1.0: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - - eastasianwidth@0.2.0: {} - - electron-to-chromium@1.4.815: {} - - electron-to-chromium@1.5.32: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - end-of-stream@1.4.4: - dependencies: - once: 1.4.0 - - entities@4.5.0: {} - - env-paths@2.2.1: {} - - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - - es-module-lexer@1.5.4: {} - - esbuild-postcss@0.0.4(esbuild@0.24.0)(postcss@8.4.47): - dependencies: - esbuild: 0.24.0 - postcss: 8.4.47 - postcss-load-config: 3.1.4(postcss@8.4.47) - transitivePeerDependencies: - - ts-node - - esbuild@0.24.0: - optionalDependencies: - '@esbuild/aix-ppc64': 0.24.0 - '@esbuild/android-arm': 0.24.0 - '@esbuild/android-arm64': 0.24.0 - '@esbuild/android-x64': 0.24.0 - '@esbuild/darwin-arm64': 0.24.0 - '@esbuild/darwin-x64': 0.24.0 - '@esbuild/freebsd-arm64': 0.24.0 - '@esbuild/freebsd-x64': 0.24.0 - '@esbuild/linux-arm': 0.24.0 - '@esbuild/linux-arm64': 0.24.0 - '@esbuild/linux-ia32': 0.24.0 - '@esbuild/linux-loong64': 0.24.0 - '@esbuild/linux-mips64el': 0.24.0 - '@esbuild/linux-ppc64': 0.24.0 - '@esbuild/linux-riscv64': 0.24.0 - '@esbuild/linux-s390x': 0.24.0 - '@esbuild/linux-x64': 0.24.0 - '@esbuild/netbsd-x64': 0.24.0 - '@esbuild/openbsd-arm64': 0.24.0 - '@esbuild/openbsd-x64': 0.24.0 - '@esbuild/sunos-x64': 0.24.0 - '@esbuild/win32-arm64': 0.24.0 - '@esbuild/win32-ia32': 0.24.0 - '@esbuild/win32-x64': 0.24.0 - - escalade@3.1.2: {} - - escalade@3.2.0: {} - - escape-html@1.0.3: {} - - escape-latex@1.2.0: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@4.0.0: {} - - eslint-plugin-jsdoc@50.3.1(eslint@9.12.0): - dependencies: - '@es-joy/jsdoccomment': 0.48.0 - are-docs-informative: 0.0.2 - comment-parser: 1.4.1 - debug: 4.3.6 - escape-string-regexp: 4.0.0 - eslint: 9.12.0 - espree: 10.1.0 - esquery: 1.6.0 - parse-imports: 2.1.1 - semver: 7.6.3 - spdx-expression-parse: 4.0.0 - synckit: 0.9.1 - transitivePeerDependencies: - - supports-color - - eslint-plugin-unicorn@56.0.0(eslint@9.12.0): - dependencies: - '@babel/helper-validator-identifier': 7.25.7 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) - ci-info: 4.0.0 - clean-regexp: 1.0.0 - core-js-compat: 3.38.1 - eslint: 9.12.0 - esquery: 1.6.0 - globals: 15.10.0 - indent-string: 4.0.0 - is-builtin-module: 3.2.1 - jsesc: 3.0.2 - pluralize: 8.0.0 - read-pkg-up: 7.0.1 - regexp-tree: 0.1.27 - regjsparser: 0.10.0 - semver: 7.6.3 - strip-indent: 3.0.0 - - eslint-scope@8.1.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.0.0: {} - - eslint-visitor-keys@4.1.0: {} - - eslint@9.12.0: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) - '@eslint-community/regexpp': 4.11.0 - '@eslint/config-array': 0.18.0 - '@eslint/core': 0.6.0 - '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.12.0 - '@eslint/plugin-kit': 0.2.0 - '@humanfs/node': 0.16.5 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.1 - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.6 - escape-string-regexp: 4.0.0 - eslint-scope: 8.1.0 - eslint-visitor-keys: 4.1.0 - espree: 10.2.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - espree@10.1.0: - dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 4.0.0 - - espree@10.2.0: - dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 4.1.0 - - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - - esutils@2.0.3: {} - - event-target-shim@5.0.1: {} - - events@3.3.0: {} - - expand-template@2.0.3: {} - - fast-decode-uri-component@1.0.1: {} - - fast-deep-equal@3.1.3: {} - - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-json-stable-stringify@2.1.0: {} - - fast-json-stringify@6.0.0: - dependencies: - '@fastify/merge-json-schemas': 0.1.1 - ajv: 8.12.0 - ajv-formats: 3.0.1(ajv@8.12.0) - fast-deep-equal: 3.1.3 - fast-uri: 2.3.0 - json-schema-ref-resolver: 1.0.1 - rfdc: 1.4.1 - - fast-levenshtein@2.0.6: {} - - fast-querystring@1.1.2: - dependencies: - fast-decode-uri-component: 1.0.1 - - fast-redact@3.3.0: {} - - fast-uri@2.3.0: {} - - fast-uri@3.0.1: {} - - fastest-levenshtein@1.0.16: {} - - fastify-plugin@5.0.1: {} - - fastify@5.0.0: - dependencies: - '@fastify/ajv-compiler': 4.0.1 - '@fastify/error': 4.0.0 - '@fastify/fast-json-stringify-compiler': 5.0.1 - abstract-logging: 2.0.1 - avvio: 9.0.0 - fast-json-stringify: 6.0.0 - find-my-way: 9.0.1 - light-my-request: 6.0.0 - pino: 9.0.0 - process-warning: 4.0.0 - proxy-addr: 2.0.7 - rfdc: 1.4.1 - secure-json-parse: 2.7.0 - semver: 7.6.3 - toad-cache: 3.7.0 - - fastq@1.17.1: - dependencies: - reusify: 1.0.4 - - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - - file-entry-cache@9.0.0: - dependencies: - flat-cache: 5.0.0 + cssesc@3.0.0: {} - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 + debug@4.3.7: + dependencies: + ms: 2.1.3 - find-my-way@9.0.1: - dependencies: - fast-deep-equal: 3.1.3 - fast-querystring: 1.1.2 - safe-regex2: 4.0.0 + decimal.js@10.4.3: {} - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 + decompress-response@4.2.1: + dependencies: + mimic-response: 2.1.0 - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 + deep-is@0.1.4: {} - flat-cache@4.0.1: - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 + delegates@1.0.0: {} - flat-cache@5.0.0: - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 + depd@2.0.0: {} - flatted@3.3.1: {} - - foreground-child@3.1.1: - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - - forwarded@0.2.0: {} + detect-indent@7.0.1: {} - fraction.js@4.3.7: {} + detect-libc@2.0.3: {} - fs-constants@1.0.0: {} + detect-newline@4.0.1: {} - function-bind@1.1.2: {} + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 - get-stdin@9.0.0: {} + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.5.33: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + entities@4.5.0: {} + + env-paths@2.2.1: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + es-module-lexer@1.5.4: {} + + esbuild-postcss@0.0.4(esbuild@0.24.0)(postcss@8.4.47): + dependencies: + esbuild: 0.24.0 + postcss: 8.4.47 + postcss-load-config: 3.1.4(postcss@8.4.47) + transitivePeerDependencies: + - ts-node + + esbuild@0.24.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-latex@1.2.0: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + eslint-plugin-jsdoc@50.3.1(eslint@9.12.0): + dependencies: + '@es-joy/jsdoccomment': 0.48.0 + are-docs-informative: 0.0.2 + comment-parser: 1.4.1 + debug: 4.3.7 + escape-string-regexp: 4.0.0 + eslint: 9.12.0 + espree: 10.2.0 + esquery: 1.6.0 + parse-imports: 2.2.1 + semver: 7.6.3 + spdx-expression-parse: 4.0.0 + synckit: 0.9.2 + transitivePeerDependencies: + - supports-color + + eslint-plugin-unicorn@56.0.0(eslint@9.12.0): + dependencies: + '@babel/helper-validator-identifier': 7.25.7 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) + ci-info: 4.0.0 + clean-regexp: 1.0.0 + core-js-compat: 3.38.1 + eslint: 9.12.0 + esquery: 1.6.0 + globals: 15.10.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.10.0 + semver: 7.6.3 + strip-indent: 3.0.0 + + eslint-scope@8.1.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.1.0: {} + + eslint@9.12.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0) + '@eslint-community/regexpp': 4.11.1 + '@eslint/config-array': 0.18.0 + '@eslint/core': 0.6.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.12.0 + '@eslint/plugin-kit': 0.2.0 + '@humanfs/node': 0.16.5 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.7 + escape-string-regexp: 4.0.0 + eslint-scope: 8.1.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@10.2.0: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 4.1.0 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + event-target-shim@5.0.1: {} + + events@3.3.0: {} + + fast-decode-uri-component@1.0.1: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-json-stringify@6.0.0: + dependencies: + '@fastify/merge-json-schemas': 0.1.1 + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + fast-deep-equal: 3.1.3 + fast-uri: 2.4.0 + json-schema-ref-resolver: 1.0.1 + rfdc: 1.4.1 + + fast-levenshtein@2.0.6: {} + + fast-querystring@1.1.2: + dependencies: + fast-decode-uri-component: 1.0.1 + + fast-redact@3.5.0: {} + + fast-uri@2.4.0: {} + + fast-uri@3.0.2: {} + + fastest-levenshtein@1.0.16: {} + + fastify-plugin@5.0.1: {} + + fastify@5.0.0: + dependencies: + '@fastify/ajv-compiler': 4.0.1 + '@fastify/error': 4.0.0 + '@fastify/fast-json-stringify-compiler': 5.0.1 + abstract-logging: 2.0.1 + avvio: 9.0.0 + fast-json-stringify: 6.0.0 + find-my-way: 9.1.0 + light-my-request: 6.1.0 + pino: 9.4.0 + process-warning: 4.0.0 + proxy-addr: 2.0.7 + rfdc: 1.4.1 + secure-json-parse: 2.7.0 + semver: 7.6.3 + toad-cache: 3.7.0 + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + file-entry-cache@9.1.0: + dependencies: + flat-cache: 5.0.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-my-way@9.1.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-querystring: 1.1.2 + safe-regex2: 4.0.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + + flat-cache@5.0.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + + flatted@3.3.1: {} + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + forwarded@0.2.0: {} + + fraction.js@4.3.7: {} + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs.realpath@1.0.0: {} + + function-bind@1.1.2: {} + + gauge@3.0.2: + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + + get-stdin@9.0.0: {} + + git-hooks-list@3.1.0: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@11.0.0: + dependencies: + foreground-child: 3.3.0 + jackspeak: 4.0.2 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 - git-hooks-list@3.1.0: {} + global-modules@2.0.0: + dependencies: + global-prefix: 3.0.0 - github-from-package@0.0.0: {} + global-prefix@3.0.0: + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 + globals@14.0.0: {} - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 + globals@15.10.0: {} - glob@11.0.0: - dependencies: - foreground-child: 3.1.1 - jackspeak: 4.0.1 - minimatch: 10.0.1 - minipass: 7.1.2 - package-json-from-dist: 1.0.0 - path-scurry: 2.0.0 + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 - global-modules@2.0.0: - dependencies: - global-prefix: 3.0.0 + globby@13.2.2: + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 4.0.0 - global-prefix@3.0.0: - dependencies: - ini: 1.3.8 - kind-of: 6.0.3 - which: 1.3.1 + globjoin@0.1.4: {} - globals@14.0.0: {} + graphemer@1.4.0: {} - globals@15.10.0: {} + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 + has-flag@3.0.0: {} - globby@13.2.2: - dependencies: - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 4.0.0 + has-flag@4.0.0: {} - globjoin@0.1.4: {} + has-unicode@2.0.1: {} - graphemer@1.4.0: {} + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 - handlebars@4.7.8: - dependencies: - minimist: 1.2.8 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.17.4 + he@1.2.0: {} - has-flag@3.0.0: {} + hosted-git-info@2.8.9: {} - has-flag@4.0.0: {} + html-tags@3.3.1: {} - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 - he@1.2.0: {} + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color - hosted-git-info@2.8.9: {} + ieee754@1.2.1: {} - html-tags@3.3.1: {} + ignore@5.3.2: {} - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 - ieee754@1.2.1: {} + imurmurhash@0.1.4: {} - ignore@5.3.2: {} + indent-string@4.0.0: {} - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 - imurmurhash@0.1.4: {} + inherits@2.0.4: {} - indent-string@4.0.0: {} + ini@1.3.8: {} - inherits@2.0.4: {} + ipaddr.js@1.9.1: {} - ini@1.3.8: {} + is-arrayish@0.2.1: {} - ipaddr.js@1.9.1: {} + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 - is-arrayish@0.2.1: {} + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 - is-builtin-module@3.2.1: - dependencies: - builtin-modules: 3.3.0 + is-extglob@2.1.1: {} - is-core-module@2.14.0: - dependencies: - hasown: 2.0.2 + is-fullwidth-code-point@3.0.0: {} - is-extglob@2.1.1: {} + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 - is-fullwidth-code-point@3.0.0: {} + is-number@7.0.0: {} - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 + is-plain-obj@4.1.0: {} - is-number@7.0.0: {} + is-plain-object@5.0.0: {} - is-plain-obj@4.1.0: {} + isexe@2.0.0: {} - is-plain-object@5.0.0: {} + jackspeak@4.0.2: + dependencies: + '@isaacs/cliui': 8.0.2 - isexe@2.0.0: {} + javascript-natural-sort@0.7.1: {} - jackspeak@4.0.1: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + js-tokens@4.0.0: {} - javascript-natural-sort@0.7.1: {} + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 - js-tokens@4.0.0: {} + jsdoc-type-pratt-parser@4.1.0: {} - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 + jsesc@0.5.0: {} - jsdoc-type-pratt-parser@4.1.0: {} + jsesc@3.0.2: {} - jsesc@0.5.0: {} + json-buffer@3.0.1: {} - jsesc@3.0.2: {} + json-parse-even-better-errors@2.3.1: {} - json-buffer@3.0.1: {} + json-schema-ref-resolver@1.0.1: + dependencies: + fast-deep-equal: 3.1.3 - json-parse-even-better-errors@2.3.1: {} + json-schema-traverse@0.4.1: {} - json-schema-ref-resolver@1.0.1: - dependencies: - fast-deep-equal: 3.1.3 + json-schema-traverse@1.0.0: {} - json-schema-traverse@0.4.1: {} + json-stable-stringify-without-jsonify@1.0.1: {} - json-schema-traverse@1.0.0: {} + kareem@2.6.3: {} - json-stable-stringify-without-jsonify@1.0.1: {} + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 - kareem@2.6.3: {} + kind-of@6.0.3: {} - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 + known-css-properties@0.34.0: {} - kind-of@6.0.3: {} + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 - known-css-properties@0.34.0: {} + light-my-request@6.1.0: + dependencies: + cookie: 0.7.2 + process-warning: 4.0.0 + set-cookie-parser: 2.7.0 - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 + lilconfig@2.1.0: {} - light-my-request@6.0.0: - dependencies: - cookie: 0.6.0 - process-warning: 4.0.0 - set-cookie-parser: 2.6.0 + lines-and-columns@1.2.4: {} - lilconfig@2.1.0: {} + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 - lines-and-columns@1.2.4: {} + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 + lodash.merge@4.6.2: {} - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 + lodash.truncate@4.4.2: {} - lodash.merge@4.6.2: {} + lru-cache@11.0.1: {} - lodash.truncate@4.4.2: {} + make-dir@3.1.0: + dependencies: + semver: 6.3.1 - lru-cache@11.0.1: {} + mathjs@13.2.0: + dependencies: + '@babel/runtime': 7.25.7 + complex.js: 2.2.4 + decimal.js: 10.4.3 + escape-latex: 1.2.0 + fraction.js: 4.3.7 + javascript-natural-sort: 0.7.1 + seedrandom: 3.0.5 + tiny-emitter: 2.1.0 + typed-function: 4.2.1 - mathjs@13.2.0: - dependencies: - '@babel/runtime': 7.25.6 - complex.js: 2.1.1 - decimal.js: 10.4.3 - escape-latex: 1.2.0 - fraction.js: 4.3.7 - javascript-natural-sort: 0.7.1 - seedrandom: 3.0.5 - tiny-emitter: 2.1.0 - typed-function: 4.2.1 + mathml-tag-names@2.1.3: {} - mathml-tag-names@2.1.3: {} + mdn-data@2.0.30: {} - mdn-data@2.0.30: {} + memory-pager@1.5.0: {} - memory-pager@1.5.0: {} + meow@13.2.0: {} - meow@13.2.0: {} + merge2@1.4.1: {} - merge2@1.4.1: {} + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 + mime@3.0.0: {} - mime@3.0.0: {} + mimic-response@2.1.0: {} - mimic-response@2.1.0: {} + min-indent@1.0.1: {} - mimic-response@3.1.0: {} + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 - min-indent@1.0.1: {} + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 - minimatch@10.0.1: - dependencies: - brace-expansion: 2.0.1 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 + minimist@1.2.8: {} - minimatch@9.0.4: - dependencies: - brace-expansion: 2.0.1 + minipass@3.3.6: + dependencies: + yallist: 4.0.0 - minimist@1.2.8: {} + minipass@5.0.0: {} - minipass@7.1.2: {} + minipass@7.1.2: {} - mkdirp-classic@0.5.3: {} + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 - mongodb-connection-string-url@3.0.0: - dependencies: - '@types/whatwg-url': 11.0.4 - whatwg-url: 13.0.0 + mkdirp@1.0.4: {} - mongodb@6.9.0: - dependencies: - '@mongodb-js/saslprep': 1.1.5 - bson: 6.7.0 - mongodb-connection-string-url: 3.0.0 + mongodb-connection-string-url@3.0.1: + dependencies: + '@types/whatwg-url': 11.0.5 + whatwg-url: 13.0.0 - mongoose@8.7.0: - dependencies: - bson: 6.7.0 - kareem: 2.6.3 - mongodb: 6.9.0 - mpath: 0.9.0 - mquery: 5.0.0 - ms: 2.1.3 - sift: 17.1.3 - transitivePeerDependencies: - - '@aws-sdk/credential-providers' - - '@mongodb-js/zstd' - - gcp-metadata - - kerberos - - mongodb-client-encryption - - snappy - - socks - - supports-color + mongodb@6.9.0: + dependencies: + '@mongodb-js/saslprep': 1.1.9 + bson: 6.8.0 + mongodb-connection-string-url: 3.0.1 - mpath@0.9.0: {} + mongoose@8.7.0: + dependencies: + bson: 6.8.0 + kareem: 2.6.3 + mongodb: 6.9.0 + mpath: 0.9.0 + mquery: 5.0.0 + ms: 2.1.3 + sift: 17.1.3 + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@mongodb-js/zstd' + - gcp-metadata + - kerberos + - mongodb-client-encryption + - snappy + - socks + - supports-color - mquery@5.0.0: - dependencies: - debug: 4.3.6 - transitivePeerDependencies: - - supports-color + mpath@0.9.0: {} - ms@2.1.2: {} + mquery@5.0.0: + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color - ms@2.1.3: {} + ms@2.1.3: {} - nanoid@3.3.7: {} + nan@2.20.0: {} - napi-build-utils@1.0.2: {} + nanoid@3.3.7: {} - natural-compare@1.4.0: {} + natural-compare@1.4.0: {} - neo-async@2.6.2: {} + neo-async@2.6.2: {} - node-abi@3.65.0: - dependencies: - semver: 7.6.3 + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 - node-addon-api@7.1.1: {} + node-html-parser@6.1.13: + dependencies: + css-select: 5.1.0 + he: 1.2.0 - node-html-parser@6.1.13: - dependencies: - css-select: 5.1.0 - he: 1.2.0 + node-releases@2.0.18: {} - node-releases@2.0.14: {} + nopt@5.0.0: + dependencies: + abbrev: 1.1.1 - node-releases@2.0.18: {} + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 - normalize-package-data@2.5.0: - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.8 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} - normalize-path@3.0.0: {} + normalize-range@0.1.2: {} - normalize-range@0.1.2: {} + npmlog@5.0.1: + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 - on-exit-leak-free@2.1.2: {} + object-assign@4.1.1: {} - once@1.4.0: - dependencies: - wrappy: 1.0.2 + on-exit-leak-free@2.1.2: {} - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-try@2.2.0: {} + + package-json-from-dist@1.0.1: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-imports@2.2.1: + dependencies: + es-module-lexer: 1.5.4 + slashes: 3.0.12 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.25.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@2.0.0: + dependencies: + lru-cache: 11.0.1 + minipass: 7.1.2 + + path-type@4.0.0: {} + + picocolors@1.1.0: {} + + picomatch@2.3.1: {} + + pino-abstract-transport@1.2.0: + dependencies: + readable-stream: 4.5.2 + split2: 4.2.0 + + pino-std-serializers@7.0.0: {} + + pino@9.4.0: + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.2.0 + pino-std-serializers: 7.0.0 + process-warning: 4.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 4.1.0 + thread-stream: 3.1.0 + + pluralize@8.0.0: {} + + postcss-attribute-case-insensitive@7.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + postcss-clamp@4.1.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + postcss-color-functional-notation@7.0.2(postcss@8.4.47): + dependencies: + '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + + postcss-color-hex-alpha@10.0.0(postcss@8.4.47): + dependencies: + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + postcss-color-rebeccapurple@10.0.0(postcss@8.4.47): + dependencies: + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + postcss-custom-media@11.0.2(postcss@8.4.47): + dependencies: + '@csstools/cascade-layer-name-parser': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + postcss: 8.4.47 + + postcss-custom-properties@14.0.1(postcss@8.4.47): + dependencies: + '@csstools/cascade-layer-name-parser': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + postcss-custom-selectors@8.0.1(postcss@8.4.47): + dependencies: + '@csstools/cascade-layer-name-parser': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + postcss-dir-pseudo-class@9.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + postcss-double-position-gradients@6.0.0(postcss@8.4.47): + dependencies: + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + postcss-focus-visible@10.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + postcss-focus-within@9.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + postcss-font-variant@5.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + + postcss-gap-properties@6.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + + postcss-image-set-function@7.0.0(postcss@8.4.47): + dependencies: + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + postcss-lab-function@7.0.2(postcss@8.4.47): + dependencies: + '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) + '@csstools/utilities': 2.0.0(postcss@8.4.47) + postcss: 8.4.47 + + postcss-less@6.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + + postcss-load-config@3.1.4(postcss@8.4.47): + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.2 + optionalDependencies: + postcss: 8.4.47 + + postcss-logical@8.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + postcss-nesting@13.0.0(postcss@8.4.47): + dependencies: + '@csstools/selector-resolve-nested': 2.0.0(postcss-selector-parser@6.1.2) + '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + postcss-opacity-percentage@3.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + + postcss-overflow-shorthand@6.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + postcss-page-break@3.0.4(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + + postcss-place@10.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + postcss-preset-env@10.0.6(postcss@8.4.47): + dependencies: + '@csstools/postcss-cascade-layers': 5.0.0(postcss@8.4.47) + '@csstools/postcss-color-function': 4.0.2(postcss@8.4.47) + '@csstools/postcss-color-mix-function': 3.0.2(postcss@8.4.47) + '@csstools/postcss-content-alt-text': 2.0.1(postcss@8.4.47) + '@csstools/postcss-exponential-functions': 2.0.1(postcss@8.4.47) + '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.4.47) + '@csstools/postcss-gamut-mapping': 2.0.2(postcss@8.4.47) + '@csstools/postcss-gradients-interpolation-method': 5.0.2(postcss@8.4.47) + '@csstools/postcss-hwb-function': 4.0.2(postcss@8.4.47) + '@csstools/postcss-ic-unit': 4.0.0(postcss@8.4.47) + '@csstools/postcss-initial': 2.0.0(postcss@8.4.47) + '@csstools/postcss-is-pseudo-class': 5.0.0(postcss@8.4.47) + '@csstools/postcss-light-dark-function': 2.0.4(postcss@8.4.47) + '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.4.47) + '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.4.47) + '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.4.47) + '@csstools/postcss-logical-resize': 3.0.0(postcss@8.4.47) + '@csstools/postcss-logical-viewport-units': 3.0.1(postcss@8.4.47) + '@csstools/postcss-media-minmax': 2.0.1(postcss@8.4.47) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.1(postcss@8.4.47) + '@csstools/postcss-nested-calc': 4.0.0(postcss@8.4.47) + '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.4.47) + '@csstools/postcss-oklab-function': 4.0.2(postcss@8.4.47) + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) + '@csstools/postcss-relative-color-syntax': 3.0.2(postcss@8.4.47) + '@csstools/postcss-scope-pseudo-class': 4.0.0(postcss@8.4.47) + '@csstools/postcss-stepped-value-functions': 4.0.1(postcss@8.4.47) + '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.4.47) + '@csstools/postcss-trigonometric-functions': 4.0.1(postcss@8.4.47) + '@csstools/postcss-unset-value': 4.0.0(postcss@8.4.47) + autoprefixer: 10.4.20(postcss@8.4.47) + browserslist: 4.24.0 + css-blank-pseudo: 7.0.0(postcss@8.4.47) + css-has-pseudo: 7.0.0(postcss@8.4.47) + css-prefers-color-scheme: 10.0.0(postcss@8.4.47) + cssdb: 8.1.1 + postcss: 8.4.47 + postcss-attribute-case-insensitive: 7.0.0(postcss@8.4.47) + postcss-clamp: 4.1.0(postcss@8.4.47) + postcss-color-functional-notation: 7.0.2(postcss@8.4.47) + postcss-color-hex-alpha: 10.0.0(postcss@8.4.47) + postcss-color-rebeccapurple: 10.0.0(postcss@8.4.47) + postcss-custom-media: 11.0.2(postcss@8.4.47) + postcss-custom-properties: 14.0.1(postcss@8.4.47) + postcss-custom-selectors: 8.0.1(postcss@8.4.47) + postcss-dir-pseudo-class: 9.0.0(postcss@8.4.47) + postcss-double-position-gradients: 6.0.0(postcss@8.4.47) + postcss-focus-visible: 10.0.0(postcss@8.4.47) + postcss-focus-within: 9.0.0(postcss@8.4.47) + postcss-font-variant: 5.0.0(postcss@8.4.47) + postcss-gap-properties: 6.0.0(postcss@8.4.47) + postcss-image-set-function: 7.0.0(postcss@8.4.47) + postcss-lab-function: 7.0.2(postcss@8.4.47) + postcss-logical: 8.0.0(postcss@8.4.47) + postcss-nesting: 13.0.0(postcss@8.4.47) + postcss-opacity-percentage: 3.0.0(postcss@8.4.47) + postcss-overflow-shorthand: 6.0.0(postcss@8.4.47) + postcss-page-break: 3.0.4(postcss@8.4.47) + postcss-place: 10.0.0(postcss@8.4.47) + postcss-pseudo-class-any-link: 10.0.0(postcss@8.4.47) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.47) + postcss-selector-not: 8.0.0(postcss@8.4.47) + + postcss-pseudo-class-any-link@10.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + postcss-replace-overflow-wrap@4.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + + postcss-resolve-nested-selector@0.1.6: {} + + postcss-safe-parser@7.0.1(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + + postcss-scss@4.0.9(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + + postcss-selector-not@8.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier-plugin-css-order@2.1.2(postcss@8.4.47)(prettier@3.3.3): + dependencies: + css-declaration-sorter: 7.2.0(postcss@8.4.47) + postcss-less: 6.0.0(postcss@8.4.47) + postcss-scss: 4.0.9(postcss@8.4.47) + prettier: 3.3.3 + transitivePeerDependencies: + - postcss + + prettier-plugin-organize-imports@4.1.0(prettier@3.3.3)(typescript@5.6.2): + dependencies: + prettier: 3.3.3 + typescript: 5.6.2 + + prettier-plugin-packagejson@2.5.3(prettier@3.3.3): + dependencies: + sort-package-json: 2.10.1 + synckit: 0.9.2 + optionalDependencies: + prettier: 3.3.3 + + prettier@3.3.3: {} + + process-warning@4.0.0: {} + + process@0.11.10: {} - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - p-try@2.2.0: {} - - package-json-from-dist@1.0.0: {} - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parse-imports@2.1.1: - dependencies: - es-module-lexer: 1.5.4 - slashes: 3.0.12 - - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.23.4 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - path-exists@4.0.0: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-scurry@2.0.0: - dependencies: - lru-cache: 11.0.1 - minipass: 7.1.2 - - path-type@4.0.0: {} - - picocolors@1.0.1: {} - - picocolors@1.1.0: {} - - picomatch@2.3.1: {} - - pino-abstract-transport@1.2.0: - dependencies: - readable-stream: 4.4.2 - split2: 4.2.0 - - pino-std-serializers@6.2.2: {} - - pino@9.0.0: - dependencies: - atomic-sleep: 1.0.0 - fast-redact: 3.3.0 - on-exit-leak-free: 2.1.2 - pino-abstract-transport: 1.2.0 - pino-std-serializers: 6.2.2 - process-warning: 3.0.0 - quick-format-unescaped: 4.0.4 - real-require: 0.2.0 - safe-stable-stringify: 2.4.3 - sonic-boom: 3.7.0 - thread-stream: 2.7.0 - - pluralize@8.0.0: {} - - postcss-attribute-case-insensitive@7.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - postcss-clamp@4.1.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - postcss-color-functional-notation@7.0.2(postcss@8.4.47): - dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - - postcss-color-hex-alpha@10.0.0(postcss@8.4.47): - dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - postcss-color-rebeccapurple@10.0.0(postcss@8.4.47): - dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - postcss-custom-media@11.0.2(postcss@8.4.47): - dependencies: - '@csstools/cascade-layer-name-parser': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - postcss: 8.4.47 - - postcss-custom-properties@14.0.1(postcss@8.4.47): - dependencies: - '@csstools/cascade-layer-name-parser': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - postcss-custom-selectors@8.0.1(postcss@8.4.47): - dependencies: - '@csstools/cascade-layer-name-parser': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - postcss-dir-pseudo-class@9.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - postcss-double-position-gradients@6.0.0(postcss@8.4.47): - dependencies: - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - postcss-focus-visible@10.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - postcss-focus-within@9.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - postcss-font-variant@5.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - postcss-gap-properties@6.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - postcss-image-set-function@7.0.0(postcss@8.4.47): - dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - postcss-lab-function@7.0.2(postcss@8.4.47): - dependencies: - '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/utilities': 2.0.0(postcss@8.4.47) - postcss: 8.4.47 - - postcss-less@6.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - postcss-load-config@3.1.4(postcss@8.4.47): - dependencies: - lilconfig: 2.1.0 - yaml: 1.10.2 - optionalDependencies: - postcss: 8.4.47 - - postcss-logical@8.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - postcss-nesting@13.0.0(postcss@8.4.47): - dependencies: - '@csstools/selector-resolve-nested': 2.0.0(postcss-selector-parser@6.1.2) - '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - postcss-opacity-percentage@3.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - postcss-overflow-shorthand@6.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - postcss-page-break@3.0.4(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - postcss-place@10.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - postcss-preset-env@10.0.6(postcss@8.4.47): - dependencies: - '@csstools/postcss-cascade-layers': 5.0.0(postcss@8.4.47) - '@csstools/postcss-color-function': 4.0.2(postcss@8.4.47) - '@csstools/postcss-color-mix-function': 3.0.2(postcss@8.4.47) - '@csstools/postcss-content-alt-text': 2.0.1(postcss@8.4.47) - '@csstools/postcss-exponential-functions': 2.0.1(postcss@8.4.47) - '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.4.47) - '@csstools/postcss-gamut-mapping': 2.0.2(postcss@8.4.47) - '@csstools/postcss-gradients-interpolation-method': 5.0.2(postcss@8.4.47) - '@csstools/postcss-hwb-function': 4.0.2(postcss@8.4.47) - '@csstools/postcss-ic-unit': 4.0.0(postcss@8.4.47) - '@csstools/postcss-initial': 2.0.0(postcss@8.4.47) - '@csstools/postcss-is-pseudo-class': 5.0.0(postcss@8.4.47) - '@csstools/postcss-light-dark-function': 2.0.4(postcss@8.4.47) - '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.4.47) - '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.4.47) - '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.4.47) - '@csstools/postcss-logical-resize': 3.0.0(postcss@8.4.47) - '@csstools/postcss-logical-viewport-units': 3.0.1(postcss@8.4.47) - '@csstools/postcss-media-minmax': 2.0.1(postcss@8.4.47) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.1(postcss@8.4.47) - '@csstools/postcss-nested-calc': 4.0.0(postcss@8.4.47) - '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.4.47) - '@csstools/postcss-oklab-function': 4.0.2(postcss@8.4.47) - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/postcss-relative-color-syntax': 3.0.2(postcss@8.4.47) - '@csstools/postcss-scope-pseudo-class': 4.0.0(postcss@8.4.47) - '@csstools/postcss-stepped-value-functions': 4.0.1(postcss@8.4.47) - '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.4.47) - '@csstools/postcss-trigonometric-functions': 4.0.1(postcss@8.4.47) - '@csstools/postcss-unset-value': 4.0.0(postcss@8.4.47) - autoprefixer: 10.4.19(postcss@8.4.47) - browserslist: 4.23.1 - css-blank-pseudo: 7.0.0(postcss@8.4.47) - css-has-pseudo: 7.0.0(postcss@8.4.47) - css-prefers-color-scheme: 10.0.0(postcss@8.4.47) - cssdb: 8.1.1 - postcss: 8.4.47 - postcss-attribute-case-insensitive: 7.0.0(postcss@8.4.47) - postcss-clamp: 4.1.0(postcss@8.4.47) - postcss-color-functional-notation: 7.0.2(postcss@8.4.47) - postcss-color-hex-alpha: 10.0.0(postcss@8.4.47) - postcss-color-rebeccapurple: 10.0.0(postcss@8.4.47) - postcss-custom-media: 11.0.2(postcss@8.4.47) - postcss-custom-properties: 14.0.1(postcss@8.4.47) - postcss-custom-selectors: 8.0.1(postcss@8.4.47) - postcss-dir-pseudo-class: 9.0.0(postcss@8.4.47) - postcss-double-position-gradients: 6.0.0(postcss@8.4.47) - postcss-focus-visible: 10.0.0(postcss@8.4.47) - postcss-focus-within: 9.0.0(postcss@8.4.47) - postcss-font-variant: 5.0.0(postcss@8.4.47) - postcss-gap-properties: 6.0.0(postcss@8.4.47) - postcss-image-set-function: 7.0.0(postcss@8.4.47) - postcss-lab-function: 7.0.2(postcss@8.4.47) - postcss-logical: 8.0.0(postcss@8.4.47) - postcss-nesting: 13.0.0(postcss@8.4.47) - postcss-opacity-percentage: 3.0.0(postcss@8.4.47) - postcss-overflow-shorthand: 6.0.0(postcss@8.4.47) - postcss-page-break: 3.0.4(postcss@8.4.47) - postcss-place: 10.0.0(postcss@8.4.47) - postcss-pseudo-class-any-link: 10.0.0(postcss@8.4.47) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.47) - postcss-selector-not: 8.0.0(postcss@8.4.47) - - postcss-pseudo-class-any-link@10.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - postcss-replace-overflow-wrap@4.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - postcss-resolve-nested-selector@0.1.6: {} - - postcss-safe-parser@7.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - postcss-scss@4.0.9(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - postcss-selector-not@8.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-value-parser@4.2.0: {} - - postcss@8.4.47: - dependencies: - nanoid: 3.3.7 - picocolors: 1.1.0 - source-map-js: 1.2.1 - - prebuild-install@7.1.2: - dependencies: - detect-libc: 2.0.3 - expand-template: 2.0.3 - github-from-package: 0.0.0 - minimist: 1.2.8 - mkdirp-classic: 0.5.3 - napi-build-utils: 1.0.2 - node-abi: 3.65.0 - pump: 3.0.0 - rc: 1.2.8 - simple-get: 4.0.1 - tar-fs: 2.1.1 - tunnel-agent: 0.6.0 - - prelude-ls@1.2.1: {} - - prettier-plugin-css-order@2.1.2(postcss@8.4.47)(prettier@3.3.3): - dependencies: - css-declaration-sorter: 7.1.1(postcss@8.4.47) - postcss-less: 6.0.0(postcss@8.4.47) - postcss-scss: 4.0.9(postcss@8.4.47) - prettier: 3.3.3 - transitivePeerDependencies: - - postcss - - prettier-plugin-organize-imports@4.0.0(prettier@3.3.3)(typescript@5.6.2): - dependencies: - prettier: 3.3.3 - typescript: 5.6.2 - - prettier-plugin-packagejson@2.5.0(prettier@3.3.3): - dependencies: - sort-package-json: 2.10.0 - synckit: 0.9.0 - optionalDependencies: - prettier: 3.3.3 - - prettier@3.3.3: {} - - process-warning@3.0.0: {} - - process-warning@4.0.0: {} - - process@0.11.10: {} - - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 - pump@3.0.0: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 + punycode@2.3.1: {} - punycode@2.3.1: {} + queue-microtask@1.2.3: {} - queue-microtask@1.2.3: {} + quick-format-unescaped@4.0.4: {} - quick-format-unescaped@4.0.4: {} + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 - rc@1.2.8: - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 - read-pkg-up@7.0.1: - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 - read-pkg@5.2.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 + readable-stream@4.5.2: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 + readdirp@4.0.2: {} - readable-stream@4.4.2: - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - string_decoder: 1.3.0 + real-require@0.2.0: {} - readdirp@4.0.1: {} + regenerator-runtime@0.14.1: {} - real-require@0.2.0: {} + regexp-tree@0.1.27: {} - regenerator-runtime@0.14.0: {} + regjsparser@0.10.0: + dependencies: + jsesc: 0.5.0 - regexp-tree@0.1.27: {} + require-from-string@2.0.2: {} - regjsparser@0.10.0: - dependencies: - jsesc: 0.5.0 + resolve-from@4.0.0: {} - require-from-string@2.0.2: {} + resolve-from@5.0.0: {} - resolve-from@4.0.0: {} + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 - resolve-from@5.0.0: {} + ret@0.5.0: {} - resolve@1.22.8: - dependencies: - is-core-module: 2.14.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 + reusify@1.0.4: {} - ret@0.5.0: {} + rfdc@1.4.1: {} - reusify@1.0.4: {} + rimraf@3.0.2: + dependencies: + glob: 7.2.3 - rfdc@1.4.1: {} + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 + safe-buffer@5.2.1: {} - safe-buffer@5.2.1: {} + safe-regex2@4.0.0: + dependencies: + ret: 0.5.0 - safe-regex2@4.0.0: - dependencies: - ret: 0.5.0 + safe-stable-stringify@2.5.0: {} - safe-stable-stringify@2.4.3: {} + secure-json-parse@2.7.0: {} - secure-json-parse@2.7.0: {} + seedrandom@3.0.5: {} - seedrandom@3.0.5: {} + semver@5.7.2: {} - semver@5.7.2: {} + semver@6.3.1: {} - semver@7.6.3: {} + semver@7.6.3: {} - set-cookie-parser@2.6.0: {} + set-blocking@2.0.0: {} - setprototypeof@1.2.0: {} + set-cookie-parser@2.7.0: {} - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 + setprototypeof@1.2.0: {} - shebang-regex@3.0.0: {} + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 - sift@17.1.3: {} + shebang-regex@3.0.0: {} - signal-exit@4.1.0: {} + sift@17.1.3: {} - simple-concat@1.0.1: {} + signal-exit@3.0.7: {} - simple-get@3.1.1: - dependencies: - decompress-response: 4.2.1 - once: 1.4.0 - simple-concat: 1.0.1 + signal-exit@4.1.0: {} - simple-get@4.0.1: - dependencies: - decompress-response: 6.0.0 - once: 1.4.0 - simple-concat: 1.0.1 + simple-concat@1.0.1: {} - slash@3.0.0: {} + simple-get@3.1.1: + dependencies: + decompress-response: 4.2.1 + once: 1.4.0 + simple-concat: 1.0.1 - slash@4.0.0: {} + slash@3.0.0: {} - slashes@3.0.12: {} + slash@4.0.0: {} - slice-ansi@4.0.0: - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 + slashes@3.0.12: {} - sonic-boom@3.7.0: - dependencies: - atomic-sleep: 1.0.0 + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 - sort-object-keys@1.1.3: {} + sonic-boom@4.1.0: + dependencies: + atomic-sleep: 1.0.0 - sort-package-json@2.10.0: - dependencies: - detect-indent: 7.0.1 - detect-newline: 4.0.1 - get-stdin: 9.0.0 - git-hooks-list: 3.1.0 - globby: 13.2.2 - is-plain-obj: 4.1.0 - semver: 7.6.3 - sort-object-keys: 1.1.3 + sort-object-keys@1.1.3: {} - source-map-js@1.2.0: {} + sort-package-json@2.10.1: + dependencies: + detect-indent: 7.0.1 + detect-newline: 4.0.1 + get-stdin: 9.0.0 + git-hooks-list: 3.1.0 + globby: 13.2.2 + is-plain-obj: 4.1.0 + semver: 7.6.3 + sort-object-keys: 1.1.3 - source-map-js@1.2.1: {} + source-map-js@1.2.1: {} - source-map@0.6.1: {} + source-map@0.6.1: {} - sparse-bitfield@3.0.3: - dependencies: - memory-pager: 1.5.0 + sparse-bitfield@3.0.3: + dependencies: + memory-pager: 1.5.0 - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.18 + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.20 - spdx-exceptions@2.5.0: {} + spdx-exceptions@2.5.0: {} - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.18 - - spdx-expression-parse@4.0.0: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.18 - - spdx-license-ids@3.0.18: {} - - split2@4.2.0: {} - - statuses@2.0.1: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.0.1 - - strip-indent@3.0.0: - dependencies: - min-indent: 1.0.1 - - strip-json-comments@2.0.1: {} - - strip-json-comments@3.1.1: {} - - stylelint-config-recommended@14.0.1(stylelint@16.9.0(typescript@5.6.2)): - dependencies: - stylelint: 16.9.0(typescript@5.6.2) - - stylelint-config-standard@36.0.1(stylelint@16.9.0(typescript@5.6.2)): - dependencies: - stylelint: 16.9.0(typescript@5.6.2) - stylelint-config-recommended: 14.0.1(stylelint@16.9.0(typescript@5.6.2)) - - stylelint-use-nesting@6.0.0(stylelint@16.9.0(typescript@5.6.2)): - dependencies: - stylelint: 16.9.0(typescript@5.6.2) - - stylelint@16.9.0(typescript@5.6.2): - dependencies: - '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) - '@csstools/css-tokenizer': 3.0.1 - '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) - '@dual-bundle/import-meta-resolve': 4.1.0 - balanced-match: 2.0.0 - colord: 2.9.3 - cosmiconfig: 9.0.0(typescript@5.6.2) - css-functions-list: 3.2.2 - css-tree: 2.3.1 - debug: 4.3.6 - fast-glob: 3.3.2 - fastest-levenshtein: 1.0.16 - file-entry-cache: 9.0.0 - global-modules: 2.0.0 - globby: 11.1.0 - globjoin: 0.1.4 - html-tags: 3.3.1 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-plain-object: 5.0.0 - known-css-properties: 0.34.0 - mathml-tag-names: 2.1.3 - meow: 13.2.0 - micromatch: 4.0.8 - normalize-path: 3.0.0 - picocolors: 1.0.1 - postcss: 8.4.47 - postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 7.0.0(postcss@8.4.47) - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 - resolve-from: 5.0.0 - string-width: 4.2.3 - strip-ansi: 7.1.0 - supports-hyperlinks: 3.1.0 - svg-tags: 1.0.0 - table: 6.8.2 - write-file-atomic: 5.0.1 - transitivePeerDependencies: - - supports-color - - typescript - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-hyperlinks@3.1.0: - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - svg-tags@1.0.0: {} - - synckit@0.9.0: - dependencies: - '@pkgr/core': 0.1.0 - tslib: 2.6.2 - - synckit@0.9.1: - dependencies: - '@pkgr/core': 0.1.0 - tslib: 2.6.2 - - table@6.8.2: - dependencies: - ajv: 8.12.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - tar-fs@2.1.1: - dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.0 - tar-stream: 2.2.0 - - tar-stream@2.2.0: - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - - text-table@0.2.0: {} - - thread-stream@2.7.0: - dependencies: - real-require: 0.2.0 - - tiny-emitter@2.1.0: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - toad-cache@3.7.0: {} - - toidentifier@1.0.1: {} - - tr46@4.1.1: - dependencies: - punycode: 2.3.1 - - tree-kill@1.2.2: {} - - ts-api-utils@1.3.0(typescript@5.6.2): - dependencies: - typescript: 5.6.2 - - tslib@2.6.2: {} - - tunnel-agent@0.6.0: - dependencies: - safe-buffer: 5.2.1 - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-fest@0.6.0: {} + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 + + spdx-expression-parse@4.0.0: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 + + spdx-license-ids@3.0.20: {} + + split2@4.2.0: {} + + statuses@2.0.1: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@3.1.1: {} + + stylelint-config-recommended@14.0.1(stylelint@16.9.0(typescript@5.6.2)): + dependencies: + stylelint: 16.9.0(typescript@5.6.2) + + stylelint-config-standard@36.0.1(stylelint@16.9.0(typescript@5.6.2)): + dependencies: + stylelint: 16.9.0(typescript@5.6.2) + stylelint-config-recommended: 14.0.1(stylelint@16.9.0(typescript@5.6.2)) + + stylelint-use-nesting@6.0.0(stylelint@16.9.0(typescript@5.6.2)): + dependencies: + stylelint: 16.9.0(typescript@5.6.2) + + stylelint@16.9.0(typescript@5.6.2): + dependencies: + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) + '@dual-bundle/import-meta-resolve': 4.1.0 + balanced-match: 2.0.0 + colord: 2.9.3 + cosmiconfig: 9.0.0(typescript@5.6.2) + css-functions-list: 3.2.2 + css-tree: 2.3.1 + debug: 4.3.7 + fast-glob: 3.3.2 + fastest-levenshtein: 1.0.16 + file-entry-cache: 9.1.0 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.3.1 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.34.0 + mathml-tag-names: 2.1.3 + meow: 13.2.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + picocolors: 1.1.0 + postcss: 8.4.47 + postcss-resolve-nested-selector: 0.1.6 + postcss-safe-parser: 7.0.1(postcss@8.4.47) + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + strip-ansi: 7.1.0 + supports-hyperlinks: 3.1.0 + svg-tags: 1.0.0 + table: 6.8.2 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + - typescript + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-hyperlinks@3.1.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + svg-tags@1.0.0: {} + + synckit@0.9.2: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.7.0 + + table@6.8.2: + dependencies: + ajv: 8.17.1 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + text-table@0.2.0: {} + + thread-stream@3.1.0: + dependencies: + real-require: 0.2.0 + + tiny-emitter@2.1.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toad-cache@3.7.0: {} + + toidentifier@1.0.1: {} + + tr46@0.0.3: {} + + tr46@4.1.1: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + + ts-api-utils@1.3.0(typescript@5.6.2): + dependencies: + typescript: 5.6.2 + + tslib@2.7.0: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + typed-function@4.2.1: {} + + typescript-eslint@8.8.1(eslint@9.12.0)(typescript@5.6.2): + dependencies: + '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.6.2))(eslint@9.12.0)(typescript@5.6.2) + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0)(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - eslint + - supports-color - type-fest@0.8.1: {} + typescript@5.6.2: {} - typed-function@4.2.1: {} + uglify-js@3.19.3: + optional: true - typescript-eslint@8.8.0(eslint@9.12.0)(typescript@5.6.2): - dependencies: - '@typescript-eslint/eslint-plugin': 8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0)(typescript@5.6.2))(eslint@9.12.0)(typescript@5.6.2) - '@typescript-eslint/parser': 8.8.0(eslint@9.12.0)(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.0(eslint@9.12.0)(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - transitivePeerDependencies: - - eslint - - supports-color + undici-types@6.19.8: {} - typescript@5.6.2: {} + update-browserslist-db@1.1.1(browserslist@4.24.0): + dependencies: + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 - uglify-js@3.17.4: - optional: true + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 - undici-types@6.19.6: {} + util-deprecate@1.0.2: {} - update-browserslist-db@1.0.16(browserslist@4.23.1): - dependencies: - browserslist: 4.23.1 - escalade: 3.1.2 - picocolors: 1.1.0 + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 - update-browserslist-db@1.1.1(browserslist@4.24.0): - dependencies: - browserslist: 4.24.0 - escalade: 3.2.0 - picocolors: 1.1.0 + webidl-conversions@3.0.1: {} - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 + webidl-conversions@7.0.0: {} - util-deprecate@1.0.2: {} + whatwg-url@13.0.0: + dependencies: + tr46: 4.1.1 + webidl-conversions: 7.0.0 - validate-npm-package-license@3.0.4: - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 - webidl-conversions@7.0.0: {} + which@1.3.1: + dependencies: + isexe: 2.0.0 - whatwg-url@13.0.0: - dependencies: - tr46: 4.1.1 - webidl-conversions: 7.0.0 + which@2.0.2: + dependencies: + isexe: 2.0.0 - which@1.3.1: - dependencies: - isexe: 2.0.0 + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 - which@2.0.2: - dependencies: - isexe: 2.0.0 + word-wrap@1.2.5: {} - word-wrap@1.2.5: {} + wordwrap@1.0.0: {} - wordwrap@1.0.0: {} + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 + wrappy@1.0.2: {} - wrappy@1.0.2: {} + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 - write-file-atomic@5.0.1: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 4.1.0 + yallist@4.0.0: {} - yaml@1.10.2: {} + yaml@1.10.2: {} - yocto-queue@0.1.0: {} + yocto-queue@0.1.0: {} diff --git a/src/app.ts b/src/app.ts index 39f1e37..d43d010 100644 --- a/src/app.ts +++ b/src/app.ts @@ -17,14 +17,16 @@ handlebars.registerHelper('iterateEuroCoin', (type: string, options: Handlebars. const amount = euroImageAmounts[type] ?? 1; let accumulator = ''; - for (let index = 1; index <= amount; ++index) accumulator += options.fn({ code: index === 1 ? '' : `-${index}`, text: amount > 1 ? ` ${index}` : '' }); + for (let index = 1; index <= amount; ++index) + accumulator += options.fn({ code: index === 1 ? '' : `-${index}`, text: amount > 1 ? ` ${index}` : '' }); return accumulator; }); handlebars.registerHelper('iterateEuroCoinVariant', (type: string, country: string, options: Handlebars.HelperOptions) => { const amount = euroVariantImageAmounts[type][country] ?? 1; let accumulator = ''; - for (let index = 1; index <= amount; ++index) accumulator += options.fn({ code: index === 1 ? '' : `-${index}`, text: amount > 1 ? ` ${index}` : '' }); + for (let index = 1; index <= amount; ++index) + accumulator += options.fn({ code: index === 1 ? '' : `-${index}`, text: amount > 1 ? ` ${index}` : '' }); return accumulator; }); @@ -41,10 +43,17 @@ const processedCommitSha = commitSha?.slice(0, 7) ?? 'abcdefg'; const commitMessage = (process.env.RAILWAY_GIT_COMMIT_MESSAGE ?? 'Some commit message!').split('\n\n')[0]; const commitAuthor = process.env.RAILWAY_GIT_AUTHOR ?? 'Someone'; -export const commitInfo = { sha: processedCommitSha, message: commitMessage, author: commitAuthor, url: commitSha ? `/commit/${commitSha}` : '' }; +export const commitInfo = { + sha: processedCommitSha, + message: commitMessage, + author: commitAuthor, + url: commitSha ? `/commit/${commitSha}` : '', +}; // Register pages -fastify.get('/', (request, reply) => reply.view('/index', { ...blankProperties, commitInfo, title: 'Home', pages: allPages, additionalStyles: [{ link: 'index.css' }] })); +fastify.get('/', (request, reply) => + reply.view('/index', { ...blankProperties, commitInfo, title: 'Home', pages: allPages, additionalStyles: [{ link: 'index.css' }] }), +); fastify.get('/tone-indicators', (request, reply) => reply.send(JSON.stringify(toneIndicators, null, 2))); @@ -56,11 +65,27 @@ fastify.setErrorHandler((error, request, reply) => { consola.error(error); - reply.status(error.statusCode ?? 500).view('/error.hbs', { ...blankProperties, commitInfo, title: 'Error', message: 'Looks like an error occurred!', status: error.statusCode ?? 500 }); + reply + .status(error.statusCode ?? 500) + .view('/error.hbs', { + ...blankProperties, + commitInfo, + title: 'Error', + message: 'Looks like an error occurred!', + status: error.statusCode ?? 500, + }); }); fastify.setNotFoundHandler((request, reply) => - reply.status(404).view('/error.hbs', { ...blankProperties, commitInfo, title: 'Not Found', message: 'Unable to find the requested page!', status: 404 }), + reply + .status(404) + .view('/error.hbs', { + ...blankProperties, + commitInfo, + title: 'Not Found', + message: 'Unable to find the requested page!', + status: 404, + }), ); // Start server @@ -68,12 +93,15 @@ const port = process.env.PORT ? Number.parseInt(process.env.PORT) : 3000; fastify.listen({ port, host: '0.0.0.0' }, (error) => { if (error) { - if ((error as FastifyError).code === 'EADDRINUSE') consola.error(`${chalk.red('[Startup error]:')} Port ${chalk.yellow(port)} is already in use!`); + if ((error as FastifyError).code === 'EADDRINUSE') + consola.error(`${chalk.red('[Startup error]:')} Port ${chalk.yellow(port)} is already in use!`); else consola.error(error); process.exit(1); // eslint-disable-line unicorn/no-process-exit } - consola.success(`${chalk.green('Server is now listening on port')} ${chalk.yellow(port)}${process.env.NODE_ENV === 'production' ? '' : ` (${chalk.blueBright(`http://localhost:${port}`)})`}`); + consola.success( + `${chalk.green('Server is now listening on port')} ${chalk.yellow(port)}${process.env.NODE_ENV === 'production' ? '' : ` (${chalk.blueBright(`http://localhost:${port}`)})`}`, + ); }); // Custom error/warning handlers diff --git a/src/public/data/audio-tracks.ts b/src/public/data/audio-tracks.ts index 9fede5e..08699e6 100644 --- a/src/public/data/audio-tracks.ts +++ b/src/public/data/audio-tracks.ts @@ -60,7 +60,11 @@ export const audioTracks: AudioCategory[] = [ { name: 'Let Them Eat Cake (Winter Island Theme) - Shinkonet', file: 'Let Them Eat Cake', duration: '3:28' }, { name: 'Hallow Hallow (Halloween Event) - Shinkonet', file: 'Hallow Hallow', duration: '3:58' }, { name: "Dark and Seedy (Dante's Theme) - Shinkonet", file: 'Dark and Seedy', duration: '5:57' }, - { name: "Dark and Seedy (Pre-Uprising Version) (Dante's Theme 2) - Shinkonet", file: 'Dark and Seedy (Pre-Uprising Version)', duration: '7:23' }, + { + name: "Dark and Seedy (Pre-Uprising Version) (Dante's Theme 2) - Shinkonet", + file: 'Dark and Seedy (Pre-Uprising Version)', + duration: '7:23', + }, { name: 'Breathless Encounter (Dante Uprising / Revolt Theme) - Shinkonet', file: 'Breathless Encounter', duration: '2:40' }, { name: 'Dwarven Mines - Shinkonet', file: 'Dwarven Mines', duration: '3:38' }, { name: 'Journey in the Sky (Spider Den) - Shinkonet', file: 'Journey in the Sky', duration: '6:16' }, @@ -111,7 +115,11 @@ export const audioTracks: AudioCategory[] = [ { name: 'Georgy Girl - The Seekers', file: 'Georgy Girl', duration: '2:22' }, { name: "Walkin' My Cat Named Dog - Norma Tanega", file: "Walkin' My Cat Named Dog", duration: '3:00' }, { name: 'Love Minus Zero/No Limit - Joan Baez', file: 'Love Minus Zero_No Limit', duration: '2:43' }, - { name: "The 59th Street Bridge Song (Feelin' Groovy) - Harpers Bizarre", file: 'The 59th Street Bridge Song', duration: '2:21' }, + { + name: "The 59th Street Bridge Song (Feelin' Groovy) - Harpers Bizarre", + file: 'The 59th Street Bridge Song', + duration: '2:21', + }, { name: 'If I Were A Carpenter - Bobby Darin', file: 'If I Were A Carpenter', duration: '2:21' }, { name: 'Hide Your Love Away - Barry McGuire with The Mamas & The Papas', file: 'Hide Your Love Away', duration: '2:47' }, { name: 'All My Trials - Dick & Dee Dee', file: 'All My Trials', duration: '2:54' }, @@ -159,8 +167,16 @@ export const audioTracks: AudioCategory[] = [ duration: '6:03', }, { name: 'No Name Jive (Side 2) - Casa Loma (Glen Gray)', file: 'No Name Jive', duration: '6:21' }, - { name: 'The RCA Victor Encyclopedia of Recorded Jazz, Album 1 (Side 1) - Assorted', file: 'RCA Victor Encyclopedia (Side 1)', duration: '15:06' }, - { name: 'The RCA Victor Encyclopedia of Recorded Jazz, Album 1 (Side 2) - Assorted', file: 'RCA Victor Encyclopedia (Side 2)', duration: '15:26' }, + { + name: 'The RCA Victor Encyclopedia of Recorded Jazz, Album 1 (Side 1) - Assorted', + file: 'RCA Victor Encyclopedia (Side 1)', + duration: '15:06', + }, + { + name: 'The RCA Victor Encyclopedia of Recorded Jazz, Album 1 (Side 2) - Assorted', + file: 'RCA Victor Encyclopedia (Side 2)', + duration: '15:26', + }, { name: 'Tommy Gwaltney Plays Great Jazz (Side A)', file: 'Tommy Gwaltney Plays Great Jazz (Side A)', duration: '18:10' }, { name: 'Tommy Gwaltney Plays Great Jazz (Side B)', file: 'Tommy Gwaltney Plays Great Jazz (Side B)', duration: '17:32' }, { name: "Louis Armstrong's Greatest Hits (Side 1)", file: "Louis Armstrong's Greatest Hits (Side 1)", duration: '27:01' }, @@ -223,7 +239,11 @@ export const audioTracks: AudioCategory[] = [ tracks: [ { name: 'Coconut Mall - Mario Kart Wii', file: 'Coconut Mall (MKW)', duration: '2:21' }, { name: 'Delfino Plaza - Super Mario Sunshine', file: 'Delfino Plaza (SMS)', duration: '2:57' }, - { name: 'Ground Theme (Super Bell Hill) - Super Mario 3D World', file: 'Ground Theme (Super Bell Hill) (SM3DW)', duration: '2:01' }, + { + name: 'Ground Theme (Super Bell Hill) - Super Mario 3D World', + file: 'Ground Theme (Super Bell Hill) (SM3DW)', + duration: '2:01', + }, { name: 'Overworld Theme - New Super Mario Bros. U', file: 'Overworld Theme (NSMBU)', duration: '2:55' }, { name: 'Overworld 1 - Super Mario Bros. 3', file: 'Overworld 1 (SMB3)', duration: '2:48' }, { name: 'Athletic - Super Mario Bros. 3', file: 'Athletic (SMB3)', duration: '1:09' }, @@ -287,7 +307,11 @@ export const audioTracks: AudioCategory[] = [ { name: 'Underworld - The Legend of Zelda (NES)', file: 'Underworld (Legend of Zelda, NES)', duration: '0:43' }, { name: 'Gerudo Valley - Ocarina of Time', file: 'Gerudo Valley (Ocarina of Time)', duration: '2:55' }, { name: "Overworld - The Legend of Zelda Link's Awakening (Switch)", file: "Overworld (Link's Awakening)", duration: '1:49' }, - { name: "Sword Search on Koholint Island - The Legend of Zelda Link's Awakening (Switch)", file: "Sword Search on Koholint Island (Link's Awakening)", duration: '2:41' }, + { + name: "Sword Search on Koholint Island - The Legend of Zelda Link's Awakening (Switch)", + file: "Sword Search on Koholint Island (Link's Awakening)", + duration: '2:41', + }, { name: 'Title Theme - The Wind Waker', file: 'Title Theme (Wind Waker)', duration: '2:01' }, { name: 'File Select - The Wind Waker', file: 'File Select (Wind Waker)', duration: '1:00' }, { name: 'Outset Island - The Wind Waker', file: 'Outset Island (Wind Waker)', duration: '2:05' }, diff --git a/src/public/data/pages-data.ts b/src/public/data/pages-data.ts index b380ed6..e719355 100644 --- a/src/public/data/pages-data.ts +++ b/src/public/data/pages-data.ts @@ -66,7 +66,10 @@ export const euroVariantImageAmounts: Record> = { }; export const euroCoins = { - types: ['1 cent', '2 cent', '5 cent', '10 cent', '20 cent', '50 cent', '1 euro', '2 euro'].map((type) => ({ name: type, code: type.replaceAll(' ', '-') })), + types: ['1 cent', '2 cent', '5 cent', '10 cent', '20 cent', '50 cent', '1 euro', '2 euro'].map((type) => ({ + name: type, + code: type.replaceAll(' ', '-'), + })), countries: [ 'Andorra', 'Austria', @@ -96,22 +99,150 @@ export const euroCoins = { }; export const minecraftColorCodes = [ - { color: 'Dark Red', colorName: 'dark_red', colorCode: '4', motdCode: '00A74', hexCode: 'aa0000', backgroundColor: 'aa0000', textColor: 'fafafa' }, - { color: 'Red', colorName: 'red', colorCode: 'c', motdCode: '00A7c', hexCode: 'ff5555', backgroundColor: 'ff5555', textColor: 'fafafa' }, - { color: 'Gold', colorName: 'gold', colorCode: '6', motdCode: '00A76', hexCode: 'ffaa00', backgroundColor: 'ffaa00', textColor: '000000' }, - { color: 'Yellow', colorName: 'yellow', colorCode: 'e', motdCode: '00A7e', hexCode: 'ffff55', backgroundColor: 'ffff55', textColor: '000000' }, - { color: 'Dark Green', colorName: 'dark_green', colorCode: '2', motdCode: '00A72', hexCode: '00aa00', backgroundColor: '00aa00', textColor: 'fafafa' }, - { color: 'Green', colorName: 'green', colorCode: 'a', motdCode: '00A7a', hexCode: '55ff55', backgroundColor: '55ff55', textColor: '000000' }, - { color: 'Aqua', colorName: 'aqua', colorCode: 'b', motdCode: '00A7b', hexCode: '55ffff', backgroundColor: '55ffff', textColor: '000000' }, - { color: 'Dark Aqua', colorName: 'dark_aqua', colorCode: '3', motdCode: '00A73', hexCode: '00aaaa', backgroundColor: '00aaaa', textColor: 'fafafa' }, - { color: 'Dark Blue', colorName: 'dark_blue', colorCode: '1', motdCode: '00A71', hexCode: '0000aa', backgroundColor: '0000aa', textColor: 'fafafa' }, - { color: 'Blue', colorName: 'blue', colorCode: '9', motdCode: '00A79', hexCode: '5555ff', backgroundColor: '5555ff', textColor: 'fafafa' }, - { color: 'Light Purple', colorName: 'light_purple', colorCode: 'd', motdCode: '00A7d', hexCode: 'ff55ff', backgroundColor: 'ff55ff', textColor: 'fafafa' }, - { color: 'Dark Purple', colorName: 'dark_purple', colorCode: '5', motdCode: '00A75', hexCode: 'aa00aa', backgroundColor: 'aa00aa', textColor: 'fafafa' }, - { color: 'White', colorName: 'white', colorCode: 'f', motdCode: '00A7f', hexCode: 'ffffff', backgroundColor: 'ffffff', textColor: '000000' }, - { color: 'Gray', colorName: 'gray', colorCode: '7', motdCode: '00A77', hexCode: 'aaaaaa', backgroundColor: 'aaaaaa', textColor: '000000' }, - { color: 'Dark Gray', colorName: 'dark_gray', colorCode: '8', motdCode: '00A78', hexCode: '555555', backgroundColor: '555555', textColor: 'fafafa' }, - { color: 'Black', colorName: 'black', colorCode: '0', motdCode: '00A70', hexCode: '000000', backgroundColor: '000000', textColor: 'fafafa' }, + { + color: 'Dark Red', + colorName: 'dark_red', + colorCode: '4', + motdCode: '00A74', + hexCode: 'aa0000', + backgroundColor: 'aa0000', + textColor: 'fafafa', + }, + { + color: 'Red', + colorName: 'red', + colorCode: 'c', + motdCode: '00A7c', + hexCode: 'ff5555', + backgroundColor: 'ff5555', + textColor: 'fafafa', + }, + { + color: 'Gold', + colorName: 'gold', + colorCode: '6', + motdCode: '00A76', + hexCode: 'ffaa00', + backgroundColor: 'ffaa00', + textColor: '000000', + }, + { + color: 'Yellow', + colorName: 'yellow', + colorCode: 'e', + motdCode: '00A7e', + hexCode: 'ffff55', + backgroundColor: 'ffff55', + textColor: '000000', + }, + { + color: 'Dark Green', + colorName: 'dark_green', + colorCode: '2', + motdCode: '00A72', + hexCode: '00aa00', + backgroundColor: '00aa00', + textColor: 'fafafa', + }, + { + color: 'Green', + colorName: 'green', + colorCode: 'a', + motdCode: '00A7a', + hexCode: '55ff55', + backgroundColor: '55ff55', + textColor: '000000', + }, + { + color: 'Aqua', + colorName: 'aqua', + colorCode: 'b', + motdCode: '00A7b', + hexCode: '55ffff', + backgroundColor: '55ffff', + textColor: '000000', + }, + { + color: 'Dark Aqua', + colorName: 'dark_aqua', + colorCode: '3', + motdCode: '00A73', + hexCode: '00aaaa', + backgroundColor: '00aaaa', + textColor: 'fafafa', + }, + { + color: 'Dark Blue', + colorName: 'dark_blue', + colorCode: '1', + motdCode: '00A71', + hexCode: '0000aa', + backgroundColor: '0000aa', + textColor: 'fafafa', + }, + { + color: 'Blue', + colorName: 'blue', + colorCode: '9', + motdCode: '00A79', + hexCode: '5555ff', + backgroundColor: '5555ff', + textColor: 'fafafa', + }, + { + color: 'Light Purple', + colorName: 'light_purple', + colorCode: 'd', + motdCode: '00A7d', + hexCode: 'ff55ff', + backgroundColor: 'ff55ff', + textColor: 'fafafa', + }, + { + color: 'Dark Purple', + colorName: 'dark_purple', + colorCode: '5', + motdCode: '00A75', + hexCode: 'aa00aa', + backgroundColor: 'aa00aa', + textColor: 'fafafa', + }, + { + color: 'White', + colorName: 'white', + colorCode: 'f', + motdCode: '00A7f', + hexCode: 'ffffff', + backgroundColor: 'ffffff', + textColor: '000000', + }, + { + color: 'Gray', + colorName: 'gray', + colorCode: '7', + motdCode: '00A77', + hexCode: 'aaaaaa', + backgroundColor: 'aaaaaa', + textColor: '000000', + }, + { + color: 'Dark Gray', + colorName: 'dark_gray', + colorCode: '8', + motdCode: '00A78', + hexCode: '555555', + backgroundColor: '555555', + textColor: 'fafafa', + }, + { + color: 'Black', + colorName: 'black', + colorCode: '0', + motdCode: '00A70', + hexCode: '000000', + backgroundColor: '000000', + textColor: 'fafafa', + }, ]; export const minecraftFormattingCodes = [ diff --git a/src/public/data/pages.ts b/src/public/data/pages.ts index 81c6eb7..1636b3b 100644 --- a/src/public/data/pages.ts +++ b/src/public/data/pages.ts @@ -1,4 +1,12 @@ -import { euroCoins, minecraftColorCodes, minecraftFormattingCodes, phoneticAlphabet, stateAbbreviations, textAbbreviations, toneIndicators } from './pages-data.js'; +import { + euroCoins, + minecraftColorCodes, + minecraftFormattingCodes, + phoneticAlphabet, + stateAbbreviations, + textAbbreviations, + toneIndicators, +} from './pages-data.js'; interface Script { link: string; @@ -66,12 +74,25 @@ type PreParsedPages = Record>; const preParsedPages: PreParsedPages = { tools: { 'base64-converter': { title: 'Base64 Encode/Decode', icon: 'code', description: 'Encode and decode to and from Base64 format' }, - 'base64-image-converter': { title: 'Base64 Image Encode/Decode', icon: 'file-image', description: 'Encode and decode images to and from Base64 format' }, + 'base64-image-converter': { + title: 'Base64 Image Encode/Decode', + icon: 'file-image', + description: 'Encode and decode images to and from Base64 format', + }, 'binary-converter': { title: 'Binary Converter', icon: 'binary', description: 'Convert to and from binary/octal/decimal/hex' }, 'binary-text': { title: 'Binary Text Converter', icon: 'file-binary', description: 'Convert to and from binary text' }, - 'browser-info': { title: 'Browser Info', icon: 'laptop', description: 'Shows basic information about your browser and operating system', additionalScripts: [imports.uaParser.script] }, + 'browser-info': { + title: 'Browser Info', + icon: 'laptop', + description: 'Shows basic information about your browser and operating system', + additionalScripts: [imports.uaParser.script], + }, calendar: { title: 'Calendar', icon: 'calendar', description: 'A simple calendar with a personal to-do list', toolbox: false }, - 'case-changer': { title: 'Case Changer', icon: 'font-case', description: 'Change a string to uppercase, lowercase, title case, or sentence case' }, + 'case-changer': { + title: 'Case Changer', + icon: 'font-case', + description: 'Change a string to uppercase, lowercase, title case, or sentence case', + }, 'color-info': { title: 'Color Information', icon: 'palette', @@ -88,16 +109,26 @@ const preParsedPages: PreParsedPages = { additionalScripts: [imports.odometer.script], additionalStyles: [imports.odometer.style], }, - 'currency-exchange': { title: 'Currency Exchange Rates', icon: 'coins', description: 'Shows information for various currency conversions', keywords: ['usd', 'money'] }, + 'currency-exchange': { + title: 'Currency Exchange Rates', + icon: 'coins', + description: 'Shows information for various currency conversions', + keywords: ['usd', 'money'], + }, 'image-converter': { title: 'Image Converter', icon: 'file-image', description: 'Convert images to and from various formats' }, 'ip-info': { title: 'IP Info', icon: 'router', - description: 'Displays your current IP address and IP provided information', + description: + 'Displays your current IP address and IP provided information', toolboxTitle: 'IP Info', keywords: ['internet', 'isp'], }, - 'keycode-info': { title: 'Keycode Information', icon: 'keyboard', description: 'Click any keyboard key to get information about it' }, + 'keycode-info': { + title: 'Keycode Information', + icon: 'keyboard', + description: 'Click any keyboard key to get information about it', + }, 'length-converter': { title: 'Length Converter', icon: 'ruler-horizontal', @@ -110,7 +141,11 @@ const preParsedPages: PreParsedPages = { description: 'Alphabetize, sort in numerical order, randomize, and reverse lists', }, 'morse-code-converter': { title: 'Morse Code Converter', icon: 'message-dots', description: 'Convert to and from Morse code' }, - 'quick-copy': { title: 'Quick Copy', icon: 'clipboard', description: 'Clipboard display, clear clipboard button, and useful characters' }, + 'quick-copy': { + title: 'Quick Copy', + icon: 'clipboard', + description: 'Clipboard display, clear clipboard button, and useful characters', + }, 'radical-simplifier': { title: 'Radical Simplifier', icon: 'square-root-variable', @@ -126,7 +161,11 @@ const preParsedPages: PreParsedPages = { additionalStyles: [imports.odometer.style], }, 'regex-tester': { title: 'Regex Tester', icon: 'highlighter', description: 'Test and run regex', keywords: ['regular expression'] }, - 'roman-converter': { title: 'Roman Numeral Converter', icon: 'i', description: 'Convert to and from roman numerals, with high value number support' }, + 'roman-converter': { + title: 'Roman Numeral Converter', + icon: 'i', + description: 'Convert to and from roman numerals, with high value number support', + }, 'scientific-notation-converter': { title: 'Scientific Notation Converter', icon: 'e', @@ -137,8 +176,10 @@ const preParsedPages: PreParsedPages = { 'svg-to-png': { title: 'SVG to PNG', icon: 'file-image', - description: 'Convert SVG files to PNG images', - toolboxTitle: 'SVG to PNG Converter', + description: + 'Convert SVG files to PNG images', + toolboxTitle: + 'SVG to PNG Converter', }, 'temperature-converter': { title: 'Temperature Converter', @@ -147,24 +188,60 @@ const preParsedPages: PreParsedPages = { additionalScripts: [imports.mathJs.script], }, 'tides-info': { title: 'Tides Info', icon: 'water', description: 'Shows current tidal information and for the next 7 days' }, - 'time-converter': { title: 'Time Converter', icon: 'hourglass-clock', description: 'Convert between units of time', additionalScripts: [imports.mathJs.script] }, + 'time-converter': { + title: 'Time Converter', + icon: 'hourglass-clock', + description: 'Convert between units of time', + additionalScripts: [imports.mathJs.script], + }, time: { title: 'Time', icon: 'clock', description: 'Displays the current time and date, as well as detailed time information' }, - 'unix-time-converter': { title: 'UNIX Time Converter', icon: 'calendar-clock', description: 'Convert from date strings to UNIX time (in seconds or milliseconds), and back' }, - 'weather-info': { title: 'Weather Info', icon: 'cloud-sun-rain', description: 'Shows current weather information and alerts', additionalScripts: [imports.suncalc.script] }, - 'word-counter': { title: 'Word Counter', icon: 'file-word', description: 'Displays total characters, words, sentences, lines, and paragraphs in a piece of text' }, + 'unix-time-converter': { + title: 'UNIX Time Converter', + icon: 'calendar-clock', + description: 'Convert from date strings to UNIX time (in seconds or milliseconds), and back', + }, + 'weather-info': { + title: 'Weather Info', + icon: 'cloud-sun-rain', + description: 'Shows current weather information and alerts', + additionalScripts: [imports.suncalc.script], + }, + 'word-counter': { + title: 'Word Counter', + icon: 'file-word', + description: 'Displays total characters, words, sentences, lines, and paragraphs in a piece of text', + }, }, info: { - 'coins-info': { title: 'Coins Info', icon: 'coin', description: 'Information about all coins that have been produced for circulation in the United States' }, + 'coins-info': { + title: 'Coins Info', + icon: 'coin', + description: 'Information about all coins that have been produced for circulation in the United States', + }, 'coins-list': { title: 'Coins List', icon: 'coins', description: 'A list of coins I have and need' }, - 'euro-coins': { title: 'Euro Coins', icon: 'euro-sign', description: 'A list of all euro coin designs', additionalData: { euroCoins } }, - 'foreign-collections-list': { title: 'Foreign Collection List', icon: 'earth-americas', description: 'A list of countries, territories, etc. I have coins, banknotes, and stamps from' }, + 'euro-coins': { + title: 'Euro Coins', + icon: 'euro-sign', + description: 'A list of all euro coin designs', + additionalData: { euroCoins }, + }, + 'foreign-collections-list': { + title: 'Foreign Collection List', + icon: 'earth-americas', + description: 'A list of countries, territories, etc. I have coins, banknotes, and stamps from', + }, 'minecraft-codes': { title: 'Minecraft Formatting Codes', icon: 'gamepad-modern', description: 'A list of all Minecraft color and formatting codes', additionalData: { minecraftColorCodes, minecraftFormattingCodes }, }, - 'phonetic-alphabet': { title: 'NATO Phonetic Alphabet', icon: 'arrow-down-a-z', description: 'A list of words used as a replacement for letters', additionalData: { phoneticAlphabet } }, + 'phonetic-alphabet': { + title: 'NATO Phonetic Alphabet', + icon: 'arrow-down-a-z', + description: 'A list of words used as a replacement for letters', + additionalData: { phoneticAlphabet }, + }, 'queer-calendar': { title: 'Queer Calendar', icon: 'calendar-days', @@ -172,17 +249,37 @@ const preParsedPages: PreParsedPages = { toolboxTitle: 'Queer Calendar', }, - 'state-abbreviations': { title: 'State Abbreviations', icon: 'map-location-dot', description: 'A list of all state abbreviations', additionalData: { stateAbbreviations } }, - 'text-abbreviations': { title: 'Text Abbreviations', icon: 'text', description: 'A list of common abbreviations used in text', additionalData: { textAbbreviations } }, - 'tone-indicators': { title: 'Tone Indicators', icon: 'slash-forward', description: 'A list of common tone indicators', additionalData: { toneIndicators } }, + 'state-abbreviations': { + title: 'State Abbreviations', + icon: 'map-location-dot', + description: 'A list of all state abbreviations', + additionalData: { stateAbbreviations }, + }, + 'text-abbreviations': { + title: 'Text Abbreviations', + icon: 'text', + description: 'A list of common abbreviations used in text', + additionalData: { textAbbreviations }, + }, + 'tone-indicators': { + title: 'Tone Indicators', + icon: 'slash-forward', + description: 'A list of common tone indicators', + additionalData: { toneIndicators }, + }, }, fun: { 'astronomy-picture': { title: 'Astronomy Picture of the Day', icon: 'planet-ringed', - description: 'View NASA\'s Astronomy Picture of the Day (APOD)', + description: + 'View NASA\'s Astronomy Picture of the Day (APOD)', + }, + 'eight-ball': { + title: 'Magic Eight Ball', + icon: 'pool-8-ball', + description: 'Ask the Magic Eight Ball a question and receive an answer!', }, - 'eight-ball': { title: 'Magic Eight Ball', icon: 'pool-8-ball', description: 'Ask the Magic Eight Ball a question and receive an answer!' }, 'mp3-player': { title: 'MP3 Player', icon: 'music', description: 'Play some music!', toolbox: false }, 'random-fact': { title: 'Random Fact', icon: 'circle-info', description: 'Generate a random fact' }, 'random-joke': { title: 'Random Joke', icon: 'face-grin-tears', description: 'Generate a random joke' }, diff --git a/src/public/scripts/external/odometer.js b/src/public/scripts/external/odometer.js index ecc9153..3aff98b 100644 --- a/src/public/scripts/external/odometer.js +++ b/src/public/scripts/external/odometer.js @@ -39,7 +39,10 @@ RIBBON_HTML = '' + VALUE_HTML + ''; - DIGIT_HTML = '8' + RIBBON_HTML + ''; + DIGIT_HTML = + '8' + + RIBBON_HTML + + ''; FORMAT_MARK_HTML = ''; @@ -66,9 +69,16 @@ transitionCheckStyles = document.createElement('div').style; TRANSITION_SUPPORT = - transitionCheckStyles.transition != null || transitionCheckStyles.webkitTransition != null || transitionCheckStyles.mozTransition != null || transitionCheckStyles.oTransition != null; + transitionCheckStyles.transition != null || + transitionCheckStyles.webkitTransition != null || + transitionCheckStyles.mozTransition != null || + transitionCheckStyles.oTransition != null; - requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame; + requestAnimationFrame = + window.requestAnimationFrame || + window.mozRequestAnimationFrame || + window.webkitRequestAnimationFrame || + window.msRequestAnimationFrame; MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; @@ -99,7 +109,9 @@ now = function () { var _ref, _ref1; - return (_ref = (_ref1 = window.performance) != null ? (typeof _ref1.now === 'function' ? _ref1.now() : void 0) : void 0) != null ? _ref : +new Date(); + return (_ref = (_ref1 = window.performance) != null ? (typeof _ref1.now === 'function' ? _ref1.now() : void 0) : void 0) != null + ? _ref + : +new Date(); }; round = function (val, precision) { diff --git a/src/public/scripts/functions.ts b/src/public/scripts/functions.ts index 14e081d..016102f 100644 --- a/src/public/scripts/functions.ts +++ b/src/public/scripts/functions.ts @@ -15,7 +15,11 @@ declare function toastify(options: { text: string; duration: number; position: s * Update emojis on the loaded content. */ export function twemojiUpdate() { - (twemoji as Twemoji).parse(document.body, { base: 'https://raw.githubusercontent.com/jdecked/twemoji/main/assets/', folder: 'svg', ext: '.svg' }); + (twemoji as Twemoji).parse(document.body, { + base: 'https://raw.githubusercontent.com/jdecked/twemoji/main/assets/', + folder: 'svg', + ext: '.svg', + }); } /** @@ -64,7 +68,11 @@ export function showResult(element: HTMLElement, type: 'success' | 'error' | 'wa * @param type The type of icon to show. * @param arrowType The direction of the arrow (defaults to `right`). */ -export function updateArrow(element: HTMLElement, type: 'success' | 'error' | 'warning' | 'info' | 'reset', arrowType: 'up' | 'down' | 'right' | 'left' = 'right') { +export function updateArrow( + element: HTMLElement, + type: 'success' | 'error' | 'warning' | 'info' | 'reset', + arrowType: 'up' | 'down' | 'right' | 'left' = 'right', +) { element.style.color = `var(--${type === 'reset' ? 'neutral' : type}-color-300)`; element.className = `fa-solid fa-arrow-${arrowType}`; } @@ -114,7 +122,12 @@ export function copyText(element: HTMLButtonElement, text: string) { * @param input String to be modified. */ export function escapeHtml(input: string) { - return input.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"').replaceAll("'", '''); + return input + .replaceAll('&', '&') + .replaceAll('<', '<') + .replaceAll('>', '>') + .replaceAll('"', '"') + .replaceAll("'", '''); } /** diff --git a/src/public/scripts/global.ts b/src/public/scripts/global.ts index 019eed9..0f23cec 100644 --- a/src/public/scripts/global.ts +++ b/src/public/scripts/global.ts @@ -89,7 +89,8 @@ searchInput.addEventListener('input', () => { searchInput.addEventListener('keydown', (event) => { if (event.key === 'Enter') { - const result = (document.querySelector('.search-box .search-result-selected') ?? document.querySelector('.search-box a')) as HTMLAnchorElement | null; + const result = (document.querySelector('.search-box .search-result-selected') ?? + document.querySelector('.search-box a')) as HTMLAnchorElement | null; if (result) window.open(result.href, event.metaKey ? '_blank' : '_self'); } else if (event.key === 'Escape') { searchInput.value = ''; @@ -130,7 +131,9 @@ document.addEventListener('keydown', (event) => { if (!event.altKey) return; if ( document.activeElement && - (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA' || (document.activeElement as HTMLElement).contentEditable === 'plaintext-only') + (document.activeElement.tagName === 'INPUT' || + document.activeElement.tagName === 'TEXTAREA' || + (document.activeElement as HTMLElement).contentEditable === 'plaintext-only') ) return; @@ -208,9 +211,11 @@ document.querySelector('#close-shortcuts')!.addEventListener('click', () => { }); document.addEventListener('click', (event) => { - if (event.target === shortcutsModal) addAnimation(shortcutsModal, 'animate-out-top').then(() => (shortcutsModal.style.display = 'none')); + if (event.target === shortcutsModal) + addAnimation(shortcutsModal, 'animate-out-top').then(() => (shortcutsModal.style.display = 'none')); }); document.addEventListener('keydown', (event) => { - if (event.code === 'Escape' && shortcutsModal.style.display === 'block') addAnimation(shortcutsModal, 'animate-out-top').then(() => (shortcutsModal.style.display = 'none')); + if (event.code === 'Escape' && shortcutsModal.style.display === 'block') + addAnimation(shortcutsModal, 'animate-out-top').then(() => (shortcutsModal.style.display = 'none')); }); diff --git a/src/public/scripts/pages/fun/astronomy-picture.ts b/src/public/scripts/pages/fun/astronomy-picture.ts index 4c21350..ff944e5 100644 --- a/src/public/scripts/pages/fun/astronomy-picture.ts +++ b/src/public/scripts/pages/fun/astronomy-picture.ts @@ -97,7 +97,9 @@ async function fetchApod(providedYear: number, providedMonth: number, providedDa resultElement.innerHTML = 'Pulling data from the cosmos '; const { success, error, source, date, title, credit, explanation, media } = (await ( - await fetch(`/astronomy-picture/${providedYear}/${providedMonth.toString().padStart(2, '0')}/${providedDate.toString().padStart(2, '0')}`) + await fetch( + `/astronomy-picture/${providedYear}/${providedMonth.toString().padStart(2, '0')}/${providedDate.toString().padStart(2, '0')}`, + ) ).json()) as FullApodEntry; if (!success && error) return showAlert(error, 'error'); @@ -118,7 +120,9 @@ async function fetchApod(providedYear: number, providedMonth: number, providedDa imageElement.parentElement!.addEventListener('mouseout', () => (imageElement.src = media.src)); } - for (const linkElement of document.querySelectorAll('#apod-explanation a[href^="https://apod.nasa.gov/apod/ap"]') as NodeListOf) + for (const linkElement of document.querySelectorAll( + '#apod-explanation a[href^="https://apod.nasa.gov/apod/ap"]', + ) as NodeListOf) linkElement.addEventListener('click', (event) => { if (event.metaKey) return; diff --git a/src/public/scripts/pages/fun/mp3-player.ts b/src/public/scripts/pages/fun/mp3-player.ts index 1ee9e4a..28ac235 100644 --- a/src/public/scripts/pages/fun/mp3-player.ts +++ b/src/public/scripts/pages/fun/mp3-player.ts @@ -111,7 +111,8 @@ for (const category of audioTracks) { for (const [index, track] of category.tracks.entries()) createTrackItem(category, index, track); } -for (const playButton of document.querySelectorAll('.playlist-section-title > i.player-icon')) playButton.addEventListener('click', () => shuffleSection(playButton.parentElement!.id)); +for (const playButton of document.querySelectorAll('.playlist-section-title > i.player-icon')) + playButton.addEventListener('click', () => shuffleSection(playButton.parentElement!.id)); let audioCategory = 'general'; let audioIndex = 0; @@ -371,7 +372,13 @@ function toggleMute() { } document.addEventListener('keydown', (event) => { - if ((document.activeElement && (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA')) || event.ctrlKey || event.metaKey || event.altKey) return; // eslint-disable-line @typescript-eslint/prefer-nullish-coalescing + if ( + (document.activeElement && (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA')) || + event.ctrlKey || + event.metaKey || + event.altKey + ) + return; // eslint-disable-line @typescript-eslint/prefer-nullish-coalescing if (event.code === 'Space') { event.preventDefault(); diff --git a/src/public/scripts/pages/fun/random-joke.ts b/src/public/scripts/pages/fun/random-joke.ts index 069457e..6de4c11 100644 --- a/src/public/scripts/pages/fun/random-joke.ts +++ b/src/public/scripts/pages/fun/random-joke.ts @@ -13,7 +13,9 @@ async function fetchJoke() { const response = await fetch('https://v2.jokeapi.dev/joke/Miscellaneous,Pun?safe-mode'); const data = (await response.json()) as { joke?: string; setup: string; delivery: string }; - jokeOutput.innerHTML = data.joke ? data.joke.replaceAll('\n', '
') : `${data.setup.replaceAll('\n', '
')}
${data.delivery.replaceAll('\n', '
')}`; + jokeOutput.innerHTML = data.joke + ? data.joke.replaceAll('\n', '
') + : `${data.setup.replaceAll('\n', '
')}
${data.delivery.replaceAll('\n', '
')}`; } fetchJoke(); // eslint-disable-line unicorn/prefer-top-level-await diff --git a/src/public/scripts/pages/info/coins-info.ts b/src/public/scripts/pages/info/coins-info.ts index 682ebf3..c0d353d 100644 --- a/src/public/scripts/pages/info/coins-info.ts +++ b/src/public/scripts/pages/info/coins-info.ts @@ -166,7 +166,8 @@ function loadCoinDesignInfo(denomination: CoinDenomination variant.year === coin.year && variant.mintMark === coin.mintMark)) continue; + if (variantTotalsAlreadyAdded.some((variant) => variant.year === coin.year && variant.mintMark === coin.mintMark)) + continue; else variantTotalsAlreadyAdded.push(coin); total += coin.mintage; @@ -186,7 +187,8 @@ function loadCoinDesignInfo(denomination: CoinDenomination { if (!design.composition) return null; - if ('amounts' in design.composition) return design.composition.amounts.map((entry) => formatComposition(entry.value, entry.type)).join(', '); + if ('amounts' in design.composition) + return design.composition.amounts.map((entry) => formatComposition(entry.value, entry.type)).join(', '); else { const listElement = document.createElement('ul'); @@ -279,7 +281,8 @@ function loadCoinDesignInfo(denomination: CoinDenomination { event.altKey || event.metaKey || (document.activeElement && - (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA' || (document.activeElement as HTMLElement).contentEditable === 'plaintext-only')) + (document.activeElement.tagName === 'INPUT' || + document.activeElement.tagName === 'TEXTAREA' || + (document.activeElement as HTMLElement).contentEditable === 'plaintext-only')) ) return; diff --git a/src/public/scripts/pages/info/coins-list.ts b/src/public/scripts/pages/info/coins-list.ts index 4efaa2a..bdc437a 100644 --- a/src/public/scripts/pages/info/coins-list.ts +++ b/src/public/scripts/pages/info/coins-list.ts @@ -67,14 +67,21 @@ let coinsData: Record>[]; + const unindexedCoinsData = (await (await fetch(`/coins-list?password=${passwordInput.dataset.input!}`)).json()) as CoinDenomination< + CoinDesign + >[]; coinsData = Object.fromEntries( unindexedCoinsData.map((denomination) => [ denomination.id, { ...denomination, - designs: Object.fromEntries(denomination.designs.map((design) => [design.id, { ...design, coins: new Map(design.coins.map((coin) => [coin.id.toString(), coin])) }])), + designs: Object.fromEntries( + denomination.designs.map((design) => [ + design.id, + { ...design, coins: new Map(design.coins.map((coin) => [coin.id.toString(), coin])) }, + ]), + ), }, ]), ); @@ -118,11 +125,13 @@ async function loadCoinsList() { if (showAllDesignsButton.dataset.expanded === 'true') { showAllDesignsButton.dataset.expanded = 'false'; showAllDesignsButton.textContent = 'Show all designs'; - for (const button of document.querySelectorAll('.coin-denomination-expand') as NodeListOf) if (button.dataset.expanded === 'true') button.click(); + for (const button of document.querySelectorAll('.coin-denomination-expand') as NodeListOf) + if (button.dataset.expanded === 'true') button.click(); } else { showAllDesignsButton.dataset.expanded = 'true'; showAllDesignsButton.textContent = 'Hide all designs'; - for (const button of document.querySelectorAll('.coin-denomination-expand') as NodeListOf) if (button.dataset.expanded === 'false') button.click(); + for (const button of document.querySelectorAll('.coin-denomination-expand') as NodeListOf) + if (button.dataset.expanded === 'false') button.click(); } }); @@ -216,7 +225,16 @@ async function loadCoinsList() { toggleNeedsUpgradeCoinsButton.append('Hide coins ', needingUpgradeText); - buttonsDiv.append(reloadButton, showAllDesignsButton, ' | ', toggleUnobtainedSectionsButton, ' | ', toggleMissingCoinsButton, toggleObtainedCoinsButton, toggleNeedsUpgradeCoinsButton); + buttonsDiv.append( + reloadButton, + showAllDesignsButton, + ' | ', + toggleUnobtainedSectionsButton, + ' | ', + toggleMissingCoinsButton, + toggleObtainedCoinsButton, + toggleNeedsUpgradeCoinsButton, + ); coinsList.append(buttonsDiv); @@ -224,7 +242,9 @@ async function loadCoinsList() { if (!event.altKey) return; if ( document.activeElement && - (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA' || (document.activeElement as HTMLElement).contentEditable === 'plaintext-only') + (document.activeElement.tagName === 'INPUT' || + document.activeElement.tagName === 'TEXTAREA' || + (document.activeElement as HTMLElement).contentEditable === 'plaintext-only') ) return; @@ -255,7 +275,8 @@ async function loadCoinsList() { for (const denomination of unindexedCoinsData) { const coinDenominationDiv = document.createElement('div'); coinDenominationDiv.classList.add('coin-denomination'); - if (denomination.designs.every((design) => design.coins.every((coin) => !coin.obtained))) coinDenominationDiv.dataset.noneObtained = 'true'; + if (denomination.designs.every((design) => design.coins.every((coin) => !coin.obtained))) + coinDenominationDiv.dataset.noneObtained = 'true'; coinDenominationDiv.textContent = denomination.name; const lastCoinDesign = denomination.designs.at(-1)!; @@ -370,7 +391,9 @@ async function loadCoinsList() { const coinDesignCoins = [...coinsData[denomination.id].designs[design.id].coins.values()]; - const year = coinDesignCoins.at(-1)?.year ? (Number.parseInt(coinDesignCoins.at(-1)!.year!) + 1).toString() : new Date().getFullYear().toString(); + const year = coinDesignCoins.at(-1)?.year + ? (Number.parseInt(coinDesignCoins.at(-1)!.year!) + 1).toString() + : new Date().getFullYear().toString(); let id: string; do id = Math.floor(Math.random() * 9_000_000_000 + 1_000_000_000).toString(); @@ -467,7 +490,11 @@ function generateCoinRow(denomination: CoinDenomination>, desig const mintMarkCell = document.createElement('td'); const tooltipSpan = document.createElement('span'); tooltipSpan.classList.add('tooltip-bottom'); - tooltipSpan.dataset.tooltip = coin.mintMark ? (coin.mintMark in mintMarks ? `Minted in ${mintMarks[coin.mintMark]}` : 'Unknown') : `Likely minted in ${mintMarks.P}`; + tooltipSpan.dataset.tooltip = coin.mintMark + ? coin.mintMark in mintMarks + ? `Minted in ${mintMarks[coin.mintMark]}` + : 'Unknown' + : `Likely minted in ${mintMarks.P}`; tooltipSpan.textContent = coin.mintMark ?? 'None'; tooltipSpan.contentEditable = 'plaintext-only'; tooltipSpan.addEventListener('focus', () => { @@ -491,7 +518,9 @@ function generateCoinRow(denomination: CoinDenomination>, desig if (tooltipSpan.textContent === (coinsData[denomination.id].designs[design.id].coins.get(coin.id)!.mintMark ?? 'None')) return; - addCoinChangeEntry(coinsData[denomination.id].designs[design.id].coins.get(coin.id)!, design.name, 'mint mark', { mintMark: tooltipSpan.textContent }); + addCoinChangeEntry(coinsData[denomination.id].designs[design.id].coins.get(coin.id)!, design.name, 'mint mark', { + mintMark: tooltipSpan.textContent, + }); coinsData[denomination.id].designs[design.id].coins.get(coin.id)!.mintMark = newValue; @@ -510,7 +539,9 @@ function generateCoinRow(denomination: CoinDenomination>, desig mintageCell.classList.remove('mintage-for-all-varieties'); }); mintageCell.addEventListener('blur', async () => { - const mintageNumber = mintageCell.textContent ? Number.parseInt(mintageCell.textContent.replaceAll(',', '').replace(/ (all)$/, '')) : null; + const mintageNumber = mintageCell.textContent + ? Number.parseInt(mintageCell.textContent.replaceAll(',', '').replace(/ (all)$/, '')) + : null; let mintageForAllVarieties: boolean | null | undefined = mintageCell.textContent?.endsWith(' (all)'); if (!mintageForAllVarieties) mintageForAllVarieties = null; @@ -518,7 +549,9 @@ function generateCoinRow(denomination: CoinDenomination>, desig if (mintageForAllVarieties) mintageCell.classList.add('mintage-for-all-varieties'); if ((mintageNumber ?? '') !== (coinsData[denomination.id].designs[design.id].coins.get(coin.id)!.mintage ?? '')) { - addCoinChangeEntry(coinsData[denomination.id].designs[design.id].coins.get(coin.id)!, design.name, 'mintage', { mintage: mintageNumber }); + addCoinChangeEntry(coinsData[denomination.id].designs[design.id].coins.get(coin.id)!, design.name, 'mintage', { + mintage: mintageNumber, + }); coinsData[denomination.id].designs[design.id].coins.get(coin.id)!.mintage = mintageNumber; @@ -526,9 +559,14 @@ function generateCoinRow(denomination: CoinDenomination>, desig } if (mintageForAllVarieties !== (coinsData[denomination.id].designs[design.id].coins.get(coin.id)!.mintageForAllVarieties ?? null)) { - addCoinChangeEntry(coinsData[denomination.id].designs[design.id].coins.get(coin.id)!, design.name, 'mintage "for all varieties"', { - mintageForAllVarieties: mintageForAllVarieties ?? false, - }); + addCoinChangeEntry( + coinsData[denomination.id].designs[design.id].coins.get(coin.id)!, + design.name, + 'mintage "for all varieties"', + { + mintageForAllVarieties: mintageForAllVarieties ?? false, + }, + ); coinsData[denomination.id].designs[design.id].coins.get(coin.id)!.mintageForAllVarieties = mintageForAllVarieties; @@ -543,9 +581,12 @@ function generateCoinRow(denomination: CoinDenomination>, desig specificationCell.contentEditable = 'plaintext-only'; specificationCell.textContent = coin.specification ?? ''; specificationCell.addEventListener('blur', async () => { - if (specificationCell.textContent === (coinsData[denomination.id].designs[design.id].coins.get(coin.id)!.specification ?? '')) return; + if (specificationCell.textContent === (coinsData[denomination.id].designs[design.id].coins.get(coin.id)!.specification ?? '')) + return; - addCoinChangeEntry(coinsData[denomination.id].designs[design.id].coins.get(coin.id)!, design.name, 'specification', { specification: specificationCell.textContent }); + addCoinChangeEntry(coinsData[denomination.id].designs[design.id].coins.get(coin.id)!, design.name, 'specification', { + specification: specificationCell.textContent, + }); coinsData[denomination.id].designs[design.id].coins.get(coin.id)!.specification = specificationCell.textContent! || null; @@ -569,9 +610,15 @@ function generateCoinRow(denomination: CoinDenomination>, desig specificationEditor.textContent = coin.specification; specificationEditor.contentEditable = 'plaintext-only'; specificationEditor.addEventListener('blur', async () => { - if (specificationEditor.textContent === (coinsData[denomination.id].designs[design.id].coins.get(coin.id)!.specification ?? '')) return; + if ( + specificationEditor.textContent === + (coinsData[denomination.id].designs[design.id].coins.get(coin.id)!.specification ?? '') + ) + return; - addCoinChangeEntry(coinsData[denomination.id].designs[design.id].coins.get(coin.id)!, design.name, 'specification', { specification: specificationEditor.textContent! }); + addCoinChangeEntry(coinsData[denomination.id].designs[design.id].coins.get(coin.id)!, design.name, 'specification', { + specification: specificationEditor.textContent!, + }); coinsData[denomination.id].designs[design.id].coins.get(coin.id)!.specification = specificationEditor.textContent! || null; @@ -776,7 +823,13 @@ async function addCoin(denominationId: string, designId: string, coinYear: strin * @param changes The changes that were made. * @param changeText The text to display for the change (if `changes` is not provided). */ -function addCoinChangeEntry(coinData: PartialNullable, designName: string, type?: string, changes?: PartialNullable, changeText?: string) { +function addCoinChangeEntry( + coinData: PartialNullable, + designName: string, + type?: string, + changes?: PartialNullable, + changeText?: string, +) { const { year, mintMark, specification } = coinData as Coin; if (changeHistory.querySelectorAll('li').length === 0) changeHistory.innerHTML = ''; @@ -828,7 +881,9 @@ if (password) { // Add functionality to data exporter exportDataButton.addEventListener('click', async () => { - const coinsData = (await (await fetch(`/coins-list?password=${passwordInput.dataset.input!}`)).json()) as CoinDenomination>[] & { error?: string }; + const coinsData = (await (await fetch(`/coins-list?password=${passwordInput.dataset.input!}`)).json()) as CoinDenomination< + CoinDesign + >[] & { error?: string }; if (coinsData.error) return showAlert(coinsData.error, 'error'); diff --git a/src/public/scripts/pages/info/foreign-collections-list.ts b/src/public/scripts/pages/info/foreign-collections-list.ts index a1b5061..4b600bd 100644 --- a/src/public/scripts/pages/info/foreign-collections-list.ts +++ b/src/public/scripts/pages/info/foreign-collections-list.ts @@ -48,7 +48,9 @@ let collectionData: ForeignCollectionsList; * Load the coins list. */ async function loadCollectionList() { - collectionData = (await (await fetch(`/foreign-collections-list?password=${passwordInput.dataset.input!}`)).json()) as ForeignCollectionsList; + collectionData = (await ( + await fetch(`/foreign-collections-list?password=${passwordInput.dataset.input!}`) + ).json()) as ForeignCollectionsList; collectionsListMessage.style.display = 'none'; collectionsList.style.display = 'block'; @@ -68,7 +70,12 @@ async function loadCollectionList() { await fetch('/foreign-collections-list-add-entry', { method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ name: 'Unknown Entry', type: 'Unknown Type', data: { coins: false, banknotes: false, stamps: false }, password: passwordInput.dataset.input }), + body: JSON.stringify({ + name: 'Unknown Entry', + type: 'Unknown Type', + data: { coins: false, banknotes: false, stamps: false }, + password: passwordInput.dataset.input, + }), }) ).json()) as { error?: string; data: ForeignCollectionsList }; @@ -113,7 +120,13 @@ function reloadTableData() { await fetch('/foreign-collections-list-edit', { method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ id: entry.id, name: nameCell.textContent, type: entry.type, data: entry.data, password: passwordInput.dataset.input }), + body: JSON.stringify({ + id: entry.id, + name: nameCell.textContent, + type: entry.type, + data: entry.data, + password: passwordInput.dataset.input, + }), }) ).json()) as { error?: string; data: ForeignCollectionsList }; @@ -144,7 +157,13 @@ function reloadTableData() { await fetch('/foreign-collections-list-edit', { method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ id: entry.id, name: entry.name, type: typeCell.textContent, data: entry.data, password: passwordInput.dataset.input }), + body: JSON.stringify({ + id: entry.id, + name: entry.name, + type: typeCell.textContent, + data: entry.data, + password: passwordInput.dataset.input, + }), }) ).json()) as { error?: string; data: ForeignCollectionsList }; @@ -220,7 +239,13 @@ function reloadTableData() { await fetch('/foreign-collections-list-edit', { method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ id: entry.id, name: entry.name, type: entry.type, data: sortedData, password: passwordInput.dataset.input }), + body: JSON.stringify({ + id: entry.id, + name: entry.name, + type: entry.type, + data: sortedData, + password: passwordInput.dataset.input, + }), }) ).json()) as { error?: string; data: ForeignCollectionsList }; @@ -248,7 +273,8 @@ function reloadTableData() { * Disables all elements in the table. */ function disableElements() { - for (const element of collectionsListTableBody.querySelectorAll('[contenteditable]')) (element as HTMLElement).contentEditable = 'false'; + for (const element of collectionsListTableBody.querySelectorAll('[contenteditable]')) + (element as HTMLElement).contentEditable = 'false'; for (const input of collectionsListTableBody.querySelectorAll('input')) input.disabled = true; newRowMessage.dataset.disabled = 'true'; } @@ -277,7 +303,9 @@ if (password) { // Add functionality to data exporter exportDataButton.addEventListener('click', async () => { - const coinsData = (await (await fetch(`/foreign-collections-list?password=${passwordInput.dataset.input!}`)).json()) as ForeignCollectionsList & { error?: string }; + const coinsData = (await ( + await fetch(`/foreign-collections-list?password=${passwordInput.dataset.input!}`) + ).json()) as ForeignCollectionsList & { error?: string }; if (coinsData.error) return showAlert(coinsData.error, 'error'); diff --git a/src/public/scripts/pages/tools/base64-image-converter.ts b/src/public/scripts/pages/tools/base64-image-converter.ts index 03b8a4b..387c06b 100644 --- a/src/public/scripts/pages/tools/base64-image-converter.ts +++ b/src/public/scripts/pages/tools/base64-image-converter.ts @@ -111,7 +111,10 @@ function encode() { encodedResult.value = reader.result as string; encodedCopyResultButton.disabled = false; encodedOpenResultButton.disabled = false; - encodedOpenResultLink.href = createBase64ObjectUrl((reader.result as string).replaceAll(/data:image\/.*?;base64,/g, ''), 'image/' + imageType); + encodedOpenResultLink.href = createBase64ObjectUrl( + (reader.result as string).replaceAll(/data:image\/.*?;base64,/g, ''), + 'image/' + imageType, + ); showResult(encodeButton, 'success'); } else { showAlert('Unsupported file type!', 'error'); diff --git a/src/public/scripts/pages/tools/binary-converter.ts b/src/public/scripts/pages/tools/binary-converter.ts index 0849193..3490fa2 100644 --- a/src/public/scripts/pages/tools/binary-converter.ts +++ b/src/public/scripts/pages/tools/binary-converter.ts @@ -149,7 +149,8 @@ function addBinarySpacers(binary: string) { let result = (binaryParts[0].padStart(Math.ceil(binaryParts[0].length / 4) * 4, '0').match(/[01]{4}/g) as string[]).join(' '); - if (binaryParts.length > 1) result += `.${(binaryParts[1].padEnd(Math.ceil(binaryParts[1].length / 4) * 4, '0').match(/[01]{4}/g) as string[]).join(' ')}`; + if (binaryParts.length > 1) + result += `.${(binaryParts[1].padEnd(Math.ceil(binaryParts[1].length / 4) * 4, '0').match(/[01]{4}/g) as string[]).join(' ')}`; return sign + result; } diff --git a/src/public/scripts/pages/tools/calendar.ts b/src/public/scripts/pages/tools/calendar.ts index 2367997..eb14088 100644 --- a/src/public/scripts/pages/tools/calendar.ts +++ b/src/public/scripts/pages/tools/calendar.ts @@ -61,7 +61,14 @@ if (password) { } document.addEventListener('keydown', (event) => { - if (document.activeElement?.tagName === 'INPUT' || document.activeElement?.tagName === 'TEXTAREA' || event.ctrlKey || event.metaKey || event.altKey) return; + if ( + document.activeElement?.tagName === 'INPUT' || + document.activeElement?.tagName === 'TEXTAREA' || + event.ctrlKey || + event.metaKey || + event.altKey + ) + return; switch (event.code) { case 'ArrowUp': { @@ -130,7 +137,8 @@ function previousDay() { currentMonth = displayedMonth; currentYear = displayedYear; showCalendar(new Date(displayedYear, displayedMonth + 1, 0).getDate(), currentMonth, currentYear); - } else if (currentMonth === displayedMonth && currentYear === displayedYear) updateDisplayedDate(displayedDate - 1, displayedMonth, displayedYear); + } else if (currentMonth === displayedMonth && currentYear === displayedYear) + updateDisplayedDate(displayedDate - 1, displayedMonth, displayedYear); else { currentMonth = displayedMonth; currentYear = displayedYear; @@ -148,7 +156,8 @@ function nextDay() { currentMonth = displayedMonth; currentYear = displayedYear; showCalendar(1, displayedMonth, displayedYear); - } else if (currentMonth === displayedMonth && currentYear === displayedYear) updateDisplayedDate(displayedDate + 1, displayedMonth, displayedYear); + } else if (currentMonth === displayedMonth && currentYear === displayedYear) + updateDisplayedDate(displayedDate + 1, displayedMonth, displayedYear); else { currentMonth = displayedMonth; currentYear = displayedYear; @@ -218,8 +227,10 @@ function showCalendar(date: number | null, month: number, year: number) { const cell = document.createElement('td'); cell.dataset.date = currentDate.toString(); cell.textContent = currentDate.toString(); - if (currentDate === currentTime.getDate() && month === currentTime.getMonth() && year === currentTime.getFullYear()) cell.classList.add('current-date'); - if (currentDate === displayedDate && month === displayedMonth && year === displayedYear) cell.classList.add('selected-date'); + if (currentDate === currentTime.getDate() && month === currentTime.getMonth() && year === currentTime.getFullYear()) + cell.classList.add('current-date'); + if (currentDate === displayedDate && month === displayedMonth && year === displayedYear) + cell.classList.add('selected-date'); cell.addEventListener('click', () => updateDisplayedDate(Number.parseInt(cell.dataset.date!), month, year)); row.append(cell); currentDate++; @@ -256,7 +267,9 @@ function updateDisplayedDate(date: number, month: number, year: number) { eventsList.innerHTML = ''; const events = [ - dateCell.dataset.holiday?.split(', ')?.map((holiday) => `${holidayEmojis[holiday] ? `${holidayEmojis[holiday]} ` : ''}${holiday}`), + dateCell.dataset.holiday + ?.split(', ') + ?.map((holiday) => `${holidayEmojis[holiday] ? `${holidayEmojis[holiday]} ` : ''}${holiday}`), dateCell.dataset.phase ? `${moonEmojis[dateCell.dataset.phase]} ${dateCell.dataset.phase} (${dateCell.dataset.time!})` : null, ] .flat() @@ -334,13 +347,17 @@ function loadTodoList() { todoCheckbox.classList.add('todo-checkbox'); todoCheckbox.id = `todo-${todo.id}`; todoCheckbox.dataset.id = todo.id; - todoCheckbox.checked = !!todoData!.data[todoListDate.getFullYear()]?.[todoListDate.getMonth() + 1]?.[todoListDate.getDate()]?.[todo.id]; + todoCheckbox.checked = + !!todoData!.data[todoListDate.getFullYear()]?.[todoListDate.getMonth() + 1]?.[todoListDate.getDate()]?.[todo.id]; todoCheckbox.addEventListener('change', () => { const todoFinal: Record = {}; - for (const checkbox of todoList.querySelectorAll('.todo-checkbox') as NodeListOf) todoFinal[checkbox.dataset.id!] = checkbox.checked; + for (const checkbox of todoList.querySelectorAll('.todo-checkbox') as NodeListOf) + todoFinal[checkbox.dataset.id!] = checkbox.checked; todoSaveButton.disabled = !Object.entries(todoFinal).some( - ([id, checked]) => !!todoData!.data[todoListDate.getFullYear()]?.[todoListDate.getMonth() + 1]?.[todoListDate.getDate()]?.[id] !== checked, + ([id, checked]) => + !!todoData!.data[todoListDate.getFullYear()]?.[todoListDate.getMonth() + 1]?.[todoListDate.getDate()]?.[id] !== + checked, ); }); diff --git a/src/public/scripts/pages/tools/color-info.ts b/src/public/scripts/pages/tools/color-info.ts index 8d3af79..900ab3a 100644 --- a/src/public/scripts/pages/tools/color-info.ts +++ b/src/public/scripts/pages/tools/color-info.ts @@ -62,9 +62,13 @@ saturateButton.addEventListener('click', () => updateResults(window.chroma(hexIn desaturateButton.addEventListener('click', () => updateResults(window.chroma(hexInput.value).desaturate(0.5))); -increaseLuminanceButton.addEventListener('click', () => updateResults(window.chroma(hexInput.value).luminance(window.chroma(hexInput.value).luminance() * 1.5))); +increaseLuminanceButton.addEventListener('click', () => + updateResults(window.chroma(hexInput.value).luminance(window.chroma(hexInput.value).luminance() * 1.5)), +); -decreaseLuminanceButton.addEventListener('click', () => updateResults(window.chroma(hexInput.value).luminance(window.chroma(hexInput.value).luminance() * 0.5))); +decreaseLuminanceButton.addEventListener('click', () => + updateResults(window.chroma(hexInput.value).luminance(window.chroma(hexInput.value).luminance() * 0.5)), +); nameInput.addEventListener('blur', () => { if (window.chroma.valid(nameInput.value)) { diff --git a/src/public/scripts/pages/tools/countdowns.ts b/src/public/scripts/pages/tools/countdowns.ts index 759a9c7..8ca8aa7 100644 --- a/src/public/scripts/pages/tools/countdowns.ts +++ b/src/public/scripts/pages/tools/countdowns.ts @@ -6,7 +6,9 @@ const countdownContainer = document.querySelector('#countdowns') as HTMLDivEleme const { holidays } = (await (await fetch('/calendar-events')).json()) as CalendarEvents; -const parsedHolidays = holidays.map((holiday, index) => ({ ...holiday, id: `holiday-${index}` })).filter((holiday) => getTimeUntil(holiday.date) && !/^first day of/i.test(holiday.name)); +const parsedHolidays = holidays + .map((holiday, index) => ({ ...holiday, id: `holiday-${index}` })) + .filter((holiday) => getTimeUntil(holiday.date) && !/^first day of/i.test(holiday.name)); const result = parsedHolidays.map((holiday) => { const container = document.createElement('div'); @@ -16,7 +18,12 @@ const result = parsedHolidays.map((holiday) => { const eventTooltip = document.createElement('span'); eventTooltip.textContent = holiday.name; - eventTooltip.dataset.tooltip = new Date(`${holiday.date} 00:00:00`).toLocaleDateString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }); + eventTooltip.dataset.tooltip = new Date(`${holiday.date} 00:00:00`).toLocaleDateString('en-US', { + weekday: 'long', + year: 'numeric', + month: 'long', + day: 'numeric', + }); timeUntilSpan.append('Time until ', eventTooltip, ':'); diff --git a/src/public/scripts/pages/tools/currency-exchange.ts b/src/public/scripts/pages/tools/currency-exchange.ts index 59e81db..1c7a0c7 100644 --- a/src/public/scripts/pages/tools/currency-exchange.ts +++ b/src/public/scripts/pages/tools/currency-exchange.ts @@ -23,9 +23,10 @@ fetch('https://v6.exchangerate-api.com/v6/822304e8ee8183e9de49f5df/latest/usd'). const rates = fullData.conversion_rates; - (document.querySelector('#last-updated') as HTMLSpanElement).textContent = `${new Date(fullData.time_last_update_unix * 1000).toLocaleDateString('en-US')}, ${new Date( - fullData.time_last_update_unix * 1000, - ).toLocaleTimeString('en-US')}`; + (document.querySelector('#last-updated') as HTMLSpanElement).textContent = + `${new Date(fullData.time_last_update_unix * 1000).toLocaleDateString('en-US')}, ${new Date( + fullData.time_last_update_unix * 1000, + ).toLocaleTimeString('en-US')}`; const firstDiv = document.createElement('div'); diff --git a/src/public/scripts/pages/tools/image-converter.ts b/src/public/scripts/pages/tools/image-converter.ts index 5631580..998226d 100644 --- a/src/public/scripts/pages/tools/image-converter.ts +++ b/src/public/scripts/pages/tools/image-converter.ts @@ -119,5 +119,8 @@ function convert() { const blobUrl = createBase64ObjectUrl(url.replaceAll(/data:image\/.*?;base64,/g, ''), `image/${outputTypePicker.value}`); openConvertedResultLink.href = downloadConvertedResultLink.href = blobUrl; openConvertedResultButton.disabled = downloadConvertedResultButton.disabled = false; - downloadConvertedResultLink.setAttribute('download', `${uploadedImage!.name.replace(/\.[^./]+$/, '') || 'download'}.${outputTypePicker.value === 'jpeg' ? 'jpg' : outputTypePicker.value}`); + downloadConvertedResultLink.setAttribute( + 'download', + `${uploadedImage!.name.replace(/\.[^./]+$/, '') || 'download'}.${outputTypePicker.value === 'jpeg' ? 'jpg' : outputTypePicker.value}`, + ); } diff --git a/src/public/scripts/pages/tools/ip-info.ts b/src/public/scripts/pages/tools/ip-info.ts index c6cf272..af3957a 100644 --- a/src/public/scripts/pages/tools/ip-info.ts +++ b/src/public/scripts/pages/tools/ip-info.ts @@ -26,7 +26,11 @@ fetch('/ip-info').then(async (response) => { nameTooltip: 'Internet Service Provider', value: `${data.connection.isp_name} ${data.connection.isp_name === data.connection.organization_name ? '' : `(${data.connection.organization_name}) `}(${data.connection.connection_type})`, }, - { icon: 'location-dot', name: 'Location', value: `${data.city} (${data.postal_code}), ${data.region ? `${data.region}, ` : ''}${data.country}` }, + { + icon: 'location-dot', + name: 'Location', + value: `${data.city} (${data.postal_code}), ${data.region ? `${data.region}, ` : ''}${data.country}`, + }, { icon: 'globe', name: 'Latitude (north-south)', value: data.latitude.toString() }, { icon: 'globe', name: 'Longitude (east-west)', value: data.longitude.toString() }, ]; diff --git a/src/public/scripts/pages/tools/keycode-info.ts b/src/public/scripts/pages/tools/keycode-info.ts index 1477b81..2237dfd 100644 --- a/src/public/scripts/pages/tools/keycode-info.ts +++ b/src/public/scripts/pages/tools/keycode-info.ts @@ -15,7 +15,12 @@ const keyAsciiCell = document.querySelector('#key-ascii-cell') as HTMLTableCellE const keyUnicode = document.querySelector('#key-unicode') as HTMLDivElement; const keyUnicodeCell = document.querySelector('#key-unicode-cell') as HTMLTableCellElement; -let keyValue: string, keyRepeatingValue: string, keyLocationValue: string, keyCodeValue: string, keyAsciiValue: string, keyUnicodeValue: string; +let keyValue: string, + keyRepeatingValue: string, + keyLocationValue: string, + keyCodeValue: string, + keyAsciiValue: string, + keyUnicodeValue: string; let valuesExist = false; @@ -31,7 +36,8 @@ window.addEventListener('focus', () => { ready.innerHTML = ' Ready to get key information!'; }); window.addEventListener('blur', () => { - ready.innerHTML = ' Focus the tab in order for keys to be identified!'; + ready.innerHTML = + ' Focus the tab in order for keys to be identified!'; }); /** diff --git a/src/public/scripts/pages/tools/length-converter.ts b/src/public/scripts/pages/tools/length-converter.ts index cd75697..61905b7 100644 --- a/src/public/scripts/pages/tools/length-converter.ts +++ b/src/public/scripts/pages/tools/length-converter.ts @@ -1,9 +1,9 @@ -import type math from 'mathjs'; +import type { MathJsInstance } from '../../../../../node_modules/mathjs/types/index'; import { copyValue, showAlert, showResult } from '../../functions.js'; declare global { interface Window { - math: typeof math; + math: MathJsInstance; } } @@ -70,7 +70,14 @@ function convert() { if (/^-?(\d+)(\.\d*|,\d*)*$|^-?\d*\.\d+$/g.test(input.value)) { message.textContent = ''; output.value = window.math - .number(window.math.format(window.math.evaluate(`${input.value} ${types[inputType.value]} to ${types[outputType.value]}`), { notation: 'fixed', precision: 15 }).replaceAll(/[^\d.-]/g, '')) + .number( + window.math + .format(window.math.evaluate(`${input.value} ${types[inputType.value]} to ${types[outputType.value]}`), { + notation: 'fixed', + precision: 15, + }) + .replaceAll(/[^\d.-]/g, ''), + ) .toLocaleString(undefined, { maximumFractionDigits: 12 }); copyOutputButton.disabled = false; } else { diff --git a/src/public/scripts/pages/tools/list-sorter.ts b/src/public/scripts/pages/tools/list-sorter.ts index 7594440..44b6233 100644 --- a/src/public/scripts/pages/tools/list-sorter.ts +++ b/src/public/scripts/pages/tools/list-sorter.ts @@ -84,7 +84,9 @@ function randomize() { showAlert('Empty input!', 'warning'); showResult(randomizeButton, 'warning'); } else { - result.value = shuffleArray(input.value.split(JSON.parse(`"${separatorInput.value}"`) as string)).join(JSON.parse(`"${separatorInput.value}"`) as string); + result.value = shuffleArray(input.value.split(JSON.parse(`"${separatorInput.value}"`) as string)).join( + JSON.parse(`"${separatorInput.value}"`) as string, + ); showResult(randomizeButton, 'success'); copyResultButton.disabled = false; diff --git a/src/public/scripts/pages/tools/quick-copy.ts b/src/public/scripts/pages/tools/quick-copy.ts index e2499c0..3124bfa 100644 --- a/src/public/scripts/pages/tools/quick-copy.ts +++ b/src/public/scripts/pages/tools/quick-copy.ts @@ -39,7 +39,8 @@ window.addEventListener('focus', () => { if (clipboardReadAllowed) clipboardDisplay(); }); window.addEventListener('blur', () => { - if (clipboardReadAllowed) showWarning(' Tab not focused, unable to read clipboard!
'); + if (clipboardReadAllowed) + showWarning(' Tab not focused, unable to read clipboard!
'); }); let clipboardReadAllowed = false; @@ -140,12 +141,16 @@ async function clipboardDisplay() { selectClipboardButton.disabled = true; if (storedData !== blob.size || (storedData === blob.size && !clipboardWarning.innerHTML.includes('Clipboard has image!'))) - showWarning(` Clipboard has image! (view)
`); + showWarning( + ` Clipboard has image! (view)
`, + ); if (storedData !== blob.size) storedData = blob.size; } } catch (error) { - if ((error as Error).message.includes('focused')) return showWarning(' Tab not focused, unable to read clipboard!
'); - else if ((error as Error).message.includes('user gesture')) return showWarning(' Interact with this tab to start detection!
'); + if ((error as Error).message.includes('focused')) + return showWarning(' Tab not focused, unable to read clipboard!
'); + else if ((error as Error).message.includes('user gesture')) + return showWarning(' Interact with this tab to start detection!
'); const text = await navigator.clipboard.readText(); diff --git a/src/public/scripts/pages/tools/radical-simplifier.ts b/src/public/scripts/pages/tools/radical-simplifier.ts index 494b75b..1f7fae7 100644 --- a/src/public/scripts/pages/tools/radical-simplifier.ts +++ b/src/public/scripts/pages/tools/radical-simplifier.ts @@ -20,10 +20,14 @@ const message = document.querySelector('#message') as HTMLSpanElement; for (const event of ['input', 'paste']) { operandInput.addEventListener(event, () => (operandInput.value = operandInput.value.replaceAll(/\D/g, ''))); indexInput.addEventListener(event, () => (indexInput.value = indexInput.value.replaceAll(/\D/g, ''))); - radicandInput.addEventListener(event, () => (radicandInput.value = radicandInput.value.replaceAll(/[^\d-]/g, '').replaceAll(/(? (radicandInput.value = radicandInput.value.replaceAll(/[^\d-]/g, '').replaceAll(/(? (event.key === 'Enter' ? simplifyButton.click() : null)); +for (const input of [indexInput, radicandInput, operandInput]) + input.addEventListener('keydown', (event) => (event.key === 'Enter' ? simplifyButton.click() : null)); simplifyButton.addEventListener('click', () => { if (!radicandInput.value) { @@ -72,12 +76,18 @@ simplifyButton.addEventListener('click', () => { const original = `${operand && operand !== 1 ? `${operand} ` : ''}\\sqrt${index && index !== 2 ? `[${index}]` : ''}{${originalRadicand}}`, factored = `\\sqrt${index && index !== 2 ? `[${index}]` : ''}{${primeFactors.join(' \\cdot ')}}`, - mappedFactors = `${negativeRadicand ? 'i ' : ''}\\sqrt${index && index !== 2 ? `[${index}]` : ''}{${Object.entries(primeFactorsObject) + mappedFactors = `${negativeRadicand ? 'i ' : ''}\\sqrt${index && index !== 2 ? `[${index}]` : ''}{${Object.entries( + primeFactorsObject, + ) .map(([number, amount]) => `${number}${amount === 1 ? '' : `^${amount}`}`) .join(' \\cdot ')}}`, - finalOutput = outputRadicand === 1 ? outputOperand : `${outputOperand && outputOperand !== 1 ? `${outputOperand} ` : ''}\\sqrt${index && index !== 2 ? `[${index}]` : ''}{${outputRadicand}}`; + finalOutput = + outputRadicand === 1 + ? outputOperand + : `${outputOperand && outputOperand !== 1 ? `${outputOperand} ` : ''}\\sqrt${index && index !== 2 ? `[${index}]` : ''}{${outputRadicand}}`; - if (original === finalOutput) message.textContent = `The radical is already in its simplest form.${primeFactors.length === 1 ? ` ${radicand} is a prime number.` : ''}`; + if (original === finalOutput) + message.textContent = `The radical is already in its simplest form.${primeFactors.length === 1 ? ` ${radicand} is a prime number.` : ''}`; output.textContent = `\\(${[original, factored, mappedFactors, finalOutput].filter((output, index, array) => output !== array[index - 1]).join(' = ')}\\)`; window.MathJax.typeset(); // Parse LaTeX math to visual representation }); diff --git a/src/public/scripts/pages/tools/roman-converter.ts b/src/public/scripts/pages/tools/roman-converter.ts index ff59341..969a9d4 100644 --- a/src/public/scripts/pages/tools/roman-converter.ts +++ b/src/public/scripts/pages/tools/roman-converter.ts @@ -26,7 +26,11 @@ integerInput.addEventListener('input', () => { integerInput.addEventListener('input', () => { integerConvertButton.disabled = integerInput.value.length === 0; - integerResetButton.disabled = !(integerInput.value.length > 0 || romanOutput.innerHTML !== '​' || integerArrow.style.color !== 'dimgray'); + integerResetButton.disabled = !( + integerInput.value.length > 0 || + romanOutput.innerHTML !== '​' || + integerArrow.style.color !== 'dimgray' + ); }); integerConvertButton.addEventListener('click', convertInteger); integerResetButton.addEventListener('click', () => { @@ -90,7 +94,11 @@ function convertInteger() { function convertRoman() { romanInput.value = romanInput.value.toUpperCase(); const input = romanInput.value.replaceAll(/_(\w)/g, (match) => match.toLowerCase()).replaceAll('_', ''); - if (/^m*(?:d?c{0,3}|c[dm])(?:l?x{0,3}|x[cl])(?:(?:vi?){0,3}|i[vx])M{0,3}(?:D?C{0,3}|C[DM])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[VX])$/.test(input) === true) { + if ( + /^m*(?:d?c{0,3}|c[dm])(?:l?x{0,3}|x[cl])(?:(?:vi?){0,3}|i[vx])M{0,3}(?:D?C{0,3}|C[DM])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[VX])$/.test( + input, + ) === true + ) { integerOutputValue = deromanize(input).toString(); integerOutput.value = deromanize(input).toString(); integerOutputCopyButton.disabled = false; @@ -134,7 +142,14 @@ function romanize(number: number) { } romanOutputValue = - barredNumerals.replaceAll('I', 'Ī').replaceAll('V', 'V̄').replaceAll('X', 'X̄').replaceAll('L', 'L̄').replaceAll('C', 'C̄').replaceAll('D', 'D̄').replaceAll('M', 'M̄') + regularNumerals; + barredNumerals + .replaceAll('I', 'Ī') + .replaceAll('V', 'V̄') + .replaceAll('X', 'X̄') + .replaceAll('L', 'L̄') + .replaceAll('C', 'C̄') + .replaceAll('D', 'D̄') + .replaceAll('M', 'M̄') + regularNumerals; romanOutputValue2 = barredNumerals.replaceAll(/([A-Z])/g, '_$1') + regularNumerals; return barredNumerals.length > 0 ? `${barredNumerals}${regularNumerals}` : regularNumerals; } diff --git a/src/public/scripts/pages/tools/scientific-notation-converter.ts b/src/public/scripts/pages/tools/scientific-notation-converter.ts index 11c6558..8d689a0 100644 --- a/src/public/scripts/pages/tools/scientific-notation-converter.ts +++ b/src/public/scripts/pages/tools/scientific-notation-converter.ts @@ -1,9 +1,9 @@ -import type math from 'mathjs'; +import type { MathJsInstance } from '../../../../../node_modules/mathjs/types/index'; import { copyText, showAlert, updateArrow } from '../../functions.js'; declare global { interface Window { - math: typeof math; + math: MathJsInstance; } } @@ -34,7 +34,11 @@ decimalInput.addEventListener('input', () => { decimalInput.addEventListener('input', () => { decimalConvertButton.disabled = decimalInput.value.length === 0; - decimalResetButton.disabled = !(decimalInput.value.length > 0 || scientificOutput.value.length > 0 || decimalArrow.style.color !== 'dimgray'); + decimalResetButton.disabled = !( + decimalInput.value.length > 0 || + scientificOutput.value.length > 0 || + decimalArrow.style.color !== 'dimgray' + ); }); decimalConvertButton.addEventListener('click', convertDecimal); decimalResetButton.addEventListener('click', () => { @@ -55,7 +59,11 @@ scientificOutputCopy2Button.addEventListener('click', () => copyText(scientificO scientificInput.addEventListener('input', () => { scientificConvertButton.disabled = scientificInput.value.length === 0; - scientificResetButton.disabled = !(scientificInput.value.length > 0 || decimalOutput.value !== '' || scientificArrow.style.color !== 'dimgray'); + scientificResetButton.disabled = !( + scientificInput.value.length > 0 || + decimalOutput.value !== '' || + scientificArrow.style.color !== 'dimgray' + ); }); scientificConvertButton.addEventListener('click', convertScientific); scientificResetButton.addEventListener('click', () => { @@ -77,7 +85,12 @@ function convertDecimal() { if (/^[+-]?(\d+)(\.\d*|,\d*)*$/g.test(decimalInput.value.trim()) || /^-?\d*\.\d+$/g.test(decimalInput.value.trim())) { scientificOutput.value = window.math.bignumber(decimalInput.value).toExponential(); scientificOutputValue = window.math.bignumber(decimalInput.value).toExponential(); - scientificOutputValue2 = window.math.bignumber(decimalInput.value).toExponential().toString().replace('e+', ' x 10^').replace('e-', ' x 10^-'); + scientificOutputValue2 = window.math + .bignumber(decimalInput.value) + .toExponential() + .toString() + .replace('e+', ' x 10^') + .replace('e-', ' x 10^-'); scientificOutputCopyButton.disabled = false; scientificOutputCopy2Button.disabled = false; updateArrow(decimalArrow, 'success'); diff --git a/src/public/scripts/pages/tools/temperature-converter.ts b/src/public/scripts/pages/tools/temperature-converter.ts index 2cd6140..92b4f91 100644 --- a/src/public/scripts/pages/tools/temperature-converter.ts +++ b/src/public/scripts/pages/tools/temperature-converter.ts @@ -1,9 +1,9 @@ -import type math from 'mathjs'; +import type { MathJsInstance } from '../../../../../node_modules/mathjs/types/index'; import { copyValue, showAlert, showResult } from '../../functions.js'; declare global { interface Window { - math: typeof math; + math: MathJsInstance; } } @@ -68,7 +68,12 @@ function convert() { if (/^-?(\d+)(\.\d*|,\d*)*$/g.test(input.value) || /^-?\d*\.\d+$/g.test(input.value)) { message.textContent = ''; output.value = Number( - window.math.format(window.math.evaluate(`${input.value} ${types[inputType.value]} to ${types[outputType.value]}`), { notation: 'fixed', precision: 4 }).replaceAll(/[^\d.-]/g, ''), + window.math + .format(window.math.evaluate(`${input.value} ${types[inputType.value]} to ${types[outputType.value]}`), { + notation: 'fixed', + precision: 4, + }) + .replaceAll(/[^\d.-]/g, ''), ).toLocaleString(); copyOutputButton.disabled = false; } else { diff --git a/src/public/scripts/pages/tools/tides-info.ts b/src/public/scripts/pages/tools/tides-info.ts index 352b98d..a7045ce 100644 --- a/src/public/scripts/pages/tools/tides-info.ts +++ b/src/public/scripts/pages/tools/tides-info.ts @@ -36,7 +36,9 @@ requestGeolocation(getData, message); * @param position The position to fetch location for. */ async function getData(position: GeolocationPosition) { - const data = (await (await fetch(`/tides-info?latitude=${position.coords.latitude}&longitude=${position.coords.longitude}`)).json()) as TideData; + const data = (await ( + await fetch(`/tides-info?latitude=${position.coords.latitude}&longitude=${position.coords.longitude}`) + ).json()) as TideData; const { distance: originDistance, latitude, longitude, unit } = data.origin; @@ -46,14 +48,13 @@ async function getData(position: GeolocationPosition) { distanceDisplay.textContent = `${originDistance} ${unit}`; - updatedDisplay.textContent = `${new Date(data.timestamp * 1000).toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric' })}, ${new Date(data.timestamp * 1000).toLocaleDateString( - undefined, - { - year: 'numeric', - month: 'long', - day: 'numeric', - }, - )}`; + updatedDisplay.textContent = `${new Date(data.timestamp * 1000).toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric' })}, ${new Date( + data.timestamp * 1000, + ).toLocaleDateString(undefined, { + year: 'numeric', + month: 'long', + day: 'numeric', + })}`; const state = data.heights[0].state.toLowerCase(); tideStateDisplay.textContent = state; @@ -61,24 +62,29 @@ async function getData(position: GeolocationPosition) { closestExtremeTypeDisplay.textContent = data.extremes[0].timestamp > Math.floor(Date.now() / 1000) ? 'next' : 'most recent'; closestExtremeDisplay.textContent = data.extremes[0].state.toLowerCase(); - closestExtremeTimeDisplay.textContent = new Date(data.extremes[0].timestamp * 1000).toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric' }); + closestExtremeTimeDisplay.textContent = new Date(data.extremes[0].timestamp * 1000).toLocaleTimeString(undefined, { + hour: 'numeric', + minute: 'numeric', + }); nextClosestExtremeTypeDisplay.textContent = data.extremes[1].timestamp > Math.floor(Date.now() / 1000) ? 'next' : 'most recent'; nextClosestExtremeDisplay.textContent = data.extremes[1].state.toLowerCase(); - nextClosestExtremeTimeDisplay.textContent = new Date(data.extremes[1].timestamp * 1000).toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric' }); + nextClosestExtremeTimeDisplay.textContent = new Date(data.extremes[1].timestamp * 1000).toLocaleTimeString(undefined, { + hour: 'numeric', + minute: 'numeric', + }); for (const extreme of data.extremes) { const rowElement = document.createElement('tr'); const timeCell = document.createElement('td'); - timeCell.textContent = `${new Date(extreme.timestamp * 1000).toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric' })}, ${new Date(extreme.timestamp * 1000).toLocaleDateString( - undefined, - { - year: 'numeric', - month: 'long', - day: 'numeric', - }, - )}`; + timeCell.textContent = `${new Date(extreme.timestamp * 1000).toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric' })}, ${new Date( + extreme.timestamp * 1000, + ).toLocaleDateString(undefined, { + year: 'numeric', + month: 'long', + day: 'numeric', + })}`; const stateCell = document.createElement('td'); stateCell.textContent = titleCase(extreme.state); diff --git a/src/public/scripts/pages/tools/time-converter.ts b/src/public/scripts/pages/tools/time-converter.ts index bd8ce19..3099048 100644 --- a/src/public/scripts/pages/tools/time-converter.ts +++ b/src/public/scripts/pages/tools/time-converter.ts @@ -1,9 +1,9 @@ -import type math from 'mathjs'; +import type { MathJsInstance } from '../../../../../node_modules/mathjs/types/index'; import { copyValue, showAlert, showResult } from '../../functions.js'; declare global { interface Window { - math: typeof math; + math: MathJsInstance; } } @@ -66,7 +66,14 @@ function convert() { if (/^-?(\d+)(\.\d*|,\d*)*$/g.test(input.value) || /^-?\d*\.\d+$/g.test(input.value)) { message.textContent = ''; output.value = window.math - .number(window.math.format(window.math.evaluate(`${input.value} ${types[inputType.value]} to ${types[outputType.value]}`), { notation: 'fixed', precision: 15 }).replaceAll(/[^\d.-]/g, '')) + .number( + window.math + .format(window.math.evaluate(`${input.value} ${types[inputType.value]} to ${types[outputType.value]}`), { + notation: 'fixed', + precision: 15, + }) + .replaceAll(/[^\d.-]/g, ''), + ) .toLocaleString(undefined, { maximumFractionDigits: 12 }); copyOutputButton.disabled = false; } else { diff --git a/src/public/scripts/pages/tools/time.ts b/src/public/scripts/pages/tools/time.ts index 9606456..8c562aa 100644 --- a/src/public/scripts/pages/tools/time.ts +++ b/src/public/scripts/pages/tools/time.ts @@ -3,7 +3,10 @@ import { updateInnerHtml } from '../../functions.js'; setInterval(() => { const currentTime = new Date(); - updateInnerHtml(document.querySelector('#time') as HTMLSpanElement, currentTime.toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric', second: 'numeric' })); + updateInnerHtml( + document.querySelector('#time') as HTMLSpanElement, + currentTime.toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric', second: 'numeric' }), + ); updateInnerHtml(document.querySelector('#dst') as HTMLSpanElement, isDaylightSavingsTimeObserved(currentTime) ? 'Yes' : 'No'); updateInnerHtml( document.querySelector('#date') as HTMLSpanElement, @@ -15,7 +18,10 @@ setInterval(() => { `${Intl.DateTimeFormat().resolvedOptions().timeZone} (UTC${currentTime.getTimezoneOffset() < 0 ? '+' : '-'}${currentTime.getTimezoneOffset() / 60})`, ); updateInnerHtml(document.querySelector('#jp-time') as HTMLSpanElement, currentTime.toLocaleString([], { timeZone: 'Japan' })); - updateInnerHtml(document.querySelector('#cr-time') as HTMLSpanElement, currentTime.toLocaleString([], { timeZone: 'America/Costa_Rica' })); + updateInnerHtml( + document.querySelector('#cr-time') as HTMLSpanElement, + currentTime.toLocaleString([], { timeZone: 'America/Costa_Rica' }), + ); updateInnerHtml(document.querySelector('#gb-time') as HTMLSpanElement, currentTime.toLocaleString([], { timeZone: 'Europe/London' })); updateInnerHtml(document.querySelector('#utc-time') as HTMLSpanElement, currentTime.toLocaleString([], { timeZone: 'UTC' })); }, 100); @@ -26,5 +32,8 @@ setInterval(() => { * @see https://stackoverflow.com/questions/11887934 */ function isDaylightSavingsTimeObserved(date: Date) { - return date.getTimezoneOffset() < Math.max(new Date(date.getFullYear(), 0, 1).getTimezoneOffset(), new Date(date.getFullYear(), 6, 1).getTimezoneOffset()); + return ( + date.getTimezoneOffset() < + Math.max(new Date(date.getFullYear(), 0, 1).getTimezoneOffset(), new Date(date.getFullYear(), 6, 1).getTimezoneOffset()) + ); } diff --git a/src/public/scripts/pages/tools/unix-time-converter.ts b/src/public/scripts/pages/tools/unix-time-converter.ts index 695d6f2..c1ace04 100644 --- a/src/public/scripts/pages/tools/unix-time-converter.ts +++ b/src/public/scripts/pages/tools/unix-time-converter.ts @@ -39,11 +39,14 @@ let unixOutputState = 's'; function updateStandardTime() { const currentTime = new Date(); - standardInput.value = `${currentTime.toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric', second: 'numeric' })}, ${currentTime.toLocaleDateString(undefined, { - year: 'numeric', - month: 'long', - day: 'numeric', - })}`; + standardInput.value = `${currentTime.toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric', second: 'numeric' })}, ${currentTime.toLocaleDateString( + undefined, + { + year: 'numeric', + month: 'long', + day: 'numeric', + }, + )}`; updateUnixOutput(); } @@ -84,7 +87,8 @@ function updateUnixTime() { * Updates the standard time output. */ function updateStandardOutput() { - const unixTime = unixInputState === 'ms' ? new Date(Number.parseInt(unixInput.value)) : new Date(Number.parseInt(unixInput.value) * 1000); + const unixTime = + unixInputState === 'ms' ? new Date(Number.parseInt(unixInput.value)) : new Date(Number.parseInt(unixInput.value) * 1000); if (unixInput.value.length === 0) { updateArrow(unixArrow, 'reset', 'down'); standardOutput.value = ''; @@ -98,7 +102,9 @@ function updateStandardOutput() { const timeString = unixTime.toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric', second: 'numeric' }); standardOutput.value = `${ - unixInputState === 'ms' ? timeString.replace(/ (AM|PM)/, `.${unixTime.getMilliseconds().toString().padStart(3, '0')} $1`) : timeString + unixInputState === 'ms' + ? timeString.replace(/ (AM|PM)/, `.${unixTime.getMilliseconds().toString().padStart(3, '0')} $1`) + : timeString }, ${unixTime.toLocaleDateString(undefined, { year: 'numeric', month: 'long', day: 'numeric' })}`; standardOutputCopyButton.disabled = false; } diff --git a/src/public/scripts/pages/tools/weather-info.ts b/src/public/scripts/pages/tools/weather-info.ts index edc38df..ec0688c 100644 --- a/src/public/scripts/pages/tools/weather-info.ts +++ b/src/public/scripts/pages/tools/weather-info.ts @@ -83,7 +83,9 @@ requestGeolocation(getData, message); * @param position The position to fetch location for. */ async function getData(position: GeolocationPosition) { - const fullData = (await (await fetch(`/weather-info?latitude=${position.coords.latitude}&longitude=${position.coords.longitude}`)).json()) as WeatherInformation; + const fullData = (await ( + await fetch(`/weather-info?latitude=${position.coords.latitude}&longitude=${position.coords.longitude}`) + ).json()) as WeatherInformation; const data = fullData.data[0]; let uvIndexDescription: { color: string; text: string } | undefined; @@ -109,15 +111,31 @@ async function getData(position: GeolocationPosition) { latitudeDisplay.textContent = data.lat.toString(); longitudeDisplay.textContent = data.lon.toString(); stationDisplay.textContent = data.station; - updatedDisplay.textContent = `${new Date(data.ts * 1000).toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric' })}, ${new Date(data.ts * 1000).toLocaleDateString(undefined, { + updatedDisplay.textContent = `${new Date(data.ts * 1000).toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric' })}, ${new Date( + data.ts * 1000, + ).toLocaleDateString(undefined, { year: 'numeric', month: 'long', day: 'numeric', })}`; const output: { icon: string; name: string; value: string | (() => (HTMLElement | string)[]) }[] = [ - { icon: 'sunrise', name: 'Sunrise', value: new Date(`${data.sunrise} ${new Date().toLocaleDateString()} UTC`).toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric' }) }, - { icon: 'sunset', name: 'Sunset', value: new Date(`${data.sunset} ${new Date().toLocaleDateString()} UTC`).toLocaleTimeString(undefined, { hour: 'numeric', minute: 'numeric' }) }, + { + icon: 'sunrise', + name: 'Sunrise', + value: new Date(`${data.sunrise} ${new Date().toLocaleDateString()} UTC`).toLocaleTimeString(undefined, { + hour: 'numeric', + minute: 'numeric', + }), + }, + { + icon: 'sunset', + name: 'Sunset', + value: new Date(`${data.sunset} ${new Date().toLocaleDateString()} UTC`).toLocaleTimeString(undefined, { + hour: 'numeric', + minute: 'numeric', + }), + }, { icon: 'cloud-sun-rain', name: 'Weather', @@ -133,7 +151,11 @@ async function getData(position: GeolocationPosition) { { icon: 'snowflakes', name: 'Snowfall', value: `${data.snow} inches/hour` }, { icon: 'clouds', name: 'Cloud Cover', value: `${data.clouds}%` }, { icon: 'wind', name: 'Wind', value: `${data.wind_spd} miles/hour (${data.wind_cdir_full})` }, - { icon: 'temperature-three-quarters', name: 'Temperature', value: `${data.temp}°F${data.app_temp === data.temp ? '' : ` (Feels like ${data.app_temp}°F)`}` }, + { + icon: 'temperature-three-quarters', + name: 'Temperature', + value: `${data.temp}°F${data.app_temp === data.temp ? '' : ` (Feels like ${data.app_temp}°F)`}`, + }, { icon: 'droplet-percent', name: 'Relative Humidity', value: `${data.rh}%` }, { icon: 'droplet-degree', name: 'Dew Point', value: `${data.dewpt}°F` }, { icon: 'cloud-fog', name: 'Visibility', value: `${data.vis} miles` }, @@ -174,7 +196,9 @@ async function getData(position: GeolocationPosition) { value: () => { const moonInformation = window.SunCalc.getMoonIllumination(new Date()); - return [`${titleCase(moonInformation.phase.name)} (${Math.round(moonInformation.fraction * 100)}% illuminated) ${moonInformation.phase.emoji}`]; + return [ + `${titleCase(moonInformation.phase.name)} (${Math.round(moonInformation.fraction * 100)}% illuminated) ${moonInformation.phase.emoji}`, + ]; }, }, ]; @@ -200,7 +224,12 @@ async function getData(position: GeolocationPosition) { const { alerts } = fullData; const newAlerts = []; - for (const alert of alerts) if (!/has been replaced/.test(alert.title) && Math.floor(new Date(alert.ends_local).getTime() / 1000) >= Math.floor(Date.now() / 1000)) newAlerts.push(alert); + for (const alert of alerts) + if ( + !/has been replaced/.test(alert.title) && + Math.floor(new Date(alert.ends_local).getTime() / 1000) >= Math.floor(Date.now() / 1000) + ) + newAlerts.push(alert); const alertsList = document.querySelector('#active-alerts') as HTMLSpanElement; diff --git a/src/public/styles/pages/tools/color-info.css b/src/public/styles/pages/tools/color-info.css index 1677c82..bbf72b1 100644 --- a/src/public/styles/pages/tools/color-info.css +++ b/src/public/styles/pages/tools/color-info.css @@ -27,7 +27,8 @@ h2 { cursor: pointer; margin-top: 0; border: 4px solid var(--dark-border); - background-image: repeating-linear-gradient(45deg, #aaa 25%, transparent 25%, transparent 75%, #aaa 75%, #aaa), repeating-linear-gradient(45deg, #aaa 25%, white 25%, white 75%, #aaa 75%, #aaa); + background-image: repeating-linear-gradient(45deg, #aaa 25%, transparent 25%, transparent 75%, #aaa 75%, #aaa), + repeating-linear-gradient(45deg, #aaa 25%, white 25%, white 75%, #aaa 75%, #aaa); background-position: 0 0, 5px 5px; diff --git a/src/public/styles/styles.css b/src/public/styles/styles.css index f066606..129e4c8 100644 --- a/src/public/styles/styles.css +++ b/src/public/styles/styles.css @@ -99,10 +99,17 @@ } html { - background-image: repeating-linear-gradient(90deg, rgb(171 171 171 / 6%) 0, rgb(171 171 171 / 6%) 1px, transparent 1px, transparent 96px), + background-image: repeating-linear-gradient( + 90deg, + rgb(171 171 171 / 6%) 0, + rgb(171 171 171 / 6%) 1px, + transparent 1px, + transparent 96px + ), repeating-linear-gradient(0deg, rgb(171 171 171 / 6%) 0, rgb(171 171 171 / 6%) 1px, transparent 1px, transparent 96px), repeating-linear-gradient(0deg, rgb(171 171 171 / 9%) 0, rgb(171 171 171 / 9%) 1px, transparent 1px, transparent 12px), - repeating-linear-gradient(90deg, rgb(171 171 171 / 9%) 0, rgb(171 171 171 / 9%) 1px, transparent 1px, transparent 12px), linear-gradient(90deg, rgb(31 34 41), rgb(31 34 41)); + repeating-linear-gradient(90deg, rgb(171 171 171 / 9%) 0, rgb(171 171 171 / 9%) 1px, transparent 1px, transparent 12px), + linear-gradient(90deg, rgb(31 34 41), rgb(31 34 41)); background-color: #1f2229; scroll-behavior: smooth; scroll-padding-top: 125px; diff --git a/src/route-handlers/all-pages.ts b/src/route-handlers/all-pages.ts index 908ce13..23cb0c9 100644 --- a/src/route-handlers/all-pages.ts +++ b/src/route-handlers/all-pages.ts @@ -15,7 +15,14 @@ export default function setupAllPageRoutes(fastify: FastifyInstance) { JSON.stringify( Object.values(allPages) .flatMap((category) => Object.values(category)) - .map((page) => ({ title: page.title, id: page.id, category: page.category, link: page.link, description: page.descriptionParsed, keywords: page.keywords })), + .map((page) => ({ + title: page.title, + id: page.id, + category: page.category, + link: page.link, + description: page.descriptionParsed, + keywords: page.keywords, + })), null, 2, ), @@ -32,7 +39,11 @@ export default function setupAllPageRoutes(fastify: FastifyInstance) { ); const pagesWithStyles = new Set( - fs.readdirSync('src/public/styles/pages').flatMap((category) => fs.readdirSync(`src/public/styles/pages/${category}`).map((style) => `${category}/${style.replace(/\.css$/, '')}`)), + fs + .readdirSync('src/public/styles/pages') + .flatMap((category) => + fs.readdirSync(`src/public/styles/pages/${category}`).map((style) => `${category}/${style.replace(/\.css$/, '')}`), + ), ); let totalCategories = 0, @@ -51,10 +62,17 @@ export default function setupAllPageRoutes(fastify: FastifyInstance) { continue; } fastify.get(pageInfo.link, (request, reply) => { - reply.view(`pages/${category}/${page}`, { commitInfo, ...pageInfo, script: pagesWithScripts.has(`${category}/${page}`), style: pagesWithStyles.has(`${category}/${page}`) }); + reply.view(`pages/${category}/${page}`, { + commitInfo, + ...pageInfo, + script: pagesWithScripts.has(`${category}/${page}`), + style: pagesWithStyles.has(`${category}/${page}`), + }); }); } } - consola.log(`${chalk.blue('[Page Auto-Loader]:')} Successfully parsed and auto-loaded ${chalk.yellow(totalPages)} pages in ${chalk.yellow(totalCategories)} categories!`); + consola.log( + `${chalk.blue('[Page Auto-Loader]:')} Successfully parsed and auto-loaded ${chalk.yellow(totalPages)} pages in ${chalk.yellow(totalCategories)} categories!`, + ); } diff --git a/src/route-handlers/astronomy-picture.ts b/src/route-handlers/astronomy-picture.ts index 8e5e1fd..4b27598 100644 --- a/src/route-handlers/astronomy-picture.ts +++ b/src/route-handlers/astronomy-picture.ts @@ -38,96 +38,106 @@ export interface ApodEntryMedia { * @param fastify The Fastify instance. */ export default function setupApodRoute(fastify: FastifyInstance) { - fastify.get('/astronomy-picture/:year/:month/:date', async (request: FastifyRequest<{ Params: { year: string; month: string; date: string } }>, reply) => { - logApiRequest(request); - - let result: ApodEntry; - - let { year, month, date } = request.params; - - year = year.padStart(2, '0'); - year = year.length === 2 ? year : year.slice(-2); - month = month.padStart(2, '0'); - date = date.padStart(2, '0'); - - const apodDate = new Date(`${month}/${date}/${year} 00:00:00`).toLocaleDateString(undefined, { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }); - - const url = `https://apod.nasa.gov/apod/ap${year}${month}${date}.html`; - - const response = await fetch(`https://eejitstools.com/cors-anywhere?url=${url}`); - const apodPage = await response.text(); - if (!response.ok) return { success: false, error: 'No APOD data exists for the given date!', date: apodDate }; - - try { - const html = parse( - apodPage - .replaceAll('\n', ' ') - .replaceAll(/ {2,}/g, ' ') - .replaceAll(/-{2,}/g, '–') - .replace(/(href|src)=(["']) +/, '$1=$2') - .replaceAll(/(href|src)=(["'])(?!http|mailto)(.*?)(["'])/gi, '$1=$2https://apod.nasa.gov/apod/$3$4') - .replaceAll(/(href|src)=(["'])\/(.*?)(["'])/gi, '$1=$2https://apod.nasa.gov/$3$4'), - ); - for (const element of html.querySelectorAll('a')) element.setAttribute('target', '_blank'); - - const mediaType = html.querySelector('iframe') ? 'embed' : 'image'; - - const title = html - .querySelector('title') - ?.innerHTML.split(/\s[–-]\s/)[1] - .trim(); - - const credit = html.innerHTML - .match(/credit.*?<\/center>/is)?.[0] - ?.replace(/ <\/b>/gi, '') - ?.replace(/ ?<\/center>/gi, '') - ?.trim(); - - const media = { type: mediaType } as ApodEntryMedia; - - if (mediaType === 'embed') - media.src = html - .querySelector('iframe')! - .getAttribute('src')! - .replace(/\?rel=0$/, ''); - else { - const imageElement = html.querySelector('a img, button img')!; - media.src = imageElement.getAttribute('src')!; - media.highResolution = imageElement.parentNode.getAttribute('href'); - media.annotated = imageElement.parentNode.getAttribute('onmouseover')?.match(/src=["'](.*?)["']/)?.[1]; - media.alt = imageElement.getAttribute('alt')?.replace(/ please see the explanation for more detailed information./i, ''); - - if (/will download the/i.test(media.alt!)) delete media.alt; - if (media.highResolution === media.src) delete media.highResolution; + fastify.get( + '/astronomy-picture/:year/:month/:date', + async (request: FastifyRequest<{ Params: { year: string; month: string; date: string } }>, reply) => { + logApiRequest(request); + + let result: ApodEntry; + + let { year, month, date } = request.params; + + year = year.padStart(2, '0'); + year = year.length === 2 ? year : year.slice(-2); + month = month.padStart(2, '0'); + date = date.padStart(2, '0'); + + const apodDate = new Date(`${month}/${date}/${year} 00:00:00`).toLocaleDateString(undefined, { + weekday: 'long', + year: 'numeric', + month: 'long', + day: 'numeric', + }); + + const url = `https://apod.nasa.gov/apod/ap${year}${month}${date}.html`; + + const response = await fetch(`https://eejitstools.com/cors-anywhere?url=${url}`); + const apodPage = await response.text(); + if (!response.ok) return { success: false, error: 'No APOD data exists for the given date!', date: apodDate }; + + try { + const html = parse( + apodPage + .replaceAll('\n', ' ') + .replaceAll(/ {2,}/g, ' ') + .replaceAll(/-{2,}/g, '–') + .replace(/(href|src)=(["']) +/, '$1=$2') + .replaceAll(/(href|src)=(["'])(?!http|mailto)(.*?)(["'])/gi, '$1=$2https://apod.nasa.gov/apod/$3$4') + .replaceAll(/(href|src)=(["'])\/(.*?)(["'])/gi, '$1=$2https://apod.nasa.gov/$3$4'), + ); + for (const element of html.querySelectorAll('a')) element.setAttribute('target', '_blank'); + + const mediaType = html.querySelector('iframe') ? 'embed' : 'image'; + + const title = html + .querySelector('title') + ?.innerHTML.split(/\s[–-]\s/)[1] + .trim(); + + const credit = html.innerHTML + .match(/credit.*?<\/center>/is)?.[0] + ?.replace(/ <\/b>/gi, '') + ?.replace(/ ?<\/center>/gi, '') + ?.trim(); + + const media = { type: mediaType } as ApodEntryMedia; + + if (mediaType === 'embed') + media.src = html + .querySelector('iframe')! + .getAttribute('src')! + .replace(/\?rel=0$/, ''); + else { + const imageElement = html.querySelector('a img, button img')!; + media.src = imageElement.getAttribute('src')!; + media.highResolution = imageElement.parentNode.getAttribute('href'); + media.annotated = imageElement.parentNode.getAttribute('onmouseover')?.match(/src=["'](.*?)["']/)?.[1]; + media.alt = imageElement + .getAttribute('alt') + ?.replace(/ please see the explanation for more detailed information./i, ''); + + if (/will download the/i.test(media.alt!)) delete media.alt; + if (media.highResolution === media.src) delete media.highResolution; + } + + const explanation = html.innerHTML + .match(/explanation(<\/b>)?:.*?tomorrow(?!,)|explanation:.*?
/gi)?.[0] + .replaceAll(/(

?<\/p>| ?<\/?p>)/g, '
') + .replaceAll(/ (.*?) <\/b>/g, '$1') + .replaceAll(/(\w|>)\/ /g, '$1/') + .replaceAll(/ \.{3}/g, '...') + .replaceAll( + /(explanation: ?<\/b> |explanation<\/b>: | explanation: | ?
? ?tomorrow| tomorrow|


|
|( ?
)*?$|

tomorrow|

birthday surprise.*?$|
+your sky surprise.*?$|
+apod in world languages:.*?$)/gi, + '', + ) + .replace(/ *$/, '') + .trim(); + + result = { + success: true, + source: url, + date: apodDate, + title, + credit, + explanation, + media, + }; + } catch (error) { + consola.error(error); + result = { success: false, error: 'Failed to parse APOD data for this date!', date: apodDate }; } - const explanation = html.innerHTML - .match(/explanation(<\/b>)?:.*?tomorrow(?!,)|explanation:.*?
/gi)?.[0] - .replaceAll(/(

?<\/p>| ?<\/?p>)/g, '
') - .replaceAll(/ (.*?) <\/b>/g, '$1') - .replaceAll(/(\w|>)\/ /g, '$1/') - .replaceAll(/ \.{3}/g, '...') - .replaceAll( - /(explanation: ?<\/b> |explanation<\/b>: | explanation: | ?
? ?tomorrow| tomorrow|


|
|( ?
)*?$|

tomorrow|

birthday surprise.*?$|
+your sky surprise.*?$|
+apod in world languages:.*?$)/gi, - '', - ) - .replace(/ *$/, '') - .trim(); - - result = { - success: true, - source: url, - date: apodDate, - title, - credit, - explanation, - media, - }; - } catch (error) { - consola.error(error); - result = { success: false, error: 'Failed to parse APOD data for this date!', date: apodDate }; - } - - reply.send(JSON.stringify(result, null, 2)); - }); + reply.send(JSON.stringify(result, null, 2)); + }, + ); } diff --git a/src/route-handlers/calendar.ts b/src/route-handlers/calendar.ts index e334e97..3368c27 100644 --- a/src/route-handlers/calendar.ts +++ b/src/route-handlers/calendar.ts @@ -25,7 +25,9 @@ export default function setupCalendarRoutes(fastify: FastifyInstance) { const holidays = ( (await ( - await fetch(`https://www.googleapis.com/calendar/v3/calendars/en.usa%23holiday%40group.v.calendar.google.com/events?key=${process.env.GOOGLE_CALENDAR_API_KEY!}`) + await fetch( + `https://www.googleapis.com/calendar/v3/calendars/en.usa%23holiday%40group.v.calendar.google.com/events?key=${process.env.GOOGLE_CALENDAR_API_KEY!}`, + ) ).json()) as Calendar ).items .map((holiday) => ({ name: holiday.summary, date: holiday.start.date })) @@ -33,7 +35,9 @@ export default function setupCalendarRoutes(fastify: FastifyInstance) { .sort((a, b) => new Date(a.date).getTime() - new Date(b.date).getTime()); const moonPhases = ( (await ( - await fetch(`https://www.googleapis.com/calendar/v3/calendars/ht3jlfaac5lfd6263ulfh4tql8%40group.calendar.google.com/events?key=${process.env.GOOGLE_CALENDAR_API_KEY!}`) + await fetch( + `https://www.googleapis.com/calendar/v3/calendars/ht3jlfaac5lfd6263ulfh4tql8%40group.calendar.google.com/events?key=${process.env.GOOGLE_CALENDAR_API_KEY!}`, + ) ).json()) as Calendar ).items .map((moonPhase) => ({ @@ -64,7 +68,8 @@ export default function setupCalendarRoutes(fastify: FastifyInstance) { let todoOptions: TodoOption[] | null = null; fastify.get('/calendar-todo', async (request: FastifyRequest<{ Querystring: { password: string } }>, reply) => { - if (request.query.password !== process.env.CALENDAR_TODO_PASSWORD) return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); + if (request.query.password !== process.env.CALENDAR_TODO_PASSWORD) + return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); const data = Object.fromEntries(((await todoModel.find({})) as TodoData[]).map((todo) => [todo.year, todo.dates])); if (!todoOptions) todoOptions = (await todoOptionsModel.findOne({}))!.data; @@ -72,34 +77,43 @@ export default function setupCalendarRoutes(fastify: FastifyInstance) { reply.send(JSON.stringify({ todo: todoOptions, data }, null, 2)); }); - fastify.post('/calendar-todo-edit', async (request: FastifyRequest<{ Body: { password: string; todo: Record; year: string; month: string; date: string } }>, reply) => { - const { password, todo } = request.body; - const year = Number.parseInt(request.body.year); - const month = Number.parseInt(request.body.month); - const date = Number.parseInt(request.body.date); - - if (password !== process.env.CALENDAR_TODO_PASSWORD) return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); - - if (Number.isNaN(year) || Number.isNaN(month) || Number.isNaN(date)) return reply.send(JSON.stringify({ error: 'A date parameter is NaN!' }, null, 2)); - if (month < 1 || month > 12) return reply.send(JSON.stringify({ error: 'Invalid month parameter!' }, null, 2)); - if (date < 1 || date > 31) return reply.send(JSON.stringify({ error: 'Invalid date parameter!' }, null, 2)); - - let yearEntry: TodoData | null = await todoModel.findOne({ year }); - if (!yearEntry) { - await todoModel.create({ year, dates: {} }); - yearEntry = (await todoModel.findOne({ year }))!; - } - - if (!yearEntry.dates) yearEntry.dates = {}; - if (!yearEntry.dates[month]) yearEntry.dates[month] = {}; - yearEntry.dates[month][date] = todo; - - await todoModel.replaceOne({ year }, yearEntry); - - const data = Object.fromEntries(((await todoModel.find({})) as TodoData[]).map((todo) => [todo.year, todo.dates])); - - if (!todoOptions) todoOptions = (await todoOptionsModel.findOne({}))!.data; - - reply.send(JSON.stringify({ todo: todoOptions, data }, null, 2)); - }); + fastify.post( + '/calendar-todo-edit', + async ( + request: FastifyRequest<{ + Body: { password: string; todo: Record; year: string; month: string; date: string }; + }>, + reply, + ) => { + const { password, todo } = request.body; + const year = Number.parseInt(request.body.year); + const month = Number.parseInt(request.body.month); + const date = Number.parseInt(request.body.date); + + if (password !== process.env.CALENDAR_TODO_PASSWORD) return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); + + if (Number.isNaN(year) || Number.isNaN(month) || Number.isNaN(date)) + return reply.send(JSON.stringify({ error: 'A date parameter is NaN!' }, null, 2)); + if (month < 1 || month > 12) return reply.send(JSON.stringify({ error: 'Invalid month parameter!' }, null, 2)); + if (date < 1 || date > 31) return reply.send(JSON.stringify({ error: 'Invalid date parameter!' }, null, 2)); + + let yearEntry: TodoData | null = await todoModel.findOne({ year }); + if (!yearEntry) { + await todoModel.create({ year, dates: {} }); + yearEntry = (await todoModel.findOne({ year }))!; + } + + if (!yearEntry.dates) yearEntry.dates = {}; + if (!yearEntry.dates[month]) yearEntry.dates[month] = {}; + yearEntry.dates[month][date] = todo; + + await todoModel.replaceOne({ year }, yearEntry); + + const data = Object.fromEntries(((await todoModel.find({})) as TodoData[]).map((todo) => [todo.year, todo.dates])); + + if (!todoOptions) todoOptions = (await todoOptionsModel.findOne({}))!.data; + + reply.send(JSON.stringify({ todo: todoOptions, data }, null, 2)); + }, + ); } diff --git a/src/route-handlers/coins-list.ts b/src/route-handlers/coins-list.ts index 5b0a1f8..d2af676 100644 --- a/src/route-handlers/coins-list.ts +++ b/src/route-handlers/coins-list.ts @@ -44,7 +44,10 @@ export interface Coin { export type DatabaseCoinDenomination = CoinDenomination> & { _id?: number; __v?: number }; // eslint-disable-line @typescript-eslint/naming-convention -export const coinsModel = model('coins-data', new Schema({ name: String, id: String, value: Number, constants: Object, designs: Array }, {})); +export const coinsModel = model( + 'coins-data', + new Schema({ name: String, id: String, value: Number, constants: Object, designs: Array }, {}), +); /** * Sets up all coin related routes. @@ -56,7 +59,8 @@ export default function setupCoinsListRoutes(fastify: FastifyInstance) { ); fastify.get('/coins-list', async (request: FastifyRequest<{ Querystring: { password: string } }>, reply) => { - if (request.query.password !== process.env.COINS_PASSWORD) return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); + if (request.query.password !== process.env.COINS_PASSWORD) + return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); let foundCoins = (await coinsModel.find({}).lean()) as DatabaseCoinDenomination[]; foundCoins = await patchCoinDatabase(foundCoins); @@ -73,60 +77,76 @@ export default function setupCoinsListRoutes(fastify: FastifyInstance) { reply.send(JSON.stringify(sortedCoinInfo, null, 2)); }); - fastify.post('/coins-list-edit', async (request: FastifyRequest<{ Body: { denominationId: string; designId: string; coinId: string; data: Partial; password: string } }>, reply) => { - const { denominationId, designId, coinId, data, password } = request.body; + fastify.post( + '/coins-list-edit', + async ( + request: FastifyRequest<{ + Body: { denominationId: string; designId: string; coinId: string; data: Partial; password: string }; + }>, + reply, + ) => { + const { denominationId, designId, coinId, data, password } = request.body; - if (password !== process.env.COINS_PASSWORD) return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); + if (password !== process.env.COINS_PASSWORD) return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); - let databaseCoinDenomination = (await coinsModel.findOne({ id: denominationId }).lean()) as DatabaseCoinDenomination | null; - if (!databaseCoinDenomination) return reply.send(JSON.stringify({ error: 'Invalid coin denomination!' }, null, 2)); + let databaseCoinDenomination = (await coinsModel.findOne({ id: denominationId }).lean()) as DatabaseCoinDenomination | null; + if (!databaseCoinDenomination) return reply.send(JSON.stringify({ error: 'Invalid coin denomination!' }, null, 2)); - databaseCoinDenomination = await patchCoinDatabaseDenomination(databaseCoinDenomination); + databaseCoinDenomination = await patchCoinDatabaseDenomination(databaseCoinDenomination); - delete databaseCoinDenomination._id; - delete databaseCoinDenomination.__v; + delete databaseCoinDenomination._id; + delete databaseCoinDenomination.__v; - databaseCoinDenomination.designs = databaseCoinDenomination.designs.map((design) => { - if (design.id === designId) - return { - ...design, - coins: design.coins.map((coin) => { - if (coin.id === coinId) - for (const [key, value] of Object.entries(data)) - if (value === null) delete coin[key as keyof Coin]; - else coin[key as keyof Coin] = value as never; + databaseCoinDenomination.designs = databaseCoinDenomination.designs.map((design) => { + if (design.id === designId) + return { + ...design, + coins: design.coins.map((coin) => { + if (coin.id === coinId) + for (const [key, value] of Object.entries(data)) + if (value === null) delete coin[key as keyof Coin]; + else coin[key as keyof Coin] = value as never; - return coin; - }), - }; + return coin; + }), + }; - return design; - }); + return design; + }); - await coinsModel.replaceOne({ id: denominationId }, databaseCoinDenomination); + await coinsModel.replaceOne({ id: denominationId }, databaseCoinDenomination); - reply.send(JSON.stringify({ success: true }, null, 2)); - }); + reply.send(JSON.stringify({ success: true }, null, 2)); + }, + ); - fastify.post('/coins-list-add-coin', async (request: FastifyRequest<{ Body: { denominationId: string; designId: string; coinYear: string; coinId: string; password: string } }>, reply) => { - const { denominationId, designId, coinYear, coinId, password } = request.body; + fastify.post( + '/coins-list-add-coin', + async ( + request: FastifyRequest<{ + Body: { denominationId: string; designId: string; coinYear: string; coinId: string; password: string }; + }>, + reply, + ) => { + const { denominationId, designId, coinYear, coinId, password } = request.body; - if (password !== process.env.COINS_PASSWORD) return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); + if (password !== process.env.COINS_PASSWORD) return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); - let databaseCoinDenomination = (await coinsModel.findOne({ id: denominationId }).lean()) as DatabaseCoinDenomination | null; - if (!databaseCoinDenomination) return reply.send(JSON.stringify({ error: 'Invalid coin denomination!' }, null, 2)); + let databaseCoinDenomination = (await coinsModel.findOne({ id: denominationId }).lean()) as DatabaseCoinDenomination | null; + if (!databaseCoinDenomination) return reply.send(JSON.stringify({ error: 'Invalid coin denomination!' }, null, 2)); - databaseCoinDenomination = await patchCoinDatabaseDenomination(databaseCoinDenomination); + databaseCoinDenomination = await patchCoinDatabaseDenomination(databaseCoinDenomination); - const databaseCoinDesign = databaseCoinDenomination.designs.find((design) => design.id === designId); - if (!databaseCoinDesign) return reply.send(JSON.stringify({ error: 'Invalid coin design!' }, null, 2)); + const databaseCoinDesign = databaseCoinDenomination.designs.find((design) => design.id === designId); + if (!databaseCoinDesign) return reply.send(JSON.stringify({ error: 'Invalid coin design!' }, null, 2)); - databaseCoinDesign.coins.push({ year: coinYear, obtained: false, id: coinId }); + databaseCoinDesign.coins.push({ year: coinYear, obtained: false, id: coinId }); - await coinsModel.replaceOne({ id: denominationId }, databaseCoinDenomination); + await coinsModel.replaceOne({ id: denominationId }, databaseCoinDenomination); - reply.send(JSON.stringify({ success: true }, null, 2)); - }); + reply.send(JSON.stringify({ success: true }, null, 2)); + }, + ); } /** @@ -139,8 +159,32 @@ export async function patchCoinDatabase(coinsData: DatabaseCoinDenomination[]) { } const denominationParameterOrder: (keyof DatabaseCoinDenomination)[] = ['_id', 'name', 'id', 'value', 'constants', 'designs', '__v']; -const designParameterOrder: (keyof CoinDesign)[] = ['name', 'id', 'note', 'years', 'active', 'composition', 'mass', 'diameter', 'edge', 'numistaEntry', 'wikipediaArticle', 'coins']; -const coinParameterOrder: (keyof Coin)[] = ['id', 'year', 'mintMark', 'mintage', 'mintageForAllVarieties', 'specification', 'image', 'comparison', 'obtained', 'upgrade']; +const designParameterOrder: (keyof CoinDesign)[] = [ + 'name', + 'id', + 'note', + 'years', + 'active', + 'composition', + 'mass', + 'diameter', + 'edge', + 'numistaEntry', + 'wikipediaArticle', + 'coins', +]; +const coinParameterOrder: (keyof Coin)[] = [ + 'id', + 'year', + 'mintMark', + 'mintage', + 'mintageForAllVarieties', + 'specification', + 'image', + 'comparison', + 'obtained', + 'upgrade', +]; /** * Patches the coin database to add IDs to all coins. @@ -170,7 +214,8 @@ async function patchCoinDatabaseDenomination(denomination: DatabaseCoinDenominat coins: design.coins.map((coin) => sortObject(coin, coinParameterOrder)), })); - if (JSON.stringify(denomination) !== JSON.stringify(sortedDenomination)) await coinsModel.replaceOne({ id: denomination.id }, sortedDenomination); + if (JSON.stringify(denomination) !== JSON.stringify(sortedDenomination)) + await coinsModel.replaceOne({ id: denomination.id }, sortedDenomination); return sortedDenomination; } diff --git a/src/route-handlers/foreign-collections-list.ts b/src/route-handlers/foreign-collections-list.ts index e9f9fc1..80e0ef4 100644 --- a/src/route-handlers/foreign-collections-list.ts +++ b/src/route-handlers/foreign-collections-list.ts @@ -20,57 +20,64 @@ const foreignCollectionsList = model('foreign-collections-list', new Schema({ da */ export default function setupForeignCollectionsList(fastify: FastifyInstance) { fastify.get('/foreign-collections-list', async (request: FastifyRequest<{ Querystring: { password: string } }>, reply) => { - if (request.query.password !== process.env.COINS_PASSWORD) return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); + if (request.query.password !== process.env.COINS_PASSWORD) + return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); const foundList = (await foreignCollectionsList.findOne({}).lean()) as DatabaseForeignCollectionsList; reply.send(JSON.stringify(foundList.data, null, 2)); }); - fastify.post('/foreign-collections-list-edit', async (request: FastifyRequest<{ Body: ForeignCollectionEntry & { password: string } }>, reply) => { - const { name, type, data, password } = request.body; + fastify.post( + '/foreign-collections-list-edit', + async (request: FastifyRequest<{ Body: ForeignCollectionEntry & { password: string } }>, reply) => { + const { name, type, data, password } = request.body; - if (password !== process.env.COINS_PASSWORD) return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); + if (password !== process.env.COINS_PASSWORD) return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); - const foundList = (await foreignCollectionsList.findOne({}).lean()) as DatabaseForeignCollectionsList; + const foundList = (await foreignCollectionsList.findOne({}).lean()) as DatabaseForeignCollectionsList; - delete foundList._id; - delete foundList.__v; + delete foundList._id; + delete foundList.__v; - const foundEntry = foundList.data.find((entry) => entry.id === request.body.id); - if (!foundEntry) return reply.send(JSON.stringify({ error: 'Entry not found!' }, null, 2)); + const foundEntry = foundList.data.find((entry) => entry.id === request.body.id); + if (!foundEntry) return reply.send(JSON.stringify({ error: 'Entry not found!' }, null, 2)); - foundEntry.name = name; - foundEntry.type = type; - foundEntry.data = data; + foundEntry.name = name; + foundEntry.type = type; + foundEntry.data = data; - const sortedData = foundList.data.sort((a, b) => a.name.localeCompare(b.name)); + const sortedData = foundList.data.sort((a, b) => a.name.localeCompare(b.name)); - await foreignCollectionsList.replaceOne({}, { data: sortedData }); + await foreignCollectionsList.replaceOne({}, { data: sortedData }); - reply.send(JSON.stringify({ success: true, data: sortedData }, null, 2)); - }); + reply.send(JSON.stringify({ success: true, data: sortedData }, null, 2)); + }, + ); - fastify.post('/foreign-collections-list-add-entry', async (request: FastifyRequest<{ Body: ForeignCollectionEntry & { password: string } }>, reply) => { - const { name, type, data, password } = request.body; + fastify.post( + '/foreign-collections-list-add-entry', + async (request: FastifyRequest<{ Body: ForeignCollectionEntry & { password: string } }>, reply) => { + const { name, type, data, password } = request.body; - if (password !== process.env.COINS_PASSWORD) return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); + if (password !== process.env.COINS_PASSWORD) return reply.send(JSON.stringify({ error: 'Invalid password!' }, null, 2)); - const foundList = (await foreignCollectionsList.findOne({}).lean()) as DatabaseForeignCollectionsList; + const foundList = (await foreignCollectionsList.findOne({}).lean()) as DatabaseForeignCollectionsList; - delete foundList._id; - delete foundList.__v; + delete foundList._id; + delete foundList.__v; - const id = generateUniqueEntryId(foundList.data); + const id = generateUniqueEntryId(foundList.data); - foundList.data.push({ id, name, type, data }); + foundList.data.push({ id, name, type, data }); - const sortedData = foundList.data.sort((a, b) => a.name.localeCompare(b.name)); + const sortedData = foundList.data.sort((a, b) => a.name.localeCompare(b.name)); - await foreignCollectionsList.replaceOne({}, { data: sortedData }); + await foreignCollectionsList.replaceOne({}, { data: sortedData }); - reply.send(JSON.stringify({ success: true, data: sortedData }, null, 2)); - }); + reply.send(JSON.stringify({ success: true, data: sortedData }, null, 2)); + }, + ); } /** diff --git a/src/route-handlers/ip-info.ts b/src/route-handlers/ip-info.ts index 6d4e824..bb68adf 100644 --- a/src/route-handlers/ip-info.ts +++ b/src/route-handlers/ip-info.ts @@ -9,12 +9,16 @@ export default function setupIpInfoRoute(fastify: FastifyInstance) { let { ip } = request; if (ip === '127.0.0.1') { const cloudflareInformation = await (await fetch('https://www.cloudflare.com/cdn-cgi/trace')).text(); - const parsedInformation = Object.fromEntries(cloudflareInformation.split('\n').map((information) => information.split('=') as [string, string])); + const parsedInformation = Object.fromEntries( + cloudflareInformation.split('\n').map((information) => information.split('=') as [string, string]), + ); ip = parsedInformation.ip; // eslint-disable-line prefer-destructuring } - const ipInformation = await (await fetch(`https://ipgeolocation.abstractapi.com/v1/?api_key=${process.env.ABSTRACT_API_API_KEY}&ip_address=${ip}`)).text(); + const ipInformation = await ( + await fetch(`https://ipgeolocation.abstractapi.com/v1/?api_key=${process.env.ABSTRACT_API_API_KEY}&ip_address=${ip}`) + ).text(); reply.send(ipInformation); }); diff --git a/src/route-handlers/weather-info.ts b/src/route-handlers/weather-info.ts index 22293be..66a3fa9 100644 --- a/src/route-handlers/weather-info.ts +++ b/src/route-handlers/weather-info.ts @@ -8,7 +8,11 @@ export default function setupWeatherInfoRoute(fastify: FastifyInstance) { fastify.get('/weather-info', async (request: FastifyRequest<{ Querystring: { latitude: string; longitude: string } }>, reply) => { const { latitude, longitude } = request.query; - const data = await (await fetch(`https://api.weatherbit.io/v2.0/current?lat=${latitude}&lon=${longitude}&key=${process.env.WEATHERBIT_API_KEY}&include=alerts&units=I`)).text(); + const data = await ( + await fetch( + `https://api.weatherbit.io/v2.0/current?lat=${latitude}&lon=${longitude}&key=${process.env.WEATHERBIT_API_KEY}&include=alerts&units=I`, + ) + ).text(); return reply.send(data); }); diff --git a/src/views/layouts/layout.hbs b/src/views/layouts/layout.hbs index 1d607f2..799c04a 100644 --- a/src/views/layouts/layout.hbs +++ b/src/views/layouts/layout.hbs @@ -90,8 +90,10 @@
- Loading... - Source + Loading... + + Source +