diff --git a/README.md b/README.md index 89819e92..75b495ae 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,40 @@ +## Dev Workflow + +1. Link the `package/walletkit` using `yarn link` +2. In `package/walletkit` run `yarn build` (This will watch the ts files for changes and will also build it) +3. In `package/example` link this walletkit instead of installing it by `npm link @gokiprotocol/walletkit` +4. `yarn run` to get the example started running! +5. DEV + +--- + +## Demo + +![walletkit-multilang](https://user-images.githubusercontent.com/22261173/137582726-9e0478dd-3168-4006-b77b-bef67843a5a4.gif) + + +--- + +## TODO + +1. Get a better fallback UI for suspense +2. Anything more? + +--- + +## To Use + +Get the package from the `release` branch. [Here](https://github.com/Aadhinana/walletkit/tree/release) + +--- + +## Source + # walletkit ЁЯФС [![NPM](https://img.shields.io/npm/v/@gokiprotocol/walletkit)](https://www.npmjs.com/package/@gokiprotocol/walletkit) [![License](https://img.shields.io/npm/l/@gokiprotocol/walletkit)](/LICENSE) -![Banner](/images/banner.png) - WalletKit is a React library that allows a Solana dApp to display a modal for connecting wallets. It is intended to be used with [use-solana](https://github.com/saber-hq/saber-common/tree/master/packages/use-solana). @@ -14,7 +44,3 @@ It is intended to be used with [use-solana](https://github.com/saber-hq/saber-co ```bash yarn add @gokiprotocol/walletkit ``` - -## Usage - -Check out the [example app](/packages/example) to understand how to use this library. diff --git a/packages/example/public/locales/hn/translation.json b/packages/example/public/locales/hn/translation.json new file mode 100644 index 00000000..58ef1fa8 --- /dev/null +++ b/packages/example/public/locales/hn/translation.json @@ -0,0 +1,46 @@ +{ + "connect_wallet": "рд╡реЙрд▓реЗрдЯ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ", + "modal": { + "walletStepIntro": { + "instruction": "{{appName}} рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╕реЛрд▓рд╛рдирд╛ рд╡реЙрд▓реЗрдЯ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред", + "detailsOne": { + "title": "рдЖрдк рдЕрдкрдиреЗ рдХреНрд░рд┐рдкреНрдЯреЛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ", + "description": "рдЧреИрд░-рдХрд╕реНрдЯреЛрдбрд┐рдпрд▓ рд╡реЙрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреЗ рдХреНрд░рд┐рдкреНрдЯреЛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред" + }, + "detailsTwo": { + "title": "рдЬрд▓реНрджреА рдФрд░ рд╕рд╕реНрддреЗ рдореЗрдВ рд▓реЗрди-рджреЗрди рдХрд░реЗрдВ", + "description": "рд╕реЛрд▓рд╛рдирд╛ рдХреА рдорд╛рдкрдиреАрдпрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рд▓реЗрдирджреЗрди $0.01 рд╕реЗ рдХрдо рдФрд░ рдмрд┐рдЬрд▓реА рдХреА рддреЗрдЬ рдЧрддрд┐ рд╕реЗ рдмрдиреЗ рд░рд╣реЗрдВред" + } + }, + "walletStepSelect": { + "heading": "рдЕрдкрдирд╛ рд╡реЙрд▓реЗрдЯ рдЪреБрдиреЗрдВ", + "showUninstalledWallet": "рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд╡реЙрд▓реЗрдЯ рджрд┐рдЦрд╛рдПрдВ", + "hideUninstalledWallet": "рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд╡реЙрд▓реЗрдЯ рдЫрд┐рдкрд╛рдПрдВ" + }, + "walletStepConnecting": { + "connecting": { + "header": "рдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИ...", + "instructions": "рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ {{walletName}} рд╡реЙрд▓реЗрдЯ рдЕрдирд▓реЙрдХ рдХрд░реЗрдВред" + }, + "footer": { + "title": "рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИ?" + } + }, + "walletStepRedirect": { + "title": "рдЖрдкрдХреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ", + "ix1": "{{infoName}} рд╡реЙрд▓реЗрдЯ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдЖрдкрдХреЛ {{infoName}} рд╡реЙрд▓реЗрдЯ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реИ", + "ix2": "рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗ! рдзреНрдпрд╛рди рд░рдЦреЗ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ ({{providerURL}}) рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ" + } + }, + "buttons": { + "continue": "рдЖрдЧреЗ рдмреЬреЗ", + "goBack": "рд╡рд╛рдкрд╕ рдЬрд╛рдУ", + "refresh": "рддрд╛рдЬрд╝рд╛ рдХрд░рдирд╛" + }, + "footer": { + "title": "рдкрд╣рд▓реА рдмрд╛рд░ рд╕реЛрд▓рд╛рдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?", + "button": "рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВ", + "finishedInstalling": "рд╣реЛ рдЧрдпрд╛ рдЗрдВрд╕реНрдЯреЙрд▓?" + }, + "changeLanguage": "рднрд╛рд╖рд╛ рдмрджрд▓реЗрдВ" +} \ No newline at end of file diff --git a/packages/example/src/App.tsx b/packages/example/src/App.tsx index a31251c9..c550d7e1 100644 --- a/packages/example/src/App.tsx +++ b/packages/example/src/App.tsx @@ -21,6 +21,9 @@ const App: React.FC = () => { app={{ name: "My App", }} + locales={{ + hn: { nativeName: "Hindi" }, + }} > diff --git a/packages/walletkit/package.json b/packages/walletkit/package.json index dbdceffc..046bdeca 100644 --- a/packages/walletkit/package.json +++ b/packages/walletkit/package.json @@ -13,7 +13,8 @@ ], "repository": "git@github.com:GokiProtocol/walletkit.git", "scripts": { - "build": "rm -fr dist/ && tsc && tsc -P tsconfig.esm.json" + "build": "rm -fr dist/ && tsc && tsc -P tsconfig.esm.json", + "build:dev": "tsc -w" }, "bugs": { "url": "https://github.com/GokiProtocol/walletkit/issues" @@ -29,11 +30,18 @@ "react-dom": "^17.0.2" }, "dependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", "@reach/dialog": "^0.16.2", "@react-spring/web": "^9.3.0", "@types/react": "^17.0.31", + "i18next": "^21.3.1", + "i18next-browser-languagedetector": "^6.1.2", + "i18next-http-backend": "^1.3.1", "polished": "^4.1.3", "react-device-detect": "^2.1.1", + "react-i18next": "^11.12.0", + "react-spring": "^9.2.6", "react-use-gesture": "^9.1.3", "tslib": "^2.3.1", "unstated-next": "^1.1.0" diff --git a/packages/walletkit/src/WalletKitProvider.tsx b/packages/walletkit/src/WalletKitProvider.tsx index e62559eb..6c3ceb01 100644 --- a/packages/walletkit/src/WalletKitProvider.tsx +++ b/packages/walletkit/src/WalletKitProvider.tsx @@ -1,12 +1,21 @@ import type { UseSolanaArgs } from "@saberhq/use-solana"; import { SolanaProvider } from "@saberhq/use-solana"; -import React, { useContext, useMemo, useState } from "react"; +import i18next from "i18next"; +import React, { + Suspense, + useContext, + useEffect, + useMemo, + useState, +} from "react"; +import { I18nextProvider } from "react-i18next"; import { ModalStep, WalletSelectorModal, } from "./components/WalletSelectorModal"; -import type { WalletKitArgs } from "./types"; +import { initI18n } from "./i18n"; +import type { Locales, WalletKitArgs } from "./types"; export { useConnectedWallet, useSolana, useWallet } from "@saberhq/use-solana"; @@ -16,13 +25,19 @@ export interface WalletKit { const WalletKitContext = React.createContext(null); -interface Props extends WalletKitArgs, UseSolanaArgs { +interface Props extends Omit, UseSolanaArgs { + additionalLocales?: Locales; children: React.ReactNode; } +export const DEFAULT_LOCALES = { + en: { nativeName: "English" }, +}; + export const WalletKitProvider: React.FC = ({ children, app, + additionalLocales, initialStep = ModalStep.Intro, ...solanaProviderArgs }: Props) => { @@ -32,18 +47,32 @@ export const WalletKitProvider: React.FC = ({ return { connect: () => setShowWalletSelector(true) }; }, []); + const locales = { + ...DEFAULT_LOCALES, + ...additionalLocales, + }; + + useEffect(() => { + void initI18n(); + }); + return ( - - - setShowWalletSelector(false)} - /> - {children} - - + + + + + setShowWalletSelector(false)} + locales={locales} + /> + {children} + + + + ); }; diff --git a/packages/walletkit/src/components/ConnectWalletButton/index.tsx b/packages/walletkit/src/components/ConnectWalletButton/index.tsx index 718612c3..f23f600d 100644 --- a/packages/walletkit/src/components/ConnectWalletButton/index.tsx +++ b/packages/walletkit/src/components/ConnectWalletButton/index.tsx @@ -1,6 +1,7 @@ import { css } from "@emotion/react"; import styled from "@emotion/styled"; import lighten from "polished/lib/color/lighten"; +import { useTranslation } from "react-i18next"; import { useWalletKit } from "../../WalletKitProvider"; @@ -56,6 +57,7 @@ export const ConnectWalletButton: React.FC = ({ ...buttonProps }: Props) => { const { connect } = useWalletKit(); + const { t } = useTranslation(); return ( ); }; diff --git a/packages/walletkit/src/components/WalletSelectorModal/LanguageToggle.tsx b/packages/walletkit/src/components/WalletSelectorModal/LanguageToggle.tsx new file mode 100644 index 00000000..890012fc --- /dev/null +++ b/packages/walletkit/src/components/WalletSelectorModal/LanguageToggle.tsx @@ -0,0 +1,61 @@ +import styled from "@emotion/styled"; +import type { ChangeEventHandler } from "react"; +import React, { useState } from "react"; +import { useTranslation } from "react-i18next"; + +import type { LocaleInfo, Locales } from "../../types"; + +interface Props + extends React.DetailedHTMLProps< + React.ButtonHTMLAttributes, + HTMLButtonElement + > { + locales: Locales; +} + +export const LanguageToggle = ({ + locales, +}: Props): React.ReactElement => { + const { t, i18n } = useTranslation(); + + const [lang, setLang] = useState(i18n.language); + + const handleSelectLanguage: ChangeEventHandler = ( + e: React.ChangeEvent + ) => { + setLang(e.target.value); + i18n.changeLanguage(e.target.value).catch((e) => console.log(e)); + }; + + return ( + + + + + ); +}; + +export const BottomArea = styled.div` + font-size: 14px; + line-height: 15px; + color: #696969; + margin: 0 10px; + + display: flex; + justify-content: space-around; +`; diff --git a/packages/walletkit/src/components/WalletSelectorModal/WalletStepConnecting/index.tsx b/packages/walletkit/src/components/WalletSelectorModal/WalletStepConnecting/index.tsx index dc02be94..cf81acfb 100644 --- a/packages/walletkit/src/components/WalletSelectorModal/WalletStepConnecting/index.tsx +++ b/packages/walletkit/src/components/WalletSelectorModal/WalletStepConnecting/index.tsx @@ -3,6 +3,7 @@ import styled from "@emotion/styled"; import { useSolana, WalletType } from "@saberhq/use-solana"; import { useCallback, useEffect, useState } from "react"; import { isMobile } from "react-device-detect"; +import { useTranslation } from "react-i18next"; import { BottomArea, FooterText } from "../ButtonWithFooter"; import type { ProviderInfo } from "../WalletStepSelect"; @@ -30,6 +31,7 @@ export const WalletStepConnecting: React.FC = ({ ); const { activate, connected, wallet } = useSolana(); const [error, setError] = useState(null); + const { t } = useTranslation(); const isManualConnect = isMobile && @@ -70,7 +72,12 @@ export const WalletStepConnecting: React.FC = ({ {error ? ( - Error connecting wallet + + {t( + "modal.walletStepConnecting.error.header", + "Error Connecting Wallet" + )} + {error} = ({ void doActivate(); }} > - Retry + {t("buttons.retry", "Retry")} ) : ( - Connecting... + + {t( + "modal.walletStepConnecting.connecting.header", + "Connecting..." + )} + {isManualConnect ? ( Please{" "} @@ -113,7 +125,11 @@ export const WalletStepConnecting: React.FC = ({ ) : ( - Please unlock your {walletProviderInfo.name} wallet. + {t( + "modal.walletStepConnecting.connecting.instructions", + "Please unlock your {{ walletName }} wallet", + { walletName: walletProviderInfo.name } + )} )} @@ -127,7 +143,7 @@ export const WalletStepConnecting: React.FC = ({ - Having trouble?{" "} + {t("modal.walletStepConnecting.footer.title", "Having trouble?")}{" "} { @@ -136,7 +152,7 @@ export const WalletStepConnecting: React.FC = ({ onBack?.(); }} > - Go back + {t("buttons.goBack", "Go Back")} diff --git a/packages/walletkit/src/components/WalletSelectorModal/WalletStepIntro/Detail.tsx b/packages/walletkit/src/components/WalletSelectorModal/WalletStepIntro/Detail.tsx index de829041..d29c1754 100644 --- a/packages/walletkit/src/components/WalletSelectorModal/WalletStepIntro/Detail.tsx +++ b/packages/walletkit/src/components/WalletSelectorModal/WalletStepIntro/Detail.tsx @@ -2,8 +2,8 @@ import styled from "@emotion/styled"; interface Props { icon: React.ReactNode; - title: string; - description: string; + title: React.ReactNode | string; + description: React.ReactNode | string; } export const Detail: React.FC = ({ diff --git a/packages/walletkit/src/components/WalletSelectorModal/WalletStepIntro/index.tsx b/packages/walletkit/src/components/WalletSelectorModal/WalletStepIntro/index.tsx index adb3ec55..18764d3d 100644 --- a/packages/walletkit/src/components/WalletSelectorModal/WalletStepIntro/index.tsx +++ b/packages/walletkit/src/components/WalletSelectorModal/WalletStepIntro/index.tsx @@ -1,20 +1,26 @@ import styled from "@emotion/styled"; +import { useTranslation } from "react-i18next"; +import type { Locales } from "../../../types"; import { ButtonWithFooter } from "../ButtonWithFooter"; +import { LanguageToggle } from "../LanguageToggle"; import { Detail } from "./Detail"; import { BoltIcon, ConnectDots, LockIcon, SolanaIcon } from "./icons"; -interface Props { +interface Props { appName: string; appIcon?: React.ReactNode; + locales: Locales; onContinue?: () => void; } -export const WalletStepIntro: React.FC = ({ +export const WalletStepIntro = ({ appName, appIcon, + locales, onContinue, -}: Props) => { +}: Props): React.ReactElement => { + const { t } = useTranslation(); return ( @@ -25,36 +31,54 @@ export const WalletStepIntro: React.FC = ({ - To use {appName}, you need to connect a Solana wallet. + {t( + "modal.walletStepIntro.instruction", + `To use {{appName}}, you need to connect to a Solana wallet`, + { appName: appName } + )} + } - title="You control your crypto" - description="Using a non-custodial wallet enables you to control your crypto without having to trust third parties." + title={t( + "modal.walletStepIntro.detailsOne.title", + "You control your crypto" + )} + description={t( + "modal.walletStepIntro.detailsOne.description", + "Using a non-custodial wallet enables you to control your crypto without having to trust third parties." + )} /> } - title="Transact quickly and cheaply" - description="Solana's scalability ensures transactions remain less than $0.01 and at lightning fast speeds." + title={t( + "modal.walletStepIntro.detailsTwo.title", + "Transact quickly and cheaply" + )} + description={t( + "modal.walletStepIntro.detailsTwo.description", + "Solana's scalability ensures transactions remain less than $0.01 and at lightning fast speeds." + )} /> - First time using Solana?{" "} + {t("footer.title", "First time using Solana? ")} + {" "} - Learn more + {t("footer.button", "Learn more")} } > - Continue + {t("buttons.continue", "Continue")} ); @@ -84,7 +108,7 @@ const Instruction = styled.h2` `; const DetailsWrapper = styled.div` - margin-top: 92px; + margin: 46px 0px; display: grid; grid-row-gap: 28px; `; diff --git a/packages/walletkit/src/components/WalletSelectorModal/WalletStepRedirect/index.tsx b/packages/walletkit/src/components/WalletSelectorModal/WalletStepRedirect/index.tsx index f168abf7..069929c7 100644 --- a/packages/walletkit/src/components/WalletSelectorModal/WalletStepRedirect/index.tsx +++ b/packages/walletkit/src/components/WalletSelectorModal/WalletStepRedirect/index.tsx @@ -1,6 +1,7 @@ import styled from "@emotion/styled"; import type { WalletProviderInfo } from "@saberhq/use-solana"; import { useEffect, useMemo } from "react"; +import { Trans, useTranslation } from "react-i18next"; import { ButtonWithFooter } from "../ButtonWithFooter"; @@ -16,6 +17,7 @@ export const WalletStepRedirect: React.FC = ({ info }: Props) => { return info.url; } }, [info.url]); + const { t } = useTranslation(); const icon = typeof info.icon === "string" ? : ; @@ -31,14 +33,19 @@ export const WalletStepRedirect: React.FC = ({ info }: Props) => { return ( {icon} -

You're being redirected

+

{t("modal.walletStepRedirect.title", "You're being redirected!")}

- In order to use {info.name}, you must first install their browser - extension. + {t( + "modal.walletStepRedirect.ix1", + "In order to use {{ infoName }}, you must first install their browser extension.", + { infoName: info.name } + )}

- Make sure you only install their wallet from the official{" "} - {providerURL} website. + + Make sure you only install their wallet from the official{" "} + {{ providerURL }} website. +

{ @@ -46,7 +53,7 @@ export const WalletStepRedirect: React.FC = ({ info }: Props) => { }} footer={ <> - Finished installing?{" "} + {t("footer.finishedInstalling", "Finished Installing?")}{" "} { @@ -55,12 +62,12 @@ export const WalletStepRedirect: React.FC = ({ info }: Props) => { window.location.reload(); }} > - Refresh + {t("buttons.refresh", "Refresh")} } > - Continue + {t("buttons.continue", "Continue")}
); diff --git a/packages/walletkit/src/components/WalletSelectorModal/WalletStepSelect/index.tsx b/packages/walletkit/src/components/WalletSelectorModal/WalletStepSelect/index.tsx index 4697ea1b..c499cec0 100644 --- a/packages/walletkit/src/components/WalletSelectorModal/WalletStepSelect/index.tsx +++ b/packages/walletkit/src/components/WalletSelectorModal/WalletStepSelect/index.tsx @@ -3,6 +3,7 @@ import type { WalletProviderInfo } from "@saberhq/use-solana"; import { WALLET_PROVIDERS, WalletType } from "@saberhq/use-solana"; import React, { useEffect, useState } from "react"; import { isMobile } from "react-device-detect"; +import { useTranslation } from "react-i18next"; import { WalletProviderOption } from "./WalletProviderOption"; @@ -76,6 +77,7 @@ export const WalletStepSelect: React.FC = ({ const [providerInfo, setProviderInfo] = useState( getWalletProviders() ); + const { t } = useTranslation(); useEffect(() => { // wait a second for everything to load @@ -87,7 +89,9 @@ export const WalletStepSelect: React.FC = ({ return ( <> - Select your wallet + + {t("modal.walletStepSelect.heading", "Select your wallet")} + {providerInfo @@ -112,7 +116,15 @@ export const WalletStepSelect: React.FC = ({ setShowUninstalled(!showUninstalled)}> - {showUninstalled ? "Hide" : "Show"} uninstalled wallets + {showUninstalled + ? t( + "modal.walletStepSelect.hideUninstalledWallet", + "Hide uninstalled wallets" + ) + : t( + "modal.walletStepSelect.showUninstalledWallet", + "Show uninstalled wallets" + )} diff --git a/packages/walletkit/src/components/WalletSelectorModal/index.tsx b/packages/walletkit/src/components/WalletSelectorModal/index.tsx index 037ef8af..e281eccf 100644 --- a/packages/walletkit/src/components/WalletSelectorModal/index.tsx +++ b/packages/walletkit/src/components/WalletSelectorModal/index.tsx @@ -32,6 +32,7 @@ export const WalletSelectorModal: React.FC = ({ app, onWalletKitError = defaultOnWalletKitError, initialStep = ModalStep.Intro, + locales, ...modalProps }: Props) => { const appIcon = useMemo(() => app.icon ?? , [app.icon]); @@ -87,6 +88,7 @@ export const WalletSelectorModal: React.FC = ({ setStep(ModalStep.Select)} /> )} diff --git a/packages/walletkit/src/i18n.ts b/packages/walletkit/src/i18n.ts new file mode 100644 index 00000000..b77367cb --- /dev/null +++ b/packages/walletkit/src/i18n.ts @@ -0,0 +1,30 @@ +import type { TFunction } from "i18next"; +import i18n from "i18next"; +import LanguageDetector from "i18next-browser-languagedetector"; +import HttpApi from "i18next-http-backend"; +import { initReactI18next } from "react-i18next"; + +/** + * Initializes the i18n. + */ +export const initI18n = async (): Promise => + i18n + // detect user language + // learn more: https://github.com/i18next/i18next-browser-languageDetector + .use(LanguageDetector) + // pass the i18n instance to react-i18next. + .use(initReactI18next) + // init i18next + // for all options read: https://www.i18next.com/overview/configuration-options + .use( + new HttpApi({ + loadPath: "/locales/{{lng}}/translation.json", + }) + ) + .init({ + fallbackLng: "en", + debug: true, + interpolation: { + escapeValue: false, // not needed for react as it escapes by default + }, + }); diff --git a/packages/walletkit/src/types.ts b/packages/walletkit/src/types.ts index ff6e70c2..aafbcd56 100644 --- a/packages/walletkit/src/types.ts +++ b/packages/walletkit/src/types.ts @@ -2,6 +2,14 @@ import type React from "react"; import type { ModalStep } from "./components/WalletSelectorModal"; +export interface LocaleInfo { + nativeName: string; +} + +export type Locales = { + [K in L]: LocaleInfo; +}; + export interface WalletKitArgs { /** * Information about the current application. @@ -26,4 +34,8 @@ export interface WalletKitArgs { * Called when an error occurs. */ onWalletKitError?: (err: Error) => void; + /** + * Supported locales for WalletKit. + */ + locales: Locales<"en">; } diff --git a/yarn.lock b/yarn.lock index dc2d3993..677c5056 100644 --- a/yarn.lock +++ b/yarn.lock @@ -72,30 +72,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.15.0, @babel/core@npm:^7.1.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.7.5, @babel/core@npm:^7.8.4": - version: 7.15.0 - resolution: "@babel/core@npm:7.15.0" - dependencies: - "@babel/code-frame": ^7.14.5 - "@babel/generator": ^7.15.0 - "@babel/helper-compilation-targets": ^7.15.0 - "@babel/helper-module-transforms": ^7.15.0 - "@babel/helpers": ^7.14.8 - "@babel/parser": ^7.15.0 - "@babel/template": ^7.14.5 - "@babel/traverse": ^7.15.0 - "@babel/types": ^7.15.0 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.1.2 - semver: ^6.3.0 - source-map: ^0.5.0 - checksum: 6f7ac97d2d2eebe62a431ce55b37753aa443b762da0524640caa2f7d4417750f8e21f3eb30d62f25e479f93dac505c868d24011b124cfa6905abebb23b44715c - languageName: node - linkType: hard - -"@babel/core@npm:7.15.8, @babel/core@npm:^7.15.8": +"@babel/core@npm:7.15.8, @babel/core@npm:^7.1.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.15.8, @babel/core@npm:^7.7.5, @babel/core@npm:^7.8.4": version: 7.15.8 resolution: "@babel/core@npm:7.15.8" dependencies: @@ -118,34 +95,34 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.12.1, @babel/generator@npm:^7.15.0": - version: 7.15.0 - resolution: "@babel/generator@npm:7.15.0" +"@babel/generator@npm:^7.12.1, @babel/generator@npm:^7.15.4, @babel/generator@npm:^7.15.8": + version: 7.15.8 + resolution: "@babel/generator@npm:7.15.8" dependencies: - "@babel/types": ^7.15.0 + "@babel/types": ^7.15.6 jsesc: ^2.5.1 source-map: ^0.5.0 - checksum: ef227c4c39ab810616b1d76cf9fa7b452b3a36ae1f26d52c2a7c68edcba29d6dd3cd3e88c58f6e3969a58dadee7b73016d3cabbd6f0040ff832f686db4679628 + checksum: 3afc4d50280352125b6f1bca01fd1e4b272e1cf26248879fb38b74f8c67d7f9304c650e182623f9e7855d8154c6f05f66df81817a71de66e7dfe6670785eb344 languageName: node linkType: hard -"@babel/generator@npm:^7.15.4, @babel/generator@npm:^7.15.8": - version: 7.15.8 - resolution: "@babel/generator@npm:7.15.8" +"@babel/generator@npm:^7.15.0": + version: 7.15.0 + resolution: "@babel/generator@npm:7.15.0" dependencies: - "@babel/types": ^7.15.6 + "@babel/types": ^7.15.0 jsesc: ^2.5.1 source-map: ^0.5.0 - checksum: 3afc4d50280352125b6f1bca01fd1e4b272e1cf26248879fb38b74f8c67d7f9304c650e182623f9e7855d8154c6f05f66df81817a71de66e7dfe6670785eb344 + checksum: ef227c4c39ab810616b1d76cf9fa7b452b3a36ae1f26d52c2a7c68edcba29d6dd3cd3e88c58f6e3969a58dadee7b73016d3cabbd6f0040ff832f686db4679628 languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/helper-annotate-as-pure@npm:7.14.5" +"@babel/helper-annotate-as-pure@npm:^7.14.5, @babel/helper-annotate-as-pure@npm:^7.15.4": + version: 7.15.4 + resolution: "@babel/helper-annotate-as-pure@npm:7.15.4" dependencies: - "@babel/types": ^7.14.5 - checksum: 18cefedda60003c2551dabe0e4ad278ef0507682680892c60e9f7cb75ae1dc9a065cddb3ce9964da76f220bf972af5262619eeac4b84c2b8aba1b031961215cc + "@babel/types": ^7.15.4 + checksum: 94e3b5714748cc4fe419c3e75656b1747f7e985d46a178dbd87e4a97f8f4d0ba94374c6768516cdc9c744d40202f1c2bb7930a7a153274c3d42edb196e945404 languageName: node linkType: hard @@ -159,9 +136,9 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.12.1, @babel/helper-compilation-targets@npm:^7.13.0, @babel/helper-compilation-targets@npm:^7.14.5, @babel/helper-compilation-targets@npm:^7.15.0": - version: 7.15.0 - resolution: "@babel/helper-compilation-targets@npm:7.15.0" +"@babel/helper-compilation-targets@npm:^7.12.1, @babel/helper-compilation-targets@npm:^7.13.0, @babel/helper-compilation-targets@npm:^7.15.4": + version: 7.15.4 + resolution: "@babel/helper-compilation-targets@npm:7.15.4" dependencies: "@babel/compat-data": ^7.15.0 "@babel/helper-validator-option": ^7.14.5 @@ -169,13 +146,13 @@ __metadata: semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 82a1f5d8041d39454fe5d7d109e32e90f5c6c13f0e87c7ac94332ac79a1fb62ab135b2f8ceba07ba307bb0db792c1f64796aec68bb258a13aa69a56ee65e2427 + checksum: a2b9767d5658da90bd79170b4b0d2987930fb6708d48428619f9f4664c47e3f9409801b76c7603446404b453c67e54682cc86840cb1c29aa06c956533ebaf5ba languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.15.4": - version: 7.15.4 - resolution: "@babel/helper-compilation-targets@npm:7.15.4" +"@babel/helper-compilation-targets@npm:^7.14.5, @babel/helper-compilation-targets@npm:^7.15.0": + version: 7.15.0 + resolution: "@babel/helper-compilation-targets@npm:7.15.0" dependencies: "@babel/compat-data": ^7.15.0 "@babel/helper-validator-option": ^7.14.5 @@ -183,7 +160,7 @@ __metadata: semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: a2b9767d5658da90bd79170b4b0d2987930fb6708d48428619f9f4664c47e3f9409801b76c7603446404b453c67e54682cc86840cb1c29aa06c956533ebaf5ba + checksum: 82a1f5d8041d39454fe5d7d109e32e90f5c6c13f0e87c7ac94332ac79a1fb62ab135b2f8ceba07ba307bb0db792c1f64796aec68bb258a13aa69a56ee65e2427 languageName: node linkType: hard @@ -242,18 +219,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/helper-function-name@npm:7.14.5" - dependencies: - "@babel/helper-get-function-arity": ^7.14.5 - "@babel/template": ^7.14.5 - "@babel/types": ^7.14.5 - checksum: fd8ffa82f7622b6e9a6294fb3b98b42e743ab2a8e3c329367667a960b5b98b48bc5ebf8be7308981f1985b9f3c69e1a3b4a91c8944ae97c31803240da92fb3c8 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.15.4": +"@babel/helper-function-name@npm:^7.14.5, @babel/helper-function-name@npm:^7.15.4": version: 7.15.4 resolution: "@babel/helper-function-name@npm:7.15.4" dependencies: @@ -264,15 +230,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-get-function-arity@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/helper-get-function-arity@npm:7.14.5" - dependencies: - "@babel/types": ^7.14.5 - checksum: a60779918b677a35e177bb4f46babfd54e9790587b6a4f076092a9eff2a940cbeacdeb10c94331b26abfe838769554d72293d16df897246cfccd1444e5e27cb7 - languageName: node - linkType: hard - "@babel/helper-get-function-arity@npm:^7.15.4": version: 7.15.4 resolution: "@babel/helper-get-function-arity@npm:7.15.4" @@ -318,16 +275,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.12.1, @babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/helper-module-imports@npm:7.14.5" - dependencies: - "@babel/types": ^7.14.5 - checksum: b98279908698a50a22634e683924cb25eb93edf1bf28ac65691dfa82d7a1a4dae4e6b12b8ef9f9a50171ca484620bce544f270873c53505d8a45364c5b665c0c - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.15.4": +"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.12.1, @babel/helper-module-imports@npm:^7.12.13, @babel/helper-module-imports@npm:^7.14.5, @babel/helper-module-imports@npm:^7.15.4": version: 7.15.4 resolution: "@babel/helper-module-imports@npm:7.15.4" dependencies: @@ -336,23 +284,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.12.1, @babel/helper-module-transforms@npm:^7.14.5, @babel/helper-module-transforms@npm:^7.15.0": - version: 7.15.0 - resolution: "@babel/helper-module-transforms@npm:7.15.0" - dependencies: - "@babel/helper-module-imports": ^7.14.5 - "@babel/helper-replace-supers": ^7.15.0 - "@babel/helper-simple-access": ^7.14.8 - "@babel/helper-split-export-declaration": ^7.14.5 - "@babel/helper-validator-identifier": ^7.14.9 - "@babel/template": ^7.14.5 - "@babel/traverse": ^7.15.0 - "@babel/types": ^7.15.0 - checksum: 65eca31a9571d43c454cad13b26e17a0909e1fb439a939d2f17268f016ec85cec2fe7a9abcadea863d1b80b448f89647ac9be0abd76265c0e274205794031f33 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.15.8": +"@babel/helper-module-transforms@npm:^7.12.1, @babel/helper-module-transforms@npm:^7.14.5, @babel/helper-module-transforms@npm:^7.15.8": version: 7.15.8 resolution: "@babel/helper-module-transforms@npm:7.15.8" dependencies: @@ -368,6 +300,22 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.15.0": + version: 7.15.0 + resolution: "@babel/helper-module-transforms@npm:7.15.0" + dependencies: + "@babel/helper-module-imports": ^7.14.5 + "@babel/helper-replace-supers": ^7.15.0 + "@babel/helper-simple-access": ^7.14.8 + "@babel/helper-split-export-declaration": ^7.14.5 + "@babel/helper-validator-identifier": ^7.14.9 + "@babel/template": ^7.14.5 + "@babel/traverse": ^7.15.0 + "@babel/types": ^7.15.0 + checksum: 65eca31a9571d43c454cad13b26e17a0909e1fb439a939d2f17268f016ec85cec2fe7a9abcadea863d1b80b448f89647ac9be0abd76265c0e274205794031f33 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.14.5": version: 7.14.5 resolution: "@babel/helper-optimise-call-expression@npm:7.14.5" @@ -394,29 +342,17 @@ __metadata: linkType: hard "@babel/helper-remap-async-to-generator@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/helper-remap-async-to-generator@npm:7.14.5" - dependencies: - "@babel/helper-annotate-as-pure": ^7.14.5 - "@babel/helper-wrap-function": ^7.14.5 - "@babel/types": ^7.14.5 - checksum: 022594a15caed0d3bbac52e27eef0f20f9dceb85921b682df55f3bb21dee6fea645b03663e84fdfaadc6b88f4b83b012858520813c15e88728bbc5e16bf3fa29 - languageName: node - linkType: hard - -"@babel/helper-replace-supers@npm:^7.14.5, @babel/helper-replace-supers@npm:^7.15.0": - version: 7.15.0 - resolution: "@babel/helper-replace-supers@npm:7.15.0" + version: 7.15.4 + resolution: "@babel/helper-remap-async-to-generator@npm:7.15.4" dependencies: - "@babel/helper-member-expression-to-functions": ^7.15.0 - "@babel/helper-optimise-call-expression": ^7.14.5 - "@babel/traverse": ^7.15.0 - "@babel/types": ^7.15.0 - checksum: e1fce39b88ac32058a6fad15f0840cc40a63af7d60ef1d3bca0fcda3e4d88422d164a165c3b1efbcbda3b80ac68165fa79005fe27fc5569d2b9582a8cc002db3 + "@babel/helper-annotate-as-pure": ^7.15.4 + "@babel/helper-wrap-function": ^7.15.4 + "@babel/types": ^7.15.4 + checksum: 80918caa96fcb679a89887f7997fd1428d77810e3fa11de0c7475594a09c7b96adee872b84202f8301ee707dec43575c6d92799f07959d595d2da1940388d8aa languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.15.4": +"@babel/helper-replace-supers@npm:^7.14.5, @babel/helper-replace-supers@npm:^7.15.4": version: 7.15.4 resolution: "@babel/helper-replace-supers@npm:7.15.4" dependencies: @@ -428,6 +364,18 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.15.0": + version: 7.15.0 + resolution: "@babel/helper-replace-supers@npm:7.15.0" + dependencies: + "@babel/helper-member-expression-to-functions": ^7.15.0 + "@babel/helper-optimise-call-expression": ^7.14.5 + "@babel/traverse": ^7.15.0 + "@babel/types": ^7.15.0 + checksum: e1fce39b88ac32058a6fad15f0840cc40a63af7d60ef1d3bca0fcda3e4d88422d164a165c3b1efbcbda3b80ac68165fa79005fe27fc5569d2b9582a8cc002db3 + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.14.8": version: 7.14.8 resolution: "@babel/helper-simple-access@npm:7.14.8" @@ -447,11 +395,11 @@ __metadata: linkType: hard "@babel/helper-skip-transparent-expression-wrappers@npm:^7.12.1, @babel/helper-skip-transparent-expression-wrappers@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.14.5" + version: 7.15.4 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.15.4" dependencies: - "@babel/types": ^7.14.5 - checksum: d16937eb08d57d2577902fa6d05ac4b1695602babd9dff9890fa8e56b593fdc997ad24de13fdaf15617036bfacf3493ea569898a5ac0538c2a831aa163f18985 + "@babel/types": ^7.15.4 + checksum: ebec4ea6fc93fd39e610f7b274cb63e420fffee1cbe5002e41bdf9d39ce6121d541163124730fb22b242d0f58d3be447b339ec6b323feeda687a978cafabfeaa languageName: node linkType: hard @@ -473,14 +421,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.14.5, @babel/helper-validator-identifier@npm:^7.14.9": - version: 7.14.9 - resolution: "@babel/helper-validator-identifier@npm:7.14.9" - checksum: 58552531a7674363e74672434c312ddaf1545b8a43308e1a7f38db58bf79c796c095a6dab6a6105eb0d783b97441f6cbb525bb887f29a35f232fcdbd8cb240dc - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.15.7": +"@babel/helper-validator-identifier@npm:^7.14.5, @babel/helper-validator-identifier@npm:^7.14.9, @babel/helper-validator-identifier@npm:^7.15.7": version: 7.15.7 resolution: "@babel/helper-validator-identifier@npm:7.15.7" checksum: f041c28c531d1add5cc345b25d5df3c29c62bce3205b4d4a93dcd164ccf630350acba252d374fad8f5d8ea526995a215829f27183ba7ce7ce141843bf23068a6 @@ -494,30 +435,19 @@ __metadata: languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/helper-wrap-function@npm:7.14.5" - dependencies: - "@babel/helper-function-name": ^7.14.5 - "@babel/template": ^7.14.5 - "@babel/traverse": ^7.14.5 - "@babel/types": ^7.14.5 - checksum: d5c4bec02396f00d305ae2b60cfa5f3ec27d196a71b88107745b6be4fe257ebe54deedb6ee3997c8c9a2cc5c2571d567c22e9b866109490a2aa7f79a1a2272e2 - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.12.1, @babel/helpers@npm:^7.14.8": - version: 7.15.3 - resolution: "@babel/helpers@npm:7.15.3" +"@babel/helper-wrap-function@npm:^7.15.4": + version: 7.15.4 + resolution: "@babel/helper-wrap-function@npm:7.15.4" dependencies: - "@babel/template": ^7.14.5 - "@babel/traverse": ^7.15.0 - "@babel/types": ^7.15.0 - checksum: cd70614d610b01189812c83b505b076dca0822df55ed6cd41232416f3a10ae9200a07315683942e0adbc1833481920c2fc7a23a08064ced5a8770259aa0ad707 + "@babel/helper-function-name": ^7.15.4 + "@babel/template": ^7.15.4 + "@babel/traverse": ^7.15.4 + "@babel/types": ^7.15.4 + checksum: 66422c8abd69ac3b9be44de62fe9e460ae8faa2b692757eeed920523633a1921b29af8867eb5f0832b1f029c489cf01c703ae51fa2dc078ea636abcc52e092bc languageName: node linkType: hard -"@babel/helpers@npm:^7.15.4": +"@babel/helpers@npm:^7.12.1, @babel/helpers@npm:^7.15.4": version: 7.15.4 resolution: "@babel/helpers@npm:7.15.4" dependencies: @@ -539,21 +469,21 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.12.3, @babel/parser@npm:^7.14.5, @babel/parser@npm:^7.15.0, @babel/parser@npm:^7.7.0": - version: 7.15.3 - resolution: "@babel/parser@npm:7.15.3" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.12.3, @babel/parser@npm:^7.15.4, @babel/parser@npm:^7.15.8, @babel/parser@npm:^7.7.0": + version: 7.15.8 + resolution: "@babel/parser@npm:7.15.8" bin: parser: ./bin/babel-parser.js - checksum: 4b9ba7e8ffe0a3d0dd8c61dee975c79863f7744177de677cb7d12f96549eb5c8b9ffc70ca2b1b2488b06e056da99a6273e2d7d68fc31f498d01483dfac149e13 + checksum: a26c91967655f3961bc0c2565f7b9ac870ee3db86c9a0f00b96a7fb65210687be023431c79b3ed2a13b9c945e6afa09c36542ee508741e7ce3039a5b0f18c4b2 languageName: node linkType: hard -"@babel/parser@npm:^7.15.4, @babel/parser@npm:^7.15.8": - version: 7.15.8 - resolution: "@babel/parser@npm:7.15.8" +"@babel/parser@npm:^7.14.5, @babel/parser@npm:^7.15.0": + version: 7.15.3 + resolution: "@babel/parser@npm:7.15.3" bin: parser: ./bin/babel-parser.js - checksum: a26c91967655f3961bc0c2565f7b9ac870ee3db86c9a0f00b96a7fb65210687be023431c79b3ed2a13b9c945e6afa09c36542ee508741e7ce3039a5b0f18c4b2 + checksum: 4b9ba7e8ffe0a3d0dd8c61dee975c79863f7744177de677cb7d12f96549eb5c8b9ffc70ca2b1b2488b06e056da99a6273e2d7d68fc31f498d01483dfac149e13 languageName: node linkType: hard @@ -1305,7 +1235,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.12.1, @babel/plugin-transform-parameters@npm:^7.14.5": +"@babel/plugin-transform-parameters@npm:^7.12.1": + version: 7.15.4 + resolution: "@babel/plugin-transform-parameters@npm:7.15.4" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0d8bf881156669a2a6fa279e80fa2f1f47ec6404a72be87adb3e8fa40e72d26f2413ce942208dd1b0f6deb47332d8d2fd81b5e5d6f744779c7d9b13f85b608a5 + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.14.5": version: 7.14.5 resolution: "@babel/plugin-transform-parameters@npm:7.14.5" dependencies: @@ -1795,18 +1736,16 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.10.4, @babel/template@npm:^7.14.5, @babel/template@npm:^7.3.3": - version: 7.14.5 - resolution: "@babel/template@npm:7.14.5" +"@babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.14.5, @babel/runtime@npm:^7.14.6": + version: 7.15.4 + resolution: "@babel/runtime@npm:7.15.4" dependencies: - "@babel/code-frame": ^7.14.5 - "@babel/parser": ^7.14.5 - "@babel/types": ^7.14.5 - checksum: 4939199c5b1ca8940e14c87f30f4fab5f35c909bef88447131075349027546927b4e3e08e50db5c2db2024f2c6585a4fe571c739c835ac980f7a4ada2dd8a623 + regenerator-runtime: ^0.13.4 + checksum: c40825430400e47c19b97e4142d5315d2910305b9714d44a711472587ee2fd4521fdba5f02ddd9df3902f5e988d9854fa83f4da1e0c091f70f6983fa52480606 languageName: node linkType: hard -"@babel/template@npm:^7.15.4": +"@babel/template@npm:^7.10.4, @babel/template@npm:^7.15.4, @babel/template@npm:^7.3.3": version: 7.15.4 resolution: "@babel/template@npm:7.15.4" dependencies: @@ -1817,24 +1756,18 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.12.1, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.14.5, @babel/traverse@npm:^7.15.0, @babel/traverse@npm:^7.7.0": - version: 7.15.0 - resolution: "@babel/traverse@npm:7.15.0" +"@babel/template@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/template@npm:7.14.5" dependencies: "@babel/code-frame": ^7.14.5 - "@babel/generator": ^7.15.0 - "@babel/helper-function-name": ^7.14.5 - "@babel/helper-hoist-variables": ^7.14.5 - "@babel/helper-split-export-declaration": ^7.14.5 - "@babel/parser": ^7.15.0 - "@babel/types": ^7.15.0 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: e13056690a2a4a4dd699e241b89d4f7cf701ceef2f4ee0efc32a8cc4e07e1bbd397423868ecfec8aa98a769486f7d08778420d48f981b4f5dbb1b2f211daf656 + "@babel/parser": ^7.14.5 + "@babel/types": ^7.14.5 + checksum: 4939199c5b1ca8940e14c87f30f4fab5f35c909bef88447131075349027546927b4e3e08e50db5c2db2024f2c6585a4fe571c739c835ac980f7a4ada2dd8a623 languageName: node linkType: hard -"@babel/traverse@npm:^7.15.4": +"@babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.12.1, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.15.4, @babel/traverse@npm:^7.7.0": version: 7.15.4 resolution: "@babel/traverse@npm:7.15.4" dependencies: @@ -1851,17 +1784,24 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.12.1, @babel/types@npm:^7.12.6, @babel/types@npm:^7.14.5, @babel/types@npm:^7.14.8, @babel/types@npm:^7.14.9, @babel/types@npm:^7.15.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0": +"@babel/traverse@npm:^7.15.0": version: 7.15.0 - resolution: "@babel/types@npm:7.15.0" + resolution: "@babel/traverse@npm:7.15.0" dependencies: - "@babel/helper-validator-identifier": ^7.14.9 - to-fast-properties: ^2.0.0 - checksum: 6d6bcdfce94b5446520a24087c6dede453e28425af092965b304d4028e9bca79712fd691cdad031e3570c7667bf3206e5f642bcccbfccb33d42ca4a8203587f9 + "@babel/code-frame": ^7.14.5 + "@babel/generator": ^7.15.0 + "@babel/helper-function-name": ^7.14.5 + "@babel/helper-hoist-variables": ^7.14.5 + "@babel/helper-split-export-declaration": ^7.14.5 + "@babel/parser": ^7.15.0 + "@babel/types": ^7.15.0 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: e13056690a2a4a4dd699e241b89d4f7cf701ceef2f4ee0efc32a8cc4e07e1bbd397423868ecfec8aa98a769486f7d08778420d48f981b4f5dbb1b2f211daf656 languageName: node linkType: hard -"@babel/types@npm:^7.15.4, @babel/types@npm:^7.15.6, @babel/types@npm:^7.8.3": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.12.1, @babel/types@npm:^7.12.6, @babel/types@npm:^7.14.9, @babel/types@npm:^7.15.4, @babel/types@npm:^7.15.6, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0, @babel/types@npm:^7.8.3": version: 7.15.6 resolution: "@babel/types@npm:7.15.6" dependencies: @@ -1871,6 +1811,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.14.5, @babel/types@npm:^7.14.8, @babel/types@npm:^7.15.0": + version: 7.15.0 + resolution: "@babel/types@npm:7.15.0" + dependencies: + "@babel/helper-validator-identifier": ^7.14.9 + to-fast-properties: ^2.0.0 + checksum: 6d6bcdfce94b5446520a24087c6dede453e28425af092965b304d4028e9bca79712fd691cdad031e3570c7667bf3206e5f642bcccbfccb33d42ca4a8203587f9 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -2498,7 +2448,7 @@ __metadata: "@emotion/babel-plugin": ^11.3.0 "@emotion/react": ^11.5.0 "@emotion/styled": ^11.3.0 - "@gokiprotocol/walletkit": ^1.4.4 + "@gokiprotocol/walletkit": ^1.4.5 "@saberhq/solana-contrib": ^1.3.18 "@saberhq/token-utils": ^1.3.18 "@saberhq/use-solana": ^1.3.18 @@ -2538,7 +2488,7 @@ __metadata: languageName: unknown linkType: soft -"@gokiprotocol/walletkit@^1.4.4, @gokiprotocol/walletkit@workspace:packages/walletkit": +"@gokiprotocol/walletkit@^1.4.5, @gokiprotocol/walletkit@workspace:packages/walletkit": version: 0.0.0-use.local resolution: "@gokiprotocol/walletkit@workspace:packages/walletkit" dependencies: @@ -2551,10 +2501,15 @@ __metadata: "@solana/web3.js": ^1.29.3 "@types/react": ^17.0.31 "@types/react-dom": ^17.0.10 + i18next: ^21.3.1 + i18next-browser-languagedetector: ^6.1.2 + i18next-http-backend: ^1.3.1 polished: ^4.1.3 react: ^17.0.2 react-device-detect: ^2.1.1 react-dom: ^17.0.2 + react-i18next: ^11.12.0 + react-spring: ^9.2.6 react-use-gesture: ^9.1.3 tslib: ^2.3.1 unstated-next: ^1.1.0 @@ -4066,6 +4021,37 @@ __metadata: languageName: node linkType: hard +"@react-spring/konva@npm:~9.3.0": + version: 9.3.0 + resolution: "@react-spring/konva@npm:9.3.0" + dependencies: + "@react-spring/animated": ~9.3.0 + "@react-spring/core": ~9.3.0 + "@react-spring/shared": ~9.3.0 + "@react-spring/types": ~9.3.0 + peerDependencies: + konva: ">=2.6" + react: ^16.8.0 || ^17.0.0 + react-konva: ^16.8.0 || ^17.0.0 + checksum: 2347ecb6946e14cce4768d7ba3d0ce49ce4bcec9f4e0b962a12a85d93ca584920b440716bce97cc065c9a933e98b520fd5b831fd97d15bf4d1f96c1016d0451a + languageName: node + linkType: hard + +"@react-spring/native@npm:~9.3.0": + version: 9.3.0 + resolution: "@react-spring/native@npm:9.3.0" + dependencies: + "@react-spring/animated": ~9.3.0 + "@react-spring/core": ~9.3.0 + "@react-spring/shared": ~9.3.0 + "@react-spring/types": ~9.3.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 + react-native: ">=0.58" + checksum: 09761dba93a42d17dbc32cac1fa4aaf0dbddd45e9c953bf03ec63de4ea3b8b7bc4e70e423f75920f2ad62188d906bfcbcbbf0c48e98e04cfdd31eff92294e32b + languageName: node + linkType: hard + "@react-spring/rafz@npm:~9.3.0": version: 9.3.0 resolution: "@react-spring/rafz@npm:9.3.0" @@ -4085,6 +4071,22 @@ __metadata: languageName: node linkType: hard +"@react-spring/three@npm:~9.3.0": + version: 9.3.0 + resolution: "@react-spring/three@npm:9.3.0" + dependencies: + "@react-spring/animated": ~9.3.0 + "@react-spring/core": ~9.3.0 + "@react-spring/shared": ~9.3.0 + "@react-spring/types": ~9.3.0 + peerDependencies: + "@react-three/fiber": ">=6.0" + react: ">=16.11" + three: ">=0.126" + checksum: d45c083e51ab61f6f1554db053f82d1433135faea9b89ff6f0512c2728f42a2c6ae3ba9be8b1721aaef0d182e7fe328cf2ee875c4474a3f14c3533d6f04d3489 + languageName: node + linkType: hard + "@react-spring/types@npm:~9.3.0": version: 9.3.0 resolution: "@react-spring/types@npm:9.3.0" @@ -4092,7 +4094,7 @@ __metadata: languageName: node linkType: hard -"@react-spring/web@npm:^9.3.0": +"@react-spring/web@npm:^9.3.0, @react-spring/web@npm:~9.3.0": version: 9.3.0 resolution: "@react-spring/web@npm:9.3.0" dependencies: @@ -4107,6 +4109,23 @@ __metadata: languageName: node linkType: hard +"@react-spring/zdog@npm:~9.3.0": + version: 9.3.0 + resolution: "@react-spring/zdog@npm:9.3.0" + dependencies: + "@react-spring/animated": ~9.3.0 + "@react-spring/core": ~9.3.0 + "@react-spring/shared": ~9.3.0 + "@react-spring/types": ~9.3.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + react-zdog: ">=1.0" + zdog: ">=1.0" + checksum: 6a1980cd38daf98109618609ca91da26e6c8d910c8f0cf7c95d1a20619416512edbbfadfa71e033e15282690918c7bdfa2bf07f6a3638ddb7f70c9f05eb7df5c + languageName: node + linkType: hard + "@rollup/plugin-node-resolve@npm:^7.1.1": version: 7.1.3 resolution: "@rollup/plugin-node-resolve@npm:7.1.3" @@ -4293,29 +4312,7 @@ __metadata: languageName: node linkType: hard -"@solana/web3.js@npm:^1.21.0": - version: 1.24.1 - resolution: "@solana/web3.js@npm:1.24.1" - dependencies: - "@babel/runtime": ^7.12.5 - "@solana/buffer-layout": ^3.0.0 - bn.js: ^5.0.0 - borsh: ^0.4.0 - bs58: ^4.0.1 - buffer: 6.0.1 - crypto-hash: ^1.2.2 - jayson: ^3.4.4 - js-sha3: ^0.8.0 - node-fetch: ^2.6.1 - rpc-websockets: ^7.4.2 - secp256k1: ^4.0.2 - superstruct: ^0.14.2 - tweetnacl: ^1.0.0 - checksum: 7f428e1c3a6199c73d74da62b4eede9f0e92e57816b61f090f44e84174ae95681a9b8d17c86177bff75e4f073298252edf9aafe98c5d0f893074092d57a94801 - languageName: node - linkType: hard - -"@solana/web3.js@npm:^1.29.3": +"@solana/web3.js@npm:^1.21.0, @solana/web3.js@npm:^1.29.3": version: 1.29.3 resolution: "@solana/web3.js@npm:1.29.3" dependencies: @@ -4706,10 +4703,10 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*": - version: 16.10.3 - resolution: "@types/node@npm:16.10.3" - checksum: 3fd429bce8a4acb497dcc62b536782a5e87ccf7cd91d64a78b263ae5d66cb72bf84be9eeeff6f84ae0567b065a40b267caa66d311f9e094990a5847bbd168a29 +"@types/node@npm:*, @types/node@npm:^16.11.3": + version: 16.11.3 + resolution: "@types/node@npm:16.11.3" + checksum: 65682d01d2c10b9658d9b3c160ae72f0b2d626d7d02459434b21a9476518dbab38c852586c160a7a10f7e4271266e11001dd9fa605b4c7a53d3c0c045eaf4a65 languageName: node linkType: hard @@ -4720,13 +4717,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^16.11.3": - version: 16.11.3 - resolution: "@types/node@npm:16.11.3" - checksum: 65682d01d2c10b9658d9b3c160ae72f0b2d626d7d02459434b21a9476518dbab38c852586c160a7a10f7e4271266e11001dd9fa605b4c7a53d3c0c045eaf4a65 - languageName: node - linkType: hard - "@types/normalize-package-data@npm:^2.4.0": version: 2.4.1 resolution: "@types/normalize-package-data@npm:2.4.1" @@ -4794,18 +4784,7 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*": - version: 17.0.26 - resolution: "@types/react@npm:17.0.26" - dependencies: - "@types/prop-types": "*" - "@types/scheduler": "*" - csstype: ^3.0.2 - checksum: 943fe7e912ea6d664910fb9391a96d8f31c985265fb768d448461123dd970080494b7987a9bd54ca664c8675cb09680c8763823ff18622222e302c8d121b7d31 - languageName: node - linkType: hard - -"@types/react@npm:^17.0.31": +"@types/react@npm:*, @types/react@npm:^17.0.31": version: 17.0.31 resolution: "@types/react@npm:17.0.31" dependencies: @@ -4971,7 +4950,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/experimental-utils@npm:4.29.3, @typescript-eslint/experimental-utils@npm:^4.0.1": +"@typescript-eslint/experimental-utils@npm:4.29.3": version: 4.29.3 resolution: "@typescript-eslint/experimental-utils@npm:4.29.3" dependencies: @@ -4987,7 +4966,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/experimental-utils@npm:4.33.0": +"@typescript-eslint/experimental-utils@npm:4.33.0, @typescript-eslint/experimental-utils@npm:^4.0.1": version: 4.33.0 resolution: "@typescript-eslint/experimental-utils@npm:4.33.0" dependencies: @@ -5639,10 +5618,10 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^5.0.0": - version: 5.0.0 - resolution: "ansi-regex@npm:5.0.0" - checksum: b1bb4e992a5d96327bb4f72eaba9f8047f1d808d273ad19d399e266bfcc7fb19a4d1a127a32f7bc61fe46f1a94a4d04ec4c424e3fbe184929aa866323d8ed4ce +"ansi-regex@npm:^5.0.0, ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b languageName: node linkType: hard @@ -5790,29 +5769,29 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.1, array-includes@npm:^3.1.2, array-includes@npm:^3.1.3": - version: 3.1.3 - resolution: "array-includes@npm:3.1.3" +"array-includes@npm:^3.1.1, array-includes@npm:^3.1.3, array-includes@npm:^3.1.4": + version: 3.1.4 + resolution: "array-includes@npm:3.1.4" dependencies: call-bind: ^1.0.2 define-properties: ^1.1.3 - es-abstract: ^1.18.0-next.2 + es-abstract: ^1.19.1 get-intrinsic: ^1.1.1 - is-string: ^1.0.5 - checksum: eaab8812412b5ec921c8fe678a9d61f501b12f6c72e271e0e8652fe7f4145276cc7ad79ff303ac4ed69cbf5135155bfb092b1b6d552e423e75106d1c887da150 + is-string: ^1.0.7 + checksum: 69967c38c52698f84b50a7aed5554aadc89c6ac6399b6d92ad061a5952f8423b4bba054c51d40963f791dfa294d7247cdd7988b6b1f2c5861477031c6386e1c0 languageName: node linkType: hard -"array-includes@npm:^3.1.4": - version: 3.1.4 - resolution: "array-includes@npm:3.1.4" +"array-includes@npm:^3.1.2": + version: 3.1.3 + resolution: "array-includes@npm:3.1.3" dependencies: call-bind: ^1.0.2 define-properties: ^1.1.3 - es-abstract: ^1.19.1 + es-abstract: ^1.18.0-next.2 get-intrinsic: ^1.1.1 - is-string: ^1.0.7 - checksum: 69967c38c52698f84b50a7aed5554aadc89c6ac6399b6d92ad061a5952f8423b4bba054c51d40963f791dfa294d7247cdd7988b6b1f2c5861477031c6386e1c0 + is-string: ^1.0.5 + checksum: eaab8812412b5ec921c8fe678a9d61f501b12f6c72e271e0e8652fe7f4145276cc7ad79ff303ac4ed69cbf5135155bfb092b1b6d552e423e75106d1c887da150 languageName: node linkType: hard @@ -5846,17 +5825,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.flat@npm:^1.2.4": - version: 1.2.4 - resolution: "array.prototype.flat@npm:1.2.4" - dependencies: - call-bind: ^1.0.0 - define-properties: ^1.1.3 - es-abstract: ^1.18.0-next.1 - checksum: 1ec5d9887ae45e70e4b993e801b440ae5ddcd0d2c6d1dbe214c311e91436152f510916bdac82b066693544b9801a3c510dfbec8a278ababf8de7eb0bde74636f - languageName: node - linkType: hard - "array.prototype.flat@npm:^1.2.5": version: 1.2.5 resolution: "array.prototype.flat@npm:1.2.5" @@ -6627,7 +6595,22 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.12.0, browserslist@npm:^4.16.6, browserslist@npm:^4.16.8, browserslist@npm:^4.6.2, browserslist@npm:^4.6.4": +"browserslist@npm:^4.0.0, browserslist@npm:^4.12.0, browserslist@npm:^4.16.6, browserslist@npm:^4.17.3, browserslist@npm:^4.6.2, browserslist@npm:^4.6.4": + version: 4.17.4 + resolution: "browserslist@npm:4.17.4" + dependencies: + caniuse-lite: ^1.0.30001265 + electron-to-chromium: ^1.3.867 + escalade: ^3.1.1 + node-releases: ^2.0.0 + picocolors: ^1.0.0 + bin: + browserslist: cli.js + checksum: 830a25a70f33804ac4f5f884da3747028b9efe5190bf69ffe447d8651c8d09d91cfa1e534f2b71f06fbe13a3ce871cfcb416de498c726c91cad11818e80470e7 + languageName: node + linkType: hard + +"browserslist@npm:^4.16.8": version: 4.16.8 resolution: "browserslist@npm:4.16.8" dependencies: @@ -6933,7 +6916,14 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30000981, caniuse-lite@npm:^1.0.30001109, caniuse-lite@npm:^1.0.30001125, caniuse-lite@npm:^1.0.30001251": +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30000981, caniuse-lite@npm:^1.0.30001109, caniuse-lite@npm:^1.0.30001125, caniuse-lite@npm:^1.0.30001265": + version: 1.0.30001271 + resolution: "caniuse-lite@npm:1.0.30001271" + checksum: 0271e234e17c588fa203a34523f90c5a21ab62f41a2c3acabe96f0251593ac92f192cadd7a3dcbcf49bb28de4f57ca274d775c75700c3f38e9c42028d3becb0f + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001251": version: 1.0.30001252 resolution: "caniuse-lite@npm:1.0.30001252" checksum: 0d25a2795ca224c1a689b08fe37a5dc6c4c79d80720f927bf7df70ed30c1b1b62c3cc51429eac01902d3fc298d9531b85efec331c2a051e42615c76fa348f118 @@ -7680,7 +7670,7 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.14.0, core-js-compat@npm:^3.16.0, core-js-compat@npm:^3.6.2": +"core-js-compat@npm:^3.14.0": version: 3.16.3 resolution: "core-js-compat@npm:3.16.3" dependencies: @@ -7690,6 +7680,16 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.16.0, core-js-compat@npm:^3.6.2": + version: 3.18.3 + resolution: "core-js-compat@npm:3.18.3" + dependencies: + browserslist: ^4.17.3 + semver: 7.0.0 + checksum: 320fab41e881d56e6d3582781fc365769dd3b9d3deae35407fb28f96076e657290c4444d453bfa0dfb98d45c29f3082f15fc68c5f73d16037bd47dc9198b2499 + languageName: node + linkType: hard + "core-js-pure@npm:^3.16.0": version: 3.16.3 resolution: "core-js-pure@npm:3.16.3" @@ -7711,13 +7711,20 @@ __metadata: languageName: node linkType: hard -"core-util-is@npm:1.0.2, core-util-is@npm:~1.0.0": +"core-util-is@npm:1.0.2": version: 1.0.2 resolution: "core-util-is@npm:1.0.2" checksum: 7a4c925b497a2c91421e25bf76d6d8190f0b2359a9200dbeed136e63b2931d6294d3b1893eda378883ed363cd950f44a12a401384c609839ea616befb7927dab languageName: node linkType: hard +"core-util-is@npm:~1.0.0": + version: 1.0.3 + resolution: "core-util-is@npm:1.0.3" + checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 + languageName: node + linkType: hard + "cosmiconfig@npm:^5.0.0": version: 5.2.1 resolution: "cosmiconfig@npm:5.2.1" @@ -7802,7 +7809,7 @@ __metadata: languageName: node linkType: hard -"cross-fetch@npm:^3.1.4": +"cross-fetch@npm:3.1.4, cross-fetch@npm:^3.1.4": version: 3.1.4 resolution: "cross-fetch@npm:3.1.4" dependencies: @@ -7854,13 +7861,6 @@ __metadata: languageName: node linkType: hard -"crypto-hash@npm:^1.2.2": - version: 1.3.0 - resolution: "crypto-hash@npm:1.3.0" - checksum: a3a507e0d2b18fbd2da8088a1c62d0c53c009a99bbfa6d851cac069734ffa546922fa51bdd776d006459701cdda873463e5059ece3431aca048fd99e7573d138 - languageName: node - linkType: hard - "crypto-random-string@npm:^1.0.0": version: 1.0.0 resolution: "crypto-random-string@npm:1.0.0" @@ -8772,7 +8772,14 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.3.564, electron-to-chromium@npm:^1.3.811": +"electron-to-chromium@npm:^1.3.564, electron-to-chromium@npm:^1.3.867": + version: 1.3.877 + resolution: "electron-to-chromium@npm:1.3.877" + checksum: 1642a7dc06fb6a9f1612c9b451d6b7daf7c0ef9a1caf8137c1359f9c855fdbcc58079ecd269edf8fd1db24c0c29a210317c03cf451f7507b3240f4208fb84f4b + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.3.811": version: 1.3.819 resolution: "electron-to-chromium@npm:1.3.819" checksum: 79623a167f36494dd175bd21de519181f70b11f80e9ce1e9fe2e7200b88df57c5f2aae4d6552a8c51d9544253d10996d1a187c2abbb1a91e5b250ec684c115c2 @@ -8940,60 +8947,62 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.17.2, es-abstract@npm:^1.18.0-next.1, es-abstract@npm:^1.18.0-next.2, es-abstract@npm:^1.18.2": - version: 1.18.5 - resolution: "es-abstract@npm:1.18.5" +"es-abstract@npm:^1.17.2, es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1": + version: 1.19.1 + resolution: "es-abstract@npm:1.19.1" dependencies: call-bind: ^1.0.2 es-to-primitive: ^1.2.1 function-bind: ^1.1.1 get-intrinsic: ^1.1.1 + get-symbol-description: ^1.0.0 has: ^1.0.3 has-symbols: ^1.0.2 internal-slot: ^1.0.3 - is-callable: ^1.2.3 + is-callable: ^1.2.4 is-negative-zero: ^2.0.1 - is-regex: ^1.1.3 - is-string: ^1.0.6 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.1 + is-string: ^1.0.7 + is-weakref: ^1.0.1 object-inspect: ^1.11.0 object-keys: ^1.1.1 object.assign: ^4.1.2 string.prototype.trimend: ^1.0.4 string.prototype.trimstart: ^1.0.4 unbox-primitive: ^1.0.1 - checksum: 9b64145b077863c9572dd8cd50e190833d241a135505ec422efe829c5fc085c475e6daca378b2b45acc288f28bf85e942b3ef2cb0f69daa250240781e1081cc4 + checksum: b6be8410672c5364db3fb01eb786e30c7b4bb32b4af63d381c08840f4382c4a168e7855cd338bf59d4f1a1a1138f4d748d1fd40ec65aaa071876f9e9fbfed949 languageName: node linkType: hard -"es-abstract@npm:^1.18.1": - version: 1.18.6 - resolution: "es-abstract@npm:1.18.6" +"es-abstract@npm:^1.18.0-next.1, es-abstract@npm:^1.18.0-next.2, es-abstract@npm:^1.18.2": + version: 1.18.5 + resolution: "es-abstract@npm:1.18.5" dependencies: call-bind: ^1.0.2 es-to-primitive: ^1.2.1 function-bind: ^1.1.1 get-intrinsic: ^1.1.1 - get-symbol-description: ^1.0.0 has: ^1.0.3 has-symbols: ^1.0.2 internal-slot: ^1.0.3 - is-callable: ^1.2.4 + is-callable: ^1.2.3 is-negative-zero: ^2.0.1 - is-regex: ^1.1.4 - is-string: ^1.0.7 + is-regex: ^1.1.3 + is-string: ^1.0.6 object-inspect: ^1.11.0 object-keys: ^1.1.1 object.assign: ^4.1.2 string.prototype.trimend: ^1.0.4 string.prototype.trimstart: ^1.0.4 unbox-primitive: ^1.0.1 - checksum: 8903ed187a9f66a8b21385401770124b37ded75a9cd99c7ea22e709ca667e7b549f37dc8bf9bf458a6cdb908c95a16fed389e2871bb3a28bfaab46db555cb1f3 + checksum: 9b64145b077863c9572dd8cd50e190833d241a135505ec422efe829c5fc085c475e6daca378b2b45acc288f28bf85e942b3ef2cb0f69daa250240781e1081cc4 languageName: node linkType: hard -"es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1": - version: 1.19.1 - resolution: "es-abstract@npm:1.19.1" +"es-abstract@npm:^1.18.1": + version: 1.18.6 + resolution: "es-abstract@npm:1.18.6" dependencies: call-bind: ^1.0.2 es-to-primitive: ^1.2.1 @@ -9006,16 +9015,14 @@ __metadata: is-callable: ^1.2.4 is-negative-zero: ^2.0.1 is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.1 is-string: ^1.0.7 - is-weakref: ^1.0.1 object-inspect: ^1.11.0 object-keys: ^1.1.1 object.assign: ^4.1.2 string.prototype.trimend: ^1.0.4 string.prototype.trimstart: ^1.0.4 unbox-primitive: ^1.0.1 - checksum: b6be8410672c5364db3fb01eb786e30c7b4bb32b4af63d381c08840f4382c4a168e7855cd338bf59d4f1a1a1138f4d748d1fd40ec65aaa071876f9e9fbfed949 + checksum: 8903ed187a9f66a8b21385401770124b37ded75a9cd99c7ea22e709ca667e7b549f37dc8bf9bf458a6cdb908c95a16fed389e2871bb3a28bfaab46db555cb1f3 languageName: node linkType: hard @@ -9179,16 +9186,6 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.6.2": - version: 2.6.2 - resolution: "eslint-module-utils@npm:2.6.2" - dependencies: - debug: ^3.2.7 - pkg-dir: ^2.0.0 - checksum: 814591f494e4f4b04c1af0fde2a679e7a7664a5feb51175e02ba96d671e34ec60cb1835d174508eb81c07a6c92c243f84c6349f4169b3bec1a8dbdd36a0934f3 - languageName: node - linkType: hard - "eslint-module-utils@npm:^2.7.0": version: 2.7.1 resolution: "eslint-module-utils@npm:2.7.1" @@ -9212,32 +9209,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.22.1": - version: 2.24.2 - resolution: "eslint-plugin-import@npm:2.24.2" - dependencies: - array-includes: ^3.1.3 - array.prototype.flat: ^1.2.4 - debug: ^2.6.9 - doctrine: ^2.1.0 - eslint-import-resolver-node: ^0.3.6 - eslint-module-utils: ^2.6.2 - find-up: ^2.0.0 - has: ^1.0.3 - is-core-module: ^2.6.0 - minimatch: ^3.0.4 - object.values: ^1.1.4 - pkg-up: ^2.0.0 - read-pkg-up: ^3.0.0 - resolve: ^1.20.0 - tsconfig-paths: ^3.11.0 - peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 - checksum: df570aec83ffa126fd80596d9fb1b6799d3cde025ceeb159eb28383541ebbb855468c9a2dbc670ab9e91dd0a8f8a82e52fd909a7c61e9ffa585bcce84ae1aec4 - languageName: node - linkType: hard - -"eslint-plugin-import@npm:^2.25.2": +"eslint-plugin-import@npm:^2.22.1, eslint-plugin-import@npm:^2.25.2": version: 2.25.2 resolution: "eslint-plugin-import@npm:2.25.2" dependencies: @@ -10979,6 +10951,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"html-parse-stringify@npm:^3.0.1": + version: 3.0.1 + resolution: "html-parse-stringify@npm:3.0.1" + dependencies: + void-elements: 3.1.0 + checksum: 334fdebd4b5c355dba8e95284cead6f62bf865a2359da2759b039db58c805646350016d2017875718bc3c4b9bf81a0d11be5ee0cf4774a3a5a7b97cde21cfd67 + languageName: node + linkType: hard + "html-webpack-plugin@npm:4.5.0": version: 4.5.0 resolution: "html-webpack-plugin@npm:4.5.0" @@ -11163,6 +11144,33 @@ fsevents@^1.2.7: languageName: node linkType: hard +"i18next-browser-languagedetector@npm:^6.1.2": + version: 6.1.2 + resolution: "i18next-browser-languagedetector@npm:6.1.2" + dependencies: + "@babel/runtime": ^7.14.6 + checksum: 927719d2ad186ced97b16348d9db730333632f3ca47c762022e46315045f4fcacb86df33ed3f5c57aa90cac1e010ec2227de51776cf55a2ec0ab54b4d79cc06b + languageName: node + linkType: hard + +"i18next-http-backend@npm:^1.3.1": + version: 1.3.1 + resolution: "i18next-http-backend@npm:1.3.1" + dependencies: + cross-fetch: 3.1.4 + checksum: 4ee1d241f562e56b45f7125a3aee73517623a1af3eca7a4c5af8c537c732ed848268fde68c44fce3a34dec2ac2e30e8e5a4f8679abd3de0241fbb72d2f4fd65f + languageName: node + linkType: hard + +"i18next@npm:^21.3.1": + version: 21.3.3 + resolution: "i18next@npm:21.3.3" + dependencies: + "@babel/runtime": ^7.12.0 + checksum: 666462d8f3163b5867823b09a186b981f69be71cf5924c7b4d6749ba5b6e248eb5796e6928da1b5b19d17a0e6a51aa1922012c5aef269c90ebfe837b9d2db067 + languageName: node + linkType: hard + "iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" @@ -11591,16 +11599,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"is-core-module@npm:^2.0.0, is-core-module@npm:^2.2.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.6.0": - version: 2.6.0 - resolution: "is-core-module@npm:2.6.0" - dependencies: - has: ^1.0.3 - checksum: 183b3b96fed19822b13959876b0317e61fc2cb5ebcbc21639904c81f7ae328af57f8e18cc4750a9c4abebd686130c70d34a89521e57dbe002edfa4614507ce18 - languageName: node - linkType: hard - -"is-core-module@npm:^2.7.0": +"is-core-module@npm:^2.0.0, is-core-module@npm:^2.2.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.7.0": version: 2.8.0 resolution: "is-core-module@npm:2.8.0" dependencies: @@ -13614,13 +13613,20 @@ fsevents@^1.2.7: languageName: node linkType: hard -"mime-db@npm:1.49.0, mime-db@npm:>= 1.43.0 < 2": +"mime-db@npm:1.49.0": version: 1.49.0 resolution: "mime-db@npm:1.49.0" checksum: 3744efc45b17896ff8a5934a761c434d5ffe3c7816662002d799ca9934347e00f99ae4d9b4ddf1c48d391cc9e522cc4523a6e77e7701f8e27c426e3e1d6e215a languageName: node linkType: hard +"mime-db@npm:>= 1.43.0 < 2": + version: 1.50.0 + resolution: "mime-db@npm:1.50.0" + checksum: 95fcc19c3664ae72391c8a7e4015dde7fb6817c98c951493ca3a1d48050feb8ee08810a372ce7d9e16310042d26e5bda168916f600583a9a583655eeea8ff5f5 + languageName: node + linkType: hard + "mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24": version: 2.1.32 resolution: "mime-types@npm:2.1.32" @@ -14063,13 +14069,22 @@ fsevents@^1.2.7: languageName: node linkType: hard -"node-fetch@npm:2.6.1, node-fetch@npm:^2.6.1": +"node-fetch@npm:2.6.1": version: 2.6.1 resolution: "node-fetch@npm:2.6.1" checksum: 91075bedd57879117e310fbcc36983ad5d699e522edb1ebcdc4ee5294c982843982652925c3532729fdc86b2d64a8a827797a745f332040d91823c8752ee4d7c languageName: node linkType: hard +"node-fetch@npm:^2.6.1": + version: 2.6.5 + resolution: "node-fetch@npm:2.6.5" + dependencies: + whatwg-url: ^5.0.0 + checksum: 4e83db450718e70762882f00d96f647a7f2f3170035225934ddd5450cb1d91ef339ceb180d3687bcb0a6ed78c3fa5636ce8d3e44ec81ab59e0224ebf8965f65f + languageName: node + linkType: hard + "node-forge@npm:^0.10.0": version: 0.10.0 resolution: "node-forge@npm:0.10.0" @@ -14215,6 +14230,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"node-releases@npm:^2.0.0": + version: 2.0.1 + resolution: "node-releases@npm:2.0.1" + checksum: b20dd8d4bced11f75060f0387e05e76b9dc4a0451f7bb3516eade6f50499ea7768ba95d8a60d520c193402df1e58cb3fe301510cc1c1ad68949c3d57b5149866 + languageName: node + linkType: hard + "nopt@npm:^4.0.1": version: 4.0.3 resolution: "nopt@npm:4.0.3" @@ -14611,18 +14633,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"object.values@npm:^1.1.0, object.values@npm:^1.1.4": - version: 1.1.4 - resolution: "object.values@npm:1.1.4" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.18.2 - checksum: 1a2f1e9d0bcfc299b8491170a50e6e7ca23392641d7781a8528e96c72f0013ba7ee731792ff8586c8eaec0328acda16c59622924c82c58bd0eb5c4ee67794856 - languageName: node - linkType: hard - -"object.values@npm:^1.1.5": +"object.values@npm:^1.1.0, object.values@npm:^1.1.4, object.values@npm:^1.1.5": version: 1.1.5 resolution: "object.values@npm:1.1.5" dependencies: @@ -15191,6 +15202,20 @@ fsevents@^1.2.7: languageName: node linkType: hard +"picocolors@npm:^0.2.1": + version: 0.2.1 + resolution: "picocolors@npm:0.2.1" + checksum: 3b0f441f0062def0c0f39e87b898ae7461c3a16ffc9f974f320b44c799418cabff17780ee647fda42b856a1dc45897e2c62047e1b546d94d6d5c6962f45427b2 + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 + languageName: node + linkType: hard + "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3": version: 2.3.0 resolution: "picomatch@npm:2.3.0" @@ -15287,15 +15312,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"pkg-up@npm:^2.0.0": - version: 2.0.0 - resolution: "pkg-up@npm:2.0.0" - dependencies: - find-up: ^2.1.0 - checksum: de4b418175281a082e366ce1a919f032520ee53cf421578b35173f03816f6ec4c19e1552066840bb0988c3e1215859653948efd6ca3507a23f4f44229269500d - languageName: node - linkType: hard - "please-upgrade-node@npm:^3.2.0": version: 3.2.0 resolution: "please-upgrade-node@npm:3.2.0" @@ -16129,7 +16145,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"postcss@npm:7.0.36, postcss@npm:^7, postcss@npm:^7.0.0, postcss@npm:^7.0.1, postcss@npm:^7.0.14, postcss@npm:^7.0.17, postcss@npm:^7.0.2, postcss@npm:^7.0.26, postcss@npm:^7.0.27, postcss@npm:^7.0.32, postcss@npm:^7.0.5, postcss@npm:^7.0.6": +"postcss@npm:7.0.36": version: 7.0.36 resolution: "postcss@npm:7.0.36" dependencies: @@ -16140,6 +16156,16 @@ fsevents@^1.2.7: languageName: node linkType: hard +"postcss@npm:^7, postcss@npm:^7.0.0, postcss@npm:^7.0.1, postcss@npm:^7.0.14, postcss@npm:^7.0.17, postcss@npm:^7.0.2, postcss@npm:^7.0.26, postcss@npm:^7.0.27, postcss@npm:^7.0.32, postcss@npm:^7.0.5, postcss@npm:^7.0.6": + version: 7.0.39 + resolution: "postcss@npm:7.0.39" + dependencies: + picocolors: ^0.2.1 + source-map: ^0.6.1 + checksum: 4ac793f506c23259189064bdc921260d869a115a82b5e713973c5af8e94fbb5721a5cc3e1e26840500d7e1f1fa42a209747c5b1a151918a9bc11f0d7ed9048e3 + languageName: node + linkType: hard + "postcss@npm:^8.1.0": version: 8.3.6 resolution: "postcss@npm:8.3.6" @@ -16668,6 +16694,19 @@ fsevents@^1.2.7: languageName: node linkType: hard +"react-i18next@npm:^11.12.0": + version: 11.12.0 + resolution: "react-i18next@npm:11.12.0" + dependencies: + "@babel/runtime": ^7.14.5 + html-parse-stringify: ^3.0.1 + peerDependencies: + i18next: ">= 19.0.0" + react: ">= 16.8.0" + checksum: 985e1ede08ab4e1235a03680d339cb558c7c360e5435924587c383dd1c5a183d0656d1f72e59deda757864c78e137d0c664f9daadf9ccdca42ca56cce5db7b23 + languageName: node + linkType: hard + "react-is@npm:^16.7.0, react-is@npm:^16.8.1": version: 16.13.1 resolution: "react-is@npm:16.13.1" @@ -16802,6 +16841,20 @@ fsevents@^1.2.7: languageName: node linkType: hard +"react-spring@npm:^9.2.6": + version: 9.3.0 + resolution: "react-spring@npm:9.3.0" + dependencies: + "@react-spring/core": ~9.3.0 + "@react-spring/konva": ~9.3.0 + "@react-spring/native": ~9.3.0 + "@react-spring/three": ~9.3.0 + "@react-spring/web": ~9.3.0 + "@react-spring/zdog": ~9.3.0 + checksum: 7999f43bcfbdef5dfb0ff9d5447f18f22b147eb397ff5e2ec2208540e1acc7acc738625b2e431366eea0b066739e61032e54f54bf6125be44b13511b2092643d + languageName: node + linkType: hard + "react-style-singleton@npm:^2.1.0": version: 2.1.1 resolution: "react-style-singleton@npm:2.1.1" @@ -18608,7 +18661,7 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard -"strip-ansi@npm:6.0.0, strip-ansi@npm:^6.0.0": +"strip-ansi@npm:6.0.0": version: 6.0.0 resolution: "strip-ansi@npm:6.0.0" dependencies: @@ -18644,6 +18697,15 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"strip-ansi@npm:^6.0.0": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + "strip-bom@npm:^3.0.0": version: 3.0.0 resolution: "strip-bom@npm:3.0.0" @@ -19202,6 +19264,13 @@ resolve@^2.0.0-next.3: languageName: node linkType: hard +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 726321c5eaf41b5002e17ffbd1fb7245999a073e8979085dacd47c4b4e8068ff5777142fc6726d6ca1fd2ff16921b48788b87225cbc57c72636f6efa8efbffe3 + languageName: node + linkType: hard + "trim-newlines@npm:^3.0.0": version: 3.0.1 resolution: "trim-newlines@npm:3.0.1" @@ -19885,6 +19954,13 @@ typescript@^4.4.4: languageName: node linkType: hard +"void-elements@npm:3.1.0": + version: 3.1.0 + resolution: "void-elements@npm:3.1.0" + checksum: 0390f818107fa8fce55bb0a5c3f661056001c1d5a2a48c28d582d4d847347c2ab5b7f8272314cac58acf62345126b6b09bea623a185935f6b1c3bbce0dfd7f7f + languageName: node + linkType: hard + "w3c-hr-time@npm:^1.0.2": version: 1.0.2 resolution: "w3c-hr-time@npm:1.0.2" @@ -19956,6 +20032,13 @@ typescript@^4.4.4: languageName: node linkType: hard +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: c92a0a6ab95314bde9c32e1d0a6dfac83b578f8fa5f21e675bc2706ed6981bc26b7eb7e6a1fab158e5ce4adf9caa4a0aee49a52505d4d13c7be545f15021b17c + languageName: node + linkType: hard + "webidl-conversions@npm:^5.0.0": version: 5.0.0 resolution: "webidl-conversions@npm:5.0.0" @@ -20155,6 +20238,16 @@ typescript@^4.4.4: languageName: node linkType: hard +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: ~0.0.3 + webidl-conversions: ^3.0.0 + checksum: b8daed4ad3356cc4899048a15b2c143a9aed0dfae1f611ebd55073310c7b910f522ad75d727346ad64203d7e6c79ef25eafd465f4d12775ca44b90fa82ed9e2c + languageName: node + linkType: hard + "whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.4.0, whatwg-url@npm:^8.5.0": version: 8.7.0 resolution: "whatwg-url@npm:8.7.0"