From ae7c6b5cb767019d64359d208997f86ebda58597 Mon Sep 17 00:00:00 2001 From: c2tz <95414249+c2tz@users.noreply.github.com> Date: Wed, 18 Dec 2024 10:30:48 +0000 Subject: [PATCH] feat: modify text, font, npm scripts (#9) * refactor(SEO): add a restrictive robots.txt refactor(SEO): add a restrictive robots.txt For now i don't want to use SEO for cta.li only when i finish the work. Reviewed-by: @c2tz Refs: #2 * refactor(PWA): add a manifest.webmanifest file refactor(PWA): add a manifest.webmanifest file He shouldn't work well for develop branch (i use staging.cta.li) because start_url is not correctly completed but that not important. The next PWA scope commit would be the png, webp files. Reviewed-by: @c2tz Refs: #2 * refactor(PWA): add all manifest requested pics refactor(PWA): add all manifest.webmanifest requested pics Second parts with requested pics for manifest.webmanifest files. Reviewed-by: @c2tz Refs: #2 * test(PWA): rename manifest.w... to manifest.json test(PWA): rename manifest.w... to manifest.json Vercel seems to have already a file with that name and that create a conflict so i test with manifest.json for now but that not conventional. see: https://www.w3.org/TR/appmanifest/#using-a-link-element-to-link-to-a-manifest Reviewed-by: @c2tz Refs: #2 * Revert "test(PWA): rename manifest.w... to manifest.json" This reverts commit f31020f0e5b3b44d6f63c2abdf7042d69e1707eb. * feat(pics): add other pics files feat(pics): add other pics files Just add other files like favicon apple-touch-icon.png mask.webp (footer), i should make a chore commits for later for remove unused pics. Reviewed-by: @c2tz Refs: #2 * refactor(SEO): add a sitemap.xml refactor(SEO): add a sitemap.xml For now i don't want to use SEO for cta.li only when i finish the work. Reviewed-by: @c2tz Refs: #2 * test(PWA): try to correct error 401 about manifest test(PWA): try to correct error 401 about manifest Only test i've found this https://medium.com/@aurelien.delogu/401-error-on-a-webmanifest-file-cb9e3678b9f3 that can be cause by CORS Reviewed-by: @c2tz Refs: #2 * feat(fonts): add a fonts folder with roboto fonts refactor(SEO): add a sitemap.xml Just add fonts folder with roboto regular and bold. No need to add mono for now. That should now be finIsh for #2 Reviewed-by: @c2tz Refs: #2 * ci(prettier): add prettier in ci ci(prettier): add prettier in ci Add prettier for workflows just for test now. Reviewed-by: @c2tz Refs: #1 * test(ci): test prettier test(ci): test prettier Test prettier now. Reviewed-by: @c2tz Refs: #NC * test(ci): change pull request to push test(ci): change pull request to push Add prettier for workflows just for test now. Reviewed-by: @c2tz Refs: #1 * test(ci): change workflow name test(ci): change workflow name Add prettier for workflows just for test now. Reviewed-by: @c2tz Refs: #1 * test(ci): change permission for action test(ci): change permission for action Add prettier for workflows just for test now. Reviewed-by: @c2tz Refs: #1 * Update main.yaml * Update package.json * Update main.yaml * Update package.json * Update package.json * Update main.yaml * Update main.yaml * Update main.yaml * Update package.json * simplify workflow * Update main.yaml * test prettier ci * Update main.yaml * add stylelint * Update l.html * add html minifier and modify index * remove prettier for now * Update and rename main.yaml to prettier.yaml * Create stylelint.yaml * Create minify.yml (#8) * Update minify.yml * Update minify.yml * Add minified HTML and CSS files * test minify * Add minified HTML and CSS files * Update minify.yml * Rename prettier.yaml to prettier.yaml.old * test: discord webhook and matrix bridge * test: disable stylelint for retesting with no error test description * test: discord and matrix again * test: firebase auth * test: delete csp for test * test: remove firebase script for now * test: recover csp * test: gpg key * test: gpg key * feat: add gpg key and text * feat: add italic font + few mod * feat: change matrix contact --------- Co-authored-by: github-actions[bot] --- .github/workflows/minify.yml | 31 + .github/workflows/prettier.yaml.old | 18 + .github/workflows/stylelint.yaml | 19 + .gitignore | 1 + .prettierignore | 4 +- .stylelintrc.json | 1 + package-lock.json | 1751 +++++++++++++---- package.json | 16 +- static/403.html | 7 +- static/404.html | 7 +- ...bold.woff2 => roboto-v30-bold-latin.woff2} | Bin .../roboto-v30-regular-italic-latin.woff2 | Bin 0 -> 17368 bytes ...r.woff2 => roboto-v30-regular-latin.woff2} | Bin static/l.html | 71 +- static/main.css | 186 +- ...6d664823912f3ec7a123a250401a584f6d64fc.asc | 13 + 16 files changed, 1471 insertions(+), 654 deletions(-) create mode 100644 .github/workflows/minify.yml create mode 100644 .github/workflows/prettier.yaml.old create mode 100644 .github/workflows/stylelint.yaml create mode 100644 .stylelintrc.json rename static/fonts/{roboto-v30-latin-bold.woff2 => roboto-v30-bold-latin.woff2} (100%) create mode 100644 static/fonts/roboto-v30-regular-italic-latin.woff2 rename static/fonts/{roboto-v30-latin-regular.woff2 => roboto-v30-regular-latin.woff2} (100%) create mode 100644 static/publickey.c2tz@cta.li-7e6d664823912f3ec7a123a250401a584f6d64fc.asc diff --git a/.github/workflows/minify.yml b/.github/workflows/minify.yml new file mode 100644 index 0000000..fcb88dc --- /dev/null +++ b/.github/workflows/minify.yml @@ -0,0 +1,31 @@ +name: Code Minify (HTMLMinifier) +on: + push: + branches: [main] +jobs: + html-minifier-terser: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: 20 + - name: Install dependencies + run: npm install -D + - name: Minify HTML + run: npm run minifier-html:format + - name: Minify CSS + run: npm run minifier-css:format + - name: Add minified files to commit + run: | + git config --local user.email "action[bot]@github.com" + git config --local user.name "github-actions[bot]" + git add static/*.html static/*.css + git commit -m "Add minified HTML and CSS files" + - name: Push Changes to GitHub + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: ${{ github.ref }} + force: false diff --git a/.github/workflows/prettier.yaml.old b/.github/workflows/prettier.yaml.old new file mode 100644 index 0000000..b6a98a2 --- /dev/null +++ b/.github/workflows/prettier.yaml.old @@ -0,0 +1,18 @@ +name: Code Quality (Prettier) +on: + push: + branches: [develop] +jobs: + prettier: + name: Prettier + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + - name: Install dependencies + run: npm install -D + - name: Check formatting with Prettier + run: npm run prettier:check diff --git a/.github/workflows/stylelint.yaml b/.github/workflows/stylelint.yaml new file mode 100644 index 0000000..17ca143 --- /dev/null +++ b/.github/workflows/stylelint.yaml @@ -0,0 +1,19 @@ +name: Code Quality (Stylelint) +on: + push: + branches: [develop] +jobs: + prettier: + name: Stylelint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + - name: Install dependencies + run: npm install -D + - name: Check formatting with Stylelint + run: npm run stylelint:check + diff --git a/.gitignore b/.gitignore index 13be271..08a63df 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /node_modules +/.vscode diff --git a/.prettierignore b/.prettierignore index 431ad24..d1e1e22 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1 +1,3 @@ -# add files to ignore \ No newline at end of file +package.json +package-lock.json +sitemap.xml \ No newline at end of file diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 0000000..77ceb29 --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1 @@ +{ "extends": ["stylelint-config-standard"] } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 0197faf..81a8a9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,52 +5,336 @@ "packages": { "": { "devDependencies": { - "husky": "^9.0.11", - "lint-staged": "^15.2.5", - "prettier": "3.3.1" + "html-minifier-terser": "^7.2.0", + "prettier": "3.3.1", + "stylelint": "^16.6.1", + "stylelint-config-standard": "^36.0.1" } }, - "node_modules/ansi-escapes": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", - "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", + "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", + "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.1.tgz", + "integrity": "sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", "engines": { - "node": ">=14.16" + "node": ">=18" }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.1", + "@csstools/css-tokenizer": "^3.0.1" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-4.0.0.tgz", + "integrity": "sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.1.0" + } + }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", + "dev": true, + "license": "MIT", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, "engines": { - "node": ">=12" + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true, + "license": "MIT" + }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -58,85 +342,156 @@ "node": ">=8" } }, - "node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=6" } }, - "node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", "dev": true, + "license": "MIT", "dependencies": { - "restore-cursor": "^4.0.0" + "source-map": "~0.6.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">= 10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/cli-truncate": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" }, "engines": { - "node": ">=18" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "node_modules/css-functions-list": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz", + "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=18" + "node": ">=12 || >=16" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/css-tree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.1.tgz", + "integrity": "sha512-8Fxxv+tGhORlshCdCwnNJytvlvq46sOLSYEx2ZIGurahWvMucSRnyjPA3AmrMq4VPRYbHVpWj5VkiVasrM2H4Q==", "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "mdn-data": "2.12.1", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">= 8" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" } }, "node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -147,39 +502,132 @@ } } }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" + "is-arrayish": "^0.2.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">=16.17" + "node": ">=8.6.0" + } + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz", + "integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^5.0.0" }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "engines": { + "node": ">=18" } }, "node_modules/fill-range": { @@ -187,6 +635,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -194,176 +643,388 @@ "node": ">=8" } }, - "node_modules/get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "node_modules/flat-cache": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz", + "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==", "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.3.1", + "keyv": "^4.5.4" + }, "engines": { "node": ">=18" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 6" } }, - "node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, "engines": { - "node": ">=16" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "node_modules/globby/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16.17.0" + "node": ">= 4" } }, - "node_modules/husky": { - "version": "9.0.11", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.0.11.tgz", - "integrity": "sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==", + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, "bin": { - "husky": "bin.mjs" + "html-minifier-terser": "cli.js" }, "engines": { - "node": ">=18" + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/typicode" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "node_modules/ignore": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, - "node_modules/lilconfig": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } + "license": "MIT" }, - "node_modules/lint-staged": { - "version": "15.2.5", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.5.tgz", - "integrity": "sha512-j+DfX7W9YUvdzEZl3Rk47FhDF6xwDBV5wwsCPw6BwWZVPYJemusQmvb9bRsW23Sqsaa+vRloAWogbK4BUuU2zA==", + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "~5.3.0", - "commander": "~12.1.0", - "debug": "~4.3.4", - "execa": "~8.0.1", - "lilconfig": "~3.1.1", - "listr2": "~8.2.1", - "micromatch": "~4.0.7", - "pidtree": "~0.6.0", - "string-argv": "~0.3.2", - "yaml": "~2.4.2" + "argparse": "^2.0.1" }, "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": ">=18.12.0" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" } }, - "node_modules/listr2": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.1.tgz", - "integrity": "sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==", + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "dependencies": { - "cli-truncate": "^4.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.0.0", - "rfdc": "^1.3.1", - "wrap-ansi": "^9.0.0" - }, + "license": "MIT", "engines": { - "node": ">=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/log-update": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", - "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==", + "node_modules/known-css-properties": { + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz", + "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-escapes": "^6.2.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^7.0.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18" - }, + "tslib": "^2.0.3" + } + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "license": "MIT", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "node_modules/mdn-data": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.1.tgz", + "integrity": "sha512-rsfnCbOHjqrhWxwt5/wtSLzpoKTzW7OXdT5lLOIH1OTYhWu9rRJveGq0sKvDZODABH7RX+uoR+DYcpFnq4Tf6Q==", "dev": true, - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, + "license": "CC0-1.0" + }, + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -371,33 +1032,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, + "license": "MIT", "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">= 8" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -406,80 +1056,130 @@ "node": ">=8.6" } }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "engines": { - "node": ">=12" + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "lower-case": "^2.0.2", + "tslib": "^2.0.3" } }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.10.0" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6" } }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^4.0.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -487,18 +1187,90 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", + "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=0.10" + "node": ">=4" } }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, "node_modules/prettier": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.1.tgz", @@ -515,165 +1287,389 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, + "queue-microtask": "^1.2.2" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/restore-cursor/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/rfdc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", - "dev": true + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { "node": ">=8" } }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/stylelint": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.10.0.tgz", + "integrity": "sha512-z/8X2rZ52dt2c0stVwI9QL2AFJhLhbPkyfpDFcizs200V/g7v+UYY6SNcB9hKOLcDDX/yGLDsY/pX08sLkz9xQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.1", + "@csstools/css-tokenizer": "^3.0.1", + "@csstools/media-query-list-parser": "^3.0.1", + "@csstools/selector-specificity": "^4.0.0", + "@dual-bundle/import-meta-resolve": "^4.1.0", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^9.0.0", + "css-functions-list": "^3.2.3", + "css-tree": "^3.0.0", + "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": "^6.0.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.1", + "postcss-selector-parser": "^6.1.2", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "supports-hyperlinks": "^3.1.0", + "svg-tags": "^1.0.0", + "table": "^6.8.2", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz", + "integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=18.12.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "stylelint": "^16.1.0" } }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "node_modules/stylelint-config-standard": { + "version": "36.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.1.tgz", + "integrity": "sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "stylelint-config-recommended": "^14.0.1" }, "engines": { - "node": ">=12" + "node": ">=18.12.0" }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "peerDependencies": { + "stylelint": "^16.1.0" } }, - "node_modules/string-argv": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.6.19" + "node": ">=8" } }, - "node_modules/string-width": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", - "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "node_modules/supports-hyperlinks": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz", + "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==", "dev": true, + "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" }, "engines": { - "node": ">=18" + "node": ">=14.18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "ansi-regex": "^6.0.1" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=10.0.0" } }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "node_modules/terser": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", "dev": true, - "engines": { - "node": ">=12" + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -681,48 +1677,45 @@ "node": ">=8.0" } }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "which": "bin/which" } }, - "node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, + "license": "ISC", "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/yaml": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.3.tgz", - "integrity": "sha512-sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg==", - "dev": true, - "bin": { - "yaml": "bin.mjs" + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">= 14" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } } } diff --git a/package.json b/package.json index 379cd88..d6e5f85 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,15 @@ { "devDependencies": { - "husky": "^9.0.11", - "lint-staged": "^15.2.5", - "prettier": "3.3.1" - }, - "lint-staged": { - "**/*": "prettier --write --ignore-unknown" + "html-minifier-terser": "^7.2.0", + "prettier": "3.3.1", + "stylelint": "^16.6.1", + "stylelint-config-standard": "^36.0.1" }, "scripts": { - "prepare": "husky" + "prettier:format": "prettier --write \"**/*.html\"", + "prettier:check": "prettier --check \"**/*.html\"", + "stylelint:check": "stylelint \"**/*.css\"", + "minifier-css:format": "html-minifier-terser --input-dir ./static/ --output-dir ./static/ --file-ext css --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype --minify-css true --remove-style-link-type-attributes --trim-custom-fragments --no-include-auto-generated-tags", + "minifier-html:format": "html-minifier-terser --input-dir ./static/ --output-dir ./static/ --file-ext html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype --minify-css true --remove-style-link-type-attributes --trim-custom-fragments --no-include-auto-generated-tags" } } diff --git a/static/403.html b/static/403.html index 1f37e37..4318b8b 100644 --- a/static/403.html +++ b/static/403.html @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/static/404.html b/static/404.html index 1f37e37..4318b8b 100644 --- a/static/404.html +++ b/static/404.html @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/static/fonts/roboto-v30-latin-bold.woff2 b/static/fonts/roboto-v30-bold-latin.woff2 similarity index 100% rename from static/fonts/roboto-v30-latin-bold.woff2 rename to static/fonts/roboto-v30-bold-latin.woff2 diff --git a/static/fonts/roboto-v30-regular-italic-latin.woff2 b/static/fonts/roboto-v30-regular-italic-latin.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e1b7a79f91f29f10e58c3a255fe0f2804a9c19b9 GIT binary patch literal 17368 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 - - - - Clément.T | Accueil - - - - - - - - - - - - - - - - - - - - - - -
-

Clément Tailliez

-

Technicien supérieur en informatique, cycliste, pseudonymiser c2tz sur l'internet.

-

Je bricole quelques fois sur GitHub lors de mon temps libre.

-

Pour me contacter :

-
    -
  • Je suis dispo via Bluesky et sur Matrix.
  • -
  • Si vous souhaitez communiquer par mail, voici ma clé PGP et mon Email est dans le pied de page.
  • -
-

Quelques infos supplémentaires :

-
    -
  • J'ai un blog sur lequel je poste quelques bricoles qui peuvent être intéressante.
  • -
  • Au besoin voici mon CV, en cas de contact je réponds rapidement.
  • -
-

Ce site est hébérgé sur mon serveur (pour l'instant et bientôt directement sur GitHub), mais le code source est d'ores et déjà disponible sur ce repository GitHub.

-

Post Scriptum

-

Photo de profil

-

La photo de profil que j'utilise un petit peu partout acompagné de mon pseudonyme c2tz est accessible via ce lien. - Je pense qu'il s'agit du créateur original car il s'agit de la meilleures correspondance possible au niveau qualité et date.

-

Je me sert de cet image pour me remémorer que le meilleur des anime japonais de type Seinen 1 que j'ai eu l'honneur de voir s'avere être Sayonara, Zetsubou-Sensei (SZS).

-

Pourquoi honneur ? Car il est aussi rare à trouver que méconnu. Il dispose d'un humour et de satire auquel je suis particulièrement sensible. Bref je ne vais pas m'étaler ici (j'ai un blog pour ça) mais en la mémoire de celui ci je garderai cet photo de profil pendant encore quelques temps.

-
-

Lexique

-

1 Lorem ipsum dolor, sit amet consectetur adipisicing elit. Atque, est? Illum, quibusdam ipsam dolorem eligendi voluptatibus magni perspiciatis iusto, cupiditate veniam veritatis repellendus porro. Aspernatur error maxime alias inventore hic.

-
-
- - - - +Clément.T | Accueil

Clément Tailliez

Présentation

Je suis un technicien informatique dans la vingtaine. Je m'efforce d'être meilleur jour après jour.

Mon pseudonyme c2tz a été choisi de cette façon : la première lettre de mon prénom est un « c », j'ai 2 « t » qui rejoigne mon prénom et mon nom de famille puis enfin mon nom se termine par un « z ».

Le nom de domaine cta.li a été choisi en fonction de la première lettre du prénom et des deux premières du nom de famille. Ensuite j'ai ajouté deux lettres supplémentaires en lien avec un TLD existant.
Le Top Level Domain .li correspond au Liechtenstein.

Contact

Pour me contacter, j'utilise :

Références

Le code source de ce site est disponible sur GitHub.
Ce code a été copié puis adapté depuis le site web de GrapheneOS.

La photo de profil que j'utilise est accessible via ce lien. C'est une référence à Sayonara Monsieur Désespoir.
Je me sert de cette photo de profil sur tous mes comptes en hommage à cet anime/manga mémorable.

Informations

J'ai un blog qui utilise Material for MkDocs sur lequel je posterai quand le site cta.li et le CV seront fini.

J'apprécie faire de l'informatique mais pas seulement.
J'aime aussi : jouer aux jeux vidéo, lire des livres, faire du VTT, écouter de la musique, voyager, manger des bonnes choses, vivre.

Fin

« Il suffit d'un très petit degré d'espérance pour causer la naissance de l'amour. »Stendhal.

\ No newline at end of file diff --git a/static/main.css b/static/main.css index 08d6188..af6b7ed 100644 --- a/static/main.css +++ b/static/main.css @@ -1,185 +1 @@ -html { - height: -webkit-fill-available -} -body { - display:flex; - flex-direction:column; - min-height:100vh; - min-height:-webkit-fill-available; - font-family:Roboto,sans-serif; - background-color:#fafafa; - margin:0; - padding:0; - overflow-y:scroll; - line-height:1.5; - } - p.info{ - font-size: small; - } - a { - color:#1565c0; - text-decoration:none - } - a:visited { - color:#6a1b9a - } - a:hover { - text-decoration:underline - } - footer img { - display:block - } - footer img { - width:60px; - height:auto - } - footer { - text-align:center - } - footer, - footer img { - margin-left:auto; - margin-right:auto; - border-radius: 50%; - } - footer { - margin-top:auto; - padding:1em; - max-width:100vw; - overflow-wrap:break-word - } - footer a, - footer a:visited { - color:#616161 - } - #social { - line-height:2; - margin-top:1em; - padding:0; - list-style-type:none; - max-inline-size:60ch - } - #social li { - display:inline-block; - padding:0 .5em - } - sup { - font-size: x-small; - vertical-align: text-top; - } - body, - h1 a, - h1 a:visited, - h2 a, - h2 a:visited, - h3 a, - h3 a:visited, - h4 a, - h4 a:visited, - h5 a, - h5 a:visited, - h6 a, - h6 a:visited { - color:rgba(0 0 0/87%) - } - main { - margin-left:auto; - margin-right:auto; - padding:1em; - max-width:832px; - min-width:0; - width:100%; - box-sizing:border-box; - overflow-wrap:break-word - } - @font-face { - font-family:Roboto; - font-style:normal; - font-weight:400; - font-display:swap; - src:local("Roboto"), - local("Roboto-Regular"), - url(/fonts/roboto-v30-latin-regular.woff2)format("woff2"); - unicode-range:U+0000-00FF, - U+0131, - U+0152-0153, - U+02BB-02BC, - U+02C6, - U+02DA, - U+02DC, - U+2000-206F, - U+2074, - U+20AC, - U+2122, - U+2191, - U+2193, - U+2212, - U+2215, - U+FEFF, - U+FFFD - } - @font-face { - font-family:Roboto; - font-style:normal; - font-weight:700; - font-display:swap; - src:local("Roboto Bold"), - local("Roboto-Bold"), - url(/fonts/roboto-v30-latin-bold.woff2)format("woff2"); - unicode-range:U+0000-00FF, - U+0131, - U+0152-0153, - U+02BB-02BC, - U+02C6, - U+02DA, - U+02DC, - U+2000-206F, - U+2074, - U+20AC, - U+2122, - U+2191, - U+2193, - U+2212, - U+2215, - U+FEFF, - U+FFFD - } - - @media only screen and (max-width: 735px) { - h1 { - flex-flow: column nowrap; - text-align: center; - } -} - - @media (prefers-color-scheme:dark) { - body { - background:#121212 - } - a { - color:#90caf9 - } - a:visited { - color:#ce93d8 - } - body, - h1 a, - h1 a:visited, - h2 a, - h2 a:visited, - h3 a, - h3 a:visited, - h4 a, - h4 a:visited, - h5 a, - h5 a:visited, - h6 a, - h6 a:visited { - color:rgba(255 255 255/87%) - } - footer a, - footer a:visited { - color:#9f9f9f - } - } - +html { height: -webkit-fill-available; } body { display: flex; flex-direction: column; min-height: 100vh; min-height: -webkit-fill-available; font-family: Roboto, sans-serif; background-color: #fafafa; margin: 0; padding: 0; overflow-y: scroll; line-height: 1.5; } p.info { font-size: small; } a { color: #1565c0; text-decoration: none; } a:visited { color: #6a1b9a; } a:hover { text-decoration: underline; } footer img { display: block; } footer img { width: 60px; height: auto; } footer { text-align: center; } footer, footer img { margin-left: auto; margin-right: auto; border-radius: 50%; } footer { margin-top: auto; padding: 1em; max-width: 100vw; overflow-wrap: break-word; } footer a, footer a:visited { color: #616161; } #social { line-height: 2; margin-top: 1em; padding: 0; list-style-type: none; max-inline-size: 60ch; } #social li { display: inline-block; padding: 0 0.5em; } sup { font-size: x-small; vertical-align: text-top; } body, h1 a, h1 a:visited, h2 a, h2 a:visited, h3 a, h3 a:visited, h4 a, h4 a:visited, h5 a, h5 a:visited, h6 a, h6 a:visited { color: rgba(0, 0, 0, 0.87); } main { margin-left: auto; margin-right: auto; padding: 1em; max-width: 832px; min-width: 0; width: 100%; box-sizing: border-box; overflow-wrap: break-word; } @font-face { font-family:Roboto; font-style:normal; font-weight:400; font-display:swap; src:local("Roboto"), local("Roboto-Regular"), url(/fonts/roboto-v30-regular-latin.woff2)format("woff2"); unicode-range: U+0000-007F, U+00C0-00FF; } @font-face { font-family:Roboto; font-style:italic; font-weight:400; font-display:swap; src:local("Roboto Italic"), local("Roboto-Italic"), url(/fonts/roboto-v30-regular-italic-latin.woff2)format("woff2"); unicode-range: U+0000-007F, U+00C0-00FF; } @font-face { font-family:Roboto; font-style:normal; font-weight:700; font-display:swap; src:local("Roboto Bold"), local("Roboto-Bold"), url(/fonts/roboto-v30-bold-latin.woff2)format("woff2"); unicode-range: U+0000-007F, U+00C0-00FF; } @media only screen and (max-width: 735px) { h1 { flex-flow: column nowrap; text-align: center; } } @media (prefers-color-scheme: dark) { body { background: #000000; } a { color: #90caf9; } a:visited { color: #ce93d8; } body, h1 a, h1 a:visited, h2 a, h2 a:visited, h3 a, h3 a:visited, h4 a, h4 a:visited, h5 a, h5 a:visited, h6 a, h6 a:visited { color: rgba(255 255 255/87%); } footer a, footer a:visited { color: #9f9f9f; } } \ No newline at end of file diff --git a/static/publickey.c2tz@cta.li-7e6d664823912f3ec7a123a250401a584f6d64fc.asc b/static/publickey.c2tz@cta.li-7e6d664823912f3ec7a123a250401a584f6d64fc.asc new file mode 100644 index 0000000..5bacae3 --- /dev/null +++ b/static/publickey.c2tz@cta.li-7e6d664823912f3ec7a123a250401a584f6d64fc.asc @@ -0,0 +1,13 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +xjMEZr3JnxYJKwYBBAHaRw8BAQdAmSKWXvZjDwdwXa3U/YrnCfIJ13IbOMmI +hkf8xlQy5kTNGWMydHpAY3RhLmxpIDxjMnR6QGN0YS5saT7CjAQQFgoAPgWC +Zr3JnwQLCQcICZBQQBpYT21k/AMVCAoEFgACAQIZAQKbAwIeARYhBH5tZkgj +kS8+x6EjolBAGlhPbWT8AABR0wEAma6LQfHj8KVAmQXNvr19qMKHKcFAH3nN +2spIGjLu/fEBAIS8corg+RnoxSBvaM4kNt42kmhNSR3IXQzEIYMweZYOzjgE +Zr3JnxIKKwYBBAGXVQEFAQEHQED145pVSkNOH+vOwobeUl1G6l1S9OQYiWmD +eCxnH+UUAwEIB8J4BBgWCgAqBYJmvcmfCZBQQBpYT21k/AKbDBYhBH5tZkgj +kS8+x6EjolBAGlhPbWT8AAAL+gEA7yZspcSQ3xFDpIGo7zRcfydExIX/ouif +XAnfWlP6YJQBAP3PO9aKTCS9Ujzr6WwkIO8iRBB9lxk6lbT779eFP1cH +=DM7b +-----END PGP PUBLIC KEY BLOCK-----