{tooltipHint}}>
+ title={
{tooltipHint}}>
{jsx}
) : (
diff --git a/packages/shared/src/contexts/components/InjectedDialog.tsx b/packages/shared/src/contexts/components/InjectedDialog.tsx
index f62c51d8da29..a81a51cf4ea5 100644
--- a/packages/shared/src/contexts/components/InjectedDialog.tsx
+++ b/packages/shared/src/contexts/components/InjectedDialog.tsx
@@ -152,7 +152,11 @@ export function InjectedDialog(props: InjectedDialogProps) {
aria-label={t.dialog_dismiss()}
onClick={onClose}>
diff --git a/packages/web3-providers/src/NextID/kv.ts b/packages/web3-providers/src/NextID/kv.ts
index d9dcaefcaf4f..08e323a8f23f 100644
--- a/packages/web3-providers/src/NextID/kv.ts
+++ b/packages/web3-providers/src/NextID/kv.ts
@@ -4,7 +4,7 @@
import urlcat from 'urlcat'
import type { NextIDStoragePayload, NextIDPlatform } from '@masknet/shared-base'
import { fetchJSON } from './helper'
-import type { Result } from 'ts-results'
+import { Err, Ok, Result } from 'ts-results'
import type { NextIDBaseAPI } from '../types'
import { KV_BASE_URL_DEV, KV_BASE_URL_PROD } from './constants'
@@ -29,10 +29,30 @@ export class NextIDStorageAPI implements NextIDBaseAPI.Storage {
* @param personaPublicKey
*
*/
+ async getByIdentity(
+ personaPublicKey: string,
+ platform: NextIDPlatform,
+ identity: string,
+ pluginId: string,
+ ): Promise> {
+ const response = await fetchJSON<{
+ persona: string
+ proofs: {
+ platform: NextIDPlatform
+ identity: string
+ content: Record
+ }[]
+ }>(urlcat(BASE_URL, '/v1/kv', { persona: personaPublicKey }))
+ if (!response.ok) return Err('User not found')
+
+ const data =
+ response.val.proofs?.filter((x) => x.identity === identity.toLowerCase() && x.platform === platform) ?? []
+ if (!data.length) return Err('Not found')
+ return Ok(data[0].content[pluginId])
+ }
async get(personaPublicKey: string): Promise> {
return fetchJSON(urlcat(BASE_URL, '/v1/kv', { persona: personaPublicKey }))
}
-
/**
* Get signature payload for updating
* @param personaPublicKey
diff --git a/packages/web3-providers/src/twitter/index.ts b/packages/web3-providers/src/twitter/index.ts
index 8b38595f9116..83533ae075ea 100644
--- a/packages/web3-providers/src/twitter/index.ts
+++ b/packages/web3-providers/src/twitter/index.ts
@@ -128,7 +128,7 @@ export class TwitterAPI implements TwitterBaseAPI.Provider {
}
}
- async uploadUserAvatar(image: File | Blob) {
+ async uploadUserAvatar(screenName: string, image: File | Blob): Promise {
// INIT
const initURL = `${UPLOAD_AVATAR_URL}?command=INIT&total_bytes=${image.size}&media_type=${encodeURIComponent(
image.type,
@@ -151,21 +151,43 @@ export class TwitterAPI implements TwitterBaseAPI.Provider {
// FINALIZE
const finalizeURL = `${UPLOAD_AVATAR_URL}?command=FINALIZE&media_id=${mediaId}`
- const data = await request<{
- media_id: number
- media_id_string: string
- size: number
- image: {
- image_type: string
- w: number
- h: number
- }
- }>(finalizeURL, {
+ return request(finalizeURL, {
method: 'POST',
credentials: 'include',
})
+ }
+ async updateProfileImage(screenName: string, media_id_str: string): Promise {
+ const { bearerToken, queryToken, csrfToken } = await getTokens()
+ const headers = {
+ authorization: `Bearer ${bearerToken}`,
+ 'x-csrf-token': csrfToken,
+ 'content-type': 'application/json',
+ 'x-twitter-auth-type': 'OAuth2Session',
+ 'x-twitter-active-user': 'yes',
+ referer: `https://twitter.com/${screenName}`,
+ }
+ const updateProfileImageURL = 'https://twitter.com/i/api/1.1/account/update_profile_image.json'
+ if (!bearerToken || !queryToken || !csrfToken) return
+ const response = await fetch(
+ urlcat(updateProfileImageURL, {
+ media_id: media_id_str,
+ skip_status: 1,
+ return_user: true,
+ }),
+ {
+ method: 'POST',
+ credentials: 'include',
+ headers,
+ },
+ )
- return data
+ const updateInfo = await response.json()
+ return {
+ imageUrl: updateInfo.profile_image_url_https,
+ mediaId: updateInfo.id_str,
+ nickname: updateInfo.name,
+ userId: updateInfo.screen_name,
+ }
}
}
diff --git a/packages/web3-providers/src/types.ts b/packages/web3-providers/src/types.ts
index 124a9110374d..e33ba8eed336 100644
--- a/packages/web3-providers/src/types.ts
+++ b/packages/web3-providers/src/types.ts
@@ -9,13 +9,7 @@ import type {
} from '@masknet/web3-shared-evm'
import type { CurrencyType } from '@masknet/plugin-infra/web3'
import type { Result } from 'ts-results'
-import type {
- NextIDAction,
- NextIDStoragePayload,
- NextIDPayload,
- NextIDPlatform,
- NextIDStorageInfo,
-} from '@masknet/shared-base'
+import type { NextIDAction, NextIDStoragePayload, NextIDPayload, NextIDPlatform } from '@masknet/shared-base'
export namespace ExplorerAPI {
export type Transaction = Web3Transaction & {
@@ -328,7 +322,13 @@ export namespace NextIDBaseAPI {
patchData: unknown,
pluginId: string,
): Promise>
- get(key: string): Promise>
+ getByIdentity(
+ key: string,
+ platform: NextIDPlatform,
+ identity: string,
+ pluginId: string,
+ ): Promise>
+ get(key: string): Promise>
getPayload(
personaPublicKey: string,
platform: NextIDPlatform,
@@ -470,11 +470,28 @@ export namespace TwitterBaseAPI {
}[]
}
}
+ export interface AvatarInfo {
+ nickname: string
+ userId: string
+ imageUrl: string
+ mediaId: string
+ }
export interface Settings {
screen_name: string
}
+ export interface TwitterResult {
+ media_id: number
+ media_id_string: string
+ size: number
+ image: {
+ image_type: string
+ w: number
+ h: number
+ }
+ }
+
export interface Provider {
getSettings: () => Promise
getUserNftContainer: (screenName: string) => Promise<
@@ -485,6 +502,8 @@ export namespace TwitterBaseAPI {
}
| undefined
>
+ uploadUserAvatar: (screenName: string, image: Blob | File) => Promise
+ updateProfileImage: (screenName: string, media_id_str: string) => Promise
}
}
diff --git a/packages/web3-shared/evm/contracts/useERC721TokenContract.ts b/packages/web3-shared/evm/contracts/useERC721TokenContract.ts
index 49e4e3d2c548..75a1c81d892d 100644
--- a/packages/web3-shared/evm/contracts/useERC721TokenContract.ts
+++ b/packages/web3-shared/evm/contracts/useERC721TokenContract.ts
@@ -2,7 +2,8 @@ import type { AbiItem } from 'web3-utils'
import ERC721ABI from '@masknet/web3-contracts/abis/ERC721.json'
import type { ERC721 } from '@masknet/web3-contracts/types/ERC721'
import { useContract } from '../hooks/useContract'
+import type { ChainId } from '../types'
-export function useERC721TokenContract(address?: string) {
- return useContract(address, ERC721ABI as AbiItem[])
+export function useERC721TokenContract(address?: string, chainId?: ChainId) {
+ return useContract(address, ERC721ABI as AbiItem[], chainId)
}
diff --git a/packages/web3-shared/evm/hooks/useCollectibles.ts b/packages/web3-shared/evm/hooks/useCollectibles.ts
index 57f342812b1b..89e9f992cb60 100644
--- a/packages/web3-shared/evm/hooks/useCollectibles.ts
+++ b/packages/web3-shared/evm/hooks/useCollectibles.ts
@@ -1,6 +1,6 @@
-import type { ChainId, ERC721TokenCollectionInfo, ERC721TokenDetailed } from '../types'
+import { ChainId, ERC721TokenCollectionInfo, ERC721TokenDetailed } from '../types'
import { useWeb3Context } from '../context'
-import { uniqWith } from 'lodash-unified'
+import { noop, uniqWith } from 'lodash-unified'
import { isSameAddress } from '../utils'
import { useSocket } from './useSocket'
import { useMemo } from 'react'
@@ -54,9 +54,9 @@ export function useCollectibles(address: string, chainId: ChainId | null, depend
(a, b) => isSameAddress(a.contractDetailed.address, b.contractDetailed.address) && a.tokenId === b.tokenId,
)
return {
- data: all as ERC721TokenDetailed[],
+ data: chainId === ChainId.Mainnet ? (all as ERC721TokenDetailed[]) : [],
state,
- error,
- retry,
+ error: chainId === ChainId.Mainnet ? error : undefined,
+ retry: chainId === ChainId.Mainnet ? retry : noop,
}
}
diff --git a/packages/web3-shared/evm/hooks/useERC721TokenDetailed.ts b/packages/web3-shared/evm/hooks/useERC721TokenDetailed.ts
index 6dd2eb3d033f..cc9397ca4313 100644
--- a/packages/web3-shared/evm/hooks/useERC721TokenDetailed.ts
+++ b/packages/web3-shared/evm/hooks/useERC721TokenDetailed.ts
@@ -117,6 +117,7 @@ export async function getERC721TokenAssetFromChain(tokenURI?: string): Promise=6.12'}
dependencies:
'@0xproject/typescript-typings': 0.3.2
@@ -1519,7 +1523,7 @@ packages:
dev: false
/@0xproject/types/0.7.0:
- resolution: {integrity: sha1-+tE5Je6SrU7hmAZopcsr7U3Kq48=}
+ resolution: {integrity: sha512-LlTnq7raPnCioCokNy5CLDxZJeg3KtcHT4PBJD6BDiXYtNJxBWvL7/jr6JiwdjReNg7ihGi1265VKfFX7qukRw==}
engines: {node: '>=6.12'}
dependencies:
'@types/node': 17.0.31
@@ -1527,7 +1531,7 @@ packages:
dev: false
/@0xproject/typescript-typings/0.3.2:
- resolution: {integrity: sha1-q8NgtEGv2pkxAEUMqDad+r91k2s=}
+ resolution: {integrity: sha512-sHwGTxerREyQhyXFHhZRHvy7PlbBUjsoVbxhf5f+9JasC+IhQ2Nv4uJFjOo16uUPPp7l+lsRUvK/ZwrdGRbFBA==}
engines: {node: '>=6.12'}
dependencies:
'@0xproject/types': 0.7.0
@@ -1761,9 +1765,24 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-explode-assignable-expression': 7.16.7
- '@babel/types': 7.17.0
+ '@babel/types': 7.17.10
dev: true
+ /@babel/helper-compilation-targets/7.16.7:
+ resolution: {integrity: sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/compat-data': 7.17.0
+ '@babel/helper-validator-option': 7.16.7
+ browserslist: 4.20.3
+ semver: 6.3.0
+ dev: false
+
/@babel/helper-compilation-targets/7.16.7_@babel+core@7.17.10:
resolution: {integrity: sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==}
engines: {node: '>=6.9.0'}
@@ -1796,6 +1815,22 @@ packages:
semver: 6.3.0
dev: true
+ /@babel/helper-compilation-targets/7.17.10_@babel+core@7.17.9:
+ resolution: {integrity: sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/compat-data': 7.17.10
+ '@babel/core': 7.17.9
+ '@babel/helper-validator-option': 7.16.7
+ browserslist: 4.20.3
+ semver: 6.3.0
+ dev: true
+
/@babel/helper-compilation-targets/7.17.7_@babel+core@7.17.10:
resolution: {integrity: sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==}
engines: {node: '>=6.9.0'}
@@ -1907,10 +1942,10 @@ packages:
optional: true
dependencies:
'@babel/core': 7.17.10
- '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.10
+ '@babel/helper-compilation-targets': 7.17.10_@babel+core@7.17.10
'@babel/helper-module-imports': 7.16.7
'@babel/helper-plugin-utils': 7.16.7
- '@babel/traverse': 7.17.9
+ '@babel/traverse': 7.17.10
debug: 4.3.4
lodash.debounce: 4.0.8
resolve: 1.22.0
@@ -1928,10 +1963,10 @@ packages:
optional: true
dependencies:
'@babel/core': 7.17.9
- '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.9
+ '@babel/helper-compilation-targets': 7.17.10_@babel+core@7.17.9
'@babel/helper-module-imports': 7.16.7
'@babel/helper-plugin-utils': 7.16.7
- '@babel/traverse': 7.17.9
+ '@babel/traverse': 7.17.10
debug: 4.3.4
lodash.debounce: 4.0.8
resolve: 1.22.0
@@ -1940,6 +1975,26 @@ packages:
- supports-color
dev: true
+ /@babel/helper-define-polyfill-provider/0.2.4:
+ resolution: {integrity: sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ==}
+ peerDependencies:
+ '@babel/core': ^7.4.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/helper-compilation-targets': 7.16.7
+ '@babel/helper-module-imports': 7.16.0
+ '@babel/helper-plugin-utils': 7.16.5
+ '@babel/traverse': 7.16.10
+ debug: 4.3.3
+ lodash.debounce: 4.0.8
+ resolve: 1.22.0
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/@babel/helper-define-polyfill-provider/0.2.4_@babel+core@7.17.10:
resolution: {integrity: sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ==}
peerDependencies:
@@ -2013,7 +2068,7 @@ packages:
resolution: {integrity: sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.17.0
+ '@babel/types': 7.17.10
dev: true
/@babel/helper-function-name/7.16.7:
@@ -2037,7 +2092,7 @@ packages:
resolution: {integrity: sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.16.8
+ '@babel/types': 7.17.10
dev: false
/@babel/helper-hoist-variables/7.16.7:
@@ -2064,7 +2119,7 @@ packages:
resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.17.0
+ '@babel/types': 7.17.10
/@babel/helper-module-transforms/7.17.7:
resolution: {integrity: sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==}
@@ -2108,7 +2163,7 @@ packages:
dependencies:
'@babel/helper-annotate-as-pure': 7.16.7
'@babel/helper-wrap-function': 7.16.8
- '@babel/types': 7.17.0
+ '@babel/types': 7.17.10
transitivePeerDependencies:
- supports-color
dev: true
@@ -2130,7 +2185,7 @@ packages:
resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.17.0
+ '@babel/types': 7.17.10
dev: true
/@babel/helper-skip-transparent-expression-wrappers/7.16.0:
@@ -2165,8 +2220,8 @@ packages:
dependencies:
'@babel/helper-function-name': 7.17.9
'@babel/template': 7.16.7
- '@babel/traverse': 7.17.9
- '@babel/types': 7.17.0
+ '@babel/traverse': 7.17.10
+ '@babel/types': 7.17.10
transitivePeerDependencies:
- supports-color
dev: true
@@ -2203,6 +2258,8 @@ packages:
resolution: {integrity: sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==}
engines: {node: '>=6.0.0'}
hasBin: true
+ dependencies:
+ '@babel/types': 7.17.10
dev: false
/@babel/parser/7.17.10:
@@ -4203,6 +4260,8 @@ packages:
dependencies:
'@babel/helper-annotate-as-pure': 7.16.7
'@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.10
+ '@babel/types': 7.17.10
dev: true
/@babel/plugin-transform-react-pure-annotations/7.16.7_@babel+core@7.17.10:
@@ -4285,6 +4344,25 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: true
+ /@babel/plugin-transform-runtime/7.15.0:
+ resolution: {integrity: sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/helper-module-imports': 7.16.0
+ '@babel/helper-plugin-utils': 7.16.5
+ babel-plugin-polyfill-corejs2: 0.2.3
+ babel-plugin-polyfill-corejs3: 0.2.4
+ babel-plugin-polyfill-regenerator: 0.2.3
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/@babel/plugin-transform-runtime/7.15.0_@babel+core@7.17.10:
resolution: {integrity: sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==}
engines: {node: '>=6.9.0'}
@@ -4742,7 +4820,7 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
'@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.10
'@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.10
- '@babel/types': 7.17.0
+ '@babel/types': 7.17.10
esutils: 2.0.3
dev: true
@@ -4758,7 +4836,7 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
'@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.9
'@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.9
- '@babel/types': 7.17.0
+ '@babel/types': 7.17.10
esutils: 2.0.3
dev: true
@@ -4898,7 +4976,7 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.16.7
- '@babel/parser': 7.17.3
+ '@babel/parser': 7.17.10
'@babel/types': 7.17.0
/@babel/traverse/7.16.10:
@@ -10822,6 +10900,12 @@ packages:
resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=}
dev: true
+ /@types/keyv/3.1.4:
+ resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
+ dependencies:
+ '@types/node': 17.0.31
+ dev: false
+
/@types/lodash-es/4.17.6:
resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==}
dependencies:
@@ -10932,6 +11016,12 @@ packages:
/@types/range-parser/1.2.4:
resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==}
+ /@types/react-avatar-editor/10.3.6:
+ resolution: {integrity: sha512-2r9+WYriqXIyjOTxy/DSiCUhr2TBiYD4Gzbyych1WUEwdPboNj0JRz9B5868TwiGgKD61jdWYyKy/OutHs7L6A==}
+ dependencies:
+ '@types/react': 18.0.9
+ dev: false
+
/@types/react-avatar-editor/12.0.0:
resolution: {integrity: sha512-835jSnCdQ2Kgrtz2sTYKMv9YSGJG0j2vd8C0sxWtYJoYOmYPs8nt25rTsbCOha3SVzWNiuw1TOQCVqN0iBQgrw==}
dependencies:
@@ -11021,6 +11111,12 @@ packages:
'@types/node': 17.0.31
dev: true
+ /@types/responselike/1.0.0:
+ resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
+ dependencies:
+ '@types/node': 17.0.31
+ dev: false
+
/@types/retry/0.12.1:
resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==}
dev: true
@@ -12913,6 +13009,21 @@ packages:
'@babel/core': 7.17.10
dev: true
+ /babel-plugin-polyfill-corejs2/0.2.3:
+ resolution: {integrity: sha512-NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/compat-data': 7.16.8
+ '@babel/helper-define-polyfill-provider': 0.2.4
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/babel-plugin-polyfill-corejs2/0.2.3_@babel+core@7.17.10:
resolution: {integrity: sha512-NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA==}
peerDependencies:
@@ -12971,7 +13082,7 @@ packages:
dependencies:
'@babel/core': 7.17.10
'@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.17.10
- core-js-compat: 3.22.2
+ core-js-compat: 3.22.4
transitivePeerDependencies:
- supports-color
dev: true
@@ -12986,11 +13097,25 @@ packages:
dependencies:
'@babel/core': 7.17.9
'@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.17.9
- core-js-compat: 3.22.2
+ core-js-compat: 3.22.4
transitivePeerDependencies:
- supports-color
dev: true
+ /babel-plugin-polyfill-corejs3/0.2.4:
+ resolution: {integrity: sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/helper-define-polyfill-provider': 0.2.4
+ core-js-compat: 3.20.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/babel-plugin-polyfill-corejs3/0.2.4_@babel+core@7.17.10:
resolution: {integrity: sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==}
peerDependencies:
@@ -13036,6 +13161,19 @@ packages:
- supports-color
dev: true
+ /babel-plugin-polyfill-regenerator/0.2.3:
+ resolution: {integrity: sha512-JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/helper-define-polyfill-provider': 0.2.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/babel-plugin-polyfill-regenerator/0.2.3_@babel+core@7.17.10:
resolution: {integrity: sha512-JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g==}
peerDependencies:
@@ -17048,7 +17186,7 @@ packages:
resolution: {integrity: sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg==}
engines: {node: '>=8.3.0'}
dependencies:
- '@babel/traverse': 7.17.9
+ '@babel/traverse': 7.17.10
'@babel/types': 7.17.0
c8: 7.11.2
transitivePeerDependencies:
@@ -18718,6 +18856,8 @@ packages:
resolution: {integrity: sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==}
engines: {node: '>=4'}
dependencies:
+ '@types/keyv': 3.1.4
+ '@types/responselike': 1.0.0
decompress-response: 3.3.0
duplexer3: 0.1.4
get-stream: 3.0.0
@@ -18740,6 +18880,8 @@ packages:
dependencies:
'@sindresorhus/is': 0.14.0
'@szmarczak/http-timer': 1.1.2
+ '@types/keyv': 3.1.4
+ '@types/responselike': 1.0.0
cacheable-request: 6.1.0
decompress-response: 3.3.0
duplexer3: 0.1.4
@@ -24309,6 +24451,25 @@ packages:
webpack: 4.46.0
dev: true
+ /react-avatar-editor/12.0.0:
+ resolution: {integrity: sha512-l7NrN8CXlUXbMhnbkuduAtR3+AlDz+DzYWlYBNr7q+rNeJMZlv26ap3Dk/D1WK/MPlnoS33iITlhLkuDsYQpug==}
+ peerDependencies:
+ react: ^0.14.0 || ^17.0.0 || 18
+ react-dom: '>=0.14.0 || 18'
+ peerDependenciesMeta:
+ react:
+ optional: true
+ react-dom:
+ optional: true
+ dependencies:
+ '@babel/plugin-transform-runtime': 7.15.0
+ '@babel/runtime': 7.16.5
+ prop-types: 15.8.0
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
+ dev: false
+
/react-avatar-editor/12.0.0_@babel+core@7.17.10:
resolution: {integrity: sha512-l7NrN8CXlUXbMhnbkuduAtR3+AlDz+DzYWlYBNr7q+rNeJMZlv26ap3Dk/D1WK/MPlnoS33iITlhLkuDsYQpug==}
peerDependencies:
@@ -27050,6 +27211,7 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
+ acorn: 8.7.1
commander: 2.20.3
source-map: 0.6.1
source-map-support: 0.5.21
@@ -27065,6 +27227,7 @@ packages:
acorn:
optional: true
dependencies:
+ acorn: 8.7.1
commander: 2.20.3
source-map: 0.7.3
source-map-support: 0.5.21