feat: UI mint integration (#139)
* feat: add base hook for fleekerc721 * feat: add test view for minting using wagmi * refactor: from hook to context creation * refactor: work on provider configs * feat: append mint transaction to mint view * chore: add comments * feat: add nfa price estimation * fix: remove forgotten logs * fix: repo and branch url creating and variable misspells * fix: accidently removed yarn.lock file * fix: misspelled repositores * chore: add disclaimer comment at mint-test view * refactor: remove wallet store
This commit is contained in:
parent
b3b9f30f05
commit
b957e87a83
|
|
@ -20,6 +20,7 @@
|
|||
"@react-icons/all-files": "^4.1.0",
|
||||
"@reduxjs/toolkit": "^1.9.1",
|
||||
"@stitches/react": "^1.2.8",
|
||||
"abitype": "^0.5.0",
|
||||
"colorthief": "^2.3.2",
|
||||
"connectkit": "^1.1.3",
|
||||
"firebase": "^9.17.1",
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
import { BrowserRouter, Route, Routes, Navigate } from 'react-router-dom';
|
||||
import { initializeWallet } from './store';
|
||||
import { themeGlobals } from '@/theme/globals';
|
||||
import { Home, Mint } from './views';
|
||||
import { SVGTestScreen } from './views/svg-test'; // TODO: remove when done
|
||||
import { ConnectKitButton } from 'connectkit';
|
||||
|
||||
initializeWallet();
|
||||
import { MintTest } from './views/mint-test';
|
||||
|
||||
export const App = () => {
|
||||
themeGlobals();
|
||||
|
|
@ -20,6 +18,7 @@ export const App = () => {
|
|||
<Route path="/home" element={<Home />} />
|
||||
<Route path="/mint" element={<Mint />} />
|
||||
<Route path="/svg" element={<SVGTestScreen />} />
|
||||
<Route path="/mint-test" element={<MintTest />} />
|
||||
<Route path="*" element={<Navigate to="/home" />} />
|
||||
</Routes>
|
||||
</BrowserRouter>
|
||||
|
|
|
|||
|
|
@ -3,74 +3,76 @@ import { ButtonContent } from './button-content';
|
|||
import { ButtonSpinner } from './button-spinner';
|
||||
import { forwardRef } from 'react';
|
||||
|
||||
export const Button = forwardRef<ButtonProps, 'button'>((props, ref) => {
|
||||
const {
|
||||
isActive,
|
||||
isLoading,
|
||||
isDisabled,
|
||||
spinnerPlacement = 'start',
|
||||
spinner,
|
||||
loadingText,
|
||||
iconSpacing,
|
||||
topIcon,
|
||||
bottomIcon,
|
||||
rightIcon,
|
||||
leftIcon,
|
||||
isFullWidth,
|
||||
children,
|
||||
...ownProps
|
||||
} = props;
|
||||
export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
|
||||
(props, ref) => {
|
||||
const {
|
||||
isActive,
|
||||
isLoading,
|
||||
isDisabled,
|
||||
spinnerPlacement = 'start',
|
||||
spinner,
|
||||
loadingText,
|
||||
iconSpacing,
|
||||
topIcon,
|
||||
bottomIcon,
|
||||
rightIcon,
|
||||
leftIcon,
|
||||
isFullWidth,
|
||||
children,
|
||||
...ownProps
|
||||
} = props;
|
||||
|
||||
const contentProps = {
|
||||
rightIcon,
|
||||
leftIcon,
|
||||
bottomIcon,
|
||||
topIcon,
|
||||
iconSpacing,
|
||||
children,
|
||||
};
|
||||
const contentProps = {
|
||||
rightIcon,
|
||||
leftIcon,
|
||||
bottomIcon,
|
||||
topIcon,
|
||||
iconSpacing,
|
||||
children,
|
||||
};
|
||||
|
||||
return (
|
||||
<StyledButton
|
||||
ref={ref}
|
||||
disabled={isDisabled || isLoading}
|
||||
data-active={isActive}
|
||||
data-loading={isLoading}
|
||||
css={{
|
||||
width: isFullWidth ? '100%' : undefined,
|
||||
...(ownProps?.css || {}),
|
||||
}}
|
||||
{...ownProps}
|
||||
>
|
||||
{isLoading && spinnerPlacement === 'start' && (
|
||||
<ButtonSpinner
|
||||
label={loadingText}
|
||||
placement={spinnerPlacement}
|
||||
spacing={iconSpacing}
|
||||
>
|
||||
{spinner}
|
||||
</ButtonSpinner>
|
||||
)}
|
||||
return (
|
||||
<StyledButton
|
||||
ref={ref}
|
||||
disabled={isDisabled || isLoading}
|
||||
data-active={isActive}
|
||||
data-loading={isLoading}
|
||||
css={{
|
||||
width: isFullWidth ? '100%' : undefined,
|
||||
...(ownProps?.css || {}),
|
||||
}}
|
||||
{...ownProps}
|
||||
>
|
||||
{isLoading && spinnerPlacement === 'start' && (
|
||||
<ButtonSpinner
|
||||
label={loadingText}
|
||||
placement={spinnerPlacement}
|
||||
spacing={iconSpacing}
|
||||
>
|
||||
{spinner}
|
||||
</ButtonSpinner>
|
||||
)}
|
||||
|
||||
{isLoading ? (
|
||||
loadingText || (
|
||||
<span style={{ opacity: 0 }}>
|
||||
<ButtonContent {...contentProps} />
|
||||
</span>
|
||||
)
|
||||
) : (
|
||||
<ButtonContent {...contentProps} />
|
||||
)}
|
||||
{isLoading ? (
|
||||
loadingText || (
|
||||
<span style={{ opacity: 0 }}>
|
||||
<ButtonContent {...contentProps} />
|
||||
</span>
|
||||
)
|
||||
) : (
|
||||
<ButtonContent {...contentProps} />
|
||||
)}
|
||||
|
||||
{isLoading && spinnerPlacement === 'end' && (
|
||||
<ButtonSpinner
|
||||
label={loadingText}
|
||||
placement={spinnerPlacement}
|
||||
spacing={iconSpacing}
|
||||
>
|
||||
{spinner}
|
||||
</ButtonSpinner>
|
||||
)}
|
||||
</StyledButton>
|
||||
);
|
||||
});
|
||||
{isLoading && spinnerPlacement === 'end' && (
|
||||
<ButtonSpinner
|
||||
label={loadingText}
|
||||
placement={spinnerPlacement}
|
||||
spacing={iconSpacing}
|
||||
>
|
||||
{spinner}
|
||||
</ButtonSpinner>
|
||||
)}
|
||||
</StyledButton>
|
||||
);
|
||||
}
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
import { ExternalProvider } from '@ethersproject/providers';
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
ethereum: ExternalProvider;
|
||||
}
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
export * from './use-toast';
|
||||
export * from './use-transaction-cost';
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
import { useToast as useToastChakra } from '@chakra-ui/react';
|
||||
|
||||
export const useToast = () => {
|
||||
return useToastChakra({
|
||||
duration: 3000,
|
||||
isClosable: true,
|
||||
});
|
||||
};
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
import { useFeeData, useNetwork } from 'wagmi';
|
||||
import { ethers } from 'ethers';
|
||||
import { useMemo } from 'react';
|
||||
|
||||
export const useTransactionCost = (
|
||||
value = ethers.BigNumber.from(0),
|
||||
gasLimit = ethers.BigNumber.from(0)
|
||||
): [ethers.BigNumber, string, boolean] => {
|
||||
const { data: feeData } = useFeeData();
|
||||
const { chain } = useNetwork();
|
||||
|
||||
return useMemo(() => {
|
||||
if (!feeData || !feeData.gasPrice || !chain)
|
||||
return [ethers.BigNumber.from(0), '', true];
|
||||
|
||||
return [
|
||||
gasLimit.mul(feeData.gasPrice).add(value),
|
||||
chain.nativeCurrency.symbol,
|
||||
false,
|
||||
];
|
||||
}, [feeData, chain, value, gasLimit]);
|
||||
};
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,175 @@
|
|||
import {
|
||||
Address,
|
||||
useContractWrite,
|
||||
usePrepareContractWrite,
|
||||
useWaitForTransaction,
|
||||
UsePrepareContractWriteConfig,
|
||||
} from 'wagmi';
|
||||
import type { Abi as AbiType } from 'abitype';
|
||||
import { FleekERC721 } from '../contracts';
|
||||
import { createContext } from '@/utils';
|
||||
import { useState } from 'react';
|
||||
|
||||
/**
|
||||
* This is a factory to create context factories for contracts write.
|
||||
* It should be used inside other context factories specific for each
|
||||
* contract.
|
||||
*/
|
||||
const createWriteContractContext = <
|
||||
TAbi extends EthereumHooks.Abi,
|
||||
TArgumentsMap extends EthereumHooks.WriteContext.ArgumentsMap,
|
||||
TFunctionName extends keyof TArgumentsMap & string,
|
||||
TFunctionArguments extends TArgumentsMap[TFunctionName]
|
||||
>(
|
||||
address: string,
|
||||
abi: TAbi,
|
||||
functionName: TFunctionName,
|
||||
name = `WriteContractContext[${functionName}]`,
|
||||
hookName = `[${functionName}] write contract hook`,
|
||||
providerName = `Write contract [${functionName}] provider`
|
||||
) => {
|
||||
const [InternalProvider, useInternalProvider] = createContext<
|
||||
EthereumHooks.WriteContext.InternalContextProps<
|
||||
TAbi,
|
||||
TArgumentsMap,
|
||||
TFunctionName,
|
||||
TFunctionArguments
|
||||
>
|
||||
>({
|
||||
name,
|
||||
hookName,
|
||||
providerName,
|
||||
});
|
||||
|
||||
const Provider = ({
|
||||
children,
|
||||
config: {
|
||||
prepare: prepareConfig = {},
|
||||
transaction: transactionConfig = {},
|
||||
write: writeConfig = {},
|
||||
} = {},
|
||||
}: EthereumHooks.WriteContext.ProviderProps<TFunctionName>) => {
|
||||
const [args, setArgs] = useState<TFunctionArguments>();
|
||||
|
||||
const prepare = usePrepareContractWrite({
|
||||
address: address as Address,
|
||||
abi: abi as unknown[],
|
||||
functionName,
|
||||
args,
|
||||
...prepareConfig,
|
||||
});
|
||||
|
||||
const write = useContractWrite({ ...prepare.config, ...writeConfig });
|
||||
|
||||
const transaction = useWaitForTransaction({
|
||||
hash: write.data?.hash,
|
||||
...transactionConfig,
|
||||
});
|
||||
|
||||
const value = {
|
||||
functionName,
|
||||
prepare,
|
||||
write,
|
||||
transaction,
|
||||
setArgs,
|
||||
};
|
||||
|
||||
return <InternalProvider value={value}>{children}</InternalProvider>;
|
||||
};
|
||||
|
||||
return [Provider, useInternalProvider] as const;
|
||||
};
|
||||
|
||||
/**
|
||||
* React hooks and related to interact with Ethereum.
|
||||
*/
|
||||
export const EthereumHooks = {
|
||||
/**
|
||||
* Context factory for FleekERC721 write functions.
|
||||
*/
|
||||
createFleekERC721WriteContext: <
|
||||
TFunctionName extends keyof ArgumentsMaps.FleekERC721 & string,
|
||||
TFunctionArguments extends ArgumentsMaps.FleekERC721[TFunctionName]
|
||||
>(
|
||||
functionName: TFunctionName
|
||||
) => {
|
||||
return createWriteContractContext<
|
||||
typeof FleekERC721.abi,
|
||||
ArgumentsMaps.FleekERC721,
|
||||
TFunctionName,
|
||||
TFunctionArguments
|
||||
>(FleekERC721.address, FleekERC721.abi, functionName);
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* EthereumHooks used typings.
|
||||
*/
|
||||
export namespace EthereumHooks {
|
||||
export type Abi = AbiType | readonly unknown[];
|
||||
|
||||
export namespace WriteContext {
|
||||
export type ArgumentsMap = Record<string, (string | number | boolean)[]>;
|
||||
|
||||
export interface InternalContextProps<
|
||||
TAbi extends Abi,
|
||||
TArgumentsMap extends ArgumentsMap,
|
||||
TFunctionName extends keyof TArgumentsMap & string,
|
||||
TFunctionArguments extends TArgumentsMap[TFunctionName]
|
||||
> {
|
||||
functionName: TFunctionName;
|
||||
prepare: ReturnType<
|
||||
typeof usePrepareContractWrite<TAbi, TFunctionName, number>
|
||||
>;
|
||||
write: ReturnType<
|
||||
typeof useContractWrite<'prepared', TAbi, TFunctionName>
|
||||
>;
|
||||
transaction: ReturnType<typeof useWaitForTransaction>;
|
||||
setArgs: (args: TFunctionArguments) => void;
|
||||
}
|
||||
|
||||
export interface ProviderConfig<TFunctionName extends string> {
|
||||
prepare?: Omit<
|
||||
UsePrepareContractWriteConfig<any, TFunctionName>,
|
||||
'address' | 'abi' | 'functionName' | 'args'
|
||||
>;
|
||||
write?: Omit<
|
||||
Exclude<Parameters<typeof useContractWrite>[0], undefined>,
|
||||
'mode' | 'address' | 'abi' | 'functionName' | 'args'
|
||||
>;
|
||||
transaction?: Omit<
|
||||
Exclude<Parameters<typeof useWaitForTransaction>[0], undefined>,
|
||||
'hash'
|
||||
>;
|
||||
}
|
||||
|
||||
export interface ProviderProps<TFunctionName extends string> {
|
||||
children?: React.ReactNode | React.ReactNode[];
|
||||
config?: ProviderConfig<TFunctionName>;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Identified types to interact with known contracts using EthereumHooks contexts.
|
||||
*/
|
||||
export namespace ArgumentsMaps {
|
||||
export interface FleekERC721 extends EthereumHooks.WriteContext.ArgumentsMap {
|
||||
mint: [
|
||||
string, // address to
|
||||
string, // string name
|
||||
string, // string description
|
||||
string, // string externalURL
|
||||
string, // string ENS
|
||||
string, // string commitHash
|
||||
string, // string gitRepository
|
||||
string, // string logo
|
||||
number, // uint24 color
|
||||
boolean // bool accessPointAutoApproval
|
||||
];
|
||||
|
||||
/**
|
||||
* TODO: Add other functions arguments as they are needed.
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
export * from './ethereum-hooks';
|
||||
|
|
@ -1,2 +1,3 @@
|
|||
export * from './ethereum';
|
||||
export * from './lib';
|
||||
export * from './hooks';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { githubActions, Repository, RootState } from '@/store';
|
||||
import { githubActions, RootState } from '@/store';
|
||||
import { createAsyncThunk } from '@reduxjs/toolkit';
|
||||
import { GithubClient } from '../github-client';
|
||||
|
||||
|
|
@ -16,11 +16,14 @@ export const fetchRepositoriesThunk = createAsyncThunk(
|
|||
|
||||
const repositories = await githubClient.fetchRepos(url);
|
||||
|
||||
console.log(repositories);
|
||||
|
||||
dispatch(
|
||||
githubActions.setRepositoires(
|
||||
repositories.map(
|
||||
(repo: any) => ({ name: repo.name, url: repo.url } as Repository)
|
||||
)
|
||||
githubActions.setRepositories(
|
||||
repositories.map((repo: any) => ({
|
||||
name: repo.name,
|
||||
url: repo.html_url,
|
||||
}))
|
||||
)
|
||||
);
|
||||
} catch (error) {
|
||||
|
|
|
|||
|
|
@ -2,14 +2,9 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit';
|
|||
import { RootState } from '@/store';
|
||||
import { useAppSelector } from '@/store/hooks';
|
||||
import * as asyncThunk from './async-thunk';
|
||||
import { ComboboxItem, DropdownItem } from '@/components';
|
||||
import { DropdownItem } from '@/components';
|
||||
import { UserData } from './github-client';
|
||||
|
||||
export type Repository = {
|
||||
name: string;
|
||||
url: string;
|
||||
};
|
||||
|
||||
export namespace GithubState {
|
||||
export type Token = string;
|
||||
|
||||
|
|
@ -25,6 +20,11 @@ export namespace GithubState {
|
|||
|
||||
export type UserAndOrganizations = Array<UserData>;
|
||||
|
||||
export type Repository = {
|
||||
name: string;
|
||||
url: string;
|
||||
};
|
||||
|
||||
export type Repositories = Array<Repository>;
|
||||
|
||||
export type Branches = Array<DropdownItem>;
|
||||
|
|
@ -65,9 +65,9 @@ export const githubSlice = createSlice({
|
|||
state.token = '';
|
||||
state.state = action.payload;
|
||||
},
|
||||
setRepositoires: (
|
||||
setRepositories: (
|
||||
state,
|
||||
action: PayloadAction<GithubState.Repositoires>
|
||||
action: PayloadAction<GithubState.Repositories>
|
||||
) => {
|
||||
state.repositories = action.payload;
|
||||
state.queryLoading = 'success';
|
||||
|
|
|
|||
|
|
@ -1,2 +1 @@
|
|||
export * from './wallet';
|
||||
export * from './github';
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
import { createAsyncThunk } from '@reduxjs/toolkit';
|
||||
import { walletActions, WalletState } from '../wallet-slice';
|
||||
import { RootState } from '@/store/store';
|
||||
import { Ethereum } from '@/integrations';
|
||||
|
||||
export const connect = createAsyncThunk<
|
||||
void,
|
||||
Exclude<WalletState.Provider, null>
|
||||
>('wallet/connect', async (providerName, { dispatch, getState }) => {
|
||||
if ((getState() as RootState).wallet.state === 'loading') return;
|
||||
|
||||
try {
|
||||
dispatch(walletActions.setState('loading'));
|
||||
dispatch(walletActions.setProvider(providerName));
|
||||
|
||||
const response = await Ethereum.provider[providerName].send(
|
||||
'eth_requestAccounts',
|
||||
[]
|
||||
);
|
||||
|
||||
if (Array.isArray(response)) {
|
||||
const [account] = response;
|
||||
|
||||
if (typeof account !== 'string') throw Error('Invalid account type');
|
||||
dispatch(walletActions.setAccount(account));
|
||||
return;
|
||||
}
|
||||
|
||||
throw Error('Invalid response type');
|
||||
} catch (e) {
|
||||
console.error('Could not connect to Wallet', e);
|
||||
dispatch(walletActions.setState('disconnected'));
|
||||
}
|
||||
});
|
||||
|
|
@ -1 +0,0 @@
|
|||
export * from './connect';
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
export * from './wallet-slice';
|
||||
export * from './utils';
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
import { Ethereum } from '@/integrations';
|
||||
import { store } from '../../store';
|
||||
import { walletActions } from './wallet-slice';
|
||||
|
||||
export const initializeWallet = async (): Promise<void> => {
|
||||
// metamask
|
||||
try {
|
||||
const metamask = Ethereum.provider.metamask;
|
||||
const accounts = await metamask.listAccounts();
|
||||
if (accounts && accounts.length > 0) {
|
||||
store.dispatch(walletActions.setAccount(accounts[0]));
|
||||
}
|
||||
metamask.on('accountsChanged', (accounts: string[]) => {
|
||||
store.dispatch(walletActions.setAccount(accounts[0]));
|
||||
});
|
||||
store.dispatch(walletActions.setProvider('metamask'));
|
||||
} catch {}
|
||||
};
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
|
||||
import * as asyncThunk from './async-thunk';
|
||||
import { RootState } from '@/store';
|
||||
import { useAppSelector } from '@/store/hooks';
|
||||
import { Ethereum } from '@/integrations';
|
||||
|
||||
export namespace WalletState {
|
||||
export type Provider = Ethereum.Providers | null;
|
||||
|
||||
export type State = 'disconnected' | 'loading' | 'connected';
|
||||
|
||||
export type Account = string;
|
||||
}
|
||||
|
||||
export interface WalletState {
|
||||
provider: WalletState.Provider;
|
||||
state: WalletState.State;
|
||||
account?: WalletState.Account;
|
||||
}
|
||||
|
||||
const initialState: WalletState = {
|
||||
provider: null,
|
||||
state: 'disconnected',
|
||||
account: undefined,
|
||||
};
|
||||
|
||||
export const walletSlice = createSlice({
|
||||
name: 'wallet',
|
||||
initialState,
|
||||
reducers: {
|
||||
setProvider: (state, action: PayloadAction<WalletState.Provider>) => {
|
||||
state.provider = action.payload;
|
||||
},
|
||||
setAccount: (state, action: PayloadAction<string>) => {
|
||||
state.state = 'connected';
|
||||
state.account = action.payload;
|
||||
},
|
||||
setState: (
|
||||
state,
|
||||
action: PayloadAction<Exclude<WalletState.State, 'connected'>>
|
||||
) => {
|
||||
state.state = action.payload;
|
||||
state.provider = null;
|
||||
state.account = undefined;
|
||||
},
|
||||
disconnect: (state) => {
|
||||
state.state = 'disconnected';
|
||||
state.provider = null;
|
||||
state.account = undefined;
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const walletActions = {
|
||||
...walletSlice.actions,
|
||||
...asyncThunk,
|
||||
};
|
||||
|
||||
const selectWalletState = (state: RootState): WalletState => state.wallet;
|
||||
|
||||
export const useWalletStore = (): WalletState =>
|
||||
useAppSelector(selectWalletState);
|
||||
|
||||
export default walletSlice.reducer;
|
||||
|
|
@ -1,10 +1,8 @@
|
|||
import { configureStore } from '@reduxjs/toolkit';
|
||||
import walletReducer from './features/wallet/wallet-slice';
|
||||
import githubReducer from './features/github/github-slice';
|
||||
|
||||
export const store = configureStore({
|
||||
reducer: {
|
||||
wallet: walletReducer,
|
||||
github: githubReducer,
|
||||
},
|
||||
middleware: (getDefaultMiddleware) =>
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
export * from './mint-test';
|
||||
|
|
@ -0,0 +1,203 @@
|
|||
import { Button, Flex } from '@/components';
|
||||
import { Separator } from '@/components/core/separator.styles';
|
||||
import { EthereumHooks } from '@/integrations';
|
||||
import { ConnectKitButton } from 'connectkit';
|
||||
import { useAccount } from 'wagmi';
|
||||
|
||||
/**
|
||||
* This is an example about how to use the EthereumHooks to create a context for a contract method
|
||||
*
|
||||
* TODO: this view must be removed before releasing the app
|
||||
*/
|
||||
|
||||
// We first create a context for a selected contract method
|
||||
const [MintProvider, useMintContext] =
|
||||
EthereumHooks.createFleekERC721WriteContext('mint');
|
||||
|
||||
const Preparing: React.FC = () => {
|
||||
// We can check the states of the stage of the contract using the context
|
||||
const {
|
||||
prepare: { status: prepareStatus, data: prepareData, error: prepareError },
|
||||
setArgs,
|
||||
} = useMintContext();
|
||||
|
||||
const handlePrepare = () => {
|
||||
// `setArgs` will fulfill the arguments used to call the contract method
|
||||
setArgs([
|
||||
'0x7ED735b7095C05d78dF169F991f2b7f1A1F1A049',
|
||||
'App NFT',
|
||||
'App NFT Description',
|
||||
'https://appnft.com',
|
||||
'appnft.eth',
|
||||
'5843ce0ce03607180d9f0b58d4df048bf8a202c7',
|
||||
'https://github.com/fleekxyz/non-fungible-apps',
|
||||
'test-logo',
|
||||
0x123456,
|
||||
true,
|
||||
]);
|
||||
};
|
||||
|
||||
// We can change the UI rendering based on the states
|
||||
if (prepareStatus !== 'success') {
|
||||
const isLoading = prepareStatus === 'loading';
|
||||
return (
|
||||
<>
|
||||
{prepareStatus === 'error' && (
|
||||
<Flex css={{ flexDirection: 'column', gap: '$1' }}>
|
||||
<h2>Prepare Error:</h2>
|
||||
<pre>{JSON.stringify(prepareError, null, 2)}</pre>
|
||||
</Flex>
|
||||
)}
|
||||
|
||||
<Button
|
||||
onClick={handlePrepare}
|
||||
isLoading={isLoading}
|
||||
isDisabled={isLoading}
|
||||
>
|
||||
Prepare
|
||||
</Button>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Flex css={{ flexDirection: 'column', gap: '$1' }}>
|
||||
<h2>Prepare Data:</h2>
|
||||
<pre>{JSON.stringify(prepareData, null, 2)}</pre>
|
||||
</Flex>
|
||||
);
|
||||
};
|
||||
|
||||
const Minting: React.FC = () => {
|
||||
const {
|
||||
prepare: { status: prepareStatus },
|
||||
// In the write key we will have the trigger to call the contract method
|
||||
write: {
|
||||
status: mintStatus,
|
||||
write: mint,
|
||||
data: mintData,
|
||||
error: mintError,
|
||||
},
|
||||
} = useMintContext();
|
||||
|
||||
const handleMint = () => {
|
||||
// The trigger function will be undefined in case the contract method is not ready to be called
|
||||
// Preparing the contract method will run a gas estimation and will set the trigger function
|
||||
// If the gas estimation fails, the trigger function will be undefined
|
||||
// This may happen for invalid arguments, if the user has no permissions to call the method, etc.
|
||||
if (mint) mint();
|
||||
};
|
||||
|
||||
if (prepareStatus !== 'success') {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (mintStatus !== 'success') {
|
||||
const isLoading = mintStatus === 'loading';
|
||||
return (
|
||||
<>
|
||||
{mintStatus === 'error' && (
|
||||
<Flex css={{ flexDirection: 'column', gap: '$1' }}>
|
||||
<h2>Mint Error:</h2>
|
||||
<pre>{JSON.stringify(mintError, null, 2)}</pre>
|
||||
</Flex>
|
||||
)}
|
||||
|
||||
<Button isLoading={isLoading} disabled={isLoading} onClick={handleMint}>
|
||||
Mint!
|
||||
</Button>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Flex css={{ flexDirection: 'column', gap: '$1' }}>
|
||||
<h2>Mint Data:</h2>
|
||||
<pre>{JSON.stringify(mintData, null, 2)}</pre>
|
||||
</Flex>
|
||||
);
|
||||
};
|
||||
|
||||
const Waiting: React.FC = () => {
|
||||
const {
|
||||
write: { status: mintStatus },
|
||||
transaction: {
|
||||
status: transactionStatus,
|
||||
data: transactionData,
|
||||
error: transactionError,
|
||||
},
|
||||
} = useMintContext();
|
||||
|
||||
if (mintStatus !== 'success') {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (transactionStatus !== 'success') {
|
||||
if (transactionStatus === 'error') {
|
||||
console.error(transactionError);
|
||||
return <div>Transaction error</div>;
|
||||
}
|
||||
if (transactionStatus === 'loading')
|
||||
return <div>Waiting for transaction...</div>;
|
||||
}
|
||||
|
||||
return (
|
||||
<Flex css={{ flexDirection: 'column', gap: '$1' }}>
|
||||
<h2>Transaction Data:</h2>
|
||||
<pre>{JSON.stringify(transactionData, null, 2)}</pre>
|
||||
</Flex>
|
||||
);
|
||||
};
|
||||
|
||||
const Container: React.FC = () => (
|
||||
<Flex
|
||||
css={{
|
||||
flexDirection: 'column',
|
||||
gap: '$2',
|
||||
p: '$2',
|
||||
'& pre': {
|
||||
maxHeight: '200px',
|
||||
overflow: 'auto',
|
||||
backgroundColor: '#66666666',
|
||||
},
|
||||
}}
|
||||
>
|
||||
<Preparing />
|
||||
<Separator />
|
||||
<Minting />
|
||||
<Separator />
|
||||
<Waiting />
|
||||
</Flex>
|
||||
);
|
||||
|
||||
export const MintTest: React.FC = () => {
|
||||
const { isConnected } = useAccount();
|
||||
|
||||
return (
|
||||
// The provider must wrap the UI that will use the context
|
||||
<MintProvider
|
||||
config={{
|
||||
// We can setup callbacks for every stage of the process in this config
|
||||
prepare: {
|
||||
onSuccess: (data) => {
|
||||
console.log('Prepared', data);
|
||||
},
|
||||
},
|
||||
|
||||
write: {
|
||||
onSuccess: (data) => {
|
||||
console.log('Mint sent', data);
|
||||
},
|
||||
},
|
||||
|
||||
transaction: {
|
||||
onSuccess: (data) => {
|
||||
console.log('Transaction success', data);
|
||||
},
|
||||
},
|
||||
}}
|
||||
>
|
||||
{isConnected ? <Container /> : <ConnectKitButton />}
|
||||
</MintProvider>
|
||||
);
|
||||
};
|
||||
|
|
@ -9,21 +9,48 @@ import {
|
|||
} from './fields';
|
||||
import { MintCardHeader } from '../mint-card';
|
||||
import { useAccount } from 'wagmi';
|
||||
import { parseColorToNumber } from './form.utils';
|
||||
|
||||
export const FormStep = () => {
|
||||
const { address } = useAccount();
|
||||
const { prevStep, nextStep } = Stepper.useContext();
|
||||
const { appName, appDescription, domain } = Mint.useContext();
|
||||
const {
|
||||
appName,
|
||||
appDescription,
|
||||
domain,
|
||||
appLogo,
|
||||
branchName,
|
||||
commitHash,
|
||||
ens,
|
||||
logoColor,
|
||||
repositoryName,
|
||||
verifyNFA,
|
||||
} = Mint.useContext();
|
||||
const { setArgs } = Mint.useTransactionContext();
|
||||
|
||||
//TODO remove once it's integrated with mint function
|
||||
console.log('address', address);
|
||||
const handlePrevStep = () => {
|
||||
prevStep();
|
||||
const handleNextStep = () => {
|
||||
if (!address) return console.log('No address was found');
|
||||
// TODO: we need to make sure all values are correct before
|
||||
// setting the args otherwise mint may fail
|
||||
setArgs([
|
||||
address,
|
||||
appName,
|
||||
appDescription,
|
||||
domain,
|
||||
ens.value,
|
||||
commitHash,
|
||||
`${repositoryName.url}/tree/${branchName.label}`,
|
||||
appLogo,
|
||||
parseColorToNumber(logoColor),
|
||||
verifyNFA,
|
||||
]);
|
||||
|
||||
nextStep();
|
||||
};
|
||||
|
||||
return (
|
||||
<Card.Container css={{ width: '$107h' }}>
|
||||
<MintCardHeader title="NFA Details" onClickBack={handlePrevStep} />
|
||||
<MintCardHeader title="NFA Details" onClickBack={prevStep} />
|
||||
<Card.Body>
|
||||
<Grid
|
||||
css={{
|
||||
|
|
@ -41,7 +68,7 @@ export const FormStep = () => {
|
|||
disabled={!appName || !appDescription || !domain}
|
||||
colorScheme="blue"
|
||||
variant="solid"
|
||||
onClick={nextStep}
|
||||
onClick={handleNextStep}
|
||||
>
|
||||
Continue
|
||||
</Button>
|
||||
|
|
|
|||
|
|
@ -27,9 +27,9 @@ export const RepoBranchCommitFields = () => {
|
|||
}
|
||||
}, [queryLoading, dispatch]);
|
||||
|
||||
const handleBranchChange = (dorpdownOption: DropdownItem) => {
|
||||
setBranchName(dorpdownOption);
|
||||
setCommitHash(dorpdownOption.value);
|
||||
const handleBranchChange = (dropdownOption: DropdownItem) => {
|
||||
setBranchName(dropdownOption);
|
||||
setCommitHash(dropdownOption.value);
|
||||
};
|
||||
|
||||
const handleCommitHashChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,10 @@
|
|||
import { Button, Separator } from '@/components';
|
||||
import {
|
||||
githubActions,
|
||||
Repository as RepositoryType,
|
||||
useAppDispatch,
|
||||
} from '@/store';
|
||||
import { githubActions, GithubState, useAppDispatch } from '@/store';
|
||||
import { Mint } from '@/views/mint/mint.context';
|
||||
import { RepoRow } from './github-repository-selection';
|
||||
|
||||
type RepositoryProps = {
|
||||
repository: RepositoryType;
|
||||
repository: GithubState.Repository;
|
||||
index: number;
|
||||
length: number;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
import { ComboboxItem, DropdownItem } from '@/components';
|
||||
import { Repository } from '@/store';
|
||||
import { GithubState } from '@/store';
|
||||
import { EthereumHooks } from '@/integrations';
|
||||
import { createContext } from '@/utils';
|
||||
import { useState } from 'react';
|
||||
|
||||
export type MintContext = {
|
||||
selectedUserOrg: ComboboxItem;
|
||||
repositoryName: Repository;
|
||||
repositoryName: GithubState.Repository;
|
||||
branchName: DropdownItem; //get value from DropdownItem to mint
|
||||
commitHash: string;
|
||||
githubStep: number;
|
||||
|
|
@ -16,10 +17,9 @@ export type MintContext = {
|
|||
ens: DropdownItem;
|
||||
domain: string;
|
||||
verifyNFA: boolean;
|
||||
sucessMint: boolean | undefined;
|
||||
setGithubStep: (step: number) => void;
|
||||
setSelectedUserOrg: (userOrg: ComboboxItem) => void;
|
||||
setRepositoryName: (repo: Repository) => void;
|
||||
setRepositoryName: (repo: GithubState.Repository) => void;
|
||||
setBranchName: (branch: DropdownItem) => void;
|
||||
setCommitHash: (hash: string) => void;
|
||||
setAppName: (name: string) => void;
|
||||
|
|
@ -29,7 +29,6 @@ export type MintContext = {
|
|||
setEns: (ens: DropdownItem) => void;
|
||||
setDomain: (domain: string) => void;
|
||||
setVerifyNFA: (verify: boolean) => void;
|
||||
setSucessMint: (sucess: boolean) => void;
|
||||
};
|
||||
|
||||
const [MintProvider, useContext] = createContext<MintContext>({
|
||||
|
|
@ -38,15 +37,19 @@ const [MintProvider, useContext] = createContext<MintContext>({
|
|||
providerName: 'Mint.Provider',
|
||||
});
|
||||
|
||||
const [TransactionProvider, useTransactionContext] =
|
||||
EthereumHooks.createFleekERC721WriteContext('mint');
|
||||
|
||||
export abstract class Mint {
|
||||
static readonly useContext = useContext;
|
||||
|
||||
static readonly useTransactionContext = useTransactionContext;
|
||||
|
||||
static readonly Provider: React.FC<Mint.ProviderProps> = ({ children }) => {
|
||||
//Github Connection
|
||||
const [selectedUserOrg, setSelectedUserOrg] = useState({} as ComboboxItem);
|
||||
const [repositoryName, setRepositoryName] = useState<Repository>(
|
||||
{} as Repository
|
||||
);
|
||||
const [repositoryName, setRepositoryName] =
|
||||
useState<GithubState.Repository>({} as GithubState.Repository);
|
||||
const [branchName, setBranchName] = useState({} as DropdownItem);
|
||||
const [commitHash, setCommitHash] = useState('');
|
||||
const [githubStep, setGithubStepContext] = useState(1);
|
||||
|
|
@ -60,11 +63,6 @@ export abstract class Mint {
|
|||
const [domain, setDomain] = useState('');
|
||||
const [verifyNFA, setVerifyNFA] = useState(true);
|
||||
|
||||
//Mint state
|
||||
//true means it's minted
|
||||
//false means it's not minted yet
|
||||
const [sucessMint, setSucessMint] = useState<boolean>(false);
|
||||
|
||||
const setGithubStep = (step: number): void => {
|
||||
if (step > 0 && step <= 3) {
|
||||
setGithubStepContext(step);
|
||||
|
|
@ -86,7 +84,6 @@ export abstract class Mint {
|
|||
ens,
|
||||
domain,
|
||||
verifyNFA,
|
||||
sucessMint,
|
||||
setSelectedUserOrg,
|
||||
setGithubStep,
|
||||
setRepositoryName,
|
||||
|
|
@ -99,10 +96,20 @@ export abstract class Mint {
|
|||
setEns,
|
||||
setDomain,
|
||||
setVerifyNFA,
|
||||
setSucessMint,
|
||||
}}
|
||||
>
|
||||
{children}
|
||||
<TransactionProvider
|
||||
config={{
|
||||
transaction: {
|
||||
onSuccess: (data) => {
|
||||
console.log('Successfully minted! what now?', data);
|
||||
alert('transaction hash: ' + data.transactionHash);
|
||||
},
|
||||
},
|
||||
}}
|
||||
>
|
||||
{children}
|
||||
</TransactionProvider>
|
||||
</MintProvider>
|
||||
);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ type NftCardProps = {
|
|||
buttonText: string;
|
||||
leftIconButton?: React.ReactNode;
|
||||
onClick: () => void;
|
||||
isLoading: boolean;
|
||||
};
|
||||
|
||||
export const NftCard: React.FC<NftCardProps> = ({
|
||||
|
|
@ -20,6 +21,7 @@ export const NftCard: React.FC<NftCardProps> = ({
|
|||
buttonText,
|
||||
leftIconButton,
|
||||
onClick,
|
||||
isLoading,
|
||||
}) => {
|
||||
const size = '26.5rem';
|
||||
const { appLogo, logoColor, appName, ens } = Mint.useContext();
|
||||
|
|
@ -50,6 +52,8 @@ export const NftCard: React.FC<NftCardProps> = ({
|
|||
variant="solid"
|
||||
onClick={onClick}
|
||||
leftIcon={leftIconButton}
|
||||
isLoading={isLoading}
|
||||
isDisabled={isLoading}
|
||||
>
|
||||
{buttonText}
|
||||
</Button>
|
||||
|
|
|
|||
|
|
@ -1,13 +1,41 @@
|
|||
import { Icon, IconButton, Stepper } from '@/components';
|
||||
import { useTransactionCost } from '@/hooks';
|
||||
import { Mint } from '@/views/mint/mint.context';
|
||||
import { ethers } from 'ethers';
|
||||
import { useMemo } from 'react';
|
||||
import { NftCard } from '../nft-card';
|
||||
|
||||
export const MintPreview = () => {
|
||||
const { prevStep } = Stepper.useContext();
|
||||
const { setSucessMint } = Mint.useContext();
|
||||
const {
|
||||
prepare: { status: prepareStatus, data: prepareData },
|
||||
write: { status: writeStatus, write },
|
||||
transaction: { status: transactionStatus },
|
||||
} = Mint.useTransactionContext();
|
||||
|
||||
const [cost, currency, isCostLoading] = useTransactionCost(
|
||||
prepareData?.request.value,
|
||||
prepareData?.request.gasLimit
|
||||
);
|
||||
|
||||
//TODO handle error when minting
|
||||
|
||||
const message = useMemo(() => {
|
||||
if (isCostLoading || prepareStatus === 'loading')
|
||||
return 'Calculating cost...';
|
||||
|
||||
const formattedCost = ethers.utils.formatEther(cost).slice(0, 9);
|
||||
return `Minting this NFA will cost ${formattedCost} ${currency}.`;
|
||||
}, [prepareData, isCostLoading, prepareStatus]);
|
||||
|
||||
const isLoading = useMemo(
|
||||
() =>
|
||||
[prepareStatus, writeStatus, transactionStatus].some(
|
||||
(status) => status === 'loading'
|
||||
),
|
||||
[prepareStatus, writeStatus, transactionStatus]
|
||||
);
|
||||
|
||||
return (
|
||||
<NftCard
|
||||
title="Mint NFA"
|
||||
|
|
@ -29,11 +57,10 @@ export const MintPreview = () => {
|
|||
icon={<Icon name="info" />}
|
||||
/>
|
||||
}
|
||||
message="Minting this NFA will cost 0.0008 MATIC."
|
||||
message={message}
|
||||
buttonText="Mint NFA"
|
||||
onClick={() => {
|
||||
setSucessMint(true);
|
||||
}}
|
||||
onClick={write!}
|
||||
isLoading={isLoading}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -5223,6 +5223,11 @@ abitype@^0.3.0:
|
|||
resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.3.0.tgz#75150e337d88cc0b2423ed0d3fc36935f139d04c"
|
||||
integrity sha512-0YokyAV4hKMcy97Pl+6QgZBlBdZJN2llslOs7kiFY+cu7kMlVXDBpxMExfv0krzBCQt2t7hNovpQ3y/zvEm18A==
|
||||
|
||||
abitype@^0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.5.0.tgz#5c04fcbbb34b680bd7f82cbfb351d37fb3543d05"
|
||||
integrity sha512-xQJ1aEiOmR6TPGF/JKoDZgUCxxpG7t55Zl2cXRdoQv1IndYqyST6pS1c556c4kuaLbkocNstal3hIjXGVygGzw==
|
||||
|
||||
abstract-leveldown@~0.12.0, abstract-leveldown@~0.12.1:
|
||||
version "0.12.4"
|
||||
resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz#29e18e632e60e4e221d5810247852a63d7b2e410"
|
||||
|
|
|
|||
491
yarn.lock
491
yarn.lock
|
|
@ -2,7 +2,7 @@
|
|||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@ardatan/sync-fetch@0.0.1":
|
||||
"@ardatan/sync-fetch@^0.0.1":
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz#3385d3feedceb60a896518a1db857ec1e945348f"
|
||||
integrity sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==
|
||||
|
|
@ -16,13 +16,14 @@
|
|||
dependencies:
|
||||
"@babel/highlight" "^7.18.6"
|
||||
|
||||
"@babel/generator@^7.18.13", "@babel/generator@^7.20.7":
|
||||
version "7.20.14"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.14.tgz#9fa772c9f86a46c6ac9b321039400712b96f64ce"
|
||||
integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==
|
||||
"@babel/generator@^7.18.13", "@babel/generator@^7.21.1":
|
||||
version "7.21.1"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.1.tgz#951cc626057bc0af2c35cd23e9c64d384dea83dd"
|
||||
integrity sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==
|
||||
dependencies:
|
||||
"@babel/types" "^7.20.7"
|
||||
"@babel/types" "^7.21.0"
|
||||
"@jridgewell/gen-mapping" "^0.3.2"
|
||||
"@jridgewell/trace-mapping" "^0.3.17"
|
||||
jsesc "^2.5.1"
|
||||
|
||||
"@babel/helper-environment-visitor@^7.18.9":
|
||||
|
|
@ -30,13 +31,13 @@
|
|||
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
|
||||
integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
|
||||
|
||||
"@babel/helper-function-name@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"
|
||||
integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==
|
||||
"@babel/helper-function-name@^7.21.0":
|
||||
version "7.21.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4"
|
||||
integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==
|
||||
dependencies:
|
||||
"@babel/template" "^7.18.10"
|
||||
"@babel/types" "^7.19.0"
|
||||
"@babel/template" "^7.20.7"
|
||||
"@babel/types" "^7.21.0"
|
||||
|
||||
"@babel/helper-hoist-variables@^7.18.6":
|
||||
version "7.18.6"
|
||||
|
|
@ -76,10 +77,10 @@
|
|||
chalk "^2.0.0"
|
||||
js-tokens "^4.0.0"
|
||||
|
||||
"@babel/parser@^7.16.8", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7":
|
||||
version "7.20.15"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89"
|
||||
integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==
|
||||
"@babel/parser@^7.16.8", "@babel/parser@^7.20.7", "@babel/parser@^7.21.2":
|
||||
version "7.21.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3"
|
||||
integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==
|
||||
|
||||
"@babel/plugin-syntax-import-assertions@7.20.0":
|
||||
version "7.20.0"
|
||||
|
|
@ -88,7 +89,7 @@
|
|||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.19.0"
|
||||
|
||||
"@babel/template@^7.18.10":
|
||||
"@babel/template@^7.18.10", "@babel/template@^7.20.7":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8"
|
||||
integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==
|
||||
|
|
@ -98,25 +99,25 @@
|
|||
"@babel/types" "^7.20.7"
|
||||
|
||||
"@babel/traverse@^7.16.8":
|
||||
version "7.20.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473"
|
||||
integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==
|
||||
version "7.21.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.2.tgz#ac7e1f27658750892e815e60ae90f382a46d8e75"
|
||||
integrity sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.18.6"
|
||||
"@babel/generator" "^7.20.7"
|
||||
"@babel/generator" "^7.21.1"
|
||||
"@babel/helper-environment-visitor" "^7.18.9"
|
||||
"@babel/helper-function-name" "^7.19.0"
|
||||
"@babel/helper-function-name" "^7.21.0"
|
||||
"@babel/helper-hoist-variables" "^7.18.6"
|
||||
"@babel/helper-split-export-declaration" "^7.18.6"
|
||||
"@babel/parser" "^7.20.13"
|
||||
"@babel/types" "^7.20.7"
|
||||
"@babel/parser" "^7.21.2"
|
||||
"@babel/types" "^7.21.2"
|
||||
debug "^4.1.0"
|
||||
globals "^11.1.0"
|
||||
|
||||
"@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.7":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f"
|
||||
integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==
|
||||
"@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2":
|
||||
version "7.21.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.2.tgz#92246f6e00f91755893c2876ad653db70c8310d1"
|
||||
integrity sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==
|
||||
dependencies:
|
||||
"@babel/helper-string-parser" "^7.19.4"
|
||||
"@babel/helper-validator-identifier" "^7.19.1"
|
||||
|
|
@ -193,188 +194,188 @@
|
|||
tslib "~2.4.0"
|
||||
|
||||
"@graphql-tools/apollo-engine-loader@^7.3.6":
|
||||
version "7.3.23"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.23.tgz#ecfea6939b6588acbf4e39585e31379ba1246551"
|
||||
integrity sha512-OGS0fGUeqBn2NNSfDBVIV7mjch6/7M4JCxvA7fpvVUAmdjjnQ6Z/CGyLIH2bv1eNv75gX/Kkj3baI0lwAWzsXw==
|
||||
version "7.3.26"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.26.tgz#91e54460d5579933e42a2010b8688c3459c245d8"
|
||||
integrity sha512-h1vfhdJFjnCYn9b5EY1Z91JTF0KB3hHVJNQIsiUV2mpQXZdeOXQoaWeYEKaiI5R6kwBw5PP9B0fv3jfUIG8LyQ==
|
||||
dependencies:
|
||||
"@ardatan/sync-fetch" "0.0.1"
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@whatwg-node/fetch" "^0.6.0"
|
||||
"@ardatan/sync-fetch" "^0.0.1"
|
||||
"@graphql-tools/utils" "^9.2.1"
|
||||
"@whatwg-node/fetch" "^0.8.0"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/batch-execute@8.5.16":
|
||||
version "8.5.16"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.16.tgz#ced188d096906a7fe477708c63304d4e70291013"
|
||||
integrity sha512-x/gXA6R1Q/qigT5LDesZYemErzFYvBBuTaVgiIJuE2wG6oMV1cln0O35Z7WVQw6H3I4vF7cCG7c7wKSoC+3z4Q==
|
||||
"@graphql-tools/batch-execute@^8.5.18":
|
||||
version "8.5.18"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.18.tgz#2f0e91cc12e8eed32f14bc814f27c6a498b75e17"
|
||||
integrity sha512-mNv5bpZMLLwhkmPA6+RP81A6u3KF4CSKLf3VX9hbomOkQR4db8pNs8BOvpZU54wKsUzMzdlws/2g/Dabyb2Vsg==
|
||||
dependencies:
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
dataloader "2.1.0"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
dataloader "2.2.2"
|
||||
tslib "^2.4.0"
|
||||
value-or-promise "1.0.12"
|
||||
|
||||
"@graphql-tools/code-file-loader@^7.3.13":
|
||||
version "7.3.18"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.18.tgz#fba541ebe58cda6c0913f693cbc8ec75a4a0f97d"
|
||||
integrity sha512-DK0YjsJWKkLF6HQYuuqiDwMr9rwRojm8yR/T+J8vXCOR4ndYa1EvUm9wRHPhxHVOYeptO2u+APoWNEhuMN9Hbw==
|
||||
version "7.3.21"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.21.tgz#3eed4ff4610cf0a6f4b1be17d0bce1eec9359479"
|
||||
integrity sha512-dj+OLnz1b8SYkXcuiy0CUQ25DWnOEyandDlOcdBqU3WVwh5EEVbn0oXUYm90fDlq2/uut00OrtC5Wpyhi3tAvA==
|
||||
dependencies:
|
||||
"@graphql-tools/graphql-tag-pluck" "7.4.4"
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/graphql-tag-pluck" "7.5.0"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
globby "^11.0.3"
|
||||
tslib "^2.4.0"
|
||||
unixify "^1.0.0"
|
||||
|
||||
"@graphql-tools/delegate@9.0.25":
|
||||
version "9.0.25"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.25.tgz#bdfdb6cba67e4c01993c0545733b3d00563f6c1f"
|
||||
integrity sha512-M7DMrPx8uEjXUshkki0ufcL//9Dj12eR3vykvteFB6odYL9cX5dhZC9l1D2IdQRuHzLMskhkhRtfnXRoa82KTA==
|
||||
"@graphql-tools/delegate@9.0.28", "@graphql-tools/delegate@^9.0.27":
|
||||
version "9.0.28"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.28.tgz#026275094b2ff3f4cbbe99caff2d48775aeb67d6"
|
||||
integrity sha512-8j23JCs2mgXqnp+5K0v4J3QBQU/5sXd9miaLvMfRf/6963DznOXTECyS9Gcvj1VEeR5CXIw6+aX/BvRDKDdN1g==
|
||||
dependencies:
|
||||
"@graphql-tools/batch-execute" "8.5.16"
|
||||
"@graphql-tools/executor" "0.0.13"
|
||||
"@graphql-tools/schema" "9.0.15"
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
dataloader "2.1.0"
|
||||
tslib "~2.5.0"
|
||||
value-or-promise "1.0.12"
|
||||
"@graphql-tools/batch-execute" "^8.5.18"
|
||||
"@graphql-tools/executor" "^0.0.15"
|
||||
"@graphql-tools/schema" "^9.0.16"
|
||||
"@graphql-tools/utils" "^9.2.1"
|
||||
dataloader "^2.2.2"
|
||||
tslib "^2.5.0"
|
||||
value-or-promise "^1.0.12"
|
||||
|
||||
"@graphql-tools/executor-graphql-ws@0.0.9":
|
||||
version "0.0.9"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.9.tgz#ba709b38ec7e83d7a0d4c2b5b9d6bc925907a030"
|
||||
integrity sha512-S323OGzc8TQHOw8n7pFSl1+oG5pzhQhXRmgW6sAvA1F79FLjQ95TltEa6jSH7Jqw+tZobMyylJ13CQ1zFDjBPg==
|
||||
"@graphql-tools/executor-graphql-ws@^0.0.11":
|
||||
version "0.0.11"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.11.tgz#c6536aa862f76a9c7ac83e7e07fe8d5119e6de38"
|
||||
integrity sha512-muRj6j897ks2iKqe3HchWFFzd+jFInSRuLPvHJ7e4WPrejFvaZx3BQ9gndfJvVkfYUZIFm13stCGXaJJTbVM0Q==
|
||||
dependencies:
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
"@repeaterjs/repeater" "3.0.4"
|
||||
"@types/ws" "^8.0.0"
|
||||
graphql-ws "5.11.3"
|
||||
isomorphic-ws "5.0.0"
|
||||
tslib "^2.4.0"
|
||||
ws "8.12.0"
|
||||
ws "8.12.1"
|
||||
|
||||
"@graphql-tools/executor-http@0.1.4":
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.4.tgz#350f498c9516c75a8093ef34438dc53eadd5f669"
|
||||
integrity sha512-6NGxLA9Z/cSOLExxfgddXqoS9JHr0QzvC4YmrjeMz533eW/SDnCf+4803PxkLi0j5CUTUPBnt9hC79l1AD2rZQ==
|
||||
"@graphql-tools/executor-http@^0.1.7":
|
||||
version "0.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.9.tgz#ddd74ef376b4a2ed59c622acbcca068890854a30"
|
||||
integrity sha512-tNzMt5qc1ptlHKfpSv9wVBVKCZ7gks6Yb/JcYJluxZIT4qRV+TtOFjpptfBU63usgrGVOVcGjzWc/mt7KhmmpQ==
|
||||
dependencies:
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@repeaterjs/repeater" "3.0.4"
|
||||
"@whatwg-node/fetch" "0.6.5"
|
||||
dset "3.1.2"
|
||||
"@graphql-tools/utils" "^9.2.1"
|
||||
"@repeaterjs/repeater" "^3.0.4"
|
||||
"@whatwg-node/fetch" "^0.8.1"
|
||||
dset "^3.1.2"
|
||||
extract-files "^11.0.0"
|
||||
meros "1.2.1"
|
||||
meros "^1.2.1"
|
||||
tslib "^2.4.0"
|
||||
value-or-promise "1.0.12"
|
||||
value-or-promise "^1.0.12"
|
||||
|
||||
"@graphql-tools/executor-legacy-ws@0.0.7":
|
||||
version "0.0.7"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.7.tgz#d3d6255ab0b6f6b8487adbda70c2711fdb4f5ac4"
|
||||
integrity sha512-tSBJE/uv/r0iQjsU16QZkRLLCT0cmVWPqn8NVuAp3yqEeYlU7bzf38L4wNYTn46OHIYElFxXBFsGgMdyvrQLzg==
|
||||
"@graphql-tools/executor-legacy-ws@^0.0.9":
|
||||
version "0.0.9"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.9.tgz#1ff517998f750af2be9c1dae8924665a136e4986"
|
||||
integrity sha512-L7oDv7R5yoXzMH+KLKDB2WHVijfVW4dB2H+Ae1RdW3MFvwbYjhnIB6QzHqKEqksjp/FndtxZkbuTIuAOsYGTYw==
|
||||
dependencies:
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
"@types/ws" "^8.0.0"
|
||||
isomorphic-ws "5.0.0"
|
||||
tslib "^2.4.0"
|
||||
ws "8.12.0"
|
||||
ws "8.12.1"
|
||||
|
||||
"@graphql-tools/executor@0.0.13":
|
||||
version "0.0.13"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.13.tgz#29bc084d273822f1189bce5b64cfdae0c89bc333"
|
||||
integrity sha512-bZ7QdUV5URLCjD/WuDkvyROYoDVoueTN5W1PatkcN949lwIwEKXUW6y3gRSpiZjXw8IH4/NmN3xPk10OT1emRw==
|
||||
"@graphql-tools/executor@^0.0.15":
|
||||
version "0.0.15"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.15.tgz#cbd29af2ec54213a52f6c516a7792b3e626a4c49"
|
||||
integrity sha512-6U7QLZT8cEUxAMXDP4xXVplLi6RBwx7ih7TevlBto66A/qFp3PDb6o/VFo07yBKozr8PGMZ4jMfEWBGxmbGdxA==
|
||||
dependencies:
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-typed-document-node/core" "3.1.1"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
"@graphql-typed-document-node/core" "3.1.2"
|
||||
"@repeaterjs/repeater" "3.0.4"
|
||||
tslib "^2.4.0"
|
||||
value-or-promise "1.0.12"
|
||||
|
||||
"@graphql-tools/git-loader@^7.2.13":
|
||||
version "7.2.17"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-7.2.17.tgz#34ecfce400da0c7b66b3f9abd9641c3724714698"
|
||||
integrity sha512-VbJQEgjy3oH0IQvkCJFKsIatep9Qv8mToBf0QSMXvS9fZkLM5wwTM4KPtw0Loim/1BAAnomBpHy6I4kiwqYU4A==
|
||||
version "7.2.20"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-7.2.20.tgz#b17917c89be961c272bfbf205dcf32287247494b"
|
||||
integrity sha512-D/3uwTzlXxG50HI8BEixqirT4xiUp6AesTdfotRXAs2d4CT9wC6yuIWOHkSBqgI1cwKWZb6KXZr467YPS5ob1w==
|
||||
dependencies:
|
||||
"@graphql-tools/graphql-tag-pluck" "7.4.4"
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/graphql-tag-pluck" "7.5.0"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
is-glob "4.0.3"
|
||||
micromatch "^4.0.4"
|
||||
tslib "^2.4.0"
|
||||
unixify "^1.0.0"
|
||||
|
||||
"@graphql-tools/github-loader@^7.3.20":
|
||||
version "7.3.24"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-7.3.24.tgz#3bfbb0480d79acefb7d496c2afb681658ed15a2d"
|
||||
integrity sha512-URlH4tJFk/a97tIFTzAZuQTiFiQrwKjr0fKGohbyKMMycBf82XZ6F199PZP3GtigNmzTqV/vTkf1VLTJU97jRw==
|
||||
version "7.3.27"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-7.3.27.tgz#77a2fbaeb7bf5f8edc4a865252ecb527a5399e01"
|
||||
integrity sha512-fFFC35qenyhjb8pfcYXKknAt0CXP5CkQYtLfJXgTXSgBjIsfAVMrqxQ/Y0ejeM19XNF/C3VWJ7rE308yOX6ywA==
|
||||
dependencies:
|
||||
"@ardatan/sync-fetch" "0.0.1"
|
||||
"@graphql-tools/graphql-tag-pluck" "7.4.4"
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@whatwg-node/fetch" "^0.6.0"
|
||||
"@ardatan/sync-fetch" "^0.0.1"
|
||||
"@graphql-tools/graphql-tag-pluck" "^7.4.6"
|
||||
"@graphql-tools/utils" "^9.2.1"
|
||||
"@whatwg-node/fetch" "^0.8.0"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/graphql-file-loader@^7.3.7", "@graphql-tools/graphql-file-loader@^7.5.0":
|
||||
version "7.5.15"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.15.tgz#60b94400bbcb9b285a4434aa91186b8ad97bd6df"
|
||||
integrity sha512-K6yOfKkQdXQRBl+UY4FzGdoSzGG09GLPZv4q7OFp8do16CXhaxAI+kmJvsvrutSyBfLETPTkCHtzFmdRmTeLpg==
|
||||
version "7.5.16"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.16.tgz#d954b25ee14c6421ddcef43f4320a82e9800cb23"
|
||||
integrity sha512-lK1N3Y2I634FS12nd4bu7oAJbai3bUc28yeX+boT+C83KTO4ujGHm+6hPC8X/FRGwhKOnZBxUM7I5nvb3HiUxw==
|
||||
dependencies:
|
||||
"@graphql-tools/import" "6.7.16"
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/import" "6.7.17"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
globby "^11.0.3"
|
||||
tslib "^2.4.0"
|
||||
unixify "^1.0.0"
|
||||
|
||||
"@graphql-tools/graphql-tag-pluck@7.4.4":
|
||||
version "7.4.4"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.4.4.tgz#16f8f7c5c5579f98106c58473b65806f2839da8a"
|
||||
integrity sha512-yHIEcapR/kVSrn4W4Nf3FYpJKPcoGvJbdbye8TnW3dD5GkG4UqVnKuyqFvQPOhgqXKbloFZqUhNqEuyqxqIPRw==
|
||||
"@graphql-tools/graphql-tag-pluck@7.5.0", "@graphql-tools/graphql-tag-pluck@^7.4.6":
|
||||
version "7.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.0.tgz#be99bc6b5e8331a2379ab4585d71b057eb981497"
|
||||
integrity sha512-76SYzhSlH50ZWkhWH6OI94qrxa8Ww1ZeOU04MdtpSeQZVT2rjGWeTb3xM3kjTVWQJsr/YJBhDeNPGlwNUWfX4Q==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.16.8"
|
||||
"@babel/plugin-syntax-import-assertions" "7.20.0"
|
||||
"@babel/traverse" "^7.16.8"
|
||||
"@babel/types" "^7.16.8"
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/import@6.7.16":
|
||||
version "6.7.16"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.16.tgz#5383db75b8fd173788d1c307084cdc6fcf0d8880"
|
||||
integrity sha512-m07u+8YsBtKg5w5BG04KFTd59PCAPMAy5Dv/NlR4zCiH/Zbpy5PoetokCZKDrFHYUzjPlm8r//vfCG+JTvHw7g==
|
||||
"@graphql-tools/import@6.7.17":
|
||||
version "6.7.17"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.17.tgz#ab51ed08bcbf757f952abf3f40793ce3db42d4a3"
|
||||
integrity sha512-bn9SgrECXq3WIasgNP7ful/uON51wBajPXtxdY+z/ce7jLWaFE6lzwTDB/GAgiZ+jo7nb0ravlxteSAz2qZmuA==
|
||||
dependencies:
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
resolve-from "5.0.0"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/json-file-loader@^7.3.7", "@graphql-tools/json-file-loader@^7.4.1":
|
||||
version "7.4.16"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.16.tgz#f2ca1e162ddee1424b39078c74c14b6bd9d177bf"
|
||||
integrity sha512-9MsqpwIrCx0l880V0dud01DhkwYwqCIlZlCA3bN+TExWa9U3aZhyPO/5BWQU6W52wKk61TvyN6agUa+f4R7jVQ==
|
||||
version "7.4.17"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.17.tgz#3f08e74ab1a3534c02dc97875acc7f15aa460011"
|
||||
integrity sha512-KOSTP43nwjPfXgas90rLHAFgbcSep4nmiYyR9xRVz4ZAmw8VYHcKhOLTSGylCAzi7KUfyBXajoW+6Z7dQwdn3g==
|
||||
dependencies:
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
globby "^11.0.3"
|
||||
tslib "^2.4.0"
|
||||
unixify "^1.0.0"
|
||||
|
||||
"@graphql-tools/load@^7.5.5", "@graphql-tools/load@^7.8.0":
|
||||
version "7.8.11"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.11.tgz#b9026dd15729dec1e4c318c67d0d3036b583fd1f"
|
||||
integrity sha512-pVn3fYP/qZ3m2NE86gSexyZpEmvTSUe+OIRfWBM60a4L/SycMxgVfYB5+PyDCzruFZg/didIG3v7RfPlZ7zNTQ==
|
||||
version "7.8.12"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.12.tgz#6457fe6ec8cd2e2b5ca0d2752464bc937d186cca"
|
||||
integrity sha512-JwxgNS2c6i6oIdKttcbXns/lpKiyN7c6/MkkrJ9x2QE9rXk5HOhSJxRvPmOueCuAin1542xUrcDRGBXJ7thSig==
|
||||
dependencies:
|
||||
"@graphql-tools/schema" "9.0.15"
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/schema" "9.0.16"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
p-limit "3.1.0"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/merge@8.3.17", "@graphql-tools/merge@^8.2.6":
|
||||
version "8.3.17"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.17.tgz#d7e184a296eb455c1550ab95991c5a2f68ea16a4"
|
||||
integrity sha512-CLzz49lc6BavPhH9gPRm0sJeNA7kC/tF/jLUTQsyef6xj82Jw3rqIJ9PE+bk1cqPCOG01WLOfquBu445OMDO2g==
|
||||
"@graphql-tools/merge@8.3.18", "@graphql-tools/merge@^8.2.6":
|
||||
version "8.3.18"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.18.tgz#bfbb517c68598a885809f16ce5c3bb1ebb8f04a2"
|
||||
integrity sha512-R8nBglvRWPAyLpZL/f3lxsY7wjnAeE0l056zHhcO/CgpvK76KYUt9oEkR05i8Hmt8DLRycBN0FiotJ0yDQWTVA==
|
||||
dependencies:
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/prisma-loader@^7.2.49":
|
||||
version "7.2.60"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.2.60.tgz#333138cb9ba2bfef1132cbf4b90003f3aa669069"
|
||||
integrity sha512-6C/Hicwu/luLlaIqSud3YHJ1HbrIsZ0jHfxWju9aWs3dJLSwRv8Lgw1eHSoWFDEZjc+zNETYNe9GgUwt4BBZzQ==
|
||||
version "7.2.64"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.2.64.tgz#e9fc85054b15a22a16c8e69ad4f9543da30c0164"
|
||||
integrity sha512-W8GfzfBKiBSIEgw+/nJk6zUlF6k/jterlNoFhM27mBsbeMtWxKnm1+gEU6KA0N1PNEdq2RIa2W4AfVfVBl2GgQ==
|
||||
dependencies:
|
||||
"@graphql-tools/url-loader" "7.17.9"
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/url-loader" "7.17.13"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
"@types/js-yaml" "^4.0.0"
|
||||
"@types/json-stable-stringify" "^1.0.32"
|
||||
"@types/jsonwebtoken" "^9.0.0"
|
||||
|
|
@ -393,58 +394,58 @@
|
|||
tslib "^2.4.0"
|
||||
yaml-ast-parser "^0.0.43"
|
||||
|
||||
"@graphql-tools/schema@9.0.15", "@graphql-tools/schema@^9.0.0":
|
||||
version "9.0.15"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.15.tgz#6632765e0281a6c890c7ea6865f13c10bc98fc1b"
|
||||
integrity sha512-p2DbpkOBcsi+yCEjwoS+r4pJ5z+3JjlJdhbPkCwC4q8lGf5r93dVYrExOrqGKTU5kxLXI/mxabSxcunjNIsDIg==
|
||||
"@graphql-tools/schema@9.0.16", "@graphql-tools/schema@^9.0.0", "@graphql-tools/schema@^9.0.16":
|
||||
version "9.0.16"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.16.tgz#7d340d69e6094dc01a2b9e625c7bb4fff89ea521"
|
||||
integrity sha512-kF+tbYPPf/6K2aHG3e1SWIbapDLQaqnIHVRG6ow3onkFoowwtKszvUyOASL6Krcv2x9bIMvd1UkvRf9OaoROQQ==
|
||||
dependencies:
|
||||
"@graphql-tools/merge" "8.3.17"
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/merge" "8.3.18"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
tslib "^2.4.0"
|
||||
value-or-promise "1.0.12"
|
||||
|
||||
"@graphql-tools/url-loader@7.17.9", "@graphql-tools/url-loader@^7.13.2", "@graphql-tools/url-loader@^7.9.7":
|
||||
version "7.17.9"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.9.tgz#5a79a3bce2926f72f1e4c6ee7ed8a3312454d39b"
|
||||
integrity sha512-qAXQ9Tr/Am2hEelGVLCfO/YOyCMzCd4FyWMRRqcoMYIaK91arIb5X13pgILD28SUN+6H3NDsx7fgq/Z/OhwGrQ==
|
||||
"@graphql-tools/url-loader@7.17.13", "@graphql-tools/url-loader@^7.13.2", "@graphql-tools/url-loader@^7.9.7":
|
||||
version "7.17.13"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.13.tgz#d4ee8193792ab1c42db2fbdf5f6ca75fa819ac40"
|
||||
integrity sha512-FEmbvw68kxeZLn4VYGAl+NuBPk09ZnxymjW07A6mCtiDayFgYfHdWeRzXn/iM5PzsEuCD73R1sExtNQ/ISiajg==
|
||||
dependencies:
|
||||
"@ardatan/sync-fetch" "0.0.1"
|
||||
"@graphql-tools/delegate" "9.0.25"
|
||||
"@graphql-tools/executor-graphql-ws" "0.0.9"
|
||||
"@graphql-tools/executor-http" "0.1.4"
|
||||
"@graphql-tools/executor-legacy-ws" "0.0.7"
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/wrap" "9.3.4"
|
||||
"@ardatan/sync-fetch" "^0.0.1"
|
||||
"@graphql-tools/delegate" "^9.0.27"
|
||||
"@graphql-tools/executor-graphql-ws" "^0.0.11"
|
||||
"@graphql-tools/executor-http" "^0.1.7"
|
||||
"@graphql-tools/executor-legacy-ws" "^0.0.9"
|
||||
"@graphql-tools/utils" "^9.2.1"
|
||||
"@graphql-tools/wrap" "^9.3.6"
|
||||
"@types/ws" "^8.0.0"
|
||||
"@whatwg-node/fetch" "^0.6.0"
|
||||
isomorphic-ws "5.0.0"
|
||||
"@whatwg-node/fetch" "^0.8.0"
|
||||
isomorphic-ws "^5.0.0"
|
||||
tslib "^2.4.0"
|
||||
value-or-promise "^1.0.11"
|
||||
ws "8.12.0"
|
||||
ws "^8.12.0"
|
||||
|
||||
"@graphql-tools/utils@9.2.0", "@graphql-tools/utils@^9.0.0", "@graphql-tools/utils@^9.1.1":
|
||||
version "9.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.0.tgz#d74d0376231c0e8bf897a715fafaf53d0f6bf06c"
|
||||
integrity sha512-s3lEG1iYkyYEnKCWrIFECX3XH2wmZvbg6Ir3udCvIDynq+ydaO7JQXobclpPtwSJtjlS353haF//6V7mnBQ4bg==
|
||||
"@graphql-tools/utils@9.2.1", "@graphql-tools/utils@^9.0.0", "@graphql-tools/utils@^9.1.1", "@graphql-tools/utils@^9.2.1":
|
||||
version "9.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57"
|
||||
integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==
|
||||
dependencies:
|
||||
"@graphql-typed-document-node/core" "^3.1.1"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@graphql-tools/wrap@9.3.4":
|
||||
version "9.3.4"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.3.4.tgz#67c1e78ac22a076dbe4be60bf716dec2c39d2102"
|
||||
integrity sha512-MJY6lZqi+j96izjOYOLk5fys34oiLt7U34SQ4Wd6V/sy1utVMbh2H7XiZAuDJ38JIKmr72qN7kLgNcnNOxXjHQ==
|
||||
"@graphql-tools/wrap@^9.3.6":
|
||||
version "9.3.7"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.3.7.tgz#97d7efdb8dfee41624e154b2de4499397634422e"
|
||||
integrity sha512-gavfiWLKgvmC2VPamnMzml3zmkBoo0yt+EmOLIHY6O92o4uMTR281WGM77tZIfq+jzLtjoIOThUSjC/cN/6XKg==
|
||||
dependencies:
|
||||
"@graphql-tools/delegate" "9.0.25"
|
||||
"@graphql-tools/schema" "9.0.15"
|
||||
"@graphql-tools/utils" "9.2.0"
|
||||
"@graphql-tools/delegate" "9.0.28"
|
||||
"@graphql-tools/schema" "9.0.16"
|
||||
"@graphql-tools/utils" "9.2.1"
|
||||
tslib "^2.4.0"
|
||||
value-or-promise "1.0.12"
|
||||
|
||||
"@graphql-typed-document-node/core@3.1.1", "@graphql-typed-document-node/core@^3.1.1":
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052"
|
||||
integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==
|
||||
"@graphql-typed-document-node/core@3.1.2", "@graphql-typed-document-node/core@^3.1.1":
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.2.tgz#6fc464307cbe3c8ca5064549b806360d84457b04"
|
||||
integrity sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA==
|
||||
|
||||
"@jridgewell/gen-mapping@^0.3.2":
|
||||
version "0.3.2"
|
||||
|
|
@ -478,7 +479,7 @@
|
|||
"@jridgewell/resolve-uri" "^3.0.3"
|
||||
"@jridgewell/sourcemap-codec" "^1.4.10"
|
||||
|
||||
"@jridgewell/trace-mapping@^0.3.9":
|
||||
"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
|
||||
version "0.3.17"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
|
||||
integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
|
||||
|
|
@ -534,15 +535,15 @@
|
|||
tslib "^2.4.1"
|
||||
webcrypto-core "^1.7.4"
|
||||
|
||||
"@repeaterjs/repeater@3.0.4":
|
||||
"@repeaterjs/repeater@3.0.4", "@repeaterjs/repeater@^3.0.4":
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.4.tgz#a04d63f4d1bf5540a41b01a921c9a7fddc3bd1ca"
|
||||
integrity sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==
|
||||
|
||||
"@solidity-parser/parser@^0.14.5":
|
||||
version "0.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804"
|
||||
integrity sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==
|
||||
"@solidity-parser/parser@^0.15.0":
|
||||
version "0.15.0"
|
||||
resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.15.0.tgz#1d359be40be84f174dd616ccfadcf43346c6bf63"
|
||||
integrity sha512-5UFJJTzWi1hgFk6aGCZ5rxG2DJkCJOzJ74qg7UkWSNCDSigW+CJLoYUb5bLiKrtI34Nr9rpFSUNHfkqtlL+N/w==
|
||||
dependencies:
|
||||
antlr4ts "^0.5.0-alpha.4"
|
||||
|
||||
|
|
@ -589,9 +590,9 @@
|
|||
"@types/node" "*"
|
||||
|
||||
"@types/node@*":
|
||||
version "18.11.19"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.19.tgz#35e26df9ec441ab99d73e99e9aca82935eea216d"
|
||||
integrity sha512-YUgMWAQBWLObABqrvx8qKO1enAvBUdjZOAWQ5grBAkp5LQv45jBvYKZ3oFS9iKRCQyFjqw6iuEa1vmFqtxYLZw==
|
||||
version "18.14.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.1.tgz#90dad8476f1e42797c49d6f8b69aaf9f876fc69f"
|
||||
integrity sha512-QH+37Qds3E0eDlReeboBxfHbX9omAcBCXEzswCu6jySP642jiM3cYSIkU/REqwhCUqXdonHFuBfJDiAJxMNhaQ==
|
||||
|
||||
"@types/parse-json@^4.0.0":
|
||||
version "4.0.0"
|
||||
|
|
@ -605,49 +606,51 @@
|
|||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@whatwg-node/events@0.0.2":
|
||||
"@whatwg-node/events@^0.0.2":
|
||||
version "0.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.0.2.tgz#7b7107268d2982fc7b7aff5ee6803c64018f84dd"
|
||||
integrity sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w==
|
||||
|
||||
"@whatwg-node/fetch@0.6.5":
|
||||
version "0.6.5"
|
||||
resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.5.tgz#ff96288e9a6295faafac79f13e3b3fd831cad11f"
|
||||
integrity sha512-3XQ78RAMX8Az0LlUqMoGM3jbT+FE0S+IKr4yiTiqzQ5S/pNxD52K/kFLcLQiEbL+3rkk/glCHqjxF1QI5155Ig==
|
||||
dependencies:
|
||||
"@peculiar/webcrypto" "^1.4.0"
|
||||
"@whatwg-node/node-fetch" "0.0.1"
|
||||
busboy "^1.6.0"
|
||||
urlpattern-polyfill "^6.0.2"
|
||||
web-streams-polyfill "^3.2.1"
|
||||
|
||||
"@whatwg-node/fetch@^0.6.0":
|
||||
version "0.6.7"
|
||||
resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.7.tgz#ddfa97d9498b6e6147532272b4867b8c0638e914"
|
||||
integrity sha512-n29y5RtM7pmH9VXFC4flV0Kv0VZIoLJcncDki/bTpxC525EFLze5JR9l+WmPYBNfLQgMtDti30ANuOmbETeubw==
|
||||
version "0.6.9"
|
||||
resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.6.9.tgz#6cc694cc0378e27b8dfed427c5bf633eda6972b9"
|
||||
integrity sha512-JfrBCJdMu9n9OARc0e/hPHcD98/8Nz1CKSdGYDg6VbObDkV/Ys30xe5i/wPOatYbxuvatj1kfWeHf7iNX3i17w==
|
||||
dependencies:
|
||||
"@peculiar/webcrypto" "^1.4.0"
|
||||
"@whatwg-node/node-fetch" "0.0.3"
|
||||
"@whatwg-node/node-fetch" "^0.0.5"
|
||||
busboy "^1.6.0"
|
||||
urlpattern-polyfill "^6.0.2"
|
||||
web-streams-polyfill "^3.2.1"
|
||||
|
||||
"@whatwg-node/node-fetch@0.0.1":
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.0.1.tgz#ffad65f3f8b73d6d2c2e8b179d557a5863b0db13"
|
||||
integrity sha512-dMbh604yf2jl37IzvYGA6z3heQg3dMzlqoNsiNToe46SVmKusfJXGf4KYIuiJTzh9mEEu/uVF//QakUfsLJpwA==
|
||||
"@whatwg-node/fetch@^0.8.0", "@whatwg-node/fetch@^0.8.1":
|
||||
version "0.8.1"
|
||||
resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.8.1.tgz#ee3c94746132f217e17f78f9e073bb342043d630"
|
||||
integrity sha512-Fkd1qQHK2tAWxKlC85h9L86Lgbq3BzxMnHSnTsnzNZMMzn6Xi+HlN8/LJ90LxorhSqD54td+Q864LgwUaYDj1Q==
|
||||
dependencies:
|
||||
"@whatwg-node/events" "0.0.2"
|
||||
busboy "1.6.0"
|
||||
"@peculiar/webcrypto" "^1.4.0"
|
||||
"@whatwg-node/node-fetch" "^0.3.0"
|
||||
busboy "^1.6.0"
|
||||
urlpattern-polyfill "^6.0.2"
|
||||
web-streams-polyfill "^3.2.1"
|
||||
|
||||
"@whatwg-node/node-fetch@^0.0.5":
|
||||
version "0.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.0.5.tgz#bebf18891088e5e2fc449dea8d1bc94af5ec38df"
|
||||
integrity sha512-hbccmaSZaItdsRuBKBEEhLoO+5oXJPxiyd0kG2xXd0Dh3Rt+vZn4pADHxuSiSHLd9CM+S2z4+IxlEGbWUgiz9g==
|
||||
dependencies:
|
||||
"@whatwg-node/events" "^0.0.2"
|
||||
busboy "^1.6.0"
|
||||
tslib "^2.3.1"
|
||||
|
||||
"@whatwg-node/node-fetch@0.0.3":
|
||||
version "0.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.0.3.tgz#ca5dd28925571fb61e72d27d095b4c2145408975"
|
||||
integrity sha512-kUFCR5Qf8n5FYqhk5PzEi8WoCoP89MhlvZzDnoKcCjne8VM5rW8bjJMnSO/4oMHLIN+hqHD1pDeN63xmmpmtIA==
|
||||
"@whatwg-node/node-fetch@^0.3.0":
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.3.0.tgz#7c7e90d03fa09d0ddebff29add6f16d923327d58"
|
||||
integrity sha512-mPM8WnuHiI/3kFxDeE0SQQXAElbz4onqmm64fEGCwYEcBes2UsvIDI8HwQIqaXCH42A9ajJUPv4WsYoN/9oG6w==
|
||||
dependencies:
|
||||
"@whatwg-node/events" "0.0.2"
|
||||
busboy "1.6.0"
|
||||
"@whatwg-node/events" "^0.0.2"
|
||||
busboy "^1.6.0"
|
||||
fast-querystring "^1.1.1"
|
||||
fast-url-parser "^1.1.3"
|
||||
tslib "^2.3.1"
|
||||
|
||||
acorn-walk@^8.1.1:
|
||||
|
|
@ -800,7 +803,7 @@ buffer@^5.5.0:
|
|||
base64-js "^1.3.1"
|
||||
ieee754 "^1.1.13"
|
||||
|
||||
busboy@1.6.0, busboy@^1.6.0:
|
||||
busboy@^1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
|
||||
integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
|
||||
|
|
@ -1037,10 +1040,10 @@ cross-fetch@^3.1.5:
|
|||
dependencies:
|
||||
node-fetch "2.6.7"
|
||||
|
||||
dataloader@2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.1.0.tgz#c69c538235e85e7ac6c6c444bae8ecabf5de9df7"
|
||||
integrity sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==
|
||||
dataloader@2.2.2, dataloader@^2.2.2:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0"
|
||||
integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==
|
||||
|
||||
debounce@^1.2.0:
|
||||
version "1.2.1"
|
||||
|
|
@ -1096,7 +1099,7 @@ dotenv@^16.0.0:
|
|||
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07"
|
||||
integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==
|
||||
|
||||
dset@3.1.2:
|
||||
dset@^3.1.2:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a"
|
||||
integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==
|
||||
|
|
@ -1149,6 +1152,11 @@ extract-files@^9.0.0:
|
|||
resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a"
|
||||
integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==
|
||||
|
||||
fast-decode-uri-component@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543"
|
||||
integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==
|
||||
|
||||
fast-glob@^3.2.9:
|
||||
version "3.2.12"
|
||||
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"
|
||||
|
|
@ -1160,6 +1168,20 @@ fast-glob@^3.2.9:
|
|||
merge2 "^1.3.0"
|
||||
micromatch "^4.0.4"
|
||||
|
||||
fast-querystring@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.1.tgz#f4c56ef56b1a954880cfd8c01b83f9e1a3d3fda2"
|
||||
integrity sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q==
|
||||
dependencies:
|
||||
fast-decode-uri-component "^1.0.1"
|
||||
|
||||
fast-url-parser@^1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d"
|
||||
integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==
|
||||
dependencies:
|
||||
punycode "^1.3.2"
|
||||
|
||||
fastq@^1.6.0:
|
||||
version "1.15.0"
|
||||
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
|
||||
|
|
@ -1422,7 +1444,7 @@ isomorphic-fetch@^3.0.0:
|
|||
node-fetch "^2.6.1"
|
||||
whatwg-fetch "^3.4.1"
|
||||
|
||||
isomorphic-ws@5.0.0:
|
||||
isomorphic-ws@5.0.0, isomorphic-ws@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf"
|
||||
integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==
|
||||
|
|
@ -1569,7 +1591,7 @@ merge2@^1.3.0, merge2@^1.4.1:
|
|||
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||
|
||||
meros@1.2.1:
|
||||
meros@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/meros/-/meros-1.2.1.tgz#056f7a76e8571d0aaf3c7afcbe7eb6407ff7329e"
|
||||
integrity sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==
|
||||
|
|
@ -1753,18 +1775,23 @@ pinst@^3.0.0:
|
|||
integrity sha512-cengSmBxtCyaJqtRSvJorIIZXMXg+lJ3sIljGmtBGUVonMnMsVJbnzl6jGN1HkOWwxNuJynCJ2hXxxqCQrFDdw==
|
||||
|
||||
prettier-plugin-solidity@^1.0.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.1.tgz#4d3375b85f97812ffcbe48d5a8b3fe914d69c91f"
|
||||
integrity sha512-uD24KO26tAHF+zMN2nt1OUzfknzza5AgxjogQQrMLZc7j8xiQrDoNWNeOlfFC0YLTwo12CLD10b9niLyP6AqXg==
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.2.tgz#452be4df925a4b16a974a04235839c9f56c2d10d"
|
||||
integrity sha512-KC5oNbFJfyBaFiO0kl56J6AXnDmr9tUlBV1iqo864x4KQrKYKaBZvW9jhT2oC0NHoNp7/GoMJNxqL8pp8k7C/g==
|
||||
dependencies:
|
||||
"@solidity-parser/parser" "^0.14.5"
|
||||
"@solidity-parser/parser" "^0.15.0"
|
||||
semver "^7.3.8"
|
||||
solidity-comments-extractor "^0.0.7"
|
||||
|
||||
prettier@^2.7.1:
|
||||
version "2.8.3"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632"
|
||||
integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==
|
||||
version "2.8.4"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3"
|
||||
integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==
|
||||
|
||||
punycode@^1.3.2:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
|
||||
integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==
|
||||
|
||||
pvtsutils@^1.3.2:
|
||||
version "1.3.2"
|
||||
|
|
@ -1784,9 +1811,9 @@ queue-microtask@^1.2.2:
|
|||
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
||||
|
||||
readable-stream@^3.4.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
|
||||
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
|
||||
version "3.6.1"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.1.tgz#f9f9b5f536920253b3d26e7660e7da4ccff9bb62"
|
||||
integrity sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==
|
||||
dependencies:
|
||||
inherits "^2.0.3"
|
||||
string_decoder "^1.1.1"
|
||||
|
|
@ -2064,7 +2091,7 @@ ts-node@^10.9.1:
|
|||
v8-compile-cache-lib "^3.0.1"
|
||||
yn "3.1.1"
|
||||
|
||||
tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, tslib@~2.5.0:
|
||||
tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, tslib@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
|
||||
integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
|
||||
|
|
@ -2117,7 +2144,7 @@ v8-compile-cache-lib@^3.0.1:
|
|||
resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
|
||||
integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
|
||||
|
||||
value-or-promise@1.0.12, value-or-promise@^1.0.11:
|
||||
value-or-promise@1.0.12, value-or-promise@^1.0.11, value-or-promise@^1.0.12:
|
||||
version "1.0.12"
|
||||
resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c"
|
||||
integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==
|
||||
|
|
@ -2135,9 +2162,9 @@ web-streams-polyfill@^3.2.1:
|
|||
integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==
|
||||
|
||||
webcrypto-core@^1.7.4:
|
||||
version "1.7.5"
|
||||
resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.5.tgz#c02104c953ca7107557f9c165d194c6316587ca4"
|
||||
integrity sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A==
|
||||
version "1.7.6"
|
||||
resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.6.tgz#e32c4a12a13de4251f8f9ef336a6cba7cdec9b55"
|
||||
integrity sha512-TBPiewB4Buw+HI3EQW+Bexm19/W4cP/qZG/02QJCXN+iN+T5sl074vZ3rJcle/ZtDBQSgjkbsQO/1eFcxnSBUA==
|
||||
dependencies:
|
||||
"@peculiar/asn1-schema" "^2.1.6"
|
||||
"@peculiar/json-schema" "^1.1.12"
|
||||
|
|
@ -2181,10 +2208,10 @@ wrap-ansi@^7.0.0:
|
|||
string-width "^4.1.0"
|
||||
strip-ansi "^6.0.0"
|
||||
|
||||
ws@8.12.0:
|
||||
version "8.12.0"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8"
|
||||
integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==
|
||||
ws@8.12.1, ws@^8.12.0:
|
||||
version "8.12.1"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.1.tgz#c51e583d79140b5e42e39be48c934131942d4a8f"
|
||||
integrity sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==
|
||||
|
||||
y18n@^5.0.5:
|
||||
version "5.0.8"
|
||||
|
|
@ -2212,9 +2239,9 @@ yargs-parser@^21.1.1:
|
|||
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
|
||||
|
||||
yargs@^17.0.0:
|
||||
version "17.6.2"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541"
|
||||
integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==
|
||||
version "17.7.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967"
|
||||
integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==
|
||||
dependencies:
|
||||
cliui "^8.0.1"
|
||||
escalade "^3.1.1"
|
||||
|
|
|
|||
Loading…
Reference in New Issue