diff --git a/docs/package.json b/docs/package.json index c995429a..d6fc1e20 100644 --- a/docs/package.json +++ b/docs/package.json @@ -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" diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index 2f88765a..c59d5294 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -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: {} diff --git a/docs/src/content/docs/en/plugins/create.mdx b/docs/src/content/docs/en/plugins/create.mdx index 2941e830..0e2b55db 100644 --- a/docs/src/content/docs/en/plugins/create.mdx +++ b/docs/src/content/docs/en/plugins/create.mdx @@ -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 + +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 1. create a plugin folder inside a vendor directory @@ -54,3 +59,58 @@ definitions to generate the [plugin folder](./#plugin-folder-structure) for you. + +## 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'); +``` diff --git a/docs/src/content/docs/en/plugins/helpers.mdx b/docs/src/content/docs/en/plugins/helpers.mdx deleted file mode 100644 index 3630207c..00000000 --- a/docs/src/content/docs/en/plugins/helpers.mdx +++ /dev/null @@ -1,3 +0,0 @@ ---- -title: BasePlugin ---- diff --git a/docs/src/content/docs/en/plugins/hooks.mdx b/docs/src/content/docs/en/plugins/hooks.mdx index cd683170..cfa1e225 100644 --- a/docs/src/content/docs/en/plugins/hooks.mdx +++ b/docs/src/content/docs/en/plugins/hooks.mdx @@ -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 `` 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 `` 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 `` 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 ``'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' `` tag. + +This is a good place to add meta tags and third-party scripts to Castopod's +public pages. + ```php public function siteHead(): void { diff --git a/docs/src/content/docs/en/plugins/index.mdx b/docs/src/content/docs/en/plugins/index.mdx index 4e16b87c..f8da83b2 100644 --- a/docs/src/content/docs/en/plugins/index.mdx +++ b/docs/src/content/docs/en/plugins/index.mdx @@ -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 -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. @@ -35,15 +35,16 @@ organisation or person who authored the plugin. -### 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). -

Plugin class (required)

+### 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 -### 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: @@ -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": {} - } -} -``` + + + ```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": {} + } + } + ``` + + + ```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": {} + } + } + ``` + + diff --git a/docs/src/content/docs/en/plugins/manifest.mdx b/docs/src/content/docs/en/plugins/manifest.mdx index b1754f56..8941bce9 100644 --- a/docs/src/content/docs/en/plugins/manifest.mdx +++ b/docs/src/content/docs/en/plugins/manifest.mdx @@ -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 (https://example.com/)" +"Jean Deau (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. diff --git a/modules/Plugins/Manifest/Field.php b/modules/Plugins/Manifest/Field.php index 74f0fde3..02075023 100644 --- a/modules/Plugins/Manifest/Field.php +++ b/modules/Plugins/Manifest/Field.php @@ -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}[] */ diff --git a/modules/Plugins/Manifest/Fields.php b/modules/Plugins/Manifest/Fields.php deleted file mode 100644 index 08db788d..00000000 --- a/modules/Plugins/Manifest/Fields.php +++ /dev/null @@ -1,16 +0,0 @@ -