diff --git a/.gitignore b/.gitignore index 6635cf5..e539ab4 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ node_modules !.env.example vite.config.js.timestamp-* vite.config.ts.timestamp-* +.vercel \ No newline at end of file diff --git a/package.json b/package.json index 2c9d520..841efcd 100644 --- a/package.json +++ b/package.json @@ -14,23 +14,23 @@ "prepare": "npx husky install && svelte-kit sync && svelte-check --tsconfig ./tsconfig.json" }, "devDependencies": { - "@sveltejs/adapter-vercel": "^4.0.4", + "@sveltejs/adapter-vercel": "^4.0.5", "@sveltejs/enhanced-img": "^0.1.8", - "@sveltejs/kit": "^2.3.2", + "@sveltejs/kit": "^2.3.4", "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@typescript-eslint/eslint-plugin": "^6.18.1", - "@typescript-eslint/parser": "^6.18.1", - "autoprefixer": "^10.4.16", + "@typescript-eslint/eslint-plugin": "^6.19.0", + "@typescript-eslint/parser": "^6.19.0", + "autoprefixer": "^10.4.17", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.35.1", "lint-staged": "^15.2.0", "postcss": "^8.4.33", "postcss-load-config": "^5.0.2", - "prettier": "^3.2.2", + "prettier": "^3.2.4", "prettier-plugin-svelte": "^3.1.2", "prettier-plugin-tailwindcss": "^0.5.11", - "svelte": "^4.2.8", + "svelte": "^4.2.9", "svelte-check": "^3.6.3", "tailwindcss": "^3.4.1", "tslib": "^2.6.2", @@ -38,15 +38,17 @@ "vite": "^5.0.11" }, "dependencies": { - "@ethercorps/sveltekit-og": "^3.0.0", + "@resvg/resvg-js": "^2.6.0", "@types/node": "^20.11.5", "@vercel/analytics": "^1.1.1", - "@vercel/speed-insights": "^1.0.3", + "@vercel/speed-insights": "^1.0.4", "bits-ui": "^0.14.0", "clsx": "^2.1.0", "lucide-svelte": "^0.311.0", "mode-watcher": "^0.1.2", "radix-icons-svelte": "^1.2.1", + "satori": "^0.10.11", + "satori-html": "^0.3.2", "svelte-wrap-balancer": "^0.0.4", "tailwind-merge": "^2.2.0", "tailwind-variants": "^0.1.20" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fe3fd81..1211c46 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,9 +5,9 @@ settings: excludeLinksFromLockfile: false dependencies: - '@ethercorps/sveltekit-og': - specifier: ^3.0.0 - version: 3.0.0(svelte@4.2.8) + '@resvg/resvg-js': + specifier: ^2.6.0 + version: 2.6.0 '@types/node': specifier: ^20.11.5 version: 20.11.5 @@ -15,23 +15,29 @@ dependencies: specifier: ^1.1.1 version: 1.1.1 '@vercel/speed-insights': - specifier: ^1.0.3 - version: 1.0.3 + specifier: ^1.0.4 + version: 1.0.4 bits-ui: specifier: ^0.14.0 - version: 0.14.0(svelte@4.2.8) + version: 0.14.0(svelte@4.2.9) clsx: specifier: ^2.1.0 version: 2.1.0 lucide-svelte: specifier: ^0.311.0 - version: 0.311.0(svelte@4.2.8) + version: 0.311.0(svelte@4.2.9) mode-watcher: specifier: ^0.1.2 - version: 0.1.2(svelte@4.2.8) + version: 0.1.2(svelte@4.2.9) radix-icons-svelte: specifier: ^1.2.1 version: 1.2.1 + satori: + specifier: ^0.10.11 + version: 0.10.11 + satori-html: + specifier: ^0.3.2 + version: 0.3.2 svelte-wrap-balancer: specifier: ^0.0.4 version: 0.0.4 @@ -44,26 +50,26 @@ dependencies: devDependencies: '@sveltejs/adapter-vercel': - specifier: ^4.0.4 - version: 4.0.4(@sveltejs/kit@2.3.2) + specifier: ^4.0.5 + version: 4.0.5(@sveltejs/kit@2.3.4) '@sveltejs/enhanced-img': specifier: ^0.1.8 - version: 0.1.8(svelte@4.2.8) + version: 0.1.8(svelte@4.2.9) '@sveltejs/kit': - specifier: ^2.3.2 - version: 2.3.2(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.11) + specifier: ^2.3.4 + version: 2.3.4(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.9)(vite@5.0.11) '@sveltejs/vite-plugin-svelte': specifier: ^3.0.1 - version: 3.0.1(svelte@4.2.8)(vite@5.0.11) + version: 3.0.1(svelte@4.2.9)(vite@5.0.11) '@typescript-eslint/eslint-plugin': - specifier: ^6.18.1 - version: 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.19.0 + version: 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.18.1 - version: 6.18.1(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.19.0 + version: 6.19.0(eslint@8.56.0)(typescript@5.3.3) autoprefixer: - specifier: ^10.4.16 - version: 10.4.16(postcss@8.4.33) + specifier: ^10.4.17 + version: 10.4.17(postcss@8.4.33) eslint: specifier: ^8.56.0 version: 8.56.0 @@ -72,7 +78,7 @@ devDependencies: version: 9.1.0(eslint@8.56.0) eslint-plugin-svelte: specifier: ^2.35.1 - version: 2.35.1(eslint@8.56.0)(svelte@4.2.8) + version: 2.35.1(eslint@8.56.0)(svelte@4.2.9) lint-staged: specifier: ^15.2.0 version: 15.2.0 @@ -83,20 +89,20 @@ devDependencies: specifier: ^5.0.2 version: 5.0.2(postcss@8.4.33) prettier: - specifier: ^3.2.2 - version: 3.2.2 + specifier: ^3.2.4 + version: 3.2.4 prettier-plugin-svelte: specifier: ^3.1.2 - version: 3.1.2(prettier@3.2.2)(svelte@4.2.8) + version: 3.1.2(prettier@3.2.4)(svelte@4.2.9) prettier-plugin-tailwindcss: specifier: ^0.5.11 - version: 0.5.11(prettier-plugin-svelte@3.1.2)(prettier@3.2.2) + version: 0.5.11(prettier-plugin-svelte@3.1.2)(prettier@3.2.4) svelte: - specifier: ^4.2.8 - version: 4.2.8 + specifier: ^4.2.9 + version: 4.2.9 svelte-check: specifier: ^3.6.3 - version: 3.6.3(postcss-load-config@5.0.2)(postcss@8.4.33)(svelte@4.2.8) + version: 3.6.3(postcss-load-config@5.0.2)(postcss@8.4.33)(svelte@4.2.9) tailwindcss: specifier: ^3.4.1 version: 3.4.1 @@ -387,25 +393,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@ethercorps/svelte-h2j@0.1.0(svelte@4.2.8): - resolution: {integrity: sha512-0cs5FgGgiJRgHr2paR3/49Fv/KsOjqbLEPbgZjJtdBiqUD3awZwgoK6ynwTA3zBq+KfHqAJjJU1XWbCwQMih3Q==} - peerDependencies: - svelte: ^4.0.0 - dependencies: - svelte: 4.2.8 - dev: false - - /@ethercorps/sveltekit-og@3.0.0(svelte@4.2.8): - resolution: {integrity: sha512-CQRmcfCPnTEqP+EeHBE7wWp1sNxpBaT4Fb5Js5fGnWEgFFIDbJEEcFiT0Uwc1CteolXY+CyTOg7mokcOtu3d7w==} - peerDependencies: - svelte: ^4.0.0 - dependencies: - '@ethercorps/svelte-h2j': 0.1.0(svelte@4.2.8) - '@resvg/resvg-js': 2.6.0 - satori: 0.10.11 - svelte: 4.2.8 - dev: false - /@floating-ui/core@1.5.3: resolution: {integrity: sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q==} dependencies: @@ -691,7 +678,7 @@ packages: - supports-color dev: true - /@melt-ui/svelte@0.68.0(svelte@4.2.8): + /@melt-ui/svelte@0.68.0(svelte@4.2.9): resolution: {integrity: sha512-/QvA98hnYEodZtHJ71+ocum/WWp30hVNt3F8uiZKnNYwZDaiQYjlyR9AaGKYcZLCe6R68op1mfCzc0kTzJilyA==} peerDependencies: svelte: '>=3 <5' @@ -702,7 +689,7 @@ packages: dequal: 2.0.3 focus-trap: 7.5.4 nanoid: 5.0.4 - svelte: 4.2.8 + svelte: 4.2.9 dev: false /@nodelib/fs.scandir@2.1.5: @@ -994,12 +981,12 @@ packages: string.prototype.codepointat: 0.2.1 dev: false - /@sveltejs/adapter-vercel@4.0.4(@sveltejs/kit@2.3.2): - resolution: {integrity: sha512-2MMThT6eROTqAGmx81Xv+tafhpetQfRUDIsboFiGgkFoaxcmoTzW4t9GyXZdMY8xl1YOdvAnZXcCgacYzmVWVw==} + /@sveltejs/adapter-vercel@4.0.5(@sveltejs/kit@2.3.4): + resolution: {integrity: sha512-SABZvRry8pUggFrBLbIi88dCH5gP3M0O/8HvvLjOTCwTVn3E8H1ppJ8ujhj8xNuoi4rm9JVy6qYSYp2EsgOugw==} peerDependencies: '@sveltejs/kit': ^2.0.0 dependencies: - '@sveltejs/kit': 2.3.2(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.11) + '@sveltejs/kit': 2.3.4(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.9)(vite@5.0.11) '@vercel/nft': 0.26.2 esbuild: 0.19.11 transitivePeerDependencies: @@ -1007,19 +994,19 @@ packages: - supports-color dev: true - /@sveltejs/enhanced-img@0.1.8(svelte@4.2.8): + /@sveltejs/enhanced-img@0.1.8(svelte@4.2.9): resolution: {integrity: sha512-0cLVR9KiO0/t3VVm64OM7bPHTkdaT2aaz1rwoAhao+EBXR3vMvLoYXLHvz8o9/552PSV8G844RkH7qkGc3YAiQ==} dependencies: magic-string: 0.30.5 - svelte-parse-markup: 0.1.2(svelte@4.2.8) + svelte-parse-markup: 0.1.2(svelte@4.2.9) vite-imagetools: 6.2.9 transitivePeerDependencies: - rollup - svelte dev: true - /@sveltejs/kit@2.3.2(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.11): - resolution: {integrity: sha512-AzGWV1TyUSkBuciy06E5NegXndIEgTthDtllv80qynEJFh8bZD62ZxLajiQLOsKGqRDilEQyshDARQxjIqiaqg==} + /@sveltejs/kit@2.3.4(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.9)(vite@5.0.11): + resolution: {integrity: sha512-Q4rXMMLSv38IeiVJhA3M0M0t6M8zNXsjj2xhUkWlxhkKu+cRqOL/vyFTuJ+5aiQlmMzCGq1yqFnHoc6R0NZ7gQ==} engines: {node: '>=18.13'} hasBin: true requiresBuild: true @@ -1028,7 +1015,7 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.3 dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.8)(vite@5.0.11) + '@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.9)(vite@5.0.11) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 4.3.2 @@ -1040,12 +1027,12 @@ packages: sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.4 - svelte: 4.2.8 + svelte: 4.2.9 tiny-glob: 0.2.9 vite: 5.0.11(@types/node@20.11.5) dev: true - /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.11): + /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.9)(vite@5.0.11): resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} engines: {node: ^18.0.0 || >=20} peerDependencies: @@ -1053,28 +1040,28 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.8)(vite@5.0.11) + '@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.9)(vite@5.0.11) debug: 4.3.4 - svelte: 4.2.8 + svelte: 4.2.9 vite: 5.0.11(@types/node@20.11.5) transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@3.0.1(svelte@4.2.8)(vite@5.0.11): + /@sveltejs/vite-plugin-svelte@3.0.1(svelte@4.2.9)(vite@5.0.11): resolution: {integrity: sha512-CGURX6Ps+TkOovK6xV+Y2rn8JKa8ZPUHPZ/NKgCxAmgBrXReavzFl8aOSCj3kQ1xqT7yGJj53hjcV/gqwDAaWA==} engines: {node: ^18.0.0 || >=20} peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.11) + '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.9)(vite@5.0.11) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.5 - svelte: 4.2.8 - svelte-hmr: 0.15.3(svelte@4.2.8) + svelte: 4.2.9 + svelte-hmr: 0.15.3(svelte@4.2.9) vite: 5.0.11(@types/node@20.11.5) vitefu: 0.2.5(vite@5.0.11) transitivePeerDependencies: @@ -1111,8 +1098,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==} + /@typescript-eslint/eslint-plugin@6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1123,11 +1110,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.18.1 - '@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/type-utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -1140,8 +1127,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==} + /@typescript-eslint/parser@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1150,10 +1137,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.18.1 - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -1161,16 +1148,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.18.1: - resolution: {integrity: sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==} + /@typescript-eslint/scope-manager@6.19.0: + resolution: {integrity: sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/visitor-keys': 6.19.0 dev: true - /@typescript-eslint/type-utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==} + /@typescript-eslint/type-utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1179,8 +1166,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -1189,13 +1176,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.18.1: - resolution: {integrity: sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==} + /@typescript-eslint/types@6.19.0: + resolution: {integrity: sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.18.1(typescript@5.3.3): - resolution: {integrity: sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==} + /@typescript-eslint/typescript-estree@6.19.0(typescript@5.3.3): + resolution: {integrity: sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1203,8 +1190,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1216,8 +1203,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==} + /@typescript-eslint/utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1225,9 +1212,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.18.1 - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -1235,11 +1222,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.18.1: - resolution: {integrity: sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==} + /@typescript-eslint/visitor-keys@6.19.0: + resolution: {integrity: sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/types': 6.19.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1275,8 +1262,8 @@ packages: - supports-color dev: true - /@vercel/speed-insights@1.0.3: - resolution: {integrity: sha512-bKIt0HDdF6hP2bJZyS+za3k6sKeAXNRLSIUbwVwvyvKdsHBWS6ILBvmD1wXHZZyTqjU1TP7dTE/F6lHM6rBdKA==} + /@vercel/speed-insights@1.0.4: + resolution: {integrity: sha512-Q7O0bnV11KUqNKAKA984YWIGxCjqgOuJdwH1cdItqlkUVTLbIm8BhObro6hJobGMSUHm+z7xjQ0YbC8ps1ekDg==} requiresBuild: true dev: false @@ -1391,15 +1378,15 @@ packages: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} dev: true - /autoprefixer@10.4.16(postcss@8.4.33): - resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + /autoprefixer@10.4.17(postcss@8.4.33): + resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: browserslist: 4.22.2 - caniuse-lite: 1.0.30001576 + caniuse-lite: 1.0.30001578 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -1407,8 +1394,8 @@ packages: postcss-value-parser: 4.2.0 dev: true - /axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + /axobject-query@4.0.0: + resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} dependencies: dequal: 2.0.3 @@ -1430,15 +1417,15 @@ packages: file-uri-to-path: 1.0.0 dev: true - /bits-ui@0.14.0(svelte@4.2.8): + /bits-ui@0.14.0(svelte@4.2.9): resolution: {integrity: sha512-S1LNwp/Sge1Ro1g0iJ+msIUeJYmoNhXBFShnLDOUOKQe3JG1wd027KxZnVd7db6UWr1IqlJdd4/bbB7NYXeYDw==} peerDependencies: svelte: ^4.0.0 dependencies: '@internationalized/date': 3.5.1 - '@melt-ui/svelte': 0.68.0(svelte@4.2.8) + '@melt-ui/svelte': 0.68.0(svelte@4.2.9) nanoid: 5.0.4 - svelte: 4.2.8 + svelte: 4.2.9 dev: false /brace-expansion@1.1.11: @@ -1464,8 +1451,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001576 - electron-to-chromium: 1.4.630 + caniuse-lite: 1.0.30001578 + electron-to-chromium: 1.4.637 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) dev: true @@ -1487,8 +1474,8 @@ packages: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} dev: false - /caniuse-lite@1.0.30001576: - resolution: {integrity: sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==} + /caniuse-lite@1.0.30001578: + resolution: {integrity: sha512-J/jkFgsQ3NEl4w2lCoM9ZPxrD+FoBNJ7uJUpGVjIg/j0OwJosWM36EPDv+Yyi0V4twBk9pPmlFS+PLykgEvUmg==} dev: true /chalk@4.1.2: @@ -1714,8 +1701,8 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - /electron-to-chromium@1.4.630: - resolution: {integrity: sha512-osHqhtjojpCsACVnuD11xO5g9xaCyw7Qqn/C2KParkMv42i8jrJJgx3g7mkHfpxwhy9MnOJr8+pKOdZ7qzgizg==} + /electron-to-chromium@1.4.637: + resolution: {integrity: sha512-G7j3UCOukFtxVO1vWrPQUoDk3kL70mtvjc/DC/k2o7lE0wAdq+Vwp1ipagOow+BH0uVztFysLWbkM/RTIrbK3w==} dev: true /emoji-regex@10.3.0: @@ -1794,7 +1781,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-plugin-svelte@2.35.1(eslint@8.56.0)(svelte@4.2.8): + /eslint-plugin-svelte@2.35.1(eslint@8.56.0)(svelte@4.2.9): resolution: {integrity: sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: @@ -1816,8 +1803,8 @@ packages: postcss-safe-parser: 6.0.0(postcss@8.4.33) postcss-selector-parser: 6.0.15 semver: 7.5.4 - svelte: 4.2.8 - svelte-eslint-parser: 0.33.1(svelte@4.2.8) + svelte: 4.2.9 + svelte-eslint-parser: 0.33.1(svelte@4.2.9) transitivePeerDependencies: - supports-color - ts-node @@ -2426,12 +2413,12 @@ packages: yallist: 4.0.0 dev: true - /lucide-svelte@0.311.0(svelte@4.2.8): + /lucide-svelte@0.311.0(svelte@4.2.9): resolution: {integrity: sha512-uqdLXboPovTD4cG7Gxgc2gD+ITHoWByIBg2n+3pjMDBOLM7G2RNmsBtYnGkDTtYfGn1vhPRMq7u/erhn+yjzQQ==} peerDependencies: svelte: '>=3 <5' dependencies: - svelte: 4.2.8 + svelte: 4.2.9 dev: false /magic-string@0.30.5: @@ -2533,12 +2520,12 @@ packages: hasBin: true dev: true - /mode-watcher@0.1.2(svelte@4.2.8): + /mode-watcher@0.1.2(svelte@4.2.9): resolution: {integrity: sha512-XTdPCdqC3kqSvB+Q262Kor983YJkkB2Z3vj9uqg5IqKQpOdiz+xB99Jihp8sWbyM67drC7KKp0Nt5FzCypZi2g==} peerDependencies: svelte: ^4.0.0 dependencies: - svelte: 4.2.8 + svelte: 4.2.9 dev: false /mri@1.2.0: @@ -2885,17 +2872,17 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-plugin-svelte@3.1.2(prettier@3.2.2)(svelte@4.2.8): + /prettier-plugin-svelte@3.1.2(prettier@3.2.4)(svelte@4.2.9): resolution: {integrity: sha512-7xfMZtwgAWHMT0iZc8jN4o65zgbAQ3+O32V6W7pXrqNvKnHnkoyQCGCbKeUyXKZLbYE0YhFRnamfxfkEGxm8qA==} peerDependencies: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 dependencies: - prettier: 3.2.2 - svelte: 4.2.8 + prettier: 3.2.4 + svelte: 4.2.9 dev: true - /prettier-plugin-tailwindcss@0.5.11(prettier-plugin-svelte@3.1.2)(prettier@3.2.2): + /prettier-plugin-tailwindcss@0.5.11(prettier-plugin-svelte@3.1.2)(prettier@3.2.4): resolution: {integrity: sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w==} engines: {node: '>=14.21.3'} peerDependencies: @@ -2944,12 +2931,12 @@ packages: prettier-plugin-twig-melody: optional: true dependencies: - prettier: 3.2.2 - prettier-plugin-svelte: 3.1.2(prettier@3.2.2)(svelte@4.2.8) + prettier: 3.2.4 + prettier-plugin-svelte: 3.1.2(prettier@3.2.4)(svelte@4.2.9) dev: true - /prettier@3.2.2: - resolution: {integrity: sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A==} + /prettier@3.2.4: + resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} engines: {node: '>=14'} hasBin: true dev: true @@ -3086,6 +3073,12 @@ packages: rimraf: 2.7.1 dev: true + /satori-html@0.3.2: + resolution: {integrity: sha512-wjTh14iqADFKDK80e51/98MplTGfxz2RmIzh0GqShlf4a67+BooLywF17TvJPD6phO0Hxm7Mf1N5LtRYvdkYRA==} + dependencies: + ultrahtml: 1.5.2 + dev: false + /satori@0.10.11: resolution: {integrity: sha512-yLm1xPRPZUaKcBZJ6nmezoJjHB4MqV8x7Mu0PyZUJodRWRDD27UbeMwzuY9LEGG57WYLO4CQsGPlbHWV1Ex9TQ==} engines: {node: '>=16'} @@ -3318,7 +3311,7 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /svelte-check@3.6.3(postcss-load-config@5.0.2)(postcss@8.4.33)(svelte@4.2.8): + /svelte-check@3.6.3(postcss-load-config@5.0.2)(postcss@8.4.33)(svelte@4.2.9): resolution: {integrity: sha512-Q2nGnoysxUnB9KjnjpQLZwdjK62DHyW6nuH/gm2qteFnDk0lCehe/6z8TsIvYeKjC6luKaWxiNGyOcWiLLPSwA==} hasBin: true peerDependencies: @@ -3330,8 +3323,8 @@ packages: import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 4.2.8 - svelte-preprocess: 5.1.3(postcss-load-config@5.0.2)(postcss@8.4.33)(svelte@4.2.8)(typescript@5.3.3) + svelte: 4.2.9 + svelte-preprocess: 5.1.3(postcss-load-config@5.0.2)(postcss@8.4.33)(svelte@4.2.9)(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - '@babel/core' @@ -3345,7 +3338,7 @@ packages: - sugarss dev: true - /svelte-eslint-parser@0.33.1(svelte@4.2.8): + /svelte-eslint-parser@0.33.1(svelte@4.2.9): resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3359,27 +3352,27 @@ packages: espree: 9.6.1 postcss: 8.4.33 postcss-scss: 4.0.9(postcss@8.4.33) - svelte: 4.2.8 + svelte: 4.2.9 dev: true - /svelte-hmr@0.15.3(svelte@4.2.8): + /svelte-hmr@0.15.3(svelte@4.2.9): resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 4.2.8 + svelte: 4.2.9 dev: true - /svelte-parse-markup@0.1.2(svelte@4.2.8): + /svelte-parse-markup@0.1.2(svelte@4.2.9): resolution: {integrity: sha512-DycY7DJr7VqofiJ63ut1/NEG92HrWWL56VWITn/cJCu+LlZhMoBkBXT4opUitPEEwbq1nMQbv4vTKUfbOqIW1g==} peerDependencies: svelte: ^3.0.0 || ^4.0.0 dependencies: - svelte: 4.2.8 + svelte: 4.2.9 dev: true - /svelte-preprocess@5.1.3(postcss-load-config@5.0.2)(postcss@8.4.33)(svelte@4.2.8)(typescript@5.3.3): + /svelte-preprocess@5.1.3(postcss-load-config@5.0.2)(postcss@8.4.33)(svelte@4.2.9)(typescript@5.3.3): resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} engines: {node: '>= 16.0.0', pnpm: ^8.0.0} requiresBuild: true @@ -3424,7 +3417,7 @@ packages: postcss-load-config: 5.0.2(postcss@8.4.33) sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 4.2.8 + svelte: 4.2.9 typescript: 5.3.3 dev: true @@ -3432,16 +3425,17 @@ packages: resolution: {integrity: sha512-o+WbHrl426YLDUMgNWJ0yKImmecZ6rFI6WFsrMx7YgsgdaZjtJX0d373TbJ35lzeBqsnMvjdRptl12qE0Mbe9w==} dev: false - /svelte@4.2.8: - resolution: {integrity: sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==} + /svelte@4.2.9: + resolution: {integrity: sha512-hsoB/WZGEPFXeRRLPhPrbRz67PhP6sqYgvwcAs+gWdSQSvNDw+/lTeUJSWe5h2xC97Fz/8QxAOqItwBzNJPU8w==} engines: {node: '>=16'} dependencies: '@ampproject/remapping': 2.2.1 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.21 + '@types/estree': 1.0.5 acorn: 8.11.3 aria-query: 5.3.0 - axobject-query: 3.2.1 + axobject-query: 4.0.0 code-red: 1.0.4 css-tree: 2.3.1 estree-walker: 3.0.3 @@ -3595,6 +3589,10 @@ packages: hasBin: true dev: true + /ultrahtml@1.5.2: + resolution: {integrity: sha512-qh4mBffhlkiXwDAOxvSGxhL0QEQsTbnP9BozOK3OYPEGvPvdWzvAUaXNtUSMdNsKDtuyjEbyVUPFZ52SSLhLqw==} + dev: false + /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} diff --git a/src/lib/assets/og/Geist-Bold.woff b/src/lib/assets/og/Geist-Bold.woff new file mode 100644 index 0000000..081ecdf Binary files /dev/null and b/src/lib/assets/og/Geist-Bold.woff differ diff --git a/src/lib/assets/og/Geist-Regular.woff b/src/lib/assets/og/Geist-Regular.woff new file mode 100644 index 0000000..2ecd060 Binary files /dev/null and b/src/lib/assets/og/Geist-Regular.woff differ diff --git a/src/lib/assets/og/me.jpg b/src/lib/assets/og/me.jpg new file mode 100644 index 0000000..89a6057 Binary files /dev/null and b/src/lib/assets/og/me.jpg differ diff --git a/src/lib/components/site/opengraph-image.svelte b/src/lib/components/site/opengraph-image.svelte index 1912a67..d0e2c81 100644 --- a/src/lib/components/site/opengraph-image.svelte +++ b/src/lib/components/site/opengraph-image.svelte @@ -1,19 +1,32 @@
+ {subTitle} +
+