mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-11 21:22:14 +00:00
throw out @zitadel/react @zitadel/next
This commit is contained in:
@@ -84,10 +84,9 @@ The application is now available at `http://localhost:3000`
|
|||||||
You can execute the following commands `pnpm test` for a single test run or `pnpm test:watch` in the following directories:
|
You can execute the following commands `pnpm test` for a single test run or `pnpm test:watch` in the following directories:
|
||||||
|
|
||||||
- apps/login
|
- apps/login
|
||||||
|
- packages/zitadel-proto
|
||||||
- packages/zitadel-client
|
- packages/zitadel-client
|
||||||
- packages/zitadel-server
|
- packages/zitadel-node
|
||||||
- packages/zitadel-react
|
|
||||||
- packages/zitadel-next
|
|
||||||
- The projects root directory: all tests in the project are executed
|
- The projects root directory: all tests in the project are executed
|
||||||
|
|
||||||
In apps/login, these commands also spin up the application and a ZITADEL gRPC API mock server to run integration tests using [Cypress](https://www.cypress.io/) against them.
|
In apps/login, these commands also spin up the application and a ZITADEL gRPC API mock server to run integration tests using [Cypress](https://www.cypress.io/) against them.
|
||||||
|
|||||||
@@ -31,8 +31,6 @@ We think the easiest path of getting up and running, is the following:
|
|||||||
- `@zitadel/node`: core components for establishing node client connection, grpc stub
|
- `@zitadel/node`: core components for establishing node client connection, grpc stub
|
||||||
- `@zitadel/client`: shared client utilities
|
- `@zitadel/client`: shared client utilities
|
||||||
- `@zitadel/proto`: shared protobuf types
|
- `@zitadel/proto`: shared protobuf types
|
||||||
- `@zitadel/react`: shared React utilities and components built with tailwindcss
|
|
||||||
- `@zitadel/next`: shared Next.js utilities
|
|
||||||
- `@zitadel/tsconfig`: shared `tsconfig.json`s used throughout the monorepo
|
- `@zitadel/tsconfig`: shared `tsconfig.json`s used throughout the monorepo
|
||||||
- `eslint-config-zitadel`: ESLint preset
|
- `eslint-config-zitadel`: ESLint preset
|
||||||
|
|
||||||
|
|||||||
@@ -37,10 +37,8 @@
|
|||||||
"@tailwindcss/forms": "0.5.7",
|
"@tailwindcss/forms": "0.5.7",
|
||||||
"@vercel/analytics": "^1.2.2",
|
"@vercel/analytics": "^1.2.2",
|
||||||
"@zitadel/client": "workspace:*",
|
"@zitadel/client": "workspace:*",
|
||||||
"@zitadel/next": "workspace:*",
|
|
||||||
"@zitadel/node": "workspace:*",
|
"@zitadel/node": "workspace:*",
|
||||||
"@zitadel/proto": "workspace:*",
|
"@zitadel/proto": "workspace:*",
|
||||||
"@zitadel/react": "workspace:*",
|
|
||||||
"clsx": "1.2.1",
|
"clsx": "1.2.1",
|
||||||
"copy-to-clipboard": "^3.3.3",
|
"copy-to-clipboard": "^3.3.3",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
@@ -57,7 +55,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@bufbuild/buf": "^1.36.0",
|
"@bufbuild/buf": "^1.36.0",
|
||||||
"@testing-library/jest-dom": "^6.4.5",
|
"@testing-library/jest-dom": "^6.4.5",
|
||||||
"@testing-library/react": "^16.0.0",
|
"@testing-library/react": "^16.0.1",
|
||||||
"@types/ms": "0.7.34",
|
"@types/ms": "0.7.34",
|
||||||
"@types/node": "22.1.0",
|
"@types/node": "22.1.0",
|
||||||
"@types/react": "18.3.3",
|
"@types/react": "18.3.3",
|
||||||
@@ -65,7 +63,7 @@
|
|||||||
"@types/tinycolor2": "1.4.3",
|
"@types/tinycolor2": "1.4.3",
|
||||||
"@types/uuid": "^10.0.0",
|
"@types/uuid": "^10.0.0",
|
||||||
"@vercel/git-hooks": "1.0.0",
|
"@vercel/git-hooks": "1.0.0",
|
||||||
"@zitadel/prettier-config": "workspace:*",
|
"@zitadel/prettier-config": "workspace:^",
|
||||||
"@zitadel/tsconfig": "workspace:*",
|
"@zitadel/tsconfig": "workspace:*",
|
||||||
"autoprefixer": "10.4.20",
|
"autoprefixer": "10.4.20",
|
||||||
"concurrently": "^8.1.0",
|
"concurrently": "^8.1.0",
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { getBrandingSettings, listSessions } from "@/lib/zitadel";
|
import { getBrandingSettings, listSessions } from "@/lib/zitadel";
|
||||||
import { getAllSessionCookieIds } from "@zitadel/next";
|
|
||||||
import { UserPlusIcon } from "@heroicons/react/24/outline";
|
import { UserPlusIcon } from "@heroicons/react/24/outline";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import SessionsList from "@/ui/SessionsList";
|
import SessionsList from "@/ui/SessionsList";
|
||||||
import DynamicTheme from "@/ui/DynamicTheme";
|
import DynamicTheme from "@/ui/DynamicTheme";
|
||||||
|
import { getAllSessionCookieIds } from "@/lib/cookies";
|
||||||
|
|
||||||
async function loadSessions() {
|
async function loadSessions() {
|
||||||
const ids = await getAllSessionCookieIds();
|
const ids = await getAllSessionCookieIds();
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import { getSessionCookieById } from "@/lib/cookies";
|
||||||
|
import { loadMostRecentSession } from "@/lib/session";
|
||||||
import {
|
import {
|
||||||
getBrandingSettings,
|
getBrandingSettings,
|
||||||
getSession,
|
getSession,
|
||||||
@@ -9,7 +11,6 @@ import BackButton from "@/ui/BackButton";
|
|||||||
import ChooseSecondFactor from "@/ui/ChooseSecondFactor";
|
import ChooseSecondFactor from "@/ui/ChooseSecondFactor";
|
||||||
import DynamicTheme from "@/ui/DynamicTheme";
|
import DynamicTheme from "@/ui/DynamicTheme";
|
||||||
import UserAvatar from "@/ui/UserAvatar";
|
import UserAvatar from "@/ui/UserAvatar";
|
||||||
import { getSessionCookieById, loadMostRecentSession } from "@zitadel/next";
|
|
||||||
|
|
||||||
export default async function Page({
|
export default async function Page({
|
||||||
searchParams,
|
searchParams,
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import { getSessionCookieById } from "@/lib/cookies";
|
||||||
|
import { loadMostRecentSession } from "@/lib/session";
|
||||||
import {
|
import {
|
||||||
getBrandingSettings,
|
getBrandingSettings,
|
||||||
getLoginSettings,
|
getLoginSettings,
|
||||||
@@ -11,7 +13,6 @@ import BackButton from "@/ui/BackButton";
|
|||||||
import ChooseSecondFactorToSetup from "@/ui/ChooseSecondFactorToSetup";
|
import ChooseSecondFactorToSetup from "@/ui/ChooseSecondFactorToSetup";
|
||||||
import DynamicTheme from "@/ui/DynamicTheme";
|
import DynamicTheme from "@/ui/DynamicTheme";
|
||||||
import UserAvatar from "@/ui/UserAvatar";
|
import UserAvatar from "@/ui/UserAvatar";
|
||||||
import { getSessionCookieById, loadMostRecentSession } from "@zitadel/next";
|
|
||||||
|
|
||||||
export default async function Page({
|
export default async function Page({
|
||||||
searchParams,
|
searchParams,
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
|
import { loadMostRecentSession } from "@/lib/session";
|
||||||
import { getBrandingSettings, sessionService } from "@/lib/zitadel";
|
import { getBrandingSettings, sessionService } from "@/lib/zitadel";
|
||||||
import Alert from "@/ui/Alert";
|
import Alert from "@/ui/Alert";
|
||||||
import DynamicTheme from "@/ui/DynamicTheme";
|
import DynamicTheme from "@/ui/DynamicTheme";
|
||||||
import LoginOTP from "@/ui/LoginOTP";
|
import LoginOTP from "@/ui/LoginOTP";
|
||||||
import UserAvatar from "@/ui/UserAvatar";
|
import UserAvatar from "@/ui/UserAvatar";
|
||||||
import { loadMostRecentSession } from "@zitadel/next";
|
|
||||||
|
|
||||||
export default async function Page({
|
export default async function Page({
|
||||||
searchParams,
|
searchParams,
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import TOTPRegister from "@/ui/TOTPRegister";
|
|||||||
import UserAvatar from "@/ui/UserAvatar";
|
import UserAvatar from "@/ui/UserAvatar";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { RegisterTOTPResponse } from "@zitadel/proto/zitadel/user/v2/user_service_pb";
|
import { RegisterTOTPResponse } from "@zitadel/proto/zitadel/user/v2/user_service_pb";
|
||||||
import { loadMostRecentSession } from "@zitadel/next";
|
import { loadMostRecentSession } from "@/lib/session";
|
||||||
|
|
||||||
export default async function Page({
|
export default async function Page({
|
||||||
searchParams,
|
searchParams,
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
|
import { loadMostRecentSession } from "@/lib/session";
|
||||||
import { getBrandingSettings, sessionService } from "@/lib/zitadel";
|
import { getBrandingSettings, sessionService } from "@/lib/zitadel";
|
||||||
import Alert, { AlertType } from "@/ui/Alert";
|
import Alert, { AlertType } from "@/ui/Alert";
|
||||||
import DynamicTheme from "@/ui/DynamicTheme";
|
import DynamicTheme from "@/ui/DynamicTheme";
|
||||||
import RegisterPasskey from "@/ui/RegisterPasskey";
|
import RegisterPasskey from "@/ui/RegisterPasskey";
|
||||||
import UserAvatar from "@/ui/UserAvatar";
|
import UserAvatar from "@/ui/UserAvatar";
|
||||||
import { loadMostRecentSession } from "@zitadel/next";
|
|
||||||
|
|
||||||
export default async function Page({
|
export default async function Page({
|
||||||
searchParams,
|
searchParams,
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
|
import { getSessionCookieById } from "@/lib/cookies";
|
||||||
|
import { loadMostRecentSession } from "@/lib/session";
|
||||||
import { getBrandingSettings, getSession, sessionService } from "@/lib/zitadel";
|
import { getBrandingSettings, getSession, sessionService } from "@/lib/zitadel";
|
||||||
import Alert from "@/ui/Alert";
|
import Alert from "@/ui/Alert";
|
||||||
import DynamicTheme from "@/ui/DynamicTheme";
|
import DynamicTheme from "@/ui/DynamicTheme";
|
||||||
import LoginPasskey from "@/ui/LoginPasskey";
|
import LoginPasskey from "@/ui/LoginPasskey";
|
||||||
import UserAvatar from "@/ui/UserAvatar";
|
import UserAvatar from "@/ui/UserAvatar";
|
||||||
import { getSessionCookieById, loadMostRecentSession } from "@zitadel/next";
|
|
||||||
|
|
||||||
const title = "Authenticate with a passkey";
|
const title = "Authenticate with a passkey";
|
||||||
const description =
|
const description =
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { loadMostRecentSession } from "@/lib/session";
|
||||||
import {
|
import {
|
||||||
getBrandingSettings,
|
getBrandingSettings,
|
||||||
getLoginSettings,
|
getLoginSettings,
|
||||||
@@ -7,7 +8,6 @@ import Alert from "@/ui/Alert";
|
|||||||
import DynamicTheme from "@/ui/DynamicTheme";
|
import DynamicTheme from "@/ui/DynamicTheme";
|
||||||
import PasswordForm from "@/ui/PasswordForm";
|
import PasswordForm from "@/ui/PasswordForm";
|
||||||
import UserAvatar from "@/ui/UserAvatar";
|
import UserAvatar from "@/ui/UserAvatar";
|
||||||
import { loadMostRecentSession } from "@zitadel/next";
|
|
||||||
|
|
||||||
export default async function Page({
|
export default async function Page({
|
||||||
searchParams,
|
searchParams,
|
||||||
|
|||||||
@@ -2,12 +2,12 @@ import { createCallback, getBrandingSettings, getSession } from "@/lib/zitadel";
|
|||||||
import DynamicTheme from "@/ui/DynamicTheme";
|
import DynamicTheme from "@/ui/DynamicTheme";
|
||||||
import UserAvatar from "@/ui/UserAvatar";
|
import UserAvatar from "@/ui/UserAvatar";
|
||||||
import { create } from "@zitadel/client";
|
import { create } from "@zitadel/client";
|
||||||
import { getMostRecentCookieWithLoginname } from "@zitadel/next";
|
|
||||||
import { redirect } from "next/navigation";
|
import { redirect } from "next/navigation";
|
||||||
import {
|
import {
|
||||||
CreateCallbackRequestSchema,
|
CreateCallbackRequestSchema,
|
||||||
SessionSchema,
|
SessionSchema,
|
||||||
} from "@zitadel/proto/zitadel/oidc/v2/oidc_service_pb";
|
} from "@zitadel/proto/zitadel/oidc/v2/oidc_service_pb";
|
||||||
|
import { getMostRecentCookieWithLoginname } from "@/lib/cookies";
|
||||||
|
|
||||||
async function loadSession(loginName: string, authRequestId?: string) {
|
async function loadSession(loginName: string, authRequestId?: string) {
|
||||||
const recent = await getMostRecentCookieWithLoginname({ loginName });
|
const recent = await getMostRecentCookieWithLoginname({ loginName });
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
|
import { getSessionCookieById } from "@/lib/cookies";
|
||||||
|
import { loadMostRecentSession } from "@/lib/session";
|
||||||
import { getBrandingSettings, getSession, sessionService } from "@/lib/zitadel";
|
import { getBrandingSettings, getSession, sessionService } from "@/lib/zitadel";
|
||||||
import Alert from "@/ui/Alert";
|
import Alert from "@/ui/Alert";
|
||||||
import DynamicTheme from "@/ui/DynamicTheme";
|
import DynamicTheme from "@/ui/DynamicTheme";
|
||||||
import LoginPasskey from "@/ui/LoginPasskey";
|
import LoginPasskey from "@/ui/LoginPasskey";
|
||||||
import UserAvatar from "@/ui/UserAvatar";
|
import UserAvatar from "@/ui/UserAvatar";
|
||||||
import { getSessionCookieById, loadMostRecentSession } from "@zitadel/next";
|
|
||||||
|
|
||||||
export default async function Page({
|
export default async function Page({
|
||||||
searchParams,
|
searchParams,
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
|
import { loadMostRecentSession } from "@/lib/session";
|
||||||
import { getBrandingSettings, sessionService } from "@/lib/zitadel";
|
import { getBrandingSettings, sessionService } from "@/lib/zitadel";
|
||||||
import Alert from "@/ui/Alert";
|
import Alert from "@/ui/Alert";
|
||||||
import DynamicTheme from "@/ui/DynamicTheme";
|
import DynamicTheme from "@/ui/DynamicTheme";
|
||||||
import RegisterU2F from "@/ui/RegisterU2F";
|
import RegisterU2F from "@/ui/RegisterU2F";
|
||||||
import UserAvatar from "@/ui/UserAvatar";
|
import UserAvatar from "@/ui/UserAvatar";
|
||||||
import { loadMostRecentSession } from "@zitadel/next";
|
|
||||||
|
|
||||||
export default async function Page({
|
export default async function Page({
|
||||||
searchParams,
|
searchParams,
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import {
|
|||||||
listSessions,
|
listSessions,
|
||||||
startIdentityProviderFlow,
|
startIdentityProviderFlow,
|
||||||
} from "@/lib/zitadel";
|
} from "@/lib/zitadel";
|
||||||
import { getAllSessions } from "@zitadel/next";
|
|
||||||
import { NextRequest, NextResponse } from "next/server";
|
import { NextRequest, NextResponse } from "next/server";
|
||||||
import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb";
|
import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb";
|
||||||
import {
|
import {
|
||||||
@@ -25,6 +24,7 @@ import {
|
|||||||
import { IdentityProviderType } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb";
|
import { IdentityProviderType } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb";
|
||||||
import { idpTypeToSlug } from "@/lib/idp";
|
import { idpTypeToSlug } from "@/lib/idp";
|
||||||
import { create } from "@zitadel/client";
|
import { create } from "@zitadel/client";
|
||||||
|
import { getAllSessions } from "@/lib/cookies";
|
||||||
|
|
||||||
async function loadSessions(ids: string[]): Promise<Session[]> {
|
async function loadSessions(ids: string[]): Promise<Session[]> {
|
||||||
const response = await listSessions(
|
const response = await listSessions(
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
|
import { getAllSessions } from "@/lib/cookies";
|
||||||
import { listSessions } from "@/lib/zitadel";
|
import { listSessions } from "@/lib/zitadel";
|
||||||
import { getAllSessions } from "@zitadel/next";
|
|
||||||
import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb";
|
import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb";
|
||||||
import { NextRequest, NextResponse } from "next/server";
|
import { NextRequest, NextResponse } from "next/server";
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
"use server";
|
"use server";
|
||||||
|
|
||||||
import { loadMostRecentSession } from "@zitadel/next";
|
import { loadMostRecentSession } from "./session";
|
||||||
import { sessionService, verifyTOTPRegistration } from "./zitadel";
|
import { sessionService, verifyTOTPRegistration } from "./zitadel";
|
||||||
|
|
||||||
export async function verifyTOTP(
|
export async function verifyTOTP(
|
||||||
|
|||||||
@@ -1,18 +1,17 @@
|
|||||||
"use server";
|
"use server";
|
||||||
|
|
||||||
import {
|
|
||||||
getMostRecentSessionCookie,
|
|
||||||
getSessionCookieById,
|
|
||||||
getSessionCookieByLoginName,
|
|
||||||
} from "@zitadel/next";
|
|
||||||
import { setSessionAndUpdateCookie } from "@/utils/session";
|
import { setSessionAndUpdateCookie } from "@/utils/session";
|
||||||
import { NextRequest, NextResponse } from "next/server";
|
|
||||||
import {
|
import {
|
||||||
CheckOTPSchema,
|
CheckOTPSchema,
|
||||||
ChecksSchema,
|
ChecksSchema,
|
||||||
CheckTOTPSchema,
|
CheckTOTPSchema,
|
||||||
} from "@zitadel/proto/zitadel/session/v2/session_service_pb";
|
} from "@zitadel/proto/zitadel/session/v2/session_service_pb";
|
||||||
import { create } from "@zitadel/client";
|
import { create } from "@zitadel/client";
|
||||||
|
import {
|
||||||
|
getMostRecentSessionCookie,
|
||||||
|
getSessionCookieById,
|
||||||
|
getSessionCookieByLoginName,
|
||||||
|
} from "../cookies";
|
||||||
|
|
||||||
export type SetOTPCommand = {
|
export type SetOTPCommand = {
|
||||||
loginName?: string;
|
loginName?: string;
|
||||||
|
|||||||
@@ -6,12 +6,12 @@ import {
|
|||||||
registerPasskey,
|
registerPasskey,
|
||||||
verifyPasskeyRegistration,
|
verifyPasskeyRegistration,
|
||||||
} from "@/lib/zitadel";
|
} from "@/lib/zitadel";
|
||||||
import { getSessionCookieById } from "@zitadel/next";
|
|
||||||
import { userAgent } from "next/server";
|
import { userAgent } from "next/server";
|
||||||
import { create } from "@zitadel/client";
|
import { create } from "@zitadel/client";
|
||||||
import { VerifyPasskeyRegistrationRequestSchema } from "@zitadel/proto/zitadel/user/v2/user_service_pb";
|
import { VerifyPasskeyRegistrationRequestSchema } from "@zitadel/proto/zitadel/user/v2/user_service_pb";
|
||||||
import { headers } from "next/headers";
|
import { headers } from "next/headers";
|
||||||
import { RegisterPasskeyResponse } from "@zitadel/proto/zitadel/user/v2/user_service_pb";
|
import { RegisterPasskeyResponse } from "@zitadel/proto/zitadel/user/v2/user_service_pb";
|
||||||
|
import { getSessionCookieById } from "../cookies";
|
||||||
|
|
||||||
type VerifyPasskeyCommand = {
|
type VerifyPasskeyCommand = {
|
||||||
passkeyId: string;
|
passkeyId: string;
|
||||||
|
|||||||
@@ -6,12 +6,6 @@ import {
|
|||||||
getUserByID,
|
getUserByID,
|
||||||
listAuthenticationMethodTypes,
|
listAuthenticationMethodTypes,
|
||||||
} from "@/lib/zitadel";
|
} from "@/lib/zitadel";
|
||||||
import {
|
|
||||||
getMostRecentSessionCookie,
|
|
||||||
getSessionCookieById,
|
|
||||||
getSessionCookieByLoginName,
|
|
||||||
removeSessionFromCookie,
|
|
||||||
} from "@zitadel/next";
|
|
||||||
import {
|
import {
|
||||||
createSessionAndUpdateCookie,
|
createSessionAndUpdateCookie,
|
||||||
createSessionForIdpAndUpdateCookie,
|
createSessionForIdpAndUpdateCookie,
|
||||||
@@ -24,6 +18,12 @@ import {
|
|||||||
RequestChallengesSchema,
|
RequestChallengesSchema,
|
||||||
} from "@zitadel/proto/zitadel/session/v2/challenge_pb";
|
} from "@zitadel/proto/zitadel/session/v2/challenge_pb";
|
||||||
import { create } from "@zitadel/client";
|
import { create } from "@zitadel/client";
|
||||||
|
import {
|
||||||
|
getMostRecentSessionCookie,
|
||||||
|
getSessionCookieById,
|
||||||
|
getSessionCookieByLoginName,
|
||||||
|
removeSessionFromCookie,
|
||||||
|
} from "../cookies";
|
||||||
|
|
||||||
type CreateNewSessionCommand = {
|
type CreateNewSessionCommand = {
|
||||||
userId: string;
|
userId: string;
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
"use server";
|
"use server";
|
||||||
|
|
||||||
import { getSession, registerU2F, verifyU2FRegistration } from "@/lib/zitadel";
|
import { getSession, registerU2F, verifyU2FRegistration } from "@/lib/zitadel";
|
||||||
import { getSessionCookieById } from "@zitadel/next";
|
|
||||||
import { userAgent } from "next/server";
|
import { userAgent } from "next/server";
|
||||||
import { VerifyU2FRegistrationRequestSchema } from "@zitadel/proto/zitadel/user/v2/user_service_pb";
|
import { VerifyU2FRegistrationRequestSchema } from "@zitadel/proto/zitadel/user/v2/user_service_pb";
|
||||||
import { create } from "@zitadel/client";
|
import { create } from "@zitadel/client";
|
||||||
import { headers } from "next/headers";
|
import { headers } from "next/headers";
|
||||||
|
import { getSessionCookieById } from "../cookies";
|
||||||
|
|
||||||
type RegisterU2FCommand = {
|
type RegisterU2FCommand = {
|
||||||
sessionId: string;
|
sessionId: string;
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
// include styles from the ui package
|
// include styles from the ui package
|
||||||
@import "@zitadel/react/styles.css";
|
|
||||||
@import "./vars.scss";
|
@import "./vars.scss";
|
||||||
|
|
||||||
@tailwind base;
|
@tailwind base;
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { Logo } from "@/ui/Logo";
|
import { Logo } from "@/ui/Logo";
|
||||||
import ThemeWrapper from "./ThemeWrapper";
|
import ThemeWrapper from "./ThemeWrapper";
|
||||||
import { LayoutProviders } from "./LayoutProviders";
|
|
||||||
import { BrandingSettings } from "@zitadel/proto/zitadel/settings/v2/branding_settings_pb";
|
import { BrandingSettings } from "@zitadel/proto/zitadel/settings/v2/branding_settings_pb";
|
||||||
|
|
||||||
export default function DynamicTheme({
|
export default function DynamicTheme({
|
||||||
@@ -15,29 +14,25 @@ export default function DynamicTheme({
|
|||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<ThemeWrapper branding={branding}>
|
<ThemeWrapper branding={branding}>
|
||||||
{/* <ThemeProvider> */}
|
<div className="rounded-lg bg-vc-border-gradient dark:bg-dark-vc-border-gradient p-px shadow-lg shadow-black/5 dark:shadow-black/20 mb-10">
|
||||||
<LayoutProviders>
|
<div className="rounded-lg bg-background-light-400 dark:bg-background-dark-500 px-8 py-12">
|
||||||
<div className="rounded-lg bg-vc-border-gradient dark:bg-dark-vc-border-gradient p-px shadow-lg shadow-black/5 dark:shadow-black/20 mb-10">
|
<div className="mx-auto flex flex-col items-center space-y-4">
|
||||||
<div className="rounded-lg bg-background-light-400 dark:bg-background-dark-500 px-8 py-12">
|
<div className="relative">
|
||||||
<div className="mx-auto flex flex-col items-center space-y-4">
|
{branding && (
|
||||||
<div className="relative">
|
<Logo
|
||||||
{branding && (
|
lightSrc={branding.lightTheme?.logoUrl}
|
||||||
<Logo
|
darkSrc={branding.darkTheme?.logoUrl}
|
||||||
lightSrc={branding.lightTheme?.logoUrl}
|
height={150}
|
||||||
darkSrc={branding.darkTheme?.logoUrl}
|
width={150}
|
||||||
height={150}
|
/>
|
||||||
width={150}
|
)}
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="w-full">{children}</div>
|
|
||||||
<div className="flex flex-row justify-between"></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div className="w-full">{children}</div>
|
||||||
|
<div className="flex flex-row justify-between"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</LayoutProviders>
|
</div>
|
||||||
{/* </ThemeProvider> */}
|
|
||||||
</ThemeWrapper>
|
</ThemeWrapper>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { ZitadelReactProvider } from "@zitadel/react";
|
|
||||||
import { useTheme } from "next-themes";
|
import { useTheme } from "next-themes";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
@@ -12,8 +11,6 @@ export function LayoutProviders({ children }: Props) {
|
|||||||
const isDark = resolvedTheme === "dark";
|
const isDark = resolvedTheme === "dark";
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={`${isDark ? "ui-dark" : "ui-light"} `}>
|
<div className={`${isDark ? "ui-dark" : "ui-light"} `}>{children}</div>
|
||||||
<ZitadelReactProvider dark={isDark}>{children}</ZitadelReactProvider>
|
|
||||||
</div>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,16 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { ReactNode, useState } from "react";
|
import { ReactNode, useState } from "react";
|
||||||
import {
|
|
||||||
SignInWithGitlab,
|
|
||||||
SignInWithAzureAD,
|
|
||||||
SignInWithGoogle,
|
|
||||||
SignInWithGithub,
|
|
||||||
} from "@zitadel/react";
|
|
||||||
import { useRouter } from "next/navigation";
|
import { useRouter } from "next/navigation";
|
||||||
import Alert from "./Alert";
|
import Alert from "./Alert";
|
||||||
import { IdentityProvider } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb";
|
import { IdentityProvider } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb";
|
||||||
import { idpTypeToSlug } from "@/lib/idp";
|
import { idpTypeToSlug } from "@/lib/idp";
|
||||||
import { IdentityProviderType } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb";
|
import { IdentityProviderType } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb";
|
||||||
import { startIDPFlow } from "@/lib/server/idp";
|
import { startIDPFlow } from "@/lib/server/idp";
|
||||||
|
import { SignInWithGithub } from "./idps/SignInWithGithub";
|
||||||
|
import { SignInWithAzureAD } from "./idps/SignInWithAzureAD";
|
||||||
|
import { SignInWithGoogle } from "./idps/SignInWithGoogle";
|
||||||
|
import { SignInWithGitlab } from "./idps/SignInWithGitlab";
|
||||||
|
|
||||||
export interface SignInWithIDPProps {
|
export interface SignInWithIDPProps {
|
||||||
children?: ReactNode;
|
children?: ReactNode;
|
||||||
|
|||||||
40
apps/login/src/ui/idps/SignInWithAzureAD.tsx
Normal file
40
apps/login/src/ui/idps/SignInWithAzureAD.tsx
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ReactNode, forwardRef } from "react";
|
||||||
|
import { IdpButtonClasses, SignInWithIdentityProviderProps } from "./classes";
|
||||||
|
|
||||||
|
export const SignInWithAzureAD = forwardRef<
|
||||||
|
HTMLButtonElement,
|
||||||
|
SignInWithIdentityProviderProps
|
||||||
|
>(
|
||||||
|
({ children, className = "", name = "", ...props }, ref): ReactNode => (
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
ref={ref}
|
||||||
|
className={`${IdpButtonClasses} ${className}`}
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<div className="h-12 p-[10px] w-12 flex items-center justify-center">
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="21"
|
||||||
|
height="21"
|
||||||
|
viewBox="0 0 21 21"
|
||||||
|
className="w-full h-full"
|
||||||
|
>
|
||||||
|
<path fill="#f25022" d="M1 1H10V10H1z"></path>
|
||||||
|
<path fill="#00a4ef" d="M1 11H10V20H1z"></path>
|
||||||
|
<path fill="#7fba00" d="M11 1H20V10H11z"></path>
|
||||||
|
<path fill="#ffb900" d="M11 11H20V20H11z"></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
{children ? (
|
||||||
|
children
|
||||||
|
) : (
|
||||||
|
<span className="ml-4">{name ? name : "Sign in with AzureAD"}</span>
|
||||||
|
)}
|
||||||
|
</button>
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
SignInWithAzureAD.displayName = "SignInWithAzureAD";
|
||||||
@@ -1,20 +1,27 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { ReactNode, forwardRef } from "react";
|
import { ReactNode, forwardRef } from "react";
|
||||||
import { SignInWithIdentityProviderProps } from "./SignInWith";
|
import { IdpButtonClasses, SignInWithIdentityProviderProps } from "./classes";
|
||||||
import { IdpButtonClasses } from "./classes";
|
|
||||||
|
|
||||||
export const SignInWithGithub = forwardRef<HTMLButtonElement, SignInWithIdentityProviderProps>(
|
export const SignInWithGithub = forwardRef<
|
||||||
|
HTMLButtonElement,
|
||||||
|
SignInWithIdentityProviderProps
|
||||||
|
>(
|
||||||
({ children, className = "", name = "", ...props }, ref): ReactNode => (
|
({ children, className = "", name = "", ...props }, ref): ReactNode => (
|
||||||
<button type="button" ref={ref} className={`${IdpButtonClasses} ${className}`} {...props}>
|
<button
|
||||||
<div className="ztdl-h-8 ztdl-w-8 ztdl-mx-2 flex items-center justify-center">
|
type="button"
|
||||||
|
ref={ref}
|
||||||
|
className={`${IdpButtonClasses} ${className}`}
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<div className="h-8 w-8 mx-2 flex items-center justify-center">
|
||||||
<svg
|
<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
width="1024"
|
width="1024"
|
||||||
height="1024"
|
height="1024"
|
||||||
fill="none"
|
fill="none"
|
||||||
viewBox="0 0 1024 1024"
|
viewBox="0 0 1024 1024"
|
||||||
className="hidden dark:ztdl-block"
|
className="hidden dark:block"
|
||||||
>
|
>
|
||||||
<path
|
<path
|
||||||
fill="#fafafa"
|
fill="#fafafa"
|
||||||
@@ -29,7 +36,7 @@ export const SignInWithGithub = forwardRef<HTMLButtonElement, SignInWithIdentity
|
|||||||
height="1024"
|
height="1024"
|
||||||
fill="none"
|
fill="none"
|
||||||
viewBox="0 0 1024 1024"
|
viewBox="0 0 1024 1024"
|
||||||
className="ztdl-block dark:ztdl-hidden"
|
className="block dark:hidden"
|
||||||
>
|
>
|
||||||
<path
|
<path
|
||||||
fill="#1B1F23"
|
fill="#1B1F23"
|
||||||
@@ -39,7 +46,11 @@ export const SignInWithGithub = forwardRef<HTMLButtonElement, SignInWithIdentity
|
|||||||
></path>
|
></path>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
{children ? children : <span className="ztdl-ml-4">{name ? name : "Sign in with GitHub"}</span>}
|
{children ? (
|
||||||
|
children
|
||||||
|
) : (
|
||||||
|
<span className="ml-4">{name ? name : "Sign in with GitHub"}</span>
|
||||||
|
)}
|
||||||
</button>
|
</button>
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -1,12 +1,26 @@
|
|||||||
import { ReactNode, forwardRef } from "react";
|
"use client";
|
||||||
import { SignInWithIdentityProviderProps } from "./SignInWith";
|
|
||||||
import { IdpButtonClasses } from "./classes";
|
|
||||||
|
|
||||||
export const SignInWithGitlab = forwardRef<HTMLButtonElement, SignInWithIdentityProviderProps>(
|
import { ReactNode, forwardRef } from "react";
|
||||||
|
import { IdpButtonClasses, SignInWithIdentityProviderProps } from "./classes";
|
||||||
|
|
||||||
|
export const SignInWithGitlab = forwardRef<
|
||||||
|
HTMLButtonElement,
|
||||||
|
SignInWithIdentityProviderProps
|
||||||
|
>(
|
||||||
({ children, className = "", name = "", ...props }, ref): ReactNode => (
|
({ children, className = "", name = "", ...props }, ref): ReactNode => (
|
||||||
<button type="button" ref={ref} className={`${IdpButtonClasses} ${className}`} {...props}>
|
<button
|
||||||
<div className="ztdl-h-12 ztdl-w-12 flex items-center justify-center">
|
type="button"
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width={25} height={24} fill="none">
|
ref={ref}
|
||||||
|
className={`${IdpButtonClasses} ${className}`}
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<div className="h-12 w-12 flex items-center justify-center">
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={25}
|
||||||
|
height={24}
|
||||||
|
fill="none"
|
||||||
|
>
|
||||||
<path
|
<path
|
||||||
fill="#e24329"
|
fill="#e24329"
|
||||||
d="m24.507 9.5-.034-.09L21.082.562a.896.896 0 0 0-1.694.091l-2.29 7.01H7.825L5.535.653a.898.898 0 0 0-1.694-.09L.451 9.411.416 9.5a6.297 6.297 0 0 0 2.09 7.278l.012.01.03.022 5.16 3.867 2.56 1.935 1.554 1.176a1.051 1.051 0 0 0 1.268 0l1.555-1.176 2.56-1.935 5.197-3.89.014-.01A6.297 6.297 0 0 0 24.507 9.5z"
|
d="m24.507 9.5-.034-.09L21.082.562a.896.896 0 0 0-1.694.091l-2.29 7.01H7.825L5.535.653a.898.898 0 0 0-1.694-.09L.451 9.411.416 9.5a6.297 6.297 0 0 0 2.09 7.278l.012.01.03.022 5.16 3.867 2.56 1.935 1.554 1.176a1.051 1.051 0 0 0 1.268 0l1.555-1.176 2.56-1.935 5.197-3.89.014-.01A6.297 6.297 0 0 0 24.507 9.5z"
|
||||||
@@ -25,7 +39,11 @@ export const SignInWithGitlab = forwardRef<HTMLButtonElement, SignInWithIdentity
|
|||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
{children ? children : <span className="ztdl-ml-4">{name ? name : "Sign in with GitLab"}</span>}
|
{children ? (
|
||||||
|
children
|
||||||
|
) : (
|
||||||
|
<span className="ml-4">{name ? name : "Sign in with GitLab"}</span>
|
||||||
|
)}
|
||||||
</button>
|
</button>
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -1,12 +1,26 @@
|
|||||||
import { ReactNode, forwardRef } from "react";
|
"use client";
|
||||||
import { SignInWithIdentityProviderProps } from "./SignInWith";
|
|
||||||
import { IdpButtonClasses } from "./classes";
|
|
||||||
|
|
||||||
export const SignInWithGoogle = forwardRef<HTMLButtonElement, SignInWithIdentityProviderProps>(
|
import { ReactNode, forwardRef } from "react";
|
||||||
|
import { IdpButtonClasses, SignInWithIdentityProviderProps } from "./classes";
|
||||||
|
|
||||||
|
export const SignInWithGoogle = forwardRef<
|
||||||
|
HTMLButtonElement,
|
||||||
|
SignInWithIdentityProviderProps
|
||||||
|
>(
|
||||||
({ children, className = "", name = "", ...props }, ref): ReactNode => (
|
({ children, className = "", name = "", ...props }, ref): ReactNode => (
|
||||||
<button type="button" ref={ref} className={`${IdpButtonClasses} ${className}`} {...props}>
|
<button
|
||||||
<div className="ztdl-h-12 ztdl-w-12 ztdl-flex ztdl-items-center ztdl-justify-center">
|
type="button"
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlSpace="preserve" id="Capa_1" viewBox="0 0 150 150">
|
ref={ref}
|
||||||
|
className={`${IdpButtonClasses} ${className}`}
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<div className="h-12 w-12 flex items-center justify-center">
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlSpace="preserve"
|
||||||
|
id="Capa_1"
|
||||||
|
viewBox="0 0 150 150"
|
||||||
|
>
|
||||||
<style>
|
<style>
|
||||||
{
|
{
|
||||||
".st0{fill:#1a73e8}.st1{fill:#ea4335}.st2{fill:#4285f4}.st3{fill:#fbbc04}.st4{fill:#34a853}.st5{fill:#4caf50}.st6{fill:#1e88e5}.st7{fill:#e53935}.st8{fill:#c62828}.st9{fill:#fbc02d}.st10{fill:#1565c0}.st11{fill:#2e7d32}.st16{clip-path:url(#SVGID_2_)}.st17{fill:#188038}.st18,.st19{opacity:.2;fill:#fff;enable-background:new}.st19{opacity:.3;fill:#0d652d}.st20{clip-path:url(#SVGID_4_)}.st21{opacity:.3;fill:url(#_45_shadow_1_);enable-background:new}.st22{clip-path:url(#SVGID_6_)}.st23{fill:#fa7b17}.st24,.st25,.st26{opacity:.3;fill:#174ea6;enable-background:new}.st25,.st26{fill:#a50e0e}.st26{fill:#e37400}.st27{fill:url(#Finish_mask_1_)}.st28{fill:#fff}.st29{fill:#0c9d58}.st30,.st31{opacity:.2;fill:#004d40;enable-background:new}.st31{fill:#3e2723}.st32{fill:#ffc107}.st33{fill:#1a237e;enable-background:new}.st33,.st34{opacity:.2}.st35{fill:#1a237e}.st36{fill:url(#SVGID_7_)}.st37{fill:#fbbc05}.st38{clip-path:url(#SVGID_9_);fill:#e53935}.st39{clip-path:url(#SVGID_11_);fill:#fbc02d}.st40{clip-path:url(#SVGID_13_);fill:#e53935}.st41{clip-path:url(#SVGID_15_);fill:#fbc02d}"
|
".st0{fill:#1a73e8}.st1{fill:#ea4335}.st2{fill:#4285f4}.st3{fill:#fbbc04}.st4{fill:#34a853}.st5{fill:#4caf50}.st6{fill:#1e88e5}.st7{fill:#e53935}.st8{fill:#c62828}.st9{fill:#fbc02d}.st10{fill:#1565c0}.st11{fill:#2e7d32}.st16{clip-path:url(#SVGID_2_)}.st17{fill:#188038}.st18,.st19{opacity:.2;fill:#fff;enable-background:new}.st19{opacity:.3;fill:#0d652d}.st20{clip-path:url(#SVGID_4_)}.st21{opacity:.3;fill:url(#_45_shadow_1_);enable-background:new}.st22{clip-path:url(#SVGID_6_)}.st23{fill:#fa7b17}.st24,.st25,.st26{opacity:.3;fill:#174ea6;enable-background:new}.st25,.st26{fill:#a50e0e}.st26{fill:#e37400}.st27{fill:url(#Finish_mask_1_)}.st28{fill:#fff}.st29{fill:#0c9d58}.st30,.st31{opacity:.2;fill:#004d40;enable-background:new}.st31{fill:#3e2723}.st32{fill:#ffc107}.st33{fill:#1a237e;enable-background:new}.st33,.st34{opacity:.2}.st35{fill:#1a237e}.st36{fill:url(#SVGID_7_)}.st37{fill:#fbbc05}.st38{clip-path:url(#SVGID_9_);fill:#e53935}.st39{clip-path:url(#SVGID_11_);fill:#fbc02d}.st40{clip-path:url(#SVGID_13_);fill:#e53935}.st41{clip-path:url(#SVGID_15_);fill:#fbc02d}"
|
||||||
@@ -38,7 +52,11 @@ export const SignInWithGoogle = forwardRef<HTMLButtonElement, SignInWithIdentity
|
|||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
{children ? children : <span className="ztdl-ml-4">{name ? name : "Sign in with Google"}</span>}
|
{children ? (
|
||||||
|
children
|
||||||
|
) : (
|
||||||
|
<span className="ml-4">{name ? name : "Sign in with Google"}</span>
|
||||||
|
)}
|
||||||
</button>
|
</button>
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
17
apps/login/src/ui/idps/classes.tsx
Normal file
17
apps/login/src/ui/idps/classes.tsx
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import { ButtonHTMLAttributes, DetailedHTMLProps } from "react";
|
||||||
|
|
||||||
|
export const IdpButtonClasses =
|
||||||
|
"transition-all w-full cursor-pointer flex flex-row items-center bg-background-light-400 text-text-light-500 dark:bg-background-dark-500 dark:text-text-dark-500 border border-divider-light hover:border-black dark:border-divider-dark hover:dark:border-white focus:border-primary-light-500 focus:dark:border-primary-dark-500 outline-none rounded-md px-4 text-sm";
|
||||||
|
|
||||||
|
export interface SignInWithIDPProps {
|
||||||
|
children?: React.ReactNode;
|
||||||
|
orgId?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type SignInWithIdentityProviderProps = DetailedHTMLProps<
|
||||||
|
ButtonHTMLAttributes<HTMLButtonElement>,
|
||||||
|
HTMLButtonElement
|
||||||
|
> & {
|
||||||
|
name?: string;
|
||||||
|
e2e?: string;
|
||||||
|
};
|
||||||
@@ -6,7 +6,6 @@ import {
|
|||||||
getSession,
|
getSession,
|
||||||
setSession,
|
setSession,
|
||||||
} from "@/lib/zitadel";
|
} from "@/lib/zitadel";
|
||||||
import { addSessionToCookie, updateSessionCookie } from "@zitadel/next";
|
|
||||||
import {
|
import {
|
||||||
Challenges,
|
Challenges,
|
||||||
RequestChallenges,
|
RequestChallenges,
|
||||||
@@ -18,6 +17,7 @@ import {
|
|||||||
} from "@zitadel/proto/zitadel/session/v2/session_service_pb";
|
} from "@zitadel/proto/zitadel/session/v2/session_service_pb";
|
||||||
import { timestampDate, toDate } from "@zitadel/client";
|
import { timestampDate, toDate } from "@zitadel/client";
|
||||||
import { create } from "@zitadel/client";
|
import { create } from "@zitadel/client";
|
||||||
|
import { addSessionToCookie, updateSessionCookie } from "@/lib/cookies";
|
||||||
|
|
||||||
type CustomCookieData = {
|
type CustomCookieData = {
|
||||||
id: string;
|
id: string;
|
||||||
|
|||||||
@@ -6,36 +6,16 @@
|
|||||||
"dependsOn": ["^build"]
|
"dependsOn": ["^build"]
|
||||||
},
|
},
|
||||||
"test": {
|
"test": {
|
||||||
"dependsOn": [
|
"dependsOn": ["@zitadel/node#build", "@zitadel/client#build"]
|
||||||
"@zitadel/node#build",
|
|
||||||
"@zitadel/client#build",
|
|
||||||
"@zitadel/react#build",
|
|
||||||
"@zitadel/next#build"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"test:integration": {
|
"test:integration": {
|
||||||
"dependsOn": [
|
"dependsOn": ["@zitadel/node#build", "@zitadel/client#build"]
|
||||||
"@zitadel/node#build",
|
|
||||||
"@zitadel/client#build",
|
|
||||||
"@zitadel/react#build",
|
|
||||||
"@zitadel/next#build"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"test:unit": {
|
"test:unit": {
|
||||||
"dependsOn": [
|
"dependsOn": ["@zitadel/node#build", "@zitadel/client#build"]
|
||||||
"@zitadel/node#build",
|
|
||||||
"@zitadel/client#build",
|
|
||||||
"@zitadel/react#build",
|
|
||||||
"@zitadel/next#build"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"test:watch": {
|
"test:watch": {
|
||||||
"dependsOn": [
|
"dependsOn": ["@zitadel/node#build", "@zitadel/client#build"]
|
||||||
"@zitadel/node#build",
|
|
||||||
"@zitadel/client#build",
|
|
||||||
"@zitadel/react#build",
|
|
||||||
"@zitadel/next#build"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
root: true,
|
|
||||||
extends: ["zitadel"],
|
|
||||||
};
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "@zitadel/next",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"sideEffects": false,
|
|
||||||
"license": "MIT",
|
|
||||||
"type": "module",
|
|
||||||
"exports": {
|
|
||||||
".": {
|
|
||||||
"import": "./dist/index.js",
|
|
||||||
"types": "./dist/index.d.ts"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"dist/**"
|
|
||||||
],
|
|
||||||
"publishConfig": {
|
|
||||||
"access": "public"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "tsup",
|
|
||||||
"test": "pnpm test:unit",
|
|
||||||
"test:watch": "pnpm test:unit:watch",
|
|
||||||
"test:unit": "vitest",
|
|
||||||
"test:unit:watch": "vitest --watch",
|
|
||||||
"dev": "tsup --watch",
|
|
||||||
"lint": "eslint \"src/**/*.ts*\"",
|
|
||||||
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@zitadel/node": "workspace:*",
|
|
||||||
"@zitadel/react": "workspace:*",
|
|
||||||
"@zitadel/client": "workspace:*",
|
|
||||||
"@zitadel/proto": "workspace:*",
|
|
||||||
"next": "^14.2.5",
|
|
||||||
"react": "^18.3.1"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"next": "^14.2.5"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@types/react": "^18.3.3",
|
|
||||||
"@zitadel/tsconfig": "workspace:*",
|
|
||||||
"eslint-config-zitadel": "workspace:*",
|
|
||||||
"postcss": "8.4.41",
|
|
||||||
"tailwindcss": "3.4.9",
|
|
||||||
"zitadel-tailwind-config": "workspace:*"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
// If you want to use other PostCSS plugins, see the following:
|
|
||||||
// https://tailwindcss.com/docs/using-with-preprocessors
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
plugins: {
|
|
||||||
tailwindcss: {},
|
|
||||||
autoprefixer: {},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
export type ZitadelNextProps = {
|
|
||||||
dark: boolean;
|
|
||||||
children: React.ReactNode;
|
|
||||||
};
|
|
||||||
|
|
||||||
export function ZitadelNextProvider({ dark, children }: ZitadelNextProps) {
|
|
||||||
return <div className={`${dark ? "ztdl-dark" : "ztdl-light"} `}>{children}</div>;
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
// import "./styles.css";
|
|
||||||
|
|
||||||
export { ZitadelNextProvider, type ZitadelNextProps } from "./components/ZitadelNextProvider";
|
|
||||||
export * from "./utils/cookies";
|
|
||||||
export { loadMostRecentSession } from "./utils/session";
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
@tailwind base;
|
|
||||||
@tailwind components;
|
|
||||||
@tailwind utilities;
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
const sharedConfig = require("zitadel-tailwind-config/tailwind.config.mjs");
|
|
||||||
|
|
||||||
/** @type {import('tailwindcss').Config} */
|
|
||||||
module.exports = {
|
|
||||||
presets: [sharedConfig],
|
|
||||||
prefix: "ztdl-next-",
|
|
||||||
darkMode: "class",
|
|
||||||
content: [`src/**/*.{js,ts,jsx,tsx}`],
|
|
||||||
};
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": "@zitadel/tsconfig/react-library.json",
|
|
||||||
"include": ["."],
|
|
||||||
"exclude": ["dist", "build", "node_modules"]
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
import { defineConfig, Options } from "tsup";
|
|
||||||
|
|
||||||
export default defineConfig((options: Options) => ({
|
|
||||||
treeshake: true,
|
|
||||||
splitting: true,
|
|
||||||
publicDir: true,
|
|
||||||
entry: ["src/**/*.tsx"],
|
|
||||||
format: ["esm"],
|
|
||||||
dts: true,
|
|
||||||
minify: true,
|
|
||||||
clean: true,
|
|
||||||
external: ["react"],
|
|
||||||
...options,
|
|
||||||
}));
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": ["//"],
|
|
||||||
"tasks": {
|
|
||||||
"build": {
|
|
||||||
"outputs": ["dist/**"],
|
|
||||||
"dependsOn": ["@zitadel/client#build", "@zitadel/react#build"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
root: true,
|
|
||||||
extends: ["zitadel"],
|
|
||||||
};
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
# How to use
|
|
||||||
|
|
||||||
### Install
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm install @zitadel/react
|
|
||||||
```
|
|
||||||
|
|
||||||
or
|
|
||||||
|
|
||||||
```sh
|
|
||||||
yarn add @zitadel/react
|
|
||||||
```
|
|
||||||
|
|
||||||
### Import styles file
|
|
||||||
|
|
||||||
To get the styles, import them in `_app.tsx` or global styling file
|
|
||||||
|
|
||||||
```
|
|
||||||
import "@zitadel/react/styles.css";
|
|
||||||
```
|
|
||||||
|
|
||||||
### Setup Dark mode
|
|
||||||
|
|
||||||
to set dark theme, wrap your components in a `ui-dark` class.
|
|
||||||
|
|
||||||
### Use components
|
|
||||||
|
|
||||||
```tsx
|
|
||||||
import { SignInWithGoogle } from "@zitadel/react";
|
|
||||||
|
|
||||||
export default function IdentityProviders() {
|
|
||||||
return (
|
|
||||||
<div className="py-4">
|
|
||||||
<SignInWithGoogle />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
```
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "@zitadel/react",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"types": "./dist/index.d.ts",
|
|
||||||
"sideEffects": [
|
|
||||||
"**/*.css"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"exports": {
|
|
||||||
".": {
|
|
||||||
"import": "./dist/index.mjs",
|
|
||||||
"require": "./dist/index.cjs"
|
|
||||||
},
|
|
||||||
"./styles.css": "./dist/index.css",
|
|
||||||
"./assets/*": "./dist/assets/*"
|
|
||||||
},
|
|
||||||
"publishConfig": {
|
|
||||||
"access": "public"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "tsup",
|
|
||||||
"test": "pnpm test:unit",
|
|
||||||
"test:watch": "pnpm test:unit:watch",
|
|
||||||
"test:unit": "vitest",
|
|
||||||
"test:unit:watch": "vitest --watch",
|
|
||||||
"dev": "tsup --watch",
|
|
||||||
"lint": "eslint \"src/**/*.ts*\"",
|
|
||||||
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
|
|
||||||
"copy-files": "cp -R ./src/public/ ./dist/"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": "^18.3.1"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@testing-library/jest-dom": "^6.4.5",
|
|
||||||
"@testing-library/react": "^16.0.0",
|
|
||||||
"@types/react": "^18.3.3",
|
|
||||||
"@types/react-dom": "^18.3.0",
|
|
||||||
"@zitadel/tsconfig": "workspace:*",
|
|
||||||
"autoprefixer": "10.4.20",
|
|
||||||
"eslint-config-zitadel": "workspace:*",
|
|
||||||
"jsdom": "^24.0.0",
|
|
||||||
"postcss": "8.4.41",
|
|
||||||
"sass": "^1.77.1",
|
|
||||||
"tailwindcss": "3.4.9",
|
|
||||||
"zitadel-tailwind-config": "workspace:*"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
// If you want to use other PostCSS plugins, see the following:
|
|
||||||
// https://tailwindcss.com/docs/using-with-preprocessors
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
plugins: {
|
|
||||||
tailwindcss: {},
|
|
||||||
autoprefixer: {},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
import { ButtonHTMLAttributes, DetailedHTMLProps } from "react";
|
|
||||||
|
|
||||||
export type SignInWithIdentityProviderProps = DetailedHTMLProps<
|
|
||||||
ButtonHTMLAttributes<HTMLButtonElement>,
|
|
||||||
HTMLButtonElement
|
|
||||||
> & {
|
|
||||||
name?: string;
|
|
||||||
e2e?: string;
|
|
||||||
};
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
"use client";
|
|
||||||
|
|
||||||
import { ReactNode, forwardRef } from "react";
|
|
||||||
import { SignInWithIdentityProviderProps } from "./SignInWith";
|
|
||||||
import { IdpButtonClasses } from "./classes";
|
|
||||||
|
|
||||||
export const SignInWithAzureAD = forwardRef<HTMLButtonElement, SignInWithIdentityProviderProps>(
|
|
||||||
({ children, className = "", name = "", ...props }, ref): ReactNode => (
|
|
||||||
<button type="button" ref={ref} className={`${IdpButtonClasses} ${className}`} {...props}>
|
|
||||||
<div className="ztdl-h-12 ztdl-p-[10px] ztdl-w-12 ztdl-flex ztdl-items-center ztdl-justify-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21" className="w-full h-full">
|
|
||||||
<path fill="#f25022" d="M1 1H10V10H1z"></path>
|
|
||||||
<path fill="#00a4ef" d="M1 11H10V20H1z"></path>
|
|
||||||
<path fill="#7fba00" d="M11 1H20V10H11z"></path>
|
|
||||||
<path fill="#ffb900" d="M11 11H20V20H11z"></path>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
{children ? children : <span className="ztdl-ml-4">{name ? name : "Sign in with AzureAD"}</span>}
|
|
||||||
</button>
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
SignInWithAzureAD.displayName = "SignInWithAzureAD";
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
import * as React from "react";
|
|
||||||
|
|
||||||
export interface SignInWithIDPProps {
|
|
||||||
children?: React.ReactNode;
|
|
||||||
orgId?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function SignInWithIDP(props: SignInWithIDPProps) {
|
|
||||||
return (
|
|
||||||
<div className="ztdl-flex ztdl-flex-row border ztdl-border-divider-light dark:ztdl-border-divider-dark rounded-md px-4 text-sm">
|
|
||||||
<div></div>
|
|
||||||
{props.children}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
SignInWithIDP.displayName = "SignInWithIDP";
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
export type ZitadelReactProps = {
|
|
||||||
dark: boolean;
|
|
||||||
children: React.ReactNode;
|
|
||||||
};
|
|
||||||
|
|
||||||
export function ZitadelReactProvider({ dark, children }: ZitadelReactProps) {
|
|
||||||
return <div className={`${dark ? "ztdl-dark" : "ztdl-light"} `}>{children}</div>;
|
|
||||||
}
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
export const IdpButtonClasses =
|
|
||||||
"transition-all ztdl-w-full ztdl-cursor-pointer ztdl-flex ztdl-flex-row ztdl-items-center bg-background-light-400 text-text-light-500 dark:bg-background-dark-500 dark:text-text-dark-500 border border-divider-light hover:border-black dark:border-divider-dark hover:dark:border-white focus:border-primary-light-500 focus:dark:border-primary-dark-500 outline-none rounded-md px-4 text-sm";
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
import "./styles.css";
|
|
||||||
|
|
||||||
export { SignInWithGoogle } from "./components/SignInWithGoogle";
|
|
||||||
|
|
||||||
export { SignInWithGitlab } from "./components/SignInWithGitlab";
|
|
||||||
|
|
||||||
export { SignInWithAzureAD } from "./components/SignInWithAzureAD";
|
|
||||||
|
|
||||||
export { SignInWithGithub } from "./components/SignInWithGithub";
|
|
||||||
|
|
||||||
export { ZitadelReactProvider, type ZitadelReactProps } from "./components/ZitadelReactProvider";
|
|
||||||
|
|
||||||
export { SignInWithIDP, type SignInWithIDPProps } from "./components/SignInWithIDP";
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
@tailwind base;
|
|
||||||
@tailwind components;
|
|
||||||
@tailwind utilities;
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
const sharedConfig = require("zitadel-tailwind-config/tailwind.config.mjs");
|
|
||||||
|
|
||||||
/** @type {import('tailwindcss').Config} */
|
|
||||||
module.exports = {
|
|
||||||
presets: [sharedConfig],
|
|
||||||
prefix: "ztdl-",
|
|
||||||
darkMode: "class",
|
|
||||||
content: [`src/**/*.{js,ts,jsx,tsx}`],
|
|
||||||
};
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": "@zitadel/tsconfig/react-library.json",
|
|
||||||
"include": ["."],
|
|
||||||
"exclude": ["dist", "build", "node_modules"],
|
|
||||||
"compilerOptions": {
|
|
||||||
"types": ["@testing-library/jest-dom"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
import { defineConfig, Options } from "tsup";
|
|
||||||
|
|
||||||
export default defineConfig((options: Options) => ({
|
|
||||||
entry: ["src/index.tsx"],
|
|
||||||
format: ["esm", "cjs"],
|
|
||||||
dts: true,
|
|
||||||
external: ["react"],
|
|
||||||
...options,
|
|
||||||
}));
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": [
|
|
||||||
"//"
|
|
||||||
],
|
|
||||||
"tasks": {
|
|
||||||
"build": {
|
|
||||||
"outputs": [
|
|
||||||
"dist/**"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
import { defineConfig } from "vitest/config";
|
|
||||||
import react from "@vitejs/plugin-react";
|
|
||||||
|
|
||||||
export default defineConfig({
|
|
||||||
plugins: [react()],
|
|
||||||
test: {
|
|
||||||
include: ['src/**/*.test.ts', 'src/**/*.test.tsx'],
|
|
||||||
environment: "jsdom",
|
|
||||||
setupFiles: ["@testing-library/jest-dom/vitest"],
|
|
||||||
},
|
|
||||||
});
|
|
||||||
290
pnpm-lock.yaml
generated
290
pnpm-lock.yaml
generated
@@ -62,18 +62,12 @@ importers:
|
|||||||
'@zitadel/client':
|
'@zitadel/client':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../packages/zitadel-client
|
version: link:../../packages/zitadel-client
|
||||||
'@zitadel/next':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../packages/zitadel-next
|
|
||||||
'@zitadel/node':
|
'@zitadel/node':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../packages/zitadel-node
|
version: link:../../packages/zitadel-node
|
||||||
'@zitadel/proto':
|
'@zitadel/proto':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../packages/zitadel-proto
|
version: link:../../packages/zitadel-proto
|
||||||
'@zitadel/react':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../packages/zitadel-react
|
|
||||||
clsx:
|
clsx:
|
||||||
specifier: 1.2.1
|
specifier: 1.2.1
|
||||||
version: 1.2.1
|
version: 1.2.1
|
||||||
@@ -118,7 +112,7 @@ importers:
|
|||||||
specifier: ^6.4.5
|
specifier: ^6.4.5
|
||||||
version: 6.5.0
|
version: 6.5.0
|
||||||
'@testing-library/react':
|
'@testing-library/react':
|
||||||
specifier: ^16.0.0
|
specifier: ^16.0.1
|
||||||
version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
|
version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
|
||||||
'@types/ms':
|
'@types/ms':
|
||||||
specifier: 0.7.34
|
specifier: 0.7.34
|
||||||
@@ -142,7 +136,7 @@ importers:
|
|||||||
specifier: 1.0.0
|
specifier: 1.0.0
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
'@zitadel/prettier-config':
|
'@zitadel/prettier-config':
|
||||||
specifier: workspace:*
|
specifier: workspace:^
|
||||||
version: link:../../packages/zitadel-prettier-config
|
version: link:../../packages/zitadel-prettier-config
|
||||||
'@zitadel/tsconfig':
|
'@zitadel/tsconfig':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
@@ -239,46 +233,6 @@ importers:
|
|||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../eslint-config-zitadel
|
version: link:../eslint-config-zitadel
|
||||||
|
|
||||||
packages/zitadel-next:
|
|
||||||
dependencies:
|
|
||||||
'@zitadel/client':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../zitadel-client
|
|
||||||
'@zitadel/node':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../zitadel-node
|
|
||||||
'@zitadel/proto':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../zitadel-proto
|
|
||||||
'@zitadel/react':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../zitadel-react
|
|
||||||
next:
|
|
||||||
specifier: ^14.2.5
|
|
||||||
version: 14.2.5(@babel/core@7.25.2)(react-dom@18.3.1)(react@18.3.1)(sass@1.77.8)
|
|
||||||
react:
|
|
||||||
specifier: ^18.3.1
|
|
||||||
version: 18.3.1
|
|
||||||
devDependencies:
|
|
||||||
'@types/react':
|
|
||||||
specifier: ^18.3.3
|
|
||||||
version: 18.3.3
|
|
||||||
'@zitadel/tsconfig':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../zitadel-tsconfig
|
|
||||||
eslint-config-zitadel:
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../eslint-config-zitadel
|
|
||||||
postcss:
|
|
||||||
specifier: 8.4.41
|
|
||||||
version: 8.4.41
|
|
||||||
tailwindcss:
|
|
||||||
specifier: 3.4.9
|
|
||||||
version: 3.4.9
|
|
||||||
zitadel-tailwind-config:
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../zitadel-tailwind-config
|
|
||||||
|
|
||||||
packages/zitadel-node:
|
packages/zitadel-node:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@connectrpc/connect-node':
|
'@connectrpc/connect-node':
|
||||||
@@ -316,49 +270,6 @@ importers:
|
|||||||
specifier: ^1.36.0
|
specifier: ^1.36.0
|
||||||
version: 1.39.0
|
version: 1.39.0
|
||||||
|
|
||||||
packages/zitadel-react:
|
|
||||||
dependencies:
|
|
||||||
react:
|
|
||||||
specifier: ^18.3.1
|
|
||||||
version: 18.3.1
|
|
||||||
devDependencies:
|
|
||||||
'@testing-library/jest-dom':
|
|
||||||
specifier: ^6.4.5
|
|
||||||
version: 6.5.0
|
|
||||||
'@testing-library/react':
|
|
||||||
specifier: ^16.0.0
|
|
||||||
version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1)
|
|
||||||
'@types/react':
|
|
||||||
specifier: ^18.3.3
|
|
||||||
version: 18.3.3
|
|
||||||
'@types/react-dom':
|
|
||||||
specifier: ^18.3.0
|
|
||||||
version: 18.3.0
|
|
||||||
'@zitadel/tsconfig':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../zitadel-tsconfig
|
|
||||||
autoprefixer:
|
|
||||||
specifier: 10.4.20
|
|
||||||
version: 10.4.20(postcss@8.4.41)
|
|
||||||
eslint-config-zitadel:
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../eslint-config-zitadel
|
|
||||||
jsdom:
|
|
||||||
specifier: ^24.0.0
|
|
||||||
version: 24.1.3
|
|
||||||
postcss:
|
|
||||||
specifier: 8.4.41
|
|
||||||
version: 8.4.41
|
|
||||||
sass:
|
|
||||||
specifier: ^1.77.1
|
|
||||||
version: 1.77.8
|
|
||||||
tailwindcss:
|
|
||||||
specifier: 3.4.9
|
|
||||||
version: 3.4.9
|
|
||||||
zitadel-tailwind-config:
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../zitadel-tailwind-config
|
|
||||||
|
|
||||||
packages/zitadel-tailwind-config:
|
packages/zitadel-tailwind-config:
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@tailwindcss/forms':
|
'@tailwindcss/forms':
|
||||||
@@ -2189,15 +2100,6 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/agent-base@7.1.1:
|
|
||||||
resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==}
|
|
||||||
engines: {node: '>= 14'}
|
|
||||||
dependencies:
|
|
||||||
debug: 4.3.6(supports-color@5.5.0)
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/aggregate-error@3.1.0:
|
/aggregate-error@3.1.0:
|
||||||
resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
|
resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -2914,13 +2816,6 @@ packages:
|
|||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
/cssstyle@4.0.1:
|
|
||||||
resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
dependencies:
|
|
||||||
rrweb-cssom: 0.6.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/csstype@3.1.3:
|
/csstype@3.1.3:
|
||||||
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
|
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -2986,14 +2881,6 @@ packages:
|
|||||||
assert-plus: 1.0.0
|
assert-plus: 1.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/data-urls@5.0.0:
|
|
||||||
resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
dependencies:
|
|
||||||
whatwg-mimetype: 4.0.0
|
|
||||||
whatwg-url: 14.0.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/data-view-buffer@1.0.1:
|
/data-view-buffer@1.0.1:
|
||||||
resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
|
resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
@@ -3086,10 +2973,6 @@ packages:
|
|||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/decimal.js@10.4.3:
|
|
||||||
resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/deep-eql@5.0.2:
|
/deep-eql@5.0.2:
|
||||||
resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
|
resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@@ -3285,11 +3168,6 @@ packages:
|
|||||||
strip-ansi: 6.0.1
|
strip-ansi: 6.0.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/entities@4.5.0:
|
|
||||||
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
|
|
||||||
engines: {node: '>=0.12'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/env-cmd@10.1.0:
|
/env-cmd@10.1.0:
|
||||||
resolution: {integrity: sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==}
|
resolution: {integrity: sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==}
|
||||||
engines: {node: '>=8.0.0'}
|
engines: {node: '>=8.0.0'}
|
||||||
@@ -4400,23 +4278,6 @@ packages:
|
|||||||
lru-cache: 6.0.0
|
lru-cache: 6.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/html-encoding-sniffer@4.0.0:
|
|
||||||
resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
dependencies:
|
|
||||||
whatwg-encoding: 3.1.1
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/http-proxy-agent@7.0.2:
|
|
||||||
resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
|
|
||||||
engines: {node: '>= 14'}
|
|
||||||
dependencies:
|
|
||||||
agent-base: 7.1.1
|
|
||||||
debug: 4.3.6(supports-color@5.5.0)
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/http-signature@1.3.6:
|
/http-signature@1.3.6:
|
||||||
resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==}
|
resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==}
|
||||||
engines: {node: '>=0.10'}
|
engines: {node: '>=0.10'}
|
||||||
@@ -4436,16 +4297,6 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/https-proxy-agent@7.0.5:
|
|
||||||
resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==}
|
|
||||||
engines: {node: '>= 14'}
|
|
||||||
dependencies:
|
|
||||||
agent-base: 7.1.1
|
|
||||||
debug: 4.3.6(supports-color@5.5.0)
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/human-id@1.0.2:
|
/human-id@1.0.2:
|
||||||
resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==}
|
resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -4472,13 +4323,6 @@ packages:
|
|||||||
safer-buffer: 2.1.2
|
safer-buffer: 2.1.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/iconv-lite@0.6.3:
|
|
||||||
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
dependencies:
|
|
||||||
safer-buffer: 2.1.2
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/ieee754@1.2.1:
|
/ieee754@1.2.1:
|
||||||
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
|
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -4711,10 +4555,6 @@ packages:
|
|||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/is-potential-custom-element-name@1.0.1:
|
|
||||||
resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/is-regex@1.1.4:
|
/is-regex@1.1.4:
|
||||||
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
|
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
@@ -4887,42 +4727,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==}
|
resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/jsdom@24.1.3:
|
|
||||||
resolution: {integrity: sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
peerDependencies:
|
|
||||||
canvas: ^2.11.2
|
|
||||||
peerDependenciesMeta:
|
|
||||||
canvas:
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
cssstyle: 4.0.1
|
|
||||||
data-urls: 5.0.0
|
|
||||||
decimal.js: 10.4.3
|
|
||||||
form-data: 4.0.0
|
|
||||||
html-encoding-sniffer: 4.0.0
|
|
||||||
http-proxy-agent: 7.0.2
|
|
||||||
https-proxy-agent: 7.0.5
|
|
||||||
is-potential-custom-element-name: 1.0.1
|
|
||||||
nwsapi: 2.2.12
|
|
||||||
parse5: 7.1.2
|
|
||||||
rrweb-cssom: 0.7.1
|
|
||||||
saxes: 6.0.0
|
|
||||||
symbol-tree: 3.2.4
|
|
||||||
tough-cookie: 4.1.4
|
|
||||||
w3c-xmlserializer: 5.0.0
|
|
||||||
webidl-conversions: 7.0.0
|
|
||||||
whatwg-encoding: 3.1.1
|
|
||||||
whatwg-mimetype: 4.0.0
|
|
||||||
whatwg-url: 14.0.0
|
|
||||||
ws: 8.18.0
|
|
||||||
xml-name-validator: 5.0.0
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- bufferutil
|
|
||||||
- supports-color
|
|
||||||
- utf-8-validate
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/jsesc@2.5.2:
|
/jsesc@2.5.2:
|
||||||
resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
|
resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -5562,10 +5366,6 @@ packages:
|
|||||||
set-blocking: 2.0.0
|
set-blocking: 2.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/nwsapi@2.2.12:
|
|
||||||
resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/object-assign@4.1.1:
|
/object-assign@4.1.1:
|
||||||
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
|
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@@ -5764,12 +5564,6 @@ packages:
|
|||||||
lines-and-columns: 1.2.4
|
lines-and-columns: 1.2.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/parse5@7.1.2:
|
|
||||||
resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
|
|
||||||
dependencies:
|
|
||||||
entities: 4.5.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/path-exists@4.0.0:
|
/path-exists@4.0.0:
|
||||||
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -6395,14 +6189,6 @@ packages:
|
|||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/rrweb-cssom@0.6.0:
|
|
||||||
resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/rrweb-cssom@0.7.1:
|
|
||||||
resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/run-parallel@1.2.0:
|
/run-parallel@1.2.0:
|
||||||
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
|
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -6450,13 +6236,6 @@ packages:
|
|||||||
immutable: 4.3.7
|
immutable: 4.3.7
|
||||||
source-map-js: 1.2.0
|
source-map-js: 1.2.0
|
||||||
|
|
||||||
/saxes@6.0.0:
|
|
||||||
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
|
|
||||||
engines: {node: '>=v12.22.7'}
|
|
||||||
dependencies:
|
|
||||||
xmlchars: 2.2.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/scheduler@0.23.2:
|
/scheduler@0.23.2:
|
||||||
resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
|
resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -6912,10 +6691,6 @@ packages:
|
|||||||
use-sync-external-store: 1.2.2(react@18.3.1)
|
use-sync-external-store: 1.2.2(react@18.3.1)
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/symbol-tree@3.2.4:
|
|
||||||
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/tailwindcss@3.4.9:
|
/tailwindcss@3.4.9:
|
||||||
resolution: {integrity: sha512-1SEOvRr6sSdV5IDf9iC+NU4dhwdqzF4zKKq3sAbasUWHEM6lsMhX+eNN5gkPx1BvLFEnZQEUFbXnGj8Qlp83Pg==}
|
resolution: {integrity: sha512-1SEOvRr6sSdV5IDf9iC+NU4dhwdqzF4zKKq3sAbasUWHEM6lsMhX+eNN5gkPx1BvLFEnZQEUFbXnGj8Qlp83Pg==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
@@ -7064,13 +6839,6 @@ packages:
|
|||||||
punycode: 2.3.1
|
punycode: 2.3.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/tr46@5.0.0:
|
|
||||||
resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
dependencies:
|
|
||||||
punycode: 2.3.1
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/tree-kill@1.2.2:
|
/tree-kill@1.2.2:
|
||||||
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
|
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -7556,13 +7324,6 @@ packages:
|
|||||||
- terser
|
- terser
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/w3c-xmlserializer@5.0.0:
|
|
||||||
resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
dependencies:
|
|
||||||
xml-name-validator: 5.0.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/wait-on@7.2.0(debug@4.3.6):
|
/wait-on@7.2.0(debug@4.3.6):
|
||||||
resolution: {integrity: sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==}
|
resolution: {integrity: sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==}
|
||||||
engines: {node: '>=12.0.0'}
|
engines: {node: '>=12.0.0'}
|
||||||
@@ -7585,31 +7346,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
|
resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/webidl-conversions@7.0.0:
|
|
||||||
resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/whatwg-encoding@3.1.1:
|
|
||||||
resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
dependencies:
|
|
||||||
iconv-lite: 0.6.3
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/whatwg-mimetype@4.0.0:
|
|
||||||
resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/whatwg-url@14.0.0:
|
|
||||||
resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
dependencies:
|
|
||||||
tr46: 5.0.0
|
|
||||||
webidl-conversions: 7.0.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/whatwg-url@5.0.0:
|
/whatwg-url@5.0.0:
|
||||||
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
|
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -7752,28 +7488,6 @@ packages:
|
|||||||
/wrappy@1.0.2:
|
/wrappy@1.0.2:
|
||||||
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
|
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
|
||||||
|
|
||||||
/ws@8.18.0:
|
|
||||||
resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==}
|
|
||||||
engines: {node: '>=10.0.0'}
|
|
||||||
peerDependencies:
|
|
||||||
bufferutil: ^4.0.1
|
|
||||||
utf-8-validate: '>=5.0.2'
|
|
||||||
peerDependenciesMeta:
|
|
||||||
bufferutil:
|
|
||||||
optional: true
|
|
||||||
utf-8-validate:
|
|
||||||
optional: true
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/xml-name-validator@5.0.0:
|
|
||||||
resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/xmlchars@2.2.0:
|
|
||||||
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/y18n@5.0.8:
|
/y18n@5.0.8:
|
||||||
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
|
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|||||||
Reference in New Issue
Block a user