From d891509e44aa60e9060e6cb6973b84629a8f4e70 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Tue, 19 Sep 2023 19:43:00 -0500 Subject: [PATCH] Import ImageResponse from next/server --- package.json | 1 - pnpm-lock.yaml | 125 ------------------ src/app/(static)/home-image/route.tsx | 4 +- src/app/(static)/p/[photoId]/image/route.tsx | 4 +- src/app/(static)/t/[tag]/image/route.tsx | 4 +- .../(static)/template-image-tight/route.tsx | 4 +- src/app/(static)/template-image/route.tsx | 4 +- 7 files changed, 10 insertions(+), 136 deletions(-) diff --git a/package.json b/package.json index 33ae4344..64937fd4 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,6 @@ "@typescript-eslint/parser": "^6.7.2", "@vercel/analytics": "^1.0.2", "@vercel/blob": "^0.12.4", - "@vercel/og": "^0.5.14", "@vercel/postgres": "^0.4.2", "autoprefixer": "10.4.15", "camelcase-keys": "^9.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ced5ca8c..68c52e09 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,6 @@ specifiers: '@typescript-eslint/parser': ^6.7.2 '@vercel/analytics': ^1.0.2 '@vercel/blob': ^0.12.4 - '@vercel/og': ^0.5.14 '@vercel/postgres': ^0.4.2 autoprefixer: 10.4.15 camelcase-keys: ^9.0.0 @@ -39,7 +38,6 @@ dependencies: '@typescript-eslint/parser': 6.7.2_rngtr6f3b25lvetpihwplgecf4 '@vercel/analytics': 1.0.2 '@vercel/blob': 0.12.4 - '@vercel/og': 0.5.14 '@vercel/postgres': 0.4.2 autoprefixer: 10.4.15_postcss@8.4.30 camelcase-keys: 9.0.0 @@ -380,24 +378,10 @@ packages: resolution: {integrity: sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==} dev: false - /@resvg/resvg-wasm/2.4.1: - resolution: {integrity: sha512-yi6R0HyHtsoWTRA06Col4WoDs7SvlXU3DLMNP2bdAgs7HK18dTEVl1weXgxRzi8gwLteGUbIg29zulxIB3GSdg==} - engines: {node: '>= 10'} - dev: false - /@rushstack/eslint-patch/1.3.3: resolution: {integrity: sha512-0xd7qez0AQ+MbHatZTlI1gu5vkG8r7MYRUJAHPAHJBmGLs16zpkrpAVLvjQKQOqaXPDUBwOiJzNc00znHSCVBw==} dev: false - /@shuding/opentype.js/1.4.0-beta.0: - resolution: {integrity: sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA==} - engines: {node: '>= 8.0.0'} - hasBin: true - dependencies: - fflate: 0.7.4 - string.prototype.codepointat: 0.2.1 - dev: false - /@sinclair/typebox/0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: false @@ -670,15 +654,6 @@ packages: - utf-8-validate dev: false - /@vercel/og/0.5.14: - resolution: {integrity: sha512-2UOkXYgzorv4g2EZdRdy3b343DQC7WJyBq0T0MMf63UH8YUmbOCir7ULB0kgonrUoiL9qIq+E8eeSmHDLYHAdQ==} - engines: {node: '>=16'} - dependencies: - '@resvg/resvg-wasm': 2.4.1 - satori: 0.10.6 - yoga-wasm-web: 0.3.3 - dev: false - /@vercel/postgres/0.4.2: resolution: {integrity: sha512-jwGBhozSPQBuFVgiXLunpW8iys3qMGyXhTSp7xKVrZjD3hJHunO+i1J6Yq2VP2FNSw36lSg1J2vDzkdOE3303g==} engines: {node: '>=14.6'} @@ -914,11 +889,6 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: false - /base64-js/0.0.8: - resolution: {integrity: sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==} - engines: {node: '>= 0.4'} - dev: false - /binary-extensions/2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -996,10 +966,6 @@ packages: engines: {node: '>=16'} dev: false - /camelize/1.0.1: - resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - dev: false - /caniuse-lite/1.0.30001534: resolution: {integrity: sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==} dev: false @@ -1096,27 +1062,6 @@ packages: which: 2.0.2 dev: false - /css-background-parser/0.1.0: - resolution: {integrity: sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==} - dev: false - - /css-box-shadow/1.0.0-3: - resolution: {integrity: sha512-9jaqR6e7Ohds+aWwmhe6wILJ99xYQbfmK9QQB9CcMjDbTxPZjwEmUQpU91OG05Xgm8BahT5fW+svbsQGjS/zPg==} - dev: false - - /css-color-keywords/1.0.0: - resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} - engines: {node: '>=4'} - dev: false - - /css-to-react-native/3.2.0: - resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} - dependencies: - camelize: 1.0.1 - css-color-keywords: 1.0.0 - postcss-value-parser: 4.2.0 - dev: false - /cssesc/3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -1261,10 +1206,6 @@ packages: resolution: {integrity: sha512-Frfus2VpYADsrh1lB3v/ft/WVFlVzOIm+Q0p7U7VqHI6qr7NWHYKe+Wif3W50n7JAFoBsWVsoU0+qDks6WQ60g==} dev: false - /emoji-regex/10.2.1: - resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==} - dev: false - /emoji-regex/9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: false @@ -1375,10 +1316,6 @@ packages: engines: {node: '>=6'} dev: false - /escape-html/1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - dev: false - /escape-string-regexp/1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -1715,10 +1652,6 @@ packages: reusify: 1.0.4 dev: false - /fflate/0.7.4: - resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} - dev: false - /file-entry-cache/6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -1979,11 +1912,6 @@ packages: function-bind: 1.1.1 dev: false - /hex-rgb/4.3.0: - resolution: {integrity: sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw==} - engines: {node: '>=6'} - dev: false - /html-encoding-sniffer/3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} @@ -2417,13 +2345,6 @@ packages: engines: {node: '>=10'} dev: false - /linebreak/1.1.0: - resolution: {integrity: sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==} - dependencies: - base64-js: 0.0.8 - unicode-trie: 2.0.0 - dev: false - /lines-and-columns/1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: false @@ -2728,10 +2649,6 @@ packages: p-limit: 3.1.0 dev: false - /pako/0.2.9: - resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} - dev: false - /parent-module/1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -2739,13 +2656,6 @@ packages: callsites: 3.1.0 dev: false - /parse-css-color/0.2.1: - resolution: {integrity: sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg==} - dependencies: - color-name: 1.1.4 - hex-rgb: 4.3.0 - dev: false - /parse5/7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: @@ -3119,22 +3029,6 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: false - /satori/0.10.6: - resolution: {integrity: sha512-bhAAnh+ZZgulFpxoDi5AB1VA3MsN6AnhB0Elfdj5bQitn4N9GHAB3MC5eFauOnXHF7a9TT1jIPHhUY4JQsP6Xg==} - engines: {node: '>=16'} - dependencies: - '@shuding/opentype.js': 1.4.0-beta.0 - css-background-parser: 0.1.0 - css-box-shadow: 1.0.0-3 - css-to-react-native: 3.2.0 - emoji-regex: 10.2.1 - escape-html: 1.0.3 - linebreak: 1.1.0 - parse-css-color: 0.2.1 - postcss-value-parser: 4.2.0 - yoga-wasm-web: 0.3.3 - dev: false - /sax/1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} dev: false @@ -3233,10 +3127,6 @@ packages: engines: {node: '>=10.0.0'} dev: false - /string.prototype.codepointat/0.2.1: - resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} - dev: false - /string.prototype.matchall/4.0.10: resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} dependencies: @@ -3400,10 +3290,6 @@ packages: any-promise: 1.3.0 dev: false - /tiny-inflate/1.0.3: - resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} - dev: false - /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -3542,13 +3428,6 @@ packages: busboy: 1.6.0 dev: false - /unicode-trie/2.0.0: - resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} - dependencies: - pako: 0.2.9 - tiny-inflate: 1.0.3 - dev: false - /universalify/0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -3747,10 +3626,6 @@ packages: engines: {node: '>=10'} dev: false - /yoga-wasm-web/0.3.3: - resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} - dev: false - /zod/3.21.4: resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} dev: false diff --git a/src/app/(static)/home-image/route.tsx b/src/app/(static)/home-image/route.tsx index ce84e246..cc160399 100644 --- a/src/app/(static)/home-image/route.tsx +++ b/src/app/(static)/home-image/route.tsx @@ -6,7 +6,7 @@ import { } from '@/photo/image-response'; import HomeImageResponse from '@/photo/image-response/HomeImageResponse'; import { getPhotos } from '@/services/postgres'; -import { ImageResponse } from '@vercel/og'; +import { ImageResponse } from 'next/server'; export const runtime = 'edge'; @@ -23,5 +23,5 @@ export async function GET(request: Request) { return new ImageResponse( , { width, height, headers }, - ) as Response; + ); } diff --git a/src/app/(static)/p/[photoId]/image/route.tsx b/src/app/(static)/p/[photoId]/image/route.tsx index 2e5b5487..088fcd37 100644 --- a/src/app/(static)/p/[photoId]/image/route.tsx +++ b/src/app/(static)/p/[photoId]/image/route.tsx @@ -4,7 +4,7 @@ import { IMAGE_OG_SIZE } from '@/photo/image-response'; import PhotoImageResponse from '@/photo/image-response/PhotoImageResponse'; import { getPhoto } from '@/services/postgres'; import { getIBMPlexMonoMedium } from '@/site/font'; -import { ImageResponse } from '@vercel/og'; +import { ImageResponse } from 'next/server'; export const runtime = 'edge'; @@ -25,5 +25,5 @@ export async function GET(request: Request, context: any){ return new ImageResponse( , { width, height, fonts, headers }, - ) as Response; + ); } diff --git a/src/app/(static)/t/[tag]/image/route.tsx b/src/app/(static)/t/[tag]/image/route.tsx index 249d1d93..8429efb9 100644 --- a/src/app/(static)/t/[tag]/image/route.tsx +++ b/src/app/(static)/t/[tag]/image/route.tsx @@ -7,7 +7,7 @@ import { import TagImageResponse from '@/photo/image-response/TagImageResponse'; import { getPhotos } from '@/services/postgres'; import { getIBMPlexMonoMedium } from '@/site/font'; -import { ImageResponse } from '@vercel/og'; +import { ImageResponse } from 'next/server'; export const runtime = 'edge'; @@ -31,5 +31,5 @@ export async function GET(request: Request, context: any) { return new ImageResponse( , { width, height, fonts, headers }, - ) as Response; + ); } diff --git a/src/app/(static)/template-image-tight/route.tsx b/src/app/(static)/template-image-tight/route.tsx index 0c3792dc..ee02cf6c 100644 --- a/src/app/(static)/template-image-tight/route.tsx +++ b/src/app/(static)/template-image-tight/route.tsx @@ -8,7 +8,7 @@ import TemplateImageResponse from '@/photo/image-response/TemplateImageResponse'; import { getPhotos } from '@/services/postgres'; import { getIBMPlexMonoMedium } from '@/site/font'; -import { ImageResponse } from '@vercel/og'; +import { ImageResponse } from 'next/server'; export const runtime = 'edge'; @@ -42,5 +42,5 @@ export async function GET(request: Request) { fonts, headers, }, - ) as Response; + ); } diff --git a/src/app/(static)/template-image/route.tsx b/src/app/(static)/template-image/route.tsx index 5a089de1..0c788940 100644 --- a/src/app/(static)/template-image/route.tsx +++ b/src/app/(static)/template-image/route.tsx @@ -8,7 +8,7 @@ import TemplateImageResponse from '@/photo/image-response/TemplateImageResponse'; import { getPhotos } from '@/services/postgres'; import { getIBMPlexMonoMedium } from '@/site/font'; -import { ImageResponse } from '@vercel/og'; +import { ImageResponse } from 'next/server'; export const runtime = 'edge'; @@ -33,5 +33,5 @@ export async function GET(request: Request) { }}/> ), { width, height, fonts, headers }, - ) as Response; + ); }