From 87988994194783808f351341131c6969b4a335a7 Mon Sep 17 00:00:00 2001 From: Kharann Date: Tue, 21 Nov 2023 00:08:49 +0100 Subject: [PATCH] rewrite to full astro --- pnpm-lock.yaml | 1155 ++++++++++++++++- web/{.eslintrc.cjs => .eslintrc.js} | 9 +- web/.gitignore | 3 +- web/.vscode/extensions.json | 2 +- web/.vscode/settings.json | 3 - web/README.md | 64 +- web/astro.config.mjs | 25 +- web/bun.lockb | Bin 0 -> 320424 bytes web/package.json | 79 +- web/prettier.config.cjs | 6 +- web/public/analytics.js | 1 - web/public/fonts/atkinson-bold.woff | Bin 0 -> 23780 bytes web/public/fonts/atkinson-regular.woff | Bin 0 -> 22792 bytes web/public/umami.js | 1 - web/src/api/frontpage.ts | 58 - web/src/components/BaseHead.astro | 46 + ...{PreviewPosts.astro => BlogPostItem.astro} | 4 +- web/src/components/DualImageRow.astro | 29 - web/src/components/Footer.astro | 20 +- web/src/components/FormattedDate.astro | 17 + web/src/components/Header/Header.astro | 29 + web/src/components/Header/Header.svelte | 39 - .../Header/{logo.svelte => Logo.astro} | 0 web/src/components/Header/NavLink.astro | 18 + web/src/components/Header/dropdown.svelte | 28 - web/src/components/Header/hamburger.svelte | 51 - web/src/components/Header/route-link.svelte | 13 - web/src/components/HeaderLink.astro | 24 + web/src/components/Link.astro | 22 + web/src/components/Link.svelte | 29 - .../components/PortableText/code-block.svelte | 23 - web/src/components/PortableText/index.svelte | 31 - web/src/components/PortableText/list.svelte | 12 - .../PortableText/portable-link.svelte | 10 - .../PortableText/portable-list-item.svelte | 8 - web/src/components/ProjectCard.astro | 57 - web/src/components/Section.astro | 3 +- web/src/components/ThemeIcon.astro | 44 +- web/src/components/divider.svelte | 1 - web/src/components/experiences.svelte | 82 -- web/src/consts.ts | 5 + .../blog/rewriting-my-blog.mdx | 29 +- web/src/content/config.ts | 15 + web/src/env.d.ts | 4 +- web/src/layouts/BlogLayout.astro | 7 +- web/src/layouts/Layout.astro | 134 +- web/src/layouts/base.css | 28 - web/src/lib/remark-reading-time.js | 12 - web/src/lib/sanity.ts | 26 - web/src/pages/blog/[slug].astro | 18 + web/src/pages/blog/index.astro | 6 +- web/src/pages/index.astro | 103 +- web/src/pages/rss.xml.js | 16 + web/src/theme/colors_dark.cjs | 75 -- web/src/theme/colors_light.cjs | 74 -- web/src/utils.ts | 6 + web/tailwind.config.cjs | 136 +- web/tsconfig.json | 7 +- 58 files changed, 1672 insertions(+), 1075 deletions(-) rename web/{.eslintrc.cjs => .eslintrc.js} (85%) delete mode 100644 web/.vscode/settings.json create mode 100755 web/bun.lockb delete mode 100644 web/public/analytics.js create mode 100644 web/public/fonts/atkinson-bold.woff create mode 100644 web/public/fonts/atkinson-regular.woff delete mode 100644 web/public/umami.js delete mode 100644 web/src/api/frontpage.ts create mode 100644 web/src/components/BaseHead.astro rename web/src/components/{PreviewPosts.astro => BlogPostItem.astro} (82%) delete mode 100644 web/src/components/DualImageRow.astro create mode 100644 web/src/components/FormattedDate.astro create mode 100644 web/src/components/Header/Header.astro delete mode 100644 web/src/components/Header/Header.svelte rename web/src/components/Header/{logo.svelte => Logo.astro} (100%) create mode 100644 web/src/components/Header/NavLink.astro delete mode 100644 web/src/components/Header/dropdown.svelte delete mode 100644 web/src/components/Header/hamburger.svelte delete mode 100644 web/src/components/Header/route-link.svelte create mode 100644 web/src/components/HeaderLink.astro create mode 100644 web/src/components/Link.astro delete mode 100644 web/src/components/Link.svelte delete mode 100644 web/src/components/PortableText/code-block.svelte delete mode 100644 web/src/components/PortableText/index.svelte delete mode 100644 web/src/components/PortableText/list.svelte delete mode 100644 web/src/components/PortableText/portable-link.svelte delete mode 100644 web/src/components/PortableText/portable-list-item.svelte delete mode 100644 web/src/components/ProjectCard.astro delete mode 100644 web/src/components/divider.svelte delete mode 100644 web/src/components/experiences.svelte create mode 100644 web/src/consts.ts rename web/src/{pages => content}/blog/rewriting-my-blog.mdx (92%) create mode 100644 web/src/content/config.ts delete mode 100644 web/src/layouts/base.css delete mode 100644 web/src/lib/remark-reading-time.js delete mode 100644 web/src/lib/sanity.ts create mode 100644 web/src/pages/blog/[slug].astro create mode 100644 web/src/pages/rss.xml.js delete mode 100644 web/src/theme/colors_dark.cjs delete mode 100644 web/src/theme/colors_light.cjs create mode 100644 web/src/utils.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 75241e9..a97eb58 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -161,6 +161,64 @@ importers: specifier: 1.0.0-rc.1 version: 1.0.0-rc.1(@radix-ui/colors@3.0.0-rc.5)(tailwindcss@3.3.3) + web-reforged: + dependencies: + '@astrojs/check': + specifier: ^0.3.1 + version: 0.3.1(typescript@5.2.2) + '@astrojs/mdx': + specifier: ^1.1.4 + version: 1.1.5(astro@3.5.4) + '@astrojs/rss': + specifier: ^3.0.0 + version: 3.0.0 + '@astrojs/sitemap': + specifier: ^3.0.3 + version: 3.0.3 + '@astrojs/tailwind': + specifier: ^5.0.2 + version: 5.0.2(astro@3.5.4)(tailwindcss@3.3.3) + '@radix-ui/colors': + specifier: ^3.0.0 + version: 3.0.0 + '@tailwindcss/typography': + specifier: ^0.5.10 + version: 0.5.10(tailwindcss@3.3.3) + astro: + specifier: ^3.5.0 + version: 3.5.4(typescript@5.2.2) + astro-icon: + specifier: ^0.8.1 + version: 0.8.1 + clsx: + specifier: ^2.0.0 + version: 2.0.0 + iconify-icon: + specifier: ^1.0.8 + version: 1.0.8 + tailwind-merge: + specifier: ^2.0.0 + version: 2.0.0 + tailwindcss: + specifier: ^3.0.24 + version: 3.3.3 + typescript: + specifier: ^5.2.2 + version: 5.2.2 + devDependencies: + '@typescript-eslint/parser': + specifier: ^6.10.0 + version: 6.11.0(eslint@8.53.0)(typescript@5.2.2) + eslint: + specifier: ^8.53.0 + version: 8.53.0 + eslint-plugin-astro: + specifier: ^0.29.1 + version: 0.29.1(eslint@8.53.0) + eslint-plugin-jsx-a11y: + specifier: ^6.8.0 + version: 6.8.0(eslint@8.53.0) + packages: /@aashutoshrathi/word-wrap@1.2.6: @@ -178,14 +236,72 @@ packages: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.19 + /@astrojs/check@0.3.1(typescript@5.2.2): + resolution: {integrity: sha512-3LjEUvh7Z4v9NPokaqKMXQ0DwnSXfmtcyAuWVTjNt9yzjv54SxykobV5CTOB3TIko+Rqg59ejamJBxaJN6fvkw==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + dependencies: + '@astrojs/language-server': 2.5.2(typescript@5.2.2) + chokidar: 3.5.3 + fast-glob: 3.3.1 + kleur: 4.1.5 + typescript: 5.2.2 + yargs: 17.7.2 + transitivePeerDependencies: + - prettier + - prettier-plugin-astro + dev: false + /@astrojs/compiler@2.1.0: resolution: {integrity: sha512-Mp+qrNhly+27bL/Zq8lGeUY+YrdoU0eDfIlAeGIPrzt0PnI/jGpvPUdCaugv4zbCrDkOUScFfcbeEiYumrdJnw==} + + /@astrojs/compiler@2.3.1: + resolution: {integrity: sha512-tlyFdyMzPtOQ5pr8eM0aUZmLAYKl+4liyE5JG6YV1HXSyI9RR7/bpyXCXEJDsYLDV5wYRBGxL5/xb9UVHstkMQ==} dev: false /@astrojs/internal-helpers@0.2.0: resolution: {integrity: sha512-NQ4ppp1CM0HNkKbJNM4saVSfmUYzGlRalF6wx7F6T/MYHYSWGuojY89/oFTy4t8VlOGUCUijlsVNNeziWaUo5g==} dev: false + /@astrojs/internal-helpers@0.2.1: + resolution: {integrity: sha512-06DD2ZnItMwUnH81LBLco3tWjcZ1lGU9rLCCBaeUCGYe9cI0wKyY2W3kDyoW1I6GmcWgt1fu+D1CTvz+FIKf8A==} + dev: false + + /@astrojs/language-server@2.5.2(typescript@5.2.2): + resolution: {integrity: sha512-O5SMzoQ65wSxA1KygreI9UJYmHpgt15bSYBxceHwqX7OCDM4Ek8mr6mZn45LGDtwM3dp1uup7kp8exfRPwIFbA==} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-astro: '>=0.11.0' + peerDependenciesMeta: + prettier: + optional: true + prettier-plugin-astro: + optional: true + dependencies: + '@astrojs/compiler': 2.3.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@volar/kit': 1.10.10(typescript@5.2.2) + '@volar/language-core': 1.10.10 + '@volar/language-server': 1.10.10 + '@volar/language-service': 1.10.10 + '@volar/source-map': 1.10.10 + '@volar/typescript': 1.10.10 + fast-glob: 3.3.1 + muggle-string: 0.3.1 + volar-service-css: 0.0.16(@volar/language-service@1.10.10) + volar-service-emmet: 0.0.16(@volar/language-service@1.10.10) + volar-service-html: 0.0.16(@volar/language-service@1.10.10) + volar-service-prettier: 0.0.16(@volar/language-service@1.10.10) + volar-service-typescript: 0.0.16(@volar/language-service@1.10.10)(@volar/typescript@1.10.10) + volar-service-typescript-twoslash-queries: 0.0.16(@volar/language-service@1.10.10) + vscode-html-languageservice: 5.1.1 + vscode-uri: 3.0.8 + transitivePeerDependencies: + - typescript + dev: false + /@astrojs/markdown-remark@3.2.0(astro@3.1.2): resolution: {integrity: sha512-jigyLfefUZPKgVmmraCkVpdUuFH1R3SrpgQO13axsgwLDBgkggaQpNR5Ag4O9PDualeBtbdt30aYSfvnBKx9Hg==} peerDependencies: @@ -210,6 +326,30 @@ packages: - supports-color dev: false + /@astrojs/markdown-remark@3.5.0(astro@3.5.4): + resolution: {integrity: sha512-q7vdIqzYhxpsfghg2YmkmSXCfp4w7lBTYP+SSHw89wVhC5Riltr3u8w2otBRxNLSByNi+ht/gGkFC23Shetytw==} + peerDependencies: + astro: ^3.0.0 + dependencies: + '@astrojs/prism': 3.0.0 + astro: 3.5.4(typescript@5.2.2) + github-slugger: 2.0.0 + import-meta-resolve: 3.0.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 6.1.1 + rehype-stringify: 9.0.4 + remark-gfm: 3.0.1 + remark-parse: 10.0.2 + remark-rehype: 10.1.0 + remark-smartypants: 2.0.0 + shikiji: 0.6.13 + unified: 10.1.2 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + dev: false + /@astrojs/mdx@1.1.0(astro@3.1.2): resolution: {integrity: sha512-rmLZBw3CUCkp+5blBJloV2EqJGRaJTraJygWMfCvrLcCA3vzhwzACnVQKdUDlts8EEr6V6+HXYVqi46AVEfobg==} engines: {node: '>=18.14.1'} @@ -236,6 +376,32 @@ packages: - supports-color dev: false + /@astrojs/mdx@1.1.5(astro@3.5.4): + resolution: {integrity: sha512-4bveyB1Lb1vWo2kdHJjQYoCytWlrIjAxHATHUTuYnBPmdPjsfy9wuCnb9rozwyyarDABx87CzG5gotBNYd+dVA==} + engines: {node: '>=18.14.1'} + peerDependencies: + astro: ^3.0.0 + dependencies: + '@astrojs/markdown-remark': 3.5.0(astro@3.5.4) + '@mdx-js/mdx': 2.3.0 + acorn: 8.10.0 + astro: 3.5.4(typescript@5.2.2) + es-module-lexer: 1.3.1 + estree-util-visit: 1.2.1 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + hast-util-to-html: 8.0.4 + kleur: 4.1.5 + rehype-raw: 6.1.1 + remark-gfm: 3.0.1 + remark-smartypants: 2.0.0 + source-map: 0.7.4 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + dev: false + /@astrojs/partytown@2.0.0: resolution: {integrity: sha512-WKyWs3TdxAG4b0+vkMWwDProatsikfvpjJQ+IIDEI7QvPBmdIbD9BDfuGgKIETnmkA1DxFj9G3jiGn2DGiJKzg==} dependencies: @@ -250,6 +416,20 @@ packages: prismjs: 1.29.0 dev: false + /@astrojs/rss@3.0.0: + resolution: {integrity: sha512-PMX8iqByk9gtOrusikten/oF5uHjOCZigL6RuXFBUu+xtdKQxXzfIohJ99V2haA4FJjVDyibDTGzXR81POBMxQ==} + dependencies: + fast-xml-parser: 4.3.2 + kleur: 4.1.5 + dev: false + + /@astrojs/sitemap@3.0.3: + resolution: {integrity: sha512-+GRKp1yho9dpHBcMcU6JpbL41k0yYZghOkNsMRb8QIRflbGHvd787tdv9oIZ5NJj0SqAuOlqp2UpqLkJXuAe2A==} + dependencies: + sitemap: 7.1.1 + zod: 3.22.4 + dev: false + /@astrojs/svelte@4.0.2(astro@3.1.2)(svelte@4.2.1)(typescript@5.2.2)(vite@4.4.9): resolution: {integrity: sha512-XB9Sexq+iW5aUpctDk6zuKHbWIAuPlAnZKbfgaS9VOaOUtx1t12crP9YoKEVcTifXYgoRuWWfeEAm2I8pYlLIQ==} engines: {node: '>=18.14.1'} @@ -282,6 +462,21 @@ packages: - ts-node dev: false + /@astrojs/tailwind@5.0.2(astro@3.5.4)(tailwindcss@3.3.3): + resolution: {integrity: sha512-oXqeqmBlkQmsltrsU9nEWeXOtrZIAHW8dcmX7BCdrjzPnU6dPwWzAwhddNQ9ihKiWwsLnlbwQZIo2CDigcZlIA==} + peerDependencies: + astro: ^3.2.4 + tailwindcss: ^3.0.24 + dependencies: + astro: 3.5.4(typescript@5.2.2) + autoprefixer: 10.4.16(postcss@8.4.30) + postcss: 8.4.30 + postcss-load-config: 4.0.1(postcss@8.4.30) + tailwindcss: 3.3.3 + transitivePeerDependencies: + - ts-node + dev: false + /@astrojs/telemetry@3.0.2: resolution: {integrity: sha512-ef+jqCkqopCzjGfsMsr+8p56Nj6F9ZzouWcWZt+dKsqbRccI3c8K3jfkLcdq4AyfFZtKBDB6N4ZuI68g33oiOg==} engines: {node: '>=18.14.1'} @@ -298,6 +493,21 @@ packages: - supports-color dev: false + /@astrojs/telemetry@3.0.4: + resolution: {integrity: sha512-A+0c7k/Xy293xx6odsYZuXiaHO0PL+bnDoXOc47sGDF5ffIKdKQGRPFl2NMlCF4L0NqN4Ynbgnaip+pPF0s7pQ==} + engines: {node: '>=18.14.1'} + dependencies: + ci-info: 3.8.0 + debug: 4.3.4 + dlv: 1.1.3 + dset: 3.1.2 + is-docker: 3.0.0 + is-wsl: 3.0.0 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/cli@7.22.15(@babel/core@7.22.20): resolution: {integrity: sha512-prtg5f6zCERIaECeTZzd2fMtVjlfjhUcO+fBLQ6DXXdq5FljN+excVitJ2nogsusdf31LeqkjAfXZ7Xq+HmN8g==} engines: {node: '>=6.9.0'} @@ -1505,6 +1715,12 @@ packages: dependencies: regenerator-runtime: 0.14.0 + /@babel/runtime@7.23.2: + resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + /@babel/template@7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} @@ -1763,6 +1979,22 @@ packages: tslib: 2.6.2 dev: false + /@emmetio/abbreviation@2.3.3: + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + dependencies: + '@emmetio/scanner': 1.0.4 + dev: false + + /@emmetio/css-abbreviation@2.1.8: + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + dependencies: + '@emmetio/scanner': 1.0.4 + dev: false + + /@emmetio/scanner@1.0.4: + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + dev: false + /@emotion/is-prop-valid@0.8.8: resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} requiresBuild: true @@ -2152,6 +2384,16 @@ packages: eslint: 8.50.0 eslint-visitor-keys: 3.4.3 + /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.53.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@eslint-community/regexpp@4.8.1: resolution: {integrity: sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -2172,10 +2414,32 @@ packages: transitivePeerDependencies: - supports-color + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.22.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /@eslint/js@8.50.0: resolution: {integrity: sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@eslint/js@8.53.0: + resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@floating-ui/core@1.5.0: resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==} dependencies: @@ -2214,6 +2478,17 @@ packages: transitivePeerDependencies: - supports-color + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} @@ -2221,6 +2496,10 @@ packages: /@humanwhocodes/object-schema@1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + dev: true + /@iconify/types@2.0.0: resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} dev: false @@ -2384,7 +2663,6 @@ packages: open: 9.1.0 picocolors: 1.0.0 tslib: 2.6.2 - dev: false /@portabletext/svelte@2.0.0(svelte@4.2.1): resolution: {integrity: sha512-fyA2BFC4c/16PJxu1QpI8PC1W32TJjEPHRh69aW19OFYv5m4+7Gd4J4+Oq9C1FTKycNfcUTNaEik07KqhrLPfQ==} @@ -2407,6 +2685,10 @@ packages: engines: {node: ^14.13.1 || >=16.0.0 || >=18.0.0} dev: false + /@radix-ui/colors@3.0.0: + resolution: {integrity: sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==} + dev: false + /@radix-ui/colors@3.0.0-rc.5: resolution: {integrity: sha512-SHAmQwvoRFuX1Kqo0ZwOwp/24GQqNMUaS3tWcR5RgDaC1ZpUKQfT+IbdzGm63OVzQhpyA4PRcjimM2UMa9SYTw==} dev: true @@ -2872,7 +3154,7 @@ packages: /@types/acorn@4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 dev: false /@types/babel__core@7.20.2: @@ -2919,7 +3201,7 @@ packages: /@types/estree-jsx@1.0.0: resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 dev: false /@types/estree@1.0.1: @@ -2951,6 +3233,12 @@ packages: '@types/unist': 2.0.8 dev: false + /@types/hast@3.0.3: + resolution: {integrity: sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==} + dependencies: + '@types/unist': 3.0.0 + dev: false + /@types/is-hotkey@0.1.7: resolution: {integrity: sha512-yB5C7zcOM7idwYZZ1wKQ3pTfjA9BbvFqRWvKB46GFddxnJtHwi/b9y84ykQtxQPg5qhdpg4Q/kWU3EGoCTmLzQ==} dev: false @@ -3005,6 +3293,10 @@ packages: '@types/unist': 2.0.8 dev: false + /@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + dev: false + /@types/node@20.6.3: resolution: {integrity: sha512-HksnYH4Ljr4VQgEy2lTStbCKv/P590tmPe5HqOnv9Gprffgv5WXAY+Y5Gqniu0GGqeTCUdBnzC3QSrzPkBkAMA==} dev: false @@ -3049,6 +3341,12 @@ packages: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} dev: false + /@types/sax@1.2.7: + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + dependencies: + '@types/node': 20.6.3 + dev: false + /@types/scheduler@0.16.3: resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} dev: false @@ -3120,6 +3418,27 @@ packages: - supports-color dev: true + /@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.11.0 + debug: 4.3.4 + eslint: 8.53.0 + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/parser@6.7.2(eslint@8.50.0)(typescript@5.2.2): resolution: {integrity: sha512-KA3E4ox0ws+SPyxQf9iSI25R6b4Ne78ORhNHeVKrPQnoYsb9UhieoiRoJgrzgEeKGOXhcY1i8YtOeCHHTDa6Fw==} engines: {node: ^16.0.0 || >=18.0.0} @@ -3147,7 +3466,14 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - dev: false + + /@typescript-eslint/scope-manager@6.11.0: + resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/visitor-keys': 6.11.0 + dev: true /@typescript-eslint/scope-manager@6.7.2: resolution: {integrity: sha512-bgi6plgyZjEqapr7u2mhxGR6E8WCzKNUFWNh6fkpVe9+yzRZeYtDTbsIBzKbcxI+r1qVWt6VIoMSNZ4r2A+6Yw==} @@ -3180,13 +3506,38 @@ packages: /@typescript-eslint/types@5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false + + /@typescript-eslint/types@6.11.0: + resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true /@typescript-eslint/types@6.7.2: resolution: {integrity: sha512-flJYwMYgnUNDAN9/GAI3l8+wTmvTYdv64fcH8aoJK76Y+1FCZ08RtI5zDerM/FYT5DMkAc+19E4aLmd5KqdFyg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true + /@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2): + resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/visitor-keys': 6.11.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/typescript-estree@6.7.2(typescript@5.2.2): resolution: {integrity: sha512-kiJKVMLkoSciGyFU0TOY0fRxnp9qq1AzVOHNeN1+B9erKFCJ4Z8WdjAkKQPP+b1pWStGFqezMLltxO+308dJTQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -3233,7 +3584,14 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - dev: false + + /@typescript-eslint/visitor-keys@6.11.0: + resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.11.0 + eslint-visitor-keys: 3.4.3 + dev: true /@typescript-eslint/visitor-keys@6.7.2: resolution: {integrity: sha512-uVw9VIMFBUTz8rIeaUT3fFe8xIUx8r4ywAdlQv1ifH+6acn/XF8Y6rwJ7XNmkNMDrTW+7+vxFFPIF40nJCVsMQ==} @@ -3302,6 +3660,9 @@ packages: - '@codemirror/search' dev: false + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + /@vitejs/plugin-react@4.0.4(vite@4.4.9): resolution: {integrity: sha512-7wU921ABnNYkETiMaZy7XqpueMnpu5VxvVps13MjmCo+utBdD79sZzrApHawHtVX66cCJQQTXFcjH0y9dSUK8g==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3317,6 +3678,76 @@ packages: - supports-color dev: false + /@volar/kit@1.10.10(typescript@5.2.2): + resolution: {integrity: sha512-V2SyUPCPUhueqH8j5t48LJ0QsjExGSXzTv/XOdkUHV7hJ/ekyRGFqKxcfBtMq/nK6Tgu2G1ba+6u0d7e6wKcQw==} + peerDependencies: + typescript: '*' + dependencies: + '@volar/language-service': 1.10.10 + typesafe-path: 0.2.2 + typescript: 5.2.2 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: false + + /@volar/language-core@1.10.10: + resolution: {integrity: sha512-nsV1o3AZ5n5jaEAObrS3MWLBWaGwUj/vAsc15FVNIv+DbpizQRISg9wzygsHBr56ELRH8r4K75vkYNMtsSNNWw==} + dependencies: + '@volar/source-map': 1.10.10 + dev: false + + /@volar/language-server@1.10.10: + resolution: {integrity: sha512-F2PRBU+CRjT7L9qe8bjof/uz/LbAXVmgwNU2gOSX2y1bUl3E8DHmD0dB6pwIVublvkx+Ivg/0r3Z6oyxfPPruQ==} + dependencies: + '@volar/language-core': 1.10.10 + '@volar/language-service': 1.10.10 + '@volar/typescript': 1.10.10 + '@vscode/l10n': 0.0.16 + path-browserify: 1.0.1 + request-light: 0.7.0 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: false + + /@volar/language-service@1.10.10: + resolution: {integrity: sha512-P4fiPWDI6fLGO6BghlksCVHs1nr9gvWAMDyma3Bca4aowxXusxjUVTsnJq0EVorIN5uIr1Xel4B/tNdXt/IKyw==} + dependencies: + '@volar/language-core': 1.10.10 + '@volar/source-map': 1.10.10 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: false + + /@volar/source-map@1.10.10: + resolution: {integrity: sha512-GVKjLnifV4voJ9F0vhP56p4+F3WGf+gXlRtjFZsv6v3WxBTWU3ZVeaRaEHJmWrcv5LXmoYYpk/SC25BKemPRkg==} + dependencies: + muggle-string: 0.3.1 + dev: false + + /@volar/typescript@1.10.10: + resolution: {integrity: sha512-4a2r5bdUub2m+mYVnLu2wt59fuoYWe7nf0uXtGHU8QQ5LDNfzAR0wK7NgDiQ9rcl2WT3fxT2AA9AylAwFtj50A==} + dependencies: + '@volar/language-core': 1.10.10 + path-browserify: 1.0.1 + dev: false + + /@vscode/emmet-helper@2.9.2: + resolution: {integrity: sha512-MaGuyW+fa13q3aYsluKqclmh62Hgp0BpKIqS66fCxfOaBcVQ1OnMQxRRgQUYnCkxFISAQlkJ0qWWPyXjro1Qrg==} + dependencies: + emmet: 2.4.6 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 2.1.2 + dev: false + + /@vscode/l10n@0.0.16: + resolution: {integrity: sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==} + dev: false + /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} dev: false @@ -3559,6 +3990,10 @@ packages: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} dev: true + /ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + dev: true + /astring@1.8.6: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} hasBin: true @@ -3580,6 +4015,22 @@ packages: - supports-color dev: false + /astro-eslint-parser@0.16.0: + resolution: {integrity: sha512-k9ASvY8pa6qttM+fvNJCILxxjftfNg/ou5cjd25SVHsc7moplezGGM9fgMUyf24SRYt8ShO603oHRDn2KqwxMg==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@astrojs/compiler': 2.1.0 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + astrojs-compiler-sync: 0.3.3(@astrojs/compiler@2.1.0) + debug: 4.3.4 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /astro-icon@0.8.1: resolution: {integrity: sha512-APk+fbFnoyGdIVSPFrdrOW9YBK96/1fYuVe7ULTGW92+z00RKB8GfLJiUvzNVXUAX2rZJCFmruGVF4rrhcTYsg==} dependencies: @@ -3666,6 +4117,83 @@ packages: - terser dev: false + /astro@3.5.4(typescript@5.2.2): + resolution: {integrity: sha512-tyOd2o9KDz9hDaHmYvnY7BbRxeQ1yDxoOW4AVlxAnmHOK6068k6Bivr/C4Wlc6ON40lZ/qIDG9gfNkiEhMEVow==} + engines: {node: '>=18.14.1', npm: '>=6.14.0'} + hasBin: true + dependencies: + '@astrojs/compiler': 2.3.1 + '@astrojs/internal-helpers': 0.2.1 + '@astrojs/markdown-remark': 3.5.0(astro@3.5.4) + '@astrojs/telemetry': 3.0.4 + '@babel/core': 7.22.20 + '@babel/generator': 7.22.15 + '@babel/parser': 7.22.16 + '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.22.20) + '@babel/traverse': 7.22.20 + '@babel/types': 7.22.19 + '@types/babel__core': 7.20.2 + acorn: 8.10.0 + boxen: 7.1.1 + chokidar: 3.5.3 + ci-info: 3.8.0 + clsx: 2.0.0 + common-ancestor-path: 1.0.1 + cookie: 0.5.0 + debug: 4.3.4 + deterministic-object-hash: 1.3.1 + devalue: 4.3.2 + diff: 5.1.0 + es-module-lexer: 1.3.1 + esbuild: 0.19.3 + estree-walker: 3.0.3 + execa: 8.0.1 + fast-glob: 3.3.1 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + html-escaper: 3.0.3 + http-cache-semantics: 4.1.1 + js-yaml: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.3 + mdast-util-to-hast: 12.3.0 + mime: 3.0.0 + ora: 7.0.1 + p-limit: 4.0.0 + p-queue: 7.4.1 + path-to-regexp: 6.2.1 + preferred-pm: 3.1.2 + probe-image-size: 7.2.3 + prompts: 2.4.2 + rehype: 12.0.1 + resolve: 1.22.6 + semver: 7.5.4 + server-destroy: 1.0.1 + shikiji: 0.6.13 + string-width: 6.1.0 + strip-ansi: 7.1.0 + tsconfck: 3.0.0(typescript@5.2.2) + unist-util-visit: 4.1.2 + vfile: 5.3.7 + vite: 4.4.9 + vitefu: 0.2.4(vite@4.4.9) + which-pm: 2.1.1 + yargs-parser: 21.1.1 + zod: 3.22.4 + optionalDependencies: + sharp: 0.32.6 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + - typescript + dev: false + /astrojs-compiler-sync@0.3.3(@astrojs/compiler@2.1.0): resolution: {integrity: sha512-LbhchWgsvjvRBb5n5ez8/Q/f9ZKViuox27VxMDOdTUm8MRv9U7phzOiLue5KluqTmC0z1LId4gY2SekvoDrkuw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3674,7 +4202,6 @@ packages: dependencies: '@astrojs/compiler': 2.1.0 synckit: 0.8.5 - dev: false /async@3.2.4: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} @@ -3711,6 +4238,11 @@ packages: engines: {node: '>= 0.4'} dev: true + /axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + engines: {node: '>=4'} + dev: true + /axe-core@4.8.2: resolution: {integrity: sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==} engines: {node: '>=4'} @@ -3723,6 +4255,7 @@ packages: /b4a@1.6.4: resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} + requiresBuild: true dev: false /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.22.20): @@ -3772,7 +4305,6 @@ packages: /big-integer@1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} engines: {node: '>=0.6'} - dev: false /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} @@ -3780,6 +4312,7 @@ packages: /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + requiresBuild: true dependencies: buffer: 5.7.1 inherits: 2.0.4 @@ -3817,7 +4350,6 @@ packages: engines: {node: '>= 5.10.0'} dependencies: big-integer: 1.6.51 - dev: false /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -3863,6 +4395,7 @@ packages: /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + requiresBuild: true dependencies: base64-js: 1.5.1 ieee754: 1.2.1 @@ -3880,7 +4413,6 @@ packages: engines: {node: '>=12'} dependencies: run-applescript: 5.0.0 - dev: false /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} @@ -3984,6 +4516,7 @@ packages: /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + requiresBuild: true dev: false /ci-info@3.8.0: @@ -4079,6 +4612,7 @@ packages: /color-string@1.9.1: resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + requiresBuild: true dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 @@ -4091,6 +4625,7 @@ packages: /color@4.2.3: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + requiresBuild: true dependencies: color-convert: 2.0.1 color-string: 1.9.1 @@ -4414,6 +4949,7 @@ packages: /decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} + requiresBuild: true dependencies: mimic-response: 3.1.0 dev: false @@ -4431,6 +4967,7 @@ packages: /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} + requiresBuild: true dev: false /deep-is@0.1.4: @@ -4447,7 +4984,6 @@ packages: dependencies: bplist-parser: 0.2.0 untildify: 4.0.0 - dev: false /default-browser@4.0.0: resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} @@ -4457,7 +4993,6 @@ packages: default-browser-id: 3.0.0 execa: 7.2.0 titleize: 3.0.0 - dev: false /define-data-property@1.1.0: resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} @@ -4476,7 +5011,6 @@ packages: /define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} - dev: false /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} @@ -4499,16 +5033,27 @@ packages: /detect-libc@2.0.2: resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} engines: {node: '>=8'} + requiresBuild: true dev: false /detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} dev: false + /deterministic-object-hash@1.3.1: + resolution: {integrity: sha512-kQDIieBUreEgY+akq0N7o4FzZCr27dPG1xr3wq267vPwDlSXQ3UMcBXHqTGUBaM/5WDS1jwTYjxRhUzHeuiAvw==} + dev: false + /devalue@4.3.2: resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} dev: false + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 + dev: false + /didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -4634,6 +5179,13 @@ packages: /electron-to-chromium@1.4.528: resolution: {integrity: sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA==} + /emmet@2.4.6: + resolution: {integrity: sha512-dJfbdY/hfeTyf/Ef7Y7ubLYzkBvPQ912wPaeVYpAxvFxkEBf/+hJu4H6vhAvFN6HlxqedlfVn2x1S44FfQ97pg==} + dependencies: + '@emmetio/abbreviation': 2.3.3 + '@emmetio/css-abbreviation': 2.1.8 + dev: false + /emoji-regex@10.2.1: resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==} dev: false @@ -4647,6 +5199,7 @@ packages: /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + requiresBuild: true dependencies: once: 1.4.0 dev: false @@ -4928,6 +5481,23 @@ packages: - supports-color dev: false + /eslint-plugin-astro@0.29.1(eslint@8.53.0): + resolution: {integrity: sha512-ffuUc7zFz8HavaAVaS5iRUzWqBf3/YbrFWUhx0GxXW3gVtnbri5UyvkN8EMOkZWkNXG1zqD2y9dlEsAezhbC0w==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@jridgewell/sourcemap-codec': 1.4.15 + '@typescript-eslint/types': 5.62.0 + astro-eslint-parser: 0.16.0 + eslint: 8.53.0 + postcss: 8.4.30 + postcss-selector-parser: 6.0.13 + transitivePeerDependencies: + - supports-color + dev: true + /eslint-plugin-import@2.28.1(eslint@8.50.0): resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} @@ -4987,6 +5557,31 @@ packages: semver: 6.3.1 dev: true + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.53.0): + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.23.2 + aria-query: 5.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.7.0 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.15 + eslint: 8.53.0 + hasown: 2.0.0 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + dev: true + /eslint-plugin-react-hooks@4.6.0(eslint@8.50.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} @@ -5099,6 +5694,53 @@ packages: transitivePeerDependencies: - supports-color + /eslint@8.53.0: + resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/regexpp': 4.8.1 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.53.0 + '@humanwhocodes/config-array': 0.11.13 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.22.0 + graphemer: 1.4.0 + ignore: 5.2.4 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5137,7 +5779,7 @@ packages: /estree-util-attach-comments@2.1.1: resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 dev: false /estree-util-build-jsx@2.2.2: @@ -5170,7 +5812,7 @@ packages: /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 dev: false /esutils@2.0.3: @@ -5181,6 +5823,10 @@ packages: resolution: {integrity: sha512-4IJSItgS/41IxN5UVAVuAyczwZF7ZIEsM1XAoUzIHA6A+xzusEZUutdXz2Nr+MQPLxfTiCvqE79/C8HT8fKFvA==} dev: false + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: false + /eventsource@2.0.2: resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==} engines: {node: '>=12.0.0'} @@ -5214,7 +5860,6 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 - dev: false /execa@7.2.0: resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} @@ -5229,7 +5874,6 @@ packages: onetime: 6.0.0 signal-exit: 3.0.7 strip-final-newline: 3.0.0 - dev: false /execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} @@ -5253,6 +5897,7 @@ packages: /expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} + requiresBuild: true dev: false /extend-shallow@2.0.1: @@ -5271,6 +5916,7 @@ packages: /fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + requiresBuild: true dev: false /fast-glob@3.3.1: @@ -5289,6 +5935,13 @@ packages: /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + /fast-xml-parser@4.3.2: + resolution: {integrity: sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==} + hasBin: true + dependencies: + strnum: 1.0.5 + dev: false + /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: @@ -5440,6 +6093,7 @@ packages: /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + requiresBuild: true dev: false /fs-readdir-recursive@1.1.0: @@ -5467,6 +6121,10 @@ packages: /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} @@ -5539,7 +6197,6 @@ packages: /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - dev: false /get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} @@ -5569,6 +6226,7 @@ packages: /github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + requiresBuild: true dev: false /github-slugger@2.0.0: @@ -5750,6 +6408,13 @@ packages: resolution: {integrity: sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==} dev: false + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /hast-util-from-parse5@7.1.2: resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} dependencies: @@ -5757,8 +6422,21 @@ packages: '@types/unist': 2.0.8 hastscript: 7.2.0 property-information: 6.3.0 - vfile: 5.3.7 - vfile-location: 4.1.0 + vfile: 5.3.7 + vfile-location: 4.1.0 + web-namespaces: 2.0.1 + dev: false + + /hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + dependencies: + '@types/hast': 3.0.3 + '@types/unist': 3.0.0 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.3.0 + vfile: 6.0.1 + vfile-location: 5.0.2 web-namespaces: 2.0.1 dev: false @@ -5772,6 +6450,12 @@ packages: '@types/hast': 2.3.6 dev: false + /hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + dependencies: + '@types/hast': 3.0.3 + dev: false + /hast-util-raw@7.2.3: resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} dependencies: @@ -5788,10 +6472,28 @@ packages: zwitch: 2.0.4 dev: false + /hast-util-raw@9.0.1: + resolution: {integrity: sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==} + dependencies: + '@types/hast': 3.0.3 + '@types/unist': 3.0.0 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.0.2 + parse5: 7.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + /hast-util-to-estree@2.3.3: resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 '@types/estree-jsx': 1.0.0 '@types/hast': 2.3.6 '@types/unist': 2.0.8 @@ -5826,6 +6528,23 @@ packages: zwitch: 2.0.4 dev: false + /hast-util-to-html@9.0.0: + resolution: {integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==} + dependencies: + '@types/hast': 3.0.3 + '@types/unist': 3.0.0 + 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.3.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.3 + zwitch: 2.0.4 + dev: false + /hast-util-to-parse5@7.1.0: resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} dependencies: @@ -5837,10 +6556,28 @@ packages: zwitch: 2.0.4 dev: false + /hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + dependencies: + '@types/hast': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.3.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + /hast-util-whitespace@2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} dev: false + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + dependencies: + '@types/hast': 3.0.3 + dev: false + /hastscript@6.0.0: resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} dependencies: @@ -5861,6 +6598,16 @@ packages: space-separated-tokens: 2.0.2 dev: false + /hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + dependencies: + '@types/hast': 3.0.3 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.3.0 + space-separated-tokens: 2.0.2 + dev: false + /history@5.3.0: resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} dependencies: @@ -5886,6 +6633,10 @@ packages: resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} dev: false + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + dev: false + /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: false @@ -5914,12 +6665,10 @@ packages: /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - dev: false /human-signals@4.3.1: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} - dev: false /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} @@ -5988,6 +6737,7 @@ packages: /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + requiresBuild: true dev: false /inline-style-parser@0.1.1: @@ -6046,6 +6796,7 @@ packages: /is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + requiresBuild: true dev: false /is-async-function@2.0.0: @@ -6113,13 +6864,11 @@ packages: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true - dev: false /is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true - dev: false /is-extendable@0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} @@ -6177,7 +6926,6 @@ packages: hasBin: true dependencies: is-docker: 3.0.0 - dev: false /is-interactive@2.0.0: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} @@ -6229,7 +6977,7 @@ packages: /is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 dev: false /is-regex@1.1.4: @@ -6261,7 +7009,6 @@ packages: /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} @@ -6320,7 +7067,6 @@ packages: engines: {node: '>=8'} dependencies: is-docker: 2.2.1 - dev: false /is-wsl@3.0.0: resolution: {integrity: sha512-TQ7xXW/fTBaz/HhGSV779AC99ocpvb9qJPuPwyIea+F+Z+htcQ1wouAA0xEQaa4saVqyP8mwkoYp5efeM/4Gbg==} @@ -6465,6 +7211,10 @@ packages: engines: {node: '>=6'} hasBin: true + /jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + dev: false + /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: false @@ -6509,6 +7259,13 @@ packages: language-subtag-registry: 0.3.22 dev: true + /language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + dependencies: + language-subtag-registry: 0.3.22 + dev: true + /lazystream@1.0.1: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} @@ -6854,6 +7611,19 @@ packages: unist-util-visit: 4.1.2 dev: false + /mdast-util-to-hast@13.0.2: + resolution: {integrity: sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==} + dependencies: + '@types/hast': 3.0.3 + '@types/mdast': 4.0.0 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + dev: false + /mdast-util-to-markdown@1.5.0: resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} dependencies: @@ -6898,7 +7668,6 @@ packages: /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: false /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -7000,7 +7769,7 @@ packages: /micromark-extension-mdx-expression@1.0.8: resolution: {integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 micromark-factory-mdx-expression: 1.0.9 micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 @@ -7014,7 +7783,7 @@ packages: resolution: {integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==} dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 estree-util-is-identifier-name: 2.1.0 micromark-factory-mdx-expression: 1.0.9 micromark-factory-space: 1.1.0 @@ -7034,7 +7803,7 @@ packages: /micromark-extension-mdxjs-esm@1.0.5: resolution: {integrity: sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 micromark-core-commonmark: 1.1.0 micromark-util-character: 1.2.0 micromark-util-events-to-acorn: 1.2.3 @@ -7078,7 +7847,7 @@ packages: /micromark-factory-mdx-expression@1.0.9: resolution: {integrity: sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 micromark-util-character: 1.2.0 micromark-util-events-to-acorn: 1.2.3 micromark-util-symbol: 1.1.0 @@ -7120,6 +7889,13 @@ packages: micromark-util-types: 1.1.0 dev: false + /micromark-util-character@2.0.1: + resolution: {integrity: sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-util-chunked@1.1.0: resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} dependencies: @@ -7160,11 +7936,15 @@ packages: resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} dev: false + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + dev: false + /micromark-util-events-to-acorn@1.2.3: resolution: {integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==} dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 '@types/unist': 2.0.8 estree-util-visit: 1.2.1 micromark-util-symbol: 1.1.0 @@ -7197,6 +7977,14 @@ packages: micromark-util-symbol: 1.1.0 dev: false + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + dependencies: + micromark-util-character: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + dev: false + /micromark-util-subtokenize@1.1.0: resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} dependencies: @@ -7210,10 +7998,18 @@ packages: resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} dev: false + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + dev: false + /micromark-util-types@1.1.0: resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} dev: false + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + dev: false + /micromark@3.2.0: resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} dependencies: @@ -7266,16 +8062,15 @@ packages: /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - dev: false /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - dev: false /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} + requiresBuild: true /min-document@2.19.0: resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} @@ -7297,6 +8092,7 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + requiresBuild: true /mississippi@4.0.0: resolution: {integrity: sha512-7PujJ3Te6GGg9lG1nfw5jYCPV6/BsoAT0nCQwb6w+ROuromXYxI6jc/CQSlD82Z/OUMSBX1SoaqhTE+vXiLQzQ==} @@ -7316,6 +8112,7 @@ packages: /mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + requiresBuild: true dev: false /module-alias@2.2.3: @@ -7346,6 +8143,10 @@ packages: /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + /muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + dev: false + /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: @@ -7364,6 +8165,7 @@ packages: /napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + requiresBuild: true dev: false /natural-compare@1.4.0: @@ -7397,12 +8199,14 @@ packages: /node-abi@3.47.0: resolution: {integrity: sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==} engines: {node: '>=10'} + requiresBuild: true dependencies: semver: 7.5.4 dev: false /node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + requiresBuild: true dev: false /node-domexception@1.0.0: @@ -7452,14 +8256,12 @@ packages: engines: {node: '>=8'} dependencies: path-key: 3.1.1 - dev: false /npm-run-path@5.1.0: resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 - dev: false /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -7564,14 +8366,12 @@ packages: engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 - dev: false /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 - dev: false /open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} @@ -7590,7 +8390,6 @@ packages: define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 is-wsl: 2.2.0 - dev: false /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} @@ -7670,6 +8469,19 @@ packages: engines: {node: '>=4'} dev: false + /p-queue@7.4.1: + resolution: {integrity: sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==} + engines: {node: '>=12'} + dependencies: + eventemitter3: 5.0.1 + p-timeout: 5.1.0 + dev: false + + /p-timeout@5.1.0: + resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} + engines: {node: '>=12'} + dev: false + /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -7760,6 +8572,10 @@ packages: tslib: 2.6.2 dev: false + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: false + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -7775,7 +8591,6 @@ packages: /path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - dev: false /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -7803,7 +8618,7 @@ packages: /periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 estree-walker: 3.0.3 is-reference: 3.0.2 dev: false @@ -7928,6 +8743,7 @@ packages: resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} engines: {node: '>=10'} hasBin: true + requiresBuild: true dependencies: detect-libc: 2.0.2 expand-template: 2.0.3 @@ -8046,6 +8862,7 @@ packages: /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + requiresBuild: true dependencies: end-of-stream: 1.4.4 once: 1.4.0 @@ -8072,6 +8889,7 @@ packages: /queue-tick@1.0.1: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + requiresBuild: true dev: false /raf@3.4.1: @@ -8083,6 +8901,7 @@ packages: /rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + requiresBuild: true dependencies: deep-extend: 0.6.0 ini: 1.3.8 @@ -8421,6 +9240,10 @@ packages: unist-util-visit: 4.1.2 dev: false + /request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + dev: false + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -8528,7 +9351,6 @@ packages: engines: {node: '>=12'} dependencies: execa: 5.1.1 - dev: false /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -8857,6 +9679,12 @@ packages: vscode-textmate: 8.0.0 dev: false + /shikiji@0.6.13: + resolution: {integrity: sha512-4T7X39csvhT0p7GDnq9vysWddf2b6BeioiN3Ymhnt3xcy9tXmDcnsEFVxX18Z4YcQgEE/w48dLJ4pPPUcG9KkA==} + dependencies: + hast-util-to-html: 9.0.0 + dev: false + /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -8867,7 +9695,6 @@ packages: /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: false /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} @@ -8876,10 +9703,12 @@ packages: /simple-concat@1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + requiresBuild: true dev: false /simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + requiresBuild: true dependencies: decompress-response: 6.0.0 once: 1.4.0 @@ -8888,6 +9717,7 @@ packages: /simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + requiresBuild: true dependencies: is-arrayish: 0.3.2 dev: false @@ -8900,6 +9730,17 @@ packages: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: false + /sitemap@7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.2.4 + dev: false + /slash@2.0.0: resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} engines: {node: '>=6'} @@ -9038,6 +9879,7 @@ packages: /streamx@2.15.1: resolution: {integrity: sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==} + requiresBuild: true dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 @@ -9161,22 +10003,25 @@ packages: /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} - dev: false /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} - dev: false /strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} + requiresBuild: true dev: false /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + dev: false + /style-mod@4.1.0: resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==} dev: false @@ -9320,6 +10165,11 @@ packages: dependencies: '@pkgr/utils': 2.4.2 tslib: 2.6.2 + + /tailwind-merge@2.0.0: + resolution: {integrity: sha512-WO8qghn9yhsldLSg80au+3/gY9E4hFxIvQ3qOmlpXnqpDKoMruKfi/56BbbMg6fHTQJ9QD3cc79PoWqlaQE4rw==} + dependencies: + '@babel/runtime': 7.23.2 dev: false /tailwindcss@3.3.3: @@ -9354,6 +10204,7 @@ packages: /tar-fs@2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + requiresBuild: true dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 @@ -9363,6 +10214,7 @@ packages: /tar-fs@3.0.4: resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} + requiresBuild: true dependencies: mkdirp-classic: 0.5.3 pump: 3.0.0 @@ -9372,6 +10224,7 @@ packages: /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} + requiresBuild: true dependencies: bl: 4.1.0 end-of-stream: 1.4.4 @@ -9382,6 +10235,7 @@ packages: /tar-stream@3.1.6: resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==} + requiresBuild: true dependencies: b4a: 1.6.4 fast-fifo: 1.3.2 @@ -9426,7 +10280,6 @@ packages: /titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} engines: {node: '>=12'} - dev: false /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} @@ -9479,6 +10332,19 @@ packages: /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + /tsconfck@3.0.0(typescript@5.2.2): + resolution: {integrity: sha512-w3wnsIrJNi7avf4Zb0VjOoodoO0woEqGgZGQm+LHH9przdUI+XDKsWAXwxHA1DaRTjeuZNcregSzr7RaA8zG9A==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.2.2 + dev: false + /tsconfig-paths@3.14.2: resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} dependencies: @@ -9510,10 +10376,10 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: false /tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + requiresBuild: true dependencies: safe-buffer: 5.2.1 @@ -9655,6 +10521,16 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: false + /typesafe-path@0.2.2: + resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} + dev: false + + /typescript-auto-import-cache@0.3.0: + resolution: {integrity: sha512-Rq6/q4O9iyqUdjvOoyas7x/Qf9nWUMeqpP3YeTaLA+uECgfy5wOhfOS+SW/+fZ/uI/ZcKaf+2/ZhFzXh8xfofQ==} + dependencies: + semver: 7.5.4 + dev: false + /typescript@5.2.2: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} @@ -9767,6 +10643,12 @@ packages: '@types/unist': 2.0.8 dev: false + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + dependencies: + '@types/unist': 3.0.0 + dev: false + /unist-util-remove-position@4.0.2: resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} dependencies: @@ -9780,6 +10662,12 @@ packages: '@types/unist': 2.0.8 dev: false + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.0 + dev: false + /unist-util-visit-children@2.0.2: resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} dependencies: @@ -9831,7 +10719,6 @@ packages: /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} - dev: false /update-browserslist-db@1.0.13(browserslist@4.21.11): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} @@ -9941,6 +10828,13 @@ packages: vfile: 5.3.7 dev: false + /vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + dependencies: + '@types/unist': 3.0.0 + vfile: 6.0.1 + dev: false + /vfile-message@3.1.4: resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} dependencies: @@ -9948,6 +10842,13 @@ packages: unist-util-stringify-position: 3.0.3 dev: false + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + dependencies: + '@types/unist': 3.0.0 + unist-util-stringify-position: 4.0.0 + dev: false + /vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} dependencies: @@ -9957,6 +10858,14 @@ packages: vfile-message: 3.1.4 dev: false + /vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + dependencies: + '@types/unist': 3.0.0 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + dev: false + /vite@4.4.9: resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -10002,6 +10911,138 @@ packages: vite: 4.4.9 dev: false + /volar-service-css@0.0.16(@volar/language-service@1.10.10): + resolution: {integrity: sha512-gK/XD35t/P3SQrUuS8LMlCnE2ItIk+kXI6gPvBYl1NZ7O+tLH8rUWXA32YgpwNoITxYrm/G1seaq08zs4aiPvg==} + peerDependencies: + '@volar/language-service': ~1.10.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 1.10.10 + vscode-css-languageservice: 6.2.10 + vscode-uri: 3.0.8 + dev: false + + /volar-service-emmet@0.0.16(@volar/language-service@1.10.10): + resolution: {integrity: sha512-8sWWywzVJOD+PWDArOXDWbiRlM7+peydFhXJT71i4X1WPW32RyPxn6FypvciO+amqpfZP2rXfB9eibIJ+EofSQ==} + peerDependencies: + '@volar/language-service': ~1.10.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 1.10.10 + '@vscode/emmet-helper': 2.9.2 + volar-service-html: 0.0.16(@volar/language-service@1.10.10) + dev: false + + /volar-service-html@0.0.16(@volar/language-service@1.10.10): + resolution: {integrity: sha512-/oEXXgry++1CnTXQBUNf9B8MZfTlYZuJfZA7Zx9MN7WS4ZPxk3BFOdal/cXH6RNR2ruNEYr5QTW9rsqtoUscag==} + peerDependencies: + '@volar/language-service': ~1.10.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 1.10.10 + vscode-html-languageservice: 5.1.1 + vscode-uri: 3.0.8 + dev: false + + /volar-service-prettier@0.0.16(@volar/language-service@1.10.10): + resolution: {integrity: sha512-Kj2ZdwJGEvfYbsHW8Sjrew/7EB4PgRoas4f8yAJzUUVxIC/kvhUwLDxQc8+N2IibomN76asJGWe+i6VZZvgIkw==} + peerDependencies: + '@volar/language-service': ~1.10.0 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true + dependencies: + '@volar/language-service': 1.10.10 + dev: false + + /volar-service-typescript-twoslash-queries@0.0.16(@volar/language-service@1.10.10): + resolution: {integrity: sha512-0gPrkDTD2bMj2AnSNykOKhfmPnBFE2LS1lF3LWA7qu1ChRnJF0sodwCCbbeNYJ9+yth956ApoU1BVQ8UrMg+yw==} + peerDependencies: + '@volar/language-service': ~1.10.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 1.10.10 + dev: false + + /volar-service-typescript@0.0.16(@volar/language-service@1.10.10)(@volar/typescript@1.10.10): + resolution: {integrity: sha512-k/qFKM2oxs/3fhbr/vcBSHnCLZ1HN3Aeh+bGvV9Lc9qIhrNyCVsDFOUJN1Qp4dI72+Y+eFSIDCLHmFEZdsP2EA==} + peerDependencies: + '@volar/language-service': ~1.10.0 + '@volar/typescript': ~1.10.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 1.10.10 + '@volar/typescript': 1.10.10 + path-browserify: 1.0.1 + semver: 7.5.4 + typescript-auto-import-cache: 0.3.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + dev: false + + /vscode-css-languageservice@6.2.10: + resolution: {integrity: sha512-sYUZPku4mQ06AWGCbMyjv2tdR6juBW6hTbVPFwbJvNVzdtEfBioQOgkdXg7yMJNWnXkvWSU1FL2kb4Vxu5Cdyw==} + dependencies: + '@vscode/l10n': 0.0.16 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + dev: false + + /vscode-html-languageservice@5.1.1: + resolution: {integrity: sha512-JenrspIIG/Q+93R6G3L6HdK96itSisMynE0glURqHpQbL3dKAKzdm8L40lAHNkwJeBg+BBPpAshZKv/38onrTQ==} + dependencies: + '@vscode/l10n': 0.0.16 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + dev: false + + /vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + dev: false + + /vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + dev: false + + /vscode-languageserver-textdocument@1.0.11: + resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + dev: false + + /vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + dev: false + + /vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + dependencies: + vscode-languageserver-protocol: 3.17.5 + dev: false + + /vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + dev: false + /vscode-oniguruma@1.7.0: resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} dev: false @@ -10010,6 +11051,14 @@ packages: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} dev: false + /vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + dev: false + + /vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + dev: false + /w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} dev: false @@ -10268,6 +11317,10 @@ packages: resolution: {integrity: sha512-+dTu2m6gmCbO9Ahm4ZBDapx2O6ZY9QSPXst2WXjcznPMwf2YNpn3RevLx4KkZp1OPW/ouFcoBtBzFz/LeY69oA==} dev: false + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + dev: false + /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} dev: false diff --git a/web/.eslintrc.cjs b/web/.eslintrc.js similarity index 85% rename from web/.eslintrc.cjs rename to web/.eslintrc.js index 331b898..2e78fb7 100644 --- a/web/.eslintrc.cjs +++ b/web/.eslintrc.js @@ -1,11 +1,10 @@ -const config = require("../.eslintrc.cjs") - module.exports = { - ...config, + // ... extends: [ - ...config.extends, + // ... "plugin:astro/recommended", ], + // ... overrides: [ { // Define the configuration for `.astro` file. @@ -23,6 +22,6 @@ module.exports = { // "astro/no-set-html-directive": "error" }, }, + // ... ], - ignorePatterns: ['**/*.js'] } \ No newline at end of file diff --git a/web/.gitignore b/web/.gitignore index 7329a85..6240da8 100644 --- a/web/.gitignore +++ b/web/.gitignore @@ -1,6 +1,7 @@ # build output dist/ -.output/ +# generated types +.astro/ # dependencies node_modules/ diff --git a/web/.vscode/extensions.json b/web/.vscode/extensions.json index 22a1505..56f043d 100644 --- a/web/.vscode/extensions.json +++ b/web/.vscode/extensions.json @@ -1,4 +1,4 @@ { - "recommendations": ["astro-build.astro-vscode"], + "recommendations": ["astro-build.astro-vscode", "unifiedjs.vscode-mdx"], "unwantedRecommendations": [] } diff --git a/web/.vscode/settings.json b/web/.vscode/settings.json deleted file mode 100644 index ab21c07..0000000 --- a/web/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "astro.typescript.diagnostics.enabled": false -} \ No newline at end of file diff --git a/web/README.md b/web/README.md index 8252739..758716e 100644 --- a/web/README.md +++ b/web/README.md @@ -1,50 +1,68 @@ -# Welcome to [Astro](https://astro.build) +# Astro Starter Kit: Blog -[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/basics) -[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/s/github/withastro/astro/tree/latest/examples/basics) +```sh +npm create astro@latest -- --template blog +``` + +[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/blog) +[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/blog) +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/blog/devcontainer.json) > 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun! -![basics](https://user-images.githubusercontent.com/4677417/186188965-73453154-fdec-4d6b-9c34-cb35c248ae5b.png) +![blog](https://github.com/withastro/astro/assets/2244813/ff10799f-a816-4703-b967-c78997e8323d) +Features: + +- ✅ Minimal styling (make it your own!) +- ✅ 100/100 Lighthouse performance +- ✅ SEO-friendly with canonical URLs and OpenGraph data +- ✅ Sitemap support +- ✅ RSS Feed support +- ✅ Markdown & MDX support ## 🚀 Project Structure Inside of your Astro project, you'll see the following folders and files: -``` -/ +```text ├── public/ -│ └── favicon.svg ├── src/ -│ ├── components/ -│ │ └── Card.astro -│ ├── layouts/ -│ │ └── Layout.astro -│ └── pages/ -│ └── index.astro -└── package.json +│   ├── components/ +│   ├── content/ +│   ├── layouts/ +│   └── pages/ +├── astro.config.mjs +├── README.md +├── package.json +└── tsconfig.json ``` Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name. There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components. +The `src/content/` directory contains "collections" of related Markdown and MDX documents. Use `getCollection()` to retrieve posts from `src/content/blog/`, and type-check your frontmatter using an optional schema. See [Astro's Content Collections docs](https://docs.astro.build/en/guides/content-collections/) to learn more. + Any static assets, like images, can be placed in the `public/` directory. ## 🧞 Commands All commands are run from the root of the project, from a terminal: -| Command | Action | -| :--------------------- | :------------------------------------------------- | -| `npm install` | Installs dependencies | -| `npm run dev` | Starts local dev server at `localhost:3000` | -| `npm run build` | Build your production site to `./dist/` | -| `npm run preview` | Preview your build locally, before deploying | -| `npm run astro ...` | Run CLI commands like `astro add`, `astro preview` | -| `npm run astro --help` | Get help using the Astro CLI | +| Command | Action | +| :------------------------ | :----------------------------------------------- | +| `npm install` | Installs dependencies | +| `npm run dev` | Starts local dev server at `localhost:4321` | +| `npm run build` | Build your production site to `./dist/` | +| `npm run preview` | Preview your build locally, before deploying | +| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | +| `npm run astro -- --help` | Get help using the Astro CLI | ## 👀 Want to learn more? -Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat). +Check out [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat). + +## Credit + +This theme is based off of the lovely [Bear Blog](https://github.com/HermanMartinus/bearblog/). diff --git a/web/astro.config.mjs b/web/astro.config.mjs index 30dd69d..cb25939 100644 --- a/web/astro.config.mjs +++ b/web/astro.config.mjs @@ -1,22 +1,11 @@ -import { defineConfig } from 'astro/config' +import { defineConfig } from 'astro/config'; +import mdx from '@astrojs/mdx'; +import sitemap from '@astrojs/sitemap'; -// https://astro.build/config -import tailwind from '@astrojs/tailwind' -import svelte from '@astrojs/svelte' - -// https://astro.build/config -import mdx from '@astrojs/mdx' -import { remarkReadingTime } from './src/lib/remark-reading-time' +import tailwind from "@astrojs/tailwind"; // https://astro.build/config export default defineConfig({ - integrations: [ - tailwind({ - applyBaseStyles: false - }), - svelte(), - mdx({ - remarkPlugins: [remarkReadingTime] - }) - ] -}) + site: 'https://example.com', + integrations: [mdx(), sitemap(), tailwind({configFile: "./tailwind.config.cjs"})] +}); \ No newline at end of file diff --git a/web/bun.lockb b/web/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..ea06f5d63dd7137fee41a40b0ba69ecdb0a6374d GIT binary patch literal 320424 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

q2QT6&Y#%8 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

4{vJ<=|ktLi>N@f_N$Lgu)pjb&yzDc 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 o=d.debug||T(i);if(t||o){var r="[Panelbear] ".concat(e);n?console.log(r,n):console.log(r)}},s="Pageview",l=()=>u(s),p=e=>{L((()=>{var t=(e=>{var t=e;if(d.beforeSend){var o;try{o=d.beforeSend(n({},e))}catch(e){console.error(e)}if(!o)return void c("Function beforeSend returned 'undefined', skipping event trigger");for(var r of(o.pid=e.pid,o.event=e.event,Object.keys(e)))t[r]=o[r]}return{p:t.pid,e:t.event,ur:t.url,sw:t.screen_width,re:t.referrer,so:t.utm_source,ca:t.utm_campaign,me:t.utm_medium,ul:t.user_language,tz:t.timezone,cs:t.connection_speed,dns:t.dns,conn:t.connect,ssl:t.ssl,ttfb:t.ttfb,dl:t.download,dcl:t.dom_content_loaded,rd:t.render,pl:t.page_load,ts:t.transfer_size,ua:t.override_user_agent,ip:t.override_ip,co:t.override_country_code}})(n({pid:d.site,event:e,url:m(),screen_width:window.screen&&window.screen.width,referrer:O(),utm_source:b(),utm_campaign:h(),utm_medium:_(),user_language:y(),timezone:S(),connection_speed:P()},E(e)));t&&f(t)&&v(t)}),"collect")},u=e=>{var n=()=>p(e);"complete"===document.readyState?setTimeout(n,0):(c("Document not ready, adding event listener"),window.addEventListener("load",(()=>{setTimeout(n,0)})))},w=()=>{if(window.history.pushState&&!window.panelbear._historyPatched){c("Single page app mode is set to 'history', patching History API");var e=window.history.pushState;window.history.pushState=function(){e.apply(this,arguments),l()},window.addEventListener("popstate",l),window.panelbear._historyPatched=!0,c("Listening for History API changes")}},v=e=>{var n="".concat(d.analyticsHost,"/api/_/events"),t=JSON.stringify(e);navigator.sendBeacon&&navigator.sendBeacon(n,t)||fetch(n,{body:t,method:"POST",credentials:"omit",keepalive:!0}),c("Sent event",e)},f=e=>{if(!d.site)return c("Bad configuration: missing site ID",void 0,!0),!1;if(e.e&&/^[a-zA-Z][a-zA-Z0-9\_\-\.]{0,63}$/.test(e.e)){if(window.localStorage&&window.localStorage.getItem(a)||!d.enabled)return c("Skipping event collection, Panelbear has been manually disabled on this browser.",void 0,!0),!1;var n="Skipping event collection, website is running locally. More info on https://panelbear.com/docs/local-development/?ref=console";if(!d.debug){if(d.honorDNT&&"doNotTrack"in window.navigator&&"1"===window.navigator.doNotTrack)return c("Honoring 'Do Not Track'"),!1;if(/^localhost$|^127(?:\.[0-9]+){0,2}\.[0-9]+$|^(?:0*\:)*?:?0*1$/.test(window.location.hostname))return c(n,void 0,!0),!1;if("file:"===window.location.protocol)return c(n,void 0,!0),!1;if("prerender"===window.document.visibilityState)return c("Skipping event collection, document is prerendering"),!1;if(window.navigator.webdriver)return c("Skipping event collection, navigation is automated"),!1}if(e.e===s){var t=window.panelbear._previousPath,o=e.ur;if(window.panelbear._previousPath=o,t&&t==o)return void c("Skipping duplicate pageview from being sent")}return!0}c("Invalid event name.",void 0,!0)},m=()=>{var e=d.includeURLFragment?window.location.hash:"";return window.location.protocol+"//"+window.location.hostname+window.location.pathname+e},g=e=>{var n=window.location.search.match(e);return n?n[2]:void 0},b=()=>g(/[?&](ref|source|utm_source)=([^?&]+)/),h=()=>g(/[?&](utm_campaign)=([^?&]+)/),y=()=>{var e=window.navigator;return e?e.userLanguage||e.language:void 0},S=()=>{try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){return}},_=()=>g(/[?&](utm_medium)=([^?&]+)/),P=()=>navigator.connection&&"effectiveType"in navigator.connection?navigator.connection.effectiveType:void 0,k=e=>{try{if(e){var n=Math.ceil(e);if(isNaN(n)||n<0)return;return n}return}catch(e){return}},E=e=>{var n={};if(e!==s||window.panelbear._firstPageLoadSent)return n;try{var t=window.performance||window.mozPerformance||window.msPerformance||window.webkitPerformance||{};if(t.getEntriesByType){var o=t.getEntriesByType("navigation")[0];o&&(n={dns:o.domainLookupEnd-o.domainLookupStart,connect:o.connectEnd-o.connectStart,ssl:o.secureConnectionStart?o.requestStart-o.secureConnectionStart:void 0,ttfb:o.responseStart-o.requestStart,download:o.responseEnd-o.responseStart,dom_content_loaded:o.domContentLoadedEventEnd-o.responseEnd,render:o.domComplete-o.domContentLoadedEventEnd,page_load:o.loadEventStart,transfer_size:o.transferSize?o.transferSize/1e3:void 0})}if(0===Object.keys(n).length){var r=t.timing;r&&(n={dns:r.domainLookupEnd-r.domainLookupStart,connect:r.connectEnd-r.connectStart,ssl:r.secureConnectionStart?r.requestStart-r.secureConnectionStart:void 0,ttfb:r.responseStart-r.requestStart,download:r.responseEnd-r.responseStart,dom_content_loaded:r.domContentLoadedEventEnd-r.responseEnd,render:r.domComplete-r.domContentLoadedEventEnd,page_load:r.loadEventStart-r.navigationStart})}}catch(e){c("Error while loading performance metrics",e)}for(var a of Object.keys(n))n[a]=k(n[a]);return window.panelbear._firstPageLoadSent=!0,n},O=()=>{var e=document.referrer;if(e){var n=new URL(e);if(n.hostname.toLowerCase()===window.location.hostname.toLowerCase())return;return n.protocol+"//"+n.hostname+n.pathname}},j=(e,t)=>{switch(e){case"config":if(!t)return c("Passed empty config params");o=t,r=n({},d),a=n(n({},d),o),c("Updated configuration",d=a),d.autoTrack&&(c("Autotrack enabled"),"history"===d.spaMode&&w(),!r.site&&a.site&&(c("Triggering initial pageview"),l()));break;case"trackPageview":u("Pageview");break;case"track":u(t);break;default:return void c("Unknown command",e,!0)}var o,r,a},L=(e,n)=>{try{e()}catch(e){(new Image).src="".concat(d.analyticsHost,"/api/_/errors?s=").concat(d.site,"&h=").concat(n,"&m=").concat(encodeURIComponent(e.message))}},T=e=>window&&window.location.search.indexOf(e)>-1;L((()=>{(()=>{var e=T(r),n=T(a);if(e||n){if(!window.localStorage)return void c("Can't disable Panelbear. This browser does not support local storage.",void 0,!0);e&&(window.localStorage.removeItem(a),c("Panelbear has been enabled for this browser and website combination.",void 0,!0)),n&&(window.localStorage.setItem(a,"true"),c("Panelbear has been disabled for this browser and website combination.",void 0,!0))}})();var e=window.panelbearQ||window.panelbear?.q||[];window.panelbear=j,window.panelbear.q=e;for(var n=0;nG$Vn6QW_03b*DUHDKK{+KlMgV}D;#=U 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 TgZPdR1Wjq(Awr&0Te9!ymo0-qdNv>p)%*kYM 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 iK{P#$jT~-jX-b_^Z["value"] - -export interface Experience { - company: string - company_full_name: string - url: string - positions: { - role: string - start: string - end: string - type: string - description: InputValue | undefined - }[] - -} -export interface Project { - title: string - description: string - github: string - icons: string[] -} - -export interface FrontpageData { - introduction: { - role: string - about_me: InputValue - } - experiences: Experience[] - projects: Project[] -} - -const frontpageQuery = groq` -{ - "introduction": *[_type == "whoami" ] { - role, - about_me - }[0], - "experiences": *[_type == "experience" && !(_id in path("drafts.**")) && !hidden] { - company, - company_full_name, - positions, - url - }, - "projects": *[_type == "project" && !(_id in path("drafts.**"))] { - title, - description, - github, - icons - } -}` - -export const fetchFrontpageData = async () => - await sanityClient.fetch(frontpageQuery) diff --git a/web/src/components/BaseHead.astro b/web/src/components/BaseHead.astro new file mode 100644 index 0000000..a2fe3a3 --- /dev/null +++ b/web/src/components/BaseHead.astro @@ -0,0 +1,46 @@ +--- +// Import the global.css file here so that it is included on +// all pages through the use of the component. + +interface Props { + title: string; + description: string; + image?: string; +} + +const canonicalURL = new URL(Astro.url.pathname, Astro.site); + +const { title, description, image = '/blog-placeholder-1.jpg' } = Astro.props; +--- + + + + + + + + + + + + + + + +{title} + + + + + + + + + + + + + + + + diff --git a/web/src/components/PreviewPosts.astro b/web/src/components/BlogPostItem.astro similarity index 82% rename from web/src/components/PreviewPosts.astro rename to web/src/components/BlogPostItem.astro index 1cbae63..8fbc240 100644 --- a/web/src/components/PreviewPosts.astro +++ b/web/src/components/BlogPostItem.astro @@ -1,5 +1,4 @@ --- -/* eslint-disable */ import type { MDXInstance } from 'astro' import { format } from 'date-fns' @@ -8,13 +7,14 @@ export interface Props { } const { posts } = Astro.props +const getUrl = (url: string | undefined) => url ? url.split("/").slice(2).join("/").split(".").shift() :"/" ---

    { posts.map((post) => (
  • - +

    {post.frontmatter.title}

    diff --git a/web/src/components/DualImageRow.astro b/web/src/components/DualImageRow.astro deleted file mode 100644 index 2b012b9..0000000 --- a/web/src/components/DualImageRow.astro +++ /dev/null @@ -1,29 +0,0 @@ ---- -import { Image } from 'astro:assets' - -interface ImageValue { - src: string - alt: string -} -export interface Props { - images: [ImageValue, ImageValue] -} -const { images } = Astro.props ---- - -

    - {images[0].alt} - {images[1].alt} -
    diff --git a/web/src/components/Footer.astro b/web/src/components/Footer.astro index e71cded..6558424 100644 --- a/web/src/components/Footer.astro +++ b/web/src/components/Footer.astro @@ -1,5 +1,4 @@ --- -import Link from './Link.svelte' import { Icon } from 'astro-icon' const iconLinks = [ @@ -19,6 +18,9 @@ const iconLinks = [ text: 'Mail' } ] + + +const year = new Date().getFullYear() ---
    diff --git a/web/src/components/FormattedDate.astro b/web/src/components/FormattedDate.astro new file mode 100644 index 0000000..1bcce73 --- /dev/null +++ b/web/src/components/FormattedDate.astro @@ -0,0 +1,17 @@ +--- +interface Props { + date: Date; +} + +const { date } = Astro.props; +--- + + diff --git a/web/src/components/Header/Header.astro b/web/src/components/Header/Header.astro new file mode 100644 index 0000000..09eb584 --- /dev/null +++ b/web/src/components/Header/Header.astro @@ -0,0 +1,29 @@ +--- +import ThemeIcon from '../ThemeIcon.astro'; +import Logo from './Logo.astro'; +import NavLink from './NavLink.astro'; + +const pathname = new URL(Astro.request.url).pathname; +const currentPath = pathname.slice(1); // remove the first "/" +--- + +
    + + + + + +
    + + +
    +
    diff --git a/web/src/components/Header/Header.svelte b/web/src/components/Header/Header.svelte deleted file mode 100644 index fa0519c..0000000 --- a/web/src/components/Header/Header.svelte +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/web/src/components/Header/logo.svelte b/web/src/components/Header/Logo.astro similarity index 100% rename from web/src/components/Header/logo.svelte rename to web/src/components/Header/Logo.astro diff --git a/web/src/components/Header/NavLink.astro b/web/src/components/Header/NavLink.astro new file mode 100644 index 0000000..d760f37 --- /dev/null +++ b/web/src/components/Header/NavLink.astro @@ -0,0 +1,18 @@ +--- +import { cn } from '../../utils'; + +interface Props { + href: string; + isActive?: boolean; +} + +const { href, isActive } = Astro.props; +--- + + diff --git a/web/src/components/Header/dropdown.svelte b/web/src/components/Header/dropdown.svelte deleted file mode 100644 index 0e0bb3b..0000000 --- a/web/src/components/Header/dropdown.svelte +++ /dev/null @@ -1,28 +0,0 @@ - - -{#if open} - -{/if} diff --git a/web/src/components/Header/hamburger.svelte b/web/src/components/Header/hamburger.svelte deleted file mode 100644 index d8ecaeb..0000000 --- a/web/src/components/Header/hamburger.svelte +++ /dev/null @@ -1,51 +0,0 @@ - - - - - {#if open} - - {/if} - - - - - - diff --git a/web/src/components/Header/route-link.svelte b/web/src/components/Header/route-link.svelte deleted file mode 100644 index f316a6a..0000000 --- a/web/src/components/Header/route-link.svelte +++ /dev/null @@ -1,13 +0,0 @@ - - -
  • - {text} -
  • diff --git a/web/src/components/HeaderLink.astro b/web/src/components/HeaderLink.astro new file mode 100644 index 0000000..3dd439b --- /dev/null +++ b/web/src/components/HeaderLink.astro @@ -0,0 +1,24 @@ +--- +import type { HTMLAttributes } from 'astro/types'; + +type Props = HTMLAttributes<'a'>; + +const { href, class: className, ...props } = Astro.props; + +const { pathname } = Astro.url; +const isActive = href === pathname || href === pathname.replace(/\/$/, ''); +--- + + + + + diff --git a/web/src/components/Link.astro b/web/src/components/Link.astro new file mode 100644 index 0000000..5e3f9d3 --- /dev/null +++ b/web/src/components/Link.astro @@ -0,0 +1,22 @@ +--- +import { cn } from '../utils'; + +export type Props = { + 'aria-label'?: string; + class?: string; + href?: string; +}; +const props = Astro.props; +--- + + diff --git a/web/src/components/Link.svelte b/web/src/components/Link.svelte deleted file mode 100644 index 5524ded..0000000 --- a/web/src/components/Link.svelte +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/web/src/components/PortableText/code-block.svelte b/web/src/components/PortableText/code-block.svelte deleted file mode 100644 index 19430f0..0000000 --- a/web/src/components/PortableText/code-block.svelte +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - -
    -{@html highlight}
    -
    diff --git a/web/src/components/PortableText/index.svelte b/web/src/components/PortableText/index.svelte deleted file mode 100644 index 6cc0a58..0000000 --- a/web/src/components/PortableText/index.svelte +++ /dev/null @@ -1,31 +0,0 @@ - - -
    - -
    diff --git a/web/src/components/PortableText/list.svelte b/web/src/components/PortableText/list.svelte deleted file mode 100644 index 415007a..0000000 --- a/web/src/components/PortableText/list.svelte +++ /dev/null @@ -1,12 +0,0 @@ - - -{#if listItem === 'number'} -
    -{:else} -
    -{/if} diff --git a/web/src/components/PortableText/portable-link.svelte b/web/src/components/PortableText/portable-link.svelte deleted file mode 100644 index a267e14..0000000 --- a/web/src/components/PortableText/portable-link.svelte +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/web/src/components/PortableText/portable-list-item.svelte b/web/src/components/PortableText/portable-list-item.svelte deleted file mode 100644 index c2af8e9..0000000 --- a/web/src/components/PortableText/portable-list-item.svelte +++ /dev/null @@ -1,8 +0,0 @@ - - -
  • diff --git a/web/src/components/ProjectCard.astro b/web/src/components/ProjectCard.astro deleted file mode 100644 index ac0d3a2..0000000 --- a/web/src/components/ProjectCard.astro +++ /dev/null @@ -1,57 +0,0 @@ ---- -import { Image } from 'astro:assets' -import { Icon } from 'astro-icon' -import clsx from 'clsx' -import type { Project } from '../api/frontpage' -import Link from './Link.svelte' - -export interface Props { - project: Project -} - -const { project } = Astro.props -const { title, description, github, icons } = project -const org = github.split('/')[3] - -const overrides: Record = { - 'mdi:microsoft-azure': 'text-[#1769AA]', - 'mdi:aws': 'text-[#ec912d]' -} ---- - -
    - -
    - - avatar - -

    {title}

    -
    - {description} -
    -
    -
    - { - icons - ? icons.map((icon) => ( - - )) - : null - } -
    -
    diff --git a/web/src/components/Section.astro b/web/src/components/Section.astro index 44d770d..34ab190 100644 --- a/web/src/components/Section.astro +++ b/web/src/components/Section.astro @@ -1,5 +1,4 @@ --- -import Divider from './divider.svelte' import clsx from 'clsx' export interface Props { @@ -15,7 +14,7 @@ const { name, className } = Astro.props name ? ( <>

    {name}

    - +
    ) : null } diff --git a/web/src/components/ThemeIcon.astro b/web/src/components/ThemeIcon.astro index 8459faf..5a49c63 100644 --- a/web/src/components/ThemeIcon.astro +++ b/web/src/components/ThemeIcon.astro @@ -1,21 +1,47 @@ ---- ---- + \ No newline at end of file + + + \ No newline at end of file diff --git a/web/src/components/divider.svelte b/web/src/components/divider.svelte deleted file mode 100644 index 9120d20..0000000 --- a/web/src/components/divider.svelte +++ /dev/null @@ -1 +0,0 @@ -
    diff --git a/web/src/components/experiences.svelte b/web/src/components/experiences.svelte deleted file mode 100644 index 4fb4a56..0000000 --- a/web/src/components/experiences.svelte +++ /dev/null @@ -1,82 +0,0 @@ - - -
    - diff --git a/web/src/consts.ts b/web/src/consts.ts new file mode 100644 index 0000000..0df8a61 --- /dev/null +++ b/web/src/consts.ts @@ -0,0 +1,5 @@ +// Place any global data in this file. +// You can import this data from anywhere in your site by using the `import` keyword. + +export const SITE_TITLE = 'Astro Blog'; +export const SITE_DESCRIPTION = 'Welcome to my website!'; diff --git a/web/src/pages/blog/rewriting-my-blog.mdx b/web/src/content/blog/rewriting-my-blog.mdx similarity index 92% rename from web/src/pages/blog/rewriting-my-blog.mdx rename to web/src/content/blog/rewriting-my-blog.mdx index 7253c6a..6762f23 100644 --- a/web/src/pages/blog/rewriting-my-blog.mdx +++ b/web/src/content/blog/rewriting-my-blog.mdx @@ -7,7 +7,6 @@ tags: ['astro', 'sveltekit', 'blog', 'typescript', 'building in public'] --- import { Image } from 'astro:assets' -import DualImageRow from '../../components/DualImageRow.astro' I recently decided to rewrite my personal page into Astro. Previously, it was built with SvelteKit which I was quite satisfied with. @@ -46,18 +45,22 @@ However, I did want to give my page a facelift and decided to do a small rebrand Last year I decided to build a mechanical keyboard and I wanted to use the same color scheme for my blog. The keycaps set is [GMK Botanical](https://oblotzky.industries/products/gmk-botanical-2) and the kebboard is a green [Mekanisk Urskog](https://mekanisk.com/products/urskog?variant=42784529875118) - +
    + {'GMK + {'Mekanisk +
    I ended up settling for green as my primary color and decided to use [Coolors.co](https://coolors.co/) to generate my primary color. diff --git a/web/src/content/config.ts b/web/src/content/config.ts new file mode 100644 index 0000000..f041922 --- /dev/null +++ b/web/src/content/config.ts @@ -0,0 +1,15 @@ +import { defineCollection, z } from 'astro:content'; + +const blog = defineCollection({ + // Type-check frontmatter using a schema + schema: z.object({ + title: z.string(), + description: z.string(), + // Transform string to Date object + pubDate: z.coerce.date(), + updatedDate: z.coerce.date().optional(), + heroImage: z.string().optional(), + }), +}); + +export const collections = { blog }; diff --git a/web/src/env.d.ts b/web/src/env.d.ts index c11e3fd..acef35f 100644 --- a/web/src/env.d.ts +++ b/web/src/env.d.ts @@ -1,2 +1,2 @@ -// Replace `astro/client` with `@astrojs/image/client` - +/// +/// diff --git a/web/src/layouts/BlogLayout.astro b/web/src/layouts/BlogLayout.astro index dea9661..185f190 100644 --- a/web/src/layouts/BlogLayout.astro +++ b/web/src/layouts/BlogLayout.astro @@ -1,5 +1,4 @@ --- -import Divider from '../components/divider.svelte' import Layout from './Layout.astro' import { format } from 'date-fns' import clsx from 'clsx' @@ -20,8 +19,8 @@ const publishedDate = format(new Date(frontmatter.pubDate), 'LLLL d Y')
    -

    {frontmatter.title}

    - +

    {frontmatter.title}

    +

    Anh-Kha Vo • {publishedDate}

    {frontmatter.minutesRead}

    @@ -29,7 +28,7 @@ const publishedDate = format(new Date(frontmatter.pubDate), 'LLLL d Y')
    diff --git a/web/src/layouts/Layout.astro b/web/src/layouts/Layout.astro index 3154b47..4ce17a1 100644 --- a/web/src/layouts/Layout.astro +++ b/web/src/layouts/Layout.astro @@ -1,77 +1,75 @@ --- -import "./base.css" -import "@radix-ui/colors/green.css" -import "@radix-ui/colors/sand.css" -import "@radix-ui/colors/brown.css" -import "@radix-ui/colors/green-dark.css" -import "@radix-ui/colors/sand-dark.css" -import "@radix-ui/colors/brown-dark.css" +import Footer from '../components/Footer.astro'; +import Header from '../components/Header/Header.astro'; +import '@radix-ui/colors/sand.css'; +import '@radix-ui/colors/green.css'; +import '@radix-ui/colors/brown.css'; +import '@radix-ui/colors/sand-dark.css'; +import '@radix-ui/colors/green-dark.css'; +import '@radix-ui/colors/brown-dark.css'; -import Footer from '../components/Footer.astro' -import Header from '../components/Header/Header.svelte' -import { SEO } from 'astro-seo' export interface Props { - title: string - description?: string + title: string; + description?: string; } -const { title, description } = Astro.props -const url = Astro.url.pathname --- - - - - - - - - - - - - - -
    -
    -
    - -
    -
    -
    - - + html { + font-family: Satoshi, system-ui, sans-serif; + font-size: 16px; + font-display: auto; + } + + code { + font-family: + Menlo, + Monaco, + Lucida Console, + Liberation Mono, + DejaVu Sans Mono, + Bitstream Vera Sans Mono, + Courier New, + monospace; + } + + diff --git a/web/src/layouts/base.css b/web/src/layouts/base.css deleted file mode 100644 index f1b7511..0000000 --- a/web/src/layouts/base.css +++ /dev/null @@ -1,28 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@layer components { - - body { - @apply text-sand-12 - } - /* h1 { - @apply text-3xl my-4; - } - h2 { - @apply text-2xl font-semibold my-3; - } - h3 { - @apply text-xl font-bold my-2; - } - h4 { - @apply text-lg font-bold my-1; - } - h5 { - @apply text-lg font-semibold; - } - h6 { - @apply text-lg; - } */ -} diff --git a/web/src/lib/remark-reading-time.js b/web/src/lib/remark-reading-time.js deleted file mode 100644 index a59dc28..0000000 --- a/web/src/lib/remark-reading-time.js +++ /dev/null @@ -1,12 +0,0 @@ -import getReadingTime from 'reading-time'; -import { toString } from 'mdast-util-to-string'; - -export function remarkReadingTime() { - return function (tree, { data }) { - const textOnPage = toString(tree); - const readingTime = getReadingTime(textOnPage); - // readingTime.text will give us minutes read as a friendly string, - // i.e. "3 min read" - data.astro.frontmatter.minutesRead = readingTime.text; - }; -} \ No newline at end of file diff --git a/web/src/lib/sanity.ts b/web/src/lib/sanity.ts deleted file mode 100644 index f191516..0000000 --- a/web/src/lib/sanity.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {createClient} from '@sanity/client' - -const config = { - projectId: 'r4l4xmqo', - dataset: 'production', - apiVersion: 'v2021-11-11', // use current UTC date - see "specifying API version"! - useCdn: true -} - -export const sanityClient = createClient(config) - -export type Fetch = (input: RequestInfo, init?: RequestInit) => Promise -export type Parameters = Record; -export const getFetchUrl = (query: string, parameters?: Parameters) => { - let url = `https://${config.projectId}.api.sanity.io/${config.apiVersion}/data/query/${ - config.dataset - }?query=${encodeURIComponent(query)}` - if (parameters) { - // Encode each parameter and add it to the fetch url - const urlParameters = Object.entries(parameters) - .map(([key, val]) => `&$${key}=${encodeURIComponent(`"${val}"`)}`) - .join('') - url += urlParameters - } - return url -} diff --git a/web/src/pages/blog/[slug].astro b/web/src/pages/blog/[slug].astro new file mode 100644 index 0000000..1ebd46d --- /dev/null +++ b/web/src/pages/blog/[slug].astro @@ -0,0 +1,18 @@ +--- +export async function getStaticPaths() { + +const allPosts = await Astro.glob('../../content/blog/*.mdx') // returns an array of posts that live at ./src/pages/post/*.md +const posts = allPosts.filter((post) => !post.frontmatter.draft) + + return posts.map((post) => { + return { + params: { slug: post.file.split("/").pop()?.split(".").shift() }, + props: { post }, + }; + }); +} + +const { Content } = Astro.props.post; +--- + + \ No newline at end of file diff --git a/web/src/pages/blog/index.astro b/web/src/pages/blog/index.astro index 224232d..eda1ec4 100644 --- a/web/src/pages/blog/index.astro +++ b/web/src/pages/blog/index.astro @@ -1,9 +1,9 @@ --- -import PreviewPosts from '../../components/PreviewPosts.astro' +import BlogPostItem from '../../components/BlogPostItem.astro' import Section from '../../components/Section.astro' import Layout from '../../layouts/Layout.astro' -const allPosts = await Astro.glob('./*.mdx') // returns an array of posts that live at ./src/pages/post/*.md +const allPosts = await Astro.glob('../../content/blog/*.mdx') // returns an array of posts that live at ./src/pages/post/*.md const posts = allPosts.filter((post) => !post.frontmatter.draft) --- @@ -15,7 +15,7 @@ const posts = allPosts.filter((post) => !post.frontmatter.draft) other things I find interesting.

    - +
    diff --git a/web/src/pages/index.astro b/web/src/pages/index.astro index 557d5a5..4af1748 100644 --- a/web/src/pages/index.astro +++ b/web/src/pages/index.astro @@ -1,56 +1,61 @@ --- -import Layout from '../layouts/Layout.astro' -import { fetchFrontpageData } from '../api/frontpage' -import PortableText from '../components/PortableText/index.svelte' -import Experiences from '../components/experiences.svelte' -import ProjectCard from '../components/ProjectCard.astro' -import Section from '../components/Section.astro' -import PreviewPosts from '../components/PreviewPosts.astro' -import { compareAsc, isAfter, isBefore } from 'date-fns' - -const { introduction, experiences, projects } = await fetchFrontpageData() -const allPosts = await Astro.glob('./blog/*.mdx') // returns an array of posts that live at ./src/pages/post/*.md -const posts = allPosts - .filter((post) => !post.frontmatter.draft) - .sort((a, b) => b.frontmatter.date - a.frontmatter.date) - .slice(0, 3) +import FrontPagePost from '../components/BlogPostItem.astro'; +import Link from '../components/Link.astro'; +import Section from '../components/Section.astro'; +import Layout from '../layouts/Layout.astro'; +const allPosts = await Astro.glob('../content/blog/*.mdx') +const posts = allPosts.filter((post) => !post.frontmatter.draft) --- -
    -

    - Hi, my name is - Anhkha 👋 -

    - {introduction.role} -
    -
    - -
    -
    - -
    -
    - -
    -
    - I've worked on multiple projects, from commercial ones to small hobby projects. -
    - During my free time, I love working on open-source projects. Here are some of my open-source highlights. -
    - {projects.map((project) => )} -
    -
    -
    -
    -

    Feel free to each out if you have any questions or just want to chat!

    - Say hi! -
    -
    +
    +

    + Hi, my name is + Anhkha 👋 +

    + I'm a software developer specializing in building unique user-oriented products without sacrificing quality. +
    +
    +

    + Ever since I was a child, I've been fascinated by technology. Nevertheless, I quickly found myself tinkering with + the computer for hours if given the chance. Turns out hacking together Lua scripts for video games taught me a + thing or two about coding. A lot has changed since then, but I still found myself in front of the computer, but + tinkering around with some code instead.

    + + Since then, I've built multiple web applications, managed software teams, + and designed scalable software architectures, all while juggling volunteering, work, and university.111111 + + Fast forward to today, I've just finished my Master's degree in Informatics from NTNU and moved to Oslo. I currently work at + Liflig as a full-stack developer with a passion for web applications. In my spare time, you might find me playing + video games, reading books, developing open-source software, or working out.

    +

    +
    +
    + +
    + +
    +
    +

    Feel free to each out if you have any questions or just want to chat!

    + Say hi! +
    +
    diff --git a/web/src/pages/rss.xml.js b/web/src/pages/rss.xml.js new file mode 100644 index 0000000..9ff9801 --- /dev/null +++ b/web/src/pages/rss.xml.js @@ -0,0 +1,16 @@ +import rss from '@astrojs/rss'; +import { getCollection } from 'astro:content'; +import { SITE_TITLE, SITE_DESCRIPTION } from '../consts'; + +export async function GET(context) { + const posts = await getCollection('blog'); + return rss({ + title: SITE_TITLE, + description: SITE_DESCRIPTION, + site: context.site, + items: posts.map((post) => ({ + ...post.data, + link: `/blog/${post.slug}/`, + })), + }); +} diff --git a/web/src/theme/colors_dark.cjs b/web/src/theme/colors_dark.cjs deleted file mode 100644 index e828fc2..0000000 --- a/web/src/theme/colors_dark.cjs +++ /dev/null @@ -1,75 +0,0 @@ -const green = { - 1: 'hsla(0, 0%, 0%, 0)', - 2: 'hsla(169, 100%, 48.5%, 0.027)', - 3: 'hsla(162, 98.7%, 57.9%, 0.070)', - 4: 'hsla(158, 98.6%, 59.7%, 0.105)', - 5: 'hsla(158, 98.6%, 60.7%, 0.140)', - 6: 'hsla(156, 99.9%, 62.0%, 0.187)', - 7: 'hsla(154, 99.5%, 63.1%, 0.257)', - 8: 'hsla(152, 99.7%, 64.2%, 0.370)', - 9: 'hsla(151, 99.7%, 63.8%, 0.605)', - 10: 'hsla(152, 99.9%, 66.5%, 0.661)', - 11: 'hsla(151, 99.7%, 69.2%, 0.740)', - 12: 'hsla(137, 100%, 95.8%, 0.980)' -} - -const brand = { - 1: '#d8f3dc', - 2: '#b7e4c7', - 3: '#95d5b2', - 4: '#74c69d', - 5: '#52b788', - 6: '#40916c', - 7: '#2d6a4f', - 8: '#1b4332', - 9: '#081c15' -} - -const brown = { - 1: 'hsla(0, 0%, 0%, 0)', - 2: 'hsla(22, 99.6%, 53.6%, 0.035)', - 3: 'hsla(18, 97.8%, 69.0%, 0.088)', - 4: 'hsla(21, 98.2%, 71.0%, 0.123)', - 5: 'hsla(25, 98.4%, 72.1%, 0.158)', - 6: 'hsla(25, 98.7%, 73.5%, 0.206)', - 7: 'hsla(25, 99.0%, 74.6%, 0.289)', - 8: 'hsla(28, 99.2%, 75.3%, 0.407)', - 9: 'hsla(28, 100%, 74.8%, 0.642)', - 10: 'hsla(28, 99.9%, 74.9%, 0.712)', - 11: 'hsla(28, 99.9%, 74.9%, 0.843)', - 12: 'hsla(32, 98.2%, 95.7%, 0.979)' -} - -const sand = { - 1: 'hsla(0, 0%, 0%, 0)', - 2: 'hsla(60, 89.8%, 91.4%, 0.026)', - 3: 'hsla(60, 95.5%, 92.5%, 0.056)', - 4: 'hsla(60, 75.6%, 96.4%, 0.078)', - 5: 'hsla(60, 81.9%, 95.2%, 0.104)', - 6: 'hsla(41, 87.6%, 94.8%, 0.134)', - 7: 'hsla(60, 95.4%, 96.2%, 0.172)', - 8: 'hsla(49, 93.5%, 95.7%, 0.254)', - 9: 'hsla(52, 97.3%, 96.2%, 0.391)', - 10: 'hsla(52, 97.8%, 96.7%, 0.451)', - 11: 'hsla(51, 97.0%, 97.8%, 0.597)', - 12: 'hsla(60, 88.7%, 99.8%, 0.923)' -} - -module.exports = { - gray: sand, - brand: brand, - green: green, - brown: brown, - background: 'l(61, 2.0%, 8.3%), - foreground: { - DEFAULT: sand[12], - accent: brand[1] - }, - - accent: '#73bbc5', - highlight: { - hover: brand[5], - DEFAULT: brand[1] - }, - primary: brand[2] -} diff --git a/web/src/theme/colors_light.cjs b/web/src/theme/colors_light.cjs deleted file mode 100644 index 3deef51..0000000 --- a/web/src/theme/colors_light.cjs +++ /dev/null @@ -1,74 +0,0 @@ -const green = { - 1: 'hsla(140, 94.9%, 38.7%, 0.016)', - 2: 'hsla(138, 99.9%, 38.5%, 0.051)', - 3: 'hsla(139, 97.7%, 36.9%, 0.087)', - 4: 'hsla(139, 98.5%, 32.7%, 0.134)', - 5: 'hsla(141, 100%, 30.4%, 0.200)', - 6: 'hsla(142, 99.0%, 28.9%, 0.295)', - 7: 'hsla(146, 99.5%, 27.6%, 0.428)', - 8: 'hsla(151, 99.5%, 28.8%, 0.644)', - 9: 'hsla(151, 99.9%, 28.0%, 0.812)', - 10: 'hsla(152, 99.6%, 25.8%, 0.840)', - 11: 'hsla(153, 99.9%, 21.0%, 0.906)', - 12: 'hsla(155, 99.9%, 7.4%, 0.902)', -} - -const brand = { - 1: '#d8f3dc', - 2: '#004037', - 3: '#357246', - 4: '#74c69d', - 5: '#52b788', - 6: '#40916c', - 7: '#2d6a4f', - 8: '#1b4332', - 9: '#081c15' -} - -const brown= { - 1: 'hsla(30, 94.3%, 34.6%, 0.012)', - 2: 'hsla(30, 94.3%, 34.6%, 0.036)', - 3: 'hsla(30, 97.7%, 33.9%, 0.083)', - 4: 'hsla(31, 98.5%, 34.2%, 0.134)', - 5: 'hsla(29, 100%, 34.3%, 0.200)', - 6: 'hsla(28, 99.2%, 34.6%, 0.291)', - 7: 'hsla(29, 99.8%, 33.8%, 0.412)', - 8: 'hsla(28, 100%, 33.3%, 0.553)', - 9: 'hsla(28, 99.9%, 25.5%, 0.655)', - 10: 'hsla(26, 99.6%, 22.0%, 0.679)', - 11: 'hsla(24, 99.6%, 16.0%, 0.726)', - 12: 'hsla(19, 98.8%, 3.9%, 0.820)', -} -const sand= { - 1: 'hsla(60, 89.3%, 18.3%, 0.012)', - 2: 'hsla(60, 78.1%, 9.0%, 0.028)', - 3: 'hsla(60, 95.7%, 6.9%, 0.059)', - 4: 'hsla(60, 84.4%, 5.3%, 0.087)', - 5: 'hsla(60, 93.5%, 3.7%, 0.114)', - 6: 'hsla(60, 86.7%, 4.6%, 0.146)', - 7: 'hsla(48, 92.1%, 5.5%, 0.193)', - 8: 'hsla(51, 94.5%, 5.0%, 0.291)', - 9: 'hsla(60, 96.6%, 3.0%, 0.475)', - 10: 'hsla(60, 96.5%, 2.3%, 0.522)', - 11: 'hsla(60, 94.0%, 1.7%, 0.632)', - 12: 'hsla(48, 92.4%, 1.2%, 0.891)', -} - -module.exports = { - gray: sand, - brand: brand, - green: green, - brown: brown, - background: 'hsl(30, 50.0%, 97.6%)', - foreground: { - DEFAULT: sand[12], - accent: brand[1] - }, - - accent: '#73bbc5', - highlight: { - hover: brand[3], - DEFAULT: brand[4] - }, - primary: '#357246' -} diff --git a/web/src/utils.ts b/web/src/utils.ts new file mode 100644 index 0000000..d084cca --- /dev/null +++ b/web/src/utils.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/web/tailwind.config.cjs b/web/tailwind.config.cjs index f859110..d3c9d2a 100644 --- a/web/tailwind.config.cjs +++ b/web/tailwind.config.cjs @@ -1,78 +1,82 @@ -const colors = require('@radix-ui/colors') +const colors = require('@radix-ui/colors'); function getColorCode(name, step) { - return colors[name][`${name}${step}`] + return colors[name][`${name}${step}`]; } function generateScale(name) { - let scale = Array.from({ length: 12 }, (_, i) => { - let id = i + 1 - return [[id, `var(--${name}-${id}, ${getColorCode(name, id)})`]] - }).flat() + let scale = Array.from({ length: 12 }, (_, i) => { + let id = i + 1; + return [[id, `var(--${name}-${id}, ${getColorCode(name, id)})`]]; + }).flat(); + console.log(scale); - return Object.fromEntries(scale) + return Object.fromEntries(scale); } const brand = { - 1: '#d8f3dc', - 2: '#b7e4c7', - 3: '#95d5b2', - 4: '#74c69d', - 5: '#52b788', - 6: '#40916c', - 7: '#2d6a4f', - 8: '#357246', - 9: '#1b4332', - 10: '#004037', - 11: '#081c15' -} + 1: '#d8f3dc', + 2: '#b7e4c7', + 3: '#95d5b2', + 4: '#74c69d', + 5: '#52b788', + 6: '#40916c', + 7: '#2d6a4f', + 8: '#357246', + 9: '#1b4332', + 10: '#004037', + 11: '#081c15', +}; /** @type {import('tailwindcss').Config} */ module.exports = { - content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'], - darkMode: 'class', - theme: { - extend: { - colors: { - green: generateScale('green'), - brown: generateScale('brown'), - sand: generateScale('sand'), - brand, - background: { - DEFAULT: 'hsl(30, 50.0%, 97.6%)', - dark: 'hsl(61, 2.0%, 8.3%)' - }, - foreground: { - DEFAULT: `var(--sand1)`, - accent: brand[1] - } - }, - fontFamily: { - hack: 'Hack', - lato: 'Lato', - poppins: 'Poppins' - }, - rotate: { - 360: '360deg' - }, - typography: (theme) => ({ - DEFAULT: { - css: { - '--tw-prose-body': theme('colors.sand.12'), - '--tw-prose-bold': theme('colors.brown[11]'), - '--tw-prose-invert-bullets': theme('colors.brown[11]'), - code: { - 'background-color': theme('colors.gray.3'), - padding: theme('spacing.1'), - 'border-radius': theme('borderRadius.DEFAULT') - } - } - } - }), - width: { - thin: '2px' - } - } - }, - plugins: [require('@tailwindcss/typography')] -} + content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'], + darkMode: 'class', + theme: { + colors: { + green: generateScale('green'), + brown: generateScale('brown'), + gray: generateScale('sand'), + sand: generateScale('sand'), + brand, + background: { + DEFAULT: 'hsl(30, 50.0%, 97.6%)', + dark: 'hsl(61, 2.0%, 8.3%)', + }, + foreground: { + DEFAULT: `var(--sand1)`, + accent: brand[1], + }, + }, + extend: { + fontFamily: { + hack: 'Hack', + lato: 'Lato', + poppins: 'Poppins', + }, + rotate: { + 360: '360deg', + }, + typography: (theme) => ({ + DEFAULT: { + css: { + '--tw-prose-body': theme('colors.sand.12'), + '--tw-prose-bold': theme('colors.brown[11]'), + '--tw-prose-invert-bullets': theme('colors.brown[11]'), + code: { + 'background-color': theme('colors.gray.3'), + padding: theme('spacing.1'), + 'border-radius': theme('borderRadius.DEFAULT'), + }, + }, + }, + }), + width: { + thin: '2px', + }, + }, + }, + plugins: [ + require('@tailwindcss/typography'), + ], +}; diff --git a/web/tsconfig.json b/web/tsconfig.json index 13d8736..e9e1143 100644 --- a/web/tsconfig.json +++ b/web/tsconfig.json @@ -1,3 +1,6 @@ { - "extends": "astro/tsconfigs/strict", -} + "extends": "astro/tsconfigs/strictest", + "compilerOptions": { + "strictNullChecks": true + } +} \ No newline at end of file