diff --git a/app/routes/[_]actions.newsletter.tsx b/app/routes/[_]actions.newsletter.tsx index e0a7f7b8..594c8251 100644 --- a/app/routes/[_]actions.newsletter.tsx +++ b/app/routes/[_]actions.newsletter.tsx @@ -1,4 +1,4 @@ -import { json } from "@remix-run/node"; +import { unstable_data as data } from "@remix-run/node"; import type { ActionFunctionArgs } from "@remix-run/node"; import { subscribeToNewsletter } from "~/lib/convertkit"; import { requirePost } from "~/lib/http.server"; @@ -9,14 +9,14 @@ export const action = async ({ request }: ActionFunctionArgs) => { let body = new URLSearchParams(await request.text()); let email = body.get("email"); if (typeof email !== "string" || email.indexOf("@") === -1) { - return json({ error: "Invalid Email", ok: false }, { status: 400 }); + return data({ error: "Invalid Email", ok: false }, { status: 400 }); } try { await subscribeToNewsletter(email); } catch (e: any) { - return json({ error: e.message || "Unknown error", ok: false }); + return data({ error: e.message || "Unknown error", ok: false }); } - return json({ error: null, ok: true }); + return data({ error: null, ok: true }); }; diff --git a/app/routes/docs.$lang.$ref.$.tsx b/app/routes/docs.$lang.$ref.$.tsx index d418fd0b..f79a5271 100644 --- a/app/routes/docs.$lang.$ref.$.tsx +++ b/app/routes/docs.$lang.$ref.$.tsx @@ -7,12 +7,8 @@ import { useParams, useRouteError, } from "@remix-run/react"; -import { json } from "@remix-run/node"; -import type { - HeadersFunction, - LoaderFunctionArgs, - SerializeFrom, -} from "@remix-run/node"; +import { unstable_data as data } from "@remix-run/node"; +import type { HeadersFunction, LoaderFunctionArgs } from "@remix-run/node"; import type { MetaFunction } from "@remix-run/react"; import { CACHE_CONTROL, handleRedirects } from "~/lib/http.server"; import invariant from "tiny-invariant"; @@ -36,7 +32,7 @@ export async function loader({ params, request }: LoaderFunctionArgs) { : `docs/${params["*"] || "index"}`; let doc = await getRepoDoc(params.ref, slug); if (!doc) throw null; - return json( + return data( { doc, siteUrl, ogImageUrl }, { headers: { "Cache-Control": CACHE_CONTROL.DEFAULT } }, ); @@ -47,7 +43,7 @@ export async function loader({ params, request }: LoaderFunctionArgs) { // to a missing slug on an old version or tag, then a 404 feels appropriate. handleRedirects(`/docs/${params["*"]}`); } - throw json(null, { status: 404 }); + throw data(null, { status: 404 }); } } @@ -156,7 +152,7 @@ export default function DocPage() { ); } -function LargeOnThisPage({ doc }: { doc: SerializeFrom }) { +function LargeOnThisPage({ doc }: { doc: Doc }) { return (
@@ -182,7 +178,7 @@ function LargeOnThisPage({ doc }: { doc: SerializeFrom }) { ); } -function SmallOnThisPage({ doc }: { doc: SerializeFrom }) { +function SmallOnThisPage({ doc }: { doc: Doc }) { return (
diff --git a/package-lock.json b/package-lock.json index 420e6333..383f1577 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,9 +10,9 @@ "dependencies": { "@docsearch/css": "^3.5.2", "@docsearch/react": "^3.5.2", - "@remix-run/express": "2.11.2", - "@remix-run/node": "2.11.2", - "@remix-run/react": "2.11.2", + "@remix-run/express": "2.12.0", + "@remix-run/node": "2.12.0", + "@remix-run/react": "2.12.0", "cheerio": "^1.0.0-rc.12", "clsx": "^2.1.0", "compression": "^1.7.4", @@ -47,7 +47,7 @@ "remark-html": "^16.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.0", - "remix": "2.11.2", + "remix": "2.12.0", "satori": "^0.10.14", "semver": "^7.5.4", "shiki": "^0.14.7", @@ -64,8 +64,8 @@ "zod": "^3.22.4" }, "devDependencies": { - "@remix-run/dev": "2.11.2", - "@remix-run/eslint-config": "2.11.2", + "@remix-run/dev": "2.12.0", + "@remix-run/eslint-config": "2.12.0", "@testing-library/jest-dom": "^6.2.0", "@types/follow-redirects": "^1.14.4", "@types/gunzip-maybe": "^1.4.2", @@ -2831,9 +2831,9 @@ } }, "node_modules/@remix-run/dev": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@remix-run/dev/-/dev-2.11.2.tgz", - "integrity": "sha512-9DGb2UOIO4jOdws04Z+KmCeEBqbP36XvJZdcd4w16wDGI0I1ZY1c5ro58tB/7zPwN40s9MD9UzCYm6P+EkdeAg==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@remix-run/dev/-/dev-2.12.0.tgz", + "integrity": "sha512-/87YQORdlJg5YChd7nVBM/hRXHZA4GfUjhKbZyNrh03bazCQBF+6EsXbzpJ6cCFOpZgecsN0Xv648Qw0VuJjwg==", "dev": true, "license": "MIT", "dependencies": { @@ -2847,9 +2847,9 @@ "@babel/types": "^7.22.5", "@mdx-js/mdx": "^2.3.0", "@npmcli/package-json": "^4.0.1", - "@remix-run/node": "2.11.2", - "@remix-run/router": "1.19.1", - "@remix-run/server-runtime": "2.11.2", + "@remix-run/node": "2.12.0", + "@remix-run/router": "1.19.2", + "@remix-run/server-runtime": "2.12.0", "@types/mdx": "^2.0.5", "@vanilla-extract/integration": "^6.2.0", "arg": "^5.0.1", @@ -2898,8 +2898,8 @@ "node": ">=18.0.0" }, "peerDependencies": { - "@remix-run/react": "^2.11.2", - "@remix-run/serve": "^2.11.2", + "@remix-run/react": "^2.12.0", + "@remix-run/serve": "^2.12.0", "typescript": "^5.1.0", "vite": "^5.1.0", "wrangler": "^3.28.2" @@ -2935,9 +2935,9 @@ } }, "node_modules/@remix-run/eslint-config": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@remix-run/eslint-config/-/eslint-config-2.11.2.tgz", - "integrity": "sha512-IclP0pBI7cqmKhHqa6qWY0rAF7cXCM+xODuIkt9DpR6dvgDW3TpCTB4tqOavIYDsLGNkx1sPfkXjpe3FIrT9Xw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@remix-run/eslint-config/-/eslint-config-2.12.0.tgz", + "integrity": "sha512-9MfVRuto/8EOYFf4zdg765x5TQ1l03CG7ZsLBLI22fn/OoJtOp5gGXeHaWMiFo+nLHlP27wEH2y9j7NshxdcMA==", "dev": true, "license": "MIT", "dependencies": { @@ -2973,12 +2973,12 @@ } }, "node_modules/@remix-run/express": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@remix-run/express/-/express-2.11.2.tgz", - "integrity": "sha512-ebyvHJKRBDgQGNBMxsILt21IwMTjGxQxlr0VNxRJo5rNd5CcuULpx/PPmsBc1gsc/Jx9aUXpT7a9l0UEOc6+jw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@remix-run/express/-/express-2.12.0.tgz", + "integrity": "sha512-8RmF0TITWxEW20HU5YPreuN0H8rPeShPCQUoMKN1b5zfcQ3E/tD5VWwwXicguQS8ffloc+ejhtQjnWA3drlsgw==", "license": "MIT", "dependencies": { - "@remix-run/node": "2.11.2" + "@remix-run/node": "2.12.0" }, "engines": { "node": ">=18.0.0" @@ -2994,12 +2994,12 @@ } }, "node_modules/@remix-run/node": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@remix-run/node/-/node-2.11.2.tgz", - "integrity": "sha512-gRNFM61EOYWNmYgf+pvBt6MrirWlkDz1G6RQsJNowtRqbYoy05AdDe5HiHGF5w8ZMAZVeXnZiwbL0Nt7ykYBCA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@remix-run/node/-/node-2.12.0.tgz", + "integrity": "sha512-83Jaoc6gpSuD4e6rCk7N5ZHAXNmDw4fJC+kPeDCsd6+wLtTLSi7u9Zo9/Q7moLZ3oyH+aR+LGdkxLULYv+Q6Og==", "license": "MIT", "dependencies": { - "@remix-run/server-runtime": "2.11.2", + "@remix-run/server-runtime": "2.12.0", "@remix-run/web-fetch": "^4.4.2", "@web3-storage/multipart-parser": "^1.0.0", "cookie-signature": "^1.1.0", @@ -3020,16 +3020,16 @@ } }, "node_modules/@remix-run/react": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@remix-run/react/-/react-2.11.2.tgz", - "integrity": "sha512-SjjuK3aD/9wnIC5r0ZBNCpVSwEwt67YOQM7DCXhHiS8BtCvAxWEC4k4t8CvO9IwBG0gczqxzSqASH7U1RVtWqw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@remix-run/react/-/react-2.12.0.tgz", + "integrity": "sha512-Y109tI37Icr0BSU8sWSo8jDPkXaErJ/e1h0fkPvq6LZ0DrlcmHWBxzWJKID431I/KJvhVvBgVCuDamZTRVOZ5Q==", "license": "MIT", "dependencies": { - "@remix-run/router": "1.19.1", - "@remix-run/server-runtime": "2.11.2", - "react-router": "6.26.1", - "react-router-dom": "6.26.1", - "turbo-stream": "2.3.0" + "@remix-run/router": "1.19.2", + "@remix-run/server-runtime": "2.12.0", + "react-router": "6.26.2", + "react-router-dom": "6.26.2", + "turbo-stream": "2.4.0" }, "engines": { "node": ">=18.0.0" @@ -3046,27 +3046,27 @@ } }, "node_modules/@remix-run/router": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.1.tgz", - "integrity": "sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.2.tgz", + "integrity": "sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==", "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/@remix-run/server-runtime": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-2.11.2.tgz", - "integrity": "sha512-abG6ENj0X3eHqDxqO2thWM2NSEiPnqyt58z1BbiQCv+t8g0Zuqd5QHbB4wzdNvfS0vKhg+jJiigcJneAc4sZzw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-2.12.0.tgz", + "integrity": "sha512-o9ukOr3XKmyY8UufTrDdkgD3fiy+z+f4qEzvCQnvC0+EasCyN9hb1Vbui6Koo/5HKvahC4Ga8RcWyvhykKrG3g==", "license": "MIT", "dependencies": { - "@remix-run/router": "1.19.1", + "@remix-run/router": "1.19.2", "@types/cookie": "^0.6.0", "@web3-storage/multipart-parser": "^1.0.0", "cookie": "^0.6.0", "set-cookie-parser": "^2.4.8", "source-map": "^0.7.3", - "turbo-stream": "2.3.0" + "turbo-stream": "2.4.0" }, "engines": { "node": ">=18.0.0" @@ -3084,6 +3084,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@remix-run/web-blob/-/web-blob-3.1.0.tgz", "integrity": "sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==", + "license": "MIT", "dependencies": { "@remix-run/web-stream": "^1.1.0", "web-encoding": "1.1.5" @@ -3093,6 +3094,7 @@ "version": "4.4.2", "resolved": "https://registry.npmjs.org/@remix-run/web-fetch/-/web-fetch-4.4.2.tgz", "integrity": "sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==", + "license": "MIT", "dependencies": { "@remix-run/web-blob": "^3.1.0", "@remix-run/web-file": "^3.1.0", @@ -3111,6 +3113,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@remix-run/web-file/-/web-file-3.1.0.tgz", "integrity": "sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==", + "license": "MIT", "dependencies": { "@remix-run/web-blob": "^3.1.0" } @@ -3119,6 +3122,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@remix-run/web-form-data/-/web-form-data-3.1.0.tgz", "integrity": "sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==", + "license": "MIT", "dependencies": { "web-encoding": "1.1.5" } @@ -3127,6 +3131,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@remix-run/web-stream/-/web-stream-1.1.0.tgz", "integrity": "sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==", + "license": "MIT", "dependencies": { "web-streams-polyfill": "^3.1.1" } @@ -3686,7 +3691,8 @@ "node_modules/@types/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" }, "node_modules/@types/debug": { "version": "4.1.12", @@ -4798,18 +4804,21 @@ "node_modules/@web3-storage/multipart-parser": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz", - "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==" + "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==", + "license": "(Apache-2.0 AND MIT)" }, "node_modules/@zxing/text-encoding": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "license": "(Unlicense OR Apache-2.0)", "optional": true }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -5968,6 +5977,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.1.tgz", "integrity": "sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==", + "license": "MIT", "engines": { "node": ">=6.6.0" } @@ -6252,6 +6262,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -7789,6 +7800,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -15597,6 +15609,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "license": "MIT", "engines": { "node": ">=10" } @@ -17351,12 +17364,12 @@ } }, "node_modules/react-router": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.1.tgz", - "integrity": "sha512-kIwJveZNwp7teQRI5QmwWo39A5bXRyqpH0COKKmPnyD2vBvDwgFXSqDUYtt1h+FEyfnE8eXr7oe0MxRzVwCcvQ==", + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.2.tgz", + "integrity": "sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A==", "license": "MIT", "dependencies": { - "@remix-run/router": "1.19.1" + "@remix-run/router": "1.19.2" }, "engines": { "node": ">=14.0.0" @@ -17366,13 +17379,13 @@ } }, "node_modules/react-router-dom": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.1.tgz", - "integrity": "sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw==", + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.2.tgz", + "integrity": "sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ==", "license": "MIT", "dependencies": { - "@remix-run/router": "1.19.1", - "react-router": "6.26.1" + "@remix-run/router": "1.19.2", + "react-router": "6.26.2" }, "engines": { "node": ">=14.0.0" @@ -18482,9 +18495,9 @@ } }, "node_modules/remix": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/remix/-/remix-2.11.2.tgz", - "integrity": "sha512-Z0IJkp3RPBipdUkJcO2IDOeGN90kpzn6IW15XZ6owOLQM9aGEg4kJxB5o7AsYBjVmQu7MEUE18IMm9XHZhflGA==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/remix/-/remix-2.12.0.tgz", + "integrity": "sha512-o2DADxZa4v+/9NJFFOkK4zNrmvQW6QwY/iMcxozgv9Tki1KSFSz7F1PaN6zdSgWe78TT0ojxeLdTsu6YAwTuIQ==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -19119,7 +19132,8 @@ "node_modules/stream-slice": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/stream-slice/-/stream-slice-0.1.2.tgz", - "integrity": "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==" + "integrity": "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==", + "license": "MIT" }, "node_modules/streamx": { "version": "2.15.5", @@ -20064,9 +20078,9 @@ } }, "node_modules/turbo-stream": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.3.0.tgz", - "integrity": "sha512-PhEr9mdexoVv+rJkQ3c8TjrN3DUghX37GNJkSMksoPR4KrXIPnM2MnqRt07sViIqX9IdlhrgtTSyjoVOASq6cg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", "license": "ISC" }, "node_modules/tween-functions": { @@ -20219,9 +20233,10 @@ } }, "node_modules/undici": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.15.0.tgz", - "integrity": "sha512-VviMt2tlMg1BvQ0FKXxrz1eJuyrcISrL2sPfBf7ZskX/FCEc/7LeThQaoygsMJpNqrATWQIsRVx+1Dpe4jaYuQ==", + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz", + "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==", + "license": "MIT", "engines": { "node": ">=18.17" } @@ -20589,6 +20604,7 @@ "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", @@ -21983,6 +21999,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", + "license": "MIT", "dependencies": { "util": "^0.12.3" }, @@ -22003,6 +22020,7 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", "engines": { "node": ">= 8" } diff --git a/package.json b/package.json index f7032b7b..03a8a06b 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,9 @@ "dependencies": { "@docsearch/css": "^3.5.2", "@docsearch/react": "^3.5.2", - "@remix-run/express": "2.11.2", - "@remix-run/node": "2.11.2", - "@remix-run/react": "2.11.2", + "@remix-run/express": "2.12.0", + "@remix-run/node": "2.12.0", + "@remix-run/react": "2.12.0", "cheerio": "^1.0.0-rc.12", "clsx": "^2.1.0", "compression": "^1.7.4", @@ -59,7 +59,7 @@ "remark-html": "^16.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.0", - "remix": "2.11.2", + "remix": "2.12.0", "satori": "^0.10.14", "semver": "^7.5.4", "shiki": "^0.14.7", @@ -76,8 +76,8 @@ "zod": "^3.22.4" }, "devDependencies": { - "@remix-run/dev": "2.11.2", - "@remix-run/eslint-config": "2.11.2", + "@remix-run/dev": "2.12.0", + "@remix-run/eslint-config": "2.12.0", "@testing-library/jest-dom": "^6.2.0", "@types/follow-redirects": "^1.14.4", "@types/gunzip-maybe": "^1.4.2", diff --git a/vite.config.mts b/vite.config.ts similarity index 78% rename from vite.config.mts rename to vite.config.ts index c835a0a8..5b716d8c 100644 --- a/vite.config.mts +++ b/vite.config.ts @@ -3,6 +3,12 @@ import { vitePlugin as remix } from "@remix-run/dev"; import tsconfigPaths from "vite-tsconfig-paths"; import arraybuffer from "vite-plugin-arraybuffer"; +declare module "@remix-run/server-runtime" { + interface Future { + unstable_singleFetch: true; + } +} + export default defineConfig({ build: { sourcemap: true, @@ -10,6 +16,7 @@ export default defineConfig({ ssr: { noExternal: ["@docsearch/react"], }, + optimizeDeps: { exclude: ["svg2img"] }, plugins: [ tsconfigPaths(), splitVendorChunkPlugin(), @@ -21,6 +28,7 @@ export default defineConfig({ v3_throwAbortReason: true, unstable_singleFetch: true, unstable_lazyRouteDiscovery: true, + unstable_optimizeDeps: true, }, }), ],