From b5ce5d2d8cc4d5b06da6a19623254d20606752d9 Mon Sep 17 00:00:00 2001 From: Spencer Harston Date: Thu, 9 May 2024 00:03:22 -0600 Subject: [PATCH] Fix RSS feed generation to use correct image sources and other bugs (#51) * refactor: clean up how tag pages are generated * fix: lots of things #50 - Remove the eleventy image transform plugin - Use markdown eleventy-img plugin - Fix issue with css getting overwritten with og css file on changes - Change passthrough copy options to not copy unoptimized images - Revert back to stable eleventy and eleventy-img packages to fix template render error on changes (and not needed for tranform plugin) - Remove eleventyImport options in templates (I don't think it did anything) - Code cleanup and removal of unnecessary files --- eleventy.config.js | 96 +- package-lock.json | 1587 ++++++++++------- package.json | 13 +- postcss.config.js | 8 +- src/assets/img/{content => }/bird-crop.jpg | Bin .../img/{content => }/penrosetriangle.svg | 0 src/assets/img/{content => }/statik.png | Bin src/feed.njk | 2 - src/index.njk | 2 +- src/posts.njk | 2 - src/posts/drafts/post-testing.md | 2 +- src/secondary-pages/posts-by-tag.njk | 5 +- utils/public-sans-latin-400-italic.ttf | Bin 29112 -> 0 bytes utils/public-sans-latin-400-normal.ttf | Bin 28176 -> 0 bytes 14 files changed, 985 insertions(+), 732 deletions(-) rename src/assets/img/{content => }/bird-crop.jpg (100%) rename src/assets/img/{content => }/penrosetriangle.svg (100%) rename src/assets/img/{content => }/statik.png (100%) delete mode 100644 utils/public-sans-latin-400-italic.ttf delete mode 100644 utils/public-sans-latin-400-normal.ttf diff --git a/eleventy.config.js b/eleventy.config.js index c93b9f1..8f5e7ff 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -1,19 +1,12 @@ const { DateTime } = require("luxon"); const readingTime = require("eleventy-plugin-reading-time"); const pluginRss = require("@11ty/eleventy-plugin-rss"); -const { eleventyImageTransformPlugin } = require("@11ty/eleventy-img"); const safeLinks = require("@sardine/eleventy-plugin-external-links"); const htmlmin = require("html-minifier-terser"); const fs = require("node:fs"); const path = require("node:path"); -// configure markdown plugins -const markdownIt = require("markdown-it"); -const markdownItFootnote = require("markdown-it-footnote"); -const markdownItImageFigures = require("markdown-it-image-figures"); -const markdownItAnchor = require("markdown-it-anchor"); -const markdownItAttrs = require("markdown-it-attrs"); - -// const { imageHeaderShortcode, imageMetaShortcode, imageMetaTWShortcode } = require("./utils/imageGen"); + +// Custom scripts const { generateMetaImages } = require("./utils/generateMetaImages.js"); const metadata = require("./src/_data/metadata.json"); @@ -48,13 +41,17 @@ module.exports = function (eleventyConfig) { // passthrough copying of assets files eleventyConfig.addPassthroughCopy({ - "src/assets": "assets/", + "src/assets/scripts/": "assets/scripts/", + "src/assets/favicons/": "assets/favicons/", "src/assets/favicons/favicon.ico": "/favicon.ico", "node_modules/@fontsource/atkinson-hyperlegible/": "assets/fonts/atkinson-hyperlegible/", "node_modules/@fontsource/cousine/": "assets/fonts/cousine/", "node_modules/@tabler/icons-sprite/dist/tabler-sprite.svg": "assets/img/icons/tabler-sprite.svg" }); + // copy img/ but not img/content - will be handled by markdown plugin & eleventy-img plugin + eleventyConfig.addPassthroughCopy({"src/assets/img/*[!content]": "assets/img/"}); + // add watch target for css and tailwind eleventyConfig.addWatchTarget("./src/assets/css/"); @@ -65,7 +62,7 @@ module.exports = function (eleventyConfig) { // get a count of non-draft files const postsPath = path.join(__dirname, "src/posts"); - const postsFiles = fs.readdirSync(postsPath).filter(file => file.endsWith(".md")); + const postsFiles = fs.readdirSync(postsPath, {recursive: true,}).filter(file => !file.includes("draft") && file.endsWith(".md")); eleventyConfig.addGlobalData("postCount", postsFiles.length); // filter to return a date as an ISO string @@ -74,13 +71,6 @@ module.exports = function (eleventyConfig) { return result; }); - // filter to return a date as a pretty string, like April 1, 2022 - // eleventyConfig.addFilter("dateReadable", (dateObj) => { - // // console.log(JSON.stringify(metadata)); - // let result = DateTime.fromJSDate(dateObj, { zone: "utc" }).setZone(metadata.timezone, { keepLocalTime: true }).toLocaleString(DateTime.DATE_FULL); - // return result; - // }); - // shortcode to return a readable date (like April, 1 2022) or with time (April 1, 2022 at 12:12 PM MST) eleventyConfig.addShortcode("dateReadable", (dateObj, withTime) => { let result = DateTime.fromJSDate(dateObj, { zone: "utc" }).setZone(metadata.timezone, { keepLocalTime: true }).toLocaleString( withTime ? DateTime.DATETIME_FULL : DateTime.DATE_FULL); @@ -127,6 +117,11 @@ module.exports = function (eleventyConfig) { return collection.filter((entry) => DateTime.fromJSDate(entry.date).year == year); }); + // filter collection by tag + eleventyConfig.addFilter("postsByTag", (collection, tag) => { + return collection.filter((entry) => entry.data.tags.includes(tag)); + }); + // shortcodes // shortcode for returning a github link to the current page's source code eleventyConfig.addNunjucksShortcode("page_source_link", function (inner_text) { @@ -143,21 +138,19 @@ module.exports = function (eleventyConfig) { return ``; }); - // eleventyConfig.addNunjucksAsyncShortcode("imageHeader", imageHeaderShortcode); - // eleventyConfig.addNunjucksAsyncShortcode("imageMeta", imageMetaShortcode); - // eleventyConfig.addNunjucksAsyncShortcode("imageMetaTW", imageMetaTWShortcode); + // shortcode for handling generation of meta images eleventyConfig.addNunjucksAsyncShortcode("metaImages", generateMetaImages); // collection of all posts - eleventyConfig.addCollection("posts", (collection) => { - return collection.getFilteredByGlob(["./src/posts/**/*.md"]); + eleventyConfig.addCollection("posts", (collectionApi) => { + return collectionApi.getFilteredByGlob(["./src/posts/**/*.md"]); }); // get a collection of all tags of a collection - eleventyConfig.addCollection("tagList", (collection) => { + eleventyConfig.addCollection("tagList", (collectionApi) => { let uniqueTags = new Set(); //sets only allow unique items - collection.getAllSorted().forEach(function (item) { + collectionApi.getAllSorted().forEach(function (item) { // skip item if there is no tags key if (!("tags" in item.data)) return; @@ -172,10 +165,10 @@ module.exports = function (eleventyConfig) { }); // get a collection of years from a collection - eleventyConfig.addCollection("yearList", (collection) => { + eleventyConfig.addCollection("yearList", (collectionApi) => { let uniqueYears = new Set(); - collection.getAllSorted().forEach((item) => { + collectionApi.getAllSorted().forEach((item) => { if(!("date" in item.data)) return; // get the year of the post @@ -187,6 +180,16 @@ module.exports = function (eleventyConfig) { }); // configure markdown library + + // markdown plugins + const markdownIt = require("markdown-it"); + const markdownItFootnote = require("markdown-it-footnote"); + const markdownItImageFigures = require("markdown-it-image-figures"); + const markdownItAnchor = require("markdown-it-anchor"); + const markdownItAttrs = require("markdown-it-attrs"); + const markdownItEleventyImg = require("markdown-it-eleventy-img"); + + // markdown plugin options let markdownItOptions = { html: true }; @@ -195,11 +198,31 @@ module.exports = function (eleventyConfig) { level: [2,3] }; + let markdownItEleventyImgOptions = { + imgOptions: { + widths: [480, 720, 1000], + formats: ["webp", "jpeg"], + urlPath: "/assets/img/content", + outputDir: "./dist/assets/img/content", + filenameFormat: (id, src, width, format) => { + const { name } = path.parse(src); + return `${name}-${width}w.${format}`; + } + }, + globalAttributes: { + decoding: "async", + loading: "lazy", + sizes: "100vw" + }, + resolvePath: (filepath, env) => path.join(path.dirname(env.page.inputPath), filepath) + }; + let markdownLib = markdownIt(markdownItOptions) .use(markdownItFootnote) .use(markdownItAnchor, markdownItAnchorOptions) .use(markdownItAttrs) - .use(markdownItImageFigures, { figcaption: true, lazy: true, async: true }); // could be replaced with the image transform plugin below + .use(markdownItImageFigures, { figcaption: true }) // could be replaced with the image transform plugin below + .use(markdownItEleventyImg, markdownItEleventyImgOptions); eleventyConfig.setLibrary("md", markdownLib); @@ -208,23 +231,6 @@ module.exports = function (eleventyConfig) { eleventyConfig.addPlugin(pluginRss); eleventyConfig.addPlugin(safeLinks); - eleventyConfig.addPlugin(eleventyImageTransformPlugin, { - extensions: "html", - formats: ["webp", "jpeg"], - widths: [480, 720, 1000], - defaultAttributes: { - loading: "lazy", - decoding: "async", - sizes: "90vw", - }, - outputDir: "./dist/assets/img/content", // relative to repo root - urlPath: "/assets/img/content", // path prefix, e.g. `/img/` for ``. - filenameFormat: (id, src, width, format) => { - const { name } = path.parse(src); - return `${name}-${width}w.${format}`; - } - }); - return { dir: { input: "src", diff --git a/package-lock.json b/package-lock.json index 21452c2..3ce11bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,8 @@ "version": "2.1.0", "license": "MIT", "devDependencies": { - "@11ty/eleventy": "^3.0.0-alpha.10", - "@11ty/eleventy-img": "^5.0.0-beta.1", + "@11ty/eleventy": "^2.0.1", + "@11ty/eleventy-img": "^4.0.2", "@11ty/eleventy-plugin-rss": "^1.2.0", "@fontsource/arimo": "^5.0.20", "@fontsource/atkinson-hyperlegible": "^5.0.20", @@ -21,87 +21,77 @@ "async-git": "^1.13.3", "autoprefixer": "^10.4.19", "canvas": "^2.11.2", - "cssnano": "^6.1.2", + "cssnano": "^7.0.1", "eleventy-plugin-reading-time": "^0.0.1", "eslint": "^8.57.0", "html-minifier-terser": "^7.2.0", "markdown-it-anchor": "^8.6.7", "markdown-it-attrs": "^4.1.6", + "markdown-it-eleventy-img": "^0.10.2", "markdown-it-footnote": "^4.0.0", "markdown-it-image-figures": "^2.1.1", "npm-run-all2": "^6.1.2", "postcss": "^8.4.38", - "postcss-cli": "^10.1.0", + "postcss-cli": "^11.0.0", "tailwindcss": "^3.4.3" } }, "node_modules/@11ty/dependency-tree": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-3.0.0.tgz", - "integrity": "sha512-+M+/KdAptDTK4USkI124CKoScvt2y0v1EoLBjS2rUi9zydjWgEC7+EJJ7Eu1DXuObe0JmY09LORjdBGKNPxgtg==", - "dev": true, - "dependencies": { - "@11ty/eleventy-utils": "^1.0.2" - } - }, - "node_modules/@11ty/dependency-tree-esm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@11ty/dependency-tree-esm/-/dependency-tree-esm-1.0.0.tgz", - "integrity": "sha512-Z3KN1Fkv50UM/ZzTR3VBbyOY52HnmhIVCsAV1hn2UzFsGAjyF1Cw8uohhVtheDOSuBR7ZSeo1unwkz1HxFlUtQ==", - "dev": true, - "dependencies": { - "@11ty/eleventy-utils": "^1.0.2", - "acorn": "^8.10.0", - "dependency-graph": "^0.11.0", - "normalize-path": "^3.0.0" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-2.0.1.tgz", + "integrity": "sha512-5R+DsT9LJ9tXiSQ4y+KLFppCkQyXhzAm1AIuBWE/sbU0hSXY5pkhoqQYEcPJQFg/nglL+wD55iv2j+7O96UAvg==", + "dev": true }, "node_modules/@11ty/eleventy": { - "version": "3.0.0-alpha.10", - "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-3.0.0-alpha.10.tgz", - "integrity": "sha512-lnymV2KjhxPNs+e4otrjwr/kh7AEE/yTAwgVRtpdo8BA+zSDHaw+aeq/2L+h2nhQ9Z1a4ExIjQqk7K51E40tlA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.1.tgz", + "integrity": "sha512-t8XVUbCJByhVEa1RzO0zS2QzbL3wPY8ot1yUw9noqiSHxJWUwv6jiwm1/MZDPTYtkZH2ZHvdQIRQ5/SjG9XmLw==", "dev": true, "dependencies": { - "@11ty/dependency-tree": "^3.0.0", - "@11ty/dependency-tree-esm": "^1.0.0", - "@11ty/eleventy-dev-server": "^2.0.0", - "@11ty/eleventy-plugin-bundle": "^2.0.2", - "@11ty/eleventy-utils": "^1.0.2", + "@11ty/dependency-tree": "^2.0.1", + "@11ty/eleventy-dev-server": "^1.0.4", + "@11ty/eleventy-utils": "^1.0.1", "@11ty/lodash-custom": "^4.17.21", - "@11ty/posthtml-urls": "^1.0.0", - "@sindresorhus/slugify": "^2.2.1", - "bcp-47-normalize": "^2.3.0", - "chokidar": "^3.6.0", + "@iarna/toml": "^2.2.5", + "@sindresorhus/slugify": "^1.1.2", + "bcp-47-normalize": "^1.1.1", + "chokidar": "^3.5.3", "cross-spawn": "^7.0.3", "debug": "^4.3.4", - "dependency-graph": "^1.0.0", - "fast-glob": "^3.3.2", + "dependency-graph": "^0.11.0", + "ejs": "^3.1.9", + "fast-glob": "^3.2.12", "graceful-fs": "^4.2.11", "gray-matter": "^4.0.3", + "hamljs": "^0.6.2", + "handlebars": "^4.7.7", "is-glob": "^4.0.3", - "iso-639-1": "^3.1.2", + "iso-639-1": "^2.1.15", "kleur": "^4.1.5", - "liquidjs": "^10.12.0", - "luxon": "^3.4.4", - "markdown-it": "^14.1.0", + "liquidjs": "^10.7.0", + "luxon": "^3.3.0", + "markdown-it": "^13.0.1", "micromatch": "^4.0.5", "minimist": "^1.2.8", "moo": "^0.5.2", - "multimatch": "^7.0.0", - "node-retrieve-globals": "^6.0.0", + "multimatch": "^5.0.0", + "mustache": "^4.2.0", "normalize-path": "^3.0.0", - "nunjucks": "^3.2.4", + "nunjucks": "^3.2.3", + "path-to-regexp": "^6.2.1", "please-upgrade-node": "^3.2.0", "posthtml": "^0.16.6", + "posthtml-urls": "^1.0.0", + "pug": "^3.0.2", "recursive-copy": "^2.0.14", - "semver": "^7.6.0", + "semver": "^7.3.8", "slugify": "^1.6.6" }, "bin": { - "eleventy": "cmd.cjs" + "eleventy": "cmd.js" }, "engines": { - "node": ">=18" + "node": ">=14" }, "funding": { "type": "opencollective", @@ -109,30 +99,28 @@ } }, "node_modules/@11ty/eleventy-dev-server": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-2.0.0.tgz", - "integrity": "sha512-hqxQV92Bos0uyZa3P+BAX0nQqjQQMi4vCSxcQHNYEB/jjGV6CnurLBSn63U1VoixGAL4SpHm9OdTa2oVOTUx6Q==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-1.0.4.tgz", + "integrity": "sha512-qVBmV2G1KF/0o5B/3fITlrrDHy4bONUI2YuN3/WJ3BNw4NU1d/we8XhKrlgq13nNvHoBx5czYp3LZt8qRG53Fg==", "dev": true, "dependencies": { - "@11ty/eleventy-utils": "^1.0.2", - "chokidar": "^3.6.0", + "@11ty/eleventy-utils": "^1.0.1", + "chokidar": "^3.5.3", "debug": "^4.3.4", "dev-ip": "^1.0.1", "finalhandler": "^1.2.0", "mime": "^3.0.0", "minimist": "^1.2.8", - "morphdom": "^2.7.2", + "morphdom": "^2.7.0", "please-upgrade-node": "^3.2.0", - "send": "^0.18.0", - "ssri": "^10.0.5", - "urlpattern-polyfill": "^10.0.0", - "ws": "^8.16.0" + "ssri": "^8.0.1", + "ws": "^8.13.0" }, "bin": { "eleventy-dev-server": "cmd.js" }, "engines": { - "node": ">=18" + "node": ">=14" }, "funding": { "type": "opencollective", @@ -159,35 +147,18 @@ } }, "node_modules/@11ty/eleventy-img": { - "version": "5.0.0-beta.1", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-img/-/eleventy-img-5.0.0-beta.1.tgz", - "integrity": "sha512-ACzw3j6wNZpbm6OXlnJX6zT6AST0BKtvUSye6+Wd88oxrcERKO4peELTCEdqsHRGQlMw+OPAVpdr1ytsstne7w==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-img/-/eleventy-img-4.0.2.tgz", + "integrity": "sha512-MSCkZRJk9rWa7nojx9HBMZJePOrm+V3XNpT091qguj61SG5UsgXbxAkoeejO3npmKIQJTyVIV/rrA6d7xZYOvw==", "dev": true, "dependencies": { - "@11ty/eleventy-fetch": "^4.0.1", - "@11ty/eleventy-utils": "^1.0.2", + "@11ty/eleventy-fetch": "^4.0.0", "brotli-size": "^4.0.0", "debug": "^4.3.4", "entities": "^4.5.0", "image-size": "^1.1.1", "p-queue": "^6.6.2", - "sharp": "^0.33.3" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, - "node_modules/@11ty/eleventy-plugin-bundle": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-2.0.2.tgz", - "integrity": "sha512-zGyPp1g6bi+VC2I5ylwj4w29nivDmx4Uki5gWY6v3MT/1muK0JTtnc1KOMC7yUurv6YwtwdiLYyFK2eFyKv2wg==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" + "sharp": "^0.33.2" }, "engines": { "node": ">=18" @@ -228,15 +199,55 @@ "url": "https://opencollective.com/11ty" } }, - "node_modules/@11ty/eleventy/node_modules/dependency-graph": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", - "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", + "node_modules/@11ty/eleventy/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", "dev": true, "engines": { - "node": ">=4" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@11ty/eleventy/node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/@11ty/eleventy/node_modules/markdown-it": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", + "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" } }, + "node_modules/@11ty/eleventy/node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/@11ty/eleventy/node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, "node_modules/@11ty/lodash-custom": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz", @@ -250,31 +261,6 @@ "url": "https://opencollective.com/11ty" } }, - "node_modules/@11ty/posthtml-urls": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@11ty/posthtml-urls/-/posthtml-urls-1.0.0.tgz", - "integrity": "sha512-CcsRdI933x613u7CjM+QGs7iD/m8SaDup3Apohg1+7dybigrEUHc2jGS3mcMgQKvF2+IphqmepD/FrKLlPkPEg==", - "dev": true, - "dependencies": { - "evaluate-value": "^2.0.0", - "http-equiv-refresh": "^2.0.1", - "list-to-array": "^1.1.0", - "object.entries": "^1.1.7", - "parse-srcset": "^1.0.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@11ty/posthtml-urls/node_modules/http-equiv-refresh": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-2.0.1.tgz", - "integrity": "sha512-XJpDL/MLkV3dKwLzHwr2dY05dYNfBNlyPu4STQ8WvKCFdc6vC5tPXuq28of663+gHVg03C+16pHHs/+FmmDjcw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", @@ -296,6 +282,50 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@does/exist": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@does/exist/-/exist-1.1.0.tgz", @@ -419,6 +449,12 @@ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, "node_modules/@img/sharp-darwin-arm64": { "version": "0.33.3", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.3.tgz", @@ -1100,59 +1136,57 @@ "node": ">= 12" } }, - "node_modules/@sindresorhus/slugify": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz", - "integrity": "sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==", + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, - "dependencies": { - "@sindresorhus/transliterate": "^1.0.0", - "escape-string-regexp": "^5.0.0" - }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@sindresorhus/slugify/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "node_modules/@sindresorhus/slugify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", + "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", "dev": true, + "dependencies": { + "@sindresorhus/transliterate": "^0.1.1", + "escape-string-regexp": "^4.0.0" + }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@sindresorhus/transliterate": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz", - "integrity": "sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz", + "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==", "dev": true, "dependencies": { - "escape-string-regexp": "^5.0.0" + "escape-string-regexp": "^2.0.0", + "lodash.deburr": "^4.1.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@sindresorhus/transliterate/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/@tabler/icons": { @@ -1227,6 +1261,12 @@ "dev": true, "peer": true }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -1266,15 +1306,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -1378,27 +1409,21 @@ "dev": true }, "node_modules/array-differ": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-4.0.0.tgz", - "integrity": "sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "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, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/array-uniq": { @@ -1410,12 +1435,33 @@ "node": ">=0.10.0" } }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true }, + "node_modules/assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", + "dev": true + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, "node_modules/async-git": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/async-git/-/async-git-1.13.3.tgz", @@ -1462,6 +1508,18 @@ "postcss": "^8.1.0" } }, + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.9.6" + }, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1469,14 +1527,14 @@ "dev": true }, "node_modules/bcp-47": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.0.tgz", - "integrity": "sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-1.0.8.tgz", + "integrity": "sha512-Y9y1QNBBtYtv7hcmoX0tR+tUNSFZGZ6OL6vKPObq8BbOhkCoyayF6ogfLTgAli/KuAEbsYHYUNq2AQuY6IuLag==", "dev": true, "dependencies": { - "is-alphabetical": "^2.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0" + "is-alphabetical": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0" }, "funding": { "type": "github", @@ -1484,9 +1542,9 @@ } }, "node_modules/bcp-47-match": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", - "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-1.0.3.tgz", + "integrity": "sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==", "dev": true, "funding": { "type": "github", @@ -1494,13 +1552,13 @@ } }, "node_modules/bcp-47-normalize": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-2.3.0.tgz", - "integrity": "sha512-8I/wfzqQvttUFz7HVJgIZ7+dj3vUaIyIxYXaTRP1YWoSDfzt6TUmxaKZeuXR62qBmYr+nvuWINFRl6pZ5DlN4Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-1.1.1.tgz", + "integrity": "sha512-jWZ1Jdu3cs0EZdfCkS0UE9Gg01PtxnChjEBySeB+Zo6nkqtFfnvtoQQgP1qU1Oo4qgJgxhTI6Sf9y/pZIhPs0A==", "dev": true, "dependencies": { - "bcp-47": "^2.0.0", - "bcp-47-match": "^2.0.0" + "bcp-47": "^1.0.0", + "bcp-47-match": "^1.0.0" }, "funding": { "type": "github", @@ -1697,6 +1755,15 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "dev": true, + "dependencies": { + "is-regex": "^1.0.3" + } + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -1818,6 +1885,16 @@ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1898,16 +1975,16 @@ } }, "node_modules/cssnano": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", - "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.0.1.tgz", + "integrity": "sha512-917Mej/4SdI7b55atsli3sU4MOJ9XDoKgnlCtQtXYj8XUFcM3riTuYHyqBBnnskawW+zWwp0KxJzpEUodlpqUg==", "dev": true, "dependencies": { - "cssnano-preset-default": "^6.1.2", + "cssnano-preset-default": "^7.0.1", "lilconfig": "^3.1.1" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "funding": { "type": "opencollective", @@ -1918,56 +1995,56 @@ } }, "node_modules/cssnano-preset-default": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", - "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.1.tgz", + "integrity": "sha512-Fumyr+uZMcjYQeuHssAZxn0cKj3cdQc5GcxkBcmEzISGB+UW9CLNlU4tBOJbJGcPukFDlicG32eFbrc8K9V5pw==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "css-declaration-sorter": "^7.2.0", - "cssnano-utils": "^4.0.2", - "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.1.0", - "postcss-convert-values": "^6.1.0", - "postcss-discard-comments": "^6.0.2", - "postcss-discard-duplicates": "^6.0.3", - "postcss-discard-empty": "^6.0.3", - "postcss-discard-overridden": "^6.0.2", - "postcss-merge-longhand": "^6.0.5", - "postcss-merge-rules": "^6.1.1", - "postcss-minify-font-values": "^6.1.0", - "postcss-minify-gradients": "^6.0.3", - "postcss-minify-params": "^6.1.0", - "postcss-minify-selectors": "^6.0.4", - "postcss-normalize-charset": "^6.0.2", - "postcss-normalize-display-values": "^6.0.2", - "postcss-normalize-positions": "^6.0.2", - "postcss-normalize-repeat-style": "^6.0.2", - "postcss-normalize-string": "^6.0.2", - "postcss-normalize-timing-functions": "^6.0.2", - "postcss-normalize-unicode": "^6.1.0", - "postcss-normalize-url": "^6.0.2", - "postcss-normalize-whitespace": "^6.0.2", - "postcss-ordered-values": "^6.0.2", - "postcss-reduce-initial": "^6.1.0", - "postcss-reduce-transforms": "^6.0.2", - "postcss-svgo": "^6.0.3", - "postcss-unique-selectors": "^6.0.4" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" + "cssnano-utils": "^5.0.0", + "postcss-calc": "^10.0.0", + "postcss-colormin": "^7.0.0", + "postcss-convert-values": "^7.0.0", + "postcss-discard-comments": "^7.0.0", + "postcss-discard-duplicates": "^7.0.0", + "postcss-discard-empty": "^7.0.0", + "postcss-discard-overridden": "^7.0.0", + "postcss-merge-longhand": "^7.0.0", + "postcss-merge-rules": "^7.0.0", + "postcss-minify-font-values": "^7.0.0", + "postcss-minify-gradients": "^7.0.0", + "postcss-minify-params": "^7.0.0", + "postcss-minify-selectors": "^7.0.0", + "postcss-normalize-charset": "^7.0.0", + "postcss-normalize-display-values": "^7.0.0", + "postcss-normalize-positions": "^7.0.0", + "postcss-normalize-repeat-style": "^7.0.0", + "postcss-normalize-string": "^7.0.0", + "postcss-normalize-timing-functions": "^7.0.0", + "postcss-normalize-unicode": "^7.0.0", + "postcss-normalize-url": "^7.0.0", + "postcss-normalize-whitespace": "^7.0.0", + "postcss-ordered-values": "^7.0.0", + "postcss-reduce-initial": "^7.0.0", + "postcss-reduce-transforms": "^7.0.0", + "postcss-svgo": "^7.0.0", + "postcss-unique-selectors": "^7.0.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/cssnano-utils": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.0.tgz", + "integrity": "sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==", "dev": true, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" @@ -2064,38 +2141,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/dependency-graph": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", @@ -2105,16 +2156,6 @@ "node": ">= 0.6.0" } }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, "node_modules/detect-libc": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", @@ -2142,18 +2183,6 @@ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true }, - "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, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", @@ -2172,6 +2201,12 @@ "node": ">=6.0.0" } }, + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", + "dev": true + }, "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -2283,6 +2318,21 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.733", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.733.tgz", @@ -2355,18 +2405,6 @@ "node": ">= 0.4" } }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", @@ -2489,15 +2527,6 @@ "node": ">=10.13.0" } }, - "node_modules/esm-import-transformer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/esm-import-transformer/-/esm-import-transformer-3.0.2.tgz", - "integrity": "sha512-PgvO0wro44lTDM9pYeeOIfpS0lGF80jA+rjT7sBd3b07rxv1AxeNMEI5kSCqRKke2W6SPEz17W3kHOLjaiD7Cw==", - "dev": true, - "dependencies": { - "acorn": "^8.11.2" - } - }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -2570,24 +2599,6 @@ "node": ">=0.10.0" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/evaluate-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/evaluate-value/-/evaluate-value-2.0.0.tgz", - "integrity": "sha512-VonfiuDJc0z4sOO7W0Pd130VLsXN6vmBWZlrog1mCb/o7o/Nl5Lr25+Kj/nkCCAhG+zqeeGjxhkK9oHpkgTHhQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -2661,9 +2672,39 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { @@ -2783,15 +2824,6 @@ "url": "https://github.com/sponsors/rawify" } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/fs-extra": { "version": "11.2.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", @@ -2955,31 +2987,20 @@ } }, "node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", + "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", "dev": true, "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3046,6 +3067,33 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/hamljs": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/hamljs/-/hamljs-0.6.2.tgz", + "integrity": "sha512-/chXRp4WpL47I+HX1vCCdSbEXAljEG2FBMmgO7Am0bYsqgnEjreeWzUdX1onXqwZtcfgxbCg5WtEYYvuZ5muBg==", + "dev": true + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3091,6 +3139,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -3217,22 +3280,6 @@ "node": ">= 0.10" } }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -3312,9 +3359,9 @@ "dev": true }, "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", "dev": true, "funding": { "type": "github", @@ -3322,13 +3369,13 @@ } }, "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "dev": true, "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" }, "funding": { "type": "github", @@ -3366,15 +3413,37 @@ } }, "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/is-expression/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -3438,6 +3507,28 @@ "node": ">=8" } }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -3445,9 +3536,9 @@ "dev": true }, "node_modules/iso-639-1": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-3.1.2.tgz", - "integrity": "sha512-Le7BRl3Jt9URvaiEHJCDEdvPZCfhiQoXnFgLAWNRhzFMwRFdWO7/5tLRQbiPzE394I9xd7KdRCM7S6qdOhwG5A==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz", + "integrity": "sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==", "dev": true, "engines": { "node": ">=6.0" @@ -3471,6 +3562,24 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/jake": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz", + "integrity": "sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jiti": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", @@ -3480,6 +3589,12 @@ "jiti": "bin/jiti.js" } }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==", + "dev": true + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -3531,6 +3646,16 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", + "dev": true, + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, "node_modules/junk": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz", @@ -3616,6 +3741,7 @@ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, + "peer": true, "dependencies": { "uc.micro": "^2.0.0" } @@ -3676,6 +3802,12 @@ "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", "dev": true }, + "node_modules/lodash.deburr": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", + "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==", + "dev": true + }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -3750,6 +3882,7 @@ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, + "peer": true, "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", @@ -3784,6 +3917,22 @@ "markdown-it": ">= 9.0.0" } }, + "node_modules/markdown-it-eleventy-img": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/markdown-it-eleventy-img/-/markdown-it-eleventy-img-0.10.2.tgz", + "integrity": "sha512-/NAQtt+KKDugE2iWk8AahirM+KGm31INtkrlRXbzBFPnx1nFpyZBXchbluQSvwMbxYBCYkO4VuQAxMiIOkBOAA==", + "dev": true, + "dependencies": { + "@11ty/eleventy-img": "^4.0.2", + "sharp": "^0.33.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "markdown-it": ">= 9.0.0" + } + }, "node_modules/markdown-it-footnote": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/markdown-it-footnote/-/markdown-it-footnote-4.0.0.tgz", @@ -3857,7 +4006,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", - "dev": true + "dev": true, + "peer": true }, "node_modules/memorystream": { "version": "0.3.1", @@ -3991,44 +4141,31 @@ "dev": true }, "node_modules/multimatch": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-7.0.0.tgz", - "integrity": "sha512-SYU3HBAdF4psHEL/+jXDKHO95/m5P2RvboHT2Y0WtTttvJLP4H/2WS9WlQPFvF6C8d6SpLw8vjCnQOnVIVOSJQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", "dev": true, "dependencies": { - "array-differ": "^4.0.0", - "array-union": "^3.0.1", - "minimatch": "^9.0.3" + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" }, "engines": { - "node": ">=18" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/multimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/multimatch/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "bin": { + "mustache": "bin/mustache" } }, "node_modules/mz": { @@ -4078,6 +4215,12 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -4104,17 +4247,6 @@ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, - "node_modules/node-retrieve-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/node-retrieve-globals/-/node-retrieve-globals-6.0.0.tgz", - "integrity": "sha512-VoEp6WMN/JcbBrJr6LnFE11kdzpKiBKNPFrHCEK2GgFWtiYpeL85WgcZpZFFnWxAU0O65+b+ipQAy4Oxy/+Pdg==", - "dev": true, - "dependencies": { - "acorn": "^8.1.3", - "acorn-walk": "^8.3.2", - "esm-import-transformer": "^3.0.2" - } - }, "node_modules/nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", @@ -4294,29 +4426,6 @@ "node": ">= 6" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -4545,13 +4654,22 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/path-to-regexp": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", + "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", + "dev": true + }, "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/picocolors": { @@ -4640,19 +4758,19 @@ } }, "node_modules/postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.0.0.tgz", + "integrity": "sha512-OmjhudoNTP0QleZCwl1i6NeBwN+5MZbY5ersLZz69mjJiDVv/p57RjRuKDkHeDWr4T+S97wQfsqRTNoDHB2e3g==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.11", + "postcss-selector-parser": "^6.0.16", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12 || ^20.9 || >=22.0" }, "peerDependencies": { - "postcss": "^8.2.2" + "postcss": "^8.4.38" } }, "node_modules/postcss-calc/node_modules/postcss-selector-parser": { @@ -4669,18 +4787,18 @@ } }, "node_modules/postcss-cli": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.1.0.tgz", - "integrity": "sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.0.tgz", + "integrity": "sha512-xMITAI7M0u1yolVcXJ9XTZiO9aO49mcoKQy6pCDFdMh9kGqhzLVpWxeD/32M/QBmkhcGypZFFOLNLmIW4Pg4RA==", "dev": true, "dependencies": { "chokidar": "^3.3.0", "dependency-graph": "^0.11.0", "fs-extra": "^11.0.0", "get-stdin": "^9.0.0", - "globby": "^13.0.0", + "globby": "^14.0.0", "picocolors": "^1.0.0", - "postcss-load-config": "^4.0.0", + "postcss-load-config": "^5.0.0", "postcss-reporter": "^7.0.0", "pretty-hrtime": "^1.0.3", "read-cache": "^1.0.0", @@ -4691,16 +4809,55 @@ "postcss": "index.js" }, "engines": { - "node": ">=14" + "node": ">=18" }, "peerDependencies": { "postcss": "^8.0.0" } }, + "node_modules/postcss-cli/node_modules/postcss-load-config": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz", + "integrity": "sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.1.1", + "yaml": "^2.4.2" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + } + } + }, "node_modules/postcss-colormin": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", - "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.0.tgz", + "integrity": "sha512-5CN6fqtsEtEtwf3mFV3B4UaZnlYljPpzmGeDB4yCK067PnAtfLe9uX2aFZaEwxHE7HopG5rUkW8gyHrNAesHEg==", "dev": true, "dependencies": { "browserslist": "^4.23.0", @@ -4709,71 +4866,71 @@ "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-convert-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", - "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.0.tgz", + "integrity": "sha512-bMuzDgXBbFbByPgj+/r6va8zNuIDUaIIbvAFgdO1t3zdgJZ77BZvu6dfWyd6gHEJnYzmeVr9ayUsAQL3/qLJ0w==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-discard-comments": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", - "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.0.tgz", + "integrity": "sha512-xpSdzRqYmy4YIVmjfGyYXKaI1SRnK6CTr+4Zmvyof8ANwvgfZgGdVtmgAvzh59gJm808mJCWQC9tFN0KF5dEXA==", "dev": true, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-discard-duplicates": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", - "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.0.tgz", + "integrity": "sha512-bAnSuBop5LpAIUmmOSsuvtKAAKREB6BBIYStWUTGq8oG5q9fClDMMuY8i4UPI/cEcDx2TN+7PMnXYIId20UVDw==", "dev": true, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-discard-empty": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", - "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.0.tgz", + "integrity": "sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==", "dev": true, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-discard-overridden": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", - "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.0.tgz", + "integrity": "sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==", "dev": true, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" @@ -4851,34 +5008,34 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", - "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.0.tgz", + "integrity": "sha512-0X8I4/9+G03X5/5NnrfopG/YEln2XU8heDh7YqBaiq2SeaKIG3n66ShZPjIolmVuLBQ0BEm3yS8o1mlCLHdW7A==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.1.1" + "stylehacks": "^7.0.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-merge-rules": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", - "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.0.tgz", + "integrity": "sha512-Zty3VlOsD6VSjBMu6PiHCVpLegtBT/qtZRVBcSeyEZ6q1iU5qTYT0WtEoLRV+YubZZguS5/ycfP+NRiKfjv6aw==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.2", + "cssnano-utils": "^5.0.0", "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" @@ -4898,64 +5055,64 @@ } }, "node_modules/postcss-minify-font-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", - "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.0.tgz", + "integrity": "sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-minify-gradients": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", - "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.0.tgz", + "integrity": "sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==", "dev": true, "dependencies": { "colord": "^2.9.3", - "cssnano-utils": "^4.0.2", + "cssnano-utils": "^5.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-minify-params": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", - "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.0.tgz", + "integrity": "sha512-XOJAuX8Q/9GT1sGxlUvaFEe2H9n50bniLZblXXsAT/BwSfFYvzSZeFG7uupwc0KbKpTnflnQ7aMwGzX6JUWliQ==", "dev": true, "dependencies": { "browserslist": "^4.23.0", - "cssnano-utils": "^4.0.2", + "cssnano-utils": "^5.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-minify-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", - "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.0.tgz", + "integrity": "sha512-f00CExZhD6lNw2vTZbcnmfxVgaVKzUw6IRsIFX3JTT8GdsoABc1WnhhGwL1i8YPJ3sSWw39fv7XPtvLb+3Uitw==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" @@ -5007,180 +5164,180 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", - "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.0.tgz", + "integrity": "sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==", "dev": true, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-display-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", - "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.0.tgz", + "integrity": "sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-positions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", - "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.0.tgz", + "integrity": "sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", - "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.0.tgz", + "integrity": "sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-string": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", - "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.0.tgz", + "integrity": "sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", - "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.0.tgz", + "integrity": "sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-unicode": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", - "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.0.tgz", + "integrity": "sha512-OnKV52/VFFDAim4n0pdI+JAhsolLBdnCKxE6VV5lW5Q/JeVGFN8UM8ur6/A3EAMLsT1ZRm3fDHh/rBoBQpqi2w==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-url": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", - "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.0.tgz", + "integrity": "sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-whitespace": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", - "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.0.tgz", + "integrity": "sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-ordered-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", - "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.0.tgz", + "integrity": "sha512-KROvC63A8UQW1eYDljQe1dtwc1E/M+mMwDT6z7khV/weHYLWTghaLRLunU7x1xw85lWFwVZOAGakxekYvKV+0w==", "dev": true, "dependencies": { - "cssnano-utils": "^4.0.2", + "cssnano-utils": "^5.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-initial": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", - "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.0.tgz", + "integrity": "sha512-iqGgmBxY9LrblZ0BKLjmrA1mC/cf9A/wYCCqSmD6tMi+xAyVl0+DfixZIHSVDMbCPRPjNmVF0DFGth/IDGelFQ==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-transforms": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", - "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.0.tgz", + "integrity": "sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" @@ -5226,31 +5383,31 @@ } }, "node_modules/postcss-svgo": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", - "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.0.0.tgz", + "integrity": "sha512-Xj5DRdvA97yRy3wjbCH2NKXtDUwEnph6EHr5ZXszsBVKCNrKXYBjzAXqav7/Afz5WwJ/1peZoTguCEJIg7ytmA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^3.2.0" }, "engines": { - "node": "^14 || ^16 || >= 18" + "node": "^18.12.0 || ^20.9.0 || >= 18" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-unique-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", - "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.0.tgz", + "integrity": "sha512-NYFqcft7vVQMZlQPsMdMPy+qU/zDpy95Malpw4GeA9ZZjM6dVXDshXtDmLc0m4WCD6XeZCJqjTfPT1USsdt+rA==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" @@ -5369,6 +5526,130 @@ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true }, + "node_modules/pug": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", + "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "dev": true, + "dependencies": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "dev": true + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -5383,6 +5664,7 @@ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -5416,15 +5698,6 @@ } ] }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -5657,63 +5930,6 @@ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", "dev": true }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/send/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 - }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -5737,12 +5953,6 @@ "node": ">= 0.4" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, "node_modules/sharp": { "version": "0.33.3", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.3.tgz", @@ -5915,24 +6125,15 @@ "dev": true }, "node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, "dependencies": { - "minipass": "^7.0.3" + "minipass": "^3.1.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/ssri/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 8" } }, "node_modules/statuses": { @@ -6029,16 +6230,16 @@ } }, "node_modules/stylehacks": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", - "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.0.tgz", + "integrity": "sha512-47Nw4pQ6QJb4CA6dzF2m9810sjQik4dfk4UwAm5wlwhrW3syzZKF8AR4/cfO3Cr6lsFgAoznQq0Wg57qhjTA2A==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { "postcss": "^8.4.31" @@ -6168,9 +6369,9 @@ } }, "node_modules/svgo": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", - "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.1.tgz", + "integrity": "sha512-xQQTIGRl3gHTO2PFlZFLl+Xwofj+CMOPitfoByGBNAniQnY6SbGgd31u3C8RTqdlqZqYNl9Sb83VXbimVHcU6w==", "dev": true, "dependencies": { "@trysound/sax": "0.2.0", @@ -6182,7 +6383,7 @@ "picocolors": "^1.0.0" }, "bin": { - "svgo": "bin/svgo" + "svgo": "bin/svgo.js" }, "engines": { "node": ">=14.0.0" @@ -6426,6 +6627,15 @@ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", "dev": true }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -6438,14 +6648,11 @@ "node": ">=8.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==", + "dev": true }, "node_modules/tr46": { "version": "0.0.3", @@ -6493,7 +6700,21 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "dev": true + "dev": true, + "peer": true + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } }, "node_modules/uhyphen": { "version": "0.1.0", @@ -6501,6 +6722,18 @@ "integrity": "sha512-o0QVGuFg24FK765Qdd5kk0zU/U4dEsCtN/GSiwNI9i8xsSVtjIAOdTaVhLwZ1nrbWxFVMxNDDl+9fednsOMsBw==", "dev": true }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -6558,18 +6791,21 @@ "punycode": "^2.1.0" } }, - "node_modules/urlpattern-polyfill": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", - "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", - "dev": true - }, "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 }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -6610,6 +6846,27 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -6688,9 +6945,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", - "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", + "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", "dev": true, "bin": { "yaml": "bin.mjs" diff --git a/package.json b/package.json index 3f7934e..1b0543a 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,8 @@ "lint": "eslint \"./**/*.js\"", "lint:fix": "eslint \"./**/*.js\" --fix", "start": "run-p start:*", - "start:eleventy": "eleventy --serve --incremental", - "start:postcss": "postcss src/assets/css/*.css --dir dist/assets/css --watch", + "start:eleventy": "eleventy --serve", + "start:postcss": "postcss src/assets/css/*.css --dir dist/assets/css --watch --verbose", "build": "run-s clean build:eleventy build:postcss", "build:eleventy": "eleventy", "build:postcss": "postcss src/assets/css/*.css --dir dist/assets/css", @@ -25,8 +25,8 @@ }, "homepage": "https://github.com/sphars/spencerharston.com#readme", "devDependencies": { - "@11ty/eleventy": "^3.0.0-alpha.10", - "@11ty/eleventy-img": "^5.0.0-beta.1", + "@11ty/eleventy": "^2.0.1", + "@11ty/eleventy-img": "^4.0.2", "@11ty/eleventy-plugin-rss": "^1.2.0", "@fontsource/arimo": "^5.0.20", "@fontsource/atkinson-hyperlegible": "^5.0.20", @@ -37,17 +37,18 @@ "async-git": "^1.13.3", "autoprefixer": "^10.4.19", "canvas": "^2.11.2", - "cssnano": "^6.1.2", + "cssnano": "^7.0.1", "eleventy-plugin-reading-time": "^0.0.1", "eslint": "^8.57.0", "html-minifier-terser": "^7.2.0", "markdown-it-anchor": "^8.6.7", "markdown-it-attrs": "^4.1.6", + "markdown-it-eleventy-img": "^0.10.2", "markdown-it-footnote": "^4.0.0", "markdown-it-image-figures": "^2.1.1", "npm-run-all2": "^6.1.2", "postcss": "^8.4.38", - "postcss-cli": "^10.1.0", + "postcss-cli": "^11.0.0", "tailwindcss": "^3.4.3" } } diff --git a/postcss.config.js b/postcss.config.js index c0b377b..205f2d1 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -2,11 +2,5 @@ module.exports = () => ({ plugins: { tailwindcss: {}, autoprefixer: {}, - cssnano: - process.env.ELEVENTY_ENV === "production" - ? { - preset: ["default", {discardComments: {removeAll:true}}] - } - : false - } + cssnano: process.env.ELEVENTY_ENV === "production" ? { preset: ["default", {discardComments: {removeAll:true}}]} : {} } }); diff --git a/src/assets/img/content/bird-crop.jpg b/src/assets/img/bird-crop.jpg similarity index 100% rename from src/assets/img/content/bird-crop.jpg rename to src/assets/img/bird-crop.jpg diff --git a/src/assets/img/content/penrosetriangle.svg b/src/assets/img/penrosetriangle.svg similarity index 100% rename from src/assets/img/content/penrosetriangle.svg rename to src/assets/img/penrosetriangle.svg diff --git a/src/assets/img/content/statik.png b/src/assets/img/statik.png similarity index 100% rename from src/assets/img/content/statik.png rename to src/assets/img/statik.png diff --git a/src/feed.njk b/src/feed.njk index 03a9799..55a3724 100644 --- a/src/feed.njk +++ b/src/feed.njk @@ -2,8 +2,6 @@ layout: false permalink: feed.xml eleventyExcludeFromCollections: true -eleventyImport: - collections: ["posts"] metadata: title: Spencer Harston subtitle: The personal website of Spencer Harston diff --git a/src/index.njk b/src/index.njk index 9f11b5f..c6b1b6f 100644 --- a/src/index.njk +++ b/src/index.njk @@ -4,7 +4,7 @@ metaTagline: The personal website of Spencer Harston ---
- photo of bird on a branch + photo of bird on a branch

Spencer Harston

My corner of the internet

diff --git a/src/posts.njk b/src/posts.njk index 59ac0b9..753ca9a 100644 --- a/src/posts.njk +++ b/src/posts.njk @@ -6,8 +6,6 @@ pagination: reverse: true layout: layouts/default title: Posts -eleventyImport: - collections: ["posts", "tagList", "yearList"] --- {%- from "macros/posts-list.njk" import postsList %} {%- from "macros/tags-list.njk" import tagsList %} diff --git a/src/posts/drafts/post-testing.md b/src/posts/drafts/post-testing.md index 2b7c279..6d34317 100644 --- a/src/posts/drafts/post-testing.md +++ b/src/posts/drafts/post-testing.md @@ -44,7 +44,7 @@ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Itaque, optio ut sequi [link title](https://www.example.com) -![statik](../../assets/img/content/statik.png "statik") +![statik](../../assets/img/statik.png "statik") ![An image of a dog](https://picsum.photos/400/ "This is a random image") diff --git a/src/secondary-pages/posts-by-tag.njk b/src/secondary-pages/posts-by-tag.njk index f896e05..f733ac7 100644 --- a/src/secondary-pages/posts-by-tag.njk +++ b/src/secondary-pages/posts-by-tag.njk @@ -1,9 +1,8 @@ --- pagination: - data: collections + data: collections.tagList size: 1 alias: tag - filter: ['all', 'posts', 'tagList', 'yearList'] layout: layouts/default permalink: /tag/{{ tag }}/ eleventyComputed: @@ -11,4 +10,4 @@ eleventyComputed: --- {% from "macros/posts-list.njk" import postsList %} -{{ postsList(collections[tag]) }} \ No newline at end of file +{{ postsList(collections.posts | postsByTag(tag)) }} \ No newline at end of file diff --git a/utils/public-sans-latin-400-italic.ttf b/utils/public-sans-latin-400-italic.ttf deleted file mode 100644 index a568a409b4a173669fe17b41a5d93df087a64978..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29112 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 diff --git a/utils/public-sans-latin-400-normal.ttf b/utils/public-sans-latin-400-normal.ttf deleted file mode 100644 index b971c4f2cbbb218e01717c9d465a8b715bbfc5f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28176 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