From 8cbe77fc2d7baed630f93bd37fdf6e0218e9a276 Mon Sep 17 00:00:00 2001 From: Adam Lessey Date: Thu, 6 Mar 2025 13:47:09 -0500 Subject: [PATCH] fix: redesign --- account-manifest/src/components/Page.tsx | 28 ++- account-manifest/src/components/Success.tsx | 8 +- create-onchain/package.json | 4 +- create-onchain/src/cli.ts | 47 +---- .../minikit/app/components/Sammy.tsx | 165 +++++++++++++----- .../templates/minikit/app/globals.css | 12 +- .../templates/minikit/app/layout.tsx | 3 +- create-onchain/templates/minikit/app/page.tsx | 62 +++---- .../templates/minikit/app/providers.tsx | 1 + .../templates/minikit/app/svg/MiniKitLogo.tsx | 103 ----------- .../templates/minikit/app/svg/SnakeLogo.tsx | 119 +++++++++++++ .../templates/minikit/app/theme.css | 55 ++++++ .../templates/minikit/public/minikit.png | Bin 65686 -> 0 bytes .../templates/minikit/public/snake.png | Bin 0 -> 1583 bytes .../templates/minikit/tailwind.config.ts | 33 +++- 15 files changed, 399 insertions(+), 241 deletions(-) delete mode 100644 create-onchain/templates/minikit/app/svg/MiniKitLogo.tsx create mode 100644 create-onchain/templates/minikit/app/svg/SnakeLogo.tsx create mode 100644 create-onchain/templates/minikit/app/theme.css delete mode 100644 create-onchain/templates/minikit/public/minikit.png create mode 100644 create-onchain/templates/minikit/public/snake.png diff --git a/account-manifest/src/components/Page.tsx b/account-manifest/src/components/Page.tsx index e549f03c34..6436cc5fa5 100644 --- a/account-manifest/src/components/Page.tsx +++ b/account-manifest/src/components/Page.tsx @@ -22,6 +22,8 @@ import { validateUrl } from '../utils'; import { Step } from './Step'; import { Success } from './Success'; +const MAX_RECONNECT_ATTEMPTS = 5; + function Page() { const wsRef = useRef(null); const [fid, setFid] = useState(null); @@ -43,7 +45,25 @@ function Page() { }); useEffect(() => { - wsRef.current = new WebSocket('ws://localhost:3333'); + let reconnectAttempts = 0; + + function connect() { + wsRef.current = new WebSocket('ws://localhost:3333'); + + wsRef.current.onclose = () => { + if (reconnectAttempts < MAX_RECONNECT_ATTEMPTS) { + console.log('WebSocket closed, reconnecting...'); + reconnectAttempts++; + setTimeout(connect, 1000); + } + }; + + wsRef.current.onerror = (err) => { + console.error('WebSocket error:', err); + }; + } + + connect(); return () => { wsRef.current?.close(); @@ -104,6 +124,10 @@ function Page() { setDomainError(null); }; + const handleClose = useCallback(() => { + window.close(); + }, []); + return (
- +
); } diff --git a/account-manifest/src/components/Success.tsx b/account-manifest/src/components/Success.tsx index cfe6505272..f78fd9c2ca 100644 --- a/account-manifest/src/components/Success.tsx +++ b/account-manifest/src/components/Success.tsx @@ -1,14 +1,14 @@ 'use client'; -import { useCallback } from 'react'; import type { AccountAssociation } from '../hooks/useSignManifest'; import { Timer } from './Timer'; type SuccessProps = { accountAssocation: AccountAssociation | null; + handleClose: () => void; }; -export function Success({ accountAssocation }: SuccessProps) { +export function Success({ accountAssocation, handleClose }: SuccessProps) { if (!accountAssocation) { return null; } @@ -19,10 +19,6 @@ export function Success({ accountAssocation }: SuccessProps) { signature: accountAssocation.signature, }; - const handleClose = useCallback(() => { - window.close(); - }, []); - return (
diff --git a/create-onchain/package.json b/create-onchain/package.json index bad064f95c..de6d84e941 100644 --- a/create-onchain/package.json +++ b/create-onchain/package.json @@ -4,8 +4,8 @@ "version": "0.0.16", "license": "MIT", "scripts": { - "build": "bun run clean && bun run build:esm+types && bun run build:manifest", - "build:manifest": "cd ../account-manifest && bun install && bun run build && cd ../create-onchain && cp -R ../account-manifest/dist/* ./src/manifest", + "build": "bun run clean && bun run build:manifest && bun run build:esm+types", + "build:manifest": "cd ../account-manifest && bun install && bun run build && cd ../create-onchain && rm -rf ./src/manifest/* && cp -R ../account-manifest/dist/* ./src/manifest", "build:esm+types": "tsc --project tsconfig.build.json --outDir ./dist/esm --declaration --declarationMap --declarationDir ./dist/types", "check:types": "tsc --noEmit", "clean": "rm -rf dist tsconfig.tsbuildinfo", diff --git a/create-onchain/src/cli.ts b/create-onchain/src/cli.ts index 6ccac5865d..5943fbdb5d 100644 --- a/create-onchain/src/cli.ts +++ b/create-onchain/src/cli.ts @@ -46,7 +46,7 @@ async function copyDir(src: string, dest: string) { type WebpageData = { header: string, payload: string, signature: string, domain: string }; -async function getWebpageData(browser: 'safari' | 'google chrome' | 'none'): Promise { +async function getWebpageData(): Promise { const app = express(); const server = createServer(app); const wss = new WebSocketServer({ server }); @@ -63,18 +63,10 @@ async function getWebpageData(browser: 'safari' | 'google chrome' | 'none'): Pro server.close(); resolve(parsedData); }); - ws.on('close', () => { - server.close(); - reject(new Error('WebSocket connection closed')); - }); }); server.listen(3333, () => { - open('http://localhost:3333', browser === 'none' ? undefined : { - app: { - name: browser - } - }); + open('http://localhost:3333'); }); }); } @@ -90,35 +82,8 @@ async function createMiniKitAccountAssociation(envPath?: string) { return false; } - let browserResult: prompts.Answers<'browser'>; - try { - browserResult = await prompts( - [ - { - type: 'select', - name: 'browser', - message: pc.reset('If you want to sign your account manifest with your TBA account, please select the OS of your device:'), - choices: [ - { title: 'iOS', value: 'safari' }, - { title: 'Android', value: 'google chrome' }, - { title: 'Not using a passkey account', value: 'none' }, - ], - } - ], - { - onCancel: () => { - throw new Error('Browser selection cancelled.'); - }, - } - ); - } catch (cancelled: any) { - console.log(pc.red(`\n${cancelled.message}`)); - return false; - } - - const { browser } = browserResult; try { - const webpageData = await getWebpageData(browser); + const webpageData = await getWebpageData(); const envContent = `FARCASTER_HEADER=${webpageData.header}\nFARCASTER_PAYLOAD=${webpageData.payload}\nFARCASTER_SIGNATURE=${webpageData.signature}\nNEXT_PUBLIC_URL=${webpageData.domain}`; const updatedEnv = existingEnv .split('\n') @@ -237,10 +202,10 @@ async function createMiniKitTemplate() { `NEXT_PUBLIC_ONCHAINKIT_PROJECT_NAME=${projectName} NEXT_PUBLIC_ONCHAINKIT_API_KEY=${clientKey} NEXT_PUBLIC_URL= -NEXT_PUBLIC_SPLASH_IMAGE_URL=$NEXT_PUBLIC_URL/minikit.png +NEXT_PUBLIC_SPLASH_IMAGE_URL=$NEXT_PUBLIC_URL/snake.png NEXT_PUBLIC_SPLASH_BACKGROUND_COLOR=FFFFFF -NEXT_PUBLIC_IMAGE_URL=$NEXT_PUBLIC_URL/minikit.png -NEXT_PUBLIC_ICON_URL=https://onchainkit.xyz/favicon/48x48.png +NEXT_PUBLIC_IMAGE_URL=$NEXT_PUBLIC_URL/snake.png +NEXT_PUBLIC_ICON_URL=$NEXT_PUBLIC_URL/snake.png NEXT_PUBLIC_VERSION=next REDIS_URL= REDIS_TOKEN=` diff --git a/create-onchain/templates/minikit/app/components/Sammy.tsx b/create-onchain/templates/minikit/app/components/Sammy.tsx index 2ef8d19829..c8788599e1 100644 --- a/create-onchain/templates/minikit/app/components/Sammy.tsx +++ b/create-onchain/templates/minikit/app/components/Sammy.tsx @@ -3,17 +3,18 @@ import React, { useEffect, useRef, useMemo, useState, DependencyList, useCallback } from 'react'; import { useOpenUrl, useNotification } from "@coinbase/onchainkit/minikit"; import { Transaction, TransactionButton, TransactionResponse, TransactionToast, TransactionToastAction, TransactionToastIcon, TransactionToastLabel, TransactionError } from "@coinbase/onchainkit/transaction"; -import { ConnectWallet, ConnectWalletText } from "@coinbase/onchainkit/wallet"; -import { Name, Identity } from "@coinbase/onchainkit/identity"; +import { ConnectWallet, ConnectWalletText, Wallet, WalletDropdown, WalletDropdownDisconnect, WalletDropdownLink } from "@coinbase/onchainkit/wallet"; +import { Name, Identity, EthBalance, Address, Avatar } from "@coinbase/onchainkit/identity"; import { getTopScores, addScore, MAX_SCORES } from "@/lib/scores-client"; import { Score } from "@/lib/scores"; import { useAccount } from "wagmi"; import { encodeAbiParameters } from "viem"; import ArrowSvg from "../svg/ArrowSvg"; -import MiniKitLogo from '../svg/MiniKitLogo'; +import SnakeLogo from '../svg/SnakeLogo'; const FPS = 60; const MS_PER_FRAME = 1000 / FPS; + const NUM_TARGETS_PER_LEVEL = 10; const GameState = { @@ -76,39 +77,111 @@ const LevelMaps: { [key: number]: { x1: number, y1: number, width: number, heigh const NumberOfMaps = Object.keys(LevelMaps).length; -type DPadProps = { + +type ControlButtonProps = { + className?: string; + children?: React.ReactNode; + onClick: () => void; +} + +function ControlButton({ children, onClick, className }:ControlButtonProps) { + const [isPressed, setIsPressed] = useState(false); + + return ( + + ) +} + + +function WalletControl() { + return ( + + + + + + +
+ + + + Wallet + + + + + ) +} + +type ControlButtonsProps = { gameState: number; - onDirectionChange: (direction: number) => void; handleMobileGameState: () => void; +} + +function ControlButtons({ gameState, handleMobileGameState }: ControlButtonsProps) { + const { address } = useAccount(); + + return ( + <> +
+ +
{gameState === GameState.RUNNING ? 'PAUSE' : 'PLAY'}
+
+
+ +
+ {address ? 'LOGOUT' : 'LOGIN'} +
+
+ + ) +} + +type DPadProps = { + onDirectionChange: (direction: number) => void; }; -const DPad = ({ gameState, onDirectionChange, handleMobileGameState }: DPadProps) => { +function DPad({ onDirectionChange }: DPadProps) { return (
-
+
- +
{context && !context.client.added && ( )}
-
- - - - - - - - - -
- - - - Wallet - - - - -
-
+
+ +
+
Connected:
+ {address ? ( + + + + ) :
NOT CONNECTED
} +
); diff --git a/create-onchain/templates/minikit/app/providers.tsx b/create-onchain/templates/minikit/app/providers.tsx index 326103603a..218232312d 100644 --- a/create-onchain/templates/minikit/app/providers.tsx +++ b/create-onchain/templates/minikit/app/providers.tsx @@ -12,6 +12,7 @@ export function Providers(props: { children: ReactNode }) { config={{ appearance: { mode: 'auto', + theme: 'snake', name: process.env.NEXT_PUBLIC_ONCHAINKIT_PROJECT_NAME, logo: process.env.NEXT_PUBLIC_ICON_URL, }, diff --git a/create-onchain/templates/minikit/app/svg/MiniKitLogo.tsx b/create-onchain/templates/minikit/app/svg/MiniKitLogo.tsx deleted file mode 100644 index 855e54cc9a..0000000000 --- a/create-onchain/templates/minikit/app/svg/MiniKitLogo.tsx +++ /dev/null @@ -1,103 +0,0 @@ -import React from 'react'; - -const MiniKitLogo = ({ width = 200, height = 60 }: { width?: number | string, height?: number | string }) => { - return ( - - - - - - - - - - - - - - - - - - - - {/* background grid */} - - - - - - {/* shadow text */} - - MINIKIT - - - {/* main text */} - - - MINIKIT - - - {/* sunburst lines */} - - {[...Array(12)].map((_, i) => ( - - ))} - - - ); -}; - -export default MiniKitLogo; \ No newline at end of file diff --git a/create-onchain/templates/minikit/app/svg/SnakeLogo.tsx b/create-onchain/templates/minikit/app/svg/SnakeLogo.tsx new file mode 100644 index 0000000000..7b69172a02 --- /dev/null +++ b/create-onchain/templates/minikit/app/svg/SnakeLogo.tsx @@ -0,0 +1,119 @@ +import React from 'react'; + +const SnakeLogo = ({ width = 164, height = 34 }: { width?: number | string, height?: number | string }) => { + // [x, y, width, height] + // each letter is 28px wide and 34px high with 6px padding between letters + const segments = [ + [ + // Top Row + [4, 0, 18, 4], // S + [34, 0, 10, 4], // N + [52, 0, 10, 4], // N + [77, 0, 10, 4], // A + [102, 0, 10, 4], // K + [120, 0, 10, 4], // K + [136, 0, 28, 4], // E + ], + + [ + // Second Row + [0, 5, 10, 4], // S + [16, 5, 10, 4], // S + [34, 5, 14, 4], // N + [52, 5, 10, 4], // N + [72, 5, 20, 4], // A + [102, 5, 10, 4], // K + [116, 5, 10, 4], // K + [136, 5, 10, 4], // E + ], + + [ + // Third Row + [0, 10, 8, 4], // S + [34, 10, 28, 4], // N + [68, 10, 10, 4], // A + [86, 10, 10, 4], // A + [102, 10, 20, 4], // N + [136, 10, 10, 4], // E + ], + + [ + // Fourth Row + [4, 15, 20, 4], // S + [34, 15, 10, 4], // N + [48, 15, 14, 4], // N + [68, 15, 28, 4], // A + [102, 15, 16, 4], // K + [136, 15, 20, 4], // E + ], + + [ + // Fifth Row + [20, 20, 8, 4], // S + [34, 20, 10, 4], // N + [52, 20, 10, 4], // N + [68, 20, 10, 4], // A + [86, 20, 10, 4], // A + [102, 20, 20, 4], // K + [136, 20, 10, 4], // E + ], + + [ + // Sixth Row + [0, 25, 8, 4], // S + [20, 25, 8, 4], // S + [34, 25, 10, 4], // N + [52, 25, 10, 4], // N + [68, 25, 10, 4], // A + [86, 25, 10, 4], // A + [102, 25, 10, 4], // K + [116, 25, 10, 4], // K + [136, 25, 10, 4], // E + ], + + [ + // Seventh Row + [4, 30, 20, 4], // S + [34, 30, 10, 4], // N + [52, 30, 10, 4], // N + [68, 30, 10, 4], // A + [86, 30, 10, 4], // A + [102, 30, 10, 4], // K + [120, 30, 10, 4], // K + [136, 30, 28, 4], // E + ], + ]; + + return ( + + {segments.map((row, i) => { + return ( + + {row.map(([ x, y, width, height ], j) => ( + + ))} + + + ); + })} + + ); +}; + +export default SnakeLogo; diff --git a/create-onchain/templates/minikit/app/theme.css b/create-onchain/templates/minikit/app/theme.css new file mode 100644 index 0000000000..f31b7b8517 --- /dev/null +++ b/create-onchain/templates/minikit/app/theme.css @@ -0,0 +1,55 @@ +@import url('https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400..700&display=swap'); + +:root { + --snake-background: #E5E5E5; +} + +.snake-light, +.snake-dark { + --ock-font-family: 'Pixelify Sans', sans-serif; + --ock-border-radius: 0.375rem; + --ock-border-radius-inner: 0.125rem; + --ock-text-inverse: theme(colors.zinc.50); + --ock-text-foreground: theme(colors.zinc.950); + --ock-text-foreground-muted: theme(colors.zinc.600); + --ock-text-error: theme(colors.rose.600); + --ock-text-primary: theme(colors.zinc.950); + --ock-text-success: theme(colors.lime.600); + --ock-text-warning: theme(colors.orange.600); + --ock-text-disabled: theme(colors.zinc.400); + + --ock-bg-default: theme(colors.zinc.50); + --ock-bg-default-hover: theme(colors.zinc.200); + --ock-bg-default-active: theme(colors.zinc.300); + --ock-bg-alternate: theme(colors.zinc.200); + --ock-bg-alternate-hover: theme(colors.zinc.300); + --ock-bg-alternate-active: theme(colors.zinc.400); + --ock-bg-inverse: theme(colors.zinc.100); + --ock-bg-inverse-hover: theme(colors.zinc.200); + --ock-bg-inverse-active: theme(colors.zinc.300); + --ock-bg-primary: theme(colors.zinc.950); + --ock-bg-primary-hover: theme(colors.zinc.800); + --ock-bg-primary-active: theme(colors.zinc.700); + --ock-bg-primary-washed: theme(colors.zinc.100); + --ock-bg-primary-disabled: theme(colors.zinc.300); + --ock-bg-secondary: theme(colors.neutral.200); + --ock-bg-secondary-hover: theme(colors.neutral.300); + --ock-bg-secondary-active: theme(colors.neutral.400); + --ock-bg-error: theme(colors.rose.600); + --ock-bg-warning: theme(colors.orange.600); + --ock-bg-success: theme(colors.lime.600); + --ock-bg-default-reverse: theme(colors.neutral.50); + + --ock-icon-color-primary: theme(colors.zinc.950); + --ock-icon-color-foreground: theme(colors.zinc.950); + --ock-icon-color-foreground-muted: theme(colors.zinc.600); + --ock-icon-color-inverse: theme(colors.zinc.50); + --ock-icon-color-error: theme(colors.rose.600); + --ock-icon-color-success: theme(colors.lime.600); + --ock-icon-color-warning: theme(colors.orange.600); + + --ock-line-primary: theme(colors.zinc.950); + --ock-line-default: theme(colors.zinc.300); + --ock-line-heavy: theme(colors.zinc.500); + --ock-line-inverse: theme(colors.zinc.700); +} diff --git a/create-onchain/templates/minikit/public/minikit.png b/create-onchain/templates/minikit/public/minikit.png deleted file mode 100644 index dabd953697beeefb1ec1e792257f5cd4bcd960dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65686 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 O0000ET&HDXc8 z<3!1vXC;X|Q#VpJPtoMuuXp#u{qXs`U!Tt(@cD4uTpg9+T5te>GSP|PvBr?UrTD{| zHxAG32S9#-NZ9Kc37O7m3*NGCbK}rEbTSM>`bmE@X^{~7BQHQ;AcuB67v^}| zV}QAyjn7syPB_~impgJv&gBoweIz_wrLs4DT=CG+i~SbZR#QsLv1`+m=;@sDD2GQi zyRmxLZrvJ^v^NYYCT28GNS%epd>FVRDR!;vQlp3#h|)cU^icc;udSTK6loo*udOC+ zfI%tm%O{Sd(fVz;q8CN}f6(BuR@>B1GYaJxcL*`99BdAd?B$)$#={(=n!} z7?!<708{B|Z17|V4-&K>lYE3!b~}})C&10=c3n(FB9iU}c(Qz6OGZYths&70d)rm{ zV`DEWOL#m*!g&02>5d_FPO@V6t*8Xt6f0hS={lb*zfB9w%O{z%Dr}nxEQT$8EQ-1K z9l0DcY3j3G^Ld}Pn}(&JmM=kdO4{jj2IgV-rqkc0u4#*lr*Ar6U1@W|-ZfF^?j{R& zap^hB+){tc^A1SCQ}d}+ezA+?6u3UU=G0s7rtpo*ImIe~`athf7-&)!rnA5C`&VWuvpMyL{8P!Dl`yU?al9w0s)sl)EQ-bAe;NO?s9K zQvY7(#UUFp1F*!)wljYMOiBFz2%H_`d4*j`LBiZ=?t<&&`xr z?-SzZpwy-fL1ZxQV0u>r*k1~1f$IP4Yaj%hcd>ocLFGmzv4153!Bmd*pHGgR6P~EJ zzh7zQQxUJ-g`;*sM1{NbcDkQeVC6AzBNDLlguUZ{4!GJUVT)jOY-Jt#d4Qpb5W1=W zVHMFm02$`%9EhxupyPx$ng^KQEd1#6F#5CfEwN8OKO-}kRjZAccw_Eywx+c*tXX4nRL{eBSHgK?)~;%;D-SufcD_IR9qwVvg2Dg-BozuNt~1&n$_Q(IMZ zqc-mx5)oE;G>z719X*jwv}NYMe-nPhxc2KRg`&M8sa}5T9`mZF{lSy6*&_$)XFs2; zI$!<%vF;)~!!8pchX;P2LHJU_zxV;XTdByOVN#|`WN%(GgotoWwd$OV7O=JbYy(nD zWTrF)&5d^(b%NGmg2>()z>KZtn2Jg$4AsgN*r)_BuBP4by@od8jIq$<(7Q7il3pv) zr$h0Ip~ET2XT7L(q*2W9#%b%!`x^aUwXdAavZ3$J{Pc88J;}>>f)eewmxxqg=VAp@ zhgSUA5jDw1$!;QD1zeT)TUrb&-mcWnBd8ChN~*%@Tg9G&;3-kkf^vt+N1l49cb`~A z&aO5-N=Pe)udKsv#0=_7O-}B3bcYw4B=89gthE5NN^4UcaWS})Gh>lOom`JB+(d{r z;V#VDS*vmgwJWA1hc9)j*EKHPr#~T3^_>rA$Bb?YJ%PZaet6uQoh?l?j6A|Mhh|Mo z2B5`7>(unD(#IkrRg8?h$~vMB#}1y0fNESBL{QyIj}G1{cq`(0dDfbtg#`;E(#gZ- zyX&KHi(go(&drJNR9MID0p}0C)k|x$*|7@QSVwDQpHIwRI|4x5=SmRRQGfjlS2XYl literal 0 HcmV?d00001 diff --git a/create-onchain/templates/minikit/tailwind.config.ts b/create-onchain/templates/minikit/tailwind.config.ts index 91a0333d3b..cdc7001b96 100644 --- a/create-onchain/templates/minikit/tailwind.config.ts +++ b/create-onchain/templates/minikit/tailwind.config.ts @@ -9,12 +9,43 @@ const config: Config = { theme: { extend: { fontFamily: { - sans: ['DM Sans', 'sans-serif'], + sans: ['Pixelify Sans', 'sans-serif'], }, colors: { background: "var(--background)", foreground: "var(--foreground)", }, + backgroundImage: { + 'dpad-gradient': 'linear-gradient(180deg, #1D1B1C 0%, #191718 81.19%, #252120 96.35%)', + }, + boxShadow: { + 'dpad': ` + inset 0px 0px 0.25px 1.25px #262524, + inset 3px 5px 2px -4.75px #FFFFFF, + inset 1.25px 1.5px 0px rgba(0, 0, 0, 0.75), + inset 0px 4.75px 0.25px -2.5px #FBFBFB, + inset 1px 1px 3px 3px #1A1818, + inset 0px -3px 1px rgba(0, 0, 0, 0.5), + inset 2.5px -2px 3px rgba(124, 108, 94, 0.75), + inset 0px -3px 3px 1px rgba(255, 245, 221, 0.1) + `, + 'dpad-hover': ` + inset 0px 0px 0.25px 1.25px #262524, + inset 3px 5px 2px -4.75px #FFFFFF, + inset 1.25px 1.5px 0px rgba(0, 0, 0, 0.75), + inset 0px 4.75px 0.25px -2.5px #FBFBFB, + inset 1px 1px 3px 3px #1A1818, + inset 0px -3px 1px rgba(0, 0, 0, 0.5), + inset 2.5px -2px 3px rgba(124, 108, 94, 0.75), + inset 0px -3px 3px 1px rgba(255, 245, 221, 0.4), + 0px 0px 10px 1px rgba(255, 255, 255, 0.4) + `, + 'dpad-pressed': ` + inset 0px 0px 0.25px 1.25px #262524, + inset 1px 1px 3px 3px #1A1818, + inset 0px -1px 1px rgba(0, 0, 0, 0.5) + ` + } }, }, plugins: [],