From ef6923ece64dd1f4cf6ab542c3d9446765cfe843 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Thu, 3 Oct 2024 21:32:47 -0700 Subject: [PATCH 01/56] feat: upgrade to v3; install eleventy-upgrade-help --- eleventy.config.js | 3 + package-lock.json | 3230 +++++++++++++++++++++++--------------------- package.json | 7 +- 3 files changed, 1677 insertions(+), 1563 deletions(-) diff --git a/eleventy.config.js b/eleventy.config.js index bc4d90f..2db54c0 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -1,3 +1,4 @@ +const UpgradeHelper = require("@11ty/eleventy-upgrade-help"); const pluginRss = require("@11ty/eleventy-plugin-rss"); const pluginNoRobots = require("eleventy-plugin-no-robots"); @@ -65,6 +66,8 @@ module.exports = (eleventyConfig) => { eleventyConfig.addShortcode("image", imageShortcode); eleventyConfig.addShortcode("youtube", liteYoutube); + eleventyConfig.addPlugin(UpgradeHelper); + return { // Optional (default is set): If your site deploys to a subdirectory, change `pathPrefix`, for example with with GitHub pages pathPrefix: "/", diff --git a/package-lock.json b/package-lock.json index 93ac88c..6a5fd8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,8 +8,11 @@ "name": "wonderfulfrog.com", "version": "1.0.0", "license": "MIT", + "dependencies": { + "@11ty/eleventy-upgrade-help": "^3.0.1" + }, "devDependencies": { - "@11ty/eleventy": "^2.0.1", + "@11ty/eleventy": "^3.0.0", "@11ty/eleventy-fetch": "^4.0.0", "@11ty/eleventy-img": "^3.1.8", "@11ty/eleventy-plugin-rss": "^1.2.0", @@ -38,61 +41,85 @@ } }, "node_modules/@11ty/dependency-tree": { - "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": "2.0.1", - "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.1.tgz", - "integrity": "sha512-t8XVUbCJByhVEa1RzO0zS2QzbL3wPY8ot1yUw9noqiSHxJWUwv6jiwm1/MZDPTYtkZH2ZHvdQIRQ5/SjG9XmLw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-3.0.1.tgz", + "integrity": "sha512-aZizxcL4Z/clm3KPRx8i9ohW9R2gLssXfUSy7qQmQRXb4CUOyvmqk2gKeJqRmXIfMi2bB9w03SgtN5v1YwqpiA==", "dev": true, "dependencies": { - "@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", - "@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", + "@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", - "ejs": "^3.1.9", - "fast-glob": "^3.2.12", + "normalize-path": "^3.0.0" + } + }, + "node_modules/@11ty/dependency-tree-esm/node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/@11ty/eleventy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-3.0.0.tgz", + "integrity": "sha512-0P0ZsJXVW2QiNdhd7z+GYy6n+ivh0enx1DRdua5ta6NlzY2AhbkeWBY6U+FKA8lPS3H4+XsTpfLLfIScpPZLaQ==", + "dev": true, + "dependencies": { + "@11ty/dependency-tree": "^3.0.1", + "@11ty/dependency-tree-esm": "^1.0.0", + "@11ty/eleventy-dev-server": "^2.0.4", + "@11ty/eleventy-plugin-bundle": "^3.0.0", + "@11ty/eleventy-utils": "^1.0.3", + "@11ty/lodash-custom": "^4.17.21", + "@11ty/posthtml-urls": "^1.0.0", + "@11ty/recursive-copy": "^3.0.0", + "@sindresorhus/slugify": "^2.2.1", + "bcp-47-normalize": "^2.3.0", + "chardet": "^2.0.0", + "chokidar": "^3.6.0", + "cross-spawn": "^7.0.3", + "debug": "^4.3.7", + "dependency-graph": "^1.0.0", + "entities": "^5.0.0", + "fast-glob": "^3.3.2", + "filesize": "^10.1.6", "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": "^2.1.15", + "iso-639-1": "^3.1.3", + "js-yaml": "^4.1.0", "kleur": "^4.1.5", - "liquidjs": "^10.7.0", - "luxon": "^3.3.0", - "markdown-it": "^13.0.1", - "micromatch": "^4.0.5", + "liquidjs": "^10.17.0", + "luxon": "^3.5.0", + "markdown-it": "^14.1.0", + "micromatch": "^4.0.8", "minimist": "^1.2.8", "moo": "^0.5.2", - "multimatch": "^5.0.0", - "mustache": "^4.2.0", + "node-retrieve-globals": "^6.0.0", "normalize-path": "^3.0.0", - "nunjucks": "^3.2.3", - "path-to-regexp": "^6.2.1", + "nunjucks": "^3.2.4", "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.3.8", + "posthtml-match-helper": "^2.0.2", + "semver": "^7.6.3", "slugify": "^1.6.6" }, "bin": { - "eleventy": "cmd.js" + "eleventy": "cmd.cjs" }, "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { "type": "opencollective", @@ -100,34 +127,42 @@ } }, "node_modules/@11ty/eleventy-dev-server": { - "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==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-2.0.4.tgz", + "integrity": "sha512-d0CuufX6yPtVz+RW0oJZg1pVoxo1jOrPmpXYacoiKLJm0MMC9MkPQOCXlimguHVaceHejFo5+aZB9/aGB2RR0A==", "dev": true, "dependencies": { - "@11ty/eleventy-utils": "^1.0.1", - "chokidar": "^3.5.3", - "debug": "^4.3.4", + "@11ty/eleventy-utils": "^1.0.3", + "chokidar": "^3.6.0", + "debug": "^4.3.7", "dev-ip": "^1.0.1", - "finalhandler": "^1.2.0", + "finalhandler": "^1.3.0", "mime": "^3.0.0", "minimist": "^1.2.8", - "morphdom": "^2.7.0", + "morphdom": "^2.7.4", "please-upgrade-node": "^3.2.0", - "ssri": "^8.0.1", - "ws": "^8.13.0" + "send": "^0.19.0", + "ssri": "^11.0.0", + "urlpattern-polyfill": "^10.0.0", + "ws": "^8.18.0" }, "bin": { "eleventy-dev-server": "cmd.js" }, "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/11ty" } }, + "node_modules/@11ty/eleventy-dev-server/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/@11ty/eleventy-fetch": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-4.0.0.tgz", @@ -169,6 +204,23 @@ "url": "https://opencollective.com/11ty" } }, + "node_modules/@11ty/eleventy-plugin-bundle": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.0.tgz", + "integrity": "sha512-JSnqehT+sWSPi6e44jTXUW+KiV9284YF9fzPQvfGB4cXlk/m/SJk17CavHCleIvKXDN+jrUw9TZkwAwr85ONWQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "posthtml-match-helper": "^2.0.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, "node_modules/@11ty/eleventy-plugin-rss": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-rss/-/eleventy-plugin-rss-1.2.0.tgz", @@ -184,10 +236,29 @@ "url": "https://opencollective.com/11ty" } }, + "node_modules/@11ty/eleventy-upgrade-help": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-upgrade-help/-/eleventy-upgrade-help-3.0.1.tgz", + "integrity": "sha512-69CttBBfplByurn5vW7eRiLPywZZZHCH6B68Ib3t3348PaHHG9RysVPRqPQzMrGIEEbXg+0+ICm+R8sAkgjfPQ==", + "dependencies": { + "fast-glob": "^3.3.2", + "kleur": "^4.1.5", + "minimist": "^1.2.8", + "posthtml-match-helper": "^2.0.2", + "semver": "^7.6.3" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, "node_modules/@11ty/eleventy-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.2.tgz", - "integrity": "sha512-Zy2leMK1DQR6Q6ZPSagv7QpJaAz9uVbb+RmVetYFp3foMeQtOSZx7w2u5daRFmP+PeNq9vO9H4xtBToYFWZwHA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.3.tgz", + "integrity": "sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==", "dev": true, "dependencies": { "normalize-path": "^3.0.0" @@ -201,9 +272,9 @@ } }, "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-5.0.0.tgz", + "integrity": "sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==", "dev": true, "engines": { "node": ">=0.12" @@ -212,43 +283,6 @@ "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", @@ -262,6 +296,107 @@ "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/@11ty/recursive-copy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@11ty/recursive-copy/-/recursive-copy-3.0.0.tgz", + "integrity": "sha512-v1Mr7dWx5nk69/HRRtDHUYDV9N8+cE12IGiKSFOwML7HjOzUXwTP88e3cGuhqoVstkBil1ZEIaOB0KPP1zwqXA==", + "dev": true, + "dependencies": { + "errno": "^0.1.2", + "graceful-fs": "^4.2.11", + "junk": "^1.0.1", + "maximatch": "^0.1.0", + "mkdirp": "^3.0.1", + "pify": "^2.3.0", + "promise": "^7.0.1", + "rimraf": "^5.0.7", + "slash": "^1.0.0" + } + }, + "node_modules/@11ty/recursive-copy/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/@11ty/recursive-copy/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@11ty/recursive-copy/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@11ty/recursive-copy/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", @@ -271,50 +406,6 @@ "node": ">=0.10.0" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", - "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -404,11 +495,49 @@ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "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/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.4", @@ -506,7 +635,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -519,7 +647,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "engines": { "node": ">= 8" } @@ -528,7 +655,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -537,6 +663,16 @@ "node": ">= 8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@pkgr/core": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", @@ -550,44 +686,58 @@ } }, "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==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz", + "integrity": "sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==", "dev": true, "dependencies": { - "@sindresorhus/transliterate": "^0.1.1", - "escape-string-regexp": "^4.0.0" + "@sindresorhus/transliterate": "^1.0.0", + "escape-string-regexp": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" + }, + "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==", + "dev": true, + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@sindresorhus/transliterate": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz", - "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz", + "integrity": "sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==", "dev": true, "dependencies": { - "escape-string-regexp": "^2.0.0", - "lodash.deburr": "^4.1.0" + "escape-string-regexp": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@sindresorhus/transliterate/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "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==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@trysound/sax": { @@ -624,12 +774,6 @@ "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", @@ -663,6 +807,18 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -729,21 +885,24 @@ "dev": true }, "node_modules/array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/array-uniq": { @@ -756,12 +915,12 @@ } }, "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/asap": { @@ -770,18 +929,6 @@ "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/autoprefixer": { "version": "10.4.17", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", @@ -825,18 +972,6 @@ "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", "dev": true }, - "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", @@ -901,14 +1036,14 @@ ] }, "node_modules/bcp-47": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-1.0.8.tgz", - "integrity": "sha512-Y9y1QNBBtYtv7hcmoX0tR+tUNSFZGZ6OL6vKPObq8BbOhkCoyayF6ogfLTgAli/KuAEbsYHYUNq2AQuY6IuLag==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.0.tgz", + "integrity": "sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==", "dev": true, "dependencies": { - "is-alphabetical": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0" + "is-alphabetical": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0" }, "funding": { "type": "github", @@ -916,9 +1051,9 @@ } }, "node_modules/bcp-47-match": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-1.0.3.tgz", - "integrity": "sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", + "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==", "dev": true, "funding": { "type": "github", @@ -926,13 +1061,13 @@ } }, "node_modules/bcp-47-normalize": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-1.1.1.tgz", - "integrity": "sha512-jWZ1Jdu3cs0EZdfCkS0UE9Gg01PtxnChjEBySeB+Zo6nkqtFfnvtoQQgP1qU1Oo4qgJgxhTI6Sf9y/pZIhPs0A==", + "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==", "dev": true, "dependencies": { - "bcp-47": "^1.0.0", - "bcp-47-match": "^1.0.0" + "bcp-47": "^2.0.0", + "bcp-47-match": "^2.0.0" }, "funding": { "type": "github", @@ -976,12 +1111,11 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1147,14 +1281,11 @@ "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/chardet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.0.0.tgz", + "integrity": "sha512-xVgPpulCooDjY6zH4m9YW3jbkaBe3FKIAvF5sj5t7aBNsVl2ljIE+xwJ4iNgiDZHFQvNIpjdKdVOQvvk5ZfxbQ==", + "dev": true }, "node_modules/cheerio": { "version": "1.0.0-rc.12", @@ -1403,16 +1534,6 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "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", @@ -1650,12 +1771,12 @@ "dev": true }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1713,13 +1834,49 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "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/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.6.0" + "node": ">= 0.8" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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": { @@ -1755,17 +1912,10 @@ "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", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -1779,7 +1929,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -1788,7 +1937,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, "funding": [ { "type": "github", @@ -1800,7 +1948,6 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, "dependencies": { "domelementtype": "^2.2.0" }, @@ -1815,7 +1962,6 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -1853,27 +1999,18 @@ "integrity": "sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==", "dev": true }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, - "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", - "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.668", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", @@ -1886,10 +2023,16 @@ "integrity": "sha512-jmX2Kx+ZRMPHIFW41FeVd/GPiDXMkVYXZbX/xN6C0R47uL1Pl9+0m3+sg2hMpgyRL9WRbLN/SJMz1+MZIa6aXg==", "dev": true }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, "engines": { "node": ">= 0.8" @@ -1949,6 +2092,18 @@ "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", @@ -2113,6 +2268,15 @@ "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", @@ -2185,6 +2349,24 @@ "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", @@ -2234,7 +2416,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2268,7 +2449,6 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -2285,41 +2465,19 @@ "node": "^10.12.0 || >=12.0.0" } }, - "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==", + "node_modules/filesize": { + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz", + "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==", "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": ">= 10.4.0" } }, "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, + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2328,13 +2486,13 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -2396,6 +2554,22 @@ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -2409,6 +2583,15 @@ "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-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -2493,7 +2676,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -2577,33 +2759,6 @@ "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", @@ -2626,9 +2781,9 @@ } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, "engines": { "node": ">= 0.4" @@ -2649,21 +2804,6 @@ "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/hasown": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", @@ -2701,7 +2841,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", - "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -2720,7 +2859,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "dev": true, "engines": { "node": ">=0.12" }, @@ -2737,6 +2875,22 @@ "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/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -2829,9 +2983,9 @@ "dev": true }, "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", "dev": true, "funding": { "type": "github", @@ -2839,13 +2993,13 @@ } }, "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", "dev": true, "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" }, "funding": { "type": "github", @@ -2883,37 +3037,15 @@ } }, "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", "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", @@ -2927,16 +3059,23 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -2947,14 +3086,12 @@ "node_modules/is-json": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", - "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", - "dev": true + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==" }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -2968,28 +3105,6 @@ "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", @@ -2997,38 +3112,29 @@ "dev": true }, "node_modules/iso-639-1": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz", - "integrity": "sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-3.1.3.tgz", + "integrity": "sha512-1jz0Wh9hyLMRwqEPchb/KZCiTqfFWtc9R3nm7GHPygBAKS8wdKJ3FH4lvLsri6UtAE5Kz5SnowtXZa//6bqMyw==", "dev": true, "engines": { "node": ">=6.0" } }, - "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" + "@isaacs/cliui": "^8.0.2" }, - "bin": { - "jake": "bin/cli.js" + "funding": { + "url": "https://github.com/sponsors/isaacs" }, - "engines": { - "node": ">=10" + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "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", @@ -3059,16 +3165,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "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", @@ -3100,7 +3196,6 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, "engines": { "node": ">=6" } @@ -3137,9 +3232,9 @@ } }, "node_modules/liquidjs": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.10.0.tgz", - "integrity": "sha512-f4gPvCq4uV4Fm5YezVUQoAMPmBMEuIE2LvgCnzyWoPRx+ZefH6b8DU2eb7znltRqATHF8zYvOsd5FD2z1spJgg==", + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.17.0.tgz", + "integrity": "sha512-M4MC5/nencttIJHirl5jFTkl7Yu+grIDLn3Qgl7BPAD3BsbTCQknDxlG5VXWRwslWIjk8lSZZjVq9LioILDk1Q==", "dev": true, "dependencies": { "commander": "^10.0.0" @@ -3177,12 +3272,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -3211,30 +3300,24 @@ } }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true }, "node_modules/luxon": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz", - "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz", + "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/markdown-it": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz", - "integrity": "sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, "dependencies": { "argparse": "^2.0.1", @@ -3242,7 +3325,7 @@ "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", - "uc.micro": "^2.0.0" + "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" @@ -3297,36 +3380,6 @@ "node": ">=0.10.0" } }, - "node_modules/maximatch/node_modules/array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/maximatch/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/maximatch/node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", @@ -3343,18 +3396,16 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -3401,33 +3452,32 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, "bin": { - "mkdirp": "bin/cmd.js" + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/mkdirp-classic": { @@ -3443,45 +3493,17 @@ "dev": true }, "node_modules/morphdom": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.2.tgz", - "integrity": "sha512-Dqb/lHFyTi7SZpY0a5R4I/0Edo+iPMbaUexsHHsLAByyixCDiLHPHyVoKVmrpL0THcT7V9Cgev9y21TQYq6wQg==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.4.tgz", + "integrity": "sha512-ATTbWMgGa+FaMU3FhnFYB6WgulCqwf6opOll4CBzmVDTLvPMmUPrEv8CudmLPK0MESa64+6B89fWOxP3+YIlxQ==", "dev": true }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "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/multimatch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", - "dev": true, - "dependencies": { - "@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": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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, - "bin": { - "mustache": "bin/mustache" - } - }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -3512,12 +3534,6 @@ "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/netlify-plugin-cache": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/netlify-plugin-cache/-/netlify-plugin-cache-1.0.3.tgz", @@ -3578,6 +3594,17 @@ "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/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -3642,13 +3669,27 @@ "node": ">= 6" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "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.10.0" + "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": { @@ -3756,6 +3797,12 @@ "node": ">=8" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -3876,11 +3923,21 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/path-to-regexp": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", - "dev": true + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/picocolors": { "version": "1.0.0", @@ -3892,7 +3949,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -4416,7 +4472,6 @@ "version": "0.16.6", "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", - "dev": true, "dependencies": { "posthtml-parser": "^0.11.0", "posthtml-render": "^3.0.0" @@ -4425,11 +4480,21 @@ "node": ">=12.0.0" } }, + "node_modules/posthtml-match-helper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-2.0.2.tgz", + "integrity": "sha512-ehnazjlSwcGa3P2LlFYmTmcnaembTSt9dLWIRRDVHDPidf6InWAr9leKeeLvUXgnU32g6BrFS64Je+c2Ld+l9g==", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "posthtml": "^0.16.6" + } + }, "node_modules/posthtml-parser": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", - "dev": true, "dependencies": { "htmlparser2": "^7.1.1" }, @@ -4441,7 +4506,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", - "dev": true, "dependencies": { "is-json": "^2.0.1" }, @@ -4587,130 +4651,6 @@ "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/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -4752,7 +4692,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -4774,6 +4713,15 @@ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", "dev": true }, + "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/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -4833,35 +4781,6 @@ "node": ">=8.10.0" } }, - "node_modules/recursive-copy": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/recursive-copy/-/recursive-copy-2.0.14.tgz", - "integrity": "sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog==", - "dev": true, - "dependencies": { - "errno": "^0.1.2", - "graceful-fs": "^4.1.4", - "junk": "^1.0.1", - "maximatch": "^0.1.0", - "mkdirp": "^0.5.1", - "pify": "^2.3.0", - "promise": "^7.0.1", - "rimraf": "^2.7.1", - "slash": "^1.0.0" - } - }, - "node_modules/recursive-copy/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -4901,7 +4820,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -4926,7 +4844,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -4979,13 +4896,9 @@ } }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -4999,23 +4912,89 @@ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", "dev": true }, - "node_modules/set-function-length": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, "dependencies": { - "define-data-property": "^1.1.2", + "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/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "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/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "has-property-descriptors": "^1.0.2" }, "engines": { "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.32.6", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", @@ -5060,6 +5039,18 @@ "node": ">=8" } }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -5167,15 +5158,15 @@ "dev": true }, "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-11.0.0.tgz", + "integrity": "sha512-aZpUoMN/Jj2MqA4vMCeiKGnc/8SuSyHbGSBdgFbZxP8OJGF/lFkIuElzPxsN0q8TQQ+prw3P4EDfB3TBHHgfXw==", "dev": true, "dependencies": { - "minipass": "^3.1.1" + "minipass": "^7.0.3" }, "engines": { - "node": ">= 8" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/statuses": { @@ -5209,6 +5200,71 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -5221,6 +5277,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", @@ -5387,20 +5456,10 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "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", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -5408,11 +5467,14 @@ "node": ">=8.0" } }, - "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/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/tr46": { "version": "0.0.3", @@ -5463,24 +5525,11 @@ } }, "node_modules/uc.micro": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.0.0.tgz", - "integrity": "sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==", + "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 }, - "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/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -5541,15 +5590,6 @@ "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", @@ -5581,27 +5621,100 @@ "node": ">= 8" } }, - "node_modules/with": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", - "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "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" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">= 10.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -5609,9 +5722,9 @@ "dev": true }, "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "engines": { "node": ">=10.0.0" @@ -5629,12 +5742,6 @@ } } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -5650,116 +5757,115 @@ }, "dependencies": { "@11ty/dependency-tree": { - "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 - }, - "@11ty/eleventy": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.1.tgz", - "integrity": "sha512-t8XVUbCJByhVEa1RzO0zS2QzbL3wPY8ot1yUw9noqiSHxJWUwv6jiwm1/MZDPTYtkZH2ZHvdQIRQ5/SjG9XmLw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-3.0.1.tgz", + "integrity": "sha512-aZizxcL4Z/clm3KPRx8i9ohW9R2gLssXfUSy7qQmQRXb4CUOyvmqk2gKeJqRmXIfMi2bB9w03SgtN5v1YwqpiA==", "dev": true, "requires": { - "@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", - "@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", + "@11ty/eleventy-utils": "^1.0.2" + } + }, + "@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, + "requires": { + "@11ty/eleventy-utils": "^1.0.2", + "acorn": "^8.10.0", "dependency-graph": "^0.11.0", - "ejs": "^3.1.9", - "fast-glob": "^3.2.12", + "normalize-path": "^3.0.0" + }, + "dependencies": { + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true + } + } + }, + "@11ty/eleventy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-3.0.0.tgz", + "integrity": "sha512-0P0ZsJXVW2QiNdhd7z+GYy6n+ivh0enx1DRdua5ta6NlzY2AhbkeWBY6U+FKA8lPS3H4+XsTpfLLfIScpPZLaQ==", + "dev": true, + "requires": { + "@11ty/dependency-tree": "^3.0.1", + "@11ty/dependency-tree-esm": "^1.0.0", + "@11ty/eleventy-dev-server": "^2.0.4", + "@11ty/eleventy-plugin-bundle": "^3.0.0", + "@11ty/eleventy-utils": "^1.0.3", + "@11ty/lodash-custom": "^4.17.21", + "@11ty/posthtml-urls": "^1.0.0", + "@11ty/recursive-copy": "^3.0.0", + "@sindresorhus/slugify": "^2.2.1", + "bcp-47-normalize": "^2.3.0", + "chardet": "^2.0.0", + "chokidar": "^3.6.0", + "cross-spawn": "^7.0.3", + "debug": "^4.3.7", + "dependency-graph": "^1.0.0", + "entities": "^5.0.0", + "fast-glob": "^3.3.2", + "filesize": "^10.1.6", "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": "^2.1.15", + "iso-639-1": "^3.1.3", + "js-yaml": "^4.1.0", "kleur": "^4.1.5", - "liquidjs": "^10.7.0", - "luxon": "^3.3.0", - "markdown-it": "^13.0.1", - "micromatch": "^4.0.5", + "liquidjs": "^10.17.0", + "luxon": "^3.5.0", + "markdown-it": "^14.1.0", + "micromatch": "^4.0.8", "minimist": "^1.2.8", "moo": "^0.5.2", - "multimatch": "^5.0.0", - "mustache": "^4.2.0", + "node-retrieve-globals": "^6.0.0", "normalize-path": "^3.0.0", - "nunjucks": "^3.2.3", - "path-to-regexp": "^6.2.1", + "nunjucks": "^3.2.4", "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.3.8", + "posthtml-match-helper": "^2.0.2", + "semver": "^7.6.3", "slugify": "^1.6.6" }, "dependencies": { "entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "dev": true - }, - "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, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "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, - "requires": { - "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, - "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-5.0.0.tgz", + "integrity": "sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==", "dev": true } } }, "@11ty/eleventy-dev-server": { - "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==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-2.0.4.tgz", + "integrity": "sha512-d0CuufX6yPtVz+RW0oJZg1pVoxo1jOrPmpXYacoiKLJm0MMC9MkPQOCXlimguHVaceHejFo5+aZB9/aGB2RR0A==", "dev": true, "requires": { - "@11ty/eleventy-utils": "^1.0.1", - "chokidar": "^3.5.3", - "debug": "^4.3.4", + "@11ty/eleventy-utils": "^1.0.3", + "chokidar": "^3.6.0", + "debug": "^4.3.7", "dev-ip": "^1.0.1", - "finalhandler": "^1.2.0", + "finalhandler": "^1.3.0", "mime": "^3.0.0", "minimist": "^1.2.8", - "morphdom": "^2.7.0", + "morphdom": "^2.7.4", "please-upgrade-node": "^3.2.0", - "ssri": "^8.0.1", - "ws": "^8.13.0" + "send": "^0.19.0", + "ssri": "^11.0.0", + "urlpattern-polyfill": "^10.0.0", + "ws": "^8.18.0" + }, + "dependencies": { + "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 + } } }, "@11ty/eleventy-fetch": { @@ -5789,6 +5895,16 @@ "sharp": "^0.32.6" } }, + "@11ty/eleventy-plugin-bundle": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.0.tgz", + "integrity": "sha512-JSnqehT+sWSPi6e44jTXUW+KiV9284YF9fzPQvfGB4cXlk/m/SJk17CavHCleIvKXDN+jrUw9TZkwAwr85ONWQ==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "posthtml-match-helper": "^2.0.2" + } + }, "@11ty/eleventy-plugin-rss": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-rss/-/eleventy-plugin-rss-1.2.0.tgz", @@ -5800,10 +5916,22 @@ "posthtml-urls": "1.0.0" } }, + "@11ty/eleventy-upgrade-help": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-upgrade-help/-/eleventy-upgrade-help-3.0.1.tgz", + "integrity": "sha512-69CttBBfplByurn5vW7eRiLPywZZZHCH6B68Ib3t3348PaHHG9RysVPRqPQzMrGIEEbXg+0+ICm+R8sAkgjfPQ==", + "requires": { + "fast-glob": "^3.3.2", + "kleur": "^4.1.5", + "minimist": "^1.2.8", + "posthtml-match-helper": "^2.0.2", + "semver": "^7.6.3" + } + }, "@11ty/eleventy-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.2.tgz", - "integrity": "sha512-Zy2leMK1DQR6Q6ZPSagv7QpJaAz9uVbb+RmVetYFp3foMeQtOSZx7w2u5daRFmP+PeNq9vO9H4xtBToYFWZwHA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.3.tgz", + "integrity": "sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==", "dev": true, "requires": { "normalize-path": "^3.0.0" @@ -5815,41 +5943,93 @@ "integrity": "sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==", "dev": true }, + "@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, + "requires": { + "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" + }, + "dependencies": { + "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 + } + } + }, + "@11ty/recursive-copy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@11ty/recursive-copy/-/recursive-copy-3.0.0.tgz", + "integrity": "sha512-v1Mr7dWx5nk69/HRRtDHUYDV9N8+cE12IGiKSFOwML7HjOzUXwTP88e3cGuhqoVstkBil1ZEIaOB0KPP1zwqXA==", + "dev": true, + "requires": { + "errno": "^0.1.2", + "graceful-fs": "^4.2.11", + "junk": "^1.0.1", + "maximatch": "^0.1.0", + "mkdirp": "^3.0.1", + "pify": "^2.3.0", + "promise": "^7.0.1", + "rimraf": "^5.0.7", + "slash": "^1.0.0" + }, + "dependencies": { + "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, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + } + }, + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "requires": { + "glob": "^10.3.7" + } + } + } + }, "@aashutoshrathi/word-wrap": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true }, - "@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", - "dev": true - }, - "@babel/types": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", - "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, "@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -5911,11 +6091,36 @@ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, - "@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 + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } }, "@jridgewell/gen-mapping": { "version": "0.3.4", @@ -5995,7 +6200,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -6004,19 +6208,24 @@ "@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" }, "@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true + }, "@pkgr/core": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", @@ -6024,29 +6233,36 @@ "dev": true }, "@sindresorhus/slugify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", - "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz", + "integrity": "sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==", "dev": true, "requires": { - "@sindresorhus/transliterate": "^0.1.1", - "escape-string-regexp": "^4.0.0" - } - }, - "@sindresorhus/transliterate": { - "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, - "requires": { - "escape-string-regexp": "^2.0.0", - "lodash.deburr": "^4.1.0" + "@sindresorhus/transliterate": "^1.0.0", + "escape-string-regexp": "^5.0.0" }, "dependencies": { "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "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==", + "dev": true + } + } + }, + "@sindresorhus/transliterate": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz", + "integrity": "sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^5.0.0" + }, + "dependencies": { + "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==", "dev": true } } @@ -6082,12 +6298,6 @@ "dev": true, "peer": true }, - "@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 - }, "@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -6113,6 +6323,15 @@ "dev": true, "requires": {} }, + "acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "requires": { + "acorn": "^8.11.0" + } + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -6163,16 +6382,19 @@ "dev": true }, "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", "dev": true }, "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } }, "array-uniq": { "version": "1.0.3", @@ -6181,9 +6403,9 @@ "dev": true }, "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true }, "asap": { @@ -6192,18 +6414,6 @@ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true }, - "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 - }, - "async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true - }, "autoprefixer": { "version": "10.4.17", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", @@ -6224,15 +6434,6 @@ "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", "dev": true }, - "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, - "requires": { - "@babel/types": "^7.9.6" - } - }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -6283,30 +6484,30 @@ "dev": true }, "bcp-47": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-1.0.8.tgz", - "integrity": "sha512-Y9y1QNBBtYtv7hcmoX0tR+tUNSFZGZ6OL6vKPObq8BbOhkCoyayF6ogfLTgAli/KuAEbsYHYUNq2AQuY6IuLag==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.0.tgz", + "integrity": "sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==", "dev": true, "requires": { - "is-alphabetical": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0" + "is-alphabetical": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0" } }, "bcp-47-match": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-1.0.3.tgz", - "integrity": "sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", + "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==", "dev": true }, "bcp-47-normalize": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-1.1.1.tgz", - "integrity": "sha512-jWZ1Jdu3cs0EZdfCkS0UE9Gg01PtxnChjEBySeB+Zo6nkqtFfnvtoQQgP1qU1Oo4qgJgxhTI6Sf9y/pZIhPs0A==", + "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==", "dev": true, "requires": { - "bcp-47": "^1.0.0", - "bcp-47-match": "^1.0.0" + "bcp-47": "^2.0.0", + "bcp-47-match": "^2.0.0" } }, "binary-extensions": { @@ -6343,12 +6544,11 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "brotli-size": { @@ -6445,14 +6645,11 @@ "supports-color": "^7.1.0" } }, - "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, - "requires": { - "is-regex": "^1.0.3" - } + "chardet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.0.0.tgz", + "integrity": "sha512-xVgPpulCooDjY6zH4m9YW3jbkaBe3FKIAvF5sj5t7aBNsVl2ljIE+xwJ4iNgiDZHFQvNIpjdKdVOQvvk5ZfxbQ==", + "dev": true }, "cheerio": { "version": "1.0.0-rc.12", @@ -6645,16 +6842,6 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "constantinople": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", - "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", - "dev": true, - "requires": { - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.1" - } - }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -6829,12 +7016,12 @@ "dev": true }, "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.3" } }, "decompress-response": { @@ -6869,10 +7056,33 @@ "gopd": "^1.0.1" } }, + "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, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "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 + }, "dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "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==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true }, "detect-libc": { @@ -6896,17 +7106,10 @@ "esutils": "^2.0.2" } }, - "doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", - "dev": true - }, "dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -6916,22 +7119,19 @@ "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" } } }, "domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" }, "domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, "requires": { "domelementtype": "^2.2.0" } @@ -6940,7 +7140,6 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, "requires": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -6969,21 +7168,18 @@ "integrity": "sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==", "dev": true }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, - "ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", - "dev": true, - "requires": { - "jake": "^10.8.5" - } - }, "electron-to-chromium": { "version": "1.4.668", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", @@ -6996,10 +7192,16 @@ "integrity": "sha512-jmX2Kx+ZRMPHIFW41FeVd/GPiDXMkVYXZbX/xN6C0R47uL1Pl9+0m3+sg2hMpgyRL9WRbLN/SJMz1+MZIa6aXg==", "dev": true }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true }, "end-of-stream": { @@ -7041,6 +7243,15 @@ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true }, + "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, + "requires": { + "es-errors": "^1.3.0" + } + }, "escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", @@ -7149,6 +7360,15 @@ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true }, + "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, + "requires": { + "acorn": "^8.11.2" + } + }, "espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -7196,6 +7416,18 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "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 + }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -7239,7 +7471,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -7270,7 +7501,6 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, "requires": { "reusify": "^1.0.4" } @@ -7284,52 +7514,28 @@ "flat-cache": "^3.0.4" } }, - "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, - "requires": { - "minimatch": "^5.0.1" - }, - "dependencies": { - "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, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } + "filesize": { + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz", + "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==", + "dev": true }, "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, + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "requires": { "to-regex-range": "^5.0.1" } }, "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -7381,12 +7587,28 @@ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, + "foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + } + }, "fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -7449,7 +7671,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -7517,25 +7738,6 @@ } } }, - "hamljs": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/hamljs/-/hamljs-0.6.2.tgz", - "integrity": "sha512-/chXRp4WpL47I+HX1vCCdSbEXAljEG2FBMmgO7Am0bYsqgnEjreeWzUdX1onXqwZtcfgxbCg5WtEYYvuZ5muBg==", - "dev": true - }, - "handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -7552,9 +7754,9 @@ } }, "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true }, "has-symbols": { @@ -7563,15 +7765,6 @@ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, - "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, - "requires": { - "has-symbols": "^1.0.3" - } - }, "hasown": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", @@ -7600,7 +7793,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", - "dev": true, "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.2", @@ -7611,8 +7803,7 @@ "entities": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "dev": true + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==" } } }, @@ -7622,6 +7813,19 @@ "integrity": "sha512-TScO04soylRN9i/QdOdgZyhydXg9z6XdaGzEyOgDKycePeDeTT4KvigjBcI+tgfTlieLWauGORMq5F1eIDa+1w==", "dev": true }, + "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, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -7682,19 +7886,19 @@ "dev": true }, "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", "dev": true }, "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", "dev": true, "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" } }, "is-arrayish": { @@ -7722,29 +7926,11 @@ } }, "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", "dev": true }, - "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, - "requires": { - "acorn": "^7.1.1", - "object-assign": "^4.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } - } - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -7754,14 +7940,18 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -7769,14 +7959,12 @@ "is-json": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", - "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", - "dev": true + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==" }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-path-inside": { "version": "3.0.3", @@ -7784,22 +7972,6 @@ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true }, - "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 - }, - "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, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -7807,29 +7979,21 @@ "dev": true }, "iso-639-1": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz", - "integrity": "sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-3.1.3.tgz", + "integrity": "sha512-1jz0Wh9hyLMRwqEPchb/KZCiTqfFWtc9R3nm7GHPygBAKS8wdKJ3FH4lvLsri6UtAE5Kz5SnowtXZa//6bqMyw==", "dev": true }, - "jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" } }, - "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 - }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -7857,16 +8021,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", - "dev": true, - "requires": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" - } - }, "junk": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz", @@ -7891,8 +8045,7 @@ "kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==" }, "levn": { "version": "0.4.1", @@ -7920,9 +8073,9 @@ } }, "liquidjs": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.10.0.tgz", - "integrity": "sha512-f4gPvCq4uV4Fm5YezVUQoAMPmBMEuIE2LvgCnzyWoPRx+ZefH6b8DU2eb7znltRqATHF8zYvOsd5FD2z1spJgg==", + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.17.0.tgz", + "integrity": "sha512-M4MC5/nencttIJHirl5jFTkl7Yu+grIDLn3Qgl7BPAD3BsbTCQknDxlG5VXWRwslWIjk8lSZZjVq9LioILDk1Q==", "dev": true, "requires": { "commander": "^10.0.0" @@ -7943,12 +8096,6 @@ "p-locate": "^5.0.0" } }, - "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 - }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -7977,24 +8124,21 @@ } }, "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true }, "luxon": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz", - "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz", + "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==", "dev": true }, "markdown-it": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz", - "integrity": "sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, "requires": { "argparse": "^2.0.1", @@ -8002,7 +8146,7 @@ "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", - "uc.micro": "^2.0.0" + "uc.micro": "^2.1.0" } }, "markdown-it-abbr": { @@ -8043,29 +8187,6 @@ "array-union": "^1.0.1", "arrify": "^1.0.0", "minimatch": "^3.0.0" - }, - "dependencies": { - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true - } } }, "mdn-data": { @@ -8083,16 +8204,14 @@ "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "requires": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" } }, @@ -8120,26 +8239,19 @@ "minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true }, "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true }, "mkdirp-classic": { "version": "0.5.3", @@ -8154,34 +8266,15 @@ "dev": true }, "morphdom": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.2.tgz", - "integrity": "sha512-Dqb/lHFyTi7SZpY0a5R4I/0Edo+iPMbaUexsHHsLAByyixCDiLHPHyVoKVmrpL0THcT7V9Cgev9y21TQYq6wQg==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.4.tgz", + "integrity": "sha512-ATTbWMgGa+FaMU3FhnFYB6WgulCqwf6opOll4CBzmVDTLvPMmUPrEv8CudmLPK0MESa64+6B89fWOxP3+YIlxQ==", "dev": true }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "multimatch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", - "dev": true, - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - } - }, - "mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "nanoid": { @@ -8202,12 +8295,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "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 - }, "netlify-plugin-cache": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/netlify-plugin-cache/-/netlify-plugin-cache-1.0.3.tgz", @@ -8254,6 +8341,17 @@ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, + "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, + "requires": { + "acorn": "^8.1.3", + "acorn-walk": "^8.3.2", + "esm-import-transformer": "^3.0.2" + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -8294,12 +8392,23 @@ } } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "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 }, + "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, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, "on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -8375,6 +8484,12 @@ "p-finally": "^1.0.0" } }, + "package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, "param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -8470,11 +8585,15 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "path-to-regexp": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", - "dev": true + "path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "requires": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + } }, "picocolors": { "version": "1.0.0", @@ -8485,8 +8604,7 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pify": { "version": "2.3.0", @@ -8812,17 +8930,21 @@ "version": "0.16.6", "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", - "dev": true, "requires": { "posthtml-parser": "^0.11.0", "posthtml-render": "^3.0.0" } }, + "posthtml-match-helper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-2.0.2.tgz", + "integrity": "sha512-ehnazjlSwcGa3P2LlFYmTmcnaembTSt9dLWIRRDVHDPidf6InWAr9leKeeLvUXgnU32g6BrFS64Je+c2Ld+l9g==", + "requires": {} + }, "posthtml-parser": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", - "dev": true, "requires": { "htmlparser2": "^7.1.1" } @@ -8831,7 +8953,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", - "dev": true, "requires": { "is-json": "^2.0.1" } @@ -8946,130 +9067,6 @@ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true }, - "pug": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", - "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", - "dev": true, - "requires": { - "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" - } - }, - "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, - "requires": { - "constantinople": "^4.0.1", - "js-stringify": "^1.0.2", - "pug-runtime": "^3.0.0" - } - }, - "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, - "requires": { - "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" - } - }, - "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 - }, - "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, - "requires": { - "constantinople": "^4.0.1", - "jstransformer": "1.0.0", - "pug-error": "^2.0.0", - "pug-walk": "^2.0.0", - "resolve": "^1.15.1" - } - }, - "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, - "requires": { - "character-parser": "^2.2.0", - "is-expression": "^4.0.0", - "pug-error": "^2.0.0" - } - }, - "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, - "requires": { - "pug-error": "^2.0.0", - "pug-walk": "^2.0.0" - } - }, - "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, - "requires": { - "object-assign": "^4.1.1", - "pug-walk": "^2.0.0" - } - }, - "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, - "requires": { - "pug-error": "^2.0.0", - "token-stream": "1.0.0" - } - }, - "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 - }, - "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, - "requires": { - "pug-error": "^2.0.0" - } - }, - "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 - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -9104,8 +9101,7 @@ "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "queue-tick": { "version": "1.0.1", @@ -9113,6 +9109,12 @@ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", "dev": true }, + "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 + }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -9162,34 +9164,6 @@ "picomatch": "^2.2.1" } }, - "recursive-copy": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/recursive-copy/-/recursive-copy-2.0.14.tgz", - "integrity": "sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog==", - "dev": true, - "requires": { - "errno": "^0.1.2", - "graceful-fs": "^4.1.4", - "junk": "^1.0.1", - "maximatch": "^0.1.0", - "mkdirp": "^0.5.1", - "pify": "^2.3.0", - "promise": "^7.0.1", - "rimraf": "^2.7.1", - "slash": "^1.0.0" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, "relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -9216,8 +9190,7 @@ "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, "rimraf": { "version": "3.0.2", @@ -9232,7 +9205,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "requires": { "queue-microtask": "^1.2.2" } @@ -9254,13 +9226,9 @@ } }, "semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" }, "semver-compare": { "version": "1.0.0", @@ -9268,20 +9236,78 @@ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", "dev": true }, - "set-function-length": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, "requires": { - "define-data-property": "^1.1.2", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + } + } + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "has-property-descriptors": "^1.0.2" } }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, "sharp": { "version": "0.32.6", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", @@ -9313,6 +9339,12 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + }, "simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -9380,12 +9412,12 @@ "dev": true }, "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-11.0.0.tgz", + "integrity": "sha512-aZpUoMN/Jj2MqA4vMCeiKGnc/8SuSyHbGSBdgFbZxP8OJGF/lFkIuElzPxsN0q8TQQ+prw3P4EDfB3TBHHgfXw==", "dev": true, "requires": { - "minipass": "^3.1.1" + "minipass": "^7.0.3" } }, "statuses": { @@ -9414,6 +9446,53 @@ "safe-buffer": "~5.2.0" } }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + } + } + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -9423,6 +9502,15 @@ "ansi-regex": "^5.0.1" } }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-bom-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", @@ -9542,25 +9630,18 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "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 - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } }, - "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==", + "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 }, "tr46": { @@ -9600,18 +9681,11 @@ "dev": true }, "uc.micro": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.0.0.tgz", - "integrity": "sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==", + "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 }, - "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 - }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -9649,12 +9723,6 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "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 - }, "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -9680,23 +9748,69 @@ "isexe": "^2.0.0" } }, - "with": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", - "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "requires": { - "@babel/parser": "^7.9.6", - "@babel/types": "^7.9.6", - "assert-never": "^1.2.1", - "babel-walk": "3.0.0-canary-5" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } } }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } }, "wrappy": { "version": "1.0.2", @@ -9705,18 +9819,12 @@ "dev": true }, "ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "requires": {} }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 3fb5a38..4b1ecc8 100644 --- a/package.json +++ b/package.json @@ -7,12 +7,12 @@ "license": "MIT", "scripts": { "debug": "DEBUG=Eleventy* eleventy --serve --watch", - "dev": "eleventy --serve --watch --quiet", + "start": "eleventy --serve --watch --quiet", "lint": "eslint src/ config/", "build": "eleventy" }, "devDependencies": { - "@11ty/eleventy": "^2.0.1", + "@11ty/eleventy": "^3.0.0", "@11ty/eleventy-fetch": "^4.0.0", "@11ty/eleventy-img": "^3.1.8", "@11ty/eleventy-plugin-rss": "^1.2.0", @@ -38,5 +38,8 @@ "postcss-import": "^16.0.0", "postcss-import-ext-glob": "^2.1.1", "prettier": "3.2.4" + }, + "dependencies": { + "@11ty/eleventy-upgrade-help": "^3.0.1" } } -- 2.47.2 From e8fd3a17d2ac0a9290837c3a6376f2e7f8911027 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Thu, 3 Oct 2024 22:52:20 -0700 Subject: [PATCH 02/56] feat: convert all files to esm --- config/collections/index.js | 9 +--- config/constants.js | 4 +- config/design-tokens/colors.js | 22 ++++++++ config/design-tokens/colors.json | 22 -------- config/design-tokens/fonts.js | 60 +++++++++++++++++++++ config/design-tokens/fonts.json | 60 --------------------- config/design-tokens/spacing.js | 11 ++++ config/design-tokens/spacing.json | 11 ---- config/filters/index.js | 48 ++++++----------- config/plugins/markdown.js | 12 ++--- config/shortcodes/image.js | 4 +- config/shortcodes/youtube.js | 2 +- config/transforms/html-config.js | 6 +-- eleventy.config.js | 32 +++++------ package.json | 1 + src/_data/blogroll.js | 2 +- src/_data/lastfm.js | 14 ++--- src/_data/letterboxd.js | 14 ++--- src/_data/meta.js | 2 +- src/_data/navigation.js | 2 +- src/_data/preloads.js | 6 +-- src/_data/robots.js | 8 +-- src/catalogue/books/books.11tydata.js | 2 +- src/catalogue/catalogue.11tydata.js | 2 +- src/catalogue/comics/comics.11tydata.js | 2 +- src/catalogue/games/games.11tydata.js | 2 +- src/catalogue/podcasts/podcasts.11tydata.js | 2 +- src/css-utils/colors.js | 6 +-- src/css-utils/font-family.js | 6 +-- src/css-utils/font-variables.js | 4 +- src/css-utils/helper-classes.js | 8 ++- src/css-utils/spacing.js | 6 +-- src/css/styles.11ty.js | 30 ++++++----- src/utils/fonts.js | 8 +-- 34 files changed, 202 insertions(+), 228 deletions(-) create mode 100644 config/design-tokens/colors.js delete mode 100644 config/design-tokens/colors.json create mode 100644 config/design-tokens/fonts.js delete mode 100644 config/design-tokens/fonts.json create mode 100644 config/design-tokens/spacing.js delete mode 100644 config/design-tokens/spacing.json diff --git a/config/collections/index.js b/config/collections/index.js index 3149ab1..892159b 100644 --- a/config/collections/index.js +++ b/config/collections/index.js @@ -1,4 +1,4 @@ -const postsByTag = (collection) => { +export const postsByTag = (collection) => { const posts = collection.getFilteredByTag("post"); const postsByTag = {}; @@ -13,7 +13,7 @@ const postsByTag = (collection) => { return postsByTag; }; -const catalogueByType = (collection) => { +export const catalogueByType = (collection) => { const allItems = collection.getFilteredByTag("catalogue"); const catalogueByType = {}; @@ -28,8 +28,3 @@ const catalogueByType = (collection) => { return catalogueByType; }; - -module.exports = { - catalogueByType, - postsByTag, -}; diff --git a/config/constants.js b/config/constants.js index 73012bc..f9a391a 100644 --- a/config/constants.js +++ b/config/constants.js @@ -1,9 +1,7 @@ -const dir = { +export const dir = { assets: "assets", data: "_data", includes: "_includes", input: "src", output: "dist", }; - -module.exports = { dir }; diff --git a/config/design-tokens/colors.js b/config/design-tokens/colors.js new file mode 100644 index 0000000..6947248 --- /dev/null +++ b/config/design-tokens/colors.js @@ -0,0 +1,22 @@ +export default { + light: { + primary: "188deg 84% 35%", + secondary: "8deg 84% 50%", + background: "0deg 0% 98%", + surface: "188deg 27% 94%", + border: "188deg 48% 80%", + text: "0deg 0% 4%", + fadeText: "188deg 12% 32%", + shadow: "188deg 100% 18%", + }, + dark: { + primary: "188deg 100% 30%", + secondary: "8deg 84% 43%", + background: "0deg 0% 9%", + surface: "202deg 13% 14%", + border: "208deg 27% 15%", + text: "0deg 0% 98%", + fadeText: "188deg 12% 70%", + shadow: "188deg 100% 18%", + }, +}; diff --git a/config/design-tokens/colors.json b/config/design-tokens/colors.json deleted file mode 100644 index f2f1c3f..0000000 --- a/config/design-tokens/colors.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "light": { - "primary": "188deg 84% 35%", - "secondary": "8deg 84% 50%", - "background": "0deg 0% 98%", - "surface": "188deg 27% 94%", - "border": "188deg 48% 80%", - "text": "0deg 0% 4%", - "fadeText": "188deg 12% 32%", - "shadow": "188deg 100% 18%" - }, - "dark": { - "primary": "188deg 100% 30%", - "secondary": "8deg 84% 43%", - "background": "0deg 0% 9%", - "surface": "202deg 13% 14%", - "border": "208deg 27% 15%", - "text": "0deg 0% 98%", - "fadeText": "188deg 12% 70%", - "shadow": "188deg 100% 18%" - } -} diff --git a/config/design-tokens/fonts.js b/config/design-tokens/fonts.js new file mode 100644 index 0000000..8b94a73 --- /dev/null +++ b/config/design-tokens/fonts.js @@ -0,0 +1,60 @@ +export default { + display: { + family: "Anek Latin", + format: "truetype", + weights: { + ExtraBold: { + path: "/aneklatin/AnekLatin-ExtraBold.ttf", + "font-style": "normal", + weight: 800, + }, + Bold: { + path: "/aneklatin/AnekLatin-Bold.ttf", + "font-style": "normal", + weight: 700, + }, + }, + }, + body: { + family: "iA Writer Quattro V", + format: "woff2", + weights: { + Regular: { + path: "/quattro/iAWriterQuattroS-Regular.woff2", + "font-style": "normal", + weight: 400, + }, + Italic: { + path: "/quattro/iAWriterQuattroS-Italic.woff2", + "font-style": "italic", + weight: 400, + }, + Bold: { + path: "/quattro/iAWriterQuattroS-Bold.woff2", + "font-style": "normal", + weight: 650, + }, + BoldItalic: { + path: "/quattro/iAWriterQuattroS-BoldItalic.woff2", + "font-style": "italic", + weight: 650, + }, + }, + }, + monospace: { + family: "IBM Plex Mono", + format: "truetype", + weights: { + Regular: { + path: "/ibmplexmono/IBMPlexMono-Regular.ttf", + "font-style": "normal", + weight: 400, + }, + Italic: { + path: "/ibmplexmono/IBMPlexMono-Italic.ttf", + "font-style": "italic", + weight: 400, + }, + }, + }, +}; diff --git a/config/design-tokens/fonts.json b/config/design-tokens/fonts.json deleted file mode 100644 index 14ffe63..0000000 --- a/config/design-tokens/fonts.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "display": { - "family": "Anek Latin", - "format": "truetype", - "weights": { - "ExtraBold": { - "path": "/aneklatin/AnekLatin-ExtraBold.ttf", - "font-style": "normal", - "weight": 800 - }, - "Bold": { - "path": "/aneklatin/AnekLatin-Bold.ttf", - "font-style": "normal", - "weight": 700 - } - } - }, - "body": { - "family": "iA Writer Quattro V", - "format": "woff2", - "weights": { - "Regular": { - "path": "/quattro/iAWriterQuattroS-Regular.woff2", - "font-style": "normal", - "weight": 400 - }, - "Italic": { - "path": "/quattro/iAWriterQuattroS-Italic.woff2", - "font-style": "italic", - "weight": 400 - }, - "Bold": { - "path": "/quattro/iAWriterQuattroS-Bold.woff2", - "font-style": "normal", - "weight": 650 - }, - "BoldItalic": { - "path": "/quattro/iAWriterQuattroS-BoldItalic.woff2", - "font-style": "italic", - "weight": 650 - } - } - }, - "monospace": { - "family": "IBM Plex Mono", - "format": "truetype", - "weights": { - "Regular": { - "path": "/ibmplexmono/IBMPlexMono-Regular.ttf", - "font-style": "normal", - "weight": 400 - }, - "Italic": { - "path": "/ibmplexmono/IBMPlexMono-Italic.ttf", - "font-style": "italic", - "weight": 400 - } - } - } -} diff --git a/config/design-tokens/spacing.js b/config/design-tokens/spacing.js new file mode 100644 index 0000000..13f8dbe --- /dev/null +++ b/config/design-tokens/spacing.js @@ -0,0 +1,11 @@ +export default { + 0: 0, + 0.25: 4, + 0.5: 8, + 1: 16, + 1.5: 24, + 2: 32, + 3: 48, + 4: 64, + 5: 80, +}; diff --git a/config/design-tokens/spacing.json b/config/design-tokens/spacing.json deleted file mode 100644 index d014838..0000000 --- a/config/design-tokens/spacing.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "0": 0, - "0.25": 4, - "0.5": 8, - "1": 16, - "1.5": 24, - "2": 32, - "3": 48, - "4": 64, - "5": 80 -} diff --git a/config/filters/index.js b/config/filters/index.js index a8dc9d2..c43375c 100644 --- a/config/filters/index.js +++ b/config/filters/index.js @@ -1,19 +1,19 @@ -const dayjs = require("dayjs"); -const utc = require("dayjs/plugin/utc"); -const advancedFormat = require("dayjs/plugin/advancedFormat"); +import dayjs from "dayjs"; +import utc from "dayjs/plugin/utc.js"; +import advancedFormat from "dayjs/plugin/advancedFormat.js"; -const pluralizeBase = require("pluralize"); +import pluralizeBase from "pluralize"; -const keys = Object.keys; -const values = Object.values; -const entries = Object.entries; +export const keys = Object.keys; +export const values = Object.values; +export const entries = Object.entries; dayjs.extend(utc); dayjs.extend(advancedFormat); -const formatDate = (date, format) => dayjs.utc(date).format(format); +export const formatDate = (date, format) => dayjs.utc(date).format(format); -const organizeByDate = (collection) => { +export const organizeByDate = (collection) => { const collectionByDate = {}; collection.forEach((item) => { @@ -37,7 +37,7 @@ const allTags = (collection, ignore = []) => { return [...tagSet]; }; -const allTagCounts = (collection, ignore = ["post"]) => { +export const allTagCounts = (collection, ignore = ["post"]) => { if (!collection.length) { throw new Error("Invalid collection, no items"); } @@ -62,28 +62,28 @@ const allTagCounts = (collection, ignore = ["post"]) => { return tagArray; }; -const filter = (collection, filters = []) => { +export const filter = (collection, filters = []) => { return collection.filter((item) => !filters.includes(item)); }; -const pluralize = (string, count = 0) => { +export const pluralize = (string, count = 0) => { return pluralizeBase(string, count); }; -const filterCatalogueTags = (tags) => { +export const filterCatalogueTags = (tags) => { // In the case of catalogue items, the 0-index is "catalogue" // and the 1-index is the catalogueType. We don't need to // show those in the front-end. return filter(tags, [tags[0], tags[1]]); }; -const limit = (collection, limit = 5) => collection.slice(0, limit); +export const limit = (collection, limit = 5) => collection.slice(0, limit); -const filterFavourites = (collection) => { +export const filterFavourites = (collection) => { return collection.filter((item) => item.data.favourite); }; -const isOld = (dateArg) => { +export const isOld = (dateArg) => { const date = dayjs(dateArg); const now = dayjs(); @@ -91,19 +91,3 @@ const isOld = (dateArg) => { return diffInYears >= 2; }; - -module.exports = { - allTagCounts, - allTags, - entries, - filter, - filterCatalogueTags, - filterFavourites, - formatDate, - isOld, - keys, - limit, - organizeByDate, - pluralize, - values, -}; diff --git a/config/plugins/markdown.js b/config/plugins/markdown.js index c5ea132..c8ceb46 100644 --- a/config/plugins/markdown.js +++ b/config/plugins/markdown.js @@ -1,8 +1,8 @@ -const markdownIt = require("markdown-it"); -const markdownItFootnote = require("markdown-it-footnote"); -const markdownItPrism = require("markdown-it-prism"); -const markdownItAbbr = require("markdown-it-abbr"); -const markdownItAnchor = require("markdown-it-anchor"); +import markdownIt from "markdown-it"; +import markdownItFootnote from "markdown-it-footnote"; +import markdownItPrism from "markdown-it-prism"; +import markdownItAbbr from "markdown-it-abbr"; +import markdownItAnchor from "markdown-it-anchor"; const markdown = markdownIt({ html: true, @@ -27,4 +27,4 @@ markdown.renderer.rules.footnote_block_open = (_tokens, _idx, options) => { ); }; -module.exports = markdown; +export default markdown; diff --git a/config/shortcodes/image.js b/config/shortcodes/image.js index 3659de6..8fef188 100644 --- a/config/shortcodes/image.js +++ b/config/shortcodes/image.js @@ -1,4 +1,4 @@ -const Image = require("@11ty/eleventy-img"); +import Image from "@11ty/eleventy-img"; const stringifyAttributes = (attributeMap) => { return Object.entries(attributeMap) @@ -73,4 +73,4 @@ const imageShortcode = async ( return imageElement; }; -module.exports = imageShortcode; +export default imageShortcode; diff --git a/config/shortcodes/youtube.js b/config/shortcodes/youtube.js index fcc0b9d..f314820 100644 --- a/config/shortcodes/youtube.js +++ b/config/shortcodes/youtube.js @@ -12,4 +12,4 @@ const liteYoutube = (id, label) => { `; }; -module.exports = liteYoutube; +export default liteYoutube; diff --git a/config/transforms/html-config.js b/config/transforms/html-config.js index 169b827..ab76345 100644 --- a/config/transforms/html-config.js +++ b/config/transforms/html-config.js @@ -1,6 +1,6 @@ -const htmlmin = require("html-minifier-terser"); +import htmlmin from "html-minifier-terser"; -module.exports = (eleventyConfig) => { +export default function (eleventyConfig) { eleventyConfig.addTransform("html-minify", (content, path) => { if (path && path.endsWith(".html")) { return htmlmin.minify(content, { @@ -17,4 +17,4 @@ module.exports = (eleventyConfig) => { } return content; }); -}; +} diff --git a/eleventy.config.js b/eleventy.config.js index 2db54c0..99fd24f 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -1,13 +1,11 @@ -const UpgradeHelper = require("@11ty/eleventy-upgrade-help"); -const pluginRss = require("@11ty/eleventy-plugin-rss"); -const pluginNoRobots = require("eleventy-plugin-no-robots"); +import UpgradeHelper from "@11ty/eleventy-upgrade-help"; +import pluginRss from "@11ty/eleventy-plugin-rss"; +import pluginNoRobots from "eleventy-plugin-no-robots"; -const { - catalogueByType, - postsByTag, -} = require("./config/collections/index.js"); -const { dir } = require("./config/constants.js"); -const { +import { catalogueByType, postsByTag } from "./config/collections/index.js"; + +import { dir } from "./config/constants.js"; +import { allTagCounts, entries, filter, @@ -20,12 +18,14 @@ const { organizeByDate, pluralize, values, -} = require("./config/filters/index.js"); -const markdown = require("./config/plugins/markdown.js"); -const imageShortcode = require("./config/shortcodes/image.js"); -const liteYoutube = require("./config/shortcodes/youtube.js"); +} from "./config/filters/index.js"; +import markdown from "./config/plugins/markdown.js"; +import imageShortcode from "./config/shortcodes/image.js"; +import liteYoutube from "./config/shortcodes/youtube.js"; -module.exports = (eleventyConfig) => { +import htmlConfigTransform from "./config/transforms/html-config.js"; + +export default function (eleventyConfig) { eleventyConfig.addWatchTarget("./src/css"); // --------------------- Plugins --------------------- @@ -51,7 +51,7 @@ module.exports = (eleventyConfig) => { eleventyConfig.addFilter("pluralize", pluralize); // --------------------- Custom Transforms ----------------------- - eleventyConfig.addPlugin(require("./config/transforms/html-config.js")); + eleventyConfig.addPlugin(htmlConfigTransform); // --------------------- Passthrough File Copy ----------------------- ["src/assets/fonts/", "src/assets/images"].forEach((path) => @@ -78,4 +78,4 @@ module.exports = (eleventyConfig) => { dir, }; -}; +} diff --git a/package.json b/package.json index 4b1ecc8..f60ecf4 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "repository": "https://github.com/wonderfulfrog/wonderfulfrog.com", "author": "Devin Haska", "license": "MIT", + "type": "module", "scripts": { "debug": "DEBUG=Eleventy* eleventy --serve --watch", "start": "eleventy --serve --watch --quiet", diff --git a/src/_data/blogroll.js b/src/_data/blogroll.js index 9e0270f..053cae1 100644 --- a/src/_data/blogroll.js +++ b/src/_data/blogroll.js @@ -87,4 +87,4 @@ const blogroll = [ const sortedBlogroll = blogroll.sort((a, b) => a.title.localeCompare(b.title)); -module.exports = sortedBlogroll; +export default sortedBlogroll; diff --git a/src/_data/lastfm.js b/src/_data/lastfm.js index bde62a4..fbf9c70 100644 --- a/src/_data/lastfm.js +++ b/src/_data/lastfm.js @@ -1,9 +1,9 @@ -require("dotenv").config(); +import "dotenv/config"; -const EleventyFetch = require("@11ty/eleventy-fetch"); -const dayjs = require("dayjs"); -const utc = require("dayjs/plugin/utc"); -const relativeTime = require("dayjs/plugin/relativeTime"); +import EleventyFetch from "@11ty/eleventy-fetch"; +import dayjs from "dayjs"; +import utc from "dayjs/plugin/utc.js"; +import relativeTime from "dayjs/plugin/relativeTime.js"; dayjs.extend(utc); dayjs.extend(relativeTime); @@ -87,7 +87,7 @@ const fetchRecentTracks = async () => { return recentTracks; }; -module.exports = async function () { +export default async function () { const recentTracks = await fetchRecentTracks(); const recentAlbums = await fetchRecentAlbums(); @@ -95,4 +95,4 @@ module.exports = async function () { recentTracks, recentAlbums, }; -}; +} diff --git a/src/_data/letterboxd.js b/src/_data/letterboxd.js index e05731e..54e74e4 100644 --- a/src/_data/letterboxd.js +++ b/src/_data/letterboxd.js @@ -1,10 +1,10 @@ -require("dotenv").config(); +import "dotenv/config"; -const EleventyFetch = require("@11ty/eleventy-fetch"); -const cheerio = require("cheerio"); -const dayjs = require("dayjs"); -const utc = require("dayjs/plugin/utc"); -const relativeTime = require("dayjs/plugin/relativeTime"); +import EleventyFetch from "@11ty/eleventy-fetch"; +import cheerio from "cheerio"; +import dayjs from "dayjs"; +import utc from "dayjs/plugin/utc.js"; +import relativeTime from "dayjs/plugin/relativeTime.js"; dayjs.extend(utc); dayjs.extend(relativeTime); @@ -65,4 +65,4 @@ const fetchRecentMovies = async () => { return recentMovies; }; -module.exports = fetchRecentMovies; +export default fetchRecentMovies; diff --git a/src/_data/meta.js b/src/_data/meta.js index 684feaa..db86cd5 100644 --- a/src/_data/meta.js +++ b/src/_data/meta.js @@ -1,4 +1,4 @@ -module.exports = { +export default { url: process.env.URL || "http://localhost:8080", siteName: "wonderfulfrog", siteDescription: diff --git a/src/_data/navigation.js b/src/_data/navigation.js index 46cfb16..f82cee9 100644 --- a/src/_data/navigation.js +++ b/src/_data/navigation.js @@ -1,4 +1,4 @@ -module.exports = { +export default { top: [ { text: "About", diff --git a/src/_data/preloads.js b/src/_data/preloads.js index 3f00dff..8640fdb 100644 --- a/src/_data/preloads.js +++ b/src/_data/preloads.js @@ -1,5 +1,5 @@ -const { getFontUrl } = require("../utils/fonts"); -const fonts = require("../../config/design-tokens/fonts.json"); +import { getFontUrl } from "../utils/fonts.js"; +import fonts from "../../config/design-tokens/fonts.js"; const preloads = [ { @@ -19,4 +19,4 @@ const preloads = [ }, ]; -module.exports = preloads; +export default preloads; diff --git a/src/_data/robots.js b/src/_data/robots.js index 0b134b5..1d785a8 100644 --- a/src/_data/robots.js +++ b/src/_data/robots.js @@ -1,6 +1,6 @@ -require("dotenv").config(); +import "dotenv/config"; -const EleventyFetch = require("@11ty/eleventy-fetch"); +import EleventyFetch from "@11ty/eleventy-fetch"; const accessToken = process.env.DARK_VISITORS_ACCESS_TOKEN; @@ -101,7 +101,7 @@ const fetchRobotsTxt = async () => { } }; -module.exports = async function () { +export default async function () { const robotsTxt = await fetchRobotsTxt(); if (!robotsTxt) { @@ -109,4 +109,4 @@ module.exports = async function () { } return robotsTxt; -}; +} diff --git a/src/catalogue/books/books.11tydata.js b/src/catalogue/books/books.11tydata.js index 5521e0a..8f8d64b 100644 --- a/src/catalogue/books/books.11tydata.js +++ b/src/catalogue/books/books.11tydata.js @@ -1,4 +1,4 @@ -module.exports = { +export default { layout: "layouts/catalogue-item", tags: "book", permalink: "catalogue/books/{{ page.fileSlug }}/index.html", diff --git a/src/catalogue/catalogue.11tydata.js b/src/catalogue/catalogue.11tydata.js index 74eeb15..1771429 100644 --- a/src/catalogue/catalogue.11tydata.js +++ b/src/catalogue/catalogue.11tydata.js @@ -1,4 +1,4 @@ -module.exports = { +export default { tags: "catalogue", eleventyComputed: { description: (data) => `My thoughts on ${data.title}.`, diff --git a/src/catalogue/comics/comics.11tydata.js b/src/catalogue/comics/comics.11tydata.js index 61fe5b9..ddaaf35 100644 --- a/src/catalogue/comics/comics.11tydata.js +++ b/src/catalogue/comics/comics.11tydata.js @@ -1,4 +1,4 @@ -module.exports = { +export default { layout: "layouts/catalogue-item", tags: "comic", permalink: "catalogue/comics/{{ page.fileSlug }}/index.html", diff --git a/src/catalogue/games/games.11tydata.js b/src/catalogue/games/games.11tydata.js index 6959208..3801d33 100644 --- a/src/catalogue/games/games.11tydata.js +++ b/src/catalogue/games/games.11tydata.js @@ -1,4 +1,4 @@ -module.exports = { +export default { layout: "layouts/catalogue-item", tags: "game", permalink: "catalogue/games/{{ page.fileSlug }}/index.html", diff --git a/src/catalogue/podcasts/podcasts.11tydata.js b/src/catalogue/podcasts/podcasts.11tydata.js index a3032a7..2c7819b 100644 --- a/src/catalogue/podcasts/podcasts.11tydata.js +++ b/src/catalogue/podcasts/podcasts.11tydata.js @@ -1,4 +1,4 @@ -module.exports = { +export default { layout: "layouts/catalogue-item", tags: "podcast", permalink: "catalogue/podcasts/{{ page.fileSlug }}/index.html", diff --git a/src/css-utils/colors.js b/src/css-utils/colors.js index dc9e9ed..b03f18f 100644 --- a/src/css-utils/colors.js +++ b/src/css-utils/colors.js @@ -1,5 +1,5 @@ -const colorSchemes = require("../../config/design-tokens/colors.json"); -const { helperClassesToCss } = require("./helper-classes"); +import colorSchemes from "../../config/design-tokens/colors.js"; +import { helperClassesToCss } from "./helper-classes.js"; const lightScheme = colorSchemes.light; const darkScheme = colorSchemes.dark; @@ -32,4 +32,4 @@ const helperClassesCss = colorSchemeToHelperClassesCss( helperClasses, ); -module.exports = `:root{${lightCss}}${helperClassesCss}@media (prefers-color-scheme: dark) {:root{${darkCss}}}`; +export default `:root{${lightCss}}${helperClassesCss}@media (prefers-color-scheme: dark) {:root{${darkCss}}}`; diff --git a/src/css-utils/font-family.js b/src/css-utils/font-family.js index c705ad7..4192a92 100644 --- a/src/css-utils/font-family.js +++ b/src/css-utils/font-family.js @@ -1,5 +1,5 @@ -const { getFontUrl } = require("../utils/fonts"); -const fonts = require("../../config/design-tokens/fonts.json"); +import { getFontUrl } from "../utils/fonts.js"; +import fonts from "../../config/design-tokens/fonts.js"; const fontsToCss = (fonts) => { return Object.entries(fonts).reduce((css, [, fontProperties]) => { @@ -48,4 +48,4 @@ const fontFamilyToCss = ( src: local("${localName}"), local("${postScriptName}"), url("${url}") format("${format}") }\n`; -module.exports = fontsToCss(fonts); +export default fontsToCss(fonts); diff --git a/src/css-utils/font-variables.js b/src/css-utils/font-variables.js index 21942a5..9779bbb 100644 --- a/src/css-utils/font-variables.js +++ b/src/css-utils/font-variables.js @@ -1,4 +1,4 @@ -const fonts = require("../../config/design-tokens/fonts.json"); +import fonts from "../../config/design-tokens/fonts.js"; const fallbacks = [ "-apple-system", @@ -42,4 +42,4 @@ const fontFamilyToCss = (type, value) => const css = `:root{${fontsToCss(fonts)}}`; -module.exports = css; +export default css; diff --git a/src/css-utils/helper-classes.js b/src/css-utils/helper-classes.js index d454035..08871ad 100644 --- a/src/css-utils/helper-classes.js +++ b/src/css-utils/helper-classes.js @@ -2,7 +2,7 @@ * Given an array of CSS properties, output css properties * with each property equal to `value` */ -const cssPropertiesToCss = (cssProperties, value) => { +export const cssPropertiesToCss = (cssProperties, value) => { return cssProperties.reduce((css, cssProp) => { return css + `${cssProp}:${value};`; }, ``); @@ -13,7 +13,7 @@ const cssPropertiesToCss = (cssProperties, value) => { * will generate a css class named helperClass that has * all cssProperties mapped to value. */ -const helperClassToCss = (helperClass, cssProperties, value) => { +export const helperClassToCss = (helperClass, cssProperties, value) => { const cssProps = cssPropertiesToCss(cssProperties, value); return `.${helperClass}{${cssProps}}`; }; @@ -34,12 +34,10 @@ const helperClassToCss = (helperClass, cssProperties, value) => { * color: #000; * } */ -const helperClassesToCss = (helperClasses, variant, value) => { +export const helperClassesToCss = (helperClasses, variant, value) => { return helperClasses.reduce((css, [helperClass, cssProperties]) => { return ( css + helperClassToCss(`${helperClass}-${variant}`, cssProperties, value) ); }, ``); }; - -module.exports = { cssPropertiesToCss, helperClassToCss, helperClassesToCss }; diff --git a/src/css-utils/spacing.js b/src/css-utils/spacing.js index 35f75bd..8f07f9d 100644 --- a/src/css-utils/spacing.js +++ b/src/css-utils/spacing.js @@ -1,5 +1,5 @@ -const spacing = require("../../config/design-tokens/spacing.json"); -const { helperClassesToCss } = require("./helper-classes"); +import spacing from "../../config/design-tokens/spacing.js"; +import { helperClassesToCss } from "./helper-classes.js"; const spacingToCss = (variant, value) => `--spacing-${variant.replace(".", "\\.")}: ${value}px;`; @@ -48,4 +48,4 @@ const helperCss = spacingToHelperClassesCss(spacing, helperClasses); const css = `:root{${spacingVariablesCss}}${helperCss}`; -module.exports = css; +export default css; diff --git a/src/css/styles.11ty.js b/src/css/styles.11ty.js index 000a87f..dac4dc1 100644 --- a/src/css/styles.11ty.js +++ b/src/css/styles.11ty.js @@ -5,22 +5,24 @@ * https://github.com/philhawksworth/eleventyone/blob/master/src/site/css/styles.11ty.js */ -const fs = require("fs"); -const postcss = require("postcss"); -const postcssImport = require("postcss-import"); -const postcssImportExtGlob = require("postcss-import-ext-glob"); -const autoprefixer = require("autoprefixer"); -const cssnano = require("cssnano"); -const path = require("path").posix; +import fs from "fs"; +import postcss from "postcss"; +import postcssImport from "postcss-import"; +import postcssImportExtGlob from "postcss-import-ext-glob"; +import autoprefixer from "autoprefixer"; +import cssnano from "cssnano"; +import { posix as path } from "path"; +import { fileURLToPath } from "url"; -const colors = require("../css-utils/colors"); -const fontFamily = require("../css-utils/font-family"); -const fontVariables = require("../css-utils/font-variables"); -const spacing = require("../css-utils/spacing"); +import colors from "../css-utils/colors.js"; +import fontFamily from "../css-utils/font-family.js"; +import fontVariables from "../css-utils/font-variables.js"; +import spacing from "../css-utils/spacing.js"; -module.exports = class { +export default class { async data() { - const rawFilepath = path.join(__dirname, "./global.css"); + const dirname = path.dirname(fileURLToPath(import.meta.url)); + const rawFilepath = path.join(dirname, "./global.css"); const rawCss = fs.readFileSync(rawFilepath); const css = `${rawCss}${fontFamily}${fontVariables}${colors}${spacing}`; @@ -43,4 +45,4 @@ module.exports = class { .process(rawCss, { from: rawFilepath }) .then((result) => result.css); } -}; +} diff --git a/src/utils/fonts.js b/src/utils/fonts.js index c556851..aa74de0 100644 --- a/src/utils/fonts.js +++ b/src/utils/fonts.js @@ -1,7 +1,3 @@ -const path = require("path"); +import path from "path"; -const getFontUrl = (src) => path.join("/assets/fonts", src); - -module.exports = { - getFontUrl, -}; +export const getFontUrl = (src) => path.join("/assets/fonts", src); -- 2.47.2 From 7fbea56bde02fe36e73c448055913ab812d1720a Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Thu, 3 Oct 2024 22:52:39 -0700 Subject: [PATCH 03/56] feat: remove decapcms --- src/admin/admin.json | 3 -- src/admin/config.njk | 101 ------------------------------------------- src/admin/index.html | 21 --------- 3 files changed, 125 deletions(-) delete mode 100644 src/admin/admin.json delete mode 100644 src/admin/config.njk delete mode 100644 src/admin/index.html diff --git a/src/admin/admin.json b/src/admin/admin.json deleted file mode 100644 index 1a138fd..0000000 --- a/src/admin/admin.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "excludeFromSitemap": true -} diff --git a/src/admin/config.njk b/src/admin/config.njk deleted file mode 100644 index 9a15b35..0000000 --- a/src/admin/config.njk +++ /dev/null @@ -1,101 +0,0 @@ ---- -permalink: /admin/config.yml ---- - -backend: - name: github - repo: wonderfulfrog/wonderfulfrog.com - branch: main - squash_merges: true - commit_messages: - create: {% raw %}"feat: add {{collection}} `{{slug}}`"{% endraw %} - update: {% raw %}"feat: update {{collection}} `{{slug}}`"{% endraw %} - delete: {% raw %}"feat: remove {{collection}} `{{slug}}`"{% endraw %} - -media_folder: "" - -publish_mode: editorial_workflow - -collections: - - name: "post" - label: "Post" - folder: "src/posts" - create: true - slug: "{% raw %}{{year}}-{{month}}-{{day}}-{{slug}}{% endraw %}" - fields: - - { label: "Title", name: "title", widget: "string" } - - { label: "Excerpt", name: "excerpt", widget: "string" } - - { label: "Tags", name: "tags", widget: "list" } - - { label: "Using YouTube", name: "youtube", widget: "boolean", default: false, hint: "If using the YouTube shortcode, enable this option to append the lite-youtube script." } - - { label: "Body", name: "body", widget: "markdown" } - - label: "Page" - name: "page" - create: false - files: - {% for page in collections.page %} - - label: "{{ page.data.title }}" - name: "{{ page.fileSlug }}" - file: "{{ page.inputPath | replace("./", "") }}" - fields: - - { label: "Title", name: "title", widget: "string" } - - { label: "Permalink", name: "permalink", widget: "string" } - - { label: "Layout", name: "layout", widget: "hidden", default: "layouts/base" } - - { label: "Using YouTube", name: "youtube", widget: "boolean", default: false, hint: "If using the YouTube shortcode, enable this option to append the lite-youtube script." } - - { label: "Body", name: "body", widget: "markdown" } - {% endfor %} - - name: "book" - label: "Book" - folder: "src/catalogue/books" - slug: "{% raw %}{{year}}-{{month}}-{{day}}-{{slug}}{% endraw %}" - create: true - fields: - - { label: "Title", name: "title", widget: "string" } - - { label: "Subtitle", name: "subtitle", widget: "string" } - - { label: "Author", name: "author", widget: "string" } - - { label: "Rating", name: "rating", widget: "number", min: 1, max: 5 } - - { label: "Image", name: "image", widget: "string", hint: "A CDN URL."} - - { label: "Tags", name: "tags", widget: "list" } - - { label: "Using YouTube", name: "youtube", widget: "boolean", default: false, hint: "If using the YouTube shortcode, enable this option to append the lite-youtube script." } - - { label: "Body", name: "body", widget: "markdown" } - - name: "game" - label: "Game" - folder: "src/catalogue/games" - slug: "{% raw %}{{year}}-{{month}}-{{day}}-{{slug}}{% endraw %}" - create: true - fields: - - { label: "Title", name: "title", widget: "string" } - - { label: "Subtitle", name: "subtitle", widget: "string" } - - { label: "Year", name: "year", widget: "string" } - - { label: "Rating", name: "rating", widget: "number", min: 1, max: 5 } - - { label: "Image", name: "image", widget: "string", hint: "A CDN URL."} - - { label: "Tags", name: "tags", widget: "list" } - - { label: "Using YouTube", name: "youtube", widget: "boolean", default: false, hint: "If using the YouTube shortcode, enable this option to append the lite-youtube script." } - - { label: "Body", name: "body", widget: "markdown" } - - name: "comic" - label: "Comic" - folder: "src/catalogue/comics" - slug: "{% raw %}{{year}}-{{month}}-{{day}}-{{slug}}{% endraw %}" - create: true - fields: - - { label: "Title", name: "title", widget: "string" } - - { label: "Publisher", name: "publisher", widget: "string" } - - { label: "Author", name: "author", widget: "string" } - - { label: "Year", name: "year", widget: "string" } - - { label: "Rating", name: "rating", widget: "number", min: 1, max: 5 } - - { label: "Image", name: "image", widget: "string", hint: "A CDN URL."} - - { label: "Tags", name: "tags", widget: "list" } - - { label: "Using YouTube", name: "youtube", widget: "boolean", default: false, hint: "If using the YouTube shortcode, enable this option to append the lite-youtube script." } - - { label: "Body", name: "body", widget: "markdown" } - - name: "podcast" - label: "Podcast" - folder: "src/catalogue/podcasts" - slug: "{% raw %}{{year}}-{{month}}-{{day}}-{{slug}}{% endraw %}" - create: true - fields: - - { label: "Title", name: "title", widget: "string" } - - { label: "URL", name: "url", widget: "string", hint: "A URL for someone to listen to the podcast." } - - { label: "Rating", name: "rating", widget: "number", min: 1, max: 5 } - - { label: "Image", name: "image", widget: "string", hint: "A CDN URL."} - - { label: "Tags", name: "tags", widget: "list" } - - { label: "Using YouTube", name: "youtube", widget: "boolean", default: false, hint: "If using the YouTube shortcode, enable this option to append the lite-youtube script." } - - { label: "Body", name: "body", widget: "markdown" } diff --git a/src/admin/index.html b/src/admin/index.html deleted file mode 100644 index 53ba78f..0000000 --- a/src/admin/index.html +++ /dev/null @@ -1,21 +0,0 @@ ---- -permalink: admin/index.html ---- - - - - - - - - - - - Content Manager - - - - - - -- 2.47.2 From 672e97fc8781fb61e33df2da6c8a2a0f366ec64f Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Thu, 3 Oct 2024 22:53:40 -0700 Subject: [PATCH 04/56] fix: remove unused filter --- config/filters/index.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/config/filters/index.js b/config/filters/index.js index c43375c..a83ab01 100644 --- a/config/filters/index.js +++ b/config/filters/index.js @@ -29,14 +29,6 @@ export const organizeByDate = (collection) => { return collectionByDate; }; -const allTags = (collection, ignore = []) => { - const tagSet = new Set(collection.flatMap((item) => item.data.tags)); - - ignore.forEach((tag) => tagSet.delete(tag)); - - return [...tagSet]; -}; - export const allTagCounts = (collection, ignore = ["post"]) => { if (!collection.length) { throw new Error("Invalid collection, no items"); -- 2.47.2 From 362fa22b58866642f6eab7fe63b43a969f06b20e Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Sun, 6 Oct 2024 23:17:30 -0700 Subject: [PATCH 05/56] feat: remove netlify packages --- package.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/package.json b/package.json index f60ecf4..9b034a7 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,6 @@ "@11ty/eleventy-fetch": "^4.0.0", "@11ty/eleventy-img": "^3.1.8", "@11ty/eleventy-plugin-rss": "^1.2.0", - "@netlify/functions": "^2.6.0", "autoprefixer": "^10.4.17", "cheerio": "^1.0.0-rc.12", "cssnano": "^6.0.3", @@ -33,7 +32,6 @@ "markdown-it-anchor": "^8.6.7", "markdown-it-footnote": "^4.0.0", "markdown-it-prism": "^2.3.0", - "netlify-plugin-cache": "^1.0.3", "pluralize": "^8.0.0", "postcss": "^8.4.33", "postcss-import": "^16.0.0", -- 2.47.2 From 4be14ab4873afbaabd18a41ff2c14c79dc5d49e1 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Thu, 10 Oct 2024 22:25:08 -0700 Subject: [PATCH 06/56] feat: update image handling - removes old image shortcode - update to latest 11ty image transform plugin --- config/plugins/markdown.js | 4 + eleventy.config.js | 21 +- package-lock.json | 1517 ++++++++--------- package.json | 3 +- src/_includes/layouts/catalogue-item.html | 34 +- src/_includes/partials/header.html | 6 +- ...-21-donkey-kong-country-tropical-freeze.md | 2 +- src/css/global/global-styles.css | 7 + src/pages/about.md | 2 +- src/pages/now.html | 12 +- src/pages/styleguide.html | 2 +- .../2018-11-24-switching-to-protonmail.md | 2 +- src/posts/2018-12-09-my-vinyl-journey.md | 10 +- src/posts/2019-09-14-coming-back-to-vinyl.md | 2 +- ...-01-23-professional-development-in-2019.md | 2 +- src/posts/2020-06-02-recently-06-2020.md | 2 +- src/posts/2020-07-04-recently-07-2020.md | 2 +- .../2020-07-26-take-the-power-back-music.md | 6 +- src/posts/2020-11-06-recently-11-2020.md | 2 +- src/posts/2020-12-07-recently-12-2020.md | 2 +- src/posts/2021-01-09-2020-in-review.md | 2 +- src/posts/2021-03-05-recently-03-2021.md | 16 +- src/posts/2021-04-01-recently-04-2021.md | 6 +- src/posts/2021-04-18-my-vim-setup.md | 2 +- src/posts/2021-05-01-recently-05-2021.md | 2 +- src/posts/2021-06-01-recently-06-2021.md | 4 +- src/posts/2021-07-03-gmtk-post-mortem.md | 61 +- src/posts/2021-08-22-weaknotes-2.md | 2 +- src/posts/2021-08-30-weaknotes-3.md | 2 +- src/posts/2021-09-13-weaknotes-4.md | 2 +- src/posts/2021-09-19-version-2.md | 2 +- src/posts/2021-09-27-stray-thoughts-1.md | 2 +- src/posts/2021-10-03-stray-thoughts-2.md | 2 +- src/posts/2021-11-24-checking-in.md | 1 + src/posts/2022-01-18-2021-ranked-games.md | 32 +- ...he-fellow-stagg-a-review-of-the-details.md | 2 +- src/posts/2022-02-01-recently-02-2022.md | 2 +- src/posts/2022-10-02-its-been-a-while.md | 2 +- src/posts/2024-01-02-lately.md | 2 +- ...-02-13-the-photography-behind-earthrise.md | 2 +- src/posts/2024-03-02-version-3.md | 8 +- src/posts/2024-06-09-weekly-notes-1.md | 6 +- src/posts/2024-06-22-weekly-notes-3.md | 2 +- src/posts/2024-06-27-music-today-is-great.md | 2 +- src/posts/2024-09-30-weekly-notes-8.md | 10 +- 45 files changed, 838 insertions(+), 978 deletions(-) diff --git a/config/plugins/markdown.js b/config/plugins/markdown.js index c8ceb46..641c60e 100644 --- a/config/plugins/markdown.js +++ b/config/plugins/markdown.js @@ -3,6 +3,7 @@ import markdownItFootnote from "markdown-it-footnote"; import markdownItPrism from "markdown-it-prism"; import markdownItAbbr from "markdown-it-abbr"; import markdownItAnchor from "markdown-it-anchor"; +import markdownItImplicitFigures from "markdown-it-image-figures"; const markdown = markdownIt({ html: true, @@ -13,6 +14,9 @@ const markdown = markdownIt({ .use(markdownItFootnote) .use(markdownItAbbr) .use(markdownItAnchor) + .use(markdownItImplicitFigures, { + figcaption: true, + }) .use(markdownItPrism, { defaultLanguage: "plaintext", }); diff --git a/eleventy.config.js b/eleventy.config.js index 99fd24f..ae8c31a 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -1,6 +1,7 @@ import UpgradeHelper from "@11ty/eleventy-upgrade-help"; import pluginRss from "@11ty/eleventy-plugin-rss"; import pluginNoRobots from "eleventy-plugin-no-robots"; +import { eleventyImageTransformPlugin } from "@11ty/eleventy-img"; import { catalogueByType, postsByTag } from "./config/collections/index.js"; @@ -20,7 +21,6 @@ import { values, } from "./config/filters/index.js"; import markdown from "./config/plugins/markdown.js"; -import imageShortcode from "./config/shortcodes/image.js"; import liteYoutube from "./config/shortcodes/youtube.js"; import htmlConfigTransform from "./config/transforms/html-config.js"; @@ -53,6 +53,23 @@ export default function (eleventyConfig) { // --------------------- Custom Transforms ----------------------- eleventyConfig.addPlugin(htmlConfigTransform); + // Image Transforms + // Works with any tag in output files. + eleventyConfig.addPlugin(eleventyImageTransformPlugin, { + extensions: "html", + + formats: ["webp", "jpeg"], + + sharpOptions: { + animated: true, + }, + + defaultAttributes: { + loading: "lazy", + decoding: "async", + }, + }); + // --------------------- Passthrough File Copy ----------------------- ["src/assets/fonts/", "src/assets/images"].forEach((path) => eleventyConfig.addPassthroughCopy(path), @@ -63,9 +80,9 @@ export default function (eleventyConfig) { eleventyConfig.setLibrary("md", markdown); // --------------------- Shortcodes ----------------------- - eleventyConfig.addShortcode("image", imageShortcode); eleventyConfig.addShortcode("youtube", liteYoutube); + // TODO: Delete me before launch eleventyConfig.addPlugin(UpgradeHelper); return { diff --git a/package-lock.json b/package-lock.json index 6a5fd8f..1d0d0b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "devDependencies": { "@11ty/eleventy": "^3.0.0", "@11ty/eleventy-fetch": "^4.0.0", - "@11ty/eleventy-img": "^3.1.8", + "@11ty/eleventy-img": "^5.0.0", "@11ty/eleventy-plugin-rss": "^1.2.0", "@netlify/functions": "^2.6.0", "autoprefixer": "^10.4.17", @@ -31,6 +31,7 @@ "markdown-it-abbr": "^2.0.0", "markdown-it-anchor": "^8.6.7", "markdown-it-footnote": "^4.0.0", + "markdown-it-image-figures": "^2.1.1", "markdown-it-prism": "^2.3.0", "netlify-plugin-cache": "^1.0.3", "pluralize": "^8.0.0", @@ -164,9 +165,9 @@ "dev": true }, "node_modules/@11ty/eleventy-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-4.0.0.tgz", - "integrity": "sha512-wGAd0r+8DUWr22fK5r07dOKuNY6ltA7hX+sJzngGZL1yJmuUVdM/xPQZ+iq0BFgf/ZeRdpVEzf2D0cpVZUuiTg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-4.0.1.tgz", + "integrity": "sha512-yIiLM5ziBmg86i4TlXpBdcIygJHvh/GgPJyAiFOckO9H4y9cQDM8eIcJCUQ4Mum0NEVui/OjhEut2R08xw0vlQ==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -183,27 +184,40 @@ } }, "node_modules/@11ty/eleventy-img": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-img/-/eleventy-img-3.1.8.tgz", - "integrity": "sha512-9xVqbykggQAHTSiZEo6nUayS8l8nkM7RU8dCjGzikCc8FXSW/E17ytq7SaDngo24D3LZdD+3Gheh4zSeidrImA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-img/-/eleventy-img-5.0.0.tgz", + "integrity": "sha512-hJ4X5ZIRSOCooL0uXegj+nZi1abWNj22BR4PzF6e9iJg9DGYGxPrC0rg0Hy+7xzP7mzTYiOpDjZVv/NgrHNx6w==", "dev": true, "dependencies": { - "@11ty/eleventy-fetch": "^4.0.0", + "@11ty/eleventy-fetch": "^4.0.1", + "@11ty/eleventy-utils": "^1.0.3", "brotli-size": "^4.0.0", - "debug": "^4.3.4", - "entities": "^4.5.0", - "image-size": "^1.0.2", + "debug": "^4.3.7", + "entities": "^5.0.0", + "image-size": "^1.1.1", "p-queue": "^6.6.2", - "sharp": "^0.32.6" + "sharp": "^0.33.5" }, "engines": { - "node": ">=14.15.0" + "node": ">=18" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/11ty" } }, + "node_modules/@11ty/eleventy-img/node_modules/entities": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-5.0.0.tgz", + "integrity": "sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/@11ty/eleventy-plugin-bundle": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.0.tgz", @@ -406,6 +420,16 @@ "node": ">=0.10.0" } }, + "node_modules/@emnapi/runtime": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.0.tgz", + "integrity": "sha512-XMBySMuNZs3DM96xcJmLW4EfGnf+uGmFNjzpehMjuX5PLB5j87ar2Zc4e3PVeZ3I5g3tYtAqskB28manlF69Zw==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -495,6 +519,367 @@ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -966,75 +1351,12 @@ "postcss": "^8.1.0" } }, - "node_modules/b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", - "dev": true - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/bare-events": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.0.tgz", - "integrity": "sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==", - "dev": true, - "optional": true - }, - "node_modules/bare-fs": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.1.5.tgz", - "integrity": "sha512-5t0nlecX+N2uJqdxe9d18A98cp2u9BETelbjKpiVgQqzzmVNFYWEAjQHqS+2Khgto1vcwhik9cXucaj5ve2WWA==", - "dev": true, - "optional": true, - "dependencies": { - "bare-events": "^2.0.0", - "bare-os": "^2.0.0", - "bare-path": "^2.0.0", - "streamx": "^2.13.0" - } - }, - "node_modules/bare-os": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.1.3.tgz", - "integrity": "sha512-YMKOQzoMouGCrYgJ0rassKvmbTz+TYDOKKmu4JkfNXS/qKn+If1ODCMEXnmknQXfnB1PS8bR+uHu6xBgwAQXew==", - "dev": true, - "optional": true - }, - "node_modules/bare-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.0.tgz", - "integrity": "sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==", - "dev": true, - "optional": true, - "dependencies": { - "bare-os": "^2.1.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/bcp-47": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.0.tgz", @@ -1083,17 +1405,6 @@ "node": ">=8" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -1165,30 +1476,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -1454,12 +1741,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, "node_modules/clean-css": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", @@ -1787,30 +2068,6 @@ } } }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -1880,9 +2137,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", "dev": true, "engines": { "node": ">=8" @@ -2038,15 +2295,6 @@ "node": ">= 0.8" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -2373,15 +2621,6 @@ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -2406,12 +2645,6 @@ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true - }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -2592,12 +2825,6 @@ "node": ">= 0.6" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2646,12 +2873,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", - "dev": true - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -2891,26 +3112,6 @@ "node": ">= 0.8" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", @@ -2976,12 +3177,6 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, "node_modules/is-alphabetical": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", @@ -3353,6 +3548,18 @@ "integrity": "sha512-WYJ7urf+khJYl3DqofQpYfEYkZKbmXmwxQV8c8mO/hGIhgZ1wOe7R4HLFNwqx7TjILbnC98fuyeSsin19JdFcQ==", "dev": true }, + "node_modules/markdown-it-image-figures": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/markdown-it-image-figures/-/markdown-it-image-figures-2.1.1.tgz", + "integrity": "sha512-mwXSQ2nPeVUzCMIE3HlLvjRioopiqyJLNph0pyx38yf9mpqFDhNGnMpAXF9/A2Xv0oiF2cVyg9xwfF0HNAz05g==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "markdown-it": "*" + } + }, "node_modules/markdown-it-prism": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/markdown-it-prism/-/markdown-it-prism-2.3.0.tgz", @@ -3424,18 +3631,6 @@ "node": ">=10.0.0" } }, - "node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3480,12 +3675,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, "node_modules/moo": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", @@ -3522,12 +3711,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "dev": true - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3550,24 +3733,6 @@ "tslib": "^2.0.3" } }, - "node_modules/node-abi": { - "version": "3.54.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.54.0.tgz", - "integrity": "sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", - "dev": true - }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -4528,60 +4693,6 @@ "node": ">= 4" } }, - "node_modules/prebuild-install": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", - "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", - "dev": true, - "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prebuild-install/node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/prebuild-install/node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -4651,16 +4762,6 @@ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -4707,12 +4808,6 @@ } ] }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -4722,30 +4817,6 @@ "node": ">= 0.6" } }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -4755,20 +4826,6 @@ "pify": "^2.3.0" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -4862,26 +4919,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", @@ -4996,26 +5033,42 @@ "dev": true }, "node_modules/sharp": { - "version": "0.32.6", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", - "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", "dev": true, "hasInstallScript": true, "dependencies": { "color": "^4.2.3", - "detect-libc": "^2.0.2", - "node-addon-api": "^6.1.0", - "prebuild-install": "^7.1.1", - "semver": "^7.5.4", - "simple-get": "^4.0.1", - "tar-fs": "^3.0.4", - "tunnel-agent": "^0.6.0" + "detect-libc": "^2.0.3", + "semver": "^7.6.3" }, "engines": { - "node": ">=14.15.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" } }, "node_modules/shebang-command": { @@ -5051,51 +5104,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -5178,28 +5186,6 @@ "node": ">= 0.8" } }, - "node_modules/streamx": { - "version": "2.15.8", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.8.tgz", - "integrity": "sha512-6pwMeMY/SuISiRsuS8TeIrAzyFbG5gGPHFQsYjUr/pbBadaL1PCWmzKw+CHZSwainfvcF6Si6cVLq4XTEwswFQ==", - "dev": true, - "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -5401,31 +5387,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/tar-fs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", - "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", - "dev": true, - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dev": true, - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, "node_modules/terser": { "version": "5.28.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz", @@ -5488,18 +5449,6 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -5869,9 +5818,9 @@ } }, "@11ty/eleventy-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-4.0.0.tgz", - "integrity": "sha512-wGAd0r+8DUWr22fK5r07dOKuNY6ltA7hX+sJzngGZL1yJmuUVdM/xPQZ+iq0BFgf/ZeRdpVEzf2D0cpVZUuiTg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-4.0.1.tgz", + "integrity": "sha512-yIiLM5ziBmg86i4TlXpBdcIygJHvh/GgPJyAiFOckO9H4y9cQDM8eIcJCUQ4Mum0NEVui/OjhEut2R08xw0vlQ==", "dev": true, "requires": { "debug": "^4.3.4", @@ -5881,18 +5830,27 @@ } }, "@11ty/eleventy-img": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-img/-/eleventy-img-3.1.8.tgz", - "integrity": "sha512-9xVqbykggQAHTSiZEo6nUayS8l8nkM7RU8dCjGzikCc8FXSW/E17ytq7SaDngo24D3LZdD+3Gheh4zSeidrImA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-img/-/eleventy-img-5.0.0.tgz", + "integrity": "sha512-hJ4X5ZIRSOCooL0uXegj+nZi1abWNj22BR4PzF6e9iJg9DGYGxPrC0rg0Hy+7xzP7mzTYiOpDjZVv/NgrHNx6w==", "dev": true, "requires": { - "@11ty/eleventy-fetch": "^4.0.0", + "@11ty/eleventy-fetch": "^4.0.1", + "@11ty/eleventy-utils": "^1.0.3", "brotli-size": "^4.0.0", - "debug": "^4.3.4", - "entities": "^4.5.0", - "image-size": "^1.0.2", + "debug": "^4.3.7", + "entities": "^5.0.0", + "image-size": "^1.1.1", "p-queue": "^6.6.2", - "sharp": "^0.32.6" + "sharp": "^0.33.5" + }, + "dependencies": { + "entities": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-5.0.0.tgz", + "integrity": "sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==", + "dev": true + } } }, "@11ty/eleventy-plugin-bundle": { @@ -6030,6 +5988,16 @@ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true }, + "@emnapi/runtime": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.0.tgz", + "integrity": "sha512-XMBySMuNZs3DM96xcJmLW4EfGnf+uGmFNjzpehMjuX5PLB5j87ar2Zc4e3PVeZ3I5g3tYtAqskB28manlF69Zw==", + "dev": true, + "optional": true, + "requires": { + "tslib": "^2.4.0" + } + }, "@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -6091,6 +6059,166 @@ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, + "@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "dev": true, + "optional": true, + "requires": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "dev": true, + "optional": true, + "requires": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "dev": true, + "optional": true + }, + "@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "dev": true, + "optional": true + }, + "@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "dev": true, + "optional": true + }, + "@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "dev": true, + "optional": true + }, + "@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "dev": true, + "optional": true + }, + "@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "dev": true, + "optional": true + }, + "@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "dev": true, + "optional": true + }, + "@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "dev": true, + "optional": true + }, + "@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "dev": true, + "optional": true, + "requires": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "dev": true, + "optional": true, + "requires": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "dev": true, + "optional": true, + "requires": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "dev": true, + "optional": true, + "requires": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "dev": true, + "optional": true, + "requires": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "dev": true, + "optional": true, + "requires": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "dev": true, + "optional": true, + "requires": { + "@emnapi/runtime": "^1.2.0" + } + }, + "@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "dev": true, + "optional": true + }, + "@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "dev": true, + "optional": true + }, "@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -6428,61 +6556,12 @@ "postcss-value-parser": "^4.2.0" } }, - "b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", - "dev": true - }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "bare-events": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.0.tgz", - "integrity": "sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==", - "dev": true, - "optional": true - }, - "bare-fs": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.1.5.tgz", - "integrity": "sha512-5t0nlecX+N2uJqdxe9d18A98cp2u9BETelbjKpiVgQqzzmVNFYWEAjQHqS+2Khgto1vcwhik9cXucaj5ve2WWA==", - "dev": true, - "optional": true, - "requires": { - "bare-events": "^2.0.0", - "bare-os": "^2.0.0", - "bare-path": "^2.0.0", - "streamx": "^2.13.0" - } - }, - "bare-os": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.1.3.tgz", - "integrity": "sha512-YMKOQzoMouGCrYgJ0rassKvmbTz+TYDOKKmu4JkfNXS/qKn+If1ODCMEXnmknQXfnB1PS8bR+uHu6xBgwAQXew==", - "dev": true, - "optional": true - }, - "bare-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.0.tgz", - "integrity": "sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==", - "dev": true, - "optional": true, - "requires": { - "bare-os": "^2.1.0" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, "bcp-47": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.0.tgz", @@ -6516,17 +6595,6 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -6572,16 +6640,6 @@ "update-browserslist-db": "^1.0.13" } }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -6774,12 +6832,6 @@ "readdirp": "~3.6.0" } }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, "clean-css": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", @@ -7024,21 +7076,6 @@ "ms": "^2.1.3" } }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -7086,9 +7123,9 @@ "dev": true }, "detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", "dev": true }, "dev-ip": { @@ -7204,15 +7241,6 @@ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, "entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -7434,12 +7462,6 @@ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "dev": true - }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -7461,12 +7483,6 @@ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, - "fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true - }, "fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -7609,12 +7625,6 @@ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -7647,12 +7657,6 @@ "hasown": "^2.0.0" } }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", - "dev": true - }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -7826,12 +7830,6 @@ "toidentifier": "1.0.1" } }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, "ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", @@ -7879,12 +7877,6 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, "is-alphabetical": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", @@ -8168,6 +8160,13 @@ "integrity": "sha512-WYJ7urf+khJYl3DqofQpYfEYkZKbmXmwxQV8c8mO/hGIhgZ1wOe7R4HLFNwqx7TjILbnC98fuyeSsin19JdFcQ==", "dev": true }, + "markdown-it-image-figures": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/markdown-it-image-figures/-/markdown-it-image-figures-2.1.1.tgz", + "integrity": "sha512-mwXSQ2nPeVUzCMIE3HlLvjRioopiqyJLNph0pyx38yf9mpqFDhNGnMpAXF9/A2Xv0oiF2cVyg9xwfF0HNAz05g==", + "dev": true, + "requires": {} + }, "markdown-it-prism": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/markdown-it-prism/-/markdown-it-prism-2.3.0.tgz", @@ -8221,12 +8220,6 @@ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "dev": true }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -8253,12 +8246,6 @@ "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, "moo": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", @@ -8283,12 +8270,6 @@ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true }, - "napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "dev": true - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -8311,21 +8292,6 @@ "tslib": "^2.0.3" } }, - "node-abi": { - "version": "3.54.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.54.0.tgz", - "integrity": "sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==", - "dev": true, - "requires": { - "semver": "^7.3.5" - } - }, - "node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", - "dev": true - }, "node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -8969,53 +8935,6 @@ "promise-each": "^2.2.0" } }, - "prebuild-install": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", - "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", - "dev": true, - "requires": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "dependencies": { - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - } - } - }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -9067,16 +8986,6 @@ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -9103,38 +9012,12 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, - "queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true - }, "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 }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true - } - } - }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -9144,17 +9027,6 @@ "pify": "^2.3.0" } }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -9209,12 +9081,6 @@ "queue-microtask": "^1.2.2" } }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, "section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", @@ -9309,19 +9175,33 @@ "dev": true }, "sharp": { - "version": "0.32.6", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", - "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", "dev": true, "requires": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5", "color": "^4.2.3", - "detect-libc": "^2.0.2", - "node-addon-api": "^6.1.0", - "prebuild-install": "^7.1.1", - "semver": "^7.5.4", - "simple-get": "^4.0.1", - "tar-fs": "^3.0.4", - "tunnel-agent": "^0.6.0" + "detect-libc": "^2.0.3", + "semver": "^7.6.3" } }, "shebang-command": { @@ -9345,23 +9225,6 @@ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true - }, - "simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "dev": true, - "requires": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -9426,26 +9289,6 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, - "streamx": { - "version": "2.15.8", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.8.tgz", - "integrity": "sha512-6pwMeMY/SuISiRsuS8TeIrAzyFbG5gGPHFQsYjUr/pbBadaL1PCWmzKw+CHZSwainfvcF6Si6cVLq4XTEwswFQ==", - "dev": true, - "requires": { - "bare-events": "^2.2.0", - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, "string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -9581,29 +9424,6 @@ "tslib": "^2.6.2" } }, - "tar-fs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", - "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", - "dev": true, - "requires": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0", - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - } - }, - "tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dev": true, - "requires": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, "terser": { "version": "5.28.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz", @@ -9656,15 +9476,6 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/package.json b/package.json index 9b034a7..fe09026 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "devDependencies": { "@11ty/eleventy": "^3.0.0", "@11ty/eleventy-fetch": "^4.0.0", - "@11ty/eleventy-img": "^3.1.8", + "@11ty/eleventy-img": "^5.0.0", "@11ty/eleventy-plugin-rss": "^1.2.0", "autoprefixer": "^10.4.17", "cheerio": "^1.0.0-rc.12", @@ -31,6 +31,7 @@ "markdown-it-abbr": "^2.0.0", "markdown-it-anchor": "^8.6.7", "markdown-it-footnote": "^4.0.0", + "markdown-it-image-figures": "^2.1.1", "markdown-it-prism": "^2.3.0", "pluralize": "^8.0.0", "postcss": "^8.4.33", diff --git a/src/_includes/layouts/catalogue-item.html b/src/_includes/layouts/catalogue-item.html index a542a01..4328fe8 100644 --- a/src/_includes/layouts/catalogue-item.html +++ b/src/_includes/layouts/catalogue-item.html @@ -7,7 +7,6 @@ imageCaption: "" {% set filteredTags = tags | filterCatalogueTags %} {% from "macros/date.njk" import format %} {% from "macros/utils.njk" import stars %} -
{{ format(page.date) }} @@ -15,30 +14,35 @@ imageCaption: "" {% if subtitle %}

{{ subtitle }}

{% endif %} {% if rating %}
{{ stars(rating) }}
{% endif %} {% if tertiary or year %} -
- {% if tertiary %} -
- {{ tertiary | safe }} -
- {% endif %} - {% if year %} -

ca. {{ year }}

- {% endif %} -
+
+ {% if tertiary %}
{{ tertiary | safe }}
{% endif %} + {% if year %} +

+ ca. {{ year }} +

+ {% endif %} +
{% endif %} {% if filteredTags | length > 0 %} -
{% if image %} - {% image image, imageAlt, imageCaption, "[ my-3 ]" %} +
+ {{ imageAlt }} +
{% endif %} {{ content | safe }} {% if url %} - - {% include "svgs/link.svg" %}{{ linkTitle }} + + {% include "svgs/link.svg" %} + {{ linkTitle }} {% endif %}
diff --git a/src/_includes/partials/header.html b/src/_includes/partials/header.html index 50d1d26..e2a6754 100644 --- a/src/_includes/partials/header.html +++ b/src/_includes/partials/header.html @@ -6,7 +6,11 @@ {{ textContent }}

- {% image album.imageUrl, "", "", "", textContent %} + {% if album.imageUrl %} + + {% else %} +
{{ textContent }}
+ {% endif %}
{% endfor %} @@ -43,7 +47,11 @@ description: What's going on now and all the latest with myself. {{ movie.title }} {% endset %}

{{ movie.title }}

- {% image movie.imgSrc, "", "", "" , textContent %} + {% if movie.imgSrc %} + + {% else %} +
{{ textContent }}
+ {% endif %} {% endfor %} diff --git a/src/pages/styleguide.html b/src/pages/styleguide.html index 80e40c8..4c12932 100644 --- a/src/pages/styleguide.html +++ b/src/pages/styleguide.html @@ -62,7 +62,7 @@ description: A demo of the site's theme.
- +
A fig caption.

diff --git a/src/posts/2018-11-24-switching-to-protonmail.md b/src/posts/2018-11-24-switching-to-protonmail.md index 17797e2..f999afe 100644 --- a/src/posts/2018-11-24-switching-to-protonmail.md +++ b/src/posts/2018-11-24-switching-to-protonmail.md @@ -6,7 +6,7 @@ tags: [email, protonmail] I've been an avid Gmail user since its inception sometime in 2004. I remember hunting for a beta invite back when they were highly coveted. I have received 25,467 emails and sent 1,738. The first email I sent was to a local shop to buy my old G3 iMac. -{% image "https://cdn.wonderfulfrog.com/images/first_gmail.png", "A screenshot of the 'Welcome to Gmail' email everyone received when they first opened their account", "Gmail was different, alright." %} +![A screenshot of the 'Welcome to Gmail' email everyone received when they first opened their account](https://cdn.wonderfulfrog.com/images/first_gmail.png "Gmail was different, alright.") In the years since I got my Gmail account I've realized that I've become the product for Google. My information - who I am, my interests, everything - is their endgame. Plain and simple I don't like that they have this information. I doubt there is any way for me to reliably erase myself from their databases, so I've opted to do the next best thing - try to reduce the amount of new information acquired. diff --git a/src/posts/2018-12-09-my-vinyl-journey.md b/src/posts/2018-12-09-my-vinyl-journey.md index 47dafd9..3f168fc 100644 --- a/src/posts/2018-12-09-my-vinyl-journey.md +++ b/src/posts/2018-12-09-my-vinyl-journey.md @@ -8,7 +8,7 @@ tags: ["music", "vinyl", "collecting"] I’m here to tell you vinyl collecting isn’t all its cracked up to be. Like many hobbies, it takes time and dedication to truly appreciate. I’m here to offer a cautionary tale to anyone looking to start the hobby. It’s important to make sure you want to do it for the right reasons - something I didn’t do when I started. -{% image "https://cdn.wonderfulfrog.com/images/mmb.jpg", "Record cover of Mogwai's Mr. Beast", "Mogwai's Mr. Beast" %} +![Record cover of Mogwai's Mr. Beast](https://cdn.wonderfulfrog.com/images/mmb.jpg "Mogwai's Mr. Beast") At some point in 2008 I decided to begin my vinyl journey. After hearing about records making a quiet comeback from my friend I thought I might see what this was all about on a whim. After perusing the local music store’s then-growing record collection I came out with [Mogwai's Mr. Beast](https://itunes.apple.com/ca/album/mr-beast/794356427). When I returned home I asked my parents for their old record player. My Mom returned my request with surprise. @@ -24,11 +24,11 @@ At some point in 2008 I decided to begin my vinyl journey. After hearing about r Off to the garage we went. Beneath a pile of old DVDs and other relics of another age - there it was. With the player was a giant container of records. I lugged the two with anticipation and enthusiasm upstairs. The record player was Dual's CS 728Q. -{% image "https://cdn.wonderfulfrog.com/images/dual.png", "Poster for the Dual CS 728Q record player", "The subtle off-white colouring, the tasteful thickness of it..." %} +![Poster for the Dual CS 728Q record player](https://cdn.wonderfulfrog.com/images/dual.png "The subtle off-white colouring, the tasteful thickness of it...") I didn't have a sound system at the time - so my setup was a messy daisy-chain of cords that eventually lead to a pair a cheap computer speakers. I excitedly rummaged through my parents collection looking for one album in particular. With a pleased grin I found it. I was looking for [Pink Floyd's Wish You Were Here](https://itunes.apple.com/ca/album/wish-you-were-here/1065973975). -{% image "https://cdn.wonderfulfrog.com/images/wywh.png", "Record cover of Pink Floyd's Wish You Were Here", "Pink Floyd's Wish You Were Here" %} +![Record cover of Pink Floyd's Wish You Were Here](https://cdn.wonderfulfrog.com/images/wywh.png "Pink Floyd's Wish You Were Here") I admired the gatefold LP for some time before placing it on the platter. Pressing the start button the record started turning. The tone arm swung over and locked into place, hovering over the record. Gently it lowered itself until it landed with a subtle popping sound. It was at this point I realized what a phono preamp was - and without having one means there is very little sound. Undeterred, I cranked the volume on my tinny little speakers. It wasn't much but I could hear it! David Gilmour's wailing guitar pumping through the needle to my speakers. It was a magical moment for me. I listened to the whole album on those horrible speakers, completely enthralled in the medium. @@ -40,7 +40,7 @@ As with most things I get interested in, I launched into this new hobby with rec With my new desire to acquire any and all kinds of vinyl I wandered into shops and would eat up anything that looked remotely interesting. About a year into the hobby I started to notice that more and more of my favourite artists were releasing brand new pressings of their upcoming albums. The writing was on the wall - the record companies were taking notice of the resurgence of vinyl and were preparing to go in swinging. I didn’t think much of it at the time of course. -{% image "https://cdn.wonderfulfrog.com/images/djf.png", "Record cover of Dinosaur Jr.'s Farm", "Dinosaur Jr.'s Farm" %} +![Record cover of Dinosaur Jr.'s Farm](https://cdn.wonderfulfrog.com/images/djf.png "Dinosaur Jr.'s Farm") It was also around this time I started to notice more of the minor annoyances with vinyl - chiefly the maintenance aspect. By virtue of the way the medium works, anything like dust, dirt, or small particles are the enemy. They cause pops and cracks, or worse skips. My brand new records started showing these symptoms after a few plays. Again though I falsely convinced myself this was all part of the charm and just needed to be accepted; the worrying never stopped though. I would often have to convince myself the record would be fine and to just play it. For the large part I was still enjoying the hobby, but starting to realize some of the downsides that came with it. @@ -48,7 +48,7 @@ It was also around this time I started to notice more of the minor annoyances wi During this time I can recall a particularly vivid memory relating to a record purchase. In 2009 Animal Collective released their breakout album [Merriweather Post Pavilion](https://itunes.apple.com/ca/album/merriweather-post-pavilion/300683110). I remember picking it up at the store after months of anticipation (and listening to low-quality album leaks). After the usual ritual of gatefold admiration, I put the record on the platter and hit start. With headphones hooked up, I put on my pair of Sony MDRV6s and laid down on the bed. I closed my eyes. Soon the opening notes of In the Flowers began. I lost myself on a sonic odyssey - interrupted only by the necessity to flip the record over. It was one point in my life where I recall listening to an album front to back without _any_ distractions. Despite my slow-growing annoyance with vinyl as a hobby, this is one memory I always look on fondly. -{% image "https://cdn.wonderfulfrog.com/images/acmpp.jpg", "Record cover of Animal Collective's Merriweather Post Pavilion", "Animal Collective's Merriweather Peace Pavilion" %} +![Record cover of Animal Collective's Merriweather Post Pavilion](https://cdn.wonderfulfrog.com/images/acmpp.jpg "Animal Collective's Merriweather Peace Pavilion") ## Annoyance turns to irritation diff --git a/src/posts/2019-09-14-coming-back-to-vinyl.md b/src/posts/2019-09-14-coming-back-to-vinyl.md index 28716c4..17fdf58 100644 --- a/src/posts/2019-09-14-coming-back-to-vinyl.md +++ b/src/posts/2019-09-14-coming-back-to-vinyl.md @@ -8,7 +8,7 @@ This is an update to my post from a few months ago about a cautionary tale into I believe this all started because of my ruthless quest for minimalism. I don’t mean in the popular sense of owning no furniture like that photo of Steve Jobs, but speaking more in a sense of values. If something isn’t providing me any value, why should I continue to own it? That was the conclusion I arrived at when it came to evaluating my vinyl collection. -{% image "https://cdn.wonderfulfrog.com/images/CB867BB6-6F62-44AC-B1F4-B9B8D290D75C.jpeg", "Steve Jobs sitting cross-legged in his living room with sparse furniture", "Not my idea of minimalism" %} +![Steve Jobs sitting cross-legged in his living room with sparse furniture](https://cdn.wonderfulfrog.com/images/CB867BB6-6F62-44AC-B1F4-B9B8D290D75C.jpeg "Not my idea of minimalism") After talking with my partner, she said something along the lines of it being okay to collect things. It sounds silly, but that single bit of permission and validation told me that the collection does indeed bring my joy and value. It cemented the fact that the collection is now a part of who I am — it helps define my identity as an avid music listener. Once someone told me it’s okay, it completed changed my perception. Perhaps all I was looking for to begin with was permission to collect them? diff --git a/src/posts/2020-01-23-professional-development-in-2019.md b/src/posts/2020-01-23-professional-development-in-2019.md index 10ac3d9..3ffa92b 100644 --- a/src/posts/2020-01-23-professional-development-in-2019.md +++ b/src/posts/2020-01-23-professional-development-in-2019.md @@ -4,7 +4,7 @@ excerpt: A look back at what happened in 2019 - professionally. For me. tags: ["career", "growth", "personal", "react", "swift"] --- -{% image "https://cdn.wonderfulfrog.com/images/dude-pretending-to-read.png", "A dude sitting on a chair with legs crossed casually pretending to read but seemingly looking off into the distance with a confident smile, or perhaps to look at a neat dog. From Open Doodles.", "A dude sitting on a chair with legs crossed casually pretending to read but seemingly looking off into the distance with a confident smile, or perhaps to look at a neat dog. From Open Doodles." %} +![A dude sitting on a chair with legs crossed casually pretending to read but seemingly looking off into the distance with a confident smile, or perhaps to look at a neat dog. From Open Doodles.](https://cdn.wonderfulfrog.com/images/dude-pretending-to-read.png "A dude sitting on a chair with legs crossed casually pretending to read but seemingly looking off into the distance with a confident smile, or perhaps to look at a neat dog. From Open Doodles.") 2019 was a slow year for professional development. As things started to stagnate near the end of the year, I sensed it was time to move on and look for a new job. Before we talk about 2019, I wanted to revisit the goals from 2018: diff --git a/src/posts/2020-06-02-recently-06-2020.md b/src/posts/2020-06-02-recently-06-2020.md index 5b59d68..d67f476 100644 --- a/src/posts/2020-06-02-recently-06-2020.md +++ b/src/posts/2020-06-02-recently-06-2020.md @@ -4,7 +4,7 @@ excerpt: June 2020. tags: ["recently"] --- -{% image "https://cdn.wonderfulfrog.com/images/wolfgang.jpg", "Wolfgang reading a book in an idyllic forest paradise", "#lifegoals" %} +![Wolfgang reading a book in an idyllic forest paradise](https://cdn.wonderfulfrog.com/images/wolfgang.jpg "#lifegoals") My pet project these last few weeks has been my [CHIP-8 interpreter](https://github.com/devinwl/chip-8). I've been following tutorials around the internet to try and figure things out. I've learned a lot more than I expected and even rekindled a bit of interest in hardware. I took a course in university that used an ARM processor for learning assembly language. diff --git a/src/posts/2020-07-04-recently-07-2020.md b/src/posts/2020-07-04-recently-07-2020.md index f2e91f8..0fcd655 100644 --- a/src/posts/2020-07-04-recently-07-2020.md +++ b/src/posts/2020-07-04-recently-07-2020.md @@ -4,7 +4,7 @@ excerpt: July 2020. tags: ["recently"] --- -{% image "https://cdn.wonderfulfrog.com/images/lady-actually-reading.svg", "Lady reading her book in what must be eventually pretty uncomfortable, but at least she has a nice cactus. From Open Doodles.", "Lady reading her book in what must be eventually pretty uncomfortable, but at least she has a nice cactus. From Open Doodles." %} +![Lady reading her book in what must be eventually pretty uncomfortable, but at least she has a nice cactus. From Open Doodles.](https://cdn.wonderfulfrog.com/images/lady-actually-reading.svg "Lady reading her book in what must be eventually pretty uncomfortable, but at least she has a nice cactus. From Open Doodles.") My [CHIP-8 emulator](https://github.com/devinwl/chip-8) took a back seat last month. I haven’t made any progress on it since late May. I hope to return to it, but right now my interests have shifted to different projects. diff --git a/src/posts/2020-07-26-take-the-power-back-music.md b/src/posts/2020-07-26-take-the-power-back-music.md index 9afceff..39865f5 100644 --- a/src/posts/2020-07-26-take-the-power-back-music.md +++ b/src/posts/2020-07-26-take-the-power-back-music.md @@ -84,11 +84,11 @@ Well, turns out iTunes — sorry — Music(.app) — has a handy feature called - Matched (uploaded and updated using iTunes Match) - Uploaded (uploaded tracks saved using iTunes Match) -{% image "https://cdn.wonderfulfrog.com/images/amm.png" , "Smart Playlist filters", "The various settings to get my 'Apple Music music'" %} +![Smart Playlist filters](https://cdn.wonderfulfrog.com/images/amm.png "The various settings to get my 'Apple Music music'") I also added a filter to show music only from May 18th 2018. This date is important because it was the day I re-subscribed to Apple Music after not using it past the free trial. That cut down my list to 2,221 songs. Thus, I had my Apple Music music. -{% image "https://cdn.wonderfulfrog.com/images/stats.png" , "2,221 total songs", "2,221 total songs - wow!" %} +![2,221 total songs](https://cdn.wonderfulfrog.com/images/stats.png "2,221 total songs - wow!") I also made another Smart Playlist to find all of my Purchased music (1,107 songs), and downloaded those. A grand total of about 3,300 songs from Apple. @@ -106,7 +106,7 @@ One caveat is that any tracks that were Matched (using iTunes Match) were likely This step I knew I wanted to use as many automated tools as possible. There are likely a ton of databases out there for music, but I ended up liking [MusicBrainz](https://musicbrainz.org) the most. Especially because they have an app — [Picard](https://picard.musicbrainz.org) — that makes re-tagging very seamless. This is especially useful for YouTube rips as they don’t have any IDv3 tags, but Picard can scan by audio signature and match that way instead! Really cool. It wasn’t always right, but it was generally very close most of the time. -{% image "https://cdn.wonderfulfrog.com/images/60percent.gif" , "60% of the time, it works every time", "" %} +![](https://cdn.wonderfulfrog.com/images/60percent.gif "60% of the time, it works every time") This worked pretty well at the start, but it was a fairly manual process. I’d have to: diff --git a/src/posts/2020-11-06-recently-11-2020.md b/src/posts/2020-11-06-recently-11-2020.md index 5549102..d3265cd 100644 --- a/src/posts/2020-11-06-recently-11-2020.md +++ b/src/posts/2020-11-06-recently-11-2020.md @@ -4,7 +4,7 @@ excerpt: November 2020. tags: ["recently"] --- -{% image "https://cdn.wonderfulfrog.com/images/e460bb30-2ef1-4a3c-af6d-f7ff9c696bac.jpeg", "A frog recounting his struggles about trying his hardest, and feeling like it’s never enough. By Cat's Cafe.", "Mood." %} +![A frog recounting his struggles about trying his hardest, and feeling like it’s never enough. By Cat's Cafe.](https://cdn.wonderfulfrog.com/images/e460bb30-2ef1-4a3c-af6d-f7ff9c696bac.jpeg "Mood.") Well, now it’s November. That happened. Here’s some things that caught my interest this month. diff --git a/src/posts/2020-12-07-recently-12-2020.md b/src/posts/2020-12-07-recently-12-2020.md index 41c3b96..46e71c8 100644 --- a/src/posts/2020-12-07-recently-12-2020.md +++ b/src/posts/2020-12-07-recently-12-2020.md @@ -4,7 +4,7 @@ excerpt: December 2020. tags: ["recently"] --- -{% image "https://cdn.wonderfulfrog.com/images/tumblr_594d8523021106f126390d49d5a0a1a0_1db9a35a_1280.jpg", "Little Big Things by Cat's Cafe", "Sometimes the hardest thing is just getting out of bed" %} +![Little Big Things by Cat's Cafe](https://cdn.wonderfulfrog.com/images/tumblr_594d8523021106f126390d49d5a0a1a0_1db9a35a_1280.jpg "Sometimes the hardest thing is just getting out of bed") Not a long one this month. The holidays are upon us, but it doesn’t exactly feel like it to me. It’s a strange time to be sure. diff --git a/src/posts/2021-01-09-2020-in-review.md b/src/posts/2021-01-09-2020-in-review.md index c5ce73d..b12d56e 100644 --- a/src/posts/2021-01-09-2020-in-review.md +++ b/src/posts/2021-01-09-2020-in-review.md @@ -31,7 +31,7 @@ A lot of good things happened this year too: - [Google is being sued by the US for antitrust violations.][antitrust] - We got Season 2 of The Mandalorian. -{% image "https://cdn.wonderfulfrog.com/images/8deaca3a-3ad8-4a2b-9068-b6ea1b7f7ec1.jpeg", "A screenshot of my phone with a news heading that says 'BIDEN BEATS TRUMP'", "A cherished screenshot" %} +![A screenshot of my phone with a news heading that says 'BIDEN BEATS TRUMP'](https://cdn.wonderfulfrog.com/images/8deaca3a-3ad8-4a2b-9068-b6ea1b7f7ec1.jpeg "A cherished screenshot") I had to search for both positive and negative events because my brain is having enough trouble dealing with the present, let alone reasoning what happened in the past. diff --git a/src/posts/2021-03-05-recently-03-2021.md b/src/posts/2021-03-05-recently-03-2021.md index 5c75c19..2b65ce7 100644 --- a/src/posts/2021-03-05-recently-03-2021.md +++ b/src/posts/2021-03-05-recently-03-2021.md @@ -5,7 +5,7 @@ tags: ["recently", "valheim"] youtube: true --- -{% image "https://cdn.wonderfulfrog.com/images/forestsunrise.png", "A screenshot of Valheim with a sunrise coming through a thick, dense forest." , "Look at them god rays" %} +![A screenshot of Valheim with a sunrise coming through a thick, dense forest.](https://cdn.wonderfulfrog.com/images/forestsunrise.png "Look at them god rays") Like Christmas, I am always shocked at how fast February goes by, even though it’s the same length (except Leap Years) every year. @@ -61,7 +61,7 @@ Here’s my favorite bit ever: ## Playing -{% image "https://cdn.wonderfulfrog.com/images/moonrise.png", "My mighty viking with the moon as a backdrop." , "Look at them... moon rays" %} +![My mighty viking with the moon as a backdrop.](https://cdn.wonderfulfrog.com/images/moonrise.png "Look at them... moon rays") Without a doubt (and likely to my partner’s dismay) the majority of my time the past few weeks has been in [Valheim](https://www.valheimgame.com). I initially felt like the survival aspects of the game weren’t for me, having had enough of it in Minecraft. What sucked me right in though was the sheer quality of this Early Access title (can you believe it’s a team of **five people**?). The aesthetic of retro, low-poly models combined with a modern lightning engine creates this nostalgic but fresh vibe that fits in a game of its kind. @@ -69,24 +69,24 @@ Progressing in the game is done by destroying one of the five major bosses, with A group of us (6) decided to get the game on a Friday evening, and before I knew it it was 1AM. Then it was 1AM Saturday. It kept going on like this. I lived and breathed the game. It sucks you in quick if you’re not careful. -{% image "https://cdn.wonderfulfrog.com/images/newheim.png", "My cozy viking home." , "If there exists a survival game, I will build a cottage in it" %} +![My cozy viking home.](https://cdn.wonderfulfrog.com/images/newheim.png "If there exists a survival game, I will build a cottage in it") Here are some screenshots of our journey to take down The Elder, the second boss of the game. His summoning location was far away from our little home of “Newheim” (which replaced our old village, now referred to as “Oldheim”), across the great sea. We built our first boat capable of holding more than one or two people and set sail. -{% image "https://cdn.wonderfulfrog.com/images/sailingtoelder.png", "A group of six hapless Vikings sailing their way to slay an unknown evil." , "To boldly go where no Viking has gone before..." %} +![A group of six hapless Vikings sailing their way to slay an unknown evil.](https://cdn.wonderfulfrog.com/images/sailingtoelder.png "To boldly go where no Viking has gone before...") -{% image "https://cdn.wonderfulfrog.com/images/elderdistance.png", "Our map showing the distance from our main base to The Elder." , "1 day later..." %} +![Our map showing the distance from our main base to The Elder.](https://cdn.wonderfulfrog.com/images/elderdistance.png "1 day later...") After a day’s journey (which is about 30 minutes), we broke shore at what we called “Elderheim” (we have an incredibly clever naming scheme, if you haven’t noticed). We hastily built a small house and a portal to allow us to return to the island if we died (which we did, multiple times). -{% image "https://cdn.wonderfulfrog.com/images/elderheim.png", "A screenshot of Valheim showing a hastily built shelter in the pouring rain." , "The black forest is aptly named" %} +![A screenshot of Valheim showing a hastily built shelter in the pouring rain.](https://cdn.wonderfulfrog.com/images/elderheim.png "The black forest is aptly named") With our base deployed and our bellies full of food, we set out to summon The Elder and take them out. I don’t have any shots of us during the fight, but you can rest assured it was a delightful, flailing mess. We all died at least once or twice. We ran out of arrows mid fight and had to speedily drop them on the ground to share. In the end though, we triumphed! -{% image "https://cdn.wonderfulfrog.com/images/elderdown.png", "The corpse of the mighty Elder!" , "Triumph!" %} +![The corpse of the mighty Elder!](https://cdn.wonderfulfrog.com/images/elderdown.png "Triumph!") We’ve since taken down the third boss and are on our way to number four. The Mountain has proved to be a tough biome to survive, and if our brief excursion into the Plains has been any indication — the fun is only just beginning. -{% image "https://cdn.wonderfulfrog.com/images/stones.png", "The severed head of The Elder attached to a sacrificial stone altar. With this we gain strange new magical powers." , "And now, the mountain beckons us..." %} +![The severed head of The Elder attached to a sacrificial stone altar. With this we gain strange new magical powers.](https://cdn.wonderfulfrog.com/images/stones.png "And now, the mountain beckons us...") diff --git a/src/posts/2021-04-01-recently-04-2021.md b/src/posts/2021-04-01-recently-04-2021.md index b3aa909..e215cdf 100644 --- a/src/posts/2021-04-01-recently-04-2021.md +++ b/src/posts/2021-04-01-recently-04-2021.md @@ -5,7 +5,7 @@ tags: ["recently", "valheim"] youtube: true --- -{% image "https://cdn.wonderfulfrog.com/images/coolbow.png", "My Valheim character under the moon.", "The lighting in this game is so good!" %} +![My Valheim character under the moon.](https://cdn.wonderfulfrog.com/images/coolbow.png "The lighting in this game is so good!") Right up until the end of the month things were looking up pandemic-wise, but our province announced that more restrictions are going to be in place for the next few weeks. Cases have been trending upward for the younger age groups (20-30s). It felt like up until this announcement that were was a chance that summer might mean a vaccine for people in my age range. Not to mention that AstraZeneca has been suspended recently in Canada. Back to waiting. @@ -27,7 +27,7 @@ Been keeping busy on the games front lately! The Switch is a wonderful console. Our group finished what I would consider to be the “campaign” of the game: the 5 bosses. We wrapped up about mid-March, slaying the mighty Yalguth after a long, hard battle. It was a lot of fun because it required coordination and resource management. -{% image "https://cdn.wonderfulfrog.com/images/theend.png", "Our heroes stand triumphant and display their grisly trophy!", "Our heroes stand triumphant and display their grisly trophy!" %} +![Our heroes stand triumphant and display their grisly trophy!](https://cdn.wonderfulfrog.com/images/theend.png "Our heroes stand triumphant and display their grisly trophy!") Since we finished all the bosses, we’ve fallen off the game. Without the next boss to work toward, the game became resource-gathering and base-building. A fun activity, but does not appeal to everyone. Without my friends playing, I don’t find myself all that interested. @@ -35,7 +35,7 @@ For $20 though, some of the best times I’ve had with a game in recent memory. There are updates planned for Valheim that could be pretty exciting (like the Mistlands, Firelands, and Deep North being implemented), which might pull our group back in. -{% image "https://cdn.wonderfulfrog.com/images/yagluthsummon.png", "The summoning area for Yagluth, the final boss. He wants totems from his Fuling followers.", "The summoning area for Yagluth, the final boss. He wants totems from his Fuling followers." %} +![The summoning area for Yagluth, the final boss. He wants totems from his Fuling followers.](https://cdn.wonderfulfrog.com/images/yagluthsummon.png "The summoning area for Yagluth, the final boss. He wants totems from his Fuling followers.") ### Stardew Valley diff --git a/src/posts/2021-04-18-my-vim-setup.md b/src/posts/2021-04-18-my-vim-setup.md index 5c68d98..92fa4ba 100644 --- a/src/posts/2021-04-18-my-vim-setup.md +++ b/src/posts/2021-04-18-my-vim-setup.md @@ -4,7 +4,7 @@ excerpt: Everybody does it differently. tags: ["vim", "development"] --- -{% image "https://cdn.wonderfulfrog.com/images/vimsetup.png", "A screenshot of my `vim` setup in action.", "" %} +![A screenshot of my `vim` setup in action.](https://cdn.wonderfulfrog.com/images/vimsetup.png) I thought it would be fun to talk about my `vim` configuration. Everyone does it differently, and I wanted to toss my hat into the ring. diff --git a/src/posts/2021-05-01-recently-05-2021.md b/src/posts/2021-05-01-recently-05-2021.md index 8e2670a..11e674c 100644 --- a/src/posts/2021-05-01-recently-05-2021.md +++ b/src/posts/2021-05-01-recently-05-2021.md @@ -5,7 +5,7 @@ tags: ["recently"] youtube: true --- -{% image "https://cdn.wonderfulfrog.com/images/mistergotcha.png", "The Nib's 'Mister Gotcha' comic", "'Curious!' - the catchphrase of those 'just asking questions'" %} +![The Nib's 'Mister Gotcha' comic](https://cdn.wonderfulfrog.com/images/mistergotcha.png "'Curious!' - the catchphrase of those 'just asking questions'") [Mister Gotcha][mistergotcha] is prime material when I complain about Apple and its ecosystem. There’s lots to complain about, but I’m a heavy user. Out of the options available, they are (in my opinion) the best choice as a consumer. That doesn’t mean they are perfect, though. Apple can (and should) do better. diff --git a/src/posts/2021-06-01-recently-06-2021.md b/src/posts/2021-06-01-recently-06-2021.md index 222a35a..58b137b 100644 --- a/src/posts/2021-06-01-recently-06-2021.md +++ b/src/posts/2021-06-01-recently-06-2021.md @@ -4,7 +4,7 @@ excerpt: May 2021. tags: ["recently"] --- -{% image "https://cdn.wonderfulfrog.com/images/coffee_time_with_dexter.jpg", "Miitopia: where you end up in cafe enjoying your coffee, with Dexter from Dexter's Lab being your barista.", "Dexter's Cafe" %} +![Miitopia: where you end up in cafe enjoying your coffee, with Dexter from Dexter's Lab being your barista.](https://cdn.wonderfulfrog.com/images/coffee_time_with_dexter.jpg "Dexter's Cafe") I got vaccinated this month. Canada’s rollout has been slower than say the US, but come vaccine day I was in and out within 20 minutes (that’s including my 15 minute waiting period). There are rumours that the 8 week waiting period between doses might be shortened. @@ -34,7 +34,7 @@ My game _du jour_ is undoubtedly Miitopia. The Switch version is a port of the 3 What really grabbed me about it was the ability to plonk your own Miis into the game. I’ve taken the opportunity to put my friends in as our main party so far, and inject whatever famous person I feel like making (fictional or otherwise). Thanks to the game’s fantastic writing, you can end up with some hilarious moments that wouldn’t otherwise happen without such creative freedom. -{% image "https://cdn.wonderfulfrog.com/images/miitopia_newman.jpg", "My character in Miitopia exclaiming 'Newman!' when the Dark Lord suddenly appears.", "Newman's incredible presence is no match for my scrappy attitude!" %} +![My character in Miitopia exclaiming 'Newman!' when the Dark Lord suddenly appears.](https://cdn.wonderfulfrog.com/images/miitopia_newman.jpg "Newman's incredible presence is no match for my scrappy attitude!") The Dark Lord in my game is none other than Newman himself, eternal enemy to Jerry Seinfeld. My Carefree Guide, the guy you meet at the very start, is Kramer (who is pretty good pals with Newman), and this moment made me laugh out loud: diff --git a/src/posts/2021-07-03-gmtk-post-mortem.md b/src/posts/2021-07-03-gmtk-post-mortem.md index 210c476..2367627 100644 --- a/src/posts/2021-07-03-gmtk-post-mortem.md +++ b/src/posts/2021-07-03-gmtk-post-mortem.md @@ -37,21 +37,21 @@ The game idea we eventually landed on was originally a joke we proposed to each My job was art and in the first few hours I got to my drawing board. Okay, so it isn't a board but a sketchbook. -{% image "https://cdn.wonderfulfrog.com/images/FirstGameplayConcept.jpg", "In this concept art a untrustworthy manager is asking the player about 'those quarterly numbers', meanwhile the player has a thought bubble that says 'I'm losing him... tighten up!' referring to their handshake grip.", "Sketch of a gameplay concept" %} +![In this concept art a untrustworthy manager is asking the player about 'those quarterly numbers', meanwhile the player has a thought bubble that says 'I'm losing him... tighten up!' referring to their handshake grip.](https://cdn.wonderfulfrog.com/images/FirstGameplayConcept.jpg "Sketch of a gameplay concept") I originally drew this image after started taking our joke concept seriously. I added some nonsensical business speak and we all seemed to enjoy the humour. -{% image "https://cdn.wonderfulfrog.com/images/MinigameConcept.jpg", "Another concept art featuring the untrustworthy manager. This time, they have a noodle-like neck with the manager's head appearing dislodged from their body, to the left. The manager asks 'are you even paying attention?' while the player has a thought bubble that says 'maintain eye contact!'", "Sketch of a character with a very stretchy neck" %} +![Another concept art featuring the untrustworthy manager. This time, they have a noodle-like neck with the manager's head appearing dislodged from their body, to the left. The manager asks 'are you even paying attention?' while the player has a thought bubble that says 'maintain eye contact!'](https://cdn.wonderfulfrog.com/images/MinigameConcept.jpg "Sketch of a character with a very stretchy neck") At one point we had toyed with requiring constant eye-contact by using the mouse (something I think that would be fun), and then having ridiculously cartoon-y stretchy necks as they rapidly moved around the screen. -{% image "https://cdn.wonderfulfrog.com/images/UIConcept.jpg", "A sketch of the game UI. There are 'grip gauges' on the left side of the screen, representing the player's grip strength. In the center of a gauge is a target, where the player was intended to guide their gauge to. On the bottom is a text box, with generic business-like responses which the player could choose.", "Sketch of UI prototype" %} +![A sketch of the game UI. There are 'grip gauges' on the left side of the screen, representing the player's grip strength. In the center of a gauge is a target, where the player was intended to guide their gauge to. On the bottom is a text box, with generic business-like responses which the player could choose.](https://cdn.wonderfulfrog.com/images/UIConcept.jpg "Sketch of UI prototype") We wanted to implement dialogue responses into the game as a way to engage with the characters — another added element to the game beyond holding a few buttons. We wanted to bind them to the keys you'd use to maintain your handshake grip, so answering them would require letting up your grip for a moment. After I got busy with gameplay concepts and had decided on how we wanted to play the game, I got busy with coming up with our cast of characters. -{% image "https://cdn.wonderfulfrog.com/images/CharacterDesigns.jpg", "A sketch of various characters. They have exaggerated features like elongated faces or big mouths. One character is intricately detailed and has a sense of false confidence. He is saying 'bro, closers close, bro.'", "A rogue's gallery of various characters" %} +![A sketch of various characters. They have exaggerated features like elongated faces or big mouths. One character is intricately detailed and has a sense of false confidence. He is saying 'bro, closers close, bro.'](https://cdn.wonderfulfrog.com/images/CharacterDesigns.jpg "A rogue's gallery of various characters") We came up with the stereotypical origin story of the struggling child who has never met their birth father. A natural progression for the main character we thought was the humble origins of a lowly fry cook turned Regional Franchise Manager. With all that in mind, we came up with some “business people” to interact with. In our original plans we had even greater heights for our character to reach: shaking hands with the President, the Pope, negotiating peace treaties with alien races… there was no bar too high. @@ -59,15 +59,15 @@ The dude in the middle ended up closely resembling our McBurger CEO (“Chief Mc Afterward we decided we needed the Mom and Dad characters to play a part. The Mom I went super stereotypical, but didn't end up using it at all in the end (you'll see how it diverges later). -{% image "https://cdn.wonderfulfrog.com/images/MomDesign.jpg", "A sketch of 'Mom', with a soft, round face. Her hair is poofy and circular. She is wearing a pearl necklace with over-sized pearls.", "It's Mom." %} +![A sketch of 'Mom', with a soft, round face. Her hair is poofy and circular. She is wearing a pearl necklace with over-sized pearls.](https://cdn.wonderfulfrog.com/images/MomDesign.jpg "It's Mom.") The Dad I went vaguely European and kinda hipster vibes. Very strong jaw to highlight his traditional masculinity. A chunky moustache that resembles Ron Swanson's push broom. I knew right away that he should be annoyingly buff and he wants to show it off with tight-fitting shirts. -{% image "https://cdn.wonderfulfrog.com/images/DadsonDesign.jpg", "A sketch of 'Dad', with featuring hard lines and dark colors. Dad has sharp eyes and a large nose. His eyebrows are large rectangular shapes. His mustache looks like a large push-broom.", "It's Dad." %} +![A sketch of 'Dad', with featuring hard lines and dark colors. Dad has sharp eyes and a large nose. His eyebrows are large rectangular shapes. His mustache looks like a large push-broom.](https://cdn.wonderfulfrog.com/images/DadsonDesign.jpg "It's Dad.") I wanted to have a plaid shirt for Dad, but couldn't figure out how to make it work in pixel art. This is the only artifact I have left: it's a blown-up sprite that came from a screenshot of my screen-share over Discord. -{% image "https://cdn.wonderfulfrog.com/images/DadsonPlaid.png", "An early in-game screenshot of 'Dad'. He looks like the sketch version with red skin. He is wearing a plaid shirt, and his chest muscles are very defined.", "It's Dad -- in plaid." %} +![An early in-game screenshot of 'Dad'. He looks like the sketch version with red skin. He is wearing a plaid shirt, and his chest muscles are very defined.](https://cdn.wonderfulfrog.com/images/DadsonPlaid.png "It's Dad -- in plaid.") I doodled for most of the first night then went to bed. First thing the following morning was purchasing a copy of [Aseprite](https://www.aseprite.org) and getting into it. I had my work cut out for me: I needed to do a bunch of characters and backgrounds, and fast. @@ -75,21 +75,21 @@ I stuck with the default palette in Aseprite. I thought giving myself constraint It had been a long time since I've made tiny squares into pictures, but I found my footing after a few hours. The first character I made had green skin and kinda looked like [Piccolo from DBZ](https://dragonball.fandom.com/wiki/Piccolo). Naturally I added antennae and the likeness was _impeccable_. -{% image "https://cdn.wonderfulfrog.com/images/sheet1.png", "A sprite sheet of various characters early in the design phase. Much like the sketch versions, so far characters feature weird face shapes and alien skin colours. Of note is a character with blue skin and a chubby face, with large jowls.", "It's a bad pixel art drawing of a guy that might or might not be Piccolo." %} +![A sprite sheet of various characters early in the design phase. Much like the sketch versions, so far characters feature weird face shapes and alien skin colours. Of note is a character with blue skin and a chubby face, with large jowls.](https://cdn.wonderfulfrog.com/images/sheet1.png "It's a bad pixel art drawing of a guy that might or might not be Piccolo.") Then I started to play with this concept. What if all the characters are weird aliens? The blue character turned into the CEO (“Chief”), and as a joke I transformed him into [Dodoria](https://dragonball.fandom.com/wiki/Dodoria) (inevitably DBZ makes it into anything I'm involved with). Dadson is slowly taking shape (although looks kinda like a fish). The character on the left was supposed to be our middle manager, but I ended up scrapping this for something else later. A few more hours later I had a new version of Mom created. I thought the original design was kinda boring, and thought it would be funny if Mom was a punk-y rebel (a mix of the side-cut and spike hair). She never ended up “feeling” like a Mom, but it was a fun character to create. -{% image "https://cdn.wonderfulfrog.com/images/sheet4.png", "Another early sprite sheet featuring the previously sketched cast of characters. On the sheet each character has a different facial expression. The blue character has a scared, bored, smiling, and determined expression. 'Mom' has been added as well. She has blue hair, with one half being spiked and the other in a side-part fashion. She has the same array of expressions (scared, bored, smiling), except instead of determined she has a beaming/happy expression, no doubt showing her love of their child (the player)", "Mom is back -- in punk form." %} +![Another early sprite sheet featuring the previously sketched cast of characters. On the sheet each character has a different facial expression. The blue character has a scared, bored, smiling, and determined expression. 'Mom' has been added as well. She has blue hair, with one half being spiked and the other in a side-part fashion. She has the same array of expressions (scared, bored, smiling), except instead of determined she has a beaming/happy expression, no doubt showing her love of their child (the player)](https://cdn.wonderfulfrog.com/images/sheet4.png "Mom is back -- in punk form.") Then the middle manager (“Francis”) took shape with a new form. I thought a long-faced ([Squidward](https://en.wikipedia.org/wiki/Squidward_Tentacles)-esque) would be funny, and leaned into it. I wanted to have the slick-back hair from the start because it captures the feeling of a typical grease ball. -{% image "https://cdn.wonderfulfrog.com/images/sheet5.png", "The sprite sheet has a new character - Francis - added with green skin and gelled, slick back brown hair. They have a long face and a long nose that goes straight down. They are wearing a basic white dress shirt. There are different expressions like before - scared, bored, neutral, and determined.", "You just know Francis would never give you weekends off." %} +![The sprite sheet has a new character - Francis - added with green skin and gelled, slick back brown hair. They have a long face and a long nose that goes straight down. They are wearing a basic white dress shirt. There are different expressions like before - scared, bored, neutral, and determined.](https://cdn.wonderfulfrog.com/images/sheet5.png "You just know Francis would never give you weekends off.") At this point we had our cast of characters and various facial expressions! Here's a mini time-lapse of the entire spritesheet taking form: -{% image "https://cdn.wonderfulfrog.com/images/SpritesheetEvolution.gif", "An animation showing the evolution of the in-game character design. As the animation progresses, more characters are added, and various UI elements like gauges and buttons are added. A rough version of the logo is revealed, which is a cropped version of a handshake, showing just the hands.", "A time-lapse of the game's spritesheet." %} +![An animation showing the evolution of the in-game character design. As the animation progresses, more characters are added, and various UI elements like gauges and buttons are added. A rough version of the logo is revealed, which is a cropped version of a handshake, showing just the hands.](https://cdn.wonderfulfrog.com/images/SpritesheetEvolution.gif "A time-lapse of the game's spritesheet.") I didn't end up having time for backgrounds and relied on my teammates for that. Photoshop wizardry got us there in the end! @@ -119,53 +119,53 @@ I took the time to redraw our characters using what I learned during the jam. Th My first stop was Dadson. I thought I could come up with better colours that went with the heavy red vibe but with a touch of purple. -{% image "https://cdn.wonderfulfrog.com/images/Dadson1.png", "A single sprite of 'Dad' (Dadson). His design is the same as before, but the color selection has been made deliberate. His red skin looks warmer and the shadows/darker colors are less purple.", "It's Dad -- in (better) colour." %} +![A single sprite of 'Dad' (Dadson). His design is the same as before, but the color selection has been made deliberate. His red skin looks warmer and the shadows/darker colors are less purple.](https://cdn.wonderfulfrog.com/images/Dadson1.png "It's Dad -- in (better) colour.") From there I started to embellish the details like his annoying muscles and stern eyes. I spent a fair amount of time doing anatomy studies to capture those rippling biceps. In between revising Dadson and other characters, I came back and re-applied what I had learned (again). You'll notice the jump is pretty substantial — look at the shading on his face. I wanted to highlight his jaw and defined facial features. -{% image "https://cdn.wonderfulfrog.com/images/DadsonFullEvolution.gif", "A time-lapse animation of the various tweaks applied to Dadson's design. His eyes are slightly softened, and the contours of his muscles become more defined in his shirt. The eyebrows and mustache are rounded to look a bit more cartoon-like. A small tuft of chest hair is visible underneath his tight-fitting shirt.", "It's Dad -- in time-lapse." %} +![A time-lapse animation of the various tweaks applied to Dadson's design. His eyes are slightly softened, and the contours of his muscles become more defined in his shirt. The eyebrows and mustache are rounded to look a bit more cartoon-like. A small tuft of chest hair is visible underneath his tight-fitting shirt.](https://cdn.wonderfulfrog.com/images/DadsonFullEvolution.gif "It's Dad -- in time-lapse.") I felt like my shading improve substantially as I went on. I feel way more confident when it comes to getting a good shade gradient going. I also played with talking and blinking sprites in between revisions. -{% image "https://cdn.wonderfulfrog.com/images/Dadson-talk-blink.gif", "An animated version of Dadson's sprite. He can be seen opening and closing his mouth representing speech, and he occasionally blinks.", "It's Dad -- talking and blinking." %} +![An animated version of Dadson's sprite. He can be seen opening and closing his mouth representing speech, and he occasionally blinks.](https://cdn.wonderfulfrog.com/images/Dadson-talk-blink.gif "It's Dad -- talking and blinking.") -{% image "https://cdn.wonderfulfrog.com/images/DadsonTalkRage4.gif", "Another animated version of Dadson's sprite. Again he is talking, but his facial expression is different. He is clearly angry. His eyes are narrowed and his mouth is open wide - apparently as he is yelling.", "It's Dad -- talking and blinking. He's also quite pissed." %} +![Another animated version of Dadson's sprite. Again he is talking, but his facial expression is different. He is clearly angry. His eyes are narrowed and his mouth is open wide - apparently as he is yelling.](https://cdn.wonderfulfrog.com/images/DadsonTalkRage4.gif "It's Dad -- talking and blinking. He's also quite pissed.") ### Francis At some point when I was revising Dadson I decided to take a stab at Francis. I wasn't happy with the shading or green colours. I started with a new colour palette for him. I came up with this: -{% image "https://cdn.wonderfulfrog.com/images/FrancisNew.png", "A revised version of Francis' head sprite. The colours have been updated - the brown hair looks warmer and shinier (to highlight a combination of hair gel and grease), and his green skin has a tinge of yellow now. His irises are purple.", "Still not giving weekends off." %} +![A revised version of Francis' head sprite. The colours have been updated - the brown hair looks warmer and shinier (to highlight a combination of hair gel and grease), and his green skin has a tinge of yellow now. His irises are purple.](https://cdn.wonderfulfrog.com/images/FrancisNew.png "Still not giving weekends off.") The shading isn't quite right. I needed to highlight his gaunt features. I thought it would be funny if he had more sassy body language, so I went with an arms folded pose. This was hard to get right and I spent a fair bit of time searching for various references. -{% image "https://cdn.wonderfulfrog.com/images/FrancisBodySassy.png", "A sprite of just Francis' body. His arms are crossed and he is slightly leaning to his left. It gives off an air of disinterest.", "Sassafrass bod." %} +![A sprite of just Francis' body. His arms are crossed and he is slightly leaning to his left. It gives off an air of disinterest.](https://cdn.wonderfulfrog.com/images/FrancisBodySassy.png "Sassafrass bod.") Once I plugged them together I got into it and finally landed on the right shading. -{% image "https://cdn.wonderfulfrog.com/images/FrancisNew3.png", "A fully assembled version of Francis' new sprite featuring his new head and body together. The shading on his face has been changed to highlight his gaunt cheeks.", "You want time off? You're lucky to even have this job." %} +![A fully assembled version of Francis' new sprite featuring his new head and body together. The shading on his face has been changed to highlight his gaunt cheeks.](https://cdn.wonderfulfrog.com/images/FrancisNew3.png "You want time off? You're lucky to even have this job.") I had a lot of fun with his facial expressions. I even did talking/blinking animations which I think came out excellent. -{% image "https://cdn.wonderfulfrog.com/images/FrancisFaces.png", "Francis with a few facial expressions - snide/confident, bored and looking to his right, and sheer terror. The terror face has exaggerated eyes with shrunken pupils.", "The many faces of Francis." %} +![Francis with a few facial expressions - snide/confident, bored and looking to his right, and sheer terror. The terror face has exaggerated eyes with shrunken pupils.](https://cdn.wonderfulfrog.com/images/FrancisFaces.png "The many faces of Francis.") -{% image "https://cdn.wonderfulfrog.com/images/FrancisTalk.gif", "An animation of Francis talking. His mouth is fairly closed and small, which lends to a sycophant or lackey vibe.", "The way he talks is even sniveling." %} +![An animation of Francis talking. His mouth is fairly closed and small, which lends to a sycophant or lackey vibe.](https://cdn.wonderfulfrog.com/images/FrancisTalk.gif "The way he talks is even sniveling.") ### Chief I had an idea of where I wanted to go here. I was looking for a [pre-world domination Jeff Bezos](https://media.npr.org/assets/img/2020/07/27/bezos2_wide-d887a33c25f471b95d41e058ef764ac95d72a56b-s1600-c85.webp), something that suggests a kinda disarming, but looks pretty affable kinda guy. -{% image "https://cdn.wonderfulfrog.com/images/ChiefNewFace.png", "A revised face for 'Chief', the boss. The blue shade is deeper and more saturated compared to the old sprite. He has horns on both sides of his face, which curl backwards at an angle. He lacks eyebrows but his eyebrow muscles are large and round. His face is pudgy with large jowls.", "A new face won't fool me. This guy wants to take over the world." %} +![A revised face for 'Chief', the boss. The blue shade is deeper and more saturated compared to the old sprite. He has horns on both sides of his face, which curl backwards at an angle. He lacks eyebrows but his eyebrow muscles are large and round. His face is pudgy with large jowls.](https://cdn.wonderfulfrog.com/images/ChiefNewFace.png "A new face won't fool me. This guy wants to take over the world.") The shading on the sides of his chin look kinda like tiger stripes, which might've been fun to explore. I later claned up the shading which removed the tiger stripe look. Then I came up with fun facial expressions. I thought it would be interesting to not have Chief react in fear with an extreme grip, but more of a curious interest, something that suggests a “I may have underestimated this guy…” feeling. -{% image "https://cdn.wonderfulfrog.com/images/ChiefNewFaces2.png", "Different facial expressions for Chief. A neutral/small smile, an evil/confident smile, a bored/disappointed look, and a look of genuine surprise. The latter would be used when the player overwhelmed Chief's grip, as if they never expected the player to be so strong-willed and determined.", "The many moods of Chief. This is morning mist." %} +![Different facial expressions for Chief. A neutral/small smile, an evil/confident smile, a bored/disappointed look, and a look of genuine surprise. The latter would be used when the player overwhelmed Chief's grip, as if they never expected the player to be so strong-willed and determined.](https://cdn.wonderfulfrog.com/images/ChiefNewFaces2.png "The many moods of Chief. This is morning mist.") Can't forget his new body (which I think sells the whole package). -{% image "https://cdn.wonderfulfrog.com/images/ChiefNewFull.png", "A full body sprite for the Chief wearing a dark grey business suit with a red tie. The grey has a coolness to it, which matches the cool of his blue colour. The suit is obviously ill-fitted with stretching and creases - to suggest someone who has grown fat from his increasing power. His build is fat and stocky.", "That ain't no Dad bod." %} +![A full body sprite for the Chief wearing a dark grey business suit with a red tie. The grey has a coolness to it, which matches the cool of his blue colour. The suit is obviously ill-fitted with stretching and creases - to suggest someone who has grown fat from his increasing power. His build is fat and stocky.](https://cdn.wonderfulfrog.com/images/ChiefNewFull.png "That ain't no Dad bod.") ### Mom @@ -175,7 +175,7 @@ Better yet, how the hell do I make pixel art hair? I took on the challenge, and started with the face. -{% image "https://cdn.wonderfulfrog.com/images/MomFaceEvolution.gif", "An animation showing the different revisions of the new 'Mom' sprite. Her eyes go from green to red and back to green. Her hair colour becomes a saturated blue (fun fact: the same blue as Chief). The detail in her hair increases to where individual strands and groups of hair are visible. Her skin colour becomes redder and warmer, and less pale. Her lipstick transforms from a nude brown to a reddish-pink.", "From punk to party girl. Wait. That's not Mom!" %} +![An animation showing the different revisions of the new 'Mom' sprite. Her eyes go from green to red and back to green. Her hair colour becomes a saturated blue (fun fact: the same blue as Chief). The detail in her hair increases to where individual strands and groups of hair are visible. Her skin colour becomes redder and warmer, and less pale. Her lipstick transforms from a nude brown to a reddish-pink.](https://cdn.wonderfulfrog.com/images/MomFaceEvolution.gif "From punk to party girl. Wait. That's not Mom!") I wanted — for lack of a better word — a more “motherly” face, which eventually meant age her up. It was important to me to keep her fun spirit, but stay within “Mom territory”. I struggled to get the skin colour palette right for a long time. At one point I gave up and made her skin yellow, which was super fun (even though it looked like she had permanent jaundice). That did allow me to see where I was going wrong with my colours though, and I eventually landed on the right look. @@ -183,16 +183,19 @@ I scrapped the spiked hair because I couldn't get it to look right, and I though Mom's body sprite challenged me. I had to learn how to shade better to capture the look I wanted (I'll say it — I had no idea how to draw breasts). I initially started with a shoulder-less dress for flair and fun, but I think it looked a little _too fun_, so I brought it back with a nice coral cardigan. -{% image "https://cdn.wonderfulfrog.com/images/MomFullEvolution.gif", "An animation showing the evolution of Mom's body sprite and clothing. It starts with a red, shoulder-less dress and becomes a grey shirt and an orange cardigan. The cardigan itself goes through several revisions with small details like the trim shading changing. Shading details on her neck and upper chest are changed slightly. The final cardigan is a bright orange with a checkered/woven hem.", "Now, that's the Mom I know." %} +![An animation showing the evolution of Mom's body sprite and clothing. It starts with a red, shoulder-less dress and becomes a grey shirt and an orange cardigan. The cardigan itself goes through several revisions with small details like the trim shading changing. Shading details on her neck and upper chest are changed slightly. The final cardigan is a bright orange with a checkered/woven hem.](https://cdn.wonderfulfrog.com/images/MomFullEvolution.gif "Now, that's the Mom I know.") I'm proud of how this one came out. It challenged me in many different aspects but came out almost exactly how I wanted it to. I feel like I improved my skills a lot with this one. Finally, here are some before and after versions of the character sprites. -{% image "https://cdn.wonderfulfrog.com/images/DadsonBeforeAfter.gif", "An animation showing the changes between the old and final designs of Dadson.", "Dadson, before and after." %} -{% image "https://cdn.wonderfulfrog.com/images/ChiefBeforeAfter.gif", "An animation showing the changes between the old and final designs of Chief.", "Chief, before and after." %} -{% image "https://cdn.wonderfulfrog.com/images/FrancisBeforeAfter.gif", "An animation showing the changes between the old and final designs of Francis.", "Francis, before and after." %} -{% image "https://cdn.wonderfulfrog.com/images/MomBeforeAfter.gif", "An animation showing the changes between the old and final designs of Mom.", "Mom, before and after." %} +![An animation showing the changes between the old and final designs of Dadson.](https://cdn.wonderfulfrog.com/images/DadsonBeforeAfter.gif "Dadson, before and after.") + +![An animation showing the changes between the old and final designs of Chief.](https://cdn.wonderfulfrog.com/images/ChiefBeforeAfter.gif "Chief, before and after.") + +![An animation showing the changes between the old and final designs of Francis.](https://cdn.wonderfulfrog.com/images/FrancisBeforeAfter.gif "Francis, before and after.") + +![An animation showing the changes between the old and final designs of Mom.](https://cdn.wonderfulfrog.com/images/MomBeforeAfter.gif "Mom, before and after.") ### The rest diff --git a/src/posts/2021-08-22-weaknotes-2.md b/src/posts/2021-08-22-weaknotes-2.md index a6ccf47..f0e62cf 100644 --- a/src/posts/2021-08-22-weaknotes-2.md +++ b/src/posts/2021-08-22-weaknotes-2.md @@ -4,7 +4,7 @@ excerpt: Bit of a weird week. tags: ["weaknotes"] --- -{% image "https://cdn.wonderfulfrog.com/images/noblewarrior_d2rbeta.png", "Like Link in Zelda, I have NobleWarrior the ever-living Paladin. Never the same character, but I always make a new one every so often.", "For me, this is an image I can hear" %} +![Like Link in Zelda, I have NobleWarrior the ever-living Paladin. Never the same character, but I always make a new one every so often.](https://cdn.wonderfulfrog.com/images/noblewarrior_d2rbeta.png "For me, this is an image I can hear") - [More stories from victims at Blizzard]. I'm saddened and disappointed to hear that Morhaime was largely an accessory and protected the harassers. I had him pegged as one of the last few good executives. I guess they don't exist after all. diff --git a/src/posts/2021-08-30-weaknotes-3.md b/src/posts/2021-08-30-weaknotes-3.md index da6bf2a..3bd8973 100644 --- a/src/posts/2021-08-30-weaknotes-3.md +++ b/src/posts/2021-08-30-weaknotes-3.md @@ -4,7 +4,7 @@ excerpt: The One Where Apple Sucks A Lot. tags: ["weaknotes"] --- -{% image "https://cdn.wonderfulfrog.com/images/podophobia.png", "", "Nobody likes centipedes, and anybody who says otherwise is a liar!" %} +![Nobody likes centipedes, and anybody who says otherwise is a liar!](https://cdn.wonderfulfrog.com/images/podophobia.png "Nobody likes centipedes, and anybody who says otherwise is a liar!") I'm noticing that these weekly posts are turning into a link dump rather than a weekly look at what's going on in my life. I'm not sure if that's what I want to do going forward, and I'll have a think on it. diff --git a/src/posts/2021-09-13-weaknotes-4.md b/src/posts/2021-09-13-weaknotes-4.md index 75d246e..43471ca 100644 --- a/src/posts/2021-09-13-weaknotes-4.md +++ b/src/posts/2021-09-13-weaknotes-4.md @@ -4,7 +4,7 @@ excerpt: It's the fourth one. tags: ["weaknotes"] --- -{% image "https://cdn.wonderfulfrog.com/images/C0664BF8-4E3C-4285-8F5C-BECD7E0347B1.jpeg", "A sketchbook page of my doodles using my Copic markers. Mostly loose shapes and some human heads using the Loomis Method. There is a block of cheese." %} +![A sketchbook page of my doodles using my Copic markers. Mostly loose shapes and some human heads using the Loomis Method. There is a block of cheese.](https://cdn.wonderfulfrog.com/images/C0664BF8-4E3C-4285-8F5C-BECD7E0347B1.jpeg) Been a while since my last entry. Since then I went to Calgary again. I didn’t end up doing much this time. I was by myself for most of the trip. I underestimated how weird it feels not only being alone but in an unfamiliar place. It hit me harder than I ever expected. On the upside I managed to get work done on my site (which should be evident soon). diff --git a/src/posts/2021-09-19-version-2.md b/src/posts/2021-09-19-version-2.md index f9fdee1..81ed39b 100644 --- a/src/posts/2021-09-19-version-2.md +++ b/src/posts/2021-09-19-version-2.md @@ -4,7 +4,7 @@ excerpt: Electric boogaloo. tags: ["mdx", "development", "netlify", "eslint"] --- -{% image "https://cdn.wonderfulfrog.com/images/v2lines.png", "A screenshot of GitHub showing the number of files changed. 7,664 lines added, 1,668 lines removed.", "That's a lot of lines!" %} +![A screenshot of GitHub showing the number of files changed. 7,664 lines added, 1,668 lines removed.](https://cdn.wonderfulfrog.com/images/v2lines.png "That's a lot of lines!") Welcome to version 2.0! I've been working away at the site for a few weeks now. There have been plenty of changes under the hood, and the front-facing side of things look similar. diff --git a/src/posts/2021-09-27-stray-thoughts-1.md b/src/posts/2021-09-27-stray-thoughts-1.md index c85cdd2..46ae460 100644 --- a/src/posts/2021-09-27-stray-thoughts-1.md +++ b/src/posts/2021-09-27-stray-thoughts-1.md @@ -4,7 +4,7 @@ excerpt: I can't decide what to call my weekly posts anymore. tags: ["stray thoughts"] --- -{% image "https://cdn.wonderfulfrog.com/images/collage.jpeg", "My popular last.fm scrobbles from the last week. From the top left: David Bowie - The Next Day, Turnstile - GLOW ON, Sleigh Bells - Texis, Angels & Airwaves - Lifeforms, Thrice - Horizons/East, Deafheaven - Infinite Granite, Japanese Breakfast - Jubilee, The Slang - Divide, Tyler, The Creator - IGOR", "From last.fm" %} +![My popular last.fm scrobbles from the last week. From the top left: David Bowie - The Next Day, Turnstile - GLOW ON, Sleigh Bells - Texis, Angels & Airwaves - Lifeforms, Thrice - Horizons/East, Deafheaven - Infinite Granite, Japanese Breakfast - Jubilee, The Slang - Divide, Tyler, The Creator - IGOR](https://cdn.wonderfulfrog.com/images/collage.jpeg "From last.fm") Been fiending [Diablo 2: Resurrected][d2r] since it came out. I’ve been playing the original on and off for years. It was the first game I can recall that I saved up my own money for. I went to the (now defunct) game store downtown and bought their copy in the display window outside. Before I knew it I made my Necromancer and slaying the demons of Hell! My Mom surely must've bought it for me since I wasn't even close to 17 yet. diff --git a/src/posts/2021-10-03-stray-thoughts-2.md b/src/posts/2021-10-03-stray-thoughts-2.md index c2081ce..64faa51 100644 --- a/src/posts/2021-10-03-stray-thoughts-2.md +++ b/src/posts/2021-10-03-stray-thoughts-2.md @@ -4,7 +4,7 @@ excerpt: Are collected thoughts really stray? tags: ["stray thoughts"] --- -{% image "https://cdn.wonderfulfrog.com/images/collage2.jpg", "My popular albums from last.fm this week. Turnstile - Step to Rhythm, Turnstile - Nonstop Feeling, Beirut - Gallipoli, Bknapp - PS1 Beats, Japanese Breakfast- Jubilee, Chip Tanaka - Domingo, Deafheaven - Infinite Granite, Angels & Airwaves - Lifeforms, and Bknapp - Crossing Animals" , "From last.fm" %} +![My popular albums from last.fm this week. Turnstile - Step to Rhythm, Turnstile - Nonstop Feeling, Beirut - Gallipoli, Bknapp - PS1 Beats, Japanese Breakfast- Jubilee, Chip Tanaka - Domingo, Deafheaven - Infinite Granite, Angels & Airwaves - Lifeforms, and Bknapp - Crossing Animals](https://cdn.wonderfulfrog.com/images/collage2.jpg "From last.fm") Going strong on Diablo 2. I’ve reached the point where I have Hell Mephisto on farm now and I’m grinding for new gear. It’s a relaxing game to play with its rote paths. I like to get into the groove and kinda zone out. It’s meditative for me, in a sense. diff --git a/src/posts/2021-11-24-checking-in.md b/src/posts/2021-11-24-checking-in.md index 81eb5e2..62c2fc9 100644 --- a/src/posts/2021-11-24-checking-in.md +++ b/src/posts/2021-11-24-checking-in.md @@ -3,6 +3,7 @@ title: Checking In excerpt: Kept you waiting, huh? tags: ["checking in"] --- + I’ve dropped my regular writing habit as of late. I wanted to write a quick post to say I’m doing alright. What’s happened recently? I saw a documentary called [The Rescue](https://www.imdb.com/title/tt9098872/) which was all about rescuing the boy’s soccer team that got stuck in caves that flooded. I expected to enjoy it, but this delivered an unexpected emotional impact. You kinda “know the plot” going into the movie, and yet it’s paced perfectly to unfold the story in a dramatic fashion. The absolute overwhelming joy I felt at the end was incredible. If you have to see one documentary this year (and you should), see this one. diff --git a/src/posts/2022-01-18-2021-ranked-games.md b/src/posts/2022-01-18-2021-ranked-games.md index b117a18..e3fb149 100644 --- a/src/posts/2022-01-18-2021-ranked-games.md +++ b/src/posts/2022-01-18-2021-ranked-games.md @@ -6,7 +6,7 @@ tags: ["rankings"] As we move onto the year ahead that will be 2022 (please don’t be the sequel everyone expects it to be), I always like to look at the past year and see what caught my attention. Let’s look at all the games I played in 2021. Keep in mind these didn’t all come out that year. Meanwhile I’ll rank them all. -{% image "https://cdn.wonderfulfrog.com/images/spiritfarer.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/spiritfarer.png) ## \#16 — Spiritfarer @@ -14,7 +14,7 @@ I dig the universe for this game. I think there’s a lot to like. That being sa --- -{% image "https://cdn.wonderfulfrog.com/images/spvtwce.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/spvtwce.png) ## \#15 — Scott Pilgrim vs. the World @@ -22,7 +22,7 @@ It’s the Scott Pilgrim game that everyone loved. Not much else to say. I’m g --- -{% image "https://cdn.wonderfulfrog.com/images/sm3dwbf.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/sm3dwbf.png) ## \#14 — Super Mario 3D World & Bowser’s Fury @@ -32,7 +32,7 @@ I don’t like how in order to 100% the game, you need to play every single leve --- -{% image "https://cdn.wonderfulfrog.com/images/paradisekiller.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/paradisekiller.png) ## \#13 — Paradise Killer @@ -40,7 +40,7 @@ Even though this game has elements of my favourite games, it didn’t grab me in --- -{% image "https://cdn.wonderfulfrog.com/images/gunpoint.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/gunpoint.png) ## \#12 — Gunpoint @@ -48,7 +48,7 @@ I’m an avid follower of [Tom Francis](https://www.pentadact.com) (the develope --- -{% image "https://cdn.wonderfulfrog.com/images/cfb.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/cfb.png) ## \#11 — Catherine: Full Body @@ -56,7 +56,7 @@ The game piqued my interest but didn’t grab me all that strongly. I do want to --- -{% image "https://cdn.wonderfulfrog.com/images/godofwar.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/godofwar.png) ## \#10 — God of War @@ -64,7 +64,7 @@ One of the reasons I bought a PS5 was so I could play games like this at 60 FPS. --- -{% image "https://cdn.wonderfulfrog.com/images/miitopia.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/miitopia.png) ## \#9 — Miitopia @@ -72,7 +72,7 @@ A surprisingly fun and humorous RPG. I had no idea it was a 3DS port. I spent a --- -{% image "https://cdn.wonderfulfrog.com/images/nmh3.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/nmh3.png) ## \#8 — No More Heroes III @@ -82,7 +82,7 @@ I’m not entirely sure why they brought the open-world stuff back though. I thi --- -{% image "https://cdn.wonderfulfrog.com/images/sv.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/sv.png) ## \#7 — Stardew Valley @@ -92,7 +92,7 @@ I had a lot of fun playing this and lost many hours tending to my farm. Somethin --- -{% image "https://cdn.wonderfulfrog.com/images/hades.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/hades.png) ## \#6 — Hades @@ -102,7 +102,7 @@ I decided to revisit the game after my initial playthrough and get all of the ex --- -{% image "https://cdn.wonderfulfrog.com/images/d2r.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/d2r.png) ## \#5 — Diablo II: Resurrected @@ -116,7 +116,7 @@ In summary: best remaster I’ve seen. But a remaster can’t solve a game’s u --- -{% image "https://cdn.wonderfulfrog.com/images/ypee.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/ypee.png) ## \#4 — Yuppie Psycho @@ -124,7 +124,7 @@ I never expected a 2D, topdown game to frighten me so much. I was unsettled in a --- -{% image "https://cdn.wonderfulfrog.com/images/metroiddread.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/metroiddread.png) ## \#3 — Metroid Dread @@ -136,7 +136,7 @@ I like the game and gameplay. The Dread part of the title fits in well as I do d --- -{% image "https://cdn.wonderfulfrog.com/images/valheim.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/valheim.png) ## \#2 - Valheim @@ -146,7 +146,7 @@ The game was in early-access at the time (and is still as of this writing), but --- -{% image "https://cdn.wonderfulfrog.com/images/tgaac.png", "", "" %} +![](https://cdn.wonderfulfrog.com/images/tgaac.png) ## \#1 - The Great Ace Attorney Chronicles diff --git a/src/posts/2022-01-22-the-fellow-stagg-a-review-of-the-details.md b/src/posts/2022-01-22-the-fellow-stagg-a-review-of-the-details.md index d1588ae..4240da0 100644 --- a/src/posts/2022-01-22-the-fellow-stagg-a-review-of-the-details.md +++ b/src/posts/2022-01-22-the-fellow-stagg-a-review-of-the-details.md @@ -4,7 +4,7 @@ excerpt: Is it the Apple of kettles? tags: ["tea", "reviews"] --- -{% image "https://cdn.wonderfulfrog.com/images/stagg-kettle.jpg", "My drawing of a Fellow Stagg kettle shaded with Copic markers" %} +![My drawing of a Fellow Stagg kettle shaded with Copic markers](https://cdn.wonderfulfrog.com/images/stagg-kettle.jpg) The Fellow Stagg is without a doubt the most money I will ever spend on a kettle. It’s been lauded in coffee circles, but how does it stack up on the small things? Let’s sweat over those details. diff --git a/src/posts/2022-02-01-recently-02-2022.md b/src/posts/2022-02-01-recently-02-2022.md index 426bf4d..f5a05e0 100644 --- a/src/posts/2022-02-01-recently-02-2022.md +++ b/src/posts/2022-02-01-recently-02-2022.md @@ -5,7 +5,7 @@ tags: ["recently"] youtube: true --- -{% image "https://cdn.wonderfulfrog.com/images/lastfm-feb-2022.jpeg", "My popular albums from last.fm this month. Failure - Wild Type Droid, The Weeknd - Dawn FM, Ladyhawke - Time Flies, Magdelena Bay - Mercurial World, Drop Nineteens - National Coma, Ramones - Ramones, Daft Punk - Random Access Memories, David Bowie - Toy, and Drop Nineteens - Delaware", "From last.fm" %} +![My popular albums from last.fm this month. Failure - Wild Type Droid, The Weeknd - Dawn FM, Ladyhawke - Time Flies, Magdelena Bay - Mercurial World, Drop Nineteens - National Coma, Ramones - Ramones, Daft Punk - Random Access Memories, David Bowie - Toy, and Drop Nineteens - Delaware](https://cdn.wonderfulfrog.com/images/lastfm-feb-2022.jpeg "From last.fm") I'd like to get back into the habit of writing these. I'll start one month late for some reason, though. diff --git a/src/posts/2022-10-02-its-been-a-while.md b/src/posts/2022-10-02-its-been-a-while.md index ea19c06..e77df5a 100644 --- a/src/posts/2022-10-02-its-been-a-while.md +++ b/src/posts/2022-10-02-its-been-a-while.md @@ -65,7 +65,7 @@ I went with Funnyplaying’s IPS screen, a dehum/dehiss kit, a new shell/buttons The installation process for a new screen couldn't be easier, even for a newbie like me. There are a few solder points and running wire. Getting the dehum/dehiss kit aligned properly was tricky. I’m not sure I detect any difference using it either. The rest was re-assembly. Behold! -{% image "https://cdn.wonderfulfrog.com/images/q5f6yoq.jpg", "A modified Game Boy Advance with a clear shell, teal buttons/trim, and an IPS screen.", "" %} +![A modified Game Boy Advance with a clear shell, teal buttons/trim, and an IPS screen.](https://cdn.wonderfulfrog.com/images/q5f6yoq.jpg) I decided to try my hand at modding an original Game Boy which was a lot of fun, but 30 year old parts make it challenging. I’ll make a separate post someday about my trials and tribulations. diff --git a/src/posts/2024-01-02-lately.md b/src/posts/2024-01-02-lately.md index 38396e4..32db1d0 100644 --- a/src/posts/2024-01-02-lately.md +++ b/src/posts/2024-01-02-lately.md @@ -36,7 +36,7 @@ Apple produced a short called [The Lost Voice](https://www.youtube.com/watch?v=r ## Playing -{% image "https://cdn.wonderfulfrog.com/images/2023-11-27-21_41_16-greenshot.png", "A screenshot of the game Valheim. In it, the player crouches in the middle of the frame. He is on the castle ramparts, with a courtyard below. Directly ahead of the courtyard is a forge area and warehouse. The castle grows in height in the center. Windmills on the castle rooftop are visible.", "Our mighty castle after many hours of work. I'm quite fond of the ramparts / courtyard area." %} +![A screenshot of the game Valheim. In it, the player crouches in the middle of the frame. He is on the castle ramparts, with a courtyard below. Directly ahead of the courtyard is a forge area and warehouse. The castle grows in height in the center. Windmills on the castle rooftop are visible.](https://cdn.wonderfulfrog.com/images/2023-11-27-21_41_16-greenshot.png "Our mighty castle after many hours of work. I'm quite fond of the ramparts / courtyard area.") Like clockwork, my friends and I started up another Valheim server. It's a lot like that meme where people get into Minecraft for 2 weeks. Once a year at least, we will likely start up a new Valheim server. diff --git a/src/posts/2024-02-13-the-photography-behind-earthrise.md b/src/posts/2024-02-13-the-photography-behind-earthrise.md index e8c86c3..6beca82 100644 --- a/src/posts/2024-02-13-the-photography-behind-earthrise.md +++ b/src/posts/2024-02-13-the-photography-behind-earthrise.md @@ -11,7 +11,7 @@ I've always had a fascination with space and astronomy. I hope that one day I ca The photo in question is [this one here](https://www.nasa.gov/image-article/apollo-8-earthrise/), taken during the Apollo 8 mission by Bill Anders. -{% image "https://cdn.wonderfulfrog.com/images/earthrise.jpg", "A photo of Earth peeking from behind the moon, from the perspective of the Apollo 8 spacecraft. The Earth is vibrant blue, with sweeping white clouds across the surface. The moon contrasts the setting with a craggy, gray surface.", "Earthrise" %} +![A photo of Earth peeking from behind the moon, from the perspective of the Apollo 8 spacecraft. The Earth is vibrant blue, with sweeping white clouds across the surface. The moon contrasts the setting with a craggy, gray surface.](https://cdn.wonderfulfrog.com/images/earthrise.jpg "Earthrise") This video by [Phil Edwards](https://www.youtube.com/@PhilEdwardsInc) goes into the weeds of how a simple photograph was achieved. I figured the story was pretty simple: an astronaut picked up the camera and snapped a pic and that was that - not so! diff --git a/src/posts/2024-03-02-version-3.md b/src/posts/2024-03-02-version-3.md index a3c6efe..2358900 100644 --- a/src/posts/2024-03-02-version-3.md +++ b/src/posts/2024-03-02-version-3.md @@ -14,9 +14,9 @@ First off, if what you're after is the source code - [here it is](https://github I’ve had a Figma file ready for months now that outlined my basic design - all I needed to do was build it. The problem was I could not settle on how I wanted to do it. -{% image "https://cdn.wonderfulfrog.com/images/figma-v3.png", "A screenshot from Figma showing my blog prototype. There are various elements visible like buttons and widgets. A colour scheme using teal.", "Figma screenshot" %} +![A screenshot from Figma showing my blog prototype. There are various elements visible like buttons and widgets. A colour scheme using teal.](https://cdn.wonderfulfrog.com/images/figma-v3.png "Figma screenshot") -{% image "https://cdn.wonderfulfrog.com/images/figma-v3-lightmode.png", "Another screenshot from Figma showing my blog prototype. This is showing the 'light theme' with a serif title font, monospaced body font, and teal accent colours.", "Astute observers will notice the site you're looking at doesn't look a whole lot like the design!" %} +![Another screenshot from Figma showing my blog prototype. This is showing the 'light theme' with a serif title font, monospaced body font, and teal accent colours.](https://cdn.wonderfulfrog.com/images/figma-v3-lightmode.png "Astute observers will notice the site you're looking at doesn't look a whole lot like the design!") Something that always frustrated me was having my content along the code. I sought out a solution for this for months. I tried a whole bunch of headless CMS options like [Sanity](https://www.sanity.io/), [Hygraph](https://hygraph.com/), [Ghost](https://ghost.org/), and even hosting my own [WordPress](https://wordpress.com) (that was an exciting prospect until I discovered their mobile app does not support plugins). @@ -459,11 +459,11 @@ I drew big inspiration from a recent favourite game of mine: [Super Mario Wonder I borrowed heavily from the triangle pattern on this screen, as well as the slightly angled text which I used for my headers: -{% image "https://cdn.wonderfulfrog.com/images/Super-Mario-Bros-Wonder10212023-084101-75299.jpg", "A screenshot of the game Super Mario Bros. Wonder. In this screenshot a level transition screen is visible, displaying a heading saying 'Badge Challenge' and 'Wall-Climb Jump II'. Both headings have a slanted or tilted effect that makes the text look like it is angled upwards. Near the bottom of the screen is a transition from a purple background to a white background, with a zig-zag pattern between the two colours, which looks like a perforated edge.", "Screenshot of game UI from Super Mario Bros. Wonder." %} +![A screenshot of the game Super Mario Bros. Wonder. In this screenshot a level transition screen is visible, displaying a heading saying 'Badge Challenge' and 'Wall-Climb Jump II'. Both headings have a slanted or tilted effect that makes the text look like it is angled upwards. Near the bottom of the screen is a transition from a purple background to a white background, with a zig-zag pattern between the two colours, which looks like a perforated edge.](https://cdn.wonderfulfrog.com/images/Super-Mario-Bros-Wonder10212023-084101-75299.jpg "Screenshot of game UI from Super Mario Bros. Wonder.") And for the buttons I pretty much copied it straight from the game! -{% image "https://cdn.wonderfulfrog.com/images/Super-Mario-Bros-Wonder10212023-084101-96390.jpg", "A screenshot of Super Mario Bros. Wonder showing the style of buttons used in the game. The buttons have a 3D bevel effect, with the button colour changing to yellow when active or highlighted. The buttons have a white outline surrounding them.", "Screenshot of game UI from Super Mario Bros. Wonder." %} +![A screenshot of Super Mario Bros. Wonder showing the style of buttons used in the game. The buttons have a 3D bevel effect, with the button colour changing to yellow when active or highlighted. The buttons have a white outline surrounding them.](https://cdn.wonderfulfrog.com/images/Super-Mario-Bros-Wonder10212023-084101-96390.jpg "Screenshot of game UI from Super Mario Bros. Wonder.") I'm very pleased with how that came out. For reference, here is the CSS I used to achieve the effect: diff --git a/src/posts/2024-06-09-weekly-notes-1.md b/src/posts/2024-06-09-weekly-notes-1.md index 0327c50..68003fa 100644 --- a/src/posts/2024-06-09-weekly-notes-1.md +++ b/src/posts/2024-06-09-weekly-notes-1.md @@ -13,7 +13,7 @@ tags: - disco elysium --- -{% image "https://cdn.wonderfulfrog.com/images/ramonadithered.jpg", "test", "Our cat Ramona but she's been dithered!" %} +![test](https://cdn.wonderfulfrog.com/images/ramonadithered.jpg "Our cat Ramona but she's been dithered!") I don't write enough anymore, and this felt low effort enough that I could at least write _something_. And then the ball started rolling and I wrote even more! @@ -61,7 +61,7 @@ Since playing around with Supabase I'd like to utilize it somehow for a feature ### Disco Elysium -{% image "https://cdn.wonderfulfrog.com/images/6039889e2f27c47416b8eb4434f07dcfb9c1a42575577c53eeaddfab6dd17809.jpg", "A screenshot of the game Disco Elysium with the partner Kim Kitsuragi shooting at another character in the shot. The bullet has just been fired and everybody is mid-surprise and shock.", "Disco Elysium" %} +![A screenshot of the game Disco Elysium with the partner Kim Kitsuragi shooting at another character in the shot. The bullet has just been fired and everybody is mid-surprise and shock.](https://cdn.wonderfulfrog.com/images/6039889e2f27c47416b8eb4434f07dcfb9c1a42575577c53eeaddfab6dd17809.jpg "Disco Elysium") What an incredible game. This is a genre-defining game, for sure. I've finished it and I immediately went in for another run. The first game I structured my character around Empathy, Inland Empire (or in other words, associating thoughts with inanimate objects), and Authority. It was interesting having a sensitive character who is able to read the subtle changes in someone's facial expression or body language. My Inland Empire would come up with ridiculous hunches, and a staggering number turned out to be correct. Sometimes the different skills (your various forms of inner thoughts) would fight with each other, or get things wrong. They are often right, but can't always be trusted. @@ -73,7 +73,7 @@ I want to keep writing about this game but I'll reserve it for a dedicated post. ### Pentiment -{% image "https://cdn.wonderfulfrog.com/images/pentiment.jpeg", "A screenshot of the game Pentiment, which is shown inside a storybook with Latin writing. The protagonist is overlaid a piece of artwork matching the pose of the artwork. He is opposite of another character saying 'Like Dido, we ordinary women are merely tools in the tales of men. We can never be the protagonists of our own stories.'", "Pentiment" %} +![A screenshot of the game Pentiment, which is shown inside a storybook with Latin writing. The protagonist is overlaid a piece of artwork matching the pose of the artwork. He is opposite of another character saying 'Like Dido, we ordinary women are merely tools in the tales of men. We can never be the protagonists of our own stories.'](https://cdn.wonderfulfrog.com/images/pentiment.jpeg "Pentiment") We just started playing Pentiment the other night. It's a painterly game that takes place in 16th century Europe. The typography in this game is stunning. Each character seems to have a different style of writing. Sometimes mistakes are made and the text is erased and written in correctly. It's always beautifully revealed with the flair of someone actually writing. diff --git a/src/posts/2024-06-22-weekly-notes-3.md b/src/posts/2024-06-22-weekly-notes-3.md index f09c52b..b8b32f0 100644 --- a/src/posts/2024-06-22-weekly-notes-3.md +++ b/src/posts/2024-06-22-weekly-notes-3.md @@ -106,4 +106,4 @@ I spent about a week trialing switching over to the [Catppuccin](https://github. If you're looking for resources on nerding out in your terminal, I have two that I've been particularly enjoying: [typecraft](https://www.youtube.com/@typecraft_dev) and [Dreams of Code](https://www.youtube.com/@dreamsofcode)/[Dreams of Autonomy](https://www.youtube.com/@dreamsofautonomy) -{% image "https://cdn.wonderfulfrog.com/images/tmux.png", "A screenshot of a terminal window. On the left is a file tree, and in the center is a code editor. On the right side are two tmux panes split horizontally, with a terminal in the top and a running 11ty server on the bottom.", "A `tmux` session open while editing this site!" %} +![A screenshot of a terminal window. On the left is a file tree, and in the center is a code editor. On the right side are two tmux panes split horizontally, with a terminal in the top and a running 11ty server on the bottom.](https://cdn.wonderfulfrog.com/images/tmux.png "A `tmux` session open while editing this site!") diff --git a/src/posts/2024-06-27-music-today-is-great.md b/src/posts/2024-06-27-music-today-is-great.md index 543da41..153e1b8 100644 --- a/src/posts/2024-06-27-music-today-is-great.md +++ b/src/posts/2024-06-27-music-today-is-great.md @@ -32,7 +32,7 @@ I'm going to suggest using Bandcamp because it's my favourite service, but that [Bandcamp][bandcamp] has wonderful tools for finding music that fits into practically any genre you like. You can be as broad as "alternative", or get into the weeds with something like "industrial shoegaze" (and I hope something like that exists, even though I just made it up). Being able to mix and match like this is so powerful! -{% image "https://cdn.wonderfulfrog.com/images/bandcamp-screenshot.jpg", "Screenshot of bandcamp.com showing a list of artists that match the genres 'shoegaze' and 'industrial'. There is a grid of album art on the left, with a panel on the right showing the currently playing song or album.", "I'm so happy to see that 'industrial shoegaze' is indeed a thing!" %} +![Screenshot of bandcamp.com showing a list of artists that match the genres 'shoegaze' and 'industrial'. There is a grid of album art on the left, with a panel on the right showing the currently playing song or album.](https://cdn.wonderfulfrog.com/images/bandcamp-screenshot.jpg "I'm so happy to see that 'industrial shoegaze' is indeed a thing!") All you need to do is start typing your favourite genre into the search bar and search by "Music tagged with 'your genre'". That's it! You now have a feed of music to try and sample, it's just that easy. New music is being added all the time, so you can keep coming back for more. If you're feeling extra spicy, you can use the "surprise me" sort option and see what you get. diff --git a/src/posts/2024-09-30-weekly-notes-8.md b/src/posts/2024-09-30-weekly-notes-8.md index c1aa5f6..5f86c39 100644 --- a/src/posts/2024-09-30-weekly-notes-8.md +++ b/src/posts/2024-09-30-weekly-notes-8.md @@ -10,7 +10,7 @@ tags: youtube: true --- -{% image "https://cdn.wonderfulfrog.com/images/felbear.png", "Screenshot from the game World of Warcraft - the player character is inside a magical city called Dalaran. The player character is a druid in 'Bear Form', where the bear is a bipedal, gorilla-looking creature. The bear has glowing green runes that look like tattoos, with magical green energy spewing out of the tattoos like a green mist.", "It may have taken me a number of tries, but I'm very proud of unlocking this Bear form!" %} +![Screenshot from the game World of Warcraft - the player character is inside a magical city called Dalaran. The player character is a druid in 'Bear Form', where the bear is a bipedal, gorilla-looking creature. The bear has glowing green runes that look like tattoos, with magical green energy spewing out of the tattoos like a green mist.](https://cdn.wonderfulfrog.com/images/felbear.png "It may have taken me a number of tries, but I'm very proud of unlocking this Bear form!") I know it's been a while since my last post. Life has been busy (but everyone says that). I haven't felt like I've had the energy to write lately. I've spent a lot of time adjusting from my old routines and my new job. Speaking of... @@ -42,7 +42,7 @@ The other part of this is that no matter how hard Dark Visitors tries, there are `robots.txt` is unfortunately based on the honor system. You hope that crawlers are respecting it. It feels like a battle I can't win. -{% image "https://cdn.wonderfulfrog.com/images/cloudflare-meme.jpg", "A meme template - the first panel features a villain saying 'You can't defeat me.' with the text 'AI Crawlers' superimposed on top, the next panel features a superhero saying 'I know, but he can' with a very conspicuous mountain behind him. The last panel features the aforementioned mountain exploding, with the text 'Cloudflare' superimposed on the mountain.", "I am aware of the adage of putting all of one's eggs in one's basket... perhaps 'the enemy of my enemy is my friend' is appropriate here." %} +![A meme template - the first panel features a villain saying 'You can't defeat me.' with the text 'AI Crawlers' superimposed on top, the next panel features a superhero saying 'I know, but he can' with a very conspicuous mountain behind him. The last panel features the aforementioned mountain exploding, with the text 'Cloudflare' superimposed on the mountain.](https://cdn.wonderfulfrog.com/images/cloudflare-meme.jpg "I am aware of the adage of putting all of one's eggs in one's basket... perhaps 'the enemy of my enemy is my friend' is appropriate here.") Cloudflare does what `robots.txt` cannot - it blocks traffic from even getting to your site in the first place. They can't access `robots.txt` - they can't access anything! @@ -80,7 +80,7 @@ I recently got back into _World of Warcraft_ (as I usually do) since there was a The Delves feature is a ton of fun. It's like a traditional 5-man dungeon built for one player. It tends to be a straightforward process of A to B, but each delve has a few different scenarios that change your goal. Each location is diverse and interesting. I particularly enjoy the Fungal Folly delve for its rich wildlife, but The Sinkhole is fun for its entirely underwater aesthetic! -{% image "https://cdn.wonderfulfrog.com/images/tww-vista.png", "Screenshot of the game World of Warcraft - the player character and an NPC called 'Olbarig' are seen on a cliffside looking off to mountains in the distance. The cliff features bright green grass and wildflowers. In the distance, birds can be seen flying around the mountains. The sky features painter-like clouds, that look like smooth, flowing brushstrokes.", "The War Within is full of stunning views, despite some locations being underground!" %} +![Screenshot of the game World of Warcraft - the player character and an NPC called 'Olbarig' are seen on a cliffside looking off to mountains in the distance. The cliff features bright green grass and wildflowers. In the distance, birds can be seen flying around the mountains. The sky features painter-like clouds, that look like smooth, flowing brushstrokes.](https://cdn.wonderfulfrog.com/images/tww-vista.png "The War Within is full of stunning views, despite some locations being underground!") This time around I initially started out as a mage. I hadn't played the class in years (probably not since the original game) and thought it was time to give it a proper try. Arcane is a lot of fun with a simpler rotation. Eventually though my alt-itis[^1] took over and I made a druid. I'd never actually taken a druid past the first few introductory levels so this was almost like a new experience. I particularly enjoy tanking, as its a pivotal role in dungeons (but do not enjoy the reaction from certain players when things go wrong). It's been a bit stressful, but as I mentioned I have a chill group of buds to play with who aren't concerned with 100% perfect play. @@ -88,7 +88,7 @@ Without a doubt I'd say _The War Within_ is the best _World of Warcraft_ has bee ## Reading -{% image "https://cdn.wonderfulfrog.com/images/drizzt-books.png", "A horizontal grid of book covers - the books are titled Homeland, Exile, and Sojourn.", "I know you shouldn't judge a book by its cover, but I love the artwork on these!" %} +![A horizontal grid of book covers - the books are titled Homeland, Exile, and Sojourn.](https://cdn.wonderfulfrog.com/images/drizzt-books.png "I know you shouldn't judge a book by its cover, but I love the artwork on these!") I've been in a bit of a (continuing) reading slump lately. I was craving some pulpy fantasy books - something that I can read easily and enjoy. Somehow I ended up in the series of Drizzt books (which there are now close to 40) by R.A. Salvatore, and started with The Dark Elf Trilogy (_Homeland_, _Exile_, and _Sojourn_). I was enthralled! They are easy to read, and quite engrossing. I'm enjoying my time in the Forgotten Realms. I typically read before bed to help myself fall asleep, but these books have been so interesting and fun that I find myself more awake than when I started reading! @@ -96,7 +96,7 @@ I've already finished _Homeland_ and _Exile_, and have started _Sojourn_. I'm go ## Listening -{% image "https://cdn.wonderfulfrog.com/images/the-rise-and-fall-of-a-midwest-princess.jpg", "Album art from the album 'The Rise and Fall of a Midwest Princess' by Chappell Roan. On the cover is Chappell Roan with bright red hair and a small tiara. Her expression suggests impatience or uninterested in having her photo taken, with a slight glower. Her turquoise dress has a sash draped over it that reads 'Chappell'.", "" %} +![Album art from the album 'The Rise and Fall of a Midwest Princess' by Chappell Roan. On the cover is Chappell Roan with bright red hair and a small tiara. Her expression suggests impatience or uninterested in having her photo taken, with a slight glower. Her turquoise dress has a sash draped over it that reads 'Chappell'.](https://cdn.wonderfulfrog.com/images/the-rise-and-fall-of-a-midwest-princess.jpg """") I don't know about you, but _Chappell Roan_ has music has been stuck in my head. I've had ["HOT TO GO!"](https://www.youtube.com/watch?v=xaPNR-_Cfn0&pp=ygUXY2hhcHBlbGwgcm9hbiBob3QgdG8gZ28%3D) earworm'd for days. The whole album is chock full of bangers and catchy tunes. I can't stop humming and singing them! I also recently learned her name is pronounced like a (church) chapel and not like Chappelle in Dave. -- 2.47.2 From 9a4afabbd7d6c01cc3783fa26cd8c2cc2aa03a24 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Thu, 10 Oct 2024 23:21:33 -0700 Subject: [PATCH 07/56] feat: update colophon --- src/pages/colophon.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/pages/colophon.md b/src/pages/colophon.md index 248fac1..8222e5a 100644 --- a/src/pages/colophon.md +++ b/src/pages/colophon.md @@ -14,16 +14,18 @@ The site is powered by [11ty][11ty], using a mixture of [Nunjucks][nunjucks] and A large part of this site was based on the principles established in the [eleventy-excellent][eleventyexcellent] starter. Markdown is processed using [markdown-it][markdownit]. I am using a few plugins: + - [markdown-it-abbr][markdownitabbr] - Adds support for abbreviations. - [markdown-it-anchor][markdownitanchor] - Automatically adds anchor ids to titles (h1, h2, etc). - [markdown-it-footnote][markdownitfootnote] - Adds support for footnotes. - [markdown-it-prism][markdownitprism] - Adds syntax highlighting to code blocks. +- [markdown-it-image-figures][markdownitimagefigures] - Converts Markdown images into `
`s with optional ``s A minimal amount of [PostCSS][postcss] is used as a developer convenience, othwise pure CSS is used. Any utility classes I've created myself. Responsive images are generated by [eleventy-img][eleventyimg]. -Media is hosted on [bunny.net][bunnynet]. +Media is hosted on [Backblaze B2][backblaze]. RSS is generated by [eleventy-plugin-rss][eleventypluginrss]. @@ -75,7 +77,7 @@ I've done my best to show where I found any code I did not write myself. [markdownitprism]: https://github.com/jGleitz/markdown-it-prism [postcss]: https://postcss.org [eleventyimg]: https://www.11ty.dev/docs/plugins/image -[bunnynet]: https://bunny.net +[backblaze]: https://www.backblaze.com/cloud-storage [eleventypluginrss]: https://www.11ty.dev/docs/plugins/rss [dayjs]: https://day.js.org/en [aneklatin]: https://fonts.google.com/specimen/Anek+Latin @@ -89,3 +91,4 @@ I've done my best to show where I found any code I did not write myself. [prismjs]: https://prismjs.com [tokyonight]: https://github.com/folke/tokyonight.nvim [ibmplexmono]: https://fonts.google.com/specimen/IBM+Plex+Mono +[markdownitimagefigures]: https://github.com/Antonio-Laguna/markdown-it-image-figures -- 2.47.2 From 1d172811ef5f001fe3c90e6b601bff861cab0d7e Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:26:00 -0700 Subject: [PATCH 08/56] fix: pill style; global style Fixes an issue with inside
not being centered --- src/css/blocks/pill.css | 53 +++++++++++++++++++++++++------- src/css/global/global-styles.css | 9 ++---- src/pages/styleguide.html | 15 +++++++++ 3 files changed, 60 insertions(+), 17 deletions(-) diff --git a/src/css/blocks/pill.css b/src/css/blocks/pill.css index 2de8ada..3ae09ed 100644 --- a/src/css/blocks/pill.css +++ b/src/css/blocks/pill.css @@ -1,13 +1,32 @@ .pill { - background-color: var(--color-surface); - border-radius: var(--spacing-1); - display: flex; + display: inline-flex; + align-items: center; padding-inline: var(--spacing-1); padding-block: var(--spacing-0\.5); gap: var(--spacing-0\.5); - transition: - transform var(--transition-duration), - background-color 75ms; + position: relative; + + transition: transform 0.1s ease; + + &::before, + &::after { + position: absolute; + inset: 0; + content: ""; + z-index: -1; + border-radius: var(--spacing-1); + + transition: opacity 0.3s ease; + } + + &::before { + background-color: var(--color-surface); + } + + &::after { + background-color: var(--color-text); + opacity: 0; + } } .pill[data-state="small"] { @@ -28,13 +47,22 @@ border-radius: var(--spacing-0\.5); } -.pill:not([data-state]):hover { - background-color: var(--color-text); +button.pill:hover, +a[href].pill:hover { color: var(--color-primary); transform: translateY(-2px); + + &::before { + opacity: 0; + } + + &::after { + opacity: 1; + } } -.pill:not([data-state]):active { +button.pill:active, +a[href].pill:active { transform: translateY(2px); } @@ -46,6 +74,9 @@ a.pill { color: var(--color-fadeText); } -.pill:not([data-state]):hover .pill-count { - color: var(--color-border); +button.pill:hover, +a[href].pill:hover { + .pill-count { + color: var(--color-border); + } } diff --git a/src/css/global/global-styles.css b/src/css/global/global-styles.css index 61df5ef..de422ba 100644 --- a/src/css/global/global-styles.css +++ b/src/css/global/global-styles.css @@ -140,6 +140,9 @@ pre { } figure { + display: flex; + flex-direction: column; + align-items: center; margin-inline: 0; } @@ -151,12 +154,6 @@ figure figcaption { margin-block-start: var(--flow-space, 1em); } -picture { - display: flex; - align-items: center; - justify-content: center; -} - picture source, picture img { border-radius: var(--spacing-0\.5); diff --git a/src/pages/styleguide.html b/src/pages/styleguide.html index 4c12932..ada30de 100644 --- a/src/pages/styleguide.html +++ b/src/pages/styleguide.html @@ -34,6 +34,21 @@ description: A demo of the site's theme.

+ +
+ A pill + + A pill link with a count 3 + +

+ A pill with a count 3 +

+

A small pill

+

99+

+
+
A link A visited link
-- 2.47.2 From 614bf0e814dc1e9c42e372550c4cf97bd9b527aa Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Sun, 10 Nov 2024 20:54:27 -0800 Subject: [PATCH 09/56] feat: remove linting packages --- .eslintrc.js | 15 --------- .prettierignore | 1 - package-lock.json | 85 ----------------------------------------------- package.json | 7 +--- 4 files changed, 1 insertion(+), 107 deletions(-) delete mode 100644 .eslintrc.js delete mode 100644 .prettierignore diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 02e6421..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { - env: { - node: true, - es6: true, - }, - extends: ["eslint:recommended", "plugin:prettier/recommended"], - parserOptions: { - ecmaVersion: "latest", - sourceType: "module", - }, - ignorePatterns: ["!.eleventy.js"], - rules: { - "prettier/prettier": "error", - }, -}; diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 1521c8b..0000000 --- a/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -dist diff --git a/package-lock.json b/package-lock.json index 1d0d0b2..cc80427 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,6 @@ "@11ty/eleventy-fetch": "^4.0.0", "@11ty/eleventy-img": "^5.0.0", "@11ty/eleventy-plugin-rss": "^1.2.0", - "@netlify/functions": "^2.6.0", "autoprefixer": "^10.4.17", "cheerio": "^1.0.0-rc.12", "cssnano": "^6.0.3", @@ -33,7 +32,6 @@ "markdown-it-footnote": "^4.0.0", "markdown-it-image-figures": "^2.1.1", "markdown-it-prism": "^2.3.0", - "netlify-plugin-cache": "^1.0.3", "pluralize": "^8.0.0", "postcss": "^8.4.33", "postcss-import": "^16.0.0", @@ -982,40 +980,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@netlify/functions": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@netlify/functions/-/functions-2.6.0.tgz", - "integrity": "sha512-vU20tij0fb4nRGACqb+5SQvKd50JYyTyEhQetCMHdakcJFzjLDivvRR16u1G2Oy4A7xNAtGJF1uz8reeOtTVcQ==", - "dev": true, - "dependencies": { - "@netlify/serverless-functions-api": "1.14.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@netlify/node-cookies": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@netlify/node-cookies/-/node-cookies-0.1.0.tgz", - "integrity": "sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==", - "dev": true, - "engines": { - "node": "^14.16.0 || >=16.0.0" - } - }, - "node_modules/@netlify/serverless-functions-api": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-1.14.0.tgz", - "integrity": "sha512-HUNETLNvNiC2J+SB/YuRwJA9+agPrc0azSoWVk8H85GC+YE114hcS5JW+dstpKwVerp2xILE3vNWN7IMXP5Q5Q==", - "dev": true, - "dependencies": { - "@netlify/node-cookies": "^0.1.0", - "urlpattern-polyfill": "8.0.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -3717,12 +3681,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/netlify-plugin-cache": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/netlify-plugin-cache/-/netlify-plugin-cache-1.0.3.tgz", - "integrity": "sha512-CTOwNWrTOP59T6y6unxQNnp1WX702v2R/faR5peSH94ebrYfyY4zT5IsRcIiHKq57jXeyCrhy0GLuTN8ktzuQg==", - "dev": true - }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -5527,12 +5485,6 @@ "punycode": "^2.1.0" } }, - "node_modules/urlpattern-polyfill": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz", - "integrity": "sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==", - "dev": true - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6299,31 +6251,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "@netlify/functions": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@netlify/functions/-/functions-2.6.0.tgz", - "integrity": "sha512-vU20tij0fb4nRGACqb+5SQvKd50JYyTyEhQetCMHdakcJFzjLDivvRR16u1G2Oy4A7xNAtGJF1uz8reeOtTVcQ==", - "dev": true, - "requires": { - "@netlify/serverless-functions-api": "1.14.0" - } - }, - "@netlify/node-cookies": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@netlify/node-cookies/-/node-cookies-0.1.0.tgz", - "integrity": "sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==", - "dev": true - }, - "@netlify/serverless-functions-api": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-1.14.0.tgz", - "integrity": "sha512-HUNETLNvNiC2J+SB/YuRwJA9+agPrc0azSoWVk8H85GC+YE114hcS5JW+dstpKwVerp2xILE3vNWN7IMXP5Q5Q==", - "dev": true, - "requires": { - "@netlify/node-cookies": "^0.1.0", - "urlpattern-polyfill": "8.0.2" - } - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -8276,12 +8203,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "netlify-plugin-cache": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/netlify-plugin-cache/-/netlify-plugin-cache-1.0.3.tgz", - "integrity": "sha512-CTOwNWrTOP59T6y6unxQNnp1WX702v2R/faR5peSH94ebrYfyY4zT5IsRcIiHKq57jXeyCrhy0GLuTN8ktzuQg==", - "dev": true - }, "no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -9522,12 +9443,6 @@ "punycode": "^2.1.0" } }, - "urlpattern-polyfill": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz", - "integrity": "sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==", - "dev": true - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index fe09026..34d4f5d 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,6 @@ "scripts": { "debug": "DEBUG=Eleventy* eleventy --serve --watch", "start": "eleventy --serve --watch --quiet", - "lint": "eslint src/ config/", "build": "eleventy" }, "devDependencies": { @@ -23,9 +22,6 @@ "dayjs": "^1.11.10", "dotenv": "^16.4.5", "eleventy-plugin-no-robots": "^1.0.1", - "eslint": "8.56.0", - "eslint-config-prettier": "9.1.0", - "eslint-plugin-prettier": "5.1.3", "html-minifier-terser": "^7.2.0", "markdown-it": "^14.0.0", "markdown-it-abbr": "^2.0.0", @@ -36,8 +32,7 @@ "pluralize": "^8.0.0", "postcss": "^8.4.33", "postcss-import": "^16.0.0", - "postcss-import-ext-glob": "^2.1.1", - "prettier": "3.2.4" + "postcss-import-ext-glob": "^2.1.1" }, "dependencies": { "@11ty/eleventy-upgrade-help": "^3.0.1" -- 2.47.2 From 6ae45909e2a3e709bc76b23d6ac7f1400e430726 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Sun, 10 Nov 2024 20:57:29 -0800 Subject: [PATCH 10/56] feat: update package.json scripts --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 34d4f5d..d9393f0 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,9 @@ "license": "MIT", "type": "module", "scripts": { - "debug": "DEBUG=Eleventy* eleventy --serve --watch", - "start": "eleventy --serve --watch --quiet", - "build": "eleventy" + "debug": "DEBUG=Eleventy* npx @11ty/eleventy", + "start": "npx @11ty/eleventy --serve --quiet", + "build": "npx @11ty/eleventy" }, "devDependencies": { "@11ty/eleventy": "^3.0.0", -- 2.47.2 From 4b58c53060d6897543e1bfab4aa147cb48c82014 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Sun, 10 Nov 2024 20:59:10 -0800 Subject: [PATCH 11/56] feat: remove upgrade helper plugin --- eleventy.config.js | 4 - package-lock.json | 1473 +++----------------------------------------- package.json | 3 - 3 files changed, 89 insertions(+), 1391 deletions(-) diff --git a/eleventy.config.js b/eleventy.config.js index ae8c31a..b7c885e 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -1,4 +1,3 @@ -import UpgradeHelper from "@11ty/eleventy-upgrade-help"; import pluginRss from "@11ty/eleventy-plugin-rss"; import pluginNoRobots from "eleventy-plugin-no-robots"; import { eleventyImageTransformPlugin } from "@11ty/eleventy-img"; @@ -82,9 +81,6 @@ export default function (eleventyConfig) { // --------------------- Shortcodes ----------------------- eleventyConfig.addShortcode("youtube", liteYoutube); - // TODO: Delete me before launch - eleventyConfig.addPlugin(UpgradeHelper); - return { // Optional (default is set): If your site deploys to a subdirectory, change `pathPrefix`, for example with with GitHub pages pathPrefix: "/", diff --git a/package-lock.json b/package-lock.json index cc80427..0d7caef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,9 +8,6 @@ "name": "wonderfulfrog.com", "version": "1.0.0", "license": "MIT", - "dependencies": { - "@11ty/eleventy-upgrade-help": "^3.0.1" - }, "devDependencies": { "@11ty/eleventy": "^3.0.0", "@11ty/eleventy-fetch": "^4.0.0", @@ -22,9 +19,6 @@ "dayjs": "^1.11.10", "dotenv": "^16.4.5", "eleventy-plugin-no-robots": "^1.0.1", - "eslint": "8.56.0", - "eslint-config-prettier": "9.1.0", - "eslint-plugin-prettier": "5.1.3", "html-minifier-terser": "^7.2.0", "markdown-it": "^14.0.0", "markdown-it-abbr": "^2.0.0", @@ -35,8 +29,7 @@ "pluralize": "^8.0.0", "postcss": "^8.4.33", "postcss-import": "^16.0.0", - "postcss-import-ext-glob": "^2.1.1", - "prettier": "3.2.4" + "postcss-import-ext-glob": "^2.1.1" } }, "node_modules/@11ty/dependency-tree": { @@ -248,25 +241,6 @@ "url": "https://opencollective.com/11ty" } }, - "node_modules/@11ty/eleventy-upgrade-help": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-upgrade-help/-/eleventy-upgrade-help-3.0.1.tgz", - "integrity": "sha512-69CttBBfplByurn5vW7eRiLPywZZZHCH6B68Ib3t3348PaHHG9RysVPRqPQzMrGIEEbXg+0+ICm+R8sAkgjfPQ==", - "dependencies": { - "fast-glob": "^3.3.2", - "kleur": "^4.1.5", - "minimist": "^1.2.8", - "posthtml-match-helper": "^2.0.2", - "semver": "^7.6.3" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/11ty" - } - }, "node_modules/@11ty/eleventy-utils": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.3.tgz", @@ -409,15 +383,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@emnapi/runtime": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.0.tgz", @@ -428,95 +393,6 @@ "tslib": "^2.4.0" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true - }, "node_modules/@img/sharp-darwin-arm64": { "version": "0.33.5", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", @@ -984,6 +860,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -996,6 +873,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "engines": { "node": ">= 8" } @@ -1004,6 +882,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1022,18 +901,6 @@ "node": ">=14" } }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, "node_modules/@sindresorhus/slugify": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz", @@ -1123,12 +990,6 @@ "dev": true, "peer": true }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, "node_modules/a-sync-waterfall": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", @@ -1147,15 +1008,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, "node_modules/acorn-walk": { "version": "8.3.4", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", @@ -1168,22 +1020,6 @@ "node": ">=0.4.0" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1389,6 +1225,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "dependencies": { "fill-range": "^7.1.1" }, @@ -1465,15 +1302,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/camel-case": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", @@ -1497,9 +1325,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001680", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz", + "integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==", "dev": true, "funding": [ { @@ -1514,23 +1342,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } + ], + "license": "CC-BY-4.0" }, "node_modules/chardet": { "version": "2.0.0", @@ -2032,12 +1845,6 @@ } } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -2121,22 +1928,11 @@ "node": ">= 0.8.0" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -2150,6 +1946,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -2158,6 +1955,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, "funding": [ { "type": "github", @@ -2169,6 +1967,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, "dependencies": { "domelementtype": "^2.2.0" }, @@ -2183,6 +1982,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -2331,155 +2131,6 @@ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", - "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.6" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": "*", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "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", @@ -2489,23 +2140,6 @@ "acorn": "^8.11.2" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -2519,48 +2153,6 @@ "node": ">=4" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -2597,22 +2189,11 @@ "node": ">=0.10.0" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2624,18 +2205,6 @@ "node": ">=8.6.0" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, "node_modules/fast-sort": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/fast-sort/-/fast-sort-3.4.0.tgz", @@ -2646,20 +2215,9 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "reusify": "^1.0.4" } }, "node_modules/filesize": { @@ -2675,6 +2233,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2715,22 +2274,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/flat-cache": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", @@ -2861,6 +2404,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -2868,21 +2412,6 @@ "node": ">= 6" } }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -2901,12 +2430,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", @@ -2944,15 +2467,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", @@ -3026,6 +2540,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -3044,6 +2559,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, "engines": { "node": ">=0.12" }, @@ -3076,15 +2592,6 @@ "node": ">= 0.8" } }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/image-size": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", @@ -3100,31 +2607,6 @@ "node": ">=16.x" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3218,6 +2700,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -3235,6 +2718,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -3245,23 +2729,16 @@ "node_modules/is-json": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", - "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==" + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", + "dev": true }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.12.0" } }, "node_modules/isexe": { @@ -3312,18 +2789,6 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, "node_modules/junk": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz", @@ -3355,23 +2820,11 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, "engines": { "node": ">=6" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/lilconfig": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", @@ -3416,33 +2869,12 @@ "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==", "dev": true }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -3567,6 +2999,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "engines": { "node": ">= 8" } @@ -3575,6 +3008,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -3611,6 +3045,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3675,12 +3110,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -3836,23 +3265,6 @@ "wrappy": "1" } }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -3862,36 +3274,6 @@ "node": ">=4" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-queue": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", @@ -3936,18 +3318,6 @@ "tslib": "^2.0.3" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/parse-srcset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", @@ -4013,15 +3383,6 @@ "tslib": "^2.0.3" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -4072,6 +3433,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -4595,6 +3957,7 @@ "version": "0.16.6", "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", + "dev": true, "dependencies": { "posthtml-parser": "^0.11.0", "posthtml-render": "^3.0.0" @@ -4607,6 +3970,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-2.0.2.tgz", "integrity": "sha512-ehnazjlSwcGa3P2LlFYmTmcnaembTSt9dLWIRRDVHDPidf6InWAr9leKeeLvUXgnU32g6BrFS64Je+c2Ld+l9g==", + "dev": true, "engines": { "node": ">=18" }, @@ -4618,6 +3982,7 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "dev": true, "dependencies": { "htmlparser2": "^7.1.1" }, @@ -4629,6 +3994,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "dev": true, "dependencies": { "is-json": "^2.0.1" }, @@ -4651,42 +4017,6 @@ "node": ">= 4" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", - "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/prismjs": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", @@ -4720,15 +4050,6 @@ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/punycode.js": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", @@ -4751,6 +4072,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -4822,19 +4144,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -4859,6 +4173,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -4894,6 +4209,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, "bin": { "semver": "bin/semver.js" }, @@ -5243,18 +4559,6 @@ "node": ">=0.10.0" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/stylehacks": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.2.tgz", @@ -5271,18 +4575,6 @@ "postcss": "^8.4.31" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -5329,22 +4621,6 @@ "node": ">= 10" } }, - "node_modules/synckit": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", - "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", - "dev": true, - "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, "node_modules/terser": { "version": "5.28.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz", @@ -5369,16 +4645,11 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -5407,30 +4678,6 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", @@ -5476,15 +4723,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -5642,18 +4880,6 @@ "optional": true } } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } }, "dependencies": { @@ -5826,18 +5052,6 @@ "posthtml-urls": "1.0.0" } }, - "@11ty/eleventy-upgrade-help": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-upgrade-help/-/eleventy-upgrade-help-3.0.1.tgz", - "integrity": "sha512-69CttBBfplByurn5vW7eRiLPywZZZHCH6B68Ib3t3348PaHHG9RysVPRqPQzMrGIEEbXg+0+ICm+R8sAkgjfPQ==", - "requires": { - "fast-glob": "^3.3.2", - "kleur": "^4.1.5", - "minimist": "^1.2.8", - "posthtml-match-helper": "^2.0.2", - "semver": "^7.6.3" - } - }, "@11ty/eleventy-utils": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.3.tgz", @@ -5934,12 +5148,6 @@ } } }, - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true - }, "@emnapi/runtime": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.0.tgz", @@ -5950,67 +5158,6 @@ "tslib": "^2.4.0" } }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", - "dev": true - }, - "@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true - }, "@img/sharp-darwin-arm64": { "version": "0.33.5", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", @@ -6255,6 +5402,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -6263,12 +5411,14 @@ "@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true }, "@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -6281,12 +5431,6 @@ "dev": true, "optional": true }, - "@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "dev": true - }, "@sindresorhus/slugify": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz", @@ -6353,12 +5497,6 @@ "dev": true, "peer": true }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, "a-sync-waterfall": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", @@ -6371,13 +5509,6 @@ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, "acorn-walk": { "version": "8.3.4", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", @@ -6387,18 +5518,6 @@ "acorn": "^8.11.0" } }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -6542,6 +5661,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "requires": { "fill-range": "^7.1.1" } @@ -6586,12 +5706,6 @@ "set-function-length": "^1.2.1" } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, "camel-case": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", @@ -6615,21 +5729,11 @@ } }, "caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001680", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz", + "integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==", "dev": true }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "chardet": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.0.0.tgz", @@ -7003,12 +6107,6 @@ "ms": "^2.1.3" } }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, "define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -7061,19 +6159,11 @@ "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", "dev": true }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, "dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -7083,19 +6173,22 @@ "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true } } }, "domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true }, "domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, "requires": { "domelementtype": "^2.2.0" } @@ -7104,6 +6197,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, "requires": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -7219,102 +6313,6 @@ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - } - } - }, - "eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "requires": {} - }, - "eslint-plugin-prettier": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", - "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.6" - } - }, - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, "esm-import-transformer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/esm-import-transformer/-/esm-import-transformer-3.0.2.tgz", @@ -7324,53 +6322,12 @@ "acorn": "^8.11.2" } }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -7398,22 +6355,11 @@ "is-extendable": "^0.1.0" } }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, "fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -7422,18 +6368,6 @@ "micromatch": "^4.0.4" } }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, "fast-sort": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/fast-sort/-/fast-sort-3.4.0.tgz", @@ -7444,17 +6378,9 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { - "flat-cache": "^3.0.4" + "reusify": "^1.0.4" } }, "filesize": { @@ -7467,6 +6393,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -7503,16 +6430,6 @@ } } }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, "flat-cache": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", @@ -7602,17 +6519,9 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "requires": { - "type-fest": "^0.20.2" + "is-glob": "^4.0.1" } }, "gopd": { @@ -7630,12 +6539,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, "gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", @@ -7669,12 +6572,6 @@ } } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", @@ -7724,6 +6621,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "dev": true, "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.2", @@ -7734,7 +6632,8 @@ "entities": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==" + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true } } }, @@ -7757,12 +6656,6 @@ "toidentifier": "1.0.1" } }, - "ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true - }, "image-size": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", @@ -7772,22 +6665,6 @@ "queue": "6.0.2" } }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -7859,7 +6736,8 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -7871,6 +6749,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -7878,17 +6757,13 @@ "is-json": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", - "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==" + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", + "dev": true }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "isexe": { @@ -7928,18 +6803,6 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, "junk": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz", @@ -7964,17 +6827,8 @@ "kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==" - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true }, "lilconfig": { "version": "3.0.0", @@ -8006,27 +6860,12 @@ "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==", "dev": true }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -8130,12 +6969,14 @@ "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true }, "micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, "requires": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -8159,7 +7000,8 @@ "minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true }, "minipass": { "version": "7.1.2", @@ -8197,12 +7039,6 @@ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, "no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -8314,44 +7150,12 @@ "wrappy": "1" } }, - "optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - } - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, "p-queue": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", @@ -8387,15 +7191,6 @@ "tslib": "^2.0.3" } }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, "parse-srcset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", @@ -8448,12 +7243,6 @@ "tslib": "^2.0.3" } }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -8491,7 +7280,8 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true }, "pify": { "version": "2.3.0", @@ -8817,6 +7607,7 @@ "version": "0.16.6", "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", + "dev": true, "requires": { "posthtml-parser": "^0.11.0", "posthtml-render": "^3.0.0" @@ -8826,12 +7617,14 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-2.0.2.tgz", "integrity": "sha512-ehnazjlSwcGa3P2LlFYmTmcnaembTSt9dLWIRRDVHDPidf6InWAr9leKeeLvUXgnU32g6BrFS64Je+c2Ld+l9g==", + "dev": true, "requires": {} }, "posthtml-parser": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "dev": true, "requires": { "htmlparser2": "^7.1.1" } @@ -8840,6 +7633,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "dev": true, "requires": { "is-json": "^2.0.1" } @@ -8856,27 +7650,6 @@ "promise-each": "^2.2.0" } }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", - "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "requires": { - "fast-diff": "^1.1.2" - } - }, "prismjs": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", @@ -8907,12 +7680,6 @@ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true - }, "punycode.js": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", @@ -8931,7 +7698,8 @@ "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true }, "range-parser": { "version": "1.2.1", @@ -8974,16 +7742,11 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true }, "rimraf": { "version": "3.0.2", @@ -8998,6 +7761,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "requires": { "queue-microtask": "^1.2.2" } @@ -9015,7 +7779,8 @@ "semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true }, "semver-compare": { "version": "1.0.0", @@ -9281,12 +8046,6 @@ "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", "dev": true }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, "stylehacks": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.2.tgz", @@ -9297,15 +8056,6 @@ "postcss-selector-parser": "^6.0.15" } }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -9335,16 +8085,6 @@ } } }, - "synckit": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", - "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", - "dev": true, - "requires": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" - } - }, "terser": { "version": "5.28.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz", @@ -9365,16 +8105,11 @@ } } }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { "is-number": "^7.0.0" } @@ -9397,21 +8132,6 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, "uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", @@ -9434,15 +8154,6 @@ "picocolors": "^1.0.0" } }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -9550,12 +8261,6 @@ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "requires": {} - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true } } } diff --git a/package.json b/package.json index d9393f0..d69adef 100644 --- a/package.json +++ b/package.json @@ -33,8 +33,5 @@ "postcss": "^8.4.33", "postcss-import": "^16.0.0", "postcss-import-ext-glob": "^2.1.1" - }, - "dependencies": { - "@11ty/eleventy-upgrade-help": "^3.0.1" } } -- 2.47.2 From 72b80f7e8fd6fb293f473bdc91caa8607d9dc034 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Mon, 11 Nov 2024 17:05:09 -0800 Subject: [PATCH 12/56] feat: add new button style, update nav --- src/_data/navigation.js | 12 ++- src/_includes/layouts/post.html | 6 +- src/_includes/partials/footer.html | 8 +- src/_includes/partials/menu.html | 5 +- src/_includes/svgs/book.svg | 3 + src/_includes/svgs/circle-info.svg | 3 + src/_includes/svgs/frame.svg | 3 + src/_includes/svgs/game-controller.svg | 3 + src/_includes/svgs/list.svg | 10 +++ src/_includes/svgs/user.svg | 4 + src/css/blocks/button.css | 107 +++++++++++++++++++------ src/css/blocks/categories.css | 16 ---- src/css/blocks/menu.css | 10 --- src/css/global/variables.css | 2 + 14 files changed, 132 insertions(+), 60 deletions(-) create mode 100644 src/_includes/svgs/book.svg create mode 100644 src/_includes/svgs/circle-info.svg create mode 100644 src/_includes/svgs/frame.svg create mode 100644 src/_includes/svgs/game-controller.svg create mode 100644 src/_includes/svgs/list.svg create mode 100644 src/_includes/svgs/user.svg delete mode 100644 src/css/blocks/categories.css delete mode 100644 src/css/blocks/menu.css diff --git a/src/_data/navigation.js b/src/_data/navigation.js index f82cee9..8cc8f19 100644 --- a/src/_data/navigation.js +++ b/src/_data/navigation.js @@ -3,14 +3,22 @@ export default { { text: "About", url: "/about", + icon: "circle-info", }, { text: "Posts", url: "/posts", + icon: "list", }, { - text: "Catalogue", - url: "/catalogue", + text: "Games", + url: "/catalogue/games", + icon: "game-controller", + }, + { + text: "Books", + url: "/catalogue/books", + icon: "book", }, ], bottom: [ diff --git a/src/_includes/layouts/post.html b/src/_includes/layouts/post.html index 47a1407..27f249b 100644 --- a/src/_includes/layouts/post.html +++ b/src/_includes/layouts/post.html @@ -10,8 +10,10 @@ layout: "layouts/base"

{{ excerpt }}

diff --git a/src/_includes/partials/footer.html b/src/_includes/partials/footer.html index b78a648..adf2401 100644 --- a/src/_includes/partials/footer.html +++ b/src/_includes/partials/footer.html @@ -14,17 +14,19 @@

-
+
- A pill - - A pill link with a count 3 - -

- A pill with a count 3 -

-

A small pill

-

99+

+

A pill

+

99+


A link diff --git a/src/pages/tags.html b/src/pages/tags.html index 9be2f9e..a858f24 100644 --- a/src/pages/tags.html +++ b/src/pages/tags.html @@ -9,7 +9,7 @@ description: Browse posts by all tags.
    {% for tag in tags %}
  1. - {{ tag.tag }} {{ tag.count }} + {{ tag.tag }} {{ tag.count }}
  2. {% endfor %}
-- 2.47.2 From 6084396e0b4c3d6c6827770b7f29f3dca8349c50 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Tue, 12 Nov 2024 16:18:12 -0800 Subject: [PATCH 14/56] feat: fix tag list in catalogue-item.html --- src/_includes/layouts/catalogue-item.html | 9 +++++++-- src/_includes/macros/posts.njk | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/_includes/layouts/catalogue-item.html b/src/_includes/layouts/catalogue-item.html index 4328fe8..ee51519 100644 --- a/src/_includes/layouts/catalogue-item.html +++ b/src/_includes/layouts/catalogue-item.html @@ -24,9 +24,14 @@ imageCaption: ""
{% endif %} {% if filteredTags | length > 0 %} - {% endif %} diff --git a/src/_includes/macros/posts.njk b/src/_includes/macros/posts.njk index 434c18b..a7189a0 100644 --- a/src/_includes/macros/posts.njk +++ b/src/_includes/macros/posts.njk @@ -1,7 +1,7 @@ -{% macro one(post, format = "MM/DD") %} +{% macro one(post, fmt = "MM/DD") %}
{{ post.data.title }} - +

{{ post.data.excerpt }}

{% endmacro %} -- 2.47.2 From fab17802822a73b3b0b676b315623ed29956071c Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Thu, 14 Nov 2024 22:32:19 -0800 Subject: [PATCH 15/56] feat: move games into their own section --- config/collections/index.js | 20 +++++ eleventy.config.js | 12 ++- src/_data/navigation.js | 2 +- src/_includes/layouts/game.html | 40 +++++++++ src/_includes/macros/media-grid.njk | 14 +++ src/_includes/macros/utils.njk | 15 ++-- src/catalogue/games/games.11tydata.js | 8 -- src/css/blocks/media-display.css | 17 ++++ src/css/blocks/media-grid.css | 85 +++++++++++++++++++ src/css/global/global-styles.css | 4 - src/css/utilities/flex.css | 4 + src/css/utilities/wrapper.css | 1 + .../games/2012-02-26-yoshis-island.md | 0 .../games/2015-03-01-majoras-mask-3d.md | 0 .../2015-04-18-mario-and-luigi-dream-team.md | 0 ...-21-donkey-kong-country-tropical-freeze.md | 0 ...4-26-professor-layton-vs-phoenix-wright.md | 0 .../games/2015-05-15-the-wonderful-101.md | 0 .../games/2015-12-02-fallout-4.md | 0 .../games/2016-03-16-persona-3-portable.md | 0 .../games/2016-08-22-shovel-knight.md | 0 .../games/2016-08-24-tomb-raider.md | 0 .../2016-12-31-assassins-creed-black-flag.md | 0 .../games/2017-01-02-doom-2016.md | 0 .../games/2017-01-29-hyper-light-drifter.md | 0 .../games/2017-02-26-vanquish.md | 0 .../games/2017-12-20-persona-5.md | 0 .../games/2018-04-10-axiom-verge.md | 0 ...2022-03-20-animal-crossing-new-horizons.md | 9 ++ .../games/2024-01-07-her-story.md | 0 ...024-01-19-middle-earth-shadow-of-mordor.md | 0 .../games/2024-01-27-citizen-sleeper.md | 2 + src/games/games.11tydata.js | 5 ++ src/pages/games/index.html | 21 +++++ src/pages/games/year.html | 19 +++++ 35 files changed, 257 insertions(+), 21 deletions(-) create mode 100644 src/_includes/layouts/game.html create mode 100644 src/_includes/macros/media-grid.njk delete mode 100644 src/catalogue/games/games.11tydata.js create mode 100644 src/css/blocks/media-display.css create mode 100644 src/css/blocks/media-grid.css rename src/{catalogue => }/games/2012-02-26-yoshis-island.md (100%) rename src/{catalogue => }/games/2015-03-01-majoras-mask-3d.md (100%) rename src/{catalogue => }/games/2015-04-18-mario-and-luigi-dream-team.md (100%) rename src/{catalogue => }/games/2015-04-21-donkey-kong-country-tropical-freeze.md (100%) rename src/{catalogue => }/games/2015-04-26-professor-layton-vs-phoenix-wright.md (100%) rename src/{catalogue => }/games/2015-05-15-the-wonderful-101.md (100%) rename src/{catalogue => }/games/2015-12-02-fallout-4.md (100%) rename src/{catalogue => }/games/2016-03-16-persona-3-portable.md (100%) rename src/{catalogue => }/games/2016-08-22-shovel-knight.md (100%) rename src/{catalogue => }/games/2016-08-24-tomb-raider.md (100%) rename src/{catalogue => }/games/2016-12-31-assassins-creed-black-flag.md (100%) rename src/{catalogue => }/games/2017-01-02-doom-2016.md (100%) rename src/{catalogue => }/games/2017-01-29-hyper-light-drifter.md (100%) rename src/{catalogue => }/games/2017-02-26-vanquish.md (100%) rename src/{catalogue => }/games/2017-12-20-persona-5.md (100%) rename src/{catalogue => }/games/2018-04-10-axiom-verge.md (100%) create mode 100644 src/games/2022-03-20-animal-crossing-new-horizons.md rename src/{catalogue => }/games/2024-01-07-her-story.md (100%) rename src/{catalogue => }/games/2024-01-19-middle-earth-shadow-of-mordor.md (100%) rename src/{catalogue => }/games/2024-01-27-citizen-sleeper.md (94%) create mode 100644 src/games/games.11tydata.js create mode 100644 src/pages/games/index.html create mode 100644 src/pages/games/year.html diff --git a/config/collections/index.js b/config/collections/index.js index 892159b..2f0e115 100644 --- a/config/collections/index.js +++ b/config/collections/index.js @@ -1,3 +1,5 @@ +import dayjs from "dayjs"; + export const postsByTag = (collection) => { const posts = collection.getFilteredByTag("post"); @@ -13,6 +15,24 @@ export const postsByTag = (collection) => { return postsByTag; }; +export const gamesByYear = (collection) => { + const allGames = collection.getFilteredByTag("game"); + const gamesByYear = {}; + + allGames.forEach((game) => { + const date = new dayjs(game.date); + const year = date.year(); + + if (!gamesByYear[year]) { + gamesByYear[year] = { value: year, data: [game] }; + } else { + gamesByYear[year].data.push(game); + } + }); + + return gamesByYear; +}; + export const catalogueByType = (collection) => { const allItems = collection.getFilteredByTag("catalogue"); diff --git a/eleventy.config.js b/eleventy.config.js index b7c885e..11ff310 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -1,8 +1,13 @@ +import util from "util"; import pluginRss from "@11ty/eleventy-plugin-rss"; import pluginNoRobots from "eleventy-plugin-no-robots"; import { eleventyImageTransformPlugin } from "@11ty/eleventy-img"; -import { catalogueByType, postsByTag } from "./config/collections/index.js"; +import { + catalogueByType, + postsByTag, + gamesByYear, +} from "./config/collections/index.js"; import { dir } from "./config/constants.js"; import { @@ -32,6 +37,7 @@ export default function (eleventyConfig) { eleventyConfig.addPlugin(pluginNoRobots); // --------------------- Custom Collections ----------------------- + eleventyConfig.addCollection("gamesByYear", gamesByYear); eleventyConfig.addCollection("catalogueByType", catalogueByType); eleventyConfig.addCollection("postsByTag", postsByTag); @@ -81,6 +87,10 @@ export default function (eleventyConfig) { // --------------------- Shortcodes ----------------------- eleventyConfig.addShortcode("youtube", liteYoutube); + eleventyConfig.addFilter("console", function (value) { + return util.inspect(value); + }); + return { // Optional (default is set): If your site deploys to a subdirectory, change `pathPrefix`, for example with with GitHub pages pathPrefix: "/", diff --git a/src/_data/navigation.js b/src/_data/navigation.js index 8cc8f19..f8a5b29 100644 --- a/src/_data/navigation.js +++ b/src/_data/navigation.js @@ -12,7 +12,7 @@ export default { }, { text: "Games", - url: "/catalogue/games", + url: "/games", icon: "game-controller", }, { diff --git a/src/_includes/layouts/game.html b/src/_includes/layouts/game.html new file mode 100644 index 0000000..ab2106f --- /dev/null +++ b/src/_includes/layouts/game.html @@ -0,0 +1,40 @@ +--- +layout: "layouts/base" +--- + +{% from "macros/date.njk" import format %} +{% from "macros/utils.njk" import stars %} +
+
+ +
+
+
+

{{ title }}

+ {{ platform }} +
+ {% if subtitle %}

{{ subtitle }}

{% endif %} + {{ format(page.date) }} + {% if rating %}{{ stars(rating) }}{% endif %} +
    + {% if year %} +
  • + Released{{ year }} +
  • + {% endif %} + {% if playtime %} +
  • + Playtime{{ playtime }} +
  • + {% endif %} + {% if pullquote %} +
  • + Pullquote{{ pullquote }} +
  • + {% endif %} +
+
+
+
+ {{ content | safe }} +
diff --git a/src/_includes/macros/media-grid.njk b/src/_includes/macros/media-grid.njk new file mode 100644 index 0000000..ffc5816 --- /dev/null +++ b/src/_includes/macros/media-grid.njk @@ -0,0 +1,14 @@ +{% macro grid(data, shape = "vertical") %} + +{% endmacro %} diff --git a/src/_includes/macros/utils.njk b/src/_includes/macros/utils.njk index 4a40aee..8caa05a 100644 --- a/src/_includes/macros/utils.njk +++ b/src/_includes/macros/utils.njk @@ -1,12 +1,13 @@ {% macro stars(number) %} {% set filledStars = number %} {% set emptyStars = 5 - number %} - -
- {{ content | safe }} -
+{% if content %} +
+
+ {{ content | safe }} +
+{% endif %} {{ format(page.date) }} diff --git a/src/index.html b/src/index.html index 3484d59..9b82cd9 100644 --- a/src/index.html +++ b/src/index.html @@ -8,7 +8,7 @@ permalink: /

Hello! My name is Devin.

I'm a creative developer who specializes in web and mobile development.

- Welcome to my little slice of the internet. I like to write and catalogue things. There's a lot to explore, and I hope you have fun! + Welcome to my little slice of the internet. I like to write and catalogue things. Games, books, movies, and and more! There's a lot to explore, and I hope you have fun!

If you're interested, I have an about page all about me! -- 2.47.2 From aa1a19b46d84f0c6a25f0991062d059868fc9569 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Tue, 10 Dec 2024 21:19:33 -0800 Subject: [PATCH 20/56] feat: add watching section --- eleventy.config.js | 5 ++ src/_data/navigation.js | 5 ++ src/_includes/layouts/movie.html | 62 ++++++++++++++++++++++ src/_includes/svgs/tv-retro.svg | 3 ++ src/css/blocks/card.css | 9 ++++ src/movies/2022-01-25-coraline.md | 21 ++++++++ src/movies/2024-09-28-megalopolis.md | 16 ++++++ src/movies/2024-09-30-sugarcane.md | 12 +++++ src/movies/2024-10-30-your-monster.md | 14 +++++ src/movies/2024-10-31-dracula-a-d-1972.md | 11 ++++ src/movies/2024-10-31-dracula.md | 11 ++++ src/movies/2024-11-08-woman-of-the-hour.md | 15 ++++++ src/movies/2024-11-09-tetris.md | 15 ++++++ src/movies/2024-11-20-flow.md | 15 ++++++ src/movies/movies.11tydata.js | 5 ++ src/pages/books/index.html | 2 +- src/pages/games/index.html | 4 +- src/pages/games/year.html | 2 +- src/pages/watching/favourites.html | 14 +++++ src/pages/watching/index.html | 28 ++++++++++ src/pages/watching/recent.html | 14 +++++ src/pages/watching/year.html | 21 ++++++++ 22 files changed, 300 insertions(+), 4 deletions(-) create mode 100644 src/_includes/layouts/movie.html create mode 100644 src/_includes/svgs/tv-retro.svg create mode 100644 src/css/blocks/card.css create mode 100644 src/movies/2022-01-25-coraline.md create mode 100644 src/movies/2024-09-28-megalopolis.md create mode 100644 src/movies/2024-09-30-sugarcane.md create mode 100644 src/movies/2024-10-30-your-monster.md create mode 100644 src/movies/2024-10-31-dracula-a-d-1972.md create mode 100644 src/movies/2024-10-31-dracula.md create mode 100644 src/movies/2024-11-08-woman-of-the-hour.md create mode 100644 src/movies/2024-11-09-tetris.md create mode 100644 src/movies/2024-11-20-flow.md create mode 100644 src/movies/movies.11tydata.js create mode 100644 src/pages/watching/favourites.html create mode 100644 src/pages/watching/index.html create mode 100644 src/pages/watching/recent.html create mode 100644 src/pages/watching/year.html diff --git a/eleventy.config.js b/eleventy.config.js index 18062d5..7b17486 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -44,6 +44,11 @@ export default function (eleventyConfig) { const byYear = transformByDate(data); return byYear; }); + eleventyConfig.addCollection("moviesByYear", (collection) => { + const data = collection.getFilteredByTag("movie"); + const byYear = transformByDate(data); + return byYear; + }); eleventyConfig.addCollection("catalogueByType", catalogueByType); eleventyConfig.addCollection("postsByTag", postsByTag); diff --git a/src/_data/navigation.js b/src/_data/navigation.js index d112dbf..0282a55 100644 --- a/src/_data/navigation.js +++ b/src/_data/navigation.js @@ -20,6 +20,11 @@ export default { url: "/books", icon: "book", }, + { + text: "Watching", + url: "/watching", + icon: "tv-retro", + }, ], bottom: [ { diff --git a/src/_includes/layouts/movie.html b/src/_includes/layouts/movie.html new file mode 100644 index 0000000..37f752d --- /dev/null +++ b/src/_includes/layouts/movie.html @@ -0,0 +1,62 @@ +--- +layout: "layouts/base" +--- + +{% from "macros/date.njk" import format %} +{% from "macros/utils.njk" import stars %} + + {% include "svgs/arrow-left.svg" %} +Back to watching +

+
+ +
+
+
+

{{ title }}

+
+ {% if subtitle %}

{{ subtitle }}

{% endif %} + {% if director %} +

+ Directed by{{ director }} +

+ {% endif %} + {% if watched %}

{{ format(watched) }}

{% endif %} + {% if rating %}{{ stars(rating) }}{% endif %} +
    + {% if year %} +
  • + Released{{ year }} +
  • + {% endif %} + {% if runtime %} +
  • + Runtime{{ runtime }} mins +
  • + {% endif %} + {% if genres %} +
  • + Genres{{ genres | join(", ") }} +
  • + {% endif %} +
+
+
+{% if watch_history.length > 1 %} +

+ {% include "svgs/circle-info.svg" %} + I've seen this movie {{ watch_history.length }} {{ "time" | pluralize(watch_history) }}! +

+{% endif %} +{% if favourite %} +

+ {% include "svgs/star.svg" %} + This is one of my favourite movies! +

+{% endif %} +{% if content %} +
+
+ {{ content | safe }} +
+{% endif %} diff --git a/src/_includes/svgs/tv-retro.svg b/src/_includes/svgs/tv-retro.svg new file mode 100644 index 0000000..11a4c4e --- /dev/null +++ b/src/_includes/svgs/tv-retro.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/css/blocks/card.css b/src/css/blocks/card.css new file mode 100644 index 0000000..072c592 --- /dev/null +++ b/src/css/blocks/card.css @@ -0,0 +1,9 @@ +.card { + border: 1px solid var(--color-shadow); + border-radius: var(--spacing-0\.5); + padding: var(--spacing-1); +} + +.card--secondary { + border-color: var(--color-secondary); +} diff --git a/src/movies/2022-01-25-coraline.md b/src/movies/2022-01-25-coraline.md new file mode 100644 index 0000000..90002aa --- /dev/null +++ b/src/movies/2022-01-25-coraline.md @@ -0,0 +1,21 @@ +--- +title: "Coraline" +year: 2009 +watched: 2022-01-25 +watch_history: + - 2022-01-25 + - 2024-08-17 +image: https://cdn.wonderfulfrog.com/images/movies/coraline-poster.jpg +letterboxd: + - https://letterboxd.com/wonderfulfrog/film/coraline/ + - https://letterboxd.com/wonderfulfrog/film/coraline/1/ +director: Henry Selick +runtime: 100 +favourite: true +rating: 5 +genres: + - animation + - horror + - fantasy + - family +--- diff --git a/src/movies/2024-09-28-megalopolis.md b/src/movies/2024-09-28-megalopolis.md new file mode 100644 index 0000000..e5c3b77 --- /dev/null +++ b/src/movies/2024-09-28-megalopolis.md @@ -0,0 +1,16 @@ +--- +title: "Megalopolis" +year: 2024 +watched: 2024-09-30 +image: https://cdn.wonderfulfrog.com/images/movies/megalopolis-poster.jpg +letterboxd: https://letterboxd.com/wonderfulfrog/film/megalopolis-2024/ +director: Francis Ford Coppola +runtime: 138 +genres: + - drama + - science fiction +--- + +I wholeheartedly did not enjoy this movie, and yet afterward we could not stop talking about it. There were so many moments to remember - and some even got overwritten in my mind and had to be teased out later. + +I don't know if I'm experiencing a trainwreck or another cultural touchstone... diff --git a/src/movies/2024-09-30-sugarcane.md b/src/movies/2024-09-30-sugarcane.md new file mode 100644 index 0000000..6a7442e --- /dev/null +++ b/src/movies/2024-09-30-sugarcane.md @@ -0,0 +1,12 @@ +--- +title: "Sugarcane" +year: 2024 +watched: 2024-09-30 +image: https://cdn.wonderfulfrog.com/images/movies/sugarcane-poster.jpg +letterboxd: https://letterboxd.com/wonderfulfrog/film/sugarcane/ +director: Emily Kassie, Julian Brave NoiseCat +runtime: 107 +favourite: true +genres: + - documentary +--- diff --git a/src/movies/2024-10-30-your-monster.md b/src/movies/2024-10-30-your-monster.md new file mode 100644 index 0000000..a3885ad --- /dev/null +++ b/src/movies/2024-10-30-your-monster.md @@ -0,0 +1,14 @@ +--- +title: "Your Monster" +year: 2024 +watched: 2024-10-30 +image: https://cdn.wonderfulfrog.com/images/movies/your-monster-poster.jpg +letterboxd: https://letterboxd.com/wonderfulfrog/film/your-monster-2024/ +director: Caroline Lindy +runtime: 104 +genres: + - music + - comedy + - horror + - romance +--- diff --git a/src/movies/2024-10-31-dracula-a-d-1972.md b/src/movies/2024-10-31-dracula-a-d-1972.md new file mode 100644 index 0000000..1dc78d1 --- /dev/null +++ b/src/movies/2024-10-31-dracula-a-d-1972.md @@ -0,0 +1,11 @@ +--- +title: "Dracula A.D. 1972" +year: 1972 +watched: 2023-10-31 +image: https://cdn.wonderfulfrog.com/images/movies/dracula-a-d-1972-poster.jpg +letterboxd: https://letterboxd.com/wonderfulfrog/film/dracula-ad-1972/ +director: Alan Gibson +runtime: 96 +genres: + - horror +--- diff --git a/src/movies/2024-10-31-dracula.md b/src/movies/2024-10-31-dracula.md new file mode 100644 index 0000000..f1eb83a --- /dev/null +++ b/src/movies/2024-10-31-dracula.md @@ -0,0 +1,11 @@ +--- +title: "Dracula" +year: 1931 +watched: 2023-10-31 +image: https://cdn.wonderfulfrog.com/images/movies/dracula-poster.jpg +letterboxd: https://letterboxd.com/wonderfulfrog/film/dracula/ +director: Tod Browning +runtime: 74 +genres: + - horror +--- diff --git a/src/movies/2024-11-08-woman-of-the-hour.md b/src/movies/2024-11-08-woman-of-the-hour.md new file mode 100644 index 0000000..458ed2d --- /dev/null +++ b/src/movies/2024-11-08-woman-of-the-hour.md @@ -0,0 +1,15 @@ +--- +title: "Woman of the Hour" +year: 2023 +watched: 2024-11-09 +image: https://cdn.wonderfulfrog.com/images/movies/woman-of-the-hour-poster.jpg +letterboxd: https://letterboxd.com/wonderfulfrog/film/woman-of-the-hour/ +director: Anna Kendrick +runtime: 94 +genres: + - drama + - thriller + - crime +--- + +Do we really need to keep making movies that center around serial killers? Objectively a good movie, but I'm getting tired of media being created to effectively celebrate the accomplishments of murderers. diff --git a/src/movies/2024-11-09-tetris.md b/src/movies/2024-11-09-tetris.md new file mode 100644 index 0000000..c64a3b9 --- /dev/null +++ b/src/movies/2024-11-09-tetris.md @@ -0,0 +1,15 @@ +--- +title: "Tetris" +year: 2023 +watched: 2024-11-09 +image: https://cdn.wonderfulfrog.com/images/movies/tetris-poster.jpg +letterboxd: https://letterboxd.com/wonderfulfrog/film/tetris/ +director: Jon S. Baird +runtime: 118 +genres: + - thriller + - history + - drama +--- + +It is now my head canon that securing the publishing rights to Tetris involved a desperate car chase through the streets of Moscow. There’s no going back now. diff --git a/src/movies/2024-11-20-flow.md b/src/movies/2024-11-20-flow.md new file mode 100644 index 0000000..8f6b57a --- /dev/null +++ b/src/movies/2024-11-20-flow.md @@ -0,0 +1,15 @@ +--- +title: "Flow" +year: 2024 +watched: 2024-11-20 +image: https://cdn.wonderfulfrog.com/images/movies/flow-poster.jpg +letterboxd: https://letterboxd.com/wonderfulfrog/film/flow-2024/ +director: Gints Zilbalodis +runtime: 85 +favourite: true +rating: 4 +genres: + - adventure + - fantasy + - animation +--- diff --git a/src/movies/movies.11tydata.js b/src/movies/movies.11tydata.js new file mode 100644 index 0000000..4e88ebe --- /dev/null +++ b/src/movies/movies.11tydata.js @@ -0,0 +1,5 @@ +export default { + layout: "layouts/movie", + permalink: "movies/{{ page.fileSlug }}/index.html", + tags: "movie", +}; diff --git a/src/pages/books/index.html b/src/pages/books/index.html index e809224..7744ec9 100644 --- a/src/pages/books/index.html +++ b/src/pages/books/index.html @@ -8,7 +8,7 @@ permalink: "books/index.html"

Books

A collection of games I've read over the years.

-

Browse by year

+

Browse by release year

    {% for year in yearsData %}
  • diff --git a/src/pages/games/index.html b/src/pages/games/index.html index a5a2486..394472a 100644 --- a/src/pages/games/index.html +++ b/src/pages/games/index.html @@ -7,8 +7,8 @@ permalink: "games/index.html" {% set yearsData = collections.gamesByYear | values | reverse %}

    Games

    -

    A collection of games I've played over the years.

    -

    Browse by year

    +

    A collection of games I played over the years.

    +

    Browse by release year

      {% for year in yearsData %}
    • diff --git a/src/pages/games/year.html b/src/pages/games/year.html index 95c4ea0..0e3770d 100644 --- a/src/pages/games/year.html +++ b/src/pages/games/year.html @@ -15,7 +15,7 @@ permalink: "games/year/{{ year.value }}/index.html" Back to games

      Games in {{ year.value }}

      - A collection of games I've played in {{ year.value }}. + A collection of games I played in {{ year.value }}.

      {{ grid(gamesData) }}
    diff --git a/src/pages/watching/favourites.html b/src/pages/watching/favourites.html new file mode 100644 index 0000000..49bfeec --- /dev/null +++ b/src/pages/watching/favourites.html @@ -0,0 +1,14 @@ +--- +permalink: "watching/favourites/index.html" +--- + +{% from "macros/media-grid.njk" import grid %} +{% set data = collections.movie | filterFavourites | reverse %} + + {% include "svgs/arrow-left.svg" %} +Back to watching +
    +

    Favourite movies

    +

    A collection of my favourite movies!

    + {{ grid(data) }} +
    diff --git a/src/pages/watching/index.html b/src/pages/watching/index.html new file mode 100644 index 0000000..457a828 --- /dev/null +++ b/src/pages/watching/index.html @@ -0,0 +1,28 @@ +--- +permalink: "watching/index.html" +--- + +{% from "macros/media-grid.njk" import grid %} +{% set data = collections.movie | reverse | limit(5) %} +{% set favourites = collections.movie | filterFavourites | reverse | limit(5) %} +{% set yearsData = collections.moviesByYear | values | reverse %} +
    +

    Watching

    +

    A collection of movies I've seen over the years.

    +

    Browse by year watched

    + +

    + Latest movies +

    + {{ grid(data) }} +

    + Favourite movies +

    + {{ grid(favourites) }} +
    diff --git a/src/pages/watching/recent.html b/src/pages/watching/recent.html new file mode 100644 index 0000000..e52f376 --- /dev/null +++ b/src/pages/watching/recent.html @@ -0,0 +1,14 @@ +--- +permalink: "watching/recent/index.html" +--- + +{% from "macros/media-grid.njk" import grid %} +{% set data = collections.movie | reverse %} + + {% include "svgs/arrow-left.svg" %} +Back to watching +
    +

    Recently watched

    +

    A collection of movies I've seen recently.

    + {{ grid(data) }} +
    diff --git a/src/pages/watching/year.html b/src/pages/watching/year.html new file mode 100644 index 0000000..2cfb0f7 --- /dev/null +++ b/src/pages/watching/year.html @@ -0,0 +1,21 @@ +--- +pagination: + data: collections.moviesByYear + size: 1 + alias: year + resolve: values +permalink: "movies/year/{{ year.value }}/index.html" +--- + +{% from "macros/media-grid.njk" import grid %} +{% set data = year.data | reverse %} +
    + + {% include "svgs/arrow-left.svg" %} + Back to watching +

    Watched in {{ year.value }}

    +

    + A collection of movies I saw in {{ year.value }}. +

    + {{ grid(data) }} +
    -- 2.47.2 From f11422291e9882dfd66382c1bb76758950667d4b Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Tue, 10 Dec 2024 21:53:47 -0800 Subject: [PATCH 21/56] fix: update scaling values for buttons --- src/css/blocks/button.css | 4 ++-- src/css/global/variables.css | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/css/blocks/button.css b/src/css/blocks/button.css index 697b47a..890b060 100644 --- a/src/css/blocks/button.css +++ b/src/css/blocks/button.css @@ -41,7 +41,7 @@ .button:hover { &::before, &::after { - transform: scale(1.05); + transform: scale(1.25); } &::after { @@ -50,7 +50,7 @@ svg { color: var(--color-border); - transform: rotateZ(12deg) scale(1.4); + transform: rotateZ(10deg) scale(1.5); } } } diff --git a/src/css/global/variables.css b/src/css/global/variables.css index 0540422..2ef2f89 100644 --- a/src/css/global/variables.css +++ b/src/css/global/variables.css @@ -10,5 +10,22 @@ --triangles: url('data:image/svg+xml;utf8,'); - --transition-bounce: cubic-bezier(0.47, 2.5, 0.41, 1); + --transition-bounce: linear( + 0, + 0.544 5.5%, + 0.947 11.5%, + 1.213 18.1%, + 1.298 21.7%, + 1.352 25.5%, + 1.372 28.2%, + 1.379 31.1%, + 1.374 34.2%, + 1.357 37.6%, + 1.307 43.7%, + 1.121 61.8%, + 1.074 67.8%, + 1.04 73.7%, + 1.007 84.7%, + 1 + ); } -- 2.47.2 From bac06065d6c6569108fa33bffaee02faa7aa8194 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Thu, 26 Dec 2024 21:40:37 -0800 Subject: [PATCH 22/56] feat: various css updates --- src/_data/navigation.js | 10 ++++---- src/_includes/partials/header.html | 6 +++++ src/css/blocks/button.css | 10 ++++---- src/css/blocks/media-grid.css | 1 + src/css/blocks/site-logo.css | 38 ++++++++++++++---------------- 5 files changed, 35 insertions(+), 30 deletions(-) diff --git a/src/_data/navigation.js b/src/_data/navigation.js index 0282a55..589a232 100644 --- a/src/_data/navigation.js +++ b/src/_data/navigation.js @@ -15,16 +15,16 @@ export default { url: "/games", icon: "game-controller", }, - { - text: "Books", - url: "/books", - icon: "book", - }, { text: "Watching", url: "/watching", icon: "tv-retro", }, + { + text: "Books", + url: "/books", + icon: "book", + }, ], bottom: [ { diff --git a/src/_includes/partials/header.html b/src/_includes/partials/header.html index e2a6754..593a12a 100644 --- a/src/_includes/partials/header.html +++ b/src/_includes/partials/header.html @@ -15,6 +15,12 @@ + + + + + + wonderful frog diff --git a/src/css/blocks/button.css b/src/css/blocks/button.css index 890b060..6eea1df 100644 --- a/src/css/blocks/button.css +++ b/src/css/blocks/button.css @@ -6,7 +6,7 @@ padding: var(--spacing-0\.5) var(--spacing-1); position: relative; text-decoration: none; - transition: transform 0.3s ease; + transition: transform 0.3s var(--transition-bounce); z-index: 1; &::before, @@ -38,10 +38,10 @@ } @media (hover: hover) { - .button:hover { + .button:not(:active):hover { &::before, &::after { - transform: scale(1.25); + transform: scale(1.05); } &::after { @@ -50,13 +50,13 @@ svg { color: var(--color-border); - transform: rotateZ(10deg) scale(1.5); + transform: rotateZ(10deg) scale(1.25); } } } .button:active { - transform: scale(0.8); + transform: scale(0.95); } .button--alt { diff --git a/src/css/blocks/media-grid.css b/src/css/blocks/media-grid.css index 88fe4ca..ecf4d11 100644 --- a/src/css/blocks/media-grid.css +++ b/src/css/blocks/media-grid.css @@ -55,6 +55,7 @@ opacity: 0; .meta-text { + transition-delay: 0.05s; transform: translateY(var(--spacing-1)); } } diff --git a/src/css/blocks/site-logo.css b/src/css/blocks/site-logo.css index 6e9e3ba..344bc37 100644 --- a/src/css/blocks/site-logo.css +++ b/src/css/blocks/site-logo.css @@ -1,7 +1,5 @@ .site-logo .wordmark { text-decoration: none; - margin-block-start: -6px; - transform: skew(0deg, -1deg) translateY(2px); } .site-logo .logo img { @@ -13,38 +11,38 @@ drop-shadow( 0 0 6px color-mix(in srgb, var(--color-primary) 80%, var(--color-white)) ); + transition: transform 0.3s var(--transition-bounce); } .site-logo .wordmark > span { - text-shadow: - -1px 1px 0 var(--shadow-color), - 0 1px 0 var(--shadow-color), - -1px -1px 0 var(--shadow-color), - 1px -1px 0 var(--shadow-color), - 1px 1px 0 var(--shadow-color), - -1px 2px 0 var(--shadow-color), - 0px 2px 0 var(--shadow-color), - 1px 2px 0 var(--shadow-color), - -1px 3px 0 var(--shadow-color), - 0px 3px 0 var(--shadow-color), - 1px 3px 0 var(--shadow-color); + --shadow-color: var(--color-shadow); color: var(--color-white); font-family: var(--font-family-display); font-size: 1.5rem; letter-spacing: -0.05em; - transition: transform var(--transition-duration); + position: relative; + text-shadow: + -1px -1px 0 var(--shadow-color), + 0px -1px 0 var(--shadow-color), + 1px -1px 0 var(--shadow-color), + 1px 0px 0 var(--shadow-color), + 1px 1px 0 var(--shadow-color), + 0px 1px 0 var(--shadow-color), + -1px 1px 0 var(--shadow-color), + -1px 0px 0 var(--shadow-color); + filter: url(#3d_text); + transition: transform 0.3s var(--transition-bounce); } .site-logo .wordmark > span:hover { - transform: translateY(-2px); + transform: scale(1.15) translateY(-4px); + z-index: 2; } -.site-logo .wordmark > * { - --shadow-color: var(--color-shadow); +.site-logo .wordmark > span:nth-child(2) { z-index: 1; } -.site-logo .wordmark > :nth-child(2) { - z-index: 0; +.site-logo .wordmark > span:nth-child(3) { color: color-mix(in srgb, var(--color-white) 90%, var(--color-primary)); } -- 2.47.2 From d59b3767f4d7aa026b66945d4e83ca0335e984ad Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Tue, 31 Dec 2024 23:46:37 -0800 Subject: [PATCH 23/56] feat: update now page style --- src/_data/letterboxd.js | 2 +- src/css/blocks/media-grid.css | 11 ++++++++++- src/pages/now.html | 8 ++++---- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/_data/letterboxd.js b/src/_data/letterboxd.js index 54e74e4..0f72608 100644 --- a/src/_data/letterboxd.js +++ b/src/_data/letterboxd.js @@ -33,7 +33,7 @@ const fetchRecentMovies = async () => { $("channel") .children("item") - .slice(0, 6) + .slice(0, 5) .each((_, element) => { const title = $(element).children("letterboxd\\:filmTitle").text(); diff --git a/src/css/blocks/media-grid.css b/src/css/blocks/media-grid.css index ecf4d11..6493bd3 100644 --- a/src/css/blocks/media-grid.css +++ b/src/css/blocks/media-grid.css @@ -1,6 +1,6 @@ .media-grid { --column-count: 5; - --aspect-ratio: 0.8; + --aspect-ratio: 0.67; display: grid; grid-template-columns: repeat(var(--column-count), minmax(0, 1fr)); @@ -25,6 +25,11 @@ transition: transform 0.3s ease; } } + + .text-only { + aspect-ratio: var(--aspect-ratio); + overflow: hidden; + } } } @@ -78,6 +83,10 @@ } } +.media-grid.square { + --aspect-ratio: 1; +} + @container (max-width: 32rem) { .media-grid { --column-count: 3; diff --git a/src/pages/now.html b/src/pages/now.html index 9ac075c..64939da 100644 --- a/src/pages/now.html +++ b/src/pages/now.html @@ -17,7 +17,7 @@ description: What's going on now and all the latest with myself.

    💿 Albums

      {% for album in lastfm.recentAlbums %} -
    • +
    • @@ -28,7 +28,7 @@ description: What's going on now and all the latest with myself. {% if album.imageUrl %} {% else %} -
      {{ textContent }}
      +
      {{ textContent }}
      {% endif %}
    • @@ -37,9 +37,9 @@ description: What's going on now and all the latest with myself. {% endif %} {% if letterboxd.length > 0 %}

      🍿 Movies

      - +
      + diff --git a/src/games/2012-02-26-yoshis-island.md b/src/games/2012-02-26-yoshis-island.md index e059eb8..4f1258a 100644 --- a/src/games/2012-02-26-yoshis-island.md +++ b/src/games/2012-02-26-yoshis-island.md @@ -1,8 +1,10 @@ --- title: "Super Mario World 2: Yoshi's Island" platform: Super Nintendo -image: https://cdn.wonderfulfrog.com/images/Yoshis_Island_box_art.jpg -tags: ["platformer"] +image: https://cdn.wonderfulfrog.com/images/games/yoshis-island-cover.jpg +tags: + - single-player + - platformer isFavourite: true year: 1995 --- diff --git a/src/games/2015-03-01-majoras-mask-3d.md b/src/games/2015-03-01-majoras-mask-3d.md index e824c48..ed8de9a 100644 --- a/src/games/2015-03-01-majoras-mask-3d.md +++ b/src/games/2015-03-01-majoras-mask-3d.md @@ -2,7 +2,9 @@ title: "Majora's Mask 3D" platform: Nintendo 3DS image: https://cdn.wonderfulfrog.com/images/Majoras_Mask_3D_cover.png -tags: ["adventure", "single player"] +tags: + - single-player + - adventure year: 2015 --- diff --git a/src/games/2015-04-18-mario-and-luigi-dream-team.md b/src/games/2015-04-18-mario-and-luigi-dream-team.md index d4f8fb7..e4be181 100644 --- a/src/games/2015-04-18-mario-and-luigi-dream-team.md +++ b/src/games/2015-04-18-mario-and-luigi-dream-team.md @@ -2,7 +2,10 @@ title: "Mario & Luigi: Dream Team" platform: Nintendo 3DS image: https://cdn.wonderfulfrog.com/images/MarioLuigiDreamTeam.jpg -tags: ["rpg", "turn based", "single player"] +tags: + - single-player + - rpg + - turn-based year: 2013 --- diff --git a/src/games/2015-04-21-donkey-kong-country-tropical-freeze.md b/src/games/2015-04-21-donkey-kong-country-tropical-freeze.md index 5f494e0..43622b7 100644 --- a/src/games/2015-04-21-donkey-kong-country-tropical-freeze.md +++ b/src/games/2015-04-21-donkey-kong-country-tropical-freeze.md @@ -2,7 +2,11 @@ title: "Donkey Kong Country: Tropical Freeze" platform: Nintendo Wii U image: https://cdn.wonderfulfrog.com/images/DKC5_box_art.jpg -tags: ["platformer", "challenging", "single player", "multiplayer"] +tags: + - single-player + - co-op + - platformer + - challenging year: 2014 --- diff --git a/src/games/2015-04-26-professor-layton-vs-phoenix-wright.md b/src/games/2015-04-26-professor-layton-vs-phoenix-wright.md index 45239a5..dad7288 100644 --- a/src/games/2015-04-26-professor-layton-vs-phoenix-wright.md +++ b/src/games/2015-04-26-professor-layton-vs-phoenix-wright.md @@ -2,7 +2,11 @@ title: "Professor Layton vs. Phoenix Wright: Ace Attorney" platform: Nintendo 3DS image: https://cdn.wonderfulfrog.com/images/Laytonvsaceattorneycover.jpg -tags: ["puzzle", "narrative", "visual novel", "single player"] +tags: + - single-player + - narrative + - puzzle + - visual-novel year: 2014 --- diff --git a/src/games/2015-05-15-the-wonderful-101.md b/src/games/2015-05-15-the-wonderful-101.md index 32d5945..861e1e7 100644 --- a/src/games/2015-05-15-the-wonderful-101.md +++ b/src/games/2015-05-15-the-wonderful-101.md @@ -2,7 +2,11 @@ title: "The Wonderful 101" platform: Nintendo Wii U image: https://cdn.wonderfulfrog.com/images/Wonderful_101_box_artwork.jpg -tags: ["action", "beat em up", "single player"] +tags: + - single-player + - action + - beat-em-up + - platinum year: 2013 --- diff --git a/src/games/2015-12-02-fallout-4.md b/src/games/2015-12-02-fallout-4.md index 225c2c5..6913efb 100644 --- a/src/games/2015-12-02-fallout-4.md +++ b/src/games/2015-12-02-fallout-4.md @@ -2,7 +2,10 @@ title: Fallout 4 platform: PC image: https://cdn.wonderfulfrog.com/images/Fallout_4_cover_art.jpg -tags: ["rpg", "action", "single player"] +tags: + - single-player + - action + - rpg year: 2015 --- diff --git a/src/games/2016-03-16-persona-3-portable.md b/src/games/2016-03-16-persona-3-portable.md index b1495ce..c035aec 100644 --- a/src/games/2016-03-16-persona-3-portable.md +++ b/src/games/2016-03-16-persona-3-portable.md @@ -2,7 +2,11 @@ title: "Persona 3 Portable" platform: PlayStation Portable image: https://cdn.wonderfulfrog.com/images/p3p.jpg -tags: ["rpg", "turn based", "persona", "single player"] +tags: + - single-player + - rpg + - turn-based + - persona youtube: true year: 2009 --- diff --git a/src/games/2016-08-22-shovel-knight.md b/src/games/2016-08-22-shovel-knight.md index 5ca7be8..b9dc752 100644 --- a/src/games/2016-08-22-shovel-knight.md +++ b/src/games/2016-08-22-shovel-knight.md @@ -2,7 +2,10 @@ title: Shovel Knight platform: Nintendo Wii U image: https://cdn.wonderfulfrog.com/images/Shovel_knight_cover.jpg -tags: ["platformer", "retro", "single player"] +tags: + - single-player + - platformer + - retro year: 2014 --- diff --git a/src/games/2016-08-24-tomb-raider.md b/src/games/2016-08-24-tomb-raider.md index f2699b2..a132879 100644 --- a/src/games/2016-08-24-tomb-raider.md +++ b/src/games/2016-08-24-tomb-raider.md @@ -2,7 +2,12 @@ title: Tomb Raider platform: PC image: https://cdn.wonderfulfrog.com/images/TombRaider2013.jpg -tags: ["action", "adventure", "puzzle", "reboot", "single player"] +tags: + - single-player + - action + - adventure + - puzzle + - reboot year: 2013 --- diff --git a/src/games/2016-12-31-assassins-creed-black-flag.md b/src/games/2016-12-31-assassins-creed-black-flag.md index 34f842d..3eb80b2 100644 --- a/src/games/2016-12-31-assassins-creed-black-flag.md +++ b/src/games/2016-12-31-assassins-creed-black-flag.md @@ -2,7 +2,11 @@ title: "Assassin's Creed IV: Black Flag" platform: PlayStation 3 image: https://cdn.wonderfulfrog.com/images/Assassins_Creed_IV_-_Black_Flag_cover.jpg -tags: ["action", "adventure", "single player"] +tags: + - single-player + - action + - open-world + - adventure year: 2013 --- diff --git a/src/games/2017-01-02-doom-2016.md b/src/games/2017-01-02-doom-2016.md index 5718177..7500066 100644 --- a/src/games/2017-01-02-doom-2016.md +++ b/src/games/2017-01-02-doom-2016.md @@ -2,7 +2,11 @@ title: DOOM platform: PC image: https://cdn.wonderfulfrog.com/images/Doom_Cover.jpg -tags: ["action", "fps", "retro shooter", "single player"] +tags: + - single-player + - fps + - action + - retro-shooter year: 2016 --- diff --git a/src/games/2017-01-29-hyper-light-drifter.md b/src/games/2017-01-29-hyper-light-drifter.md index d00c254..72c05d0 100644 --- a/src/games/2017-01-29-hyper-light-drifter.md +++ b/src/games/2017-01-29-hyper-light-drifter.md @@ -3,7 +3,13 @@ title: Hyper Light Drifter platform: PC image: https://cdn.wonderfulfrog.com/images/HyperLightDrifterBoxArt.png tags: - ["action", "hack and slash", "retro", "indie", "open world", "single player"] + - single-player + - action + - retro + - indie + - hack-n-slash + - open-world + - retro year: 2016 --- diff --git a/src/games/2017-02-26-vanquish.md b/src/games/2017-02-26-vanquish.md index 33ebcb3..32dcef0 100644 --- a/src/games/2017-02-26-vanquish.md +++ b/src/games/2017-02-26-vanquish.md @@ -2,7 +2,11 @@ title: Vanquish platform: PlayStation 3 image: https://cdn.wonderfulfrog.com/images/PG_Vanquish_box_artwork.png -tags: ["action", "platinum", "shooter", "single player"] +tags: + - single-player + - action + - shooter + - platinum year: 2010 --- diff --git a/src/games/2017-12-20-persona-5.md b/src/games/2017-12-20-persona-5.md index 75187ca..3fe19c5 100644 --- a/src/games/2017-12-20-persona-5.md +++ b/src/games/2017-12-20-persona-5.md @@ -2,6 +2,10 @@ title: Persona 5 platform: PlayStation 4 image: https://cdn.wonderfulfrog.com/images/Persona_5_cover_art.jpg -tags: ["rpg", "turn based", "single player", "persona"] +tags: + - single-player + - rpg + - turn-based + - persona year: 2016 --- diff --git a/src/games/2018-04-10-axiom-verge.md b/src/games/2018-04-10-axiom-verge.md index a7acb9c..cdcc874 100644 --- a/src/games/2018-04-10-axiom-verge.md +++ b/src/games/2018-04-10-axiom-verge.md @@ -1,7 +1,12 @@ --- title: Axiom Verge platform: Nintendo Switch -image: https://cdn.wonderfulfrog.com/images/Axiom_Verge_Title.png -tags: ["action", "metroidvania", "indie", "single player"] +image: https://cdn.wonderfulfrog.com/images/games/axiom-verge-cover.jpg +tags: + - single-player + - action + - indie + - metroidvania + - retro year: 2015 --- diff --git a/src/games/2022-03-20-animal-crossing-new-horizons.md b/src/games/2022-03-20-animal-crossing-new-horizons.md index f540ce7..8d90979 100644 --- a/src/games/2022-03-20-animal-crossing-new-horizons.md +++ b/src/games/2022-03-20-animal-crossing-new-horizons.md @@ -2,7 +2,10 @@ title: "Animal Crossings: New Horizons" platform: Switch image: https://cdn.wonderfulfrog.com/images/acnh.jpg -tags: ["single player"] +tags: + - single-player + - multiplayer + - life-sim year: 2020 playtime: 400+ hours pullquote: Idyllic escape from the world diff --git a/src/games/2024-01-07-her-story.md b/src/games/2024-01-07-her-story.md index e1d5040..6d51354 100644 --- a/src/games/2024-01-07-her-story.md +++ b/src/games/2024-01-07-her-story.md @@ -1,8 +1,12 @@ --- title: Her Story platform: PC -image: https://cdn.wonderfulfrog.com/images/Her_Story_store_art.jpg -tags: ["pc", "narrative", "simulator", "indie", "single player"] +image: https://cdn.wonderfulfrog.com/images/games/her-story-cover.jpg +tags: + - single-player + - indie + - simulation + - narrative year: 2015 --- diff --git a/src/games/2024-01-19-middle-earth-shadow-of-mordor.md b/src/games/2024-01-19-middle-earth-shadow-of-mordor.md index 1d747d5..42ba5a0 100644 --- a/src/games/2024-01-19-middle-earth-shadow-of-mordor.md +++ b/src/games/2024-01-19-middle-earth-shadow-of-mordor.md @@ -3,7 +3,11 @@ title: "Middle-earth: Shadow of Mordor" platform: PC image: https://cdn.wonderfulfrog.com/images/Shadow_of_Mordor_cover_art.jpg tags: - ["action", "nemesis system", "hack and slash", "single player", "open world"] + - single-player + - action + - hack-n-slash + - open-world + - nemesis-system year: 2014 --- diff --git a/src/games/2024-01-27-citizen-sleeper.md b/src/games/2024-01-27-citizen-sleeper.md index a37bd6f..2dc47a7 100644 --- a/src/games/2024-01-27-citizen-sleeper.md +++ b/src/games/2024-01-27-citizen-sleeper.md @@ -1,8 +1,13 @@ --- title: Citizen Sleeper platform: PC -image: https://cdn.wonderfulfrog.com/images/Citizen_Sleeper_cover_art.jpg -tags: ["narrative", "visual novel", "indie", "rpg", "single player"] +image: https://cdn.wonderfulfrog.com/images/games/citizen-sleeper-cover.jpg +tags: + - single-player + - narrative + - visual-novel + - indie + - rpg year: 2022 rating: 4 playtime: 7 hours diff --git a/src/pages/games/index.html b/src/pages/games/index.html index 1054624..7b8e84a 100644 --- a/src/pages/games/index.html +++ b/src/pages/games/index.html @@ -6,11 +6,24 @@ permalink: "games/index.html" {% from "macros/media-grid.njk" import grid %} {% set data = collections.game | reverse | limit(5) %} {% set faves = collections.game | filterFavourites | reverse | limit(5) %} +{% set tags = collections.game | allTagCounts(["game"]) | limit(5) %}

      Games

      A collection of games I played over the years. Ideally this would include every game I've every played, but realistically it's an approximation. I try to include my own thoughts with each.

      +

      + Tags +

      +

      Latest games

      diff --git a/src/pages/games/tag.html b/src/pages/games/tag.html new file mode 100644 index 0000000..94f7ca5 --- /dev/null +++ b/src/pages/games/tag.html @@ -0,0 +1,15 @@ +--- +pagination: + data: collections.gamesByTag + size: 1 + alias: tag +permalink: "games/tag/{{ tag | slugify }}/index.html" +--- + +{% from "macros/media-grid.njk" import grid %} +{% set data = collections.gamesByTag[tag] %} +
      +

      Games

      +

      Tagged with "{{ tag }}"

      +
      +{{ grid(data) }} diff --git a/src/pages/games/tags.html b/src/pages/games/tags.html new file mode 100644 index 0000000..aae0c43 --- /dev/null +++ b/src/pages/games/tags.html @@ -0,0 +1,19 @@ +--- +title: Tagged in Games +permalink: "games/tags/index.html" +--- + +{% from "macros/media-grid.njk" import grid %} +{% set tags = collections.game | allTagCounts(["game"]) %} +
      +

      Tagged in Games

      + +
      -- 2.47.2 From 8785c3d23b43908f4d9726bdef50f47032ba77ff Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:56:57 -0800 Subject: [PATCH 33/56] feat: reorganize watching section --- eleventy.config.js | 6 +++++ src/pages/books/index.html | 2 +- src/pages/books/tags.html | 2 +- src/pages/games/index.html | 2 +- src/pages/games/tags.html | 2 +- src/pages/watching/index.html | 8 +++--- .../movies.html => movies/favourites.html} | 2 +- src/pages/watching/movies/recent.html | 25 +++++++++++++++++++ src/pages/watching/movies/tag.html | 15 +++++++++++ src/pages/watching/movies/tags.html | 19 ++++++++++++++ src/pages/watching/recent/movies.html | 12 --------- src/pages/watching/recent/shows.html | 12 --------- .../shows.html => shows/favourites.html} | 2 +- src/pages/watching/shows/recent.html | 25 +++++++++++++++++++ src/pages/watching/shows/tag.html | 15 +++++++++++ src/pages/watching/shows/tags.html | 19 ++++++++++++++ 16 files changed, 134 insertions(+), 34 deletions(-) rename src/pages/watching/{favourites/movies.html => movies/favourites.html} (84%) create mode 100644 src/pages/watching/movies/recent.html create mode 100644 src/pages/watching/movies/tag.html create mode 100644 src/pages/watching/movies/tags.html delete mode 100644 src/pages/watching/recent/movies.html delete mode 100644 src/pages/watching/recent/shows.html rename src/pages/watching/{favourites/shows.html => shows/favourites.html} (84%) create mode 100644 src/pages/watching/shows/recent.html create mode 100644 src/pages/watching/shows/tag.html create mode 100644 src/pages/watching/shows/tags.html diff --git a/eleventy.config.js b/eleventy.config.js index ef714b8..4824391 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -44,6 +44,12 @@ export default function (eleventyConfig) { eleventyConfig.addCollection("gamesByTag", (collection) => collectionByTag(collection, "game"), ); + eleventyConfig.addCollection("showsByTag", (collection) => + collectionByTag(collection, "tv"), + ); + eleventyConfig.addCollection("moviesByTag", (collection) => + collectionByTag(collection, "movie"), + ); // --------------------- Custom Filters ----------------------- eleventyConfig.addFilter("allTagCounts", allTagCounts); diff --git a/src/pages/books/index.html b/src/pages/books/index.html index 17ed024..daf37ec 100644 --- a/src/pages/books/index.html +++ b/src/pages/books/index.html @@ -16,7 +16,7 @@ permalink: "books/index.html"
      diff --git a/src/pages/watching/favourites/movies.html b/src/pages/watching/movies/favourites.html similarity index 84% rename from src/pages/watching/favourites/movies.html rename to src/pages/watching/movies/favourites.html index 43c21db..0ea6afc 100644 --- a/src/pages/watching/favourites/movies.html +++ b/src/pages/watching/movies/favourites.html @@ -1,6 +1,6 @@ --- title: Favourite movies -permalink: "watching/favourites/movies/index.html" +permalink: "watching/movies/favourites/index.html" --- {% from "macros/media-grid.njk" import grid %} diff --git a/src/pages/watching/movies/recent.html b/src/pages/watching/movies/recent.html new file mode 100644 index 0000000..b286662 --- /dev/null +++ b/src/pages/watching/movies/recent.html @@ -0,0 +1,25 @@ +--- +title: Recent movies +permalink: "watching/movies/recent/index.html" +--- + +{% from "macros/media-grid.njk" import grid %} +{% set data = collections.movie | reverse %} +{% set tags = collections.movie | allTagCounts(["movie"]) | limit(5) %} +
      +

      Recent movies

      +

      A collection of movies I've seen recently.

      +

      + Tags +

      + + {{ grid(data) }} +
      diff --git a/src/pages/watching/movies/tag.html b/src/pages/watching/movies/tag.html new file mode 100644 index 0000000..a492a9a --- /dev/null +++ b/src/pages/watching/movies/tag.html @@ -0,0 +1,15 @@ +--- +pagination: + data: collections.moviesByTag + size: 1 + alias: tag +permalink: "watching/movies/tag/{{ tag | slugify }}/index.html" +--- + +{% from "macros/media-grid.njk" import grid %} +{% set data = collections.moviesByTag[tag] %} +
      +

      Movies

      +

      Tagged with "{{ tag }}"

      +
      +{{ grid(data) }} diff --git a/src/pages/watching/movies/tags.html b/src/pages/watching/movies/tags.html new file mode 100644 index 0000000..6588db4 --- /dev/null +++ b/src/pages/watching/movies/tags.html @@ -0,0 +1,19 @@ +--- +title: Tagged in Movies +permalink: "watching/movies/tags/index.html" +--- + +{% from "macros/media-grid.njk" import grid %} +{% set tags = collections.movie | allTagCounts(["movie"]) %} +
      +

      Tagged in Movies

      + +
      diff --git a/src/pages/watching/recent/movies.html b/src/pages/watching/recent/movies.html deleted file mode 100644 index 856a9bc..0000000 --- a/src/pages/watching/recent/movies.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Recent movies -permalink: "watching/recent/movies/index.html" ---- - -{% from "macros/media-grid.njk" import grid %} -{% set data = collections.movie | reverse %} -
      -

      Recent movies

      -

      A collection of movies I've seen recently.

      - {{ grid(data) }} -
      diff --git a/src/pages/watching/recent/shows.html b/src/pages/watching/recent/shows.html deleted file mode 100644 index 1d5f7e8..0000000 --- a/src/pages/watching/recent/shows.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Recent shows -permalink: "watching/recent/shows/index.html" ---- - -{% from "macros/media-grid.njk" import grid %} -{% set data = collections.tv | reverse %} -
      -

      Recent shows

      -

      A collection of shows I've seen recently.

      - {{ grid(data) }} -
      diff --git a/src/pages/watching/favourites/shows.html b/src/pages/watching/shows/favourites.html similarity index 84% rename from src/pages/watching/favourites/shows.html rename to src/pages/watching/shows/favourites.html index 6d15a08..8ace608 100644 --- a/src/pages/watching/favourites/shows.html +++ b/src/pages/watching/shows/favourites.html @@ -1,6 +1,6 @@ --- title: Favourite shows -permalink: "watching/favourites/shows/index.html" +permalink: "watching/shows/favourites/index.html" --- {% from "macros/media-grid.njk" import grid %} diff --git a/src/pages/watching/shows/recent.html b/src/pages/watching/shows/recent.html new file mode 100644 index 0000000..a254b38 --- /dev/null +++ b/src/pages/watching/shows/recent.html @@ -0,0 +1,25 @@ +--- +title: Recent shows +permalink: "watching/shows/recent/index.html" +--- + +{% from "macros/media-grid.njk" import grid %} +{% set data = collections.tv | reverse %} +{% set tags = collections.tv | allTagCounts(["tv"]) | limit(5) %} +
      +

      Recent shows

      +

      A collection of shows I've seen recently.

      +

      + Tags +

      + + {{ grid(data) }} +
      diff --git a/src/pages/watching/shows/tag.html b/src/pages/watching/shows/tag.html new file mode 100644 index 0000000..e7150cc --- /dev/null +++ b/src/pages/watching/shows/tag.html @@ -0,0 +1,15 @@ +--- +pagination: + data: collections.showsByTag + size: 1 + alias: tag +permalink: "watching/shows/tag/{{ tag | slugify }}/index.html" +--- + +{% from "macros/media-grid.njk" import grid %} +{% set data = collections.showsByTag[tag] %} +
      +

      Shows

      +

      Tagged with "{{ tag }}"

      +
      +{{ grid(data) }} diff --git a/src/pages/watching/shows/tags.html b/src/pages/watching/shows/tags.html new file mode 100644 index 0000000..e630dd9 --- /dev/null +++ b/src/pages/watching/shows/tags.html @@ -0,0 +1,19 @@ +--- +title: Tagged in Shows +permalink: "watching/shows/tags/index.html" +--- + +{% from "macros/media-grid.njk" import grid %} +{% set tags = collections.tv | allTagCounts(["tv"]) %} +
      +

      Tagged in Shows

      + +
      -- 2.47.2 From b2e692b6e9846c3347bc48131026e891db8fceee Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:40:29 -0800 Subject: [PATCH 34/56] feat: add contact page --- src/_data/meta.js | 1 - src/_data/navigation.js | 4 ++ src/pages/contact.html | 91 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 src/pages/contact.html diff --git a/src/_data/meta.js b/src/_data/meta.js index db86cd5..b27f858 100644 --- a/src/_data/meta.js +++ b/src/_data/meta.js @@ -10,6 +10,5 @@ export default { social: { github: "https://github.com/wonderfulfrog", mastodon: "https://mastodon.social/@wonderfulfrog", - lastfm: "https://www.last.fm/user/wonderfulfrog", }, }; diff --git a/src/_data/navigation.js b/src/_data/navigation.js index 589a232..94dea64 100644 --- a/src/_data/navigation.js +++ b/src/_data/navigation.js @@ -27,6 +27,10 @@ export default { }, ], bottom: [ + { + text: "Contact", + url: "/contact", + }, { text: "Colophon", url: "/colophon", diff --git a/src/pages/contact.html b/src/pages/contact.html new file mode 100644 index 0000000..2a2b4a3 --- /dev/null +++ b/src/pages/contact.html @@ -0,0 +1,91 @@ +--- +title: Contact +description: Various ways to get in touch. +permalink: "/contact/index.html" +--- + +
      +

      Contact

      +

      Various ways to get in touch with me on the internet.

      +
      +
      +

      Below are my primary methods of contact. They are the ones I monitor most and likely to respond!

      + + + + + + + + + + + + + + + + + +
      + Platform + + Link +
      Email + devin@wonderfulfrog.com +
      Signal + wonderfulfrog.64 +
      +

      + The following list covers various accounts on the internet that are mine. While you can probably contact me there, I'd prefer using one of the methods above. +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + Platform + + Link +
      Mastodon + @wonderfulfrog.mastodon.social +
      GitHub + @wonderfulfrog +
      Bluesky + wonderfulfrog.com +
      Discord + wonderfulfrog +
      ListenBrainz + wonderfulfrog +
      Battle.netArmitage#1801
      +
      -- 2.47.2 From 53490407518710046e09014c9819563911045c72 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:40:37 -0800 Subject: [PATCH 35/56] feat: small page changes --- src/index.html | 43 +++++++++++++++++++++++++++++++++++++++++- src/pages/about.md | 2 ++ src/pages/changelog.md | 10 ++++++++++ src/pages/now.html | 29 ---------------------------- 4 files changed, 54 insertions(+), 30 deletions(-) diff --git a/src/index.html b/src/index.html index 9b82cd9..a5053f3 100644 --- a/src/index.html +++ b/src/index.html @@ -14,7 +14,7 @@ permalink: / If you're interested, I have an about page all about me!

      -
      +

      Favourite posts

      Hand-picked, curated selection of my favourite posts!

      @@ -28,3 +28,44 @@ permalink: / {% set recentPosts = collections.post | reverse | limit(5) %} {{ list(recentPosts, "MM/DD/YYYY") }}
      +
      +
      +

      Other pages

      +

      Some of my other pages you can check out!

      +
      + +
      diff --git a/src/pages/about.md b/src/pages/about.md index 74d3b36..7e12891 100644 --- a/src/pages/about.md +++ b/src/pages/about.md @@ -5,6 +5,8 @@ description: All about me! # About me +**See also**: [Stuff I use](/uses), my [contact info](/contact), or [what's happening now](/now). + Hello! Ahoj! Welcome to my site! My name is **Devin Haska** and this is my little slice of the internet I call home. diff --git a/src/pages/changelog.md b/src/pages/changelog.md index b887ecd..914c277 100644 --- a/src/pages/changelog.md +++ b/src/pages/changelog.md @@ -10,6 +10,16 @@ All the changes that are fit to read! If preferred, the [commit log is available here][commits]. +## January 24th, 2025 + +- Upgraded to [Eleventy v3](https://www.11ty.dev/blog/eleventy-v3/)! +- A design refresh! The overall look-and-feel is the same, but I added some playful animations here and there. +- Restructured my catalogue by breaking sub-categories into their own sections. +- Removed the Podcasts and Comics catalogues. Podcasts has its own respective page now that I plan to update occasionally. +- Added [Games](/games)! +- Added [Movies](/watching/movies/recent)! +- Added [Shows](/watching/shows/recent)! + ## September 29th 2024 - Switched to [Cloudflare Pages](https://pages.cloudflare.com/) for deployments and hosting. diff --git a/src/pages/now.html b/src/pages/now.html index 64939da..f664b23 100644 --- a/src/pages/now.html +++ b/src/pages/now.html @@ -6,35 +6,6 @@ description: What's going on now and all the latest with myself. {% set recentTrack = lastfm.recentTracks[0] %}

      /now

      What am I doing right now? Everything on here is automatically generated from various data sources.

      -{% if recentTrack %} -

      - 🎶 {{ recentTrack.artist }} - {{ recentTrack.track }} -

      -{% endif %} -{% if lastfm.recentAlbums.length > 0 %} -

      💿 Albums

      - -{% endif %} {% if letterboxd.length > 0 %}

      🍿 Movies

        -- 2.47.2 From 68d4d48e161e0697d233adb6d7166d665dcd3d43 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Fri, 24 Jan 2025 21:36:10 -0800 Subject: [PATCH 36/56] feat: add podroll page --- src/catalogue/catalogue.11tydata.js | 6 --- ...21-09-11-the-monster-sisters-orca-books.md | 10 ----- .../comics/2021-09-19-monstress-image-1.md | 16 -------- ...9-20-monstress-the-blood-image-comics-2.md | 17 --------- src/catalogue/comics/comics.11tydata.js | 8 ---- .../podcasts/2021-08-25-hunting-warhead.md | 10 ----- .../podcasts/2021-08-25-maintenance-phase.md | 15 -------- .../podcasts/2021-08-25-reply-all.md | 13 ------- src/catalogue/podcasts/podcasts.11tydata.js | 5 --- src/index.html | 3 ++ src/pages/podroll.html | 38 +++++++++++++++++++ .../podcasts/2021-08-25-history-of-the-90s.md | 9 ++--- src/podcasts/2021-08-25-hunting-warhead.md | 7 ++++ src/podcasts/2021-08-25-maintenance-phase.md | 12 ++++++ src/podcasts/2021-08-25-reply-all.md | 10 +++++ .../podcasts/2021-08-25-running-from-cops.md | 3 +- .../podcasts/2021-08-25-surviving-y2k.md | 3 +- .../podcasts/2021-08-25-youre-wrong-about.md | 8 ++-- .../2024-02-17-if-books-could-kill.md | 8 ++-- .../podcasts/2024-02-20-9-12.md | 6 +-- .../2024-02-20-a-death-in-cryptoland.md | 5 +-- .../podcasts/2024-02-20-boys-like-me.md | 3 +- ...0-conversations-with-people-who-hate-me.md | 3 +- .../podcasts/2024-02-20-project-unabom.md | 3 +- .../2024-02-20-redemption-of-jar-jar-binks.md | 3 +- .../podcasts/2024-02-20-the-flamethrowers.md | 3 +- .../podcasts/2024-02-20-the-new-gurus.md | 3 +- src/podcasts/2025-01-24-20k-hertz.md | 11 ++++++ src/podcasts/podcasts.11tydata.js | 3 ++ 29 files changed, 115 insertions(+), 129 deletions(-) delete mode 100644 src/catalogue/catalogue.11tydata.js delete mode 100644 src/catalogue/comics/2021-09-11-the-monster-sisters-orca-books.md delete mode 100644 src/catalogue/comics/2021-09-19-monstress-image-1.md delete mode 100644 src/catalogue/comics/2021-09-20-monstress-the-blood-image-comics-2.md delete mode 100644 src/catalogue/comics/comics.11tydata.js delete mode 100644 src/catalogue/podcasts/2021-08-25-hunting-warhead.md delete mode 100644 src/catalogue/podcasts/2021-08-25-maintenance-phase.md delete mode 100644 src/catalogue/podcasts/2021-08-25-reply-all.md delete mode 100644 src/catalogue/podcasts/podcasts.11tydata.js create mode 100644 src/pages/podroll.html rename src/{catalogue => }/podcasts/2021-08-25-history-of-the-90s.md (54%) create mode 100644 src/podcasts/2021-08-25-hunting-warhead.md create mode 100644 src/podcasts/2021-08-25-maintenance-phase.md create mode 100644 src/podcasts/2021-08-25-reply-all.md rename src/{catalogue => }/podcasts/2021-08-25-running-from-cops.md (65%) rename src/{catalogue => }/podcasts/2021-08-25-surviving-y2k.md (55%) rename src/{catalogue => }/podcasts/2021-08-25-youre-wrong-about.md (57%) rename src/{catalogue => }/podcasts/2024-02-17-if-books-could-kill.md (67%) rename src/{catalogue => }/podcasts/2024-02-20-9-12.md (55%) rename src/{catalogue => }/podcasts/2024-02-20-a-death-in-cryptoland.md (52%) rename src/{catalogue => }/podcasts/2024-02-20-boys-like-me.md (94%) rename src/{catalogue => }/podcasts/2024-02-20-conversations-with-people-who-hate-me.md (90%) rename src/{catalogue => }/podcasts/2024-02-20-project-unabom.md (87%) rename src/{catalogue => }/podcasts/2024-02-20-redemption-of-jar-jar-binks.md (78%) rename src/{catalogue => }/podcasts/2024-02-20-the-flamethrowers.md (86%) rename src/{catalogue => }/podcasts/2024-02-20-the-new-gurus.md (86%) create mode 100644 src/podcasts/2025-01-24-20k-hertz.md create mode 100644 src/podcasts/podcasts.11tydata.js diff --git a/src/catalogue/catalogue.11tydata.js b/src/catalogue/catalogue.11tydata.js deleted file mode 100644 index 1771429..0000000 --- a/src/catalogue/catalogue.11tydata.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - tags: "catalogue", - eleventyComputed: { - description: (data) => `My thoughts on ${data.title}.`, - }, -}; diff --git a/src/catalogue/comics/2021-09-11-the-monster-sisters-orca-books.md b/src/catalogue/comics/2021-09-11-the-monster-sisters-orca-books.md deleted file mode 100644 index b2fff53..0000000 --- a/src/catalogue/comics/2021-09-11-the-monster-sisters-orca-books.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "The Monster Sisters" -publisher: "Orca Books" -author: "Gareth Gaudin" -year: 2021 -isbn: 9781459822290 -rating: 4 -image: https://cdn.wonderfulfrog.com/images/the-monster-sisters-vol-2.jpg -tags: ["adventure"] ---- diff --git a/src/catalogue/comics/2021-09-19-monstress-image-1.md b/src/catalogue/comics/2021-09-19-monstress-image-1.md deleted file mode 100644 index 836ec40..0000000 --- a/src/catalogue/comics/2021-09-19-monstress-image-1.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Monstress: Awakening" -publisher: Image Comics -author: Majorie Liu, Sana Takeda -volume: 1 -year: 2017 -image: https://cdn.wonderfulfrog.com/images/monstress-vol-1.jpeg -rating: 3 -tags: ["fantasy"] ---- - -The first 75% of the volume is quite confusing. It’s like reading the second or third volume in a series without reading the first. I get starting with a mystery as a hook, but when every second word is something new, I get confused! - -I’m not convinced that comics are the best form of world building, at least through expository dialogue. When several entire pages that are at least half-filled with text, I think there’s a problem. - -The artwork is praised often elsewhere and I must agree - every page (even panel) could stand on its own. Absolutely stunning. The world building on the visual level absolutely nails it. If atmosphere is set within the first few pages and I’m here for it. diff --git a/src/catalogue/comics/2021-09-20-monstress-the-blood-image-comics-2.md b/src/catalogue/comics/2021-09-20-monstress-the-blood-image-comics-2.md deleted file mode 100644 index 8624b87..0000000 --- a/src/catalogue/comics/2021-09-20-monstress-the-blood-image-comics-2.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Monstress: The Blood" -publisher: Image Comics -author: Majorie Lui, Sana Takeda -volume: 2 -year: 2017 -image: https://cdn.wonderfulfrog.com/images/monstress-vol-2-tp_77ea1f170a.jpg -isbn: 9781534300415 -rating: 3 -tags: ["fantasy"] ---- - -I love the cast of the story. We are introduced to some new characters with a heavy nautical theme. Old Tooth the shark-person looks straight out of the 90s (remember Street Sharks?). The artwork continues to be the main selling point for me. - -Where things falter though has to be the writing (again). There are less mysteries to track and more emphasis on character development, but I’m finding it so dense that it’s hard to follow. It practically requires a wiki open while reading. There is so much to pack into a graphic novel with limited pages. I think the series would do better as a novel if I’m completely honest. - -I can’t get into the story, but Sana Takeda’s art is so phenomenal I want to keep going. diff --git a/src/catalogue/comics/comics.11tydata.js b/src/catalogue/comics/comics.11tydata.js deleted file mode 100644 index e5d53bf..0000000 --- a/src/catalogue/comics/comics.11tydata.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - tags: "comic", - permalink: "catalogue/comics/{{ page.fileSlug }}/index.html", - eleventyComputed: { - tertiary: (data) => - `

        by ${data.author}

        `, - }, -}; diff --git a/src/catalogue/podcasts/2021-08-25-hunting-warhead.md b/src/catalogue/podcasts/2021-08-25-hunting-warhead.md deleted file mode 100644 index 5513c9e..0000000 --- a/src/catalogue/podcasts/2021-08-25-hunting-warhead.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Hunting Warhead -rating: 5 -image: https://cdn.wonderfulfrog.com/images/hunting-warhead.webp -url: https://www.cbc.ca/listen/cbc-podcasts/387-hunting-warhead ---- - -A chilling and gripping history telling the story of how one of the largest networks of CSAM was taken down by tracking its biggest maintainer. - -[Listen to the podcast](https://www.cbc.ca/listen/cbc-podcasts/387-hunting-warhead) diff --git a/src/catalogue/podcasts/2021-08-25-maintenance-phase.md b/src/catalogue/podcasts/2021-08-25-maintenance-phase.md deleted file mode 100644 index 0e61a49..0000000 --- a/src/catalogue/podcasts/2021-08-25-maintenance-phase.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Maintenance Phase -rating: 5 -image: https://cdn.wonderfulfrog.com/images/maintenance-phase.webp -url: https://www.maintenancephase.com/ ---- - -A phenomenal podcast that challenged everything I knew about fatness, dieting, food, and my own relationship with each. I don't say this lightly but it has been a life-changing revelation for me. I devour every new episode with fervor and eagerly consume all their content. - -## Favourite episodes - -- [Dr. Oz](https://maintenancephase.buzzsprout.com/1411126/7857472-dr-oz) -- [Halo Top Ice Cream](https://maintenancephase.buzzsprout.com/1411126/7127890-halo-top-ice-cream) -- [The Biggest Loser](https://maintenancephase.buzzsprout.com/1411126/7353850-the-biggest-loser) - I used to watch this show religiously with my parents. I'd look to it at times for inspiration. Realizing the literal hell the cast when through now is horrifying. diff --git a/src/catalogue/podcasts/2021-08-25-reply-all.md b/src/catalogue/podcasts/2021-08-25-reply-all.md deleted file mode 100644 index 885cd2f..0000000 --- a/src/catalogue/podcasts/2021-08-25-reply-all.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Reply All -url: https://gimletmedia.com/shows/reply-all -rating: 3 -image: https://cdn.wonderfulfrog.com/images/reply-all.jpeg ---- - -There are too many episodes to this podcast, but I have been shared a few interesting ones from my partner. I was never a regular listener, and have not listened since it [effectively imploded](https://www.vulture.com/article/gimlet-reply-all-controversy-spotify-test-kitchen.html) - -## Favourite episodes - -- [The Case of the Missing Hit](https://pca.st/episode/cc572c51-e2bd-41fe-a138-d4f8ecba3549) - This is a real journey. There are so many fun twists and turns. diff --git a/src/catalogue/podcasts/podcasts.11tydata.js b/src/catalogue/podcasts/podcasts.11tydata.js deleted file mode 100644 index ee1e405..0000000 --- a/src/catalogue/podcasts/podcasts.11tydata.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - tags: "podcast", - permalink: "catalogue/podcasts/{{ page.fileSlug }}/index.html", - linkTitle: "Listen to the podcast", -}; diff --git a/src/index.html b/src/index.html index a5053f3..40bb9b1 100644 --- a/src/index.html +++ b/src/index.html @@ -67,5 +67,8 @@ permalink: /
      • Contact
      • +
      • + Podroll +
diff --git a/src/pages/podroll.html b/src/pages/podroll.html new file mode 100644 index 0000000..5f19739 --- /dev/null +++ b/src/pages/podroll.html @@ -0,0 +1,38 @@ +--- +title: Podroll +description: Some podcasts that I enjoy! +permalink: "podroll/index.html" +--- + +{% set data = collections.podcast | reverse %} +
+

Podroll

+

Some podcasts that I enjoy!

+
+
+ {% for item in data %} +
+
+

{{ item.data.title }}

+ {% if item.data.isCompleted %}Completed{% endif %} +
+

{{ item.data.description }}

+
+ {% if item.data.url %}Website{% endif %} + {% if item.data.rss %}RSS{% endif %} +
+ {% if item.content %} +
+ + {% if item.data.moreText %} + {{ item.data.moreText }} + {% else %} + More info + {% endif %} + +
{{ item.content | safe }}
+
+ {% endif %} +
+ {% endfor %} +
diff --git a/src/catalogue/podcasts/2021-08-25-history-of-the-90s.md b/src/podcasts/2021-08-25-history-of-the-90s.md similarity index 54% rename from src/catalogue/podcasts/2021-08-25-history-of-the-90s.md rename to src/podcasts/2021-08-25-history-of-the-90s.md index 7bb2d1f..2e8fbad 100644 --- a/src/catalogue/podcasts/2021-08-25-history-of-the-90s.md +++ b/src/podcasts/2021-08-25-history-of-the-90s.md @@ -1,13 +1,12 @@ --- title: History of the 90s -rating: 4 image: https://cdn.wonderfulfrog.com/images/history-of-the-90s.jpeg url: https://curiouscast.ca/podcast/466/history-of-the-90s/ +rss: https://www.omnycontent.com/d/playlist/fdc2ad13-d199-4e97-b2db-a59300cb6cc2/3164bc6f-23d3-435e-92c4-aa6a012d02b6/72253a5d-9601-4cbe-98d1-aa6a012d02cc/podcast.rss +isCompleted: false +description: It's the history... of the '90s. +moreText: "Suggested episodes" --- -As a bona fide 90s kid, this podcast was made for me. I'm enjoying a trip down memory lane, but also learning so much about the 90s that I had no idea about, or did not learn about at the time. - -## Favourite episodes - - [Woodstock 99](https://curiouscast.ca/podcast/466/history-of-the-90s/) - [Grunge (Part 1 & 2)](https://curiouscast.ca/podcast/466/history-of-the-90s/) diff --git a/src/podcasts/2021-08-25-hunting-warhead.md b/src/podcasts/2021-08-25-hunting-warhead.md new file mode 100644 index 0000000..bc46d22 --- /dev/null +++ b/src/podcasts/2021-08-25-hunting-warhead.md @@ -0,0 +1,7 @@ +--- +title: Hunting Warhead +image: https://cdn.wonderfulfrog.com/images/hunting-warhead.webp +url: https://www.cbc.ca/listen/cbc-podcasts/387-hunting-warhead +isCompleted: true +description: A chilling and gripping history telling the story of how one of the largest networks of CSAM was taken down by tracking its biggest maintainer. +--- diff --git a/src/podcasts/2021-08-25-maintenance-phase.md b/src/podcasts/2021-08-25-maintenance-phase.md new file mode 100644 index 0000000..7383080 --- /dev/null +++ b/src/podcasts/2021-08-25-maintenance-phase.md @@ -0,0 +1,12 @@ +--- +title: Maintenance Phase +image: https://cdn.wonderfulfrog.com/images/maintenance-phase.webp +url: https://www.maintenancephase.com/ +isCompleted: false +description: A phenomenal podcast that challenged everything I knew about fatness, dieting, food, and my own relationship with each. I don't say this lightly but it has been a life-changing revelation for me. I devour every new episode with fervor and eagerly consume all their content. +moreText: "Suggested episodes" +--- + +- [Dr. Oz](https://maintenancephase.buzzsprout.com/1411126/7857472-dr-oz) +- [Halo Top Ice Cream](https://maintenancephase.buzzsprout.com/1411126/7127890-halo-top-ice-cream) +- [The Biggest Loser](https://maintenancephase.buzzsprout.com/1411126/7353850-the-biggest-loser) diff --git a/src/podcasts/2021-08-25-reply-all.md b/src/podcasts/2021-08-25-reply-all.md new file mode 100644 index 0000000..0e3473e --- /dev/null +++ b/src/podcasts/2021-08-25-reply-all.md @@ -0,0 +1,10 @@ +--- +title: Reply All +url: https://gimletmedia.com/shows/reply-all +image: https://cdn.wonderfulfrog.com/images/reply-all.jpeg +description: A podcast about the internet. +isCompleted: true +moreText: "Suggested episodes" +--- + +- [The Case of the Missing Hit](https://pca.st/episode/cc572c51-e2bd-41fe-a138-d4f8ecba3549) diff --git a/src/catalogue/podcasts/2021-08-25-running-from-cops.md b/src/podcasts/2021-08-25-running-from-cops.md similarity index 65% rename from src/catalogue/podcasts/2021-08-25-running-from-cops.md rename to src/podcasts/2021-08-25-running-from-cops.md index 39dc208..1c5bf70 100644 --- a/src/catalogue/podcasts/2021-08-25-running-from-cops.md +++ b/src/podcasts/2021-08-25-running-from-cops.md @@ -1,6 +1,7 @@ --- title: Running from COPS -rating: 5 image: https://cdn.wonderfulfrog.com/images/running-from-cops.webp url: https://podcasts.apple.com/ca/podcast/headlong-running-from-cops/id1459118695 +description: An investigation into the longest running reality TV show - COPS. +isCompleted: true --- diff --git a/src/catalogue/podcasts/2021-08-25-surviving-y2k.md b/src/podcasts/2021-08-25-surviving-y2k.md similarity index 55% rename from src/catalogue/podcasts/2021-08-25-surviving-y2k.md rename to src/podcasts/2021-08-25-surviving-y2k.md index 2a0f511..c3f654f 100644 --- a/src/catalogue/podcasts/2021-08-25-surviving-y2k.md +++ b/src/podcasts/2021-08-25-surviving-y2k.md @@ -1,6 +1,7 @@ --- title: Surviving Y2K -rating: 4 image: https://cdn.wonderfulfrog.com/images/surviving-y2k.webp url: https://podcasts.apple.com/ca/podcast/headlong-surviving-y2k/id1464251414 +description: What it was like leading up to Y2K - the feared computer bug that ended up being nothing. Or was it...? +isCompleted: true --- diff --git a/src/catalogue/podcasts/2021-08-25-youre-wrong-about.md b/src/podcasts/2021-08-25-youre-wrong-about.md similarity index 57% rename from src/catalogue/podcasts/2021-08-25-youre-wrong-about.md rename to src/podcasts/2021-08-25-youre-wrong-about.md index e9b7c98..0743890 100644 --- a/src/catalogue/podcasts/2021-08-25-youre-wrong-about.md +++ b/src/podcasts/2021-08-25-youre-wrong-about.md @@ -1,12 +1,10 @@ --- title: "You're Wrong About" url: https://yourewrongabout.com/ -rating: 3 image: https://cdn.wonderfulfrog.com/images/youre-wrong-about.jpeg +rss: https://feeds.buzzsprout.com/1112270.rss +description: There are things that happened, and you might be wrong about them! +moreText: "Suggested episodes" --- -## Favourite episodes - -I find I don't enjoy the podcast nearly as much since Michael Hobbes left the show. But the "classic era" YWA episodes tend to be great. - - [Disco Demolition Night](https://www.buzzsprout.com/1112270/4815227-disco-demolition-night) diff --git a/src/catalogue/podcasts/2024-02-17-if-books-could-kill.md b/src/podcasts/2024-02-17-if-books-could-kill.md similarity index 67% rename from src/catalogue/podcasts/2024-02-17-if-books-could-kill.md rename to src/podcasts/2024-02-17-if-books-could-kill.md index 4041ee3..325c427 100644 --- a/src/catalogue/podcasts/2024-02-17-if-books-could-kill.md +++ b/src/podcasts/2024-02-17-if-books-could-kill.md @@ -1,16 +1,14 @@ --- title: If Books Could Kill url: https://www.ifbookspod.com/ +rss: https://feeds.buzzsprout.com/2040953.rss image: https://cdn.wonderfulfrog.com/images/if-books-could-kill.jpeg +description: A podcast about airport books. +moreText: "Suggested episodes" --- -I will follow Michael Hobbes to the ends of the earth. - -## Favourite episodes - - [The Art of the Deal](https://www.buzzsprout.com/2040953/14286395-the-art-of-the-deal) - [Malcolm Gladwell's "Outliers"](https://www.buzzsprout.com/2040953/11658428-malcolm-gladwell-s-outliers) - [Rich Dad Poor Dad](https://www.buzzsprout.com/2040953/12593204-rich-dad-poor-dad) - [The Subtle Art of Not Giving a F\*ck](https://www.buzzsprout.com/2040953/14006961-the-subtle-art-of-not-giving-a-f-ck) - How is it that I always fall for the light right-wingers? I still respect the book for the impact it had on me, but Mark Manson has completely lost the plot lately. His second book was not worth the money I paid for it. - [The 48 Laws of Power](https://www.buzzsprout.com/2040953/13887364-the-48-laws-of-power) diff --git a/src/catalogue/podcasts/2024-02-20-9-12.md b/src/podcasts/2024-02-20-9-12.md similarity index 55% rename from src/catalogue/podcasts/2024-02-20-9-12.md rename to src/podcasts/2024-02-20-9-12.md index f92459f..50c0f52 100644 --- a/src/catalogue/podcasts/2024-02-20-9-12.md +++ b/src/podcasts/2024-02-20-9-12.md @@ -1,8 +1,8 @@ --- title: 9/12 -rating: 4 image: https://cdn.wonderfulfrog.com/images/21dcd7ff8bee7ea7122dd755078befbef85978d7ee34af54840833a606d375da90a4f8a295842e8d2b58f4db5dfa6a69859a209e3c346f5f268546110b2b6d45.jpeg url: https://art19.com/shows/9-12 +description: What happened the day after 9/11/2001? +rss: https://rss.art19.com/9-12 +isCompleted: true --- - -What's it like the day _after_ 9/11? That's what this podcast explores. Dan Taberski proves he is a masterful host again and weaves a poignant narrative around "the next day". diff --git a/src/catalogue/podcasts/2024-02-20-a-death-in-cryptoland.md b/src/podcasts/2024-02-20-a-death-in-cryptoland.md similarity index 52% rename from src/catalogue/podcasts/2024-02-20-a-death-in-cryptoland.md rename to src/podcasts/2024-02-20-a-death-in-cryptoland.md index 09b8f81..9804fb0 100644 --- a/src/catalogue/podcasts/2024-02-20-a-death-in-cryptoland.md +++ b/src/podcasts/2024-02-20-a-death-in-cryptoland.md @@ -1,8 +1,7 @@ --- title: A Death in Cryptoland -rating: 5 image: https://cdn.wonderfulfrog.com/images/adeathincryptoland-podcast-template-lg.avif url: https://www.cbc.ca/listen/cbc-podcasts/904-a-death-in-cryptoland +description: What happens when the leader of a cryptocurrency exchange suddenly dies? +isCompleted: true --- - -Thoughts on cryptocurrency aside, this whole thing is _wild_. Every twist and turn continues to escalate - you'd be excused if you thought this was a piece of fiction. diff --git a/src/catalogue/podcasts/2024-02-20-boys-like-me.md b/src/podcasts/2024-02-20-boys-like-me.md similarity index 94% rename from src/catalogue/podcasts/2024-02-20-boys-like-me.md rename to src/podcasts/2024-02-20-boys-like-me.md index fe468f2..9ce94f8 100644 --- a/src/catalogue/podcasts/2024-02-20-boys-like-me.md +++ b/src/podcasts/2024-02-20-boys-like-me.md @@ -1,8 +1,9 @@ --- title: Boys Like Me -rating: 5 image: https://cdn.wonderfulfrog.com/images/BoysLikeMe-podcast-template.avif url: https://www.cbc.ca/listen/cbc-podcasts/1035-boys-like-me +isCompleted: true +description: A deep dive into the growing incel movement. --- For those wondering how the modern incel movement starting gaining so much traction - this podcast explores how the movement started and how it has got so far. diff --git a/src/catalogue/podcasts/2024-02-20-conversations-with-people-who-hate-me.md b/src/podcasts/2024-02-20-conversations-with-people-who-hate-me.md similarity index 90% rename from src/catalogue/podcasts/2024-02-20-conversations-with-people-who-hate-me.md rename to src/podcasts/2024-02-20-conversations-with-people-who-hate-me.md index 3bfd206..45991d2 100644 --- a/src/catalogue/podcasts/2024-02-20-conversations-with-people-who-hate-me.md +++ b/src/podcasts/2024-02-20-conversations-with-people-who-hate-me.md @@ -1,8 +1,9 @@ --- title: Conversations With People Who Hate Me -rating: 5 image: https://cdn.wonderfulfrog.com/images/Conversations-With-People-Who-Hate-Me-Square-Logo.png url: https://www.dylanmarron.com/podcast +isCompleted: true +description: What would it be like to meet and talk with your haters? --- A uniquely humanizing experience when Dylan chats with his haters. It's surprising to me how many people backtrack their comments (or at least stand by the spirit and not the delivery). I do think anonymity has this boosting effect in people's willingness to be mean (putting it lightly). diff --git a/src/catalogue/podcasts/2024-02-20-project-unabom.md b/src/podcasts/2024-02-20-project-unabom.md similarity index 87% rename from src/catalogue/podcasts/2024-02-20-project-unabom.md rename to src/podcasts/2024-02-20-project-unabom.md index f133b62..f27d67f 100644 --- a/src/catalogue/podcasts/2024-02-20-project-unabom.md +++ b/src/podcasts/2024-02-20-project-unabom.md @@ -1,8 +1,9 @@ --- title: Project Unabom -rating: 5 image: https://cdn.wonderfulfrog.com/images/313x0w.webp url: https://podcasts.apple.com/ca/podcast/project-unabom/id1627613321 +isCompleted: true +description: Who was the Unabomber? --- A fascinating podcast that kept me fully engaged all the way through. The presentation is top-notch. diff --git a/src/catalogue/podcasts/2024-02-20-redemption-of-jar-jar-binks.md b/src/podcasts/2024-02-20-redemption-of-jar-jar-binks.md similarity index 78% rename from src/catalogue/podcasts/2024-02-20-redemption-of-jar-jar-binks.md rename to src/podcasts/2024-02-20-redemption-of-jar-jar-binks.md index 88f17d6..587964f 100644 --- a/src/catalogue/podcasts/2024-02-20-redemption-of-jar-jar-binks.md +++ b/src/podcasts/2024-02-20-redemption-of-jar-jar-binks.md @@ -1,8 +1,9 @@ --- title: The Redemption of Jar Jar Binks -rating: 5 image: https://cdn.wonderfulfrog.com/images/Jar_Jar_250x250.jpg url: https://www.ted.com/podcasts/the-redemption-of-jar-jar-binks +isCompleted: true +description: Quite possibly the target of the first online hate campaign - what happened to Jar Jar Binks before and after the movies released? --- The interviews with Ahmed Best in particular are wonderful. I'm ashamed that I was once a part of the online hate brigade that targeted their ire toward Jar Jar. It's so easy to forget that there is a human behind the CGI - a human behind the character. diff --git a/src/catalogue/podcasts/2024-02-20-the-flamethrowers.md b/src/podcasts/2024-02-20-the-flamethrowers.md similarity index 86% rename from src/catalogue/podcasts/2024-02-20-the-flamethrowers.md rename to src/podcasts/2024-02-20-the-flamethrowers.md index 30c1974..e4c4fee 100644 --- a/src/catalogue/podcasts/2024-02-20-the-flamethrowers.md +++ b/src/podcasts/2024-02-20-the-flamethrowers.md @@ -1,8 +1,9 @@ --- title: The Flamethrowers -rating: 5 image: https://cdn.wonderfulfrog.com/images/theflamethrowers-podcast-template.avif url: https://www.cbc.ca/listen/cbc-podcasts/1026-the-flamethrowers +isCompleted: true +description: All about the takeover of American AM radio by right-wing talking heads. --- I appreciated the host's occasional sense of humour, because the podcast uses real audio from some of the right-wind radio hosts and it can be... vitriolic, to put it nicely. I don't know what to do but immediately laugh after some of the hateful bile these men spew. diff --git a/src/catalogue/podcasts/2024-02-20-the-new-gurus.md b/src/podcasts/2024-02-20-the-new-gurus.md similarity index 86% rename from src/catalogue/podcasts/2024-02-20-the-new-gurus.md rename to src/podcasts/2024-02-20-the-new-gurus.md index a4353a4..5d557f7 100644 --- a/src/catalogue/podcasts/2024-02-20-the-new-gurus.md +++ b/src/podcasts/2024-02-20-the-new-gurus.md @@ -1,8 +1,9 @@ --- title: The New Gurus -rating: 5 image: https://cdn.wonderfulfrog.com/images/the-new-gurus.webp url: https://podcasts.apple.com/ca/podcast/the-new-gurus/id1659385785 +isCompleted: true +description: Everyone is obsessed with finding a guru - and shysters take advantage of that. Is your guru unscrupulous? --- There is an obsession with finding a guru - a subject matter expert - and trying to learn from them. I should know - I spent a large part of my 20s following the advice of wealthy, privileged white men telling me how to live a fulfilling life. Just wake up a 5am, just meditate every day for 30 minutes, just just just... I hate the word "just" now and treat it like a hangnail. diff --git a/src/podcasts/2025-01-24-20k-hertz.md b/src/podcasts/2025-01-24-20k-hertz.md new file mode 100644 index 0000000..91c7bba --- /dev/null +++ b/src/podcasts/2025-01-24-20k-hertz.md @@ -0,0 +1,11 @@ +--- +title: Twenty Thousand Hertz +url: https://www.20k.org/ +description: A podcast all about sound. +moreText: "Suggested episodes" +--- + +- [Zelda: A Beep to the Past](https://www.20k.org/episodes/zeldabeep) +- [Zelda: Tones of the Kingdom](https://www.20k.org/episodes/zeldatones) +- [I'm Lovin' It](https://www.20k.org/episodes/imlovinit) +- [Cat Translation Guide](https://www.20k.org/episodes/cat-translation-guide) diff --git a/src/podcasts/podcasts.11tydata.js b/src/podcasts/podcasts.11tydata.js new file mode 100644 index 0000000..d88e514 --- /dev/null +++ b/src/podcasts/podcasts.11tydata.js @@ -0,0 +1,3 @@ +export default { + tags: "podcast", +}; -- 2.47.2 From 3d875101c6ddddcbeb91972483235a94a9b3f65e Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Fri, 24 Jan 2025 21:47:12 -0800 Subject: [PATCH 37/56] feat: reorganize content directories --- src/{ => content}/books/2016-08-29-the-way-of-kings.md | 0 src/{ => content}/books/2019-05-25-the-dip.md | 0 src/{ => content}/books/2019-05-25-the-subtle-art.md | 0 src/{ => content}/books/2019-05-25-the-total-money-makeover.md | 0 src/{ => content}/books/2019-05-25-why-we-get-fat.md | 0 src/{ => content}/books/2019-05-31-digital-minimalism.md | 0 src/{ => content}/books/2019-08-06-dare-to-lead.md | 0 src/{ => content}/books/2019-09-04-effective-engineer.md | 0 src/{ => content}/books/2019-09-07-atomic-habits.md | 0 src/{ => content}/books/2019-10-21-ego-is-the-enemy.md | 0 src/{ => content}/books/2019-10-22-meditations.md | 0 src/{ => content}/books/2019-12-04-deep-work.md | 0 src/{ => content}/books/2019-12-04-why-we-sleep.md | 0 src/{ => content}/books/2020-06-01-astrophyics-for-people.md | 0 src/{ => content}/books/2020-07-01-the-hate-u-give.md | 0 src/{ => content}/books/2020-08-01-the-skin-were-in.md | 0 src/{ => content}/books/2020-09-02-the-big-leap.md | 0 .../books/2021-09-09-joshua-whitehead-jonny-appleseed.md | 0 .../books/2021-09-09-scott-mccloud-understanding-comics.md | 0 .../books/2021-09-09-victoria-ortiz-dissenter-on-the-bench.md | 0 src/{ => content}/books/2021-09-17-jim-butcher-peace-talks.md | 0 ...hat-we-dont-talk-about-when-we-talk-about-fat-aubrey-gordon.md | 0 src/{ => content}/books/2024-02-25-stolen-focus.md | 0 src/{ => content}/books/books.11tydata.js | 0 src/{ => content}/games/2012-02-26-yoshis-island.md | 0 src/{ => content}/games/2015-03-01-majoras-mask-3d.md | 0 src/{ => content}/games/2015-04-18-mario-and-luigi-dream-team.md | 0 .../games/2015-04-21-donkey-kong-country-tropical-freeze.md | 0 .../games/2015-04-26-professor-layton-vs-phoenix-wright.md | 0 src/{ => content}/games/2015-05-15-the-wonderful-101.md | 0 src/{ => content}/games/2015-12-02-fallout-4.md | 0 src/{ => content}/games/2016-03-16-persona-3-portable.md | 0 src/{ => content}/games/2016-08-22-shovel-knight.md | 0 src/{ => content}/games/2016-08-24-tomb-raider.md | 0 src/{ => content}/games/2016-12-31-assassins-creed-black-flag.md | 0 src/{ => content}/games/2017-01-02-doom-2016.md | 0 src/{ => content}/games/2017-01-29-hyper-light-drifter.md | 0 src/{ => content}/games/2017-02-26-vanquish.md | 0 src/{ => content}/games/2017-12-20-persona-5.md | 0 src/{ => content}/games/2018-04-10-axiom-verge.md | 0 .../games/2022-03-20-animal-crossing-new-horizons.md | 0 src/{ => content}/games/2024-01-07-her-story.md | 0 .../games/2024-01-19-middle-earth-shadow-of-mordor.md | 0 src/{ => content}/games/2024-01-27-citizen-sleeper.md | 0 src/{ => content}/games/games.11tydata.js | 0 src/{ => content}/movies/2022-01-25-coraline.md | 0 src/{ => content}/movies/2024-09-28-megalopolis.md | 0 src/{ => content}/movies/2024-09-30-sugarcane.md | 0 src/{ => content}/movies/2024-10-30-your-monster.md | 0 src/{ => content}/movies/2024-10-31-dracula-a-d-1972.md | 0 src/{ => content}/movies/2024-10-31-dracula.md | 0 src/{ => content}/movies/2024-11-08-woman-of-the-hour.md | 0 src/{ => content}/movies/2024-11-09-tetris.md | 0 src/{ => content}/movies/2024-11-20-flow.md | 0 src/{ => content}/movies/2025-01-06-conclave.md | 0 src/{ => content}/movies/movies.11tydata.js | 0 src/{ => content}/podcasts/2021-08-25-history-of-the-90s.md | 0 src/{ => content}/podcasts/2021-08-25-hunting-warhead.md | 0 src/{ => content}/podcasts/2021-08-25-maintenance-phase.md | 0 src/{ => content}/podcasts/2021-08-25-reply-all.md | 0 src/{ => content}/podcasts/2021-08-25-running-from-cops.md | 0 src/{ => content}/podcasts/2021-08-25-surviving-y2k.md | 0 src/{ => content}/podcasts/2021-08-25-youre-wrong-about.md | 0 src/{ => content}/podcasts/2024-02-17-if-books-could-kill.md | 0 src/{ => content}/podcasts/2024-02-20-9-12.md | 0 src/{ => content}/podcasts/2024-02-20-a-death-in-cryptoland.md | 0 src/{ => content}/podcasts/2024-02-20-boys-like-me.md | 0 .../podcasts/2024-02-20-conversations-with-people-who-hate-me.md | 0 src/{ => content}/podcasts/2024-02-20-project-unabom.md | 0 .../podcasts/2024-02-20-redemption-of-jar-jar-binks.md | 0 src/{ => content}/podcasts/2024-02-20-the-flamethrowers.md | 0 src/{ => content}/podcasts/2024-02-20-the-new-gurus.md | 0 src/{ => content}/podcasts/2025-01-24-20k-hertz.md | 0 src/{ => content}/podcasts/podcasts.11tydata.js | 0 src/{ => content}/posts/2018-11-24-switching-to-protonmail.md | 0 src/{ => content}/posts/2018-12-09-my-vinyl-journey.md | 0 .../posts/2019-01-07-professional-development-in-2018.md | 0 src/{ => content}/posts/2019-04-13-how-this-blog-works.md | 0 src/{ => content}/posts/2019-05-20-apple-watch-thoughts.md | 0 src/{ => content}/posts/2019-09-14-coming-back-to-vinyl.md | 0 src/{ => content}/posts/2019-10-26-the-suspense-is-killing-me.md | 0 .../posts/2020-01-23-professional-development-in-2019.md | 0 src/{ => content}/posts/2020-05-18-recently-05-2020.md | 0 src/{ => content}/posts/2020-06-02-recently-06-2020.md | 0 src/{ => content}/posts/2020-07-04-recently-07-2020.md | 0 src/{ => content}/posts/2020-07-26-take-the-power-back-music.md | 0 src/{ => content}/posts/2020-08-02-recently-08-2020.md | 0 src/{ => content}/posts/2020-08-16-give-in-to-feel-good.md | 0 src/{ => content}/posts/2020-09-02-recently-09-2020.md | 0 src/{ => content}/posts/2020-09-13-whats-next.md | 0 src/{ => content}/posts/2020-10-04-recently-10-2020.md | 0 src/{ => content}/posts/2020-11-06-recently-11-2020.md | 0 src/{ => content}/posts/2020-12-07-recently-12-2020.md | 0 src/{ => content}/posts/2021-01-09-2020-in-review.md | 0 .../posts/2021-01-10-tadpoles-the-big-little-migration.md | 0 src/{ => content}/posts/2021-01-12-remember-to-be-nice.md | 0 .../posts/2021-01-27-a-primer-on-canadian-government.md | 0 src/{ => content}/posts/2021-02-01-recently-02-2021.md | 0 src/{ => content}/posts/2021-03-05-recently-03-2021.md | 0 src/{ => content}/posts/2021-04-01-recently-04-2021.md | 0 src/{ => content}/posts/2021-04-18-my-vim-setup.md | 0 src/{ => content}/posts/2021-05-01-recently-05-2021.md | 0 src/{ => content}/posts/2021-06-01-recently-06-2021.md | 0 src/{ => content}/posts/2021-07-03-gmtk-post-mortem.md | 0 src/{ => content}/posts/2021-07-05-recently-07-2021.md | 0 src/{ => content}/posts/2021-08-15-weaknotes-1.md | 0 src/{ => content}/posts/2021-08-22-weaknotes-2.md | 0 src/{ => content}/posts/2021-08-30-weaknotes-3.md | 0 src/{ => content}/posts/2021-09-13-weaknotes-4.md | 0 src/{ => content}/posts/2021-09-19-version-2.md | 0 src/{ => content}/posts/2021-09-27-stray-thoughts-1.md | 0 src/{ => content}/posts/2021-10-03-stray-thoughts-2.md | 0 src/{ => content}/posts/2021-10-12-stray-thoughts-3.md | 0 src/{ => content}/posts/2021-11-24-checking-in.md | 0 src/{ => content}/posts/2022-01-18-2021-ranked-games.md | 0 .../posts/2022-01-22-the-fellow-stagg-a-review-of-the-details.md | 0 src/{ => content}/posts/2022-02-01-recently-02-2022.md | 0 src/{ => content}/posts/2022-10-02-its-been-a-while.md | 0 src/{ => content}/posts/2024-01-02-lately.md | 0 .../posts/2024-02-13-the-photography-behind-earthrise.md | 0 src/{ => content}/posts/2024-02-26-on-a-silver-platter.md | 0 src/{ => content}/posts/2024-03-02-version-3.md | 0 src/{ => content}/posts/2024-05-22-laid-off.md | 0 src/{ => content}/posts/2024-06-09-weekly-notes-1.md | 0 src/{ => content}/posts/2024-06-16-weekly-notes-2.md | 0 src/{ => content}/posts/2024-06-22-weekly-notes-3.md | 0 src/{ => content}/posts/2024-06-27-music-today-is-great.md | 0 src/{ => content}/posts/2024-06-30-weekly-notes-4.md | 0 src/{ => content}/posts/2024-07-07-weekly-notes-5.md | 0 src/{ => content}/posts/2024-07-14-weekly-notes-6.md | 0 src/{ => content}/posts/2024-07-28-weekly-notes-7.md | 0 src/{ => content}/posts/2024-09-30-sugarcane.md | 0 src/{ => content}/posts/2024-09-30-weekly-notes-8.md | 0 src/{ => content}/posts/2024-10-06-weekly-notes-9.md | 0 src/{ => content}/posts/2024-11-21-weekly-notes-10.md | 0 src/{ => content}/posts/2024-12-31-2024-recap.md | 0 src/{ => content}/posts/2025-01-02-watching-in-2024.md | 0 src/{ => content}/posts/2025-01-06-13-albums-to-know-me.md | 0 src/{ => content}/posts/2025-01-10-default-app-changes-in-2024.md | 0 src/{ => content}/posts/posts.json | 0 src/{ => content}/shows/2025-01-20-solo-leveling.md | 0 src/{ => content}/shows/shows.11tydata.js | 0 src/{ => pages}/feeds/posts.njk | 0 143 files changed, 0 insertions(+), 0 deletions(-) rename src/{ => content}/books/2016-08-29-the-way-of-kings.md (100%) rename src/{ => content}/books/2019-05-25-the-dip.md (100%) rename src/{ => content}/books/2019-05-25-the-subtle-art.md (100%) rename src/{ => content}/books/2019-05-25-the-total-money-makeover.md (100%) rename src/{ => content}/books/2019-05-25-why-we-get-fat.md (100%) rename src/{ => content}/books/2019-05-31-digital-minimalism.md (100%) rename src/{ => content}/books/2019-08-06-dare-to-lead.md (100%) rename src/{ => content}/books/2019-09-04-effective-engineer.md (100%) rename src/{ => content}/books/2019-09-07-atomic-habits.md (100%) rename src/{ => content}/books/2019-10-21-ego-is-the-enemy.md (100%) rename src/{ => content}/books/2019-10-22-meditations.md (100%) rename src/{ => content}/books/2019-12-04-deep-work.md (100%) rename src/{ => content}/books/2019-12-04-why-we-sleep.md (100%) rename src/{ => content}/books/2020-06-01-astrophyics-for-people.md (100%) rename src/{ => content}/books/2020-07-01-the-hate-u-give.md (100%) rename src/{ => content}/books/2020-08-01-the-skin-were-in.md (100%) rename src/{ => content}/books/2020-09-02-the-big-leap.md (100%) rename src/{ => content}/books/2021-09-09-joshua-whitehead-jonny-appleseed.md (100%) rename src/{ => content}/books/2021-09-09-scott-mccloud-understanding-comics.md (100%) rename src/{ => content}/books/2021-09-09-victoria-ortiz-dissenter-on-the-bench.md (100%) rename src/{ => content}/books/2021-09-17-jim-butcher-peace-talks.md (100%) rename src/{ => content}/books/2021-11-28-what-we-dont-talk-about-when-we-talk-about-fat-aubrey-gordon.md (100%) rename src/{ => content}/books/2024-02-25-stolen-focus.md (100%) rename src/{ => content}/books/books.11tydata.js (100%) rename src/{ => content}/games/2012-02-26-yoshis-island.md (100%) rename src/{ => content}/games/2015-03-01-majoras-mask-3d.md (100%) rename src/{ => content}/games/2015-04-18-mario-and-luigi-dream-team.md (100%) rename src/{ => content}/games/2015-04-21-donkey-kong-country-tropical-freeze.md (100%) rename src/{ => content}/games/2015-04-26-professor-layton-vs-phoenix-wright.md (100%) rename src/{ => content}/games/2015-05-15-the-wonderful-101.md (100%) rename src/{ => content}/games/2015-12-02-fallout-4.md (100%) rename src/{ => content}/games/2016-03-16-persona-3-portable.md (100%) rename src/{ => content}/games/2016-08-22-shovel-knight.md (100%) rename src/{ => content}/games/2016-08-24-tomb-raider.md (100%) rename src/{ => content}/games/2016-12-31-assassins-creed-black-flag.md (100%) rename src/{ => content}/games/2017-01-02-doom-2016.md (100%) rename src/{ => content}/games/2017-01-29-hyper-light-drifter.md (100%) rename src/{ => content}/games/2017-02-26-vanquish.md (100%) rename src/{ => content}/games/2017-12-20-persona-5.md (100%) rename src/{ => content}/games/2018-04-10-axiom-verge.md (100%) rename src/{ => content}/games/2022-03-20-animal-crossing-new-horizons.md (100%) rename src/{ => content}/games/2024-01-07-her-story.md (100%) rename src/{ => content}/games/2024-01-19-middle-earth-shadow-of-mordor.md (100%) rename src/{ => content}/games/2024-01-27-citizen-sleeper.md (100%) rename src/{ => content}/games/games.11tydata.js (100%) rename src/{ => content}/movies/2022-01-25-coraline.md (100%) rename src/{ => content}/movies/2024-09-28-megalopolis.md (100%) rename src/{ => content}/movies/2024-09-30-sugarcane.md (100%) rename src/{ => content}/movies/2024-10-30-your-monster.md (100%) rename src/{ => content}/movies/2024-10-31-dracula-a-d-1972.md (100%) rename src/{ => content}/movies/2024-10-31-dracula.md (100%) rename src/{ => content}/movies/2024-11-08-woman-of-the-hour.md (100%) rename src/{ => content}/movies/2024-11-09-tetris.md (100%) rename src/{ => content}/movies/2024-11-20-flow.md (100%) rename src/{ => content}/movies/2025-01-06-conclave.md (100%) rename src/{ => content}/movies/movies.11tydata.js (100%) rename src/{ => content}/podcasts/2021-08-25-history-of-the-90s.md (100%) rename src/{ => content}/podcasts/2021-08-25-hunting-warhead.md (100%) rename src/{ => content}/podcasts/2021-08-25-maintenance-phase.md (100%) rename src/{ => content}/podcasts/2021-08-25-reply-all.md (100%) rename src/{ => content}/podcasts/2021-08-25-running-from-cops.md (100%) rename src/{ => content}/podcasts/2021-08-25-surviving-y2k.md (100%) rename src/{ => content}/podcasts/2021-08-25-youre-wrong-about.md (100%) rename src/{ => content}/podcasts/2024-02-17-if-books-could-kill.md (100%) rename src/{ => content}/podcasts/2024-02-20-9-12.md (100%) rename src/{ => content}/podcasts/2024-02-20-a-death-in-cryptoland.md (100%) rename src/{ => content}/podcasts/2024-02-20-boys-like-me.md (100%) rename src/{ => content}/podcasts/2024-02-20-conversations-with-people-who-hate-me.md (100%) rename src/{ => content}/podcasts/2024-02-20-project-unabom.md (100%) rename src/{ => content}/podcasts/2024-02-20-redemption-of-jar-jar-binks.md (100%) rename src/{ => content}/podcasts/2024-02-20-the-flamethrowers.md (100%) rename src/{ => content}/podcasts/2024-02-20-the-new-gurus.md (100%) rename src/{ => content}/podcasts/2025-01-24-20k-hertz.md (100%) rename src/{ => content}/podcasts/podcasts.11tydata.js (100%) rename src/{ => content}/posts/2018-11-24-switching-to-protonmail.md (100%) rename src/{ => content}/posts/2018-12-09-my-vinyl-journey.md (100%) rename src/{ => content}/posts/2019-01-07-professional-development-in-2018.md (100%) rename src/{ => content}/posts/2019-04-13-how-this-blog-works.md (100%) rename src/{ => content}/posts/2019-05-20-apple-watch-thoughts.md (100%) rename src/{ => content}/posts/2019-09-14-coming-back-to-vinyl.md (100%) rename src/{ => content}/posts/2019-10-26-the-suspense-is-killing-me.md (100%) rename src/{ => content}/posts/2020-01-23-professional-development-in-2019.md (100%) rename src/{ => content}/posts/2020-05-18-recently-05-2020.md (100%) rename src/{ => content}/posts/2020-06-02-recently-06-2020.md (100%) rename src/{ => content}/posts/2020-07-04-recently-07-2020.md (100%) rename src/{ => content}/posts/2020-07-26-take-the-power-back-music.md (100%) rename src/{ => content}/posts/2020-08-02-recently-08-2020.md (100%) rename src/{ => content}/posts/2020-08-16-give-in-to-feel-good.md (100%) rename src/{ => content}/posts/2020-09-02-recently-09-2020.md (100%) rename src/{ => content}/posts/2020-09-13-whats-next.md (100%) rename src/{ => content}/posts/2020-10-04-recently-10-2020.md (100%) rename src/{ => content}/posts/2020-11-06-recently-11-2020.md (100%) rename src/{ => content}/posts/2020-12-07-recently-12-2020.md (100%) rename src/{ => content}/posts/2021-01-09-2020-in-review.md (100%) rename src/{ => content}/posts/2021-01-10-tadpoles-the-big-little-migration.md (100%) rename src/{ => content}/posts/2021-01-12-remember-to-be-nice.md (100%) rename src/{ => content}/posts/2021-01-27-a-primer-on-canadian-government.md (100%) rename src/{ => content}/posts/2021-02-01-recently-02-2021.md (100%) rename src/{ => content}/posts/2021-03-05-recently-03-2021.md (100%) rename src/{ => content}/posts/2021-04-01-recently-04-2021.md (100%) rename src/{ => content}/posts/2021-04-18-my-vim-setup.md (100%) rename src/{ => content}/posts/2021-05-01-recently-05-2021.md (100%) rename src/{ => content}/posts/2021-06-01-recently-06-2021.md (100%) rename src/{ => content}/posts/2021-07-03-gmtk-post-mortem.md (100%) rename src/{ => content}/posts/2021-07-05-recently-07-2021.md (100%) rename src/{ => content}/posts/2021-08-15-weaknotes-1.md (100%) rename src/{ => content}/posts/2021-08-22-weaknotes-2.md (100%) rename src/{ => content}/posts/2021-08-30-weaknotes-3.md (100%) rename src/{ => content}/posts/2021-09-13-weaknotes-4.md (100%) rename src/{ => content}/posts/2021-09-19-version-2.md (100%) rename src/{ => content}/posts/2021-09-27-stray-thoughts-1.md (100%) rename src/{ => content}/posts/2021-10-03-stray-thoughts-2.md (100%) rename src/{ => content}/posts/2021-10-12-stray-thoughts-3.md (100%) rename src/{ => content}/posts/2021-11-24-checking-in.md (100%) rename src/{ => content}/posts/2022-01-18-2021-ranked-games.md (100%) rename src/{ => content}/posts/2022-01-22-the-fellow-stagg-a-review-of-the-details.md (100%) rename src/{ => content}/posts/2022-02-01-recently-02-2022.md (100%) rename src/{ => content}/posts/2022-10-02-its-been-a-while.md (100%) rename src/{ => content}/posts/2024-01-02-lately.md (100%) rename src/{ => content}/posts/2024-02-13-the-photography-behind-earthrise.md (100%) rename src/{ => content}/posts/2024-02-26-on-a-silver-platter.md (100%) rename src/{ => content}/posts/2024-03-02-version-3.md (100%) rename src/{ => content}/posts/2024-05-22-laid-off.md (100%) rename src/{ => content}/posts/2024-06-09-weekly-notes-1.md (100%) rename src/{ => content}/posts/2024-06-16-weekly-notes-2.md (100%) rename src/{ => content}/posts/2024-06-22-weekly-notes-3.md (100%) rename src/{ => content}/posts/2024-06-27-music-today-is-great.md (100%) rename src/{ => content}/posts/2024-06-30-weekly-notes-4.md (100%) rename src/{ => content}/posts/2024-07-07-weekly-notes-5.md (100%) rename src/{ => content}/posts/2024-07-14-weekly-notes-6.md (100%) rename src/{ => content}/posts/2024-07-28-weekly-notes-7.md (100%) rename src/{ => content}/posts/2024-09-30-sugarcane.md (100%) rename src/{ => content}/posts/2024-09-30-weekly-notes-8.md (100%) rename src/{ => content}/posts/2024-10-06-weekly-notes-9.md (100%) rename src/{ => content}/posts/2024-11-21-weekly-notes-10.md (100%) rename src/{ => content}/posts/2024-12-31-2024-recap.md (100%) rename src/{ => content}/posts/2025-01-02-watching-in-2024.md (100%) rename src/{ => content}/posts/2025-01-06-13-albums-to-know-me.md (100%) rename src/{ => content}/posts/2025-01-10-default-app-changes-in-2024.md (100%) rename src/{ => content}/posts/posts.json (100%) rename src/{ => content}/shows/2025-01-20-solo-leveling.md (100%) rename src/{ => content}/shows/shows.11tydata.js (100%) rename src/{ => pages}/feeds/posts.njk (100%) diff --git a/src/books/2016-08-29-the-way-of-kings.md b/src/content/books/2016-08-29-the-way-of-kings.md similarity index 100% rename from src/books/2016-08-29-the-way-of-kings.md rename to src/content/books/2016-08-29-the-way-of-kings.md diff --git a/src/books/2019-05-25-the-dip.md b/src/content/books/2019-05-25-the-dip.md similarity index 100% rename from src/books/2019-05-25-the-dip.md rename to src/content/books/2019-05-25-the-dip.md diff --git a/src/books/2019-05-25-the-subtle-art.md b/src/content/books/2019-05-25-the-subtle-art.md similarity index 100% rename from src/books/2019-05-25-the-subtle-art.md rename to src/content/books/2019-05-25-the-subtle-art.md diff --git a/src/books/2019-05-25-the-total-money-makeover.md b/src/content/books/2019-05-25-the-total-money-makeover.md similarity index 100% rename from src/books/2019-05-25-the-total-money-makeover.md rename to src/content/books/2019-05-25-the-total-money-makeover.md diff --git a/src/books/2019-05-25-why-we-get-fat.md b/src/content/books/2019-05-25-why-we-get-fat.md similarity index 100% rename from src/books/2019-05-25-why-we-get-fat.md rename to src/content/books/2019-05-25-why-we-get-fat.md diff --git a/src/books/2019-05-31-digital-minimalism.md b/src/content/books/2019-05-31-digital-minimalism.md similarity index 100% rename from src/books/2019-05-31-digital-minimalism.md rename to src/content/books/2019-05-31-digital-minimalism.md diff --git a/src/books/2019-08-06-dare-to-lead.md b/src/content/books/2019-08-06-dare-to-lead.md similarity index 100% rename from src/books/2019-08-06-dare-to-lead.md rename to src/content/books/2019-08-06-dare-to-lead.md diff --git a/src/books/2019-09-04-effective-engineer.md b/src/content/books/2019-09-04-effective-engineer.md similarity index 100% rename from src/books/2019-09-04-effective-engineer.md rename to src/content/books/2019-09-04-effective-engineer.md diff --git a/src/books/2019-09-07-atomic-habits.md b/src/content/books/2019-09-07-atomic-habits.md similarity index 100% rename from src/books/2019-09-07-atomic-habits.md rename to src/content/books/2019-09-07-atomic-habits.md diff --git a/src/books/2019-10-21-ego-is-the-enemy.md b/src/content/books/2019-10-21-ego-is-the-enemy.md similarity index 100% rename from src/books/2019-10-21-ego-is-the-enemy.md rename to src/content/books/2019-10-21-ego-is-the-enemy.md diff --git a/src/books/2019-10-22-meditations.md b/src/content/books/2019-10-22-meditations.md similarity index 100% rename from src/books/2019-10-22-meditations.md rename to src/content/books/2019-10-22-meditations.md diff --git a/src/books/2019-12-04-deep-work.md b/src/content/books/2019-12-04-deep-work.md similarity index 100% rename from src/books/2019-12-04-deep-work.md rename to src/content/books/2019-12-04-deep-work.md diff --git a/src/books/2019-12-04-why-we-sleep.md b/src/content/books/2019-12-04-why-we-sleep.md similarity index 100% rename from src/books/2019-12-04-why-we-sleep.md rename to src/content/books/2019-12-04-why-we-sleep.md diff --git a/src/books/2020-06-01-astrophyics-for-people.md b/src/content/books/2020-06-01-astrophyics-for-people.md similarity index 100% rename from src/books/2020-06-01-astrophyics-for-people.md rename to src/content/books/2020-06-01-astrophyics-for-people.md diff --git a/src/books/2020-07-01-the-hate-u-give.md b/src/content/books/2020-07-01-the-hate-u-give.md similarity index 100% rename from src/books/2020-07-01-the-hate-u-give.md rename to src/content/books/2020-07-01-the-hate-u-give.md diff --git a/src/books/2020-08-01-the-skin-were-in.md b/src/content/books/2020-08-01-the-skin-were-in.md similarity index 100% rename from src/books/2020-08-01-the-skin-were-in.md rename to src/content/books/2020-08-01-the-skin-were-in.md diff --git a/src/books/2020-09-02-the-big-leap.md b/src/content/books/2020-09-02-the-big-leap.md similarity index 100% rename from src/books/2020-09-02-the-big-leap.md rename to src/content/books/2020-09-02-the-big-leap.md diff --git a/src/books/2021-09-09-joshua-whitehead-jonny-appleseed.md b/src/content/books/2021-09-09-joshua-whitehead-jonny-appleseed.md similarity index 100% rename from src/books/2021-09-09-joshua-whitehead-jonny-appleseed.md rename to src/content/books/2021-09-09-joshua-whitehead-jonny-appleseed.md diff --git a/src/books/2021-09-09-scott-mccloud-understanding-comics.md b/src/content/books/2021-09-09-scott-mccloud-understanding-comics.md similarity index 100% rename from src/books/2021-09-09-scott-mccloud-understanding-comics.md rename to src/content/books/2021-09-09-scott-mccloud-understanding-comics.md diff --git a/src/books/2021-09-09-victoria-ortiz-dissenter-on-the-bench.md b/src/content/books/2021-09-09-victoria-ortiz-dissenter-on-the-bench.md similarity index 100% rename from src/books/2021-09-09-victoria-ortiz-dissenter-on-the-bench.md rename to src/content/books/2021-09-09-victoria-ortiz-dissenter-on-the-bench.md diff --git a/src/books/2021-09-17-jim-butcher-peace-talks.md b/src/content/books/2021-09-17-jim-butcher-peace-talks.md similarity index 100% rename from src/books/2021-09-17-jim-butcher-peace-talks.md rename to src/content/books/2021-09-17-jim-butcher-peace-talks.md diff --git a/src/books/2021-11-28-what-we-dont-talk-about-when-we-talk-about-fat-aubrey-gordon.md b/src/content/books/2021-11-28-what-we-dont-talk-about-when-we-talk-about-fat-aubrey-gordon.md similarity index 100% rename from src/books/2021-11-28-what-we-dont-talk-about-when-we-talk-about-fat-aubrey-gordon.md rename to src/content/books/2021-11-28-what-we-dont-talk-about-when-we-talk-about-fat-aubrey-gordon.md diff --git a/src/books/2024-02-25-stolen-focus.md b/src/content/books/2024-02-25-stolen-focus.md similarity index 100% rename from src/books/2024-02-25-stolen-focus.md rename to src/content/books/2024-02-25-stolen-focus.md diff --git a/src/books/books.11tydata.js b/src/content/books/books.11tydata.js similarity index 100% rename from src/books/books.11tydata.js rename to src/content/books/books.11tydata.js diff --git a/src/games/2012-02-26-yoshis-island.md b/src/content/games/2012-02-26-yoshis-island.md similarity index 100% rename from src/games/2012-02-26-yoshis-island.md rename to src/content/games/2012-02-26-yoshis-island.md diff --git a/src/games/2015-03-01-majoras-mask-3d.md b/src/content/games/2015-03-01-majoras-mask-3d.md similarity index 100% rename from src/games/2015-03-01-majoras-mask-3d.md rename to src/content/games/2015-03-01-majoras-mask-3d.md diff --git a/src/games/2015-04-18-mario-and-luigi-dream-team.md b/src/content/games/2015-04-18-mario-and-luigi-dream-team.md similarity index 100% rename from src/games/2015-04-18-mario-and-luigi-dream-team.md rename to src/content/games/2015-04-18-mario-and-luigi-dream-team.md diff --git a/src/games/2015-04-21-donkey-kong-country-tropical-freeze.md b/src/content/games/2015-04-21-donkey-kong-country-tropical-freeze.md similarity index 100% rename from src/games/2015-04-21-donkey-kong-country-tropical-freeze.md rename to src/content/games/2015-04-21-donkey-kong-country-tropical-freeze.md diff --git a/src/games/2015-04-26-professor-layton-vs-phoenix-wright.md b/src/content/games/2015-04-26-professor-layton-vs-phoenix-wright.md similarity index 100% rename from src/games/2015-04-26-professor-layton-vs-phoenix-wright.md rename to src/content/games/2015-04-26-professor-layton-vs-phoenix-wright.md diff --git a/src/games/2015-05-15-the-wonderful-101.md b/src/content/games/2015-05-15-the-wonderful-101.md similarity index 100% rename from src/games/2015-05-15-the-wonderful-101.md rename to src/content/games/2015-05-15-the-wonderful-101.md diff --git a/src/games/2015-12-02-fallout-4.md b/src/content/games/2015-12-02-fallout-4.md similarity index 100% rename from src/games/2015-12-02-fallout-4.md rename to src/content/games/2015-12-02-fallout-4.md diff --git a/src/games/2016-03-16-persona-3-portable.md b/src/content/games/2016-03-16-persona-3-portable.md similarity index 100% rename from src/games/2016-03-16-persona-3-portable.md rename to src/content/games/2016-03-16-persona-3-portable.md diff --git a/src/games/2016-08-22-shovel-knight.md b/src/content/games/2016-08-22-shovel-knight.md similarity index 100% rename from src/games/2016-08-22-shovel-knight.md rename to src/content/games/2016-08-22-shovel-knight.md diff --git a/src/games/2016-08-24-tomb-raider.md b/src/content/games/2016-08-24-tomb-raider.md similarity index 100% rename from src/games/2016-08-24-tomb-raider.md rename to src/content/games/2016-08-24-tomb-raider.md diff --git a/src/games/2016-12-31-assassins-creed-black-flag.md b/src/content/games/2016-12-31-assassins-creed-black-flag.md similarity index 100% rename from src/games/2016-12-31-assassins-creed-black-flag.md rename to src/content/games/2016-12-31-assassins-creed-black-flag.md diff --git a/src/games/2017-01-02-doom-2016.md b/src/content/games/2017-01-02-doom-2016.md similarity index 100% rename from src/games/2017-01-02-doom-2016.md rename to src/content/games/2017-01-02-doom-2016.md diff --git a/src/games/2017-01-29-hyper-light-drifter.md b/src/content/games/2017-01-29-hyper-light-drifter.md similarity index 100% rename from src/games/2017-01-29-hyper-light-drifter.md rename to src/content/games/2017-01-29-hyper-light-drifter.md diff --git a/src/games/2017-02-26-vanquish.md b/src/content/games/2017-02-26-vanquish.md similarity index 100% rename from src/games/2017-02-26-vanquish.md rename to src/content/games/2017-02-26-vanquish.md diff --git a/src/games/2017-12-20-persona-5.md b/src/content/games/2017-12-20-persona-5.md similarity index 100% rename from src/games/2017-12-20-persona-5.md rename to src/content/games/2017-12-20-persona-5.md diff --git a/src/games/2018-04-10-axiom-verge.md b/src/content/games/2018-04-10-axiom-verge.md similarity index 100% rename from src/games/2018-04-10-axiom-verge.md rename to src/content/games/2018-04-10-axiom-verge.md diff --git a/src/games/2022-03-20-animal-crossing-new-horizons.md b/src/content/games/2022-03-20-animal-crossing-new-horizons.md similarity index 100% rename from src/games/2022-03-20-animal-crossing-new-horizons.md rename to src/content/games/2022-03-20-animal-crossing-new-horizons.md diff --git a/src/games/2024-01-07-her-story.md b/src/content/games/2024-01-07-her-story.md similarity index 100% rename from src/games/2024-01-07-her-story.md rename to src/content/games/2024-01-07-her-story.md diff --git a/src/games/2024-01-19-middle-earth-shadow-of-mordor.md b/src/content/games/2024-01-19-middle-earth-shadow-of-mordor.md similarity index 100% rename from src/games/2024-01-19-middle-earth-shadow-of-mordor.md rename to src/content/games/2024-01-19-middle-earth-shadow-of-mordor.md diff --git a/src/games/2024-01-27-citizen-sleeper.md b/src/content/games/2024-01-27-citizen-sleeper.md similarity index 100% rename from src/games/2024-01-27-citizen-sleeper.md rename to src/content/games/2024-01-27-citizen-sleeper.md diff --git a/src/games/games.11tydata.js b/src/content/games/games.11tydata.js similarity index 100% rename from src/games/games.11tydata.js rename to src/content/games/games.11tydata.js diff --git a/src/movies/2022-01-25-coraline.md b/src/content/movies/2022-01-25-coraline.md similarity index 100% rename from src/movies/2022-01-25-coraline.md rename to src/content/movies/2022-01-25-coraline.md diff --git a/src/movies/2024-09-28-megalopolis.md b/src/content/movies/2024-09-28-megalopolis.md similarity index 100% rename from src/movies/2024-09-28-megalopolis.md rename to src/content/movies/2024-09-28-megalopolis.md diff --git a/src/movies/2024-09-30-sugarcane.md b/src/content/movies/2024-09-30-sugarcane.md similarity index 100% rename from src/movies/2024-09-30-sugarcane.md rename to src/content/movies/2024-09-30-sugarcane.md diff --git a/src/movies/2024-10-30-your-monster.md b/src/content/movies/2024-10-30-your-monster.md similarity index 100% rename from src/movies/2024-10-30-your-monster.md rename to src/content/movies/2024-10-30-your-monster.md diff --git a/src/movies/2024-10-31-dracula-a-d-1972.md b/src/content/movies/2024-10-31-dracula-a-d-1972.md similarity index 100% rename from src/movies/2024-10-31-dracula-a-d-1972.md rename to src/content/movies/2024-10-31-dracula-a-d-1972.md diff --git a/src/movies/2024-10-31-dracula.md b/src/content/movies/2024-10-31-dracula.md similarity index 100% rename from src/movies/2024-10-31-dracula.md rename to src/content/movies/2024-10-31-dracula.md diff --git a/src/movies/2024-11-08-woman-of-the-hour.md b/src/content/movies/2024-11-08-woman-of-the-hour.md similarity index 100% rename from src/movies/2024-11-08-woman-of-the-hour.md rename to src/content/movies/2024-11-08-woman-of-the-hour.md diff --git a/src/movies/2024-11-09-tetris.md b/src/content/movies/2024-11-09-tetris.md similarity index 100% rename from src/movies/2024-11-09-tetris.md rename to src/content/movies/2024-11-09-tetris.md diff --git a/src/movies/2024-11-20-flow.md b/src/content/movies/2024-11-20-flow.md similarity index 100% rename from src/movies/2024-11-20-flow.md rename to src/content/movies/2024-11-20-flow.md diff --git a/src/movies/2025-01-06-conclave.md b/src/content/movies/2025-01-06-conclave.md similarity index 100% rename from src/movies/2025-01-06-conclave.md rename to src/content/movies/2025-01-06-conclave.md diff --git a/src/movies/movies.11tydata.js b/src/content/movies/movies.11tydata.js similarity index 100% rename from src/movies/movies.11tydata.js rename to src/content/movies/movies.11tydata.js diff --git a/src/podcasts/2021-08-25-history-of-the-90s.md b/src/content/podcasts/2021-08-25-history-of-the-90s.md similarity index 100% rename from src/podcasts/2021-08-25-history-of-the-90s.md rename to src/content/podcasts/2021-08-25-history-of-the-90s.md diff --git a/src/podcasts/2021-08-25-hunting-warhead.md b/src/content/podcasts/2021-08-25-hunting-warhead.md similarity index 100% rename from src/podcasts/2021-08-25-hunting-warhead.md rename to src/content/podcasts/2021-08-25-hunting-warhead.md diff --git a/src/podcasts/2021-08-25-maintenance-phase.md b/src/content/podcasts/2021-08-25-maintenance-phase.md similarity index 100% rename from src/podcasts/2021-08-25-maintenance-phase.md rename to src/content/podcasts/2021-08-25-maintenance-phase.md diff --git a/src/podcasts/2021-08-25-reply-all.md b/src/content/podcasts/2021-08-25-reply-all.md similarity index 100% rename from src/podcasts/2021-08-25-reply-all.md rename to src/content/podcasts/2021-08-25-reply-all.md diff --git a/src/podcasts/2021-08-25-running-from-cops.md b/src/content/podcasts/2021-08-25-running-from-cops.md similarity index 100% rename from src/podcasts/2021-08-25-running-from-cops.md rename to src/content/podcasts/2021-08-25-running-from-cops.md diff --git a/src/podcasts/2021-08-25-surviving-y2k.md b/src/content/podcasts/2021-08-25-surviving-y2k.md similarity index 100% rename from src/podcasts/2021-08-25-surviving-y2k.md rename to src/content/podcasts/2021-08-25-surviving-y2k.md diff --git a/src/podcasts/2021-08-25-youre-wrong-about.md b/src/content/podcasts/2021-08-25-youre-wrong-about.md similarity index 100% rename from src/podcasts/2021-08-25-youre-wrong-about.md rename to src/content/podcasts/2021-08-25-youre-wrong-about.md diff --git a/src/podcasts/2024-02-17-if-books-could-kill.md b/src/content/podcasts/2024-02-17-if-books-could-kill.md similarity index 100% rename from src/podcasts/2024-02-17-if-books-could-kill.md rename to src/content/podcasts/2024-02-17-if-books-could-kill.md diff --git a/src/podcasts/2024-02-20-9-12.md b/src/content/podcasts/2024-02-20-9-12.md similarity index 100% rename from src/podcasts/2024-02-20-9-12.md rename to src/content/podcasts/2024-02-20-9-12.md diff --git a/src/podcasts/2024-02-20-a-death-in-cryptoland.md b/src/content/podcasts/2024-02-20-a-death-in-cryptoland.md similarity index 100% rename from src/podcasts/2024-02-20-a-death-in-cryptoland.md rename to src/content/podcasts/2024-02-20-a-death-in-cryptoland.md diff --git a/src/podcasts/2024-02-20-boys-like-me.md b/src/content/podcasts/2024-02-20-boys-like-me.md similarity index 100% rename from src/podcasts/2024-02-20-boys-like-me.md rename to src/content/podcasts/2024-02-20-boys-like-me.md diff --git a/src/podcasts/2024-02-20-conversations-with-people-who-hate-me.md b/src/content/podcasts/2024-02-20-conversations-with-people-who-hate-me.md similarity index 100% rename from src/podcasts/2024-02-20-conversations-with-people-who-hate-me.md rename to src/content/podcasts/2024-02-20-conversations-with-people-who-hate-me.md diff --git a/src/podcasts/2024-02-20-project-unabom.md b/src/content/podcasts/2024-02-20-project-unabom.md similarity index 100% rename from src/podcasts/2024-02-20-project-unabom.md rename to src/content/podcasts/2024-02-20-project-unabom.md diff --git a/src/podcasts/2024-02-20-redemption-of-jar-jar-binks.md b/src/content/podcasts/2024-02-20-redemption-of-jar-jar-binks.md similarity index 100% rename from src/podcasts/2024-02-20-redemption-of-jar-jar-binks.md rename to src/content/podcasts/2024-02-20-redemption-of-jar-jar-binks.md diff --git a/src/podcasts/2024-02-20-the-flamethrowers.md b/src/content/podcasts/2024-02-20-the-flamethrowers.md similarity index 100% rename from src/podcasts/2024-02-20-the-flamethrowers.md rename to src/content/podcasts/2024-02-20-the-flamethrowers.md diff --git a/src/podcasts/2024-02-20-the-new-gurus.md b/src/content/podcasts/2024-02-20-the-new-gurus.md similarity index 100% rename from src/podcasts/2024-02-20-the-new-gurus.md rename to src/content/podcasts/2024-02-20-the-new-gurus.md diff --git a/src/podcasts/2025-01-24-20k-hertz.md b/src/content/podcasts/2025-01-24-20k-hertz.md similarity index 100% rename from src/podcasts/2025-01-24-20k-hertz.md rename to src/content/podcasts/2025-01-24-20k-hertz.md diff --git a/src/podcasts/podcasts.11tydata.js b/src/content/podcasts/podcasts.11tydata.js similarity index 100% rename from src/podcasts/podcasts.11tydata.js rename to src/content/podcasts/podcasts.11tydata.js diff --git a/src/posts/2018-11-24-switching-to-protonmail.md b/src/content/posts/2018-11-24-switching-to-protonmail.md similarity index 100% rename from src/posts/2018-11-24-switching-to-protonmail.md rename to src/content/posts/2018-11-24-switching-to-protonmail.md diff --git a/src/posts/2018-12-09-my-vinyl-journey.md b/src/content/posts/2018-12-09-my-vinyl-journey.md similarity index 100% rename from src/posts/2018-12-09-my-vinyl-journey.md rename to src/content/posts/2018-12-09-my-vinyl-journey.md diff --git a/src/posts/2019-01-07-professional-development-in-2018.md b/src/content/posts/2019-01-07-professional-development-in-2018.md similarity index 100% rename from src/posts/2019-01-07-professional-development-in-2018.md rename to src/content/posts/2019-01-07-professional-development-in-2018.md diff --git a/src/posts/2019-04-13-how-this-blog-works.md b/src/content/posts/2019-04-13-how-this-blog-works.md similarity index 100% rename from src/posts/2019-04-13-how-this-blog-works.md rename to src/content/posts/2019-04-13-how-this-blog-works.md diff --git a/src/posts/2019-05-20-apple-watch-thoughts.md b/src/content/posts/2019-05-20-apple-watch-thoughts.md similarity index 100% rename from src/posts/2019-05-20-apple-watch-thoughts.md rename to src/content/posts/2019-05-20-apple-watch-thoughts.md diff --git a/src/posts/2019-09-14-coming-back-to-vinyl.md b/src/content/posts/2019-09-14-coming-back-to-vinyl.md similarity index 100% rename from src/posts/2019-09-14-coming-back-to-vinyl.md rename to src/content/posts/2019-09-14-coming-back-to-vinyl.md diff --git a/src/posts/2019-10-26-the-suspense-is-killing-me.md b/src/content/posts/2019-10-26-the-suspense-is-killing-me.md similarity index 100% rename from src/posts/2019-10-26-the-suspense-is-killing-me.md rename to src/content/posts/2019-10-26-the-suspense-is-killing-me.md diff --git a/src/posts/2020-01-23-professional-development-in-2019.md b/src/content/posts/2020-01-23-professional-development-in-2019.md similarity index 100% rename from src/posts/2020-01-23-professional-development-in-2019.md rename to src/content/posts/2020-01-23-professional-development-in-2019.md diff --git a/src/posts/2020-05-18-recently-05-2020.md b/src/content/posts/2020-05-18-recently-05-2020.md similarity index 100% rename from src/posts/2020-05-18-recently-05-2020.md rename to src/content/posts/2020-05-18-recently-05-2020.md diff --git a/src/posts/2020-06-02-recently-06-2020.md b/src/content/posts/2020-06-02-recently-06-2020.md similarity index 100% rename from src/posts/2020-06-02-recently-06-2020.md rename to src/content/posts/2020-06-02-recently-06-2020.md diff --git a/src/posts/2020-07-04-recently-07-2020.md b/src/content/posts/2020-07-04-recently-07-2020.md similarity index 100% rename from src/posts/2020-07-04-recently-07-2020.md rename to src/content/posts/2020-07-04-recently-07-2020.md diff --git a/src/posts/2020-07-26-take-the-power-back-music.md b/src/content/posts/2020-07-26-take-the-power-back-music.md similarity index 100% rename from src/posts/2020-07-26-take-the-power-back-music.md rename to src/content/posts/2020-07-26-take-the-power-back-music.md diff --git a/src/posts/2020-08-02-recently-08-2020.md b/src/content/posts/2020-08-02-recently-08-2020.md similarity index 100% rename from src/posts/2020-08-02-recently-08-2020.md rename to src/content/posts/2020-08-02-recently-08-2020.md diff --git a/src/posts/2020-08-16-give-in-to-feel-good.md b/src/content/posts/2020-08-16-give-in-to-feel-good.md similarity index 100% rename from src/posts/2020-08-16-give-in-to-feel-good.md rename to src/content/posts/2020-08-16-give-in-to-feel-good.md diff --git a/src/posts/2020-09-02-recently-09-2020.md b/src/content/posts/2020-09-02-recently-09-2020.md similarity index 100% rename from src/posts/2020-09-02-recently-09-2020.md rename to src/content/posts/2020-09-02-recently-09-2020.md diff --git a/src/posts/2020-09-13-whats-next.md b/src/content/posts/2020-09-13-whats-next.md similarity index 100% rename from src/posts/2020-09-13-whats-next.md rename to src/content/posts/2020-09-13-whats-next.md diff --git a/src/posts/2020-10-04-recently-10-2020.md b/src/content/posts/2020-10-04-recently-10-2020.md similarity index 100% rename from src/posts/2020-10-04-recently-10-2020.md rename to src/content/posts/2020-10-04-recently-10-2020.md diff --git a/src/posts/2020-11-06-recently-11-2020.md b/src/content/posts/2020-11-06-recently-11-2020.md similarity index 100% rename from src/posts/2020-11-06-recently-11-2020.md rename to src/content/posts/2020-11-06-recently-11-2020.md diff --git a/src/posts/2020-12-07-recently-12-2020.md b/src/content/posts/2020-12-07-recently-12-2020.md similarity index 100% rename from src/posts/2020-12-07-recently-12-2020.md rename to src/content/posts/2020-12-07-recently-12-2020.md diff --git a/src/posts/2021-01-09-2020-in-review.md b/src/content/posts/2021-01-09-2020-in-review.md similarity index 100% rename from src/posts/2021-01-09-2020-in-review.md rename to src/content/posts/2021-01-09-2020-in-review.md diff --git a/src/posts/2021-01-10-tadpoles-the-big-little-migration.md b/src/content/posts/2021-01-10-tadpoles-the-big-little-migration.md similarity index 100% rename from src/posts/2021-01-10-tadpoles-the-big-little-migration.md rename to src/content/posts/2021-01-10-tadpoles-the-big-little-migration.md diff --git a/src/posts/2021-01-12-remember-to-be-nice.md b/src/content/posts/2021-01-12-remember-to-be-nice.md similarity index 100% rename from src/posts/2021-01-12-remember-to-be-nice.md rename to src/content/posts/2021-01-12-remember-to-be-nice.md diff --git a/src/posts/2021-01-27-a-primer-on-canadian-government.md b/src/content/posts/2021-01-27-a-primer-on-canadian-government.md similarity index 100% rename from src/posts/2021-01-27-a-primer-on-canadian-government.md rename to src/content/posts/2021-01-27-a-primer-on-canadian-government.md diff --git a/src/posts/2021-02-01-recently-02-2021.md b/src/content/posts/2021-02-01-recently-02-2021.md similarity index 100% rename from src/posts/2021-02-01-recently-02-2021.md rename to src/content/posts/2021-02-01-recently-02-2021.md diff --git a/src/posts/2021-03-05-recently-03-2021.md b/src/content/posts/2021-03-05-recently-03-2021.md similarity index 100% rename from src/posts/2021-03-05-recently-03-2021.md rename to src/content/posts/2021-03-05-recently-03-2021.md diff --git a/src/posts/2021-04-01-recently-04-2021.md b/src/content/posts/2021-04-01-recently-04-2021.md similarity index 100% rename from src/posts/2021-04-01-recently-04-2021.md rename to src/content/posts/2021-04-01-recently-04-2021.md diff --git a/src/posts/2021-04-18-my-vim-setup.md b/src/content/posts/2021-04-18-my-vim-setup.md similarity index 100% rename from src/posts/2021-04-18-my-vim-setup.md rename to src/content/posts/2021-04-18-my-vim-setup.md diff --git a/src/posts/2021-05-01-recently-05-2021.md b/src/content/posts/2021-05-01-recently-05-2021.md similarity index 100% rename from src/posts/2021-05-01-recently-05-2021.md rename to src/content/posts/2021-05-01-recently-05-2021.md diff --git a/src/posts/2021-06-01-recently-06-2021.md b/src/content/posts/2021-06-01-recently-06-2021.md similarity index 100% rename from src/posts/2021-06-01-recently-06-2021.md rename to src/content/posts/2021-06-01-recently-06-2021.md diff --git a/src/posts/2021-07-03-gmtk-post-mortem.md b/src/content/posts/2021-07-03-gmtk-post-mortem.md similarity index 100% rename from src/posts/2021-07-03-gmtk-post-mortem.md rename to src/content/posts/2021-07-03-gmtk-post-mortem.md diff --git a/src/posts/2021-07-05-recently-07-2021.md b/src/content/posts/2021-07-05-recently-07-2021.md similarity index 100% rename from src/posts/2021-07-05-recently-07-2021.md rename to src/content/posts/2021-07-05-recently-07-2021.md diff --git a/src/posts/2021-08-15-weaknotes-1.md b/src/content/posts/2021-08-15-weaknotes-1.md similarity index 100% rename from src/posts/2021-08-15-weaknotes-1.md rename to src/content/posts/2021-08-15-weaknotes-1.md diff --git a/src/posts/2021-08-22-weaknotes-2.md b/src/content/posts/2021-08-22-weaknotes-2.md similarity index 100% rename from src/posts/2021-08-22-weaknotes-2.md rename to src/content/posts/2021-08-22-weaknotes-2.md diff --git a/src/posts/2021-08-30-weaknotes-3.md b/src/content/posts/2021-08-30-weaknotes-3.md similarity index 100% rename from src/posts/2021-08-30-weaknotes-3.md rename to src/content/posts/2021-08-30-weaknotes-3.md diff --git a/src/posts/2021-09-13-weaknotes-4.md b/src/content/posts/2021-09-13-weaknotes-4.md similarity index 100% rename from src/posts/2021-09-13-weaknotes-4.md rename to src/content/posts/2021-09-13-weaknotes-4.md diff --git a/src/posts/2021-09-19-version-2.md b/src/content/posts/2021-09-19-version-2.md similarity index 100% rename from src/posts/2021-09-19-version-2.md rename to src/content/posts/2021-09-19-version-2.md diff --git a/src/posts/2021-09-27-stray-thoughts-1.md b/src/content/posts/2021-09-27-stray-thoughts-1.md similarity index 100% rename from src/posts/2021-09-27-stray-thoughts-1.md rename to src/content/posts/2021-09-27-stray-thoughts-1.md diff --git a/src/posts/2021-10-03-stray-thoughts-2.md b/src/content/posts/2021-10-03-stray-thoughts-2.md similarity index 100% rename from src/posts/2021-10-03-stray-thoughts-2.md rename to src/content/posts/2021-10-03-stray-thoughts-2.md diff --git a/src/posts/2021-10-12-stray-thoughts-3.md b/src/content/posts/2021-10-12-stray-thoughts-3.md similarity index 100% rename from src/posts/2021-10-12-stray-thoughts-3.md rename to src/content/posts/2021-10-12-stray-thoughts-3.md diff --git a/src/posts/2021-11-24-checking-in.md b/src/content/posts/2021-11-24-checking-in.md similarity index 100% rename from src/posts/2021-11-24-checking-in.md rename to src/content/posts/2021-11-24-checking-in.md diff --git a/src/posts/2022-01-18-2021-ranked-games.md b/src/content/posts/2022-01-18-2021-ranked-games.md similarity index 100% rename from src/posts/2022-01-18-2021-ranked-games.md rename to src/content/posts/2022-01-18-2021-ranked-games.md diff --git a/src/posts/2022-01-22-the-fellow-stagg-a-review-of-the-details.md b/src/content/posts/2022-01-22-the-fellow-stagg-a-review-of-the-details.md similarity index 100% rename from src/posts/2022-01-22-the-fellow-stagg-a-review-of-the-details.md rename to src/content/posts/2022-01-22-the-fellow-stagg-a-review-of-the-details.md diff --git a/src/posts/2022-02-01-recently-02-2022.md b/src/content/posts/2022-02-01-recently-02-2022.md similarity index 100% rename from src/posts/2022-02-01-recently-02-2022.md rename to src/content/posts/2022-02-01-recently-02-2022.md diff --git a/src/posts/2022-10-02-its-been-a-while.md b/src/content/posts/2022-10-02-its-been-a-while.md similarity index 100% rename from src/posts/2022-10-02-its-been-a-while.md rename to src/content/posts/2022-10-02-its-been-a-while.md diff --git a/src/posts/2024-01-02-lately.md b/src/content/posts/2024-01-02-lately.md similarity index 100% rename from src/posts/2024-01-02-lately.md rename to src/content/posts/2024-01-02-lately.md diff --git a/src/posts/2024-02-13-the-photography-behind-earthrise.md b/src/content/posts/2024-02-13-the-photography-behind-earthrise.md similarity index 100% rename from src/posts/2024-02-13-the-photography-behind-earthrise.md rename to src/content/posts/2024-02-13-the-photography-behind-earthrise.md diff --git a/src/posts/2024-02-26-on-a-silver-platter.md b/src/content/posts/2024-02-26-on-a-silver-platter.md similarity index 100% rename from src/posts/2024-02-26-on-a-silver-platter.md rename to src/content/posts/2024-02-26-on-a-silver-platter.md diff --git a/src/posts/2024-03-02-version-3.md b/src/content/posts/2024-03-02-version-3.md similarity index 100% rename from src/posts/2024-03-02-version-3.md rename to src/content/posts/2024-03-02-version-3.md diff --git a/src/posts/2024-05-22-laid-off.md b/src/content/posts/2024-05-22-laid-off.md similarity index 100% rename from src/posts/2024-05-22-laid-off.md rename to src/content/posts/2024-05-22-laid-off.md diff --git a/src/posts/2024-06-09-weekly-notes-1.md b/src/content/posts/2024-06-09-weekly-notes-1.md similarity index 100% rename from src/posts/2024-06-09-weekly-notes-1.md rename to src/content/posts/2024-06-09-weekly-notes-1.md diff --git a/src/posts/2024-06-16-weekly-notes-2.md b/src/content/posts/2024-06-16-weekly-notes-2.md similarity index 100% rename from src/posts/2024-06-16-weekly-notes-2.md rename to src/content/posts/2024-06-16-weekly-notes-2.md diff --git a/src/posts/2024-06-22-weekly-notes-3.md b/src/content/posts/2024-06-22-weekly-notes-3.md similarity index 100% rename from src/posts/2024-06-22-weekly-notes-3.md rename to src/content/posts/2024-06-22-weekly-notes-3.md diff --git a/src/posts/2024-06-27-music-today-is-great.md b/src/content/posts/2024-06-27-music-today-is-great.md similarity index 100% rename from src/posts/2024-06-27-music-today-is-great.md rename to src/content/posts/2024-06-27-music-today-is-great.md diff --git a/src/posts/2024-06-30-weekly-notes-4.md b/src/content/posts/2024-06-30-weekly-notes-4.md similarity index 100% rename from src/posts/2024-06-30-weekly-notes-4.md rename to src/content/posts/2024-06-30-weekly-notes-4.md diff --git a/src/posts/2024-07-07-weekly-notes-5.md b/src/content/posts/2024-07-07-weekly-notes-5.md similarity index 100% rename from src/posts/2024-07-07-weekly-notes-5.md rename to src/content/posts/2024-07-07-weekly-notes-5.md diff --git a/src/posts/2024-07-14-weekly-notes-6.md b/src/content/posts/2024-07-14-weekly-notes-6.md similarity index 100% rename from src/posts/2024-07-14-weekly-notes-6.md rename to src/content/posts/2024-07-14-weekly-notes-6.md diff --git a/src/posts/2024-07-28-weekly-notes-7.md b/src/content/posts/2024-07-28-weekly-notes-7.md similarity index 100% rename from src/posts/2024-07-28-weekly-notes-7.md rename to src/content/posts/2024-07-28-weekly-notes-7.md diff --git a/src/posts/2024-09-30-sugarcane.md b/src/content/posts/2024-09-30-sugarcane.md similarity index 100% rename from src/posts/2024-09-30-sugarcane.md rename to src/content/posts/2024-09-30-sugarcane.md diff --git a/src/posts/2024-09-30-weekly-notes-8.md b/src/content/posts/2024-09-30-weekly-notes-8.md similarity index 100% rename from src/posts/2024-09-30-weekly-notes-8.md rename to src/content/posts/2024-09-30-weekly-notes-8.md diff --git a/src/posts/2024-10-06-weekly-notes-9.md b/src/content/posts/2024-10-06-weekly-notes-9.md similarity index 100% rename from src/posts/2024-10-06-weekly-notes-9.md rename to src/content/posts/2024-10-06-weekly-notes-9.md diff --git a/src/posts/2024-11-21-weekly-notes-10.md b/src/content/posts/2024-11-21-weekly-notes-10.md similarity index 100% rename from src/posts/2024-11-21-weekly-notes-10.md rename to src/content/posts/2024-11-21-weekly-notes-10.md diff --git a/src/posts/2024-12-31-2024-recap.md b/src/content/posts/2024-12-31-2024-recap.md similarity index 100% rename from src/posts/2024-12-31-2024-recap.md rename to src/content/posts/2024-12-31-2024-recap.md diff --git a/src/posts/2025-01-02-watching-in-2024.md b/src/content/posts/2025-01-02-watching-in-2024.md similarity index 100% rename from src/posts/2025-01-02-watching-in-2024.md rename to src/content/posts/2025-01-02-watching-in-2024.md diff --git a/src/posts/2025-01-06-13-albums-to-know-me.md b/src/content/posts/2025-01-06-13-albums-to-know-me.md similarity index 100% rename from src/posts/2025-01-06-13-albums-to-know-me.md rename to src/content/posts/2025-01-06-13-albums-to-know-me.md diff --git a/src/posts/2025-01-10-default-app-changes-in-2024.md b/src/content/posts/2025-01-10-default-app-changes-in-2024.md similarity index 100% rename from src/posts/2025-01-10-default-app-changes-in-2024.md rename to src/content/posts/2025-01-10-default-app-changes-in-2024.md diff --git a/src/posts/posts.json b/src/content/posts/posts.json similarity index 100% rename from src/posts/posts.json rename to src/content/posts/posts.json diff --git a/src/shows/2025-01-20-solo-leveling.md b/src/content/shows/2025-01-20-solo-leveling.md similarity index 100% rename from src/shows/2025-01-20-solo-leveling.md rename to src/content/shows/2025-01-20-solo-leveling.md diff --git a/src/shows/shows.11tydata.js b/src/content/shows/shows.11tydata.js similarity index 100% rename from src/shows/shows.11tydata.js rename to src/content/shows/shows.11tydata.js diff --git a/src/feeds/posts.njk b/src/pages/feeds/posts.njk similarity index 100% rename from src/feeds/posts.njk rename to src/pages/feeds/posts.njk -- 2.47.2 From 067152ff83242a31bd4c38edc1ddcc871be67932 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Fri, 24 Jan 2025 21:57:10 -0800 Subject: [PATCH 38/56] feat: exclude podcasts from page output --- src/content/podcasts/podcasts.11tydata.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/content/podcasts/podcasts.11tydata.js b/src/content/podcasts/podcasts.11tydata.js index d88e514..b2d443a 100644 --- a/src/content/podcasts/podcasts.11tydata.js +++ b/src/content/podcasts/podcasts.11tydata.js @@ -1,3 +1,4 @@ export default { tags: "podcast", + permalink: false, }; -- 2.47.2 From 12ed6f0e345d70c7fdb764884c40da31fa077037 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Fri, 24 Jan 2025 22:17:52 -0800 Subject: [PATCH 39/56] chore: delete guestbook page --- src/pages/guestbook.html | 39 --------------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 src/pages/guestbook.html diff --git a/src/pages/guestbook.html b/src/pages/guestbook.html deleted file mode 100644 index 3e3125d..0000000 --- a/src/pages/guestbook.html +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Guestbook -description: Remember guestbooks? They're back! In the same form! ---- - -Hello and welcome to my guestbook. - - -
- -

- -

-

- -

-

- -

-

- -

-
-- 2.47.2 From 1847cc96efb40132df2ba0b8b0d0e2f0d3d54464 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Fri, 24 Jan 2025 22:31:10 -0800 Subject: [PATCH 40/56] chore: remove bracket syntax for css classes in html --- src/_includes/layouts/base.html | 4 +-- src/_includes/layouts/book.html | 4 +-- src/_includes/layouts/game.html | 4 +-- src/_includes/layouts/post.html | 10 +++---- src/_includes/macros/catalogue.njk | 26 ------------------ src/_includes/macros/date.njk | 4 +-- src/_includes/macros/posts.njk | 16 +++++------ src/_includes/macros/utils.njk | 6 ++--- src/_includes/partials/catalogue-types.html | 11 -------- src/_includes/partials/footer.html | 26 +++++++++--------- src/_includes/partials/header.html | 14 +++++----- src/_includes/partials/menu.html | 6 ++--- src/index.html | 2 +- src/pages/404.html | 2 +- src/pages/blogroll.html | 2 +- src/pages/books/index.html | 4 +-- src/pages/books/tags.html | 4 +-- src/pages/contact.html | 12 +++++++++ src/pages/fun/ray.html | 1 + src/pages/games/index.html | 4 +-- src/pages/games/tags.html | 4 +-- src/pages/links.md | 28 ------------------- src/pages/now.html | 6 ++--- src/pages/posts.html | 2 +- src/pages/styleguide.html | 30 ++++++++++----------- src/pages/tag.html | 2 +- src/pages/tags.html | 6 ++--- src/pages/watching/movies/recent.html | 4 +-- src/pages/watching/movies/tags.html | 4 +-- src/pages/watching/shows/recent.html | 4 +-- src/pages/watching/shows/tags.html | 4 +-- src/pages/webrings.html | 8 +++--- 32 files changed, 104 insertions(+), 160 deletions(-) delete mode 100644 src/_includes/macros/catalogue.njk delete mode 100644 src/_includes/partials/catalogue-types.html delete mode 100644 src/pages/links.md diff --git a/src/_includes/layouts/base.html b/src/_includes/layouts/base.html index fae8088..dc9c2ce 100644 --- a/src/_includes/layouts/base.html +++ b/src/_includes/layouts/base.html @@ -22,10 +22,10 @@ src="https://cdn.jsdelivr.net/npm/@justinribeiro/lite-youtube@1.4.0/lite-youtube.min.js"> {% endif %} - + {% noRobots %} {% include "partials/header.html" %} -
+
{{ content | safe }}
{% include "partials/footer.html" %} diff --git a/src/_includes/layouts/book.html b/src/_includes/layouts/book.html index bb075f8..9c46c8e 100644 --- a/src/_includes/layouts/book.html +++ b/src/_includes/layouts/book.html @@ -38,10 +38,10 @@ layout: "layouts/base"
-
    +
      {% for tag in tags | filter("book") %}
    • - + {% include "svgs/frame.svg" %} {{ tag }}
    • diff --git a/src/_includes/layouts/game.html b/src/_includes/layouts/game.html index f2ce8b0..9edb458 100644 --- a/src/_includes/layouts/game.html +++ b/src/_includes/layouts/game.html @@ -41,10 +41,10 @@ layout: "layouts/base"
      -
        +
          {% for tag in tags | filter("game") %}
        • - + {% include "svgs/frame.svg" %} {{ tag }}
        • diff --git a/src/_includes/layouts/post.html b/src/_includes/layouts/post.html index d4a2fc5..09860ee 100644 --- a/src/_includes/layouts/post.html +++ b/src/_includes/layouts/post.html @@ -3,15 +3,15 @@ layout: "layouts/base" --- {% from "macros/date.njk" import format %} -
          -
          +
          +
          {{ format(page.date) }}

          {{ title }}

          -

          {{ excerpt }}

          -
            +

            {{ excerpt }}

            +
              {% for tag in tags | filter(["post"]) %}
            • - + {% include "svgs/frame.svg" %} {{ tag }}
            • diff --git a/src/_includes/macros/catalogue.njk b/src/_includes/macros/catalogue.njk deleted file mode 100644 index 69ba1d5..0000000 --- a/src/_includes/macros/catalogue.njk +++ /dev/null @@ -1,26 +0,0 @@ -{% from "macros/utils.njk" import stars %} -{% macro one(post, format, showType = true) %} -
              -
              - {{ post.data.title }} - {% if showType %}

              {{ post.data.tags[1] }}

              {% endif %} -
              -
              - {% if post.data.rating %}{{ stars(post.data.rating) }}{% endif %} -
              -
              -{% endmacro %} -{% macro list(posts, showType = true) %} -
                - {% for post in posts %}
              1. {{ one(post, format, showType) }}
              2. {% endfor %} -
              -{% endmacro %} -{% macro yearList(posts, year, format = "MM/DD", showType = true) %} -
              -
              -

              {{ year }}

              -

              {{ posts | length }}

              -
              - {{ list(posts, format) }} -
              -{% endmacro %} diff --git a/src/_includes/macros/date.njk b/src/_includes/macros/date.njk index 75570bb..21c70c2 100644 --- a/src/_includes/macros/date.njk +++ b/src/_includes/macros/date.njk @@ -1,6 +1,6 @@ {% macro format(dateString) %} - {% endmacro %} diff --git a/src/_includes/macros/posts.njk b/src/_includes/macros/posts.njk index a7189a0..99a64f5 100644 --- a/src/_includes/macros/posts.njk +++ b/src/_includes/macros/posts.njk @@ -1,20 +1,20 @@ {% macro one(post, fmt = "MM/DD") %} -
              +
              {{ post.data.title }} - -

              {{ post.data.excerpt }}

              + +

              {{ post.data.excerpt }}

              {% endmacro %} {% macro list(posts, format = "MM/DD") %} -
                - {% for post in posts %}
              1. {{ one(post, format) }}
              2. {% endfor %} +
                  + {% for post in posts %}
                1. {{ one(post, format) }}
                2. {% endfor %}
                {% endmacro %} {% macro yearList(posts, year, format = "MM/DD") %} -
                -
                +
                +

                {{ year }}

                -

                {{ posts | length }}

                +

                {{ posts | length }}

                {{ list(posts, format) }}
                diff --git a/src/_includes/macros/utils.njk b/src/_includes/macros/utils.njk index 8caa05a..e1dcc18 100644 --- a/src/_includes/macros/utils.njk +++ b/src/_includes/macros/utils.njk @@ -1,13 +1,13 @@ {% macro stars(number) %} {% set filledStars = number %} {% set emptyStars = 5 - number %} -
                  {% for i in range(0, filledStars) %} -
                • {% include "svgs/star.svg" %}
                • +
                • {% include "svgs/star.svg" %}
                • {% endfor %} {% for i in range(0, emptyStars) %} -
                • {% include "svgs/star-empty.svg" %}
                • +
                • {% include "svgs/star-empty.svg" %}
                • {% endfor %}
                {% endmacro %} diff --git a/src/_includes/partials/catalogue-types.html b/src/_includes/partials/catalogue-types.html deleted file mode 100644 index d59ade1..0000000 --- a/src/_includes/partials/catalogue-types.html +++ /dev/null @@ -1,11 +0,0 @@ -{% set catalogueTypes = collections.catalogueByType | keys %} - diff --git a/src/_includes/partials/footer.html b/src/_includes/partials/footer.html index adf2401..e981342 100644 --- a/src/_includes/partials/footer.html +++ b/src/_includes/partials/footer.html @@ -1,9 +1,9 @@ -
                - +{{ tagList(tags | filter("game") , "/games") }} diff --git a/src/_includes/layouts/movie.html b/src/_includes/layouts/movie.html index 860c40a..8088b02 100644 --- a/src/_includes/layouts/movie.html +++ b/src/_includes/layouts/movie.html @@ -4,6 +4,7 @@ layout: "layouts/base" {% from "macros/date.njk" import format %} {% from "macros/utils.njk" import stars %} +{% from "macros/tags.njk" import tagList %}
                {{ format(page.date) }}

                {{ title }}

                @@ -53,11 +54,7 @@ layout: "layouts/base" Runtime{{ runtime }} mins {% endif %} - {% if tags %} -
              3. - Genres{{ tags | filter("movie") | join(", ") }} -
              4. - {% endif %}
            +{{ tagList(tags | filter("movie") , "/watching/movies") }} diff --git a/src/_includes/layouts/show.html b/src/_includes/layouts/show.html index 49e40e3..0ba1025 100644 --- a/src/_includes/layouts/show.html +++ b/src/_includes/layouts/show.html @@ -4,6 +4,7 @@ layout: "layouts/base" {% from "macros/date.njk" import format %} {% from "macros/utils.njk" import stars %} +{% from "macros/tags.njk" import tagList %}
            {{ format(page.date) }}

            {{ title }}

            @@ -56,3 +57,4 @@ layout: "layouts/base"
          +{{ tagList(tags | filter("tv") , "/watching/shows") }} diff --git a/src/_includes/macros/tags.njk b/src/_includes/macros/tags.njk new file mode 100644 index 0000000..10f91d6 --- /dev/null +++ b/src/_includes/macros/tags.njk @@ -0,0 +1,11 @@ +{% macro tagList(tags, urlPrefix) %} + +{% endmacro %} -- 2.47.2 From 0ac825edaa1701eb91e9d80d95e1f58aeb5b4663 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Fri, 24 Jan 2025 22:45:04 -0800 Subject: [PATCH 42/56] fix: colophon update --- src/pages/colophon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/colophon.md b/src/pages/colophon.md index 7c15920..32c9253 100644 --- a/src/pages/colophon.md +++ b/src/pages/colophon.md @@ -62,7 +62,7 @@ My site has changed URLs over the years, and was previously found at the followi ## Licensing -All text content inside of `src/posts` and `src/catalogue` is © Devin Haska - you may not use it without permission. +All text content inside of `src/content` and `src/pages` is © Devin Haska - you may not use it without permission. Any code (excluding content, for example, code inside `.js`, `.css`, `.njk` files) is published under an [MIT][mit] license - you're free to use it how you see fit. If you feel like attributing me, that'd be swell. -- 2.47.2 From 90b839158d6bb9ec5b9ce393d778343ba40ac84b Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Fri, 24 Jan 2025 22:46:20 -0800 Subject: [PATCH 43/56] chore: remove last.fm data --- src/_data/lastfm.js | 98 --------------------------------------------- 1 file changed, 98 deletions(-) delete mode 100644 src/_data/lastfm.js diff --git a/src/_data/lastfm.js b/src/_data/lastfm.js deleted file mode 100644 index fbf9c70..0000000 --- a/src/_data/lastfm.js +++ /dev/null @@ -1,98 +0,0 @@ -import "dotenv/config"; - -import EleventyFetch from "@11ty/eleventy-fetch"; -import dayjs from "dayjs"; -import utc from "dayjs/plugin/utc.js"; -import relativeTime from "dayjs/plugin/relativeTime.js"; - -dayjs.extend(utc); -dayjs.extend(relativeTime); - -const lastFmApiKey = process.env.LAST_FM_API_KEY; - -const baseUrl = "http://ws.audioscrobbler.com"; -const username = "wonderfulfrog"; - -const fetchLastFm = async (method, duration, extraArgs) => { - try { - const path = `/2.0/?method=${method}&user=${username}&api_key=${lastFmApiKey}&format=json`; - let url = `${baseUrl}${path}`; - - if (extraArgs) { - url = `${url}&${extraArgs}`; - } - - const response = await EleventyFetch(url, { duration, type: "json" }); - - return response; - } catch (e) { - console.error(`Error fetching last.fm data for method=${method}`, e); - return undefined; - } -}; - -const fetchRecentAlbums = async (period = "7day") => { - const response = await fetchLastFm( - "user.gettopalbums", - "7d", - `period=${period}`, - ); - - if (!response) { - return []; - } - - const albums = response.topalbums.album.slice(0, 8); - - const recentAlbums = albums.map((album) => { - const extraLargeImage = album.image.find( - (img) => img.size === "extralarge", - ); - const imageUrl = extraLargeImage ? extraLargeImage["#text"] : ""; - return { - artist: album.artist.name, - artistMbid: album.artist.mbid, - album: album.name, - albumMbid: album.mbid, - playcount: album.playcount, - url: album.url, - imageUrl, - }; - }); - - return recentAlbums; -}; - -const fetchRecentTracks = async () => { - const response = await fetchLastFm("user.getrecenttracks", "5m"); - - if (!response) { - return []; - } - - const tracks = response.recenttracks.track.slice(0, 5); - - const recentTracks = tracks.map((track) => { - const timestamp = track.date - ? dayjs(track.date["#text"]).utc(true).fromNow() - : dayjs().fromNow(); - return { - artist: track.artist["#text"], - track: track.name, - url: track.url, - timestamp, - }; - }); - - return recentTracks; -}; - -export default async function () { - const recentTracks = await fetchRecentTracks(); - const recentAlbums = await fetchRecentAlbums(); - - return { - recentTracks, - recentAlbums, - }; -} -- 2.47.2 From 7b9284c9a3ec8ecb88f85bfa7bc80c761b03c4cb Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Fri, 24 Jan 2025 23:03:33 -0800 Subject: [PATCH 44/56] chore: clean up 11ty config --- eleventy.config.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/eleventy.config.js b/eleventy.config.js index 4824391..3773a0a 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -3,11 +3,7 @@ import pluginRss from "@11ty/eleventy-plugin-rss"; import pluginNoRobots from "eleventy-plugin-no-robots"; import { eleventyImageTransformPlugin } from "@11ty/eleventy-img"; -import { - catalogueByType, - collectionByTag, - postsByTag, -} from "./config/collections/index.js"; +import { collectionByTag, postsByTag } from "./config/collections/index.js"; import { dir } from "./config/constants.js"; import { @@ -22,7 +18,6 @@ import { organizeByDate, pluralize, values, - transformByDate, } from "./config/filters/index.js"; import markdown from "./config/plugins/markdown.js"; import liteYoutube from "./config/shortcodes/youtube.js"; -- 2.47.2 From f7233bf5d138f51450ca3917d3b5e4ad583c2955 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Fri, 24 Jan 2025 23:15:00 -0800 Subject: [PATCH 45/56] fix: misc permalink fixes --- src/content/movies/movies.11tydata.js | 2 +- src/content/podcasts/podcasts.11tydata.js | 1 + src/content/shows/shows.11tydata.js | 2 +- src/pages/podroll.html | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/content/movies/movies.11tydata.js b/src/content/movies/movies.11tydata.js index 4e88ebe..60264c1 100644 --- a/src/content/movies/movies.11tydata.js +++ b/src/content/movies/movies.11tydata.js @@ -1,5 +1,5 @@ export default { layout: "layouts/movie", - permalink: "movies/{{ page.fileSlug }}/index.html", + permalink: "watching/movies/{{ page.fileSlug }}/index.html", tags: "movie", }; diff --git a/src/content/podcasts/podcasts.11tydata.js b/src/content/podcasts/podcasts.11tydata.js index b2d443a..1466dfd 100644 --- a/src/content/podcasts/podcasts.11tydata.js +++ b/src/content/podcasts/podcasts.11tydata.js @@ -1,4 +1,5 @@ export default { tags: "podcast", permalink: false, + excludeFromSitemap: true, }; diff --git a/src/content/shows/shows.11tydata.js b/src/content/shows/shows.11tydata.js index 5d964b4..eff86d6 100644 --- a/src/content/shows/shows.11tydata.js +++ b/src/content/shows/shows.11tydata.js @@ -1,5 +1,5 @@ export default { layout: "layouts/show", - permalink: "shows/{{ page.fileSlug }}/index.html", + permalink: "watching/shows/{{ page.fileSlug }}/index.html", tags: "tv", }; diff --git a/src/pages/podroll.html b/src/pages/podroll.html index 5f19739..87a7167 100644 --- a/src/pages/podroll.html +++ b/src/pages/podroll.html @@ -9,7 +9,7 @@ permalink: "podroll/index.html"

          Podroll

          Some podcasts that I enjoy!

          -
          +
          {% for item in data %}
          -- 2.47.2 From b5ce1f7c77887085a8324dcf1d293a6222e60bf4 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Fri, 24 Jan 2025 23:19:05 -0800 Subject: [PATCH 46/56] feat: add update post --- .../posts/2025-01-24-now-using-11ty-v3.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/content/posts/2025-01-24-now-using-11ty-v3.md diff --git a/src/content/posts/2025-01-24-now-using-11ty-v3.md b/src/content/posts/2025-01-24-now-using-11ty-v3.md new file mode 100644 index 0000000..1ff8a6d --- /dev/null +++ b/src/content/posts/2025-01-24-now-using-11ty-v3.md @@ -0,0 +1,33 @@ +--- +title: Now Using 11ty V3 +date: 2025-01-24T12:07-07:00 +excerpt: Finally upgrading to the latest version of Eleventy. +tags: + - webdev + - site-updates + - 11ty +--- + +It feels like I've had this baking for far too long. I'm finally using [Eleventy v3](https://github.com/11ty/eleventy/releases/tag/v3.0.0). + +The upgrade process was so smooth. The [Upgrade Helper](https://www.11ty.dev/docs/plugins/upgrade-help/) plugin made the transition especially easy, and the only really challenging part was converting all of my JavaScript-related functions to use ESM instead of CommonJS (and that conversion process is opt-in, Eleventy still works great with CommonJS if preferred). + +The upgraded version of the [Image](https://www.11ty.dev/docs/plugins/image/) plugin means I no longer require a shortcode to use, which is great (just plain ol' Markdown syntax). That said, I decided to add a new [markdown-it plugin](https://www.npmjs.com/package/markdown-it-attrs) to give myself a bit more control over image rendering using standard HTML attributes. It works like this: + +```markdown +![](https://path.to.img/myimage.png){width=200} +``` + +Thanks to the [Image plugin checking the `width` property](https://github.com/11ty/eleventy-img/issues/234) (new in v6), this works great! As a convenience for myself, I created two new CSS classes `image-shrink` and `image-tiny` that apply percentage widths instead, and can be added using `{class=image-shrink}`. + +I also took the time to give myself a bit of a design refresh. I'm trying to make my personal site reflect my creative developer skills, so I've added a dash of flair and fun to the entire site. There is more I'd like to explore, but at some point I had to decide that I've done enough or I'd be at it endlessly. + +Finally, my Catalogue section has had a major overhaul. Each section has been given it's own "index page" to help make browsing easier. I was heavily inspired by a bunch of other websites that have similar sections (but especially [Cory Dransfeldt](https://coryd.dev/)). I got sidetracked trying to add all content I could before launching this version of my site, but like the theme updates I had to declare a stopping point before I got carried away. While I was at it I also added some filters for each of the major catalogue sections now to hopefully make browsing easier. + +Still missing is my years of music-related content. I used to be a heavy user of [Rate Your Music](https://rateyourmusic.com/) but fell off for some reason. I've got a veritable treasure trove of ratings and reviews I could move over (and probably be only slightly embarrassed from my takes 10-15 years ago). + +In between all of these upgrades I was testing various CMS solutions to ideally make organizing all this content simple. As before I considered options like WordPress and going headless, but gravitated more towards solutions like [Sanity](https://www.sanity.io/) or [Contentful](https://www.contentful.com/). [Directus](https://directus.io/solutions/headless-cms) looked interesting as a self-hosted solution too. + +In the end though I decided to keep things where I like them: inside [Obsidian](https://obsidian.md/). Working with flat files makes the most sense to me, even if it introduces a bit of challenge in transforming my notes into a website. + +If you'd like to dig into my specific code changes, you can [check out the PR](https://github.com/wonderfulfrog/wonderfulfrog.com/pull/11). Otherwise, enjoy! Now, what should I work on next...? -- 2.47.2 From 2b364b1e5eca4aea13c14c690b5589608ee179f9 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Sat, 25 Jan 2025 22:28:41 -0800 Subject: [PATCH 47/56] fix: media meta grid on mobile --- src/_includes/layouts/book.html | 2 +- src/_includes/layouts/game.html | 2 +- src/_includes/layouts/movie.html | 2 +- src/_includes/layouts/show.html | 7 +------ src/css/blocks/media-display.css | 11 +++++++++++ 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/_includes/layouts/book.html b/src/_includes/layouts/book.html index 2df6093..eb7d5bd 100644 --- a/src/_includes/layouts/book.html +++ b/src/_includes/layouts/book.html @@ -24,7 +24,7 @@ layout: "layouts/base"

          {{ title }}

          {% if subtitle %}

          {{ subtitle }}

          {% endif %} {% if rating %}{{ stars(rating) }}{% endif %} -
            +
              {% if author %}
            • Author{{ author }} diff --git a/src/_includes/layouts/game.html b/src/_includes/layouts/game.html index 4fddca2..a5268bf 100644 --- a/src/_includes/layouts/game.html +++ b/src/_includes/layouts/game.html @@ -27,7 +27,7 @@ layout: "layouts/base"
          {% if subtitle %}

          {{ subtitle }}

          {% endif %} {% if rating %}{{ stars(rating) }}{% endif %} -
            +
              {% if year %}
            • Released{{ year }} diff --git a/src/_includes/layouts/movie.html b/src/_includes/layouts/movie.html index 8088b02..ccabc3b 100644 --- a/src/_includes/layouts/movie.html +++ b/src/_includes/layouts/movie.html @@ -38,7 +38,7 @@ layout: "layouts/base"
          {% if subtitle %}

          {{ subtitle }}

          {% endif %} {% if rating %}{{ stars(rating) }}{% endif %} -
            +
              {% if year %}
            • Released{{ year }} diff --git a/src/_includes/layouts/show.html b/src/_includes/layouts/show.html index 0ba1025..ec211b0 100644 --- a/src/_includes/layouts/show.html +++ b/src/_includes/layouts/show.html @@ -38,7 +38,7 @@ layout: "layouts/base" {% endif %} {% if watchHistory %}

              {{ format(watchHistory | last) }}

              {% endif %} {% if rating %}{{ stars(rating) }}{% endif %} -
                +
                  {% if year %}
                • Released{{ year }} @@ -49,11 +49,6 @@ layout: "layouts/base" Runtime{{ runtime }} mins
                • {% endif %} - {% if tags %} -
                • - Genres{{ tags | filter("tv") | join(", ") }} -
                • - {% endif %}
                diff --git a/src/css/blocks/media-display.css b/src/css/blocks/media-display.css index 3e6d68c..2926f62 100644 --- a/src/css/blocks/media-display.css +++ b/src/css/blocks/media-display.css @@ -25,3 +25,14 @@ .meta-grid--full { grid-column: 1/3; } + +.media-meta { + display: grid; + grid-template-columns: 1fr 1fr; +} + +@container (max-width: 36rem) { + .media-meta-grid { + grid-template-columns: 1fr; + } +} -- 2.47.2 From c81336af947e761c2b02d0df8a4f55098f9205c2 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Sat, 25 Jan 2025 22:30:54 -0800 Subject: [PATCH 48/56] fix: tables on mobile --- src/css/utilities/table.css | 3 + src/pages/contact.html | 178 ++++++++++++++++++------------------ 2 files changed, 94 insertions(+), 87 deletions(-) create mode 100644 src/css/utilities/table.css diff --git a/src/css/utilities/table.css b/src/css/utilities/table.css new file mode 100644 index 0000000..713bc5d --- /dev/null +++ b/src/css/utilities/table.css @@ -0,0 +1,3 @@ +.table-wrapper { + overflow-x: auto; +} diff --git a/src/pages/contact.html b/src/pages/contact.html index 747b9f3..86d8661 100644 --- a/src/pages/contact.html +++ b/src/pages/contact.html @@ -10,94 +10,98 @@ permalink: "/contact/index.html"

          Below are my primary methods of contact. They are the ones I monitor most and likely to respond!

          - - - - - - - - - - - - - - - - - -
          - Platform - - Link -
          Email - devin@wonderfulfrog.com -
          Signal - wonderfulfrog.64 -
          +
          + + + + + + + + + + + + + + + + + +
          + Platform + + Link +
          Email + devin@wonderfulfrog.com +
          Signal + wonderfulfrog.64 +
          +

          The following list covers various accounts on the internet that are mine. While you can probably contact me there, I'd prefer using one of the methods above.

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          - Platform - - Link -
          Mastodon - @wonderfulfrog.mastodon.social -
          GitHub - @wonderfulfrog -
          Bluesky - wonderfulfrog.com -
          Discord - wonderfulfrog -
          ListenBrainz - wonderfulfrog -
          Battle.netArmitage#1801
          Apple Music - wonderfulfrog -
          Backloggd - wonderfulfrog -
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + Platform + + Link +
          Mastodon + @wonderfulfrog.mastodon.social +
          GitHub + @wonderfulfrog +
          Bluesky + wonderfulfrog.com +
          Discord + wonderfulfrog +
          ListenBrainz + wonderfulfrog +
          Battle.netArmitage#1801
          Apple Music + wonderfulfrog +
          Backloggd + wonderfulfrog +
          +
          -- 2.47.2 From 29219c75401f0383e91651bc4dd4d75aeb771741 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Sun, 26 Jan 2025 16:15:27 -0800 Subject: [PATCH 49/56] fix: add titles to icon button links --- src/_data/meta.js | 4 --- src/_data/navigation.js | 10 ++++---- src/_includes/partials/footer.html | 37 +++++++++++++++++----------- src/_includes/partials/menu.html | 6 ++--- src/_includes/svgs/social-lastfm.svg | 3 --- 5 files changed, 30 insertions(+), 30 deletions(-) delete mode 100644 src/_includes/svgs/social-lastfm.svg diff --git a/src/_data/meta.js b/src/_data/meta.js index b27f858..4d70a78 100644 --- a/src/_data/meta.js +++ b/src/_data/meta.js @@ -7,8 +7,4 @@ export default { lang: "en", author: "Devin Haska", repoUrl: "https://github.com/wonderfulfrog/wonderfulfrog.com", - social: { - github: "https://github.com/wonderfulfrog", - mastodon: "https://mastodon.social/@wonderfulfrog", - }, }; diff --git a/src/_data/navigation.js b/src/_data/navigation.js index 94dea64..cfb63fe 100644 --- a/src/_data/navigation.js +++ b/src/_data/navigation.js @@ -27,15 +27,15 @@ export default { }, ], bottom: [ - { - text: "Contact", - url: "/contact", - }, + { text: "Blogroll", url: "/blogroll" }, { text: "Colophon", url: "/colophon", }, - { text: "Blogroll", url: "/blogroll" }, + { + text: "Contact", + url: "/contact", + }, { text: "/uses", url: "/uses", diff --git a/src/_includes/partials/footer.html b/src/_includes/partials/footer.html index e981342..4c127fa 100644 --- a/src/_includes/partials/footer.html +++ b/src/_includes/partials/footer.html @@ -16,28 +16,35 @@ diff --git a/src/_includes/svgs/social-lastfm.svg b/src/_includes/svgs/social-lastfm.svg deleted file mode 100644 index f7a38cd..0000000 --- a/src/_includes/svgs/social-lastfm.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - -- 2.47.2 From a4a10af78a961f01f2b34efaa057f4b3a994d8c9 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Sun, 26 Jan 2025 16:22:04 -0800 Subject: [PATCH 50/56] fix: add missing divider for movies/shows --- src/_includes/layouts/movie.html | 1 + src/_includes/layouts/show.html | 1 + 2 files changed, 2 insertions(+) diff --git a/src/_includes/layouts/movie.html b/src/_includes/layouts/movie.html index ccabc3b..edc7de0 100644 --- a/src/_includes/layouts/movie.html +++ b/src/_includes/layouts/movie.html @@ -57,4 +57,5 @@ layout: "layouts/base"
        +
        {{ tagList(tags | filter("movie") , "/watching/movies") }} diff --git a/src/_includes/layouts/show.html b/src/_includes/layouts/show.html index ec211b0..6d1ac1d 100644 --- a/src/_includes/layouts/show.html +++ b/src/_includes/layouts/show.html @@ -52,4 +52,5 @@ layout: "layouts/base"
      +
      {{ tagList(tags | filter("tv") , "/watching/shows") }} -- 2.47.2 From b8d1fde51dfe3f7dcfe9a743baac68b29ebdb6c7 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Sun, 26 Jan 2025 16:44:50 -0800 Subject: [PATCH 51/56] feat: add alternate feeds --- ...-09-09-joshua-whitehead-jonny-appleseed.md | 2 +- src/pages/feeds.html | 16 +++++++++- src/pages/feeds/books.njk | 26 +++++++++++++++++ src/pages/feeds/games.njk | 26 +++++++++++++++++ src/pages/feeds/movies.njk | 26 +++++++++++++++++ src/pages/feeds/shows.njk | 26 +++++++++++++++++ src/pages/feeds/watching.njk | 29 +++++++++++++++++++ 7 files changed, 149 insertions(+), 2 deletions(-) create mode 100644 src/pages/feeds/books.njk create mode 100644 src/pages/feeds/games.njk create mode 100644 src/pages/feeds/movies.njk create mode 100644 src/pages/feeds/shows.njk create mode 100644 src/pages/feeds/watching.njk diff --git a/src/content/books/2021-09-09-joshua-whitehead-jonny-appleseed.md b/src/content/books/2021-09-09-joshua-whitehead-jonny-appleseed.md index 647d43e..9be47e7 100644 --- a/src/content/books/2021-09-09-joshua-whitehead-jonny-appleseed.md +++ b/src/content/books/2021-09-09-joshua-whitehead-jonny-appleseed.md @@ -7,7 +7,7 @@ image: https://cdn.wonderfulfrog.com/images/jonny-appleseed.jpeg tags: - fiction - emotional - - lqbtq + - lgbtq year: 2018 --- diff --git a/src/pages/feeds.html b/src/pages/feeds.html index b9241be..3db7ce5 100644 --- a/src/pages/feeds.html +++ b/src/pages/feeds.html @@ -5,9 +5,23 @@ description: Feed yourself a veritable bevy of feeds.

      Feeds

      Here is my collection of feeds for your perusal. They come in RSS varieties.

      -
        +
        • Posts

          Just the posts.

        • +
        • + Books +

          Only book content.

          +
        • +
        • + Games +

          Gives only games.

          +
        • +
        • + Watching +

          + Feeding all watching content. Also available in movies and shows varieties. +

          +
        diff --git a/src/pages/feeds/books.njk b/src/pages/feeds/books.njk new file mode 100644 index 0000000..a48b864 --- /dev/null +++ b/src/pages/feeds/books.njk @@ -0,0 +1,26 @@ +--- +permalink: /feeds/books.xml +layout: null +eleventyExcludeFromCollections: true +excludeFromSitemap: true +--- + +Books • {{ meta.siteName }} +{{ meta.siteDescription }} + + +{{ meta.url }}/ + +{{ meta.author }} + +{% for item in collections.book %} + + {{ meta.url }}{{ item.url }} + {{ item.data.title | escape }} + + {{ item.date }} + {%- for tag in item.data.tags | filter("book") %}{%- endfor %} + {{ item.content | escape }} + + {% endfor %} + diff --git a/src/pages/feeds/games.njk b/src/pages/feeds/games.njk new file mode 100644 index 0000000..3bc0363 --- /dev/null +++ b/src/pages/feeds/games.njk @@ -0,0 +1,26 @@ +--- +permalink: /feeds/games.xml +layout: null +eleventyExcludeFromCollections: true +excludeFromSitemap: true +--- + +Games • {{ meta.siteName }} +{{ meta.siteDescription }} + + +{{ meta.url }}/ + +{{ meta.author }} + +{% for item in collections.game %} + + {{ meta.url }}{{ item.url }} + {{ item.data.title | escape }} + + {{ item.date }} + {%- for tag in item.data.tags | filter("game") %}{%- endfor %} + {{ item.content | escape }} + + {% endfor %} + diff --git a/src/pages/feeds/movies.njk b/src/pages/feeds/movies.njk new file mode 100644 index 0000000..e8a89f4 --- /dev/null +++ b/src/pages/feeds/movies.njk @@ -0,0 +1,26 @@ +--- +permalink: /feeds/movies.xml +layout: null +eleventyExcludeFromCollections: true +excludeFromSitemap: true +--- + +Movies • {{ meta.siteName }} +{{ meta.siteDescription }} + + +{{ meta.url }}/ + +{{ meta.author }} + +{% for item in collections.movie %} + + {{ meta.url }}{{ item.url }} + {{ item.data.title | escape }} + + {{ item.date }} + {%- for tag in item.data.tags | filter("movie") %}{%- endfor %} + {{ item.content | escape }} + + {% endfor %} + diff --git a/src/pages/feeds/shows.njk b/src/pages/feeds/shows.njk new file mode 100644 index 0000000..8046e31 --- /dev/null +++ b/src/pages/feeds/shows.njk @@ -0,0 +1,26 @@ +--- +permalink: /feeds/shows.xml +layout: null +eleventyExcludeFromCollections: true +excludeFromSitemap: true +--- + +Shows • {{ meta.siteName }} +{{ meta.siteDescription }} + + +{{ meta.url }}/ + +{{ meta.author }} + +{% for item in collections.tv %} + + {{ meta.url }}{{ item.url }} + {{ item.data.title | escape }} + + {{ item.date }} + {%- for tag in item.data.tags | filter("tv") %}{%- endfor %} + {{ item.content | escape }} + + {% endfor %} + diff --git a/src/pages/feeds/watching.njk b/src/pages/feeds/watching.njk new file mode 100644 index 0000000..7875282 --- /dev/null +++ b/src/pages/feeds/watching.njk @@ -0,0 +1,29 @@ +--- +permalink: /feeds/watching.xml +layout: null +eleventyExcludeFromCollections: true +excludeFromSitemap: true +--- + +Watching • {{ meta.siteName }} +{{ meta.siteDescription }} + + +{{ meta.url }}/ + +{{ meta.author }} + +{% set movies = collections.movie %} +{% set tv = collections.tv %} +{% set data = movies.concat(tv) %} +{% for item in data %} + + {{ meta.url }}{{ item.url }} + {{ item.data.title | escape }} + + {{ item.date }} + {%- for tag in item.data.tags | filter(["tv", "movie"]) %}{%- endfor %} + {{ item.content | escape }} + + {% endfor %} + -- 2.47.2 From e1f989ee2ebae5d1ae22b6f284164cf235b16e86 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Sun, 26 Jan 2025 16:46:04 -0800 Subject: [PATCH 52/56] fix: tag cleanup --- src/content/movies/2024-09-28-megalopolis.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/movies/2024-09-28-megalopolis.md b/src/content/movies/2024-09-28-megalopolis.md index 6798d5e..bc2693e 100644 --- a/src/content/movies/2024-09-28-megalopolis.md +++ b/src/content/movies/2024-09-28-megalopolis.md @@ -9,7 +9,7 @@ director: Francis Ford Coppola runtime: 138 tags: - drama - - science fiction + - science-fiction --- I wholeheartedly did not enjoy this movie, and yet afterward we could not stop talking about it. There were so many moments to remember - and some even got overwritten in my mind and had to be teased out later. -- 2.47.2 From e847649457314fbc081cf6fcc4f025563080b0f9 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Sun, 26 Jan 2025 17:26:18 -0800 Subject: [PATCH 53/56] feat: homepage content update --- src/index.html | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/index.html b/src/index.html index 6cdf189..ea669ff 100644 --- a/src/index.html +++ b/src/index.html @@ -5,33 +5,32 @@ permalink: / {% from "macros/posts.njk" import list %}

        Ahoj!

        -

        Hello! My name is Devin.

        -

        I'm a creative developer who specializes in web and mobile development.

        - Welcome to my little slice of the internet. I like to write and catalogue things. Games, books, movies, and and more! There's a lot to explore, and I hope you have fun! + Hello! My name is Devin. I'm a creative web developer in Victoria, British Columbia. If you want to learn more about me, check out my about page.

        - If you're interested, I have an about page all about me! + I like to write about games, books, and movies to name a few things. There's a lot to explore, and I hope you have fun!

        -
        +

        Favourite posts

        -

        Hand-picked, curated selection of my favourite posts!

        +

        Hand-picked, curated selection of my favourite posts!

        {% set favouritePosts = collections.post | filterFavourites | reverse %} {{ list(favouritePosts, "MM/DD/YYYY") }}
        -
        +

        Recent posts

        {% set recentPosts = collections.post | reverse | limit(5) %} {{ list(recentPosts, "MM/DD/YYYY") }}
        -
        +

        Other pages

        -

        Some of my other pages you can check out!

        +

        Some of my other pages you can check out!

        • -- 2.47.2 From 35096419cc86d71dcadcbf2d7f6c4ef338805fe3 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Sun, 26 Jan 2025 17:26:28 -0800 Subject: [PATCH 54/56] fix: game meta data --- src/_includes/layouts/game.html | 6 +++++- .../games/2022-03-20-animal-crossing-new-horizons.md | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/_includes/layouts/game.html b/src/_includes/layouts/game.html index a5268bf..0e9fc19 100644 --- a/src/_includes/layouts/game.html +++ b/src/_includes/layouts/game.html @@ -23,7 +23,6 @@ layout: "layouts/base"

          {{ title }}

          - {{ platform }}
          {% if subtitle %}

          {{ subtitle }}

          {% endif %} {% if rating %}{{ stars(rating) }}{% endif %} @@ -33,6 +32,11 @@ layout: "layouts/base" Released{{ year }}
        • {% endif %} + {% if platform %} +
        • + Platform{{ platform }} +
        • + {% endif %} {% if playtime %}
        • Playtime{{ playtime }} diff --git a/src/content/games/2022-03-20-animal-crossing-new-horizons.md b/src/content/games/2022-03-20-animal-crossing-new-horizons.md index 8d90979..f425f0a 100644 --- a/src/content/games/2022-03-20-animal-crossing-new-horizons.md +++ b/src/content/games/2022-03-20-animal-crossing-new-horizons.md @@ -1,6 +1,6 @@ --- title: "Animal Crossings: New Horizons" -platform: Switch +platform: Nintendo Switch image: https://cdn.wonderfulfrog.com/images/acnh.jpg tags: - single-player -- 2.47.2 From f3444920e3a8c8f92d45100dc3a66b7a56672c24 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Mon, 27 Jan 2025 18:00:56 -0800 Subject: [PATCH 55/56] fix: update post dates --- .../2021-09-09-scott-mccloud-understanding-comics.md | 8 +++++--- src/content/posts/2025-01-24-now-using-11ty-v3.md | 2 +- src/pages/changelog.md | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/content/books/2021-09-09-scott-mccloud-understanding-comics.md b/src/content/books/2021-09-09-scott-mccloud-understanding-comics.md index b83194a..c28598e 100644 --- a/src/content/books/2021-09-09-scott-mccloud-understanding-comics.md +++ b/src/content/books/2021-09-09-scott-mccloud-understanding-comics.md @@ -1,17 +1,19 @@ --- title: Understanding Comics subtitle: The Invisible Art +date: 2021-09-09T10:00:00-07:00 author: Scott McCloud isbn: 9780060976255 rating: 5 image: https://cdn.wonderfulfrog.com/images/understanding-comics.jpg -tags: ["comics", "art", "history"] +tags: + - comics + - art + - history isFavourite: true year: 1993 --- -I debated if this should end up in a different catalogue, but it deserves to be in both, if anything. - If you wondered just how deep the rabbit hole goes when it comes to all things comics, Scott McCloud is here to tell you it goes _deep_. Anyone who may doubt the medium of the comic -- I challenge you to come out without a new perspective reading this. I know I did. I appreciate them so much more now. To call it "a book about comics" feels like a disservice. There is so much more going on here about history and the human mind. diff --git a/src/content/posts/2025-01-24-now-using-11ty-v3.md b/src/content/posts/2025-01-24-now-using-11ty-v3.md index 1ff8a6d..520e1d9 100644 --- a/src/content/posts/2025-01-24-now-using-11ty-v3.md +++ b/src/content/posts/2025-01-24-now-using-11ty-v3.md @@ -1,6 +1,6 @@ --- title: Now Using 11ty V3 -date: 2025-01-24T12:07-07:00 +date: 2025-01-27T12:07-07:00 excerpt: Finally upgrading to the latest version of Eleventy. tags: - webdev diff --git a/src/pages/changelog.md b/src/pages/changelog.md index 914c277..ce42100 100644 --- a/src/pages/changelog.md +++ b/src/pages/changelog.md @@ -10,7 +10,7 @@ All the changes that are fit to read! If preferred, the [commit log is available here][commits]. -## January 24th, 2025 +## January 27th, 2025 - Upgraded to [Eleventy v3](https://www.11ty.dev/blog/eleventy-v3/)! - A design refresh! The overall look-and-feel is the same, but I added some playful animations here and there. -- 2.47.2 From d373bc58d7d99dc9fef09125471fbdf93cc6a445 Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Mon, 27 Jan 2025 18:09:48 -0800 Subject: [PATCH 56/56] feat: add missing link to changelog --- src/pages/changelog.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/pages/changelog.md b/src/pages/changelog.md index ce42100..4d37d4e 100644 --- a/src/pages/changelog.md +++ b/src/pages/changelog.md @@ -15,7 +15,7 @@ If preferred, the [commit log is available here][commits]. - Upgraded to [Eleventy v3](https://www.11ty.dev/blog/eleventy-v3/)! - A design refresh! The overall look-and-feel is the same, but I added some playful animations here and there. - Restructured my catalogue by breaking sub-categories into their own sections. -- Removed the Podcasts and Comics catalogues. Podcasts has its own respective page now that I plan to update occasionally. +- Removed the Podcasts and Comics catalogues. [Podcasts has its own respective page now](/podroll). - Added [Games](/games)! - Added [Movies](/watching/movies/recent)! - Added [Shows](/watching/shows/recent)! @@ -39,11 +39,15 @@ If preferred, the [commit log is available here][commits]. - Added style for `` elements. +
          + | Here is | A preview! | | --------------- | ---------- | | Super cool whoa | very rad | | Super cool whoa | very bad | +
          + ## June 11th 2024 - Added a [webrings][webrings] page! -- 2.47.2