diff --git a/space-config/synaps/main.ts b/space-config/synaps/main.ts index bc687746..cd44ff58 100644 --- a/space-config/synaps/main.ts +++ b/space-config/synaps/main.ts @@ -6,21 +6,19 @@ export const synapsConfigMain: SpaceConfig = { slug: "synaps", name: "Synaps", description: "This Space is a tribute to users willing to prove their liveness with Synaps - a crypto-native identity verification provider. Proof of Liveness is performed through a liveness verification session, where a privacy-preserving encrypted vector graph is generated. It contains no biometric data and cannot be used to recreate your face.", - profileImage: "synaps_pfp.png", - coverImage: "synaps_cover.png", + image: "synaps_pfp.png", }, options: { hidden: true }, apps: [ { - type: "zkCustom", + type: "custom", metadata: { name: "Liveness Verification", description: "Perform liveness verification with Synaps to join the 'Proof of Liveness' Data Group and access Sismo Apps that request to be part of it. This liveness session stores no personal data.", tags: ["Liveness"], image: "synaps_liveness_img.png", - ctaText: "Prove your Liveness", slug: "proof-of-liveness", createdAt: new Date("2023-07-05T18:00") }, @@ -29,12 +27,11 @@ export const synapsConfigMain: SpaceConfig = { authRequests: [{ authType: 0 }], }, templateConfig: { - extraData: { - api: "https://synaps-integration.vercel.app/api/proof-of-liveness", - congratulationsMessage: { - title: "Congratulations", - description: "You have successfully proven your liveliness. Your proof of liveliness will be available in your Sismo Vault within 24 hours.", - } + step2CtaText: "Prove your Liveness", + api: "https://synaps-integration.vercel.app/api/proof-of-liveness", + congratulationsMessage: { + title: "Congratulations", + description: "You have successfully proven your liveliness. Your proof of liveliness will be available in your Sismo Vault within 24 hours.", } } } diff --git a/space-config/synaps/proof-of-liveness/components/Congratulations.tsx b/space-config/synaps/proof-of-liveness/components/Congratulations.tsx index 11d4e2f2..b747f732 100644 --- a/space-config/synaps/proof-of-liveness/components/Congratulations.tsx +++ b/space-config/synaps/proof-of-liveness/components/Congratulations.tsx @@ -1,6 +1,6 @@ 'use client' -import { ZkCustomAppConfig } from "@/space-config/types"; +import { CustomAppConfig } from "@/space-config/types"; import Button3D from "@/src/ui/Button3D"; import { useRouter } from "next/navigation"; import React from "react"; @@ -28,7 +28,7 @@ const Subtitle = styled.div` ` type Props = { - app: ZkCustomAppConfig + app: CustomAppConfig } export default function Congratulations({ app }: Props): JSX.Element { @@ -36,10 +36,10 @@ export default function Congratulations({ app }: Props): JSX.Element { return - {app?.templateConfig?.extraData?.congratulationsMessage?.title} + {app?.templateConfig?.congratulationsMessage?.title} - {app?.templateConfig?.extraData?.congratulationsMessage?.description} + {app?.templateConfig?.congratulationsMessage?.description} router.push("/synaps")} secondary> Back to the space diff --git a/space-config/synaps/proof-of-liveness/components/ProveEligibility.tsx b/space-config/synaps/proof-of-liveness/components/ProveEligibility.tsx index d4566909..9cfb8052 100644 --- a/space-config/synaps/proof-of-liveness/components/ProveEligibility.tsx +++ b/space-config/synaps/proof-of-liveness/components/ProveEligibility.tsx @@ -4,9 +4,9 @@ import { AuthType, SismoConnectButton } from "@sismo-core/sismo-connect-react"; import React from "react"; import { styled } from "styled-components"; import HoverTooltip from "@/src/ui/HoverTooltip"; -import { Info } from "phosphor-react"; +import { Info, LockSimpleOpen } from "phosphor-react"; import colors from "@/src/themes/colors"; -import { ZkCustomAppConfig } from "@/space-config/types"; +import { CustomAppConfig } from "@/space-config/types"; const Container = styled.div``; @@ -33,12 +33,24 @@ const AuthItem = styled.div` white-space: nowrap; `; +const RequirementTitle = styled.div` + display: flex; + align-items: center; + gap: 4px; + flex-shrink: 0; + color: ${(props) => props.theme.colors.neutral4}; + font-size: 14px; + font-family: ${(props) => props.theme.fonts.medium}; + line-height: 20px; + margin-top: 24px; +`; + const Bold = styled.span` font-family: ${(props) => props.theme.fonts.bold}; `; type Props = { - app: ZkCustomAppConfig; + app: CustomAppConfig; onEligible: (response) => void; }; @@ -53,12 +65,16 @@ export default function ProveEligibility({ return ( + + + Requirements + - Share: Vault Id + User Id setIsModalOpen(false)} onFinish={() => onFinish()}/> - + { !finished && <>
setResponse(_response)}/>
-
+
{ alreadySubscribed ? @@ -143,6 +143,6 @@ export default function SynapsProofOfLivenessCustomApp(): JSX.Element { { finished && } - + ; } \ No newline at end of file diff --git a/space-config/types.ts b/space-config/types.ts index 47e8d06a..0b124076 100644 --- a/space-config/types.ts +++ b/space-config/types.ts @@ -25,7 +25,7 @@ export type AppConfig = | ExternalAppConfig | ZkBadgeAppConfig | ZkTelegramBotAppConfig - | ZkCustomAppConfig + | CustomAppConfig type SocialType = "twitter" | "discord" | "link" | "github" | "telegram"; @@ -87,11 +87,9 @@ export type ZkDropAppConfig = AppCommonConfig & { }; }; -export type ZkCustomAppConfig = AppCommonConfig & { - type: "zkCustom"; - templateConfig: { - extraData: any; - } +export type CustomAppConfig = AppCommonConfig & { + type: "custom"; + templateConfig: any }; export type ZkBadgeAppConfig = AppCommonConfig & { diff --git a/space-config/worldcoin/main.ts b/space-config/worldcoin/main.ts index e4fc291f..5453a1fc 100644 --- a/space-config/worldcoin/main.ts +++ b/space-config/worldcoin/main.ts @@ -6,21 +6,19 @@ export const worldcoinConfigMain: SpaceConfig = { slug: "worldcoin", name: "Worldcoin", description: "Worldcoin is building the world's largest identity and financial network as a public utility, giving ownership to everyone.", - profileImage: "worldcoin_pfp.jpeg", - coverImage: "worldcoin_cover.jpeg", + image: "worldcoin_pfp.jpeg", }, options: { hidden: false, }, apps: [ { - type: "zkCustom", + type: "custom", metadata: { name: "Proof of personhood", description: "World ID is a digital passport that lets you prove you are a unique and real person while remaining anonymous.", tags: ["Proof of personhood"], image: "proof-of-personhood.png", - ctaText: "Prove your are unique", slug: "proof-of-personhood", createdAt: new Date("2023-07-05T18:00") }, @@ -29,12 +27,11 @@ export const worldcoinConfigMain: SpaceConfig = { authRequests: [{ authType: 0 }], }, templateConfig: { - extraData: { - api: "https://worldcoin-app-backend.vercel.app/api/proof-of-personhood", - congratulationsMessage: { - title: "Congratulations", - description: "You have successfully proven your personhood. Your proof of personhood will be available in your Sismo Vault within 24 hours.", - } + step2CtaText: "Prove your are unique", + api: "https://worldcoin-app-backend.vercel.app/api/proof-of-personhood", + congratulationsMessage: { + title: "Congratulations", + description: "You have successfully proven your personhood. Your proof of personhood will be available in your Sismo Vault within 24 hours.", } } } diff --git a/space-config/worldcoin/proof-of-personhood/components/Congratulations.tsx b/space-config/worldcoin/proof-of-personhood/components/Congratulations.tsx index 11d4e2f2..f63fef1f 100644 --- a/space-config/worldcoin/proof-of-personhood/components/Congratulations.tsx +++ b/space-config/worldcoin/proof-of-personhood/components/Congratulations.tsx @@ -1,8 +1,6 @@ 'use client' -import { ZkCustomAppConfig } from "@/space-config/types"; -import Button3D from "@/src/ui/Button3D"; -import { useRouter } from "next/navigation"; +import { CustomAppConfig } from "@/space-config/types"; import React from "react"; import { styled } from "styled-components"; @@ -28,21 +26,16 @@ const Subtitle = styled.div` ` type Props = { - app: ZkCustomAppConfig + app: CustomAppConfig; } export default function Congratulations({ app }: Props): JSX.Element { - const router = useRouter(); - return - {app?.templateConfig?.extraData?.congratulationsMessage?.title} + {app?.templateConfig?.congratulationsMessage?.title} - {app?.templateConfig?.extraData?.congratulationsMessage?.description} + {app?.templateConfig?.congratulationsMessage?.description} - router.push("/synaps")} secondary> - Back to the space - ; } \ No newline at end of file diff --git a/space-config/worldcoin/proof-of-personhood/components/ProveEligibility.tsx b/space-config/worldcoin/proof-of-personhood/components/ProveEligibility.tsx index d4566909..9d8f20b8 100644 --- a/space-config/worldcoin/proof-of-personhood/components/ProveEligibility.tsx +++ b/space-config/worldcoin/proof-of-personhood/components/ProveEligibility.tsx @@ -4,19 +4,31 @@ import { AuthType, SismoConnectButton } from "@sismo-core/sismo-connect-react"; import React from "react"; import { styled } from "styled-components"; import HoverTooltip from "@/src/ui/HoverTooltip"; -import { Info } from "phosphor-react"; +import { Info, LockSimpleOpen } from "phosphor-react"; import colors from "@/src/themes/colors"; -import { ZkCustomAppConfig } from "@/space-config/types"; +import { CustomAppConfig } from "@/space-config/types"; const Container = styled.div``; const Eligibility = styled.div` - margin-top: 22px; - border-top: 1px solid #262e45; - border-bottom: 1px solid #262e45; + margin-top: 7px; + border-top: 1px solid ${(props) => props.theme.colors.neutral7}; + border-bottom: 1px solid ${(props) => props.theme.colors.neutral7}; padding: 10px 0px; `; +const RequirementTitle = styled.div` + display: flex; + align-items: center; + gap: 4px; + flex-shrink: 0; + color: ${(props) => props.theme.colors.neutral4}; + font-size: 14px; + font-family: ${(props) => props.theme.fonts.medium}; + line-height: 20px; + margin-top: 24px; +`; + const ButtonContainer = styled.div` display: flex; justify-content: center; @@ -31,6 +43,7 @@ const AuthItem = styled.div` font-family: ${(props) => props.theme.fonts.regular}; gap: 8px; white-space: nowrap; + padding: 0px 16px; `; const Bold = styled.span` @@ -38,7 +51,7 @@ const Bold = styled.span` `; type Props = { - app: ZkCustomAppConfig; + app: CustomAppConfig; onEligible: (response) => void; }; @@ -53,12 +66,16 @@ export default function ProveEligibility({ return ( + + + Requirements + - Share: Vault Id + User Id props.theme.fonts.semibold}; - color: ${props => props.theme.colors.neutral1}; - font-size: 32px; -` - -const Description = styled.div` - margin-bottom: 32px; - font-family: ${props => props.theme.fonts.regular}; - color: ${props => props.theme.colors.neutral3}; - font-size: 16px; -` +import { CustomAppContainer } from "@/src/components/CustomAppContainer"; +import ProveEligibility from "./components/ProveEligibility"; const AlreadyRegistered = styled.div` color: ${props => props.theme.colors.neutral1}; @@ -40,10 +26,6 @@ const AlreadyRegistered = styled.div` border-radius: 4px; ` -const Content = styled.div` - max-width: 580px; -` - const Bottom = styled.div` width: 100%; display: flex; @@ -55,25 +37,35 @@ const Bottom = styled.div` const ErrorMsg = styled.div` color: ${props => props.theme.colors.error}; font-family: ${props => props.theme.fonts.regular}; + position: absolute; + bottom: -35px; + left: 0px; +` + +const Verifications = styled.div` + display: flex; + gap: 10px; + align-items: center; + margin-top: 24px; ` export default function WorldcoinProofOfPersonhoodCustomApp(): JSX.Element { const router = useRouter(); - const app = worldcoinConfigMain.apps[0] as ZkCustomAppConfig; - const api = app.templateConfig.extraData.api; + const app = worldcoinConfigMain.apps[0] as CustomAppConfig; + const api = app.templateConfig.api; const [alreadySubscribed, setAlreadySubscribed] = useState(false); const [domReady, setDomReady] = React.useState(false); - const [verifying, setVerifying] = useState(false); const [finished, setFinished] = useState(false); const [error, setError] = useState(null); - const [loading, setLoading] = useState(false); const [redirect, setRedirect] = useState(null); + const [verifyingOrb, setVerifyingOrb] = useState(false); + const [verifyingPhone, setVerifyingPhone] = useState(false); const [sismoResponse, setSismoResponse] = useState(null); - const onFinish = async (worldcoinResult) => { - setVerifying(true); - setLoading(true); + const onFinish = async (worldcoinResult, type: "orb" | "phone") => { + if (type === "orb") setVerifyingOrb(true); + if (type === "phone") setVerifyingPhone(true); const body = JSON.stringify({ result: worldcoinResult, response: sismoResponse @@ -82,21 +74,20 @@ export default function WorldcoinProofOfPersonhoodCustomApp(): JSX.Element { method: "POST", body }); - setVerifying(false); - if (!res.ok) { - throw new Error("Error while verifying Worldcoin proof"); - } + setVerifyingOrb(false); + setVerifyingPhone(false); const data = await res.json(); + if (data.success) { setFinished(true); } switch (data.code) { case "sismo-response-invalid": - setError("Server error [Sismo response invalid]. Please contact us or retry later."); + setError("Server error: Sismo response invalid. Please contact us or retry later."); break; case "worldcoin-result-invalid": - setError("Server error [Worldcoin result invalid]. Please contact us or retry later."); + setError("Server error: Worldcoin result invalid. Please contact us or retry later."); break; case "worldcoin-proof-already-verified": setAlreadySubscribed(true); @@ -132,51 +123,62 @@ export default function WorldcoinProofOfPersonhoodCustomApp(): JSX.Element { if (!domReady) return; - return + return { !finished && <>
setSismoResponse(_response)}/>
-
+
{ alreadySubscribed ? You already registered. : - <> + onFinish(result)} + credential_types={[CredentialType.Orb]} + onSuccess={(result) => onFinish(result, "orb")} > - {({ open }) => } - { - error && - - {error} - - } - + {/* onFinish(result, "phone")} + > + {({ open }) => } + */} + + } + { + error && + + {error} + }
- {Boolean(sismoResponse) && - - redirect ? window.location.href : router.push(`/${worldcoinConfigMain.metadata.slug}`)} secondary> - { redirect ? "Back to the Vault App" : "Back to the space" } - - - } } { finished && } - ; + {alreadySubscribed || finished && + + redirect ? window.location.href = redirect : router.push(`/${worldcoinConfigMain.metadata.slug}`)} secondary> + { redirect ? "Back to the Vault App" : "Back to the space" } + + + } + ; } \ No newline at end of file diff --git a/space-config/zk-custom-apps.tsx b/space-config/zk-custom-apps.tsx index 879cdd55..ff90e77c 100644 --- a/space-config/zk-custom-apps.tsx +++ b/space-config/zk-custom-apps.tsx @@ -4,7 +4,7 @@ import SynapsProofOfLivenessCustomApp from "./synaps/proof-of-liveness" import WorldcoinProofOfPersonhoodCustomApp from "./worldcoin/proof-of-personhood" -export const zkCustomApps = { +export const customApps = { "worldcoin": { "proof-of-personhood": , }, diff --git a/src/components/AppMain/index.tsx b/src/components/AppMain/index.tsx index 7205125b..8b4cf023 100644 --- a/src/components/AppMain/index.tsx +++ b/src/components/AppMain/index.tsx @@ -11,8 +11,7 @@ import ZkBotApp from "@/src/components/Apps/ZkTelegramBotApp"; import useRemainingTime from "@/src/utils/useRemainingTime"; import { redirect } from "next/navigation"; import Timer from "../Apps/components/Timer"; -import { useEffect } from "react"; -import { zkCustomApps } from "@/space-config/zk-custom-apps"; +import { customApps } from "@/space-config/zk-custom-apps"; const Container = styled.div` flex-grow: 1; @@ -208,8 +207,8 @@ export default function AppMain({ app, groupSnapshotMetadataList }: Props) { )} { - app?.type == "zkCustom" && ( - zkCustomApps[app.spaceSlug][app.slug] + app?.type == "custom" && ( + customApps[app.spaceSlug][app.slug] ) } diff --git a/src/components/ZkCustomAppContainer/index.tsx b/src/components/CustomAppContainer/index.tsx similarity index 73% rename from src/components/ZkCustomAppContainer/index.tsx rename to src/components/CustomAppContainer/index.tsx index 689fe2af..2446ba77 100644 --- a/src/components/ZkCustomAppContainer/index.tsx +++ b/src/components/CustomAppContainer/index.tsx @@ -2,7 +2,7 @@ import styled from "styled-components"; -export const ZkCustomAppContainer = styled.div` +export const CustomAppContainer = styled.div` width: 580px; @media (max-width: 900px) { diff --git a/src/libs/spaces/getSpaces.ts b/src/libs/spaces/getSpaces.ts index daae4e54..26607943 100644 --- a/src/libs/spaces/getSpaces.ts +++ b/src/libs/spaces/getSpaces.ts @@ -6,7 +6,7 @@ import { SpaceType, ZkFormAppType, ZkTelegramBotAppType, - ZkCustomAppType, + CustomAppType, } from "./types"; import { AuthType } from "@sismo-core/sismo-connect-server"; @@ -69,15 +69,15 @@ export function getSpaces(): SpaceType[] { telegramInviteLink: appConfig.templateConfig.telegramInviteLink, } as ZkTelegramBotAppType); break; - case "zkCustom": + case "custom": apps.push({ type: appConfig.type, ...appCommon, authRequests: appConfig.sismoConnectRequest.authRequests ?? [ { authType: AuthType.VAULT }, ], - extraData: appConfig.templateConfig.extraData, - } as ZkCustomAppType); + extraData: appConfig.templateConfig, + } as CustomAppType); break; } } diff --git a/src/libs/spaces/types.ts b/src/libs/spaces/types.ts index 483bc15f..92ebecf4 100644 --- a/src/libs/spaces/types.ts +++ b/src/libs/spaces/types.ts @@ -24,7 +24,7 @@ export type ZkAppType = | ZkTelegramBotAppType | ZkDropAppType | ZkBadgeAppType - | ZkCustomAppType; + | CustomAppType; type SocialType = "twitter" | "discord" | "link" | "github" | "telegram"; @@ -119,8 +119,8 @@ export type ZkTelegramBotAppType = AppCommonType & { appDescription?: string; }; -export type ZkCustomAppType = AppCommonType & { - type: "zkCustom"; +export type CustomAppType = AppCommonType & { + type: "custom"; extraData: any; } diff --git a/yarn.lock b/yarn.lock index 486b1c2a..a14aed3d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4086,6 +4086,16 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +detect-browser@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" + integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA== + +detect-browser@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" + integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== + detect-libc@^2.0.0, detect-libc@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" @@ -4841,6 +4851,38 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +framer-motion@6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-6.5.1.tgz#802448a16a6eb764124bf36d8cbdfa6dd6b931a7" + integrity sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw== + dependencies: + "@motionone/dom" "10.12.0" + framesync "6.0.1" + hey-listen "^1.0.8" + popmotion "11.0.3" + style-value-types "5.0.0" + tslib "^2.1.0" + optionalDependencies: + "@emotion/is-prop-valid" "^0.8.2" + +framer-motion@^7.6.7: + version "7.10.3" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-7.10.3.tgz#8b23f50bbc1ee8c830c869c5398e457d5272feb5" + integrity sha512-k2ccYeZNSpPg//HTaqrU+4pRq9f9ZpaaN7rr0+Rx5zA4wZLbk547wtDzge2db1sB+1mnJ6r59P4xb+aEIi/W+w== + dependencies: + "@motionone/dom" "^10.15.3" + hey-listen "^1.0.8" + tslib "2.4.0" + optionalDependencies: + "@emotion/is-prop-valid" "^0.8.2" + +framesync@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/framesync/-/framesync-6.0.1.tgz#5e32fc01f1c42b39c654c35b16440e07a25d6f20" + integrity sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA== + dependencies: + tslib "^2.1.0" + fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" @@ -5310,6 +5352,14 @@ ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +inline-style-prefixer@^6.0.0: + version "6.0.4" + resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz#4290ed453ab0e4441583284ad86e41ad88384f44" + integrity sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg== + dependencies: + css-in-js-utils "^3.1.0" + fast-loops "^1.1.3" + internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" @@ -6620,6 +6670,11 @@ object.values@^1.1.6: define-properties "^1.1.4" es-abstract "^1.20.4" +on-exit-leak-free@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" + integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -6973,6 +7028,16 @@ postgres-interval@^1.1.0: dependencies: xtend "^4.0.0" +posthog-js-lite@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/posthog-js-lite/-/posthog-js-lite-0.0.5.tgz#984a619190d1c4ef003cb81194d0a6276491d2e8" + integrity sha512-xHVZ9qbBdoqK7G1JVA4k6nheWu50aiEwjJIPQw7Zhi705aX5wr2W8zxdmvtadeEE5qbJNg+/uZ7renOQoqcbJw== + +posthog-js-lite@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/posthog-js-lite/-/posthog-js-lite-2.4.0.tgz#9212a1767b356d47906fb30bd52542798a20783b" + integrity sha512-BslsygPtDEeFIIRgW9za0mzTtZGv5iy5HrmpRd5KIUPtd3J24mItFMhf8cU9GguqS+oq/Dugt2K2ijpC8mSlzQ== + prebuild-install@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" @@ -7147,6 +7212,13 @@ r1csfile@0.0.45: fastfile "0.0.20" ffjavascript "0.2.57" +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -7157,6 +7229,18 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +react-countdown@^2.3.4: + version "2.3.5" + resolved "https://registry.yarnpkg.com/react-countdown/-/react-countdown-2.3.5.tgz#70c035b5cbc7e8fdb4ad91fe5f44afd7a7933a68" + integrity sha512-K26ENYEesMfPxhRRtm1r+Pf70SErrvW3g4CArLi/x6MPFjgfDFYePT4UghEj8p2nI0cqVV7/JjDgjyr//U60Og== + dependencies: + prop-types "^15.7.2" + +react-country-flag@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/react-country-flag/-/react-country-flag-3.1.0.tgz#f0c4c332934a77d3e894ba4800634f7a887e53d4" + integrity sha512-JWQFw1efdv9sTC+TGQvTKXQg1NKbDU2mBiAiRWcKM9F1sK+/zjhP2yGmm8YDddWyZdXVkR8Md47rPMJmo4YO5g== + react-dom@18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" @@ -7547,6 +7631,16 @@ server-only@^0.0.1: resolved "https://registry.yarnpkg.com/server-only/-/server-only-0.0.1.tgz#0f366bb6afb618c37c9255a314535dc412cd1c9e" integrity sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA== +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-harmonic-interval@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz#e1773705539cdfb80ce1c3d99e7f298bb3995249" + integrity sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g== + sha.js@^2.4.11: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -7882,6 +7976,14 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== +style-value-types@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-5.0.0.tgz#76c35f0e579843d523187989da866729411fc8ad" + integrity sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA== + dependencies: + hey-listen "^1.0.8" + tslib "^2.1.0" + styled-components@^6.0.0-beta.15: version "6.0.0-rc.1" resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.0.0-rc.1.tgz#e7d7c9f8301df7e4877c1c6a1c02bfbd7f64bc07"