diff --git a/apps/web-next/next.config.mjs b/apps/web-next/next.config.mjs
index 9deda63..124d2d1 100644
--- a/apps/web-next/next.config.mjs
+++ b/apps/web-next/next.config.mjs
@@ -16,6 +16,7 @@ const nextConfig = {
"@repo/marketing-pages",
"@repo/media",
"@repo/navigation",
+ "@repo/core-trpc",
],
};
diff --git a/apps/web-next/package.json b/apps/web-next/package.json
index 5fb6511..78534be 100644
--- a/apps/web-next/package.json
+++ b/apps/web-next/package.json
@@ -19,19 +19,22 @@
"@repo/core-api": "workspace:*",
"@repo/core-cms": "workspace:*",
"@repo/core-shared": "workspace:*",
+ "@repo/core-trpc": "workspace:^",
"@repo/marketing-pages": "workspace:*",
"@repo/media": "workspace:*",
"@repo/navigation": "workspace:*",
"@sentry/nextjs": "^10.51.0",
- "@tanstack/react-query": "^5.66.0",
- "@trpc/server": "^11.0.0",
+ "@tailwindcss/postcss": "^4.3.0",
+ "@tanstack/react-query": "^5.96.2",
+ "@trpc/server": "^11.17.0",
"inversify": "^6.2.0",
"next": "^15.3.0",
"payload": "^3.14.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"reflect-metadata": "^0.2.2",
- "superjson": "^2.2.1"
+ "superjson": "^2.2.1",
+ "tailwindcss": "^4.1.0"
},
"devDependencies": {
"@playwright/test": "^1.50.0",
diff --git a/apps/web-next/src/app/api/trpc/[trpc]/route.ts b/apps/web-next/src/app/api/trpc/[trpc]/route.ts
new file mode 100644
index 0000000..f1fddf3
--- /dev/null
+++ b/apps/web-next/src/app/api/trpc/[trpc]/route.ts
@@ -0,0 +1,15 @@
+import { fetchRequestHandler } from "@trpc/server/adapters/fetch";
+import { appRouter } from "@repo/core-api";
+import { bindAll } from "../../../../server/bind-production";
+
+const handler = async (req: Request) => {
+ await bindAll();
+ return fetchRequestHandler({
+ endpoint: "/api/trpc",
+ req,
+ router: appRouter,
+ createContext: () => ({}),
+ });
+};
+
+export { handler as GET, handler as POST };
diff --git a/apps/web-next/src/app/providers.tsx b/apps/web-next/src/app/providers.tsx
index ea9aa55..3f7c3e4 100644
--- a/apps/web-next/src/app/providers.tsx
+++ b/apps/web-next/src/app/providers.tsx
@@ -1,5 +1,7 @@
"use client";
+import { NextTrpcProvider } from "@repo/core-trpc/next";
+
export function Providers({ children }: { children: React.ReactNode }) {
- return <>{children}>;
+ return {children};
}
diff --git a/docs/library-decisions/2026-05-14-@trpc/react-query.md b/docs/library-decisions/2026-05-14-@trpc/react-query.md
new file mode 100644
index 0000000..bd05098
--- /dev/null
+++ b/docs/library-decisions/2026-05-14-@trpc/react-query.md
@@ -0,0 +1,69 @@
+---
+package: "@trpc/react-query"
+version: "^11.0.0"
+tier: core
+decision: approved
+date: 2026-05-14
+deciders: [scaffolded]
+adr: null
+is-sub-processor: false
+processes-pii: false
+filter-results:
+ license: MIT
+ types: native
+ maintenance: active
+ boundary-fit: pass
+ shadow-check: pass
+ eu-residency: n/a
+ cve-scan: clean
+ named-consumer: pass
+ socketRisk: skip
+verification-commands:
+ - pnpm audit --audit-level=moderate
+ - npm view @trpc/react-query license
+accepted-cves: []
+---
+
+## Filter: license
+
+MIT — on the workspace allowlist.
+
+## Filter: types
+
+Ships first-party TypeScript types; deeply integrated with tRPC's type inference.
+
+## Filter: maintenance
+
+Active. Maintained by the tRPC team alongside `@trpc/server` and `@trpc/client`.
+
+## Filter: boundary-fit
+
+Core package. The React Query integration bridge belongs in `core-trpc` alongside its sibling tRPC packages. No boundary rule violation.
+
+## Filter: shadow-check
+
+No other tRPC–React Query bridge in the workspace. No shadow.
+
+## Filter: eu-residency
+
+Client-side integration adapter; no vendor data transmission. n/a.
+
+## Filter: cve-scan
+
+No advisories at adoption time.
+
+## Filter: named-consumer
+
+`core-trpc` re-exports `@trpc/react-query` hooks for use in Next.js feature pages.
+
+## Prompt: replaces
+
+Nothing — this is the initial tRPC scaffold.
+
+## Prompt: migration-cost-out
+
+Hard: hooks are tRPC-procedure-typed; migrating away requires replacing all call sites.
+
+## Prompt: alternatives-considered
+
+This package is the canonical integration point between `@trpc/client` and `@tanstack/react-query`. No viable alternative exists.
diff --git a/docs/library-decisions/2026-05-14-@trpc/tanstack-react-query.md b/docs/library-decisions/2026-05-14-@trpc/tanstack-react-query.md
new file mode 100644
index 0000000..6ad57ee
--- /dev/null
+++ b/docs/library-decisions/2026-05-14-@trpc/tanstack-react-query.md
@@ -0,0 +1,69 @@
+---
+package: "@trpc/tanstack-react-query"
+version: "^11.1.0"
+tier: core
+decision: approved
+date: 2026-05-14
+deciders: [scaffolded]
+adr: null
+is-sub-processor: false
+processes-pii: false
+filter-results:
+ license: MIT
+ types: native
+ maintenance: active
+ boundary-fit: pass
+ shadow-check: pass
+ eu-residency: n/a
+ cve-scan: clean
+ named-consumer: pass
+ socketRisk: skip
+verification-commands:
+ - pnpm audit --audit-level=moderate
+ - npm view @trpc/tanstack-react-query license
+accepted-cves: []
+---
+
+## Filter: license
+
+MIT — on the workspace allowlist.
+
+## Filter: types
+
+Ships first-party TypeScript types; part of the tRPC v11 adapter suite.
+
+## Filter: maintenance
+
+Active. Maintained by the tRPC team as part of the v11 TanStack Start integration.
+
+## Filter: boundary-fit
+
+Core package. Required for the TanStack Start provider (`core-trpc/tanstack`). No boundary rule violation.
+
+## Filter: shadow-check
+
+No duplicate TanStack adapter in the workspace. No shadow.
+
+## Filter: eu-residency
+
+Client-side integration adapter; no vendor data transmission. n/a.
+
+## Filter: cve-scan
+
+No advisories at adoption time.
+
+## Filter: named-consumer
+
+`core-trpc` exposes a TanStack Start provider via `@trpc/tanstack-react-query` for `apps/web-tanstack`.
+
+## Prompt: replaces
+
+Nothing — this is the initial tRPC scaffold.
+
+## Prompt: migration-cost-out
+
+Hard: the TanStack provider is shaped around this adapter's API; replacing requires re-implementing the provider.
+
+## Prompt: alternatives-considered
+
+This is the official tRPC adapter for TanStack Start. No viable alternative exists.
diff --git a/packages/core-trpc/eslint.config.js b/packages/core-trpc/eslint.config.js
new file mode 100644
index 0000000..7440d8f
--- /dev/null
+++ b/packages/core-trpc/eslint.config.js
@@ -0,0 +1,3 @@
+import baseConfig from "@repo/core-eslint/base";
+
+export default baseConfig;
diff --git a/packages/core-trpc/package.json b/packages/core-trpc/package.json
new file mode 100644
index 0000000..da39811
--- /dev/null
+++ b/packages/core-trpc/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "@repo/core-trpc",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "exports": {
+ ".": "./src/index.ts",
+ "./next": "./src/providers/next-provider.tsx",
+ "./tanstack": "./src/providers/tanstack-provider.tsx"
+ },
+ "scripts": {
+ "build": "tsc --noEmit",
+ "lint": "eslint .",
+ "typecheck": "tsc --noEmit",
+ "test": "vitest run --passWithNoTests"
+ },
+ "dependencies": {
+ "@repo/core-api": "workspace:*",
+ "@tanstack/react-query": "^5.66.0",
+ "@trpc/client": "^11.17.0",
+ "@trpc/react-query": "^11.17.0",
+ "@trpc/server": "^11.17.0",
+ "@trpc/tanstack-react-query": "^11.17.0",
+ "react": "^19.0.0",
+ "superjson": "^2.2.1"
+ },
+ "devDependencies": {
+ "@repo/core-eslint": "workspace:*",
+ "@repo/core-testing": "workspace:*",
+ "@repo/core-typescript": "workspace:*",
+ "@testing-library/jest-dom": "^6.5.0",
+ "@testing-library/react": "^16.0.0",
+ "@types/react": "^19.0.0",
+ "jsdom": "^25.0.0",
+ "vitest": "^3.0.0"
+ }
+}
diff --git a/packages/core-trpc/src/client.test.ts b/packages/core-trpc/src/client.test.ts
new file mode 100644
index 0000000..e998a06
--- /dev/null
+++ b/packages/core-trpc/src/client.test.ts
@@ -0,0 +1,12 @@
+import { describe, it, expect } from "vitest";
+import { useTRPC, TRPCProvider } from "./client";
+
+describe("core-trpc client exports", () => {
+ it("exports useTRPC hook", () => {
+ expect(useTRPC).toBeTypeOf("function");
+ });
+
+ it("exports TRPCProvider component", () => {
+ expect(TRPCProvider).toBeTypeOf("function");
+ });
+});
diff --git a/packages/core-trpc/src/client.ts b/packages/core-trpc/src/client.ts
new file mode 100644
index 0000000..722b8c1
--- /dev/null
+++ b/packages/core-trpc/src/client.ts
@@ -0,0 +1,6 @@
+"use client";
+
+import { createTRPCContext } from "@trpc/tanstack-react-query";
+import type { AppRouter } from "@repo/core-api";
+
+export const { TRPCProvider, useTRPC } = createTRPCContext();
diff --git a/packages/core-trpc/src/index.ts b/packages/core-trpc/src/index.ts
new file mode 100644
index 0000000..7b27b5d
--- /dev/null
+++ b/packages/core-trpc/src/index.ts
@@ -0,0 +1,3 @@
+export { useTRPC, TRPCProvider } from "./client";
+export { getQueryClient } from "./query-client";
+export type { AppRouter } from "@repo/core-api";
diff --git a/packages/core-trpc/src/providers/next-provider.tsx b/packages/core-trpc/src/providers/next-provider.tsx
new file mode 100644
index 0000000..dc4b9d8
--- /dev/null
+++ b/packages/core-trpc/src/providers/next-provider.tsx
@@ -0,0 +1,40 @@
+"use client";
+
+import { useState } from "react";
+import { QueryClientProvider } from "@tanstack/react-query";
+import { createTRPCClient, httpBatchLink } from "@trpc/client";
+import superjson from "superjson";
+import type { AppRouter } from "@repo/core-api";
+import { TRPCProvider } from "../client";
+import { getQueryClient } from "../query-client";
+
+function getBaseUrl() {
+ if (typeof window !== "undefined") return "";
+ return `http://localhost:${process.env.PORT ?? 3000}`;
+}
+
+export function NextTrpcProvider({
+ children,
+ trpcUrl = "/api/trpc",
+}: {
+ children: React.ReactNode;
+ trpcUrl?: string;
+}) {
+ const [queryClient] = useState(() => getQueryClient());
+ const [trpcClient] = useState(() =>
+ createTRPCClient({
+ links: [
+ httpBatchLink({
+ url: `${getBaseUrl()}${trpcUrl}`,
+ transformer: superjson,
+ }),
+ ],
+ }),
+ );
+
+ return (
+
+ {children}
+
+ );
+}
diff --git a/packages/core-trpc/src/providers/tanstack-provider.tsx b/packages/core-trpc/src/providers/tanstack-provider.tsx
new file mode 100644
index 0000000..0f48647
--- /dev/null
+++ b/packages/core-trpc/src/providers/tanstack-provider.tsx
@@ -0,0 +1,30 @@
+"use client";
+
+import { useState } from "react";
+import { QueryClientProvider } from "@tanstack/react-query";
+import { createTRPCClient, httpBatchLink } from "@trpc/client";
+import superjson from "superjson";
+import type { AppRouter } from "@repo/core-api";
+import { TRPCProvider } from "../client";
+import { getQueryClient } from "../query-client";
+
+export function TanstackTrpcProvider({
+ children,
+ trpcUrl,
+}: {
+ children: React.ReactNode;
+ trpcUrl: string;
+}) {
+ const [queryClient] = useState(() => getQueryClient());
+ const [trpcClient] = useState(() =>
+ createTRPCClient({
+ links: [httpBatchLink({ url: trpcUrl, transformer: superjson })],
+ }),
+ );
+
+ return (
+
+ {children}
+
+ );
+}
diff --git a/packages/core-trpc/src/query-client.ts b/packages/core-trpc/src/query-client.ts
new file mode 100644
index 0000000..fd496f0
--- /dev/null
+++ b/packages/core-trpc/src/query-client.ts
@@ -0,0 +1,22 @@
+import { QueryClient } from "@tanstack/react-query";
+
+let clientQueryClient: QueryClient | undefined;
+
+const defaultOptions = {
+ queries: {
+ staleTime: 30 * 1000,
+ refetchOnWindowFocus: false,
+ },
+};
+
+export function getQueryClient(): QueryClient {
+ if (typeof window === "undefined") {
+ // Server: always create a new instance per request
+ return new QueryClient({ defaultOptions });
+ }
+ // Browser: singleton
+ if (!clientQueryClient) {
+ clientQueryClient = new QueryClient({ defaultOptions });
+ }
+ return clientQueryClient;
+}
diff --git a/packages/core-trpc/tsconfig.json b/packages/core-trpc/tsconfig.json
new file mode 100644
index 0000000..cd8d483
--- /dev/null
+++ b/packages/core-trpc/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "extends": "@repo/core-typescript/base.json",
+ "compilerOptions": {
+ "outDir": "dist",
+ "rootDir": ".",
+ "lib": ["ES2022", "DOM"],
+ "jsx": "preserve",
+ "declaration": false,
+ "declarationMap": false,
+ "types": ["vitest/globals", "@testing-library/jest-dom"],
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ },
+ "include": ["src/**/*"],
+ "exclude": ["node_modules", "dist"]
+}
diff --git a/packages/core-trpc/turbo.json b/packages/core-trpc/turbo.json
new file mode 100644
index 0000000..abaadc9
--- /dev/null
+++ b/packages/core-trpc/turbo.json
@@ -0,0 +1,4 @@
+{
+ "extends": ["//"],
+ "tags": ["core-composition"]
+}
diff --git a/packages/core-trpc/vitest.config.ts b/packages/core-trpc/vitest.config.ts
new file mode 100644
index 0000000..ccf910f
--- /dev/null
+++ b/packages/core-trpc/vitest.config.ts
@@ -0,0 +1,7 @@
+import path from "node:path";
+import { mergeConfig } from "vitest/config";
+import { jsdomVitestConfig } from "@repo/core-typescript/vitest.base.jsdom";
+
+export default mergeConfig(jsdomVitestConfig, {
+ resolve: { alias: { "@": path.resolve(__dirname, "./src") } },
+});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index fce7bbd..6e62c51 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,7 +8,7 @@ importers:
.:
devDependencies:
"@ai-hero/sandcastle":
- specifier: "^0.5.10"
+ specifier: ^0.5.10
version: 0.5.10(@effect/cluster@0.57.0(@effect/platform@0.95.0(effect@3.21.2))(@effect/rpc@0.74.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/sql@0.50.0(@effect/experimental@0.59.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2)(ioredis@5.10.1))(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/workflow@0.17.0(@effect/experimental@0.59.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2)(ioredis@5.10.1))(@effect/platform@0.95.0(effect@3.21.2))(@effect/rpc@0.74.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(effect@3.21.2))(effect@3.21.2))(@effect/rpc@0.74.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/sql@0.50.0(@effect/experimental@0.59.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2)(ioredis@5.10.1))(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/typeclass@0.39.0(effect@3.21.2))
"@playwright/test":
specifier: ^1.49.0
@@ -28,6 +28,9 @@ importers:
"@typescript-eslint/parser":
specifier: ^8.25.0
version: 8.58.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)
+ dotenv-cli:
+ specifier: ^11.0.0
+ version: 11.0.0
fallow:
specifier: ^2.73.0
version: 2.73.0
@@ -182,6 +185,9 @@ importers:
"@repo/core-shared":
specifier: workspace:*
version: link:../../packages/core-shared
+ "@repo/core-trpc":
+ specifier: workspace:^
+ version: link:../../packages/core-trpc
"@repo/marketing-pages":
specifier: workspace:*
version: link:../../packages/marketing-pages
@@ -194,12 +200,15 @@ importers:
"@sentry/nextjs":
specifier: ^10.51.0
version: 10.51.0(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(next@15.5.14(@babel/core@7.25.9)(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(react@19.2.4)(webpack@5.106.2)
+ "@tailwindcss/postcss":
+ specifier: ^4.3.0
+ version: 4.3.0
"@tanstack/react-query":
- specifier: ^5.66.0
+ specifier: ^5.96.2
version: 5.96.2(react@19.2.4)
"@trpc/server":
- specifier: ^11.0.0
- version: 11.16.0(typescript@5.9.3)
+ specifier: ^11.17.0
+ version: 11.17.0(typescript@5.9.3)
inversify:
specifier: ^6.2.0
version: 6.2.2(reflect-metadata@0.2.2)
@@ -221,6 +230,9 @@ importers:
superjson:
specifier: ^2.2.1
version: 2.2.6
+ tailwindcss:
+ specifier: ^4.1.0
+ version: 4.2.2
devDependencies:
"@playwright/test":
specifier: ^1.50.0
@@ -389,6 +401,15 @@ importers:
"@repo/core-shared":
specifier: workspace:*
version: link:../core-shared
+ "@repo/core-trpc":
+ specifier: workspace:^
+ version: link:../core-trpc
+ "@tanstack/react-query":
+ specifier: ^5.66.0
+ version: 5.96.2(react@19.2.4)
+ "@trpc/client":
+ specifier: ^11.17.0
+ version: 11.17.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3)
"@trpc/server":
specifier: ^11.0.0
version: 11.16.0(typescript@5.9.3)
@@ -398,6 +419,9 @@ importers:
payload:
specifier: ^3.14.0
version: 3.81.0(graphql@16.13.2)(typescript@5.9.3)
+ react:
+ specifier: ^19.0.0
+ version: 19.2.4
reflect-metadata:
specifier: ^0.2.2
version: 0.2.2
@@ -417,6 +441,9 @@ importers:
"@types/node":
specifier: ^22.0.0
version: 22.19.17
+ "@types/react":
+ specifier: ^19.0.0
+ version: 19.2.14
"@vitest/coverage-v8":
specifier: ^3.2.4
version: 3.2.4(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.17)(happy-dom@20.8.9)(jiti@2.7.0)(jsdom@25.0.1)(lightningcss@1.32.0)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.9.0))
@@ -871,6 +898,58 @@ importers:
specifier: ^5.8.0
version: 5.9.3
+ packages/core-trpc:
+ dependencies:
+ "@repo/core-api":
+ specifier: workspace:*
+ version: link:../core-api
+ "@tanstack/react-query":
+ specifier: ^5.66.0
+ version: 5.96.2(react@19.2.4)
+ "@trpc/client":
+ specifier: ^11.17.0
+ version: 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3)
+ "@trpc/react-query":
+ specifier: ^11.17.0
+ version: 11.17.0(@tanstack/react-query@5.96.2(react@19.2.4))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3)
+ "@trpc/server":
+ specifier: ^11.17.0
+ version: 11.17.0(typescript@5.9.3)
+ "@trpc/tanstack-react-query":
+ specifier: ^11.17.0
+ version: 11.17.0(@tanstack/react-query@5.96.2(react@19.2.4))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3)
+ react:
+ specifier: ^19.0.0
+ version: 19.2.4
+ superjson:
+ specifier: ^2.2.1
+ version: 2.2.6
+ devDependencies:
+ "@repo/core-eslint":
+ specifier: workspace:*
+ version: link:../core-eslint
+ "@repo/core-testing":
+ specifier: workspace:*
+ version: link:../core-testing
+ "@repo/core-typescript":
+ specifier: workspace:*
+ version: link:../core-typescript
+ "@testing-library/jest-dom":
+ specifier: ^6.5.0
+ version: 6.9.1
+ "@testing-library/react":
+ specifier: ^16.0.0
+ version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ "@types/react":
+ specifier: ^19.0.0
+ version: 19.2.14
+ jsdom:
+ specifier: ^25.0.0
+ version: 25.0.1
+ vitest:
+ specifier: ^3.0.0
+ version: 3.2.4(@types/debug@4.1.13)(@types/node@25.5.2)(happy-dom@20.8.9)(jiti@2.7.0)(jsdom@25.0.1)(lightningcss@1.32.0)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.9.0)
+
packages/core-typescript:
devDependencies:
"@vitest/coverage-v8":
@@ -943,6 +1022,15 @@ importers:
"@repo/core-shared":
specifier: workspace:*
version: link:../core-shared
+ "@repo/core-trpc":
+ specifier: workspace:^
+ version: link:../core-trpc
+ "@tanstack/react-query":
+ specifier: ^5.66.0
+ version: 5.96.2(react@19.2.4)
+ "@trpc/client":
+ specifier: ^11.17.0
+ version: 11.17.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3)
"@trpc/server":
specifier: ^11.0.0
version: 11.16.0(typescript@5.9.3)
@@ -952,6 +1040,9 @@ importers:
payload:
specifier: ^3.14.0
version: 3.81.0(graphql@16.13.2)(typescript@5.9.3)
+ react:
+ specifier: ^19.0.0
+ version: 19.2.4
reflect-metadata:
specifier: ^0.2.2
version: 0.2.2
@@ -971,6 +1062,9 @@ importers:
"@types/node":
specifier: ^22.0.0
version: 22.19.17
+ "@types/react":
+ specifier: ^19.0.0
+ version: 19.2.14
"@vitest/coverage-v8":
specifier: ^3.2.4
version: 3.2.4(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.17)(happy-dom@20.8.9)(jiti@2.7.0)(jsdom@25.0.1)(lightningcss@1.32.0)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.9.0))
@@ -1023,6 +1117,15 @@ importers:
"@repo/core-shared":
specifier: workspace:*
version: link:../core-shared
+ "@repo/core-trpc":
+ specifier: workspace:^
+ version: link:../core-trpc
+ "@tanstack/react-query":
+ specifier: ^5.66.0
+ version: 5.96.2(react@19.2.4)
+ "@trpc/client":
+ specifier: ^11.17.0
+ version: 11.17.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3)
"@trpc/server":
specifier: ^11.0.0
version: 11.16.0(typescript@5.9.3)
@@ -1032,6 +1135,9 @@ importers:
payload:
specifier: ^3.14.0
version: 3.81.0(graphql@16.13.2)(typescript@5.9.3)
+ react:
+ specifier: ^19.0.0
+ version: 19.2.4
reflect-metadata:
specifier: ^0.2.2
version: 0.2.2
@@ -1051,6 +1157,9 @@ importers:
"@types/node":
specifier: ^22.0.0
version: 22.19.17
+ "@types/react":
+ specifier: ^19.0.0
+ version: 19.2.14
"@vitest/coverage-v8":
specifier: ^3.2.4
version: 3.2.4(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.17)(happy-dom@20.8.9)(jiti@2.7.0)(jsdom@25.0.1)(lightningcss@1.32.0)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.9.0))
@@ -1099,6 +1208,13 @@ packages:
"@vercel/sandbox":
optional: true
+ "@alloc/quick-lru@5.2.0":
+ resolution:
+ {
+ integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==,
+ }
+ engines: { node: ">=10" }
+
"@ampproject/remapping@2.3.0":
resolution:
{
@@ -6994,6 +7110,12 @@ packages:
integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==,
}
+ "@tailwindcss/node@4.3.0":
+ resolution:
+ {
+ integrity: sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==,
+ }
+
"@tailwindcss/oxide-android-arm64@4.2.2":
resolution:
{
@@ -7003,6 +7125,15 @@ packages:
cpu: [arm64]
os: [android]
+ "@tailwindcss/oxide-android-arm64@4.3.0":
+ resolution:
+ {
+ integrity: sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [arm64]
+ os: [android]
+
"@tailwindcss/oxide-darwin-arm64@4.2.2":
resolution:
{
@@ -7012,6 +7143,15 @@ packages:
cpu: [arm64]
os: [darwin]
+ "@tailwindcss/oxide-darwin-arm64@4.3.0":
+ resolution:
+ {
+ integrity: sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [arm64]
+ os: [darwin]
+
"@tailwindcss/oxide-darwin-x64@4.2.2":
resolution:
{
@@ -7021,6 +7161,15 @@ packages:
cpu: [x64]
os: [darwin]
+ "@tailwindcss/oxide-darwin-x64@4.3.0":
+ resolution:
+ {
+ integrity: sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [x64]
+ os: [darwin]
+
"@tailwindcss/oxide-freebsd-x64@4.2.2":
resolution:
{
@@ -7030,6 +7179,15 @@ packages:
cpu: [x64]
os: [freebsd]
+ "@tailwindcss/oxide-freebsd-x64@4.3.0":
+ resolution:
+ {
+ integrity: sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [x64]
+ os: [freebsd]
+
"@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2":
resolution:
{
@@ -7039,6 +7197,15 @@ packages:
cpu: [arm]
os: [linux]
+ "@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0":
+ resolution:
+ {
+ integrity: sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [arm]
+ os: [linux]
+
"@tailwindcss/oxide-linux-arm64-gnu@4.2.2":
resolution:
{
@@ -7048,6 +7215,15 @@ packages:
cpu: [arm64]
os: [linux]
+ "@tailwindcss/oxide-linux-arm64-gnu@4.3.0":
+ resolution:
+ {
+ integrity: sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [arm64]
+ os: [linux]
+
"@tailwindcss/oxide-linux-arm64-musl@4.2.2":
resolution:
{
@@ -7057,6 +7233,15 @@ packages:
cpu: [arm64]
os: [linux]
+ "@tailwindcss/oxide-linux-arm64-musl@4.3.0":
+ resolution:
+ {
+ integrity: sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [arm64]
+ os: [linux]
+
"@tailwindcss/oxide-linux-x64-gnu@4.2.2":
resolution:
{
@@ -7066,6 +7251,15 @@ packages:
cpu: [x64]
os: [linux]
+ "@tailwindcss/oxide-linux-x64-gnu@4.3.0":
+ resolution:
+ {
+ integrity: sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [x64]
+ os: [linux]
+
"@tailwindcss/oxide-linux-x64-musl@4.2.2":
resolution:
{
@@ -7075,6 +7269,15 @@ packages:
cpu: [x64]
os: [linux]
+ "@tailwindcss/oxide-linux-x64-musl@4.3.0":
+ resolution:
+ {
+ integrity: sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [x64]
+ os: [linux]
+
"@tailwindcss/oxide-wasm32-wasi@4.2.2":
resolution:
{
@@ -7090,6 +7293,21 @@ packages:
- "@emnapi/wasi-threads"
- tslib
+ "@tailwindcss/oxide-wasm32-wasi@4.3.0":
+ resolution:
+ {
+ integrity: sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==,
+ }
+ engines: { node: ">=14.0.0" }
+ cpu: [wasm32]
+ bundledDependencies:
+ - "@napi-rs/wasm-runtime"
+ - "@emnapi/core"
+ - "@emnapi/runtime"
+ - "@tybys/wasm-util"
+ - "@emnapi/wasi-threads"
+ - tslib
+
"@tailwindcss/oxide-win32-arm64-msvc@4.2.2":
resolution:
{
@@ -7099,6 +7317,15 @@ packages:
cpu: [arm64]
os: [win32]
+ "@tailwindcss/oxide-win32-arm64-msvc@4.3.0":
+ resolution:
+ {
+ integrity: sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [arm64]
+ os: [win32]
+
"@tailwindcss/oxide-win32-x64-msvc@4.2.2":
resolution:
{
@@ -7108,6 +7335,15 @@ packages:
cpu: [x64]
os: [win32]
+ "@tailwindcss/oxide-win32-x64-msvc@4.3.0":
+ resolution:
+ {
+ integrity: sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [x64]
+ os: [win32]
+
"@tailwindcss/oxide@4.2.2":
resolution:
{
@@ -7115,6 +7351,19 @@ packages:
}
engines: { node: ">= 20" }
+ "@tailwindcss/oxide@4.3.0":
+ resolution:
+ {
+ integrity: sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==,
+ }
+ engines: { node: ">= 20" }
+
+ "@tailwindcss/postcss@4.3.0":
+ resolution:
+ {
+ integrity: sha512-Jm05Tjx+9yCLGv5qw1c+84Psds8MnyrEQYCB+FFk2lgGiUjlRqdxke4mVTuYrj2xnVZqKim2Apr5ySuQRYAw/w==,
+ }
+
"@tailwindcss/vite@4.2.2":
resolution:
{
@@ -7569,6 +7818,28 @@ packages:
"@trpc/server": 11.16.0
typescript: ">=5.7.2"
+ "@trpc/client@11.17.0":
+ resolution:
+ {
+ integrity: sha512-KpJBFrbKTDeVCFv/3ckL1XBBH5Yssn8hethI/rUy7GIpTj+VzjtPjykDqJpzobuVOz+d26cXCSu1t4I6MYI5Zg==,
+ }
+ hasBin: true
+ peerDependencies:
+ "@trpc/server": 11.17.0
+ typescript: ">=5.7.2"
+
+ "@trpc/react-query@11.17.0":
+ resolution:
+ {
+ integrity: sha512-AGcl5YAF8NnhBmyJ6PqJqKb1M5VTGSoNRNqJ3orct4o4epdcg0GWhW+qT9q6gPzs/2ImIwYCdfFpgNGdZ9yLHA==,
+ }
+ peerDependencies:
+ "@tanstack/react-query": ^5.80.3
+ "@trpc/client": 11.17.0
+ "@trpc/server": 11.17.0
+ react: ">=18.2.0"
+ typescript: ">=5.7.2"
+
"@trpc/server@11.16.0":
resolution:
{
@@ -7578,6 +7849,28 @@ packages:
peerDependencies:
typescript: ">=5.7.2"
+ "@trpc/server@11.17.0":
+ resolution:
+ {
+ integrity: sha512-jbAOUe0PpUTCYqziyu+8vYXZdDXPudZgnEhWCQ2NjKnVEjfE93RqHTt1oycZJv/HNf51YlRXfEEwSIAbb161rw==,
+ }
+ hasBin: true
+ peerDependencies:
+ typescript: ">=5.7.2"
+
+ "@trpc/tanstack-react-query@11.17.0":
+ resolution:
+ {
+ integrity: sha512-OFxjvCgisP0yaCj7lgP6qPaFwJvJDgnrAUxH3cNIPPR89TpYbndn5vsdKNkc7EnvER9b6wq9Yz8aCcPcOBpDXg==,
+ }
+ hasBin: true
+ peerDependencies:
+ "@tanstack/react-query": ^5.80.3
+ "@trpc/client": 11.17.0
+ "@trpc/server": 11.17.0
+ react: ">=18.2.0"
+ typescript: ">=5.7.2"
+
"@turbo/darwin-64@2.9.4":
resolution:
{
@@ -9914,6 +10207,20 @@ packages:
}
engines: { node: ">=20" }
+ dotenv-cli@11.0.0:
+ resolution:
+ {
+ integrity: sha512-r5pA8idbk7GFWuHEU7trSTflWcdBpQEK+Aw17UrSHjS6CReuhrrPcyC3zcQBPQvhArRHnBo/h6eLH1fkCvNlww==,
+ }
+ hasBin: true
+
+ dotenv-expand@12.0.3:
+ resolution:
+ {
+ integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==,
+ }
+ engines: { node: ">=12" }
+
dotenv@16.0.3:
resolution:
{
@@ -10131,6 +10438,13 @@ packages:
}
engines: { node: ">=10.13.0" }
+ enhanced-resolve@5.22.0:
+ resolution:
+ {
+ integrity: sha512-xYcDWrpELkFzz9SpZ3PlI6Eu6eD93Yf0WLDRxikGhWJ3MAir2SNZTIVCVZqZ/NUyx8AdMc2gT9C0gPiw18kG+A==,
+ }
+ engines: { node: ">=10.13.0" }
+
entities@1.1.2:
resolution:
{
@@ -13301,6 +13615,14 @@ packages:
engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 }
hasBin: true
+ nanoid@3.3.12:
+ resolution:
+ {
+ integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==,
+ }
+ engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 }
+ hasBin: true
+
natural-compare@1.4.0:
resolution:
{
@@ -14032,6 +14354,13 @@ packages:
}
engines: { node: ^10 || ^12 || >=14 }
+ postcss@8.5.15:
+ resolution:
+ {
+ integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==,
+ }
+ engines: { node: ^10 || ^12 || >=14 }
+
postcss@8.5.8:
resolution:
{
@@ -15472,6 +15801,12 @@ packages:
integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==,
}
+ tailwindcss@4.3.0:
+ resolution:
+ {
+ integrity: sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==,
+ }
+
tapable@2.3.2:
resolution:
{
@@ -15479,6 +15814,13 @@ packages:
}
engines: { node: ">=6" }
+ tapable@2.3.3:
+ resolution:
+ {
+ integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==,
+ }
+ engines: { node: ">=6" }
+
tar-stream@3.2.0:
resolution:
{
@@ -16822,6 +17164,8 @@ snapshots:
- bufferutil
- utf-8-validate
+ "@alloc/quick-lru@5.2.0": {}
+
"@ampproject/remapping@2.3.0":
dependencies:
"@jridgewell/gen-mapping": 0.3.13
@@ -21111,42 +21455,88 @@ snapshots:
source-map-js: 1.2.1
tailwindcss: 4.2.2
+ "@tailwindcss/node@4.3.0":
+ dependencies:
+ "@jridgewell/remapping": 2.3.5
+ enhanced-resolve: 5.22.0
+ jiti: 2.7.0
+ lightningcss: 1.32.0
+ magic-string: 0.30.21
+ source-map-js: 1.2.1
+ tailwindcss: 4.3.0
+
"@tailwindcss/oxide-android-arm64@4.2.2":
optional: true
+ "@tailwindcss/oxide-android-arm64@4.3.0":
+ optional: true
+
"@tailwindcss/oxide-darwin-arm64@4.2.2":
optional: true
+ "@tailwindcss/oxide-darwin-arm64@4.3.0":
+ optional: true
+
"@tailwindcss/oxide-darwin-x64@4.2.2":
optional: true
+ "@tailwindcss/oxide-darwin-x64@4.3.0":
+ optional: true
+
"@tailwindcss/oxide-freebsd-x64@4.2.2":
optional: true
+ "@tailwindcss/oxide-freebsd-x64@4.3.0":
+ optional: true
+
"@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2":
optional: true
+ "@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0":
+ optional: true
+
"@tailwindcss/oxide-linux-arm64-gnu@4.2.2":
optional: true
+ "@tailwindcss/oxide-linux-arm64-gnu@4.3.0":
+ optional: true
+
"@tailwindcss/oxide-linux-arm64-musl@4.2.2":
optional: true
+ "@tailwindcss/oxide-linux-arm64-musl@4.3.0":
+ optional: true
+
"@tailwindcss/oxide-linux-x64-gnu@4.2.2":
optional: true
+ "@tailwindcss/oxide-linux-x64-gnu@4.3.0":
+ optional: true
+
"@tailwindcss/oxide-linux-x64-musl@4.2.2":
optional: true
+ "@tailwindcss/oxide-linux-x64-musl@4.3.0":
+ optional: true
+
"@tailwindcss/oxide-wasm32-wasi@4.2.2":
optional: true
+ "@tailwindcss/oxide-wasm32-wasi@4.3.0":
+ optional: true
+
"@tailwindcss/oxide-win32-arm64-msvc@4.2.2":
optional: true
+ "@tailwindcss/oxide-win32-arm64-msvc@4.3.0":
+ optional: true
+
"@tailwindcss/oxide-win32-x64-msvc@4.2.2":
optional: true
+ "@tailwindcss/oxide-win32-x64-msvc@4.3.0":
+ optional: true
+
"@tailwindcss/oxide@4.2.2":
optionalDependencies:
"@tailwindcss/oxide-android-arm64": 4.2.2
@@ -21162,6 +21552,29 @@ snapshots:
"@tailwindcss/oxide-win32-arm64-msvc": 4.2.2
"@tailwindcss/oxide-win32-x64-msvc": 4.2.2
+ "@tailwindcss/oxide@4.3.0":
+ optionalDependencies:
+ "@tailwindcss/oxide-android-arm64": 4.3.0
+ "@tailwindcss/oxide-darwin-arm64": 4.3.0
+ "@tailwindcss/oxide-darwin-x64": 4.3.0
+ "@tailwindcss/oxide-freebsd-x64": 4.3.0
+ "@tailwindcss/oxide-linux-arm-gnueabihf": 4.3.0
+ "@tailwindcss/oxide-linux-arm64-gnu": 4.3.0
+ "@tailwindcss/oxide-linux-arm64-musl": 4.3.0
+ "@tailwindcss/oxide-linux-x64-gnu": 4.3.0
+ "@tailwindcss/oxide-linux-x64-musl": 4.3.0
+ "@tailwindcss/oxide-wasm32-wasi": 4.3.0
+ "@tailwindcss/oxide-win32-arm64-msvc": 4.3.0
+ "@tailwindcss/oxide-win32-x64-msvc": 4.3.0
+
+ "@tailwindcss/postcss@4.3.0":
+ dependencies:
+ "@alloc/quick-lru": 5.2.0
+ "@tailwindcss/node": 4.3.0
+ "@tailwindcss/oxide": 4.3.0
+ postcss: 8.5.15
+ tailwindcss: 4.3.0
+
"@tailwindcss/vite@4.2.2(vite@6.4.2(@types/node@22.19.17)(jiti@2.7.0)(lightningcss@1.32.0)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0)(yaml@2.9.0))":
dependencies:
"@tailwindcss/node": 4.2.2
@@ -21908,10 +22321,40 @@ snapshots:
"@trpc/server": 11.16.0(typescript@5.9.3)
typescript: 5.9.3
+ "@trpc/client@11.17.0(@trpc/server@11.16.0(typescript@5.9.3))(typescript@5.9.3)":
+ dependencies:
+ "@trpc/server": 11.16.0(typescript@5.9.3)
+ typescript: 5.9.3
+
+ "@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3)":
+ dependencies:
+ "@trpc/server": 11.17.0(typescript@5.9.3)
+ typescript: 5.9.3
+
+ "@trpc/react-query@11.17.0(@tanstack/react-query@5.96.2(react@19.2.4))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3)":
+ dependencies:
+ "@tanstack/react-query": 5.96.2(react@19.2.4)
+ "@trpc/client": 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3)
+ "@trpc/server": 11.17.0(typescript@5.9.3)
+ react: 19.2.4
+ typescript: 5.9.3
+
"@trpc/server@11.16.0(typescript@5.9.3)":
dependencies:
typescript: 5.9.3
+ "@trpc/server@11.17.0(typescript@5.9.3)":
+ dependencies:
+ typescript: 5.9.3
+
+ "@trpc/tanstack-react-query@11.17.0(@tanstack/react-query@5.96.2(react@19.2.4))(@trpc/client@11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3))(@trpc/server@11.17.0(typescript@5.9.3))(react@19.2.4)(typescript@5.9.3)":
+ dependencies:
+ "@tanstack/react-query": 5.96.2(react@19.2.4)
+ "@trpc/client": 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3)
+ "@trpc/server": 11.17.0(typescript@5.9.3)
+ react: 19.2.4
+ typescript: 5.9.3
+
"@turbo/darwin-64@2.9.4":
optional: true
@@ -22845,7 +23288,7 @@ snapshots:
dotenv: 17.4.2
exsolve: 1.0.8
giget: 3.2.0
- jiti: 2.6.1
+ jiti: 2.7.0
ohash: 2.0.11
pathe: 2.0.3
perfect-debounce: 2.1.0
@@ -23371,6 +23814,17 @@ snapshots:
dependencies:
type-fest: 5.6.0
+ dotenv-cli@11.0.0:
+ dependencies:
+ cross-spawn: 7.0.6
+ dotenv: 17.4.2
+ dotenv-expand: 12.0.3
+ minimist: 1.2.8
+
+ dotenv-expand@12.0.3:
+ dependencies:
+ dotenv: 16.6.1
+
dotenv@16.0.3: {}
dotenv@16.6.1: {}
@@ -23444,6 +23898,11 @@ snapshots:
graceful-fs: 4.2.11
tapable: 2.3.2
+ enhanced-resolve@5.22.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.3.3
+
entities@1.1.2: {}
entities@2.2.0: {}
@@ -25287,7 +25746,7 @@ snapshots:
get-port-please: 3.2.0
h3: 1.15.11
http-shutdown: 1.2.2
- jiti: 2.6.1
+ jiti: 2.7.0
mlly: 1.8.2
node-forge: 1.4.0
pathe: 2.0.3
@@ -25758,6 +26217,8 @@ snapshots:
nanoid@3.3.11: {}
+ nanoid@3.3.12: {}
+
natural-compare@1.4.0: {}
neo-async@2.6.2: {}
@@ -26352,6 +26813,12 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
+ postcss@8.5.15:
+ dependencies:
+ nanoid: 3.3.12
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
postcss@8.5.8:
dependencies:
nanoid: 3.3.11
@@ -27262,8 +27729,12 @@ snapshots:
tailwindcss@4.2.2: {}
+ tailwindcss@4.3.0: {}
+
tapable@2.3.2: {}
+ tapable@2.3.3: {}
+
tar-stream@3.2.0:
dependencies:
b4a: 1.8.1
@@ -27623,7 +28094,7 @@ snapshots:
dependencies:
citty: 0.1.6
defu: 6.1.7
- jiti: 2.6.1
+ jiti: 2.7.0
knitwork: 1.3.0
scule: 1.3.0
@@ -28012,7 +28483,7 @@ snapshots:
acorn-import-phases: 1.0.4(acorn@8.16.0)
browserslist: 4.28.2
chrome-trace-event: 1.0.4
- enhanced-resolve: 5.20.1
+ enhanced-resolve: 5.22.0
es-module-lexer: 2.1.0
eslint-scope: 5.1.1
events: 3.3.0
@@ -28022,7 +28493,7 @@ snapshots:
mime-db: 1.54.0
neo-async: 2.6.2
schema-utils: 4.3.3
- tapable: 2.3.2
+ tapable: 2.3.3
terser-webpack-plugin: 5.5.0(webpack@5.106.2)
watchpack: 2.5.1
webpack-sources: 3.4.1