├── .gitignore ├── BOUNTY.md ├── LICENSE ├── README.md ├── START.md ├── app ├── api │ └── prs │ │ └── route.ts ├── config.ts ├── layout.tsx └── page.tsx ├── next-env.d.ts ├── package.json ├── prettier.config.js ├── public ├── devcall.png ├── fonts │ └── Inter-Regular.ttf ├── picture.png ├── satori-1711026528508.png ├── satori-1711026552290.png ├── satori-1711026649962.png ├── satori-1711026667391.png ├── satori-1711026919993.png ├── satori-1711026938607.png ├── satori-1711026981417.png ├── satori-1711027044755.png ├── satori-1711027112185.png ├── satori-1711027170965.png ├── satori-1711027189291.png ├── satori-1711027205054.png ├── satori-1711027405224.png ├── satori-1711027818043.png └── satori-1711027952606.png ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_STORE 3 | .next/ -------------------------------------------------------------------------------- /BOUNTY.md: -------------------------------------------------------------------------------- 1 | # Open Frames Bounty 2 | 3 | Welcome to the Open Frames Bounty Program! 🚀 If you're passionate about interoperability and eager to make your Frame a part of the ever-growing Open Frames ecosystem, you're in the right place. By following the steps you will enhance your Frame with the necessary metadata for Open Frames compatibility, according to this [standard](https://github.com/open-frames/standard). Let's dive in! 4 | 5 | > 💸 **Open Frames Bounty Program** 6 | > 7 | > We're offering a $100 bounty for developers who achieve 3 goals: 8 | > 9 | > 1. Make your Frame interoperable with the Open Frames standard. 10 | > 2. Add your Frame to the `Example Frames` section in this repo via a PR. 11 | > 3. Send your frame via a DM to `hi.xmtp.eth` through one of the `Applications` section. 12 | > 13 | > Dive deeper into the details of the bounty by visiting [this link](https://github.com/open-frames/awesome-open-frames/blob/main/BOUNTY.md). After submitting your Frame, wait for the funds to be received in USDC Base. We will notify you via DM. 14 | 15 | ### Step 1: Modify the Metadata in Your Frame 16 | 17 | First, you need to add the specified metadata to your Frame. Based on the provided context, it looks like you're working with a TypeScript file in a project. Here's how you can add the metadata depending on your environment: 18 | 19 | **HTML** 20 | 21 | ```html 22 | 23 | ``` 24 | 25 | **OnChainKit** 26 | 27 | ```jsx 28 | export const metadata: Metadata = { 29 | title: /*Your frame metadata*/, 30 | description: /*Your frame metadata*/, 31 | openGraph: {/*Your frame metadata*/}, 32 | other: { 33 | ...frameMetadata, 34 | 'of:accepts:xmtp': 'vNext', // Ensure this line is added or updated 35 | }, 36 | }; 37 | ``` 38 | 39 | _For comprehensive guidance on integrating Open Frames with OnChainKit, refer to the official [documentation](https://onchainkit.xyz/xmtp/introduction)._ 40 | 41 | **FramesJS** 42 | 43 | ```jsx 44 | const handleRequest = frames(async (ctx) => { 45 | return { 46 | // ... 47 | accepts: [ 48 | { 49 | id: 'farcaster', 50 | version: 'vNext', 51 | }, 52 | { 53 | id: 'xmtp', 54 | version: 'vNext', 55 | }, 56 | ], 57 | }; 58 | }); 59 | ``` 60 | 61 | _For comprehensive guidance on integrating Open Frames with Framesjs, refer to the official [documentation](https://framesjs.org/reference/js/xmtp)._ 62 | 63 | **Frog** 64 | 65 | Currently, Frog does not officially support Open Frames. However, a temporary solution can be found in this [discussion](https://github.com/wevm/frog/discussions/51) regarding making Frog compatible. 66 | 67 | _Go here learn more about the Open Frames [specification](https://github.com/open-frames/standard)._ 68 | 69 | ### Step 2: Add Your Frame to the Compatible Frames Section 70 | 71 | 1. **Fork the [Awesome-Open-Frames Repo](https://github.com/open-frames/awesome-open-frames)**: Navigate to the GitHub page of the Awesome-Open-Frames repository and click the "Fork" button. 72 | 73 | 2. **Clone Your Fork**: Clone the forked repository to your local machine. 74 | 75 | 3. **Modify the README.md**: Add your Frame to the `Compatible Frames` section. Follow the formatting used by other entries in the list. 76 | 77 | 4. **Commit and Push Your Changes**: Commit the changes to your fork and push them. 78 | 79 | 5. **Create a Pull Request**: Navigate to the original Awesome-Open-Frames repository on GitHub. You should see an option to create a pull request based on the changes you pushed to your fork. Fill out the necessary details and submit the PR. 80 | 81 | ### Step 3: Send Your Frame via DM 82 | 83 | 1. **Access XMTP**: Go to the any of the apps listed in the [Compatible Applications](https://github.com/open-frames/awesome-open-frames?tab=readme-ov-file#compatible-messaging-apps) 84 | 85 | 2. **Connect Your Wallet**: Follow the prompts to connect your Ethereum wallet. Make sure you're using the wallet address that you want to be contacted on for the bounty. 86 | 87 | 3. **Send a DM**: Compose a new message to `hi.xmtp.eth`. In the message, include a link to your Frame and mention that you've added it to the Compatible Frames section as per the bounty requirements. 88 | 89 | ### Step 4: Wait for Contact 90 | 91 | After completing the above steps, our team will contact you through the provided wallet address and send the payment in USDC through XMTP. 92 | 93 | > ⚠️ To be eligible for the bounty the Frame must render without errors. 94 | 95 | Make sure you've followed all the guidelines and requirements specified in the bounty to ensure eligibility. 96 | Good luck! 97 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Leonardo Zizzamia 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Open Frames 2 | 3 | Open Frames is an interoperable [standard](https://github.com/open-frames/standard) extending the original Frames specification to support a broader range of applications and protocols. Getting started with Open Frames is very easy. You need to go through 2 steps: 4 | 5 | 1. **Update your frame's metadata**: Ensure it aligns with Open Frames standards and specifies protocol. 6 | 2. **Verifying requests**: Familiarize yourself with your framework's documentation to validate and ensure compatibility. 7 | 8 | - For a detailed guide, check out the [start](https://github.com/open-frames/awesome-open-frames/blob/main/START.md) document. 9 | - For more information go to the official [specification](https://github.com/open-frames/standard). 10 | 11 | ### Example frames 12 | 13 | Several Frames have already adopted the Open Frames standard, showcasing the versatility and broad applicability of this specification. These include: 14 | 15 | > 💰 Integrate your frame and earn $100. Check out the [open bounty program](https://github.com/open-frames/awesome-open-frames/blob/main/BOUNTY.md) 16 | 17 | - [Farguessr Frame](https://farguessr.vercel.app) - Guess the distance between 2 countries - daily or random game. 18 | - [Openframedl Frame](https://openframedl.vercel.app) - Wordle in a frame - daily or random game. 19 | - [2048 Game Frame](https://2048frame.netlify.app) - Play 2048 game on any open frame compatible platform. 20 | - [Zora Magic Machine Frame](https://paragraph.xyz/@zora/zora-magic-machine/) - Zora newsletter 21 | - [Rock Paper Scissors Frame](https://xmtp-frame-rock-paper-scissors.vercel.app/) - Rock paper scissors game. 22 | - [SlideFrame](https://slideframe.replit.app/) - Easily share presentation slides in a frame. 23 | - [Slot Machine Frame](https://slot-machine-frame.vercel.app/) - Simple slot machine game. 24 | 25 | **open-source** 26 | 27 | - [Farguessr](https://github.com/cryptods8/farguessr): Guess the distance between 2 countries - daily or random game. 28 | - [Openframedl](https://github.com/cryptods8/openframedl): Wordle in a frame - daily or random game. 29 | - [2048 Game Frame](https://github.com/Vamsieth/2048-frame) : Play 2048 game on any open frame compatible platform. 30 | - [rock-paper-scissors](https://github.com/Unshut-Labs/xmtp-frame-rock-paper-scissors): Rock paper scissors game. 31 | - [Purchase Custom Tees in a Frame](https://github.com/Luna-Music/LunaVibesTees): Learn and Purchase Custom Tees in a Frame + Base checkout. 32 | - [Interactive Polls](https://github.com/xmtp-labs/fc-polls): Engage your audience with real-time polls. 33 | - [Peace for colors](https://github.com/rtomas/peace-frame-farcaster): Peace for colors artwork. 34 | - [farcaster-gallery](https://github.com/Nith567/far): Gallery farcaster. 35 | - [Red Envelope](https://devfolio.co/projects/red-envelope-fe1a):A fast, gamified, and socially engaging onchain token gifting experience using Frames on XMTP. 36 | - [tvl_data_in_timeswap](https://github.com/HrithikSampson/TVL_History): View the Total Value locked in Timeswap Liquidity Pool. 37 | - [Mint-A-Cast](https://github.com/jamiechicago312/frameworks-ri-ja): Mint any cast into an NFT with this frame. 38 | - [meme-coin-snipe-frame](https://github.com/golryang/meme-coin-snipe-frame-frontend): Meme coin snipe on frame. 39 | - [Meme generator farcaster](https://github.com/ajaybutti/meme-farcaster-generator): Memes generate within farcaster frames 40 | - [Roll-the-dice](https://github.com/LeoFranklin015/XMTP-frames) : Rolling a dice app, where we roll the dice and if the number matches , we win or we lose 41 | - [clickcaster](https://github.com/IgorShadurin/warpcast-traffic): Traffic exchange platform between Frames. 42 | - ⁠[Uniframe](https://github.com/Mr94t3z/uniframe): Collection View Frame for Koda. 43 | - [Gitcoin grants explorer](https://github.com/koisose/frame): See gitcoin grants straight on frame 44 | - [adventure-farcaster-frame](https://github.com/Vamsieth/farcast) : Choose your own adventure in a Farcaster Frame. 45 | - [The Serendipity Engine](https://github.com/Envoy-VC/the-serendipity-engine): Profile discovery based on 6 Degrees of Separation. 46 | - [AI-Trivia](https://github.com/Tech-axis/ai-trivia) : Open Frame that allows users to play the 20 Questions game which are AI generated based 47 | - [Greeting Frame](https://github.com/Larhra/gm-frame): Greeting frame, Takes in any @username as input and returns Gm, @username!!!. 48 | - [Zurf-XMTP-OpenFrame](https://github.com/robertcedwards/Zurf-XMTP-OpenFrame/): Simple example of a XMTP compatible frame on Github Pages. 49 | - [Personal Link in Frame](https://github.com/robertcedwards/farcaster-frame-bio): Make your own Frame with your Bio info, includes a landing page 50 | - [Framer](https://github.com/alekcangp/framer): The Farcaster Frame to building the Frames. 51 | - ⁠[Onthis Frame](https://github.com/Mr94t3z/onthis-frame): The Farcaster Frame for Creating and Swapping Shortcuts. 52 | - ⁠[Slot Machine Frame](https://github.com/sonicsmith/slot-machine-frame): Simple slot machine game built using frames.js. 53 | --- 54 | 55 | ### Messaging apps 56 | 57 | Open Frames is designed to be universally compatible, with support from a wide range of applications. Notably, it is compatible with: 58 | 59 | - [Converse](https://getconverse.app/): Own your conversations. 60 | - [Converse Web](https://app.converse.xyz/): Own you conversations. On the web. 61 | - [xmtp.chat](https://xmtp.chat/): XMTP web app messaging client that renders Frames. 62 | - [dev-inbox](https://github.com/xmtp/dev-inbox/): Dev focused messaging client that renders Frames. 63 | 64 | ### Frameworks 65 | 66 | Given the interoperable nature of Open Frames, each protocol has its unique method for handling payloads, making these tools invaluable for integration: 67 | 68 | - [Frames.js](https://framesjs.org/reference/js/xmtp): Verify and sign XMTP payloads in XMTP with FramesJS 69 | - [OnChainKit](https://onchainkit.xyz/xmtp/introduction): Verify and sign XMTP payloads in XMTP with OnChainKit 70 | 71 | ### Protocols 72 | 73 | - [XMTP](https://xmtp.org/docs/build/frames): Verify and sign XMTP payloads in XMTP. 74 | - [Lens Protocol](https://github.com/defispartan/lens-frames/): Lens protocol Open Frame specification. 75 | 76 | ### No code tools 77 | 78 | - [Holder](https://www.holder.xyz/): Holder no-code builders allows to broadcast frames. 79 | - [Neynar](https://warpcast.com/rish/0x6ee0f33b): Neynar builder supports Open Frames 80 | 81 | ### Other integrations 82 | 83 | This dApps & protocols & tooling already support the Open Frames standard. 84 | 85 | - [Paragraph](https://paragraph.xyz): Paragraph newsletter can be displayed as Open Frames. 86 | - [Launchcaster](https://www.launchcaster.xyz): Launchcaster renders Open Frames in their launches. 87 | 88 | And others: [Outcasters](https://outcasters.xyz) | [Onchain Letters](https://onchainletters.xyz) | [UFO News](https://news.ufo.fm) | [RWX](https://rwx.mrjonkane.com) | [Power Law Systems](https://powerlaw.systems) | [Frameboard](https://www.frameboard.com) | [Solo Salon](https://solosalon.clinamenic.com) | [Derek Brown](https://derekbrown.xyz) | [Zine](https://zine.shamesoiree.com) | [Fabrica](https://blog.fabrica.land) | [ShortURL](https://shorturl.at) | [Wibtal](https://wibtal.com) | [Mark McClure](https://markmcclure.xyz) | [NextJS Boilerplate](https://nextjs-boilerplate-xi-two-79.vercel.app) | [Jared Hecht](https://jaredhecht.com) | [Luc.cx](https://luc.cx) | [0xPratik](https://0xpratik.com) | [Teji](blog.teji.io) | [Framify.xyz](https://framify.xyz) 89 | 90 | --- 91 | 92 | ### Media Mentions 93 | 94 | Here are some notable mentions: 95 | 96 | - [The state of frames + frames beyond Farcaster](https://mirror.xyz/albiverse.eth/8Uvsdgv9TTxnENFk90PRcIpiS20h_Av3_JkcVm7Yw2U) 97 | 98 | --- 99 | 100 | ### Ecosystem Partners 101 | 102 | - [Privy](https://privy.io/) 103 | - [Dynamic](https://www.dynamic.xyz/) 104 | - [Airstack](https://www.airstack.xyz/) 105 | - [Livepeer](https://livepeer.org/) 106 | - [Bountycaster](https://www.bountycaster.xyz/) 107 | -------------------------------------------------------------------------------- /START.md: -------------------------------------------------------------------------------- 1 | # Get started with Open Frames 2 | 3 | By following the steps you will enhance your Frame with the necessary metadata for Open Frames compatibility, according to this [standard](https://github.com/open-frames/standard). Let's dive in! 4 | 5 | **HTML** 6 | 7 | ```html 8 | 9 | ``` 10 | 11 | **OnChainKit** 12 | 13 | ```jsx 14 | export const metadata: Metadata = { 15 | title: /*Your frame metadata*/, 16 | description: /*Your frame metadata*/, 17 | openGraph: {/*Your frame metadata*/}, 18 | other: { 19 | ...frameMetadata, 20 | 'of:accepts:xmtp': 'vNext', // Ensure this line is added or updated 21 | }, 22 | }; 23 | ``` 24 | 25 | _For comprehensive guidance on integrating Open Frames with OnChainKit, refer to the official [documentation](https://onchainkit.xyz/xmtp/introduction)._ 26 | 27 | **FramesJS** 28 | 29 | ```jsx 30 | const handleRequest = frames(async (ctx) => { 31 | return { 32 | // ... 33 | accepts: [ 34 | { 35 | id: 'farcaster', 36 | version: 'vNext', 37 | }, 38 | { 39 | id: 'xmtp', 40 | version: 'vNext', 41 | }, 42 | ], 43 | }; 44 | }); 45 | ``` 46 | 47 | _For comprehensive guidance on integrating Open Frames with Framesjs, refer to the official [documentation](https://framesjs.org/reference/js/xmtp)._ 48 | 49 | **Frog** 50 | 51 | Currently, Frog does not officially support Open Frames. However, a temporary solution can be found in this [discussion](https://github.com/wevm/frog/discussions/51) regarding making Frog compatible. 52 | 53 | ### Next steps 54 | 55 | - To add your Frame to the Compatible Frames section, fork the [Awesome-Open-Frames Repo](https://github.com/open-frames/awesome-open-frames), clone it, update the README.md with your Frame, commit and push your changes, then submit a pull request. 56 | - To submit your Frame, access any XMTP app from the [Compatible Applications](https://github.com/open-frames/awesome-open-frames?tab=readme-ov-file#compatible-messaging-apps), connect your Ethereum wallet, and send a DM to `hi.xmtp.eth` with a link to your Frame, indicating its addition to the Compatible Frames section. 57 | -------------------------------------------------------------------------------- /app/api/prs/route.ts: -------------------------------------------------------------------------------- 1 | import { getFrameHtmlResponse } from '@coinbase/onchainkit'; 2 | import { NextRequest, NextResponse } from 'next/server'; 3 | import { NEXT_PUBLIC_URL } from '../../config'; 4 | import sharp from 'sharp'; 5 | import fs from 'fs'; 6 | import path from 'path'; 7 | 8 | const fetchOpenPRCount = async () => { 9 | const repo = 'open-frames/awesome-open-frames'; 10 | const url = `https://api.github.com/repos/${repo}/pulls?state=open`; 11 | 12 | try { 13 | const response = await fetch(url); 14 | if (!response.ok) { 15 | throw new Error(`HTTP error! status: ${response.status}`); 16 | } 17 | const data = await response.json(); 18 | console.log(`Number of open PRs: ${data.length}`); 19 | return data.length; 20 | } catch (error) { 21 | console.error('Error fetching open PR count:', error); 22 | } 23 | }; 24 | async function generateAndSavePNG(svgContent: string) { 25 | const fileName = `satori-${Date.now()}.png`; 26 | const filePath = path.join('/tmp', fileName); // Use /tmp for compatibility with read-only filesystems 27 | try { 28 | const pngBuffer = await sharp(Buffer.from(svgContent)).png().toBuffer(); 29 | fs.writeFileSync(filePath, pngBuffer); 30 | return filePath; // Return the full path of the generated file for further use 31 | } catch (error) { 32 | console.error('Failed to convert SVG to PNG:', error); 33 | throw error; 34 | } 35 | } 36 | async function getResponse(req: NextRequest): Promise { 37 | const openPRCount = 10; //await fetchOpenPRCount(); 38 | 39 | const svgContent = ` 40 | 41 | 42 | ${openPRCount} Frames submitted! 43 | 44 | `; 45 | 46 | const imageUrl = await generateAndSavePNG(svgContent); 47 | 48 | console.log(imageUrl); 49 | return new NextResponse( 50 | getFrameHtmlResponse({ 51 | buttons: [ 52 | { 53 | label: `Back to the main page`, 54 | }, 55 | ], 56 | image: `${NEXT_PUBLIC_URL}/${imageUrl}`, 57 | postUrl: `${NEXT_PUBLIC_URL}/`, 58 | }), 59 | ); 60 | } 61 | 62 | export async function GET(req: NextRequest): Promise { 63 | return getResponse(req); 64 | } 65 | export async function POST(req: NextRequest): Promise { 66 | return getResponse(req); 67 | } 68 | -------------------------------------------------------------------------------- /app/config.ts: -------------------------------------------------------------------------------- 1 | export const NEXT_PUBLIC_URL = 2 | process.env.NODE_ENV == 'development' 3 | ? 'https://9918-50-174-20-202.ngrok-free.app' 4 | : 'https://awesome-open-frames.vercel.app'; 5 | -------------------------------------------------------------------------------- /app/layout.tsx: -------------------------------------------------------------------------------- 1 | export const viewport = { 2 | width: 'device-width', 3 | initialScale: 1.0, 4 | }; 5 | 6 | export default function RootLayout({ children }: { children: React.ReactNode }) { 7 | return ( 8 | 9 | {children} 10 | 11 | ); 12 | } 13 | -------------------------------------------------------------------------------- /app/page.tsx: -------------------------------------------------------------------------------- 1 | import { getFrameMetadata } from '@coinbase/onchainkit'; 2 | import type { Metadata } from 'next'; 3 | import { NEXT_PUBLIC_URL } from './config'; 4 | 5 | const frameMetadata = getFrameMetadata({ 6 | buttons: [ 7 | { 8 | label: 'Add to calendar', 9 | action: 'link', 10 | target: `https://xmtp.org/dev-call`, 11 | }, 12 | { 13 | label: 'Ask a question', 14 | action: 'link', 15 | target: `https://community.xmtp.org/t/tue-apr-9-2024-frames-o-rama-post-a-question-or-topic/629`, 16 | } /* 17 | { 18 | label: 'Speakers', 19 | action: 'link', 20 | target: `https://xmtplabs.notion.site/Frames-O-Rama-Agenda-0160dca2eb2943c1ac9d32a6c096a546?pvs=4`, 21 | },*/, 22 | /*, 23 | { 24 | label: 'Go to bounty', 25 | action: 'link', 26 | target: `https://github.com/open-frames/awesome-open-frames/blob/main/BOUNTY.md`, 27 | } /* 28 | { 29 | label: 'Bounty Status', 30 | action: 'post', 31 | }, 32 | 33 | src: `${NEXT_PUBLIC_URL}/devcall.png`,*/ 34 | ], 35 | image: { 36 | src: `${NEXT_PUBLIC_URL}/devcall.png`, 37 | }, 38 | postUrl: `${NEXT_PUBLIC_URL}/api/prs`, 39 | }); 40 | 41 | export const metadata: Metadata = { 42 | title: 'Awesome Open Frame', 43 | description: 'Interoperable Frames', 44 | openGraph: { 45 | title: 'Awesome Open Frame', 46 | description: 'Interoperable Frames', 47 | images: [`${NEXT_PUBLIC_URL}/devcall.png`], 48 | }, 49 | other: { 50 | ...frameMetadata, 51 | 'of:accepts:xmtp': 'vNext', 52 | }, 53 | }; 54 | 55 | export default function Page() { 56 | return ( 57 | <> 58 | 59 | 60 | ); 61 | } 62 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "a-frame-in-100-lines", 3 | "version": "0.1.1", 4 | "scripts": { 5 | "build": "rm -rf .next && next build", 6 | "dev": "next dev", 7 | "format": "prettier --log-level warn --write .", 8 | "start": "next start", 9 | "test": "echo \"Error: no test specified\" && exit 1" 10 | }, 11 | "keywords": [], 12 | "author": "@zizzamia", 13 | "license": "MIT", 14 | "dependencies": { 15 | "@coinbase/onchainkit": "^0.11.0", 16 | "@tanstack/react-query": "^5.28.4", 17 | "bufferutil": "^4.0.8", 18 | "next": "13.5.6", 19 | "react": "^18.2.0", 20 | "react-dom": "^18.2.0", 21 | "sharp": "^0.32.6", 22 | "utf-8-validate": "^6.0.3", 23 | "viem": "^2.8.11" 24 | }, 25 | "devDependencies": { 26 | "@types/node": "^20.11.8", 27 | "@types/react": "18.2.48", 28 | "prettier": "^3.2.4", 29 | "typescript": "^5.3.3" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | arrowParens: 'always', 3 | bracketSameLine: false, 4 | jsxSingleQuote: false, 5 | plugins: [], 6 | printWidth: 100, 7 | semi: true, 8 | singleQuote: true, 9 | tabWidth: 2, 10 | trailingComma: 'all', 11 | useTabs: false, 12 | }; 13 | -------------------------------------------------------------------------------- /public/devcall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/devcall.png -------------------------------------------------------------------------------- /public/fonts/Inter-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/fonts/Inter-Regular.ttf -------------------------------------------------------------------------------- /public/picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/picture.png -------------------------------------------------------------------------------- /public/satori-1711026528508.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711026528508.png -------------------------------------------------------------------------------- /public/satori-1711026552290.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711026552290.png -------------------------------------------------------------------------------- /public/satori-1711026649962.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711026649962.png -------------------------------------------------------------------------------- /public/satori-1711026667391.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711026667391.png -------------------------------------------------------------------------------- /public/satori-1711026919993.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711026919993.png -------------------------------------------------------------------------------- /public/satori-1711026938607.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711026938607.png -------------------------------------------------------------------------------- /public/satori-1711026981417.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711026981417.png -------------------------------------------------------------------------------- /public/satori-1711027044755.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711027044755.png -------------------------------------------------------------------------------- /public/satori-1711027112185.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711027112185.png -------------------------------------------------------------------------------- /public/satori-1711027170965.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711027170965.png -------------------------------------------------------------------------------- /public/satori-1711027189291.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711027189291.png -------------------------------------------------------------------------------- /public/satori-1711027205054.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711027205054.png -------------------------------------------------------------------------------- /public/satori-1711027405224.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711027405224.png -------------------------------------------------------------------------------- /public/satori-1711027818043.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711027818043.png -------------------------------------------------------------------------------- /public/satori-1711027952606.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-frames/awesome-open-frames/a69d36b6c0b30cca84927cf6adb44a96b6e9add5/public/satori-1711027952606.png -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2020", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "strict": true, 8 | "noEmit": true, 9 | "esModuleInterop": true, 10 | "module": "esnext", 11 | "moduleResolution": "Node", 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "jsx": "preserve", 15 | "incremental": true, 16 | "plugins": [ 17 | { 18 | "name": "next", 19 | }, 20 | ], 21 | }, 22 | "include": ["custom.d.ts", "next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 23 | "exclude": ["contracts", "node_modules"], 24 | } 25 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@adraffy/ens-normalize@1.10.0": 6 | version "1.10.0" 7 | resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz#d2a39395c587e092d77cbbc80acf956a54f38bf7" 8 | integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q== 9 | 10 | "@coinbase/onchainkit@^0.11.0": 11 | version "0.11.0" 12 | resolved "https://registry.yarnpkg.com/@coinbase/onchainkit/-/onchainkit-0.11.0.tgz#03b09d4d9f73913cb1f794664bf087f34fa26d71" 13 | integrity sha512-jplMmlADttZxlO6amMRTsTSxhj/HxfF1H/fflPvjxpe1NvX+ovJzI5oSvUsOg2rt1srGVJhlptlAtQA9HXVFbQ== 14 | 15 | "@next/env@13.5.6": 16 | version "13.5.6" 17 | resolved "https://registry.yarnpkg.com/@next/env/-/env-13.5.6.tgz#c1148e2e1aa166614f05161ee8f77ded467062bc" 18 | integrity sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw== 19 | 20 | "@next/swc-darwin-arm64@13.5.6": 21 | version "13.5.6" 22 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.6.tgz#b15d139d8971360fca29be3bdd703c108c9a45fb" 23 | integrity sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA== 24 | 25 | "@next/swc-darwin-x64@13.5.6": 26 | version "13.5.6" 27 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.6.tgz#9c72ee31cc356cb65ce6860b658d807ff39f1578" 28 | integrity sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA== 29 | 30 | "@next/swc-linux-arm64-gnu@13.5.6": 31 | version "13.5.6" 32 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.6.tgz#59f5f66155e85380ffa26ee3d95b687a770cfeab" 33 | integrity sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg== 34 | 35 | "@next/swc-linux-arm64-musl@13.5.6": 36 | version "13.5.6" 37 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.6.tgz#f012518228017052736a87d69bae73e587c76ce2" 38 | integrity sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q== 39 | 40 | "@next/swc-linux-x64-gnu@13.5.6": 41 | version "13.5.6" 42 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.6.tgz#339b867a7e9e7ee727a700b496b269033d820df4" 43 | integrity sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw== 44 | 45 | "@next/swc-linux-x64-musl@13.5.6": 46 | version "13.5.6" 47 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.6.tgz#ae0ae84d058df758675830bcf70ca1846f1028f2" 48 | integrity sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ== 49 | 50 | "@next/swc-win32-arm64-msvc@13.5.6": 51 | version "13.5.6" 52 | resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.6.tgz#a5cc0c16920485a929a17495064671374fdbc661" 53 | integrity sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg== 54 | 55 | "@next/swc-win32-ia32-msvc@13.5.6": 56 | version "13.5.6" 57 | resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.6.tgz#6a2409b84a2cbf34bf92fe714896455efb4191e4" 58 | integrity sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg== 59 | 60 | "@next/swc-win32-x64-msvc@13.5.6": 61 | version "13.5.6" 62 | resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.6.tgz#4a3e2a206251abc729339ba85f60bc0433c2865d" 63 | integrity sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ== 64 | 65 | "@noble/curves@1.2.0", "@noble/curves@~1.2.0": 66 | version "1.2.0" 67 | resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" 68 | integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== 69 | dependencies: 70 | "@noble/hashes" "1.3.2" 71 | 72 | "@noble/hashes@1.3.2": 73 | version "1.3.2" 74 | resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" 75 | integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== 76 | 77 | "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.2": 78 | version "1.3.3" 79 | resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" 80 | integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== 81 | 82 | "@scure/base@~1.1.0", "@scure/base@~1.1.2": 83 | version "1.1.5" 84 | resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.5.tgz#1d85d17269fe97694b9c592552dd9e5e33552157" 85 | integrity sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ== 86 | 87 | "@scure/bip32@1.3.2": 88 | version "1.3.2" 89 | resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.2.tgz#90e78c027d5e30f0b22c1f8d50ff12f3fb7559f8" 90 | integrity sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA== 91 | dependencies: 92 | "@noble/curves" "~1.2.0" 93 | "@noble/hashes" "~1.3.2" 94 | "@scure/base" "~1.1.2" 95 | 96 | "@scure/bip39@1.2.1": 97 | version "1.2.1" 98 | resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" 99 | integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg== 100 | dependencies: 101 | "@noble/hashes" "~1.3.0" 102 | "@scure/base" "~1.1.0" 103 | 104 | "@swc/helpers@0.5.2": 105 | version "0.5.2" 106 | resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.2.tgz#85ea0c76450b61ad7d10a37050289eded783c27d" 107 | integrity sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw== 108 | dependencies: 109 | tslib "^2.4.0" 110 | 111 | "@tanstack/query-core@5.28.6": 112 | version "5.28.6" 113 | resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.28.6.tgz#a3bdb108f9f8d4e2ba3163068dbe6ff55b905a81" 114 | integrity sha512-hnhotV+DnQtvtR3jPvbQMPNMW4KEK0J4k7c609zJ8muiNknm+yoDyMHmxTWM5ZnlZpsz0zOxYFr+mzRJNHWJsA== 115 | 116 | "@tanstack/react-query@^5.28.4": 117 | version "5.28.6" 118 | resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.28.6.tgz#0d52b0a98a1d842debf9c65496e20a9981a23bc4" 119 | integrity sha512-/DdYuDBSsA21Qbcder1R8Cr/3Nx0ZnA2lgtqKsLMvov8wL4+g0HBz/gWYZPlIsof7iyfQafyhg4wUVUsS3vWZw== 120 | dependencies: 121 | "@tanstack/query-core" "5.28.6" 122 | 123 | "@types/node@^20.11.8": 124 | version "20.11.10" 125 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" 126 | integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== 127 | dependencies: 128 | undici-types "~5.26.4" 129 | 130 | "@types/prop-types@*": 131 | version "15.7.11" 132 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" 133 | integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== 134 | 135 | "@types/react@18.2.48": 136 | version "18.2.48" 137 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.48.tgz#11df5664642d0bd879c1f58bc1d37205b064e8f1" 138 | integrity sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w== 139 | dependencies: 140 | "@types/prop-types" "*" 141 | "@types/scheduler" "*" 142 | csstype "^3.0.2" 143 | 144 | "@types/scheduler@*": 145 | version "0.16.8" 146 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" 147 | integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== 148 | 149 | abitype@1.0.0: 150 | version "1.0.0" 151 | resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.0.tgz#237176dace81d90d018bebf3a45cb42f2a2d9e97" 152 | integrity sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ== 153 | 154 | b4a@^1.6.4: 155 | version "1.6.6" 156 | resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.6.tgz#a4cc349a3851987c3c4ac2d7785c18744f6da9ba" 157 | integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg== 158 | 159 | bare-events@^2.0.0, bare-events@^2.2.0: 160 | version "2.2.2" 161 | resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.2.2.tgz#a98a41841f98b2efe7ecc5c5468814469b018078" 162 | integrity sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ== 163 | 164 | bare-fs@^2.1.1: 165 | version "2.2.2" 166 | resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-2.2.2.tgz#286bf54cc6f15f613bee6bb26f0c61c79fb14f06" 167 | integrity sha512-X9IqgvyB0/VA5OZJyb5ZstoN62AzD7YxVGog13kkfYWYqJYcK0kcqLZ6TrmH5qr4/8//ejVcX4x/a0UvaogXmA== 168 | dependencies: 169 | bare-events "^2.0.0" 170 | bare-os "^2.0.0" 171 | bare-path "^2.0.0" 172 | streamx "^2.13.0" 173 | 174 | bare-os@^2.0.0, bare-os@^2.1.0: 175 | version "2.2.1" 176 | resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-2.2.1.tgz#c94a258c7a408ca6766399e44675136c0964913d" 177 | integrity sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w== 178 | 179 | bare-path@^2.0.0, bare-path@^2.1.0: 180 | version "2.1.0" 181 | resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-2.1.0.tgz#830f17fd39842813ca77d211ebbabe238a88cb4c" 182 | integrity sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw== 183 | dependencies: 184 | bare-os "^2.1.0" 185 | 186 | base64-js@^1.3.1: 187 | version "1.5.1" 188 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 189 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 190 | 191 | bl@^4.0.3: 192 | version "4.1.0" 193 | resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" 194 | integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== 195 | dependencies: 196 | buffer "^5.5.0" 197 | inherits "^2.0.4" 198 | readable-stream "^3.4.0" 199 | 200 | buffer@^5.5.0: 201 | version "5.7.1" 202 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" 203 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 204 | dependencies: 205 | base64-js "^1.3.1" 206 | ieee754 "^1.1.13" 207 | 208 | bufferutil@^4.0.8: 209 | version "4.0.8" 210 | resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" 211 | integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== 212 | dependencies: 213 | node-gyp-build "^4.3.0" 214 | 215 | busboy@1.6.0: 216 | version "1.6.0" 217 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" 218 | integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== 219 | dependencies: 220 | streamsearch "^1.1.0" 221 | 222 | caniuse-lite@^1.0.30001406: 223 | version "1.0.30001581" 224 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" 225 | integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== 226 | 227 | chownr@^1.1.1: 228 | version "1.1.4" 229 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" 230 | integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== 231 | 232 | client-only@0.0.1: 233 | version "0.0.1" 234 | resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" 235 | integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== 236 | 237 | color-convert@^2.0.1: 238 | version "2.0.1" 239 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 240 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 241 | dependencies: 242 | color-name "~1.1.4" 243 | 244 | color-name@^1.0.0, color-name@~1.1.4: 245 | version "1.1.4" 246 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 247 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 248 | 249 | color-string@^1.9.0: 250 | version "1.9.1" 251 | resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" 252 | integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== 253 | dependencies: 254 | color-name "^1.0.0" 255 | simple-swizzle "^0.2.2" 256 | 257 | color@^4.2.3: 258 | version "4.2.3" 259 | resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" 260 | integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== 261 | dependencies: 262 | color-convert "^2.0.1" 263 | color-string "^1.9.0" 264 | 265 | csstype@^3.0.2: 266 | version "3.1.3" 267 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" 268 | integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== 269 | 270 | decompress-response@^6.0.0: 271 | version "6.0.0" 272 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" 273 | integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== 274 | dependencies: 275 | mimic-response "^3.1.0" 276 | 277 | deep-extend@^0.6.0: 278 | version "0.6.0" 279 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 280 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 281 | 282 | detect-libc@^2.0.0, detect-libc@^2.0.2: 283 | version "2.0.3" 284 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" 285 | integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== 286 | 287 | end-of-stream@^1.1.0, end-of-stream@^1.4.1: 288 | version "1.4.4" 289 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 290 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 291 | dependencies: 292 | once "^1.4.0" 293 | 294 | expand-template@^2.0.3: 295 | version "2.0.3" 296 | resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" 297 | integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== 298 | 299 | fast-fifo@^1.1.0, fast-fifo@^1.2.0: 300 | version "1.3.2" 301 | resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" 302 | integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== 303 | 304 | fs-constants@^1.0.0: 305 | version "1.0.0" 306 | resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" 307 | integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== 308 | 309 | github-from-package@0.0.0: 310 | version "0.0.0" 311 | resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" 312 | integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== 313 | 314 | glob-to-regexp@^0.4.1: 315 | version "0.4.1" 316 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" 317 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 318 | 319 | graceful-fs@^4.1.2: 320 | version "4.2.11" 321 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" 322 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== 323 | 324 | ieee754@^1.1.13: 325 | version "1.2.1" 326 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 327 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 328 | 329 | inherits@^2.0.3, inherits@^2.0.4: 330 | version "2.0.4" 331 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 332 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 333 | 334 | ini@~1.3.0: 335 | version "1.3.8" 336 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" 337 | integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== 338 | 339 | is-arrayish@^0.3.1: 340 | version "0.3.2" 341 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" 342 | integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== 343 | 344 | isows@1.0.3: 345 | version "1.0.3" 346 | resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.3.tgz#93c1cf0575daf56e7120bab5c8c448b0809d0d74" 347 | integrity sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg== 348 | 349 | "js-tokens@^3.0.0 || ^4.0.0": 350 | version "4.0.0" 351 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 352 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 353 | 354 | loose-envify@^1.1.0: 355 | version "1.4.0" 356 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 357 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 358 | dependencies: 359 | js-tokens "^3.0.0 || ^4.0.0" 360 | 361 | lru-cache@^6.0.0: 362 | version "6.0.0" 363 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 364 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 365 | dependencies: 366 | yallist "^4.0.0" 367 | 368 | mimic-response@^3.1.0: 369 | version "3.1.0" 370 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" 371 | integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== 372 | 373 | minimist@^1.2.0, minimist@^1.2.3: 374 | version "1.2.8" 375 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" 376 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 377 | 378 | mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: 379 | version "0.5.3" 380 | resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" 381 | integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== 382 | 383 | nanoid@^3.3.6: 384 | version "3.3.7" 385 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" 386 | integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== 387 | 388 | napi-build-utils@^1.0.1: 389 | version "1.0.2" 390 | resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" 391 | integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== 392 | 393 | next@13.5.6: 394 | version "13.5.6" 395 | resolved "https://registry.yarnpkg.com/next/-/next-13.5.6.tgz#e964b5853272236c37ce0dd2c68302973cf010b1" 396 | integrity sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw== 397 | dependencies: 398 | "@next/env" "13.5.6" 399 | "@swc/helpers" "0.5.2" 400 | busboy "1.6.0" 401 | caniuse-lite "^1.0.30001406" 402 | postcss "8.4.31" 403 | styled-jsx "5.1.1" 404 | watchpack "2.4.0" 405 | optionalDependencies: 406 | "@next/swc-darwin-arm64" "13.5.6" 407 | "@next/swc-darwin-x64" "13.5.6" 408 | "@next/swc-linux-arm64-gnu" "13.5.6" 409 | "@next/swc-linux-arm64-musl" "13.5.6" 410 | "@next/swc-linux-x64-gnu" "13.5.6" 411 | "@next/swc-linux-x64-musl" "13.5.6" 412 | "@next/swc-win32-arm64-msvc" "13.5.6" 413 | "@next/swc-win32-ia32-msvc" "13.5.6" 414 | "@next/swc-win32-x64-msvc" "13.5.6" 415 | 416 | node-abi@^3.3.0: 417 | version "3.56.0" 418 | resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.56.0.tgz#ca807d5ff735ac6bbbd684ae3ff2debc1c2a40a7" 419 | integrity sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q== 420 | dependencies: 421 | semver "^7.3.5" 422 | 423 | node-addon-api@^6.1.0: 424 | version "6.1.0" 425 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" 426 | integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== 427 | 428 | node-gyp-build@^4.3.0: 429 | version "4.8.0" 430 | resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" 431 | integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== 432 | 433 | once@^1.3.1, once@^1.4.0: 434 | version "1.4.0" 435 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 436 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 437 | dependencies: 438 | wrappy "1" 439 | 440 | picocolors@^1.0.0: 441 | version "1.0.0" 442 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 443 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 444 | 445 | postcss@8.4.31: 446 | version "8.4.31" 447 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" 448 | integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== 449 | dependencies: 450 | nanoid "^3.3.6" 451 | picocolors "^1.0.0" 452 | source-map-js "^1.0.2" 453 | 454 | prebuild-install@^7.1.1: 455 | version "7.1.2" 456 | resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.2.tgz#a5fd9986f5a6251fbc47e1e5c65de71e68c0a056" 457 | integrity sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== 458 | dependencies: 459 | detect-libc "^2.0.0" 460 | expand-template "^2.0.3" 461 | github-from-package "0.0.0" 462 | minimist "^1.2.3" 463 | mkdirp-classic "^0.5.3" 464 | napi-build-utils "^1.0.1" 465 | node-abi "^3.3.0" 466 | pump "^3.0.0" 467 | rc "^1.2.7" 468 | simple-get "^4.0.0" 469 | tar-fs "^2.0.0" 470 | tunnel-agent "^0.6.0" 471 | 472 | prettier@^3.2.4: 473 | version "3.2.4" 474 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283" 475 | integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== 476 | 477 | pump@^3.0.0: 478 | version "3.0.0" 479 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 480 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 481 | dependencies: 482 | end-of-stream "^1.1.0" 483 | once "^1.3.1" 484 | 485 | queue-tick@^1.0.1: 486 | version "1.0.1" 487 | resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" 488 | integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== 489 | 490 | rc@^1.2.7: 491 | version "1.2.8" 492 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 493 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 494 | dependencies: 495 | deep-extend "^0.6.0" 496 | ini "~1.3.0" 497 | minimist "^1.2.0" 498 | strip-json-comments "~2.0.1" 499 | 500 | react-dom@^18.2.0: 501 | version "18.2.0" 502 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" 503 | integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== 504 | dependencies: 505 | loose-envify "^1.1.0" 506 | scheduler "^0.23.0" 507 | 508 | react@^18.2.0: 509 | version "18.2.0" 510 | resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" 511 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== 512 | dependencies: 513 | loose-envify "^1.1.0" 514 | 515 | readable-stream@^3.1.1, readable-stream@^3.4.0: 516 | version "3.6.2" 517 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" 518 | integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== 519 | dependencies: 520 | inherits "^2.0.3" 521 | string_decoder "^1.1.1" 522 | util-deprecate "^1.0.1" 523 | 524 | safe-buffer@^5.0.1, safe-buffer@~5.2.0: 525 | version "5.2.1" 526 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 527 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 528 | 529 | scheduler@^0.23.0: 530 | version "0.23.0" 531 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" 532 | integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== 533 | dependencies: 534 | loose-envify "^1.1.0" 535 | 536 | semver@^7.3.5, semver@^7.5.4: 537 | version "7.6.0" 538 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" 539 | integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== 540 | dependencies: 541 | lru-cache "^6.0.0" 542 | 543 | sharp@^0.32.6: 544 | version "0.32.6" 545 | resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.6.tgz#6ad30c0b7cd910df65d5f355f774aa4fce45732a" 546 | integrity sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w== 547 | dependencies: 548 | color "^4.2.3" 549 | detect-libc "^2.0.2" 550 | node-addon-api "^6.1.0" 551 | prebuild-install "^7.1.1" 552 | semver "^7.5.4" 553 | simple-get "^4.0.1" 554 | tar-fs "^3.0.4" 555 | tunnel-agent "^0.6.0" 556 | 557 | simple-concat@^1.0.0: 558 | version "1.0.1" 559 | resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" 560 | integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== 561 | 562 | simple-get@^4.0.0, simple-get@^4.0.1: 563 | version "4.0.1" 564 | resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" 565 | integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== 566 | dependencies: 567 | decompress-response "^6.0.0" 568 | once "^1.3.1" 569 | simple-concat "^1.0.0" 570 | 571 | simple-swizzle@^0.2.2: 572 | version "0.2.2" 573 | resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" 574 | integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== 575 | dependencies: 576 | is-arrayish "^0.3.1" 577 | 578 | source-map-js@^1.0.2: 579 | version "1.0.2" 580 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 581 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 582 | 583 | streamsearch@^1.1.0: 584 | version "1.1.0" 585 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" 586 | integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== 587 | 588 | streamx@^2.13.0, streamx@^2.15.0: 589 | version "2.16.1" 590 | resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.16.1.tgz#2b311bd34832f08aa6bb4d6a80297c9caef89614" 591 | integrity sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ== 592 | dependencies: 593 | fast-fifo "^1.1.0" 594 | queue-tick "^1.0.1" 595 | optionalDependencies: 596 | bare-events "^2.2.0" 597 | 598 | string_decoder@^1.1.1: 599 | version "1.3.0" 600 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 601 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 602 | dependencies: 603 | safe-buffer "~5.2.0" 604 | 605 | strip-json-comments@~2.0.1: 606 | version "2.0.1" 607 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 608 | integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== 609 | 610 | styled-jsx@5.1.1: 611 | version "5.1.1" 612 | resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" 613 | integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== 614 | dependencies: 615 | client-only "0.0.1" 616 | 617 | tar-fs@^2.0.0: 618 | version "2.1.1" 619 | resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" 620 | integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== 621 | dependencies: 622 | chownr "^1.1.1" 623 | mkdirp-classic "^0.5.2" 624 | pump "^3.0.0" 625 | tar-stream "^2.1.4" 626 | 627 | tar-fs@^3.0.4: 628 | version "3.0.5" 629 | resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.5.tgz#f954d77767e4e6edf973384e1eb95f8f81d64ed9" 630 | integrity sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg== 631 | dependencies: 632 | pump "^3.0.0" 633 | tar-stream "^3.1.5" 634 | optionalDependencies: 635 | bare-fs "^2.1.1" 636 | bare-path "^2.1.0" 637 | 638 | tar-stream@^2.1.4: 639 | version "2.2.0" 640 | resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" 641 | integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== 642 | dependencies: 643 | bl "^4.0.3" 644 | end-of-stream "^1.4.1" 645 | fs-constants "^1.0.0" 646 | inherits "^2.0.3" 647 | readable-stream "^3.1.1" 648 | 649 | tar-stream@^3.1.5: 650 | version "3.1.7" 651 | resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.7.tgz#24b3fb5eabada19fe7338ed6d26e5f7c482e792b" 652 | integrity sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ== 653 | dependencies: 654 | b4a "^1.6.4" 655 | fast-fifo "^1.2.0" 656 | streamx "^2.15.0" 657 | 658 | tslib@^2.4.0: 659 | version "2.6.2" 660 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" 661 | integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== 662 | 663 | tunnel-agent@^0.6.0: 664 | version "0.6.0" 665 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 666 | integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== 667 | dependencies: 668 | safe-buffer "^5.0.1" 669 | 670 | typescript@^5.3.3: 671 | version "5.3.3" 672 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" 673 | integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== 674 | 675 | undici-types@~5.26.4: 676 | version "5.26.5" 677 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" 678 | integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== 679 | 680 | utf-8-validate@^6.0.3: 681 | version "6.0.3" 682 | resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.3.tgz#7d8c936d854e86b24d1d655f138ee27d2636d777" 683 | integrity sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA== 684 | dependencies: 685 | node-gyp-build "^4.3.0" 686 | 687 | util-deprecate@^1.0.1: 688 | version "1.0.2" 689 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 690 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 691 | 692 | viem@^2.8.11: 693 | version "2.8.16" 694 | resolved "https://registry.yarnpkg.com/viem/-/viem-2.8.16.tgz#30370390a6f109657b57c1a01b2793c4056b4e95" 695 | integrity sha512-J8tu1aP7TfI2HT/IEmyJ+n+WInrA/cuMuJtfgvYhYgHBobxhYGc2SojHm5lZBWcWgErN1Ld7VcKUwTmPh4ToQA== 696 | dependencies: 697 | "@adraffy/ens-normalize" "1.10.0" 698 | "@noble/curves" "1.2.0" 699 | "@noble/hashes" "1.3.2" 700 | "@scure/bip32" "1.3.2" 701 | "@scure/bip39" "1.2.1" 702 | abitype "1.0.0" 703 | isows "1.0.3" 704 | ws "8.13.0" 705 | 706 | watchpack@2.4.0: 707 | version "2.4.0" 708 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" 709 | integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== 710 | dependencies: 711 | glob-to-regexp "^0.4.1" 712 | graceful-fs "^4.1.2" 713 | 714 | wrappy@1: 715 | version "1.0.2" 716 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 717 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 718 | 719 | ws@8.13.0: 720 | version "8.13.0" 721 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" 722 | integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== 723 | 724 | yallist@^4.0.0: 725 | version "4.0.0" 726 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 727 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 728 | --------------------------------------------------------------------------------