zitadel next components, react

This commit is contained in:
Max Peintner
2023-07-18 13:58:33 +02:00
parent e659824b4c
commit 70d04c8085
24 changed files with 359 additions and 178 deletions

View File

@@ -1,6 +1,6 @@
import { getLegalAndSupportSettings, server } from "#/lib/zitadel";
import { SignInWithIDP } from "@zitadel/react";
import { SignInWithIDP } from "@zitadel/next";
export default async function Page({
searchParams,

View File

@@ -21,7 +21,7 @@
"eslint": "^7.32.0",
"eslint-config-zitadel": "workspace:*",
"prettier": "^2.5.1",
"turbo": "^1.10.3"
"turbo": "^1.10.8"
},
"packageManager": "pnpm@7.15.0"
}

View File

@@ -10,17 +10,18 @@
"dist/**"
],
"scripts": {
"build": "tsup src/index.tsx --format esm,cjs --dts --external react",
"build": "tsup",
"test": "pnpm test:unit",
"test:watch": "pnpm test:unit:watch",
"test:unit": "jest",
"test:unit:watch": "jest --watch",
"dev": "tsup src/index.tsx --format esm,cjs --watch --dts --external react",
"dev": "tsup --watch",
"lint": "eslint \"src/**/*.ts*\"",
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
},
"devDependencies": {
"@types/jest": "^29.5.1",
"@types/react": "^17.0.13",
"@zitadel/tsconfig": "workspace:*",
"eslint": "^7.32.0",
"eslint-config-zitadel": "workspace:*",
@@ -28,12 +29,21 @@
"ts-jest": "^29.1.0",
"ts-node": "^10.9.1",
"tsup": "^5.10.1",
"typescript": "^4.9.3"
"typescript": "^4.9.3",
"tailwindcss": "3.2.4",
"postcss": "8.4.21",
"zitadel-tailwind-config": "workspace:*"
},
"peerDependencies": {
"next": "^13"
"@zitadel/react": "workspace:*",
"@zitadel/server": "workspace:*",
"next": "^13",
"react": "18.2.0"
},
"publishConfig": {
"access": "public"
},
"dependencies": {
"next": "^13.4.10"
}
}
}

View File

@@ -0,0 +1,9 @@
// If you want to use other PostCSS plugins, see the following:
// https://tailwindcss.com/docs/using-with-preprocessors
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};

View File

@@ -0,0 +1,73 @@
import { ReactNode } from "react";
import {
ZitadelServer,
settings,
GetActiveIdentityProvidersResponse,
IdentityProvider,
IdentityProviderType,
} from "@zitadel/server";
import {
SignInWithGitlab,
SignInWithAzureAD,
SignInWithGoogle,
SignInWithGithub,
} from "@zitadel/react";
export interface SignInWithIDPProps {
children?: ReactNode;
server: ZitadelServer;
orgId?: string;
}
function getIdentityProviders(
server: ZitadelServer,
orgId?: string
): Promise<IdentityProvider[] | undefined> {
const settingsService = settings.getSettings(server);
console.log("req");
return settingsService
.getActiveIdentityProviders(
orgId ? { ctx: { orgId } } : { ctx: { instance: true } },
{}
)
.then((resp: GetActiveIdentityProvidersResponse) => {
return resp.identityProviders;
});
}
export async function SignInWithIDP(props: SignInWithIDPProps) {
const identityProviders = await getIdentityProviders(
props.server,
props.orgId
);
console.log(identityProviders);
return (
<div className="ztdl-next-flex ztdl-next-flex-col ztdl-next-w-full ztdl-next-space-y-2 ztdl-next-text-sm">
{identityProviders &&
identityProviders.map((idp, i) => {
switch (idp.type) {
case IdentityProviderType.IDENTITY_PROVIDER_TYPE_GITHUB:
return <SignInWithGithub key={`idp-${i}`}></SignInWithGithub>;
case IdentityProviderType.IDENTITY_PROVIDER_TYPE_GITHUB_ES:
return <SignInWithGithub key={`idp-${i}`}></SignInWithGithub>;
case IdentityProviderType.IDENTITY_PROVIDER_TYPE_AZURE_AD:
return <SignInWithAzureAD key={`idp-${i}`}></SignInWithAzureAD>;
case IdentityProviderType.IDENTITY_PROVIDER_TYPE_GOOGLE:
return <SignInWithGoogle key={`idp-${i}`}></SignInWithGoogle>;
case IdentityProviderType.IDENTITY_PROVIDER_TYPE_GITLAB:
return <SignInWithGitlab key={`idp-${i}`}></SignInWithGitlab>;
case IdentityProviderType.IDENTITY_PROVIDER_TYPE_GITLAB_SELF_HOSTED:
return <SignInWithGitlab key={`idp-${i}`}></SignInWithGitlab>;
default:
return <div></div>;
}
})}
{props.children}
</div>
);
}
SignInWithIDP.displayName = "SignInWithIDP";

View File

@@ -1,9 +1,9 @@
export type ZitadelUIProps = {
export type ZitadelNextProps = {
dark: boolean;
children: React.ReactNode;
};
export function ZitadelUIProvider({ dark, children }: ZitadelUIProps) {
export function ZitadelNextProvider({ dark, children }: ZitadelNextProps) {
return (
<div className={`${dark ? "ztdl-dark" : "ztdl-light"} `}>{children}</div>
);

View File

@@ -1,5 +0,0 @@
describe('slug', () => {
it('this is not a real test', () => { })
})
export { }

View File

@@ -1 +1,11 @@
export { toSlug } from "./toSlug";
import "./styles.css";
export {
SignInWithIDP,
type SignInWithIDPProps,
} from "./components/SignInWithIDP";
export {
ZitadelNextProvider,
type ZitadelNextProps,
} from "./components/ZitadelNextProvider";

View File

@@ -0,0 +1,3 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

View File

@@ -1,10 +0,0 @@
/**
* Return a slugified copy of a string.
*
* @param {string} str The string to be slugified
* @return {string} The slugified string.
*/
export function toSlug(str: string): string {
let s = str;
return s;
}

View File

@@ -0,0 +1,9 @@
const sharedConfig = require("zitadel-tailwind-config/tailwind.config.js");
/** @type {import('tailwindcss').Config} */
module.exports = {
presets: [sharedConfig],
prefix: "ztdl-next-",
darkMode: "class",
content: [`src/**/*.{js,ts,jsx,tsx}`],
};

View File

@@ -0,0 +1,14 @@
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,
}));

View File

@@ -0,0 +1,12 @@
{
"extends": [
"//"
],
"pipeline": {
"build": {
"outputs": [
"dist/**"
]
}
}
}

View File

@@ -48,7 +48,6 @@
"access": "public"
},
"peerDependencies": {
"react": "18.2.0",
"@zitadel/server": "workspace:*"
"react": "18.2.0"
}
}

View File

@@ -0,0 +1,3 @@
export interface SignInWithIdentityProviderProps {
children?: React.ReactNode;
}

View File

@@ -0,0 +1,40 @@
import { SignInWithIdentityProviderProps } from "./SignInWith";
export interface SignInWithAzureADProps
extends SignInWithIdentityProviderProps {}
export function SignInWithAzureAD(props: SignInWithAzureADProps) {
return (
<div className="ztdl-cursor-pointer ztdl-flex ztdl-flex-row ztdl-items-center ztdl-bg-white ztdl-text-black dark:ztdl-bg-transparent dark:ztdl-text-white border ztdl-border-divider-light dark:ztdl-border-divider-dark rounded-md px-4 text-sm">
<div className="ztdl-h-12 ztdl-w-12 flex items-center justify-center">
<svg
xmlns="http://www.w3.org/2000/svg"
width={25}
height={24}
fill="none"
{...props}
>
<path
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"
/>
<path
fill="#fc6d26"
d="m24.507 9.5-.034-.09a11.44 11.44 0 0 0-4.56 2.051l-7.447 5.632 4.742 3.584 5.197-3.89.014-.01A6.297 6.297 0 0 0 24.507 9.5z"
/>
<path
fill="#fca326"
d="m7.707 20.677 2.56 1.935 1.555 1.176a1.051 1.051 0 0 0 1.268 0l1.555-1.176 2.56-1.935-4.743-3.584-4.755 3.584z"
/>
<path
fill="#fc6d26"
d="M5.01 11.461a11.43 11.43 0 0 0-4.56-2.05L.416 9.5a6.297 6.297 0 0 0 2.09 7.278l.012.01.03.022 5.16 3.867 4.745-3.584-7.444-5.632z"
/>
</svg>
</div>
<span className="ztdl-ml-4">Sign in with AzureAD</span>
</div>
);
}
SignInWithAzureAD.displayName = "SignInWithAzureAD";

View File

@@ -0,0 +1,41 @@
import * as React from "react";
import { SignInWithIdentityProviderProps } from "./SignInWith";
export interface SignInWithGithubProps
extends SignInWithIdentityProviderProps {}
export function SignInWithGithub(props: SignInWithGithubProps) {
return (
<div className="ztdl-cursor-pointer ztdl-flex ztdl-flex-row ztdl-items-center ztdl-bg-white ztdl-text-black dark:ztdl-bg-transparent dark:ztdl-text-white border ztdl-border-divider-light dark:ztdl-border-divider-dark rounded-md px-4 text-sm">
<div className="ztdl-h-12 ztdl-w-12 flex items-center justify-center">
<svg
xmlns="http://www.w3.org/2000/svg"
width={25}
height={24}
fill="none"
{...props}
>
<path
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"
/>
<path
fill="#fc6d26"
d="m24.507 9.5-.034-.09a11.44 11.44 0 0 0-4.56 2.051l-7.447 5.632 4.742 3.584 5.197-3.89.014-.01A6.297 6.297 0 0 0 24.507 9.5z"
/>
<path
fill="#fca326"
d="m7.707 20.677 2.56 1.935 1.555 1.176a1.051 1.051 0 0 0 1.268 0l1.555-1.176 2.56-1.935-4.743-3.584-4.755 3.584z"
/>
<path
fill="#fc6d26"
d="M5.01 11.461a11.43 11.43 0 0 0-4.56-2.05L.416 9.5a6.297 6.297 0 0 0 2.09 7.278l.012.01.03.022 5.16 3.867 4.745-3.584-7.444-5.632z"
/>
</svg>
</div>
<span className="ztdl-ml-4">Sign in with Github</span>
</div>
);
}
SignInWithGithub.displayName = "SignInWithGithub";

View File

@@ -1,8 +1,7 @@
import * as React from "react";
import { SignInWithIdentityProviderProps } from "./SignInWith";
export interface SignInWithGitlabProps {
children?: React.ReactNode;
}
export interface SignInWithGitlabProps
extends SignInWithIdentityProviderProps {}
export function SignInWithGitlab(props: SignInWithGitlabProps) {
return (

View File

@@ -1,12 +1,12 @@
import * as React from "react";
import { SignInWithIdentityProviderProps } from "./SignInWith";
export interface SignInWithGoogleProps {
children?: React.ReactNode;
}
export interface SignInWithGoogleProps
extends SignInWithIdentityProviderProps {}
export function SignInWithGoogle(props: SignInWithGoogleProps) {
return (
<div className="ztdl-cursor-pointer ztdl-flex ztdl-flex-row ztdl-items-center ztdl-bg-white ztdl-text-black dark:ztdl-bg-transparent dark:ztdl-text-white border ztdl-border-divider-light dark:ztdl-border-divider-dark rounded-md px-4 text-sm">
<div className="ztdl-w-full ztdl-cursor-pointer ztdl-flex ztdl-flex-row ztdl-items-center ztdl-bg-white ztdl-text-black dark:ztdl-bg-transparent dark:ztdl-text-white border ztdl-border-divider-light dark:ztdl-border-divider-dark rounded-md px-4 text-sm">
<div className="ztdl-h-12 ztdl-w-12 ztdl-flex ztdl-items-center ztdl-justify-center">
<svg
xmlns="http://www.w3.org/2000/svg"

View File

@@ -1,24 +1,10 @@
import * as React from "react";
import { ZitadelServer, settings, getActiveIdentityProvidersResponse } from "@zitadel/server";
export interface SignInWithIDPProps {
children?: React.ReactNode;
server: ZitadelServer;
orgId?: string;
}
function getIDPs(
server: ZitadelServer,
orgId?: string,
): Promise<GetActiveIdentityProvidersResponse | undefined> {
const settingsService = settings.getSettings(server);
return settingsService
.getActiveIdentityProviders(orgId ? {ctx: {orgId}}: {ctx: {instance: true}}, {})
.then((resp: getActiveIdentityProvidersResponse) => {
return resp.settings;
});
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">

View File

@@ -0,0 +1,10 @@
export type ZitadelReactProps = {
dark: boolean;
children: React.ReactNode;
};
export function ZitadelReactProvider({ dark, children }: ZitadelReactProps) {
return (
<div className={`${dark ? "ztdl-dark" : "ztdl-light"} `}>{children}</div>
);
}

View File

@@ -11,9 +11,19 @@ export {
} from "./components/SignInWithGitlab";
export {
ZitadelUIProvider,
type ZitadelUIProps,
} from "./components/ZitadelUIProvider";
SignInWithAzureAD,
type SignInWithAzureADProps,
} from "./components/SignInWithAzureAD";
export {
SignInWithGithub,
type SignInWithGithubProps,
} from "./components/SignInWithGithub";
export {
ZitadelReactProvider,
type ZitadelReactProps,
} from "./components/ZitadelReactProvider";
export {
SignInWithIDP,

View File

@@ -12,7 +12,11 @@ export {
Theme,
} from "./proto/server/zitadel/settings/v2alpha/branding_settings";
export { LoginSettings } from "./proto/server/zitadel/settings/v2alpha/login_settings";
export {
LoginSettings,
IdentityProvider,
IdentityProviderType,
} from "./proto/server/zitadel/settings/v2alpha/login_settings";
export {
ChallengeKind,
@@ -38,6 +42,8 @@ export {
GetGeneralSettingsResponse,
GetLoginSettingsResponse,
GetLoginSettingsRequest,
GetActiveIdentityProvidersResponse,
GetActiveIdentityProvidersRequest,
} from "./proto/server/zitadel/settings/v2alpha/settings_service";
export {
AddHumanUserResponse,
@@ -56,6 +62,7 @@ export {
SetHumanPasswordResponse,
SetHumanPasswordRequest,
} from "./proto/server/zitadel/management";
export * from "./proto/server/zitadel/idp";
export { type LegalAndSupportSettings } from "./proto/server/zitadel/settings/v2alpha/legal_settings";
export { type PasswordComplexitySettings } from "./proto/server/zitadel/settings/v2alpha/password_settings";
export { type ResourceOwnerType } from "./proto/server/zitadel/settings/v2alpha/settings";

211
pnpm-lock.yaml generated
View File

@@ -8,13 +8,13 @@ importers:
eslint: ^7.32.0
eslint-config-zitadel: workspace:*
prettier: ^2.5.1
turbo: ^1.10.3
turbo: ^1.10.8
devDependencies:
'@changesets/cli': 2.25.2
eslint: 7.32.0
eslint-config-zitadel: link:packages/eslint-config-zitadel
prettier: 2.8.0
turbo: 1.10.3
turbo: 1.10.8
apps/login:
specifiers:
@@ -140,7 +140,7 @@ importers:
dependencies:
eslint-config-next: 13.4.10_dewl7jrzrufmm6i6j6pp2pqhja
eslint-config-prettier: 8.5.0_eslint@8.28.0
eslint-config-turbo: 1.10.7_eslint@8.28.0
eslint-config-turbo: 1.10.8_eslint@8.28.0
eslint-plugin-react: 7.28.0_eslint@8.28.0
packages/zitadel-client:
@@ -179,27 +179,41 @@ importers:
packages/zitadel-next:
specifiers:
'@types/jest': ^29.5.1
'@types/react': ^17.0.13
'@zitadel/react': workspace:*
'@zitadel/server': workspace:*
'@zitadel/tsconfig': workspace:*
eslint: ^7.32.0
eslint-config-zitadel: workspace:*
jest: ^29.5.0
next: ^13
next: ^13.4.10
postcss: 8.4.21
react: 18.2.0
tailwindcss: 3.2.4
ts-jest: ^29.1.0
ts-node: ^10.9.1
tsup: ^5.10.1
typescript: ^4.9.3
zitadel-tailwind-config: workspace:*
dependencies:
next: 13.2.3_gxeylg6mfvtzvytsvwl7cjkzse
'@zitadel/react': link:../zitadel-react
'@zitadel/server': link:../zitadel-server
next: 13.4.10_gxeylg6mfvtzvytsvwl7cjkzse
react: 18.2.0
devDependencies:
'@types/jest': 29.5.2
'@types/react': 17.0.52
'@zitadel/tsconfig': link:../zitadel-tsconfig
eslint: 7.32.0
eslint-config-zitadel: link:../eslint-config-zitadel
jest: 29.5.0_odkjkoia5xunhxkdrka32ib6vi
postcss: 8.4.21
tailwindcss: 3.2.4_aesdjsunmf4wiehhujt67my7tu
ts-jest: 29.1.0_klkfcs562lk2rvu455ax6ckzhq
ts-node: 10.9.1_wup25etrarvlqkprac7h35hj7u
tsup: 5.12.9_2dtigtkb225m7ii7q45utxqwgi
tsup: 5.12.9_ux7av2aepstrav2yvxv4jydcsa
typescript: 4.9.3
zitadel-tailwind-config: link:../zitadel-tailwind-config
packages/zitadel-react:
specifiers:
@@ -209,7 +223,6 @@ importers:
'@types/react': ^17.0.13
'@types/react-dom': ^17.0.8
'@types/testing-library__jest-dom': ^5.14.6
'@zitadel/server': workspace:*
'@zitadel/tsconfig': workspace:*
autoprefixer: 10.4.13
eslint: ^7.32.0
@@ -226,7 +239,6 @@ importers:
typescript: ^4.9.3
zitadel-tailwind-config: workspace:*
dependencies:
'@zitadel/server': link:../zitadel-server
react: 18.2.0
devDependencies:
'@testing-library/jest-dom': 5.16.5
@@ -1386,8 +1398,8 @@ packages:
- supports-color
dev: true
/@next/env/13.2.3:
resolution: {integrity: sha512-FN50r/E+b8wuqyRjmGaqvqNDuWBWYWQiigfZ50KnSFH0f+AMQQyaZl+Zm2+CIpKk0fL9QxhLxOpTVA3xFHgFow==}
/@next/env/13.4.10:
resolution: {integrity: sha512-3G1yD/XKTSLdihyDSa8JEsaWOELY+OWe08o0LUYzfuHp1zHDA8SObQlzKt+v+wrkkPcnPweoLH1ImZeUa0A1NQ==}
dev: false
/@next/env/13.4.7:
@@ -1400,26 +1412,8 @@ packages:
glob: 7.1.7
dev: false
/@next/swc-android-arm-eabi/13.2.3:
resolution: {integrity: sha512-mykdVaAXX/gm+eFO2kPeVjnOCKwanJ9mV2U0lsUGLrEdMUifPUjiXKc6qFAIs08PvmTMOLMNnUxqhGsJlWGKSw==}
engines: {node: '>= 10'}
cpu: [arm]
os: [android]
requiresBuild: true
dev: false
optional: true
/@next/swc-android-arm64/13.2.3:
resolution: {integrity: sha512-8XwHPpA12gdIFtope+n9xCtJZM3U4gH4vVTpUwJ2w1kfxFmCpwQ4xmeGSkR67uOg80yRMuF0h9V1ueo05sws5w==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: false
optional: true
/@next/swc-darwin-arm64/13.2.3:
resolution: {integrity: sha512-TXOubiFdLpMfMtaRu1K5d1I9ipKbW5iS2BNbu8zJhoqrhk3Kp7aRKTxqFfWrbliAHhWVE/3fQZUYZOWSXVQi1w==}
/@next/swc-darwin-arm64/13.4.10:
resolution: {integrity: sha512-4bsdfKmmg7mgFGph0UorD1xWfZ5jZEw4kKRHYEeTK9bT1QnMbPVPlVXQRIiFPrhoDQnZUoa6duuPUJIEGLV1Jg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
@@ -1436,8 +1430,8 @@ packages:
dev: false
optional: true
/@next/swc-darwin-x64/13.2.3:
resolution: {integrity: sha512-GZctkN6bJbpjlFiS5pylgB2pifHvgkqLAPumJzxnxkf7kqNm6rOGuNjsROvOWVWXmKhrzQkREO/WPS2aWsr/yw==}
/@next/swc-darwin-x64/13.4.10:
resolution: {integrity: sha512-ngXhUBbcZIWZWqNbQSNxQrB9T1V+wgfCzAor2olYuo/YpaL6mUYNUEgeBMhr8qwV0ARSgKaOp35lRvB7EmCRBg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
@@ -1454,26 +1448,8 @@ packages:
dev: false
optional: true
/@next/swc-freebsd-x64/13.2.3:
resolution: {integrity: sha512-rK6GpmMt/mU6MPuav0/M7hJ/3t8HbKPCELw/Uqhi4732xoq2hJ2zbo2FkYs56y6w0KiXrIp4IOwNB9K8L/q62g==}
engines: {node: '>= 10'}
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: false
optional: true
/@next/swc-linux-arm-gnueabihf/13.2.3:
resolution: {integrity: sha512-yeiCp/Odt1UJ4KUE89XkeaaboIDiVFqKP4esvoLKGJ0fcqJXMofj4ad3tuQxAMs3F+qqrz9MclqhAHkex1aPZA==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@next/swc-linux-arm64-gnu/13.2.3:
resolution: {integrity: sha512-/miIopDOUsuNlvjBjTipvoyjjaxgkOuvlz+cIbbPcm1eFvzX2ltSfgMgty15GuOiR8Hub4FeTSiq3g2dmCkzGA==}
/@next/swc-linux-arm64-gnu/13.4.10:
resolution: {integrity: sha512-SjCZZCOmHD4uyM75MVArSAmF5Y+IJSGroPRj2v9/jnBT36SYFTORN8Ag/lhw81W9EeexKY/CUg2e9mdebZOwsg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@@ -1490,8 +1466,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-arm64-musl/13.2.3:
resolution: {integrity: sha512-sujxFDhMMDjqhruup8LLGV/y+nCPi6nm5DlFoThMJFvaaKr/imhkXuk8uCTq4YJDbtRxnjydFv2y8laBSJVC2g==}
/@next/swc-linux-arm64-musl/13.4.10:
resolution: {integrity: sha512-F+VlcWijX5qteoYIOxNiBbNE8ruaWuRlcYyIRK10CugqI/BIeCDzEDyrHIHY8AWwbkTwe6GRHabMdE688Rqq4Q==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@@ -1508,8 +1484,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-x64-gnu/13.2.3:
resolution: {integrity: sha512-w5MyxPknVvC9LVnMenAYMXMx4KxPwXuJRMQFvY71uXg68n7cvcas85U5zkdrbmuZ+JvsO5SIG8k36/6X3nUhmQ==}
/@next/swc-linux-x64-gnu/13.4.10:
resolution: {integrity: sha512-WDv1YtAV07nhfy3i1visr5p/tjiH6CeXp4wX78lzP1jI07t4PnHHG1WEDFOduXh3WT4hG6yN82EQBQHDi7hBrQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@@ -1526,8 +1502,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-x64-musl/13.2.3:
resolution: {integrity: sha512-CTeelh8OzSOVqpzMFMFnVRJIFAFQoTsI9RmVJWW/92S4xfECGcOzgsX37CZ8K982WHRzKU7exeh7vYdG/Eh4CA==}
/@next/swc-linux-x64-musl/13.4.10:
resolution: {integrity: sha512-zFkzqc737xr6qoBgDa3AwC7jPQzGLjDlkNmt/ljvQJ/Veri5ECdHjZCUuiTUfVjshNIIpki6FuP0RaQYK9iCRg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@@ -1544,8 +1520,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-arm64-msvc/13.2.3:
resolution: {integrity: sha512-7N1KBQP5mo4xf52cFCHgMjzbc9jizIlkTepe9tMa2WFvEIlKDfdt38QYcr9mbtny17yuaIw02FXOVEytGzqdOQ==}
/@next/swc-win32-arm64-msvc/13.4.10:
resolution: {integrity: sha512-IboRS8IWz5mWfnjAdCekkl8s0B7ijpWeDwK2O8CdgZkoCDY0ZQHBSGiJ2KViAG6+BJVfLvcP+a2fh6cdyBr9QQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
@@ -1562,8 +1538,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-ia32-msvc/13.2.3:
resolution: {integrity: sha512-LzWD5pTSipUXTEMRjtxES/NBYktuZdo7xExJqGDMnZU8WOI+v9mQzsmQgZS/q02eIv78JOCSemqVVKZBGCgUvA==}
/@next/swc-win32-ia32-msvc/13.4.10:
resolution: {integrity: sha512-bSA+4j8jY4EEiwD/M2bol4uVEu1lBlgsGdvM+mmBm/BbqofNBfaZ2qwSbwE2OwbAmzNdVJRFRXQZ0dkjopTRaQ==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
@@ -1580,8 +1556,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-x64-msvc/13.2.3:
resolution: {integrity: sha512-aLG2MaFs4y7IwaMTosz2r4mVbqRyCnMoFqOcmfTi7/mAS+G4IMH0vJp4oLdbshqiVoiVuKrAfqtXj55/m7Qu1Q==}
/@next/swc-win32-x64-msvc/13.4.10:
resolution: {integrity: sha512-g2+tU63yTWmcVQKDGY0MV1PjjqgZtwM4rB1oVVi/v0brdZAcrcTV+04agKzWtvWroyFz6IqtT0MoZJA7PNyLVw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -1695,12 +1671,6 @@ packages:
'@sinonjs/commons': 3.0.0
dev: true
/@swc/helpers/0.4.14:
resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==}
dependencies:
tslib: 2.4.1
dev: false
/@swc/helpers/0.5.1:
resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==}
dependencies:
@@ -2073,7 +2043,7 @@ packages:
/acorn-globals/7.0.1:
resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
dependencies:
acorn: 8.8.1
acorn: 8.8.2
acorn-walk: 8.2.0
dev: true
@@ -2122,7 +2092,6 @@ packages:
resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
engines: {node: '>=0.4.0'}
hasBin: true
dev: false
/agent-base/6.0.2:
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
@@ -2632,10 +2601,6 @@ packages:
engines: {node: '>=10'}
dev: true
/caniuse-lite/1.0.30001434:
resolution: {integrity: sha512-aOBHrLmTQw//WFa2rcF1If9fa3ypkC1wzqqiKHgfdrXTWcU8C4gKVZT77eQAPWN1APys3+uQ0Df07rKauXGEYA==}
dev: false
/caniuse-lite/1.0.30001473:
resolution: {integrity: sha512-ewDad7+D2vlyy+E4UJuVfiBsU69IL+8oVmTuZnH5Q6CIUbxNfI50uVpRHbUPDD6SUaN2o0Lh4DhTrvLG/Tn1yg==}
@@ -3730,13 +3695,13 @@ packages:
eslint: 8.28.0
dev: false
/eslint-config-turbo/1.10.7_eslint@8.28.0:
resolution: {integrity: sha512-0yHt5UlXVph8S4SOvP6gYehLvYjJj6XFKTYOG/WUQbjlcF0OU4pOT1a1juqmmBPWYlvJ0evt7v+RekY4tOopPQ==}
/eslint-config-turbo/1.10.8_eslint@8.28.0:
resolution: {integrity: sha512-fDJTyM04N9XUcvYFlM4r7Byvjx27TuO68iOnMNjtKF7vBtrJuBBBGtNM0aQIWGg0oTqjjcNTNQw9sQK+IcA5Gw==}
peerDependencies:
eslint: '>6.6.0'
dependencies:
eslint: 8.28.0
eslint-plugin-turbo: 1.10.7_eslint@8.28.0
eslint-plugin-turbo: 1.10.8_eslint@8.28.0
dev: false
/eslint-import-resolver-node/0.3.6:
@@ -3904,8 +3869,8 @@ packages:
string.prototype.matchall: 4.0.8
dev: false
/eslint-plugin-turbo/1.10.7_eslint@8.28.0:
resolution: {integrity: sha512-YikBHc75DY9VV1vAFUIBekHLQlxqVT5zTNibK8zBQInCUhF7PvyPJc0xXw5FSz8EYtt4uOV3r0Km3CmFRclS4Q==}
/eslint-plugin-turbo/1.10.8_eslint@8.28.0:
resolution: {integrity: sha512-0ULCoR0Zj/ec4mjmfeYhDa5OtqCvSgDkQdSD/tqLUSHM0GzcUrNvGPclVmsoCb5kmawzeqtlqnS2FKILc862qw==}
peerDependencies:
eslint: '>6.6.0'
dependencies:
@@ -5630,7 +5595,7 @@ packages:
optional: true
dependencies:
abab: 2.0.6
acorn: 8.8.1
acorn: 8.8.2
acorn-globals: 7.0.1
cssom: 0.5.0
cssstyle: 2.3.0
@@ -6180,14 +6145,13 @@ packages:
react-dom: 18.2.0_react@18.2.0
dev: false
/next/13.2.3_gxeylg6mfvtzvytsvwl7cjkzse:
resolution: {integrity: sha512-nKFJC6upCPN7DWRx4+0S/1PIOT7vNlCT157w9AzbXEgKy6zkiPKEt5YyRUsRZkmpEqBVrGgOqNfwecTociyg+w==}
engines: {node: '>=14.6.0'}
/next/13.4.10_gxeylg6mfvtzvytsvwl7cjkzse:
resolution: {integrity: sha512-4ep6aKxVTQ7rkUW2fBLhpBr/5oceCuf4KmlUpvG/aXuDTIf9mexNSpabUD6RWPspu6wiJJvozZREhXhueYO36A==}
engines: {node: '>=16.8.0'}
hasBin: true
peerDependencies:
'@opentelemetry/api': ^1.4.0
'@opentelemetry/api': ^1.1.0
fibers: '>= 3.1.0'
node-sass: ^6.0.0 || ^7.0.0
react: ^18.2.0
react-dom: ^18.2.0
sass: ^1.3.0
@@ -6196,32 +6160,29 @@ packages:
optional: true
fibers:
optional: true
node-sass:
optional: true
sass:
optional: true
dependencies:
'@next/env': 13.2.3
'@swc/helpers': 0.4.14
caniuse-lite: 1.0.30001434
'@next/env': 13.4.10
'@swc/helpers': 0.5.1
busboy: 1.6.0
caniuse-lite: 1.0.30001473
postcss: 8.4.14
react: 18.2.0
react-dom: 18.2.0_react@18.2.0
styled-jsx: 5.1.1_cealaxz4az2u5bjp2e6aea3kui
watchpack: 2.4.0
zod: 3.21.4
optionalDependencies:
'@next/swc-android-arm-eabi': 13.2.3
'@next/swc-android-arm64': 13.2.3
'@next/swc-darwin-arm64': 13.2.3
'@next/swc-darwin-x64': 13.2.3
'@next/swc-freebsd-x64': 13.2.3
'@next/swc-linux-arm-gnueabihf': 13.2.3
'@next/swc-linux-arm64-gnu': 13.2.3
'@next/swc-linux-arm64-musl': 13.2.3
'@next/swc-linux-x64-gnu': 13.2.3
'@next/swc-linux-x64-musl': 13.2.3
'@next/swc-win32-arm64-msvc': 13.2.3
'@next/swc-win32-ia32-msvc': 13.2.3
'@next/swc-win32-x64-msvc': 13.2.3
'@next/swc-darwin-arm64': 13.4.10
'@next/swc-darwin-x64': 13.4.10
'@next/swc-linux-arm64-gnu': 13.4.10
'@next/swc-linux-arm64-musl': 13.4.10
'@next/swc-linux-x64-gnu': 13.4.10
'@next/swc-linux-x64-musl': 13.4.10
'@next/swc-win32-arm64-msvc': 13.4.10
'@next/swc-win32-ia32-msvc': 13.4.10
'@next/swc-win32-x64-msvc': 13.4.10
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
@@ -8202,65 +8163,65 @@ packages:
safe-buffer: 5.2.1
dev: true
/turbo-darwin-64/1.10.3:
resolution: {integrity: sha512-IIB9IomJGyD3EdpSscm7Ip1xVWtYb7D0x7oH3vad3gjFcjHJzDz9xZ/iw/qItFEW+wGFcLSRPd+1BNnuLM8AsA==}
/turbo-darwin-64/1.10.8:
resolution: {integrity: sha512-FOK3qrLZE2Yq7/2DkAnAzghisGQroZJs85Rui3IXM/2e7rTtBADmU9w36d4k0Yw7RHEiOo8U4eAYUl52OWRwJQ==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/turbo-darwin-arm64/1.10.3:
resolution: {integrity: sha512-SBNmOZU9YEB0eyNIxeeQ+Wi0Ufd+nprEVp41rgUSRXEIpXjsDjyBnKnF+sQQj3+FLb4yyi/yZQckB+55qXWEsw==}
/turbo-darwin-arm64/1.10.8:
resolution: {integrity: sha512-8mbgH8oBycusa8RnbHlvrpHxfZsgNrk6CXMu/KJECpajYT3nSOMK2Rrs+422HqLDTVUw4GAqmTr26nUx8yJoyA==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/turbo-linux-64/1.10.3:
resolution: {integrity: sha512-kvAisGKE7xHJdyMxZLvg53zvHxjqPK1UVj4757PQqtx9dnjYHSc8epmivE6niPgDHon5YqImzArCjVZJYpIGHQ==}
/turbo-linux-64/1.10.8:
resolution: {integrity: sha512-eJ1ND3LuILw28gd+9f3Ews7Eika9WOxp+/PxJI+EPHseTrbLMLYqSPAunmZdOx840Pq0Sk5j4Nik7NCzuCWXkg==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/turbo-linux-arm64/1.10.3:
resolution: {integrity: sha512-Qgaqln0IYRgyL0SowJOi+PNxejv1I2xhzXOI+D+z4YHbgSx87ox1IsALYBlK8VRVYY8VCXl+PN12r1ioV09j7A==}
/turbo-linux-arm64/1.10.8:
resolution: {integrity: sha512-3+pVaOzGP/5GFvQakxuHDMsj43Y6bmaq5/84tvgGL0FgtKpsQvBfdaDs12HX5cb/zUnd2/jdQPNiGJwVeC/McA==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/turbo-windows-64/1.10.3:
resolution: {integrity: sha512-rbH9wManURNN8mBnN/ZdkpUuTvyVVEMiUwFUX4GVE5qmV15iHtZfDLUSGGCP2UFBazHcpNHG1OJzgc55GFFrUw==}
/turbo-windows-64/1.10.8:
resolution: {integrity: sha512-LdryI+ZQsVrW4hWZw5G5vJz0syjWxyc0tnieZRefy+d9Ti1du/qCYLP0KQRgL9Yuh1klbH/tzmx70upGARgWKQ==}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/turbo-windows-arm64/1.10.3:
resolution: {integrity: sha512-ThlkqxhcGZX39CaTjsHqJnqVe+WImjX13pmjnpChz6q5HHbeRxaJSFzgrHIOt0sUUVx90W/WrNRyoIt/aafniw==}
/turbo-windows-arm64/1.10.8:
resolution: {integrity: sha512-whHnhM84KIa2Ly/fcw2Ujw2Rr/9wh8ynAdZ9bdvZoZKAbOr3tXKft0tmy50jQ6IsNr6Cj0XD4cuSTKhvqoGtYA==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/turbo/1.10.3:
resolution: {integrity: sha512-U4gKCWcKgLcCjQd4Pl8KJdfEKumpyWbzRu75A6FCj6Ctea1PIm58W6Ltw1QXKqHrl2pF9e1raAskf/h6dlrPCA==}
/turbo/1.10.8:
resolution: {integrity: sha512-lmPKkeRMC/3gjTVxICt93A8zAzjGjbZINdekjzivn4g/rOjpHVNuOuVANU5L4H4R1bzQr8FFvZNQeQaElOjz/Q==}
hasBin: true
requiresBuild: true
optionalDependencies:
turbo-darwin-64: 1.10.3
turbo-darwin-arm64: 1.10.3
turbo-linux-64: 1.10.3
turbo-linux-arm64: 1.10.3
turbo-windows-64: 1.10.3
turbo-windows-arm64: 1.10.3
turbo-darwin-64: 1.10.8
turbo-darwin-arm64: 1.10.8
turbo-linux-64: 1.10.8
turbo-linux-arm64: 1.10.8
turbo-windows-64: 1.10.8
turbo-windows-arm64: 1.10.8
dev: true
/tweetnacl/0.14.5: