docs(plugins): fill up rest of manifest and hooks reference + creating a plugin

This commit is contained in:
Yassine Doghri 2024-06-10 14:55:10 +00:00
commit e417d45b14
12 changed files with 858 additions and 615 deletions

View file

@ -12,15 +12,15 @@
},
"dependencies": {
"@astrojs/check": "^0.7.0",
"@astrojs/starlight": "^0.22.4",
"@astrojs/starlight-tailwind": "^2.0.2",
"@astrojs/starlight": "^0.24.0",
"@astrojs/starlight-tailwind": "^2.0.3",
"@astrojs/tailwind": "^5.1.0",
"@fontsource/inter": "^5.0.18",
"@fontsource/rubik": "^5.0.20",
"astro": "^4.8.6",
"astro": "^4.10.1",
"autoprefixer": "^10.4.19",
"cssnano": "^7.0.1",
"postcss-preset-env": "^9.5.13",
"cssnano": "^7.0.2",
"postcss-preset-env": "^9.5.14",
"sharp": "^0.33.4",
"tailwindcss": "^3.4.3",
"typescript": "^5.4.5"

963
docs/pnpm-lock.yaml generated
View file

@ -11,14 +11,14 @@ importers:
specifier: ^0.7.0
version: 0.7.0(typescript@5.4.5)
"@astrojs/starlight":
specifier: ^0.22.4
version: 0.22.4(astro@4.8.6(typescript@5.4.5))
specifier: ^0.24.0
version: 0.24.0(astro@4.10.1(typescript@5.4.5))
"@astrojs/starlight-tailwind":
specifier: ^2.0.2
version: 2.0.2(@astrojs/starlight@0.22.4(astro@4.8.6(typescript@5.4.5)))(@astrojs/tailwind@5.1.0(astro@4.8.6(typescript@5.4.5))(tailwindcss@3.4.3))(tailwindcss@3.4.3)
specifier: ^2.0.3
version: 2.0.3(@astrojs/starlight@0.24.0(astro@4.10.1(typescript@5.4.5)))(@astrojs/tailwind@5.1.0(astro@4.10.1(typescript@5.4.5))(tailwindcss@3.4.3))(tailwindcss@3.4.3)
"@astrojs/tailwind":
specifier: ^5.1.0
version: 5.1.0(astro@4.8.6(typescript@5.4.5))(tailwindcss@3.4.3)
version: 5.1.0(astro@4.10.1(typescript@5.4.5))(tailwindcss@3.4.3)
"@fontsource/inter":
specifier: ^5.0.18
version: 5.0.18
@ -26,17 +26,17 @@ importers:
specifier: ^5.0.20
version: 5.0.20
astro:
specifier: ^4.8.6
version: 4.8.6(typescript@5.4.5)
specifier: ^4.10.1
version: 4.10.1(typescript@5.4.5)
autoprefixer:
specifier: ^10.4.19
version: 10.4.19(postcss@8.4.33)
cssnano:
specifier: ^7.0.1
version: 7.0.1(postcss@8.4.33)
specifier: ^7.0.2
version: 7.0.2(postcss@8.4.33)
postcss-preset-env:
specifier: ^9.5.13
version: 9.5.13(postcss@8.4.33)
specifier: ^9.5.14
version: 9.5.14(postcss@8.4.33)
sharp:
specifier: ^0.33.4
version: 0.33.4
@ -104,14 +104,14 @@ packages:
integrity: sha512-S6Z3K2hOB7MfjeDoHsotnP/q2UsnEDB8NlNAaCjMDsGBZfTUbWxyLW3CaphEWw08f6KLZi2ibK9yC3BaMhh2NQ==,
}
"@astrojs/mdx@2.3.1":
"@astrojs/mdx@3.1.0":
resolution:
{
integrity: sha512-BOQFKD2Pi9cRntNQJlpF2fh4xV8doNpmVy9NKI95r4jsitrY4X5aTOhAowi+fkQgP/zW1A4HwCyQ6Pdam6z8zQ==,
integrity: sha512-yuGDaOcCAfYgLQvUAlJDezYGK4twHlzW1Kvpyg3inxtDJuAsHdyVyYLWl0Wo5nwkyrbZktdrjnoW5scqzoAqAg==,
}
engines: { node: ^18.17.1 || ^20.3.0 || >=21.0.0 }
peerDependencies:
astro: ^4.0.0
astro: ^4.8.0
"@astrojs/prism@3.1.0":
resolution:
@ -126,23 +126,23 @@ packages:
integrity: sha512-60eLzNjMza3ABypiQPUC6ElOSZNZeY5CwSwgJ03hfeonl+Db9x12CCzBFdTw7A5Mq+O54xEZVUrR0tB+yWgX8w==,
}
"@astrojs/starlight-tailwind@2.0.2":
"@astrojs/starlight-tailwind@2.0.3":
resolution:
{
integrity: sha512-XJccwk6VLeQZuGQwoiLZLNAPCn2fQobtl10Ra2c2yDLjdYEActcqy0eidZbouAwGlbS9I0iJogeGjHQJ2Casjg==,
integrity: sha512-ZwbdXS/9rxYlo3tKZoTZoBPUnaaqek02b341dHwOkmMT0lIR2w+8k0mRUGxnRaYtPdMcaL+nYFd8RUa8sjdyRg==,
}
peerDependencies:
"@astrojs/starlight": ">=0.9.0"
"@astrojs/tailwind": ^5.0.0
tailwindcss: ^3.3.3
"@astrojs/starlight@0.22.4":
"@astrojs/starlight@0.24.0":
resolution:
{
integrity: sha512-AgiVEVv2ZkGHkoJcjY0azXG2K7892i+z4FpKtasnESTciomO91I/X9vAfKfHxmTxdVP5BGPxBFVi0Bp2X4Lxvg==,
integrity: sha512-YUBf7TgDUMRcyoZ8S8hlnPuEvgqFuB5F7tQUwPK5GwkTC1E+gMW8zx9J/RgJAXNjQSi19s73nuF19zw/QSy5tw==,
}
peerDependencies:
astro: ^4.2.7
astro: ^4.8.6
"@astrojs/tailwind@5.1.0":
resolution:
@ -160,199 +160,185 @@ packages:
}
engines: { node: ^18.17.1 || ^20.3.0 || >=21.0.0 }
"@babel/code-frame@7.24.2":
"@babel/code-frame@7.24.7":
resolution:
{
integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==,
integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==,
}
engines: { node: ">=6.9.0" }
"@babel/compat-data@7.24.4":
"@babel/compat-data@7.24.7":
resolution:
{
integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==,
integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==,
}
engines: { node: ">=6.9.0" }
"@babel/core@7.24.5":
"@babel/core@7.24.7":
resolution:
{
integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==,
integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==,
}
engines: { node: ">=6.9.0" }
"@babel/generator@7.24.5":
"@babel/generator@7.24.7":
resolution:
{
integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==,
integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==,
}
engines: { node: ">=6.9.0" }
"@babel/helper-annotate-as-pure@7.22.5":
"@babel/helper-annotate-as-pure@7.24.7":
resolution:
{
integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==,
integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==,
}
engines: { node: ">=6.9.0" }
"@babel/helper-compilation-targets@7.23.6":
"@babel/helper-compilation-targets@7.24.7":
resolution:
{
integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==,
integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==,
}
engines: { node: ">=6.9.0" }
"@babel/helper-environment-visitor@7.22.20":
"@babel/helper-environment-visitor@7.24.7":
resolution:
{
integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==,
integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==,
}
engines: { node: ">=6.9.0" }
"@babel/helper-function-name@7.23.0":
"@babel/helper-function-name@7.24.7":
resolution:
{
integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==,
integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==,
}
engines: { node: ">=6.9.0" }
"@babel/helper-hoist-variables@7.22.5":
"@babel/helper-hoist-variables@7.24.7":
resolution:
{
integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==,
integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==,
}
engines: { node: ">=6.9.0" }
"@babel/helper-module-imports@7.22.15":
"@babel/helper-module-imports@7.24.7":
resolution:
{
integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==,
integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==,
}
engines: { node: ">=6.9.0" }
"@babel/helper-module-imports@7.24.3":
"@babel/helper-module-transforms@7.24.7":
resolution:
{
integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==,
}
engines: { node: ">=6.9.0" }
"@babel/helper-module-transforms@7.24.5":
resolution:
{
integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==,
integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==,
}
engines: { node: ">=6.9.0" }
peerDependencies:
"@babel/core": ^7.0.0
"@babel/helper-plugin-utils@7.22.5":
"@babel/helper-plugin-utils@7.24.7":
resolution:
{
integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==,
integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==,
}
engines: { node: ">=6.9.0" }
"@babel/helper-simple-access@7.24.5":
"@babel/helper-simple-access@7.24.7":
resolution:
{
integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==,
integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==,
}
engines: { node: ">=6.9.0" }
"@babel/helper-split-export-declaration@7.24.5":
"@babel/helper-split-export-declaration@7.24.7":
resolution:
{
integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==,
integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==,
}
engines: { node: ">=6.9.0" }
"@babel/helper-string-parser@7.24.1":
"@babel/helper-string-parser@7.24.7":
resolution:
{
integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==,
integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==,
}
engines: { node: ">=6.9.0" }
"@babel/helper-validator-identifier@7.24.5":
"@babel/helper-validator-identifier@7.24.7":
resolution:
{
integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==,
integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==,
}
engines: { node: ">=6.9.0" }
"@babel/helper-validator-option@7.23.5":
"@babel/helper-validator-option@7.24.7":
resolution:
{
integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==,
integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==,
}
engines: { node: ">=6.9.0" }
"@babel/helpers@7.24.5":
"@babel/helpers@7.24.7":
resolution:
{
integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==,
integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==,
}
engines: { node: ">=6.9.0" }
"@babel/highlight@7.24.5":
"@babel/highlight@7.24.7":
resolution:
{
integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==,
integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==,
}
engines: { node: ">=6.9.0" }
"@babel/parser@7.24.5":
"@babel/parser@7.24.7":
resolution:
{
integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==,
integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==,
}
engines: { node: ">=6.0.0" }
hasBin: true
"@babel/plugin-syntax-jsx@7.23.3":
"@babel/plugin-syntax-jsx@7.24.7":
resolution:
{
integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==,
integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==,
}
engines: { node: ">=6.9.0" }
peerDependencies:
"@babel/core": ^7.0.0-0
"@babel/plugin-transform-react-jsx@7.23.4":
"@babel/plugin-transform-react-jsx@7.24.7":
resolution:
{
integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==,
integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==,
}
engines: { node: ">=6.9.0" }
peerDependencies:
"@babel/core": ^7.0.0-0
"@babel/template@7.22.15":
"@babel/template@7.24.7":
resolution:
{
integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==,
integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==,
}
engines: { node: ">=6.9.0" }
"@babel/template@7.24.0":
"@babel/traverse@7.24.7":
resolution:
{
integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==,
integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==,
}
engines: { node: ">=6.9.0" }
"@babel/traverse@7.24.5":
"@babel/types@7.24.7":
resolution:
{
integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==,
}
engines: { node: ">=6.9.0" }
"@babel/types@7.24.5":
resolution:
{
integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==,
integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==,
}
engines: { node: ">=6.9.0" }
@ -771,10 +757,10 @@ packages:
cpu: [ppc64]
os: [aix]
"@esbuild/aix-ppc64@0.21.3":
"@esbuild/aix-ppc64@0.21.4":
resolution:
{
integrity: sha512-yTgnwQpFVYfvvo4SvRFB0SwrW8YjOxEoT7wfMT7Ol5v7v5LDNvSGo67aExmxOb87nQNeWPVvaGBNfQ7BXcrZ9w==,
integrity: sha512-Zrm+B33R4LWPLjDEVnEqt2+SLTATlru1q/xYKVn8oVTbiRBGmK2VIMoIYGJDGyftnGaC788IuzGFAlb7IQ0Y8A==,
}
engines: { node: ">=12" }
cpu: [ppc64]
@ -789,10 +775,10 @@ packages:
cpu: [arm64]
os: [android]
"@esbuild/android-arm64@0.21.3":
"@esbuild/android-arm64@0.21.4":
resolution:
{
integrity: sha512-c+ty9necz3zB1Y+d/N+mC6KVVkGUUOcm4ZmT5i/Fk5arOaY3i6CA3P5wo/7+XzV8cb4GrI/Zjp8NuOQ9Lfsosw==,
integrity: sha512-fYFnz+ObClJ3dNiITySBUx+oNalYUT18/AryMxfovLkYWbutXsct3Wz2ZWAcGGppp+RVVX5FiXeLYGi97umisA==,
}
engines: { node: ">=12" }
cpu: [arm64]
@ -807,10 +793,10 @@ packages:
cpu: [arm]
os: [android]
"@esbuild/android-arm@0.21.3":
"@esbuild/android-arm@0.21.4":
resolution:
{
integrity: sha512-bviJOLMgurLJtF1/mAoJLxDZDL6oU5/ztMHnJQRejbJrSc9FFu0QoUoFhvi6qSKJEw9y5oGyvr9fuDtzJ30rNQ==,
integrity: sha512-E7H/yTd8kGQfY4z9t3nRPk/hrhaCajfA3YSQSBrst8B+3uTcgsi8N+ZWYCaeIDsiVs6m65JPCaQN/DxBRclF3A==,
}
engines: { node: ">=12" }
cpu: [arm]
@ -825,10 +811,10 @@ packages:
cpu: [x64]
os: [android]
"@esbuild/android-x64@0.21.3":
"@esbuild/android-x64@0.21.4":
resolution:
{
integrity: sha512-JReHfYCRK3FVX4Ra+y5EBH1b9e16TV2OxrPAvzMsGeES0X2Ndm9ImQRI4Ket757vhc5XBOuGperw63upesclRw==,
integrity: sha512-mDqmlge3hFbEPbCWxp4fM6hqq7aZfLEHZAKGP9viq9wMUBVQx202aDIfc3l+d2cKhUJM741VrCXEzRFhPDKH3Q==,
}
engines: { node: ">=12" }
cpu: [x64]
@ -843,10 +829,10 @@ packages:
cpu: [arm64]
os: [darwin]
"@esbuild/darwin-arm64@0.21.3":
"@esbuild/darwin-arm64@0.21.4":
resolution:
{
integrity: sha512-U3fuQ0xNiAkXOmQ6w5dKpEvXQRSpHOnbw7gEfHCRXPeTKW9sBzVck6C5Yneb8LfJm0l6le4NQfkNPnWMSlTFUQ==,
integrity: sha512-72eaIrDZDSiWqpmCzVaBD58c8ea8cw/U0fq/PPOTqE3c53D0xVMRt2ooIABZ6/wj99Y+h4ksT/+I+srCDLU9TA==,
}
engines: { node: ">=12" }
cpu: [arm64]
@ -861,10 +847,10 @@ packages:
cpu: [x64]
os: [darwin]
"@esbuild/darwin-x64@0.21.3":
"@esbuild/darwin-x64@0.21.4":
resolution:
{
integrity: sha512-3m1CEB7F07s19wmaMNI2KANLcnaqryJxO1fXHUV5j1rWn+wMxdUYoPyO2TnAbfRZdi7ADRwJClmOwgT13qlP3Q==,
integrity: sha512-uBsuwRMehGmw1JC7Vecu/upOjTsMhgahmDkWhGLWxIgUn2x/Y4tIwUZngsmVb6XyPSTXJYS4YiASKPcm9Zitag==,
}
engines: { node: ">=12" }
cpu: [x64]
@ -879,10 +865,10 @@ packages:
cpu: [arm64]
os: [freebsd]
"@esbuild/freebsd-arm64@0.21.3":
"@esbuild/freebsd-arm64@0.21.4":
resolution:
{
integrity: sha512-fsNAAl5pU6wmKHq91cHWQT0Fz0vtyE1JauMzKotrwqIKAswwP5cpHUCxZNSTuA/JlqtScq20/5KZ+TxQdovU/g==,
integrity: sha512-8JfuSC6YMSAEIZIWNL3GtdUT5NhUA/CMUCpZdDRolUXNAXEE/Vbpe6qlGLpfThtY5NwXq8Hi4nJy4YfPh+TwAg==,
}
engines: { node: ">=12" }
cpu: [arm64]
@ -897,10 +883,10 @@ packages:
cpu: [x64]
os: [freebsd]
"@esbuild/freebsd-x64@0.21.3":
"@esbuild/freebsd-x64@0.21.4":
resolution:
{
integrity: sha512-tci+UJ4zP5EGF4rp8XlZIdq1q1a/1h9XuronfxTMCNBslpCtmk97Q/5qqy1Mu4zIc0yswN/yP/BLX+NTUC1bXA==,
integrity: sha512-8d9y9eQhxv4ef7JmXny7591P/PYsDFc4+STaxC1GBv0tMyCdyWfXu2jBuqRsyhY8uL2HU8uPyscgE2KxCY9imQ==,
}
engines: { node: ">=12" }
cpu: [x64]
@ -915,10 +901,10 @@ packages:
cpu: [arm64]
os: [linux]
"@esbuild/linux-arm64@0.21.3":
"@esbuild/linux-arm64@0.21.4":
resolution:
{
integrity: sha512-vvG6R5g5ieB4eCJBQevyDMb31LMHthLpXTc2IGkFnPWS/GzIFDnaYFp558O+XybTmYrVjxnryru7QRleJvmZ6Q==,
integrity: sha512-/GLD2orjNU50v9PcxNpYZi+y8dJ7e7/LhQukN3S4jNDXCKkyyiyAz9zDw3siZ7Eh1tRcnCHAo/WcqKMzmi4eMQ==,
}
engines: { node: ">=12" }
cpu: [arm64]
@ -933,10 +919,10 @@ packages:
cpu: [arm]
os: [linux]
"@esbuild/linux-arm@0.21.3":
"@esbuild/linux-arm@0.21.4":
resolution:
{
integrity: sha512-f6kz2QpSuyHHg01cDawj0vkyMwuIvN62UAguQfnNVzbge2uWLhA7TCXOn83DT0ZvyJmBI943MItgTovUob36SQ==,
integrity: sha512-2rqFFefpYmpMs+FWjkzSgXg5vViocqpq5a1PSRgT0AvSgxoXmGF17qfGAzKedg6wAwyM7UltrKVo9kxaJLMF/g==,
}
engines: { node: ">=12" }
cpu: [arm]
@ -951,10 +937,10 @@ packages:
cpu: [ia32]
os: [linux]
"@esbuild/linux-ia32@0.21.3":
"@esbuild/linux-ia32@0.21.4":
resolution:
{
integrity: sha512-HjCWhH7K96Na+66TacDLJmOI9R8iDWDDiqe17C7znGvvE4sW1ECt9ly0AJ3dJH62jHyVqW9xpxZEU1jKdt+29A==,
integrity: sha512-pNftBl7m/tFG3t2m/tSjuYeWIffzwAZT9m08+9DPLizxVOsUl8DdFzn9HvJrTQwe3wvJnwTdl92AonY36w/25g==,
}
engines: { node: ">=12" }
cpu: [ia32]
@ -969,10 +955,10 @@ packages:
cpu: [loong64]
os: [linux]
"@esbuild/linux-loong64@0.21.3":
"@esbuild/linux-loong64@0.21.4":
resolution:
{
integrity: sha512-BGpimEccmHBZRcAhdlRIxMp7x9PyJxUtj7apL2IuoG9VxvU/l/v1z015nFs7Si7tXUwEsvjc1rOJdZCn4QTU+Q==,
integrity: sha512-cSD2gzCK5LuVX+hszzXQzlWya6c7hilO71L9h4KHwqI4qeqZ57bAtkgcC2YioXjsbfAv4lPn3qe3b00Zt+jIfQ==,
}
engines: { node: ">=12" }
cpu: [loong64]
@ -987,10 +973,10 @@ packages:
cpu: [mips64el]
os: [linux]
"@esbuild/linux-mips64el@0.21.3":
"@esbuild/linux-mips64el@0.21.4":
resolution:
{
integrity: sha512-5rMOWkp7FQGtAH3QJddP4w3s47iT20hwftqdm7b+loe95o8JU8ro3qZbhgMRy0VuFU0DizymF1pBKkn3YHWtsw==,
integrity: sha512-qtzAd3BJh7UdbiXCrg6npWLYU0YpufsV9XlufKhMhYMJGJCdfX/G6+PNd0+v877X1JG5VmjBLUiFB0o8EUSicA==,
}
engines: { node: ">=12" }
cpu: [mips64el]
@ -1005,10 +991,10 @@ packages:
cpu: [ppc64]
os: [linux]
"@esbuild/linux-ppc64@0.21.3":
"@esbuild/linux-ppc64@0.21.4":
resolution:
{
integrity: sha512-h0zj1ldel89V5sjPLo5H1SyMzp4VrgN1tPkN29TmjvO1/r0MuMRwJxL8QY05SmfsZRs6TF0c/IDH3u7XYYmbAg==,
integrity: sha512-yB8AYzOTaL0D5+2a4xEy7OVvbcypvDR05MsB/VVPVA7nL4hc5w5Dyd/ddnayStDgJE59fAgNEOdLhBxjfx5+dg==,
}
engines: { node: ">=12" }
cpu: [ppc64]
@ -1023,10 +1009,10 @@ packages:
cpu: [riscv64]
os: [linux]
"@esbuild/linux-riscv64@0.21.3":
"@esbuild/linux-riscv64@0.21.4":
resolution:
{
integrity: sha512-dkAKcTsTJ+CRX6bnO17qDJbLoW37npd5gSNtSzjYQr0svghLJYGYB0NF1SNcU1vDcjXLYS5pO4qOW4YbFama4A==,
integrity: sha512-Y5AgOuVzPjQdgU59ramLoqSSiXddu7F3F+LI5hYy/d1UHN7K5oLzYBDZe23QmQJ9PIVUXwOdKJ/jZahPdxzm9w==,
}
engines: { node: ">=12" }
cpu: [riscv64]
@ -1041,10 +1027,10 @@ packages:
cpu: [s390x]
os: [linux]
"@esbuild/linux-s390x@0.21.3":
"@esbuild/linux-s390x@0.21.4":
resolution:
{
integrity: sha512-vnD1YUkovEdnZWEuMmy2X2JmzsHQqPpZElXx6dxENcIwTu+Cu5ERax6+Ke1QsE814Zf3c6rxCfwQdCTQ7tPuXA==,
integrity: sha512-Iqc/l/FFwtt8FoTK9riYv9zQNms7B8u+vAI/rxKuN10HgQIXaPzKZc479lZ0x6+vKVQbu55GdpYpeNWzjOhgbA==,
}
engines: { node: ">=12" }
cpu: [s390x]
@ -1059,10 +1045,10 @@ packages:
cpu: [x64]
os: [linux]
"@esbuild/linux-x64@0.21.3":
"@esbuild/linux-x64@0.21.4":
resolution:
{
integrity: sha512-IOXOIm9WaK7plL2gMhsWJd+l2bfrhfilv0uPTptoRoSb2p09RghhQQp9YY6ZJhk/kqmeRt6siRdMSLLwzuT0KQ==,
integrity: sha512-Td9jv782UMAFsuLZINfUpoF5mZIbAj+jv1YVtE58rFtfvoKRiKSkRGQfHTgKamLVT/fO7203bHa3wU122V/Bdg==,
}
engines: { node: ">=12" }
cpu: [x64]
@ -1077,10 +1063,10 @@ packages:
cpu: [x64]
os: [netbsd]
"@esbuild/netbsd-x64@0.21.3":
"@esbuild/netbsd-x64@0.21.4":
resolution:
{
integrity: sha512-uTgCwsvQ5+vCQnqM//EfDSuomo2LhdWhFPS8VL8xKf+PKTCrcT/2kPPoWMTs22aB63MLdGMJiE3f1PHvCDmUOw==,
integrity: sha512-Awn38oSXxsPMQxaV0Ipb7W/gxZtk5Tx3+W+rAPdZkyEhQ6968r9NvtkjhnhbEgWXYbgV+JEONJ6PcdBS+nlcpA==,
}
engines: { node: ">=12" }
cpu: [x64]
@ -1095,10 +1081,10 @@ packages:
cpu: [x64]
os: [openbsd]
"@esbuild/openbsd-x64@0.21.3":
"@esbuild/openbsd-x64@0.21.4":
resolution:
{
integrity: sha512-vNAkR17Ub2MgEud2Wag/OE4HTSI6zlb291UYzHez/psiKarp0J8PKGDnAhMBcHFoOHMXHfExzmjMojJNbAStrQ==,
integrity: sha512-IsUmQeCY0aU374R82fxIPu6vkOybWIMc3hVGZ3ChRwL9hA1TwY+tS0lgFWV5+F1+1ssuvvXt3HFqe8roCip8Hg==,
}
engines: { node: ">=12" }
cpu: [x64]
@ -1113,10 +1099,10 @@ packages:
cpu: [x64]
os: [sunos]
"@esbuild/sunos-x64@0.21.3":
"@esbuild/sunos-x64@0.21.4":
resolution:
{
integrity: sha512-W8H9jlGiSBomkgmouaRoTXo49j4w4Kfbl6I1bIdO/vT0+0u4f20ko3ELzV3hPI6XV6JNBVX+8BC+ajHkvffIJA==,
integrity: sha512-hsKhgZ4teLUaDA6FG/QIu2q0rI6I36tZVfM4DBZv3BG0mkMIdEnMbhc4xwLvLJSS22uWmaVkFkqWgIS0gPIm+A==,
}
engines: { node: ">=12" }
cpu: [x64]
@ -1131,10 +1117,10 @@ packages:
cpu: [arm64]
os: [win32]
"@esbuild/win32-arm64@0.21.3":
"@esbuild/win32-arm64@0.21.4":
resolution:
{
integrity: sha512-EjEomwyLSCg8Ag3LDILIqYCZAq/y3diJ04PnqGRgq8/4O3VNlXyMd54j/saShaN4h5o5mivOjAzmU6C3X4v0xw==,
integrity: sha512-UUfMgMoXPoA/bvGUNfUBFLCh0gt9dxZYIx9W4rfJr7+hKe5jxxHmfOK8YSH4qsHLLN4Ck8JZ+v7Q5fIm1huErg==,
}
engines: { node: ">=12" }
cpu: [arm64]
@ -1149,10 +1135,10 @@ packages:
cpu: [ia32]
os: [win32]
"@esbuild/win32-ia32@0.21.3":
"@esbuild/win32-ia32@0.21.4":
resolution:
{
integrity: sha512-WGiE/GgbsEwR33++5rzjiYsKyHywE8QSZPF7Rfx9EBfK3Qn3xyR6IjyCr5Uk38Kg8fG4/2phN7sXp4NPWd3fcw==,
integrity: sha512-yIxbspZb5kGCAHWm8dexALQ9en1IYDfErzjSEq1KzXFniHv019VT3mNtTK7t8qdy4TwT6QYHI9sEZabONHg+aw==,
}
engines: { node: ">=12" }
cpu: [ia32]
@ -1167,10 +1153,10 @@ packages:
cpu: [x64]
os: [win32]
"@esbuild/win32-x64@0.21.3":
"@esbuild/win32-x64@0.21.4":
resolution:
{
integrity: sha512-xRxC0jaJWDLYvcUvjQmHCJSfMrgmUuvsoXgDeU/wTorQ1ngDdUBuFtgY3W1Pc5sprGAvZBtWdJX7RPg/iZZUqA==,
integrity: sha512-sywLRD3UK/qRJt0oBwdpYLBibk7KiRfbswmWRDabuncQYSlf8aLEEUor/oP6KRz8KEG+HoiVLBhPRD5JWjS8Sg==,
}
engines: { node: ">=12" }
cpu: [x64]
@ -1522,10 +1508,10 @@ packages:
integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==,
}
"@mdx-js/mdx@3.0.0":
"@mdx-js/mdx@3.0.1":
resolution:
{
integrity: sha512-Icm0TBKBLYqroYbNW3BPnzMGn+7mwpQOK310aZ7+fkCtiU3aqv2cdcX+nd0Ydo3wI5Rx8bX2Z2QmGb/XcAClCw==,
integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==,
}
"@nodelib/fs.scandir@2.1.5":
@ -1729,6 +1715,12 @@ packages:
integrity: sha512-wSAOgaz48GmhILFElMCeQypSZmj6Ru6DttOOtl3KNkdJ17ApQuGNCfzpk4cClasVrnIu45++2DBwG4LNMQAfaA==,
}
"@shikijs/core@1.6.3":
resolution:
{
integrity: sha512-QnJKHFUW95GnlJLJGP6QLx4M69HM0KlXk+R2Y8lr/x4nAx1Yb/lsuxq4XwybuUjTxbJk+BT0g/kvn0bcsjGGHg==,
}
"@trysound/sax@0.2.0":
resolution:
{
@ -1820,6 +1812,12 @@ packages:
integrity: sha512-ABoYdNQ/kBSsLvZAekMhIPMQ3YUZvavStpKYs7BjLLuKVmIMA0LUgZ7b54zzuWJRbHF80v1cNf4r90Vd6eMQDg==,
}
"@types/nlcst@2.0.3":
resolution:
{
integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==,
}
"@types/node@17.0.45":
resolution:
{
@ -1920,14 +1918,6 @@ packages:
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
acorn@8.11.2:
resolution:
{
integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==,
}
engines: { node: ">=0.4.0" }
hasBin: true
acorn@8.11.3:
resolution:
{
@ -2035,10 +2025,10 @@ packages:
peerDependencies:
astro: ^4.0.0-beta || ^3.3.0
astro@4.8.6:
astro@4.10.1:
resolution:
{
integrity: sha512-psHIfK+e+bMPhRwghV9yCGH/uc1jvY4DHmDZdoEepax9yA7kzYH0wt3dpkqlcrO2zxl5jzSC3DmqZfkD6wnW9A==,
integrity: sha512-7bbnUX1CW+12suz0Do8ef1CihqVjDyUW/H/0piNHZyBE3W/VFt5GP5ZxlPzzJLoGtaXif0aXJ4iPurEem2LpdA==,
}
engines:
{ node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: ">=9.6.5", pnpm: ">=7.1.0" }
@ -2442,10 +2432,10 @@ packages:
engines: { node: ">=4" }
hasBin: true
cssnano-preset-default@7.0.1:
cssnano-preset-default@7.0.2:
resolution:
{
integrity: sha512-Fumyr+uZMcjYQeuHssAZxn0cKj3cdQc5GcxkBcmEzISGB+UW9CLNlU4tBOJbJGcPukFDlicG32eFbrc8K9V5pw==,
integrity: sha512-z95kGKZx8VWHfERj7LFzuiTxylbvEp07ZEYaFu+t6bFyNOXLd/+3oPyNaY7ISwcrfHFCkt8OfRo4IZxVRJZ7dg==,
}
engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 }
peerDependencies:
@ -2460,10 +2450,10 @@ packages:
peerDependencies:
postcss: ^8.4.31
cssnano@7.0.1:
cssnano@7.0.2:
resolution:
{
integrity: sha512-917Mej/4SdI7b55atsli3sU4MOJ9XDoKgnlCtQtXYj8XUFcM3riTuYHyqBBnnskawW+zWwp0KxJzpEUodlpqUg==,
integrity: sha512-LXm/Xx6TNLzfHM2lBaIQHfvtdW5QfdbyLzfJAWZrclCAb47yVa0/yJG69+amcw3Lq0YZ+kyU40rbsMPLcMt9aw==,
}
engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 }
peerDependencies:
@ -2628,16 +2618,10 @@ packages:
}
engines: { node: ">=0.12" }
es-module-lexer@1.4.1:
es-module-lexer@1.5.3:
resolution:
{
integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==,
}
es-module-lexer@1.5.2:
resolution:
{
integrity: sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==,
integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==,
}
esbuild@0.20.2:
@ -2648,10 +2632,10 @@ packages:
engines: { node: ">=12" }
hasBin: true
esbuild@0.21.3:
esbuild@0.21.4:
resolution:
{
integrity: sha512-Kgq0/ZsAPzKrbOjCQcjoSmPoWhlcVnGAUo7jvaLHoxW1Drto0KGkR1xBNg2Cp43b9ImvxmPEJZ9xkfcnqPsfBw==,
integrity: sha512-sFMcNNrj+Q0ZDolrp5pDhH0nRPN9hLIM3fRPwgbLYJeSHHgnXSnbV3xYgSVuOeLWH9c73VwmEverVzupIv5xuA==,
}
engines: { node: ">=12" }
hasBin: true
@ -2980,12 +2964,6 @@ packages:
integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==,
}
hast-util-to-html@9.0.0:
resolution:
{
integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==,
}
hast-util-to-html@9.0.1:
resolution:
{
@ -3840,6 +3818,12 @@ packages:
integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==,
}
nlcst-to-string@4.0.0:
resolution:
{
integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==,
}
node-releases@2.0.14:
resolution:
{
@ -3995,6 +3979,12 @@ packages:
integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==,
}
parse-latin@7.0.0:
resolution:
{
integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==,
}
parse5@7.1.2:
resolution:
{
@ -4342,19 +4332,19 @@ packages:
peerDependencies:
postcss: ^8.4
postcss-merge-longhand@7.0.0:
postcss-merge-longhand@7.0.1:
resolution:
{
integrity: sha512-0X8I4/9+G03X5/5NnrfopG/YEln2XU8heDh7YqBaiq2SeaKIG3n66ShZPjIolmVuLBQ0BEm3yS8o1mlCLHdW7A==,
integrity: sha512-qZlD26hnqSTMxSSOMS8+QCeRWtqOdMKeQHvHcBhjL3mJxKUs47cvO1Y1x3iTdYIk3ioMcRHTiy229TT0mEMH/A==,
}
engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 }
peerDependencies:
postcss: ^8.4.31
postcss-merge-rules@7.0.0:
postcss-merge-rules@7.0.1:
resolution:
{
integrity: sha512-Zty3VlOsD6VSjBMu6PiHCVpLegtBT/qtZRVBcSeyEZ6q1iU5qTYT0WtEoLRV+YubZZguS5/ycfP+NRiKfjv6aw==,
integrity: sha512-bb8McYQbo2etgs0uVt6AfngajACK3FHSVP3sGLhprrjbtHJWgG03JZ4KKBlJ8/5Fb8/Rr+mMKaybMYeoYrAg0A==,
}
engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 }
peerDependencies:
@ -4387,10 +4377,10 @@ packages:
peerDependencies:
postcss: ^8.4.31
postcss-minify-selectors@7.0.0:
postcss-minify-selectors@7.0.1:
resolution:
{
integrity: sha512-f00CExZhD6lNw2vTZbcnmfxVgaVKzUw6IRsIFX3JTT8GdsoABc1WnhhGwL1i8YPJ3sSWw39fv7XPtvLb+3Uitw==,
integrity: sha512-YfIbGtcgMFquPxV2L/ASs36ZS4DsgfcDX9tQ8cTEIvBTv+0GXFKtcvvpi9tCKto/+DWGWYKMCESFG3Pnan0Feg==,
}
engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 }
peerDependencies:
@ -4405,10 +4395,10 @@ packages:
peerDependencies:
postcss: ^8.2.14
postcss-nesting@12.1.4:
postcss-nesting@12.1.5:
resolution:
{
integrity: sha512-CcHOq94K137E+U4Ommu7pexcpp0Tjm24zl4UcqWs1oSLAr5cLI+jLrqQ5h/bdjhMX6cMbzunyustVNnvrzF8Zg==,
integrity: sha512-N1NgI1PDCiAGWPTYrwqm8wpjv0bgDmkYHH72pNsqTCv9CObxjxftdYu6AKtGN+pnJa7FQjMm3v4sp8QJbFsYdQ==,
}
engines: { node: ^14 || ^16 || >=18 }
peerDependencies:
@ -4539,10 +4529,10 @@ packages:
peerDependencies:
postcss: ^8.4
postcss-preset-env@9.5.13:
postcss-preset-env@9.5.14:
resolution:
{
integrity: sha512-YQMwWu6MAc4Envrjf/mW2BTrb5J8WkrJ4dV2VostZVDhrmEPpYREOyhmvtlFLDxK1/AmTDY8aXjZViMC1qKu/w==,
integrity: sha512-gTMi+3kENN/mN+K59aR+vEOjlkujTmmXJcM9rnAqGh9Y/euQ/ypdp9rd8mO1eoIjAD8vNS15+xbkBxoi+65BqQ==,
}
engines: { node: ^14 || ^16 || >=18 }
peerDependencies:
@ -4606,19 +4596,26 @@ packages:
}
engines: { node: ">=4" }
postcss-svgo@7.0.0:
postcss-selector-parser@6.1.0:
resolution:
{
integrity: sha512-Xj5DRdvA97yRy3wjbCH2NKXtDUwEnph6EHr5ZXszsBVKCNrKXYBjzAXqav7/Afz5WwJ/1peZoTguCEJIg7ytmA==,
integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==,
}
engines: { node: ">=4" }
postcss-svgo@7.0.1:
resolution:
{
integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==,
}
engines: { node: ^18.12.0 || ^20.9.0 || >= 18 }
peerDependencies:
postcss: ^8.4.31
postcss-unique-selectors@7.0.0:
postcss-unique-selectors@7.0.1:
resolution:
{
integrity: sha512-NYFqcft7vVQMZlQPsMdMPy+qU/zDpy95Malpw4GeA9ZZjM6dVXDshXtDmLc0m4WCD6XeZCJqjTfPT1USsdt+rA==,
integrity: sha512-MH7QE/eKUftTB5ta40xcHLl7hkZjgDFydpfTK+QWXeHxghVt3VoPqYL5/G+zYZPPIs+8GuqFXSTgxBSoB1RZtQ==,
}
engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 }
peerDependencies:
@ -4776,6 +4773,13 @@ packages:
}
engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
remark-smartypants@3.0.1:
resolution:
{
integrity: sha512-qyshfCl2eLO0i0558e79ZJsfojC5wjnYLByjt0FmjJQN6aYwcRxpoj784LZJSoWCdnA2ubh5rLNGb8Uur/wDng==,
}
engines: { node: ">=16.0.0" }
remark-stringify@11.0.0:
resolution:
{
@ -4815,24 +4819,48 @@ packages:
integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==,
}
retext-latin@4.0.0:
resolution:
{
integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==,
}
retext-smartypants@5.2.0:
resolution:
{
integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==,
}
retext-smartypants@6.1.0:
resolution:
{
integrity: sha512-LDPXg95346bqFZnDMHo0S7Rq5p64+B+N8Vz733+wPMDtwb9rCOs9LIdIEhrUOU+TAywX9St+ocQWJt8wrzivcQ==,
}
retext-stringify@3.1.0:
resolution:
{
integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==,
}
retext-stringify@4.0.0:
resolution:
{
integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==,
}
retext@8.1.0:
resolution:
{
integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==,
}
retext@9.0.0:
resolution:
{
integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==,
}
reusify@1.0.4:
resolution:
{
@ -4917,6 +4945,12 @@ packages:
integrity: sha512-fpPbuSaatinmdGijE7VYUD3hxLozR3ZZ+iAx8Iy2X6REmJGyF5hQl94SgmiUNTospq346nXUVZx0035dyGvIVw==,
}
shiki@1.6.3:
resolution:
{
integrity: sha512-lE1/YGlzFY0hQSyEfsZj18xGrTWxyhFQkaiILALqTBZPbJeYFWpbUhlmTGPOupYB/qC+H6sV4UznJzcEh3WMHQ==,
}
signal-exit@3.0.7:
resolution:
{
@ -5064,10 +5098,10 @@ packages:
integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==,
}
stylehacks@7.0.0:
stylehacks@7.0.1:
resolution:
{
integrity: sha512-47Nw4pQ6QJb4CA6dzF2m9810sjQik4dfk4UwAm5wlwhrW3syzZKF8AR4/cfO3Cr6lsFgAoznQq0Wg57qhjTA2A==,
integrity: sha512-PnrT4HzajnxbjfChpeBKLSpSykilnGBlD+pIffCoT5KbLur9fcL8uKRQJJap85byR2wCYZl/4Otk5eq76qeZxQ==,
}
engines: { node: ^18.12.0 || ^20.9.0 || >=22.0 }
peerDependencies:
@ -5156,10 +5190,10 @@ packages:
integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==,
}
tsconfck@3.0.3:
tsconfck@3.1.0:
resolution:
{
integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==,
integrity: sha512-CMjc5zMnyAjcS9sPLytrbFmj89st2g+JYtY/c02ug4Q+CZaAtCgbyviI0n1YvjZE/pzoc6FbNsINS13DOL1B9w==,
}
engines: { node: ^18 || >=20 }
hasBin: true
@ -5244,6 +5278,12 @@ packages:
integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==,
}
unist-util-modify-children@4.0.0:
resolution:
{
integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==,
}
unist-util-position-from-estree@2.0.0:
resolution:
{
@ -5280,6 +5320,12 @@ packages:
integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==,
}
unist-util-visit-children@3.0.0:
resolution:
{
integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==,
}
unist-util-visit-parents@5.1.3:
resolution:
{
@ -5349,10 +5395,10 @@ packages:
integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==,
}
vite@5.2.11:
vite@5.2.13:
resolution:
{
integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==,
integrity: sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==,
}
engines: { node: ^18.0.0 || >=20.0.0 }
hasBin: true
@ -5542,10 +5588,10 @@ packages:
}
engines: { node: ">=8.15" }
which-pm@2.1.1:
which-pm@2.2.0:
resolution:
{
integrity: sha512-xzzxNw2wMaoCWXiGE8IJ9wuPMU+EYhFksjHxrRT8kMT5SnocBPRg69YAMtyV4D12fP582RA+k3P8H9J5EMdIxQ==,
integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==,
}
engines: { node: ">=8.15" }
@ -5646,12 +5692,6 @@ packages:
peerDependencies:
zod: ^3.23.3
zod@3.22.4:
resolution:
{
integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==,
}
zod@3.23.8:
resolution:
{
@ -5669,8 +5709,8 @@ snapshots:
"@ampproject/remapping@2.2.1":
dependencies:
"@jridgewell/gen-mapping": 0.3.3
"@jridgewell/trace-mapping": 0.3.20
"@jridgewell/gen-mapping": 0.3.5
"@jridgewell/trace-mapping": 0.3.25
"@astrojs/check@0.7.0(typescript@5.4.5)":
dependencies:
@ -5723,7 +5763,7 @@ snapshots:
remark-parse: 11.0.0
remark-rehype: 11.1.0
remark-smartypants: 2.0.0
shiki: 1.5.2
shiki: 1.6.3
unified: 11.0.4
unist-util-remove-position: 5.0.0
unist-util-visit: 5.0.0
@ -5732,21 +5772,21 @@ snapshots:
transitivePeerDependencies:
- supports-color
"@astrojs/mdx@2.3.1(astro@4.8.6(typescript@5.4.5))":
"@astrojs/mdx@3.1.0(astro@4.10.1(typescript@5.4.5))":
dependencies:
"@astrojs/markdown-remark": 5.1.0
"@mdx-js/mdx": 3.0.0
acorn: 8.11.2
astro: 4.8.6(typescript@5.4.5)
es-module-lexer: 1.4.1
"@mdx-js/mdx": 3.0.1
acorn: 8.11.3
astro: 4.10.1(typescript@5.4.5)
es-module-lexer: 1.5.3
estree-util-visit: 2.0.0
github-slugger: 2.0.0
gray-matter: 4.0.3
hast-util-to-html: 9.0.0
hast-util-to-html: 9.0.1
kleur: 4.1.5
rehype-raw: 7.0.0
remark-gfm: 4.0.0
remark-smartypants: 2.0.0
remark-smartypants: 3.0.1
source-map: 0.7.4
unist-util-visit: 5.0.0
vfile: 6.0.1
@ -5760,23 +5800,23 @@ snapshots:
"@astrojs/sitemap@3.0.5":
dependencies:
sitemap: 7.1.1
zod: 3.22.4
zod: 3.23.8
"@astrojs/starlight-tailwind@2.0.2(@astrojs/starlight@0.22.4(astro@4.8.6(typescript@5.4.5)))(@astrojs/tailwind@5.1.0(astro@4.8.6(typescript@5.4.5))(tailwindcss@3.4.3))(tailwindcss@3.4.3)":
"@astrojs/starlight-tailwind@2.0.3(@astrojs/starlight@0.24.0(astro@4.10.1(typescript@5.4.5)))(@astrojs/tailwind@5.1.0(astro@4.10.1(typescript@5.4.5))(tailwindcss@3.4.3))(tailwindcss@3.4.3)":
dependencies:
"@astrojs/starlight": 0.22.4(astro@4.8.6(typescript@5.4.5))
"@astrojs/tailwind": 5.1.0(astro@4.8.6(typescript@5.4.5))(tailwindcss@3.4.3)
"@astrojs/starlight": 0.24.0(astro@4.10.1(typescript@5.4.5))
"@astrojs/tailwind": 5.1.0(astro@4.10.1(typescript@5.4.5))(tailwindcss@3.4.3)
tailwindcss: 3.4.3
"@astrojs/starlight@0.22.4(astro@4.8.6(typescript@5.4.5))":
"@astrojs/starlight@0.24.0(astro@4.10.1(typescript@5.4.5))":
dependencies:
"@astrojs/mdx": 2.3.1(astro@4.8.6(typescript@5.4.5))
"@astrojs/mdx": 3.1.0(astro@4.10.1(typescript@5.4.5))
"@astrojs/sitemap": 3.0.5
"@pagefind/default-ui": 1.0.4
"@types/hast": 3.0.3
"@types/mdast": 4.0.3
astro: 4.8.6(typescript@5.4.5)
astro-expressive-code: 0.35.3(astro@4.8.6(typescript@5.4.5))
astro: 4.10.1(typescript@5.4.5)
astro-expressive-code: 0.35.3(astro@4.10.1(typescript@5.4.5))
bcp-47: 2.1.0
hast-util-from-html: 2.0.1
hast-util-select: 6.0.2
@ -5794,9 +5834,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
"@astrojs/tailwind@5.1.0(astro@4.8.6(typescript@5.4.5))(tailwindcss@3.4.3)":
"@astrojs/tailwind@5.1.0(astro@4.10.1(typescript@5.4.5))(tailwindcss@3.4.3)":
dependencies:
astro: 4.8.6(typescript@5.4.5)
astro: 4.10.1(typescript@5.4.5)
autoprefixer: 10.4.19(postcss@8.4.31)
postcss: 8.4.31
postcss-load-config: 4.0.2(postcss@8.4.31)
@ -5816,25 +5856,25 @@ snapshots:
transitivePeerDependencies:
- supports-color
"@babel/code-frame@7.24.2":
"@babel/code-frame@7.24.7":
dependencies:
"@babel/highlight": 7.24.5
"@babel/highlight": 7.24.7
picocolors: 1.0.0
"@babel/compat-data@7.24.4": {}
"@babel/compat-data@7.24.7": {}
"@babel/core@7.24.5":
"@babel/core@7.24.7":
dependencies:
"@ampproject/remapping": 2.2.1
"@babel/code-frame": 7.24.2
"@babel/generator": 7.24.5
"@babel/helper-compilation-targets": 7.23.6
"@babel/helper-module-transforms": 7.24.5(@babel/core@7.24.5)
"@babel/helpers": 7.24.5
"@babel/parser": 7.24.5
"@babel/template": 7.24.0
"@babel/traverse": 7.24.5
"@babel/types": 7.24.5
"@babel/code-frame": 7.24.7
"@babel/generator": 7.24.7
"@babel/helper-compilation-targets": 7.24.7
"@babel/helper-module-transforms": 7.24.7(@babel/core@7.24.7)
"@babel/helpers": 7.24.7
"@babel/parser": 7.24.7
"@babel/template": 7.24.7
"@babel/traverse": 7.24.7
"@babel/types": 7.24.7
convert-source-map: 2.0.0
debug: 4.3.4
gensync: 1.0.0-beta.2
@ -5843,133 +5883,132 @@ snapshots:
transitivePeerDependencies:
- supports-color
"@babel/generator@7.24.5":
"@babel/generator@7.24.7":
dependencies:
"@babel/types": 7.24.5
"@babel/types": 7.24.7
"@jridgewell/gen-mapping": 0.3.5
"@jridgewell/trace-mapping": 0.3.25
jsesc: 2.5.2
"@babel/helper-annotate-as-pure@7.22.5":
"@babel/helper-annotate-as-pure@7.24.7":
dependencies:
"@babel/types": 7.24.5
"@babel/types": 7.24.7
"@babel/helper-compilation-targets@7.23.6":
"@babel/helper-compilation-targets@7.24.7":
dependencies:
"@babel/compat-data": 7.24.4
"@babel/helper-validator-option": 7.23.5
"@babel/compat-data": 7.24.7
"@babel/helper-validator-option": 7.24.7
browserslist: 4.23.0
lru-cache: 5.1.1
semver: 6.3.1
"@babel/helper-environment-visitor@7.22.20": {}
"@babel/helper-function-name@7.23.0":
"@babel/helper-environment-visitor@7.24.7":
dependencies:
"@babel/template": 7.22.15
"@babel/types": 7.24.5
"@babel/types": 7.24.7
"@babel/helper-hoist-variables@7.22.5":
"@babel/helper-function-name@7.24.7":
dependencies:
"@babel/types": 7.24.5
"@babel/template": 7.24.7
"@babel/types": 7.24.7
"@babel/helper-module-imports@7.22.15":
"@babel/helper-hoist-variables@7.24.7":
dependencies:
"@babel/types": 7.24.5
"@babel/types": 7.24.7
"@babel/helper-module-imports@7.24.3":
"@babel/helper-module-imports@7.24.7":
dependencies:
"@babel/types": 7.24.5
"@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5)":
dependencies:
"@babel/core": 7.24.5
"@babel/helper-environment-visitor": 7.22.20
"@babel/helper-module-imports": 7.24.3
"@babel/helper-simple-access": 7.24.5
"@babel/helper-split-export-declaration": 7.24.5
"@babel/helper-validator-identifier": 7.24.5
"@babel/helper-plugin-utils@7.22.5": {}
"@babel/helper-simple-access@7.24.5":
dependencies:
"@babel/types": 7.24.5
"@babel/helper-split-export-declaration@7.24.5":
dependencies:
"@babel/types": 7.24.5
"@babel/helper-string-parser@7.24.1": {}
"@babel/helper-validator-identifier@7.24.5": {}
"@babel/helper-validator-option@7.23.5": {}
"@babel/helpers@7.24.5":
dependencies:
"@babel/template": 7.24.0
"@babel/traverse": 7.24.5
"@babel/types": 7.24.5
"@babel/traverse": 7.24.7
"@babel/types": 7.24.7
transitivePeerDependencies:
- supports-color
"@babel/highlight@7.24.5":
"@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)":
dependencies:
"@babel/helper-validator-identifier": 7.24.5
"@babel/core": 7.24.7
"@babel/helper-environment-visitor": 7.24.7
"@babel/helper-module-imports": 7.24.7
"@babel/helper-simple-access": 7.24.7
"@babel/helper-split-export-declaration": 7.24.7
"@babel/helper-validator-identifier": 7.24.7
transitivePeerDependencies:
- supports-color
"@babel/helper-plugin-utils@7.24.7": {}
"@babel/helper-simple-access@7.24.7":
dependencies:
"@babel/traverse": 7.24.7
"@babel/types": 7.24.7
transitivePeerDependencies:
- supports-color
"@babel/helper-split-export-declaration@7.24.7":
dependencies:
"@babel/types": 7.24.7
"@babel/helper-string-parser@7.24.7": {}
"@babel/helper-validator-identifier@7.24.7": {}
"@babel/helper-validator-option@7.24.7": {}
"@babel/helpers@7.24.7":
dependencies:
"@babel/template": 7.24.7
"@babel/types": 7.24.7
"@babel/highlight@7.24.7":
dependencies:
"@babel/helper-validator-identifier": 7.24.7
chalk: 2.4.2
js-tokens: 4.0.0
picocolors: 1.0.0
"@babel/parser@7.24.5":
"@babel/parser@7.24.7":
dependencies:
"@babel/types": 7.24.5
"@babel/types": 7.24.7
"@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.5)":
"@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7)":
dependencies:
"@babel/core": 7.24.5
"@babel/helper-plugin-utils": 7.22.5
"@babel/core": 7.24.7
"@babel/helper-plugin-utils": 7.24.7
"@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5)":
"@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.7)":
dependencies:
"@babel/core": 7.24.5
"@babel/helper-annotate-as-pure": 7.22.5
"@babel/helper-module-imports": 7.22.15
"@babel/helper-plugin-utils": 7.22.5
"@babel/plugin-syntax-jsx": 7.23.3(@babel/core@7.24.5)
"@babel/types": 7.24.5
"@babel/core": 7.24.7
"@babel/helper-annotate-as-pure": 7.24.7
"@babel/helper-module-imports": 7.24.7
"@babel/helper-plugin-utils": 7.24.7
"@babel/plugin-syntax-jsx": 7.24.7(@babel/core@7.24.7)
"@babel/types": 7.24.7
transitivePeerDependencies:
- supports-color
"@babel/template@7.22.15":
"@babel/template@7.24.7":
dependencies:
"@babel/code-frame": 7.24.2
"@babel/parser": 7.24.5
"@babel/types": 7.24.5
"@babel/code-frame": 7.24.7
"@babel/parser": 7.24.7
"@babel/types": 7.24.7
"@babel/template@7.24.0":
"@babel/traverse@7.24.7":
dependencies:
"@babel/code-frame": 7.24.2
"@babel/parser": 7.24.5
"@babel/types": 7.24.5
"@babel/traverse@7.24.5":
dependencies:
"@babel/code-frame": 7.24.2
"@babel/generator": 7.24.5
"@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.24.5
"@babel/parser": 7.24.5
"@babel/types": 7.24.5
"@babel/code-frame": 7.24.7
"@babel/generator": 7.24.7
"@babel/helper-environment-visitor": 7.24.7
"@babel/helper-function-name": 7.24.7
"@babel/helper-hoist-variables": 7.24.7
"@babel/helper-split-export-declaration": 7.24.7
"@babel/parser": 7.24.7
"@babel/types": 7.24.7
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
"@babel/types@7.24.5":
"@babel/types@7.24.7":
dependencies:
"@babel/helper-string-parser": 7.24.1
"@babel/helper-validator-identifier": 7.24.5
"@babel/helper-string-parser": 7.24.7
"@babel/helper-validator-identifier": 7.24.7
to-fast-properties: 2.0.0
"@csstools/cascade-layer-name-parser@1.0.11(@csstools/css-parser-algorithms@2.6.3(@csstools/css-tokenizer@2.3.1))(@csstools/css-tokenizer@2.3.1)":
@ -6190,14 +6229,18 @@ snapshots:
dependencies:
postcss: 8.4.33
"@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.0.16)":
"@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.1.0)":
dependencies:
postcss-selector-parser: 6.0.16
postcss-selector-parser: 6.1.0
"@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.0.16)":
dependencies:
postcss-selector-parser: 6.0.16
"@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.0)":
dependencies:
postcss-selector-parser: 6.1.0
"@csstools/utilities@1.0.0(postcss@8.4.33)":
dependencies:
postcss: 8.4.33
@ -6235,139 +6278,139 @@ snapshots:
"@esbuild/aix-ppc64@0.20.2":
optional: true
"@esbuild/aix-ppc64@0.21.3":
"@esbuild/aix-ppc64@0.21.4":
optional: true
"@esbuild/android-arm64@0.20.2":
optional: true
"@esbuild/android-arm64@0.21.3":
"@esbuild/android-arm64@0.21.4":
optional: true
"@esbuild/android-arm@0.20.2":
optional: true
"@esbuild/android-arm@0.21.3":
"@esbuild/android-arm@0.21.4":
optional: true
"@esbuild/android-x64@0.20.2":
optional: true
"@esbuild/android-x64@0.21.3":
"@esbuild/android-x64@0.21.4":
optional: true
"@esbuild/darwin-arm64@0.20.2":
optional: true
"@esbuild/darwin-arm64@0.21.3":
"@esbuild/darwin-arm64@0.21.4":
optional: true
"@esbuild/darwin-x64@0.20.2":
optional: true
"@esbuild/darwin-x64@0.21.3":
"@esbuild/darwin-x64@0.21.4":
optional: true
"@esbuild/freebsd-arm64@0.20.2":
optional: true
"@esbuild/freebsd-arm64@0.21.3":
"@esbuild/freebsd-arm64@0.21.4":
optional: true
"@esbuild/freebsd-x64@0.20.2":
optional: true
"@esbuild/freebsd-x64@0.21.3":
"@esbuild/freebsd-x64@0.21.4":
optional: true
"@esbuild/linux-arm64@0.20.2":
optional: true
"@esbuild/linux-arm64@0.21.3":
"@esbuild/linux-arm64@0.21.4":
optional: true
"@esbuild/linux-arm@0.20.2":
optional: true
"@esbuild/linux-arm@0.21.3":
"@esbuild/linux-arm@0.21.4":
optional: true
"@esbuild/linux-ia32@0.20.2":
optional: true
"@esbuild/linux-ia32@0.21.3":
"@esbuild/linux-ia32@0.21.4":
optional: true
"@esbuild/linux-loong64@0.20.2":
optional: true
"@esbuild/linux-loong64@0.21.3":
"@esbuild/linux-loong64@0.21.4":
optional: true
"@esbuild/linux-mips64el@0.20.2":
optional: true
"@esbuild/linux-mips64el@0.21.3":
"@esbuild/linux-mips64el@0.21.4":
optional: true
"@esbuild/linux-ppc64@0.20.2":
optional: true
"@esbuild/linux-ppc64@0.21.3":
"@esbuild/linux-ppc64@0.21.4":
optional: true
"@esbuild/linux-riscv64@0.20.2":
optional: true
"@esbuild/linux-riscv64@0.21.3":
"@esbuild/linux-riscv64@0.21.4":
optional: true
"@esbuild/linux-s390x@0.20.2":
optional: true
"@esbuild/linux-s390x@0.21.3":
"@esbuild/linux-s390x@0.21.4":
optional: true
"@esbuild/linux-x64@0.20.2":
optional: true
"@esbuild/linux-x64@0.21.3":
"@esbuild/linux-x64@0.21.4":
optional: true
"@esbuild/netbsd-x64@0.20.2":
optional: true
"@esbuild/netbsd-x64@0.21.3":
"@esbuild/netbsd-x64@0.21.4":
optional: true
"@esbuild/openbsd-x64@0.20.2":
optional: true
"@esbuild/openbsd-x64@0.21.3":
"@esbuild/openbsd-x64@0.21.4":
optional: true
"@esbuild/sunos-x64@0.20.2":
optional: true
"@esbuild/sunos-x64@0.21.3":
"@esbuild/sunos-x64@0.21.4":
optional: true
"@esbuild/win32-arm64@0.20.2":
optional: true
"@esbuild/win32-arm64@0.21.3":
"@esbuild/win32-arm64@0.21.4":
optional: true
"@esbuild/win32-ia32@0.20.2":
optional: true
"@esbuild/win32-ia32@0.21.3":
"@esbuild/win32-ia32@0.21.4":
optional: true
"@esbuild/win32-x64@0.20.2":
optional: true
"@esbuild/win32-x64@0.21.3":
"@esbuild/win32-x64@0.21.4":
optional: true
"@expressive-code/core@0.35.3":
@ -6511,7 +6554,7 @@ snapshots:
"@jridgewell/resolve-uri": 3.1.1
"@jridgewell/sourcemap-codec": 1.4.15
"@mdx-js/mdx@3.0.0":
"@mdx-js/mdx@3.0.1":
dependencies:
"@types/estree": 1.0.5
"@types/estree-jsx": 1.0.3
@ -6618,6 +6661,8 @@ snapshots:
"@shikijs/core@1.5.2": {}
"@shikijs/core@1.6.3": {}
"@trysound/sax@0.2.0": {}
"@types/acorn@4.0.6":
@ -6626,24 +6671,24 @@ snapshots:
"@types/babel__core@7.20.5":
dependencies:
"@babel/parser": 7.24.5
"@babel/types": 7.24.5
"@babel/parser": 7.24.7
"@babel/types": 7.24.7
"@types/babel__generator": 7.6.7
"@types/babel__template": 7.4.4
"@types/babel__traverse": 7.20.4
"@types/babel__generator@7.6.7":
dependencies:
"@babel/types": 7.24.5
"@babel/types": 7.24.7
"@types/babel__template@7.4.4":
dependencies:
"@babel/parser": 7.24.5
"@babel/types": 7.24.5
"@babel/parser": 7.24.7
"@babel/types": 7.24.7
"@types/babel__traverse@7.20.4":
dependencies:
"@babel/types": 7.24.5
"@babel/types": 7.24.7
"@types/cookie@0.6.0": {}
@ -6673,6 +6718,10 @@ snapshots:
dependencies:
"@types/unist": 2.0.10
"@types/nlcst@2.0.3":
dependencies:
"@types/unist": 3.0.2
"@types/node@17.0.45": {}
"@types/sax@1.2.7":
@ -6745,11 +6794,9 @@ snapshots:
"@vscode/l10n@0.0.18": {}
acorn-jsx@5.3.2(acorn@8.11.2):
acorn-jsx@5.3.2(acorn@8.11.3):
dependencies:
acorn: 8.11.2
acorn@8.11.2: {}
acorn: 8.11.3
acorn@8.11.3: {}
@ -6794,23 +6841,23 @@ snapshots:
astring@1.8.6: {}
astro-expressive-code@0.35.3(astro@4.8.6(typescript@5.4.5)):
astro-expressive-code@0.35.3(astro@4.10.1(typescript@5.4.5)):
dependencies:
astro: 4.8.6(typescript@5.4.5)
astro: 4.10.1(typescript@5.4.5)
rehype-expressive-code: 0.35.3
astro@4.8.6(typescript@5.4.5):
astro@4.10.1(typescript@5.4.5):
dependencies:
"@astrojs/compiler": 2.8.0
"@astrojs/internal-helpers": 0.4.0
"@astrojs/markdown-remark": 5.1.0
"@astrojs/telemetry": 3.1.0
"@babel/core": 7.24.5
"@babel/generator": 7.24.5
"@babel/parser": 7.24.5
"@babel/plugin-transform-react-jsx": 7.23.4(@babel/core@7.24.5)
"@babel/traverse": 7.24.5
"@babel/types": 7.24.5
"@babel/core": 7.24.7
"@babel/generator": 7.24.7
"@babel/parser": 7.24.7
"@babel/plugin-transform-react-jsx": 7.24.7(@babel/core@7.24.7)
"@babel/traverse": 7.24.7
"@babel/types": 7.24.7
"@types/babel__core": 7.20.5
"@types/cookie": 0.6.0
acorn: 8.11.3
@ -6829,8 +6876,8 @@ snapshots:
diff: 5.2.0
dlv: 1.1.3
dset: 3.1.3
es-module-lexer: 1.5.2
esbuild: 0.21.3
es-module-lexer: 1.5.3
esbuild: 0.21.4
estree-walker: 3.0.3
execa: 8.0.1
fast-glob: 3.3.2
@ -6852,15 +6899,15 @@ snapshots:
rehype: 13.0.1
resolve: 1.22.8
semver: 7.6.2
shiki: 1.5.2
shiki: 1.6.3
string-width: 7.1.0
strip-ansi: 7.1.0
tsconfck: 3.0.3(typescript@5.4.5)
tsconfck: 3.1.0(typescript@5.4.5)
unist-util-visit: 5.0.0
vfile: 6.0.1
vite: 5.2.11
vitefu: 0.2.5(vite@5.2.11)
which-pm: 2.1.1
vite: 5.2.13
vitefu: 0.2.5(vite@5.2.13)
which-pm: 2.2.0
yargs-parser: 21.1.1
zod: 3.23.8
zod-to-json-schema: 3.23.0(zod@3.23.8)
@ -7111,7 +7158,7 @@ snapshots:
cssesc@3.0.0: {}
cssnano-preset-default@7.0.1(postcss@8.4.33):
cssnano-preset-default@7.0.2(postcss@8.4.33):
dependencies:
browserslist: 4.23.0
css-declaration-sorter: 7.2.0(postcss@8.4.33)
@ -7124,12 +7171,12 @@ snapshots:
postcss-discard-duplicates: 7.0.0(postcss@8.4.33)
postcss-discard-empty: 7.0.0(postcss@8.4.33)
postcss-discard-overridden: 7.0.0(postcss@8.4.33)
postcss-merge-longhand: 7.0.0(postcss@8.4.33)
postcss-merge-rules: 7.0.0(postcss@8.4.33)
postcss-merge-longhand: 7.0.1(postcss@8.4.33)
postcss-merge-rules: 7.0.1(postcss@8.4.33)
postcss-minify-font-values: 7.0.0(postcss@8.4.33)
postcss-minify-gradients: 7.0.0(postcss@8.4.33)
postcss-minify-params: 7.0.0(postcss@8.4.33)
postcss-minify-selectors: 7.0.0(postcss@8.4.33)
postcss-minify-selectors: 7.0.1(postcss@8.4.33)
postcss-normalize-charset: 7.0.0(postcss@8.4.33)
postcss-normalize-display-values: 7.0.0(postcss@8.4.33)
postcss-normalize-positions: 7.0.0(postcss@8.4.33)
@ -7142,16 +7189,16 @@ snapshots:
postcss-ordered-values: 7.0.0(postcss@8.4.33)
postcss-reduce-initial: 7.0.0(postcss@8.4.33)
postcss-reduce-transforms: 7.0.0(postcss@8.4.33)
postcss-svgo: 7.0.0(postcss@8.4.33)
postcss-unique-selectors: 7.0.0(postcss@8.4.33)
postcss-svgo: 7.0.1(postcss@8.4.33)
postcss-unique-selectors: 7.0.1(postcss@8.4.33)
cssnano-utils@5.0.0(postcss@8.4.33):
dependencies:
postcss: 8.4.33
cssnano@7.0.1(postcss@8.4.33):
cssnano@7.0.2(postcss@8.4.33):
dependencies:
cssnano-preset-default: 7.0.1(postcss@8.4.33)
cssnano-preset-default: 7.0.2(postcss@8.4.33)
lilconfig: 3.1.1
postcss: 8.4.33
@ -7226,9 +7273,7 @@ snapshots:
entities@4.5.0: {}
es-module-lexer@1.4.1: {}
es-module-lexer@1.5.2: {}
es-module-lexer@1.5.3: {}
esbuild@0.20.2:
optionalDependencies:
@ -7256,31 +7301,31 @@ snapshots:
"@esbuild/win32-ia32": 0.20.2
"@esbuild/win32-x64": 0.20.2
esbuild@0.21.3:
esbuild@0.21.4:
optionalDependencies:
"@esbuild/aix-ppc64": 0.21.3
"@esbuild/android-arm": 0.21.3
"@esbuild/android-arm64": 0.21.3
"@esbuild/android-x64": 0.21.3
"@esbuild/darwin-arm64": 0.21.3
"@esbuild/darwin-x64": 0.21.3
"@esbuild/freebsd-arm64": 0.21.3
"@esbuild/freebsd-x64": 0.21.3
"@esbuild/linux-arm": 0.21.3
"@esbuild/linux-arm64": 0.21.3
"@esbuild/linux-ia32": 0.21.3
"@esbuild/linux-loong64": 0.21.3
"@esbuild/linux-mips64el": 0.21.3
"@esbuild/linux-ppc64": 0.21.3
"@esbuild/linux-riscv64": 0.21.3
"@esbuild/linux-s390x": 0.21.3
"@esbuild/linux-x64": 0.21.3
"@esbuild/netbsd-x64": 0.21.3
"@esbuild/openbsd-x64": 0.21.3
"@esbuild/sunos-x64": 0.21.3
"@esbuild/win32-arm64": 0.21.3
"@esbuild/win32-ia32": 0.21.3
"@esbuild/win32-x64": 0.21.3
"@esbuild/aix-ppc64": 0.21.4
"@esbuild/android-arm": 0.21.4
"@esbuild/android-arm64": 0.21.4
"@esbuild/android-x64": 0.21.4
"@esbuild/darwin-arm64": 0.21.4
"@esbuild/darwin-x64": 0.21.4
"@esbuild/freebsd-arm64": 0.21.4
"@esbuild/freebsd-x64": 0.21.4
"@esbuild/linux-arm": 0.21.4
"@esbuild/linux-arm64": 0.21.4
"@esbuild/linux-ia32": 0.21.4
"@esbuild/linux-loong64": 0.21.4
"@esbuild/linux-mips64el": 0.21.4
"@esbuild/linux-ppc64": 0.21.4
"@esbuild/linux-riscv64": 0.21.4
"@esbuild/linux-s390x": 0.21.4
"@esbuild/linux-x64": 0.21.4
"@esbuild/netbsd-x64": 0.21.4
"@esbuild/openbsd-x64": 0.21.4
"@esbuild/sunos-x64": 0.21.4
"@esbuild/win32-arm64": 0.21.4
"@esbuild/win32-ia32": 0.21.4
"@esbuild/win32-x64": 0.21.4
escalade@3.1.1: {}
@ -7536,21 +7581,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
hast-util-to-html@9.0.0:
dependencies:
"@types/hast": 3.0.3
"@types/unist": 3.0.2
ccount: 2.0.1
comma-separated-tokens: 2.0.3
hast-util-raw: 9.0.1
hast-util-whitespace: 3.0.0
html-void-elements: 3.0.0
mdast-util-to-hast: 13.0.2
property-information: 6.4.0
space-separated-tokens: 2.0.2
stringify-entities: 4.0.3
zwitch: 2.0.4
hast-util-to-html@9.0.1:
dependencies:
"@types/hast": 3.0.3
@ -8104,8 +8134,8 @@ snapshots:
micromark-extension-mdxjs@3.0.0:
dependencies:
acorn: 8.11.2
acorn-jsx: 5.3.2(acorn@8.11.2)
acorn: 8.11.3
acorn-jsx: 5.3.2(acorn@8.11.3)
micromark-extension-mdx-expression: 3.0.0
micromark-extension-mdx-jsx: 3.0.0
micromark-extension-mdx-md: 2.0.0
@ -8280,6 +8310,10 @@ snapshots:
dependencies:
"@types/nlcst": 1.0.4
nlcst-to-string@4.0.0:
dependencies:
"@types/nlcst": 2.0.3
node-releases@2.0.14: {}
normalize-path@3.0.0: {}
@ -8378,6 +8412,15 @@ snapshots:
unist-util-modify-children: 3.1.1
unist-util-visit-children: 2.0.2
parse-latin@7.0.0:
dependencies:
"@types/nlcst": 2.0.3
"@types/unist": 3.0.2
nlcst-to-string: 4.0.0
unist-util-modify-children: 4.0.0
unist-util-visit-children: 3.0.0
vfile: 6.0.1
parse5@7.1.2:
dependencies:
entities: 4.5.0
@ -8584,19 +8627,19 @@ snapshots:
postcss: 8.4.33
postcss-value-parser: 4.2.0
postcss-merge-longhand@7.0.0(postcss@8.4.33):
postcss-merge-longhand@7.0.1(postcss@8.4.33):
dependencies:
postcss: 8.4.33
postcss-value-parser: 4.2.0
stylehacks: 7.0.0(postcss@8.4.33)
stylehacks: 7.0.1(postcss@8.4.33)
postcss-merge-rules@7.0.0(postcss@8.4.33):
postcss-merge-rules@7.0.1(postcss@8.4.33):
dependencies:
browserslist: 4.23.0
caniuse-api: 3.0.0
cssnano-utils: 5.0.0(postcss@8.4.33)
postcss: 8.4.33
postcss-selector-parser: 6.0.16
postcss-selector-parser: 6.1.0
postcss-minify-font-values@7.0.0(postcss@8.4.33):
dependencies:
@ -8617,10 +8660,10 @@ snapshots:
postcss: 8.4.33
postcss-value-parser: 4.2.0
postcss-minify-selectors@7.0.0(postcss@8.4.33):
postcss-minify-selectors@7.0.1(postcss@8.4.33):
dependencies:
postcss: 8.4.33
postcss-selector-parser: 6.0.16
postcss-selector-parser: 6.1.0
postcss-nested@6.0.1(postcss@8.4.33):
dependencies:
@ -8632,12 +8675,12 @@ snapshots:
postcss: 8.4.38
postcss-selector-parser: 6.0.13
postcss-nesting@12.1.4(postcss@8.4.33):
postcss-nesting@12.1.5(postcss@8.4.33):
dependencies:
"@csstools/selector-resolve-nested": 1.1.0(postcss-selector-parser@6.0.16)
"@csstools/selector-specificity": 3.1.1(postcss-selector-parser@6.0.16)
"@csstools/selector-resolve-nested": 1.1.0(postcss-selector-parser@6.1.0)
"@csstools/selector-specificity": 3.1.1(postcss-selector-parser@6.1.0)
postcss: 8.4.33
postcss-selector-parser: 6.0.16
postcss-selector-parser: 6.1.0
postcss-normalize-charset@7.0.0(postcss@8.4.33):
dependencies:
@ -8708,7 +8751,7 @@ snapshots:
postcss: 8.4.33
postcss-value-parser: 4.2.0
postcss-preset-env@9.5.13(postcss@8.4.33):
postcss-preset-env@9.5.14(postcss@8.4.33):
dependencies:
"@csstools/postcss-cascade-layers": 4.0.6(postcss@8.4.33)
"@csstools/postcss-color-function": 3.0.16(postcss@8.4.33)
@ -8763,7 +8806,7 @@ snapshots:
postcss-image-set-function: 6.0.3(postcss@8.4.33)
postcss-lab-function: 6.0.16(postcss@8.4.33)
postcss-logical: 7.0.1(postcss@8.4.33)
postcss-nesting: 12.1.4(postcss@8.4.33)
postcss-nesting: 12.1.5(postcss@8.4.33)
postcss-opacity-percentage: 2.0.0(postcss@8.4.33)
postcss-overflow-shorthand: 5.0.1(postcss@8.4.33)
postcss-page-break: 3.0.4(postcss@8.4.33)
@ -8807,16 +8850,21 @@ snapshots:
cssesc: 3.0.0
util-deprecate: 1.0.2
postcss-svgo@7.0.0(postcss@8.4.33):
postcss-selector-parser@6.1.0:
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
postcss-svgo@7.0.1(postcss@8.4.33):
dependencies:
postcss: 8.4.33
postcss-value-parser: 4.2.0
svgo: 3.3.2
postcss-unique-selectors@7.0.0(postcss@8.4.33):
postcss-unique-selectors@7.0.1(postcss@8.4.33):
dependencies:
postcss: 8.4.33
postcss-selector-parser: 6.0.16
postcss-selector-parser: 6.1.0
postcss-value-parser@4.2.0: {}
@ -8902,7 +8950,7 @@ snapshots:
rehype-stringify@10.0.0:
dependencies:
"@types/hast": 3.0.3
hast-util-to-html: 9.0.0
hast-util-to-html: 9.0.1
unified: 11.0.4
rehype@13.0.1:
@ -8962,6 +9010,13 @@ snapshots:
retext-smartypants: 5.2.0
unist-util-visit: 4.1.2
remark-smartypants@3.0.1:
dependencies:
retext: 9.0.0
retext-smartypants: 6.1.0
unified: 11.0.4
unist-util-visit: 5.0.0
remark-stringify@11.0.0:
dependencies:
"@types/mdast": 4.0.3
@ -8990,6 +9045,12 @@ snapshots:
unherit: 3.0.1
unified: 10.1.2
retext-latin@4.0.0:
dependencies:
"@types/nlcst": 2.0.3
parse-latin: 7.0.0
unified: 11.0.4
retext-smartypants@5.2.0:
dependencies:
"@types/nlcst": 1.0.4
@ -8997,12 +9058,24 @@ snapshots:
unified: 10.1.2
unist-util-visit: 4.1.2
retext-smartypants@6.1.0:
dependencies:
"@types/nlcst": 2.0.3
nlcst-to-string: 4.0.0
unist-util-visit: 5.0.0
retext-stringify@3.1.0:
dependencies:
"@types/nlcst": 1.0.4
nlcst-to-string: 3.1.1
unified: 10.1.2
retext-stringify@4.0.0:
dependencies:
"@types/nlcst": 2.0.3
nlcst-to-string: 4.0.0
unified: 11.0.4
retext@8.1.0:
dependencies:
"@types/nlcst": 1.0.4
@ -9010,6 +9083,13 @@ snapshots:
retext-stringify: 3.1.0
unified: 10.1.2
retext@9.0.0:
dependencies:
"@types/nlcst": 2.0.3
retext-latin: 4.0.0
retext-stringify: 4.0.0
unified: 11.0.4
reusify@1.0.4: {}
rollup@4.17.2:
@ -9089,6 +9169,10 @@ snapshots:
dependencies:
"@shikijs/core": 1.5.2
shiki@1.6.3:
dependencies:
"@shikijs/core": 1.6.3
signal-exit@3.0.7: {}
signal-exit@4.1.0: {}
@ -9163,11 +9247,11 @@ snapshots:
dependencies:
inline-style-parser: 0.2.2
stylehacks@7.0.0(postcss@8.4.33):
stylehacks@7.0.1(postcss@8.4.33):
dependencies:
browserslist: 4.23.0
postcss: 8.4.33
postcss-selector-parser: 6.0.16
postcss-selector-parser: 6.1.0
sucrase@3.34.0:
dependencies:
@ -9242,7 +9326,7 @@ snapshots:
ts-interface-checker@0.1.13: {}
tsconfck@3.0.3(typescript@5.4.5):
tsconfck@3.1.0(typescript@5.4.5):
optionalDependencies:
typescript: 5.4.5
@ -9299,6 +9383,11 @@ snapshots:
"@types/unist": 2.0.10
array-iterate: 2.0.1
unist-util-modify-children@4.0.0:
dependencies:
"@types/unist": 3.0.2
array-iterate: 2.0.1
unist-util-position-from-estree@2.0.0:
dependencies:
"@types/unist": 3.0.2
@ -9324,6 +9413,10 @@ snapshots:
dependencies:
"@types/unist": 2.0.10
unist-util-visit-children@3.0.0:
dependencies:
"@types/unist": 3.0.2
unist-util-visit-parents@5.1.3:
dependencies:
"@types/unist": 2.0.10
@ -9382,7 +9475,7 @@ snapshots:
unist-util-stringify-position: 4.0.0
vfile-message: 4.0.2
vite@5.2.11:
vite@5.2.13:
dependencies:
esbuild: 0.20.2
postcss: 8.4.38
@ -9390,9 +9483,9 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
vitefu@0.2.5(vite@5.2.11):
vitefu@0.2.5(vite@5.2.13):
optionalDependencies:
vite: 5.2.11
vite: 5.2.13
volar-service-css@0.0.45(@volar/language-service@2.2.4):
dependencies:
@ -9482,7 +9575,7 @@ snapshots:
load-yaml-file: 0.2.0
path-exists: 4.0.0
which-pm@2.1.1:
which-pm@2.2.0:
dependencies:
load-yaml-file: 0.2.0
path-exists: 4.0.0
@ -9537,8 +9630,6 @@ snapshots:
dependencies:
zod: 3.23.8
zod@3.22.4: {}
zod@3.23.8: {}
zwitch@2.0.4: {}

View file

@ -2,24 +2,29 @@
title: Creating a Plugin
---
import { FileTree, Steps } from "@astrojs/starlight/components";
import { FileTree, Steps, Badge } from "@astrojs/starlight/components";
In order to get started, you first need to
[setup your Castopod dev environment](https://code.castopod.org/adaures/castopod/-/blob/develop/CONTRIBUTING-DEV.md).
## Using the create command
## 1. Create the plugin folder
To quickly get you started, you can create a plugin using the following CLI
command:
You'll first need to create your [plugin folder](./#plugin-folder-structure) in
the `plugins/` directory.
### Using the create command <Badge text="Recommended" size="small" />
To quickly get you started, you can have a folder generated for you using the
following CLI command:
```sh
php spark plugins:create
```
👉 Follow the CLI instructions: you will be prompted for metadata and hooks
definitions to generate the [plugin folder](./#plugin-folder-structure) for you.
👉 You will be prompted for metadata and hooks usage to have a skeleton plugin
project generated for you!
## Manual setup
### Manual setup
<Steps>
1. create a plugin folder inside a vendor directory
@ -54,3 +59,58 @@ definitions to generate the [plugin folder](./#plugin-folder-structure) for you.
</FileTree>
</Steps>
## 2. Build your plugin
Now that your plugin folder is set, you can start working on your Plugin's logic
by implementing [the hooks](./hooks) needed.
### Settings forms
You can prompt users for data through settings forms.
These forms can be built declaratively using the
[settings attribute](./manifest#settings) in your manifest.
```json
// manifest.json
{
"settings": {
"general": {
"field-key": {
"type": "text",
"label": "Enter a text"
}
},
"podcast": {
"field-key": {
"type": "text",
"label": "Enter a text for this podcast"
}
},
"episode": {
"field-key": {
"type": "type",
"label": "Enter a text for this episode"
}
}
}
}
```
This example will generate settings forms at 3 levels:
- `general`: a general form to prompt data to be used by the plugin
- `podcast`: a form for each podcast to prompt for podcast specific data
- `episode`: a form for each episode to prompt for episode specific data
The data can then be accessed in the Plugin class methods via helper methods
taking in the field key:
```php
$this->getGeneralSetting('field-key');
$this->getPodcastSetting($podcast->id, 'field-key');
$this->getEpisodeSetting($episode->id, 'field-key');
```

View file

@ -1,3 +0,0 @@
---
title: BasePlugin
---

View file

@ -2,8 +2,8 @@
title: Hooks reference
---
Hooks are methods that live in the Plugin class, they are executed in parts of
the Castopod codebase.
Hooks are methods of the Plugin class, they are executed in parts of the
Castopod codebase.
## List
@ -17,6 +17,11 @@ the Castopod codebase.
### rssBeforeChannel
This hook is executed just before rendering the `<channel>` tag in the Podcast
RSS feed using the given Podcast object.
Here is a good place to alter the Podcast object.
```php
public function rssBeforeChannel(Podcast $podcast): void
{
@ -26,8 +31,13 @@ public function rssBeforeChannel(Podcast $podcast): void
### rssAfterChannel
This hook is executed after rendering all of the `<channel>` tags in the Podcast
RSS feed.
Here is a good place to add new tags to the generated channel.
```php
public function rssAfterChannel(Podcast $podcast, SimpleRSSElement $rss): void
public function rssAfterChannel(Podcast $podcast, SimpleRSSElement $channel): void
{
// …
}
@ -35,6 +45,11 @@ public function rssAfterChannel(Podcast $podcast, SimpleRSSElement $rss): void
### rssBeforeItem
This hook is executed before rendering an `<item>` tag in the Podcast RSS feed
using the given Episode object.
Here is a good place to alter the Episode object.
```php
public function rssBeforeItem(Episode $episode): void
{
@ -44,8 +59,13 @@ public function rssBeforeItem(Episode $episode): void
### rssAfterItem
This hook is executed after rendering an `<item>`'s tags in the Podcast RSS
feed.
Here is a good place to add new tags to the generated item.
```php
public function rssAfterItem(Epsiode $episode, SimpleRSSElement $rss): void
public function rssAfterItem(Epsiode $episode, SimpleRSSElement $item): void
{
// …
}
@ -53,6 +73,11 @@ public function rssAfterItem(Epsiode $episode, SimpleRSSElement $rss): void
### siteHead
This hook is executed in the public pages' `<head>` tag.
This is a good place to add meta tags and third-party scripts to Castopod's
public pages.
```php
public function siteHead(): void
{

View file

@ -2,7 +2,7 @@
title: Castopod Plugins
---
import { FileTree, Aside } from "@astrojs/starlight/components";
import { FileTree, Aside, Tabs, TabItem } from "@astrojs/starlight/components";
Plugins are ways to extend Castopod's core features.
@ -16,13 +16,13 @@ Plugins are ways to extend Castopod's core features.
- fr.json
- …
- icon.svg
- [manifest.json](./manifest) // required
- [Plugin.php](#plugin-class) // required
- manifest.json // required
- Plugin.php // required
- README.md
</FileTree>
Plugins reside in the `plugins` folder under a **vendor** folder, ie. the
Plugins reside in the `plugins/` directory under a `vendor/` folder, ie. the
organisation or person who authored the plugin.
<FileTree>
@ -35,15 +35,16 @@ organisation or person who authored the plugin.
</FileTree>
### manifest.json (required)
### Plugin manifest (required)
The plugin manifest is a JSON file containing your plugin's metadata and
permissions.
The plugin manifest is a JSON file containing the plugin's metadata and
declarations.
This file will determine whether a plugin is valid or not. The minimal required
data being:
```json
// manifest.json
{
"name": "acme/hello-world",
"version": "1.0.0"
@ -52,12 +53,12 @@ data being:
Checkout the [manifest.json reference](./manifest).
<h3 id="plugin-class">Plugin class (required)</h3>
### Plugin class (required)
This is where your plugin's logic will live.
This is where the plugin's logic lives.
The Plugin class must extend Castopod's BasePlugin class and implement one or
multiple [Hooks](./hooks) (methods).
The Plugin class extends Castopod's BasePlugin class and implements one or more
[Hooks](./hooks) (methods) intended to be run throughout Castopod's codebase.
```php
// Plugin.php
@ -69,7 +70,11 @@ use Modules\Plugins\Core\BasePlugin;
class AcmeHelloWorldPlugin extends BasePlugin
{
// …
// this rssBeforeChannel method is a Hook
public function rssBeforeChannel(Podcast $podcast): void
{
// …
}
}
```
@ -85,14 +90,14 @@ For example, a plugin living under the `acme/hello-world` folder must be named
</Aside>
### README.md
### Plugin README
The `README.md` file is loaded into the plugin's view page for the user to
read.
The `README.md` file is loaded into the plugin's view page for the user to read
through.
It should be used for any additional information to help guide the user in using
the plugin.
### icon.svg
### Plugin icon
The plugin icon is displayed next to its title, it is an SVG file intended to
give a graphical representation of the plugin.
@ -101,8 +106,8 @@ The icon should be squared, and be legible in a 64px by 64px circle.
### Internationalization (i18n)
Translation strings live under the `i18n` folder. Translation files are JSON
files named as locale keys:
Plugins can be translated. Translation strings live inside the `i18n` folder.
Translation files are JSON files named as locale keys:
<FileTree>
@ -118,16 +123,45 @@ Supported locales are:
`br`,`ca`,`de`,`en`,`es`,`fr`,`nn-no`,`pl`,`pt-br`,`sr-latn`,`zh-hans`.
The translation strings allow you to translate the title, description and
settings keys.
settings keys (ie. labels, hints, helpers, etc.).
```json
{
"title": "Hello, World!",
"description": "A Castopod plugin to greet the world!",
"settings": {
"general": {},
"podcast": {},
"episode": {}
}
}
```
<Tabs>
<TabItem label="English">
```json
// i18n/en.json
{
"title": "Hello, World!",
"description": "A Castopod plugin to greet the world!",
"settings": {
"general": {
"field-key": {
"label": "Enter a text",
"hint": "You can enter any type of character."
}
},
"podcast": {},
"episode": {}
}
}
```
</TabItem>
<TabItem label="French">
```json
// i18n/fr.json
{
"title": "Bonjour, le Monde !",
"description": "Un plugin castopod pour saluer le monde !",
"settings": {
"general": {
"field-key": {
"label": "Saisissez un texte",
"hint": "Vous pouvez saisir n'importe quel type de caractère."
}
},
"podcast": {},
"episode": {}
}
}
```
</TabItem>
</Tabs>

View file

@ -7,7 +7,14 @@ a JSON file.
### name (required)
The plugin name, including 'vendor-name/' prefix.
The plugin name, including 'vendor-name/' prefix. Examples:
- acme/hello-world
- adaures/click
The name must be lowercase and consist of words separated by `-`, `.` or `_`.
The complete name should match
`^[a-z0-9]([_.-]?[a-z0-9]+)*\/[a-z0-9]([_.-]?[a-z0-9]+)*$`.
### version (required)
@ -15,8 +22,8 @@ The plugin's semantic version (eg. 1.0.0) - see https://semver.org/
### description
The plugin's description. This helps people discover your plugin as it's listed
in repositories
The plugin's description. This helps people discover your plugin when listed in
repositories.
### authors
@ -25,7 +32,7 @@ a required "name" field and optional "email" and "url" fields:
```json
{
"name": "Jean D'eau",
"name": "Jean Deau",
"email": "jean.deau@example.com",
"url": "https://example.com/"
}
@ -34,7 +41,7 @@ a required "name" field and optional "email" and "url" fields:
Or you can shorten the object into a single string:
```json
"Jean D'eau <jean.deau@example.com> (https://example.com/)"
"Jean Deau <jean.deau@example.com> (https://example.com/)"
```
### homepage
@ -43,17 +50,79 @@ The URL to the project homepage.
### license
You should specify a license for your plugin so that people know how they are
permitted to use it, and any restrictions you're placing on it.
Specify a license for your plugin so that people know how they are permitted to
use it, and any restrictions you're placing on it.
### private
Whether or not to publish the plugin in public directories. If set to `true`,
directories should refuse to publish the plugin.
### keywords
Array of strings to help your plugin get discovered when listed in repositories.
### hooks
List of hooks used by the plugin. If the hook is not specified, Castopod will
not run it.
### settings
Declare settings forms for persisting user data. The plugin's settings forms can
be declared at three levels: `general`, `podcast`, and `episode`.
Each level accepts one or more fields, identified by a key.
```json
{
"settings": {
"general": { // general settings form
"field-key": {
"type": "text", // default field type: a text input
"label": "Enter a text"
},
},
"podcast": {…}, // settings form for each podcast
"episode": {…}, // settings form for each episode
}
}
```
The `general`, `podcast`, and `episode` settings are of `Fields` object with
each property being a field key and the value being a `Field` object.
#### Field object
A field is a form element:
| Property | Type | Note |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| `type` | `checkbox` \| `datetime` \| `email` \| `markdown` \| `number` \| `radio-group` \| `select-multiple` \| `select` \| `text` \| `textarea` \| `toggler` \| `url` | Default is `text` |
| `label` (required) | `string` | Can be translated (see i18n) |
| `hint` | `string` | Can be translated (see i18n) |
| `helper` | `string` | Can be translated (see i18n) |
| `optional` | `boolean` | Default is `false` |
| `options` | `Options` | Required for `radio-group`, `select-multiple`, and `select` types. |
#### Options object
The `Options` object properties are option keys and the value is an `Option`.
##### Option object
| Property | Type | Note |
| ------------------ | -------- | ---------------------------- |
| `label` (required) | `string` | Can be translated (see i18n) |
| `hint` | `string` | Can be translated (see i18n) |
### files
Array of file patterns that describes the entries to be included when your
plugin is installed.
### repository
Repository where the plugin's code lives. Helpful for people who want to
contribute.

View file

@ -4,6 +4,8 @@ declare(strict_types=1);
namespace Modules\Plugins\Manifest;
use Override;
/**
* @property string $key
* @property 'text'|'email'|'url'|'markdown'|'number'|'switch' $type
@ -45,6 +47,22 @@ class Field extends ManifestObject
*/
protected array $options = [];
#[Override]
public function loadData(array $data): void
{
if (array_key_exists('options', $data)) {
$newOptions = [];
foreach ($data['options'] as $key => $option) {
$option['value'] = $key;
$newOptions[] = $option;
}
$data['options'] = $newOptions;
}
parent::loadData($data);
}
/**
* @return array{label:string,value:string,hint:string}[]
*/

View file

@ -1,16 +0,0 @@
<?php
declare(strict_types=1);
namespace Modules\Plugins\Manifest;
use Override;
class Fields extends ManifestObject
{
#[Override]
public function loadData(array $data): void
{
dd($data);
}
}

View file

@ -195,12 +195,11 @@
"type": "boolean"
},
"options": {
"type": "array",
"items": {
"$ref": "#/$defs/option"
"type": "object",
"patternProperties": {
"^[A-Za-z0-9]+[\\w\\-\\:\\.]*$": { "$ref": "#/$defs/option" }
},
"minItems": 1,
"uniqueItems": true
"additionalProperties": false
}
},
"required": ["label"],
@ -215,14 +214,11 @@
"label": {
"type": "string"
},
"value": {
"type": "string"
},
"hint": {
"type": "string"
}
},
"required": ["label", "value"],
"required": ["label"],
"additionalProperties": false
},
"field-multiple-implies-options-is-required": {

View file

@ -14,129 +14,107 @@
"keywords": ["seo", "analytics"],
"hooks": ["rssAfterChannel"],
"settings": {
"general": [
{
"general": {
"name": {
"type": "radio-group",
"key": "name",
"label": "Name",
"options": [
{ "label": "Foo", "value": "foo", "hint": "This is a hint." },
{ "label": "Bar", "value": "bar" }
]
"options": {
"foo": { "label": "Foo", "hint": "This is a hint." },
"bar": { "label": "Bar" }
}
},
{
"email": {
"type": "email",
"key": "email",
"label": "Email"
},
{
"url": {
"type": "url",
"key": "url",
"label": "Your website URL"
},
{
"toggler": {
"type": "toggler",
"key": "toggler",
"label": "Toggle this?"
},
{
"number": {
"type": "number",
"key": "number",
"label": "Number"
},
{
"datetime": {
"type": "datetime",
"key": "datetime",
"label": "Enter a date",
"optional": true
},
{
"select": {
"type": "select",
"key": "select",
"label": "Select something",
"options": [
{
"label": "Foo",
"value": "foo"
"options": {
"foo": {
"label": "Foo"
},
{
"label": "Bar",
"value": "bar"
"bar": {
"label": "Bar"
},
{
"label": "Baz",
"value": "baz"
"baz": {
"label": "Baz"
}
]
}
},
{
"select-multiple": {
"type": "select-multiple",
"key": "select-multiple",
"label": "Select multiple things",
"options": [
{
"label": "Foo",
"value": "foo"
"options": {
"foo": {
"label": "Foo"
},
{
"label": "Bar",
"value": "bar"
"bar": {
"label": "Bar"
},
{
"label": "Baz",
"value": "baz"
"baz": {
"label": "Baz"
}
]
}
},
{
"radio-group": {
"type": "radio-group",
"key": "radio-group",
"label": "Radio Group",
"helper": "This is a helper.",
"options": [
{
"label": "Foo",
"value": "foo"
"options": {
"foo": {
"label": "Foo"
},
{
"label": "Bar",
"value": "bar"
"bar": {
"label": "Bar"
},
{
"label": "Baz",
"value": "baz"
"baz": {
"label": "Baz"
}
]
}
},
{
"texting": {
"type": "textarea",
"key": "texting",
"label": "Your text",
"hint": "This is a hint."
},
{
"hello": {
"type": "markdown",
"key": "hello",
"label": "Name Podcast",
"hint": "This is a hint.",
"optional": true
}
],
"podcast": [
{
},
"podcast": {
"name": {
"type": "text",
"key": "name",
"label": "Name Podcast",
"hint": "This is a hint."
}
],
"episode": [
{
},
"episode": {
"name": {
"type": "text",
"key": "name",
"label": "Name Episode",
"helper": "This is a helper."
}
]
}
}
}

View file

@ -18,11 +18,11 @@
"name": {
"type": "radio-group",
"label": "Name",
"options": [
{ "label": "Foo", "value": "foo", "hint": "This is a hint." },
{ "label": "Bar", "value": "bar" },
{ "label": "Baz", "value": "baz" }
]
"options": {
"foo": { "label": "Foo", "hint": "This is a hint." },
"bar": { "label": "Bar" },
"baz": { "label": "Baz" }
}
},
"email": {
"type": "email",
@ -48,57 +48,48 @@
"select": {
"type": "select",
"label": "Select something",
"options": [
{
"label": "Foo",
"value": "foo"
"options": {
"foo": {
"label": "Foo"
},
{
"label": "Bar",
"value": "bar"
"bar": {
"label": "Bar"
},
{
"label": "Baz",
"value": "baz"
"baz": {
"label": "Baz"
}
]
}
},
"select-multiple": {
"type": "select-multiple",
"label": "Select multiple things",
"options": [
{
"label": "Foo",
"value": "foo"
"options": {
"foo": {
"label": "Foo"
},
{
"label": "Bar",
"value": "bar"
"bar": {
"label": "Bar"
},
{
"label": "Baz",
"value": "baz"
"baz": {
"label": "Baz"
}
]
}
},
"radio-group": {
"type": "radio-group",
"label": "Radio Group",
"helper": "This is a helper.",
"options": [
{
"label": "Foo",
"value": "foo"
"options": {
"foo": {
"label": "Foo"
},
{
"label": "Bar",
"value": "bar"
"bar": {
"label": "Bar"
},
{
"label": "Baz",
"value": "baz"
"baz": {
"label": "Baz"
}
]
}
},
"textarea": {
"type": "textarea",