├── next.config.ts ├── next-env.d.ts ├── src ├── pages │ ├── _app.tsx │ ├── index.tsx │ └── api │ │ └── trpc │ │ └── [trpc].ts ├── utils │ ├── transformer.ts │ └── trpc.ts └── server │ └── trpc.ts ├── README.md ├── package.json ├── tsconfig.json └── pnpm-lock.yaml /next.config.ts: -------------------------------------------------------------------------------- 1 | import { NextConfig } from 'next'; 2 | 3 | export default { 4 | /** We run eslint as a separate task in CI */ 5 | eslint: { ignoreDuringBuilds: !!process.env.CI }, 6 | } satisfies NextConfig; 7 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information. 6 | -------------------------------------------------------------------------------- /src/pages/_app.tsx: -------------------------------------------------------------------------------- 1 | import type { AppType } from 'next/app'; 2 | import { trpc } from '../utils/trpc'; 3 | 4 | const MyApp: AppType = ({ Component, pageProps }) => { 5 | return ; 6 | }; 7 | 8 | export default trpc.withTRPC(MyApp); 9 | -------------------------------------------------------------------------------- /src/utils/transformer.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * If you need to add transformers for special data types like `Temporal.Instant` or `Temporal.Date`, `Decimal.js`, etc you can do so here. 3 | * Make sure to import this file rather than `superjson` directly. 4 | * @see https://github.com/blitz-js/superjson#recipes 5 | */ 6 | import superjson from 'superjson'; 7 | 8 | export const transformer = superjson; 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Next.js + tRPC 2 | 3 | This example shows how you can make a typed query using a minimal implementation of tRPC following [`this as a reference`](https://trpc.io/docs/client/nextjs). 4 | 5 | ## Setup 6 | 7 | ```bash 8 | npx create-next-app --example https://github.com/trpc/trpc --example-path examples/next-minimal-starter trpc-minimal-starter 9 | cd trpc-minimal-starter 10 | npm i 11 | npm run dev 12 | ``` 13 | 14 | ## Development 15 | 16 | ### Start project 17 | 18 | ```bash 19 | npm run dev # starts next.js 20 | ``` 21 | -------------------------------------------------------------------------------- /src/server/trpc.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This is your entry point to setup the root configuration for tRPC on the server. 3 | * - `initTRPC` should only be used once per app. 4 | * - We export only the functionality that we use so we can enforce which base procedures should be used 5 | * 6 | * Learn how to create protected base procedures and other things below: 7 | * @see https://trpc.io/docs/v11/router 8 | * @see https://trpc.io/docs/v11/procedures 9 | */ 10 | import { initTRPC } from '@trpc/server'; 11 | import { transformer } from '../utils/transformer'; 12 | 13 | const t = initTRPC.create({ 14 | transformer, 15 | }); 16 | 17 | /** 18 | * Unprotected procedure 19 | **/ 20 | export const publicProcedure = t.procedure; 21 | 22 | export const router = t.router; 23 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "examples-next-minimal", 3 | "private": true, 4 | "scripts": { 5 | "dev": "next dev", 6 | "build": "next build", 7 | "lint": "eslint --cache src", 8 | "start": "next start" 9 | }, 10 | "dependencies": { 11 | "@tanstack/react-query": "^5.80.3", 12 | "@trpc/client": "canary", 13 | "@trpc/next": "canary", 14 | "@trpc/react-query": "canary", 15 | "@trpc/server": "canary", 16 | "next": "^15.3.8", 17 | "react": "^19.1.0", 18 | "react-dom": "^19.1.0", 19 | "superjson": "^1.12.4", 20 | "zod": "^3.25.51" 21 | }, 22 | "devDependencies": { 23 | "@types/node": "^22.13.5", 24 | "@types/react": "^19.1.0", 25 | "@types/react-dom": "^19.1.1", 26 | "eslint": "^9.26.0", 27 | "typescript": "^5.9.2" 28 | }, 29 | "version": "11.8.1" 30 | } 31 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Base Options: */ 4 | "skipLibCheck": true, 5 | "target": "es2022", 6 | "allowJs": true, 7 | "moduleDetection": "force", 8 | "isolatedModules": true, 9 | 10 | /* Strictness */ 11 | "strict": true, 12 | "checkJs": true, 13 | "allowImportingTsExtensions": true, 14 | 15 | /* Bundled projects */ 16 | "lib": ["dom", "dom.iterable", "ES2022"], 17 | "noEmit": true, 18 | "module": "Preserve", 19 | "moduleResolution": "bundler", 20 | "jsx": "preserve", 21 | "plugins": [{ "name": "next" }], 22 | "incremental": true, 23 | 24 | /* Path aliases */ 25 | "paths": { 26 | "~/*": ["./src/*"] 27 | } 28 | }, 29 | "include": [ 30 | "next-env.d.ts", 31 | "**/*.ts", 32 | "**/*.tsx", 33 | "*.js", 34 | ".next/types/**/*.ts" 35 | ], 36 | "exclude": ["node_modules"] 37 | } 38 | -------------------------------------------------------------------------------- /src/utils/trpc.ts: -------------------------------------------------------------------------------- 1 | import { httpBatchLink, httpSubscriptionLink, splitLink } from '@trpc/client'; 2 | import { createTRPCNext } from '@trpc/next'; 3 | import { ssrPrepass } from '@trpc/next/ssrPrepass'; 4 | import type { AppRouter } from '../pages/api/trpc/[trpc]'; 5 | import { transformer } from './transformer'; 6 | 7 | function getBaseUrl() { 8 | if (typeof window !== 'undefined') { 9 | // In the browser, we return a relative URL 10 | return ''; 11 | } 12 | // When rendering on the server, we return an absolute URL 13 | 14 | // reference for vercel.com 15 | if (process.env.VERCEL_URL) { 16 | return `https://${process.env.VERCEL_URL}`; 17 | } 18 | 19 | // assume localhost 20 | return `http://localhost:${process.env.PORT ?? 3000}`; 21 | } 22 | 23 | export const trpc = createTRPCNext({ 24 | config() { 25 | const url = getBaseUrl() + '/api/trpc'; 26 | return { 27 | links: [ 28 | splitLink({ 29 | condition: (op) => op.type === 'subscription', 30 | true: httpSubscriptionLink({ 31 | url, 32 | transformer, 33 | }), 34 | false: httpBatchLink({ 35 | url, 36 | transformer, 37 | }), 38 | }), 39 | ], 40 | }; 41 | }, 42 | ssr: true, 43 | ssrPrepass, 44 | transformer, 45 | }); 46 | -------------------------------------------------------------------------------- /src/pages/index.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * This is a Next.js page. 3 | */ 4 | import React from 'react'; 5 | import { trpc } from '../utils/trpc'; 6 | 7 | function QueryExample() { 8 | // 💡 Tip: CMD+Click (or CTRL+Click) on `greeting` to go to the server definition 9 | const result = trpc.greeting.useQuery({ name: 'client' }); 10 | 11 | if (!result.data) { 12 | return ( 13 |
14 |

Loading...

15 |
16 | ); 17 | } 18 | return ( 19 |
20 | {/** 21 | * The type is defined and can be autocompleted 22 | * 💡 Tip: Hover over `data` to see the result type 23 | * 💡 Tip: CMD+Click (or CTRL+Click) on `text` to go to the server definition 24 | * 💡 Tip: Secondary click on `text` and "Rename Symbol" to rename it both on the client & server 25 | */} 26 |

{result.data.text}

27 |
28 | ); 29 | } 30 | 31 | function SubscriptionExample() { 32 | const subscription = trpc.loopData.useSubscription(); 33 | return ( 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 53 | 54 |
Last data{subscription.data?.data}
Last Event ID{subscription.data?.id}
Status 46 | {subscription.status} 47 | {subscription.status === 'error' && ( 48 |
49 | 50 |
51 | )} 52 |
55 | ); 56 | } 57 | 58 | let hasEverMounted = false; 59 | 60 | function NoSSR(props: { children: React.ReactNode }) { 61 | const [hasMounted, setHasMounted] = React.useState(hasEverMounted); 62 | React.useEffect(() => { 63 | hasEverMounted = true; 64 | setHasMounted(true); 65 | }, []); 66 | return hasMounted ? <>{props.children} : null; 67 | } 68 | 69 | export default function IndexPage() { 70 | return ( 71 |
72 |

Query

73 | 74 |

Subscription

75 | 76 | 77 | 78 |
79 | ); 80 | } 81 | -------------------------------------------------------------------------------- /src/pages/api/trpc/[trpc].ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This is the API-handler of your app that contains all your API routes. 3 | * On a bigger app, you will probably want to split this file up into multiple files. 4 | */ 5 | import { tracked } from '@trpc/server'; 6 | import * as trpcNext from '@trpc/server/adapters/next'; 7 | import { publicProcedure, router } from '~/server/trpc'; 8 | import { z } from 'zod'; 9 | 10 | let subscriptionIdx = 0; 11 | 12 | const appRouter = router({ 13 | greeting: publicProcedure 14 | // This is the input schema of your procedure 15 | // 💡 Tip: Try changing this and see type errors on the client straight away 16 | .input( 17 | z.object({ 18 | name: z.string().nullish(), 19 | }), 20 | ) 21 | .query(({ input }) => { 22 | // This is what you're returning to your client 23 | return { 24 | text: `hello ${input?.name ?? 'world'}`, 25 | // 💡 Tip: Try adding a new property here and see it propagate to the client straight-away 26 | }; 27 | }), 28 | loopData: publicProcedure 29 | .input( 30 | z 31 | .object({ 32 | lastEventId: z.coerce.number().finite().nonnegative(), 33 | }) 34 | .optional(), 35 | ) 36 | .subscription(async function* (opts) { 37 | const id = ++subscriptionIdx; 38 | 39 | let count = opts.input?.lastEventId ?? 0; 40 | console.log( 41 | `[${id}] 🚀 Starting subscription id: ${id} - lastEventId: ${count}`, 42 | ); 43 | try { 44 | while (!opts.signal?.aborted) { 45 | ++count; 46 | console.log(`[${id}] 🔄 loop ${count}`); 47 | 48 | yield tracked( 49 | `${count}`, 50 | `[${id}] 📬 new data (count: ${count}, sub id: ${id})`, 51 | ); 52 | await new Promise((r) => setTimeout(r, 1000)); 53 | } 54 | console.log(`[${id}] ✅ done`); 55 | } catch (error) { 56 | console.error(`[${id}] ❌ error`, error); 57 | } 58 | }), 59 | // 💡 Tip: Try adding a new procedure here and see if you can use it in the client! 60 | // getUser: publicProcedure.query(() => { 61 | // return { id: '1', name: 'bob' }; 62 | // }), 63 | }); 64 | 65 | // export only the type definition of the API 66 | // None of the actual implementation is exposed to the client 67 | export type AppRouter = typeof appRouter; 68 | 69 | // export API handler 70 | export default trpcNext.createNextApiHandler({ 71 | router: appRouter, 72 | createContext: () => ({}), 73 | }); 74 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@tanstack/react-query': 12 | specifier: ^5.80.3 13 | version: 5.90.12(react@19.2.3) 14 | '@trpc/client': 15 | specifier: canary 16 | version: 11.8.1-canary.14(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(typescript@5.9.3) 17 | '@trpc/next': 18 | specifier: canary 19 | version: 11.8.1-canary.14(@tanstack/react-query@5.90.12(react@19.2.3))(@trpc/client@11.8.1-canary.14(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.8.1-canary.14(@tanstack/react-query@5.90.12(react@19.2.3))(@trpc/client@11.8.1-canary.14(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(next@15.5.9(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) 20 | '@trpc/react-query': 21 | specifier: canary 22 | version: 11.8.1-canary.14(@tanstack/react-query@5.90.12(react@19.2.3))(@trpc/client@11.8.1-canary.14(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) 23 | '@trpc/server': 24 | specifier: canary 25 | version: 11.8.1-canary.14(typescript@5.9.3) 26 | next: 27 | specifier: ^15.3.8 28 | version: 15.5.9(react-dom@19.2.3(react@19.2.3))(react@19.2.3) 29 | react: 30 | specifier: ^19.1.0 31 | version: 19.2.3 32 | react-dom: 33 | specifier: ^19.1.0 34 | version: 19.2.3(react@19.2.3) 35 | superjson: 36 | specifier: ^1.12.4 37 | version: 1.13.3 38 | zod: 39 | specifier: ^3.25.51 40 | version: 3.25.76 41 | devDependencies: 42 | '@types/node': 43 | specifier: ^22.13.5 44 | version: 22.19.3 45 | '@types/react': 46 | specifier: ^19.1.0 47 | version: 19.2.7 48 | '@types/react-dom': 49 | specifier: ^19.1.1 50 | version: 19.2.3(@types/react@19.2.7) 51 | eslint: 52 | specifier: ^9.26.0 53 | version: 9.39.2 54 | typescript: 55 | specifier: ^5.9.2 56 | version: 5.9.3 57 | 58 | packages: 59 | 60 | '@emnapi/runtime@1.7.1': 61 | resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} 62 | 63 | '@eslint-community/eslint-utils@4.9.0': 64 | resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} 65 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 66 | peerDependencies: 67 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 68 | 69 | '@eslint-community/regexpp@4.12.2': 70 | resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} 71 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 72 | 73 | '@eslint/config-array@0.21.1': 74 | resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} 75 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 76 | 77 | '@eslint/config-helpers@0.4.2': 78 | resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} 79 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 80 | 81 | '@eslint/core@0.17.0': 82 | resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} 83 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 84 | 85 | '@eslint/eslintrc@3.3.3': 86 | resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} 87 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 88 | 89 | '@eslint/js@9.39.2': 90 | resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} 91 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 92 | 93 | '@eslint/object-schema@2.1.7': 94 | resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} 95 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 96 | 97 | '@eslint/plugin-kit@0.4.1': 98 | resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} 99 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 100 | 101 | '@humanfs/core@0.19.1': 102 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 103 | engines: {node: '>=18.18.0'} 104 | 105 | '@humanfs/node@0.16.7': 106 | resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} 107 | engines: {node: '>=18.18.0'} 108 | 109 | '@humanwhocodes/module-importer@1.0.1': 110 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 111 | engines: {node: '>=12.22'} 112 | 113 | '@humanwhocodes/retry@0.4.3': 114 | resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} 115 | engines: {node: '>=18.18'} 116 | 117 | '@img/colour@1.0.0': 118 | resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} 119 | engines: {node: '>=18'} 120 | 121 | '@img/sharp-darwin-arm64@0.34.5': 122 | resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} 123 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 124 | cpu: [arm64] 125 | os: [darwin] 126 | 127 | '@img/sharp-darwin-x64@0.34.5': 128 | resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} 129 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 130 | cpu: [x64] 131 | os: [darwin] 132 | 133 | '@img/sharp-libvips-darwin-arm64@1.2.4': 134 | resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} 135 | cpu: [arm64] 136 | os: [darwin] 137 | 138 | '@img/sharp-libvips-darwin-x64@1.2.4': 139 | resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} 140 | cpu: [x64] 141 | os: [darwin] 142 | 143 | '@img/sharp-libvips-linux-arm64@1.2.4': 144 | resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} 145 | cpu: [arm64] 146 | os: [linux] 147 | 148 | '@img/sharp-libvips-linux-arm@1.2.4': 149 | resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} 150 | cpu: [arm] 151 | os: [linux] 152 | 153 | '@img/sharp-libvips-linux-ppc64@1.2.4': 154 | resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} 155 | cpu: [ppc64] 156 | os: [linux] 157 | 158 | '@img/sharp-libvips-linux-riscv64@1.2.4': 159 | resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} 160 | cpu: [riscv64] 161 | os: [linux] 162 | 163 | '@img/sharp-libvips-linux-s390x@1.2.4': 164 | resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} 165 | cpu: [s390x] 166 | os: [linux] 167 | 168 | '@img/sharp-libvips-linux-x64@1.2.4': 169 | resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} 170 | cpu: [x64] 171 | os: [linux] 172 | 173 | '@img/sharp-libvips-linuxmusl-arm64@1.2.4': 174 | resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} 175 | cpu: [arm64] 176 | os: [linux] 177 | 178 | '@img/sharp-libvips-linuxmusl-x64@1.2.4': 179 | resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} 180 | cpu: [x64] 181 | os: [linux] 182 | 183 | '@img/sharp-linux-arm64@0.34.5': 184 | resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} 185 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 186 | cpu: [arm64] 187 | os: [linux] 188 | 189 | '@img/sharp-linux-arm@0.34.5': 190 | resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} 191 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 192 | cpu: [arm] 193 | os: [linux] 194 | 195 | '@img/sharp-linux-ppc64@0.34.5': 196 | resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} 197 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 198 | cpu: [ppc64] 199 | os: [linux] 200 | 201 | '@img/sharp-linux-riscv64@0.34.5': 202 | resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} 203 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 204 | cpu: [riscv64] 205 | os: [linux] 206 | 207 | '@img/sharp-linux-s390x@0.34.5': 208 | resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} 209 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 210 | cpu: [s390x] 211 | os: [linux] 212 | 213 | '@img/sharp-linux-x64@0.34.5': 214 | resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} 215 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 216 | cpu: [x64] 217 | os: [linux] 218 | 219 | '@img/sharp-linuxmusl-arm64@0.34.5': 220 | resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} 221 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 222 | cpu: [arm64] 223 | os: [linux] 224 | 225 | '@img/sharp-linuxmusl-x64@0.34.5': 226 | resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} 227 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 228 | cpu: [x64] 229 | os: [linux] 230 | 231 | '@img/sharp-wasm32@0.34.5': 232 | resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} 233 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 234 | cpu: [wasm32] 235 | 236 | '@img/sharp-win32-arm64@0.34.5': 237 | resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} 238 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 239 | cpu: [arm64] 240 | os: [win32] 241 | 242 | '@img/sharp-win32-ia32@0.34.5': 243 | resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} 244 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 245 | cpu: [ia32] 246 | os: [win32] 247 | 248 | '@img/sharp-win32-x64@0.34.5': 249 | resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} 250 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 251 | cpu: [x64] 252 | os: [win32] 253 | 254 | '@next/env@15.5.9': 255 | resolution: {integrity: sha512-4GlTZ+EJM7WaW2HEZcyU317tIQDjkQIyENDLxYJfSWlfqguN+dHkZgyQTV/7ykvobU7yEH5gKvreNrH4B6QgIg==} 256 | 257 | '@next/swc-darwin-arm64@15.5.7': 258 | resolution: {integrity: sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==} 259 | engines: {node: '>= 10'} 260 | cpu: [arm64] 261 | os: [darwin] 262 | 263 | '@next/swc-darwin-x64@15.5.7': 264 | resolution: {integrity: sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==} 265 | engines: {node: '>= 10'} 266 | cpu: [x64] 267 | os: [darwin] 268 | 269 | '@next/swc-linux-arm64-gnu@15.5.7': 270 | resolution: {integrity: sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==} 271 | engines: {node: '>= 10'} 272 | cpu: [arm64] 273 | os: [linux] 274 | 275 | '@next/swc-linux-arm64-musl@15.5.7': 276 | resolution: {integrity: sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==} 277 | engines: {node: '>= 10'} 278 | cpu: [arm64] 279 | os: [linux] 280 | 281 | '@next/swc-linux-x64-gnu@15.5.7': 282 | resolution: {integrity: sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==} 283 | engines: {node: '>= 10'} 284 | cpu: [x64] 285 | os: [linux] 286 | 287 | '@next/swc-linux-x64-musl@15.5.7': 288 | resolution: {integrity: sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==} 289 | engines: {node: '>= 10'} 290 | cpu: [x64] 291 | os: [linux] 292 | 293 | '@next/swc-win32-arm64-msvc@15.5.7': 294 | resolution: {integrity: sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==} 295 | engines: {node: '>= 10'} 296 | cpu: [arm64] 297 | os: [win32] 298 | 299 | '@next/swc-win32-x64-msvc@15.5.7': 300 | resolution: {integrity: sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==} 301 | engines: {node: '>= 10'} 302 | cpu: [x64] 303 | os: [win32] 304 | 305 | '@swc/helpers@0.5.15': 306 | resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} 307 | 308 | '@tanstack/query-core@5.90.12': 309 | resolution: {integrity: sha512-T1/8t5DhV/SisWjDnaiU2drl6ySvsHj1bHBCWNXd+/T+Hh1cf6JodyEYMd5sgwm+b/mETT4EV3H+zCVczCU5hg==} 310 | 311 | '@tanstack/react-query@5.90.12': 312 | resolution: {integrity: sha512-graRZspg7EoEaw0a8faiUASCyJrqjKPdqJ9EwuDRUF9mEYJ1YPczI9H+/agJ0mOJkPCJDk0lsz5QTrLZ/jQ2rg==} 313 | peerDependencies: 314 | react: ^18 || ^19 315 | 316 | '@trpc/client@11.8.1-canary.14': 317 | resolution: {integrity: sha512-07MMk6t6/x6sGWo4MUXfP7N0B8Kh+OO3wF8jpumKOId8xX/oGMYoeylWHKIgYyEpPAxg6yoDP8J/d8c232MPOA==} 318 | peerDependencies: 319 | '@trpc/server': 11.8.1-canary.14+599a99217 320 | typescript: '>=5.7.2' 321 | 322 | '@trpc/next@11.8.1-canary.14': 323 | resolution: {integrity: sha512-tl4fU0SxTzEa8lNiSnS3zsZ0oYGDCBePtDwIf8jSixuDpC7OpRDc5IZYVwkaJOsfrdfXwDLh4oyU6owAIRkdiA==} 324 | peerDependencies: 325 | '@tanstack/react-query': ^5.59.15 326 | '@trpc/client': 11.8.1-canary.14+599a99217 327 | '@trpc/react-query': 11.8.1-canary.14+599a99217 328 | '@trpc/server': 11.8.1-canary.14+599a99217 329 | next: '*' 330 | react: '>=16.8.0' 331 | react-dom: '>=16.8.0' 332 | typescript: '>=5.7.2' 333 | peerDependenciesMeta: 334 | '@tanstack/react-query': 335 | optional: true 336 | '@trpc/react-query': 337 | optional: true 338 | 339 | '@trpc/react-query@11.8.1-canary.14': 340 | resolution: {integrity: sha512-4o//cW3BKglsY/ONm2C0lLWf/YRdgp/4kjAAw+3WHRKbiSNeMPOcja6KMRG4sKNnuBymv+TuRePbcXDbZ420sw==} 341 | peerDependencies: 342 | '@tanstack/react-query': ^5.80.3 343 | '@trpc/client': 11.8.1-canary.14+599a99217 344 | '@trpc/server': 11.8.1-canary.14+599a99217 345 | react: '>=18.2.0' 346 | react-dom: '>=18.2.0' 347 | typescript: '>=5.7.2' 348 | 349 | '@trpc/server@11.8.1-canary.14': 350 | resolution: {integrity: sha512-daRKBspxL17kXt3+VMm5qYiCuk6mwxKy66rWpPB1VHuEAoBWxJrik1rN/JdetT5qz3+ugTv3lPcBMMrQFnfHpA==} 351 | peerDependencies: 352 | typescript: '>=5.7.2' 353 | 354 | '@types/estree@1.0.8': 355 | resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 356 | 357 | '@types/json-schema@7.0.15': 358 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 359 | 360 | '@types/node@22.19.3': 361 | resolution: {integrity: sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==} 362 | 363 | '@types/react-dom@19.2.3': 364 | resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} 365 | peerDependencies: 366 | '@types/react': ^19.2.0 367 | 368 | '@types/react@19.2.7': 369 | resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==} 370 | 371 | acorn-jsx@5.3.2: 372 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 373 | peerDependencies: 374 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 375 | 376 | acorn@8.15.0: 377 | resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} 378 | engines: {node: '>=0.4.0'} 379 | hasBin: true 380 | 381 | ajv@6.12.6: 382 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 383 | 384 | ansi-styles@4.3.0: 385 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 386 | engines: {node: '>=8'} 387 | 388 | argparse@2.0.1: 389 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 390 | 391 | balanced-match@1.0.2: 392 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 393 | 394 | brace-expansion@1.1.12: 395 | resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} 396 | 397 | callsites@3.1.0: 398 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 399 | engines: {node: '>=6'} 400 | 401 | caniuse-lite@1.0.30001761: 402 | resolution: {integrity: sha512-JF9ptu1vP2coz98+5051jZ4PwQgd2ni8A+gYSN7EA7dPKIMf0pDlSUxhdmVOaV3/fYK5uWBkgSXJaRLr4+3A6g==} 403 | 404 | chalk@4.1.2: 405 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 406 | engines: {node: '>=10'} 407 | 408 | client-only@0.0.1: 409 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 410 | 411 | color-convert@2.0.1: 412 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 413 | engines: {node: '>=7.0.0'} 414 | 415 | color-name@1.1.4: 416 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 417 | 418 | concat-map@0.0.1: 419 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 420 | 421 | copy-anything@3.0.5: 422 | resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} 423 | engines: {node: '>=12.13'} 424 | 425 | cross-spawn@7.0.6: 426 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 427 | engines: {node: '>= 8'} 428 | 429 | csstype@3.2.3: 430 | resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} 431 | 432 | debug@4.4.3: 433 | resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 434 | engines: {node: '>=6.0'} 435 | peerDependencies: 436 | supports-color: '*' 437 | peerDependenciesMeta: 438 | supports-color: 439 | optional: true 440 | 441 | deep-is@0.1.4: 442 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 443 | 444 | detect-libc@2.1.2: 445 | resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 446 | engines: {node: '>=8'} 447 | 448 | escape-string-regexp@4.0.0: 449 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 450 | engines: {node: '>=10'} 451 | 452 | eslint-scope@8.4.0: 453 | resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} 454 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 455 | 456 | eslint-visitor-keys@3.4.3: 457 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 458 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 459 | 460 | eslint-visitor-keys@4.2.1: 461 | resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} 462 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 463 | 464 | eslint@9.39.2: 465 | resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} 466 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 467 | hasBin: true 468 | peerDependencies: 469 | jiti: '*' 470 | peerDependenciesMeta: 471 | jiti: 472 | optional: true 473 | 474 | espree@10.4.0: 475 | resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} 476 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 477 | 478 | esquery@1.6.0: 479 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 480 | engines: {node: '>=0.10'} 481 | 482 | esrecurse@4.3.0: 483 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 484 | engines: {node: '>=4.0'} 485 | 486 | estraverse@5.3.0: 487 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 488 | engines: {node: '>=4.0'} 489 | 490 | esutils@2.0.3: 491 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 492 | engines: {node: '>=0.10.0'} 493 | 494 | fast-deep-equal@3.1.3: 495 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 496 | 497 | fast-json-stable-stringify@2.1.0: 498 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 499 | 500 | fast-levenshtein@2.0.6: 501 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 502 | 503 | file-entry-cache@8.0.0: 504 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 505 | engines: {node: '>=16.0.0'} 506 | 507 | find-up@5.0.0: 508 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 509 | engines: {node: '>=10'} 510 | 511 | flat-cache@4.0.1: 512 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 513 | engines: {node: '>=16'} 514 | 515 | flatted@3.3.3: 516 | resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 517 | 518 | glob-parent@6.0.2: 519 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 520 | engines: {node: '>=10.13.0'} 521 | 522 | globals@14.0.0: 523 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 524 | engines: {node: '>=18'} 525 | 526 | has-flag@4.0.0: 527 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 528 | engines: {node: '>=8'} 529 | 530 | ignore@5.3.2: 531 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 532 | engines: {node: '>= 4'} 533 | 534 | import-fresh@3.3.1: 535 | resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} 536 | engines: {node: '>=6'} 537 | 538 | imurmurhash@0.1.4: 539 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 540 | engines: {node: '>=0.8.19'} 541 | 542 | is-extglob@2.1.1: 543 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 544 | engines: {node: '>=0.10.0'} 545 | 546 | is-glob@4.0.3: 547 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 548 | engines: {node: '>=0.10.0'} 549 | 550 | is-what@4.1.16: 551 | resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} 552 | engines: {node: '>=12.13'} 553 | 554 | isexe@2.0.0: 555 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 556 | 557 | js-yaml@4.1.1: 558 | resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} 559 | hasBin: true 560 | 561 | json-buffer@3.0.1: 562 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 563 | 564 | json-schema-traverse@0.4.1: 565 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 566 | 567 | json-stable-stringify-without-jsonify@1.0.1: 568 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 569 | 570 | keyv@4.5.4: 571 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 572 | 573 | levn@0.4.1: 574 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 575 | engines: {node: '>= 0.8.0'} 576 | 577 | locate-path@6.0.0: 578 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 579 | engines: {node: '>=10'} 580 | 581 | lodash.merge@4.6.2: 582 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 583 | 584 | minimatch@3.1.2: 585 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 586 | 587 | ms@2.1.3: 588 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 589 | 590 | nanoid@3.3.11: 591 | resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 592 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 593 | hasBin: true 594 | 595 | natural-compare@1.4.0: 596 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 597 | 598 | next@15.5.9: 599 | resolution: {integrity: sha512-agNLK89seZEtC5zUHwtut0+tNrc0Xw4FT/Dg+B/VLEo9pAcS9rtTKpek3V6kVcVwsB2YlqMaHdfZL4eLEVYuCg==} 600 | engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} 601 | hasBin: true 602 | peerDependencies: 603 | '@opentelemetry/api': ^1.1.0 604 | '@playwright/test': ^1.51.1 605 | babel-plugin-react-compiler: '*' 606 | react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 607 | react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 608 | sass: ^1.3.0 609 | peerDependenciesMeta: 610 | '@opentelemetry/api': 611 | optional: true 612 | '@playwright/test': 613 | optional: true 614 | babel-plugin-react-compiler: 615 | optional: true 616 | sass: 617 | optional: true 618 | 619 | optionator@0.9.4: 620 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 621 | engines: {node: '>= 0.8.0'} 622 | 623 | p-limit@3.1.0: 624 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 625 | engines: {node: '>=10'} 626 | 627 | p-locate@5.0.0: 628 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 629 | engines: {node: '>=10'} 630 | 631 | parent-module@1.0.1: 632 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 633 | engines: {node: '>=6'} 634 | 635 | path-exists@4.0.0: 636 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 637 | engines: {node: '>=8'} 638 | 639 | path-key@3.1.1: 640 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 641 | engines: {node: '>=8'} 642 | 643 | picocolors@1.1.1: 644 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 645 | 646 | postcss@8.4.31: 647 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 648 | engines: {node: ^10 || ^12 || >=14} 649 | 650 | prelude-ls@1.2.1: 651 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 652 | engines: {node: '>= 0.8.0'} 653 | 654 | punycode@2.3.1: 655 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 656 | engines: {node: '>=6'} 657 | 658 | react-dom@19.2.3: 659 | resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} 660 | peerDependencies: 661 | react: ^19.2.3 662 | 663 | react@19.2.3: 664 | resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} 665 | engines: {node: '>=0.10.0'} 666 | 667 | resolve-from@4.0.0: 668 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 669 | engines: {node: '>=4'} 670 | 671 | scheduler@0.27.0: 672 | resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} 673 | 674 | semver@7.7.3: 675 | resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} 676 | engines: {node: '>=10'} 677 | hasBin: true 678 | 679 | sharp@0.34.5: 680 | resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} 681 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 682 | 683 | shebang-command@2.0.0: 684 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 685 | engines: {node: '>=8'} 686 | 687 | shebang-regex@3.0.0: 688 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 689 | engines: {node: '>=8'} 690 | 691 | source-map-js@1.2.1: 692 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 693 | engines: {node: '>=0.10.0'} 694 | 695 | strip-json-comments@3.1.1: 696 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 697 | engines: {node: '>=8'} 698 | 699 | styled-jsx@5.1.6: 700 | resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} 701 | engines: {node: '>= 12.0.0'} 702 | peerDependencies: 703 | '@babel/core': '*' 704 | babel-plugin-macros: '*' 705 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' 706 | peerDependenciesMeta: 707 | '@babel/core': 708 | optional: true 709 | babel-plugin-macros: 710 | optional: true 711 | 712 | superjson@1.13.3: 713 | resolution: {integrity: sha512-mJiVjfd2vokfDxsQPOwJ/PtanO87LhpYY88ubI5dUB1Ab58Txbyje3+jpm+/83R/fevaq/107NNhtYBLuoTrFg==} 714 | engines: {node: '>=10'} 715 | 716 | supports-color@7.2.0: 717 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 718 | engines: {node: '>=8'} 719 | 720 | tslib@2.8.1: 721 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 722 | 723 | type-check@0.4.0: 724 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 725 | engines: {node: '>= 0.8.0'} 726 | 727 | typescript@5.9.3: 728 | resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} 729 | engines: {node: '>=14.17'} 730 | hasBin: true 731 | 732 | undici-types@6.21.0: 733 | resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} 734 | 735 | uri-js@4.4.1: 736 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 737 | 738 | which@2.0.2: 739 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 740 | engines: {node: '>= 8'} 741 | hasBin: true 742 | 743 | word-wrap@1.2.5: 744 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 745 | engines: {node: '>=0.10.0'} 746 | 747 | yocto-queue@0.1.0: 748 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 749 | engines: {node: '>=10'} 750 | 751 | zod@3.25.76: 752 | resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} 753 | 754 | snapshots: 755 | 756 | '@emnapi/runtime@1.7.1': 757 | dependencies: 758 | tslib: 2.8.1 759 | optional: true 760 | 761 | '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2)': 762 | dependencies: 763 | eslint: 9.39.2 764 | eslint-visitor-keys: 3.4.3 765 | 766 | '@eslint-community/regexpp@4.12.2': {} 767 | 768 | '@eslint/config-array@0.21.1': 769 | dependencies: 770 | '@eslint/object-schema': 2.1.7 771 | debug: 4.4.3 772 | minimatch: 3.1.2 773 | transitivePeerDependencies: 774 | - supports-color 775 | 776 | '@eslint/config-helpers@0.4.2': 777 | dependencies: 778 | '@eslint/core': 0.17.0 779 | 780 | '@eslint/core@0.17.0': 781 | dependencies: 782 | '@types/json-schema': 7.0.15 783 | 784 | '@eslint/eslintrc@3.3.3': 785 | dependencies: 786 | ajv: 6.12.6 787 | debug: 4.4.3 788 | espree: 10.4.0 789 | globals: 14.0.0 790 | ignore: 5.3.2 791 | import-fresh: 3.3.1 792 | js-yaml: 4.1.1 793 | minimatch: 3.1.2 794 | strip-json-comments: 3.1.1 795 | transitivePeerDependencies: 796 | - supports-color 797 | 798 | '@eslint/js@9.39.2': {} 799 | 800 | '@eslint/object-schema@2.1.7': {} 801 | 802 | '@eslint/plugin-kit@0.4.1': 803 | dependencies: 804 | '@eslint/core': 0.17.0 805 | levn: 0.4.1 806 | 807 | '@humanfs/core@0.19.1': {} 808 | 809 | '@humanfs/node@0.16.7': 810 | dependencies: 811 | '@humanfs/core': 0.19.1 812 | '@humanwhocodes/retry': 0.4.3 813 | 814 | '@humanwhocodes/module-importer@1.0.1': {} 815 | 816 | '@humanwhocodes/retry@0.4.3': {} 817 | 818 | '@img/colour@1.0.0': 819 | optional: true 820 | 821 | '@img/sharp-darwin-arm64@0.34.5': 822 | optionalDependencies: 823 | '@img/sharp-libvips-darwin-arm64': 1.2.4 824 | optional: true 825 | 826 | '@img/sharp-darwin-x64@0.34.5': 827 | optionalDependencies: 828 | '@img/sharp-libvips-darwin-x64': 1.2.4 829 | optional: true 830 | 831 | '@img/sharp-libvips-darwin-arm64@1.2.4': 832 | optional: true 833 | 834 | '@img/sharp-libvips-darwin-x64@1.2.4': 835 | optional: true 836 | 837 | '@img/sharp-libvips-linux-arm64@1.2.4': 838 | optional: true 839 | 840 | '@img/sharp-libvips-linux-arm@1.2.4': 841 | optional: true 842 | 843 | '@img/sharp-libvips-linux-ppc64@1.2.4': 844 | optional: true 845 | 846 | '@img/sharp-libvips-linux-riscv64@1.2.4': 847 | optional: true 848 | 849 | '@img/sharp-libvips-linux-s390x@1.2.4': 850 | optional: true 851 | 852 | '@img/sharp-libvips-linux-x64@1.2.4': 853 | optional: true 854 | 855 | '@img/sharp-libvips-linuxmusl-arm64@1.2.4': 856 | optional: true 857 | 858 | '@img/sharp-libvips-linuxmusl-x64@1.2.4': 859 | optional: true 860 | 861 | '@img/sharp-linux-arm64@0.34.5': 862 | optionalDependencies: 863 | '@img/sharp-libvips-linux-arm64': 1.2.4 864 | optional: true 865 | 866 | '@img/sharp-linux-arm@0.34.5': 867 | optionalDependencies: 868 | '@img/sharp-libvips-linux-arm': 1.2.4 869 | optional: true 870 | 871 | '@img/sharp-linux-ppc64@0.34.5': 872 | optionalDependencies: 873 | '@img/sharp-libvips-linux-ppc64': 1.2.4 874 | optional: true 875 | 876 | '@img/sharp-linux-riscv64@0.34.5': 877 | optionalDependencies: 878 | '@img/sharp-libvips-linux-riscv64': 1.2.4 879 | optional: true 880 | 881 | '@img/sharp-linux-s390x@0.34.5': 882 | optionalDependencies: 883 | '@img/sharp-libvips-linux-s390x': 1.2.4 884 | optional: true 885 | 886 | '@img/sharp-linux-x64@0.34.5': 887 | optionalDependencies: 888 | '@img/sharp-libvips-linux-x64': 1.2.4 889 | optional: true 890 | 891 | '@img/sharp-linuxmusl-arm64@0.34.5': 892 | optionalDependencies: 893 | '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 894 | optional: true 895 | 896 | '@img/sharp-linuxmusl-x64@0.34.5': 897 | optionalDependencies: 898 | '@img/sharp-libvips-linuxmusl-x64': 1.2.4 899 | optional: true 900 | 901 | '@img/sharp-wasm32@0.34.5': 902 | dependencies: 903 | '@emnapi/runtime': 1.7.1 904 | optional: true 905 | 906 | '@img/sharp-win32-arm64@0.34.5': 907 | optional: true 908 | 909 | '@img/sharp-win32-ia32@0.34.5': 910 | optional: true 911 | 912 | '@img/sharp-win32-x64@0.34.5': 913 | optional: true 914 | 915 | '@next/env@15.5.9': {} 916 | 917 | '@next/swc-darwin-arm64@15.5.7': 918 | optional: true 919 | 920 | '@next/swc-darwin-x64@15.5.7': 921 | optional: true 922 | 923 | '@next/swc-linux-arm64-gnu@15.5.7': 924 | optional: true 925 | 926 | '@next/swc-linux-arm64-musl@15.5.7': 927 | optional: true 928 | 929 | '@next/swc-linux-x64-gnu@15.5.7': 930 | optional: true 931 | 932 | '@next/swc-linux-x64-musl@15.5.7': 933 | optional: true 934 | 935 | '@next/swc-win32-arm64-msvc@15.5.7': 936 | optional: true 937 | 938 | '@next/swc-win32-x64-msvc@15.5.7': 939 | optional: true 940 | 941 | '@swc/helpers@0.5.15': 942 | dependencies: 943 | tslib: 2.8.1 944 | 945 | '@tanstack/query-core@5.90.12': {} 946 | 947 | '@tanstack/react-query@5.90.12(react@19.2.3)': 948 | dependencies: 949 | '@tanstack/query-core': 5.90.12 950 | react: 19.2.3 951 | 952 | '@trpc/client@11.8.1-canary.14(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(typescript@5.9.3)': 953 | dependencies: 954 | '@trpc/server': 11.8.1-canary.14(typescript@5.9.3) 955 | typescript: 5.9.3 956 | 957 | '@trpc/next@11.8.1-canary.14(@tanstack/react-query@5.90.12(react@19.2.3))(@trpc/client@11.8.1-canary.14(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(typescript@5.9.3))(@trpc/react-query@11.8.1-canary.14(@tanstack/react-query@5.90.12(react@19.2.3))(@trpc/client@11.8.1-canary.14(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(next@15.5.9(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': 958 | dependencies: 959 | '@trpc/client': 11.8.1-canary.14(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(typescript@5.9.3) 960 | '@trpc/server': 11.8.1-canary.14(typescript@5.9.3) 961 | next: 15.5.9(react-dom@19.2.3(react@19.2.3))(react@19.2.3) 962 | react: 19.2.3 963 | react-dom: 19.2.3(react@19.2.3) 964 | typescript: 5.9.3 965 | optionalDependencies: 966 | '@tanstack/react-query': 5.90.12(react@19.2.3) 967 | '@trpc/react-query': 11.8.1-canary.14(@tanstack/react-query@5.90.12(react@19.2.3))(@trpc/client@11.8.1-canary.14(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) 968 | 969 | '@trpc/react-query@11.8.1-canary.14(@tanstack/react-query@5.90.12(react@19.2.3))(@trpc/client@11.8.1-canary.14(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': 970 | dependencies: 971 | '@tanstack/react-query': 5.90.12(react@19.2.3) 972 | '@trpc/client': 11.8.1-canary.14(@trpc/server@11.8.1-canary.14(typescript@5.9.3))(typescript@5.9.3) 973 | '@trpc/server': 11.8.1-canary.14(typescript@5.9.3) 974 | react: 19.2.3 975 | react-dom: 19.2.3(react@19.2.3) 976 | typescript: 5.9.3 977 | 978 | '@trpc/server@11.8.1-canary.14(typescript@5.9.3)': 979 | dependencies: 980 | typescript: 5.9.3 981 | 982 | '@types/estree@1.0.8': {} 983 | 984 | '@types/json-schema@7.0.15': {} 985 | 986 | '@types/node@22.19.3': 987 | dependencies: 988 | undici-types: 6.21.0 989 | 990 | '@types/react-dom@19.2.3(@types/react@19.2.7)': 991 | dependencies: 992 | '@types/react': 19.2.7 993 | 994 | '@types/react@19.2.7': 995 | dependencies: 996 | csstype: 3.2.3 997 | 998 | acorn-jsx@5.3.2(acorn@8.15.0): 999 | dependencies: 1000 | acorn: 8.15.0 1001 | 1002 | acorn@8.15.0: {} 1003 | 1004 | ajv@6.12.6: 1005 | dependencies: 1006 | fast-deep-equal: 3.1.3 1007 | fast-json-stable-stringify: 2.1.0 1008 | json-schema-traverse: 0.4.1 1009 | uri-js: 4.4.1 1010 | 1011 | ansi-styles@4.3.0: 1012 | dependencies: 1013 | color-convert: 2.0.1 1014 | 1015 | argparse@2.0.1: {} 1016 | 1017 | balanced-match@1.0.2: {} 1018 | 1019 | brace-expansion@1.1.12: 1020 | dependencies: 1021 | balanced-match: 1.0.2 1022 | concat-map: 0.0.1 1023 | 1024 | callsites@3.1.0: {} 1025 | 1026 | caniuse-lite@1.0.30001761: {} 1027 | 1028 | chalk@4.1.2: 1029 | dependencies: 1030 | ansi-styles: 4.3.0 1031 | supports-color: 7.2.0 1032 | 1033 | client-only@0.0.1: {} 1034 | 1035 | color-convert@2.0.1: 1036 | dependencies: 1037 | color-name: 1.1.4 1038 | 1039 | color-name@1.1.4: {} 1040 | 1041 | concat-map@0.0.1: {} 1042 | 1043 | copy-anything@3.0.5: 1044 | dependencies: 1045 | is-what: 4.1.16 1046 | 1047 | cross-spawn@7.0.6: 1048 | dependencies: 1049 | path-key: 3.1.1 1050 | shebang-command: 2.0.0 1051 | which: 2.0.2 1052 | 1053 | csstype@3.2.3: {} 1054 | 1055 | debug@4.4.3: 1056 | dependencies: 1057 | ms: 2.1.3 1058 | 1059 | deep-is@0.1.4: {} 1060 | 1061 | detect-libc@2.1.2: 1062 | optional: true 1063 | 1064 | escape-string-regexp@4.0.0: {} 1065 | 1066 | eslint-scope@8.4.0: 1067 | dependencies: 1068 | esrecurse: 4.3.0 1069 | estraverse: 5.3.0 1070 | 1071 | eslint-visitor-keys@3.4.3: {} 1072 | 1073 | eslint-visitor-keys@4.2.1: {} 1074 | 1075 | eslint@9.39.2: 1076 | dependencies: 1077 | '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2) 1078 | '@eslint-community/regexpp': 4.12.2 1079 | '@eslint/config-array': 0.21.1 1080 | '@eslint/config-helpers': 0.4.2 1081 | '@eslint/core': 0.17.0 1082 | '@eslint/eslintrc': 3.3.3 1083 | '@eslint/js': 9.39.2 1084 | '@eslint/plugin-kit': 0.4.1 1085 | '@humanfs/node': 0.16.7 1086 | '@humanwhocodes/module-importer': 1.0.1 1087 | '@humanwhocodes/retry': 0.4.3 1088 | '@types/estree': 1.0.8 1089 | ajv: 6.12.6 1090 | chalk: 4.1.2 1091 | cross-spawn: 7.0.6 1092 | debug: 4.4.3 1093 | escape-string-regexp: 4.0.0 1094 | eslint-scope: 8.4.0 1095 | eslint-visitor-keys: 4.2.1 1096 | espree: 10.4.0 1097 | esquery: 1.6.0 1098 | esutils: 2.0.3 1099 | fast-deep-equal: 3.1.3 1100 | file-entry-cache: 8.0.0 1101 | find-up: 5.0.0 1102 | glob-parent: 6.0.2 1103 | ignore: 5.3.2 1104 | imurmurhash: 0.1.4 1105 | is-glob: 4.0.3 1106 | json-stable-stringify-without-jsonify: 1.0.1 1107 | lodash.merge: 4.6.2 1108 | minimatch: 3.1.2 1109 | natural-compare: 1.4.0 1110 | optionator: 0.9.4 1111 | transitivePeerDependencies: 1112 | - supports-color 1113 | 1114 | espree@10.4.0: 1115 | dependencies: 1116 | acorn: 8.15.0 1117 | acorn-jsx: 5.3.2(acorn@8.15.0) 1118 | eslint-visitor-keys: 4.2.1 1119 | 1120 | esquery@1.6.0: 1121 | dependencies: 1122 | estraverse: 5.3.0 1123 | 1124 | esrecurse@4.3.0: 1125 | dependencies: 1126 | estraverse: 5.3.0 1127 | 1128 | estraverse@5.3.0: {} 1129 | 1130 | esutils@2.0.3: {} 1131 | 1132 | fast-deep-equal@3.1.3: {} 1133 | 1134 | fast-json-stable-stringify@2.1.0: {} 1135 | 1136 | fast-levenshtein@2.0.6: {} 1137 | 1138 | file-entry-cache@8.0.0: 1139 | dependencies: 1140 | flat-cache: 4.0.1 1141 | 1142 | find-up@5.0.0: 1143 | dependencies: 1144 | locate-path: 6.0.0 1145 | path-exists: 4.0.0 1146 | 1147 | flat-cache@4.0.1: 1148 | dependencies: 1149 | flatted: 3.3.3 1150 | keyv: 4.5.4 1151 | 1152 | flatted@3.3.3: {} 1153 | 1154 | glob-parent@6.0.2: 1155 | dependencies: 1156 | is-glob: 4.0.3 1157 | 1158 | globals@14.0.0: {} 1159 | 1160 | has-flag@4.0.0: {} 1161 | 1162 | ignore@5.3.2: {} 1163 | 1164 | import-fresh@3.3.1: 1165 | dependencies: 1166 | parent-module: 1.0.1 1167 | resolve-from: 4.0.0 1168 | 1169 | imurmurhash@0.1.4: {} 1170 | 1171 | is-extglob@2.1.1: {} 1172 | 1173 | is-glob@4.0.3: 1174 | dependencies: 1175 | is-extglob: 2.1.1 1176 | 1177 | is-what@4.1.16: {} 1178 | 1179 | isexe@2.0.0: {} 1180 | 1181 | js-yaml@4.1.1: 1182 | dependencies: 1183 | argparse: 2.0.1 1184 | 1185 | json-buffer@3.0.1: {} 1186 | 1187 | json-schema-traverse@0.4.1: {} 1188 | 1189 | json-stable-stringify-without-jsonify@1.0.1: {} 1190 | 1191 | keyv@4.5.4: 1192 | dependencies: 1193 | json-buffer: 3.0.1 1194 | 1195 | levn@0.4.1: 1196 | dependencies: 1197 | prelude-ls: 1.2.1 1198 | type-check: 0.4.0 1199 | 1200 | locate-path@6.0.0: 1201 | dependencies: 1202 | p-locate: 5.0.0 1203 | 1204 | lodash.merge@4.6.2: {} 1205 | 1206 | minimatch@3.1.2: 1207 | dependencies: 1208 | brace-expansion: 1.1.12 1209 | 1210 | ms@2.1.3: {} 1211 | 1212 | nanoid@3.3.11: {} 1213 | 1214 | natural-compare@1.4.0: {} 1215 | 1216 | next@15.5.9(react-dom@19.2.3(react@19.2.3))(react@19.2.3): 1217 | dependencies: 1218 | '@next/env': 15.5.9 1219 | '@swc/helpers': 0.5.15 1220 | caniuse-lite: 1.0.30001761 1221 | postcss: 8.4.31 1222 | react: 19.2.3 1223 | react-dom: 19.2.3(react@19.2.3) 1224 | styled-jsx: 5.1.6(react@19.2.3) 1225 | optionalDependencies: 1226 | '@next/swc-darwin-arm64': 15.5.7 1227 | '@next/swc-darwin-x64': 15.5.7 1228 | '@next/swc-linux-arm64-gnu': 15.5.7 1229 | '@next/swc-linux-arm64-musl': 15.5.7 1230 | '@next/swc-linux-x64-gnu': 15.5.7 1231 | '@next/swc-linux-x64-musl': 15.5.7 1232 | '@next/swc-win32-arm64-msvc': 15.5.7 1233 | '@next/swc-win32-x64-msvc': 15.5.7 1234 | sharp: 0.34.5 1235 | transitivePeerDependencies: 1236 | - '@babel/core' 1237 | - babel-plugin-macros 1238 | 1239 | optionator@0.9.4: 1240 | dependencies: 1241 | deep-is: 0.1.4 1242 | fast-levenshtein: 2.0.6 1243 | levn: 0.4.1 1244 | prelude-ls: 1.2.1 1245 | type-check: 0.4.0 1246 | word-wrap: 1.2.5 1247 | 1248 | p-limit@3.1.0: 1249 | dependencies: 1250 | yocto-queue: 0.1.0 1251 | 1252 | p-locate@5.0.0: 1253 | dependencies: 1254 | p-limit: 3.1.0 1255 | 1256 | parent-module@1.0.1: 1257 | dependencies: 1258 | callsites: 3.1.0 1259 | 1260 | path-exists@4.0.0: {} 1261 | 1262 | path-key@3.1.1: {} 1263 | 1264 | picocolors@1.1.1: {} 1265 | 1266 | postcss@8.4.31: 1267 | dependencies: 1268 | nanoid: 3.3.11 1269 | picocolors: 1.1.1 1270 | source-map-js: 1.2.1 1271 | 1272 | prelude-ls@1.2.1: {} 1273 | 1274 | punycode@2.3.1: {} 1275 | 1276 | react-dom@19.2.3(react@19.2.3): 1277 | dependencies: 1278 | react: 19.2.3 1279 | scheduler: 0.27.0 1280 | 1281 | react@19.2.3: {} 1282 | 1283 | resolve-from@4.0.0: {} 1284 | 1285 | scheduler@0.27.0: {} 1286 | 1287 | semver@7.7.3: 1288 | optional: true 1289 | 1290 | sharp@0.34.5: 1291 | dependencies: 1292 | '@img/colour': 1.0.0 1293 | detect-libc: 2.1.2 1294 | semver: 7.7.3 1295 | optionalDependencies: 1296 | '@img/sharp-darwin-arm64': 0.34.5 1297 | '@img/sharp-darwin-x64': 0.34.5 1298 | '@img/sharp-libvips-darwin-arm64': 1.2.4 1299 | '@img/sharp-libvips-darwin-x64': 1.2.4 1300 | '@img/sharp-libvips-linux-arm': 1.2.4 1301 | '@img/sharp-libvips-linux-arm64': 1.2.4 1302 | '@img/sharp-libvips-linux-ppc64': 1.2.4 1303 | '@img/sharp-libvips-linux-riscv64': 1.2.4 1304 | '@img/sharp-libvips-linux-s390x': 1.2.4 1305 | '@img/sharp-libvips-linux-x64': 1.2.4 1306 | '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 1307 | '@img/sharp-libvips-linuxmusl-x64': 1.2.4 1308 | '@img/sharp-linux-arm': 0.34.5 1309 | '@img/sharp-linux-arm64': 0.34.5 1310 | '@img/sharp-linux-ppc64': 0.34.5 1311 | '@img/sharp-linux-riscv64': 0.34.5 1312 | '@img/sharp-linux-s390x': 0.34.5 1313 | '@img/sharp-linux-x64': 0.34.5 1314 | '@img/sharp-linuxmusl-arm64': 0.34.5 1315 | '@img/sharp-linuxmusl-x64': 0.34.5 1316 | '@img/sharp-wasm32': 0.34.5 1317 | '@img/sharp-win32-arm64': 0.34.5 1318 | '@img/sharp-win32-ia32': 0.34.5 1319 | '@img/sharp-win32-x64': 0.34.5 1320 | optional: true 1321 | 1322 | shebang-command@2.0.0: 1323 | dependencies: 1324 | shebang-regex: 3.0.0 1325 | 1326 | shebang-regex@3.0.0: {} 1327 | 1328 | source-map-js@1.2.1: {} 1329 | 1330 | strip-json-comments@3.1.1: {} 1331 | 1332 | styled-jsx@5.1.6(react@19.2.3): 1333 | dependencies: 1334 | client-only: 0.0.1 1335 | react: 19.2.3 1336 | 1337 | superjson@1.13.3: 1338 | dependencies: 1339 | copy-anything: 3.0.5 1340 | 1341 | supports-color@7.2.0: 1342 | dependencies: 1343 | has-flag: 4.0.0 1344 | 1345 | tslib@2.8.1: {} 1346 | 1347 | type-check@0.4.0: 1348 | dependencies: 1349 | prelude-ls: 1.2.1 1350 | 1351 | typescript@5.9.3: {} 1352 | 1353 | undici-types@6.21.0: {} 1354 | 1355 | uri-js@4.4.1: 1356 | dependencies: 1357 | punycode: 2.3.1 1358 | 1359 | which@2.0.2: 1360 | dependencies: 1361 | isexe: 2.0.0 1362 | 1363 | word-wrap@1.2.5: {} 1364 | 1365 | yocto-queue@0.1.0: {} 1366 | 1367 | zod@3.25.76: {} 1368 | --------------------------------------------------------------------------------