From aa6e4de52f383f5a4fbfa9c7464868874b38ad38 Mon Sep 17 00:00:00 2001 From: Nicolas DUBIEN Date: Fri, 23 Feb 2024 09:44:49 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20Optimize=20image=20assets?= =?UTF-8?q?=20on=20homepage=20(#4730)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Our current version of https://fast-check.dev/ is badly performing on https://www.websitecarbon.com/. It got an F for the homagepage but a good grade on others. Most of the problem comes from our numerous images assets: - there are many of them to load - they are not optimized in size The current PR is making sure we optimize them beforehand to deliver an optimized version of our assets. --- .github/workflows/build-status.yml | 10 + website/.gitignore | 1 + website/package.json | 5 +- website/prebuild/optimize-images.mjs | 44 + .../components/HomepageContributors/index.js | 3 +- .../src/components/HomepageQuotes/index.js | 13 +- yarn.lock | 760 +++++++++++++++++- 7 files changed, 823 insertions(+), 13 deletions(-) create mode 100644 website/prebuild/optimize-images.mjs diff --git a/.github/workflows/build-status.yml b/.github/workflows/build-status.yml index 5b52ed5e..878b6f16 100644 --- a/.github/workflows/build-status.yml +++ b/.github/workflows/build-status.yml @@ -325,6 +325,16 @@ jobs: path: packages/ - name: Unpack production packages run: yarn unpack:all + - name: Get Date cache buster + id: get-date + run: | + echo "date=$(/bin/date -u "+%Y%m")" >> $GITHUB_OUTPUT + shell: bash + - name: Cache for Optimized assets + uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0 + with: + path: website/static/img/_ + key: optimized-assets-${{steps.get-date.outputs.date}}-${{hashFiles('.all-contributorsrc')}}-${{hashFiles('website/prebuild/optimize-images.mjs')}} - name: Generate documentation run: yarn workspace website build - name: Generate API reference diff --git a/website/.gitignore b/website/.gitignore index 9c5dc268..0b5fc0ae 100644 --- a/website/.gitignore +++ b/website/.gitignore @@ -9,6 +9,7 @@ .cache-loader generated-tests src/components/HomepageContributors/all-contributors.json +static/img/_ # Misc .DS_Store diff --git a/website/package.json b/website/package.json index fa080138..2a55d9d4 100644 --- a/website/package.json +++ b/website/package.json @@ -3,8 +3,8 @@ "name": "website", "scripts": { "docusaurus": "docusaurus", - "start": "cp ../.all-contributorsrc src/components/HomepageContributors/all-contributors.json && docusaurus start", - "build": "cp ../.all-contributorsrc src/components/HomepageContributors/all-contributors.json && docusaurus build", + "start": "cp ../.all-contributorsrc src/components/HomepageContributors/all-contributors.json && node prebuild/optimize-images.mjs && docusaurus start", + "build": "cp ../.all-contributorsrc src/components/HomepageContributors/all-contributors.json && node prebuild/optimize-images.mjs && docusaurus build", "swizzle": "docusaurus swizzle", "deploy": "docusaurus deploy", "clear": "docusaurus clear", @@ -36,6 +36,7 @@ "@types/node": "^20.11.19", "fast-check": "workspace:*", "jest": "^29.7.0", + "jimp": "^0.22.12", "typescript": "~5.3.3" }, "browserslist": { diff --git a/website/prebuild/optimize-images.mjs b/website/prebuild/optimize-images.mjs new file mode 100644 index 00000000..21ee43e4 --- /dev/null +++ b/website/prebuild/optimize-images.mjs @@ -0,0 +1,44 @@ +import jimp from 'jimp'; +import { existsSync } from 'fs'; +import { fileURLToPath } from 'url'; +import { join } from 'path'; +import allContributors from '../src/components/HomepageContributors/all-contributors.json' assert { type: 'json' }; + +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + +async function collectImage(imageUrl, imageFinalPath, squaredSize) { + const image = await jimp.read(imageUrl); + await image.resize(squaredSize, squaredSize).quality(80).writeAsync(imageFinalPath); +} + +const quotes = [ + 'https://github.com/TomerAberbach.png', + 'https://github.com/ssalbdivad.png', + 'https://github.com/abrgr.png', + 'https://github.com/emilianbold.png', + 'https://github.com/jakebailey.png', + 'https://github.com/Andarist.png', +]; +const allAvatars = [ + ...allContributors.contributors.map((contributor) => ({ + url: contributor.avatar_url, + login: contributor.login, + size: 64, + })), + ...quotes.map((quote) => ({ + url: quote, + login: quote.split('/').at(-1).split('.').slice(0, -1).join('.'), + size: 64, + })), +]; + +for (const avatar of allAvatars) { + const { url, login, size } = avatar; + const pathFinalImage = join(__dirname, '..', 'static', 'img', '_', `avatar_${size}_${login}.jpg`); + if (!existsSync(pathFinalImage)) { + console.log(`Importing avatar ${size}x${size} for ${url}`); + collectImage(url, pathFinalImage, 64); + } else { + console.log(`Skipped import of avatar ${size}x${size} for ${url}`); + } +} diff --git a/website/src/components/HomepageContributors/index.js b/website/src/components/HomepageContributors/index.js index 0b4c1e01..baf7dd4f 100644 --- a/website/src/components/HomepageContributors/index.js +++ b/website/src/components/HomepageContributors/index.js @@ -2,6 +2,7 @@ import React from 'react'; import BannerSection from '@site/src/components/BannerSection'; import allContributors from './all-contributors.json'; import styles from './styles.module.css'; +import useBaseUrl from '@docusaurus/useBaseUrl'; export default function HomepageContributors(props) { return ( @@ -19,7 +20,7 @@ export default function HomepageContributors(props) { rel="noopener noreferrer" > {`AvatarKind messages spreading love around fast-check

=0.3.5" + checksum: 10c0/45739eb159bbb313a8c6610bf8389ececc6cc0892dae312dfcb9963b36c43d67e5570dcf959de0450c420570d51683d0685e0ec881f99c7125313b992be99aff + languageName: node + linkType: hard + +"@jimp/core@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/core@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + any-base: "npm:^1.1.0" + buffer: "npm:^5.2.0" + exif-parser: "npm:^0.1.12" + file-type: "npm:^16.5.4" + isomorphic-fetch: "npm:^3.0.0" + pixelmatch: "npm:^4.0.2" + tinycolor2: "npm:^1.6.0" + checksum: 10c0/535d48403f7147e26adabb38fc8ae08831190c7c1e6fda54640adcfdfd5d3a3491d98bd030f7e22a9112404aec0614f865ebfcef68f0022e025bed60bf1da454 + languageName: node + linkType: hard + +"@jimp/custom@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/custom@npm:0.22.12" + dependencies: + "@jimp/core": "npm:^0.22.12" + checksum: 10c0/942254bfb22a40b0420d60fd14e20f2f5af0eee89133896f13c29adf6f1dcb90a836129710b14c5c2c3b72ea7c4b0a8d9a68b0a3806c6592fcfb3beb03c611b7 + languageName: node + linkType: hard + +"@jimp/gif@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/gif@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + gifwrap: "npm:^0.10.1" + omggif: "npm:^1.0.9" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/40a804449e888d3885946c11156a54681c26bac1dbd77a84dace8d2e9be9e54dd3cae7865d235296b072901034fd220b3caca7c136b13110eb4c3eead407958b + languageName: node + linkType: hard + +"@jimp/jpeg@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/jpeg@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + jpeg-js: "npm:^0.4.4" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/3ff0e72d6cb86d2ae968b8e82a4a01b828f0c21b95b2b74c9c9d17ab2f3ededbdbb87590659a3bd4d62a0b3e759818080d47a09aa6fca82388eda68106ae1b70 + languageName: node + linkType: hard + +"@jimp/plugin-blit@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-blit@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/f6a4f299e21e7ce25e6de11ca00fbd3afe18f437cb6083fdc31c6d81c9c72f4f68858a807794aa192d7ecafbf9f0a3cca6424452448664041b88eab559ca34bc + languageName: node + linkType: hard + +"@jimp/plugin-blur@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-blur@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/ea615a950d7425b965e7df36636cb82ba1c947b926110972a6861f45048bd92d328364911a4d2a42a7dc081b4d3f7a76fd66bafb250fed9ac5d3040652e690e9 + languageName: node + linkType: hard + +"@jimp/plugin-circle@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-circle@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/fd249aba896d1fb8b037f7f09759bedbc764e2b98c836c5c29967ba5a444e584a0d3da6a0ccaa34f0465b8a18662f5eb688ed17431744b4b96022afebd9d86b7 + languageName: node + linkType: hard + +"@jimp/plugin-color@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-color@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + tinycolor2: "npm:^1.6.0" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/330f5c90acd554b72672cd63af2ff236ea7aac76c604c693a17e5046621bcf787ae76d9d2b7531cf9ac7e983e9213bb9e4b130e2992f52be9541deda95dc3126 + languageName: node + linkType: hard + +"@jimp/plugin-contain@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-contain@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + "@jimp/plugin-blit": ">=0.3.5" + "@jimp/plugin-resize": ">=0.3.5" + "@jimp/plugin-scale": ">=0.3.5" + checksum: 10c0/1c8f9b9e0ca489947870f42b2640c89ceadd96293597e51ba2e23abbbb3f6115f0546d4105b0a31bef33457fd4758aa49d4b9e5dae687bda792dba1c84be2825 + languageName: node + linkType: hard + +"@jimp/plugin-cover@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-cover@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + "@jimp/plugin-crop": ">=0.3.5" + "@jimp/plugin-resize": ">=0.3.5" + "@jimp/plugin-scale": ">=0.3.5" + checksum: 10c0/5a8ff5d7ee1ebcf61af470650e4c14c1ce4f48382b46f8fe711a27a0cd450a2e5439c89aa0de5ce8170ec3d2268ff948510dc3c9d73741db268436be3a31f4bf + languageName: node + linkType: hard + +"@jimp/plugin-crop@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-crop@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/82ff13703013aa5781dde03887f635b9e7b9c9bc24ff131bb70cdba0e38cf22170bcbbae12cc420fd469691ea00644c80f7992af9d23a126d1f5f99aae7a6104 + languageName: node + linkType: hard + +"@jimp/plugin-displace@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-displace@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/c4bbe701be66601ad7f25fde9b145d1b384a3c2ca3d4ddf5a41c640d4c7389eb015da1b040e9181a3df228a48fa65c6eed7ad550364aade6b689f81631a75279 + languageName: node + linkType: hard + +"@jimp/plugin-dither@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-dither@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/3cee98f418c5b9402d4acb9f1a4cc77cbeb56a572ab582ecaec3c89e899f5ef4443f0c63a041a6209aba355e596d5d32c59d096786b445a57d81ae2004271fc3 + languageName: node + linkType: hard + +"@jimp/plugin-fisheye@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-fisheye@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/2c4bf08bc94b9f32f44c03db3135c25c5a23c9bc4eab4c169a29c1423af1434807f097878b6206708475e872afde275fc1a66044b48fb10426ac1133f27f399b + languageName: node + linkType: hard + +"@jimp/plugin-flip@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-flip@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + "@jimp/plugin-rotate": ">=0.3.5" + checksum: 10c0/9b49f306e9577617ff21ffbfd69622f4691745d1254bab6c649d0da6f67f375ba9b9393c021948c9602bc4edd6e07f590c78f2580dceaf8037db716c805b9354 + languageName: node + linkType: hard + +"@jimp/plugin-gaussian@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-gaussian@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/731cc9321af8e2d156ff590cc934b13b0c0ae22aac14480f6add54015e8e70266b2a6cdadb35ffe10ed28550d7f7c91197de5a0bfd7fe32f3d5a6fa7b695e0b9 + languageName: node + linkType: hard + +"@jimp/plugin-invert@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-invert@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/8173afd5f62526e0a626d20b43df2fc33f5a58e42ea2c1a510b911f83f6be9fe30b4d442ef37369d17c07019601e3ab82e4716d312285ea33cab5af3107ee553 + languageName: node + linkType: hard + +"@jimp/plugin-mask@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-mask@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/6bed599c2af25fc024f3568671fb1575059cd6e46186ada25b627ce511297d35adbfe9bdc7918981f4f5638b85490e29182d4b60370a62c64a28c9c0b6ce153b + languageName: node + linkType: hard + +"@jimp/plugin-normalize@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-normalize@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/abf9840705e1e8fc793d6ff880a13e6996d256f3f8f330c72790d231b77143a2ba659e2e6e9fdafce685979c039da1edab8d311ed4a2680521c7631e83686df5 + languageName: node + linkType: hard + +"@jimp/plugin-print@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-print@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + load-bmfont: "npm:^1.4.1" + peerDependencies: + "@jimp/custom": ">=0.3.5" + "@jimp/plugin-blit": ">=0.3.5" + checksum: 10c0/e19e38c7762cf3a83b5b76af9079ca5f246f35bc73adabb7c8f4455555aa93b86cd719f194cabc4618f04f66110c48d2555c2035c9f86f00978d2f7fb3601ea2 + languageName: node + linkType: hard + +"@jimp/plugin-resize@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-resize@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/a43d6d1580d9b2eaf5c02713c141e3158f8f5c59c5e8796b9b79b5ce3db8892790fff92c828bada622324ad7648078646302013fcb971d538aa87b8b7faa3d0d + languageName: node + linkType: hard + +"@jimp/plugin-rotate@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-rotate@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + "@jimp/plugin-blit": ">=0.3.5" + "@jimp/plugin-crop": ">=0.3.5" + "@jimp/plugin-resize": ">=0.3.5" + checksum: 10c0/0ad4383f3bf9916630141ac7371e81f1d6bbe5621de04ca632401c2eb749bf7faa59e4dedeb72d305f81a5510abacf5e060f2faf8ffa3a5b530a67f88cf70392 + languageName: node + linkType: hard + +"@jimp/plugin-scale@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-scale@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + "@jimp/plugin-resize": ">=0.3.5" + checksum: 10c0/1a901eb8a7f218aa7737a6a84dfecc8ea8a99830139a383180bb9ebd1d14a8bb07ec51f6b9fd0d213e129366c0c85abe9335b264ab818c62100c7216d46c9e9c + languageName: node + linkType: hard + +"@jimp/plugin-shadow@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-shadow@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + "@jimp/plugin-blur": ">=0.3.5" + "@jimp/plugin-resize": ">=0.3.5" + checksum: 10c0/e0292808940fbebd9132db80df075c89ecc65375b73e99746ae5bd90931ac2d67457619b939b475f3713cd1ed991d79c961ba9485627384fd736fa3d2de2cde8 + languageName: node + linkType: hard + +"@jimp/plugin-threshold@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugin-threshold@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + peerDependencies: + "@jimp/custom": ">=0.3.5" + "@jimp/plugin-color": ">=0.8.0" + "@jimp/plugin-resize": ">=0.8.0" + checksum: 10c0/cb8ee511dfcd88c22a11894c13bf1258586adad43f3887bb2d403abe4526176f9a26d4e7a53c9a9e4599891cff2d4f117660a822df8b2680b66f472dc8ce24b4 + languageName: node + linkType: hard + +"@jimp/plugins@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/plugins@npm:0.22.12" + dependencies: + "@jimp/plugin-blit": "npm:^0.22.12" + "@jimp/plugin-blur": "npm:^0.22.12" + "@jimp/plugin-circle": "npm:^0.22.12" + "@jimp/plugin-color": "npm:^0.22.12" + "@jimp/plugin-contain": "npm:^0.22.12" + "@jimp/plugin-cover": "npm:^0.22.12" + "@jimp/plugin-crop": "npm:^0.22.12" + "@jimp/plugin-displace": "npm:^0.22.12" + "@jimp/plugin-dither": "npm:^0.22.12" + "@jimp/plugin-fisheye": "npm:^0.22.12" + "@jimp/plugin-flip": "npm:^0.22.12" + "@jimp/plugin-gaussian": "npm:^0.22.12" + "@jimp/plugin-invert": "npm:^0.22.12" + "@jimp/plugin-mask": "npm:^0.22.12" + "@jimp/plugin-normalize": "npm:^0.22.12" + "@jimp/plugin-print": "npm:^0.22.12" + "@jimp/plugin-resize": "npm:^0.22.12" + "@jimp/plugin-rotate": "npm:^0.22.12" + "@jimp/plugin-scale": "npm:^0.22.12" + "@jimp/plugin-shadow": "npm:^0.22.12" + "@jimp/plugin-threshold": "npm:^0.22.12" + timm: "npm:^1.6.1" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/db6f9b5886e8af53615638713732295e7fdce9397685da0282b9b9cc69839135e586948d4c9f9e459a8608ca9f659198b7b6ab25d6b1303a7b3a54f43f699a23 + languageName: node + linkType: hard + +"@jimp/png@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/png@npm:0.22.12" + dependencies: + "@jimp/utils": "npm:^0.22.12" + pngjs: "npm:^6.0.0" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/99a6fcf49d43c98c12fc26e017046b774d82453163662effa9a53dbf2a8aca5450f6b13bdef0292fdb326f1f18c4dbeeb8b1fe7bce096d07cd9f1af96e1b3fa3 + languageName: node + linkType: hard + +"@jimp/tiff@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/tiff@npm:0.22.12" + dependencies: + utif2: "npm:^4.0.1" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/14f545efef722254232fd44e5f837ca8f84ce8cdf0eb3156bba4938a81674848c75effba69cf2a484018da5a81ad2b80be29523b20e7103307a2ce67a8192539 + languageName: node + linkType: hard + +"@jimp/types@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/types@npm:0.22.12" + dependencies: + "@jimp/bmp": "npm:^0.22.12" + "@jimp/gif": "npm:^0.22.12" + "@jimp/jpeg": "npm:^0.22.12" + "@jimp/png": "npm:^0.22.12" + "@jimp/tiff": "npm:^0.22.12" + timm: "npm:^1.6.1" + peerDependencies: + "@jimp/custom": ">=0.3.5" + checksum: 10c0/62440b2ca490f7dca5943dde8b9c2f154240d1349563263faf299d476365b93bb94a7e892ce4685cc817ca087850ffc0914c27662164f5be90f4d4dad97fc46e + languageName: node + linkType: hard + +"@jimp/utils@npm:^0.22.12": + version: 0.22.12 + resolution: "@jimp/utils@npm:0.22.12" + dependencies: + regenerator-runtime: "npm:^0.13.3" + checksum: 10c0/c2ce050db71c5f98e8930ca6e48265edeac930afe98325e427a7b8c897e5f796538f7f75460e1ab26d0edaea0c9aea4bf7184f6a686db82f1d18cf6e5f890f99 + languageName: node + linkType: hard + "@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": version: 0.3.3 resolution: "@jridgewell/gen-mapping@npm:0.3.3" @@ -4275,6 +4666,13 @@ __metadata: languageName: node linkType: hard +"@tokenizer/token@npm:^0.3.0": + version: 0.3.0 + resolution: "@tokenizer/token@npm:0.3.0" + checksum: 10c0/7ab9a822d4b5ff3f5bca7f7d14d46bdd8432528e028db4a52be7fbf90c7f495cc1af1324691dda2813c6af8dc4b8eb29de3107d4508165f9aa5b53e7d501f155 + languageName: node + linkType: hard + "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -4702,6 +5100,13 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:16.9.1": + version: 16.9.1 + resolution: "@types/node@npm:16.9.1" + checksum: 10c0/17877153b2fe748e85dd85432c7d6776cfaced7fd69f1998d005812d4865ac02e192a3adde7869ba8f449550f0a80ea6e3369e449a07c587e71222c56478e7d4 + languageName: node + linkType: hard + "@types/node@npm:^17.0.5": version: 17.0.45 resolution: "@types/node@npm:17.0.45" @@ -5726,6 +6131,13 @@ __metadata: languageName: node linkType: hard +"any-base@npm:^1.1.0": + version: 1.1.0 + resolution: "any-base@npm:1.1.0" + checksum: 10c0/1255cccb2c2ead4aa182eca000fd8aa0c1991d91781ff54e26323c132117ed23eb10eef057c0dcf1d919ab30d78e5b11bd8d88940352fc84586ecb961cc76466 + languageName: node + linkType: hard + "anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" @@ -6188,6 +6600,13 @@ __metadata: languageName: node linkType: hard +"bmp-js@npm:^0.1.0": + version: 0.1.0 + resolution: "bmp-js@npm:0.1.0" + checksum: 10c0/c651bd5936dcf8d67900050fac14dcbe30baf87c3d21c58f4934fcdf46172e152a87d8c0c3ca25caa2b4b2c7780ef3b5fcc6cd20afd8f0351856cadb1bef9694 + languageName: node + linkType: hard + "body-parser@npm:1.20.1": version: 1.20.1 resolution: "body-parser@npm:1.20.1" @@ -6308,6 +6727,13 @@ __metadata: languageName: node linkType: hard +"buffer-equal@npm:0.0.1": + version: 0.0.1 + resolution: "buffer-equal@npm:0.0.1" + checksum: 10c0/2fdcc84ac89032c1db8f393a550f6936f407796c15c9a2eac7b5d1cd1481621215e33d7c768a948e906ea6ae9cf054bbd5aa4492dd68d343f5a12fd48e1c1f67 + languageName: node + linkType: hard + "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -6315,6 +6741,16 @@ __metadata: languageName: node linkType: hard +"buffer@npm:^5.2.0": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.1.13" + checksum: 10c0/27cac81cff434ed2876058d72e7c4789d11ff1120ef32c9de48f59eab58179b66710c488987d295ae89a228f835fc66d088652dffeb8e3ba8659f80eb091d55e + languageName: node + linkType: hard + "buffer@npm:^6.0.3, not-node-buffer@npm:buffer@^6.0.3": version: 6.0.3 resolution: "buffer@npm:6.0.3" @@ -7949,6 +8385,13 @@ __metadata: languageName: node linkType: hard +"dom-walk@npm:^0.1.0": + version: 0.1.2 + resolution: "dom-walk@npm:0.1.2" + checksum: 10c0/4d2ad9062a9423d890f8577aa202b597a6b85f9489bdde656b9443901b8b322b289655c3affefc58ec2e41931e0828dfee0a1d2db6829a607d76def5901fc5a9 + languageName: node + linkType: hard + "domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0": version: 2.3.0 resolution: "domelementtype@npm:2.3.0" @@ -8793,6 +9236,13 @@ __metadata: languageName: node linkType: hard +"exif-parser@npm:^0.1.12": + version: 0.1.12 + resolution: "exif-parser@npm:0.1.12" + checksum: 10c0/ef1df84edbba50621fcfe19510c8db3ddd9e7fb374459d3f77c9256c24584767c7fb4cf1b15aef46e87a06528d3c48e44de02cecc314656d22a5cf954a0e7192 + languageName: node + linkType: hard + "exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" @@ -9071,6 +9521,17 @@ __metadata: languageName: node linkType: hard +"file-type@npm:^16.5.4": + version: 16.5.4 + resolution: "file-type@npm:16.5.4" + dependencies: + readable-web-to-node-stream: "npm:^3.0.0" + strtok3: "npm:^6.2.4" + token-types: "npm:^4.1.1" + checksum: 10c0/a6c9ab8bc05bc9c212bec239fb0d5bf59ddc9b3912f00c4ef44622e67ae4e553a1cc8372e9e595e14859035188eb305d05d488fa3c5c2a2ad90bb7745b3004ef + languageName: node + linkType: hard + "file-uri-to-path@npm:1.0.0": version: 1.0.0 resolution: "file-uri-to-path@npm:1.0.0" @@ -9552,6 +10013,16 @@ __metadata: languageName: node linkType: hard +"gifwrap@npm:^0.10.1": + version: 0.10.1 + resolution: "gifwrap@npm:0.10.1" + dependencies: + image-q: "npm:^4.0.0" + omggif: "npm:^1.0.10" + checksum: 10c0/dd7327725d47c15bd4b23b69dc149043adff9013e352280a3f86a965eecab7f3e6027ecbb4177b05a6ab3bd1995f447f7adb9fdcb41db4372d8a239859f22492 + languageName: node + linkType: hard + "github-slugger@npm:^1.5.0": version: 1.5.0 resolution: "github-slugger@npm:1.5.0" @@ -9655,6 +10126,16 @@ __metadata: languageName: node linkType: hard +"global@npm:~4.4.0": + version: 4.4.0 + resolution: "global@npm:4.4.0" + dependencies: + min-document: "npm:^2.19.0" + process: "npm:^0.11.10" + checksum: 10c0/4a467aec6602c00a7c5685f310574ab04e289ad7f894f0f01c9c5763562b82f4b92d1e381ce6c5bbb12173e2a9f759c1b63dda6370cfb199970267e14d90aa91 + languageName: node + linkType: hard + "globals@npm:^11.1.0": version: 11.12.0 resolution: "globals@npm:11.12.0" @@ -10354,7 +10835,7 @@ __metadata: languageName: node linkType: hard -"ieee754@npm:^1.2.1": +"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb @@ -10393,6 +10874,15 @@ __metadata: languageName: node linkType: hard +"image-q@npm:^4.0.0": + version: 4.0.0 + resolution: "image-q@npm:4.0.0" + dependencies: + "@types/node": "npm:16.9.1" + checksum: 10c0/4463f8f4c0b6897c2213dfccf08c7731edcaa0ff8e2dab81ce3cafd5bb97d4eaa7bdd64f715d616910cf7b87aba718e4326ed4270b5d13bccc49af24bf5ce1a1 + languageName: node + linkType: hard + "image-size@npm:^1.0.2": version: 1.1.1 resolution: "image-size@npm:1.1.1" @@ -10758,6 +11248,13 @@ __metadata: languageName: node linkType: hard +"is-function@npm:^1.0.1": + version: 1.0.2 + resolution: "is-function@npm:1.0.2" + checksum: 10c0/c55289042a0e828a773f1245e2652e0c029efacc78ebe03e61787746fda74e2c41006cd908f20b53c36e45f9e75464475a4b2d68b17f4c7b9f8018bcaec42f9e + languageName: node + linkType: hard + "is-generator-fn@npm:^2.0.0": version: 2.1.0 resolution: "is-generator-fn@npm:2.1.0" @@ -11102,6 +11599,16 @@ __metadata: languageName: node linkType: hard +"isomorphic-fetch@npm:^3.0.0": + version: 3.0.0 + resolution: "isomorphic-fetch@npm:3.0.0" + dependencies: + node-fetch: "npm:^2.6.1" + whatwg-fetch: "npm:^3.4.1" + checksum: 10c0/511b1135c6d18125a07de661091f5e7403b7640060355d2d704ce081e019bc1862da849482d079ce5e2559b8976d3de7709566063aec1b908369c0b98a2b075b + languageName: node + linkType: hard + "istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": version: 3.2.2 resolution: "istanbul-lib-coverage@npm:3.2.2" @@ -11710,6 +12217,18 @@ __metadata: languageName: node linkType: hard +"jimp@npm:^0.22.12": + version: 0.22.12 + resolution: "jimp@npm:0.22.12" + dependencies: + "@jimp/custom": "npm:^0.22.12" + "@jimp/plugins": "npm:^0.22.12" + "@jimp/types": "npm:^0.22.12" + regenerator-runtime: "npm:^0.13.3" + checksum: 10c0/f224aa7e8cb703eb23ecb7ef76f0b0290ef2a586f1dfce69d831a8e76c25ef8bee8dc0d0b5e95956c24c58df8a20df44f268fc9bb3bdece5c8175270dab47f2e + languageName: node + linkType: hard + "jiti@npm:^1.20.0": version: 1.21.0 resolution: "jiti@npm:1.21.0" @@ -11739,6 +12258,13 @@ __metadata: languageName: node linkType: hard +"jpeg-js@npm:^0.4.4": + version: 0.4.4 + resolution: "jpeg-js@npm:0.4.4" + checksum: 10c0/4d0d5097f8e55d8bbce6f1dc32ffaf3f43f321f6222e4e6490734fdc6d005322e3bd6fb992c2df7f5b587343b1441a1c333281dc3285bc9116e369fd2a2b43a7 + languageName: node + linkType: hard + "js-string-escape@npm:^1.0.1": version: 1.0.1 resolution: "js-string-escape@npm:1.0.1" @@ -12056,6 +12582,22 @@ __metadata: languageName: node linkType: hard +"load-bmfont@npm:^1.4.1": + version: 1.4.1 + resolution: "load-bmfont@npm:1.4.1" + dependencies: + buffer-equal: "npm:0.0.1" + mime: "npm:^1.3.4" + parse-bmfont-ascii: "npm:^1.0.3" + parse-bmfont-binary: "npm:^1.0.5" + parse-bmfont-xml: "npm:^1.1.4" + phin: "npm:^2.9.1" + xhr: "npm:^2.0.1" + xtend: "npm:^4.0.0" + checksum: 10c0/b4a2201a4e72f9d5822a90a4eb4c0dd099ee961f836dc1211f56c412df39e2ff0b3385cfde63bfb6fc96161bc5670ec19a231543ec4cda960a28bd33fcebacb3 + languageName: node + linkType: hard + "load-json-file@npm:^7.0.1": version: 7.0.1 resolution: "load-json-file@npm:7.0.1" @@ -13233,7 +13775,7 @@ __metadata: languageName: node linkType: hard -"mime@npm:1.6.0": +"mime@npm:1.6.0, mime@npm:^1.3.4": version: 1.6.0 resolution: "mime@npm:1.6.0" bin: @@ -13286,6 +13828,15 @@ __metadata: languageName: node linkType: hard +"min-document@npm:^2.19.0": + version: 2.19.0 + resolution: "min-document@npm:2.19.0" + dependencies: + dom-walk: "npm:^0.1.0" + checksum: 10c0/783724da716fc73a51c171865d7b29bf2b855518573f82ef61c40d214f6898d7b91b5c5419e4d22693cdb78d4615873ebc3b37d7639d3dd00ca283e5a07c7af9 + languageName: node + linkType: hard + "mini-css-extract-plugin@npm:^2.7.6": version: 2.8.0 resolution: "mini-css-extract-plugin@npm:2.8.0" @@ -13585,7 +14136,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.7": +"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -13945,6 +14496,13 @@ __metadata: languageName: node linkType: hard +"omggif@npm:^1.0.10, omggif@npm:^1.0.9": + version: 1.0.10 + resolution: "omggif@npm:1.0.10" + checksum: 10c0/5ddb6959555bf16ac93ee8724a6f600b0e97e77855515af9df0f657c69ebe0eb7d769763fdc4765f888827e4e64ca71ebeaf7255c7f51058e4bba5cc7950fe8e + languageName: node + linkType: hard + "on-finished@npm:2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" @@ -14205,6 +14763,13 @@ __metadata: languageName: node linkType: hard +"pako@npm:^1.0.11": + version: 1.0.11 + resolution: "pako@npm:1.0.11" + checksum: 10c0/86dd99d8b34c3930345b8bbeb5e1cd8a05f608eeb40967b293f72fe469d0e9c88b783a8777e4cc7dc7c91ce54c5e93d88ff4b4f060e6ff18408fd21030d9ffbe + languageName: node + linkType: hard + "param-case@npm:^3.0.4": version: 3.0.4 resolution: "param-case@npm:3.0.4" @@ -14224,6 +14789,30 @@ __metadata: languageName: node linkType: hard +"parse-bmfont-ascii@npm:^1.0.3": + version: 1.0.6 + resolution: "parse-bmfont-ascii@npm:1.0.6" + checksum: 10c0/f76c57be4678fbb05221e263b21671fa3dbe03d0bae7be133b7f102dbe666958811759b615bfcfc81d76a34efeae1fb76c3305a5a4f28e14eb3baa9ec72c8c4f + languageName: node + linkType: hard + +"parse-bmfont-binary@npm:^1.0.5": + version: 1.0.6 + resolution: "parse-bmfont-binary@npm:1.0.6" + checksum: 10c0/2bcc4f041871ce9cec767105a9438704f114ef43c5827754c4dbcd821f792ec440f8120944d3a5396503e4387e68269ba68d933668a92a3322ad32a079911ea4 + languageName: node + linkType: hard + +"parse-bmfont-xml@npm:^1.1.4": + version: 1.1.6 + resolution: "parse-bmfont-xml@npm:1.1.6" + dependencies: + xml-parse-from-string: "npm:^1.0.0" + xml2js: "npm:^0.5.0" + checksum: 10c0/e18e816a2553d3d34795e5a60b584f64a327d4a92f83b48dcb01b9ec30fc75b5338488d9f9d25cd8b463665c13f59264464f39e73c0e8d8d3665ce7f4f128328 + languageName: node + linkType: hard + "parse-conflict-json@npm:^3.0.0": version: 3.0.1 resolution: "parse-conflict-json@npm:3.0.1" @@ -14251,6 +14840,13 @@ __metadata: languageName: node linkType: hard +"parse-headers@npm:^2.0.0": + version: 2.0.5 + resolution: "parse-headers@npm:2.0.5" + checksum: 10c0/950d75034f46be8b77c491754aefa61b32954e675200d9247ec60b2acaf85c0cc053c44e44b35feed9034a34cc696a5b6fda693b5a0b23daf3294959dd216124 + languageName: node + linkType: hard + "parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" @@ -14430,6 +15026,13 @@ __metadata: languageName: node linkType: hard +"peek-readable@npm:^4.1.0": + version: 4.1.0 + resolution: "peek-readable@npm:4.1.0" + checksum: 10c0/f9b81ce3eed185cc9ebbf7dff0b6e130dd6da7b05f1802bbf726a78e4d84990b0a65f8e701959c50eb1124cc2ad352205147954bf39793faba29bb00ce742a44 + languageName: node + linkType: hard + "pegjs@npm:^0.10.0": version: 0.10.0 resolution: "pegjs@npm:0.10.0" @@ -14450,6 +15053,13 @@ __metadata: languageName: node linkType: hard +"phin@npm:^2.9.1": + version: 2.9.3 + resolution: "phin@npm:2.9.3" + checksum: 10c0/5bb94493f1bf1f0b66ca08aee6aaa488c46f4a8af2722d94ef9c8e4aaa3a5952e19aeff37f832ed64a71c98124c73936a30caef42973be21350b36af5fc33ab8 + languageName: node + linkType: hard + "picocolors@npm:^1.0.0": version: 1.0.0 resolution: "picocolors@npm:1.0.0" @@ -14485,6 +15095,17 @@ __metadata: languageName: node linkType: hard +"pixelmatch@npm:^4.0.2": + version: 4.0.2 + resolution: "pixelmatch@npm:4.0.2" + dependencies: + pngjs: "npm:^3.0.0" + bin: + pixelmatch: bin/pixelmatch + checksum: 10c0/81fee4a8f3f8d462ada5fc7809399384f99c137fa44974e9eddd52dcd0f0d5838387e2c4cd2397f6adbbc2a6728688ff6124faf0091a1c776d57277f9d42e9fa + languageName: node + linkType: hard + "pkg-dir@npm:^4.2.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" @@ -14532,6 +15153,20 @@ __metadata: languageName: node linkType: hard +"pngjs@npm:^3.0.0": + version: 3.4.0 + resolution: "pngjs@npm:3.4.0" + checksum: 10c0/88ee73e2ad3f736e0b2573722309eb80bd2aa28916f0862379b4fd0f904751b4f61bb6bd1ecd7d4242d331f2b5c28c13309dd4b7d89a9b78306e35122fdc5011 + languageName: node + linkType: hard + +"pngjs@npm:^6.0.0": + version: 6.0.0 + resolution: "pngjs@npm:6.0.0" + checksum: 10c0/ac23ea329b1881d1a10575aff58116dc27b894ec3f5b84ba15c7f527d21e609fbce7ba16d48f8ccb86c7ce45ceed622472765476ab2875949d4bec55e153f87a + languageName: node + linkType: hard + "postcss-calc@npm:^8.2.3": version: 8.2.4 resolution: "postcss-calc@npm:8.2.4" @@ -15090,6 +15725,13 @@ __metadata: languageName: node linkType: hard +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3 + languageName: node + linkType: hard + "promise-all-reject-late@npm:^1.0.0": version: 1.0.1 resolution: "promise-all-reject-late@npm:1.0.1" @@ -15564,6 +16206,15 @@ __metadata: languageName: node linkType: hard +"readable-web-to-node-stream@npm:^3.0.0": + version: 3.0.2 + resolution: "readable-web-to-node-stream@npm:3.0.2" + dependencies: + readable-stream: "npm:^3.6.0" + checksum: 10c0/533d5cd1580232a2c753e52a245be13fc552e6f82c5053a8a8da7ea1063d73a34f936a86b3d4433cdb4a13dd683835cfc87f230936cb96d329a1e28b6040f42e + languageName: node + linkType: hard + "readdirp@npm:~3.6.0": version: 3.6.0 resolution: "readdirp@npm:3.6.0" @@ -15614,6 +16265,13 @@ __metadata: languageName: node linkType: hard +"regenerator-runtime@npm:^0.13.3": + version: 0.13.11 + resolution: "regenerator-runtime@npm:0.13.11" + checksum: 10c0/12b069dc774001fbb0014f6a28f11c09ebfe3c0d984d88c9bced77fdb6fedbacbca434d24da9ae9371bfbf23f754869307fb51a4c98a8b8b18e5ef748677ca24 + languageName: node + linkType: hard + "regenerator-runtime@npm:^0.14.0": version: 0.14.1 resolution: "regenerator-runtime@npm:0.14.1" @@ -16201,7 +16859,7 @@ __metadata: languageName: node linkType: hard -"sax@npm:^1.2.4": +"sax@npm:>=0.6.0, sax@npm:^1.2.4": version: 1.3.0 resolution: "sax@npm:1.3.0" checksum: 10c0/599dbe0ba9d8bd55e92d920239b21d101823a6cedff71e542589303fa0fa8f3ece6cf608baca0c51be846a2e88365fac94a9101a9c341d94b98e30c4deea5bea @@ -17135,6 +17793,16 @@ __metadata: languageName: node linkType: hard +"strtok3@npm:^6.2.4": + version: 6.3.0 + resolution: "strtok3@npm:6.3.0" + dependencies: + "@tokenizer/token": "npm:^0.3.0" + peek-readable: "npm:^4.1.0" + checksum: 10c0/8f1483a2a6758404502f2fc431586fcf37d747b10b125596ab5ec92319c247dd1195f82ba0bc2eaa582db3d807b5cca4b67ff61411756fec6622d051f8e255c2 + languageName: node + linkType: hard + "style-mod@npm:^4.0.0, style-mod@npm:^4.1.0": version: 4.1.0 resolution: "style-mod@npm:4.1.0" @@ -17406,6 +18074,13 @@ __metadata: languageName: node linkType: hard +"timm@npm:^1.6.1": + version: 1.7.1 + resolution: "timm@npm:1.7.1" + checksum: 10c0/28759984dac61dce80a250eb6fed42803f834658b77ef0ebec869cc663110a05e8d453cc317f63fe8c8b3a3401a277dc3483324a652b05a4621a4563eaacabad + languageName: node + linkType: hard + "tiny-invariant@npm:^1.0.2": version: 1.3.1 resolution: "tiny-invariant@npm:1.3.1" @@ -17427,6 +18102,13 @@ __metadata: languageName: node linkType: hard +"tinycolor2@npm:^1.6.0": + version: 1.6.0 + resolution: "tinycolor2@npm:1.6.0" + checksum: 10c0/9aa79a36ba2c2a87cb221453465cabacd04b9e35f9694373e846fdc78b1c768110f81e581ea41440106c0f24d9a023891d0887e8075885e790ac40eb0e74a5c1 + languageName: node + linkType: hard + "tinypool@npm:^0.8.2": version: 0.8.2 resolution: "tinypool@npm:0.8.2" @@ -17480,6 +18162,16 @@ __metadata: languageName: node linkType: hard +"token-types@npm:^4.1.1": + version: 4.2.1 + resolution: "token-types@npm:4.2.1" + dependencies: + "@tokenizer/token": "npm:^0.3.0" + ieee754: "npm:^1.2.1" + checksum: 10c0/e9a4a139deba9515770cd7ac36a8f53f953b9d035d309e88a66d706760dba0df420753f2b8bdee6b9f3cbff8d66b24e69571e8dea27baa7b378229ab1bcca399 + languageName: node + linkType: hard + "totalist@npm:^3.0.0": version: 3.0.1 resolution: "totalist@npm:3.0.1" @@ -18050,6 +18742,15 @@ __metadata: languageName: node linkType: hard +"utif2@npm:^4.0.1": + version: 4.1.0 + resolution: "utif2@npm:4.1.0" + dependencies: + pako: "npm:^1.0.11" + checksum: 10c0/c60fd91427548f6b866b66fa983d7f08347aef0ac4c5b85b517dd70a5b0031548f3496e55dad28435031534fda0d237673d881636ff60845bf4a014dc9edf676 + languageName: node + linkType: hard + "util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -18548,6 +19249,7 @@ __metadata: clsx: "npm:^2.1.0" fast-check: "workspace:*" jest: "npm:^29.7.0" + jimp: "npm:^0.22.12" prism-react-renderer: "npm:^2.3.1" react: "npm:^18.2.0" react-dom: "npm:^18.2.0" @@ -18589,6 +19291,13 @@ __metadata: languageName: node linkType: hard +"whatwg-fetch@npm:^3.4.1": + version: 3.6.20 + resolution: "whatwg-fetch@npm:3.6.20" + checksum: 10c0/fa972dd14091321d38f36a4d062298df58c2248393ef9e8b154493c347c62e2756e25be29c16277396046d6eaa4b11bd174f34e6403fff6aaca9fb30fa1ff46d + languageName: node + linkType: hard + "whatwg-mimetype@npm:^3.0.0": version: 3.0.0 resolution: "whatwg-mimetype@npm:3.0.0" @@ -19041,6 +19750,18 @@ __metadata: languageName: node linkType: hard +"xhr@npm:^2.0.1": + version: 2.6.0 + resolution: "xhr@npm:2.6.0" + dependencies: + global: "npm:~4.4.0" + is-function: "npm:^1.0.1" + parse-headers: "npm:^2.0.0" + xtend: "npm:^4.0.0" + checksum: 10c0/b73b6413b678846c422559cbc0afb2acb34c3a75b4c3bbee1f258e984255a8b8d65c1749b51691278bbdc28781782950d77a759ef5a9adf7774bed2f5dabc954 + languageName: node + linkType: hard + "xml-js@npm:^1.6.11": version: 1.6.11 resolution: "xml-js@npm:1.6.11" @@ -19059,6 +19780,30 @@ __metadata: languageName: node linkType: hard +"xml-parse-from-string@npm:^1.0.0": + version: 1.0.1 + resolution: "xml-parse-from-string@npm:1.0.1" + checksum: 10c0/485fd096818c360dce4a115444f2157a4ab61b0ec99753b0381ce40a26978dc2eceb8079bcbbbd5cd570901cd7aa7310cad3d5c47084602a5dbf7e530a59edda + languageName: node + linkType: hard + +"xml2js@npm:^0.5.0": + version: 0.5.0 + resolution: "xml2js@npm:0.5.0" + dependencies: + sax: "npm:>=0.6.0" + xmlbuilder: "npm:~11.0.0" + checksum: 10c0/c9cd07cd19c5e41c740913bbbf16999a37a204488e11f86eddc2999707d43967197e257014d7ed72c8fc4348c192fa47eb352d1d9d05637cefd0d2e24e9aa4c8 + languageName: node + linkType: hard + +"xmlbuilder@npm:~11.0.0": + version: 11.0.1 + resolution: "xmlbuilder@npm:11.0.1" + checksum: 10c0/74b979f89a0a129926bc786b913459bdbcefa809afaa551c5ab83f89b1915bdaea14c11c759284bb9b931e3b53004dbc2181e21d3ca9553eeb0b2a7b4e40c35b + languageName: node + linkType: hard + "xmlchars@npm:^2.2.0": version: 2.2.0 resolution: "xmlchars@npm:2.2.0" @@ -19066,6 +19811,13 @@ __metadata: languageName: node linkType: hard +"xtend@npm:^4.0.0": + version: 4.0.2 + resolution: "xtend@npm:4.0.2" + checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e + languageName: node + linkType: hard + "y18n@npm:^4.0.0": version: 4.0.3 resolution: "y18n@npm:4.0.3" -- 2.51.2