diff --git a/README.md b/README.md index eb6cf73..ba46fcb 100644 --- a/README.md +++ b/README.md @@ -225,4 +225,9 @@ All commands are run from the root of the project, from a terminal: - Migrated to standard astro tsconfig.json - Fixed astro check errors - 3.4.0: Minor changes: + - Updated packages - Replaced heroicons to v2 + - Improved RSS and search indexes to include author name and email + - Make BlogHero accept post as props rather than frontmatter + - Moved Markdown pages to content collection + - Eliminated Frontmatter type diff --git a/package.json b/package.json index 71fd81a..43b5bfd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "hello-astro", "description": "Hello Astro is a full featured Astro corporate/marketing/blog starter theme written in Typescript and TailwindCSS. It supports Markdown and MDX based pages and blog posts.", - "version": "3.3.2", + "version": "3.4.0", "scripts": { "dev": "astro dev", "clean": "rm -rf node_modules .astro dist", @@ -17,7 +17,7 @@ "devDependencies": { "@akebifiky/remark-simple-plantuml": "^1.0.2", "@astrojs/alpinejs": "^0.4.0", - "@astrojs/mdx": "^2.2.0", + "@astrojs/mdx": "^2.2.1", "@astrojs/sitemap": "^3.1.1", "@astrojs/tailwind": "^5.1.0", "@tailwindcss/aspect-ratio": "^0.4.2", @@ -27,12 +27,12 @@ "@types/alpinejs": "^3.13.9", "@types/leaflet": "^1.9.8", "@types/photoswipe": "^4.1.6", - "@typescript-eslint/parser": "^7.2.0", + "@typescript-eslint/parser": "^7.3.1", "alpinejs": "^3.13.7", - "astro": "^4.5.5", + "astro": "^4.5.9", "astro-robots-txt": "^1.0.0", "eslint": "^8.57.0", - "eslint-plugin-astro": "^0.31.4", + "eslint-plugin-astro": "^0.32.0", "eslint-plugin-css": "^0.9.2", "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-markdown": "^4.0.1", @@ -49,12 +49,12 @@ "remark-math": "^6.0.0", "schema-dts": "^1.1.2", "tailwindcss": "^3.4.1", - "typescript": "~5.4.2", + "typescript": "~5.4.3", "unist-util-visit": "^5.0.0", - "vite": "^5.1.6" + "vite": "^5.2.5" }, "dependencies": { - "@astrojs/check": "^0.5.9", + "@astrojs/check": "^0.5.10", "@astrojs/markdoc": "^0.9.2", "@astrojs/rss": "^4.0.5", "@iconify-json/bi": "^1.1.23", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e3abd71..974fe76 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,11 +6,11 @@ settings: dependencies: '@astrojs/check': - specifier: ^0.5.9 - version: 0.5.9(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.2) + specifier: ^0.5.10 + version: 0.5.10(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.3) '@astrojs/markdoc': specifier: ^0.9.2 - version: 0.9.2(astro@4.5.5) + version: 0.9.2(astro@4.5.9) '@astrojs/rss': specifier: ^4.0.5 version: 4.0.5 @@ -25,7 +25,7 @@ dependencies: version: 1.1.0 astro-seo: specifier: ^0.8.3 - version: 0.8.3(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.2) + version: 0.8.3(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.3) hero-patterns: specifier: ^2.1.0 version: 2.1.0 @@ -59,14 +59,14 @@ devDependencies: specifier: ^0.4.0 version: 0.4.0(@types/alpinejs@3.13.9)(alpinejs@3.13.7) '@astrojs/mdx': - specifier: ^2.2.0 - version: 2.2.0(astro@4.5.5) + specifier: ^2.2.1 + version: 2.2.1(astro@4.5.9) '@astrojs/sitemap': specifier: ^3.1.1 version: 3.1.1 '@astrojs/tailwind': specifier: ^5.1.0 - version: 5.1.0(astro@4.5.5)(tailwindcss@3.4.1) + version: 5.1.0(astro@4.5.9)(tailwindcss@3.4.1) '@tailwindcss/aspect-ratio': specifier: ^0.4.2 version: 0.4.2(tailwindcss@3.4.1) @@ -89,14 +89,14 @@ devDependencies: specifier: ^4.1.6 version: 4.1.6 '@typescript-eslint/parser': - specifier: ^7.2.0 - version: 7.2.0(eslint@8.57.0)(typescript@5.4.2) + specifier: ^7.3.1 + version: 7.3.1(eslint@8.57.0)(typescript@5.4.3) alpinejs: specifier: ^3.13.7 version: 3.13.7 astro: - specifier: ^4.5.5 - version: 4.5.5(typescript@5.4.2) + specifier: ^4.5.9 + version: 4.5.9(typescript@5.4.3) astro-robots-txt: specifier: ^1.0.0 version: 1.0.0 @@ -104,8 +104,8 @@ devDependencies: specifier: ^8.57.0 version: 8.57.0 eslint-plugin-astro: - specifier: ^0.31.4 - version: 0.31.4(eslint@8.57.0) + specifier: ^0.32.0 + version: 0.32.0(eslint@8.57.0) eslint-plugin-css: specifier: ^0.9.2 version: 0.9.2(eslint@8.57.0) @@ -150,19 +150,19 @@ devDependencies: version: 6.0.0 schema-dts: specifier: ^1.1.2 - version: 1.1.2(typescript@5.4.2) + version: 1.1.2(typescript@5.4.3) tailwindcss: specifier: ^3.4.1 version: 3.4.1 typescript: - specifier: ~5.4.2 - version: 5.4.2 + specifier: ~5.4.3 + version: 5.4.3 unist-util-visit: specifier: ^5.0.0 version: 5.0.0 vite: - specifier: ^5.1.6 - version: 5.1.6 + specifier: ^5.2.5 + version: 5.2.5 packages: @@ -211,17 +211,17 @@ packages: alpinejs: 3.13.7 dev: true - /@astrojs/check@0.5.9(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.2): - resolution: {integrity: sha512-+QsQMtYq4oso+gmilJC9HLmdi0glZ+04V/VyyTTPry7n21jqjX9SfgDpLGxMk5cwPC/vwZMkn6ORGPnkZS/L5w==} + /@astrojs/check@0.5.10(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.3): + resolution: {integrity: sha512-vliHXM9cu/viGeKiksUM4mXfO816ohWtawTl2ADPgTsd4nUMjFiyAl7xFZhF34yy4hq4qf7jvK1F2PlR3b5I5w==} hasBin: true peerDependencies: typescript: ^5.0.0 dependencies: - '@astrojs/language-server': 2.8.3(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.2) + '@astrojs/language-server': 2.8.4(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.3) chokidar: 3.6.0 fast-glob: 3.3.2 kleur: 4.1.5 - typescript: 5.4.2 + typescript: 5.4.3 yargs: 17.7.2 transitivePeerDependencies: - prettier @@ -237,8 +237,8 @@ packages: /@astrojs/internal-helpers@0.3.0: resolution: {integrity: sha512-tGmHvrhpzuz0JBHaJX8GywN9g4rldVNHtkoVDC3m/DdzBO70jGoVuc0uuNVglRYnsdwkbG0K02Iw3nOOR3/Y4g==} - /@astrojs/language-server@2.8.3(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.2): - resolution: {integrity: sha512-tO47Lcue7OPXfIDbKVDcshwpC13yaWaTVLyiSOnQ2Yng2Z2SgcJf06Cj4xMpJqGp6s7/o/gcQWYUTl2bpkWKig==} + /@astrojs/language-server@2.8.4(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.3): + resolution: {integrity: sha512-sJH5vGTBkhgA8+hdhzX78UUp4cFz4Mt7xkEkevD188OS5bDMkaue6hK+dtXWM47mnrXFveXA2u38K7S+5+IRjA==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -251,27 +251,27 @@ packages: dependencies: '@astrojs/compiler': 2.7.0 '@jridgewell/sourcemap-codec': 1.4.15 - '@volar/kit': 2.1.2(typescript@5.4.2) - '@volar/language-core': 2.1.2 - '@volar/language-server': 2.1.2 - '@volar/language-service': 2.1.2 - '@volar/typescript': 2.1.2 + '@volar/kit': 2.1.5(typescript@5.4.3) + '@volar/language-core': 2.1.5 + '@volar/language-server': 2.1.5 + '@volar/language-service': 2.1.5 + '@volar/typescript': 2.1.5 fast-glob: 3.3.2 prettier: 3.2.5 prettier-plugin-astro: 0.13.0 - volar-service-css: 0.0.34(@volar/language-service@2.1.2) - volar-service-emmet: 0.0.34(@volar/language-service@2.1.2) - volar-service-html: 0.0.34(@volar/language-service@2.1.2) - volar-service-prettier: 0.0.34(@volar/language-service@2.1.2)(prettier@3.2.5) - volar-service-typescript: 0.0.34(@volar/language-service@2.1.2) - volar-service-typescript-twoslash-queries: 0.0.34(@volar/language-service@2.1.2) - vscode-html-languageservice: 5.1.2 + volar-service-css: 0.0.34(@volar/language-service@2.1.5) + volar-service-emmet: 0.0.34(@volar/language-service@2.1.5) + volar-service-html: 0.0.34(@volar/language-service@2.1.5) + volar-service-prettier: 0.0.34(@volar/language-service@2.1.5)(prettier@3.2.5) + volar-service-typescript: 0.0.34(@volar/language-service@2.1.5) + volar-service-typescript-twoslash-queries: 0.0.34(@volar/language-service@2.1.5) + vscode-html-languageservice: 5.2.0 vscode-uri: 3.0.8 transitivePeerDependencies: - typescript dev: false - /@astrojs/markdoc@0.9.2(astro@4.5.5): + /@astrojs/markdoc@0.9.2(astro@4.5.9): resolution: {integrity: sha512-E7CMTNvz1dFgx7+s87ICwEG2BlKl7FIju7NCYfIbe7Feelk259gK7DsDqMvq62f3eHYqZJiXOMpN0zPrKVu6CQ==} engines: {node: '>=18.14.1'} peerDependencies: @@ -280,7 +280,7 @@ packages: '@astrojs/internal-helpers': 0.3.0 '@astrojs/prism': 3.0.0 '@markdoc/markdoc': 0.3.5 - astro: 4.5.5(typescript@5.4.2) + astro: 4.5.9(typescript@5.4.3) esbuild: 0.19.12 github-slugger: 2.0.0 gray-matter: 4.0.3 @@ -292,8 +292,8 @@ packages: - react dev: false - /@astrojs/markdown-remark@4.3.0: - resolution: {integrity: sha512-iZOgYj/yNDvBRfKqkGuAvjeONhjQPq8Uk3HjyIgcTK5valq03NiUgSc5Ovq00yUVBeYJ/5EDx23c8xqtkkBlPw==} + /@astrojs/markdown-remark@4.3.1: + resolution: {integrity: sha512-eJFi600tkRjTFiwzY9oD8AgCgB7gFqyWCKWuZ33dATVBgLiROD+zlMZ8STZzU7+ZALvmiUAun/K7umTmP5YfVQ==} dependencies: '@astrojs/prism': 3.0.0 github-slugger: 2.0.0 @@ -316,17 +316,17 @@ packages: transitivePeerDependencies: - supports-color - /@astrojs/mdx@2.2.0(astro@4.5.5): - resolution: {integrity: sha512-EkcCniYdGwsh9k5LknqRrz/UyOnMNXdRk7fgDAw/zUDKnm7zgQAG8hIx0FxG1L2IINxLfu7IcjgZb3f5TFpxKw==} + /@astrojs/mdx@2.2.1(astro@4.5.9): + resolution: {integrity: sha512-bSr/AkvGieD9Pc5ZzMnAk7IHnw0vyt/aOujuYUmYT+NHiWahAUy/+ywNNMhTMmea0irdMYnBVC1AEKMQ/oXxow==} engines: {node: '>=18.14.1'} peerDependencies: astro: ^4.0.0 dependencies: - '@astrojs/markdown-remark': 4.3.0 + '@astrojs/markdown-remark': 4.3.1 '@mdx-js/mdx': 3.0.1 acorn: 8.11.3 - astro: 4.5.5(typescript@5.4.2) - es-module-lexer: 1.4.1 + astro: 4.5.9(typescript@5.4.3) + es-module-lexer: 1.4.2 estree-util-visit: 2.0.0 github-slugger: 2.0.0 gray-matter: 4.0.3 @@ -362,16 +362,16 @@ packages: zod: 3.22.4 dev: true - /@astrojs/tailwind@5.1.0(astro@4.5.5)(tailwindcss@3.4.1): + /@astrojs/tailwind@5.1.0(astro@4.5.9)(tailwindcss@3.4.1): resolution: {integrity: sha512-BJoCDKuWhU9FT2qYg+fr6Nfb3qP4ShtyjXGHKA/4mHN94z7BGcmauQK23iy+YH5qWvTnhqkd6mQPQ1yTZTe9Ig==} peerDependencies: astro: ^3.0.0 || ^4.0.0 tailwindcss: ^3.0.24 dependencies: - astro: 4.5.5(typescript@5.4.2) - autoprefixer: 10.4.18(postcss@8.4.35) - postcss: 8.4.35 - postcss-load-config: 4.0.2(postcss@8.4.35) + astro: 4.5.9(typescript@5.4.3) + autoprefixer: 10.4.19(postcss@8.4.38) + postcss: 8.4.38 + postcss-load-config: 4.0.2(postcss@8.4.38) tailwindcss: 3.4.1 transitivePeerDependencies: - ts-node @@ -391,30 +391,30 @@ packages: transitivePeerDependencies: - supports-color - /@babel/code-frame@7.23.5: - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + /@babel/code-frame@7.24.2: + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 - /@babel/compat-data@7.23.5: - resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + /@babel/compat-data@7.24.1: + resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} engines: {node: '>=6.9.0'} - /@babel/core@7.24.0: - resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} + /@babel/core@7.24.3: + resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.1 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helpers': 7.24.0 - '@babel/parser': 7.24.0 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) + '@babel/helpers': 7.24.1 + '@babel/parser': 7.24.1 '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 + '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 convert-source-map: 2.0.0 debug: 4.3.4 @@ -424,8 +424,8 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator@7.23.6: - resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + /@babel/generator@7.24.1: + resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 @@ -443,7 +443,7 @@ packages: resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.23.5 + '@babel/compat-data': 7.24.1 '@babel/helper-validator-option': 7.23.5 browserslist: 4.23.0 lru-cache: 5.1.1 @@ -466,21 +466,21 @@ packages: dependencies: '@babel/types': 7.24.0 - /@babel/helper-module-imports@7.22.15: - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + /@babel/helper-module-imports@7.24.3: + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 + '@babel/helper-module-imports': 7.24.3 '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 @@ -501,8 +501,8 @@ packages: dependencies: '@babel/types': 7.24.0 - /@babel/helper-string-parser@7.23.4: - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + /@babel/helper-string-parser@7.24.1: + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier@7.22.20: @@ -513,55 +513,56 @@ packages: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} - /@babel/helpers@7.24.0: - resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} + /@babel/helpers@7.24.1: + resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 + '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 transitivePeerDependencies: - supports-color - /@babel/highlight@7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + /@babel/highlight@7.24.2: + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 + picocolors: 1.0.0 - /@babel/parser@7.24.0: - resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} + /@babel/parser@7.24.1: + resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: '@babel/types': 7.24.0 - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.0): - resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0): + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3): resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.15 + '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) '@babel/types': 7.24.0 - /@babel/runtime@7.24.0: - resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} + /@babel/runtime@7.24.1: + resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 @@ -571,21 +572,21 @@ packages: resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.24.0 + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.1 '@babel/types': 7.24.0 - /@babel/traverse@7.24.0: - resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} + /@babel/traverse@7.24.1: + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.1 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.0 + '@babel/parser': 7.24.1 '@babel/types': 7.24.0 debug: 4.3.4 globals: 11.12.0 @@ -596,7 +597,7 @@ packages: resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.23.4 + '@babel/helper-string-parser': 7.24.1 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 @@ -628,6 +629,14 @@ packages: requiresBuild: true optional: true + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + optional: true + /@esbuild/android-arm64@0.19.12: resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} @@ -636,6 +645,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-arm@0.19.12: resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} @@ -644,6 +661,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-x64@0.19.12: resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} @@ -652,6 +677,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/darwin-arm64@0.19.12: resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} @@ -660,6 +693,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/darwin-x64@0.19.12: resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} @@ -668,6 +709,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/freebsd-arm64@0.19.12: resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} @@ -676,6 +725,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/freebsd-x64@0.19.12: resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} @@ -684,6 +741,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/linux-arm64@0.19.12: resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} @@ -692,6 +757,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-arm@0.19.12: resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} @@ -700,6 +773,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ia32@0.19.12: resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} @@ -708,6 +789,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-loong64@0.19.12: resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} @@ -716,6 +805,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-mips64el@0.19.12: resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} @@ -724,6 +821,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ppc64@0.19.12: resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} @@ -732,6 +837,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-riscv64@0.19.12: resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} @@ -740,6 +853,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-s390x@0.19.12: resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} @@ -748,6 +869,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-x64@0.19.12: resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} @@ -756,6 +885,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/netbsd-x64@0.19.12: resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} @@ -764,6 +901,14 @@ packages: requiresBuild: true optional: true + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + /@esbuild/openbsd-x64@0.19.12: resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} @@ -772,6 +917,14 @@ packages: requiresBuild: true optional: true + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + /@esbuild/sunos-x64@0.19.12: resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} @@ -780,6 +933,14 @@ packages: requiresBuild: true optional: true + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + /@esbuild/win32-arm64@0.19.12: resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} @@ -788,6 +949,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-ia32@0.19.12: resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} @@ -796,6 +965,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-x64@0.19.12: resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} @@ -804,6 +981,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -885,7 +1070,7 @@ packages: local-pkg: 0.4.3 pathe: 1.1.2 svgo: 3.0.3 - tar: 6.2.0 + tar: 6.2.1 transitivePeerDependencies: - supports-color dev: false @@ -966,7 +1151,7 @@ packages: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 - '@types/mdx': 2.0.11 + '@types/mdx': 2.0.12 collapse-white-space: 2.1.0 devlop: 1.1.0 estree-util-build-jsx: 3.0.1 @@ -1203,7 +1388,7 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.24.0 + '@babel/parser': 7.24.1 '@babel/types': 7.24.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 @@ -1217,7 +1402,7 @@ packages: /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.24.0 + '@babel/parser': 7.24.1 '@babel/types': 7.24.0 /@types/babel__traverse@7.20.5: @@ -1228,13 +1413,13 @@ packages: /@types/cheerio@0.22.35: resolution: {integrity: sha512-yD57BchKRvTV+JD53UZ6PD8KWY5g5rvvMLRnZR3EQBCZXiDT/HR+pKpMzFGlWNhFrXlo7VPZXtKvIEwZkAWOIA==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.11.30 dev: false /@types/concat-stream@2.0.3: resolution: {integrity: sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.11.30 dev: true /@types/d3-scale-chromatic@3.0.3: @@ -1319,8 +1504,8 @@ packages: dev: false optional: true - /@types/mdx@2.0.11: - resolution: {integrity: sha512-HM5bwOaIQJIQbAYfax35HCKxx7a3KrK3nBtIqJgSOitivTD1y3oW9P3rxY9RkXYPUk7y/AjAohfHKmFpGE79zw==} + /@types/mdx@2.0.12: + resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==} dev: true /@types/ms@0.7.34: @@ -1335,8 +1520,8 @@ packages: resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} dev: true - /@types/node@20.11.28: - resolution: {integrity: sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==} + /@types/node@20.11.30: + resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} dependencies: undici-types: 5.26.5 @@ -1357,7 +1542,7 @@ packages: /@types/tar@6.1.11: resolution: {integrity: sha512-ThA1WD8aDdVU4VLuyq5NEqriwXErF5gEIJeyT6gHBWU7JtSmW2a5qjNv3/vR82O20mW+1vhmeZJfBQPT3HCugg==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.11.30 minipass: 4.2.8 dev: false @@ -1371,13 +1556,13 @@ packages: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 20.11.28 + '@types/node': 20.11.30 dev: false optional: true - /@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.2): - resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/parser@7.3.1(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 typescript: '*' @@ -1385,13 +1570,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.2.0 - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) - '@typescript-eslint/visitor-keys': 7.2.0 + '@typescript-eslint/scope-manager': 7.3.1 + '@typescript-eslint/types': 7.3.1 + '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.3) + '@typescript-eslint/visitor-keys': 7.3.1 debug: 4.3.4 eslint: 8.57.0 - typescript: 5.4.2 + typescript: 5.4.3 transitivePeerDependencies: - supports-color dev: true @@ -1404,12 +1589,12 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@7.2.0: - resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/scope-manager@7.3.1: + resolution: {integrity: sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/visitor-keys': 7.2.0 + '@typescript-eslint/types': 7.3.1 + '@typescript-eslint/visitor-keys': 7.3.1 dev: true /@typescript-eslint/types@5.62.0: @@ -1417,29 +1602,29 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@7.2.0: - resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/types@7.3.1: + resolution: {integrity: sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==} + engines: {node: ^18.18.0 || >=20.0.0} dev: true - /@typescript-eslint/typescript-estree@7.2.0(typescript@5.4.2): - resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/typescript-estree@7.3.1(typescript@5.4.3): + resolution: {integrity: sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/visitor-keys': 7.2.0 + '@typescript-eslint/types': 7.3.1 + '@typescript-eslint/visitor-keys': 7.3.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.6.0 - ts-api-utils: 1.3.0(typescript@5.4.2) - typescript: 5.4.2 + ts-api-utils: 1.3.0(typescript@5.4.3) + typescript: 5.4.3 transitivePeerDependencies: - supports-color dev: true @@ -1452,43 +1637,43 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.2.0: - resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/visitor-keys@7.3.1: + resolution: {integrity: sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/types': 7.3.1 eslint-visitor-keys: 3.4.3 dev: true /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - /@volar/kit@2.1.2(typescript@5.4.2): - resolution: {integrity: sha512-u20R1lCWCgFYBCHC+FR/e9J+P61vUNQpyWt4keAY+zpVHEHsSXVA2xWMJV1l1Iq5Dd0jBUSqrb1zsEya455AzA==} + /@volar/kit@2.1.5(typescript@5.4.3): + resolution: {integrity: sha512-L4bHJ1TsKNjsmxSGBuzkUvii4EQoQAT9JoHy8aL4Y17qU/z0JWI1BzUDGpMl4oDlsc+WpWIVGo6KZAnclrUx/w==} peerDependencies: typescript: '*' dependencies: - '@volar/language-service': 2.1.2 - '@volar/typescript': 2.1.2 + '@volar/language-service': 2.1.5 + '@volar/typescript': 2.1.5 typesafe-path: 0.2.2 - typescript: 5.4.2 + typescript: 5.4.3 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 dev: false - /@volar/language-core@2.1.2: - resolution: {integrity: sha512-5qsDp0Gf6fE09UWCeK7bkVn6NxMwC9OqFWQkMMkeej8h8XjyABPdRygC2RCrqDrfVdGijqlMQeXs6yRS+vfZYA==} + /@volar/language-core@2.1.5: + resolution: {integrity: sha512-u1OHmVkCFsJqNdaM2GKuMhE67TxcEnOqJNF+VtYv2Ji8DnrUaF4FAFSNxY+MRGICl+873CsSJVKas9TQtW14LA==} dependencies: - '@volar/source-map': 2.1.2 + '@volar/source-map': 2.1.5 dev: false - /@volar/language-server@2.1.2: - resolution: {integrity: sha512-5NR5Ztg+OxvDI4oRrjS0/4ZVPumWwhVq5acuK2BJbakG1kJXViYI9NOWiWITMjnliPvf12TEcSrVDBmIq54DOg==} + /@volar/language-server@2.1.5: + resolution: {integrity: sha512-uHNVf9J4IX4g10gAMJmPoIV9RteYlM+d9yOXcPfRn5JEM+RyNue3GJT1JkoK9JPU5yAdYBEAhDjA54Sl5tC3fA==} dependencies: - '@volar/language-core': 2.1.2 - '@volar/language-service': 2.1.2 - '@volar/snapshot-document': 2.1.2 - '@volar/typescript': 2.1.2 + '@volar/language-core': 2.1.5 + '@volar/language-service': 2.1.5 + '@volar/snapshot-document': 2.1.5 + '@volar/typescript': 2.1.5 '@vscode/l10n': 0.0.16 path-browserify: 1.0.1 request-light: 0.7.0 @@ -1498,32 +1683,32 @@ packages: vscode-uri: 3.0.8 dev: false - /@volar/language-service@2.1.2: - resolution: {integrity: sha512-CmVbbKdqzVq+0FT67hfELdHpboqXhKXh6EjypypuFX5ptIRftHZdkaq3/lCCa46EHxS5tvE44jn+s7faN4iRDA==} + /@volar/language-service@2.1.5: + resolution: {integrity: sha512-WuvEv6x/fBe3e4akhblK1E2GgpnAZNnm7sKsRPrQPTE3ED5PIfiMrWgzKB5gNZToD+d6LPxfKAaGWQCpxmSJiw==} dependencies: - '@volar/language-core': 2.1.2 + '@volar/language-core': 2.1.5 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 dev: false - /@volar/snapshot-document@2.1.2: - resolution: {integrity: sha512-ZpJIBZrdm/Gx4jC/zn8H+O6H5vZZwY7B5CMTxl9y8HvcqlePOyDi+VkX8pjQz1VFG9Z5Z+Bau/RL6exqkoVDDA==} + /@volar/snapshot-document@2.1.5: + resolution: {integrity: sha512-UbHM95HxlLNAQ4hTSzIiMj2m19zmwrympviItbx6iPRhbd0FSPGsHdrfL8nsBa9q2cIvwSEtrmA5Sg3tHy4mrg==} dependencies: vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 dev: false - /@volar/source-map@2.1.2: - resolution: {integrity: sha512-yFJqsuLm1OaWrsz9E3yd3bJcYIlHqdZ8MbmIoZLrAzMYQDcoF26/INIhgziEXSdyHc8xd7rd/tJdSnUyh0gH4Q==} + /@volar/source-map@2.1.5: + resolution: {integrity: sha512-GIkAM6fHgDcTXcdH4i10fAiAZzO0HLIer8/pt3oZ9A0n7n4R5d1b2F8Xxzh/pgmgNoL+SrHX3MFxs35CKgfmtA==} dependencies: muggle-string: 0.4.1 dev: false - /@volar/typescript@2.1.2: - resolution: {integrity: sha512-lhTancZqamvaLvoz0u/uth8dpudENNt2LFZOWCw9JZiX14xRFhdhfzmphiCRb7am9E6qAJSbdS/gMt1utXAoHQ==} + /@volar/typescript@2.1.5: + resolution: {integrity: sha512-zo9a3NrNMSkufIvHuExDGTfYv+zO7C5p2wg8fyP7vcqF/Qo0ztjb0ZfOgq/A85EO/MBc1Kj2Iu7PaOBtP++NMw==} dependencies: - '@volar/language-core': 2.1.2 + '@volar/language-core': 2.1.5 path-browserify: 1.0.1 dev: false @@ -1653,13 +1838,14 @@ packages: is-array-buffer: 3.0.4 dev: true - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.2 + es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 dev: true @@ -1678,7 +1864,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 dev: true @@ -1688,7 +1874,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.2 es-shim-unscopables: 1.0.2 dev: true @@ -1699,7 +1885,7 @@ packages: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.2 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 @@ -1749,30 +1935,30 @@ packages: zod: 3.22.4 dev: true - /astro-seo@0.8.3(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.2): + /astro-seo@0.8.3(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.3): resolution: {integrity: sha512-gQeEh0U2yyVM0iyU8DTORK6hXMy5WH2wufrkUuNOKjI3LnYLniqgDxm1LZPQDuD6b4OHabVOi/5L88A9POCcCQ==} dependencies: - '@astrojs/check': 0.5.9(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.2) + '@astrojs/check': 0.5.10(prettier-plugin-astro@0.13.0)(prettier@3.2.5)(typescript@5.4.3) transitivePeerDependencies: - prettier - prettier-plugin-astro - typescript dev: false - /astro@4.5.5(typescript@5.4.2): - resolution: {integrity: sha512-gZ3jR06dLmY9/SMkKMr+3pRSrUjhuwjnXt+9abFJV3WGwhCnLZbSNsTBrLMsaFHpAS1ReJChcTWyKRCvs/jCIQ==} + /astro@4.5.9(typescript@5.4.3): + resolution: {integrity: sha512-GheU72Goz7dYQNKaqTxB2H49cNvHfahGSbNkTvMXk+gyHf/g633qadqlO2ZQbTUacoUWmDzvS5fhMZt2/w4naQ==} engines: {node: '>=18.14.1', npm: '>=6.14.0'} hasBin: true dependencies: '@astrojs/compiler': 2.7.0 '@astrojs/internal-helpers': 0.3.0 - '@astrojs/markdown-remark': 4.3.0 + '@astrojs/markdown-remark': 4.3.1 '@astrojs/telemetry': 3.0.4 - '@babel/core': 7.24.0 - '@babel/generator': 7.23.6 - '@babel/parser': 7.24.0 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.0) - '@babel/traverse': 7.24.0 + '@babel/core': 7.24.3 + '@babel/generator': 7.24.1 + '@babel/parser': 7.24.1 + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3) + '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 acorn: 8.11.3 @@ -1791,7 +1977,7 @@ packages: diff: 5.2.0 dlv: 1.1.3 dset: 3.1.3 - es-module-lexer: 1.4.1 + es-module-lexer: 1.4.2 esbuild: 0.19.12 estree-walker: 3.0.3 execa: 8.0.1 @@ -1817,15 +2003,15 @@ packages: shiki: 1.2.0 string-width: 7.1.0 strip-ansi: 7.1.0 - tsconfck: 3.0.3(typescript@5.4.2) + tsconfck: 3.0.3(typescript@5.4.3) unist-util-visit: 5.0.0 vfile: 6.0.1 - vite: 5.1.6 - vitefu: 0.2.5(vite@5.1.6) + vite: 5.2.5 + vitefu: 0.2.5(vite@5.2.5) which-pm: 2.1.1 yargs-parser: 21.1.1 zod: 3.22.4 - zod-to-json-schema: 3.22.4(zod@3.22.4) + zod-to-json-schema: 3.22.5(zod@3.22.4) optionalDependencies: sharp: 0.32.6 transitivePeerDependencies: @@ -1849,19 +2035,19 @@ packages: synckit: 0.9.0 dev: true - /autoprefixer@10.4.18(postcss@8.4.35): - resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} + /autoprefixer@10.4.19(postcss@8.4.38): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001597 + caniuse-lite: 1.0.30001600 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true @@ -1900,8 +2086,8 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /bare-events@2.2.1: - resolution: {integrity: sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==} + /bare-events@2.2.2: + resolution: {integrity: sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==} requiresBuild: true optional: true @@ -1909,7 +2095,7 @@ packages: resolution: {integrity: sha512-X9IqgvyB0/VA5OZJyb5ZstoN62AzD7YxVGog13kkfYWYqJYcK0kcqLZ6TrmH5qr4/8//ejVcX4x/a0UvaogXmA==} requiresBuild: true dependencies: - bare-events: 2.2.1 + bare-events: 2.2.2 bare-os: 2.2.1 bare-path: 2.1.0 streamx: 2.16.1 @@ -1994,8 +2180,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001597 - electron-to-chromium: 1.4.708 + caniuse-lite: 1.0.30001600 + electron-to-chromium: 1.4.715 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) @@ -2046,8 +2232,8 @@ packages: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} - /caniuse-lite@1.0.30001597: - resolution: {integrity: sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==} + /caniuse-lite@1.0.30001600: + resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2205,6 +2391,7 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + requiresBuild: true /color-string@1.9.1: resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} @@ -2297,7 +2484,7 @@ packages: engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} dependencies: mdn-data: 2.0.28 - source-map-js: 1.0.2 + source-map-js: 1.2.0 dev: false /css-tree@2.3.1: @@ -2305,7 +2492,7 @@ packages: engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} dependencies: mdn-data: 2.0.30 - source-map-js: 1.0.2 + source-map-js: 1.2.0 dev: false /css-what@6.1.0: @@ -2717,8 +2904,8 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - /detect-libc@2.0.2: - resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + /detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} requiresBuild: true optional: true @@ -2781,8 +2968,8 @@ packages: domelementtype: 2.3.0 dev: false - /dompurify@3.0.9: - resolution: {integrity: sha512-uyb4NDIvQ3hRn6NiC+SIFaP4mJ/MdXlvtunaqK9Bn6dD3RuB/1S/gasEjDHD8eiaqdSael2vBv+hOs7Y+jhYOQ==} + /dompurify@3.0.11: + resolution: {integrity: sha512-Fan4uMuyB26gFV3ovPoEoQbxRRPfTu3CvImyZnhGq5fsIEO+gEFLp45ISFt+kQBWsK5ulDdT0oV28jS1UrwQLg==} dev: false /domutils@3.1.0: @@ -2800,8 +2987,8 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - /electron-to-chromium@1.4.708: - resolution: {integrity: sha512-iWgEEvREL4GTXXHKohhh33+6Y8XkPI5eHihDmm8zUk5Zo7HICEW+wI/j5kJ2tbuNUCXJ/sNXa03ajW635DiJXA==} + /electron-to-chromium@1.4.715: + resolution: {integrity: sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==} /elkjs@0.9.2: resolution: {integrity: sha512-2Y/RaA1pdgSHpY0YG4TYuYCD2wh97CRvu22eLG3Kz0pgQ/6KbIFTxsTnDc4MH/6hFlg2L/9qXrDMG0nMjP63iw==} @@ -2847,55 +3034,8 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract@1.22.5: - resolution: {integrity: sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - es-define-property: 1.0.0 - es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 - is-callable: 1.2.7 - is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.5 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 - dev: true - - /es-abstract@1.23.0: - resolution: {integrity: sha512-vmuE7Uoevk2xkwu5Gwa7RfJk/ebVV6xRv7KuZNbUglmJHhWPMbLL20ztreVpBbdxBZijETx3Aml3NssX4SFMvQ==} + /es-abstract@1.23.2: + resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 @@ -2907,6 +3047,7 @@ packages: data-view-byte-offset: 1.0.0 es-define-property: 1.0.0 es-errors: 1.3.0 + es-object-atoms: 1.0.0 es-set-tostringtag: 2.0.3 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 @@ -2934,13 +3075,13 @@ packages: regexp.prototype.flags: 1.5.2 safe-array-concat: 1.1.2 safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.2 typed-array-byte-length: 1.0.1 typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.5 + typed-array-length: 1.0.6 unbox-primitive: 1.0.2 which-typed-array: 1.1.15 dev: true @@ -2963,7 +3104,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.0 + es-abstract: 1.23.2 es-errors: 1.3.0 es-set-tostringtag: 2.0.3 function-bind: 1.1.2 @@ -2977,8 +3118,15 @@ packages: safe-array-concat: 1.1.2 dev: true - /es-module-lexer@1.4.1: - resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + /es-module-lexer@1.4.2: + resolution: {integrity: sha512-7nOqkomXZEaxUDJw21XZNtRk739QvrPSoZoRtbsEfcii00vdzZUh6zh1CQwHhrib8MdEtJfv5rJiGeb4KuV/vw==} + + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + dev: true /es-set-tostringtag@2.0.3: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} @@ -3034,6 +3182,36 @@ packages: '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + /escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} @@ -3061,6 +3239,16 @@ packages: semver: 7.6.0 dev: true + /eslint-compat-utils@0.5.0(eslint@8.57.0): + resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.57.0 + semver: 7.6.0 + dev: true + /eslint-mdx@3.1.5(eslint@8.57.0): resolution: {integrity: sha512-ynztX0k7CQ3iDL7fDEIeg3g0O/d6QPv7IBI9fdYLhXp5fAp0fi8X22xF/D3+Pk0f90R27uwqa1clHpay6t0l8Q==} engines: {node: '>=18.0.0'} @@ -3086,8 +3274,8 @@ packages: - supports-color dev: true - /eslint-plugin-astro@0.31.4(eslint@8.57.0): - resolution: {integrity: sha512-aU1KYSo7TdnSTBenyAWuRFB07lVUe0/6u9cltC2ZCx0QgcfC+HP7e87OkmvoKh+RZuaSsVgLG4zCOI8LZ6nS/Q==} + /eslint-plugin-astro@0.32.0(eslint@8.57.0): + resolution: {integrity: sha512-T8Chx9yG4vrWLCMkQGEbBvUJYSwMVXbw95+EpceFue/jr8JavjYw9A6K1xUxMyycnlWOGMiK7wJ5d/hHNsKBhg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=7.0.0' @@ -3097,8 +3285,9 @@ packages: '@typescript-eslint/types': 5.62.0 astro-eslint-parser: 0.16.3 eslint: 8.57.0 - eslint-compat-utils: 0.4.1(eslint@8.57.0) - postcss: 8.4.35 + eslint-compat-utils: 0.5.0(eslint@8.57.0) + globals: 13.24.0 + postcss: 8.4.38 postcss-selector-parser: 6.0.16 transitivePeerDependencies: - supports-color @@ -3124,9 +3313,9 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.24.0 + '@babel/runtime': 7.24.1 aria-query: 5.3.0 - array-includes: 3.1.7 + array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.8 axe-core: 4.7.0 @@ -3139,8 +3328,8 @@ packages: jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 + object.entries: 1.1.8 + object.fromentries: 2.0.8 dev: true /eslint-plugin-markdown@3.0.1(eslint@8.57.0): @@ -3538,7 +3727,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.2 functions-have-names: 1.2.3 dev: true @@ -4303,7 +4492,7 @@ packages: define-properties: 1.2.1 get-intrinsic: 1.2.4 has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.5 + reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 dev: true @@ -4376,10 +4565,10 @@ packages: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} dependencies: - array-includes: 3.1.7 + array-includes: 3.1.8 array.prototype.flat: 1.3.2 object.assign: 4.1.5 - object.values: 1.1.7 + object.values: 1.2.0 dev: true /katex@0.16.9: @@ -4841,7 +5030,7 @@ packages: d3-sankey: 0.12.3 dagre-d3-es: 7.0.10 dayjs: 1.11.10 - dompurify: 3.0.9 + dompurify: 3.0.11 elkjs: 0.9.2 katex: 0.16.9 khroma: 2.1.0 @@ -5454,7 +5643,7 @@ packages: acorn: 8.11.3 pathe: 1.1.2 pkg-types: 1.0.3 - ufo: 1.5.1 + ufo: 1.5.3 dev: false /mri@1.2.0: @@ -5595,31 +5784,32 @@ packages: object-keys: 1.1.1 dev: true - /object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-object-atoms: 1.0.0 dev: true - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.2 + es-object-atoms: 1.0.0 dev: true - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-object-atoms: 1.0.0 dev: true /once@1.4.0: @@ -5745,7 +5935,7 @@ packages: resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} engines: {node: '>=16'} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 3.0.1 lines-and-columns: 2.0.4 @@ -5880,29 +6070,29 @@ packages: engines: {node: '>= 0.4'} dev: true - /postcss-import@15.1.0(postcss@8.4.35): + /postcss-import@15.1.0(postcss@8.4.38): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 dev: true - /postcss-js@4.0.1(postcss@8.4.35): + /postcss-js@4.0.1(postcss@8.4.38): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /postcss-load-config@4.0.2(postcss@8.4.35): + /postcss-load-config@4.0.2(postcss@8.4.38): resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: @@ -5915,17 +6105,17 @@ packages: optional: true dependencies: lilconfig: 3.1.1 - postcss: 8.4.35 + postcss: 8.4.38 yaml: 2.4.1 dev: true - /postcss-nested@6.0.1(postcss@8.4.35): + /postcss-nested@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 postcss-selector-parser: 6.0.16 dev: true @@ -5949,13 +6139,13 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 - source-map-js: 1.0.2 + source-map-js: 1.2.0 /prebuild-install@7.1.2: resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} @@ -5963,7 +6153,7 @@ packages: hasBin: true requiresBuild: true dependencies: - detect-libc: 2.0.2 + detect-libc: 2.0.3 expand-template: 2.0.3 github-from-package: 0.0.0 minimist: 1.2.8 @@ -6149,13 +6339,13 @@ packages: resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} dev: true - /reflect.getprototypeof@1.0.5: - resolution: {integrity: sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==} + /reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.0 + es-abstract: 1.23.2 es-errors: 1.3.0 get-intrinsic: 1.2.4 globalthis: 1.0.3 @@ -6444,12 +6634,12 @@ packages: resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} dev: true - /schema-dts@1.1.2(typescript@5.4.2): + /schema-dts@1.1.2(typescript@5.4.3): resolution: {integrity: sha512-MpNwH0dZJHinVxk9bT8XUdjKTxMYrA5bLtrrGmFA6PTLwlOKnhi67XoRd6/ty+Djt6ZC0slR57qFhZDNMI6DhQ==} peerDependencies: typescript: '>=4.1.0' dependencies: - typescript: 5.4.2 + typescript: 5.4.3 dev: true /section-matter@1.0.0: @@ -6498,7 +6688,7 @@ packages: requiresBuild: true dependencies: color: 4.2.3 - detect-libc: 2.0.2 + detect-libc: 2.0.3 node-addon-api: 6.1.0 prebuild-install: 7.1.2 semver: 7.6.0 @@ -6586,8 +6776,8 @@ packages: engines: {node: '>=8'} dev: true - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} /source-map@0.7.4: @@ -6614,7 +6804,7 @@ packages: fast-fifo: 1.3.2 queue-tick: 1.0.1 optionalDependencies: - bare-events: 2.2.1 + bare-events: 2.2.2 optional: true /string-width@4.2.3: @@ -6649,29 +6839,31 @@ packages: get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-abstract: 1.23.2 + es-object-atoms: 1.0.0 dev: true - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-object-atoms: 1.0.0 dev: true - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.5 + es-object-atoms: 1.0.0 dev: true /string_decoder@1.3.0: @@ -6831,11 +7023,11 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.35 - postcss-import: 15.1.0(postcss@8.4.35) - postcss-js: 4.0.1(postcss@8.4.35) - postcss-load-config: 4.0.2(postcss@8.4.35) - postcss-nested: 6.0.1(postcss@8.4.35) + postcss: 8.4.38 + postcss-import: 15.1.0(postcss@8.4.38) + postcss-js: 4.0.1(postcss@8.4.38) + postcss-load-config: 4.0.2(postcss@8.4.38) + postcss-nested: 6.0.1(postcss@8.4.38) postcss-selector-parser: 6.0.16 resolve: 1.22.8 sucrase: 3.35.0 @@ -6885,8 +7077,8 @@ packages: streamx: 2.16.1 optional: true - /tar@6.2.0: - resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} + /tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} dependencies: chownr: 2.0.0 @@ -6930,13 +7122,13 @@ packages: /trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - /ts-api-utils@1.3.0(typescript@5.4.2): + /ts-api-utils@1.3.0(typescript@5.4.3): resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.4.2 + typescript: 5.4.3 dev: true /ts-dedent@2.2.0: @@ -6948,7 +7140,7 @@ packages: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /tsconfck@3.0.3(typescript@5.4.2): + /tsconfck@3.0.3(typescript@5.4.3): resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} engines: {node: ^18 || >=20} hasBin: true @@ -6958,7 +7150,7 @@ packages: typescript: optional: true dependencies: - typescript: 5.4.2 + typescript: 5.4.3 /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} @@ -7024,8 +7216,8 @@ packages: is-typed-array: 1.1.13 dev: true - /typed-array-length@1.0.5: - resolution: {integrity: sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==} + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -7050,13 +7242,13 @@ packages: semver: 7.6.0 dev: false - /typescript@5.4.2: - resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} + /typescript@5.4.3: + resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} engines: {node: '>=14.17'} hasBin: true - /ufo@1.5.1: - resolution: {integrity: sha512-HGyF79+/qZ4soRvM+nHERR2pJ3VXDZ/8sL1uLahdgEDf580NkgiWOxLk33FetExqOWp352JZRsgXbG/4MaGOSg==} + /ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} dev: false /unbox-primitive@1.0.2: @@ -7085,7 +7277,7 @@ packages: '@types/concat-stream': 2.0.3 '@types/debug': 4.1.12 '@types/is-empty': 1.2.3 - '@types/node': 20.11.28 + '@types/node': 20.11.30 '@types/unist': 3.0.2 '@ungap/structured-clone': 1.2.0 concat-stream: 2.0.0 @@ -7341,8 +7533,8 @@ packages: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - /vite@5.1.6: - resolution: {integrity: sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==} + /vite@5.2.5: + resolution: {integrity: sha512-a+rTAqkMmJ2hQpC6dfAyyc5M0YLH3BGZKLpA6pU9AhzlcK1YZS8P/ov9OcdHxaf+j0sM0DIh/txH7ydTHUpISg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -7369,13 +7561,13 @@ packages: terser: optional: true dependencies: - esbuild: 0.19.12 - postcss: 8.4.35 + esbuild: 0.20.2 + postcss: 8.4.38 rollup: 4.13.0 optionalDependencies: fsevents: 2.3.3 - /vitefu@0.2.5(vite@5.1.6): + /vitefu@0.2.5(vite@5.2.5): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -7383,9 +7575,9 @@ packages: vite: optional: true dependencies: - vite: 5.1.6 + vite: 5.2.5 - /volar-service-css@0.0.34(@volar/language-service@2.1.2): + /volar-service-css@0.0.34(@volar/language-service@2.1.5): resolution: {integrity: sha512-C7ua0j80ZD7bsgALAz/cA1bykPehoIa5n+3+Ccr+YLpj0fypqw9iLUmGLX11CqzqNCO2XFGe/1eXB/c+SWrF/g==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -7393,13 +7585,13 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.2 - vscode-css-languageservice: 6.2.12 + '@volar/language-service': 2.1.5 + vscode-css-languageservice: 6.2.13 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 dev: false - /volar-service-emmet@0.0.34(@volar/language-service@2.1.2): + /volar-service-emmet@0.0.34(@volar/language-service@2.1.5): resolution: {integrity: sha512-ubQvMCmHPp8Ic82LMPkgrp9ot+u2p/RDd0RyT0EykRkZpWsagHUF5HWkVheLfiMyx2rFuWx/+7qZPOgypx6h6g==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -7407,12 +7599,12 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.2 + '@volar/language-service': 2.1.5 '@vscode/emmet-helper': 2.9.2 - vscode-html-languageservice: 5.1.2 + vscode-html-languageservice: 5.2.0 dev: false - /volar-service-html@0.0.34(@volar/language-service@2.1.2): + /volar-service-html@0.0.34(@volar/language-service@2.1.5): resolution: {integrity: sha512-kMEneea1tQbiRcyKavqdrSVt8zV06t+0/3pGkjO3gV6sikXTNShIDkdtB4Tq9vE2cQdM50TuS7utVV7iysUxHw==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -7420,13 +7612,13 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.2 - vscode-html-languageservice: 5.1.2 + '@volar/language-service': 2.1.5 + vscode-html-languageservice: 5.2.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 dev: false - /volar-service-prettier@0.0.34(@volar/language-service@2.1.2)(prettier@3.2.5): + /volar-service-prettier@0.0.34(@volar/language-service@2.1.5)(prettier@3.2.5): resolution: {integrity: sha512-BNfJ8FwfPi1Wm/JkuzNjraOLdtKieGksNT/bDyquygVawv1QUzO2HB1hiMKfZGdcSFG5ZL9R0j7bBfRTfXA2gg==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -7437,12 +7629,12 @@ packages: prettier: optional: true dependencies: - '@volar/language-service': 2.1.2 + '@volar/language-service': 2.1.5 prettier: 3.2.5 vscode-uri: 3.0.8 dev: false - /volar-service-typescript-twoslash-queries@0.0.34(@volar/language-service@2.1.2): + /volar-service-typescript-twoslash-queries@0.0.34(@volar/language-service@2.1.5): resolution: {integrity: sha512-XAY2YtWKUp6ht89gxt3L5Dr46LU45d/VlBkj1KXUwNlinpoWiGN4Nm3B6DRF3VoBThAnQgm4c7WD0S+5yTzh+w==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -7450,10 +7642,10 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.2 + '@volar/language-service': 2.1.5 dev: false - /volar-service-typescript@0.0.34(@volar/language-service@2.1.2): + /volar-service-typescript@0.0.34(@volar/language-service@2.1.5): resolution: {integrity: sha512-NbAry0w8ZXFgGsflvMwmPDCzgJGx3C+eYxFEbldaumkpTAJiywECWiUbPIOfmEHgpOllUKSnhwtLlWFK4YnfQg==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -7461,7 +7653,7 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.2 + '@volar/language-service': 2.1.5 path-browserify: 1.0.1 semver: 7.6.0 typescript-auto-import-cache: 0.3.2 @@ -7469,8 +7661,8 @@ packages: vscode-nls: 5.2.0 dev: false - /vscode-css-languageservice@6.2.12: - resolution: {integrity: sha512-PS9r7HgNjqzRl3v91sXpCyZPc8UDotNo6gntFNtGCKPhGA9Frk7g/VjX1Mbv3F00pn56D+rxrFzR9ep4cawOgA==} + /vscode-css-languageservice@6.2.13: + resolution: {integrity: sha512-2rKWXfH++Kxd9Z4QuEgd1IF7WmblWWU7DScuyf1YumoGLkY9DW6wF/OTlhOyO2rN63sWHX2dehIpKBbho4ZwvA==} dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.11 @@ -7478,8 +7670,8 @@ packages: vscode-uri: 3.0.8 dev: false - /vscode-html-languageservice@5.1.2: - resolution: {integrity: sha512-wkWfEx/IIR3s2P5yD4aTGHiOb8IAzFxgkSt1uSC3itJ4oDAm23yG7o0L29JljUdnXDDgLafPAvhv8A2I/8riHw==} + /vscode-html-languageservice@5.2.0: + resolution: {integrity: sha512-cdNMhyw57/SQzgUUGSIMQ66jikqEN6nBNyhx5YuOyj9310+eY9zw8Q0cXpiKzDX8aHYFewQEXRnigl06j/TVwQ==} dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.11 @@ -7685,8 +7877,8 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} - /zod-to-json-schema@3.22.4(zod@3.22.4): - resolution: {integrity: sha512-2Ed5dJ+n/O3cU383xSY28cuVi0BCQhF8nYqWU5paEpl7fVdqdAmiLdqLyfblbNdfOFwFfi/mqU4O1pwc60iBhQ==} + /zod-to-json-schema@3.22.5(zod@3.22.4): + resolution: {integrity: sha512-+akaPo6a0zpVCCseDed504KBJUQpEW5QZw7RMneNmKw+fGaML1Z9tUNLnHHAC8x6dzVRO1eB2oEMyZRnuBZg7Q==} peerDependencies: zod: ^3.22.4 dependencies: diff --git a/src/components/bloghero.astro b/src/components/bloghero.astro index 635165e..fce1672 100644 --- a/src/components/bloghero.astro +++ b/src/components/bloghero.astro @@ -1,30 +1,30 @@ --- +import type { CollectionEntry } from 'astro:content' import { getEntry } from 'astro:content' import { Image } from 'astro:assets' import { Icon } from 'astro-icon/components' -import type { Frontmatter } from '../config' import Categories from '../components/categories.astro' import Tags from '../components/tags.astro' export interface Props { - frontmatter: Frontmatter + post: CollectionEntry<'blog'> } -const { frontmatter } = Astro.props +const { post } = Astro.props let cat = await getEntry('category', 'general') -if (frontmatter.categories) { - cat = await getEntry(frontmatter.categories[0]) +if (post.data.categories) { + cat = await getEntry(post.data.categories[0]) } const image = - frontmatter.coverSVG || - frontmatter.coverImage || - (frontmatter.images && frontmatter.images[0]) || - frontmatter.socialImage || + post.data.coverSVG || + post.data.coverImage || + (post.data.images && post.data.images[0]) || + post.data.socialImage || cat.data.coverSVG let author = await getEntry('author', 'default') -if (frontmatter.author) { - author = await getEntry(frontmatter.author) +if (post.data.author) { + author = await getEntry(post.data.author) } --- @@ -39,16 +39,16 @@ if (frontmatter.author) { class='absolute left-0 top-0 z-0 h-full w-full object-cover' />
- {frontmatter.categories && } + {post.data.categories && }

- {frontmatter.title} + {post.data.title}

- {frontmatter.description} + {post.data.description}

{ - frontmatter.author && ( + post.data.author && ( - {new Date(frontmatter.publishDate).toString()} + {new Date(post.data.publishDate).toString()} { - frontmatter.minutesRead && ( + post.data.minutesRead && ( - {frontmatter.minutesRead} + {post.data.minutesRead} ) } - +
diff --git a/src/components/seo.astro b/src/components/seo.astro index 7c5ac13..b90b998 100644 --- a/src/components/seo.astro +++ b/src/components/seo.astro @@ -1,9 +1,9 @@ --- +import type { CollectionEntry } from 'astro:content' import type { TwitterCardType } from 'astro-seo' import { SEO } from 'astro-seo' import { getImage } from 'astro:assets' import { getCollection } from 'astro:content' -import type { Frontmatter } from '../config' import type { Article, BreadcrumbList, @@ -15,7 +15,7 @@ import type { import { SiteMetadata, DefaultImage, LogoImage } from '../config' export interface Props { - frontmatter: Frontmatter + frontmatter: CollectionEntry<'blog'>['data'] | CollectionEntry<'page'>['data'] } const { frontmatter } = Astro.props @@ -30,8 +30,8 @@ const image = await getImage({ format: 'jpg' }) const logo = LogoImage -const publishDate = new Date(frontmatter.publishDate) - +const publishDate = frontmatter.publishDate || SiteMetadata.buildTime +const author = frontmatter.author ? frontmatter.author.slug : 'default' const openGraph = { basic: { title: frontmatter.title, @@ -48,7 +48,7 @@ const openGraph = { width: image.attributes.width }, article: { - author: frontmatter.author, + author: author, publishedTime: SiteMetadata.buildTime.toISOString(), tags: frontmatter.tags } diff --git a/src/config.ts b/src/config.ts index 58be2bd..49d40fb 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,7 +1,5 @@ import type { CollectionEntry } from 'astro:content' -export type Frontmatter = CollectionEntry<'blog'>['data'] - export interface TagType { tag: string count: number diff --git a/src/content/config.ts b/src/content/config.ts index 59da7a5..53baaff 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -2,7 +2,7 @@ import { z, defineCollection, reference } from 'astro:content' // 2. Define your collections -const blogCollection = defineCollection({ +const blog = defineCollection({ schema: ({ image }) => z.object({ draft: z.boolean().optional(), @@ -22,7 +22,23 @@ const blogCollection = defineCollection({ }) }) -const docCollection = defineCollection({ +const page = defineCollection({ + schema: ({ image }) => + z.object({ + title: z.string(), + description: z.string().optional(), + author: reference('author').optional(), + publishDate: z.date().optional(), + coverSVG: image().optional(), + coverImage: image().optional(), + socialImage: image().optional(), + images: z.array(image()).optional(), + gallery: z.string().optional(), + tags: z.array(z.string()).optional(), + extra: z.array(z.enum(['math', 'markmap', 'mermaid', 'gallery'])).optional() + }) +}) +const doc = defineCollection({ schema: ({ image }) => z.object({ draft: z.boolean().optional(), @@ -35,7 +51,7 @@ const docCollection = defineCollection({ }) }) -const categoryCollection = defineCollection({ +const category = defineCollection({ schema: ({ image }) => z.object({ title: z.string(), @@ -45,7 +61,7 @@ const categoryCollection = defineCollection({ }) }) -const authorCollection = defineCollection({ +const author = defineCollection({ schema: ({ image }) => z.object({ title: z.string(), @@ -55,7 +71,7 @@ const authorCollection = defineCollection({ }) }) -const socialCollection = defineCollection({ +const social = defineCollection({ type: 'data', schema: z.object({ name: z.string(), @@ -66,9 +82,10 @@ const socialCollection = defineCollection({ // 3. Export multiple collections to register them export const collections = { - blog: blogCollection, - doc: docCollection, - category: categoryCollection, - author: authorCollection, - social: socialCollection + blog, + page, + doc, + category, + author, + social } diff --git a/src/pages/about.md b/src/content/page/about.md similarity index 95% rename from src/pages/about.md rename to src/content/page/about.md index 537ac91..6ead4b4 100644 --- a/src/pages/about.md +++ b/src/content/page/about.md @@ -1,10 +1,9 @@ --- -layout: ../layouts/page.astro title: About description: Description of Hello Astro Starter -publishDate: '2023-06-13T00:00:00.000Z' -coverSVG: ../assets/svg/undraw/undraw_about_me.svg -socialImage: ../assets/undraw/undraw_about_me.png +publishDate: 2023-06-13T00:00:00.000Z +coverSVG: ../../assets/svg/undraw/undraw_about_me.svg +socialImage: ../../assets/undraw/undraw_about_me.png --- This is multi-purpose Astro starter template based on the following: diff --git a/src/pages/privacy.md b/src/content/page/privacy.md similarity index 87% rename from src/pages/privacy.md rename to src/content/page/privacy.md index 52d6dbb..4d21ef4 100644 --- a/src/pages/privacy.md +++ b/src/content/page/privacy.md @@ -1,10 +1,9 @@ --- -layout: ../layouts/page.astro title: Privacy description: Our policy regarding information collection and use publishDate: 2022-08-08T00:00:00.000Z -coverSVG: ../assets/svg/undraw/undraw_privacy_protection.svg -socialImage: ../assets/undraw/undraw_privacy_protection.png +coverSVG: ../../assets/svg/undraw/undraw_privacy_protection.svg +socialImage: ../../assets/undraw/undraw_privacy_protection.png --- We are committed to maintaining the trust of visitors to this website. We promise to handle and store your data fairly and legally at all times. diff --git a/src/layouts/base.astro b/src/layouts/base.astro index a4f8db1..e07fc43 100644 --- a/src/layouts/base.astro +++ b/src/layouts/base.astro @@ -1,13 +1,13 @@ --- // import { ViewTransitions } from 'astro:transitions' -import type { Frontmatter } from '../config' +import type { CollectionEntry } from 'astro:content' import SEO from '../components/seo.astro' import Header from '../components/header.astro' import Footer from '../components/footer.astro' import Gallery from '../components/gallery.astro' export interface Props { - frontmatter: Frontmatter + frontmatter: CollectionEntry<'blog'>['data'] | CollectionEntry<'page'>['data'] } const { frontmatter } = Astro.props diff --git a/src/layouts/blog.astro b/src/layouts/blog.astro index 77ab180..d64ee6f 100644 --- a/src/layouts/blog.astro +++ b/src/layouts/blog.astro @@ -1,30 +1,29 @@ --- import type { CollectionEntry } from 'astro:content' -import type { Frontmatter } from '../config' import Base from '../layouts/base.astro' import BlogHero from '../components/bloghero.astro' import NextPrev from '../components/nextprev.astro' import Images from '../components/images.astro' export interface Props { - frontmatter: Frontmatter + post: CollectionEntry<'blog'> prev?: CollectionEntry<'blog'> next?: CollectionEntry<'blog'> } -const { frontmatter, prev, next } = Astro.props +const { post, prev, next } = Astro.props --- - +
- +
- {frontmatter.images && } + {post.data.images && }
diff --git a/src/layouts/doc.astro b/src/layouts/doc.astro index 4e6bb31..9c50663 100644 --- a/src/layouts/doc.astro +++ b/src/layouts/doc.astro @@ -1,6 +1,5 @@ --- import type { CollectionEntry } from 'astro:content' -import type { Frontmatter } from '../config' import type { Sidebar } from '../config' import { getCollection } from 'astro:content' import Base from './base.astro' @@ -48,11 +47,10 @@ docs.forEach((doc, i) => { } } }) -const basefm: Frontmatter = { - draft: frontmatter.draft, +const basefm: CollectionEntry<'page'>['data'] = { + // draft: frontmatter.draft, title: frontmatter.title, - description: frontmatter.description, - publishDate: new Date() + description: frontmatter.description } --- diff --git a/src/layouts/page.astro b/src/layouts/page.astro index bb86067..a2daf05 100644 --- a/src/layouts/page.astro +++ b/src/layouts/page.astro @@ -1,46 +1,24 @@ --- -import type { Frontmatter } from '../config' +import type { CollectionEntry } from 'astro:content' import Base from '../layouts/base.astro' import PageHero from '../components/pagehero.astro' -import { DefaultImage, DefaultSVG } from '../config' export interface Props { - frontmatter: { - layout: string - title: string - description: string - publishDate: string - coverSVG: string - socialImage: string - } + frontmatter: CollectionEntry<'page'>['data'] } const { frontmatter } = Astro.props - -const images = import.meta.glob('../assets/**/*', { - import: 'default' -}) -const coverSVG = (await images[frontmatter.coverSVG]()) || DefaultSVG -const socialImage = (await images[frontmatter.socialImage]()) || DefaultImage - -const fm: Frontmatter = { - title: frontmatter.title, - description: frontmatter.description, - publishDate: new Date(frontmatter.publishDate), - coverSVG: coverSVG, - socialImage: socialImage -} --- - +
['data'] = { title: '404: Not found', description: "You just hit a route that doesn't exist... the sadness.", coverSVG: coverSVG, - socialImage: socialImage, - publishDate: SiteMetadata.buildTime + socialImage: socialImage } --- diff --git a/src/pages/[page].astro b/src/pages/[page].astro new file mode 100644 index 0000000..c2e3cac --- /dev/null +++ b/src/pages/[page].astro @@ -0,0 +1,26 @@ +--- +import type { CollectionEntry } from 'astro:content' +import { getCollection } from 'astro:content' +import Layout from '../layouts/page.astro' + +export interface Props { + page: CollectionEntry<'page'> +} + +const { page } = Astro.props + +const { Content } = await page.render() + +export async function getStaticPaths() { + const pages = await getCollection('page') + + return pages.map((page) => ({ + params: { page: page.slug }, + props: { page } + })) +} +--- + + + + diff --git a/src/pages/author/[author]/[...page].astro b/src/pages/author/[author]/[...page].astro index 611abaf..32a8373 100644 --- a/src/pages/author/[author]/[...page].astro +++ b/src/pages/author/[author]/[...page].astro @@ -3,7 +3,6 @@ import type { PaginateFunction, Page } from 'astro' import type { CollectionEntry } from 'astro:content' import { getEntry } from 'astro:content' import { Image } from 'astro:assets' -import type { Frontmatter } from '../../../config' import { SiteMetadata, PAGE_SIZE } from '../../../config' import { getCollection } from 'astro:content' import Base from '../../../layouts/base.astro' @@ -22,7 +21,7 @@ const { page } = Astro.props const detail = await getEntry('author', author!) -const frontmatter: Frontmatter = { +const frontmatter: CollectionEntry<'page'>['data'] = { title: 'Author: ' + detail!.data.title + diff --git a/src/pages/authors.astro b/src/pages/authors.astro index 3f4cd2c..2db5cfb 100644 --- a/src/pages/authors.astro +++ b/src/pages/authors.astro @@ -1,19 +1,17 @@ --- import { getCollection } from 'astro:content' import { Image } from 'astro:assets' -import type { Frontmatter } from '../config' -import { SiteMetadata } from '../config' +import type { CollectionEntry } from 'astro:content' import Base from '../layouts/base.astro' import PageHero from '../components/pagehero.astro' import coverSVG from '../assets/svg/undraw/undraw_windows.svg' import socialImage from '../assets/undraw/undraw_windows.png' -const frontmatter: Frontmatter = { +const frontmatter: CollectionEntry<'page'>['data'] = { title: 'Authors', description: 'Contributors to this website', coverSVG: coverSVG, - socialImage: socialImage, - publishDate: SiteMetadata.buildTime + socialImage: socialImage } const authors = await getCollection('author') diff --git a/src/pages/blog/[...page].astro b/src/pages/blog/[...page].astro index a8d5c29..767284d 100644 --- a/src/pages/blog/[...page].astro +++ b/src/pages/blog/[...page].astro @@ -1,9 +1,8 @@ --- import type { Page, PaginateFunction } from 'astro' import type { CollectionEntry } from 'astro:content' -import type { Frontmatter } from '../../config' import { getCollection } from 'astro:content' -import { SiteMetadata, PAGE_SIZE } from '../../config' +import { PAGE_SIZE } from '../../config' import Base from '../../layouts/base.astro' import PageHero from '../../components/pagehero.astro' import BlogRoll from '../../components/blogroll.astro' @@ -17,14 +16,13 @@ export interface Props { const { page } = Astro.props -const frontmatter: Frontmatter = { +const frontmatter: CollectionEntry<'page'>['data'] = { title: 'Blog' + (page.size < page.total ? ' (page ' + page.currentPage + ' of ' + page.lastPage + ')' : ''), description: 'View our articles.', coverSVG: coverSVG, - socialImage: socialImage, - publishDate: SiteMetadata.buildTime + socialImage: socialImage } const currentPage = Astro.url.pathname.replace(/(\/\d*)?\/$/, '') diff --git a/src/pages/blog/[slug].astro b/src/pages/blog/[slug].astro index a09464f..fb873ce 100644 --- a/src/pages/blog/[slug].astro +++ b/src/pages/blog/[slug].astro @@ -1,5 +1,4 @@ --- -import type { Frontmatter } from '../../config' import type { CollectionEntry } from 'astro:content' import { getCollection } from 'astro:content' import Layout from '../../layouts/blog.astro' @@ -32,13 +31,13 @@ const { post, prev, next } = Astro.props // @ts-ignore const { Content, remarkPluginFrontmatter } = await post.render() let fm = post.data -const rfm = remarkPluginFrontmatter as Frontmatter +const rfm = remarkPluginFrontmatter as CollectionEntry<'blog'>['data'] if (rfm) { fm.minutesRead = rfm.minutesRead fm.extra = rfm.extra } --- - + diff --git a/src/pages/carousel.astro b/src/pages/carousel.astro index e3e1e36..cc5fd2a 100644 --- a/src/pages/carousel.astro +++ b/src/pages/carousel.astro @@ -1,6 +1,6 @@ --- import { getCollection } from 'astro:content' -import type { Frontmatter } from '../config' +import type { CollectionEntry } from 'astro:content' import { SiteMetadata } from '../config' import Base from '../layouts/base.astro' import MyCarousel from '../components/carousel.astro' @@ -11,12 +11,11 @@ import CTA from '../components/cta.astro' import coverSVG from '../assets/svg/undraw/undraw_design_inspiration.svg' import socialImage from '../assets/undraw/undraw_design_inspiration.png' -const frontmatter: Frontmatter = { +const frontmatter: CollectionEntry<'page'>['data'] = { title: SiteMetadata.title, description: SiteMetadata.description, coverSVG: coverSVG, - socialImage: socialImage, - publishDate: SiteMetadata.buildTime + socialImage: socialImage } const carouselPages = [ diff --git a/src/pages/categories.astro b/src/pages/categories.astro index c8dacb8..adaffd5 100644 --- a/src/pages/categories.astro +++ b/src/pages/categories.astro @@ -1,18 +1,16 @@ --- import { getCollection } from 'astro:content' -import type { Frontmatter } from '../config' -import { SiteMetadata } from '../config' +import type { CollectionEntry } from 'astro:content' import Base from '../layouts/base.astro' import PageHero from '../components/pagehero.astro' import coverSVG from '../assets/svg/undraw/undraw_windows.svg' import socialImage from '../assets/undraw/undraw_windows.png' -const frontmatter: Frontmatter = { +const frontmatter: CollectionEntry<'page'>['data'] = { title: 'Categories', description: 'Categories for articles', coverSVG: coverSVG, - socialImage: socialImage, - publishDate: SiteMetadata.buildTime + socialImage: socialImage } const categories = await getCollection('category') diff --git a/src/pages/category/[category]/[...page].astro b/src/pages/category/[category]/[...page].astro index a92c3c4..670ebd9 100644 --- a/src/pages/category/[category]/[...page].astro +++ b/src/pages/category/[category]/[...page].astro @@ -2,9 +2,8 @@ import type { PaginateFunction, Page } from 'astro' import type { CollectionEntry } from 'astro:content' import { getEntry } from 'astro:content' -import type { Frontmatter } from '../../../config' import { getCollection } from 'astro:content' -import { SiteMetadata, PAGE_SIZE } from '../../../config' +import { PAGE_SIZE } from '../../../config' import Base from '../../../layouts/base.astro' import PageHero from '../../../components/pagehero.astro' import BlogRoll from '../../../components/blogroll.astro' @@ -19,15 +18,14 @@ const { page } = Astro.props const detail = await getEntry('category', category!) -const frontmatter: Frontmatter = { +const frontmatter: CollectionEntry<'page'>['data'] = { title: 'Category: ' + category + (page.size < page.total ? ' (page ' + page.currentPage + ' of ' + page.lastPage + ')' : ''), description: detail!.data.description, coverSVG: detail!.data.coverSVG, - socialImage: detail!.data.socialImage, - publishDate: SiteMetadata.buildTime + socialImage: detail!.data.socialImage } const currentPage = Astro.url.pathname.replace(/(\/\d*)?\/$/, '') diff --git a/src/pages/contact.astro b/src/pages/contact.astro index 8a911f2..878d51c 100644 --- a/src/pages/contact.astro +++ b/src/pages/contact.astro @@ -3,17 +3,17 @@ import { Icon } from 'astro-icon/components' import Base from '../layouts/base.astro' import Map from '../components/map.astro' import PageHero from '../components/pagehero.astro' +import type { CollectionEntry } from 'astro:content' import { SiteMetadata } from '../config' import coverSVG from '../assets/svg/undraw/undraw_contact_us.svg' import socialImage from '../assets/undraw/undraw_contact_us.png' import { getCollection } from 'astro:content' -const frontmatter = { +const frontmatter: CollectionEntry<'page'>['data'] = { title: 'Contact', description: 'Our presence is real and digital. Contact us through the following ways.', coverSVG: coverSVG, - socialImage: socialImage, - publishDate: SiteMetadata.buildTime + socialImage: socialImage } const social = await getCollection('social') diff --git a/src/pages/index.astro b/src/pages/index.astro index f9d715e..8e6474b 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,6 +1,6 @@ --- import { getCollection } from 'astro:content' -import type { Frontmatter } from '../config' +import type { CollectionEntry } from 'astro:content' import { SiteMetadata } from '../config' import Base from '../layouts/base.astro' import Hero from '../components/hero.astro' @@ -11,12 +11,11 @@ import CTA from '../components/cta.astro' import coverSVG from '../assets/svg/undraw/undraw_design_inspiration.svg' import socialImage from '../assets/undraw/undraw_design_inspiration.png' -const frontmatter: Frontmatter = { +const frontmatter: CollectionEntry<'page'>['data'] = { title: SiteMetadata.title, description: SiteMetadata.description, coverSVG: coverSVG, - socialImage: socialImage, - publishDate: SiteMetadata.buildTime + socialImage: socialImage } const posts = await getCollection('blog', ({ data }) => { diff --git a/src/pages/rss.xml.js b/src/pages/rss.xml.js index 01229e8..a510737 100644 --- a/src/pages/rss.xml.js +++ b/src/pages/rss.xml.js @@ -1,8 +1,9 @@ import rss from '@astrojs/rss' -import { getCollection } from 'astro:content' -import { SiteMetadata } from '../config' +import { getImage } from 'astro:assets' +import { getCollection, getEntry } from 'astro:content' +import { SiteMetadata, DefaultImage } from '../config' -export async function GET() { +export async function GET(context) { const posts = await getCollection('blog', ({ data }) => { return data.draft !== true }) @@ -14,16 +15,39 @@ export async function GET() { // base URL for RSS links // SITE will use "site" from your project's astro.config. site: import.meta.env.SITE, + xmlns: { + media: 'http://search.yahoo.com/mrss/', + atom: 'http://www.w3.org/2005/Atom' + }, + // add atom:link to be compatible with atom + customData: ``, // list of ``s in output xml // simple example: generate items for every md file in /src/pages // see "Generating items" section for required data and advanced use cases - items: posts.map((post) => ({ - link: import.meta.env.BASE_URL + '/blog/' + post.slug, - title: post.data.title, - description: post.data.description, - pubDate: post.data.publishDate.toString() - })), - // (optional) inject custom xml - customData: `en` + items: await Promise.all( + posts.map(async (post) => { + const author = await getEntry(post.data.author) + const image = await getImage({ + src: post.data.socialImage || post.data.coverImage || DefaultImage, + width: 1200, + format: 'jpg' + }) + return { + link: import.meta.env.BASE_URL + '/blog/' + post.slug, + title: post.data.title, + author: `${author.data.title} (${author.data.contact})`, + description: post.data.description, + pubDate: post.data.publishDate.toString(), + // custom data for media. The url must be the full url (including https://) + customData: ` + ` + } + }) + ) }) } diff --git a/src/pages/search-docs.json.js b/src/pages/search-docs.json.js index b411a62..71115a6 100644 --- a/src/pages/search-docs.json.js +++ b/src/pages/search-docs.json.js @@ -1,4 +1,4 @@ -import { getCollection } from 'astro:content' +import { getCollection, getEntry } from 'astro:content' import { SiteMetadata } from '../config' const docs = await getCollection('doc', (p) => { @@ -7,27 +7,31 @@ const docs = await getCollection('doc', (p) => { const posts = await getCollection('blog', (p) => { return !p.data.draft }) -const documents = posts - .map((post) => ({ - url: import.meta.env.BASE_URL + 'blog/' + post.slug, - title: post.data.title, - description: post.data.description, - author: post.data.author, - publishDate: post.data.publishDate, - categories: post.data.categories, - tags: post.data.tags +let documents = await Promise.all( + posts.map(async (post) => { + const author = await getEntry(post.data.author) + return { + url: import.meta.env.BASE_URL + 'blog/' + post.slug, + title: post.data.title, + description: post.data.description, + author: `${author.data.title} (${author.data.contact})`, + publishDate: post.data.publishDate, + categories: post.data.categories, + tags: post.data.tags + } + }) +) +documents = documents.concat( + docs.map((doc) => ({ + url: import.meta.env.BASE_URL + 'doc/' + doc.slug, + title: doc.data.title, + description: doc.data.description, + author: `${SiteMetadata.author.name} (${SiteMetadata.author.email})`, + publishDate: SiteMetadata.buildTime, + categories: 'documentation', + tags: ['documentation'] })) - .concat( - docs.map((doc) => ({ - url: import.meta.env.BASE_URL + 'doc/' + doc.slug, - title: doc.data.title, - description: doc.data.description, - author: SiteMetadata.author.name, - publishDate: SiteMetadata.buildTime, - categories: 'documentation', - tags: ['documentation'] - })) - ) +) export async function GET() { return new Response(JSON.stringify(documents), { diff --git a/src/pages/search-index.json.js b/src/pages/search-index.json.js index de31cae..3ce8f29 100644 --- a/src/pages/search-index.json.js +++ b/src/pages/search-index.json.js @@ -1,4 +1,4 @@ -import { getCollection } from 'astro:content' +import { getCollection, getEntry } from 'astro:content' import lunr from 'lunr' import { SiteMetadata } from '../config' @@ -8,27 +8,31 @@ const docs = await getCollection('doc', (p) => { const posts = await getCollection('blog', (p) => { return !p.data.draft }) -const documents = posts - .map((post) => ({ - url: import.meta.env.BASE_URL + 'blog/' + post.slug, - title: post.data.title, - description: post.data.description, - author: post.data.author, - categories: post.data.categories && post.data.categories.join(' '), - tags: post.data.tags && post.data.tags.join(' '), - content: post.body +let documents = await Promise.all( + posts.map(async (post) => { + const author = await getEntry(post.data.author) + return { + url: import.meta.env.BASE_URL + 'blog/' + post.slug, + title: post.data.title, + description: post.data.description, + author: `${author.data.title} (${author.data.contact})`, + categories: post.data.categories && post.data.categories.join(' '), + tags: post.data.tags && post.data.tags.join(' '), + content: post.body + } + }) +) +documents = documents.concat( + docs.map((doc) => ({ + url: import.meta.env.BASE_URL + 'doc/' + doc.slug, + title: doc.data.title, + description: doc.data.description, + author: `${SiteMetadata.author.name} (${SiteMetadata.author.email})`, + categories: 'documentation', + tags: ['documentation'], + content: doc.body })) - .concat( - docs.map((doc) => ({ - url: import.meta.env.BASE_URL + 'doc/' + doc.slug, - title: doc.data.title, - description: doc.data.description, - author: SiteMetadata.author.name, - categories: 'documentation', - tags: ['documentation'], - content: doc.body - })) - ) +) const idx = lunr(function () { this.ref('url') diff --git a/src/pages/tag/[tag]/[...page].astro b/src/pages/tag/[tag]/[...page].astro index f8e870b..bd3b6c1 100644 --- a/src/pages/tag/[tag]/[...page].astro +++ b/src/pages/tag/[tag]/[...page].astro @@ -1,8 +1,7 @@ --- import type { PaginateFunction, Page } from 'astro' import type { CollectionEntry } from 'astro:content' -import type { Frontmatter } from '../../../config' -import { SiteMetadata, PAGE_SIZE } from '../../../config' +import { PAGE_SIZE } from '../../../config' import { getCollection } from 'astro:content' import Base from '../../../layouts/base.astro' import PageHero from '../../../components/pagehero.astro' @@ -18,7 +17,7 @@ export interface Props { const { tag } = Astro.params const { page } = Astro.props -const frontmatter: Frontmatter = { +const frontmatter: CollectionEntry<'page'>['data'] = { title: 'Tag: ' + tag + @@ -26,8 +25,7 @@ const frontmatter: Frontmatter = { description: 'Showing articles ' + (page.start + 1) + '-' + (page.end + 1) + ' (total ' + page.total + ')', coverSVG: coverSVG, - socialImage: socialImage, - publishDate: SiteMetadata.buildTime + socialImage: socialImage } const currentPage = Astro.url.pathname.replace(/(\/\d*)?\/$/, '') diff --git a/src/pages/tags.astro b/src/pages/tags.astro index 3ea16d5..1fa3908 100644 --- a/src/pages/tags.astro +++ b/src/pages/tags.astro @@ -1,7 +1,7 @@ --- import { getCollection } from 'astro:content' -import type { Frontmatter, TagType } from '../config' -import { SiteMetadata } from '../config' +import type { TagType } from '../config' +import type { CollectionEntry } from 'astro:content' import Base from '../layouts/base.astro' import PageHero from '../components/pagehero.astro' import coverSVG from '../assets/svg/undraw/undraw_add_notes.svg' @@ -92,12 +92,11 @@ const patterns = [ wallpaper('#9c92ac', 0.5) ] -const frontmatter: Frontmatter = { +const frontmatter: CollectionEntry<'page'>['data'] = { title: 'Tags', description: 'Articles by tags', coverSVG: coverSVG, - socialImage: socialImage, - publishDate: SiteMetadata.buildTime + socialImage: socialImage } const posts = await getCollection('blog', ({ data }) => {