fix deps, tsconfig, next-env-vars, zitadel api

This commit is contained in:
Max Peintner
2025-01-14 13:13:57 +01:00
parent c003ea2b22
commit 1736a2b3a0
8 changed files with 308 additions and 177 deletions

33
apps/login/next-env-vars.d.ts vendored Normal file
View File

@@ -0,0 +1,33 @@
declare namespace NodeJS {
interface ProcessEnv {
/**
* The system api url
*/
AUDIENCE: string;
/**
* The system api service user ID
*/
SYSTEM_USER_ID: string;
/**
* The service user key
*/
SYSTEM_USER_PRIVATE_KEY: string;
/**
* The instance url
*/
ZITADEL_API_URL: string;
/**
* The service user id for the instance
*/
ZITADEL_USER_ID: string;
/**
* The service user token for the instance
*/
ZITADEL_USER_TOKEN: string;
}
}

View File

@@ -44,14 +44,15 @@
"clsx": "1.2.1",
"copy-to-clipboard": "^3.3.3",
"deepmerge": "^4.3.1",
"jose": "^5.3.0",
"moment": "^2.29.4",
"next": "15.0.4-canary.23",
"next-intl": "^3.25.1",
"next-themes": "^0.2.1",
"nice-grpc": "2.0.1",
"qrcode.react": "^3.1.0",
"react": "19.0.0-rc-66855b96-20241106",
"react-dom": "19.0.0-rc-66855b96-20241106",
"react": "19.0.0",
"react-dom": "19.0.0",
"react-hook-form": "7.39.5",
"swr": "^2.2.0",
"tinycolor2": "1.4.2"
@@ -62,19 +63,20 @@
"@testing-library/react": "^16.0.1",
"@types/ms": "0.7.34",
"@types/node": "22.9.0",
"@types/react": "npm:types-react@19.0.0-rc.1",
"@types/react-dom": "npm:types-react-dom@19.0.0-rc.1",
"@types/react": "19.0.2",
"@types/react-dom": "19.0.2",
"@types/tinycolor2": "1.4.3",
"@types/uuid": "^10.0.0",
"@vercel/git-hooks": "1.0.0",
"@zitadel/eslint-config": "workspace:*",
"@zitadel/prettier-config": "workspace:*",
"@zitadel/tailwind-config": "workspace:*",
"@zitadel/tsconfig": "workspace:*",
"autoprefixer": "10.4.20",
"concurrently": "^9.1.0",
"cypress": "^13.15.2",
"del-cli": "6.0.0",
"env-cmd": "^10.0.0",
"@zitadel/eslint-config": "workspace:*",
"grpc-tools": "1.12.4",
"jsdom": "^25.0.1",
"lint-staged": "15.2.10",
@@ -86,7 +88,6 @@
"start-server-and-test": "^2.0.8",
"tailwindcss": "3.4.14",
"ts-proto": "^2.2.7",
"typescript": "^5.6.3",
"@zitadel/tailwind-config": "workspace:*"
"typescript": "^5.6.3"
}
}

36
apps/login/src/lib/api.ts Normal file
View File

@@ -0,0 +1,36 @@
import { importPKCS8, SignJWT } from "jose";
import { getInstanceByHost } from "./zitadel";
export async function getInstanceUrl(host: string): Promise<string> {
const instance = await getInstanceByHost(host);
const generatedDomain = instance.domains.find(
(domain) => domain.generated === true,
);
if (!generatedDomain?.domain) {
throw new Error("No generated domain found");
}
console.log(`host: ${host}, api: ${generatedDomain?.domain}`);
return generatedDomain?.domain;
}
export async function systemAPIToken() {
const audience = process.env.AUDIENCE;
const userID = process.env.SYSTEM_USER_ID;
const key = process.env.SYSTEM_USER_PRIVATE_KEY;
const decodedToken = Buffer.from(key, "base64").toString("utf-8");
const token = new SignJWT({})
.setProtectedHeader({ alg: "RS256" })
.setIssuedAt()
.setExpirationTime("1h")
.setIssuer(userID)
.setSubject(userID)
.setAudience(audience)
.sign(await importPKCS8(decodedToken, "RS256"));
return token;
}

View File

@@ -1,32 +1,22 @@
import { create, createClientFor, Duration } from "@zitadel/client";
import { createServerTransport } from "@zitadel/client/node";
import {
createIdpServiceClient,
createOIDCServiceClient,
createOrganizationServiceClient,
createSessionServiceClient,
createSettingsServiceClient,
createUserServiceClient,
makeReqCtx,
} from "@zitadel/client/v2";
import { RequestChallenges } from "@zitadel/proto/zitadel/session/v2/challenge_pb";
import { Checks } from "@zitadel/proto/zitadel/session/v2/session_service_pb";
import {
AddHumanUserRequest,
ResendEmailCodeRequest,
ResendEmailCodeRequestSchema,
RetrieveIdentityProviderIntentRequest,
SendEmailCodeRequestSchema,
SetPasswordRequest,
SetPasswordRequestSchema,
VerifyPasskeyRegistrationRequest,
VerifyU2FRegistrationRequest,
} from "@zitadel/proto/zitadel/user/v2/user_service_pb";
import { create, Duration } from "@zitadel/client";
import { createSystemServiceClient } from "@zitadel/client/v1";
import { makeReqCtx } from "@zitadel/client/v2";
import { IdentityProviderService } from "@zitadel/proto/zitadel/idp/v2/idp_service_pb";
import { TextQueryMethod } from "@zitadel/proto/zitadel/object/v2/object_pb";
import { CreateCallbackRequest } from "@zitadel/proto/zitadel/oidc/v2/oidc_service_pb";
import {
CreateCallbackRequest,
OIDCService,
} from "@zitadel/proto/zitadel/oidc/v2/oidc_service_pb";
import { Organization } from "@zitadel/proto/zitadel/org/v2/org_pb";
import { OrganizationService } from "@zitadel/proto/zitadel/org/v2/org_service_pb";
import { RequestChallenges } from "@zitadel/proto/zitadel/session/v2/challenge_pb";
import {
Checks,
SessionService,
} from "@zitadel/proto/zitadel/session/v2/session_service_pb";
import { LoginSettings } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb";
import { SettingsService } from "@zitadel/proto/zitadel/settings/v2/settings_service_pb";
import { SendEmailVerificationCodeSchema } from "@zitadel/proto/zitadel/user/v2/email_pb";
import type { RedirectURLsJson } from "@zitadel/proto/zitadel/user/v2/idp_pb";
import {
@@ -42,19 +32,20 @@ import {
User,
UserState,
} from "@zitadel/proto/zitadel/user/v2/user_pb";
import {
AddHumanUserRequest,
ResendEmailCodeRequest,
ResendEmailCodeRequestSchema,
RetrieveIdentityProviderIntentRequest,
SendEmailCodeRequestSchema,
SetPasswordRequest,
SetPasswordRequestSchema,
UserService,
VerifyPasskeyRegistrationRequest,
VerifyU2FRegistrationRequest,
} from "@zitadel/proto/zitadel/user/v2/user_service_pb";
import { unstable_cacheLife as cacheLife } from "next/cache";
const transport = createServerTransport(
process.env.ZITADEL_SERVICE_USER_TOKEN!,
{ baseUrl: process.env.ZITADEL_API_URL! },
);
export const sessionService = createSessionServiceClient(transport);
export const userService = createUserServiceClient(transport);
export const oidcService = createOIDCServiceClient(transport);
export const idpService = createIdpServiceClient(transport);
export const orgService = createOrganizationServiceClient(transport);
export const settingsService = createSettingsServiceClient(transport);
import { systemAPIToken } from "./api";
const useCache = process.env.DEBUG !== "true";
@@ -65,6 +56,86 @@ async function cacheWrapper<T>(callback: Promise<T>) {
return callback;
}
type ServiceClass =
| typeof IdentityProviderService
| typeof UserService
| typeof OrganizationService
| typeof SessionService
| typeof OIDCService
| typeof SettingsService;
async function createServiceForHost<T extends ServiceClass>(service: T) {
// const host = headers().get("X-Forwarded-Host");
// if (!host) {
// throw new Error("No host header found!");
// }
// let instanceUrl;
// try {
// instanceUrl = await getInstanceUrl(host);
// } catch (error) {
// console.error(
// "Could not get instance url, fallback to ZITADEL_API_URL",
// error,
// );
// instanceUrl = process.env.ZITADEL_API_URL;
// }
// remove in favor of the above
const instanceUrl = process.env.ZITADEL_API_URL;
const systemToken = await systemAPIToken();
const transport = createServerTransport(systemToken, {
baseUrl: instanceUrl,
});
return createClientFor<T>(service)(transport);
}
const idpService = await createServiceForHost(IdentityProviderService);
const orgService = await createServiceForHost(OrganizationService);
export const sessionService = await createServiceForHost(SessionService);
const userService = await createServiceForHost(UserService);
const oidcService = await createServiceForHost(OIDCService);
const settingsService = await createServiceForHost(SettingsService);
const systemService = async () => {
const systemToken = await systemAPIToken();
const transport = createServerTransport(systemToken, {
baseUrl: process.env.ZITADEL_API_URL,
});
return createSystemServiceClient(transport);
};
export async function getInstanceByHost(host: string) {
return (await systemService())
.listInstances(
{
queries: [
{
query: {
case: "domainQuery",
value: {
domains: [host],
},
},
},
],
},
{},
)
.then((resp) => {
if (resp.result.length !== 1) {
throw new Error("Could not find instance");
}
return resp.result[0];
});
}
export async function getBrandingSettings(organization?: string) {
const callback = settingsService
.getBrandingSettings({ ctx: makeReqCtx(organization) }, {})

View File

@@ -2,6 +2,7 @@
"extends": "@zitadel/tsconfig/nextjs.json",
"compilerOptions": {
"jsx": "preserve",
"target": "es2022",
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]

View File

@@ -29,9 +29,7 @@
},
"pnpm": {
"overrides": {
"@typescript-eslint/parser": "^7.9.0",
"@types/react": "npm:types-react@19.0.0-rc.1",
"@types/react-dom": "npm:types-react-dom@19.0.0-rc.1"
"@typescript-eslint/parser": "^7.9.0"
}
},
"devDependencies": {

View File

@@ -1,8 +1,9 @@
export { toDate } from "./helpers";
export { createClientFor, toDate } from "./helpers";
export { NewAuthorizationBearerInterceptor } from "./interceptors";
// TODO: Move this to `./protobuf.ts` and export it from there
export { create, fromJson, toJson } from "@bufbuild/protobuf";
export type { JsonObject } from "@bufbuild/protobuf";
export type { GenService } from "@bufbuild/protobuf/codegenv1";
export { TimestampSchema, timestampDate, timestampFromDate, timestampFromMs, timestampMs } from "@bufbuild/protobuf/wkt";
export type { Duration, Timestamp } from "@bufbuild/protobuf/wkt";

248
pnpm-lock.yaml generated
View File

@@ -6,8 +6,6 @@ settings:
overrides:
'@typescript-eslint/parser': ^7.9.0
'@types/react': npm:types-react@19.0.0-rc.1
'@types/react-dom': npm:types-react-dom@19.0.0-rc.1
importers:
@@ -78,16 +76,16 @@ importers:
dependencies:
'@headlessui/react':
specifier: ^2.1.9
version: 2.1.9(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)
version: 2.1.9(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@heroicons/react':
specifier: 2.1.3
version: 2.1.3(react@19.0.0-rc-66855b96-20241106)
version: 2.1.3(react@19.0.0)
'@tailwindcss/forms':
specifier: 0.5.7
version: 0.5.7(tailwindcss@3.4.14)
'@vercel/analytics':
specifier: ^1.2.2
version: 1.3.1(next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(sass@1.80.7))(react@19.0.0-rc-66855b96-20241106)
version: 1.3.1(next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.80.7))(react@19.0.0)
'@zitadel/client':
specifier: workspace:*
version: link:../../packages/zitadel-client
@@ -103,36 +101,39 @@ importers:
deepmerge:
specifier: ^4.3.1
version: 4.3.1
jose:
specifier: ^5.3.0
version: 5.8.0
moment:
specifier: ^2.29.4
version: 2.30.1
next:
specifier: 15.0.4-canary.23
version: 15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(sass@1.80.7)
version: 15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.80.7)
next-intl:
specifier: ^3.25.1
version: 3.25.1(next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(sass@1.80.7))(react@19.0.0-rc-66855b96-20241106)
version: 3.25.1(next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.80.7))(react@19.0.0)
next-themes:
specifier: ^0.2.1
version: 0.2.1(next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(sass@1.80.7))(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)
version: 0.2.1(next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.80.7))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
nice-grpc:
specifier: 2.0.1
version: 2.0.1
qrcode.react:
specifier: ^3.1.0
version: 3.1.0(react@19.0.0-rc-66855b96-20241106)
version: 3.1.0(react@19.0.0)
react:
specifier: 19.0.0-rc-66855b96-20241106
version: 19.0.0-rc-66855b96-20241106
specifier: 19.0.0
version: 19.0.0
react-dom:
specifier: 19.0.0-rc-66855b96-20241106
version: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106)
specifier: 19.0.0
version: 19.0.0(react@19.0.0)
react-hook-form:
specifier: 7.39.5
version: 7.39.5(react@19.0.0-rc-66855b96-20241106)
version: 7.39.5(react@19.0.0)
swr:
specifier: ^2.2.0
version: 2.2.5(react@19.0.0-rc-66855b96-20241106)
version: 2.2.5(react@19.0.0)
tinycolor2:
specifier: 1.4.2
version: 1.4.2
@@ -145,7 +146,7 @@ importers:
version: 6.6.3
'@testing-library/react':
specifier: ^16.0.1
version: 16.0.1(@testing-library/dom@10.4.0)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)
version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@types/ms':
specifier: 0.7.34
version: 0.7.34
@@ -153,11 +154,11 @@ importers:
specifier: 22.9.0
version: 22.9.0
'@types/react':
specifier: npm:types-react@19.0.0-rc.1
version: types-react@19.0.0-rc.1
specifier: 19.0.2
version: 19.0.2
'@types/react-dom':
specifier: npm:types-react-dom@19.0.0-rc.1
version: types-react-dom@19.0.0-rc.1
specifier: 19.0.2
version: 19.0.2(@types/react@19.0.2)
'@types/tinycolor2':
specifier: 1.4.3
version: 1.4.3
@@ -1513,8 +1514,8 @@ packages:
engines: {node: '>=18'}
peerDependencies:
'@testing-library/dom': ^10.0.0
'@types/react': npm:types-react@19.0.0-rc.1
'@types/react-dom': npm:types-react-dom@19.0.0-rc.1
'@types/react': ^18.0.0
'@types/react-dom': ^18.0.0
react: ^18.0.0
react-dom: ^18.0.0
peerDependenciesMeta:
@@ -1553,11 +1554,13 @@ packages:
'@types/node@22.9.0':
resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==}
'@types/prop-types@15.7.12':
resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
'@types/react-dom@19.0.2':
resolution: {integrity: sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg==}
peerDependencies:
'@types/react': ^19.0.0
'@types/react@18.3.12':
resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==}
'@types/react@19.0.2':
resolution: {integrity: sha512-USU8ZI/xyKJwFTpjSVIrSeHBVAGagkHQKPNbxeWwql/vDmnTIBgx+TJnhFnj1NXgz8XfprU0egV2dROLGpsBEg==}
'@types/sinonjs__fake-timers@8.1.1':
resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==}
@@ -3947,10 +3950,10 @@ packages:
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
react-dom@19.0.0-rc-66855b96-20241106:
resolution: {integrity: sha512-D25vdaytZ1wFIRiwNU98NPQ/upS2P8Co4/oNoa02PzHbh8deWdepjm5qwZM/46OdSiGv4WSWwxP55RO9obqJEQ==}
react-dom@19.0.0:
resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==}
peerDependencies:
react: 19.0.0-rc-66855b96-20241106
react: ^19.0.0
react-hook-form@7.39.5:
resolution: {integrity: sha512-OE0HKyz5IPc6svN2wd+e+evidZrw4O4WZWAWYzQVZuHi+hYnHFSLnxOq0ddjbdmaLIsLHut/ab7j72y2QT3+KA==}
@@ -3968,8 +3971,8 @@ packages:
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
engines: {node: '>=0.10.0'}
react@19.0.0-rc-66855b96-20241106:
resolution: {integrity: sha512-klH7xkT71SxRCx4hb1hly5FJB21Hz0ACyxbXYAECEqssUjtJeFUAaI2U1DgJAzkGEnvEm3DkxuBchMC/9K4ipg==}
react@19.0.0:
resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==}
engines: {node: '>=0.10.0'}
read-cache@1.0.0:
@@ -4089,8 +4092,8 @@ packages:
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
engines: {node: '>=v12.22.7'}
scheduler@0.25.0-rc-66855b96-20241106:
resolution: {integrity: sha512-HQXp/Mnp/MMRSXMQF7urNFla+gmtXW/Gr1KliuR0iboTit4KvZRY8KYaq5ccCTAOJiUqQh2rE2F3wgUekmgdlA==}
scheduler@0.25.0:
resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==}
semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
@@ -4574,12 +4577,6 @@ packages:
resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
engines: {node: '>= 0.4'}
types-react-dom@19.0.0-rc.1:
resolution: {integrity: sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==}
types-react@19.0.0-rc.1:
resolution: {integrity: sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==}
typescript@5.6.3:
resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==}
engines: {node: '>=14.17'}
@@ -5438,18 +5435,18 @@ snapshots:
'@floating-ui/core': 1.6.8
'@floating-ui/utils': 0.2.8
'@floating-ui/react-dom@2.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)':
'@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@floating-ui/dom': 1.6.11
react: 19.0.0-rc-66855b96-20241106
react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
'@floating-ui/react@0.26.24(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)':
'@floating-ui/react@0.26.24(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@floating-ui/react-dom': 2.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)
'@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@floating-ui/utils': 0.2.8
react: 19.0.0-rc-66855b96-20241106
react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
tabbable: 6.2.0
'@floating-ui/utils@0.2.8': {}
@@ -5501,18 +5498,18 @@ snapshots:
dependencies:
'@hapi/hoek': 9.3.0
'@headlessui/react@2.1.9(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)':
'@headlessui/react@2.1.9(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@floating-ui/react': 0.26.24(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)
'@react-aria/focus': 3.18.3(react@19.0.0-rc-66855b96-20241106)
'@react-aria/interactions': 3.22.3(react@19.0.0-rc-66855b96-20241106)
'@tanstack/react-virtual': 3.10.6(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)
react: 19.0.0-rc-66855b96-20241106
react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106)
'@floating-ui/react': 0.26.24(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@react-aria/focus': 3.18.3(react@19.0.0)
'@react-aria/interactions': 3.22.3(react@19.0.0)
'@tanstack/react-virtual': 3.10.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
'@heroicons/react@2.1.3(react@19.0.0-rc-66855b96-20241106)':
'@heroicons/react@2.1.3(react@19.0.0)':
dependencies:
react: 19.0.0-rc-66855b96-20241106
react: 19.0.0
'@humanwhocodes/config-array@0.13.0':
dependencies:
@@ -5810,45 +5807,45 @@ snapshots:
'@protobufjs/utf8@1.1.0': {}
'@react-aria/focus@3.18.3(react@19.0.0-rc-66855b96-20241106)':
'@react-aria/focus@3.18.3(react@19.0.0)':
dependencies:
'@react-aria/interactions': 3.22.3(react@19.0.0-rc-66855b96-20241106)
'@react-aria/utils': 3.25.3(react@19.0.0-rc-66855b96-20241106)
'@react-types/shared': 3.25.0(react@19.0.0-rc-66855b96-20241106)
'@react-aria/interactions': 3.22.3(react@19.0.0)
'@react-aria/utils': 3.25.3(react@19.0.0)
'@react-types/shared': 3.25.0(react@19.0.0)
'@swc/helpers': 0.5.5
clsx: 2.1.1
react: 19.0.0-rc-66855b96-20241106
react: 19.0.0
'@react-aria/interactions@3.22.3(react@19.0.0-rc-66855b96-20241106)':
'@react-aria/interactions@3.22.3(react@19.0.0)':
dependencies:
'@react-aria/ssr': 3.9.6(react@19.0.0-rc-66855b96-20241106)
'@react-aria/utils': 3.25.3(react@19.0.0-rc-66855b96-20241106)
'@react-types/shared': 3.25.0(react@19.0.0-rc-66855b96-20241106)
'@react-aria/ssr': 3.9.6(react@19.0.0)
'@react-aria/utils': 3.25.3(react@19.0.0)
'@react-types/shared': 3.25.0(react@19.0.0)
'@swc/helpers': 0.5.5
react: 19.0.0-rc-66855b96-20241106
react: 19.0.0
'@react-aria/ssr@3.9.6(react@19.0.0-rc-66855b96-20241106)':
'@react-aria/ssr@3.9.6(react@19.0.0)':
dependencies:
'@swc/helpers': 0.5.5
react: 19.0.0-rc-66855b96-20241106
react: 19.0.0
'@react-aria/utils@3.25.3(react@19.0.0-rc-66855b96-20241106)':
'@react-aria/utils@3.25.3(react@19.0.0)':
dependencies:
'@react-aria/ssr': 3.9.6(react@19.0.0-rc-66855b96-20241106)
'@react-stately/utils': 3.10.4(react@19.0.0-rc-66855b96-20241106)
'@react-types/shared': 3.25.0(react@19.0.0-rc-66855b96-20241106)
'@react-aria/ssr': 3.9.6(react@19.0.0)
'@react-stately/utils': 3.10.4(react@19.0.0)
'@react-types/shared': 3.25.0(react@19.0.0)
'@swc/helpers': 0.5.5
clsx: 2.1.1
react: 19.0.0-rc-66855b96-20241106
react: 19.0.0
'@react-stately/utils@3.10.4(react@19.0.0-rc-66855b96-20241106)':
'@react-stately/utils@3.10.4(react@19.0.0)':
dependencies:
'@swc/helpers': 0.5.13
react: 19.0.0-rc-66855b96-20241106
react: 19.0.0
'@react-types/shared@3.25.0(react@19.0.0-rc-66855b96-20241106)':
'@react-types/shared@3.25.0(react@19.0.0)':
dependencies:
react: 19.0.0-rc-66855b96-20241106
react: 19.0.0
'@rollup/rollup-android-arm-eabi@4.25.0':
optional: true
@@ -5937,11 +5934,11 @@ snapshots:
mini-svg-data-uri: 1.4.4
tailwindcss: 3.4.14
'@tanstack/react-virtual@3.10.6(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)':
'@tanstack/react-virtual@3.10.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@tanstack/virtual-core': 3.10.6
react: 19.0.0-rc-66855b96-20241106
react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
'@tanstack/virtual-core@3.10.6': {}
@@ -5966,15 +5963,15 @@ snapshots:
lodash: 4.17.21
redent: 3.0.0
'@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)':
'@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
'@babel/runtime': 7.25.6
'@testing-library/dom': 10.4.0
react: 19.0.0-rc-66855b96-20241106
react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
optionalDependencies:
'@types/react': types-react@19.0.0-rc.1
'@types/react-dom': types-react-dom@19.0.0-rc.1
'@types/react': 19.0.2
'@types/react-dom': 19.0.2(@types/react@19.0.2)
'@types/aria-query@5.0.4': {}
@@ -6011,11 +6008,12 @@ snapshots:
dependencies:
undici-types: 6.19.8
'@types/prop-types@15.7.12': {}
'@types/react@18.3.12':
'@types/react-dom@19.0.2(@types/react@19.0.2)':
dependencies:
'@types/react': 19.0.2
'@types/react@19.0.2':
dependencies:
'@types/prop-types': 15.7.12
csstype: 3.1.3
'@types/sinonjs__fake-timers@8.1.1': {}
@@ -6142,12 +6140,12 @@ snapshots:
'@ungap/structured-clone@1.2.0': {}
'@vercel/analytics@1.3.1(next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(sass@1.80.7))(react@19.0.0-rc-66855b96-20241106)':
'@vercel/analytics@1.3.1(next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.80.7))(react@19.0.0)':
dependencies:
server-only: 0.0.1
optionalDependencies:
next: 15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(sass@1.80.7)
react: 19.0.0-rc-66855b96-20241106
next: 15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.80.7)
react: 19.0.0
'@vercel/git-hooks@1.0.0': {}
@@ -8212,21 +8210,21 @@ snapshots:
negotiator@1.0.0: {}
next-intl@3.25.1(next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(sass@1.80.7))(react@19.0.0-rc-66855b96-20241106):
next-intl@3.25.1(next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.80.7))(react@19.0.0):
dependencies:
'@formatjs/intl-localematcher': 0.5.4
negotiator: 1.0.0
next: 15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(sass@1.80.7)
react: 19.0.0-rc-66855b96-20241106
use-intl: 3.25.1(react@19.0.0-rc-66855b96-20241106)
next: 15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.80.7)
react: 19.0.0
use-intl: 3.25.1(react@19.0.0)
next-themes@0.2.1(next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(sass@1.80.7))(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106):
next-themes@0.2.1(next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.80.7))(react-dom@19.0.0(react@19.0.0))(react@19.0.0):
dependencies:
next: 15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(sass@1.80.7)
react: 19.0.0-rc-66855b96-20241106
react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106)
next: 15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.80.7)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(sass@1.80.7):
next@15.0.4-canary.23(@babel/core@7.26.0)(@playwright/test@1.48.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.80.7):
dependencies:
'@next/env': 15.0.4-canary.23
'@swc/counter': 0.1.3
@@ -8234,9 +8232,9 @@ snapshots:
busboy: 1.6.0
caniuse-lite: 1.0.30001680
postcss: 8.4.31
react: 19.0.0-rc-66855b96-20241106
react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106)
styled-jsx: 5.1.6(@babel/core@7.26.0)(react@19.0.0-rc-66855b96-20241106)
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
styled-jsx: 5.1.6(@babel/core@7.26.0)(react@19.0.0)
optionalDependencies:
'@next/swc-darwin-arm64': 15.0.4-canary.23
'@next/swc-darwin-x64': 15.0.4-canary.23
@@ -8603,9 +8601,9 @@ snapshots:
punycode@2.3.1: {}
qrcode.react@3.1.0(react@19.0.0-rc-66855b96-20241106):
qrcode.react@3.1.0(react@19.0.0):
dependencies:
react: 19.0.0-rc-66855b96-20241106
react: 19.0.0
qs@6.13.0:
dependencies:
@@ -8613,14 +8611,14 @@ snapshots:
queue-microtask@1.2.3: {}
react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106):
react-dom@19.0.0(react@19.0.0):
dependencies:
react: 19.0.0-rc-66855b96-20241106
scheduler: 0.25.0-rc-66855b96-20241106
react: 19.0.0
scheduler: 0.25.0
react-hook-form@7.39.5(react@19.0.0-rc-66855b96-20241106):
react-hook-form@7.39.5(react@19.0.0):
dependencies:
react: 19.0.0-rc-66855b96-20241106
react: 19.0.0
react-is@16.13.1: {}
@@ -8628,7 +8626,7 @@ snapshots:
react-refresh@0.14.2: {}
react@19.0.0-rc-66855b96-20241106: {}
react@19.0.0: {}
read-cache@1.0.0:
dependencies:
@@ -8782,7 +8780,7 @@ snapshots:
dependencies:
xmlchars: 2.2.0
scheduler@0.25.0-rc-66855b96-20241106: {}
scheduler@0.25.0: {}
semver@6.3.1: {}
@@ -9041,10 +9039,10 @@ snapshots:
strip-json-comments@3.1.1: {}
styled-jsx@5.1.6(@babel/core@7.26.0)(react@19.0.0-rc-66855b96-20241106):
styled-jsx@5.1.6(@babel/core@7.26.0)(react@19.0.0):
dependencies:
client-only: 0.0.1
react: 19.0.0-rc-66855b96-20241106
react: 19.0.0
optionalDependencies:
'@babel/core': 7.26.0
@@ -9072,11 +9070,11 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
swr@2.2.5(react@19.0.0-rc-66855b96-20241106):
swr@2.2.5(react@19.0.0):
dependencies:
client-only: 0.0.1
react: 19.0.0-rc-66855b96-20241106
use-sync-external-store: 1.2.2(react@19.0.0-rc-66855b96-20241106)
react: 19.0.0
use-sync-external-store: 1.2.2(react@19.0.0)
symbol-tree@3.2.4: {}
@@ -9329,14 +9327,6 @@ snapshots:
is-typed-array: 1.1.13
possible-typed-array-names: 1.0.0
types-react-dom@19.0.0-rc.1:
dependencies:
'@types/react': 18.3.12
types-react@19.0.0-rc.1:
dependencies:
csstype: 3.1.3
typescript@5.6.3: {}
unbox-primitive@1.0.2:
@@ -9374,15 +9364,15 @@ snapshots:
dependencies:
punycode: 2.3.1
use-intl@3.25.1(react@19.0.0-rc-66855b96-20241106):
use-intl@3.25.1(react@19.0.0):
dependencies:
'@formatjs/fast-memoize': 2.2.3
intl-messageformat: 10.7.7
react: 19.0.0-rc-66855b96-20241106
react: 19.0.0
use-sync-external-store@1.2.2(react@19.0.0-rc-66855b96-20241106):
use-sync-external-store@1.2.2(react@19.0.0):
dependencies:
react: 19.0.0-rc-66855b96-20241106
react: 19.0.0
util-deprecate@1.0.2: {}