diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 57312c0f..4fdcf12f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -7,6 +7,11 @@ updates: interval: weekly cooldown: default-days: 7 + # @takumi-rs >= 1.x crashes the Vercel Node lambda (process exit 128, + # empty /api/og responses) while working locally. Pinned to 0.62.8 until + # a newer release is verified against a production deployment. + ignore: + - dependency-name: "@takumi-rs/*" groups: production: dependency-type: production diff --git a/package.json b/package.json index 7603354f..5976085b 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,8 @@ "@iconify-json/simple-icons": "^1.2.87", "@monaco-editor/react": "^4.7.0", "@shikijs/rehype": "^4.3.0", - "@takumi-rs/image-response": "1.8.7", - "@takumi-rs/wasm": "1.8.7", + "@takumi-rs/image-response": "0.62.8", + "@takumi-rs/wasm": "0.62.8", "@tanstack/react-query": "^5.101.1", "@vercel/analytics": "^2.0.1", "@vercel/speed-insights": "^2.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c56eba55..dd5d7dc2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,11 +34,11 @@ importers: specifier: ^4.3.0 version: 4.3.0 '@takumi-rs/image-response': - specifier: 1.8.7 - version: 1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: 0.62.8 + version: 0.62.8 '@takumi-rs/wasm': - specifier: 1.8.7 - version: 1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: 0.62.8 + version: 0.62.8 '@tanstack/react-query': specifier: ^5.101.1 version: 5.101.2(react@19.2.7) @@ -1504,24 +1504,12 @@ packages: cpu: [arm64] os: [darwin] - '@takumi-rs/core-darwin-arm64@1.8.7': - resolution: {integrity: sha512-an8vc2B/Qf9vo3uwDmJ6WKazpMBpDruRy/kXr+x98GfIkzMHDEUy+9EgNfUYxprtZo49cJruXrVwzxsqqW+1tA==} - engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} - cpu: [arm64] - os: [darwin] - '@takumi-rs/core-darwin-x64@0.62.8': resolution: {integrity: sha512-2a9TzXpPkpUUBc3dSU3BZAriBuLTPpVc0LzIvI72sp9qyYAVn5Itry+z1Xl+nt5As/xkFdOJccqQxe7tLLBtpQ==} engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} cpu: [x64] os: [darwin] - '@takumi-rs/core-darwin-x64@1.8.7': - resolution: {integrity: sha512-q0xQxmb4y4EwYK3ILMBvWvqLGX8gxsqcEas0zOwNbPnxBLTQFF8KVH4jXaKXLUFwj020lu8nsf1BNvLIkJMo3Q==} - engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} - cpu: [x64] - os: [darwin] - '@takumi-rs/core-linux-arm64-gnu@0.62.8': resolution: {integrity: sha512-e8Oe1aOFew+1rbu9y5JRaDvLqw4FqGJx1uPLo5mfdYQKWZ3ltdFseRUCCQI3rOXMXKz6uIWRuHd3Qw5sBp+wJg==} engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} @@ -1529,13 +1517,6 @@ packages: os: [linux] libc: [glibc] - '@takumi-rs/core-linux-arm64-gnu@1.8.7': - resolution: {integrity: sha512-uZ6l792M4Mc06XG+m+8RarTgdR5o1ZLjncULKUEPAw3nBKhRbJ50Re3aLM4n4+p25iOj1oL9QwEZRcaJn8u/Ag==} - engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@takumi-rs/core-linux-arm64-musl@0.62.8': resolution: {integrity: sha512-qR04H4DQfFsKmkl2kq/fh48zTC3QqBdvHjmHzJUckIktvJPKk1aK+jERIXeARkH6pfQuq+NI5Kbl1t9//qb8nQ==} engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} @@ -1543,13 +1524,6 @@ packages: os: [linux] libc: [musl] - '@takumi-rs/core-linux-arm64-musl@1.8.7': - resolution: {integrity: sha512-akVy80ztI2as/b0n0EVCfHNKhibp+Od4ioP49PtX2rQMi6KDtqv3aoCIjaBls8oxzv+4x77/2U9fsWIO2XZQjg==} - engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} - cpu: [arm64] - os: [linux] - libc: [musl] - '@takumi-rs/core-linux-x64-gnu@0.62.8': resolution: {integrity: sha512-/LouBAUVqK5/H3pwzOnitRz4JEJNrGJEN/L3TU0375M+uXFewWAl2iSwFqgMt9vCtKPrKa/oK+Iy3pdvFAnX2w==} engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} @@ -1557,13 +1531,6 @@ packages: os: [linux] libc: [glibc] - '@takumi-rs/core-linux-x64-gnu@1.8.7': - resolution: {integrity: sha512-SV1YesGs/HfC1CMpSF5SqS6KbL4hDLvD2m54JcfB+X/0xatmo/CS2XleqoIXhSmR+95X8Of5g2vg1a4TAdpcug==} - engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} - cpu: [x64] - os: [linux] - libc: [glibc] - '@takumi-rs/core-linux-x64-musl@0.62.8': resolution: {integrity: sha512-FIt0fpowyh9dse8F29cYBPVhrdc7Zzjz1pEyJunNzIzCIpC0yG3eUwFnK0wsoYoyzbgVZkbLRFRRAFmUORLvDg==} engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} @@ -1571,71 +1538,31 @@ packages: os: [linux] libc: [musl] - '@takumi-rs/core-linux-x64-musl@1.8.7': - resolution: {integrity: sha512-zprYQ/ivPDmYX4tFaONiAzoDJNTANA3kqfIe7SMHZ2YhkfEhYnr3PE3XtBytgB4W/VlTc9WQLyD77SKwPnPuFw==} - engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} - cpu: [x64] - os: [linux] - libc: [musl] - '@takumi-rs/core-win32-arm64-msvc@0.62.8': resolution: {integrity: sha512-ucQmG2bp6yH+7oNQUev+0re+6FBHUOUcee4mwpQa+BKCtUSgkgQuw3ZAGdyXBQEfr3NrNsMqfc47b3Ljv3bIWA==} engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} cpu: [arm64] os: [win32] - '@takumi-rs/core-win32-arm64-msvc@1.8.7': - resolution: {integrity: sha512-2S5YcgIj/c0E3sLzWDcxzlXoPvEjR2xC1v7yODe0CvimlRx95Df6rJ9idTS6E1KNUjDaTfqxTr8Ud4gWqYrrPg==} - engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} - cpu: [arm64] - os: [win32] - '@takumi-rs/core-win32-x64-msvc@0.62.8': resolution: {integrity: sha512-KxntZ5d7Cu87WQx0AUw0yzZ3AQuTjeTPZMe4MhYdQbgqw4y6hyOqUL3fz8z80/jh6XxLNHBgcBC0nn9FvJnvSw==} engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} cpu: [x64] os: [win32] - '@takumi-rs/core-win32-x64-msvc@1.8.7': - resolution: {integrity: sha512-sooiM6fL0JN597ciNAFVp9F7YxCW+8hXpwu/7wRMRo0TGQ/KMi1Y94tf1FUu2csCHN0pgy9a3y09y8+qnw3FTw==} - engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} - cpu: [x64] - os: [win32] - '@takumi-rs/core@0.62.8': resolution: {integrity: sha512-1KNknsY0r9+fhvMD4gijFuJ2qx63JIVII1dZLiz8/YuZ3mFd9IFW90RTeeAdsP83lNCn6nWCrR8W2hLQgjjCCg==} engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} - '@takumi-rs/core@1.8.7': - resolution: {integrity: sha512-Ia8I3vg0VAQPnzHiYRrd18UgZbIj3X0zMwWMjuTm3yb2TBH1988lPwnnlf+eAfYMwZrutNiXLLtgEnkzsm2gMw==} - engines: {node: '>= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0'} - '@takumi-rs/helpers@0.62.8': resolution: {integrity: sha512-9qRFeuk0yTvAeVAaQoU2uW1XeigbTBta/fTReHxEsa0hYqyJe4gM4YicA0D29tfObhSRJUN/j2b2WmHuADAmcQ==} - '@takumi-rs/helpers@1.8.7': - resolution: {integrity: sha512-5dSR9W8msQ7Asp4TCvUUB9Bt8yLgIc2ASjWtEG4Jn9xSuAVJLWFZ21Xl8HShW5GE6SV5aCCM9BL0NA9YuBWIJw==} - peerDependencies: - react: ^19.2.5 - react-dom: ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - '@takumi-rs/image-response@0.62.8': resolution: {integrity: sha512-he79pvjif5psP8jyDiugUph3qbvKl7SaMetIuYUCI1asES5NMW3yw/nY2zQd73gqwqverhfnOEO/k4we6UxiIA==} - '@takumi-rs/image-response@1.8.7': - resolution: {integrity: sha512-OL7kvQ9o8CBf9v47j6NZOyMAXsqu6WCHS2F8nOUffwGxGn1pFaFGKoTn8P3u1NUWQ97mJJVk7dnXZpBCnC492Q==} - '@takumi-rs/wasm@0.62.8': resolution: {integrity: sha512-V3L4LMoa1hqUxYel+j2oaIYhx7TdfSI/5iStU+7sTDru3o0gwJxw923jG66/F+lLSPGeY4rmYejcJCJN5VfpBA==} - '@takumi-rs/wasm@1.8.7': - resolution: {integrity: sha512-LVBBMcYdvA0a+w1DRCwjYhFPTFVWd+oYW7kY8jMeBYEX+l0HF8PHbjWCOMDbW8iA80489UGx4fG2frLE+MKcMg==} - '@tanstack/query-core@5.101.2': resolution: {integrity: sha512-hH5MLoJhF7KaIGd7q3xTXGXvslI+GYlM1Z/35aSHHWaCJWB7XvTSHYuV3eM7tw+aE0mT/xMro4M4Q9rCGHT0lw==} @@ -4483,9 +4410,6 @@ packages: tailwindcss@4.3.2: resolution: {integrity: sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA==} - takumi-js@1.8.7: - resolution: {integrity: sha512-vJ4znkQvSecOkiAwge2P7lkwF6GFEbQIPD1C1EebyQq3x2xcE2+Wu9HkUVlMOuh3Un9p/GBHePr0jNpUCwHQOQ==} - tapable@2.3.3: resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} @@ -6534,51 +6458,27 @@ snapshots: '@takumi-rs/core-darwin-arm64@0.62.8': optional: true - '@takumi-rs/core-darwin-arm64@1.8.7': - optional: true - '@takumi-rs/core-darwin-x64@0.62.8': optional: true - '@takumi-rs/core-darwin-x64@1.8.7': - optional: true - '@takumi-rs/core-linux-arm64-gnu@0.62.8': optional: true - '@takumi-rs/core-linux-arm64-gnu@1.8.7': - optional: true - '@takumi-rs/core-linux-arm64-musl@0.62.8': optional: true - '@takumi-rs/core-linux-arm64-musl@1.8.7': - optional: true - '@takumi-rs/core-linux-x64-gnu@0.62.8': optional: true - '@takumi-rs/core-linux-x64-gnu@1.8.7': - optional: true - '@takumi-rs/core-linux-x64-musl@0.62.8': optional: true - '@takumi-rs/core-linux-x64-musl@1.8.7': - optional: true - '@takumi-rs/core-win32-arm64-msvc@0.62.8': optional: true - '@takumi-rs/core-win32-arm64-msvc@1.8.7': - optional: true - '@takumi-rs/core-win32-x64-msvc@0.62.8': optional: true - '@takumi-rs/core-win32-x64-msvc@1.8.7': - optional: true - '@takumi-rs/core@0.62.8': optionalDependencies: '@takumi-rs/core-darwin-arm64': 0.62.8 @@ -6590,51 +6490,16 @@ snapshots: '@takumi-rs/core-win32-arm64-msvc': 0.62.8 '@takumi-rs/core-win32-x64-msvc': 0.62.8 - '@takumi-rs/core@1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': - dependencies: - '@takumi-rs/helpers': 1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - optionalDependencies: - '@takumi-rs/core-darwin-arm64': 1.8.7 - '@takumi-rs/core-darwin-x64': 1.8.7 - '@takumi-rs/core-linux-arm64-gnu': 1.8.7 - '@takumi-rs/core-linux-arm64-musl': 1.8.7 - '@takumi-rs/core-linux-x64-gnu': 1.8.7 - '@takumi-rs/core-linux-x64-musl': 1.8.7 - '@takumi-rs/core-win32-arm64-msvc': 1.8.7 - '@takumi-rs/core-win32-x64-msvc': 1.8.7 - transitivePeerDependencies: - - react - - react-dom - '@takumi-rs/helpers@0.62.8': {} - '@takumi-rs/helpers@1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': - optionalDependencies: - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) - '@takumi-rs/image-response@0.62.8': dependencies: '@takumi-rs/core': 0.62.8 '@takumi-rs/helpers': 0.62.8 '@takumi-rs/wasm': 0.62.8 - '@takumi-rs/image-response@1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': - dependencies: - takumi-js: 1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - transitivePeerDependencies: - - react - - react-dom - '@takumi-rs/wasm@0.62.8': {} - '@takumi-rs/wasm@1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': - dependencies: - '@takumi-rs/helpers': 1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - transitivePeerDependencies: - - react - - react-dom - '@tanstack/query-core@5.101.2': {} '@tanstack/react-query@5.101.2(react@19.2.7)': @@ -9884,15 +9749,6 @@ snapshots: tailwindcss@4.3.2: {} - takumi-js@1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7): - dependencies: - '@takumi-rs/core': 1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@takumi-rs/helpers': 1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@takumi-rs/wasm': 1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - transitivePeerDependencies: - - react - - react-dom - tapable@2.3.3: {} tapimo@0.0.1(47b4da253b92221772db99feea9caf9e): diff --git a/src/pages/_api/api/og.tsx b/src/pages/_api/api/og.tsx index d10edb68..e135d199 100644 --- a/src/pages/_api/api/og.tsx +++ b/src/pages/_api/api/og.tsx @@ -223,6 +223,10 @@ export default async function handler(request: Request) { module: wasmModule, width: 1200, height: 657, + // Explicit PNG: some social crawlers (notably Facebook) don't render + // WebP og:images, and takumi's default format has changed across + // versions. + format: 'png', fonts: [ { name: 'HBSet', data: hbSetFont, weight: 300, style: 'normal' as const }, { name: 'Pilat', data: pilatFont, weight: 400, style: 'normal' as const },