mirror of
https://github.com/privacy-scaling-explorations/pse.dev.git
synced 2026-01-10 14:48:13 -05:00
Merge pull request #150 from privacy-scaling-explorations/project-sections-divider
project page updates
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { Metadata } from "next"
|
||||
|
||||
import ProjectFiltersBar from "@/components/project/project-filters-bar"
|
||||
import ProjectList from "@/components/project/project-list"
|
||||
import { ProjectList } from "@/components/project/project-list"
|
||||
import { ProjectResultBar } from "@/components/project/project-result-bar"
|
||||
import { useTranslation } from "@/app/i18n"
|
||||
|
||||
@@ -34,7 +34,7 @@ export default async function ProjectsPage({ params: { lang } }: any) {
|
||||
|
||||
<div className="w-full bg-anakiwa-100 pb-28">
|
||||
<div className="container">
|
||||
<div className="px-3 py-8">
|
||||
<div className="py-8">
|
||||
<ProjectResultBar lang={lang} />
|
||||
</div>
|
||||
<ProjectList lang={lang} />
|
||||
|
||||
@@ -45,8 +45,9 @@
|
||||
"fullyPSE": "Fully PSE"
|
||||
},
|
||||
"status": {
|
||||
"archived": "Archived",
|
||||
"active": "Active"
|
||||
"archived": "Inactive",
|
||||
"active": "Active",
|
||||
"inactive": "Inactive"
|
||||
},
|
||||
"sortBy": "Sort by: {{option}}",
|
||||
"tryItOut": "Try it out!",
|
||||
|
||||
@@ -40,7 +40,8 @@
|
||||
},
|
||||
"status": {
|
||||
"archived": "Archiviato",
|
||||
"active": "Attivo"
|
||||
"active": "Attivo",
|
||||
"inactive": "Inattivo"
|
||||
},
|
||||
"sortBy": "Ordina per: {{option}}",
|
||||
"tryItOut": "Prova!",
|
||||
@@ -63,4 +64,4 @@
|
||||
"whatDoYouWantDoToday": "Cosa vuoi fare oggi?",
|
||||
"showingProjects": "Mostrando {{count}} progetti",
|
||||
"showingProjectsWith": "Mostrando {{count}} progetti con:"
|
||||
}
|
||||
}
|
||||
@@ -67,10 +67,10 @@ export default function ProjectCard({
|
||||
alt={`${name} banner`}
|
||||
width={1200}
|
||||
height={630}
|
||||
className="min-h-[160px] w-full rounded-t-lg object-cover"
|
||||
className="min-h-[160px] w-full overflow-hidden rounded-t-lg border-none object-cover"
|
||||
/>
|
||||
{!image && (
|
||||
<span className="w-full px-5 text-xl text-center font-bold text-black absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 transform">
|
||||
<span className="absolute left-1/2 top-1/2 w-full -translate-x-1/2 -translate-y-1/2 px-5 text-center text-xl font-bold text-black">
|
||||
{imageAlt || name}
|
||||
</span>
|
||||
)}
|
||||
|
||||
@@ -69,7 +69,7 @@ export const ThemesStatusMapping = (lang: LocaleTypes): IThemeStatus => {
|
||||
icon: <Icons.checkActive />,
|
||||
},
|
||||
archived: {
|
||||
label: t("status.archived"),
|
||||
label: t("status.inactive"),
|
||||
icon: <Icons.archived />,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,15 +1,22 @@
|
||||
"use client"
|
||||
|
||||
import React from "react"
|
||||
import React, { useCallback, useEffect, useRef, useState } from "react"
|
||||
import Image from "next/image"
|
||||
import NoResultIcon from "@/public/icons/no-result.svg"
|
||||
import { useProjectFiltersState } from "@/state/useProjectFiltersState"
|
||||
import { cva } from "class-variance-authority"
|
||||
|
||||
import { LangProps } from "@/types/common"
|
||||
import { ProjectSection, ProjectSections } from "@/lib/types"
|
||||
import { cn } from "@/lib/utils"
|
||||
import { useTranslation } from "@/app/i18n/client"
|
||||
|
||||
import ProjectCard from "./project-card"
|
||||
|
||||
const sectionTitleClass = cva(
|
||||
"relative font-sans text-base font-bold uppercase tracking-[3.36px] text-anakiwa-950 after:ml-8 after:absolute after:top-1/2 after:h-[1px] after:w-full after:translate-y-1/2 after:bg-anakiwa-300 after:content-['']"
|
||||
)
|
||||
|
||||
const NoResults = ({ lang }: LangProps["params"]) => {
|
||||
const { t } = useTranslation(lang, "common")
|
||||
|
||||
@@ -28,25 +35,151 @@ const NoResults = ({ lang }: LangProps["params"]) => {
|
||||
)
|
||||
}
|
||||
|
||||
export default function ProjectList({ lang }: LangProps["params"]) {
|
||||
const ProjectSectionLabelMapping: Record<ProjectSection, string> = {
|
||||
pse: "PSE projects",
|
||||
grant: "Grants",
|
||||
collaboration: "Collaborations",
|
||||
}
|
||||
|
||||
export const ProjectList = ({ lang }: LangProps["params"]) => {
|
||||
const { t } = useTranslation(lang, "resources-page")
|
||||
const SCROLL_OFFSET = -400
|
||||
const [activeId, setActiveId] = useState("")
|
||||
const [isManualScroll, setIsManualScroll] = useState(false)
|
||||
|
||||
const { projects } = useProjectFiltersState((state) => state)
|
||||
|
||||
const noItems = projects?.length === 0
|
||||
|
||||
const sectionsRef = useRef<NodeListOf<HTMLElement> | null>(null) // sections are constant so useRef might be better here
|
||||
|
||||
useEffect(() => {
|
||||
if (sectionsRef.current === null)
|
||||
sectionsRef.current = document.querySelectorAll(`div[data-section]`)
|
||||
if (!activeId) setActiveId("pse")
|
||||
|
||||
const handleScroll = () => {
|
||||
if (isManualScroll) return
|
||||
|
||||
sectionsRef.current?.forEach((section: any) => {
|
||||
const sectionTop = section.offsetTop - SCROLL_OFFSET
|
||||
if (window.scrollY >= sectionTop && window.scrollY > 0) {
|
||||
setActiveId(section.getAttribute("id"))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
window.addEventListener("scroll", handleScroll)
|
||||
return () => window.removeEventListener("scroll", handleScroll)
|
||||
}, [SCROLL_OFFSET, activeId, isManualScroll])
|
||||
|
||||
const scrollToId = useCallback((id: string) => {
|
||||
const element = document.getElementById(id)
|
||||
const top = element?.offsetTop ?? 0
|
||||
|
||||
if (element) {
|
||||
setActiveId(id) // active clicked id
|
||||
setIsManualScroll(true) // tell the window event listener to ignore this scrolling
|
||||
window?.scrollTo({
|
||||
behavior: "smooth",
|
||||
top: (top ?? 0) - SCROLL_OFFSET,
|
||||
})
|
||||
}
|
||||
|
||||
setTimeout(() => setIsManualScroll(false), 800)
|
||||
}, [])
|
||||
|
||||
if (noItems) return <NoResults lang={lang} />
|
||||
|
||||
return (
|
||||
<div className="flex flex-wrap justify-center gap-6 pb-6">
|
||||
{projects.map((project) => (
|
||||
<ProjectCard
|
||||
key={project?.id}
|
||||
project={project}
|
||||
lang={lang}
|
||||
showBanner
|
||||
showLinks
|
||||
border
|
||||
/>
|
||||
))}
|
||||
<div className="relative grid grid-cols-[1fr_200px] items-start justify-between gap-10">
|
||||
<div className="flex flex-col gap-14 md:gap-20">
|
||||
{ProjectSections.map((section) => {
|
||||
const sectionProjects =
|
||||
projects.filter(
|
||||
(project) =>
|
||||
project.section?.toLowerCase() === section?.toLowerCase()
|
||||
) ?? []
|
||||
|
||||
const hasProjectsForSection = sectionProjects.length > 0
|
||||
|
||||
const sectionTitle =
|
||||
ProjectSectionLabelMapping[section as ProjectSection]
|
||||
|
||||
if (!hasProjectsForSection) return null
|
||||
|
||||
return (
|
||||
<div
|
||||
key={section}
|
||||
id={section}
|
||||
data-section={section}
|
||||
className="flex justify-between gap-10"
|
||||
>
|
||||
<div
|
||||
className={cn(
|
||||
"flex w-full flex-col",
|
||||
hasProjectsForSection ? "gap-10" : "gap-2"
|
||||
)}
|
||||
>
|
||||
<div className="overflow-hidden">
|
||||
<h3 className={cn(sectionTitleClass())}>{sectionTitle}</h3>
|
||||
</div>
|
||||
<div className="flex flex-wrap gap-6">
|
||||
{sectionProjects.map((project) => (
|
||||
<ProjectCard
|
||||
key={project?.id}
|
||||
project={project}
|
||||
lang={lang}
|
||||
showBanner
|
||||
showLinks
|
||||
border
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
|
||||
<div
|
||||
id="sidebar"
|
||||
className="sticky top-20 hidden bg-white/30 p-8 md:block"
|
||||
>
|
||||
<div className="flex flex-col gap-4">
|
||||
<h6 className="font-display text-lg font-bold text-tuatara-700">
|
||||
{t("onThisPage")}
|
||||
</h6>
|
||||
<ul className="text-normal font-sans text-black">
|
||||
{ProjectSections.map((id: ProjectSection) => {
|
||||
const label = ProjectSectionLabelMapping[id]
|
||||
|
||||
if (!label) return null // no label for this section
|
||||
|
||||
const active = id === activeId
|
||||
|
||||
return (
|
||||
<li
|
||||
key={id}
|
||||
onClick={(e) => {
|
||||
scrollToId(id)
|
||||
}}
|
||||
data-id={id}
|
||||
className={cn(
|
||||
"flex h-8 cursor-pointer items-center border-l-2 border-l-anakiwa-200 px-3 duration-200",
|
||||
{
|
||||
"border-l-anakiwa-500 text-anakiwa-500 font-medium":
|
||||
active,
|
||||
}
|
||||
)}
|
||||
>
|
||||
{label}
|
||||
</li>
|
||||
)
|
||||
})}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ import { summa } from "./projects/summa"
|
||||
import { tlsn } from "./projects/tlsn"
|
||||
import { trustedSetups } from "./projects/trusted-setups"
|
||||
import { unirepProtocol } from "./projects/unirep-protocol"
|
||||
import { voicedeck } from "./projects/voice-deck"
|
||||
import { wax } from "./projects/wax"
|
||||
import { zk3 } from "./projects/zk3"
|
||||
import { ZKKit } from "./projects/zk-kit"
|
||||
@@ -78,9 +79,7 @@ export const projects: ProjectInterface[] = [
|
||||
p0tion,
|
||||
jubmoji,
|
||||
nfctap,
|
||||
/**
|
||||
* Grant projects hidden until we have grant tag
|
||||
zkp2p,
|
||||
zk3,
|
||||
*/
|
||||
voicedeck,
|
||||
]
|
||||
|
||||
@@ -6,6 +6,7 @@ Anon Aadhaar is a project that allows individuals to prove their citizenship ano
|
||||
|
||||
export const anonAadhaar: ProjectInterface = {
|
||||
id: "anon-aadhaar",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "anon-aadhaar.svg",
|
||||
name: "Anon Aadhaar",
|
||||
|
||||
@@ -6,6 +6,7 @@ AnonKlub is a tool designed for Ethereum developers that allows for anonymous pr
|
||||
|
||||
export const anonKlub: ProjectInterface = {
|
||||
id: "anon-klub",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "anonklub.svg",
|
||||
name: "AnonKlub",
|
||||
|
||||
@@ -6,6 +6,7 @@ Bandada is a project designed to simplify the management of privacy-preserving S
|
||||
|
||||
export const bandada: ProjectInterface = {
|
||||
id: "bandada",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "bandada.webp",
|
||||
name: "Bandada",
|
||||
|
||||
@@ -6,7 +6,8 @@ Channel 4 is a community-driven platform where users can submit and discover con
|
||||
|
||||
export const channel4: ProjectInterface = {
|
||||
id: "channel-4",
|
||||
projectStatus: "active",
|
||||
section: "pse",
|
||||
projectStatus: "archived",
|
||||
image: "channel4.svg",
|
||||
name: "Channel 4",
|
||||
tldr: "Content discovery through community contributions, using state channels to reward users for popular posts.",
|
||||
|
||||
@@ -1,31 +1,37 @@
|
||||
import { ProjectInterface } from "@/lib/types";
|
||||
import { ProjectInterface } from "@/lib/types"
|
||||
|
||||
export const Coco: ProjectInterface = {
|
||||
id: "coco",
|
||||
image: "coco.svg",
|
||||
name: "COCO",
|
||||
tldr: "Integrating Nova into the EVM involves wrapping Liam Eagen's theoretical ECIP argument in Halo 2",
|
||||
description: "With Coco, groups can collaborate to curate feeds of any topic they're interested in. As you scroll through your Coco feed, rather than upvoting or downvoting posts, you'll spend WETH to predict what other group members and the group's moderators will want to see. When you're right, you'll get back your original WETH and more — but if you're wrong, you'll lose what you put in. Through this process, you help Coco filter value from noise to make sure group feeds only consist of posts that the group cares about.",
|
||||
projectStatus: 'archived',
|
||||
tags: {
|
||||
keywords: ['prediction market', 'scaling']
|
||||
},
|
||||
extraLinks: {
|
||||
learn:[{
|
||||
label: 'Meet COCO!',
|
||||
url: 'https://mirror.xyz/privacy-scaling-explorations.eth/tEf7iYa8l7ECZwN2T57yyiws7h9Uchip30CQvx-JBBQ'
|
||||
}],
|
||||
buildWith: [{
|
||||
label: 'Smart contracts',
|
||||
url: 'https://github.com/Janmajayamall/coco-contracts'
|
||||
},
|
||||
{
|
||||
label: 'Frontend',
|
||||
url: 'https://github.com/Janmajayamall/coco-frontend'
|
||||
},
|
||||
{
|
||||
label: 'Frontend (General)',
|
||||
url: 'https://github.com/Janmajayamall/coco-frontend-general'
|
||||
}],
|
||||
},
|
||||
id: "coco",
|
||||
section: "pse",
|
||||
image: "coco.svg",
|
||||
name: "COCO",
|
||||
tldr: "Integrating Nova into the EVM involves wrapping Liam Eagen's theoretical ECIP argument in Halo 2",
|
||||
description:
|
||||
"With Coco, groups can collaborate to curate feeds of any topic they're interested in. As you scroll through your Coco feed, rather than upvoting or downvoting posts, you'll spend WETH to predict what other group members and the group's moderators will want to see. When you're right, you'll get back your original WETH and more — but if you're wrong, you'll lose what you put in. Through this process, you help Coco filter value from noise to make sure group feeds only consist of posts that the group cares about.",
|
||||
projectStatus: "archived",
|
||||
tags: {
|
||||
keywords: ["prediction market", "scaling"],
|
||||
},
|
||||
extraLinks: {
|
||||
learn: [
|
||||
{
|
||||
label: "Meet COCO!",
|
||||
url: "https://mirror.xyz/privacy-scaling-explorations.eth/tEf7iYa8l7ECZwN2T57yyiws7h9Uchip30CQvx-JBBQ",
|
||||
},
|
||||
],
|
||||
buildWith: [
|
||||
{
|
||||
label: "Smart contracts",
|
||||
url: "https://github.com/Janmajayamall/coco-contracts",
|
||||
},
|
||||
{
|
||||
label: "Frontend",
|
||||
url: "https://github.com/Janmajayamall/coco-frontend",
|
||||
},
|
||||
{
|
||||
label: "Frontend (General)",
|
||||
url: "https://github.com/Janmajayamall/coco-frontend-general",
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
@@ -6,7 +6,8 @@ CryptKeeper is a browser extension that generates Semaphore and RLN proofs for w
|
||||
|
||||
export const cryptkeeper: ProjectInterface = {
|
||||
id: "cryptkeeper",
|
||||
projectStatus: "active",
|
||||
section: "pse",
|
||||
projectStatus: "archived",
|
||||
image: "cryptkeeper.webp",
|
||||
name: "CryptKeeper",
|
||||
tldr: "A browser extension for secure, portable anonymous identity management across applications.",
|
||||
|
||||
@@ -6,6 +6,7 @@ An anonymous, federated, chat application that uses Rate-Limiting Nullifier for
|
||||
|
||||
export const discreetly: ProjectInterface = {
|
||||
id: "discreetly",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "discreetly.svg",
|
||||
name: "Discreetly",
|
||||
@@ -13,7 +14,7 @@ export const discreetly: ProjectInterface = {
|
||||
description,
|
||||
links: {
|
||||
github: "https://github.com/Discreetly",
|
||||
website: "https://app.discreetly.chat/"
|
||||
website: "https://app.discreetly.chat/",
|
||||
},
|
||||
tags: {
|
||||
keywords: ["Anonymity/privacy", "Social"],
|
||||
|
||||
@@ -6,6 +6,7 @@ The DSL Working Group is focused on the exploration and improvement of languages
|
||||
|
||||
export const dslWorkingGroup: ProjectInterface = {
|
||||
id: "dsl-working-group",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "",
|
||||
imageAlt: "DSL Working Group",
|
||||
|
||||
@@ -2,6 +2,7 @@ import { ProjectInterface } from "@/lib/types"
|
||||
|
||||
export const ECIPHalo2: ProjectInterface = {
|
||||
id: "ecip-halo2",
|
||||
section: "pse",
|
||||
image: "",
|
||||
imageAlt: "ECIP + Halo 2",
|
||||
name: "ECIP (Elliptic Curve Inner Products) Halo 2 Implementation",
|
||||
|
||||
@@ -6,7 +6,8 @@ EigenTrust is a library designed to manage trust within a distributed network, i
|
||||
|
||||
export const eigenTrust: ProjectInterface = {
|
||||
id: "eigen-trust",
|
||||
projectStatus: "active",
|
||||
section: "pse",
|
||||
projectStatus: "archived",
|
||||
image: "",
|
||||
name: "EigenTrust",
|
||||
tldr: "A distributed reputation system with zero-knowledge features.",
|
||||
|
||||
@@ -1,24 +1,28 @@
|
||||
import { ProjectInterface } from "@/lib/types";
|
||||
import { ProjectInterface } from "@/lib/types"
|
||||
|
||||
export const Interep: ProjectInterface = {
|
||||
id: "interep",
|
||||
image: "interep.svg",
|
||||
name: "Interep",
|
||||
tldr: "An identity bridge from web2 to web3",
|
||||
description: "Interep aims to provide an identity solution for Ethereum users by bridging from an established digital identity source such as Reddit, Twitter, and Github. The product provides an identity layer in the application stack and uses the Semaphore framework to ensure privacy. Interep allows users to establish sybil-resistant decentralized identities on web3 without starting from scratch. By leveraging zero-knowledge proofs, Interep ensures only essential information is disclosed.",
|
||||
projectStatus: 'archived',
|
||||
tags:{
|
||||
keywords: ['social', 'reputation']
|
||||
},
|
||||
links: {
|
||||
website: 'https://docs.interep.link/',
|
||||
github: 'https://github.com/interep-project',
|
||||
youtube: 'https://www.youtube.com/watch?v=dYKgHkb_aqk',
|
||||
},
|
||||
extraLinks: {
|
||||
learn: [{
|
||||
label: 'Interep: An on-ramp for reputation',
|
||||
url: 'https://mirror.xyz/privacy-scaling-explorations.eth/w7zCHj0xoxIfhoJIxI-ZeYIXwvNatP1t4w0TsqSIBe4'
|
||||
}],
|
||||
},
|
||||
id: "interep",
|
||||
section: "pse",
|
||||
image: "interep.svg",
|
||||
name: "Interep",
|
||||
tldr: "An identity bridge from web2 to web3",
|
||||
description:
|
||||
"Interep aims to provide an identity solution for Ethereum users by bridging from an established digital identity source such as Reddit, Twitter, and Github. The product provides an identity layer in the application stack and uses the Semaphore framework to ensure privacy. Interep allows users to establish sybil-resistant decentralized identities on web3 without starting from scratch. By leveraging zero-knowledge proofs, Interep ensures only essential information is disclosed.",
|
||||
projectStatus: "archived",
|
||||
tags: {
|
||||
keywords: ["social", "reputation"],
|
||||
},
|
||||
links: {
|
||||
website: "https://docs.interep.link/",
|
||||
github: "https://github.com/interep-project",
|
||||
youtube: "https://www.youtube.com/watch?v=dYKgHkb_aqk",
|
||||
},
|
||||
extraLinks: {
|
||||
learn: [
|
||||
{
|
||||
label: "Interep: An on-ramp for reputation",
|
||||
url: "https://mirror.xyz/privacy-scaling-explorations.eth/w7zCHj0xoxIfhoJIxI-ZeYIXwvNatP1t4w0TsqSIBe4",
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ Jubmoji.quest is a place to keep personal, provable digital mementos from people
|
||||
|
||||
export const jubmoji: ProjectInterface = {
|
||||
id: "jubmoji",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "",
|
||||
name: "jubmoji.quest",
|
||||
|
||||
@@ -6,6 +6,7 @@ Minimal Anti-Collusion Infrastructure (MACI) is a protocol designed to provide a
|
||||
|
||||
export const maci: ProjectInterface = {
|
||||
id: "maci",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "maci.png",
|
||||
name: "MACI",
|
||||
|
||||
@@ -6,6 +6,7 @@ NFC activations at SBC and FtC residency
|
||||
|
||||
export const nfctap: ProjectInterface = {
|
||||
id: "nfctap",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "",
|
||||
name: "nfctap.xyz",
|
||||
|
||||
@@ -6,8 +6,9 @@ p0tion is an agnostic-from-ceremony public good toolkit, with the aim of making
|
||||
|
||||
export const p0tion: ProjectInterface = {
|
||||
id: "p0tion",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "",
|
||||
image: "p0tion.png",
|
||||
name: "p0tion",
|
||||
tldr: "Toolkit for Groth16 Phase 2 Trusted Setup ceremonies.",
|
||||
description,
|
||||
@@ -16,10 +17,7 @@ export const p0tion: ProjectInterface = {
|
||||
github: "https://github.com/privacy-scaling-explorations/p0tion",
|
||||
},
|
||||
tags: {
|
||||
keywords: [
|
||||
"Toolkits",
|
||||
"Infrastructure/protocol"
|
||||
],
|
||||
keywords: ["Toolkits", "Infrastructure/protocol"],
|
||||
themes: ["build"],
|
||||
types: ["Legos/dev tools"],
|
||||
builtWith: [],
|
||||
|
||||
@@ -6,6 +6,7 @@ P256 is an ERC-4337 smart contract wallet that leverages zk-SNARKs for WebAuthn
|
||||
|
||||
export const p256: ProjectInterface = {
|
||||
id: "p256",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "",
|
||||
name: "P256",
|
||||
|
||||
@@ -6,6 +6,7 @@ Pollen Labs is driven by a mission to make a significant impact on global lives
|
||||
|
||||
export const pollenLabs: ProjectInterface = {
|
||||
id: "pollen-labs",
|
||||
section: "collaboration",
|
||||
projectStatus: "active",
|
||||
image: "pollen-labs.svg",
|
||||
name: "Pollen Labs",
|
||||
|
||||
@@ -1,23 +1,28 @@
|
||||
import { ProjectInterface } from "@/lib/types";
|
||||
import { ProjectInterface } from "@/lib/types"
|
||||
|
||||
export const PerpetualPowersOfTau: ProjectInterface = {
|
||||
id: "perpetual-powers-of-tau",
|
||||
image: "",
|
||||
section: "pse",
|
||||
image: "powers-of-tau.png",
|
||||
name: "Perpetual Powers of Tau",
|
||||
tldr: 'An ongoing (since 2019) zk-SNARK trusted setup ceremony for circuits up to 2^28 constraints.',
|
||||
description: "The Perpetual Powers of Tau is a multi-party trusted setup ceremony, rooted in the Zcash Powers of Tau. Its primary objective is the secure generation of zk-SNARK parameters for circuits accommodating up to 2^28 (260+ million) constraints. This translates to the creation of over 530 million powers of tau. The ceremony's integrity hinges on the principle that as long as one participant acts honestly and remains uncompromised, the entire setup remains trustworthy. It's a pivotal step for zk-SNARK projects, ensuring the security and privacy of the system. Those who can handle a 100Gb download and many hours of compute time are invited to join by contacting [@glamperd on Twitter](https://twitter.com/glamperd) or Telegram, or asking questions via the PSE [Discord](https://discord.com/invite/sF5CT5rzrR).",
|
||||
projectStatus: 'active',
|
||||
tldr: "An ongoing (since 2019) zk-SNARK trusted setup ceremony for circuits up to 2^28 constraints.",
|
||||
description:
|
||||
"The Perpetual Powers of Tau is a multi-party trusted setup ceremony, rooted in the Zcash Powers of Tau. Its primary objective is the secure generation of zk-SNARK parameters for circuits accommodating up to 2^28 (260+ million) constraints. This translates to the creation of over 530 million powers of tau. The ceremony's integrity hinges on the principle that as long as one participant acts honestly and remains uncompromised, the entire setup remains trustworthy. It's a pivotal step for zk-SNARK projects, ensuring the security and privacy of the system. Those who can handle a 100Gb download and many hours of compute time are invited to join by contacting [@glamperd on Twitter](https://twitter.com/glamperd) or Telegram, or asking questions via the PSE [Discord](https://discord.com/invite/sF5CT5rzrR).",
|
||||
projectStatus: "active",
|
||||
tags: {
|
||||
keywords: ['scaling']
|
||||
keywords: ["scaling"],
|
||||
},
|
||||
links: {
|
||||
github: 'https://github.com/privacy-scaling-explorations/perpetualpowersoftau',
|
||||
website: 'https://perpetualpowersoftau.com/'
|
||||
github:
|
||||
"https://github.com/privacy-scaling-explorations/perpetualpowersoftau",
|
||||
website: "https://perpetualpowersoftau.com/",
|
||||
},
|
||||
extraLinks: {
|
||||
learn: [{
|
||||
label: 'Announcing the Perpetual Powers of Tau Ceremony',
|
||||
url: 'https://medium.com/coinmonks/announcing-the-perpetual-powers-of-tau-ceremony-to-benefit-all-zk-snark-projects-c3da86af8377'
|
||||
}],
|
||||
learn: [
|
||||
{
|
||||
label: "Announcing the Perpetual Powers of Tau Ceremony",
|
||||
url: "https://medium.com/coinmonks/announcing-the-perpetual-powers-of-tau-ceremony-to-benefit-all-zk-snark-projects-c3da86af8377",
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
@@ -6,8 +6,9 @@ PSE Security is a division of the Privacy & Scaling Explorations team at the Eth
|
||||
|
||||
export const pseSecurity: ProjectInterface = {
|
||||
id: "pse-security",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "",
|
||||
image: "pse-security.png",
|
||||
name: "PSE Security",
|
||||
tldr: "Proactively securing Ethereum's L2 and ZK ecosystems.",
|
||||
description,
|
||||
|
||||
@@ -6,6 +6,7 @@ Rate-Limiting Nullifier (RLN) is a protocol designed to combat spam and denial o
|
||||
|
||||
export const rln: ProjectInterface = {
|
||||
id: "rln",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "rln.svg",
|
||||
name: "Rate-Limiting Nullifier",
|
||||
|
||||
@@ -6,6 +6,7 @@ Semaphore is a protocol that allows users to prove their membership in a group a
|
||||
|
||||
export const semaphore: ProjectInterface = {
|
||||
id: "semaphore",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "semaphore.webp",
|
||||
name: "Semaphore",
|
||||
|
||||
@@ -6,6 +6,7 @@ Summa allows centralized exchanges to demonstrate that their assets exceed their
|
||||
|
||||
export const summa: ProjectInterface = {
|
||||
id: "summa",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "summa.svg",
|
||||
name: "Summa",
|
||||
|
||||
@@ -8,6 +8,7 @@ TLSNotary is ideal for developers of privacy-focused projects that require **dat
|
||||
|
||||
export const tlsn: ProjectInterface = {
|
||||
id: "tlsn",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "tlsn.webp",
|
||||
name: "TLSNotary",
|
||||
@@ -26,12 +27,12 @@ export const tlsn: ProjectInterface = {
|
||||
"Plugin",
|
||||
"Application",
|
||||
],
|
||||
builtWith: ['rust'],
|
||||
builtWith: ["rust"],
|
||||
keywords: [
|
||||
"Anonymity/privacy",
|
||||
"Identity",
|
||||
"Reputation",
|
||||
"Data portability"
|
||||
"Data portability",
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ The Trusted Setups project is dedicated to simplifying the process of trusted se
|
||||
`
|
||||
export const trustedSetups: ProjectInterface = {
|
||||
id: "trusted-setups",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "trusted-setups.svg",
|
||||
name: "Trusted Setups",
|
||||
|
||||
@@ -8,7 +8,8 @@ Using anonymous identifiers (epoch keys), the protocol allows for trustless enga
|
||||
|
||||
export const unirepProtocol: ProjectInterface = {
|
||||
id: "unirep-protocol",
|
||||
projectStatus: "active",
|
||||
section: "pse",
|
||||
projectStatus: "archived",
|
||||
image: "unirep.svg",
|
||||
name: "UniRep Protocol",
|
||||
tldr: "A Zero-Knowledge Protocol built to handle anonymous user data.",
|
||||
|
||||
27
data/projects/voice-deck.ts
Normal file
27
data/projects/voice-deck.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { ProjectInterface } from "@/lib/types"
|
||||
|
||||
|
||||
const description = `
|
||||
VoiceDeck isn't just a platform; it's a movement. By enabling citizens to fund journalism that makes a real difference, we're crafting a narrative where every contribution paints a stroke on the canvas of our collective future. Join us to foster a legacy where journalism is powered by the very communities it serves.
|
||||
`
|
||||
|
||||
export const voicedeck: ProjectInterface = {
|
||||
id: "voice-deck",
|
||||
section: "collaboration",
|
||||
projectStatus: "active",
|
||||
image: "voiceDeck.svg",
|
||||
name: "VoiceDeck",
|
||||
tldr: "From Individual Actions to Collective Impact, Every Voice Makes a Difference",
|
||||
description,
|
||||
links: {
|
||||
github: "https://github.com/VoiceDeck",
|
||||
website: "https://voicedeck.org/",
|
||||
twitter: "https://twitter.com/VoiceDeckDAO",
|
||||
},
|
||||
tags: {
|
||||
keywords: ["Public goods"],
|
||||
themes: ["play"],
|
||||
types: ["Application"],
|
||||
builtWith: ["anonAadhaar", "Hypercerts"],
|
||||
},
|
||||
}
|
||||
@@ -12,6 +12,7 @@ The primary use cases for WAX include scaling, key management, and the creation
|
||||
|
||||
export const wax: ProjectInterface = {
|
||||
id: "wax",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "wax.webp",
|
||||
name: "Wallet Account eXperiments - WAX",
|
||||
|
||||
@@ -1,20 +1,22 @@
|
||||
import { ProjectInterface } from "@/lib/types";
|
||||
import { ProjectInterface } from "@/lib/types"
|
||||
|
||||
export const ZKKit: ProjectInterface = {
|
||||
id: "zk-kit",
|
||||
image: "zk-kit.svg",
|
||||
name: "ZK-kit",
|
||||
tldr: "A monorepo of reusable libraries for zero-knowledge technologies.",
|
||||
description: "ZK-kit is a set of libraries (plugins, algorithms or utility functions) that can be reused in different projects and zero-knowledge protocols, making it easier for developers to access user-friendly, tested, and documented libraries.",
|
||||
projectStatus: 'active',
|
||||
links: {
|
||||
website: 'https://zkkit.pse.dev',
|
||||
github: 'https://github.com/privacy-scaling-explorations/zk-kit',
|
||||
},
|
||||
tags: {
|
||||
keywords: ['Education', 'Toolkits', 'Anonymity/Privacy', 'Algorithms'],
|
||||
themes: ["build"],
|
||||
types: ["Legos/dev tools"],
|
||||
builtWith: ["Circom", "JavaScript", "Solidity", "Noir"]
|
||||
}
|
||||
id: "zk-kit",
|
||||
section: "pse",
|
||||
image: "zk-kit.svg",
|
||||
name: "ZK-kit",
|
||||
tldr: "A monorepo of reusable libraries for zero-knowledge technologies.",
|
||||
description:
|
||||
"ZK-kit is a set of libraries (plugins, algorithms or utility functions) that can be reused in different projects and zero-knowledge protocols, making it easier for developers to access user-friendly, tested, and documented libraries.",
|
||||
projectStatus: "active",
|
||||
links: {
|
||||
website: "https://zkkit.pse.dev",
|
||||
github: "https://github.com/privacy-scaling-explorations/zk-kit",
|
||||
},
|
||||
tags: {
|
||||
keywords: ["Education", "Toolkits", "Anonymity/Privacy", "Algorithms"],
|
||||
themes: ["build"],
|
||||
types: ["Legos/dev tools"],
|
||||
builtWith: ["Circom", "JavaScript", "Solidity", "Noir"],
|
||||
},
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ Zk3 is a protocol that leverages Zero Knowledge Proofs (ZKPs) to allow users to
|
||||
|
||||
export const zk3: ProjectInterface = {
|
||||
id: "zk3",
|
||||
section: "grant",
|
||||
projectStatus: "active",
|
||||
image: "zk3.svg",
|
||||
name: "zk3",
|
||||
|
||||
@@ -6,8 +6,9 @@ zkEVM Community Edition is a project aimed at validating Ethereum blocks using z
|
||||
|
||||
export const zkevmCommunity: ProjectInterface = {
|
||||
id: "zkevm-community",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "",
|
||||
image: "zkevm.jpg",
|
||||
name: "zkEVM Community Edition",
|
||||
tldr: "A zero-knowledge proof mechanism for Ethereum block verification.",
|
||||
description,
|
||||
|
||||
@@ -6,6 +6,7 @@ Zkitter is a decentralized social network that emphasizes privacy by default. It
|
||||
|
||||
export const zkitter: ProjectInterface = {
|
||||
id: "zkitter",
|
||||
section: "pse",
|
||||
projectStatus: "archived",
|
||||
image: "zkitter.webp",
|
||||
name: "Zkitter",
|
||||
|
||||
@@ -6,8 +6,9 @@ ZKML is a solution that combines the power of zero-knowledge proofs (ZKPs) and m
|
||||
|
||||
export const zkml: ProjectInterface = {
|
||||
id: "zkml",
|
||||
section: "pse",
|
||||
projectStatus: "active",
|
||||
image: "",
|
||||
image: "zkml.png",
|
||||
name: "ZKML",
|
||||
tldr: "ZKML (Zero-Knowledge Machine Learning) leverages zero-knowledge proofs for privacy-preserving machine learning, enabling model and data privacy with transparent verification.",
|
||||
description,
|
||||
|
||||
@@ -1,27 +1,32 @@
|
||||
import { ProjectInterface } from "@/lib/types";
|
||||
import { ProjectInterface } from "@/lib/types"
|
||||
|
||||
export const Zkopru: ProjectInterface = {
|
||||
id: "zkopru",
|
||||
image: "zkopru.svg",
|
||||
name: "ZKOPRU",
|
||||
tldr: "Optimistic Rollup with zk-SNARKs for private Ethereum transactions.",
|
||||
description: "ZKOPRU is one of the initial projects of EF's PSE team. It is a Layer 2 scaling solution for Ethereum, emphasizing private transactions through zk-SNARKs and optimistic rollups. It provides an economical Ethereum privacy wallet, enabling users to transact with ETH, ERC-20s, and NFTs anonymously",
|
||||
projectStatus: 'archived',
|
||||
links: {
|
||||
website: 'https://zkopru.network/',
|
||||
github: 'https://github.com/zkopru-network',
|
||||
youtube: 'https://www.youtube.com/watch?v=GvRsJxu9X6w',
|
||||
},
|
||||
extraLinks: {
|
||||
learn: [{
|
||||
label: 'ZKOPRU: Wat, Y & Wen',
|
||||
url: 'https://mirror.xyz/privacy-scaling-explorations.eth/kfuuBPtGtDjl_J2wBq-jrtyURGLmQpUhZfDTuZChEy8'
|
||||
}, {
|
||||
label: "ZKOPRU on Testnet",
|
||||
url: 'https://mirror.xyz/privacy-scaling-explorations.eth/EB0KcMY0k9ucN8iQSBeOYksoupDYRBQ4ZffhRt477FE'
|
||||
}],
|
||||
},
|
||||
tags: {
|
||||
keywords: ['anonymity', 'private transactions']
|
||||
}
|
||||
id: "zkopru",
|
||||
section: "pse",
|
||||
image: "zkopru.svg",
|
||||
name: "ZKOPRU",
|
||||
tldr: "Optimistic Rollup with zk-SNARKs for private Ethereum transactions.",
|
||||
description:
|
||||
"ZKOPRU is one of the initial projects of EF's PSE team. It is a Layer 2 scaling solution for Ethereum, emphasizing private transactions through zk-SNARKs and optimistic rollups. It provides an economical Ethereum privacy wallet, enabling users to transact with ETH, ERC-20s, and NFTs anonymously",
|
||||
projectStatus: "archived",
|
||||
links: {
|
||||
website: "https://zkopru.network/",
|
||||
github: "https://github.com/zkopru-network",
|
||||
youtube: "https://www.youtube.com/watch?v=GvRsJxu9X6w",
|
||||
},
|
||||
extraLinks: {
|
||||
learn: [
|
||||
{
|
||||
label: "ZKOPRU: Wat, Y & Wen",
|
||||
url: "https://mirror.xyz/privacy-scaling-explorations.eth/kfuuBPtGtDjl_J2wBq-jrtyURGLmQpUhZfDTuZChEy8",
|
||||
},
|
||||
{
|
||||
label: "ZKOPRU on Testnet",
|
||||
url: "https://mirror.xyz/privacy-scaling-explorations.eth/EB0KcMY0k9ucN8iQSBeOYksoupDYRBQ4ZffhRt477FE",
|
||||
},
|
||||
],
|
||||
},
|
||||
tags: {
|
||||
keywords: ["anonymity", "private transactions"],
|
||||
},
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ ZKP2P is for defi consumers looking to onramp assets on chain quickly without go
|
||||
|
||||
export const zkp2p: ProjectInterface = {
|
||||
id: "zkp2p",
|
||||
section: "grant",
|
||||
projectStatus: "active",
|
||||
image: "zkp2p.webp",
|
||||
name: "ZKP2P",
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
// list of project groups
|
||||
export const ProjectSections = ["pse", "grant", "collaboration"] as const
|
||||
export type ProjectSection = (typeof ProjectSections)[number]
|
||||
|
||||
export interface AnnounceInterface {
|
||||
id: number
|
||||
type?: number
|
||||
@@ -44,6 +48,7 @@ export type ActionLinkType = Partial<
|
||||
export type ProjectStatusType = "active" | "inactive" | "archived"
|
||||
export interface ProjectInterface {
|
||||
id: string
|
||||
section: ProjectSection
|
||||
image: string
|
||||
imageAlt?: string
|
||||
name: string
|
||||
|
||||
1124
package-lock.json
generated
1124
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -21,7 +21,7 @@
|
||||
"dev:discordbot": "nodemon --watch ./common/discord"
|
||||
},
|
||||
"dependencies": {
|
||||
"@discordjs/rest": "^2.0.1",
|
||||
"@discordjs/rest": "^2.0.0",
|
||||
"@next/mdx": "^13.5.0",
|
||||
"@radix-ui/react-accordion": "^1.1.2",
|
||||
"@radix-ui/react-checkbox": "^1.0.4",
|
||||
@@ -51,7 +51,7 @@
|
||||
"react-markdown": "^8.0.7",
|
||||
"react-use": "^17.4.0",
|
||||
"remark-gfm": "^3.0.1",
|
||||
"sharp": "^0.31.3",
|
||||
"sharp": "^0.33.2",
|
||||
"tailwind-merge": "^1.12.0",
|
||||
"tailwindcss-animate": "^1.0.5",
|
||||
"zustand": "^4.4.1"
|
||||
|
||||
404
pnpm-lock.yaml
generated
404
pnpm-lock.yaml
generated
@@ -6,7 +6,7 @@ settings:
|
||||
|
||||
dependencies:
|
||||
'@discordjs/rest':
|
||||
specifier: ^2.0.1
|
||||
specifier: ^2.0.0
|
||||
version: 2.2.0
|
||||
'@next/mdx':
|
||||
specifier: ^13.5.0
|
||||
@@ -96,8 +96,8 @@ dependencies:
|
||||
specifier: ^3.0.1
|
||||
version: 3.0.1
|
||||
sharp:
|
||||
specifier: ^0.31.3
|
||||
version: 0.31.3
|
||||
specifier: ^0.33.2
|
||||
version: 0.33.2
|
||||
tailwind-merge:
|
||||
specifier: ^1.12.0
|
||||
version: 1.12.0
|
||||
@@ -424,6 +424,14 @@ packages:
|
||||
engines: {node: '>=16.11.0'}
|
||||
dev: false
|
||||
|
||||
/@emnapi/runtime@0.45.0:
|
||||
resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
tslib: 2.6.2
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@emotion/is-prop-valid@0.8.8:
|
||||
resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==}
|
||||
requiresBuild: true
|
||||
@@ -550,6 +558,194 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@img/sharp-darwin-arm64@0.33.2:
|
||||
resolution: {integrity: sha512-itHBs1rPmsmGF9p4qRe++CzCgd+kFYktnsoR1sbIAfsRMrJZau0Tt1AH9KVnufc2/tU02Gf6Ibujx+15qRE03w==}
|
||||
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-darwin-arm64': 1.0.1
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-darwin-x64@0.33.2:
|
||||
resolution: {integrity: sha512-/rK/69Rrp9x5kaWBjVN07KixZanRr+W1OiyKdXcbjQD6KbW+obaTeBBtLUAtbBsnlTTmWthw99xqoOS7SsySDg==}
|
||||
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-darwin-x64': 1.0.1
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-libvips-darwin-arm64@1.0.1:
|
||||
resolution: {integrity: sha512-kQyrSNd6lmBV7O0BUiyu/OEw9yeNGFbQhbxswS1i6rMDwBBSX+e+rPzu3S+MwAiGU3HdLze3PanQ4Xkfemgzcw==}
|
||||
engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-libvips-darwin-x64@1.0.1:
|
||||
resolution: {integrity: sha512-eVU/JYLPVjhhrd8Tk6gosl5pVlvsqiFlt50wotCvdkFGf+mDNBJxMh+bvav+Wt3EBnNZWq8Sp2I7XfSjm8siog==}
|
||||
engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-libvips-linux-arm64@1.0.1:
|
||||
resolution: {integrity: sha512-bnGG+MJjdX70mAQcSLxgeJco11G+MxTz+ebxlz8Y3dxyeb3Nkl7LgLI0mXupoO+u1wRNx/iRj5yHtzA4sde1yA==}
|
||||
engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-libvips-linux-arm@1.0.1:
|
||||
resolution: {integrity: sha512-FtdMvR4R99FTsD53IA3LxYGghQ82t3yt0ZQ93WMZ2xV3dqrb0E8zq4VHaTOuLEAuA83oDawHV3fd+BsAPadHIQ==}
|
||||
engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-libvips-linux-s390x@1.0.1:
|
||||
resolution: {integrity: sha512-3+rzfAR1YpMOeA2zZNp+aYEzGNWK4zF3+sdMxuCS3ey9HhDbJ66w6hDSHDMoap32DueFwhhs3vwooAB2MaK4XQ==}
|
||||
engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-libvips-linux-x64@1.0.1:
|
||||
resolution: {integrity: sha512-3NR1mxFsaSgMMzz1bAnnKbSAI+lHXVTqAHgc1bgzjHuXjo4hlscpUxc0vFSAPKI3yuzdzcZOkq7nDPrP2F8Jgw==}
|
||||
engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-libvips-linuxmusl-arm64@1.0.1:
|
||||
resolution: {integrity: sha512-5aBRcjHDG/T6jwC3Edl3lP8nl9U2Yo8+oTl5drd1dh9Z1EBfzUKAJFUDTDisDjUwc7N4AjnPGfCA3jl3hY8uDg==}
|
||||
engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-libvips-linuxmusl-x64@1.0.1:
|
||||
resolution: {integrity: sha512-dcT7inI9DBFK6ovfeWRe3hG30h51cBAP5JXlZfx6pzc/Mnf9HFCQDLtYf4MCBjxaaTfjCCjkBxcy3XzOAo5txw==}
|
||||
engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-linux-arm64@0.33.2:
|
||||
resolution: {integrity: sha512-pz0NNo882vVfqJ0yNInuG9YH71smP4gRSdeL09ukC2YLE6ZyZePAlWKEHgAzJGTiOh8Qkaov6mMIMlEhmLdKew==}
|
||||
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-arm64': 1.0.1
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-linux-arm@0.33.2:
|
||||
resolution: {integrity: sha512-Fndk/4Zq3vAc4G/qyfXASbS3HBZbKrlnKZLEJzPLrXoJuipFNNwTes71+Ki1hwYW5lch26niRYoZFAtZVf3EGA==}
|
||||
engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-arm': 1.0.1
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-linux-s390x@0.33.2:
|
||||
resolution: {integrity: sha512-MBoInDXDppMfhSzbMmOQtGfloVAflS2rP1qPcUIiITMi36Mm5YR7r0ASND99razjQUpHTzjrU1flO76hKvP5RA==}
|
||||
engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-s390x': 1.0.1
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-linux-x64@0.33.2:
|
||||
resolution: {integrity: sha512-xUT82H5IbXewKkeF5aiooajoO1tQV4PnKfS/OZtb5DDdxS/FCI/uXTVZ35GQ97RZXsycojz/AJ0asoz6p2/H/A==}
|
||||
engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-x64': 1.0.1
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-linuxmusl-arm64@0.33.2:
|
||||
resolution: {integrity: sha512-F+0z8JCu/UnMzg8IYW1TMeiViIWBVg7IWP6nE0p5S5EPQxlLd76c8jYemG21X99UzFwgkRo5yz2DS+zbrnxZeA==}
|
||||
engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linuxmusl-arm64': 1.0.1
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-linuxmusl-x64@0.33.2:
|
||||
resolution: {integrity: sha512-+ZLE3SQmSL+Fn1gmSaM8uFusW5Y3J9VOf+wMGNnTtJUMUxFhv+P4UPaYEYT8tqnyYVaOVGgMN/zsOxn9pSsO2A==}
|
||||
engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linuxmusl-x64': 1.0.1
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-wasm32@0.33.2:
|
||||
resolution: {integrity: sha512-fLbTaESVKuQcpm8ffgBD7jLb/CQLcATju/jxtTXR1XCLwbOQt+OL5zPHSDMmp2JZIeq82e18yE0Vv7zh6+6BfQ==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [wasm32]
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@emnapi/runtime': 0.45.0
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-win32-ia32@0.33.2:
|
||||
resolution: {integrity: sha512-okBpql96hIGuZ4lN3+nsAjGeggxKm7hIRu9zyec0lnfB8E7Z6p95BuRZzDDXZOl2e8UmR4RhYt631i7mfmKU8g==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@img/sharp-win32-x64@0.33.2:
|
||||
resolution: {integrity: sha512-E4magOks77DK47FwHUIGH0RYWSgRBfGdK56kIHSVeB9uIS4pPFr4N2kIVsXdQQo4LzOsENKV5KAhRlRL7eMAdg==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@jridgewell/gen-mapping@0.3.3:
|
||||
resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
@@ -1662,10 +1858,6 @@ packages:
|
||||
/balanced-match@1.0.2:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
|
||||
/base64-js@1.5.1:
|
||||
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
|
||||
dev: false
|
||||
|
||||
/bcp47@1.1.2:
|
||||
resolution: {integrity: sha512-JnkkL4GUpOvvanH9AZPX38CxhiLsXMBicBY2IAtqiVN8YulGDQybUydWA4W6yAMtw6iShtw+8HEF6cfrTHU+UQ==}
|
||||
engines: {node: '>=0.10'}
|
||||
@@ -1675,14 +1867,6 @@ packages:
|
||||
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
/bl@4.1.0:
|
||||
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
|
||||
dependencies:
|
||||
buffer: 5.7.1
|
||||
inherits: 2.0.4
|
||||
readable-stream: 3.6.2
|
||||
dev: false
|
||||
|
||||
/brace-expansion@1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
dependencies:
|
||||
@@ -1705,13 +1889,6 @@ packages:
|
||||
node-releases: 2.0.12
|
||||
update-browserslist-db: 1.0.11(browserslist@4.21.7)
|
||||
|
||||
/buffer@5.7.1:
|
||||
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
|
||||
dependencies:
|
||||
base64-js: 1.5.1
|
||||
ieee754: 1.2.1
|
||||
dev: false
|
||||
|
||||
/busboy@1.6.0:
|
||||
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
|
||||
engines: {node: '>=10.16.0'}
|
||||
@@ -1776,10 +1953,6 @@ packages:
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.2
|
||||
|
||||
/chownr@1.1.4:
|
||||
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
|
||||
dev: false
|
||||
|
||||
/class-variance-authority@0.4.0(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-74enNN8O9ZNieycac/y8FxqgyzZhZbxmCitAtAeUrLPlxjSd5zA7LfpprmxEcOmQBnaGs5hYhiSGnJ0mqrtBLQ==}
|
||||
peerDependencies:
|
||||
@@ -1921,13 +2094,6 @@ packages:
|
||||
character-entities: 2.0.2
|
||||
dev: false
|
||||
|
||||
/decompress-response@6.0.0:
|
||||
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
mimic-response: 3.1.0
|
||||
dev: false
|
||||
|
||||
/deep-equal@2.2.1:
|
||||
resolution: {integrity: sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==}
|
||||
dependencies:
|
||||
@@ -1951,11 +2117,6 @@ packages:
|
||||
which-typed-array: 1.1.9
|
||||
dev: true
|
||||
|
||||
/deep-extend@0.6.0:
|
||||
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
|
||||
engines: {node: '>=4.0.0'}
|
||||
dev: false
|
||||
|
||||
/deep-is@0.1.4:
|
||||
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
|
||||
dev: true
|
||||
@@ -1973,8 +2134,8 @@ packages:
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/detect-libc@2.0.1:
|
||||
resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==}
|
||||
/detect-libc@2.0.2:
|
||||
resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
|
||||
@@ -2082,12 +2243,6 @@ packages:
|
||||
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
|
||||
dev: true
|
||||
|
||||
/end-of-stream@1.4.4:
|
||||
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
dev: false
|
||||
|
||||
/entities@4.5.0:
|
||||
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
|
||||
engines: {node: '>=0.12'}
|
||||
@@ -2483,11 +2638,6 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/expand-template@2.0.3:
|
||||
resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/extend@3.0.2:
|
||||
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
|
||||
dev: false
|
||||
@@ -2600,10 +2750,6 @@ packages:
|
||||
'@emotion/is-prop-valid': 0.8.8
|
||||
dev: false
|
||||
|
||||
/fs-constants@1.0.0:
|
||||
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
|
||||
dev: false
|
||||
|
||||
/fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
|
||||
|
||||
@@ -2662,10 +2808,6 @@ packages:
|
||||
get-intrinsic: 1.2.1
|
||||
dev: true
|
||||
|
||||
/github-from-package@0.0.0:
|
||||
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
|
||||
dev: false
|
||||
|
||||
/glob-parent@5.1.2:
|
||||
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
|
||||
engines: {node: '>= 6'}
|
||||
@@ -2897,10 +3039,6 @@ packages:
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
|
||||
/ini@1.3.8:
|
||||
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
|
||||
dev: false
|
||||
|
||||
/inline-style-parser@0.1.1:
|
||||
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
|
||||
dev: false
|
||||
@@ -3643,11 +3781,6 @@ packages:
|
||||
braces: 3.0.2
|
||||
picomatch: 2.3.1
|
||||
|
||||
/mimic-response@3.1.0:
|
||||
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
|
||||
engines: {node: '>=10'}
|
||||
dev: false
|
||||
|
||||
/minimatch@3.1.2:
|
||||
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||
dependencies:
|
||||
@@ -3655,10 +3788,7 @@ packages:
|
||||
|
||||
/minimist@1.2.8:
|
||||
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
|
||||
|
||||
/mkdirp-classic@0.5.3:
|
||||
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
|
||||
dev: false
|
||||
dev: true
|
||||
|
||||
/mri@1.2.0:
|
||||
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
|
||||
@@ -3702,10 +3832,6 @@ packages:
|
||||
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
||||
hasBin: true
|
||||
|
||||
/napi-build-utils@1.0.2:
|
||||
resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
|
||||
dev: false
|
||||
|
||||
/natural-compare@1.4.0:
|
||||
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
||||
dev: true
|
||||
@@ -3765,17 +3891,6 @@ packages:
|
||||
- babel-plugin-macros
|
||||
dev: false
|
||||
|
||||
/node-abi@3.40.0:
|
||||
resolution: {integrity: sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
semver: 7.5.1
|
||||
dev: false
|
||||
|
||||
/node-addon-api@5.1.0:
|
||||
resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==}
|
||||
dev: false
|
||||
|
||||
/node-releases@2.0.12:
|
||||
resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==}
|
||||
|
||||
@@ -4033,25 +4148,6 @@ packages:
|
||||
picocolors: 1.0.0
|
||||
source-map-js: 1.0.2
|
||||
|
||||
/prebuild-install@7.1.1:
|
||||
resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
detect-libc: 2.0.1
|
||||
expand-template: 2.0.3
|
||||
github-from-package: 0.0.0
|
||||
minimist: 1.2.8
|
||||
mkdirp-classic: 0.5.3
|
||||
napi-build-utils: 1.0.2
|
||||
node-abi: 3.40.0
|
||||
pump: 3.0.0
|
||||
rc: 1.2.8
|
||||
simple-get: 4.0.1
|
||||
tar-fs: 2.1.1
|
||||
tunnel-agent: 0.6.0
|
||||
dev: false
|
||||
|
||||
/prelude-ls@1.2.1:
|
||||
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
@@ -4078,13 +4174,6 @@ packages:
|
||||
resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==}
|
||||
dev: false
|
||||
|
||||
/pump@3.0.0:
|
||||
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
|
||||
dependencies:
|
||||
end-of-stream: 1.4.4
|
||||
once: 1.4.0
|
||||
dev: false
|
||||
|
||||
/punycode@2.3.0:
|
||||
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
|
||||
engines: {node: '>=6'}
|
||||
@@ -4093,16 +4182,6 @@ packages:
|
||||
/queue-microtask@1.2.3:
|
||||
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
||||
|
||||
/rc@1.2.8:
|
||||
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
deep-extend: 0.6.0
|
||||
ini: 1.3.8
|
||||
minimist: 1.2.8
|
||||
strip-json-comments: 2.0.1
|
||||
dev: false
|
||||
|
||||
/react-cookie@7.0.1(react@18.2.0):
|
||||
resolution: {integrity: sha512-SmDjy2TFp+vS6BGOqW7HyaWKyJzVmIH74uP3mxq6kswlwLJEBtIbhkrioozdvQL9r81yprHYFQkSmcO4HiXPdA==}
|
||||
peerDependencies:
|
||||
@@ -4432,6 +4511,7 @@ packages:
|
||||
hasBin: true
|
||||
dependencies:
|
||||
lru-cache: 6.0.0
|
||||
dev: true
|
||||
|
||||
/semver@7.6.0:
|
||||
resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
|
||||
@@ -4446,19 +4526,34 @@ packages:
|
||||
engines: {node: '>=6.9'}
|
||||
dev: false
|
||||
|
||||
/sharp@0.31.3:
|
||||
resolution: {integrity: sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg==}
|
||||
engines: {node: '>=14.15.0'}
|
||||
/sharp@0.33.2:
|
||||
resolution: {integrity: sha512-WlYOPyyPDiiM07j/UO+E720ju6gtNtHjEGg5vovUk1Lgxyjm2LFO+37Nt/UI3MMh2l6hxTWQWi7qk3cXJTutcQ==}
|
||||
engines: {libvips: '>=8.15.1', node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
color: 4.2.3
|
||||
detect-libc: 2.0.1
|
||||
node-addon-api: 5.1.0
|
||||
prebuild-install: 7.1.1
|
||||
semver: 7.5.1
|
||||
simple-get: 4.0.1
|
||||
tar-fs: 2.1.1
|
||||
tunnel-agent: 0.6.0
|
||||
detect-libc: 2.0.2
|
||||
semver: 7.6.0
|
||||
optionalDependencies:
|
||||
'@img/sharp-darwin-arm64': 0.33.2
|
||||
'@img/sharp-darwin-x64': 0.33.2
|
||||
'@img/sharp-libvips-darwin-arm64': 1.0.1
|
||||
'@img/sharp-libvips-darwin-x64': 1.0.1
|
||||
'@img/sharp-libvips-linux-arm': 1.0.1
|
||||
'@img/sharp-libvips-linux-arm64': 1.0.1
|
||||
'@img/sharp-libvips-linux-s390x': 1.0.1
|
||||
'@img/sharp-libvips-linux-x64': 1.0.1
|
||||
'@img/sharp-libvips-linuxmusl-arm64': 1.0.1
|
||||
'@img/sharp-libvips-linuxmusl-x64': 1.0.1
|
||||
'@img/sharp-linux-arm': 0.33.2
|
||||
'@img/sharp-linux-arm64': 0.33.2
|
||||
'@img/sharp-linux-s390x': 0.33.2
|
||||
'@img/sharp-linux-x64': 0.33.2
|
||||
'@img/sharp-linuxmusl-arm64': 0.33.2
|
||||
'@img/sharp-linuxmusl-x64': 0.33.2
|
||||
'@img/sharp-wasm32': 0.33.2
|
||||
'@img/sharp-win32-ia32': 0.33.2
|
||||
'@img/sharp-win32-x64': 0.33.2
|
||||
dev: false
|
||||
|
||||
/shebang-command@2.0.0:
|
||||
@@ -4481,18 +4576,6 @@ packages:
|
||||
object-inspect: 1.12.3
|
||||
dev: true
|
||||
|
||||
/simple-concat@1.0.1:
|
||||
resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
|
||||
dev: false
|
||||
|
||||
/simple-get@4.0.1:
|
||||
resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
|
||||
dependencies:
|
||||
decompress-response: 6.0.0
|
||||
once: 1.4.0
|
||||
simple-concat: 1.0.1
|
||||
dev: false
|
||||
|
||||
/simple-swizzle@0.2.2:
|
||||
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
|
||||
dependencies:
|
||||
@@ -4637,11 +4720,6 @@ packages:
|
||||
engines: {node: '>=4'}
|
||||
dev: true
|
||||
|
||||
/strip-json-comments@2.0.1:
|
||||
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/strip-json-comments@3.1.1:
|
||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -4756,26 +4834,6 @@ packages:
|
||||
transitivePeerDependencies:
|
||||
- ts-node
|
||||
|
||||
/tar-fs@2.1.1:
|
||||
resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
|
||||
dependencies:
|
||||
chownr: 1.1.4
|
||||
mkdirp-classic: 0.5.3
|
||||
pump: 3.0.0
|
||||
tar-stream: 2.2.0
|
||||
dev: false
|
||||
|
||||
/tar-stream@2.2.0:
|
||||
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
|
||||
engines: {node: '>=6'}
|
||||
dependencies:
|
||||
bl: 4.1.0
|
||||
end-of-stream: 1.4.4
|
||||
fs-constants: 1.0.0
|
||||
inherits: 2.0.4
|
||||
readable-stream: 3.6.2
|
||||
dev: false
|
||||
|
||||
/text-table@0.2.0:
|
||||
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
|
||||
dev: true
|
||||
@@ -4875,12 +4933,6 @@ packages:
|
||||
typescript: 4.9.5
|
||||
dev: true
|
||||
|
||||
/tunnel-agent@0.6.0:
|
||||
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
|
||||
dependencies:
|
||||
safe-buffer: 5.2.1
|
||||
dev: false
|
||||
|
||||
/type-check@0.4.0:
|
||||
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
||||
BIN
public/project-banners/p0tion.png
Normal file
BIN
public/project-banners/p0tion.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 189 KiB |
BIN
public/project-banners/powers-of-tau.png
Normal file
BIN
public/project-banners/powers-of-tau.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.4 KiB |
BIN
public/project-banners/pse-security.png
Normal file
BIN
public/project-banners/pse-security.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
35
public/project-banners/voiceDeck.svg
Normal file
35
public/project-banners/voiceDeck.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 1.6 MiB |
BIN
public/project-banners/zkevm.jpg
Normal file
BIN
public/project-banners/zkevm.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 127 KiB |
BIN
public/project-banners/zkml.png
Normal file
BIN
public/project-banners/zkml.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 334 KiB |
Reference in New Issue
Block a user