From 1814410a96751f289e1ebc72a087f3197a20766c Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Mon, 25 Nov 2024 10:59:11 +0100 Subject: [PATCH 01/26] initialize basic react-router project --- integration-test/react-router/.dockerignore | 4 + integration-test/react-router/.gitignore | 7 + integration-test/react-router/Dockerfile | 22 + integration-test/react-router/Dockerfile.bun | 25 + integration-test/react-router/Dockerfile.pnpm | 26 + integration-test/react-router/README.md | 98 + integration-test/react-router/app/app.css | 12 + integration-test/react-router/app/root.tsx | 75 + integration-test/react-router/app/routes.ts | 3 + .../react-router/app/routes/home.tsx | 13 + .../react-router/app/welcome/logo-dark.svg | 23 + .../react-router/app/welcome/logo-light.svg | 23 + .../react-router/app/welcome/welcome.tsx | 89 + integration-test/react-router/package.json | 31 + .../react-router/public/favicon.ico | Bin 0 -> 15086 bytes .../react-router/react-router.config.ts | 3 + .../react-router/tailwind.config.ts | 22 + integration-test/react-router/tsconfig.json | 28 + integration-test/react-router/vite.config.ts | 14 + integration-test/yarn.lock | 2367 ++++++++++++++++- 20 files changed, 2834 insertions(+), 51 deletions(-) create mode 100644 integration-test/react-router/.dockerignore create mode 100644 integration-test/react-router/.gitignore create mode 100644 integration-test/react-router/Dockerfile create mode 100644 integration-test/react-router/Dockerfile.bun create mode 100644 integration-test/react-router/Dockerfile.pnpm create mode 100644 integration-test/react-router/README.md create mode 100644 integration-test/react-router/app/app.css create mode 100644 integration-test/react-router/app/root.tsx create mode 100644 integration-test/react-router/app/routes.ts create mode 100644 integration-test/react-router/app/routes/home.tsx create mode 100644 integration-test/react-router/app/welcome/logo-dark.svg create mode 100644 integration-test/react-router/app/welcome/logo-light.svg create mode 100644 integration-test/react-router/app/welcome/welcome.tsx create mode 100644 integration-test/react-router/package.json create mode 100644 integration-test/react-router/public/favicon.ico create mode 100644 integration-test/react-router/react-router.config.ts create mode 100644 integration-test/react-router/tailwind.config.ts create mode 100644 integration-test/react-router/tsconfig.json create mode 100644 integration-test/react-router/vite.config.ts diff --git a/integration-test/react-router/.dockerignore b/integration-test/react-router/.dockerignore new file mode 100644 index 00000000..9b8d5147 --- /dev/null +++ b/integration-test/react-router/.dockerignore @@ -0,0 +1,4 @@ +.react-router +build +node_modules +README.md \ No newline at end of file diff --git a/integration-test/react-router/.gitignore b/integration-test/react-router/.gitignore new file mode 100644 index 00000000..ce9b6d65 --- /dev/null +++ b/integration-test/react-router/.gitignore @@ -0,0 +1,7 @@ +.env +!.env.example +.DS_Store +.react-router +build +node_modules +*.tsbuildinfo diff --git a/integration-test/react-router/Dockerfile b/integration-test/react-router/Dockerfile new file mode 100644 index 00000000..dc246373 --- /dev/null +++ b/integration-test/react-router/Dockerfile @@ -0,0 +1,22 @@ +FROM node:20-alpine as development-dependencies-env +COPY . /app +WORKDIR /app +RUN npm ci + +FROM node:20-alpine as production-dependencies-env +COPY ./package.json package-lock.json /app/ +WORKDIR /app +RUN npm ci --omit=dev + +FROM node:20-alpine AS build-env +COPY . /app/ +COPY --from=development-dependencies-env /app/node_modules /app/node_modules +WORKDIR /app +RUN npm run build + +FROM node:20-alpine +COPY ./package.json package-lock.json /app/ +COPY --from=production-dependencies-env /app/node_modules /app/node_modules +COPY --from=build-env /app/build /app/build +WORKDIR /app +CMD ["npm", "run", "start"] \ No newline at end of file diff --git a/integration-test/react-router/Dockerfile.bun b/integration-test/react-router/Dockerfile.bun new file mode 100644 index 00000000..2414d3e9 --- /dev/null +++ b/integration-test/react-router/Dockerfile.bun @@ -0,0 +1,25 @@ +FROM oven/bun:1 as dependencies-env +COPY . /app + +FROM dependencies-env as development-dependencies-env +COPY ./package.json bun.lockb /app/ +WORKDIR /app +RUN bun i --frozen-lockfile + +FROM dependencies-env as production-dependencies-env +COPY ./package.json bun.lockb /app/ +WORKDIR /app +RUN bun i --production + +FROM dependencies-env AS build-env +COPY ./package.json bun.lockb /app/ +COPY --from=development-dependencies-env /app/node_modules /app/node_modules +WORKDIR /app +RUN bun run build + +FROM dependencies-env +COPY ./package.json bun.lockb /app/ +COPY --from=production-dependencies-env /app/node_modules /app/node_modules +COPY --from=build-env /app/build /app/build +WORKDIR /app +CMD ["bun", "run", "start"] \ No newline at end of file diff --git a/integration-test/react-router/Dockerfile.pnpm b/integration-test/react-router/Dockerfile.pnpm new file mode 100644 index 00000000..f0db1841 --- /dev/null +++ b/integration-test/react-router/Dockerfile.pnpm @@ -0,0 +1,26 @@ +FROM node:20-alpine as dependencies-env +RUN npm i -g pnpm +COPY . /app + +FROM dependencies-env as development-dependencies-env +COPY ./package.json pnpm-lock.yaml /app/ +WORKDIR /app +RUN pnpm i --frozen-lockfile + +FROM dependencies-env as production-dependencies-env +COPY ./package.json pnpm-lock.yaml /app/ +WORKDIR /app +RUN pnpm i --prod --frozen-lockfile + +FROM dependencies-env AS build-env +COPY ./package.json pnpm-lock.yaml /app/ +COPY --from=development-dependencies-env /app/node_modules /app/node_modules +WORKDIR /app +RUN pnpm build + +FROM dependencies-env +COPY ./package.json pnpm-lock.yaml /app/ +COPY --from=production-dependencies-env /app/node_modules /app/node_modules +COPY --from=build-env /app/build /app/build +WORKDIR /app +CMD ["pnpm", "start"] \ No newline at end of file diff --git a/integration-test/react-router/README.md b/integration-test/react-router/README.md new file mode 100644 index 00000000..202341f6 --- /dev/null +++ b/integration-test/react-router/README.md @@ -0,0 +1,98 @@ +# Welcome to React Router! + +A modern, production-ready template for building full-stack React applications using React Router. + +## Features + +- 🚀 Server-side rendering +- ⚡️ Hot Module Replacement (HMR) +- 📦 Asset bundling and optimization +- 🔄 Data loading and mutations +- 🔒 TypeScript by default +- 🎉 TailwindCSS for styling +- 📖 [React Router docs](https://reactrouter.com/) + +## Getting Started + +### Installation + +Install the dependencies: + +```bash +npm install +``` + +### Development + +Start the development server with HMR: + +```bash +npm run dev +``` + +Your application will be available at `http://localhost:5173`. + +## Building for Production + +Create a production build: + +```bash +npm run build +``` + +## Deployment + +### Docker Deployment + +This template includes three Dockerfiles optimized for different package managers: + +- `Dockerfile` - for npm +- `Dockerfile.pnpm` - for pnpm +- `Dockerfile.bun` - for bun + +To build and run using Docker: + +```bash +# For npm +docker build -t my-app . + +# For pnpm +docker build -f Dockerfile.pnpm -t my-app . + +# For bun +docker build -f Dockerfile.bun -t my-app . + +# Run the container +docker run -p 3000:3000 my-app +``` + +The containerized application can be deployed to any platform that supports Docker, including: + +- AWS ECS +- Google Cloud Run +- Azure Container Apps +- Digital Ocean App Platform +- Fly.io +- Railway + +### DIY Deployment + +If you're familiar with deploying Node applications, the built-in app server is production-ready. + +Make sure to deploy the output of `npm run build` + +``` +├── package.json +├── package-lock.json (or pnpm-lock.yaml, or bun.lockb) +├── build/ +│ ├── client/ # Static assets +│ └── server/ # Server-side code +``` + +## Styling + +This template comes with [Tailwind CSS](https://tailwindcss.com/) already configured for a simple default starting experience. You can use whatever CSS framework you prefer. + +--- + +Built with ❤️ using React Router. diff --git a/integration-test/react-router/app/app.css b/integration-test/react-router/app/app.css new file mode 100644 index 00000000..303fe158 --- /dev/null +++ b/integration-test/react-router/app/app.css @@ -0,0 +1,12 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +html, +body { + @apply bg-white dark:bg-gray-950; + + @media (prefers-color-scheme: dark) { + color-scheme: dark; + } +} diff --git a/integration-test/react-router/app/root.tsx b/integration-test/react-router/app/root.tsx new file mode 100644 index 00000000..9fc66361 --- /dev/null +++ b/integration-test/react-router/app/root.tsx @@ -0,0 +1,75 @@ +import { + isRouteErrorResponse, + Links, + Meta, + Outlet, + Scripts, + ScrollRestoration, +} from "react-router"; + +import type { Route } from "./+types/root"; +import "./app.css"; + +export const links: Route.LinksFunction = () => [ + { rel: "preconnect", href: "https://fonts.googleapis.com" }, + { + rel: "preconnect", + href: "https://fonts.gstatic.com", + crossOrigin: "anonymous", + }, + { + rel: "stylesheet", + href: "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap", + }, +]; + +export function Layout({ children }: { children: React.ReactNode }) { + return ( + + + + + + + + + {children} + + + + + ); +} + +export default function App() { + return ; +} + +export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) { + let message = "Oops!"; + let details = "An unexpected error occurred."; + let stack: string | undefined; + + if (isRouteErrorResponse(error)) { + message = error.status === 404 ? "404" : "Error"; + details = + error.status === 404 + ? "The requested page could not be found." + : error.statusText || details; + } else if (import.meta.env.DEV && error && error instanceof Error) { + details = error.message; + stack = error.stack; + } + + return ( +
+

{message}

+

{details}

+ {stack && ( +
+          {stack}
+        
+ )} +
+ ); +} diff --git a/integration-test/react-router/app/routes.ts b/integration-test/react-router/app/routes.ts new file mode 100644 index 00000000..102b4025 --- /dev/null +++ b/integration-test/react-router/app/routes.ts @@ -0,0 +1,3 @@ +import { type RouteConfig, index } from "@react-router/dev/routes"; + +export default [index("routes/home.tsx")] satisfies RouteConfig; diff --git a/integration-test/react-router/app/routes/home.tsx b/integration-test/react-router/app/routes/home.tsx new file mode 100644 index 00000000..398e47cb --- /dev/null +++ b/integration-test/react-router/app/routes/home.tsx @@ -0,0 +1,13 @@ +import type { Route } from "./+types/home"; +import { Welcome } from "../welcome/welcome"; + +export function meta({}: Route.MetaArgs) { + return [ + { title: "New React Router App" }, + { name: "description", content: "Welcome to React Router!" }, + ]; +} + +export default function Home() { + return ; +} diff --git a/integration-test/react-router/app/welcome/logo-dark.svg b/integration-test/react-router/app/welcome/logo-dark.svg new file mode 100644 index 00000000..dd820289 --- /dev/null +++ b/integration-test/react-router/app/welcome/logo-dark.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/integration-test/react-router/app/welcome/logo-light.svg b/integration-test/react-router/app/welcome/logo-light.svg new file mode 100644 index 00000000..73284929 --- /dev/null +++ b/integration-test/react-router/app/welcome/logo-light.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/integration-test/react-router/app/welcome/welcome.tsx b/integration-test/react-router/app/welcome/welcome.tsx new file mode 100644 index 00000000..8ac6e1d3 --- /dev/null +++ b/integration-test/react-router/app/welcome/welcome.tsx @@ -0,0 +1,89 @@ +import logoDark from "./logo-dark.svg"; +import logoLight from "./logo-light.svg"; + +export function Welcome() { + return ( +
+
+
+
+ React Router + React Router +
+
+
+ +
+
+
+ ); +} + +const resources = [ + { + href: "https://reactrouter.com/docs", + text: "React Router Docs", + icon: ( + + + + ), + }, + { + href: "https://rmx.as/discord", + text: "Join Discord", + icon: ( + + + + ), + }, +]; diff --git a/integration-test/react-router/package.json b/integration-test/react-router/package.json new file mode 100644 index 00000000..aafae124 --- /dev/null +++ b/integration-test/react-router/package.json @@ -0,0 +1,31 @@ +{ + "name": "react-router", + "private": true, + "type": "module", + "scripts": { + "build": "react-router build", + "dev": "react-router dev", + "start": "react-router-serve ./build/server/index.js", + "typecheck": "react-router typegen && tsc --build --noEmit" + }, + "dependencies": { + "@react-router/node": "^7.0.1", + "@react-router/serve": "^7.0.1", + "isbot": "^5.1.17", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router": "^7.0.1" + }, + "devDependencies": { + "@react-router/dev": "^7.0.1", + "@types/node": "^20", + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.15", + "typescript": "^5.6.3", + "vite": "^5.4.11", + "vite-tsconfig-paths": "^5.1.2" + } +} diff --git a/integration-test/react-router/public/favicon.ico b/integration-test/react-router/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5dbdfcddcb14182535f6d32d1c900681321b1aa3 GIT binary patch literal 15086 zcmeI33v3ic7{|AFEmuJ-;v>ep_G*NPi6KM`qNryCe1PIJ8siIN1WZ(7qVa)RVtmC% z)Ch?tN+afMKm;5@rvorJk zcXnoOc4q51HBQnQH_jn!cAg&XI1?PlX>Kl^k8qq0;zkha`kY$Fxt#=KNJAE9CMdpW zqr4#g8`nTw191(+H4xW8Tmyru2I^3=J1G3emPxkPXA=3{vvuvse_WWSshqaqls^-m zgB7q8&Vk*aYRe?sn$n53dGH#%3y%^vxv{pL*-h0Z4bmb_(k6{FL7HWIz(V*HT#IcS z-wE{)+0x1U!RUPt3gB97%p}@oHxF4|6S*+Yw=_tLtxZ~`S=z6J?O^AfU>7qOX`JNBbV&8+bO0%@fhQitKIJ^O^ zpgIa__qD_y07t@DFlBJ)8SP_#^j{6jpaXt{U%=dx!qu=4u7^21lWEYHPPY5U3TcoQ zX_7W+lvZi>TapNk_X>k-KO%MC9iZp>1E`N34gHKd9tK&){jq2~7OsJ>!G0FzxQFw6G zm&Vb(2#-T|rM|n3>uAsG_hnbvUKFf3#ay@u4uTzia~NY%XgCHfx4^To4BDU@)HlV? z@EN=g^ymETa1sQK{kRwyE4Ax8?wT&GvaG@ASO}{&a17&^v`y z!oPdiSiia^oov(Z)QhG2&|FgE{M9_4hJROGbnj>#$~ZF$-G^|zPj*QApltKe?;u;uKHJ~-V!=VLkg7Kgct)l7u39f@%VG8e3f$N-B zAu3a4%ZGf)r+jPAYCSLt73m_J3}p>}6Tx0j(wg4vvKhP!DzgiWANiE;Ppvp}P2W@m z-VbYn+NXFF?6ngef5CfY6ZwKnWvNV4z6s^~yMXw2i5mv}jC$6$46g?G|CPAu{W5qF zDobS=zb2ILX9D827g*NtGe5w;>frjanY{f)hrBP_2ehBt1?`~ypvg_Ot4x1V+43P@Ve8>qd)9NX_jWdLo`Zfy zoeam9)@Dpym{4m@+LNxXBPjPKA7{3a&H+~xQvr>C_A;7=JrfK~$M2pCh>|xLz>W6SCs4qC|#V`)# z)0C|?$o>jzh<|-cpf

K7osU{Xp5PG4-K+L2G=)c3f&}H&M3wo7TlO_UJjQ-Oq&_ zjAc9=nNIYz{c3zxOiS5UfcE1}8#iI4@uy;$Q7>}u`j+OU0N<*Ezx$k{x_27+{s2Eg z`^=rhtIzCm!_UcJ?Db~Lh-=_))PT3{Q0{Mwdq;0>ZL%l3+;B&4!&xm#%HYAK|;b456Iv&&f$VQHf` z>$*K9w8T+paVwc7fLfMlhQ4)*zL_SG{~v4QR;IuX-(oRtYAhWOlh`NLoX0k$RUYMi z2Y!bqpdN}wz8q`-%>&Le@q|jFw92ErW-hma-le?S z-@OZt2EEUm4wLsuEMkt4zlyy29_3S50JAcQHTtgTC{P~%-mvCTzrjXOc|{}N`Cz`W zSj7CrXfa7lcsU0J(0uSX6G`54t^7}+OLM0n(|g4waOQ}bd3%!XLh?NX9|8G_|06Ie zD5F1)w5I~!et7lA{G^;uf7aqT`KE&2qx9|~O;s6t!gb`+zVLJyT2T)l*8l(j literal 0 HcmV?d00001 diff --git a/integration-test/react-router/react-router.config.ts b/integration-test/react-router/react-router.config.ts new file mode 100644 index 00000000..8fcafa64 --- /dev/null +++ b/integration-test/react-router/react-router.config.ts @@ -0,0 +1,3 @@ +import type { Config } from "@react-router/dev/config"; + +export default {} satisfies Config; diff --git a/integration-test/react-router/tailwind.config.ts b/integration-test/react-router/tailwind.config.ts new file mode 100644 index 00000000..14d0f00c --- /dev/null +++ b/integration-test/react-router/tailwind.config.ts @@ -0,0 +1,22 @@ +import type { Config } from "tailwindcss"; + +export default { + content: ["./app/**/{**,.client,.server}/**/*.{js,jsx,ts,tsx}"], + theme: { + extend: { + fontFamily: { + sans: [ + '"Inter"', + "ui-sans-serif", + "system-ui", + "sans-serif", + '"Apple Color Emoji"', + '"Segoe UI Emoji"', + '"Segoe UI Symbol"', + '"Noto Color Emoji"', + ], + }, + }, + }, + plugins: [], +} satisfies Config; diff --git a/integration-test/react-router/tsconfig.json b/integration-test/react-router/tsconfig.json new file mode 100644 index 00000000..b778dd73 --- /dev/null +++ b/integration-test/react-router/tsconfig.json @@ -0,0 +1,28 @@ +{ + "include": [ + "**/*", + "**/.server/**/*", + "**/.client/**/*", + ".react-router/types/**/*" + ], + "compilerOptions": { + "lib": ["DOM", "DOM.Iterable", "ES2022"], + "types": ["node", "vite/client"], + "target": "ES2022", + "module": "ES2022", + "moduleResolution": "bundler", + "jsx": "react-jsx", + "rootDirs": [".", "./.react-router/types"], + "baseUrl": ".", + "paths": { + "~/*": ["./app/*"] + }, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "noEmit": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true + } +} diff --git a/integration-test/react-router/vite.config.ts b/integration-test/react-router/vite.config.ts new file mode 100644 index 00000000..66c718b1 --- /dev/null +++ b/integration-test/react-router/vite.config.ts @@ -0,0 +1,14 @@ +import { reactRouter } from "@react-router/dev/vite"; +import autoprefixer from "autoprefixer"; +import tailwindcss from "tailwindcss"; +import { defineConfig } from "vite"; +import tsconfigPaths from "vite-tsconfig-paths"; + +export default defineConfig({ + css: { + postcss: { + plugins: [tailwindcss, autoprefixer], + }, + }, + plugins: [reactRouter(), tsconfigPaths()], +}); diff --git a/integration-test/yarn.lock b/integration-test/yarn.lock index c5ad2a38..ce53db7c 100644 --- a/integration-test/yarn.lock +++ b/integration-test/yarn.lock @@ -12,6 +12,13 @@ __metadata: languageName: node linkType: hard +"@alloc/quick-lru@npm:^5.2.0": + version: 5.2.0 + resolution: "@alloc/quick-lru@npm:5.2.0" + checksum: 10/bdc35758b552bcf045733ac047fb7f9a07c4678b944c641adfbd41f798b4b91fffd0fdc0df2578d9b0afc7b4d636aa6e110ead5d6281a2adc1ab90efd7f057f8 + languageName: node + linkType: hard + "@ampproject/remapping@npm:^2.2.0": version: 2.3.0 resolution: "@ampproject/remapping@npm:2.3.0" @@ -304,6 +311,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0": + version: 7.26.2 + resolution: "@babel/code-frame@npm:7.26.2" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.25.9" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10/db2c2122af79d31ca916755331bb4bac96feb2b334cdaca5097a6b467fdd41963b89b14b6836a14f083de7ff887fc78fa1b3c10b14e743d33e12dbfe5ee3d223 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" @@ -311,6 +329,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.25.9": + version: 7.26.2 + resolution: "@babel/compat-data@npm:7.26.2" + checksum: 10/ed9eed6b62ce803ef4a320b1dac76b0302abbb29c49dddf96f3e3207d9717eb34e299a8651bb1582e9c3346ead74b6d595ffced5b3dae718afa08b18741f8402 + languageName: node + linkType: hard + "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.5, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.0": version: 7.24.0 resolution: "@babel/core@npm:7.24.0" @@ -334,6 +359,42 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.21.8, @babel/core@npm:^7.23.7": + version: 7.26.0 + resolution: "@babel/core@npm:7.26.0" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.26.0" + "@babel/generator": "npm:^7.26.0" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helpers": "npm:^7.26.0" + "@babel/parser": "npm:^7.26.0" + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10/65767bfdb1f02e80d3af4f138066670ef8fdd12293de85ef151758a901c191c797e86d2e99b11c4cdfca33c72385ecaf38bbd7fa692791ec44c77763496b9b93 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.21.5, @babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0": + version: 7.26.2 + resolution: "@babel/generator@npm:7.26.2" + dependencies: + "@babel/parser": "npm:^7.26.2" + "@babel/types": "npm:^7.26.0" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^3.0.2" + checksum: 10/71ace82b5b07a554846a003624bfab93275ccf73cdb9f1a37a4c1094bf9dc94bb677c67e8b8c939dbd6c5f0eda2e8f268aa2b0d9c3b9511072565660e717e045 + languageName: node + linkType: hard + "@babel/generator@npm:^7.23.6, @babel/generator@npm:^7.7.2": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" @@ -355,6 +416,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-annotate-as-pure@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" + dependencies: + "@babel/types": "npm:^7.25.9" + checksum: 10/41edda10df1ae106a9b4fe617bf7c6df77db992992afd46192534f5cff29f9e49a303231733782dd65c5f9409714a529f215325569f14282046e9d3b7a1ffb6c + languageName: node + linkType: hard + "@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" @@ -377,6 +447,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-compilation-targets@npm:7.25.9" + dependencies: + "@babel/compat-data": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10/8053fbfc21e8297ab55c8e7f9f119e4809fa7e505268691e1bedc2cf5e7a5a7de8c60ad13da2515378621b7601c42e101d2d679904da395fa3806a1edef6b92e + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.22.15": version: 7.24.0 resolution: "@babel/helper-create-class-features-plugin@npm:7.24.0" @@ -396,6 +479,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/d1d47a7b5fd317c6cb1446b0e4f4892c19ddaa69ea0229f04ba8bea5f273fc8168441e7114ad36ff919f2d310f97310cec51adc79002e22039a7e1640ccaf248 + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" @@ -459,6 +559,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9" + dependencies: + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10/ef8cc1c1e600b012b312315f843226545a1a89f25d2f474ce2503fd939ca3f8585180f291a3a13efc56cf13eddc1d41a3a040eae9a521838fd59a6d04cc82490 + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-module-imports@npm:7.22.15" @@ -468,6 +578,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-module-imports@npm:7.25.9" + dependencies: + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10/e090be5dee94dda6cd769972231b21ddfae988acd76b703a480ac0c96f3334557d70a965bf41245d6ee43891e7571a8b400ccf2b2be5803351375d0f4e5bcf08 + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.23.3": version: 7.23.3 resolution: "@babel/helper-module-transforms@npm:7.23.3" @@ -483,6 +603,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.25.9, @babel/helper-module-transforms@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helper-module-transforms@npm:7.26.0" + dependencies: + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/9841d2a62f61ad52b66a72d08264f23052d533afc4ce07aec2a6202adac0bfe43014c312f94feacb3291f4c5aafe681955610041ece2c276271adce3f570f2f5 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" @@ -492,6 +625,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-optimise-call-expression@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-optimise-call-expression@npm:7.25.9" + dependencies: + "@babel/types": "npm:^7.25.9" + checksum: 10/f09d0ad60c0715b9a60c31841b3246b47d67650c512ce85bbe24a3124f1a4d66377df793af393273bc6e1015b0a9c799626c48e53747581c1582b99167cc65dc + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.24.0 resolution: "@babel/helper-plugin-utils@npm:7.24.0" @@ -499,6 +641,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-plugin-utils@npm:7.25.9" + checksum: 10/e347d87728b1ab10b6976d46403941c8f9008c045ea6d99997a7ffca7b852dc34b6171380f7b17edf94410e0857ff26f3a53d8618f11d73744db86e8ca9b8c64 + languageName: node + linkType: hard + "@babel/helper-remap-async-to-generator@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" @@ -525,6 +674,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-replace-supers@npm:7.25.9" + dependencies: + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/8ebf787016953e4479b99007bac735c9c860822fafc51bc3db67bc53814539888797238c81fa8b948b6da897eb7b1c1d4f04df11e501a7f0596b356be02de2ab + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-simple-access@npm:7.22.5" @@ -534,6 +696,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-simple-access@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-simple-access@npm:7.25.9" + dependencies: + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10/a16a6cfa5e8ac7144e856bcdaaf0022cf5de028fc0c56ce21dd664a6e900999a4285c587a209f2acf9de438c0d60bfb497f5f34aa34cbaf29da3e2f8d8d7feb7 + languageName: node + linkType: hard + "@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" @@ -543,6 +715,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" + dependencies: + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10/fdbb5248932198bc26daa6abf0d2ac42cab9c2dbb75b7e9f40d425c8f28f09620b886d40e7f9e4e08ffc7aaa2cefe6fc2c44be7c20e81f7526634702fb615bdc + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:^7.22.6": version: 7.22.6 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" @@ -559,6 +741,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 10/c28656c52bd48e8c1d9f3e8e68ecafd09d949c57755b0d353739eb4eae7ba4f7e67e92e4036f1cd43378cc1397a2c943ed7bcaf5949b04ab48607def0258b775 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" @@ -566,6 +755,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 10/3f9b649be0c2fd457fa1957b694b4e69532a668866b8a0d81eabfa34ba16dbf3107b39e0e7144c55c3c652bf773ec816af8df4a61273a2bb4eb3145ca9cf478e + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.23.5": version: 7.23.5 resolution: "@babel/helper-validator-option@npm:7.23.5" @@ -573,6 +769,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-option@npm:7.25.9" + checksum: 10/9491b2755948ebbdd68f87da907283698e663b5af2d2b1b02a2765761974b1120d5d8d49e9175b167f16f72748ffceec8c9cf62acfbee73f4904507b246e2b3d + languageName: node + linkType: hard + "@babel/helper-wrap-function@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-wrap-function@npm:7.22.20" @@ -595,6 +798,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helpers@npm:7.26.0" + dependencies: + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + checksum: 10/fd4757f65d10b64cfdbf4b3adb7ea6ffff9497c53e0786452f495d1f7794da7e0898261b4db65e1c62bbb9a360d7d78a1085635c23dfc3af2ab6dcba06585f86 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.23.4": version: 7.23.4 resolution: "@babel/highlight@npm:7.23.4" @@ -615,6 +828,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.21.8, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2": + version: 7.26.2 + resolution: "@babel/parser@npm:7.26.2" + dependencies: + "@babel/types": "npm:^7.26.0" + bin: + parser: ./bin/babel-parser.js + checksum: 10/8baee43752a3678ad9f9e360ec845065eeee806f1fdc8e0f348a8a0e13eef0959dabed4a197c978896c493ea205c804d0a1187cc52e4a1ba017c7935bab4983d + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" @@ -704,6 +928,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-decorators@npm:^7.22.10": + version: 7.25.9 + resolution: "@babel/plugin-syntax-decorators@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/e22e85c0a780b9c10619996d8e9fdb5f151869e53ce2b82ea05a52d393a1dbfda82e5896e9a75775a78ca7f91bca3b7d6864bec401ae1e9dc2b490dc044cad8d + languageName: node + linkType: hard + "@babel/plugin-syntax-dynamic-import@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" @@ -770,6 +1005,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:^7.21.4, @babel/plugin-syntax-jsx@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-syntax-jsx@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/bb609d1ffb50b58f0c1bac8810d0e46a4f6c922aa171c458f3a19d66ee545d36e782d3bffbbc1fed0dc65a558bdce1caf5279316583c0fff5a2c1658982a8563 + languageName: node + linkType: hard + "@babel/plugin-syntax-jsx@npm:^7.23.3, @babel/plugin-syntax-jsx@npm:^7.7.2": version: 7.23.3 resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" @@ -869,6 +1115,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-typescript@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-syntax-typescript@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/0e9821e8ba7d660c36c919654e4144a70546942ae184e85b8102f2322451eae102cbfadbcadd52ce077a2b44b400ee52394c616feab7b5b9f791b910e933fd33 + languageName: node + linkType: hard + "@babel/plugin-syntax-typescript@npm:^7.7.2": version: 7.23.3 resolution: "@babel/plugin-syntax-typescript@npm:7.23.3" @@ -1173,6 +1430,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-commonjs@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.9" + dependencies: + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-simple-access": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/a7390ca999373ccdef91075f274d1ace3a5cb79f9b9118ed6f76e94867ed454cf798a6f312ce2c4cdc1e035a25d810d754e4cb2e4d866acb4219490f3585de60 + languageName: node + linkType: hard + "@babel/plugin-transform-modules-systemjs@npm:^7.23.9": version: 7.23.9 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.9" @@ -1496,6 +1766,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-typescript@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-typescript@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/plugin-syntax-typescript": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/91e2ec805f89a813e0bf9cf42dffb767f798429e983af3e2f919885a2826b10f29223dd8b40ccc569eb61858d3273620e82e14431603a893e4a7f9b4c1a3a3cf + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-escapes@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" @@ -1662,6 +1947,21 @@ __metadata: languageName: node linkType: hard +"@babel/preset-typescript@npm:^7.21.5": + version: 7.26.0 + resolution: "@babel/preset-typescript@npm:7.26.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-syntax-jsx": "npm:^7.25.9" + "@babel/plugin-transform-modules-commonjs": "npm:^7.25.9" + "@babel/plugin-transform-typescript": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/81a60826160163a3daae017709f42147744757b725b50c9024ef3ee5a402ee45fd2e93eaecdaaa22c81be91f7940916249cfb7711366431cfcacc69c95878c03 + languageName: node + linkType: hard + "@babel/regjsgen@npm:^0.8.0": version: 0.8.0 resolution: "@babel/regjsgen@npm:0.8.0" @@ -1689,6 +1989,32 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/template@npm:7.25.9" + dependencies: + "@babel/code-frame": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10/e861180881507210150c1335ad94aff80fd9e9be6202e1efa752059c93224e2d5310186ddcdd4c0f0b0fc658ce48cb47823f15142b5c00c8456dde54f5de80b2 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.23.7, @babel/traverse@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/traverse@npm:7.25.9" + dependencies: + "@babel/code-frame": "npm:^7.25.9" + "@babel/generator": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10/7431614d76d4a053e429208db82f2846a415833f3d9eb2e11ef72eeb3c64dfd71f4a4d983de1a4a047b36165a1f5a64de8ca2a417534cc472005c740ffcb9c6a + languageName: node + linkType: hard + "@babel/traverse@npm:^7.24.0": version: 7.24.0 resolution: "@babel/traverse@npm:7.24.0" @@ -1718,6 +2044,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/types@npm:7.26.0" + dependencies: + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10/40780741ecec886ed9edae234b5eb4976968cc70d72b4e5a40d55f83ff2cc457de20f9b0f4fe9d858350e43dab0ea496e7ef62e2b2f08df699481a76df02cd6e + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -1741,6 +2077,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/aix-ppc64@npm:0.21.5" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/android-arm64@npm:0.19.12" @@ -1748,6 +2091,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm64@npm:0.21.5" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/android-arm@npm:0.19.12" @@ -1755,6 +2105,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm@npm:0.21.5" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/android-x64@npm:0.19.12" @@ -1762,6 +2119,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-x64@npm:0.21.5" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/darwin-arm64@npm:0.19.12" @@ -1769,6 +2133,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-arm64@npm:0.21.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/darwin-x64@npm:0.19.12" @@ -1776,6 +2147,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-x64@npm:0.21.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/freebsd-arm64@npm:0.19.12" @@ -1783,6 +2161,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-arm64@npm:0.21.5" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/freebsd-x64@npm:0.19.12" @@ -1790,6 +2175,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-x64@npm:0.21.5" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/linux-arm64@npm:0.19.12" @@ -1797,6 +2189,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm64@npm:0.21.5" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/linux-arm@npm:0.19.12" @@ -1804,6 +2203,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm@npm:0.21.5" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/linux-ia32@npm:0.19.12" @@ -1811,6 +2217,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ia32@npm:0.21.5" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/linux-loong64@npm:0.19.12" @@ -1818,6 +2231,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-loong64@npm:0.21.5" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/linux-mips64el@npm:0.19.12" @@ -1825,6 +2245,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-mips64el@npm:0.21.5" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/linux-ppc64@npm:0.19.12" @@ -1832,6 +2259,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ppc64@npm:0.21.5" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/linux-riscv64@npm:0.19.12" @@ -1839,6 +2273,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-riscv64@npm:0.21.5" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/linux-s390x@npm:0.19.12" @@ -1846,6 +2287,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-s390x@npm:0.21.5" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/linux-x64@npm:0.19.12" @@ -1853,6 +2301,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-x64@npm:0.21.5" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/netbsd-x64@npm:0.19.12" @@ -1860,6 +2315,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/netbsd-x64@npm:0.21.5" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/openbsd-x64@npm:0.19.12" @@ -1867,6 +2329,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/openbsd-x64@npm:0.21.5" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/sunos-x64@npm:0.19.12" @@ -1874,6 +2343,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/sunos-x64@npm:0.21.5" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/win32-arm64@npm:0.19.12" @@ -1881,6 +2357,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-arm64@npm:0.21.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/win32-ia32@npm:0.19.12" @@ -1888,6 +2371,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-ia32@npm:0.21.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/win32-x64@npm:0.19.12" @@ -1895,6 +2385,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-x64@npm:0.21.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@graphql-tools/merge@npm:^8.4.1": version: 8.4.2 resolution: "@graphql-tools/merge@npm:8.4.2" @@ -2591,6 +3088,23 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10/dced32160a44b49d531b80a4a2159dceab6b3ddf0c8e95a0deae4b0e894b172defa63d5ac52a19c2068e1fe7d31ea4ba931fbeec103233ecb4208953967120fc + languageName: node + linkType: hard + +"@mjackson/node-fetch-server@npm:^0.2.0": + version: 0.2.0 + resolution: "@mjackson/node-fetch-server@npm:0.2.0" + checksum: 10/49d677bfe1d1c49ceb92660a712e2aa25cf83fd064928d4d0a89771e53be7625a12dd7c45ff8a88e74e86a60cc3b6ebec753df5e0bac1d7cf81ec84e576048f7 + languageName: node + linkType: hard + "@next/env@npm:15.0.3": version: 15.0.3 resolution: "@next/env@npm:15.0.3" @@ -2654,12 +3168,39 @@ __metadata: languageName: node linkType: hard -"@npmcli/agent@npm:^2.0.0": - version: 2.2.1 - resolution: "@npmcli/agent@npm:2.2.1" +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" dependencies: - agent-base: "npm:^7.1.0" - http-proxy-agent: "npm:^7.0.0" + "@nodelib/fs.stat": "npm:2.0.5" + run-parallel: "npm:^1.1.9" + checksum: 10/6ab2a9b8a1d67b067922c36f259e3b3dfd6b97b219c540877a4944549a4d49ea5ceba5663905ab5289682f1f3c15ff441d02f0447f620a42e1cb5e1937174d4b + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 10/012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": "npm:2.1.5" + fastq: "npm:^1.6.0" + checksum: 10/40033e33e96e97d77fba5a238e4bba4487b8284678906a9f616b5579ddaf868a18874c0054a75402c9fbaaa033a25ceae093af58c9c30278e35c23c9479e79b0 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^2.0.0": + version: 2.2.1 + resolution: "@npmcli/agent@npm:2.2.1" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" https-proxy-agent: "npm:^7.0.1" lru-cache: "npm:^10.0.1" socks-proxy-agent: "npm:^8.0.1" @@ -2676,6 +3217,46 @@ __metadata: languageName: node linkType: hard +"@npmcli/git@npm:^4.1.0": + version: 4.1.0 + resolution: "@npmcli/git@npm:4.1.0" + dependencies: + "@npmcli/promise-spawn": "npm:^6.0.0" + lru-cache: "npm:^7.4.4" + npm-pick-manifest: "npm:^8.0.0" + proc-log: "npm:^3.0.0" + promise-inflight: "npm:^1.0.1" + promise-retry: "npm:^2.0.1" + semver: "npm:^7.3.5" + which: "npm:^3.0.0" + checksum: 10/33512ce12758d67c0322eca25019c4d5ef03e83f5829e09a05389af485bab216cc4df408b8eba98f2d12c119c6dff84f0d8ff25a1ac5d8a46184e55ae8f53754 + languageName: node + linkType: hard + +"@npmcli/package-json@npm:^4.0.1": + version: 4.0.1 + resolution: "@npmcli/package-json@npm:4.0.1" + dependencies: + "@npmcli/git": "npm:^4.1.0" + glob: "npm:^10.2.2" + hosted-git-info: "npm:^6.1.1" + json-parse-even-better-errors: "npm:^3.0.0" + normalize-package-data: "npm:^5.0.0" + proc-log: "npm:^3.0.0" + semver: "npm:^7.5.3" + checksum: 10/4df62d176a9fae9b961c21395e869267ff14cb1f95dac4739d65888eff12cb56399a94bfb5b74bfcbc400cd32e74cbd426bd3a5f8c452ee47b2ab2194d82dd69 + languageName: node + linkType: hard + +"@npmcli/promise-spawn@npm:^6.0.0": + version: 6.0.2 + resolution: "@npmcli/promise-spawn@npm:6.0.2" + dependencies: + which: "npm:^3.0.0" + checksum: 10/cc94a83ff1626ad93d42c2ea583dba1fb2d24cdab49caf0af77a3a0ff9bdbba34e09048b6821d4060ea7a58d4a41d49bece4ae3716929e2077c2fff0f5e94d94 + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -2774,6 +3355,111 @@ __metadata: languageName: node linkType: hard +"@react-router/dev@npm:^7.0.1": + version: 7.0.1 + resolution: "@react-router/dev@npm:7.0.1" + dependencies: + "@babel/core": "npm:^7.21.8" + "@babel/generator": "npm:^7.21.5" + "@babel/parser": "npm:^7.21.8" + "@babel/plugin-syntax-decorators": "npm:^7.22.10" + "@babel/plugin-syntax-jsx": "npm:^7.21.4" + "@babel/preset-typescript": "npm:^7.21.5" + "@babel/traverse": "npm:^7.23.2" + "@babel/types": "npm:^7.22.5" + "@npmcli/package-json": "npm:^4.0.1" + "@react-router/node": "npm:7.0.1" + arg: "npm:^5.0.1" + babel-dead-code-elimination: "npm:^1.0.6" + chokidar: "npm:^4.0.0" + dedent: "npm:^1.5.3" + es-module-lexer: "npm:^1.3.1" + exit-hook: "npm:2.2.1" + fs-extra: "npm:^10.0.0" + gunzip-maybe: "npm:^1.4.2" + jsesc: "npm:3.0.2" + lodash: "npm:^4.17.21" + pathe: "npm:^1.1.2" + picocolors: "npm:^1.1.1" + picomatch: "npm:^2.3.1" + prettier: "npm:^2.7.1" + react-refresh: "npm:^0.14.0" + semver: "npm:^7.3.7" + set-cookie-parser: "npm:^2.6.0" + valibot: "npm:^0.41.0" + vite-node: "npm:^1.6.0" + peerDependencies: + "@react-router/serve": ^7.0.1 + react-router: ^7.0.1 + typescript: ^5.1.0 + vite: ^5.1.0 + wrangler: ^3.28.2 + peerDependenciesMeta: + "@react-router/serve": + optional: true + typescript: + optional: true + wrangler: + optional: true + bin: + react-router: bin.js + checksum: 10/1ad5900b861eeb1033da1d2d7211e0e6491f4c44a10884ada7dfc346f1826c9710014b16f17b78a68f00b03013ab306fe462d66648ec0ac3ad649464893041bc + languageName: node + linkType: hard + +"@react-router/express@npm:7.0.1": + version: 7.0.1 + resolution: "@react-router/express@npm:7.0.1" + dependencies: + "@react-router/node": "npm:7.0.1" + peerDependencies: + express: ^4.17.1 + react-router: 7.0.1 + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/8b9deafa8b984f4ec2a4894382e0341f49d29e1eb3c0afa9e1481660541c7294c78d46f2715778f37db70b119207048fa5011d604140ed995f46f60cd608241b + languageName: node + linkType: hard + +"@react-router/node@npm:7.0.1, @react-router/node@npm:^7.0.1": + version: 7.0.1 + resolution: "@react-router/node@npm:7.0.1" + dependencies: + "@mjackson/node-fetch-server": "npm:^0.2.0" + source-map-support: "npm:^0.5.21" + stream-slice: "npm:^0.1.2" + undici: "npm:^6.19.2" + peerDependencies: + react-router: 7.0.1 + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/3317acc14973955ed70e1cb6f2abc7db3bef9d32f2dce6454f7c5989f16a3ef07b106fccee3973b11c70aa18569b4cea3a1ce25a78c0a2897452ea04a89046ac + languageName: node + linkType: hard + +"@react-router/serve@npm:^7.0.1": + version: 7.0.1 + resolution: "@react-router/serve@npm:7.0.1" + dependencies: + "@react-router/express": "npm:7.0.1" + "@react-router/node": "npm:7.0.1" + compression: "npm:^1.7.4" + express: "npm:^4.19.2" + get-port: "npm:5.1.1" + morgan: "npm:^1.10.0" + source-map-support: "npm:^0.5.21" + peerDependencies: + react-router: 7.0.1 + bin: + react-router-serve: bin.js + checksum: 10/8f6921cdc9083001bbdc208a8917a06273672cdc89cb822035da6ecc9fcf9ffdab076dbe3ac494ef03c92e87452d642246d66a35724671514f16868813125235 + languageName: node + linkType: hard + "@rollup/rollup-android-arm-eabi@npm:4.12.0": version: 4.12.0 resolution: "@rollup/rollup-android-arm-eabi@npm:4.12.0" @@ -2781,6 +3467,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.27.4" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@rollup/rollup-android-arm64@npm:4.12.0": version: 4.12.0 resolution: "@rollup/rollup-android-arm64@npm:4.12.0" @@ -2788,6 +3481,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm64@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-android-arm64@npm:4.27.4" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-arm64@npm:4.12.0": version: 4.12.0 resolution: "@rollup/rollup-darwin-arm64@npm:4.12.0" @@ -2795,6 +3495,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-arm64@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-darwin-arm64@npm:4.27.4" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-x64@npm:4.12.0": version: 4.12.0 resolution: "@rollup/rollup-darwin-x64@npm:4.12.0" @@ -2802,6 +3509,27 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-x64@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-darwin-x64@npm:4.27.4" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.27.4" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-freebsd-x64@npm:4.27.4" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-gnueabihf@npm:4.12.0": version: 4.12.0 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.12.0" @@ -2809,6 +3537,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-gnueabihf@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.27.4" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.27.4" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-gnu@npm:4.12.0": version: 4.12.0 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.12.0" @@ -2816,6 +3558,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-gnu@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.27.4" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-musl@npm:4.12.0": version: 4.12.0 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.12.0" @@ -2823,6 +3572,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-musl@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.27.4" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.27.4" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-gnu@npm:4.12.0": version: 4.12.0 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.12.0" @@ -2830,6 +3593,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-gnu@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.27.4" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.27.4" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-gnu@npm:4.12.0": version: 4.12.0 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.12.0" @@ -2837,6 +3614,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-gnu@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.27.4" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-musl@npm:4.12.0": version: 4.12.0 resolution: "@rollup/rollup-linux-x64-musl@npm:4.12.0" @@ -2844,6 +3628,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-musl@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.27.4" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-win32-arm64-msvc@npm:4.12.0": version: 4.12.0 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.12.0" @@ -2851,6 +3642,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-arm64-msvc@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.27.4" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-ia32-msvc@npm:4.12.0": version: 4.12.0 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.12.0" @@ -2858,6 +3656,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-ia32-msvc@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.27.4" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-msvc@npm:4.12.0": version: 4.12.0 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.12.0" @@ -2865,6 +3670,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-x64-msvc@npm:4.27.4": + version: 4.27.4 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.27.4" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@sinclair/typebox@npm:^0.27.8": version: 0.27.8 resolution: "@sinclair/typebox@npm:0.27.8" @@ -3059,6 +3871,13 @@ __metadata: languageName: node linkType: hard +"@types/cookie@npm:^0.6.0": + version: 0.6.0 + resolution: "@types/cookie@npm:0.6.0" + checksum: 10/b883348d5bf88695fbc2c2276b1c49859267a55cae3cf11ea1dccc1b3be15b466e637ce3242109ba27d616c77c6aa4efe521e3d557110b4fdd9bc332a12445c2 + languageName: node + linkType: hard + "@types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" @@ -3066,6 +3885,13 @@ __metadata: languageName: node linkType: hard +"@types/estree@npm:1.0.6": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 10/9d35d475095199c23e05b431bcdd1f6fec7380612aed068b14b2a08aa70494de8a9026765a5a91b1073f636fb0368f6d8973f518a31391d519e20c59388ed88d + languageName: node + linkType: hard + "@types/express-serve-static-core@npm:^4.17.30, @types/express-serve-static-core@npm:^4.17.33": version: 4.17.43 resolution: "@types/express-serve-static-core@npm:4.17.43" @@ -3189,6 +4015,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^20": + version: 20.17.7 + resolution: "@types/node@npm:20.17.7" + dependencies: + undici-types: "npm:~6.19.2" + checksum: 10/b54a9e6dedb75d86e2cc1ea249d2cff512fea3185d53e5a8b6b8ba93ad06f61347a4785a963323672f73f53a4847dd8ce9bb706ad4ba23650520abc67c7cffba + languageName: node + linkType: hard + "@types/prop-types@npm:*": version: 15.7.11 resolution: "@types/prop-types@npm:15.7.11" @@ -3228,6 +4063,15 @@ __metadata: languageName: node linkType: hard +"@types/react-dom@npm:^18.3.1": + version: 18.3.1 + resolution: "@types/react-dom@npm:18.3.1" + dependencies: + "@types/react": "npm:*" + checksum: 10/33f9ba79b26641ddf00a8699c30066b7e3573ab254e97475bf08f82fab83a6d3ce8d4ebad86afeb49bb8df3374390a9ba93125cece33badc4b3e8f7eac3c84d8 + languageName: node + linkType: hard + "@types/react-dom@npm:types-react-dom@19.0.0-alpha.3": version: 19.0.0-alpha.3 resolution: "types-react-dom@npm:19.0.0-alpha.3" @@ -3258,6 +4102,16 @@ __metadata: languageName: node linkType: hard +"@types/react@npm:^18.3.12": + version: 18.3.12 + resolution: "@types/react@npm:18.3.12" + dependencies: + "@types/prop-types": "npm:*" + csstype: "npm:^3.0.2" + checksum: 10/c9bbdfeacd5347d2240e0d2cb5336bc57dbc1b9ff557b6c4024b49df83419e4955553518169d3736039f1b62608e15b35762a6c03d49bd86e33add4b43b19033 + languageName: node + linkType: hard + "@types/react@npm:types-react@19.0.0-alpha.3": version: 19.0.0-alpha.3 resolution: "types-react@npm:19.0.0-alpha.3" @@ -3572,7 +4426,14 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^3.0.3": +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 10/6737469ba353b5becf29e4dc3680736b9caa06d300bda6548812a8fee63ae7d336d756f88572fa6b5219aed36698d808fa55f62af3e7e6845c7a1dc77d240edb + languageName: node + linkType: hard + +"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: @@ -3582,6 +4443,13 @@ __metadata: languageName: node linkType: hard +"arg@npm:^5.0.1, arg@npm:^5.0.2": + version: 5.0.2 + resolution: "arg@npm:5.0.2" + checksum: 10/92fe7de222054a060fd2329e92e867410b3ea260328147ee3fb7855f78efae005f4087e698d4e688a856893c56bb09951588c40f2c901cf6996cd8cd7bcfef2c + languageName: node + linkType: hard + "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -3649,6 +4517,24 @@ __metadata: languageName: node linkType: hard +"autoprefixer@npm:^10.4.20": + version: 10.4.20 + resolution: "autoprefixer@npm:10.4.20" + dependencies: + browserslist: "npm:^4.23.3" + caniuse-lite: "npm:^1.0.30001646" + fraction.js: "npm:^4.3.7" + normalize-range: "npm:^0.1.2" + picocolors: "npm:^1.0.1" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.1.0 + bin: + autoprefixer: bin/autoprefixer + checksum: 10/d3c4b562fc4af2393623a0207cc336f5b9f94c4264ae1c316376904c279702ce2b12dc3f27205f491195d1e29bb52ffc269970ceb0f271f035fadee128a273f7 + languageName: node + linkType: hard + "available-typed-arrays@npm:^1.0.6": version: 1.0.7 resolution: "available-typed-arrays@npm:1.0.7" @@ -3658,6 +4544,18 @@ __metadata: languageName: node linkType: hard +"babel-dead-code-elimination@npm:^1.0.6": + version: 1.0.6 + resolution: "babel-dead-code-elimination@npm:1.0.6" + dependencies: + "@babel/core": "npm:^7.23.7" + "@babel/parser": "npm:^7.23.6" + "@babel/traverse": "npm:^7.23.7" + "@babel/types": "npm:^7.23.6" + checksum: 10/75e20795a0e31317fff2b4246d4fec3e548f192bfb6afcc3c35967d1244b61abfa5239b15e9d1b91445fe4c85538377ffe6a57debe44a3571a7f7315e7014e90 + languageName: node + linkType: hard + "babel-jest@npm:^29.7.0": version: 29.7.0 resolution: "babel-jest@npm:29.7.0" @@ -3777,6 +4675,22 @@ __metadata: languageName: node linkType: hard +"basic-auth@npm:~2.0.1": + version: 2.0.1 + resolution: "basic-auth@npm:2.0.1" + dependencies: + safe-buffer: "npm:5.1.2" + checksum: 10/3419b805d5dfc518f3a05dcf42aa53aa9ce820e50b6df5097f9e186322e1bc733c36722b624802cd37e791035aa73b828ed814d8362333d42d7f5cd04d7a5e48 + languageName: node + linkType: hard + +"binary-extensions@npm:^2.0.0": + version: 2.3.0 + resolution: "binary-extensions@npm:2.3.0" + checksum: 10/bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98 + languageName: node + linkType: hard + "body-parser@npm:1.20.2": version: 1.20.2 resolution: "body-parser@npm:1.20.2" @@ -3845,6 +4759,24 @@ __metadata: languageName: node linkType: hard +"braces@npm:^3.0.3, braces@npm:~3.0.2": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: "npm:^7.1.1" + checksum: 10/fad11a0d4697a27162840b02b1fad249c1683cbc510cd5bf1a471f2f8085c046d41094308c577a50a03a579dd99d5a6b3724c4b5e8b14df2c4443844cfcda2c6 + languageName: node + linkType: hard + +"browserify-zlib@npm:^0.1.4": + version: 0.1.4 + resolution: "browserify-zlib@npm:0.1.4" + dependencies: + pako: "npm:~0.2.0" + checksum: 10/cd506a1ef9c3280f6537a17ed1352ef7738b66fef0a15a655dc3a43edc34be6ee78c5838427146ae1fcd4801fc06d2ab203614d0f8c4df8b5a091cf0134b9a80 + languageName: node + linkType: hard + "browserslist@npm:^4.22.2, browserslist@npm:^4.22.3": version: 4.23.0 resolution: "browserslist@npm:4.23.0" @@ -3859,6 +4791,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.23.3, browserslist@npm:^4.24.0": + version: 4.24.2 + resolution: "browserslist@npm:4.24.2" + dependencies: + caniuse-lite: "npm:^1.0.30001669" + electron-to-chromium: "npm:^1.5.41" + node-releases: "npm:^2.0.18" + update-browserslist-db: "npm:^1.1.1" + bin: + browserslist: cli.js + checksum: 10/f8a9d78bbabe466c57ffd5c50a9e5582a5df9aa68f43078ca62a9f6d0d6c70ba72eca72d0a574dbf177cf55cdca85a46f7eb474917a47ae5398c66f8b76f7d1c + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -3945,6 +4891,13 @@ __metadata: languageName: node linkType: hard +"camelcase-css@npm:^2.0.1": + version: 2.0.1 + resolution: "camelcase-css@npm:2.0.1" + checksum: 10/1cec2b3b3dcb5026688a470b00299a8db7d904c4802845c353dbd12d9d248d3346949a814d83bfd988d4d2e5b9904c07efe76fecd195a1d4f05b543e7c0b56b1 + languageName: node + linkType: hard + "camelcase@npm:^5.3.1": version: 5.3.1 resolution: "camelcase@npm:5.3.1" @@ -3966,6 +4919,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001646, caniuse-lite@npm:^1.0.30001669": + version: 1.0.30001684 + resolution: "caniuse-lite@npm:1.0.30001684" + checksum: 10/35dd0941dd32319c87409441e8400faea32114c4a74938c29262a613160d2890a4f57902e24c770f076dbd0b85c4442aa135f9f641d4a74a9246fe624e6f780a + languageName: node + linkType: hard + "chai@npm:^4.3.10": version: 4.4.1 resolution: "chai@npm:4.4.1" @@ -4028,6 +4988,34 @@ __metadata: languageName: node linkType: hard +"chokidar@npm:^3.6.0": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" + dependencies: + anymatch: "npm:~3.1.2" + braces: "npm:~3.0.2" + fsevents: "npm:~2.3.2" + glob-parent: "npm:~5.1.2" + is-binary-path: "npm:~2.1.0" + is-glob: "npm:~4.0.1" + normalize-path: "npm:~3.0.0" + readdirp: "npm:~3.6.0" + dependenciesMeta: + fsevents: + optional: true + checksum: 10/c327fb07704443f8d15f7b4a7ce93b2f0bc0e6cea07ec28a7570aa22cd51fcf0379df589403976ea956c369f25aa82d84561947e227cd925902e1751371658df + languageName: node + linkType: hard + +"chokidar@npm:^4.0.0": + version: 4.0.1 + resolution: "chokidar@npm:4.0.1" + dependencies: + readdirp: "npm:^4.0.1" + checksum: 10/62749d2173a60cc5632d6c6e0b7024f33aadce47b06d02e55ad03c7b8daaaf2fc85d4296c047473d04387fd992dab9384cc5263c70a3dc3018b7ebecfb5b5217 + languageName: node + linkType: hard + "chownr@npm:^2.0.0": version: 2.0.0 resolution: "chownr@npm:2.0.0" @@ -4149,6 +5137,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^4.0.0": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: 10/3b2dc4125f387dab73b3294dbcb0ab2a862f9c0ad748ee2b27e3544d25325b7a8cdfbcc228d103a98a716960b14478114a5206b5415bd48cdafa38797891562c + languageName: node + linkType: hard + "compressible@npm:~2.0.16": version: 2.0.18 resolution: "compressible@npm:2.0.18" @@ -4224,6 +5219,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:^1.0.1": + version: 1.0.2 + resolution: "cookie@npm:1.0.2" + checksum: 10/f5817cdc84d8977761b12549eba29435e675e65c7fef172bc31737788cd8adc83796bf8abe6d950554e7987325ad2d9ac2971c5bd8ff0c4f81c145f82e4ab1be + languageName: node + linkType: hard + "core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.34.0": version: 3.36.0 resolution: "core-js-compat@npm:3.36.0" @@ -4233,6 +5235,13 @@ __metadata: languageName: node linkType: hard +"core-util-is@npm:~1.0.0": + version: 1.0.3 + resolution: "core-util-is@npm:1.0.3" + checksum: 10/9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 + languageName: node + linkType: hard + "cors@npm:^2.8.5": version: 2.8.5 resolution: "cors@npm:2.8.5" @@ -4299,6 +5308,15 @@ __metadata: languageName: node linkType: hard +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: 10/0e161912c1306861d8f46e1883be1cbc8b1b2879f0f509287c0db71796e4ddfb97ac96bdfca38f77f452e2c10554e1bb5678c99b07a5cf947a12778f73e47e12 + languageName: node + linkType: hard + "cssom@npm:^0.5.0": version: 0.5.0 resolution: "cssom@npm:0.5.0" @@ -4380,13 +5398,25 @@ __metadata: languageName: node linkType: hard -"deep-eql@npm:^4.1.3": - version: 4.1.3 - resolution: "deep-eql@npm:4.1.3" - dependencies: - type-detect: "npm:^4.0.0" - checksum: 10/12ce93ae63de187e77b076d3d51bfc28b11f98910a22c18714cce112791195e86a94f97788180994614b14562a86c9763f67c69f785e4586f806b5df39bf9301 - languageName: node +"dedent@npm:^1.5.3": + version: 1.5.3 + resolution: "dedent@npm:1.5.3" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: 10/e5277f6268f288649503125b781a7b7a2c9b22d011139688c0b3619fe40121e600eb1f077c891938d4b2428bdb6326cc3c77a763e4b1cc681bd9666ab1bad2a1 + languageName: node + linkType: hard + +"deep-eql@npm:^4.1.3": + version: 4.1.3 + resolution: "deep-eql@npm:4.1.3" + dependencies: + type-detect: "npm:^4.0.0" + checksum: 10/12ce93ae63de187e77b076d3d51bfc28b11f98910a22c18714cce112791195e86a94f97788180994614b14562a86c9763f67c69f785e4586f806b5df39bf9301 + languageName: node linkType: hard "deep-equal@npm:^2.0.5": @@ -4451,7 +5481,7 @@ __metadata: languageName: node linkType: hard -"depd@npm:2.0.0": +"depd@npm:2.0.0, depd@npm:~2.0.0": version: 2.0.0 resolution: "depd@npm:2.0.0" checksum: 10/c0c8ff36079ce5ada64f46cc9d6fd47ebcf38241105b6e0c98f412e8ad91f084bcf906ff644cc3a4bd876ca27a62accb8b0fff72ea6ed1a414b89d8506f4a5ca @@ -4486,6 +5516,13 @@ __metadata: languageName: node linkType: hard +"didyoumean@npm:^1.2.2": + version: 1.2.2 + resolution: "didyoumean@npm:1.2.2" + checksum: 10/de7f11b6a0c8c61018629b7f405bb9746d6e994ce87c1a4b7655c3c718442dc69037a3d46d804950604fd9cbe85c074f7b224a119fc1bda851690a74540c6cf8 + languageName: node + linkType: hard + "diff-sequences@npm:^29.6.3": version: 29.6.3 resolution: "diff-sequences@npm:29.6.3" @@ -4493,6 +5530,13 @@ __metadata: languageName: node linkType: hard +"dlv@npm:^1.1.3": + version: 1.1.3 + resolution: "dlv@npm:1.1.3" + checksum: 10/836459ec6b50e43e9ed388a5fc28954be99e3481af3fa4b5d82a600762eb65ef8faacd454097ed7fc2f8a60aea2800d65a4cece5cd0d81ab82b2031f3f759e6e + languageName: node + linkType: hard + "dom-accessibility-api@npm:^0.5.9": version: 0.5.16 resolution: "dom-accessibility-api@npm:0.5.16" @@ -4523,6 +5567,18 @@ __metadata: languageName: node linkType: hard +"duplexify@npm:^3.5.0, duplexify@npm:^3.6.0": + version: 3.7.1 + resolution: "duplexify@npm:3.7.1" + dependencies: + end-of-stream: "npm:^1.0.0" + inherits: "npm:^2.0.1" + readable-stream: "npm:^2.0.0" + stream-shift: "npm:^1.0.0" + checksum: 10/7799984d178fb57e11c43f5f172a10f795322ec85ff664c2a98d2c2de6deeb9d7a30b810f83923dcd7ebe0f1786724b8aee2b62ca4577522141f93d6d48fb31c + languageName: node + linkType: hard + "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -4544,6 +5600,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.41": + version: 1.5.64 + resolution: "electron-to-chromium@npm:1.5.64" + checksum: 10/285245ee0e47fbe356d6a0e7e183bdbf8628f018f6708a1a23697f1ae7ac8a512a122d518bed8ea228fa6fef6ac4a8c68702607c1244ce9660fd4cdcfdc8ddd3 + languageName: node + linkType: hard + "emittery@npm:^0.13.1": version: 0.13.1 resolution: "emittery@npm:0.13.1" @@ -4588,6 +5651,15 @@ __metadata: languageName: node linkType: hard +"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: "npm:^1.4.0" + checksum: 10/530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b + languageName: node + linkType: hard + "entities@npm:^4.4.0": version: 4.5.0 resolution: "entities@npm:4.5.0" @@ -4651,6 +5723,13 @@ __metadata: languageName: node linkType: hard +"es-module-lexer@npm:^1.3.1": + version: 1.5.4 + resolution: "es-module-lexer@npm:1.5.4" + checksum: 10/f29c7c97a58eb17640dcbd71bd6ef754ad4f58f95c3073894573d29dae2cad43ecd2060d97ed5b866dfb7804d5590fb7de1d2c5339a5fceae8bd60b580387fc5 + languageName: node + linkType: hard + "esbuild@npm:^0.19.3": version: 0.19.12 resolution: "esbuild@npm:0.19.12" @@ -4731,6 +5810,86 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.21.3": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" + dependencies: + "@esbuild/aix-ppc64": "npm:0.21.5" + "@esbuild/android-arm": "npm:0.21.5" + "@esbuild/android-arm64": "npm:0.21.5" + "@esbuild/android-x64": "npm:0.21.5" + "@esbuild/darwin-arm64": "npm:0.21.5" + "@esbuild/darwin-x64": "npm:0.21.5" + "@esbuild/freebsd-arm64": "npm:0.21.5" + "@esbuild/freebsd-x64": "npm:0.21.5" + "@esbuild/linux-arm": "npm:0.21.5" + "@esbuild/linux-arm64": "npm:0.21.5" + "@esbuild/linux-ia32": "npm:0.21.5" + "@esbuild/linux-loong64": "npm:0.21.5" + "@esbuild/linux-mips64el": "npm:0.21.5" + "@esbuild/linux-ppc64": "npm:0.21.5" + "@esbuild/linux-riscv64": "npm:0.21.5" + "@esbuild/linux-s390x": "npm:0.21.5" + "@esbuild/linux-x64": "npm:0.21.5" + "@esbuild/netbsd-x64": "npm:0.21.5" + "@esbuild/openbsd-x64": "npm:0.21.5" + "@esbuild/sunos-x64": "npm:0.21.5" + "@esbuild/win32-arm64": "npm:0.21.5" + "@esbuild/win32-ia32": "npm:0.21.5" + "@esbuild/win32-x64": "npm:0.21.5" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10/d2ff2ca84d30cce8e871517374d6c2290835380dc7cd413b2d49189ed170d45e407be14de2cb4794cf76f75cf89955c4714726ebd3de7444b3046f5cab23ab6b + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.2 resolution: "escalade@npm:3.1.2" @@ -4738,6 +5897,13 @@ __metadata: languageName: node linkType: hard +"escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 10/9d7169e3965b2f9ae46971afa392f6e5a25545ea30f2e2dd99c9b0a95a3f52b5653681a84f5b2911a413ddad2d7a93d3514165072f349b5ffc59c75a899970d6 + languageName: node + linkType: hard + "escape-html@npm:~1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" @@ -4851,6 +6017,13 @@ __metadata: languageName: node linkType: hard +"exit-hook@npm:2.2.1": + version: 2.2.1 + resolution: "exit-hook@npm:2.2.1" + checksum: 10/75835919e0aca624daa8d114c0014ae84506c4b79ac5806748cc7a86d1610a864ee974be58eec823c7757e5e6b07a5e332647e20ef84f6cc3dc3385c953c78c9 + languageName: node + linkType: hard + "exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" @@ -4917,7 +6090,7 @@ __metadata: languageName: node linkType: hard -"express@npm:^4.21.1": +"express@npm:^4.19.2, express@npm:^4.21.1": version: 4.21.1 resolution: "express@npm:4.21.1" dependencies: @@ -4956,6 +6129,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": "npm:^2.0.2" + "@nodelib/fs.walk": "npm:^1.2.3" + glob-parent: "npm:^5.1.2" + merge2: "npm:^1.3.0" + micromatch: "npm:^4.0.4" + checksum: 10/222512e9315a0efca1276af9adb2127f02105d7288fa746145bf45e2716383fb79eb983c89601a72a399a56b7c18d38ce70457c5466218c5f13fad957cee16df + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -4963,6 +6149,15 @@ __metadata: languageName: node linkType: hard +"fastq@npm:^1.6.0": + version: 1.17.1 + resolution: "fastq@npm:1.17.1" + dependencies: + reusify: "npm:^1.0.4" + checksum: 10/a443180068b527dd7b3a63dc7f2a47ceca2f3e97b9c00a1efe5538757e6cc4056a3526df94308075d7727561baf09ebaa5b67da8dcbddb913a021c5ae69d1f69 + languageName: node + linkType: hard + "fb-watchman@npm:^2.0.0": version: 2.0.2 resolution: "fb-watchman@npm:2.0.2" @@ -4981,6 +6176,15 @@ __metadata: languageName: node linkType: hard +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: "npm:^5.0.1" + checksum: 10/a7095cb39e5bc32fada2aa7c7249d3f6b01bd1ce461a61b0adabacccabd9198500c6fb1f68a7c851a657e273fce2233ba869638897f3d7ed2e87a2d89b4436ea + languageName: node + linkType: hard + "finalhandler@npm:1.2.0": version: 1.2.0 resolution: "finalhandler@npm:1.2.0" @@ -5058,6 +6262,13 @@ __metadata: languageName: node linkType: hard +"fraction.js@npm:^4.3.7": + version: 4.3.7 + resolution: "fraction.js@npm:4.3.7" + checksum: 10/bb5ebcdeeffcdc37b68ead3bdfc244e68de188e0c64e9702197333c72963b95cc798883ad16adc21588088b942bca5b6a6ff4aeb1362d19f6f3b629035dc15f5 + languageName: node + linkType: hard + "fresh@npm:0.5.2": version: 0.5.2 resolution: "fresh@npm:0.5.2" @@ -5065,6 +6276,17 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:^10.0.0": + version: 10.1.0 + resolution: "fs-extra@npm:10.1.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10/05ce2c3b59049bcb7b52001acd000e44b3c4af4ec1f8839f383ef41ec0048e3cfa7fd8a637b1bddfefad319145db89be91f4b7c1db2908205d38bf91e7d1d3b7 + languageName: node + linkType: hard + "fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -5183,6 +6405,13 @@ __metadata: languageName: node linkType: hard +"get-port@npm:5.1.1": + version: 5.1.1 + resolution: "get-port@npm:5.1.1" + checksum: 10/0162663ffe5c09e748cd79d97b74cd70e5a5c84b760a475ce5767b357fb2a57cb821cee412d646aa8a156ed39b78aab88974eddaa9e5ee926173c036c0713787 + languageName: node + linkType: hard + "get-stream@npm:^6.0.0": version: 6.0.1 resolution: "get-stream@npm:6.0.1" @@ -5197,6 +6426,24 @@ __metadata: languageName: node linkType: hard +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: "npm:^4.0.1" + checksum: 10/32cd106ce8c0d83731966d31517adb766d02c3812de49c30cfe0675c7c0ae6630c11214c54a5ae67aca882cf738d27fd7768f21aa19118b9245950554be07247 + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: "npm:^4.0.3" + checksum: 10/c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + languageName: node + linkType: hard + "glob@npm:^10.2.2, glob@npm:^10.3.10": version: 10.3.10 resolution: "glob@npm:10.3.10" @@ -5233,6 +6480,13 @@ __metadata: languageName: node linkType: hard +"globrex@npm:^0.1.2": + version: 0.1.2 + resolution: "globrex@npm:0.1.2" + checksum: 10/81ce62ee6f800d823d6b7da7687f841676d60ee8f51f934ddd862e4057316d26665c4edc0358d4340a923ac00a514f8b67c787e28fe693aae16350f4e60d55e9 + languageName: node + linkType: hard + "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -5242,7 +6496,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 @@ -5267,6 +6521,22 @@ __metadata: languageName: node linkType: hard +"gunzip-maybe@npm:^1.4.2": + version: 1.4.2 + resolution: "gunzip-maybe@npm:1.4.2" + dependencies: + browserify-zlib: "npm:^0.1.4" + is-deflate: "npm:^1.0.0" + is-gzip: "npm:^1.0.0" + peek-stream: "npm:^1.1.0" + pumpify: "npm:^1.3.3" + through2: "npm:^2.0.3" + bin: + gunzip-maybe: bin.js + checksum: 10/82a4eadb617e50ac63cb88b3c1ebef0f85de702c0c2031c5d9c0575837e1eef7c94fa4ad69ca4aec2dc3d939c89054ec07c91c233648433058efa7d44354d456 + languageName: node + linkType: hard + "has-bigints@npm:^1.0.1": version: 1.0.2 resolution: "has-bigints@npm:1.0.2" @@ -5329,6 +6599,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10/7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a + languageName: node + linkType: hard + "hoist-non-react-statics@npm:^3.3.2": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" @@ -5338,6 +6617,15 @@ __metadata: languageName: node linkType: hard +"hosted-git-info@npm:^6.0.0, hosted-git-info@npm:^6.1.1": + version: 6.1.3 + resolution: "hosted-git-info@npm:6.1.3" + dependencies: + lru-cache: "npm:^7.5.1" + checksum: 10/1339cd47eed7347424d672d94c4a79699319b6f3262517fdbfaf435bbd39d8ef308d7621042d93d503dd9ac3fdb49fe7c32cd71722fc85174216793f6dc8d66c + languageName: node + linkType: hard + "html-encoding-sniffer@npm:^3.0.0": version: 3.0.0 resolution: "html-encoding-sniffer@npm:3.0.0" @@ -5483,7 +6771,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10/cd45e923bee15186c07fa4c89db0aace24824c482fb887b528304694b2aa6ff8a898da8657046a5dcf3e46cd6db6c61629551f9215f208d7c3f157cf9b290521 @@ -5561,6 +6849,15 @@ __metadata: languageName: node linkType: hard +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" + dependencies: + binary-extensions: "npm:^2.0.0" + checksum: 10/078e51b4f956c2c5fd2b26bb2672c3ccf7e1faff38e0ebdba45612265f4e3d9fc3127a1fa8370bbf09eab61339203c3d3b7af5662cbf8be4030f8fac37745b0e + languageName: node + linkType: hard + "is-boolean-object@npm:^1.1.0": version: 1.1.2 resolution: "is-boolean-object@npm:1.1.2" @@ -5587,6 +6884,15 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.8.1": + version: 2.15.1 + resolution: "is-core-module@npm:2.15.1" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10/77316d5891d5743854bcef2cd2f24c5458fb69fbc9705c12ca17d54a2017a67d0693bbf1ba8c77af376c0eef6bf6d1b27a4ab08e4db4e69914c3789bdf2ceec5 + languageName: node + linkType: hard + "is-date-object@npm:^1.0.5": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" @@ -5596,6 +6902,20 @@ __metadata: languageName: node linkType: hard +"is-deflate@npm:^1.0.0": + version: 1.0.0 + resolution: "is-deflate@npm:1.0.0" + checksum: 10/c2f9f2d3db79ac50c5586697d1e69a55282a2b0cc5e437b3c470dd47f24e40b6216dcd7e024511e21381607bf57afa019343e3bd0e08a119032818b596004262 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: 10/df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 + languageName: node + linkType: hard + "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" @@ -5610,6 +6930,22 @@ __metadata: languageName: node linkType: hard +"is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: "npm:^2.1.1" + checksum: 10/3ed74f2b0cdf4f401f38edb0442ddfde3092d79d7d35c9919c86641efdbcbb32e45aa3c0f70ce5eecc946896cd5a0f26e4188b9f2b881876f7cb6c505b82da11 + languageName: node + linkType: hard + +"is-gzip@npm:^1.0.0": + version: 1.0.0 + resolution: "is-gzip@npm:1.0.0" + checksum: 10/0d28931c1f445fa29c900cf9f48e06e9d1d477a3bf7bd7332e7ce68f1333ccd8cb381de2f0f62a9a262d9c0912608a9a71b4a40e788e201b3dbd67072bb20d86 + languageName: node + linkType: hard + "is-lambda@npm:^1.0.1": version: 1.0.1 resolution: "is-lambda@npm:1.0.1" @@ -5729,6 +7065,20 @@ __metadata: languageName: node linkType: hard +"isarray@npm:~1.0.0": + version: 1.0.0 + resolution: "isarray@npm:1.0.0" + checksum: 10/f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab + languageName: node + linkType: hard + +"isbot@npm:^5.1.17": + version: 5.1.17 + resolution: "isbot@npm:5.1.17" + checksum: 10/c77c1fa2d8f78ea608f77e9a7a0e41758d3358f69149cc08e7ba13ac9530678cc1a5b3d5d51790e47384eb3fb56f5deb35bedcfd1511787e1a8123065d0677bc + languageName: node + linkType: hard + "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -6290,6 +7640,15 @@ __metadata: languageName: node linkType: hard +"jiti@npm:^1.21.6": + version: 1.21.6 + resolution: "jiti@npm:1.21.6" + bin: + jiti: bin/jiti.js + checksum: 10/289b124cea411c130a14ffe88e3d38376ab44b6695616dfa0a1f32176a8f20ec90cdd6d2b9d81450fc6467cfa4d865f04f49b98452bff0f812bc400fd0ae78d6 + languageName: node + linkType: hard + "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -6362,6 +7721,15 @@ __metadata: languageName: node linkType: hard +"jsesc@npm:3.0.2, jsesc@npm:^3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" + bin: + jsesc: bin/jsesc + checksum: 10/8e5a7de6b70a8bd71f9cb0b5a7ade6a73ae6ab55e697c74cc997cede97417a3a65ed86c36f7dd6125fe49766e8386c845023d9e213916ca92c9dfdd56e2babf3 + languageName: node + linkType: hard + "jsesc@npm:^2.5.1": version: 2.5.2 resolution: "jsesc@npm:2.5.2" @@ -6387,6 +7755,13 @@ __metadata: languageName: node linkType: hard +"json-parse-even-better-errors@npm:^3.0.0": + version: 3.0.2 + resolution: "json-parse-even-better-errors@npm:3.0.2" + checksum: 10/6f04ea6c9ccb783630a59297959247e921cc90b917b8351197ca7fd058fccc7079268fd9362be21ba876fc26aa5039369dd0a2280aae49aae425784794a94927 + languageName: node + linkType: hard + "json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" @@ -6403,6 +7778,19 @@ __metadata: languageName: node linkType: hard +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: "npm:^4.1.6" + universalify: "npm:^2.0.0" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 10/03014769e7dc77d4cf05fa0b534907270b60890085dd5e4d60a382ff09328580651da0b8b4cdf44d91e4c8ae64d91791d965f05707beff000ed494a38b6fec85 + languageName: node + linkType: hard + "kleur@npm:^3.0.3": version: 3.0.3 resolution: "kleur@npm:3.0.3" @@ -6417,6 +7805,20 @@ __metadata: languageName: node linkType: hard +"lilconfig@npm:^2.1.0": + version: 2.1.0 + resolution: "lilconfig@npm:2.1.0" + checksum: 10/b1314a2e55319013d5e7d7d08be39015829d2764a1eaee130129545d40388499d81b1c31b0f9b3417d4db12775a88008b72ec33dd06e0184cf7503b32ca7cc0b + languageName: node + linkType: hard + +"lilconfig@npm:^3.0.0": + version: 3.1.2 + resolution: "lilconfig@npm:3.1.2" + checksum: 10/8058403850cfad76d6041b23db23f730e52b6c17a8c28d87b90766639ca0ee40c748a3e85c2d7bd133d572efabff166c4b015e5d25e01fd666cb4b13cfada7f0 + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -6457,7 +7859,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.15": +"lodash@npm:^4.17.15, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: 10/c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 @@ -6523,7 +7925,7 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.10.1, lru-cache@npm:^7.14.1": +"lru-cache@npm:^7.10.1, lru-cache@npm:^7.14.1, lru-cache@npm:^7.4.4, lru-cache@npm:^7.5.1": version: 7.18.3 resolution: "lru-cache@npm:7.18.3" checksum: 10/6029ca5aba3aacb554e919d7ef804fffd4adfc4c83db00fac8248c7c78811fb6d4b6f70f7fd9d55032b3823446546a007edaa66ad1f2377ae833bd983fac5d98 @@ -6613,6 +8015,13 @@ __metadata: languageName: node linkType: hard +"merge2@npm:^1.3.0": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 10/7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 + languageName: node + linkType: hard + "methods@npm:~1.1.2": version: 1.1.2 resolution: "methods@npm:1.1.2" @@ -6630,6 +8039,16 @@ __metadata: languageName: node linkType: hard +"micromatch@npm:^4.0.8": + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" + dependencies: + braces: "npm:^3.0.3" + picomatch: "npm:^2.3.1" + checksum: 10/6bf2a01672e7965eb9941d1f02044fad2bd12486b5553dc1116ff24c09a8723157601dc992e74c911d896175918448762df3b3fd0a6b61037dd1a9766ddfbf58 + languageName: node + linkType: hard + "mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2": version: 1.52.0 resolution: "mime-db@npm:1.52.0" @@ -6799,6 +8218,19 @@ __metadata: languageName: node linkType: hard +"morgan@npm:^1.10.0": + version: 1.10.0 + resolution: "morgan@npm:1.10.0" + dependencies: + basic-auth: "npm:~2.0.1" + debug: "npm:2.6.9" + depd: "npm:~2.0.0" + on-finished: "npm:~2.3.0" + on-headers: "npm:~1.0.2" + checksum: 10/4497ace00dac65318658595528c1924942c900aae88b7adc5e69e18dd78fb5d1fcccdc2048404ce7d88b5344dc088c492e3aa7cf8023f1e601c6b0f4ff806b93 + languageName: node + linkType: hard + "mrmime@npm:^2.0.0": version: 2.0.0 resolution: "mrmime@npm:2.0.0" @@ -6827,6 +8259,17 @@ __metadata: languageName: node linkType: hard +"mz@npm:^2.7.0": + version: 2.7.0 + resolution: "mz@npm:2.7.0" + dependencies: + any-promise: "npm:^1.0.0" + object-assign: "npm:^4.0.1" + thenify-all: "npm:^1.0.0" + checksum: 10/8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87 + languageName: node + linkType: hard + "nanoid@npm:^3.3.6, nanoid@npm:^3.3.7": version: 3.3.7 resolution: "nanoid@npm:3.3.7" @@ -6966,6 +8409,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: 10/241e5fa9556f1c12bafb83c6c3e94f8cf3d8f2f8f904906ecef6e10bcaa1d59aa61212d4651bec70052015fc54bd3fdcdbe7fc0f638a17e6685aa586c076ec4e + languageName: node + linkType: hard + "nopt@npm:^7.0.0": version: 7.2.0 resolution: "nopt@npm:7.2.0" @@ -6977,28 +8427,87 @@ __metadata: languageName: node linkType: hard -"normalize-path@npm:^3.0.0": +"normalize-package-data@npm:^5.0.0": + version: 5.0.0 + resolution: "normalize-package-data@npm:5.0.0" + dependencies: + hosted-git-info: "npm:^6.0.0" + is-core-module: "npm:^2.8.1" + semver: "npm:^7.3.5" + validate-npm-package-license: "npm:^3.0.4" + checksum: 10/477344ee99c6c81afbc4359f9dc7a3a219cc29a37fe0220a4595bbdb7e1e5fa9e3c195e99900228b72d8676edf99eb99fd3b66aa94b4b8ab74d516f2ff60e510 + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" checksum: 10/88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 languageName: node linkType: hard -"npm-run-path@npm:^4.0.1": - version: 4.0.1 - resolution: "npm-run-path@npm:4.0.1" - dependencies: - path-key: "npm:^3.0.0" - checksum: 10/5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 +"normalize-range@npm:^0.1.2": + version: 0.1.2 + resolution: "normalize-range@npm:0.1.2" + checksum: 10/9b2f14f093593f367a7a0834267c24f3cb3e887a2d9809c77d8a7e5fd08738bcd15af46f0ab01cc3a3d660386f015816b5c922cea8bf2ee79777f40874063184 languageName: node linkType: hard -"npm-run-path@npm:^5.1.0": - version: 5.3.0 - resolution: "npm-run-path@npm:5.3.0" +"npm-install-checks@npm:^6.0.0": + version: 6.3.0 + resolution: "npm-install-checks@npm:6.3.0" dependencies: - path-key: "npm:^4.0.0" - checksum: 10/ae8e7a89da9594fb9c308f6555c73f618152340dcaae423e5fb3620026fefbec463618a8b761920382d666fa7a2d8d240b6fe320e8a6cdd54dc3687e2b659d25 + semver: "npm:^7.1.1" + checksum: 10/6c20dadb878a0d2f1f777405217b6b63af1299d0b43e556af9363ee6eefaa98a17dfb7b612a473a473e96faf7e789c58b221e0d8ffdc1d34903c4f71618df3b4 + languageName: node + linkType: hard + +"npm-normalize-package-bin@npm:^3.0.0": + version: 3.0.1 + resolution: "npm-normalize-package-bin@npm:3.0.1" + checksum: 10/de416d720ab22137a36292ff8a333af499ea0933ef2320a8c6f56a73b0f0448227fec4db5c890d702e26d21d04f271415eab6580b5546456861cc0c19498a4bf + languageName: node + linkType: hard + +"npm-package-arg@npm:^10.0.0": + version: 10.1.0 + resolution: "npm-package-arg@npm:10.1.0" + dependencies: + hosted-git-info: "npm:^6.0.0" + proc-log: "npm:^3.0.0" + semver: "npm:^7.3.5" + validate-npm-package-name: "npm:^5.0.0" + checksum: 10/3bbb5f081099f73e852b4d3a3a10f78d495bdf21e050ca5c78dc134921c99ec856d1555ff6ba9c1c15b7475ad976ce803ef53fdda34abec622fe8f5d76421319 + languageName: node + linkType: hard + +"npm-pick-manifest@npm:^8.0.0": + version: 8.0.2 + resolution: "npm-pick-manifest@npm:8.0.2" + dependencies: + npm-install-checks: "npm:^6.0.0" + npm-normalize-package-bin: "npm:^3.0.0" + npm-package-arg: "npm:^10.0.0" + semver: "npm:^7.3.5" + checksum: 10/3f10a34e12cbb576edb694562a32730c6c0244b2929b91202d1be62ece76bc8b282dc7e9535d313d598963f8e3d06d19973611418a191fe3102be149a8fa0910 + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: "npm:^3.0.0" + checksum: 10/5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 + languageName: node + linkType: hard + +"npm-run-path@npm:^5.1.0": + version: 5.3.0 + resolution: "npm-run-path@npm:5.3.0" + dependencies: + path-key: "npm:^4.0.0" + checksum: 10/ae8e7a89da9594fb9c308f6555c73f618152340dcaae423e5fb3620026fefbec463618a8b761920382d666fa7a2d8d240b6fe320e8a6cdd54dc3687e2b659d25 languageName: node linkType: hard @@ -7009,13 +8518,20 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4, object-assign@npm:^4.1.1": +"object-assign@npm:^4, object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f languageName: node linkType: hard +"object-hash@npm:^3.0.0": + version: 3.0.0 + resolution: "object-hash@npm:3.0.0" + checksum: 10/f498d456a20512ba7be500cef4cf7b3c183cc72c65372a549c9a0e6dd78ce26f375e9b1315c07592d3fde8f10d5019986eba35970570d477ed9a2a702514432a + languageName: node + linkType: hard + "object-inspect@npm:^1.13.1": version: 1.13.1 resolution: "object-inspect@npm:1.13.1" @@ -7061,6 +8577,15 @@ __metadata: languageName: node linkType: hard +"on-finished@npm:~2.3.0": + version: 2.3.0 + resolution: "on-finished@npm:2.3.0" + dependencies: + ee-first: "npm:1.1.1" + checksum: 10/1db595bd963b0124d6fa261d18320422407b8f01dc65863840f3ddaaf7bcad5b28ff6847286703ca53f4ec19595bd67a2f1253db79fc4094911ec6aa8df1671b + languageName: node + linkType: hard + "on-headers@npm:~1.0.2": version: 1.0.2 resolution: "on-headers@npm:1.0.2" @@ -7068,7 +8593,7 @@ __metadata: languageName: node linkType: hard -"once@npm:^1.3.0": +"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" dependencies: @@ -7107,14 +8632,14 @@ __metadata: linkType: hard "optimism@npm:^0.18.0": - version: 0.18.0 - resolution: "optimism@npm:0.18.0" + version: 0.18.1 + resolution: "optimism@npm:0.18.1" dependencies: "@wry/caches": "npm:^1.0.0" "@wry/context": "npm:^0.7.0" - "@wry/trie": "npm:^0.4.3" + "@wry/trie": "npm:^0.5.0" tslib: "npm:^2.3.0" - checksum: 10/b461968008eb7aafd5b5dd63b81fd41fbd907f39858bdd5190f10b71db6a5bf54541cdb3d2a569b2bf5585ca917ac192f953e6239d81702a4391fdb476a00ae8 + checksum: 10/d805f5995d61a417d4fd49a923749db1aa310d1ae8de084ec3a5f589f8b185d9a41b7b4422d33ee75ce43115c264e14bca086f8be2bb182c76448ad08997213a languageName: node linkType: hard @@ -7170,6 +8695,13 @@ __metadata: languageName: node linkType: hard +"pako@npm:~0.2.0": + version: 0.2.9 + resolution: "pako@npm:0.2.9" + checksum: 10/627c6842e90af0b3a9ee47345bd66485a589aff9514266f4fa9318557ad819c46fedf97510f2cef9b6224c57913777966a05cb46caf6a9b31177a5401a06fe15 + languageName: node + linkType: hard + "parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" @@ -7271,6 +8803,17 @@ __metadata: languageName: node linkType: hard +"peek-stream@npm:^1.1.0": + version: 1.1.3 + resolution: "peek-stream@npm:1.1.3" + dependencies: + buffer-from: "npm:^1.0.0" + duplexify: "npm:^3.5.0" + through2: "npm:^2.0.3" + checksum: 10/a0e09d6d1a8a01158a3334f20d6b1cdd91747eba24eb06a1d742eefb620385593121a76d4378cc81f77cdce6a66df0575a41041b1189c510254aec91878afc99 + languageName: node + linkType: hard + "picocolors@npm:^1.0.0": version: 1.0.0 resolution: "picocolors@npm:1.0.0" @@ -7278,14 +8821,28 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": +"picocolors@npm:^1.0.1, picocolors@npm:^1.1.0, picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10/e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 10/60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc languageName: node linkType: hard -"pirates@npm:^4.0.4": +"pify@npm:^2.3.0": + version: 2.3.0 + resolution: "pify@npm:2.3.0" + checksum: 10/9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba + languageName: node + linkType: hard + +"pirates@npm:^4.0.1, pirates@npm:^4.0.4": version: 4.0.6 resolution: "pirates@npm:4.0.6" checksum: 10/d02dda76f4fec1cbdf395c36c11cf26f76a644f9f9a1bfa84d3167d0d3154d5289aacc72677aa20d599bb4a6937a471de1b65c995e2aea2d8687cbcd7e43ea5f @@ -7343,6 +8900,76 @@ __metadata: languageName: node linkType: hard +"postcss-import@npm:^15.1.0": + version: 15.1.0 + resolution: "postcss-import@npm:15.1.0" + dependencies: + postcss-value-parser: "npm:^4.0.0" + read-cache: "npm:^1.0.0" + resolve: "npm:^1.1.7" + peerDependencies: + postcss: ^8.0.0 + checksum: 10/33c91b7e6b794b5c33d7d7d4730e5f0729c131d2de1ada7fcc116955625a78c3ce613983f019fa9447681795cf3f851e9c38dfbe3f48a2d08a8aef917c70a32a + languageName: node + linkType: hard + +"postcss-js@npm:^4.0.1": + version: 4.0.1 + resolution: "postcss-js@npm:4.0.1" + dependencies: + camelcase-css: "npm:^2.0.1" + peerDependencies: + postcss: ^8.4.21 + checksum: 10/ef2cfe8554daab4166cfcb290f376e7387964c36503f5bd42008778dba735685af8d4f5e0aba67cae999f47c855df40a1cd31ae840e0df320ded36352581045e + languageName: node + linkType: hard + +"postcss-load-config@npm:^4.0.2": + version: 4.0.2 + resolution: "postcss-load-config@npm:4.0.2" + dependencies: + lilconfig: "npm:^3.0.0" + yaml: "npm:^2.3.4" + peerDependencies: + postcss: ">=8.0.9" + ts-node: ">=9.0.0" + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + checksum: 10/e2c2ed9b7998a5b123e1ce0c124daf6504b1454c67dcc1c8fdbcc5ffb2597b7de245e3ac34f63afc928d3fd3260b1e36492ebbdb01a9ff63f16b3c8b7b925d1b + languageName: node + linkType: hard + +"postcss-nested@npm:^6.2.0": + version: 6.2.0 + resolution: "postcss-nested@npm:6.2.0" + dependencies: + postcss-selector-parser: "npm:^6.1.1" + peerDependencies: + postcss: ^8.2.14 + checksum: 10/d7f6ba6bfd03d42f84689a0630d4e393c421bb53723f16fe179a840f03ed17763b0fe494458577d2a015e857e0ec27c7e194909ffe209ee5f0676aec39737317 + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^6.1.1, postcss-selector-parser@npm:^6.1.2": + version: 6.1.2 + resolution: "postcss-selector-parser@npm:6.1.2" + dependencies: + cssesc: "npm:^3.0.0" + util-deprecate: "npm:^1.0.2" + checksum: 10/190034c94d809c115cd2f32ee6aade84e933450a43ec3899c3e78e7d7b33efd3a2a975bb45d7700b6c5b196c06a7d9acf3f1ba6f1d87032d9675a29d8bca1dd3 + languageName: node + linkType: hard + +"postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.2.0": + version: 4.2.0 + resolution: "postcss-value-parser@npm:4.2.0" + checksum: 10/e4e4486f33b3163a606a6ed94f9c196ab49a37a7a7163abfcd469e5f113210120d70b8dd5e33d64636f41ad52316a3725655421eb9a1094f1bcab1db2f555c62 + languageName: node + linkType: hard + "postcss@npm:8.4.31": version: 8.4.31 resolution: "postcss@npm:8.4.31" @@ -7365,6 +8992,26 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.43, postcss@npm:^8.4.47, postcss@npm:^8.4.49": + version: 8.4.49 + resolution: "postcss@npm:8.4.49" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10/28fe1005b1339870e0a5006375ba5ac1213fd69800f79e7db09c398e074421ba6e162898e94f64942fed554037fd292db3811d87835d25ab5ef7f3c9daacb6ca + languageName: node + linkType: hard + +"prettier@npm:^2.7.1": + version: 2.8.8 + resolution: "prettier@npm:2.8.8" + bin: + prettier: bin-prettier.js + checksum: 10/00cdb6ab0281f98306cd1847425c24cbaaa48a5ff03633945ab4c701901b8e96ad558eb0777364ffc312f437af9b5a07d0f45346266e8245beaf6247b9c62b24 + languageName: node + linkType: hard + "prettier@npm:^3.2.5": version: 3.2.5 resolution: "prettier@npm:3.2.5" @@ -7403,6 +9050,20 @@ __metadata: languageName: node linkType: hard +"process-nextick-args@npm:~2.0.0": + version: 2.0.1 + resolution: "process-nextick-args@npm:2.0.1" + checksum: 10/1d38588e520dab7cea67cbbe2efdd86a10cc7a074c09657635e34f035277b59fbb57d09d8638346bf7090f8e8ebc070c96fa5fd183b777fff4f5edff5e9466cf + languageName: node + linkType: hard + +"promise-inflight@npm:^1.0.1": + version: 1.0.1 + resolution: "promise-inflight@npm:1.0.1" + checksum: 10/1560d413ea20c5a74f3631d39ba8cbd1972b9228072a755d01e1f5ca5110382d9af76a1582d889445adc6e75bb5ac4886b56dc4b6eae51b30145d7bb1ac7505b + languageName: node + linkType: hard + "promise-retry@npm:^2.0.1": version: 2.0.1 resolution: "promise-retry@npm:2.0.1" @@ -7451,6 +9112,27 @@ __metadata: languageName: node linkType: hard +"pump@npm:^2.0.0": + version: 2.0.1 + resolution: "pump@npm:2.0.1" + dependencies: + end-of-stream: "npm:^1.1.0" + once: "npm:^1.3.1" + checksum: 10/e9f26a17be00810bff37ad0171edb35f58b242487b0444f92fb7d78bc7d61442fa9b9c5bd93a43fd8fd8ddd3cc75f1221f5e04c790f42907e5baab7cf5e2b931 + languageName: node + linkType: hard + +"pumpify@npm:^1.3.3": + version: 1.5.1 + resolution: "pumpify@npm:1.5.1" + dependencies: + duplexify: "npm:^3.6.0" + inherits: "npm:^2.0.3" + pump: "npm:^2.0.0" + checksum: 10/5d11a99f320dc2a052610399bac6d03db0a23bc23b23aa2a7d0adf879da3065a55134b975db66dc46bc79f54af3dd575d8119113a0a5b311a00580e1f053896b + languageName: node + linkType: hard + "punycode@npm:^2.1.1": version: 2.3.1 resolution: "punycode@npm:2.3.1" @@ -7490,6 +9172,13 @@ __metadata: languageName: node linkType: hard +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: 10/72900df0616e473e824202113c3df6abae59150dfb73ed13273503127235320e9c8ca4aaaaccfd58cf417c6ca92a6e68ee9a5c3182886ae949a768639b388a7b + languageName: node + linkType: hard + "range-parser@npm:~1.2.1": version: 1.2.1 resolution: "range-parser@npm:1.2.1" @@ -7544,6 +9233,18 @@ __metadata: languageName: node linkType: hard +"react-dom@npm:^18.3.1": + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" + dependencies: + loose-envify: "npm:^1.1.0" + scheduler: "npm:^0.23.2" + peerDependencies: + react: ^18.3.1 + checksum: 10/3f4b73a3aa083091173b29812b10394dd06f4ac06aff410b74702cfb3aa29d7b0ced208aab92d5272919b612e5cda21aeb1d54191848cf6e46e9e354f3541f81 + languageName: node + linkType: hard + "react-error-boundary@npm:^4.0.13": version: 4.0.13 resolution: "react-error-boundary@npm:4.0.13" @@ -7583,6 +9284,47 @@ __metadata: languageName: node linkType: hard +"react-router@npm:^7.0.1": + version: 7.0.1 + resolution: "react-router@npm:7.0.1" + dependencies: + "@types/cookie": "npm:^0.6.0" + cookie: "npm:^1.0.1" + set-cookie-parser: "npm:^2.6.0" + turbo-stream: "npm:2.4.0" + peerDependencies: + react: ">=18" + react-dom: ">=18" + peerDependenciesMeta: + react-dom: + optional: true + checksum: 10/f41ee8b496c70f625112b0ade9e11575d8ef344e672704425db2fe4fb02ace66cb8aeb6fce56745dda85839fb589446fc5604f30e7e7860fb85f2eeb83216df5 + languageName: node + linkType: hard + +"react-router@workspace:react-router": + version: 0.0.0-use.local + resolution: "react-router@workspace:react-router" + dependencies: + "@react-router/dev": "npm:^7.0.1" + "@react-router/node": "npm:^7.0.1" + "@react-router/serve": "npm:^7.0.1" + "@types/node": "npm:^20" + "@types/react": "npm:^18.3.12" + "@types/react-dom": "npm:^18.3.1" + autoprefixer: "npm:^10.4.20" + isbot: "npm:^5.1.17" + postcss: "npm:^8.4.49" + react: "npm:^18.3.1" + react-dom: "npm:^18.3.1" + react-router: "npm:^7.0.1" + tailwindcss: "npm:^3.4.15" + typescript: "npm:^5.6.3" + vite: "npm:^5.4.11" + vite-tsconfig-paths: "npm:^5.1.2" + languageName: unknown + linkType: soft + "react@npm:18.3.0": version: 18.3.0 resolution: "react@npm:18.3.0" @@ -7608,6 +9350,55 @@ __metadata: languageName: node linkType: hard +"react@npm:^18.3.1": + version: 18.3.1 + resolution: "react@npm:18.3.1" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10/261137d3f3993eaa2368a83110466fc0e558bc2c7f7ae7ca52d94f03aac945f45146bd85e5f481044db1758a1dbb57879e2fcdd33924e2dde1bdc550ce73f7bf + languageName: node + linkType: hard + +"read-cache@npm:^1.0.0": + version: 1.0.0 + resolution: "read-cache@npm:1.0.0" + dependencies: + pify: "npm:^2.3.0" + checksum: 10/83a39149d9dfa38f0c482ea0d77b34773c92fef07fe7599cdd914d255b14d0453e0229ef6379d8d27d6947f42d7581635296d0cfa7708f05a9bd8e789d398b31 + languageName: node + linkType: hard + +"readable-stream@npm:^2.0.0, readable-stream@npm:~2.3.6": + version: 2.3.8 + resolution: "readable-stream@npm:2.3.8" + dependencies: + core-util-is: "npm:~1.0.0" + inherits: "npm:~2.0.3" + isarray: "npm:~1.0.0" + process-nextick-args: "npm:~2.0.0" + safe-buffer: "npm:~5.1.1" + string_decoder: "npm:~1.1.1" + util-deprecate: "npm:~1.0.1" + checksum: 10/8500dd3a90e391d6c5d889256d50ec6026c059fadee98ae9aa9b86757d60ac46fff24fafb7a39fa41d54cb39d8be56cc77be202ebd4cd8ffcf4cb226cbaa40d4 + languageName: node + linkType: hard + +"readdirp@npm:^4.0.1": + version: 4.0.2 + resolution: "readdirp@npm:4.0.2" + checksum: 10/4ef93103307c7d5e42e78ecf201db58c984c4d66882a27c956250478b49c2444b1ff6aea8ce0f5e4157b2c07ce2fe870ad16c92ebd7c6ff30391ded6e42b9873 + languageName: node + linkType: hard + +"readdirp@npm:~3.6.0": + version: 3.6.0 + resolution: "readdirp@npm:3.6.0" + dependencies: + picomatch: "npm:^2.2.1" + checksum: 10/196b30ef6ccf9b6e18c4e1724b7334f72a093d011a99f3b5920470f0b3406a51770867b3e1ae9711f227ef7a7065982f6ee2ce316746b2cb42c88efe44297fe7 + languageName: node + linkType: hard + "redent@npm:^3.0.0": version: 3.0.0 resolution: "redent@npm:3.0.0" @@ -7739,7 +9530,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.14.2, resolve@npm:^1.20.0": +"resolve@npm:^1.1.7, resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.8": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -7752,7 +9543,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin": +"resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -7786,6 +9577,13 @@ __metadata: languageName: node linkType: hard +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: 10/14222c9e1d3f9ae01480c50d96057228a8524706db79cdeb5a2ce5bb7070dd9f409a6f84a02cbef8cdc80d39aef86f2dd03d155188a1300c599b05437dcd2ffb + languageName: node + linkType: hard + "rollup@npm:^4.2.0": version: 4.12.0 resolution: "rollup@npm:4.12.0" @@ -7840,7 +9638,85 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.1.2": +"rollup@npm:^4.20.0": + version: 4.27.4 + resolution: "rollup@npm:4.27.4" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.27.4" + "@rollup/rollup-android-arm64": "npm:4.27.4" + "@rollup/rollup-darwin-arm64": "npm:4.27.4" + "@rollup/rollup-darwin-x64": "npm:4.27.4" + "@rollup/rollup-freebsd-arm64": "npm:4.27.4" + "@rollup/rollup-freebsd-x64": "npm:4.27.4" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.27.4" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.27.4" + "@rollup/rollup-linux-arm64-gnu": "npm:4.27.4" + "@rollup/rollup-linux-arm64-musl": "npm:4.27.4" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.27.4" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.27.4" + "@rollup/rollup-linux-s390x-gnu": "npm:4.27.4" + "@rollup/rollup-linux-x64-gnu": "npm:4.27.4" + "@rollup/rollup-linux-x64-musl": "npm:4.27.4" + "@rollup/rollup-win32-arm64-msvc": "npm:4.27.4" + "@rollup/rollup-win32-ia32-msvc": "npm:4.27.4" + "@rollup/rollup-win32-x64-msvc": "npm:4.27.4" + "@types/estree": "npm:1.0.6" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10/ff7dcb877fcb6240b5135292dcb5c6aa66d06071e6570bb8aa2ce0863ae1f879e5dd04aff7ed3a77d29633da40393361553549bf819c02cc199d7be94801da66 + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: "npm:^1.2.2" + checksum: 10/cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + languageName: node + linkType: hard + +"safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": version: 5.1.2 resolution: "safe-buffer@npm:5.1.2" checksum: 10/7eb5b48f2ed9a594a4795677d5a150faa7eb54483b2318b568dc0c4fc94092a6cce5be02c7288a0500a156282f5276d5688bce7259299568d1053b2150ef374a @@ -7886,6 +9762,15 @@ __metadata: languageName: node linkType: hard +"scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10/e8d68b89d18d5b028223edf090092846868a765a591944760942b77ea1f69b17235f7e956696efbb62c8130ab90af7e0949bfb8eba7896335507317236966bc9 + languageName: node + linkType: hard + "semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" @@ -7895,6 +9780,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.1.1, semver@npm:^7.3.7, semver@npm:^7.6.3": + version: 7.6.3 + resolution: "semver@npm:7.6.3" + bin: + semver: bin/semver.js + checksum: 10/36b1fbe1a2b6f873559cd57b238f1094a053dbfd997ceeb8757d79d1d2089c56d1321b9f1069ce263dc64cfa922fa1d2ad566b39426fe1ac6c723c1487589e10 + languageName: node + linkType: hard + "semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.6.0 resolution: "semver@npm:7.6.0" @@ -7906,15 +9800,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.6.3": - version: 7.6.3 - resolution: "semver@npm:7.6.3" - bin: - semver: bin/semver.js - checksum: 10/36b1fbe1a2b6f873559cd57b238f1094a053dbfd997ceeb8757d79d1d2089c56d1321b9f1069ce263dc64cfa922fa1d2ad566b39426fe1ac6c723c1487589e10 - languageName: node - linkType: hard - "send@npm:0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" @@ -7981,6 +9866,13 @@ __metadata: languageName: node linkType: hard +"set-cookie-parser@npm:^2.6.0": + version: 2.7.1 + resolution: "set-cookie-parser@npm:2.7.1" + checksum: 10/c92b1130032693342bca13ea1b1bc93967ab37deec4387fcd8c2a843c0ef2fd9a9f3df25aea5bb3976cd05a91c2cf4632dd6164d6e1814208fb7d7e14edd42b4 + languageName: node + linkType: hard + "set-function-length@npm:^1.2.1": version: 1.2.1 resolution: "set-function-length@npm:1.2.1" @@ -8213,6 +10105,13 @@ __metadata: languageName: node linkType: hard +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 10/ff9d8c8bf096d534a5b7707e0382ef827b4dd360a577d3f34d2b9f48e12c9d230b5747974ee7c607f0df65113732711bb701fe9ece3c7edbd43cb2294d707df3 + languageName: node + linkType: hard + "source-map-support@npm:0.5.13": version: 0.5.13 resolution: "source-map-support@npm:0.5.13" @@ -8223,6 +10122,16 @@ __metadata: languageName: node linkType: hard +"source-map-support@npm:^0.5.21": + version: 0.5.21 + resolution: "source-map-support@npm:0.5.21" + dependencies: + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 10/8317e12d84019b31e34b86d483dd41d6f832f389f7417faf8fc5c75a66a12d9686e47f589a0554a868b8482f037e23df9d040d29387eb16fa14cb85f091ba207 + languageName: node + linkType: hard + "source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" @@ -8230,6 +10139,40 @@ __metadata: languageName: node linkType: hard +"spdx-correct@npm:^3.0.0": + version: 3.2.0 + resolution: "spdx-correct@npm:3.2.0" + dependencies: + spdx-expression-parse: "npm:^3.0.0" + spdx-license-ids: "npm:^3.0.0" + checksum: 10/cc2e4dbef822f6d12142116557d63f5facf3300e92a6bd24e907e4865e17b7e1abd0ee6b67f305cae6790fc2194175a24dc394bfcc01eea84e2bdad728e9ae9a + languageName: node + linkType: hard + +"spdx-exceptions@npm:^2.1.0": + version: 2.5.0 + resolution: "spdx-exceptions@npm:2.5.0" + checksum: 10/bb127d6e2532de65b912f7c99fc66097cdea7d64c10d3ec9b5e96524dbbd7d20e01cba818a6ddb2ae75e62bb0c63d5e277a7e555a85cbc8ab40044984fa4ae15 + languageName: node + linkType: hard + +"spdx-expression-parse@npm:^3.0.0": + version: 3.0.1 + resolution: "spdx-expression-parse@npm:3.0.1" + dependencies: + spdx-exceptions: "npm:^2.1.0" + spdx-license-ids: "npm:^3.0.0" + checksum: 10/a1c6e104a2cbada7a593eaa9f430bd5e148ef5290d4c0409899855ce8b1c39652bcc88a725259491a82601159d6dc790bedefc9016c7472f7de8de7361f8ccde + languageName: node + linkType: hard + +"spdx-license-ids@npm:^3.0.0": + version: 3.0.20 + resolution: "spdx-license-ids@npm:3.0.20" + checksum: 10/30e566ea74b04232c64819d1f5313c00d92e9c73d054541650331fc794499b3bcc4991bcd90fa3c2fc4d040006f58f63104706255266e87a9d452e6574afc60c + languageName: node + linkType: hard + "sprintf-js@npm:^1.1.3": version: 1.1.3 resolution: "sprintf-js@npm:1.1.3" @@ -8303,6 +10246,20 @@ __metadata: languageName: node linkType: hard +"stream-shift@npm:^1.0.0": + version: 1.0.3 + resolution: "stream-shift@npm:1.0.3" + checksum: 10/a24c0a3f66a8f9024bd1d579a533a53be283b4475d4e6b4b3211b964031447bdf6532dd1f3c2b0ad66752554391b7c62bd7ca4559193381f766534e723d50242 + languageName: node + linkType: hard + +"stream-slice@npm:^0.1.2": + version: 0.1.2 + resolution: "stream-slice@npm:0.1.2" + checksum: 10/6fa948ea58523f11f72e796f99579ff2bbecdff080d63b25762b0c0d282ac9a2d98af0f6e84dcc8d24c6284b2f7ce92ce0f9a1c8f77c91ac273954754e53c781 + languageName: node + linkType: hard + "streamsearch@npm:^1.1.0": version: 1.1.0 resolution: "streamsearch@npm:1.1.0" @@ -8342,6 +10299,15 @@ __metadata: languageName: node linkType: hard +"string_decoder@npm:~1.1.1": + version: 1.1.1 + resolution: "string_decoder@npm:1.1.1" + dependencies: + safe-buffer: "npm:~5.1.0" + checksum: 10/7c41c17ed4dea105231f6df208002ebddd732e8e9e2d619d133cecd8e0087ddfd9587d2feb3c8caf3213cbd841ada6d057f5142cae68a4e62d3540778d9819b4 + languageName: node + linkType: hard + "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -8422,6 +10388,24 @@ __metadata: languageName: node linkType: hard +"sucrase@npm:^3.35.0": + version: 3.35.0 + resolution: "sucrase@npm:3.35.0" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.2" + commander: "npm:^4.0.0" + glob: "npm:^10.3.10" + lines-and-columns: "npm:^1.1.6" + mz: "npm:^2.7.0" + pirates: "npm:^4.0.1" + ts-interface-checker: "npm:^0.1.9" + bin: + sucrase: bin/sucrase + sucrase-node: bin/sucrase-node + checksum: 10/bc601558a62826f1c32287d4fdfa4f2c09fe0fec4c4d39d0e257fd9116d7d6227a18309721d4185ec84c9dc1af0d5ec0e05a42a337fbb74fc293e068549aacbe + languageName: node + linkType: hard + "supports-color@npm:^5.3.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" @@ -8470,6 +10454,39 @@ __metadata: languageName: node linkType: hard +"tailwindcss@npm:^3.4.15": + version: 3.4.15 + resolution: "tailwindcss@npm:3.4.15" + dependencies: + "@alloc/quick-lru": "npm:^5.2.0" + arg: "npm:^5.0.2" + chokidar: "npm:^3.6.0" + didyoumean: "npm:^1.2.2" + dlv: "npm:^1.1.3" + fast-glob: "npm:^3.3.2" + glob-parent: "npm:^6.0.2" + is-glob: "npm:^4.0.3" + jiti: "npm:^1.21.6" + lilconfig: "npm:^2.1.0" + micromatch: "npm:^4.0.8" + normalize-path: "npm:^3.0.0" + object-hash: "npm:^3.0.0" + picocolors: "npm:^1.1.1" + postcss: "npm:^8.4.47" + postcss-import: "npm:^15.1.0" + postcss-js: "npm:^4.0.1" + postcss-load-config: "npm:^4.0.2" + postcss-nested: "npm:^6.2.0" + postcss-selector-parser: "npm:^6.1.2" + resolve: "npm:^1.22.8" + sucrase: "npm:^3.35.0" + bin: + tailwind: lib/cli.js + tailwindcss: lib/cli.js + checksum: 10/670bc70ae98d36601990424067f1164eebcbe97493ce8d314e8baa85eb47a6b92caabcea3046dfa9e3888a40a4807c123e12dfa2e05d884ff0583c6a1b647cb7 + languageName: node + linkType: hard + "tar@npm:^6.1.11, tar@npm:^6.1.2": version: 6.2.0 resolution: "tar@npm:6.2.0" @@ -8495,6 +10512,34 @@ __metadata: languageName: node linkType: hard +"thenify-all@npm:^1.0.0": + version: 1.6.0 + resolution: "thenify-all@npm:1.6.0" + dependencies: + thenify: "npm:>= 3.1.0 < 4" + checksum: 10/dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e + languageName: node + linkType: hard + +"thenify@npm:>= 3.1.0 < 4": + version: 3.3.1 + resolution: "thenify@npm:3.3.1" + dependencies: + any-promise: "npm:^1.0.0" + checksum: 10/486e1283a867440a904e36741ff1a177faa827cf94d69506f7e3ae4187b9afdf9ec368b3d8da225c192bfe2eb943f3f0080594156bf39f21b57cd1411e2e7f6d + languageName: node + linkType: hard + +"through2@npm:^2.0.3": + version: 2.0.5 + resolution: "through2@npm:2.0.5" + dependencies: + readable-stream: "npm:~2.3.6" + xtend: "npm:~4.0.1" + checksum: 10/cd71f7dcdc7a8204fea003a14a433ef99384b7d4e31f5497e1f9f622b3cf3be3691f908455f98723bdc80922a53af7fa10c3b7abbe51c6fd3d536dbc7850e2c4 + languageName: node + linkType: hard + "tinybench@npm:^2.5.1": version: 2.6.0 resolution: "tinybench@npm:2.6.0" @@ -8581,6 +10626,13 @@ __metadata: languageName: node linkType: hard +"ts-interface-checker@npm:^0.1.9": + version: 0.1.13 + resolution: "ts-interface-checker@npm:0.1.13" + checksum: 10/9f7346b9e25bade7a1050c001ec5a4f7023909c0e1644c5a96ae20703a131627f081479e6622a4ecee2177283d0069e651e507bedadd3904fc4010ab28ffce00 + languageName: node + linkType: hard + "ts-invariant@npm:^0.10.3": version: 0.10.3 resolution: "ts-invariant@npm:0.10.3" @@ -8590,6 +10642,20 @@ __metadata: languageName: node linkType: hard +"tsconfck@npm:^3.0.3": + version: 3.1.4 + resolution: "tsconfck@npm:3.1.4" + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + bin: + tsconfck: bin/tsconfck.js + checksum: 10/4fb02e75ff374a82052b4800970bebe4466b5a6e7193d74e7b875cc8225acb5037fb4e7dcd4a5cd751c22129360cb13b4d5536897eae131d69c1a20fb18a99b4 + languageName: node + linkType: hard + "tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0": version: 2.6.2 resolution: "tslib@npm:2.6.2" @@ -8597,6 +10663,13 @@ __metadata: languageName: node linkType: hard +"turbo-stream@npm:2.4.0": + version: 2.4.0 + resolution: "turbo-stream@npm:2.4.0" + checksum: 10/7079bbc82b58340f783144cd669cc7e598288523103a8d68bb8a4c6bb28c64eccb71d389b33aab07788d3a9030638b795709e15cb8486f722b1cdac59cb58afc + languageName: node + linkType: hard + "type-detect@npm:4.0.8, type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": version: 4.0.8 resolution: "type-detect@npm:4.0.8" @@ -8631,6 +10704,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:^5.6.3": + version: 5.7.2 + resolution: "typescript@npm:5.7.2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/4caa3904df69db9d4a8bedc31bafc1e19ffb7b24fbde2997a1633ae1398d0de5bdbf8daf602ccf3b23faddf1aeeb9b795223a2ed9c9a4fdcaf07bfde114a401a + languageName: node + linkType: hard + "typescript@patch:typescript@npm%3A5.1.3#optional!builtin": version: 5.1.3 resolution: "typescript@patch:typescript@npm%3A5.1.3#optional!builtin::version=5.1.3&hash=5da071" @@ -8641,6 +10724,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@npm%3A^5.6.3#optional!builtin": + version: 5.7.2 + resolution: "typescript@patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=b45daf" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/ff27fc124bceb8969be722baa38af945b2505767cf794de3e2715e58f61b43780284060287d651fcbbdfb6f917f4653b20f4751991f17e0706db389b9bb3f75d + languageName: node + linkType: hard + "ufo@npm:^1.3.2": version: 1.4.0 resolution: "ufo@npm:1.4.0" @@ -8655,6 +10748,20 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~6.19.2": + version: 6.19.8 + resolution: "undici-types@npm:6.19.8" + checksum: 10/cf0b48ed4fc99baf56584afa91aaffa5010c268b8842f62e02f752df209e3dea138b372a60a963b3b2576ed932f32329ce7ddb9cb5f27a6c83040d8cd74b7a70 + languageName: node + linkType: hard + +"undici@npm:^6.19.2": + version: 6.21.0 + resolution: "undici@npm:6.21.0" + checksum: 10/c8ff80dcadfcf613e7fe697c37519fca070fcf1cfccc69ffb6a7080a22e225eb79d232e9f70e32b099b3e67ac4216e8fd615e188cfb792e09df9233471ec17e0 + languageName: node + linkType: hard + "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" @@ -8711,6 +10818,13 @@ __metadata: languageName: node linkType: hard +"universalify@npm:^2.0.0": + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: 10/ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 + languageName: node + linkType: hard + "unpipe@npm:1.0.0, unpipe@npm:~1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0" @@ -8732,6 +10846,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.1.1": + version: 1.1.1 + resolution: "update-browserslist-db@npm:1.1.1" + dependencies: + escalade: "npm:^3.2.0" + picocolors: "npm:^1.1.0" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10/7678dd8609750588d01aa7460e8eddf2ff9d16c2a52fb1811190e0d056390f1fdffd94db3cf8fb209cf634ab4fa9407886338711c71cc6ccade5eeb22b093734 + languageName: node + linkType: hard + "url-parse@npm:^1.5.3": version: 1.5.10 resolution: "url-parse@npm:1.5.10" @@ -8742,6 +10870,13 @@ __metadata: languageName: node linkType: hard +"util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 10/474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + "utils-merge@npm:1.0.1": version: 1.0.1 resolution: "utils-merge@npm:1.0.1" @@ -8769,6 +10904,35 @@ __metadata: languageName: node linkType: hard +"valibot@npm:^0.41.0": + version: 0.41.0 + resolution: "valibot@npm:0.41.0" + peerDependencies: + typescript: ">=5" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/794b34056efd0243b2d97329284752f584a586803c22a996bd962aefaf570a7899890dedc6487cc2624baa2a5c8d8f14602a4a7bc20b2b6e5e78a3099d7cf7ae + languageName: node + linkType: hard + +"validate-npm-package-license@npm:^3.0.4": + version: 3.0.4 + resolution: "validate-npm-package-license@npm:3.0.4" + dependencies: + spdx-correct: "npm:^3.0.0" + spdx-expression-parse: "npm:^3.0.0" + checksum: 10/86242519b2538bb8aeb12330edebb61b4eb37fd35ef65220ab0b03a26c0592c1c8a7300d32da3cde5abd08d18d95e8dabfad684b5116336f6de9e6f207eec224 + languageName: node + linkType: hard + +"validate-npm-package-name@npm:^5.0.0": + version: 5.0.1 + resolution: "validate-npm-package-name@npm:5.0.1" + checksum: 10/0d583a1af23aeffea7748742cf22b6802458736fb8b60323ba5949763824d46f796474b0e1b9206beb716f9d75269e19dbd7795d6b038b29d561be95dd827381 + languageName: node + linkType: hard + "value-or-promise@npm:^1.0.12": version: 1.0.12 resolution: "value-or-promise@npm:1.0.12" @@ -8798,6 +10962,37 @@ __metadata: languageName: node linkType: hard +"vite-node@npm:^1.6.0": + version: 1.6.0 + resolution: "vite-node@npm:1.6.0" + dependencies: + cac: "npm:^6.7.14" + debug: "npm:^4.3.4" + pathe: "npm:^1.1.1" + picocolors: "npm:^1.0.0" + vite: "npm:^5.0.0" + bin: + vite-node: vite-node.mjs + checksum: 10/40230598c3c285cf65f407ac50b1c7753ab2dfa960de76ec1a95a0ce0ff963919d065c29ba538d9fb2fba3e0703a051d49d1ad6486001ba2f90616cc706ddc3d + languageName: node + linkType: hard + +"vite-tsconfig-paths@npm:^5.1.2": + version: 5.1.3 + resolution: "vite-tsconfig-paths@npm:5.1.3" + dependencies: + debug: "npm:^4.1.1" + globrex: "npm:^0.1.2" + tsconfck: "npm:^3.0.3" + peerDependencies: + vite: "*" + peerDependenciesMeta: + vite: + optional: true + checksum: 10/980e4f6fad478319620235ddbbd68a5651902befc9ca587b378fc6c19c6bc3df62fbe540bd248c4ecd5b02a0bc02cf9884f1a296d1f0cc6b0063f7b8c8ca6f12 + languageName: node + linkType: hard + "vite@npm:^5.0.0, vite@npm:^5.0.10": version: 5.1.4 resolution: "vite@npm:5.1.4" @@ -8838,6 +11033,49 @@ __metadata: languageName: node linkType: hard +"vite@npm:^5.4.11": + version: 5.4.11 + resolution: "vite@npm:5.4.11" + dependencies: + esbuild: "npm:^0.21.3" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.43" + rollup: "npm:^4.20.0" + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 10/719c4dea896e9547958643354003c8c9ea98e5367196d98f5f46cffb3ec963fead3ea5853f5af941c79bbfb73583dec19bbb0d28d2f644b95d7f59c55e22919d + languageName: node + linkType: hard + "vitest@npm:^1.3.1": version: 1.3.1 resolution: "vitest@npm:1.3.1" @@ -9012,6 +11250,17 @@ __metadata: languageName: node linkType: hard +"which@npm:^3.0.0": + version: 3.0.1 + resolution: "which@npm:3.0.1" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: bin/which.js + checksum: 10/adf720fe9d84be2d9190458194f814b5e9015ae4b88711b150f30d0f4d0b646544794b86f02c7ebeec1db2029bc3e83a7ff156f542d7521447e5496543e26890 + languageName: node + linkType: hard + "which@npm:^4.0.0": version: 4.0.0 resolution: "which@npm:4.0.0" @@ -9103,6 +11352,13 @@ __metadata: languageName: node linkType: hard +"xtend@npm:~4.0.1": + version: 4.0.2 + resolution: "xtend@npm:4.0.2" + checksum: 10/ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a + languageName: node + linkType: hard + "y18n@npm:^5.0.5": version: 5.0.8 resolution: "y18n@npm:5.0.8" @@ -9124,6 +11380,15 @@ __metadata: languageName: node linkType: hard +"yaml@npm:^2.3.4": + version: 2.6.1 + resolution: "yaml@npm:2.6.1" + bin: + yaml: bin.mjs + checksum: 10/cf412f03a33886db0a3aac70bb4165588f4c5b3c6f8fc91520b71491e5537800b6c2c73ed52015617f6e191eb4644c73c92973960a1999779c62a200ee4c231d + languageName: node + linkType: hard + "yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1" From 22c18941d646ab3a96ce747934dcf866a180a745 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Mon, 25 Nov 2024 11:03:19 +0100 Subject: [PATCH 02/26] clean up and `yarn react-router reveal` --- integration-test/react-router/.dockerignore | 4 -- integration-test/react-router/Dockerfile | 22 ------ integration-test/react-router/Dockerfile.bun | 25 ------- integration-test/react-router/Dockerfile.pnpm | 26 ------- .../react-router/app/entry.client.tsx | 12 ++++ .../react-router/app/entry.server.tsx | 70 +++++++++++++++++++ 6 files changed, 82 insertions(+), 77 deletions(-) delete mode 100644 integration-test/react-router/.dockerignore delete mode 100644 integration-test/react-router/Dockerfile delete mode 100644 integration-test/react-router/Dockerfile.bun delete mode 100644 integration-test/react-router/Dockerfile.pnpm create mode 100644 integration-test/react-router/app/entry.client.tsx create mode 100644 integration-test/react-router/app/entry.server.tsx diff --git a/integration-test/react-router/.dockerignore b/integration-test/react-router/.dockerignore deleted file mode 100644 index 9b8d5147..00000000 --- a/integration-test/react-router/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -.react-router -build -node_modules -README.md \ No newline at end of file diff --git a/integration-test/react-router/Dockerfile b/integration-test/react-router/Dockerfile deleted file mode 100644 index dc246373..00000000 --- a/integration-test/react-router/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -FROM node:20-alpine as development-dependencies-env -COPY . /app -WORKDIR /app -RUN npm ci - -FROM node:20-alpine as production-dependencies-env -COPY ./package.json package-lock.json /app/ -WORKDIR /app -RUN npm ci --omit=dev - -FROM node:20-alpine AS build-env -COPY . /app/ -COPY --from=development-dependencies-env /app/node_modules /app/node_modules -WORKDIR /app -RUN npm run build - -FROM node:20-alpine -COPY ./package.json package-lock.json /app/ -COPY --from=production-dependencies-env /app/node_modules /app/node_modules -COPY --from=build-env /app/build /app/build -WORKDIR /app -CMD ["npm", "run", "start"] \ No newline at end of file diff --git a/integration-test/react-router/Dockerfile.bun b/integration-test/react-router/Dockerfile.bun deleted file mode 100644 index 2414d3e9..00000000 --- a/integration-test/react-router/Dockerfile.bun +++ /dev/null @@ -1,25 +0,0 @@ -FROM oven/bun:1 as dependencies-env -COPY . /app - -FROM dependencies-env as development-dependencies-env -COPY ./package.json bun.lockb /app/ -WORKDIR /app -RUN bun i --frozen-lockfile - -FROM dependencies-env as production-dependencies-env -COPY ./package.json bun.lockb /app/ -WORKDIR /app -RUN bun i --production - -FROM dependencies-env AS build-env -COPY ./package.json bun.lockb /app/ -COPY --from=development-dependencies-env /app/node_modules /app/node_modules -WORKDIR /app -RUN bun run build - -FROM dependencies-env -COPY ./package.json bun.lockb /app/ -COPY --from=production-dependencies-env /app/node_modules /app/node_modules -COPY --from=build-env /app/build /app/build -WORKDIR /app -CMD ["bun", "run", "start"] \ No newline at end of file diff --git a/integration-test/react-router/Dockerfile.pnpm b/integration-test/react-router/Dockerfile.pnpm deleted file mode 100644 index f0db1841..00000000 --- a/integration-test/react-router/Dockerfile.pnpm +++ /dev/null @@ -1,26 +0,0 @@ -FROM node:20-alpine as dependencies-env -RUN npm i -g pnpm -COPY . /app - -FROM dependencies-env as development-dependencies-env -COPY ./package.json pnpm-lock.yaml /app/ -WORKDIR /app -RUN pnpm i --frozen-lockfile - -FROM dependencies-env as production-dependencies-env -COPY ./package.json pnpm-lock.yaml /app/ -WORKDIR /app -RUN pnpm i --prod --frozen-lockfile - -FROM dependencies-env AS build-env -COPY ./package.json pnpm-lock.yaml /app/ -COPY --from=development-dependencies-env /app/node_modules /app/node_modules -WORKDIR /app -RUN pnpm build - -FROM dependencies-env -COPY ./package.json pnpm-lock.yaml /app/ -COPY --from=production-dependencies-env /app/node_modules /app/node_modules -COPY --from=build-env /app/build /app/build -WORKDIR /app -CMD ["pnpm", "start"] \ No newline at end of file diff --git a/integration-test/react-router/app/entry.client.tsx b/integration-test/react-router/app/entry.client.tsx new file mode 100644 index 00000000..08ab4ec3 --- /dev/null +++ b/integration-test/react-router/app/entry.client.tsx @@ -0,0 +1,12 @@ +import { startTransition, StrictMode } from "react"; +import { hydrateRoot } from "react-dom/client"; +import { HydratedRouter } from "react-router/dom"; + +startTransition(() => { + hydrateRoot( + document, + + + + ); +}); diff --git a/integration-test/react-router/app/entry.server.tsx b/integration-test/react-router/app/entry.server.tsx new file mode 100644 index 00000000..bffa8aa2 --- /dev/null +++ b/integration-test/react-router/app/entry.server.tsx @@ -0,0 +1,70 @@ +import { PassThrough } from "node:stream"; + +import type { AppLoadContext, EntryContext } from "react-router"; +import { createReadableStreamFromReadable } from "@react-router/node"; +import { ServerRouter } from "react-router"; +import { isbot } from "isbot"; +import type { RenderToPipeableStreamOptions } from "react-dom/server"; +import { renderToPipeableStream } from "react-dom/server"; + +const ABORT_DELAY = 5_000; + +export default function handleRequest( + request: Request, + responseStatusCode: number, + responseHeaders: Headers, + routerContext: EntryContext, + loadContext: AppLoadContext +) { + return new Promise((resolve, reject) => { + let shellRendered = false; + let userAgent = request.headers.get("user-agent"); + + // Ensure requests from bots and SPA Mode renders wait for all content to load before responding + // https://react.dev/reference/react-dom/server/renderToPipeableStream#waiting-for-all-content-to-load-for-crawlers-and-static-generation + let readyOption: keyof RenderToPipeableStreamOptions = + (userAgent && isbot(userAgent)) || routerContext.isSpaMode + ? "onAllReady" + : "onShellReady"; + + const { pipe, abort } = renderToPipeableStream( + , + { + [readyOption]() { + shellRendered = true; + const body = new PassThrough(); + const stream = createReadableStreamFromReadable(body); + + responseHeaders.set("Content-Type", "text/html"); + + resolve( + new Response(stream, { + headers: responseHeaders, + status: responseStatusCode, + }) + ); + + pipe(body); + }, + onShellError(error: unknown) { + reject(error); + }, + onError(error: unknown) { + responseStatusCode = 500; + // Log streaming rendering errors from inside the shell. Don't log + // errors encountered during initial shell rendering since they'll + // reject and get logged in handleDocumentRequest. + if (shellRendered) { + console.error(error); + } + }, + } + ); + + setTimeout(abort, ABORT_DELAY); + }); +} From 294d6e8c826214a56aef4783788bece7872f192a Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Mon, 25 Nov 2024 11:07:54 +0100 Subject: [PATCH 03/26] add raw experiment --- integration-test/react-router/app/apollo.ts | 11 ++ .../react-router/app/apollo/ApolloClient.tsx | 26 ++++ .../app/apollo/ApolloHydrationHelper.tsx | 29 ++++ .../app/apollo/createQueryPreloader.ts | 131 ++++++++++++++++++ .../react-router/app/apollo/preloader.tsx | 35 +++++ .../react-router/app/entry.client.tsx | 9 +- .../react-router/app/entry.server.tsx | 17 ++- .../react-router/app/routes/home.tsx | 51 ++++++- integration-test/react-router/package.json | 2 + integration-test/yarn.lock | 2 + 10 files changed, 305 insertions(+), 8 deletions(-) create mode 100644 integration-test/react-router/app/apollo.ts create mode 100644 integration-test/react-router/app/apollo/ApolloClient.tsx create mode 100644 integration-test/react-router/app/apollo/ApolloHydrationHelper.tsx create mode 100644 integration-test/react-router/app/apollo/createQueryPreloader.ts create mode 100644 integration-test/react-router/app/apollo/preloader.tsx diff --git a/integration-test/react-router/app/apollo.ts b/integration-test/react-router/app/apollo.ts new file mode 100644 index 00000000..2f7211ae --- /dev/null +++ b/integration-test/react-router/app/apollo.ts @@ -0,0 +1,11 @@ +import { InMemoryCache } from "@apollo/client-react-streaming"; +import { ApolloClient } from "./apollo/ApolloClient"; +import { createApolloLoaderHandler } from "./apollo/preloader"; + +export const makeClient = (request?: Request) => { + return new ApolloClient({ + cache: new InMemoryCache(), + uri: "https://graphqlzero.almansi.me/api", + }); +}; +export const apolloLoader = createApolloLoaderHandler(makeClient); diff --git a/integration-test/react-router/app/apollo/ApolloClient.tsx b/integration-test/react-router/app/apollo/ApolloClient.tsx new file mode 100644 index 00000000..e4098ef2 --- /dev/null +++ b/integration-test/react-router/app/apollo/ApolloClient.tsx @@ -0,0 +1,26 @@ +import { + ReadFromReadableStreamLink, + TeeToReadableStreamLink, +} from "@apollo/client-react-streaming"; +import { + ApolloLink, + ApolloClient as _ApolloClient, +} from "@apollo/client/index.js"; + +export class ApolloClient extends _ApolloClient { + constructor(options: ConstructorParameters[0]) { + super(options); + this.setLink(this.link); + } + + setLink(newLink: ApolloLink) { + _ApolloClient.prototype.setLink.call( + this, + ApolloLink.from([ + ReadFromReadableStreamLink, + TeeToReadableStreamLink, + newLink, + ]) + ); + } +} diff --git a/integration-test/react-router/app/apollo/ApolloHydrationHelper.tsx b/integration-test/react-router/app/apollo/ApolloHydrationHelper.tsx new file mode 100644 index 00000000..b88e2c45 --- /dev/null +++ b/integration-test/react-router/app/apollo/ApolloHydrationHelper.tsx @@ -0,0 +1,29 @@ +import { useApolloClient } from "@apollo/client/index.js"; +import { useMemo, useState } from "react"; +import { useMatches } from "react-router"; +import { + isTransportedQueryRef, + reviveTransportedQueryRef, +} from "./createQueryPreloader"; + +export function ApolloHydrationHelper(props: { children: React.ReactNode }) { + const [hydrated] = useState(new WeakSet()); + const client = useApolloClient(); + const matches = useMatches(); + useMemo(() => { + for (const match of matches) { + const data = match.data; + if (!data || hydrated.has(data)) continue; + hydrated.add(data); + + JSON.stringify(match.data, (key, value) => { + if (isTransportedQueryRef(value) && !value._hydrated) { + value._hydrated = true; + Object.assign(value, reviveTransportedQueryRef(value, client)); + } + return value; + }); + } + }, [matches, client, hydrated]); + return props.children; +} diff --git a/integration-test/react-router/app/apollo/createQueryPreloader.ts b/integration-test/react-router/app/apollo/createQueryPreloader.ts new file mode 100644 index 00000000..3e009267 --- /dev/null +++ b/integration-test/react-router/app/apollo/createQueryPreloader.ts @@ -0,0 +1,131 @@ +import { createQueryPreloader, gql } from '@apollo/client/index.js' +import { print, stripIgnoredCharacters } from 'graphql' +import { + readFromReadableStream, + skipDataTransport, + teeToReadableStream, +} from '@apollo/client-react-streaming' +import type { ReadableStreamLinkEvent } from '@apollo/client-react-streaming' +import type { ApolloClient } from './ApolloClient' +import type { + DocumentNode, + PreloadQueryFunction, + WatchQueryOptions, +} from '@apollo/client/index.js' + +export function createTransportedQueryPreloader( + client: ApolloClient, +): PreloadQueryFunction { + return (...[query, options]: Parameters) => { + let __injectIntoStream: + | ReadableStreamDefaultController + | undefined + const __eventStream = new ReadableStream({ + start(controller) { + __injectIntoStream = controller + }, + }) + + // Instead of creating the queryRef, we kick off a query that will feed the network response + // into our custom event stream. + client.query({ + query, + ...options, + // ensure that this query makes it to the network + fetchPolicy: 'network-only', + context: skipDataTransport( + teeToReadableStream(__injectIntoStream!, { + ...options?.context, + // we want to do this even if the query is already running for another reason + queryDeduplication: false, + }), + ), + }) + + return createTransportedQueryRef( + { + ...(options as any), + query: printMinified(query), + }, + __eventStream, + ) as any + } +} + +function printMinified(query: DocumentNode): string { + return stripIgnoredCharacters(print(query)) +} + +type TransportedQueryRefOptions = { query: string } & Omit< + WatchQueryOptions, + 'query' +> & { + fetchPolicy?: 'cache-first' + returnPartialData?: false + nextFetchPolicy?: undefined + pollInterval?: undefined + } + +export interface InternalTransportedQueryRef< + // eslint-disable-next-line unused-imports/no-unused-vars + TData = unknown, + // eslint-disable-next-line unused-imports/no-unused-vars + TVariables = unknown, +> { + $__apollo_queryRef: { + options: TransportedQueryRefOptions + stream: ReadableStream + } + _hydrated?: boolean +} + +export function isTransportedQueryRef( + val: any, +): val is InternalTransportedQueryRef { + return val && val.$__apollo_queryRef +} + +export function createTransportedQueryRef( + options: TransportedQueryRefOptions, + stream: ReadableStream, +): InternalTransportedQueryRef { + const encodeStream = new TransformStream({ + transform(chunk, controller) { + controller.enqueue(JSON.stringify(chunk)) + }, + }) + + return { + $__apollo_queryRef: { + options, + stream: stream.pipeThrough(encodeStream), + }, + } +} + +export function reviveTransportedQueryRef( + { $__apollo_queryRef: { options, stream } }: InternalTransportedQueryRef, + apolloClient: ApolloClient, +) { + const decodeStream = new TransformStream({ + transform(chunk, controller) { + if (typeof chunk !== 'string') { + chunk = new TextDecoder().decode(chunk) + } + controller.enqueue(JSON.parse(chunk)) + }, + }) + + const { query: queryString, ...optionsRest } = options + const query = gql(queryString) + return createQueryPreloader(apolloClient)(query, { + ...optionsRest, + fetchPolicy: 'network-only', + context: skipDataTransport( + readFromReadableStream(stream.pipeThrough(decodeStream), { + ...optionsRest.context, + queryDeduplication: true, + }), + ), + }) +} diff --git a/integration-test/react-router/app/apollo/preloader.tsx b/integration-test/react-router/app/apollo/preloader.tsx new file mode 100644 index 00000000..b72f0a50 --- /dev/null +++ b/integration-test/react-router/app/apollo/preloader.tsx @@ -0,0 +1,35 @@ +import type { CreateServerLoaderArgs } from "react-router/route-module"; +import type { ApolloClient } from "./ApolloClient"; +import type { PreloadedQueryRef, QueryRef } from "@apollo/client/index.js"; +import { type PreloadQueryFunction } from "@apollo/client/index.js"; +import { createTransportedQueryPreloader } from "./createQueryPreloader"; +// @ts-ignore waiting for https://github.com/remix-run/react-router/pull/12264 +import type { SerializesTo } from "react-router/route-module"; + +type MarkedForSerialization = + T extends PreloadedQueryRef + ? SerializesTo> + : { [K in keyof T]: MarkedForSerialization }; + +type ApolloLoader = >() => < + ReturnValue, +>( + loader: ( + args: LoaderArgs & { + preloadQuery: PreloadQueryFunction; + } + ) => ReturnValue +) => (args: LoaderArgs) => MarkedForSerialization; + +export function createApolloLoaderHandler( + makeClient: (request: Request) => ApolloClient +): ApolloLoader { + return () => (loader) => (args) => { + const client = makeClient(args.request); + const preloadQuery = createTransportedQueryPreloader(client); + return loader({ + ...args, + preloadQuery, + }) as any; + }; +} diff --git a/integration-test/react-router/app/entry.client.tsx b/integration-test/react-router/app/entry.client.tsx index 08ab4ec3..aa98b762 100644 --- a/integration-test/react-router/app/entry.client.tsx +++ b/integration-test/react-router/app/entry.client.tsx @@ -1,12 +1,19 @@ import { startTransition, StrictMode } from "react"; import { hydrateRoot } from "react-dom/client"; import { HydratedRouter } from "react-router/dom"; +import { makeClient } from "./apollo"; +import { ApolloProvider } from "@apollo/client/index.js"; startTransition(() => { + // TODO + const client = + makeClient() as any as import("@apollo/client/index.js").ApolloClient; hydrateRoot( document, - + + + ); }); diff --git a/integration-test/react-router/app/entry.server.tsx b/integration-test/react-router/app/entry.server.tsx index bffa8aa2..65e5a9fd 100644 --- a/integration-test/react-router/app/entry.server.tsx +++ b/integration-test/react-router/app/entry.server.tsx @@ -6,6 +6,8 @@ import { ServerRouter } from "react-router"; import { isbot } from "isbot"; import type { RenderToPipeableStreamOptions } from "react-dom/server"; import { renderToPipeableStream } from "react-dom/server"; +import { makeClient } from "./apollo"; +import { ApolloProvider } from "@apollo/client/index.js"; const ABORT_DELAY = 5_000; @@ -27,12 +29,17 @@ export default function handleRequest( ? "onAllReady" : "onShellReady"; + // TODO + const client = + makeClient() as any as import("@apollo/client/index.js").ApolloClient; const { pipe, abort } = renderToPipeableStream( - , + + + , { [readyOption]() { shellRendered = true; diff --git a/integration-test/react-router/app/routes/home.tsx b/integration-test/react-router/app/routes/home.tsx index 398e47cb..2ccff234 100644 --- a/integration-test/react-router/app/routes/home.tsx +++ b/integration-test/react-router/app/routes/home.tsx @@ -1,13 +1,60 @@ +import { useLoaderData, type MetaFunction } from "react-router"; import type { Route } from "./+types/home"; import { Welcome } from "../welcome/welcome"; +import type { TypedDocumentNode } from "@apollo/client/index.js"; +import { gql, useReadQuery } from "@apollo/client/index.js"; +import { apolloLoader } from "~/apollo"; -export function meta({}: Route.MetaArgs) { +export const meta: MetaFunction = () => { return [ { title: "New React Router App" }, { name: "description", content: "Welcome to React Router!" }, ]; +}; + +interface Posts { + posts: { + data: Array<{ + id: string; + title: string; + }>; + }; } +const GET_POSTS: TypedDocumentNode = gql` + query GetPosts { + posts(options: { paginate: { page: 1, limit: 5 } }) { + data { + id + title + } + } + } +`; + +export const loader = apolloLoader()(({ preloadQuery }) => { + const postsRef = preloadQuery(GET_POSTS); + return { + postsRef, + }; +}); export default function Home() { - return ; + const { postsRef } = useLoaderData(); + const posts = useReadQuery(postsRef).data.posts.data; + + return ( +

+
    + {posts.map((post) => { + return ( +
  • +
    {post.title.substring(0, 20)}
    +
  • + ); + })} +
+
+ +
+ ); } diff --git a/integration-test/react-router/package.json b/integration-test/react-router/package.json index aafae124..6022938d 100644 --- a/integration-test/react-router/package.json +++ b/integration-test/react-router/package.json @@ -9,6 +9,8 @@ "typecheck": "react-router typegen && tsc --build --noEmit" }, "dependencies": { + "@apollo/client": "^3.11.10", + "@apollo/client-react-streaming": "^0.11.6", "@react-router/node": "^7.0.1", "@react-router/serve": "^7.0.1", "isbot": "^5.1.17", diff --git a/integration-test/yarn.lock b/integration-test/yarn.lock index ce53db7c..1ff14275 100644 --- a/integration-test/yarn.lock +++ b/integration-test/yarn.lock @@ -9306,6 +9306,8 @@ __metadata: version: 0.0.0-use.local resolution: "react-router@workspace:react-router" dependencies: + "@apollo/client": "npm:^3.11.10" + "@apollo/client-react-streaming": "npm:^0.11.6" "@react-router/dev": "npm:^7.0.1" "@react-router/node": "npm:^7.0.1" "@react-router/serve": "npm:^7.0.1" From f909ae490d25af31f8ece796fdc539d690151a22 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Mon, 16 Dec 2024 11:26:27 +0100 Subject: [PATCH 04/26] move eslint config into shared position --- package.json | 1 + .../.eslintignore | 0 .../.eslintrc.cjs | 0 packages/client-react-streaming/package.json | 4 -- .../.eslintignore | 1 - .../.eslintrc.cjs | 3 - .../package.json | 4 -- packages/package.json | 11 ++++ yarn.lock | 59 ++++++++++++++++--- 9 files changed, 64 insertions(+), 19 deletions(-) rename packages/{client-react-streaming => }/.eslintignore (100%) rename packages/{client-react-streaming => }/.eslintrc.cjs (100%) delete mode 100644 packages/experimental-nextjs-app-support/.eslintignore delete mode 100644 packages/experimental-nextjs-app-support/.eslintrc.cjs create mode 100644 packages/package.json diff --git a/package.json b/package.json index 95c7b55b..7ff7109b 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "monorepo", "packageManager": "yarn@4.2.2", "workspaces": [ + "packages", "packages/*", "examples/*" ], diff --git a/packages/client-react-streaming/.eslintignore b/packages/.eslintignore similarity index 100% rename from packages/client-react-streaming/.eslintignore rename to packages/.eslintignore diff --git a/packages/client-react-streaming/.eslintrc.cjs b/packages/.eslintrc.cjs similarity index 100% rename from packages/client-react-streaming/.eslintrc.cjs rename to packages/.eslintrc.cjs diff --git a/packages/client-react-streaming/package.json b/packages/client-react-streaming/package.json index 5635cf87..30f6c495 100644 --- a/packages/client-react-streaming/package.json +++ b/packages/client-react-streaming/package.json @@ -140,12 +140,8 @@ "@tsconfig/recommended": "1.0.6", "@types/node": "20.12.11", "@types/react": "18.3.1", - "@typescript-eslint/eslint-plugin": "7.5.0", - "@typescript-eslint/parser": "7.5.0", "concurrently": "8.2.2", "eslint": "8.57.0", - "eslint-plugin-react": "7.34.1", - "eslint-plugin-react-hooks": "4.6.0", "glob": "10.3.12", "global-jsdom": "24.0.0", "globstar": "1.0.0", diff --git a/packages/experimental-nextjs-app-support/.eslintignore b/packages/experimental-nextjs-app-support/.eslintignore deleted file mode 100644 index 53c37a16..00000000 --- a/packages/experimental-nextjs-app-support/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -dist \ No newline at end of file diff --git a/packages/experimental-nextjs-app-support/.eslintrc.cjs b/packages/experimental-nextjs-app-support/.eslintrc.cjs deleted file mode 100644 index 2e297c95..00000000 --- a/packages/experimental-nextjs-app-support/.eslintrc.cjs +++ /dev/null @@ -1,3 +0,0 @@ -/** @type {import("@types/eslint").Linter.Config} */ -// eslint-disable-next-line no-undef -module.exports = require("../client-react-streaming/.eslintrc.cjs"); diff --git a/packages/experimental-nextjs-app-support/package.json b/packages/experimental-nextjs-app-support/package.json index d814978e..c0dce558 100644 --- a/packages/experimental-nextjs-app-support/package.json +++ b/packages/experimental-nextjs-app-support/package.json @@ -125,12 +125,8 @@ "@tsconfig/recommended": "1.0.6", "@types/node": "20.12.11", "@types/react": "18.3.1", - "@typescript-eslint/eslint-plugin": "7.5.0", - "@typescript-eslint/parser": "7.5.0", "concurrently": "8.2.2", "eslint": "8.57.0", - "eslint-plugin-react": "7.34.1", - "eslint-plugin-react-hooks": "4.6.0", "glob": "10.3.12", "global-jsdom": "24.0.0", "globstar": "1.0.0", diff --git a/packages/package.json b/packages/package.json new file mode 100644 index 00000000..c93f5ae6 --- /dev/null +++ b/packages/package.json @@ -0,0 +1,11 @@ +{ + "name": "packages-shared", + "private": true, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "7.5.0", + "@typescript-eslint/parser": "7.5.0", + "eslint": "8.57.0", + "eslint-plugin-react": "7.34.1", + "eslint-plugin-react-hooks": "4.6.0" + } +} diff --git a/yarn.lock b/yarn.lock index 6e3ff691..02b1deca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -45,11 +45,12 @@ __metadata: languageName: node linkType: hard -"@apollo/client-react-streaming@workspace:*, @apollo/client-react-streaming@workspace:packages/client-react-streaming": +"@apollo/client-integration-react-router@workspace:packages/react-router": version: 0.0.0-use.local - resolution: "@apollo/client-react-streaming@workspace:packages/client-react-streaming" + resolution: "@apollo/client-integration-react-router@workspace:packages/react-router" dependencies: - "@apollo/client": "npm:^3.10.4" + "@apollo/client": "npm:3.10.4" + "@apollo/client-react-streaming": "workspace:*" "@arethetypeswrong/cli": "npm:0.15.3" "@internal/test-utils": "workspace:^" "@microsoft/api-extractor": "npm:7.43.2" @@ -69,6 +70,42 @@ __metadata: globstar: "npm:1.0.0" graphql: "npm:16.8.1" jsdom: "npm:24.0.0" + next: "npm:^15.0.0" + publint: "npm:0.2.7" + react: "npm:18.3.0" + rimraf: "npm:5.0.5" + ts-node: "npm:10.9.2" + tsup: "npm:8.0.2" + tsx: "npm:4.7.1" + typescript: "npm:5.4.5" + vitest: "npm:1.6.0" + peerDependencies: + "@apollo/client": ^3.10.4 + next: ^13.4.1 || ^14.0.0 || ^15.0.0-rc.0 + react: ^18 || >=19.0.0-rc <19.0.0 + languageName: unknown + linkType: soft + +"@apollo/client-react-streaming@workspace:*, @apollo/client-react-streaming@workspace:packages/client-react-streaming": + version: 0.0.0-use.local + resolution: "@apollo/client-react-streaming@workspace:packages/client-react-streaming" + dependencies: + "@apollo/client": "npm:^3.10.4" + "@arethetypeswrong/cli": "npm:0.15.3" + "@internal/test-utils": "workspace:^" + "@microsoft/api-extractor": "npm:7.43.2" + "@testing-library/react": "npm:15.0.7" + "@total-typescript/shoehorn": "npm:0.1.2" + "@tsconfig/recommended": "npm:1.0.6" + "@types/node": "npm:20.12.11" + "@types/react": "npm:18.3.1" + concurrently: "npm:8.2.2" + eslint: "npm:8.57.0" + glob: "npm:10.3.12" + global-jsdom: "npm:24.0.0" + globstar: "npm:1.0.0" + graphql: "npm:16.8.1" + jsdom: "npm:24.0.0" publint: "npm:0.2.7" react: "npm:18.3.0" react-error-boundary: "npm:4.0.13" @@ -137,12 +174,8 @@ __metadata: "@tsconfig/recommended": "npm:1.0.6" "@types/node": "npm:20.12.11" "@types/react": "npm:18.3.1" - "@typescript-eslint/eslint-plugin": "npm:7.5.0" - "@typescript-eslint/parser": "npm:7.5.0" concurrently: "npm:8.2.2" eslint: "npm:8.57.0" - eslint-plugin-react: "npm:7.34.1" - eslint-plugin-react-hooks: "npm:4.6.0" glob: "npm:10.3.12" global-jsdom: "npm:24.0.0" globstar: "npm:1.0.0" @@ -12724,6 +12757,18 @@ __metadata: languageName: node linkType: hard +"packages-shared@workspace:packages": + version: 0.0.0-use.local + resolution: "packages-shared@workspace:packages" + dependencies: + "@typescript-eslint/eslint-plugin": "npm:7.5.0" + "@typescript-eslint/parser": "npm:7.5.0" + eslint: "npm:8.57.0" + eslint-plugin-react: "npm:7.34.1" + eslint-plugin-react-hooks: "npm:4.6.0" + languageName: unknown + linkType: soft + "pako@npm:^2.1.0": version: 2.1.0 resolution: "pako@npm:2.1.0" From 92527354625bfde69017204a2df7cf1ec33264db Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Wed, 13 Nov 2024 10:49:43 +0100 Subject: [PATCH 05/26] Fix bundling configuration so parts of the `graphql` package don't end (#388) --- packages/client-react-streaming/tsup.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/client-react-streaming/tsup.config.ts b/packages/client-react-streaming/tsup.config.ts index 66223f9b..e46ce4cb 100644 --- a/packages/client-react-streaming/tsup.config.ts +++ b/packages/client-react-streaming/tsup.config.ts @@ -18,6 +18,7 @@ export default defineConfig((options) => { outDir: "dist/", external: [ "@apollo/client-react-streaming", + "graphql", "react", "rehackt", "react-dom", From d4dd572fdd5ee5b0aecf13bf8392d03ad02ce1b6 Mon Sep 17 00:00:00 2001 From: phryneas Date: Wed, 13 Nov 2024 09:51:26 +0000 Subject: [PATCH 06/26] Release version 0.11.6@latest to npm --- packages/client-react-streaming/package.json | 2 +- packages/experimental-nextjs-app-support/package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/client-react-streaming/package.json b/packages/client-react-streaming/package.json index 30f6c495..72a11aaf 100644 --- a/packages/client-react-streaming/package.json +++ b/packages/client-react-streaming/package.json @@ -1,6 +1,6 @@ { "name": "@apollo/client-react-streaming", - "version": "0.11.5", + "version": "0.11.6", "repository": { "url": "git+https://github.com/apollographql/apollo-client-nextjs" }, diff --git a/packages/experimental-nextjs-app-support/package.json b/packages/experimental-nextjs-app-support/package.json index c0dce558..2aad2a2b 100644 --- a/packages/experimental-nextjs-app-support/package.json +++ b/packages/experimental-nextjs-app-support/package.json @@ -1,6 +1,6 @@ { "name": "@apollo/experimental-nextjs-app-support", - "version": "0.11.5", + "version": "0.11.6", "repository": { "url": "git+https://github.com/apollographql/apollo-client-nextjs" }, @@ -148,6 +148,6 @@ "react": "^18 || >=19.0.0-rc <19.0.0" }, "dependencies": { - "@apollo/client-react-streaming": "0.11.5" + "@apollo/client-react-streaming": "0.11.6" } } From 312629fc61e0b32e61809a00851ffbfef893f14f Mon Sep 17 00:00:00 2001 From: Nick Muller <3781551+nphmuller@users.noreply.github.com> Date: Fri, 6 Dec 2024 13:23:42 +0100 Subject: [PATCH 07/26] Update peer deps for React 19 compatibility (#399) --- packages/client-react-streaming/package.json | 2 +- packages/experimental-nextjs-app-support/package.json | 2 +- yarn.lock | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/client-react-streaming/package.json b/packages/client-react-streaming/package.json index 72a11aaf..c387351e 100644 --- a/packages/client-react-streaming/package.json +++ b/packages/client-react-streaming/package.json @@ -160,7 +160,7 @@ }, "peerDependencies": { "@apollo/client": "^3.10.4", - "react": "^18 || >=19.0.0-rc <19.0.0" + "react": "^18 || >=19.0.0-rc" }, "dependencies": { "ts-invariant": "^0.10.3" diff --git a/packages/experimental-nextjs-app-support/package.json b/packages/experimental-nextjs-app-support/package.json index 2aad2a2b..7af85d5b 100644 --- a/packages/experimental-nextjs-app-support/package.json +++ b/packages/experimental-nextjs-app-support/package.json @@ -145,7 +145,7 @@ "peerDependencies": { "@apollo/client": "^3.10.4", "next": "^13.4.1 || ^14.0.0 || ^15.0.0-rc.0", - "react": "^18 || >=19.0.0-rc <19.0.0" + "react": "^18 || >=19.0.0-rc" }, "dependencies": { "@apollo/client-react-streaming": "0.11.6" diff --git a/yarn.lock b/yarn.lock index 02b1deca..437a5244 100644 --- a/yarn.lock +++ b/yarn.lock @@ -119,7 +119,7 @@ __metadata: vitest: "npm:1.6.0" peerDependencies: "@apollo/client": ^3.10.4 - react: ^18 || >=19.0.0-rc <19.0.0 + react: ^18 || >=19.0.0-rc languageName: unknown linkType: soft @@ -193,7 +193,7 @@ __metadata: peerDependencies: "@apollo/client": ^3.10.4 next: ^13.4.1 || ^14.0.0 || ^15.0.0-rc.0 - react: ^18 || >=19.0.0-rc <19.0.0 + react: ^18 || >=19.0.0-rc languageName: unknown linkType: soft From cfb9d68b6fd239a6fa482d5c9e163427c7401f5e Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Fri, 6 Dec 2024 13:59:52 +0100 Subject: [PATCH 08/26] update devDependencies to React 19, adjust tests and examples (#400) --- examples/app-dir-experiments/package.json | 8 +- examples/hack-the-supergraph-ssr/package.json | 10 +- examples/polls-demo/package.json | 8 +- .../experimental-react/package.json | 4 +- integration-test/jest/package.json | 6 +- integration-test/jest/src/App.jsx | 2 +- integration-test/jest/src/App.test.jsx | 6 +- integration-test/nextjs/package.json | 8 +- integration-test/vite-streaming/package.json | 8 +- integration-test/vitest/package.json | 6 +- integration-test/yarn.lock | 641 +++--------------- package.json | 5 - packages/client-react-streaming/package.json | 9 +- .../WrappedApolloClient.test.tsx | 44 +- .../package.json | 7 +- yarn.lock | 234 ++++--- 16 files changed, 297 insertions(+), 709 deletions(-) diff --git a/examples/app-dir-experiments/package.json b/examples/app-dir-experiments/package.json index 24fca0da..e2c6d40d 100644 --- a/examples/app-dir-experiments/package.json +++ b/examples/app-dir-experiments/package.json @@ -15,8 +15,8 @@ "@apollo/server": "^4.9.5", "@as-integrations/next": "^3.0.0", "@types/node": "20.12.11", - "@types/react": "18.3.1", - "@types/react-dom": "18.3.0", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", "client-only": "^0.0.1", "encoding": "^0.1.13", "eslint": "8.36.0", @@ -24,8 +24,8 @@ "graphql": "^16.6.0", "html-differ": "^1.4.0", "next": "^15.0.0", - "react": "18.3.0", - "react-dom": "18.3.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", "server-only": "^0.0.1", "typescript": "5.4.5" } diff --git a/examples/hack-the-supergraph-ssr/package.json b/examples/hack-the-supergraph-ssr/package.json index fa6cce32..8f186572 100644 --- a/examples/hack-the-supergraph-ssr/package.json +++ b/examples/hack-the-supergraph-ssr/package.json @@ -13,23 +13,23 @@ "@apollo/client": "3.10.4", "@apollo/experimental-nextjs-app-support": "workspace:^", "@apollo/space-kit": "^9.11.0", - "@chakra-ui/next-js": "^2.1.2", + "@chakra-ui/next-js": "2.4.2", "@chakra-ui/react": "^2.5.5", "@emotion/cache": "^11.11.0", "@emotion/core": "^11.0.0", "@emotion/react": "^11.10.6", "@emotion/styled": "^11.10.6", "@types/node": "20.12.11", - "@types/react": "18.3.1", - "@types/react-dom": "18.3.0", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", "eslint": "8.38.0", "eslint-config-next": "13.3.0", "framer-motion": "^10.12.2", "graphql": "^16.6.0", "js-cookie": "^3.0.1", "next": "^15.0.0", - "react": "18.3.0", - "react-dom": "18.3.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-icons": "^4.8.0", "react-rating-stars-component": "^2.2.0", "typescript": "5.4.5" diff --git a/examples/polls-demo/package.json b/examples/polls-demo/package.json index 9117d76d..e27134d9 100644 --- a/examples/polls-demo/package.json +++ b/examples/polls-demo/package.json @@ -26,8 +26,8 @@ "graphql-tag": "^2.12.6", "next": "^15.0.0", "postcss": "8.4.23", - "react": "18.3.0", - "react-dom": "18.3.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", "tailwindcss": "3.3.2", "typescript": "5.4.5" }, @@ -38,7 +38,7 @@ "@graphql-codegen/typed-document-node": "^4.0.1", "@graphql-codegen/typescript": "3.0.4", "@graphql-codegen/typescript-resolvers": "3.2.1", - "@types/react": "18.3.3", - "@types/react-dom": "19.0.0-alpha.3" + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0" } } diff --git a/integration-test/experimental-react/package.json b/integration-test/experimental-react/package.json index eece1f88..e8f977a9 100644 --- a/integration-test/experimental-react/package.json +++ b/integration-test/experimental-react/package.json @@ -26,8 +26,8 @@ "devDependencies": { "@playwright/test": "^1.39.0", "@tsconfig/vite-react": "^3.0.0", - "@types/react": "^18.2.55", - "@types/react-dom": "^18.2.18", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", "@vitejs/plugin-react": "^4.2.1", "cross-env": "^7.0.3", "prettier": "^3.2.5", diff --git a/integration-test/jest/package.json b/integration-test/jest/package.json index 4d23813e..842ce722 100644 --- a/integration-test/jest/package.json +++ b/integration-test/jest/package.json @@ -9,15 +9,15 @@ "@apollo/experimental-nextjs-app-support": "workspace:*", "@graphql-tools/schema": "^10.0.3", "graphql-tag": "^2.12.6", - "react": "18.3.0", - "react-dom": "18.3.0" + "react": "^19.0.0", + "react-dom": "^19.0.0" }, "devDependencies": { "@babel/core": "^7.24.0", "@babel/preset-env": "^7.24.0", "@babel/preset-react": "^7.23.3", "@testing-library/jest-dom": "^6.4.2", - "@testing-library/react": "^14.2.1", + "@testing-library/react": "^16.1.0", "@testing-library/user-event": "^14.5.2", "babel-jest": "^29.7.0", "jest": "^29.7.0", diff --git a/integration-test/jest/src/App.jsx b/integration-test/jest/src/App.jsx index 390f473b..c0bbd649 100644 --- a/integration-test/jest/src/App.jsx +++ b/integration-test/jest/src/App.jsx @@ -17,7 +17,7 @@ const delayLink = new ApolloLink((operation, forward) => { return new Observable((observer) => { const handle = setTimeout(() => { forward(operation).subscribe(observer); - }, 20); + }, 100); return () => { clearTimeout(handle); diff --git a/integration-test/jest/src/App.test.jsx b/integration-test/jest/src/App.test.jsx index fd73b4bf..def1cb19 100644 --- a/integration-test/jest/src/App.test.jsx +++ b/integration-test/jest/src/App.test.jsx @@ -1,4 +1,4 @@ -import { render, screen } from "@testing-library/react"; +import { render, screen, act } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import "@testing-library/jest-dom"; @@ -8,7 +8,7 @@ import { resetApolloClientSingletons } from "@apollo/experimental-nextjs-app-sup afterEach(resetApolloClientSingletons); test("loads data", async () => { - render(); + await act(async () => render()); expect(screen.getByText("Loading...")).toBeInTheDocument(); expect( @@ -18,7 +18,7 @@ test("loads data", async () => { }); test("is interactive", async () => { - render(); + await act(async () => render()); const counter = await screen.findByTestId("counter"); expect(counter.textContent).toBe("0"); diff --git a/integration-test/nextjs/package.json b/integration-test/nextjs/package.json index 38c7920f..d8b86330 100644 --- a/integration-test/nextjs/package.json +++ b/integration-test/nextjs/package.json @@ -16,13 +16,13 @@ "@as-integrations/next": "^3.2.0", "@graphql-tools/schema": "^10.0.0", "@types/node": "20.3.1", - "@types/react": "18.3.0", - "@types/react-dom": "18.3.0", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", "graphql": "^16.7.1", "graphql-tag": "^2.12.6", "next": "^15.0.3", - "react": "18.3.0", - "react-dom": "18.3.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-error-boundary": "^4.0.13", "ssr-only-secrets": "^0.0.5", "typescript": "5.1.3" diff --git a/integration-test/vite-streaming/package.json b/integration-test/vite-streaming/package.json index 7cefd012..bffa0a98 100644 --- a/integration-test/vite-streaming/package.json +++ b/integration-test/vite-streaming/package.json @@ -19,15 +19,15 @@ "express": "^4.18.2", "graphql": "^16.8.1", "graphql-tag": "^2.12.6", - "react": "19.0.0-beta-94eed63c49-20240425", - "react-dom": "19.0.0-beta-94eed63c49-20240425", + "react": "^19.0.0", + "react-dom": "^19.0.0", "sirv": "^2.0.4" }, "devDependencies": { "@playwright/test": "^1.39.0", "@tsconfig/vite-react": "^3.0.0", - "@types/react": "npm:types-react@19.0.0-alpha.3", - "@types/react-dom": "npm:types-react-dom@19.0.0-alpha.3", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", "@vitejs/plugin-react": "^4.2.1", "cross-env": "^7.0.3", "prettier": "^3.2.5", diff --git a/integration-test/vitest/package.json b/integration-test/vitest/package.json index 261c00ca..dd9e8cb9 100644 --- a/integration-test/vitest/package.json +++ b/integration-test/vitest/package.json @@ -8,12 +8,12 @@ "@apollo/experimental-nextjs-app-support": "*", "@graphql-tools/schema": "^10.0.3", "graphql-tag": "^2.12.6", - "react": "18.3.0", - "react-dom": "18.3.0" + "react": "^19.0.0", + "react-dom": "^19.0.0" }, "devDependencies": { "@testing-library/jest-dom": "^6.4.2", - "@testing-library/react": "^14.2.1", + "@testing-library/react": "^16.1.0", "@vitejs/plugin-react": "^4.2.1", "vitest": "^1.3.1" } diff --git a/integration-test/yarn.lock b/integration-test/yarn.lock index 1ff14275..6d1bb5fd 100644 --- a/integration-test/yarn.lock +++ b/integration-test/yarn.lock @@ -39,13 +39,13 @@ __metadata: linkType: hard "@apollo/client-react-streaming@exec:./shared/build-client-react-streaming.cjs::locator=%40integration-test%2Froot%40workspace%3A.": - version: 0.11.5 + version: 0.11.6 resolution: "@apollo/client-react-streaming@exec:./shared/build-client-react-streaming.cjs#./shared/build-client-react-streaming.cjs::hash=48b117&locator=%40integration-test%2Froot%40workspace%3A." dependencies: ts-invariant: "npm:^0.10.3" peerDependencies: "@apollo/client": ^3.10.4 - react: ^18 || >=19.0.0-rc <19.0.0 + react: ^18 || >=19.0.0-rc checksum: 10/8e12155ebcb9672f5b645c364d356018014df750412c61613341121ebb4d4eabb5f42cd9018cc3a81ad988f1b425548d68254ca49ede19c31d0d9e5a9a4f240a languageName: node linkType: hard @@ -88,14 +88,14 @@ __metadata: linkType: hard "@apollo/experimental-nextjs-app-support@exec:./shared/build-experimental-nextjs-app-support.cjs::locator=%40integration-test%2Froot%40workspace%3A.": - version: 0.11.5 + version: 0.11.6 resolution: "@apollo/experimental-nextjs-app-support@exec:./shared/build-experimental-nextjs-app-support.cjs#./shared/build-experimental-nextjs-app-support.cjs::hash=fd83cc&locator=%40integration-test%2Froot%40workspace%3A." dependencies: - "@apollo/client-react-streaming": "npm:0.11.5" + "@apollo/client-react-streaming": "npm:0.11.6" peerDependencies: "@apollo/client": ^3.10.4 next: ^13.4.1 || ^14.0.0 || ^15.0.0-rc.0 - react: ^18 || >=19.0.0-rc <19.0.0 + react: ^18 || >=19.0.0-rc checksum: 10/505b723bac0f3a7f15287ea32fab9f2e8c0cd567149abf11d750855f8a9bfc0aa26e44179ad10c32f7d162ad86318717032413ef8e1a25385185178e022588fa languageName: node linkType: hard @@ -301,7 +301,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.23.5": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.23.5": version: 7.23.5 resolution: "@babel/code-frame@npm:7.23.5" dependencies: @@ -2662,8 +2662,8 @@ __metadata: "@apollo/client-react-streaming": "npm:*" "@playwright/test": "npm:^1.39.0" "@tsconfig/vite-react": "npm:^3.0.0" - "@types/react": "npm:^18.2.55" - "@types/react-dom": "npm:^18.2.18" + "@types/react": "npm:^19.0.0" + "@types/react-dom": "npm:^19.0.0" "@vitejs/plugin-react": "npm:^4.2.1" compression: "npm:^1.7.4" cross-env: "npm:^7.0.3" @@ -2690,15 +2690,15 @@ __metadata: "@babel/preset-react": "npm:^7.23.3" "@graphql-tools/schema": "npm:^10.0.3" "@testing-library/jest-dom": "npm:^6.4.2" - "@testing-library/react": "npm:^14.2.1" + "@testing-library/react": "npm:^16.1.0" "@testing-library/user-event": "npm:^14.5.2" babel-jest: "npm:^29.7.0" graphql-tag: "npm:^2.12.6" jest: "npm:^29.7.0" jest-environment-jsdom: "npm:^29.7.0" jest-fixed-jsdom: "npm:^0.0.9" - react: "npm:18.3.0" - react-dom: "npm:18.3.0" + react: "npm:^19.0.0" + react-dom: "npm:^19.0.0" languageName: unknown linkType: soft @@ -2713,13 +2713,13 @@ __metadata: "@graphql-tools/schema": "npm:^10.0.0" "@playwright/test": "npm:^1.39.0" "@types/node": "npm:20.3.1" - "@types/react": "npm:18.3.0" - "@types/react-dom": "npm:18.3.0" + "@types/react": "npm:^19.0.0" + "@types/react-dom": "npm:^19.0.0" graphql: "npm:^16.7.1" graphql-tag: "npm:^2.12.6" next: "npm:^15.0.3" - react: "npm:18.3.0" - react-dom: "npm:18.3.0" + react: "npm:^19.0.0" + react-dom: "npm:^19.0.0" react-error-boundary: "npm:^4.0.13" ssr-only-secrets: "npm:^0.0.5" typescript: "npm:5.1.3" @@ -2749,8 +2749,8 @@ __metadata: "@apollo/client-react-streaming": "npm:*" "@playwright/test": "npm:^1.39.0" "@tsconfig/vite-react": "npm:^3.0.0" - "@types/react": "npm:types-react@19.0.0-alpha.3" - "@types/react-dom": "npm:types-react-dom@19.0.0-alpha.3" + "@types/react": "npm:^19.0.0" + "@types/react-dom": "npm:^19.0.0" "@vitejs/plugin-react": "npm:^4.2.1" compression: "npm:^1.7.4" cross-env: "npm:^7.0.3" @@ -2758,8 +2758,8 @@ __metadata: graphql: "npm:^16.8.1" graphql-tag: "npm:^2.12.6" prettier: "npm:^3.2.5" - react: "npm:19.0.0-beta-94eed63c49-20240425" - react-dom: "npm:19.0.0-beta-94eed63c49-20240425" + react: "npm:^19.0.0" + react-dom: "npm:^19.0.0" sirv: "npm:^2.0.4" vite: "npm:^5.0.10" languageName: unknown @@ -2773,11 +2773,11 @@ __metadata: "@apollo/experimental-nextjs-app-support": "npm:*" "@graphql-tools/schema": "npm:^10.0.3" "@testing-library/jest-dom": "npm:^6.4.2" - "@testing-library/react": "npm:^14.2.1" + "@testing-library/react": "npm:^16.1.0" "@vitejs/plugin-react": "npm:^4.2.1" graphql-tag: "npm:^2.12.6" - react: "npm:18.3.0" - react-dom: "npm:18.3.0" + react: "npm:^19.0.0" + react-dom: "npm:^19.0.0" vitest: "npm:^1.3.1" languageName: unknown linkType: soft @@ -3718,22 +3718,6 @@ __metadata: languageName: node linkType: hard -"@testing-library/dom@npm:^9.0.0": - version: 9.3.4 - resolution: "@testing-library/dom@npm:9.3.4" - dependencies: - "@babel/code-frame": "npm:^7.10.4" - "@babel/runtime": "npm:^7.12.5" - "@types/aria-query": "npm:^5.0.1" - aria-query: "npm:5.1.3" - chalk: "npm:^4.1.0" - dom-accessibility-api: "npm:^0.5.9" - lz-string: "npm:^1.5.0" - pretty-format: "npm:^27.0.2" - checksum: 10/510da752ea76f4a10a0a4e3a77917b0302cf03effe576cd3534cab7e796533ee2b0e9fb6fb11b911a1ebd7c70a0bb6f235bf4f816c9b82b95b8fe0cddfd10975 - languageName: node - linkType: hard - "@testing-library/jest-dom@npm:^6.4.2": version: 6.4.2 resolution: "@testing-library/jest-dom@npm:6.4.2" @@ -3767,17 +3751,23 @@ __metadata: languageName: node linkType: hard -"@testing-library/react@npm:^14.2.1": - version: 14.2.1 - resolution: "@testing-library/react@npm:14.2.1" +"@testing-library/react@npm:^16.1.0": + version: 16.1.0 + resolution: "@testing-library/react@npm:16.1.0" dependencies: "@babel/runtime": "npm:^7.12.5" - "@testing-library/dom": "npm:^9.0.0" - "@types/react-dom": "npm:^18.0.0" peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - checksum: 10/e02b2f32ae79665a79fc4d8ee053fd3832bfcd4753aa1dba05cdece1a9f59c72a0fae91e0a9387597dcb686d631a722729f2878e38dc95e6f23b291ad8d09b6c + "@testing-library/dom": ^10.0.0 + "@types/react": ^18.0.0 || ^19.0.0 + "@types/react-dom": ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/2a20e0dbfadbc93d45a84e82281ed47deed54a6a5fc1461a523172d7fbc0481e8502cf98a2080f38aba94290b3d745671a1c9e320e6f76ad6afcca67c580b963 languageName: node linkType: hard @@ -3804,13 +3794,6 @@ __metadata: languageName: node linkType: hard -"@types/aria-query@npm:^5.0.1": - version: 5.0.4 - resolution: "@types/aria-query@npm:5.0.4" - checksum: 10/c0084c389dc030daeaf0115a92ce43a3f4d42fc8fef2d0e22112d87a42798d4a15aac413019d4a63f868327d52ad6740ab99609462b442fe6b9286b172d2e82e - languageName: node - linkType: hard - "@types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.20.5": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" @@ -4045,24 +4028,6 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:18.3.0, @types/react-dom@npm:^18.2.18": - version: 18.3.0 - resolution: "@types/react-dom@npm:18.3.0" - dependencies: - "@types/react": "npm:*" - checksum: 10/6ff53f5a7b7fba952a68e114d3b542ebdc1e87a794234785ebab0bcd9bde7fb4885f21ebaf93d26dc0a1b5b93287f42cad68b78ae04dddf6b20da7aceff0beaf - languageName: node - linkType: hard - -"@types/react-dom@npm:^18.0.0": - version: 18.2.19 - resolution: "@types/react-dom@npm:18.2.19" - dependencies: - "@types/react": "npm:*" - checksum: 10/98eb760ce78f1016d97c70f605f0b1a53873a548d3c2192b40c897f694fd9c8bb12baeada16581a9c7b26f5022c1d2613547be98284d8f1b82d1611b1e3e7df0 - languageName: node - linkType: hard - "@types/react-dom@npm:^18.3.1": version: 18.3.1 resolution: "@types/react-dom@npm:18.3.1" @@ -4072,33 +4037,21 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:types-react-dom@19.0.0-alpha.3": - version: 19.0.0-alpha.3 - resolution: "types-react-dom@npm:19.0.0-alpha.3" +"@types/react-dom@npm:^19.0.0": + version: 19.0.0 + resolution: "@types/react-dom@npm:19.0.0" dependencies: "@types/react": "npm:*" - checksum: 10/21f43e3cbdcf59bc2e6ac71e52161455039ccffab3e61cc0ccbb61fdce9a05d70abfce91ce490a6e63a8aae5f1974acc102dcc40c00b3876e2a0e00158a8533d + checksum: 10/86945c4d4c4cd82e993acdd380c3d9d8e8ca297228aa72c0fa6af4620abb145e7b12235c9165d569f1b25b5f72d1dbe4b4e3f2419432248de9838b22e94295a2 languageName: node linkType: hard -"@types/react@npm:*": - version: 18.2.61 - resolution: "@types/react@npm:18.2.61" +"@types/react@npm:*, @types/react@npm:^19.0.0": + version: 19.0.0 + resolution: "@types/react@npm:19.0.0" dependencies: - "@types/prop-types": "npm:*" - "@types/scheduler": "npm:*" csstype: "npm:^3.0.2" - checksum: 10/74c2920ccca83fc51190ed4eda1066fa6a644197839dd37765fcce93cbd50b7a52b75815ce0083bb95195f886c80b57745314dd49ecbf235fa93d753ae2260bc - languageName: node - linkType: hard - -"@types/react@npm:18.3.0, @types/react@npm:^18.2.55": - version: 18.3.0 - resolution: "@types/react@npm:18.3.0" - dependencies: - "@types/prop-types": "npm:*" - csstype: "npm:^3.0.2" - checksum: 10/2444294740016d61721df9adeb8635658c660c13b0782df9f067260ac6b0a4b71e68245089814ab53264843eb75f81d90f770253b94a13955cc1ddccf3593301 + checksum: 10/5596d9a2c9c982d5e86add54f5d9b115153c4d47073dd3f8f8369a5e5b7f3088d614a935f85a2cf26eb6631d7ebebc7b913c5d22bf880847370070f2e60e63e6 languageName: node linkType: hard @@ -4112,22 +4065,6 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:types-react@19.0.0-alpha.3": - version: 19.0.0-alpha.3 - resolution: "types-react@npm:19.0.0-alpha.3" - dependencies: - csstype: "npm:^3.0.2" - checksum: 10/637a0e905df8a2fc8f6a760e29d8a263dca72459e16e6a5c4bb1c950a3900ece1aaef8f6ca716e0c94a70c3172d8ed2e14e75cc72bedcd8aa6e10f7c7fb3552d - languageName: node - linkType: hard - -"@types/scheduler@npm:*": - version: 0.16.8 - resolution: "@types/scheduler@npm:0.16.8" - checksum: 10/6c091b096daa490093bf30dd7947cd28e5b2cd612ec93448432b33f724b162587fed9309a0acc104d97b69b1d49a0f3fc755a62282054d62975d53d7fd13472d - languageName: node - linkType: hard - "@types/send@npm:*": version: 0.17.4 resolution: "@types/send@npm:0.17.4" @@ -4459,15 +4396,6 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:5.1.3": - version: 5.1.3 - resolution: "aria-query@npm:5.1.3" - dependencies: - deep-equal: "npm:^2.0.5" - checksum: 10/e5da608a7c4954bfece2d879342b6c218b6b207e2d9e5af270b5e38ef8418f02d122afdc948b68e32649b849a38377785252059090d66fa8081da95d1609c0d2 - languageName: node - linkType: hard - "aria-query@npm:^5.0.0": version: 5.3.0 resolution: "aria-query@npm:5.3.0" @@ -4477,16 +4405,6 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.0": - version: 1.0.1 - resolution: "array-buffer-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.5" - is-array-buffer: "npm:^3.0.4" - checksum: 10/53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e - languageName: node - linkType: hard - "array-flatten@npm:1.1.1": version: 1.1.1 resolution: "array-flatten@npm:1.1.1" @@ -4535,15 +4453,6 @@ __metadata: languageName: node linkType: hard -"available-typed-arrays@npm:^1.0.6": - version: 1.0.7 - resolution: "available-typed-arrays@npm:1.0.7" - dependencies: - possible-typed-array-names: "npm:^1.0.0" - checksum: 10/6c9da3a66caddd83c875010a1ca8ef11eac02ba15fb592dc9418b2b5e7b77b645fa7729380a92d9835c2f05f2ca1b6251f39b993e0feb3f1517c74fa1af02cab - languageName: node - linkType: hard - "babel-dead-code-elimination@npm:^1.0.6": version: 1.0.6 resolution: "babel-dead-code-elimination@npm:1.0.6" @@ -4871,7 +4780,7 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": +"call-bind@npm:^1.0.7": version: 1.0.7 resolution: "call-bind@npm:1.0.7" dependencies: @@ -4962,7 +4871,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0, chalk@npm:^4.1.0": +"chalk@npm:^4.0.0": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -5419,32 +5328,6 @@ __metadata: languageName: node linkType: hard -"deep-equal@npm:^2.0.5": - version: 2.2.3 - resolution: "deep-equal@npm:2.2.3" - dependencies: - array-buffer-byte-length: "npm:^1.0.0" - call-bind: "npm:^1.0.5" - es-get-iterator: "npm:^1.1.3" - get-intrinsic: "npm:^1.2.2" - is-arguments: "npm:^1.1.1" - is-array-buffer: "npm:^3.0.2" - is-date-object: "npm:^1.0.5" - is-regex: "npm:^1.1.4" - is-shared-array-buffer: "npm:^1.0.2" - isarray: "npm:^2.0.5" - object-is: "npm:^1.1.5" - object-keys: "npm:^1.1.1" - object.assign: "npm:^4.1.4" - regexp.prototype.flags: "npm:^1.5.1" - side-channel: "npm:^1.0.4" - which-boxed-primitive: "npm:^1.0.2" - which-collection: "npm:^1.0.1" - which-typed-array: "npm:^1.1.13" - checksum: 10/1ce49d0b71d0f14d8ef991a742665eccd488dfc9b3cada069d4d7a86291e591c92d2589c832811dea182b4015736b210acaaebce6184be356c1060d176f5a05f - languageName: node - linkType: hard - "deepmerge@npm:^4.2.2": version: 4.3.1 resolution: "deepmerge@npm:4.3.1" @@ -5452,7 +5335,7 @@ __metadata: languageName: node linkType: hard -"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.2, define-data-property@npm:^1.1.4": +"define-data-property@npm:^1.1.2": version: 1.1.4 resolution: "define-data-property@npm:1.1.4" dependencies: @@ -5463,17 +5346,6 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.2.1": - version: 1.2.1 - resolution: "define-properties@npm:1.2.1" - dependencies: - define-data-property: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.0" - object-keys: "npm:^1.1.1" - checksum: 10/b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 - languageName: node - linkType: hard - "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -5537,13 +5409,6 @@ __metadata: languageName: node linkType: hard -"dom-accessibility-api@npm:^0.5.9": - version: 0.5.16 - resolution: "dom-accessibility-api@npm:0.5.16" - checksum: 10/377b4a7f9eae0a5d72e1068c369c99e0e4ca17fdfd5219f3abd32a73a590749a267475a59d7b03a891f9b673c27429133a818c44b2e47e32fec024b34274e2ca - languageName: node - linkType: hard - "dom-accessibility-api@npm:^0.6.3": version: 0.6.3 resolution: "dom-accessibility-api@npm:0.6.3" @@ -5706,23 +5571,6 @@ __metadata: languageName: node linkType: hard -"es-get-iterator@npm:^1.1.3": - version: 1.1.3 - resolution: "es-get-iterator@npm:1.1.3" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.1.3" - has-symbols: "npm:^1.0.3" - is-arguments: "npm:^1.1.1" - is-map: "npm:^2.0.2" - is-set: "npm:^2.0.2" - is-string: "npm:^1.0.7" - isarray: "npm:^2.0.5" - stop-iteration-iterator: "npm:^1.0.0" - checksum: 10/bc2194befbe55725f9489098626479deee3c801eda7e83ce0dff2eb266a28dc808edb9b623ff01d31ebc1328f09d661333d86b601036692c2e3c1a6942319433 - languageName: node - linkType: hard - "es-module-lexer@npm:^1.3.1": version: 1.5.4 resolution: "es-module-lexer@npm:1.5.4" @@ -6225,15 +6073,6 @@ __metadata: languageName: node linkType: hard -"for-each@npm:^0.3.3": - version: 0.3.3 - resolution: "for-each@npm:0.3.3" - dependencies: - is-callable: "npm:^1.1.3" - checksum: 10/fdac0cde1be35610bd635ae958422e8ce0cc1313e8d32ea6d34cfda7b60850940c1fd07c36456ad76bd9c24aef6ff5e03b02beb58c83af5ef6c968a64eada676 - languageName: node - linkType: hard - "foreground-child@npm:^3.1.0": version: 3.1.1 resolution: "foreground-child@npm:3.1.1" @@ -6357,13 +6196,6 @@ __metadata: languageName: node linkType: hard -"functions-have-names@npm:^1.2.3": - version: 1.2.3 - resolution: "functions-have-names@npm:1.2.3" - checksum: 10/0ddfd3ed1066a55984aaecebf5419fbd9344a5c38dd120ffb0739fac4496758dcf371297440528b115e4367fc46e3abc86a2cc0ff44612181b175ae967a11a05 - languageName: node - linkType: hard - "gensync@npm:^1.0.0-beta.2": version: 1.0.0-beta.2 resolution: "gensync@npm:1.0.0-beta.2" @@ -6385,7 +6217,7 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": version: 1.2.4 resolution: "get-intrinsic@npm:1.2.4" dependencies: @@ -6537,13 +6369,6 @@ __metadata: languageName: node linkType: hard -"has-bigints@npm:^1.0.1": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 10/4e0426c900af034d12db14abfece02ce7dbf53f2022d28af1a97913ff4c07adb8799476d57dc44fbca0e07d1dbda2a042c2928b1f33d3f09c15de0640a7fb81b - languageName: node - linkType: hard - "has-flag@npm:^3.0.0": version: 3.0.0 resolution: "has-flag@npm:3.0.0" @@ -6558,7 +6383,7 @@ __metadata: languageName: node linkType: hard -"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.1, has-property-descriptors@npm:^1.0.2": +"has-property-descriptors@npm:^1.0.1": version: 1.0.2 resolution: "has-property-descriptors@npm:1.0.2" dependencies: @@ -6574,22 +6399,13 @@ __metadata: languageName: node linkType: hard -"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": +"has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" checksum: 10/464f97a8202a7690dadd026e6d73b1ceeddd60fe6acfd06151106f050303eaa75855aaa94969df8015c11ff7c505f196114d22f7386b4a471038da5874cf5e9b languageName: node linkType: hard -"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.1": - version: 1.0.2 - resolution: "has-tostringtag@npm:1.0.2" - dependencies: - has-symbols: "npm:^1.0.3" - checksum: 10/c74c5f5ceee3c8a5b8bc37719840dc3749f5b0306d818974141dda2471a1a2ca6c8e46b9d6ac222c5345df7a901c9b6f350b1e6d62763fec877e26609a401bfe - languageName: node - linkType: hard - "hasown@npm:^2.0.0": version: 2.0.1 resolution: "hasown@npm:2.0.1" @@ -6778,17 +6594,6 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.4": - version: 1.0.7 - resolution: "internal-slot@npm:1.0.7" - dependencies: - es-errors: "npm:^1.3.0" - hasown: "npm:^2.0.0" - side-channel: "npm:^1.0.4" - checksum: 10/3e66720508831153ecf37d13def9f6856f9f2960989ec8a0a0476c98f887fca9eff0163127466485cb825c900c2d6fc601aa9117b7783b90ffce23a71ea5d053 - languageName: node - linkType: hard - "ip-address@npm:^9.0.5": version: 9.0.5 resolution: "ip-address@npm:9.0.5" @@ -6806,26 +6611,6 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.1.1": - version: 1.1.1 - resolution: "is-arguments@npm:1.1.1" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10/a170c7e26082e10de9be6e96d32ae3db4d5906194051b792e85fae3393b53cf2cb5b3557863e5c8ccbab55e2fd8f2f75aa643d437613f72052cf0356615c34be - languageName: node - linkType: hard - -"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4": - version: 3.0.4 - resolution: "is-array-buffer@npm:3.0.4" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.2.1" - checksum: 10/34a26213d981d58b30724ef37a1e0682f4040d580fa9ff58fdfdd3cefcb2287921718c63971c1c404951e7b747c50fdc7caf6e867e951353fa71b369c04c969b - languageName: node - linkType: hard - "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -6840,15 +6625,6 @@ __metadata: languageName: node linkType: hard -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" - dependencies: - has-bigints: "npm:^1.0.1" - checksum: 10/cc981cf0564c503aaccc1e5f39e994ae16ae2d1a8fcd14721f14ad431809071f39ec568cfceef901cff408045f1a6d6bac90d1b43eeb0b8e3bc34c8eb1bdb4c4 - languageName: node - linkType: hard - "is-binary-path@npm:~2.1.0": version: 2.1.0 resolution: "is-binary-path@npm:2.1.0" @@ -6858,23 +6634,6 @@ __metadata: languageName: node linkType: hard -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10/ba794223b56a49a9f185e945eeeb6b7833b8ea52a335cec087d08196cf27b538940001615d3bb976511287cefe94e5907d55f00bb49580533f9ca9b4515fcc2e - languageName: node - linkType: hard - -"is-callable@npm:^1.1.3": - version: 1.2.7 - resolution: "is-callable@npm:1.2.7" - checksum: 10/48a9297fb92c99e9df48706241a189da362bff3003354aea4048bd5f7b2eb0d823cd16d0a383cece3d76166ba16d85d9659165ac6fcce1ac12e6c649d66dbdb9 - languageName: node - linkType: hard - "is-core-module@npm:^2.13.0": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" @@ -6893,15 +6652,6 @@ __metadata: languageName: node linkType: hard -"is-date-object@npm:^1.0.5": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10/cc80b3a4b42238fa0d358b9a6230dae40548b349e64a477cb7c5eff9b176ba194c11f8321daaf6dd157e44073e9b7fd01f87db1f14952a88d5657acdcd3a56e2 - languageName: node - linkType: hard - "is-deflate@npm:^1.0.0": version: 1.0.0 resolution: "is-deflate@npm:1.0.0" @@ -6953,22 +6703,6 @@ __metadata: languageName: node linkType: hard -"is-map@npm:^2.0.1, is-map@npm:^2.0.2": - version: 2.0.2 - resolution: "is-map@npm:2.0.2" - checksum: 10/60ba910f835f2eacb1fdf5b5a6c60fe1c702d012a7673e6546992bcc0c873f62ada6e13d327f9e48f1720d49c152d6cdecae1fa47a261ef3d247c3ce6f0e1d39 - languageName: node - linkType: hard - -"is-number-object@npm:^1.0.4": - version: 1.0.7 - resolution: "is-number-object@npm:1.0.7" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10/8700dcf7f602e0a9625830541345b8615d04953655acbf5c6d379c58eb1af1465e71227e95d501343346e1d49b6f2d53cbc166b1fc686a7ec19151272df582f9 - languageName: node - linkType: hard - "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" @@ -6983,32 +6717,6 @@ __metadata: languageName: node linkType: hard -"is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10/36d9174d16d520b489a5e9001d7d8d8624103b387be300c50f860d9414556d0485d74a612fdafc6ebbd5c89213d947dcc6b6bff6b2312093f71ea03cbb19e564 - languageName: node - linkType: hard - -"is-set@npm:^2.0.1, is-set@npm:^2.0.2": - version: 2.0.2 - resolution: "is-set@npm:2.0.2" - checksum: 10/d89e82acdc7760993474f529e043f9c4a1d63ed4774d21cc2e331d0e401e5c91c27743cd7c889137028f6a742234759a4bd602368fbdbf0b0321994aefd5603f - languageName: node - linkType: hard - -"is-shared-array-buffer@npm:^1.0.2": - version: 1.0.3 - resolution: "is-shared-array-buffer@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.7" - checksum: 10/bc5402900dc62b96ebb2548bf5b0a0bcfacc2db122236fe3ab3b3e3c884293a0d5eb777e73f059bcbf8dc8563bb65eae972fee0fb97e38a9ae27c8678f62bcfe - languageName: node - linkType: hard - "is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" @@ -7023,48 +6731,6 @@ __metadata: languageName: node linkType: hard -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10/2bc292fe927493fb6dfc3338c099c3efdc41f635727c6ebccf704aeb2a27bca7acb9ce6fd34d103db78692b10b22111a8891de26e12bfa1c5e11e263c99d1fef - languageName: node - linkType: hard - -"is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" - dependencies: - has-symbols: "npm:^1.0.2" - checksum: 10/a47dd899a84322528b71318a89db25c7ecdec73197182dad291df15ffea501e17e3c92c8de0bfb50e63402747399981a687b31c519971b1fa1a27413612be929 - languageName: node - linkType: hard - -"is-weakmap@npm:^2.0.1": - version: 2.0.1 - resolution: "is-weakmap@npm:2.0.1" - checksum: 10/289fa4e8ba1bdda40ca78481266f6925b7c46a85599e6a41a77010bf91e5a24dfb660db96863bbf655ecdbda0ab517204d6a4e0c151dbec9d022c556321f3776 - languageName: node - linkType: hard - -"is-weakset@npm:^2.0.1": - version: 2.0.2 - resolution: "is-weakset@npm:2.0.2" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.1.1" - checksum: 10/8f2ddb9639716fd7936784e175ea1183c5c4c05274c34f34f6a53175313cb1c9c35a8b795623306995e2f7cc8f25aa46302f15a2113e51c5052d447be427195c - languageName: node - linkType: hard - -"isarray@npm:^2.0.5": - version: 2.0.5 - resolution: "isarray@npm:2.0.5" - checksum: 10/1d8bc7911e13bb9f105b1b3e0b396c787a9e63046af0b8fe0ab1414488ab06b2b099b87a2d8a9e31d21c9a6fad773c7fc8b257c4880f2d957274479d28ca3414 - languageName: node - linkType: hard - "isarray@npm:~1.0.0": version: 1.0.0 resolution: "isarray@npm:1.0.0" @@ -7932,15 +7598,6 @@ __metadata: languageName: node linkType: hard -"lz-string@npm:^1.5.0": - version: 1.5.0 - resolution: "lz-string@npm:1.5.0" - bin: - lz-string: bin/bin.js - checksum: 10/e86f0280e99a8d8cd4eef24d8601ddae15ce54e43ac9990dfcb79e1e081c255ad24424a30d78d2ad8e51a8ce82a66a930047fed4b4aa38c6f0b392ff9300edfc - languageName: node - linkType: hard - "magic-string@npm:^0.30.5": version: 0.30.8 resolution: "magic-string@npm:0.30.8" @@ -8539,35 +8196,6 @@ __metadata: languageName: node linkType: hard -"object-is@npm:^1.1.5": - version: 1.1.6 - resolution: "object-is@npm:1.1.6" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - checksum: 10/4f6f544773a595da21c69a7531e0e1d6250670f4e09c55f47eb02c516035cfcb1b46ceb744edfd3ecb362309dbccb6d7f88e43bf42e4d4595ac10a329061053a - languageName: node - linkType: hard - -"object-keys@npm:^1.1.1": - version: 1.1.1 - resolution: "object-keys@npm:1.1.1" - checksum: 10/3d81d02674115973df0b7117628ea4110d56042e5326413e4b4313f0bcdf7dd78d4a3acef2c831463fa3796a66762c49daef306f4a0ea1af44877d7086d73bde - languageName: node - linkType: hard - -"object.assign@npm:^4.1.4": - version: 4.1.5 - resolution: "object.assign@npm:4.1.5" - dependencies: - call-bind: "npm:^1.0.5" - define-properties: "npm:^1.2.1" - has-symbols: "npm:^1.0.3" - object-keys: "npm:^1.1.1" - checksum: 10/dbb22da4cda82e1658349ea62b80815f587b47131b3dd7a4ab7f84190ab31d206bbd8fe7e26ae3220c55b65725ac4529825f6142154211220302aa6b1518045d - languageName: node - linkType: hard - "on-finished@npm:2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" @@ -8893,13 +8521,6 @@ __metadata: languageName: node linkType: hard -"possible-typed-array-names@npm:^1.0.0": - version: 1.0.0 - resolution: "possible-typed-array-names@npm:1.0.0" - checksum: 10/8ed3e96dfeea1c5880c1f4c9cb707e5fb26e8be22f14f82ef92df20fd2004e635c62ba47fbe8f2bb63bfd80dac1474be2fb39798da8c2feba2815435d1f749af - languageName: node - linkType: hard - "postcss-import@npm:^15.1.0": version: 15.1.0 resolution: "postcss-import@npm:15.1.0" @@ -9021,17 +8642,6 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^27.0.2": - version: 27.5.1 - resolution: "pretty-format@npm:27.5.1" - dependencies: - ansi-regex: "npm:^5.0.1" - ansi-styles: "npm:^5.0.0" - react-is: "npm:^17.0.1" - checksum: 10/248990cbef9e96fb36a3e1ae6b903c551ca4ddd733f8d0912b9cc5141d3d0b3f9f8dfb4d799fb1c6723382c9c2083ffbfa4ad43ff9a0e7535d32d41fd5f01da6 - languageName: node - linkType: hard - "pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" @@ -9198,29 +8808,6 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:18.3.0": - version: 18.3.0 - resolution: "react-dom@npm:18.3.0" - dependencies: - loose-envify: "npm:^1.1.0" - scheduler: "npm:^0.23.1" - peerDependencies: - react: ^18.3.0 - checksum: 10/08d6a351fb4032c1b8cd6fc159b4d2d9f1e7ec967f3365f2585d808b381c9e83466dab9b15b72c2162c1a578776044fde641279a55af016473719be66c415408 - languageName: node - linkType: hard - -"react-dom@npm:19.0.0-beta-94eed63c49-20240425": - version: 19.0.0-beta-94eed63c49-20240425 - resolution: "react-dom@npm:19.0.0-beta-94eed63c49-20240425" - dependencies: - scheduler: "npm:0.25.0-beta-94eed63c49-20240425" - peerDependencies: - react: 19.0.0-beta-94eed63c49-20240425 - checksum: 10/fe3eb846e83d0295b9efde71eb507ca3607c983bf4d13c9e21552abd3f20064a1fb7f14e7e9cf2cc4b34f7c4f0939d3d1d5d7cc0d21db36c861fe87538e318ce - languageName: node - linkType: hard - "react-dom@npm:@phryneas/experimental-react-dom@0.0.0-phryneas-a1c625c": version: 0.0.0-phryneas-a1c625c resolution: "@phryneas/experimental-react-dom@npm:0.0.0-phryneas-a1c625c" @@ -9245,6 +8832,17 @@ __metadata: languageName: node linkType: hard +"react-dom@npm:^19.0.0": + version: 19.0.0 + resolution: "react-dom@npm:19.0.0" + dependencies: + scheduler: "npm:^0.25.0" + peerDependencies: + react: ^19.0.0 + checksum: 10/aa64a2f1991042f516260e8b0eca0ae777b6c8f1aa2b5ae096e80bbb6ac9b005aef2bca697969841d34f7e1819556263476bdfea36c35092e8d9aefde3de2d9a + languageName: node + linkType: hard + "react-error-boundary@npm:^4.0.13": version: 4.0.13 resolution: "react-error-boundary@npm:4.0.13" @@ -9263,13 +8861,6 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^17.0.1": - version: 17.0.2 - resolution: "react-is@npm:17.0.2" - checksum: 10/73b36281e58eeb27c9cc6031301b6ae19ecdc9f18ae2d518bdb39b0ac564e65c5779405d623f1df9abf378a13858b79442480244bd579968afc1faf9a2ce5e05 - languageName: node - linkType: hard - "react-is@npm:^18.0.0": version: 18.2.0 resolution: "react-is@npm:18.2.0" @@ -9327,22 +8918,6 @@ __metadata: languageName: unknown linkType: soft -"react@npm:18.3.0": - version: 18.3.0 - resolution: "react@npm:18.3.0" - dependencies: - loose-envify: "npm:^1.1.0" - checksum: 10/17112377dad4e5c868b608be57c8e970a3f6ee6eb6269a5c4c23b11b8b4f393c42a8a046be0c9ddbc5f182b909330ddbecab905bcdea5051b05ec3914491fd79 - languageName: node - linkType: hard - -"react@npm:19.0.0-beta-94eed63c49-20240425": - version: 19.0.0-beta-94eed63c49-20240425 - resolution: "react@npm:19.0.0-beta-94eed63c49-20240425" - checksum: 10/fd6f6ef0340f9ec06f497e23eba019edccd724df280c88146ad11dd240c2ae4ee0762e6ecdf68c40a0ffa75be4f5d2e24d6222a0b544f76ac4ab1499b35fdbbd - languageName: node - linkType: hard - "react@npm:@phryneas/experimental-react@0.0.0-phryneas-a1c625c": version: 0.0.0-phryneas-a1c625c resolution: "@phryneas/experimental-react@npm:0.0.0-phryneas-a1c625c" @@ -9361,6 +8936,13 @@ __metadata: languageName: node linkType: hard +"react@npm:^19.0.0": + version: 19.0.0 + resolution: "react@npm:19.0.0" + checksum: 10/2490969c503f644703c88990d20e4011fa6119ddeca451e9de48f6d7ab058d670d2852a5fcd3aa3cd90a923ab2815d532637bd4a814add402ae5c0d4f129ee71 + languageName: node + linkType: hard + "read-cache@npm:^1.0.0": version: 1.0.0 resolution: "read-cache@npm:1.0.0" @@ -9443,18 +9025,6 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.1": - version: 1.5.2 - resolution: "regexp.prototype.flags@npm:1.5.2" - dependencies: - call-bind: "npm:^1.0.6" - define-properties: "npm:^1.2.1" - es-errors: "npm:^1.3.0" - set-function-name: "npm:^2.0.1" - checksum: 10/9fffc01da9c4e12670ff95bc5204364615fcc12d86fc30642765af908675678ebb0780883c874b2dbd184505fb52fa603d80073ecf69f461ce7f56b15d10be9c - languageName: node - linkType: hard - "regexpu-core@npm:^5.3.1": version: 5.3.2 resolution: "regexpu-core@npm:5.3.2" @@ -9748,14 +9318,7 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:0.25.0-beta-94eed63c49-20240425": - version: 0.25.0-beta-94eed63c49-20240425 - resolution: "scheduler@npm:0.25.0-beta-94eed63c49-20240425" - checksum: 10/02a8c46af07e5cb5d80441e7a5a39d6ff29e799cb31f1cad0d396d8f714f945e6cc4df8277e68493ee2785c6e5963d2ab8c74f3bf60c646044759805d52b18e0 - languageName: node - linkType: hard - -"scheduler@npm:^0.23.0, scheduler@npm:^0.23.1": +"scheduler@npm:^0.23.0": version: 0.23.1 resolution: "scheduler@npm:0.23.1" dependencies: @@ -9773,6 +9336,13 @@ __metadata: languageName: node linkType: hard +"scheduler@npm:^0.25.0": + version: 0.25.0 + resolution: "scheduler@npm:0.25.0" + checksum: 10/e661e38503ab29a153429a99203fefa764f28b35c079719eb5efdd2c1c1086522f6653d8ffce388209682c23891a6d1d32fa6badf53c35fb5b9cd0c55ace42de + languageName: node + linkType: hard + "semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" @@ -9889,18 +9459,6 @@ __metadata: languageName: node linkType: hard -"set-function-name@npm:^2.0.1": - version: 2.0.2 - resolution: "set-function-name@npm:2.0.2" - dependencies: - define-data-property: "npm:^1.1.4" - es-errors: "npm:^1.3.0" - functions-have-names: "npm:^1.2.3" - has-property-descriptors: "npm:^1.0.2" - checksum: 10/c7614154a53ebf8c0428a6c40a3b0b47dac30587c1a19703d1b75f003803f73cdfa6a93474a9ba678fa565ef5fbddc2fae79bca03b7d22ab5fd5163dbe571a74 - languageName: node - linkType: hard - "setprototypeof@npm:1.2.0": version: 1.2.0 resolution: "setprototypeof@npm:1.2.0" @@ -10239,15 +9797,6 @@ __metadata: languageName: node linkType: hard -"stop-iteration-iterator@npm:^1.0.0": - version: 1.0.0 - resolution: "stop-iteration-iterator@npm:1.0.0" - dependencies: - internal-slot: "npm:^1.0.4" - checksum: 10/2a23a36f4f6bfa63f46ae2d53a3f80fe8276110b95a55345d8ed3d92125413494033bc8697eb774e8f7aeb5725f70e3d69753caa2ecacdac6258c16fa8aa8b0f - languageName: node - linkType: hard - "stream-shift@npm:^1.0.0": version: 1.0.3 resolution: "stream-shift@npm:1.0.3" @@ -11203,44 +10752,6 @@ __metadata: languageName: node linkType: hard -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" - dependencies: - is-bigint: "npm:^1.0.1" - is-boolean-object: "npm:^1.1.0" - is-number-object: "npm:^1.0.4" - is-string: "npm:^1.0.5" - is-symbol: "npm:^1.0.3" - checksum: 10/9c7ca7855255f25ac47f4ce8b59c4cc33629e713fd7a165c9d77a2bb47bf3d9655a5664660c70337a3221cf96742f3589fae15a3a33639908d33e29aa2941efb - languageName: node - linkType: hard - -"which-collection@npm:^1.0.1": - version: 1.0.1 - resolution: "which-collection@npm:1.0.1" - dependencies: - is-map: "npm:^2.0.1" - is-set: "npm:^2.0.1" - is-weakmap: "npm:^2.0.1" - is-weakset: "npm:^2.0.1" - checksum: 10/85c95fcf92df7972ce66bed879e53d9dc752a30ef08e1ca4696df56bcf1c302e3b9965a39b04a20fa280a997fad6c170eb0b4d62435569b7f6c0bc7be910572b - languageName: node - linkType: hard - -"which-typed-array@npm:^1.1.13": - version: 1.1.14 - resolution: "which-typed-array@npm:1.1.14" - dependencies: - available-typed-arrays: "npm:^1.0.6" - call-bind: "npm:^1.0.5" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-tostringtag: "npm:^1.0.1" - checksum: 10/56253d2c9d6b41b8a4af96d8c2751bac5508906bd500cdcd0dc5301fb082de0391a4311ab21258bc8d2609ed593f422c1a66f0020fcb3a1e97f719bc928b9018 - languageName: node - linkType: hard - "which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" diff --git a/package.json b/package.json index 7ff7109b..ad4a301b 100644 --- a/package.json +++ b/package.json @@ -21,11 +21,6 @@ "build:docmodel": "yarn workspaces foreach --all --include \"@apollo/*\" exec api-extractor run" }, "resolutions": { - "react": "19.0.0-rc-935180c7e0-20240524", - "react-dom": "19.0.0-rc-935180c7e0-20240524", - "react-server-dom-webpack": "19.0.0-beta-94eed63c49-20240425", - "@types/react": "npm:types-react@19.0.0-rc.0", - "@types/react-dom": "npm:types-react-dom@19.0.0-rc.0", "@microsoft/api-documenter": "7.24.1" }, "devDependencies": { diff --git a/packages/client-react-streaming/package.json b/packages/client-react-streaming/package.json index c387351e..bd2d7296 100644 --- a/packages/client-react-streaming/package.json +++ b/packages/client-react-streaming/package.json @@ -135,11 +135,12 @@ "@arethetypeswrong/cli": "0.15.3", "@internal/test-utils": "workspace:^", "@microsoft/api-extractor": "7.43.2", - "@testing-library/react": "15.0.7", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", "@total-typescript/shoehorn": "0.1.2", "@tsconfig/recommended": "1.0.6", "@types/node": "20.12.11", - "@types/react": "18.3.1", + "@types/react": "^19.0.0", "concurrently": "8.2.2", "eslint": "8.57.0", "glob": "10.3.12", @@ -148,9 +149,9 @@ "graphql": "16.8.1", "jsdom": "24.0.0", "publint": "0.2.7", - "react": "18.3.0", + "react": "^19.0.0", "react-error-boundary": "4.0.13", - "react-server-dom-webpack": "0.0.1", + "react-server-dom-webpack": "^19.0.0", "rimraf": "5.0.5", "ts-node": "10.9.2", "tsup": "8.0.2", diff --git a/packages/client-react-streaming/src/DataTransportAbstraction/WrappedApolloClient.test.tsx b/packages/client-react-streaming/src/DataTransportAbstraction/WrappedApolloClient.test.tsx index 4dfcc850..f8e2e407 100644 --- a/packages/client-react-streaming/src/DataTransportAbstraction/WrappedApolloClient.test.tsx +++ b/packages/client-react-streaming/src/DataTransportAbstraction/WrappedApolloClient.test.tsx @@ -31,7 +31,7 @@ describe( async () => { // @ts-expect-error seems to have a wrong type? await import("global-jsdom/register"); - const { render, cleanup, getQueriesForElement } = await import( + const { render, cleanup, getQueriesForElement, act } = await import( "@testing-library/react" ); @@ -117,18 +117,22 @@ describe( return <>{data.me}; } - const { findByText } = render( - client}> - - - - + const { findByText } = await act(async () => + render( + client}> + + + + + ) ); assert.deepStrictEqual(events, [EVENT_STARTED]); assert.deepStrictEqual(staticData, []); - link.simulateResult({ result: { data: FIRST_RESULT } }, true); + await act(async () => + link.simulateResult({ result: { data: FIRST_RESULT } }, true) + ); await findByText("User"); @@ -189,17 +193,19 @@ describe( return <>{data.me}; } - const { findByText, rerender } = render( - client}> + const { findByText, rerender } = await act(async () => + render( client}>) ); - simulateQueryEvent!(EVENT_STARTED); - rerender( - client}> - - - - + await act(async () => simulateQueryEvent!(EVENT_STARTED)); + await act(async () => + rerender( + client}> + + + + + ) ); assert.ok(attemptedRenderCount > 0); @@ -207,8 +213,8 @@ describe( await findByText("Fallback"); useStaticValueRefStub = () => ({ current: FIRST_HOOK_RESULT as any }); - simulateQueryEvent!(EVENT_DATA); - simulateQueryEvent!(EVENT_COMPLETE); + await act(async () => simulateQueryEvent!(EVENT_DATA)); + await act(async () => simulateQueryEvent!(EVENT_COMPLETE)); await new Promise((resolve) => setTimeout(resolve, 1000)); diff --git a/packages/experimental-nextjs-app-support/package.json b/packages/experimental-nextjs-app-support/package.json index 7af85d5b..f6148787 100644 --- a/packages/experimental-nextjs-app-support/package.json +++ b/packages/experimental-nextjs-app-support/package.json @@ -120,11 +120,12 @@ "@arethetypeswrong/cli": "0.15.3", "@internal/test-utils": "workspace:^", "@microsoft/api-extractor": "7.43.2", - "@testing-library/react": "15.0.7", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", "@total-typescript/shoehorn": "0.1.2", "@tsconfig/recommended": "1.0.6", "@types/node": "20.12.11", - "@types/react": "18.3.1", + "@types/react": "^19.0.0", "concurrently": "8.2.2", "eslint": "8.57.0", "glob": "10.3.12", @@ -134,7 +135,7 @@ "jsdom": "24.0.0", "next": "^15.0.0", "publint": "0.2.7", - "react": "18.3.0", + "react": "^19.0.0", "rimraf": "5.0.5", "ts-node": "10.9.2", "tsup": "8.0.2", diff --git a/yarn.lock b/yarn.lock index 437a5244..13605fee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -54,25 +54,22 @@ __metadata: "@arethetypeswrong/cli": "npm:0.15.3" "@internal/test-utils": "workspace:^" "@microsoft/api-extractor": "npm:7.43.2" - "@testing-library/react": "npm:15.0.7" + "@testing-library/dom": "npm:^10.4.0" + "@testing-library/react": "npm:^16.1.0" "@total-typescript/shoehorn": "npm:0.1.2" "@tsconfig/recommended": "npm:1.0.6" "@types/node": "npm:20.12.11" - "@types/react": "npm:18.3.1" - "@typescript-eslint/eslint-plugin": "npm:7.5.0" - "@typescript-eslint/parser": "npm:7.5.0" + "@types/react": "npm:^19.0.0" concurrently: "npm:8.2.2" eslint: "npm:8.57.0" - eslint-plugin-react: "npm:7.34.1" - eslint-plugin-react-hooks: "npm:4.6.0" glob: "npm:10.3.12" global-jsdom: "npm:24.0.0" globstar: "npm:1.0.0" graphql: "npm:16.8.1" jsdom: "npm:24.0.0" - next: "npm:^15.0.0" publint: "npm:0.2.7" - react: "npm:18.3.0" + react: "npm:^19.0.0" + react-router: "npm:^7.0.2" rimraf: "npm:5.0.5" ts-node: "npm:10.9.2" tsup: "npm:8.0.2" @@ -80,9 +77,8 @@ __metadata: typescript: "npm:5.4.5" vitest: "npm:1.6.0" peerDependencies: - "@apollo/client": ^3.10.4 - next: ^13.4.1 || ^14.0.0 || ^15.0.0-rc.0 - react: ^18 || >=19.0.0-rc <19.0.0 + react: ^19 + react-router: ^7.0.2 languageName: unknown linkType: soft @@ -94,11 +90,12 @@ __metadata: "@arethetypeswrong/cli": "npm:0.15.3" "@internal/test-utils": "workspace:^" "@microsoft/api-extractor": "npm:7.43.2" - "@testing-library/react": "npm:15.0.7" + "@testing-library/dom": "npm:^10.4.0" + "@testing-library/react": "npm:^16.1.0" "@total-typescript/shoehorn": "npm:0.1.2" "@tsconfig/recommended": "npm:1.0.6" "@types/node": "npm:20.12.11" - "@types/react": "npm:18.3.1" + "@types/react": "npm:^19.0.0" concurrently: "npm:8.2.2" eslint: "npm:8.57.0" glob: "npm:10.3.12" @@ -107,9 +104,9 @@ __metadata: graphql: "npm:16.8.1" jsdom: "npm:24.0.0" publint: "npm:0.2.7" - react: "npm:18.3.0" + react: "npm:^19.0.0" react-error-boundary: "npm:4.0.13" - react-server-dom-webpack: "npm:0.0.1" + react-server-dom-webpack: "npm:^19.0.0" rimraf: "npm:5.0.5" ts-invariant: "npm:^0.10.3" ts-node: "npm:10.9.2" @@ -169,11 +166,12 @@ __metadata: "@arethetypeswrong/cli": "npm:0.15.3" "@internal/test-utils": "workspace:^" "@microsoft/api-extractor": "npm:7.43.2" - "@testing-library/react": "npm:15.0.7" + "@testing-library/dom": "npm:^10.4.0" + "@testing-library/react": "npm:^16.1.0" "@total-typescript/shoehorn": "npm:0.1.2" "@tsconfig/recommended": "npm:1.0.6" "@types/node": "npm:20.12.11" - "@types/react": "npm:18.3.1" + "@types/react": "npm:^19.0.0" concurrently: "npm:8.2.2" eslint: "npm:8.57.0" glob: "npm:10.3.12" @@ -183,7 +181,7 @@ __metadata: jsdom: "npm:24.0.0" next: "npm:^15.0.0" publint: "npm:0.2.7" - react: "npm:18.3.0" + react: "npm:^19.0.0" rimraf: "npm:5.0.5" ts-node: "npm:10.9.2" tsup: "npm:8.0.2" @@ -500,7 +498,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.23.5": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.23.5": version: 7.23.5 resolution: "@babel/code-frame@npm:7.23.5" dependencies: @@ -510,6 +508,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.10.4": + version: 7.26.2 + resolution: "@babel/code-frame@npm:7.26.2" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.25.9" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10/db2c2122af79d31ca916755331bb4bac96feb2b334cdaca5097a6b467fdd41963b89b14b6836a14f083de7ff887fc78fa1b3c10b14e743d33e12dbfe5ee3d223 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" @@ -723,6 +732,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 10/3f9b649be0c2fd457fa1957b694b4e69532a668866b8a0d81eabfa34ba16dbf3107b39e0e7144c55c3c652bf773ec816af8df4a61273a2bb4eb3145ca9cf478e + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.23.5": version: 7.23.5 resolution: "@babel/helper-validator-option@npm:7.23.5" @@ -1563,17 +1579,17 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/next-js@npm:^2.1.2": - version: 2.1.2 - resolution: "@chakra-ui/next-js@npm:2.1.2" +"@chakra-ui/next-js@npm:2.4.2": + version: 2.4.2 + resolution: "@chakra-ui/next-js@npm:2.4.2" dependencies: - "@emotion/cache": "npm:^11.10.5" + "@emotion/cache": "npm:^11.11.0" peerDependencies: "@chakra-ui/react": ">=2.4.0" "@emotion/react": ">=11" next: ">=13" react: ">=18" - checksum: 10/36ce56464aa0702b2968976466ec4288c465a220c7d1343bb5cf3726cfcc9068b84259aaf8c06fb27c2e7700e7ead80abbbad4b222209e33ad64cb26b49f97da + checksum: 10/a99a1a1f05a577c2392a477e34be19fc3dac9211b81aa0d64d8d9a1af48e740a03a1a3c78f7accf56dc81e24378bc0d941befa21b7ec7b0a31596cfdffb04c1c languageName: node linkType: hard @@ -5060,9 +5076,9 @@ __metadata: languageName: node linkType: hard -"@testing-library/dom@npm:^10.0.0": - version: 10.1.0 - resolution: "@testing-library/dom@npm:10.1.0" +"@testing-library/dom@npm:^10.4.0": + version: 10.4.0 + resolution: "@testing-library/dom@npm:10.4.0" dependencies: "@babel/code-frame": "npm:^7.10.4" "@babel/runtime": "npm:^7.12.5" @@ -5072,25 +5088,27 @@ __metadata: dom-accessibility-api: "npm:^0.5.9" lz-string: "npm:^1.5.0" pretty-format: "npm:^27.0.2" - checksum: 10/6d6ef942deedf547180c76d4cc2c43fe8e52a98ef68be6ba7382a43d3b1e1e5696d9c32ae0b2df12c92ea50023187d132ad2542fc118ba4b900f149e97d019e0 + checksum: 10/05825ee9a15b88cbdae12c137db7111c34069ed3c7a1bd03b6696cb1b37b29f6f2d2de581ebf03033e7df1ab7ebf08399310293f440a4845d95c02c0a9ecc899 languageName: node linkType: hard -"@testing-library/react@npm:15.0.7": - version: 15.0.7 - resolution: "@testing-library/react@npm:15.0.7" +"@testing-library/react@npm:^16.1.0": + version: 16.1.0 + resolution: "@testing-library/react@npm:16.1.0" dependencies: "@babel/runtime": "npm:^7.12.5" - "@testing-library/dom": "npm:^10.0.0" - "@types/react-dom": "npm:^18.0.0" peerDependencies: - "@types/react": ^18.0.0 - react: ^18.0.0 - react-dom: ^18.0.0 + "@testing-library/dom": ^10.0.0 + "@types/react": ^18.0.0 || ^19.0.0 + "@types/react-dom": ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 peerDependenciesMeta: "@types/react": optional: true - checksum: 10/a9342ad09b019b0f99688fb50265899bc93adfe23c22aa6743fd920635b43fdc66877e66d95f240923aa6f7d3aa360837f5b053fb363a31975788974dff7bc93 + "@types/react-dom": + optional: true + checksum: 10/2a20e0dbfadbc93d45a84e82281ed47deed54a6a5fc1461a523172d7fbc0481e8502cf98a2080f38aba94290b3d745671a1c9e320e6f76ad6afcca67c580b963 languageName: node linkType: hard @@ -5204,6 +5222,13 @@ __metadata: languageName: node linkType: hard +"@types/cookie@npm:^0.6.0": + version: 0.6.0 + resolution: "@types/cookie@npm:0.6.0" + checksum: 10/b883348d5bf88695fbc2c2276b1c49859267a55cae3cf11ea1dccc1b3be15b466e637ce3242109ba27d616c77c6aa4efe521e3d557110b4fdd9bc332a12445c2 + languageName: node + linkType: hard + "@types/eslint-scope@npm:^3.7.3": version: 3.7.7 resolution: "@types/eslint-scope@npm:3.7.7" @@ -5391,21 +5416,21 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:types-react-dom@19.0.0-rc.0": - version: 19.0.0-rc.0 - resolution: "types-react-dom@npm:19.0.0-rc.0" +"@types/react-dom@npm:^19.0.0": + version: 19.0.0 + resolution: "@types/react-dom@npm:19.0.0" dependencies: "@types/react": "npm:*" - checksum: 10/edcf0d1f1d9c1186f627a08cccf3f9c60cd3ad3f678a420572184ce09d99ee0dc7db31dc76e00069cfcd60aeb48f49bf4ccad9334eace4895ecc3c180d3e30a6 + checksum: 10/86945c4d4c4cd82e993acdd380c3d9d8e8ca297228aa72c0fa6af4620abb145e7b12235c9165d569f1b25b5f72d1dbe4b4e3f2419432248de9838b22e94295a2 languageName: node linkType: hard -"@types/react@npm:types-react@19.0.0-rc.0": - version: 19.0.0-rc.0 - resolution: "types-react@npm:19.0.0-rc.0" +"@types/react@npm:*, @types/react@npm:^19.0.0": + version: 19.0.0 + resolution: "@types/react@npm:19.0.0" dependencies: csstype: "npm:^3.0.2" - checksum: 10/e7d9357f8e0b7b48fea99a5254976c97ded9aa21527ebb7649a1035d0ca47d2b520bee9b5ee90b1d0133f5e848e9f1d6e8a3e48b51a431476163dbd60f4e5929 + checksum: 10/5596d9a2c9c982d5e86add54f5d9b115153c4d47073dd3f8f8369a5e5b7f3088d614a935f85a2cf26eb6631d7ebebc7b913c5d22bf880847370070f2e60e63e6 languageName: node linkType: hard @@ -6032,7 +6057,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.10.0, acorn@npm:^8.11.0, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.10.0, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.11.3 resolution: "acorn@npm:8.11.3" bin: @@ -6041,6 +6066,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.11.0": + version: 8.14.0 + resolution: "acorn@npm:8.14.0" + bin: + acorn: bin/acorn + checksum: 10/6df29c35556782ca9e632db461a7f97947772c6c1d5438a81f0c873a3da3a792487e83e404d1c6c25f70513e91aa18745f6eafb1fcc3a43ecd1920b21dd173d2 + languageName: node + linkType: hard + "acorn@npm:^8.4.1, acorn@npm:^8.8.0": version: 8.8.2 resolution: "acorn@npm:8.8.2" @@ -6240,8 +6274,8 @@ __metadata: "@graphql-codegen/typescript": "npm:3.0.4" "@graphql-codegen/typescript-resolvers": "npm:3.2.1" "@types/node": "npm:20.12.11" - "@types/react": "npm:18.3.3" - "@types/react-dom": "npm:19.0.0-alpha.3" + "@types/react": "npm:^19.0.0" + "@types/react-dom": "npm:^19.0.0" "@vercel/kv": "npm:^0.1.1" autoprefixer: "npm:10.4.14" clsx: "npm:^1.2.1" @@ -6252,8 +6286,8 @@ __metadata: graphql-tag: "npm:^2.12.6" next: "npm:^15.0.0" postcss: "npm:8.4.23" - react: "npm:18.3.0" - react-dom: "npm:18.3.0" + react: "npm:^19.0.0" + react-dom: "npm:^19.0.0" tailwindcss: "npm:3.3.2" typescript: "npm:5.4.5" languageName: unknown @@ -6268,8 +6302,8 @@ __metadata: "@apollo/server": "npm:^4.9.5" "@as-integrations/next": "npm:^3.0.0" "@types/node": "npm:20.12.11" - "@types/react": "npm:18.3.1" - "@types/react-dom": "npm:18.3.0" + "@types/react": "npm:^19.0.0" + "@types/react-dom": "npm:^19.0.0" client-only: "npm:^0.0.1" encoding: "npm:^0.1.13" eslint: "npm:8.36.0" @@ -6277,8 +6311,8 @@ __metadata: graphql: "npm:^16.6.0" html-differ: "npm:^1.4.0" next: "npm:^15.0.0" - react: "npm:18.3.0" - react-dom: "npm:18.3.0" + react: "npm:^19.0.0" + react-dom: "npm:^19.0.0" server-only: "npm:^0.0.1" typescript: "npm:5.4.5" languageName: unknown @@ -7597,6 +7631,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:^1.0.1": + version: 1.0.2 + resolution: "cookie@npm:1.0.2" + checksum: 10/f5817cdc84d8977761b12549eba29435e675e65c7fef172bc31737788cd8adc83796bf8abe6d950554e7987325ad2d9ac2971c5bd8ff0c4f81c145f82e4ab1be + languageName: node + linkType: hard + "copy-to-clipboard@npm:3.3.3": version: 3.3.3 resolution: "copy-to-clipboard@npm:3.3.3" @@ -10129,7 +10170,7 @@ __metadata: "@apollo/client": "npm:3.10.4" "@apollo/experimental-nextjs-app-support": "workspace:^" "@apollo/space-kit": "npm:^9.11.0" - "@chakra-ui/next-js": "npm:^2.1.2" + "@chakra-ui/next-js": "npm:2.4.2" "@chakra-ui/react": "npm:^2.5.5" "@emotion/cache": "npm:^11.11.0" "@emotion/core": "npm:^11.0.0" @@ -10137,16 +10178,16 @@ __metadata: "@emotion/styled": "npm:^11.10.6" "@types/js-cookie": "npm:3.0.6" "@types/node": "npm:20.12.11" - "@types/react": "npm:18.3.1" - "@types/react-dom": "npm:18.3.0" + "@types/react": "npm:^19.0.0" + "@types/react-dom": "npm:^19.0.0" eslint: "npm:8.38.0" eslint-config-next: "npm:13.3.0" framer-motion: "npm:^10.12.2" graphql: "npm:^16.6.0" js-cookie: "npm:^3.0.1" next: "npm:^15.0.0" - react: "npm:18.3.0" - react-dom: "npm:18.3.0" + react: "npm:^19.0.0" + react-dom: "npm:^19.0.0" react-icons: "npm:^4.8.0" react-rating-stars-component: "npm:^2.2.0" typescript: "npm:5.4.5" @@ -13339,14 +13380,14 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:19.0.0-rc-935180c7e0-20240524": - version: 19.0.0-rc-935180c7e0-20240524 - resolution: "react-dom@npm:19.0.0-rc-935180c7e0-20240524" +"react-dom@npm:^19.0.0": + version: 19.0.0 + resolution: "react-dom@npm:19.0.0" dependencies: - scheduler: "npm:0.25.0-rc-935180c7e0-20240524" + scheduler: "npm:^0.25.0" peerDependencies: - react: 19.0.0-rc-935180c7e0-20240524 - checksum: 10/65c465756ac1d474ee9694083fd9df40e18b71752e126936bb4f63008c8f1850986256a572a488f24e8cdb008aa681474419ab92b860d6ab84174c4f7561dfc0 + react: ^19.0.0 + checksum: 10/aa64a2f1991042f516260e8b0eca0ae777b6c8f1aa2b5ae096e80bbb6ac9b005aef2bca697969841d34f7e1819556263476bdfea36c35092e8d9aefde3de2d9a languageName: node linkType: hard @@ -13460,17 +13501,36 @@ __metadata: languageName: node linkType: hard -"react-server-dom-webpack@npm:19.0.0-beta-94eed63c49-20240425": - version: 19.0.0-beta-94eed63c49-20240425 - resolution: "react-server-dom-webpack@npm:19.0.0-beta-94eed63c49-20240425" +"react-router@npm:^7.0.2": + version: 7.0.2 + resolution: "react-router@npm:7.0.2" + dependencies: + "@types/cookie": "npm:^0.6.0" + cookie: "npm:^1.0.1" + set-cookie-parser: "npm:^2.6.0" + turbo-stream: "npm:2.4.0" + peerDependencies: + react: ">=18" + react-dom: ">=18" + peerDependenciesMeta: + react-dom: + optional: true + checksum: 10/f8bf5f7810388d4da81444d5e816135306aadd0340a26d645eb171e2b4c4a6d7f5a810f1d27e25ae0f006b949f7cf66fcf399f2af79f48341752a6651b2b30cb + languageName: node + linkType: hard + +"react-server-dom-webpack@npm:^19.0.0": + version: 19.0.0 + resolution: "react-server-dom-webpack@npm:19.0.0" dependencies: acorn-loose: "npm:^8.3.0" neo-async: "npm:^2.6.1" + webpack-sources: "npm:^3.2.0" peerDependencies: - react: 19.0.0-beta-94eed63c49-20240425 - react-dom: 19.0.0-beta-94eed63c49-20240425 + react: ^19.0.0 + react-dom: ^19.0.0 webpack: ^5.59.0 - checksum: 10/8b4048fa632b5fe714dc6aab4e8801681a7a8cf9dbf9718ad26dbd05f77df8eb7d4389b4de637dff1f40838208666bb39317057470ca12203530531552a741fa + checksum: 10/ab6478303befbe1e6331dd1ca3fc5d9aa76081dee6fad6a3debe0712ffd85eb063d39f1f7ba785a6591fc641ca4b1fc1f24e3215cbd6d26851a8f76ea085d326 languageName: node linkType: hard @@ -13491,10 +13551,10 @@ __metadata: languageName: node linkType: hard -"react@npm:19.0.0-rc-935180c7e0-20240524": - version: 19.0.0-rc-935180c7e0-20240524 - resolution: "react@npm:19.0.0-rc-935180c7e0-20240524" - checksum: 10/c201f2e7fc9661766332b57c46f2af81e8ceb0963ad95260565e0ee72ebefec72d8b4ae5bc1affeeb44d40f909ca8f1ad0d082add918a353b0a527d9a007f083 +"react@npm:^19.0.0": + version: 19.0.0 + resolution: "react@npm:19.0.0" + checksum: 10/2490969c503f644703c88990d20e4011fa6119ddeca451e9de48f6d7ab058d670d2852a5fcd3aa3cd90a923ab2815d532637bd4a814add402ae5c0d4f129ee71 languageName: node linkType: hard @@ -14122,10 +14182,10 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:0.25.0-rc-935180c7e0-20240524": - version: 0.25.0-rc-935180c7e0-20240524 - resolution: "scheduler@npm:0.25.0-rc-935180c7e0-20240524" - checksum: 10/bf78b33a294e216b3bf64a935775430d445c6a963298a8b898dda730ff7bcc4f41cbcf5d163eb246f29b2c81219d8a38697f5b5715111e3e18d690e33545f244 +"scheduler@npm:^0.25.0": + version: 0.25.0 + resolution: "scheduler@npm:0.25.0" + checksum: 10/e661e38503ab29a153429a99203fefa764f28b35c079719eb5efdd2c1c1086522f6653d8ffce388209682c23891a6d1d32fa6badf53c35fb5b9cd0c55ace42de languageName: node linkType: hard @@ -14265,6 +14325,13 @@ __metadata: languageName: node linkType: hard +"set-cookie-parser@npm:^2.6.0": + version: 2.7.1 + resolution: "set-cookie-parser@npm:2.7.1" + checksum: 10/c92b1130032693342bca13ea1b1bc93967ab37deec4387fcd8c2a843c0ef2fd9a9f3df25aea5bb3976cd05a91c2cf4632dd6164d6e1814208fb7d7e14edd42b4 + languageName: node + linkType: hard + "set-function-length@npm:^1.1.1": version: 1.1.1 resolution: "set-function-length@npm:1.1.1" @@ -15546,6 +15613,13 @@ __metadata: languageName: node linkType: hard +"turbo-stream@npm:2.4.0": + version: 2.4.0 + resolution: "turbo-stream@npm:2.4.0" + checksum: 10/7079bbc82b58340f783144cd669cc7e598288523103a8d68bb8a4c6bb28c64eccb71d389b33aab07788d3a9030638b795709e15cb8486f722b1cdac59cb58afc + languageName: node + linkType: hard + "type-check@npm:^0.4.0, type-check@npm:~0.4.0": version: 0.4.0 resolution: "type-check@npm:0.4.0" @@ -16231,7 +16305,7 @@ __metadata: languageName: node linkType: hard -"webpack-sources@npm:^3.2.3": +"webpack-sources@npm:^3.2.0, webpack-sources@npm:^3.2.3": version: 3.2.3 resolution: "webpack-sources@npm:3.2.3" checksum: 10/a661f41795d678b7526ae8a88cd1b3d8ce71a7d19b6503da8149b2e667fc7a12f9b899041c1665d39e38245ed3a59ab68de648ea31040c3829aa695a5a45211d From 145f2100e91293907b246fd2c7e9e5a35f380f5c Mon Sep 17 00:00:00 2001 From: phryneas Date: Fri, 6 Dec 2024 13:06:45 +0000 Subject: [PATCH 09/26] Release version 0.11.7@latest to npm --- packages/client-react-streaming/package.json | 2 +- packages/experimental-nextjs-app-support/package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/client-react-streaming/package.json b/packages/client-react-streaming/package.json index bd2d7296..ef380160 100644 --- a/packages/client-react-streaming/package.json +++ b/packages/client-react-streaming/package.json @@ -1,6 +1,6 @@ { "name": "@apollo/client-react-streaming", - "version": "0.11.6", + "version": "0.11.7", "repository": { "url": "git+https://github.com/apollographql/apollo-client-nextjs" }, diff --git a/packages/experimental-nextjs-app-support/package.json b/packages/experimental-nextjs-app-support/package.json index f6148787..8096f05d 100644 --- a/packages/experimental-nextjs-app-support/package.json +++ b/packages/experimental-nextjs-app-support/package.json @@ -1,6 +1,6 @@ { "name": "@apollo/experimental-nextjs-app-support", - "version": "0.11.6", + "version": "0.11.7", "repository": { "url": "git+https://github.com/apollographql/apollo-client-nextjs" }, @@ -149,6 +149,6 @@ "react": "^18 || >=19.0.0-rc" }, "dependencies": { - "@apollo/client-react-streaming": "0.11.6" + "@apollo/client-react-streaming": "0.11.7" } } From bf662df355e347f62e59dd65be4261c681c233a2 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Mon, 16 Dec 2024 15:26:36 +0100 Subject: [PATCH 10/26] add example --- integration-test/package.json | 3 +- integration-test/react-router/app/apollo.ts | 8 +- .../app/apollo/createQueryPreloader.ts | 131 ------------------ integration-test/react-router/app/root.tsx | 3 +- .../react-router/app/routes/home.tsx | 1 + integration-test/react-router/package.json | 1 + .../build-client-integration-react-router.cjs | 45 ++++++ .../build-experimental-nextjs-app-support.cjs | 72 +++++----- integration-test/yarn.lock | 23 ++- packages/react-router/LICENSE.md | 21 +++ packages/react-router/README.md | 1 + packages/react-router/api-extractor.json | 13 ++ packages/react-router/package-shape.json | 16 +++ packages/react-router/package.json | 106 ++++++++++++++ .../react-router/src}/ApolloClient.tsx | 0 .../src}/ApolloHydrationHelper.tsx | 15 +- packages/react-router/src/index.ts | 3 + .../react-router/src}/preloader.tsx | 10 +- packages/react-router/tsconfig.json | 27 ++++ packages/react-router/tsconfig.tests.json | 8 ++ packages/react-router/tsup.config.ts | 67 +++++++++ 21 files changed, 387 insertions(+), 187 deletions(-) delete mode 100644 integration-test/react-router/app/apollo/createQueryPreloader.ts create mode 100755 integration-test/shared/build-client-integration-react-router.cjs create mode 100644 packages/react-router/LICENSE.md create mode 100644 packages/react-router/README.md create mode 100644 packages/react-router/api-extractor.json create mode 100644 packages/react-router/package-shape.json create mode 100644 packages/react-router/package.json rename {integration-test/react-router/app/apollo => packages/react-router/src}/ApolloClient.tsx (100%) rename {integration-test/react-router/app/apollo => packages/react-router/src}/ApolloHydrationHelper.tsx (60%) create mode 100644 packages/react-router/src/index.ts rename {integration-test/react-router/app/apollo => packages/react-router/src}/preloader.tsx (72%) create mode 100644 packages/react-router/tsconfig.json create mode 100644 packages/react-router/tsconfig.tests.json create mode 100644 packages/react-router/tsup.config.ts diff --git a/integration-test/package.json b/integration-test/package.json index 58354b06..649ec7e7 100644 --- a/integration-test/package.json +++ b/integration-test/package.json @@ -4,13 +4,14 @@ "resolutions": { "@apollo/client-react-streaming": "exec:./shared/build-client-react-streaming.cjs", "@apollo/experimental-nextjs-app-support": "exec:./shared/build-experimental-nextjs-app-support.cjs", + "@apollo/client-integration-react-router": "exec:./shared/build-client-integration-react-router.cjs", "graphql": "17.0.0-alpha.2" }, "workspaces": [ "*" ], "scripts": { - "build:libs": "find . -regextype posix-extended -regex '.*/node_modules/@apollo/(client-react-streaming|experimental-nextjs-app-support)' -printf 'rm -r %p\n' -exec rm -r {} +; glob \"../.yarn/cache/@apollo-*exec*\" \"$HOME/.yarn/berry/cache/@apollo-*exec*\" --cmd='rm -v' ; yarn" + "build:libs": "find . -regextype posix-extended -regex '.*/node_modules/@apollo/(client-react-streaming|experimental-nextjs-app-support|client-integration-react-router)' -printf 'rm -r %p\n' -exec rm -r {} +; glob \"../.yarn/cache/@apollo-*exec*\" \"$HOME/.yarn/berry/cache/@apollo-*exec*\" --cmd='rm -v' ; yarn" }, "devDependencies": { "glob": "^10.3.10" diff --git a/integration-test/react-router/app/apollo.ts b/integration-test/react-router/app/apollo.ts index 2f7211ae..d69aff4d 100644 --- a/integration-test/react-router/app/apollo.ts +++ b/integration-test/react-router/app/apollo.ts @@ -1,6 +1,8 @@ -import { InMemoryCache } from "@apollo/client-react-streaming"; -import { ApolloClient } from "./apollo/ApolloClient"; -import { createApolloLoaderHandler } from "./apollo/preloader"; +import { InMemoryCache } from "@apollo/client/index.js"; +import { + createApolloLoaderHandler, + ApolloClient, +} from "@apollo/client-integration-react-router"; export const makeClient = (request?: Request) => { return new ApolloClient({ diff --git a/integration-test/react-router/app/apollo/createQueryPreloader.ts b/integration-test/react-router/app/apollo/createQueryPreloader.ts deleted file mode 100644 index 3e009267..00000000 --- a/integration-test/react-router/app/apollo/createQueryPreloader.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { createQueryPreloader, gql } from '@apollo/client/index.js' -import { print, stripIgnoredCharacters } from 'graphql' -import { - readFromReadableStream, - skipDataTransport, - teeToReadableStream, -} from '@apollo/client-react-streaming' -import type { ReadableStreamLinkEvent } from '@apollo/client-react-streaming' -import type { ApolloClient } from './ApolloClient' -import type { - DocumentNode, - PreloadQueryFunction, - WatchQueryOptions, -} from '@apollo/client/index.js' - -export function createTransportedQueryPreloader( - client: ApolloClient, -): PreloadQueryFunction { - return (...[query, options]: Parameters) => { - let __injectIntoStream: - | ReadableStreamDefaultController - | undefined - const __eventStream = new ReadableStream({ - start(controller) { - __injectIntoStream = controller - }, - }) - - // Instead of creating the queryRef, we kick off a query that will feed the network response - // into our custom event stream. - client.query({ - query, - ...options, - // ensure that this query makes it to the network - fetchPolicy: 'network-only', - context: skipDataTransport( - teeToReadableStream(__injectIntoStream!, { - ...options?.context, - // we want to do this even if the query is already running for another reason - queryDeduplication: false, - }), - ), - }) - - return createTransportedQueryRef( - { - ...(options as any), - query: printMinified(query), - }, - __eventStream, - ) as any - } -} - -function printMinified(query: DocumentNode): string { - return stripIgnoredCharacters(print(query)) -} - -type TransportedQueryRefOptions = { query: string } & Omit< - WatchQueryOptions, - 'query' -> & { - fetchPolicy?: 'cache-first' - returnPartialData?: false - nextFetchPolicy?: undefined - pollInterval?: undefined - } - -export interface InternalTransportedQueryRef< - // eslint-disable-next-line unused-imports/no-unused-vars - TData = unknown, - // eslint-disable-next-line unused-imports/no-unused-vars - TVariables = unknown, -> { - $__apollo_queryRef: { - options: TransportedQueryRefOptions - stream: ReadableStream - } - _hydrated?: boolean -} - -export function isTransportedQueryRef( - val: any, -): val is InternalTransportedQueryRef { - return val && val.$__apollo_queryRef -} - -export function createTransportedQueryRef( - options: TransportedQueryRefOptions, - stream: ReadableStream, -): InternalTransportedQueryRef { - const encodeStream = new TransformStream({ - transform(chunk, controller) { - controller.enqueue(JSON.stringify(chunk)) - }, - }) - - return { - $__apollo_queryRef: { - options, - stream: stream.pipeThrough(encodeStream), - }, - } -} - -export function reviveTransportedQueryRef( - { $__apollo_queryRef: { options, stream } }: InternalTransportedQueryRef, - apolloClient: ApolloClient, -) { - const decodeStream = new TransformStream({ - transform(chunk, controller) { - if (typeof chunk !== 'string') { - chunk = new TextDecoder().decode(chunk) - } - controller.enqueue(JSON.parse(chunk)) - }, - }) - - const { query: queryString, ...optionsRest } = options - const query = gql(queryString) - return createQueryPreloader(apolloClient)(query, { - ...optionsRest, - fetchPolicy: 'network-only', - context: skipDataTransport( - readFromReadableStream(stream.pipeThrough(decodeStream), { - ...optionsRest.context, - queryDeduplication: true, - }), - ), - }) -} diff --git a/integration-test/react-router/app/root.tsx b/integration-test/react-router/app/root.tsx index 9fc66361..a5683ea1 100644 --- a/integration-test/react-router/app/root.tsx +++ b/integration-test/react-router/app/root.tsx @@ -9,6 +9,7 @@ import { import type { Route } from "./+types/root"; import "./app.css"; +import { ApolloHydrationHelper } from "@apollo/client-integration-react-router"; export const links: Route.LinksFunction = () => [ { rel: "preconnect", href: "https://fonts.googleapis.com" }, @@ -33,7 +34,7 @@ export function Layout({ children }: { children: React.ReactNode }) { - {children} + {children} diff --git a/integration-test/react-router/app/routes/home.tsx b/integration-test/react-router/app/routes/home.tsx index 2ccff234..c806bea2 100644 --- a/integration-test/react-router/app/routes/home.tsx +++ b/integration-test/react-router/app/routes/home.tsx @@ -40,6 +40,7 @@ export const loader = apolloLoader()(({ preloadQuery }) => { export default function Home() { const { postsRef } = useLoaderData(); + const posts = useReadQuery(postsRef).data.posts.data; return ( diff --git a/integration-test/react-router/package.json b/integration-test/react-router/package.json index 6022938d..a25c9179 100644 --- a/integration-test/react-router/package.json +++ b/integration-test/react-router/package.json @@ -10,6 +10,7 @@ }, "dependencies": { "@apollo/client": "^3.11.10", + "@apollo/client-integration-react-router": "*", "@apollo/client-react-streaming": "^0.11.6", "@react-router/node": "^7.0.1", "@react-router/serve": "^7.0.1", diff --git a/integration-test/shared/build-client-integration-react-router.cjs b/integration-test/shared/build-client-integration-react-router.cjs new file mode 100755 index 00000000..5eb6d163 --- /dev/null +++ b/integration-test/shared/build-client-integration-react-router.cjs @@ -0,0 +1,45 @@ +/* +The integration tests need the latest version of the `@apollo/client-react-streaming` package. + +This script can be used with the `exec:` protocol (https://yarnpkg.com/protocol/exec) to build +the package. +*/ + +const { execFileSync } = require("node:child_process"); +const { join, dirname } = require("node:path"); +const monorepoRoot = dirname( + require.resolve("monorepo", { paths: [process.env.INIT_CWD] }) +); +const pathToArchive = join(execEnv.tempDir, "archive.tgz"); + +setTimeout(() => { + execFileSync( + `yarn`, + [ + `workspace`, + `@apollo/client-integration-react-router`, + `pack`, + `--out`, + pathToArchive, + ], + { + stdio: `inherit`, + cwd: monorepoRoot, + } + ); + execFileSync( + `tar`, + [ + `-x`, + `-z`, + `--strip-components=1`, + `-f`, + pathToArchive, + `-C`, + execEnv.buildDir, + ], + { + stdio: `inherit`, + } + ); +}, 3000); diff --git a/integration-test/shared/build-experimental-nextjs-app-support.cjs b/integration-test/shared/build-experimental-nextjs-app-support.cjs index 7ae757c8..acaf2512 100644 --- a/integration-test/shared/build-experimental-nextjs-app-support.cjs +++ b/integration-test/shared/build-experimental-nextjs-app-support.cjs @@ -13,37 +13,43 @@ const monorepoRoot = dirname( ); const pathToArchive = join(execEnv.tempDir, "archive.tgz"); -execFileSync(`yarn`, [`workspace`, `@apollo/client-react-streaming`, `build`], { - stdio: `inherit`, - cwd: monorepoRoot, -}); +setTimeout(() => { + execFileSync( + `yarn`, + [`workspace`, `@apollo/client-react-streaming`, `build`], + { + stdio: `inherit`, + cwd: monorepoRoot, + } + ); -execFileSync( - `yarn`, - [ - `workspace`, - `@apollo/experimental-nextjs-app-support`, - `pack`, - `--out`, - pathToArchive, - ], - { - stdio: `inherit`, - cwd: monorepoRoot, - } -); -execFileSync( - `tar`, - [ - `-x`, - `-z`, - `--strip-components=1`, - `-f`, - pathToArchive, - `-C`, - execEnv.buildDir, - ], - { - stdio: `inherit`, - } -); + execFileSync( + `yarn`, + [ + `workspace`, + `@apollo/experimental-nextjs-app-support`, + `pack`, + `--out`, + pathToArchive, + ], + { + stdio: `inherit`, + cwd: monorepoRoot, + } + ); + execFileSync( + `tar`, + [ + `-x`, + `-z`, + `--strip-components=1`, + `-f`, + pathToArchive, + `-C`, + execEnv.buildDir, + ], + { + stdio: `inherit`, + } + ); +}, 3000); diff --git a/integration-test/yarn.lock b/integration-test/yarn.lock index 6d1bb5fd..78a24e9c 100644 --- a/integration-test/yarn.lock +++ b/integration-test/yarn.lock @@ -38,8 +38,20 @@ __metadata: languageName: node linkType: hard +"@apollo/client-integration-react-router@exec:./shared/build-client-integration-react-router.cjs::locator=%40integration-test%2Froot%40workspace%3A.": + version: 0.11.5 + resolution: "@apollo/client-integration-react-router@exec:./shared/build-client-integration-react-router.cjs#./shared/build-client-integration-react-router.cjs::hash=b41c48&locator=%40integration-test%2Froot%40workspace%3A." + dependencies: + "@apollo/client-react-streaming": "npm:0.11.5" + peerDependencies: + react: ^19 + react-router: ^7.0.2 + checksum: 10/f4a99fd74eb11f04425c3522b7b61ecd2859272c7046113fe7fa84dc444a8ba12b16f0444be15f3cf28e7d16aeb738a3857647803c61203003a6051524dfa912 + languageName: node + linkType: hard + "@apollo/client-react-streaming@exec:./shared/build-client-react-streaming.cjs::locator=%40integration-test%2Froot%40workspace%3A.": - version: 0.11.6 + version: 0.11.7 resolution: "@apollo/client-react-streaming@exec:./shared/build-client-react-streaming.cjs#./shared/build-client-react-streaming.cjs::hash=48b117&locator=%40integration-test%2Froot%40workspace%3A." dependencies: ts-invariant: "npm:^0.10.3" @@ -88,15 +100,15 @@ __metadata: linkType: hard "@apollo/experimental-nextjs-app-support@exec:./shared/build-experimental-nextjs-app-support.cjs::locator=%40integration-test%2Froot%40workspace%3A.": - version: 0.11.6 - resolution: "@apollo/experimental-nextjs-app-support@exec:./shared/build-experimental-nextjs-app-support.cjs#./shared/build-experimental-nextjs-app-support.cjs::hash=fd83cc&locator=%40integration-test%2Froot%40workspace%3A." + version: 0.11.7 + resolution: "@apollo/experimental-nextjs-app-support@exec:./shared/build-experimental-nextjs-app-support.cjs#./shared/build-experimental-nextjs-app-support.cjs::hash=fa2496&locator=%40integration-test%2Froot%40workspace%3A." dependencies: - "@apollo/client-react-streaming": "npm:0.11.6" + "@apollo/client-react-streaming": "npm:0.11.7" peerDependencies: "@apollo/client": ^3.10.4 next: ^13.4.1 || ^14.0.0 || ^15.0.0-rc.0 react: ^18 || >=19.0.0-rc - checksum: 10/505b723bac0f3a7f15287ea32fab9f2e8c0cd567149abf11d750855f8a9bfc0aa26e44179ad10c32f7d162ad86318717032413ef8e1a25385185178e022588fa + checksum: 10/ab92be4c933fb08593b00937628b94547cc9e13bfeb008c8dc9e58fc22ef63e1b9601712fd15c00f257b6af05d756087f040281d7f98530e44541378e8db830b languageName: node linkType: hard @@ -8898,6 +8910,7 @@ __metadata: resolution: "react-router@workspace:react-router" dependencies: "@apollo/client": "npm:^3.11.10" + "@apollo/client-integration-react-router": "npm:*" "@apollo/client-react-streaming": "npm:^0.11.6" "@react-router/dev": "npm:^7.0.1" "@react-router/node": "npm:^7.0.1" diff --git a/packages/react-router/LICENSE.md b/packages/react-router/LICENSE.md new file mode 100644 index 00000000..9004ce5b --- /dev/null +++ b/packages/react-router/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2024 Apollo Graph, Inc. (Formerly Meteor Development Group, Inc.) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/react-router/README.md b/packages/react-router/README.md new file mode 100644 index 00000000..1333ed77 --- /dev/null +++ b/packages/react-router/README.md @@ -0,0 +1 @@ +TODO diff --git a/packages/react-router/api-extractor.json b/packages/react-router/api-extractor.json new file mode 100644 index 00000000..e4230a47 --- /dev/null +++ b/packages/react-router/api-extractor.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "../../api-extractor.json", + "mainEntryPointFilePath": "./src/index.ts", + "bundledPackages": [ + "@apollo/client-react-streaming", + "@apollo/client-integration-react-router" + ], + "compiler": { + "tsconfigFilePath": "./tsconfig.json", + "skipLibCheck": true + } +} diff --git a/packages/react-router/package-shape.json b/packages/react-router/package-shape.json new file mode 100644 index 00000000..b0a077fe --- /dev/null +++ b/packages/react-router/package-shape.json @@ -0,0 +1,16 @@ +{ + "@apollo/client-integration-react-router": { + "browser": [ + "ApolloClient", + "ApolloHydrationHelper", + "createApolloLoaderHandler", + "built_for_browser" + ], + "node": [ + "ApolloClient", + "ApolloHydrationHelper", + "createApolloLoaderHandler", + "built_for_browser" + ] + } +} diff --git a/packages/react-router/package.json b/packages/react-router/package.json new file mode 100644 index 00000000..8ebc49bc --- /dev/null +++ b/packages/react-router/package.json @@ -0,0 +1,106 @@ +{ + "name": "@apollo/client-integration-react-router", + "version": "0.11.5", + "repository": { + "url": "git+https://github.com/apollographql/apollo-client-nextjs" + }, + "keywords": [ + "apollo", + "react-router", + "apollo-client", + "graphql", + "ssr" + ], + "type": "module", + "imports": { + "#bundled": { + "require": { + "types": "./dist/combined.d.cts", + "react-server": "./dist/index.rsc.cjs", + "browser": "./dist/index.browser.cjs", + "node": "./dist/index.ssr.cjs" + }, + "import": { + "types": "./dist/combined.d.ts", + "react-server": "./dist/index.rsc.js", + "browser": "./dist/index.browser.js", + "node": "./dist/index.ssr.js" + } + } + }, + "exports": { + ".": { + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + }, + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "./package.json": "./package.json" + }, + "typings": "./dist/index.d.ts", + "author": "packages@apollographql.com", + "license": "MIT", + "files": [ + "dist/", + "package.json", + "LICENSE.md", + "README.md" + ], + "scripts": { + "build": "rimraf dist; tsup", + "test": "concurrently -c auto \"yarn:test:*(!base) $@\"", + "test:base": "TSX_TSCONFIG_PATH=./tsconfig.tests.json node --import tsx/esm --no-warnings --test \"$@\" src/**/*.test.(ts|tsx)", + "test:ssr": "NODE_OPTIONS=\"${NODE_OPTIONS:-} --conditions=node\" yarn run test:base", + "test:browser": "NODE_OPTIONS=\"${NODE_OPTIONS:-} --conditions=browser\" yarn run test:base", + "test:rsc": "NODE_OPTIONS=\"${NODE_OPTIONS:-} --conditions=react-server\" yarn run test:base", + "prepack": "yarn build", + "prepublishOnly": "yarn pack -o attw.tgz && attw attw.tgz && rm attw.tgz && yarn run test", + "test-bundle": "yarn test-bundle:attw && yarn test-bundle:package && yarn test-bundle:publint && yarn test-bundle:shape", + "test-bundle:attw": "attw --pack .", + "test-bundle:package": "yarn workspace monorepo verify-package-json $PWD/package.json", + "test-bundle:publint": "publint --strict", + "test-bundle:shape": "yarn workspace monorepo verify-package-shape $PWD/package-shape.json", + "bundle-info": "yarn test-bundle --format json | jq '.analysis.entrypoints|to_entries|map({key:.key,value:.value.resolutions|to_entries|map({key:.key,value:.value.resolution.fileName })|from_entries})|from_entries'", + "lint": "eslint --ext .ts,.tsx ." + }, + "devDependencies": { + "@apollo/client": "3.10.4", + "@apollo/client-react-streaming": "workspace:*", + "@arethetypeswrong/cli": "0.15.3", + "@internal/test-utils": "workspace:^", + "@microsoft/api-extractor": "7.43.2", + "@testing-library/dom": "^10.4.0", + "@testing-library/react": "^16.1.0", + "@total-typescript/shoehorn": "0.1.2", + "@tsconfig/recommended": "1.0.6", + "@types/node": "20.12.11", + "@types/react": "^19.0.0", + "concurrently": "8.2.2", + "eslint": "8.57.0", + "glob": "10.3.12", + "global-jsdom": "24.0.0", + "globstar": "1.0.0", + "graphql": "16.8.1", + "jsdom": "24.0.0", + "publint": "0.2.7", + "react": "^19.0.0", + "react-router": "^7.0.2", + "rimraf": "5.0.5", + "ts-node": "10.9.2", + "tsup": "8.0.2", + "tsx": "4.7.1", + "typescript": "5.4.5", + "vitest": "1.6.0" + }, + "peerDependencies": { + "react": "^19", + "react-router": "^7.0.2" + }, + "dependencies": { + "@apollo/client-react-streaming": "0.11.5" + } +} diff --git a/integration-test/react-router/app/apollo/ApolloClient.tsx b/packages/react-router/src/ApolloClient.tsx similarity index 100% rename from integration-test/react-router/app/apollo/ApolloClient.tsx rename to packages/react-router/src/ApolloClient.tsx diff --git a/integration-test/react-router/app/apollo/ApolloHydrationHelper.tsx b/packages/react-router/src/ApolloHydrationHelper.tsx similarity index 60% rename from integration-test/react-router/app/apollo/ApolloHydrationHelper.tsx rename to packages/react-router/src/ApolloHydrationHelper.tsx index b88e2c45..b4fd7aa7 100644 --- a/integration-test/react-router/app/apollo/ApolloHydrationHelper.tsx +++ b/packages/react-router/src/ApolloHydrationHelper.tsx @@ -1,25 +1,24 @@ import { useApolloClient } from "@apollo/client/index.js"; -import { useMemo, useState } from "react"; +import * as React from "react"; import { useMatches } from "react-router"; import { isTransportedQueryRef, reviveTransportedQueryRef, -} from "./createQueryPreloader"; +} from "@apollo/client-react-streaming"; export function ApolloHydrationHelper(props: { children: React.ReactNode }) { - const [hydrated] = useState(new WeakSet()); + const [hydrated] = React.useState(new WeakSet()); const client = useApolloClient(); const matches = useMatches(); - useMemo(() => { + React.useMemo(() => { for (const match of matches) { const data = match.data; if (!data || hydrated.has(data)) continue; hydrated.add(data); - JSON.stringify(match.data, (key, value) => { - if (isTransportedQueryRef(value) && !value._hydrated) { - value._hydrated = true; - Object.assign(value, reviveTransportedQueryRef(value, client)); + JSON.stringify(match.data, (_key, value) => { + if (isTransportedQueryRef(value)) { + reviveTransportedQueryRef(value, client); } return value; }); diff --git a/packages/react-router/src/index.ts b/packages/react-router/src/index.ts new file mode 100644 index 00000000..15c9e897 --- /dev/null +++ b/packages/react-router/src/index.ts @@ -0,0 +1,3 @@ +export { ApolloClient } from "./ApolloClient.js"; +export { ApolloHydrationHelper } from "./ApolloHydrationHelper.js"; +export { createApolloLoaderHandler } from "./preloader.js"; diff --git a/integration-test/react-router/app/apollo/preloader.tsx b/packages/react-router/src/preloader.tsx similarity index 72% rename from integration-test/react-router/app/apollo/preloader.tsx rename to packages/react-router/src/preloader.tsx index b72f0a50..b03dce59 100644 --- a/integration-test/react-router/app/apollo/preloader.tsx +++ b/packages/react-router/src/preloader.tsx @@ -1,9 +1,9 @@ import type { CreateServerLoaderArgs } from "react-router/route-module"; -import type { ApolloClient } from "./ApolloClient"; +import type { ApolloClient } from "./ApolloClient.js"; import type { PreloadedQueryRef, QueryRef } from "@apollo/client/index.js"; -import { type PreloadQueryFunction } from "@apollo/client/index.js"; -import { createTransportedQueryPreloader } from "./createQueryPreloader"; -// @ts-ignore waiting for https://github.com/remix-run/react-router/pull/12264 +import type { PreloadTransportedQueryFunction } from "@apollo/client-react-streaming"; +import { createTransportedQueryPreloader } from "@apollo/client-react-streaming"; +// @ts-expect-error waiting for https://github.com/remix-run/react-router/pull/12264 import type { SerializesTo } from "react-router/route-module"; type MarkedForSerialization = @@ -16,7 +16,7 @@ type ApolloLoader = >() => < >( loader: ( args: LoaderArgs & { - preloadQuery: PreloadQueryFunction; + preloadQuery: PreloadTransportedQueryFunction; } ) => ReturnValue ) => (args: LoaderArgs) => MarkedForSerialization; diff --git a/packages/react-router/tsconfig.json b/packages/react-router/tsconfig.json new file mode 100644 index 00000000..3b9fb3ff --- /dev/null +++ b/packages/react-router/tsconfig.json @@ -0,0 +1,27 @@ +{ + "extends": "@tsconfig/recommended/tsconfig.json", + "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", + "target": "esnext", + "rootDir": "src", + "outDir": "dist", + "declaration": true, + "sourceMap": true, + "jsx": "react", + "declarationMap": true, + "types": [ + "react/canary", + "node" + ], + "esModuleInterop": true, + "paths": { + "@apollo/client-integration-react-router": [ + "./src/combined.ts" + ] + } + }, + "include": [ + "src" + ] +} \ No newline at end of file diff --git a/packages/react-router/tsconfig.tests.json b/packages/react-router/tsconfig.tests.json new file mode 100644 index 00000000..b3edf69b --- /dev/null +++ b/packages/react-router/tsconfig.tests.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "esModuleInterop": false, + "paths": {} + }, + "include": ["src"] +} diff --git a/packages/react-router/tsup.config.ts b/packages/react-router/tsup.config.ts new file mode 100644 index 00000000..d1b555fa --- /dev/null +++ b/packages/react-router/tsup.config.ts @@ -0,0 +1,67 @@ +import type { Options } from "tsup"; +import { defineConfig } from "tsup"; +import type { Plugin } from "esbuild"; + +export default defineConfig((options) => { + const defaults: Options = { + splitting: false, + sourcemap: true, + format: ["cjs", "esm"], + target: "node18", + dts: true, + treeshake: !options.watch, + outDir: "dist/", + external: [ + "@apollo/client-react-streaming", + "@apollo/client-react-streaming/manual-transport", + "@apollo/client-integration-react-router", + "react", + "rehackt", + ], + noExternal: ["@apollo/client"], // will be handled by `acModuleImports` + esbuildPlugins: [acModuleImports], + }; + + function entry( + env: "browser" | "ssr" | "rsc" | "other", + input: string, + output: string + ): Options { + return { + ...defaults, + env: { + REACT_ENV: env, + }, + target: + env === "browser" + ? ["chrome109", "firefox115", "safari16", "edge119", "ios15"] + : defaults.target, + entry: { + [output]: input, + }, + footer(ctx) { + return { + js: + ctx.format === "esm" + ? `export const built_for_${env} = true;` + : `exports.built_for_${env} = true;`, + }; + }, + }; + } + + return [entry("browser", "src/index.ts", "index")]; +}); + +const acModuleImports: Plugin = { + name: "replace-ac-module-imports", + setup(build) { + build.onResolve({ filter: /^@apollo\/client/ }, async (args) => { + if (build.initialOptions.define["TSUP_FORMAT"] === '"cjs"') { + // remove trailing `/index.js` in CommonJS builds + return { path: args.path.replace(/\/index.js$/, ""), external: true }; + } + return { path: args.path, external: true }; + }); + }, +}; From 30a154b3143491a247e1f7d732a7c675ff6fcf4d Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Mon, 16 Dec 2024 16:35:14 +0100 Subject: [PATCH 11/26] update react-router --- integration-test/react-router/package.json | 2 +- integration-test/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/integration-test/react-router/package.json b/integration-test/react-router/package.json index a25c9179..86f93d30 100644 --- a/integration-test/react-router/package.json +++ b/integration-test/react-router/package.json @@ -17,7 +17,7 @@ "isbot": "^5.1.17", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-router": "^7.0.1" + "react-router": "^7.0.2" }, "devDependencies": { "@react-router/dev": "^7.0.1", diff --git a/integration-test/yarn.lock b/integration-test/yarn.lock index 78a24e9c..b896b5c1 100644 --- a/integration-test/yarn.lock +++ b/integration-test/yarn.lock @@ -8887,9 +8887,9 @@ __metadata: languageName: node linkType: hard -"react-router@npm:^7.0.1": - version: 7.0.1 - resolution: "react-router@npm:7.0.1" +"react-router@npm:^7.0.2": + version: 7.0.2 + resolution: "react-router@npm:7.0.2" dependencies: "@types/cookie": "npm:^0.6.0" cookie: "npm:^1.0.1" @@ -8901,7 +8901,7 @@ __metadata: peerDependenciesMeta: react-dom: optional: true - checksum: 10/f41ee8b496c70f625112b0ade9e11575d8ef344e672704425db2fe4fb02ace66cb8aeb6fce56745dda85839fb589446fc5604f30e7e7860fb85f2eeb83216df5 + checksum: 10/f8bf5f7810388d4da81444d5e816135306aadd0340a26d645eb171e2b4c4a6d7f5a810f1d27e25ae0f006b949f7cf66fcf399f2af79f48341752a6651b2b30cb languageName: node linkType: hard @@ -8923,7 +8923,7 @@ __metadata: postcss: "npm:^8.4.49" react: "npm:^18.3.1" react-dom: "npm:^18.3.1" - react-router: "npm:^7.0.1" + react-router: "npm:^7.0.2" tailwindcss: "npm:^3.4.15" typescript: "npm:^5.6.3" vite: "npm:^5.4.11" From 13a3c39925baae152b80cf492de6f48a07f33c2a Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Mon, 16 Dec 2024 16:42:13 +0100 Subject: [PATCH 12/26] working --- integration-test/package.json | 3 ++- integration-test/yarn.lock | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/integration-test/package.json b/integration-test/package.json index 649ec7e7..b913de14 100644 --- a/integration-test/package.json +++ b/integration-test/package.json @@ -5,7 +5,8 @@ "@apollo/client-react-streaming": "exec:./shared/build-client-react-streaming.cjs", "@apollo/experimental-nextjs-app-support": "exec:./shared/build-experimental-nextjs-app-support.cjs", "@apollo/client-integration-react-router": "exec:./shared/build-client-integration-react-router.cjs", - "graphql": "17.0.0-alpha.2" + "graphql": "17.0.0-alpha.2", + "turbo-stream": "npm:@phryneas/turbo-stream@2.4.1-pr.51.1.3fa62cb" }, "workspaces": [ "*" diff --git a/integration-test/yarn.lock b/integration-test/yarn.lock index b896b5c1..fa8a3e88 100644 --- a/integration-test/yarn.lock +++ b/integration-test/yarn.lock @@ -10227,10 +10227,10 @@ __metadata: languageName: node linkType: hard -"turbo-stream@npm:2.4.0": - version: 2.4.0 - resolution: "turbo-stream@npm:2.4.0" - checksum: 10/7079bbc82b58340f783144cd669cc7e598288523103a8d68bb8a4c6bb28c64eccb71d389b33aab07788d3a9030638b795709e15cb8486f722b1cdac59cb58afc +"turbo-stream@npm:@phryneas/turbo-stream@2.4.1-pr.51.1.3fa62cb": + version: 2.4.1-pr.51.1.3fa62cb + resolution: "@phryneas/turbo-stream@npm:2.4.1-pr.51.1.3fa62cb" + checksum: 10/b3e3bbec3374afc82de9d4f29e955eaec2037cf7d6bff044ea9a256d9615d977f841daa935306b0c9031cc8552d1b8efd27c5084f6a43babd36fc1323af3c08e languageName: node linkType: hard From 8318d8506965d2a7d4e2baa300fd3211aac5f621 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Mon, 16 Dec 2024 17:00:28 +0100 Subject: [PATCH 13/26] patch PR in --- .../react-router-npm-7.0.2-b96f2bd13c.patch | 94 +++++++++++++++++++ .../react-router-npm-7.0.2-b96f2bd13c.patch | 94 +++++++++++++++++++ integration-test/react-router/package.json | 2 +- integration-test/yarn.lock | 22 ++++- packages/react-router/package.json | 2 +- yarn.lock | 22 ++++- 6 files changed, 230 insertions(+), 6 deletions(-) create mode 100644 .yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch create mode 100644 integration-test/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch diff --git a/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch b/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch new file mode 100644 index 00000000..9c3a7fc8 --- /dev/null +++ b/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch @@ -0,0 +1,94 @@ +diff --git a/dist/development/lib/types/route-module.d.mts b/dist/development/lib/types/route-module.d.mts +index c4553062633a6a1352378bfedb2c9dc7eaef94fb..762fd83a1ad06f940ba39c6552bd61cc5c4d1cf1 100644 +--- a/dist/development/lib/types/route-module.d.mts ++++ b/dist/development/lib/types/route-module.d.mts +@@ -1,7 +1,9 @@ + import { av as LinkDescriptor, as as MetaDescriptor, aJ as ServerDataFrom, aK as ClientDataFrom, aL as Func, aM as Equal, aN as Pretty } from '../../route-data-DuV3tXo2.mjs'; + import { A as AppLoadContext } from '../../data-CQbyyGzl.mjs'; + import 'react'; +- ++export type SerializesTo = { ++ $__RR_SerializesTo?: [T]; ++ }; + type IsDefined = Equal extends true ? false : true; + type RouteModule = { + meta?: Func; +diff --git a/dist/development/lib/types/route-module.d.ts b/dist/development/lib/types/route-module.d.ts +index a7b3449b84f7be4e7da9ce82ba6ac3ae3e30d64f..776fdbc13033eb82ce4de2b9026476e87e65c7f7 100644 +--- a/dist/development/lib/types/route-module.d.ts ++++ b/dist/development/lib/types/route-module.d.ts +@@ -1,7 +1,9 @@ + import { av as LinkDescriptor, as as MetaDescriptor, aJ as ServerDataFrom, aK as ClientDataFrom, aL as Func, aM as Equal, aN as Pretty } from '../../route-data-DuV3tXo2.js'; + import { A as AppLoadContext } from '../../data-CQbyyGzl.js'; + import 'react'; +- ++export type SerializesTo = { ++ $__RR_SerializesTo?: [T]; ++ }; + type IsDefined = Equal extends true ? false : true; + type RouteModule = { + meta?: Func; +diff --git a/dist/development/route-data-DuV3tXo2.d.mts b/dist/development/route-data-DuV3tXo2.d.mts +index 53dbfb38b8c2cd09bb944aeb17dd3951f2a157ad..d33adfc7147222f4e283487df804faeb95f2a4c8 100644 +--- a/dist/development/route-data-DuV3tXo2.d.mts ++++ b/dist/development/route-data-DuV3tXo2.d.mts +@@ -1531,8 +1531,10 @@ type Func = (...args: any[]) => unknown; + type Pretty = { + [K in keyof T]: T[K]; + } & {}; +- +-type Serialize = T extends Serializable ? T : T extends (...args: any[]) => unknown ? undefined : T extends Promise ? Promise> : T extends Map ? Map, Serialize> : T extends Set ? Set> : T extends [] ? [] : T extends readonly [infer F, ...infer R] ? [Serialize, ...Serialize] : T extends Array ? Array> : T extends readonly unknown[] ? readonly Serialize[] : T extends Record ? { ++export type SerializesTo = { ++ $__RR_SerializesTo?: [T]; ++ }; ++type Serialize = T extends SerializesTo ? To : T extends Serializable ? T : T extends (...args: any[]) => unknown ? undefined : T extends Promise ? Promise> : T extends Map ? Map, Serialize> : T extends Set ? Set> : T extends [] ? [] : T extends readonly [infer F, ...infer R] ? [Serialize, ...Serialize] : T extends Array ? Array> : T extends readonly unknown[] ? readonly Serialize[] : T extends Record ? { + [K in keyof T]: Serialize; + } : undefined; + type VoidToUndefined = Equal extends true ? undefined : T; +diff --git a/dist/development/route-data-DuV3tXo2.d.ts b/dist/development/route-data-DuV3tXo2.d.ts +index 53dbfb38b8c2cd09bb944aeb17dd3951f2a157ad..d33adfc7147222f4e283487df804faeb95f2a4c8 100644 +--- a/dist/development/route-data-DuV3tXo2.d.ts ++++ b/dist/development/route-data-DuV3tXo2.d.ts +@@ -1531,8 +1531,10 @@ type Func = (...args: any[]) => unknown; + type Pretty = { + [K in keyof T]: T[K]; + } & {}; +- +-type Serialize = T extends Serializable ? T : T extends (...args: any[]) => unknown ? undefined : T extends Promise ? Promise> : T extends Map ? Map, Serialize> : T extends Set ? Set> : T extends [] ? [] : T extends readonly [infer F, ...infer R] ? [Serialize, ...Serialize] : T extends Array ? Array> : T extends readonly unknown[] ? readonly Serialize[] : T extends Record ? { ++export type SerializesTo = { ++ $__RR_SerializesTo?: [T]; ++ }; ++type Serialize = T extends SerializesTo ? To : T extends Serializable ? T : T extends (...args: any[]) => unknown ? undefined : T extends Promise ? Promise> : T extends Map ? Map, Serialize> : T extends Set ? Set> : T extends [] ? [] : T extends readonly [infer F, ...infer R] ? [Serialize, ...Serialize] : T extends Array ? Array> : T extends readonly unknown[] ? readonly Serialize[] : T extends Record ? { + [K in keyof T]: Serialize; + } : undefined; + type VoidToUndefined = Equal extends true ? undefined : T; +diff --git a/dist/production/lib/types/route-module.d.mts b/dist/production/lib/types/route-module.d.mts +index c4553062633a6a1352378bfedb2c9dc7eaef94fb..762fd83a1ad06f940ba39c6552bd61cc5c4d1cf1 100644 +--- a/dist/production/lib/types/route-module.d.mts ++++ b/dist/production/lib/types/route-module.d.mts +@@ -1,7 +1,9 @@ + import { av as LinkDescriptor, as as MetaDescriptor, aJ as ServerDataFrom, aK as ClientDataFrom, aL as Func, aM as Equal, aN as Pretty } from '../../route-data-DuV3tXo2.mjs'; + import { A as AppLoadContext } from '../../data-CQbyyGzl.mjs'; + import 'react'; +- ++export type SerializesTo = { ++ $__RR_SerializesTo?: [T]; ++ }; + type IsDefined = Equal extends true ? false : true; + type RouteModule = { + meta?: Func; +diff --git a/dist/production/lib/types/route-module.d.ts b/dist/production/lib/types/route-module.d.ts +index a7b3449b84f7be4e7da9ce82ba6ac3ae3e30d64f..776fdbc13033eb82ce4de2b9026476e87e65c7f7 100644 +--- a/dist/production/lib/types/route-module.d.ts ++++ b/dist/production/lib/types/route-module.d.ts +@@ -1,7 +1,9 @@ + import { av as LinkDescriptor, as as MetaDescriptor, aJ as ServerDataFrom, aK as ClientDataFrom, aL as Func, aM as Equal, aN as Pretty } from '../../route-data-DuV3tXo2.js'; + import { A as AppLoadContext } from '../../data-CQbyyGzl.js'; + import 'react'; +- ++export type SerializesTo = { ++ $__RR_SerializesTo?: [T]; ++ }; + type IsDefined = Equal extends true ? false : true; + type RouteModule = { + meta?: Func; diff --git a/integration-test/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch b/integration-test/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch new file mode 100644 index 00000000..9c3a7fc8 --- /dev/null +++ b/integration-test/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch @@ -0,0 +1,94 @@ +diff --git a/dist/development/lib/types/route-module.d.mts b/dist/development/lib/types/route-module.d.mts +index c4553062633a6a1352378bfedb2c9dc7eaef94fb..762fd83a1ad06f940ba39c6552bd61cc5c4d1cf1 100644 +--- a/dist/development/lib/types/route-module.d.mts ++++ b/dist/development/lib/types/route-module.d.mts +@@ -1,7 +1,9 @@ + import { av as LinkDescriptor, as as MetaDescriptor, aJ as ServerDataFrom, aK as ClientDataFrom, aL as Func, aM as Equal, aN as Pretty } from '../../route-data-DuV3tXo2.mjs'; + import { A as AppLoadContext } from '../../data-CQbyyGzl.mjs'; + import 'react'; +- ++export type SerializesTo = { ++ $__RR_SerializesTo?: [T]; ++ }; + type IsDefined = Equal extends true ? false : true; + type RouteModule = { + meta?: Func; +diff --git a/dist/development/lib/types/route-module.d.ts b/dist/development/lib/types/route-module.d.ts +index a7b3449b84f7be4e7da9ce82ba6ac3ae3e30d64f..776fdbc13033eb82ce4de2b9026476e87e65c7f7 100644 +--- a/dist/development/lib/types/route-module.d.ts ++++ b/dist/development/lib/types/route-module.d.ts +@@ -1,7 +1,9 @@ + import { av as LinkDescriptor, as as MetaDescriptor, aJ as ServerDataFrom, aK as ClientDataFrom, aL as Func, aM as Equal, aN as Pretty } from '../../route-data-DuV3tXo2.js'; + import { A as AppLoadContext } from '../../data-CQbyyGzl.js'; + import 'react'; +- ++export type SerializesTo = { ++ $__RR_SerializesTo?: [T]; ++ }; + type IsDefined = Equal extends true ? false : true; + type RouteModule = { + meta?: Func; +diff --git a/dist/development/route-data-DuV3tXo2.d.mts b/dist/development/route-data-DuV3tXo2.d.mts +index 53dbfb38b8c2cd09bb944aeb17dd3951f2a157ad..d33adfc7147222f4e283487df804faeb95f2a4c8 100644 +--- a/dist/development/route-data-DuV3tXo2.d.mts ++++ b/dist/development/route-data-DuV3tXo2.d.mts +@@ -1531,8 +1531,10 @@ type Func = (...args: any[]) => unknown; + type Pretty = { + [K in keyof T]: T[K]; + } & {}; +- +-type Serialize = T extends Serializable ? T : T extends (...args: any[]) => unknown ? undefined : T extends Promise ? Promise> : T extends Map ? Map, Serialize> : T extends Set ? Set> : T extends [] ? [] : T extends readonly [infer F, ...infer R] ? [Serialize, ...Serialize] : T extends Array ? Array> : T extends readonly unknown[] ? readonly Serialize[] : T extends Record ? { ++export type SerializesTo = { ++ $__RR_SerializesTo?: [T]; ++ }; ++type Serialize = T extends SerializesTo ? To : T extends Serializable ? T : T extends (...args: any[]) => unknown ? undefined : T extends Promise ? Promise> : T extends Map ? Map, Serialize> : T extends Set ? Set> : T extends [] ? [] : T extends readonly [infer F, ...infer R] ? [Serialize, ...Serialize] : T extends Array ? Array> : T extends readonly unknown[] ? readonly Serialize[] : T extends Record ? { + [K in keyof T]: Serialize; + } : undefined; + type VoidToUndefined = Equal extends true ? undefined : T; +diff --git a/dist/development/route-data-DuV3tXo2.d.ts b/dist/development/route-data-DuV3tXo2.d.ts +index 53dbfb38b8c2cd09bb944aeb17dd3951f2a157ad..d33adfc7147222f4e283487df804faeb95f2a4c8 100644 +--- a/dist/development/route-data-DuV3tXo2.d.ts ++++ b/dist/development/route-data-DuV3tXo2.d.ts +@@ -1531,8 +1531,10 @@ type Func = (...args: any[]) => unknown; + type Pretty = { + [K in keyof T]: T[K]; + } & {}; +- +-type Serialize = T extends Serializable ? T : T extends (...args: any[]) => unknown ? undefined : T extends Promise ? Promise> : T extends Map ? Map, Serialize> : T extends Set ? Set> : T extends [] ? [] : T extends readonly [infer F, ...infer R] ? [Serialize, ...Serialize] : T extends Array ? Array> : T extends readonly unknown[] ? readonly Serialize[] : T extends Record ? { ++export type SerializesTo = { ++ $__RR_SerializesTo?: [T]; ++ }; ++type Serialize = T extends SerializesTo ? To : T extends Serializable ? T : T extends (...args: any[]) => unknown ? undefined : T extends Promise ? Promise> : T extends Map ? Map, Serialize> : T extends Set ? Set> : T extends [] ? [] : T extends readonly [infer F, ...infer R] ? [Serialize, ...Serialize] : T extends Array ? Array> : T extends readonly unknown[] ? readonly Serialize[] : T extends Record ? { + [K in keyof T]: Serialize; + } : undefined; + type VoidToUndefined = Equal extends true ? undefined : T; +diff --git a/dist/production/lib/types/route-module.d.mts b/dist/production/lib/types/route-module.d.mts +index c4553062633a6a1352378bfedb2c9dc7eaef94fb..762fd83a1ad06f940ba39c6552bd61cc5c4d1cf1 100644 +--- a/dist/production/lib/types/route-module.d.mts ++++ b/dist/production/lib/types/route-module.d.mts +@@ -1,7 +1,9 @@ + import { av as LinkDescriptor, as as MetaDescriptor, aJ as ServerDataFrom, aK as ClientDataFrom, aL as Func, aM as Equal, aN as Pretty } from '../../route-data-DuV3tXo2.mjs'; + import { A as AppLoadContext } from '../../data-CQbyyGzl.mjs'; + import 'react'; +- ++export type SerializesTo = { ++ $__RR_SerializesTo?: [T]; ++ }; + type IsDefined = Equal extends true ? false : true; + type RouteModule = { + meta?: Func; +diff --git a/dist/production/lib/types/route-module.d.ts b/dist/production/lib/types/route-module.d.ts +index a7b3449b84f7be4e7da9ce82ba6ac3ae3e30d64f..776fdbc13033eb82ce4de2b9026476e87e65c7f7 100644 +--- a/dist/production/lib/types/route-module.d.ts ++++ b/dist/production/lib/types/route-module.d.ts +@@ -1,7 +1,9 @@ + import { av as LinkDescriptor, as as MetaDescriptor, aJ as ServerDataFrom, aK as ClientDataFrom, aL as Func, aM as Equal, aN as Pretty } from '../../route-data-DuV3tXo2.js'; + import { A as AppLoadContext } from '../../data-CQbyyGzl.js'; + import 'react'; +- ++export type SerializesTo = { ++ $__RR_SerializesTo?: [T]; ++ }; + type IsDefined = Equal extends true ? false : true; + type RouteModule = { + meta?: Func; diff --git a/integration-test/react-router/package.json b/integration-test/react-router/package.json index 86f93d30..591e8715 100644 --- a/integration-test/react-router/package.json +++ b/integration-test/react-router/package.json @@ -17,7 +17,7 @@ "isbot": "^5.1.17", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-router": "^7.0.2" + "react-router": "patch:react-router@npm%3A7.0.2#~/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch" }, "devDependencies": { "@react-router/dev": "^7.0.1", diff --git a/integration-test/yarn.lock b/integration-test/yarn.lock index fa8a3e88..6d311062 100644 --- a/integration-test/yarn.lock +++ b/integration-test/yarn.lock @@ -8887,7 +8887,7 @@ __metadata: languageName: node linkType: hard -"react-router@npm:^7.0.2": +"react-router@npm:7.0.2": version: 7.0.2 resolution: "react-router@npm:7.0.2" dependencies: @@ -8905,6 +8905,24 @@ __metadata: languageName: node linkType: hard +"react-router@patch:react-router@npm%3A7.0.2#~/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch": + version: 7.0.2 + resolution: "react-router@patch:react-router@npm%3A7.0.2#~/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch::version=7.0.2&hash=c518b8" + dependencies: + "@types/cookie": "npm:^0.6.0" + cookie: "npm:^1.0.1" + set-cookie-parser: "npm:^2.6.0" + turbo-stream: "npm:2.4.0" + peerDependencies: + react: ">=18" + react-dom: ">=18" + peerDependenciesMeta: + react-dom: + optional: true + checksum: 10/80a72cad438b52ac86793e381e37285a8b8212cce65fbe9d8e465b55c228b3907688973582bfa19b0fb4f2e0ea76de55b79538b76976980408cd19b3541d8873 + languageName: node + linkType: hard + "react-router@workspace:react-router": version: 0.0.0-use.local resolution: "react-router@workspace:react-router" @@ -8923,7 +8941,7 @@ __metadata: postcss: "npm:^8.4.49" react: "npm:^18.3.1" react-dom: "npm:^18.3.1" - react-router: "npm:^7.0.2" + react-router: "patch:react-router@npm%3A7.0.2#~/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch" tailwindcss: "npm:^3.4.15" typescript: "npm:^5.6.3" vite: "npm:^5.4.11" diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 8ebc49bc..629eb6bc 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -88,7 +88,7 @@ "jsdom": "24.0.0", "publint": "0.2.7", "react": "^19.0.0", - "react-router": "^7.0.2", + "react-router": "patch:react-router@npm%3A7.0.2#~/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch", "rimraf": "5.0.5", "ts-node": "10.9.2", "tsup": "8.0.2", diff --git a/yarn.lock b/yarn.lock index 13605fee..cb027d2d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -69,7 +69,7 @@ __metadata: jsdom: "npm:24.0.0" publint: "npm:0.2.7" react: "npm:^19.0.0" - react-router: "npm:^7.0.2" + react-router: "patch:react-router@npm%3A7.0.2#~/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch" rimraf: "npm:5.0.5" ts-node: "npm:10.9.2" tsup: "npm:8.0.2" @@ -13501,7 +13501,7 @@ __metadata: languageName: node linkType: hard -"react-router@npm:^7.0.2": +"react-router@npm:7.0.2": version: 7.0.2 resolution: "react-router@npm:7.0.2" dependencies: @@ -13519,6 +13519,24 @@ __metadata: languageName: node linkType: hard +"react-router@patch:react-router@npm%3A7.0.2#~/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch": + version: 7.0.2 + resolution: "react-router@patch:react-router@npm%3A7.0.2#~/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch::version=7.0.2&hash=c518b8" + dependencies: + "@types/cookie": "npm:^0.6.0" + cookie: "npm:^1.0.1" + set-cookie-parser: "npm:^2.6.0" + turbo-stream: "npm:2.4.0" + peerDependencies: + react: ">=18" + react-dom: ">=18" + peerDependenciesMeta: + react-dom: + optional: true + checksum: 10/80a72cad438b52ac86793e381e37285a8b8212cce65fbe9d8e465b55c228b3907688973582bfa19b0fb4f2e0ea76de55b79538b76976980408cd19b3541d8873 + languageName: node + linkType: hard + "react-server-dom-webpack@npm:^19.0.0": version: 19.0.0 resolution: "react-server-dom-webpack@npm:19.0.0" From 6f67975a222b876bf78c6ca1e2fd32b7dd7309a0 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Mon, 16 Dec 2024 17:03:55 +0100 Subject: [PATCH 14/26] last adjustments --- .../client-react-streaming/src/transportedQueryRef.ts | 2 +- packages/react-router/src/preloader.tsx | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/client-react-streaming/src/transportedQueryRef.ts b/packages/client-react-streaming/src/transportedQueryRef.ts index 6a39649d..919b9914 100644 --- a/packages/client-react-streaming/src/transportedQueryRef.ts +++ b/packages/client-react-streaming/src/transportedQueryRef.ts @@ -89,7 +89,7 @@ export interface TransportedQueryRef< export interface PreloadTransportedQueryFunction { ( query: DocumentNode | TypedDocumentNode, - options: PreloadTransportedQueryOptions, TData> + options?: PreloadTransportedQueryOptions, TData> ): TransportedQueryRef; } diff --git a/packages/react-router/src/preloader.tsx b/packages/react-router/src/preloader.tsx index b03dce59..812e6705 100644 --- a/packages/react-router/src/preloader.tsx +++ b/packages/react-router/src/preloader.tsx @@ -1,13 +1,16 @@ import type { CreateServerLoaderArgs } from "react-router/route-module"; import type { ApolloClient } from "./ApolloClient.js"; -import type { PreloadedQueryRef, QueryRef } from "@apollo/client/index.js"; -import type { PreloadTransportedQueryFunction } from "@apollo/client-react-streaming"; +import type { QueryRef } from "@apollo/client/index.js"; +import type { + PreloadTransportedQueryFunction, + TransportedQueryRef, +} from "@apollo/client-react-streaming"; import { createTransportedQueryPreloader } from "@apollo/client-react-streaming"; -// @ts-expect-error waiting for https://github.com/remix-run/react-router/pull/12264 +// still requires a patch, waiting for https://github.com/remix-run/react-router/pull/12264 import type { SerializesTo } from "react-router/route-module"; type MarkedForSerialization = - T extends PreloadedQueryRef + T extends TransportedQueryRef ? SerializesTo> : { [K in keyof T]: MarkedForSerialization }; From 2b91422f0446b12d89720ab0077100d9d39d8d7f Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Wed, 18 Dec 2024 15:06:27 +0100 Subject: [PATCH 15/26] clean up template fluff --- integration-test/react-router/app/app.css | 12 --- integration-test/react-router/app/root.tsx | 14 --- .../react-router/app/routes/home.tsx | 14 +-- .../react-router/app/welcome/logo-dark.svg | 23 ----- .../react-router/app/welcome/logo-light.svg | 23 ----- .../react-router/app/welcome/welcome.tsx | 89 ------------------- 6 files changed, 2 insertions(+), 173 deletions(-) delete mode 100644 integration-test/react-router/app/app.css delete mode 100644 integration-test/react-router/app/welcome/logo-dark.svg delete mode 100644 integration-test/react-router/app/welcome/logo-light.svg delete mode 100644 integration-test/react-router/app/welcome/welcome.tsx diff --git a/integration-test/react-router/app/app.css b/integration-test/react-router/app/app.css deleted file mode 100644 index 303fe158..00000000 --- a/integration-test/react-router/app/app.css +++ /dev/null @@ -1,12 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -html, -body { - @apply bg-white dark:bg-gray-950; - - @media (prefers-color-scheme: dark) { - color-scheme: dark; - } -} diff --git a/integration-test/react-router/app/root.tsx b/integration-test/react-router/app/root.tsx index a5683ea1..f8369fa1 100644 --- a/integration-test/react-router/app/root.tsx +++ b/integration-test/react-router/app/root.tsx @@ -8,22 +8,8 @@ import { } from "react-router"; import type { Route } from "./+types/root"; -import "./app.css"; import { ApolloHydrationHelper } from "@apollo/client-integration-react-router"; -export const links: Route.LinksFunction = () => [ - { rel: "preconnect", href: "https://fonts.googleapis.com" }, - { - rel: "preconnect", - href: "https://fonts.gstatic.com", - crossOrigin: "anonymous", - }, - { - rel: "stylesheet", - href: "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap", - }, -]; - export function Layout({ children }: { children: React.ReactNode }) { return ( diff --git a/integration-test/react-router/app/routes/home.tsx b/integration-test/react-router/app/routes/home.tsx index c806bea2..e8540954 100644 --- a/integration-test/react-router/app/routes/home.tsx +++ b/integration-test/react-router/app/routes/home.tsx @@ -1,17 +1,9 @@ import { useLoaderData, type MetaFunction } from "react-router"; import type { Route } from "./+types/home"; -import { Welcome } from "../welcome/welcome"; import type { TypedDocumentNode } from "@apollo/client/index.js"; import { gql, useReadQuery } from "@apollo/client/index.js"; import { apolloLoader } from "~/apollo"; -export const meta: MetaFunction = () => { - return [ - { title: "New React Router App" }, - { name: "description", content: "Welcome to React Router!" }, - ]; -}; - interface Posts { posts: { data: Array<{ @@ -44,8 +36,8 @@ export default function Home() { const posts = useReadQuery(postsRef).data.posts.data; return ( -
-
    +
    +
      {posts.map((post) => { return (
    • @@ -54,8 +46,6 @@ export default function Home() { ); })}
    -
    -
    ); } diff --git a/integration-test/react-router/app/welcome/logo-dark.svg b/integration-test/react-router/app/welcome/logo-dark.svg deleted file mode 100644 index dd820289..00000000 --- a/integration-test/react-router/app/welcome/logo-dark.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/integration-test/react-router/app/welcome/logo-light.svg b/integration-test/react-router/app/welcome/logo-light.svg deleted file mode 100644 index 73284929..00000000 --- a/integration-test/react-router/app/welcome/logo-light.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/integration-test/react-router/app/welcome/welcome.tsx b/integration-test/react-router/app/welcome/welcome.tsx deleted file mode 100644 index 8ac6e1d3..00000000 --- a/integration-test/react-router/app/welcome/welcome.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import logoDark from "./logo-dark.svg"; -import logoLight from "./logo-light.svg"; - -export function Welcome() { - return ( -
    -
    -
    -
    - React Router - React Router -
    -
    -
    - -
    -
    -
    - ); -} - -const resources = [ - { - href: "https://reactrouter.com/docs", - text: "React Router Docs", - icon: ( - - - - ), - }, - { - href: "https://rmx.as/discord", - text: "Join Discord", - icon: ( - - - - ), - }, -]; From 7414a6bd5451c16bd57319fb3bee304572c40806 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Wed, 18 Dec 2024 15:35:46 +0100 Subject: [PATCH 16/26] move `IncrementalSchemaLink` and others to `shared` --- integration-test/nextjs/package.json | 1 + integration-test/nextjs/src/app/cc/ApolloWrapper.tsx | 4 ++-- integration-test/nextjs/src/app/graphql/route.ts | 2 +- integration-test/nextjs/src/app/rsc/client.ts | 4 ++-- .../defer-queryRef-useReadQuery/ClientChild.tsx | 2 +- .../PreloadQuery/defer-queryRef-useReadQuery/page.tsx | 2 +- .../dynamic/PreloadQuery/queryRef-refTest/RefTestChild.tsx | 2 +- .../app/rsc/dynamic/PreloadQuery/queryRef-refTest/page.tsx | 2 +- .../PreloadQuery/queryRef-useReadQuery/ClientChild.tsx | 2 +- .../rsc/dynamic/PreloadQuery/queryRef-useReadQuery/page.tsx | 2 +- .../dynamic/PreloadQuery/useSuspenseQuery/ClientChild.tsx | 2 +- .../app/rsc/dynamic/PreloadQuery/useSuspenseQuery/page.tsx | 2 +- integration-test/nextjs/tsconfig.json | 2 +- .../src/app/graphql => shared}/IncrementalSchemaLink.ts | 0 integration-test/shared/package.json | 6 +++++- .../dynamic/PreloadQuery/shared.tsx => shared/queries.ts} | 2 +- .../{nextjs/src/app/graphql => shared}/schema.ts | 0 integration-test/yarn.lock | 6 +++++- 18 files changed, 26 insertions(+), 17 deletions(-) rename integration-test/{nextjs/src/app/graphql => shared}/IncrementalSchemaLink.ts (100%) rename integration-test/{nextjs/src/app/rsc/dynamic/PreloadQuery/shared.tsx => shared/queries.ts} (93%) rename integration-test/{nextjs/src/app/graphql => shared}/schema.ts (100%) diff --git a/integration-test/nextjs/package.json b/integration-test/nextjs/package.json index 904f0f43..7a0036f9 100644 --- a/integration-test/nextjs/package.json +++ b/integration-test/nextjs/package.json @@ -15,6 +15,7 @@ "@apollo/server": "^4.11.2", "@as-integrations/next": "^3.2.0", "@graphql-tools/schema": "^10.0.0", + "@integration-test/shared": "workspace:^", "@types/node": "20.3.1", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", diff --git a/integration-test/nextjs/src/app/cc/ApolloWrapper.tsx b/integration-test/nextjs/src/app/cc/ApolloWrapper.tsx index 04be669d..c39ee232 100644 --- a/integration-test/nextjs/src/app/cc/ApolloWrapper.tsx +++ b/integration-test/nextjs/src/app/cc/ApolloWrapper.tsx @@ -10,11 +10,11 @@ import { import { loadErrorMessages, loadDevMessages } from "@apollo/client/dev"; import { setVerbosity } from "ts-invariant"; import { delayLink } from "@/shared/delayLink"; -import { schema } from "../graphql/schema"; +import { schema } from "@integration-test/shared/schema"; import { useSSROnlySecret } from "ssr-only-secrets"; import { errorLink } from "../../shared/errorLink"; -import { IncrementalSchemaLink } from "../graphql/IncrementalSchemaLink"; +import { IncrementalSchemaLink } from "@integration-test/shared/IncrementalSchemaLink"; setVerbosity("debug"); loadDevMessages(); diff --git a/integration-test/nextjs/src/app/graphql/route.ts b/integration-test/nextjs/src/app/graphql/route.ts index c977ce7a..5c393abf 100644 --- a/integration-test/nextjs/src/app/graphql/route.ts +++ b/integration-test/nextjs/src/app/graphql/route.ts @@ -1,6 +1,6 @@ import { startServerAndCreateNextHandler } from "@as-integrations/next"; import { ApolloServer } from "@apollo/server"; -import { schema } from "./schema"; +import { schema } from "@integration-test/shared/schema"; const server = new ApolloServer({ schema, diff --git a/integration-test/nextjs/src/app/rsc/client.ts b/integration-test/nextjs/src/app/rsc/client.ts index 63d863db..1e90da7d 100644 --- a/integration-test/nextjs/src/app/rsc/client.ts +++ b/integration-test/nextjs/src/app/rsc/client.ts @@ -9,8 +9,8 @@ import { setVerbosity } from "ts-invariant"; import { delayLink } from "@/shared/delayLink"; import { errorLink } from "@/shared/errorLink"; -import { schema } from "../graphql/schema"; -import { IncrementalSchemaLink } from "../graphql/IncrementalSchemaLink"; +import { schema } from "@integration-test/shared/schema"; +import { IncrementalSchemaLink } from "@integration-test/shared/IncrementalSchemaLink"; setVerbosity("debug"); loadDevMessages(); diff --git a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/defer-queryRef-useReadQuery/ClientChild.tsx b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/defer-queryRef-useReadQuery/ClientChild.tsx index 0655eed3..ebde96e5 100644 --- a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/defer-queryRef-useReadQuery/ClientChild.tsx +++ b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/defer-queryRef-useReadQuery/ClientChild.tsx @@ -5,7 +5,7 @@ import { useQueryRefHandlers, useReadQuery, } from "@apollo/client"; -import { DeferredDynamicProductResult } from "../shared"; +import { DeferredDynamicProductResult } from "@integration-test/shared/queries"; import { TransportedQueryRef } from "@apollo/experimental-nextjs-app-support"; import { useTransition } from "react"; diff --git a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/defer-queryRef-useReadQuery/page.tsx b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/defer-queryRef-useReadQuery/page.tsx index 1ca54c0e..3d538bdf 100644 --- a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/defer-queryRef-useReadQuery/page.tsx +++ b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/defer-queryRef-useReadQuery/page.tsx @@ -1,6 +1,6 @@ import { ApolloWrapper } from "@/app/cc/ApolloWrapper"; import { ClientChild } from "./ClientChild"; -import { DEFERRED_QUERY } from "../shared"; +import { DEFERRED_QUERY } from "@integration-test/shared/queries"; export const dynamic = "force-dynamic"; import { PreloadQuery } from "../../../client"; diff --git a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-refTest/RefTestChild.tsx b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-refTest/RefTestChild.tsx index 5f3707c0..37365db0 100644 --- a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-refTest/RefTestChild.tsx +++ b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-refTest/RefTestChild.tsx @@ -1,7 +1,7 @@ "use client"; import { QueryRef, useQueryRefHandlers } from "@apollo/client"; -import { DynamicProductResult } from "../shared"; +import { DynamicProductResult } from "@integration-test/shared/queries"; import { useEffect, useState } from "react"; import { InternalQueryReference, diff --git a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-refTest/page.tsx b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-refTest/page.tsx index 9315e936..0d933a78 100644 --- a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-refTest/page.tsx +++ b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-refTest/page.tsx @@ -1,4 +1,4 @@ -import { QUERY } from "../shared"; +import { QUERY } from "@integration-test/shared/queries"; import { Suspense } from "react"; import { PreloadQuery } from "@/app/rsc/client"; import { RefTestChild } from "./RefTestChild"; diff --git a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-useReadQuery/ClientChild.tsx b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-useReadQuery/ClientChild.tsx index 96ff036d..45281e26 100644 --- a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-useReadQuery/ClientChild.tsx +++ b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-useReadQuery/ClientChild.tsx @@ -1,7 +1,7 @@ "use client"; import { useQueryRefHandlers, useReadQuery } from "@apollo/client"; -import { DynamicProductResult } from "../shared"; +import { DynamicProductResult } from "@integration-test/shared/queries"; import { TransportedQueryRef } from "@apollo/experimental-nextjs-app-support"; export function ClientChild({ diff --git a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-useReadQuery/page.tsx b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-useReadQuery/page.tsx index c89e7fe4..51db0e3a 100644 --- a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-useReadQuery/page.tsx +++ b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/queryRef-useReadQuery/page.tsx @@ -1,6 +1,6 @@ import { ApolloWrapper } from "@/app/cc/ApolloWrapper"; import { ClientChild } from "./ClientChild"; -import { QUERY } from "../shared"; +import { QUERY } from "@integration-test/shared/queries"; export const dynamic = "force-dynamic"; import { PreloadQuery } from "../../../client"; diff --git a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/useSuspenseQuery/ClientChild.tsx b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/useSuspenseQuery/ClientChild.tsx index 192a073c..fe84a075 100644 --- a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/useSuspenseQuery/ClientChild.tsx +++ b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/useSuspenseQuery/ClientChild.tsx @@ -1,7 +1,7 @@ "use client"; import { useSuspenseQuery } from "@apollo/client"; -import { QUERY } from "../shared"; +import { QUERY } from "@integration-test/shared/queries"; export function ClientChild() { const { data } = useSuspenseQuery(QUERY); diff --git a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/useSuspenseQuery/page.tsx b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/useSuspenseQuery/page.tsx index 6c928f40..06d5a236 100644 --- a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/useSuspenseQuery/page.tsx +++ b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/useSuspenseQuery/page.tsx @@ -1,6 +1,6 @@ import { ApolloWrapper } from "@/app/cc/ApolloWrapper"; import { ClientChild } from "./ClientChild"; -import { QUERY } from "../shared"; +import { QUERY } from "@integration-test/shared/queries"; export const dynamic = "force-dynamic"; import { PreloadQuery } from "../../../client"; diff --git a/integration-test/nextjs/tsconfig.json b/integration-test/nextjs/tsconfig.json index 0c7555fa..a98b748c 100644 --- a/integration-test/nextjs/tsconfig.json +++ b/integration-test/nextjs/tsconfig.json @@ -23,6 +23,6 @@ "@/*": ["./src/*"] } }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "../shared/*.ts"], "exclude": ["node_modules"] } diff --git a/integration-test/nextjs/src/app/graphql/IncrementalSchemaLink.ts b/integration-test/shared/IncrementalSchemaLink.ts similarity index 100% rename from integration-test/nextjs/src/app/graphql/IncrementalSchemaLink.ts rename to integration-test/shared/IncrementalSchemaLink.ts diff --git a/integration-test/shared/package.json b/integration-test/shared/package.json index c7f01daa..8975b4a5 100644 --- a/integration-test/shared/package.json +++ b/integration-test/shared/package.json @@ -1,3 +1,7 @@ { - "name": "@integration-test/shared" + "name": "@integration-test/shared", + "peerDependencies": { + "@apollo/client": "*", + "graphql": "*" + } } diff --git a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/shared.tsx b/integration-test/shared/queries.ts similarity index 93% rename from integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/shared.tsx rename to integration-test/shared/queries.ts index f1b6a026..e3d73845 100644 --- a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/shared.tsx +++ b/integration-test/shared/queries.ts @@ -1,4 +1,4 @@ -import { TypedDocumentNode, gql } from "@apollo/client"; +import { TypedDocumentNode, gql } from "@apollo/client/index.js"; export interface DynamicProductResult { products: { diff --git a/integration-test/nextjs/src/app/graphql/schema.ts b/integration-test/shared/schema.ts similarity index 100% rename from integration-test/nextjs/src/app/graphql/schema.ts rename to integration-test/shared/schema.ts diff --git a/integration-test/yarn.lock b/integration-test/yarn.lock index c7a6460b..b87b9b23 100644 --- a/integration-test/yarn.lock +++ b/integration-test/yarn.lock @@ -2723,6 +2723,7 @@ __metadata: "@apollo/server": "npm:^4.11.2" "@as-integrations/next": "npm:^3.2.0" "@graphql-tools/schema": "npm:^10.0.0" + "@integration-test/shared": "workspace:^" "@playwright/test": "npm:^1.49.1" "@types/node": "npm:20.3.1" "@types/react": "npm:^19.0.0" @@ -2747,9 +2748,12 @@ __metadata: languageName: unknown linkType: soft -"@integration-test/shared@workspace:shared": +"@integration-test/shared@workspace:^, @integration-test/shared@workspace:shared": version: 0.0.0-use.local resolution: "@integration-test/shared@workspace:shared" + peerDependencies: + "@apollo/client": "*" + graphql: "*" languageName: unknown linkType: soft From 27c51782709b23a2f5911968b941d814efc44641 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Wed, 18 Dec 2024 16:42:07 +0100 Subject: [PATCH 17/26] use `@defer` in the example --- integration-test/react-router/app/apollo.ts | 11 ++- integration-test/react-router/app/routes.ts | 7 +- .../react-router/app/routes/api.ts | 51 +++++++++++ .../react-router/app/routes/home.tsx | 89 +++++++++++-------- integration-test/react-router/package.json | 1 + integration-test/react-router/tsconfig.json | 3 +- integration-test/yarn.lock | 1 + 7 files changed, 123 insertions(+), 40 deletions(-) create mode 100644 integration-test/react-router/app/routes/api.ts diff --git a/integration-test/react-router/app/apollo.ts b/integration-test/react-router/app/apollo.ts index d69aff4d..c8dc444d 100644 --- a/integration-test/react-router/app/apollo.ts +++ b/integration-test/react-router/app/apollo.ts @@ -1,13 +1,20 @@ -import { InMemoryCache } from "@apollo/client/index.js"; +import { ApolloLink, HttpLink, InMemoryCache } from "@apollo/client/index.js"; import { createApolloLoaderHandler, ApolloClient, } from "@apollo/client-integration-react-router"; +import { IncrementalSchemaLink } from "@integration-test/shared/IncrementalSchemaLink"; +import { schema } from "@integration-test/shared/schema"; + +const link = + typeof window === "undefined" + ? (new IncrementalSchemaLink({ schema }) as any as ApolloLink) + : new HttpLink({ uri: "/graphql" }); export const makeClient = (request?: Request) => { return new ApolloClient({ cache: new InMemoryCache(), - uri: "https://graphqlzero.almansi.me/api", + link, }); }; export const apolloLoader = createApolloLoaderHandler(makeClient); diff --git a/integration-test/react-router/app/routes.ts b/integration-test/react-router/app/routes.ts index 102b4025..6b5c36af 100644 --- a/integration-test/react-router/app/routes.ts +++ b/integration-test/react-router/app/routes.ts @@ -1,3 +1,6 @@ -import { type RouteConfig, index } from "@react-router/dev/routes"; +import { type RouteConfig, index, route } from "@react-router/dev/routes"; -export default [index("routes/home.tsx")] satisfies RouteConfig; +export default [ + index("routes/home.tsx"), + route("graphql", "routes/api.ts"), +] satisfies RouteConfig; diff --git a/integration-test/react-router/app/routes/api.ts b/integration-test/react-router/app/routes/api.ts new file mode 100644 index 00000000..cf506ae5 --- /dev/null +++ b/integration-test/react-router/app/routes/api.ts @@ -0,0 +1,51 @@ +import { ActionFunctionArgs } from "react-router"; +import { experimentalExecuteIncrementally, parse } from "graphql"; +import { schema } from "@integration-test/shared/schema"; + +/** + * `@defer`-capable very crude implementation of a GraphQL server. + */ + +export async function action({ request }: ActionFunctionArgs) { + const body = await request.json(); + const { query, variables } = body; + const document = parse(query); + + const result = await experimentalExecuteIncrementally({ + schema, + document, + variableValues: variables, + contextValue: { from: "network" }, + }); + + if (`initialResult` in result) { + const encoder = new TextEncoder(); + const generator = async function* (): AsyncIterable { + yield encoder.encode( + "\r\n---\r\ncontent-type: application/json; charset=utf-8\r\n\r\n" + + JSON.stringify(result.initialResult) + + "\r\n---\r\n" + ); + for await (const partialResult of result.subsequentResults) { + yield encoder.encode( + "content-type: application/json; charset=utf-8\r\n\r\n" + + JSON.stringify(partialResult) + + (partialResult.hasNext ? "\r\n---\r\n" : "\r\n-----\r\n") + ); + } + }; + return new Response(generator() as any, { + status: 200, + headers: { + "Content-Type": 'multipart/mixed; boundary="-"; deferSpec=20220824', + }, + }); + } else { + return new Response(JSON.stringify(result), { + status: 200, + headers: { + "Content-Type": "application/json", + }, + }); + } +} diff --git a/integration-test/react-router/app/routes/home.tsx b/integration-test/react-router/app/routes/home.tsx index e8540954..42da9b67 100644 --- a/integration-test/react-router/app/routes/home.tsx +++ b/integration-test/react-router/app/routes/home.tsx @@ -1,51 +1,70 @@ -import { useLoaderData, type MetaFunction } from "react-router"; +import { useLoaderData } from "react-router"; import type { Route } from "./+types/home"; -import type { TypedDocumentNode } from "@apollo/client/index.js"; -import { gql, useReadQuery } from "@apollo/client/index.js"; +import { + useApolloClient, + useQueryRefHandlers, + useReadQuery, +} from "@apollo/client/index.js"; import { apolloLoader } from "~/apollo"; - -interface Posts { - posts: { - data: Array<{ - id: string; - title: string; - }>; - }; -} -const GET_POSTS: TypedDocumentNode = gql` - query GetPosts { - posts(options: { paginate: { page: 1, limit: 5 } }) { - data { - id - title - } - } - } -`; +import { DEFERRED_QUERY } from "@integration-test/shared/queries"; +import { useTransition } from "react"; export const loader = apolloLoader()(({ preloadQuery }) => { - const postsRef = preloadQuery(GET_POSTS); + const queryRef = preloadQuery(DEFERRED_QUERY, { + variables: { delayDeferred: 500 }, + }); return { - postsRef, + queryRef, }; }); export default function Home() { - const { postsRef } = useLoaderData(); + const { queryRef } = useLoaderData(); - const posts = useReadQuery(postsRef).data.posts.data; + const { refetch } = useQueryRefHandlers(queryRef); + const [refetching, startTransition] = useTransition(); + const { data } = useReadQuery(queryRef); + const client = useApolloClient(); return ( -
    + <>
      - {posts.map((post) => { - return ( -
    • -
      {post.title.substring(0, 20)}
      -
    • - ); - })} + {data.products.map(({ id, title, rating }) => ( +
    • + {title} +
      + Rating:{" "} +
      + {rating?.value || ""} +
      + {rating ? `Queried in ${rating.env} environment` : "loading..."} +
      +
    • + ))}
    -
    +

    Queried in {data.env} environment

    + + ); } diff --git a/integration-test/react-router/package.json b/integration-test/react-router/package.json index 591e8715..acbffc3f 100644 --- a/integration-test/react-router/package.json +++ b/integration-test/react-router/package.json @@ -12,6 +12,7 @@ "@apollo/client": "^3.11.10", "@apollo/client-integration-react-router": "*", "@apollo/client-react-streaming": "^0.11.6", + "@integration-test/shared": "workspace:^", "@react-router/node": "^7.0.1", "@react-router/serve": "^7.0.1", "isbot": "^5.1.17", diff --git a/integration-test/react-router/tsconfig.json b/integration-test/react-router/tsconfig.json index b778dd73..f73dcfac 100644 --- a/integration-test/react-router/tsconfig.json +++ b/integration-test/react-router/tsconfig.json @@ -3,7 +3,8 @@ "**/*", "**/.server/**/*", "**/.client/**/*", - ".react-router/types/**/*" + ".react-router/types/**/*", + "../shared/**/*" ], "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], diff --git a/integration-test/yarn.lock b/integration-test/yarn.lock index b87b9b23..8e75a5d7 100644 --- a/integration-test/yarn.lock +++ b/integration-test/yarn.lock @@ -8934,6 +8934,7 @@ __metadata: "@apollo/client": "npm:^3.11.10" "@apollo/client-integration-react-router": "npm:*" "@apollo/client-react-streaming": "npm:^0.11.6" + "@integration-test/shared": "workspace:^" "@react-router/dev": "npm:^7.0.1" "@react-router/node": "npm:^7.0.1" "@react-router/serve": "npm:^7.0.1" From 7672128e7ec285c52bcb55afa266295dc948bac9 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Thu, 19 Dec 2024 16:00:23 +0100 Subject: [PATCH 18/26] update turbo-stream patch --- integration-test/package.json | 2 +- integration-test/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/integration-test/package.json b/integration-test/package.json index b913de14..8d8c6d2b 100644 --- a/integration-test/package.json +++ b/integration-test/package.json @@ -6,7 +6,7 @@ "@apollo/experimental-nextjs-app-support": "exec:./shared/build-experimental-nextjs-app-support.cjs", "@apollo/client-integration-react-router": "exec:./shared/build-client-integration-react-router.cjs", "graphql": "17.0.0-alpha.2", - "turbo-stream": "npm:@phryneas/turbo-stream@2.4.1-pr.51.1.3fa62cb" + "turbo-stream": "npm:@phryneas/turbo-stream@2.4.1-pr.51.1.d24f66e" }, "workspaces": [ "*" diff --git a/integration-test/yarn.lock b/integration-test/yarn.lock index 8e75a5d7..ff22b30a 100644 --- a/integration-test/yarn.lock +++ b/integration-test/yarn.lock @@ -10250,10 +10250,10 @@ __metadata: languageName: node linkType: hard -"turbo-stream@npm:@phryneas/turbo-stream@2.4.1-pr.51.1.3fa62cb": - version: 2.4.1-pr.51.1.3fa62cb - resolution: "@phryneas/turbo-stream@npm:2.4.1-pr.51.1.3fa62cb" - checksum: 10/b3e3bbec3374afc82de9d4f29e955eaec2037cf7d6bff044ea9a256d9615d977f841daa935306b0c9031cc8552d1b8efd27c5084f6a43babd36fc1323af3c08e +"turbo-stream@npm:@phryneas/turbo-stream@2.4.1-pr.51.1.d24f66e": + version: 2.4.1-pr.51.1.d24f66e + resolution: "@phryneas/turbo-stream@npm:2.4.1-pr.51.1.d24f66e" + checksum: 10/09fdd86c894cb050ebe942a4ecaa86e10093d81a1d082df306d0c6513328258ac7159d6ac3ec769d3fb9e4e5e367b8f8b78467ae0f6279714c19231dec836d06 languageName: node linkType: hard From 4040b287f5da23d318b9c482d40084f4a4f9e1a4 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Thu, 19 Dec 2024 16:14:53 +0100 Subject: [PATCH 19/26] update example to React 19 --- integration-test/react-router/package.json | 4 +-- integration-test/yarn.lock | 38 +++------------------- 2 files changed, 6 insertions(+), 36 deletions(-) diff --git a/integration-test/react-router/package.json b/integration-test/react-router/package.json index acbffc3f..d81190cd 100644 --- a/integration-test/react-router/package.json +++ b/integration-test/react-router/package.json @@ -16,8 +16,8 @@ "@react-router/node": "^7.0.1", "@react-router/serve": "^7.0.1", "isbot": "^5.1.17", - "react": "^18.3.1", - "react-dom": "^18.3.1", + "react": "^19", + "react-dom": "^19", "react-router": "patch:react-router@npm%3A7.0.2#~/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch" }, "devDependencies": { diff --git a/integration-test/yarn.lock b/integration-test/yarn.lock index ff22b30a..09907332 100644 --- a/integration-test/yarn.lock +++ b/integration-test/yarn.lock @@ -8836,19 +8836,7 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:^18.3.1": - version: 18.3.1 - resolution: "react-dom@npm:18.3.1" - dependencies: - loose-envify: "npm:^1.1.0" - scheduler: "npm:^0.23.2" - peerDependencies: - react: ^18.3.1 - checksum: 10/3f4b73a3aa083091173b29812b10394dd06f4ac06aff410b74702cfb3aa29d7b0ced208aab92d5272919b612e5cda21aeb1d54191848cf6e46e9e354f3541f81 - languageName: node - linkType: hard - -"react-dom@npm:^19.0.0": +"react-dom@npm:^19, react-dom@npm:^19.0.0": version: 19.0.0 resolution: "react-dom@npm:19.0.0" dependencies: @@ -8944,8 +8932,8 @@ __metadata: autoprefixer: "npm:^10.4.20" isbot: "npm:^5.1.17" postcss: "npm:^8.4.49" - react: "npm:^18.3.1" - react-dom: "npm:^18.3.1" + react: "npm:^19" + react-dom: "npm:^19" react-router: "patch:react-router@npm%3A7.0.2#~/.yarn/patches/react-router-npm-7.0.2-b96f2bd13c.patch" tailwindcss: "npm:^3.4.15" typescript: "npm:^5.6.3" @@ -8963,16 +8951,7 @@ __metadata: languageName: node linkType: hard -"react@npm:^18.3.1": - version: 18.3.1 - resolution: "react@npm:18.3.1" - dependencies: - loose-envify: "npm:^1.1.0" - checksum: 10/261137d3f3993eaa2368a83110466fc0e558bc2c7f7ae7ca52d94f03aac945f45146bd85e5f481044db1758a1dbb57879e2fcdd33924e2dde1bdc550ce73f7bf - languageName: node - linkType: hard - -"react@npm:^19.0.0": +"react@npm:^19, react@npm:^19.0.0": version: 19.0.0 resolution: "react@npm:19.0.0" checksum: 10/2490969c503f644703c88990d20e4011fa6119ddeca451e9de48f6d7ab058d670d2852a5fcd3aa3cd90a923ab2815d532637bd4a814add402ae5c0d4f129ee71 @@ -9363,15 +9342,6 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.23.2": - version: 0.23.2 - resolution: "scheduler@npm:0.23.2" - dependencies: - loose-envify: "npm:^1.1.0" - checksum: 10/e8d68b89d18d5b028223edf090092846868a765a591944760942b77ea1f69b17235f7e956696efbb62c8130ab90af7e0949bfb8eba7896335507317236966bc9 - languageName: node - linkType: hard - "scheduler@npm:^0.25.0": version: 0.25.0 resolution: "scheduler@npm:0.25.0" From 9c9945ee32d940652d4d1c045a9240c4da1d31fa Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Fri, 20 Dec 2024 13:00:37 +0100 Subject: [PATCH 20/26] adjust `prepublishOnly` --- packages/react-router/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 629eb6bc..7edb90d3 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -58,7 +58,7 @@ "test:browser": "NODE_OPTIONS=\"${NODE_OPTIONS:-} --conditions=browser\" yarn run test:base", "test:rsc": "NODE_OPTIONS=\"${NODE_OPTIONS:-} --conditions=react-server\" yarn run test:base", "prepack": "yarn build", - "prepublishOnly": "yarn pack -o attw.tgz && attw attw.tgz && rm attw.tgz && yarn run test", + "prepublishOnly": "wait-on ../client-react-streaming/.published --delay 3000 --timeout 30000 && yarn pack -o attw.tgz && attw attw.tgz && rm attw.tgz && yarn run test", "test-bundle": "yarn test-bundle:attw && yarn test-bundle:package && yarn test-bundle:publint && yarn test-bundle:shape", "test-bundle:attw": "attw --pack .", "test-bundle:package": "yarn workspace monorepo verify-package-json $PWD/package.json", From 849f09bc4082697f8d359aacc9e7337c2cf6d723 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Fri, 20 Dec 2024 13:06:24 +0100 Subject: [PATCH 21/26] add to pkg-pr-new-publish --- .github/workflows/pkg-pr-new-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkg-pr-new-publish.yml b/.github/workflows/pkg-pr-new-publish.yml index fa5cab2f..45c4a53d 100644 --- a/.github/workflows/pkg-pr-new-publish.yml +++ b/.github/workflows/pkg-pr-new-publish.yml @@ -29,4 +29,4 @@ jobs: run: yarn build:libs - name: Build and publish to pkg.pr.new - run: yarn dlx pkg-pr-new publish --no-template packages/client-react-streaming packages/experimental-nextjs-app-support + run: yarn dlx pkg-pr-new publish --no-template packages/client-react-streaming packages/experimental-nextjs-app-support packages/react-router From f62cb1bf81eda280f412f658bb5ab7e755624429 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Fri, 20 Dec 2024 13:10:42 +0100 Subject: [PATCH 22/26] add empty unit test --- packages/react-router/package.json | 12 ++++-------- packages/react-router/src/importErrors.test.tsx | 6 ++++++ 2 files changed, 10 insertions(+), 8 deletions(-) create mode 100644 packages/react-router/src/importErrors.test.tsx diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 7edb90d3..f16a6e78 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -15,16 +15,12 @@ "imports": { "#bundled": { "require": { - "types": "./dist/combined.d.cts", - "react-server": "./dist/index.rsc.cjs", - "browser": "./dist/index.browser.cjs", - "node": "./dist/index.ssr.cjs" + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" }, "import": { - "types": "./dist/combined.d.ts", - "react-server": "./dist/index.rsc.js", - "browser": "./dist/index.browser.js", - "node": "./dist/index.ssr.js" + "types": "./dist/index.d.ts", + "default": "./dist/index.js" } } }, diff --git a/packages/react-router/src/importErrors.test.tsx b/packages/react-router/src/importErrors.test.tsx new file mode 100644 index 00000000..3dedae4c --- /dev/null +++ b/packages/react-router/src/importErrors.test.tsx @@ -0,0 +1,6 @@ +import * as assert from "node:assert"; +import { test } from "node:test"; + +test("tests will follow in a future PR", async () => { + assert.ok(true); +}); From 90b50b3722e4d2be6f4fc21fe5956a597b30440c Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Fri, 20 Dec 2024 13:17:27 +0100 Subject: [PATCH 23/26] increase delay --- .../shared/build-client-integration-react-router.cjs | 2 +- .../shared/build-experimental-nextjs-app-support.cjs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/integration-test/shared/build-client-integration-react-router.cjs b/integration-test/shared/build-client-integration-react-router.cjs index d89d03d6..c58332ac 100755 --- a/integration-test/shared/build-client-integration-react-router.cjs +++ b/integration-test/shared/build-client-integration-react-router.cjs @@ -40,4 +40,4 @@ setTimeout(() => { stdio: `inherit`, } ); -}, 3000); +}, 5000); diff --git a/integration-test/shared/build-experimental-nextjs-app-support.cjs b/integration-test/shared/build-experimental-nextjs-app-support.cjs index dbd02c1d..0e116fd3 100644 --- a/integration-test/shared/build-experimental-nextjs-app-support.cjs +++ b/integration-test/shared/build-experimental-nextjs-app-support.cjs @@ -50,4 +50,4 @@ setTimeout(() => { stdio: `inherit`, } ); -}, 3000); +}, 5000); From e2d90b37fd25029f16cf2332c56e375ee61088f4 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Fri, 20 Dec 2024 14:49:11 +0100 Subject: [PATCH 24/26] streamline integration test build --- .../build-client-integration-react-router.cjs | 53 ++++++---------- .../shared/build-client-react-streaming.cjs | 49 +++++---------- .../build-experimental-nextjs-app-support.cjs | 60 ++++++------------- integration-test/yarn.lock | 8 +-- package.json | 3 +- yarn.lock | 53 ++++++++++++++++ 6 files changed, 111 insertions(+), 115 deletions(-) diff --git a/integration-test/shared/build-client-integration-react-router.cjs b/integration-test/shared/build-client-integration-react-router.cjs index c58332ac..1b1e2dc3 100755 --- a/integration-test/shared/build-client-integration-react-router.cjs +++ b/integration-test/shared/build-client-integration-react-router.cjs @@ -5,39 +5,22 @@ This script can be used with the `exec:` protocol (https://yarnpkg.com/protocol/ the package. */ -const { execFileSync } = require("node:child_process"); -const { join, dirname } = require("node:path"); -const monorepoRoot = join(process.env.PROJECT_CWD, ".."); -const pathToArchive = join(execEnv.tempDir, "archive.tgz"); +const { join } = require("node:path"); +const { $, cd, retry, sleep } = /** @type {typeof import('zx')} */ ( + require(require.resolve("zx", { paths: [process.env.PROJECT_CWD] })) +); -setTimeout(() => { - execFileSync( - `yarn`, - [ - `workspace`, - `@apollo/client-integration-react-router`, - `pack`, - `--out`, - pathToArchive, - ], - { - stdio: `inherit`, - cwd: monorepoRoot, - } - ); - execFileSync( - `tar`, - [ - `-x`, - `-z`, - `--strip-components=1`, - `-f`, - pathToArchive, - `-C`, - execEnv.buildDir, - ], - { - stdio: `inherit`, - } - ); -}, 5000); +$.stdio = "inherit"; + +(async function run() { + const monorepoRoot = join(process.env.PROJECT_CWD, ".."); + const archive = join(monorepoRoot, "packages/react-router/archive.tgz"); + + // give the main build script a chance to kick in + await sleep(1000); + + await retry(30, "1s", () => $`test -f ${archive}`); + + cd(monorepoRoot); + await $`tar -x -z --strip-components=1 -f ${archive} -C ${execEnv.buildDir}`; +})(); diff --git a/integration-test/shared/build-client-react-streaming.cjs b/integration-test/shared/build-client-react-streaming.cjs index d0d30a11..15e6db27 100644 --- a/integration-test/shared/build-client-react-streaming.cjs +++ b/integration-test/shared/build-client-react-streaming.cjs @@ -5,38 +5,21 @@ This script can be used with the `exec:` protocol (https://yarnpkg.com/protocol/ the package. */ -const { execFileSync } = require("node:child_process"); -const { join, dirname } = require("node:path"); +const { join } = require("node:path"); +const { $, cd } = /** @type {typeof import('zx')} */ ( + require(require.resolve("zx", { paths: [process.env.PROJECT_CWD] })) +); +$.stdio = "inherit"; -const monorepoRoot = join(process.env.PROJECT_CWD, ".."); -const pathToArchive = join(execEnv.tempDir, "archive.tgz"); +(async function run() { + const monorepoRoot = join(process.env.PROJECT_CWD, ".."); + const archive = join( + monorepoRoot, + "packages/client-react-streaming/archive.tgz" + ); -execFileSync( - `yarn`, - [ - `workspace`, - `@apollo/client-react-streaming`, - `pack`, - `--out`, - pathToArchive, - ], - { - stdio: `inherit`, - cwd: monorepoRoot, - } -); -execFileSync( - `tar`, - [ - `-x`, - `-z`, - `--strip-components=1`, - `-f`, - pathToArchive, - `-C`, - execEnv.buildDir, - ], - { - stdio: `inherit`, - } -); + cd(monorepoRoot); + await $`yarn workspaces foreach --all --include '@apollo/*' exec rm -vf archive.tgz`; + await $`yarn workspaces foreach --all --include '@apollo/*' pack --out archive.tgz`; + await $`tar -x -z --strip-components=1 -f ${archive} -C ${execEnv.buildDir}`; +})(); diff --git a/integration-test/shared/build-experimental-nextjs-app-support.cjs b/integration-test/shared/build-experimental-nextjs-app-support.cjs index 0e116fd3..ee611049 100644 --- a/integration-test/shared/build-experimental-nextjs-app-support.cjs +++ b/integration-test/shared/build-experimental-nextjs-app-support.cjs @@ -5,49 +5,25 @@ This script can be used with the `exec:` protocol (https://yarnpkg.com/protocol/ the package. */ -const { execFileSync } = require("node:child_process"); -const { join, dirname } = require("node:path"); +const { join } = require("node:path"); +const { $, cd, retry, sleep } = /** @type {typeof import('zx')} */ ( + require(require.resolve("zx", { paths: [process.env.PROJECT_CWD] })) +); -const monorepoRoot = join(process.env.PROJECT_CWD, ".."); -const pathToArchive = join(execEnv.tempDir, "archive.tgz"); +$.stdio = "inherit"; -setTimeout(() => { - execFileSync( - `yarn`, - [`workspace`, `@apollo/client-react-streaming`, `build`], - { - stdio: `inherit`, - cwd: monorepoRoot, - } +(async function run() { + const monorepoRoot = join(process.env.PROJECT_CWD, ".."); + const archive = join( + monorepoRoot, + "packages/experimental-nextjs-app-support/archive.tgz" ); - execFileSync( - `yarn`, - [ - `workspace`, - `@apollo/experimental-nextjs-app-support`, - `pack`, - `--out`, - pathToArchive, - ], - { - stdio: `inherit`, - cwd: monorepoRoot, - } - ); - execFileSync( - `tar`, - [ - `-x`, - `-z`, - `--strip-components=1`, - `-f`, - pathToArchive, - `-C`, - execEnv.buildDir, - ], - { - stdio: `inherit`, - } - ); -}, 5000); + // give the main build script a chance to kick in + await sleep(1000); + + await retry(30, "1s", () => $`test -f ${archive}`); + + cd(monorepoRoot); + await $`tar -x -z --strip-components=1 -f ${archive} -C ${execEnv.buildDir}`; +})(); diff --git a/integration-test/yarn.lock b/integration-test/yarn.lock index 09907332..4bea65d8 100644 --- a/integration-test/yarn.lock +++ b/integration-test/yarn.lock @@ -40,19 +40,19 @@ __metadata: "@apollo/client-integration-react-router@exec:./shared/build-client-integration-react-router.cjs::locator=%40integration-test%2Froot%40workspace%3A.": version: 0.11.5 - resolution: "@apollo/client-integration-react-router@exec:./shared/build-client-integration-react-router.cjs#./shared/build-client-integration-react-router.cjs::hash=0070dd&locator=%40integration-test%2Froot%40workspace%3A." + resolution: "@apollo/client-integration-react-router@exec:./shared/build-client-integration-react-router.cjs#./shared/build-client-integration-react-router.cjs::hash=e00fd5&locator=%40integration-test%2Froot%40workspace%3A." dependencies: "@apollo/client-react-streaming": "npm:0.11.5" peerDependencies: react: ^19 react-router: ^7.0.2 - checksum: 10/657719d5b7fa4fc09301dd05f765a4fe456efaa1126533cab82de7e38c12bf7128a500aa3a19e669b419c76959cea61a3b3c2bfe7aa97edf6c10a10409f51483 + checksum: 10/441c697e3ea4339b5acfa6d8e03fb6bd667d4ec1e701650fe77762df415e3ae618be267d9e4d4a0cf16ef99318b5b5c2fcf3cf2785fc88e31375ebf5e246b54b languageName: node linkType: hard "@apollo/client-react-streaming@exec:./shared/build-client-react-streaming.cjs::locator=%40integration-test%2Froot%40workspace%3A.": version: 0.11.8-alpha.1 - resolution: "@apollo/client-react-streaming@exec:./shared/build-client-react-streaming.cjs#./shared/build-client-react-streaming.cjs::hash=4f1b75&locator=%40integration-test%2Froot%40workspace%3A." + resolution: "@apollo/client-react-streaming@exec:./shared/build-client-react-streaming.cjs#./shared/build-client-react-streaming.cjs::hash=509995&locator=%40integration-test%2Froot%40workspace%3A." dependencies: ts-invariant: "npm:^0.10.3" peerDependencies: @@ -101,7 +101,7 @@ __metadata: "@apollo/experimental-nextjs-app-support@exec:./shared/build-experimental-nextjs-app-support.cjs::locator=%40integration-test%2Froot%40workspace%3A.": version: 0.11.8-alpha.1 - resolution: "@apollo/experimental-nextjs-app-support@exec:./shared/build-experimental-nextjs-app-support.cjs#./shared/build-experimental-nextjs-app-support.cjs::hash=db9e8a&locator=%40integration-test%2Froot%40workspace%3A." + resolution: "@apollo/experimental-nextjs-app-support@exec:./shared/build-experimental-nextjs-app-support.cjs#./shared/build-experimental-nextjs-app-support.cjs::hash=af96a6&locator=%40integration-test%2Froot%40workspace%3A." dependencies: "@apollo/client-react-streaming": "npm:0.11.8-alpha.1" peerDependencies: diff --git a/package.json b/package.json index f191aabd..8a15b17c 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "@size-limit/file": "11.1.2", "@size-limit/webpack": "11.1.2", "@size-limit/webpack-why": "11.1.2", - "size-limit": "11.1.2" + "size-limit": "11.1.2", + "zx": "^8.2.4" } } diff --git a/yarn.lock b/yarn.lock index 560aaf03..34b3101a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5588,6 +5588,16 @@ __metadata: languageName: node linkType: hard +"@types/fs-extra@npm:>=11": + version: 11.0.4 + resolution: "@types/fs-extra@npm:11.0.4" + dependencies: + "@types/jsonfile": "npm:*" + "@types/node": "npm:*" + checksum: 10/acc4c1eb0cde7b1f23f3fe6eb080a14832d8fa9dc1761aa444c5e2f0f6b6fa657ed46ebae32fb580a6700fc921b6165ce8ac3e3ba030c3dd15f10ad4dd4cae98 + languageName: node + linkType: hard + "@types/js-cookie@npm:3.0.6": version: 3.0.6 resolution: "@types/js-cookie@npm:3.0.6" @@ -5623,6 +5633,15 @@ __metadata: languageName: node linkType: hard +"@types/jsonfile@npm:*": + version: 6.1.4 + resolution: "@types/jsonfile@npm:6.1.4" + dependencies: + "@types/node": "npm:*" + checksum: 10/309fda20eb5f1cf68f2df28931afdf189c5e7e6bec64ac783ce737bb98908d57f6f58757ad5da9be37b815645a6f914e2d4f3ac66c574b8fe1ba6616284d0e97 + languageName: node + linkType: hard + "@types/lodash.mergewith@npm:4.6.7": version: 4.6.7 resolution: "@types/lodash.mergewith@npm:4.6.7" @@ -5688,6 +5707,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:>=20": + version: 22.10.2 + resolution: "@types/node@npm:22.10.2" + dependencies: + undici-types: "npm:~6.20.0" + checksum: 10/451adfefed4add58b069407173e616220fd4aaa3307cdde1bb701aa053b65b54ced8483db2f870dcedec7a58cb3b06101fbc19d85852716672ec1fd3660947fa + languageName: node + linkType: hard + "@types/node@npm:^12.7.1": version: 12.20.55 resolution: "@types/node@npm:12.20.55" @@ -12541,6 +12569,7 @@ __metadata: prettier: "npm:^3.0.0" semver: "npm:^7.6.0" size-limit: "npm:11.1.2" + zx: "npm:^8.2.4" languageName: unknown linkType: soft @@ -16442,6 +16471,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~6.20.0": + version: 6.20.0 + resolution: "undici-types@npm:6.20.0" + checksum: 10/583ac7bbf4ff69931d3985f4762cde2690bb607844c16a5e2fbb92ed312fe4fa1b365e953032d469fa28ba8b224e88a595f0b10a449332f83fa77c695e567dbe + languageName: node + linkType: hard + "unicode-emoji-modifier-base@npm:^1.0.0": version: 1.0.0 resolution: "unicode-emoji-modifier-base@npm:1.0.0" @@ -17440,3 +17476,20 @@ __metadata: checksum: 10/30eac3f4055d33f446b4cd075d3543da347c2c8e68fbc35c3f5a19fb43be67c6ed27ee136bc8f8933efa547be7ce04957809ad00ee7f1b00a964f199ae6fb514 languageName: node linkType: hard + +"zx@npm:^8.2.4": + version: 8.2.4 + resolution: "zx@npm:8.2.4" + dependencies: + "@types/fs-extra": "npm:>=11" + "@types/node": "npm:>=20" + dependenciesMeta: + "@types/fs-extra": + optional: true + "@types/node": + optional: true + bin: + zx: build/cli.js + checksum: 10/fbf5184594ae95bc2857518674c4eafa12839790dfdc9f340609f2efc90b27581a899802c93286dca31e6ffa76d83bcf8be8f57ac10388befc970c6aa56a519b + languageName: node + linkType: hard From c98500ebf98b8123b7655589638b4adc1eb1e04b Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Fri, 20 Dec 2024 14:54:43 +0100 Subject: [PATCH 25/26] needs more time in CI --- .../shared/build-client-integration-react-router.cjs | 2 +- .../shared/build-experimental-nextjs-app-support.cjs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/integration-test/shared/build-client-integration-react-router.cjs b/integration-test/shared/build-client-integration-react-router.cjs index 1b1e2dc3..39bcfc15 100755 --- a/integration-test/shared/build-client-integration-react-router.cjs +++ b/integration-test/shared/build-client-integration-react-router.cjs @@ -19,7 +19,7 @@ $.stdio = "inherit"; // give the main build script a chance to kick in await sleep(1000); - await retry(30, "1s", () => $`test -f ${archive}`); + await retry(120, "1s", () => $`test -f ${archive}`); cd(monorepoRoot); await $`tar -x -z --strip-components=1 -f ${archive} -C ${execEnv.buildDir}`; diff --git a/integration-test/shared/build-experimental-nextjs-app-support.cjs b/integration-test/shared/build-experimental-nextjs-app-support.cjs index ee611049..0620254f 100644 --- a/integration-test/shared/build-experimental-nextjs-app-support.cjs +++ b/integration-test/shared/build-experimental-nextjs-app-support.cjs @@ -22,7 +22,7 @@ $.stdio = "inherit"; // give the main build script a chance to kick in await sleep(1000); - await retry(30, "1s", () => $`test -f ${archive}`); + await retry(120, "1s", () => $`test -f ${archive}`); cd(monorepoRoot); await $`tar -x -z --strip-components=1 -f ${archive} -C ${execEnv.buildDir}`; From 93e20db4143252d5da65074798922dcc5ae6b721 Mon Sep 17 00:00:00 2001 From: Lenz Weber-Tronic Date: Fri, 20 Dec 2024 14:59:21 +0100 Subject: [PATCH 26/26] exclude shared --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 56e0f729..5fa2ef72 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -98,7 +98,7 @@ jobs: YARN_ENABLE_IMMUTABLE_INSTALLS: "false" - name: Set target version of Apollo Client (Integration Test) - run: yarn workspaces foreach --all --include "@integration-test/*" add @apollo/client@${{ matrix.version }} + run: yarn workspaces foreach --all --include "@integration-test/*" --exclude @integration-test/shared add @apollo/client@${{ matrix.version }} - name: Get installed Playwright version id: playwright-version