@particle-network/auth-connectors 2.1.1 → 3.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -530,10 +530,10 @@ function authWalletConnectors(parameters = {}) {
530
530
  }
531
531
 
532
532
  // src/version.ts
533
- var version = "2.1.1";
533
+ var version = "3.0.0-alpha.1";
534
534
  export {
535
535
  auth,
536
536
  authWalletConnectors,
537
537
  version
538
538
  };
539
- //# sourceMappingURL=index.mjs.map
539
+ //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/store.ts", "../../src/getClient.ts", "../../src/getConnection.ts", "../../src/particleEvm.ts", "../../src/particleSolana.ts", "../../src/types.ts", "../../src/version.ts"],
4
- "sourcesContent": ["import { AuthType } from '@particle-network/auth-core';\nimport { AuthCoreContextProvider, type AuthCoreModalOptions, type CustomStyle } from '@particle-network/authkit';\nimport {\n ChainNotConfiguredError,\n createEmitter,\n createWalletConnector,\n isEVMChain,\n isSolanaChain,\n type ChainType,\n type ClientType,\n type Connector,\n type ConnectorEventMap,\n type CreateConnectorFn,\n type EVMChain,\n type Prettify,\n type WalletConnectorsOption,\n} from '@particle-network/connector-core';\nimport { createStore } from 'zustand/vanilla';\nimport { getPublicClient } from './getClient';\nimport { getConnection } from './getConnection';\nimport { particleEvm } from './particleEvm';\nimport { particleSolana } from './particleSolana';\nimport { auth } from './types';\n\ntype AuthConnectorsOption = WalletConnectorsOption & {\n projectId: string;\n clientKey: string;\n appId: string;\n};\n\ntype AuthTypeValue = `${AuthType}`;\n\nexport type AuthWalletParameters = Prettify<\n Pick<AuthCoreModalOptions, 'language' | 'fiatCoin' | 'promptSettingConfig'> & {\n authTypes?: (AuthTypeValue | AuthType)[];\n overrides?: {\n customStyle?: CustomStyle;\n };\n }\n>;\n\nauthWalletConnectors.type = 'particleAuth' as const;\nexport function authWalletConnectors(parameters: AuthWalletParameters = {}) {\n const { authTypes, fiatCoin, promptSettingConfig, overrides, language } = parameters;\n if (authTypes && authTypes.length === 0) {\n throw new Error('authTypes cannot be empty.');\n }\n type Properties = {\n authOptions: AuthCoreModalOptions;\n supportAuthTypes: readonly [AuthType, ...AuthType[]];\n AuthCoreContextProvider: (props: {\n options: AuthCoreModalOptions;\n children: React.ReactNode;\n }) => React.ReactElement;\n } & { auth: typeof auth };\n\n const supportAuthTypes = (authTypes as AuthType[]) || Object.values(AuthType);\n\n return createWalletConnector<AuthConnectorsOption, Properties>((options) => {\n const { chains: _chains, storage, projectId, clientKey, appId } = options;\n const chains = createStore(() => _chains);\n\n function setup(connectorFn: CreateConnectorFn): Connector {\n // Set up emitter and add to connector so they are \"linked\" together.\n const emitter = createEmitter<ConnectorEventMap>();\n const result = connectorFn({ emitter, chains: _chains, storage });\n const connector = {\n ...result,\n emitter,\n uid: emitter.uid,\n chainType: result.id.toLowerCase().includes('evm') ? ('evm' as const) : ('solana' as const),\n walletConnectorType: authWalletConnectors.type,\n };\n connector.setup?.();\n return connector;\n }\n\n const storeData: CreateConnectorFn[] = [];\n if (_chains.some(isEVMChain)) {\n storeData.push(particleEvm());\n }\n if (_chains.some(isSolanaChain)) {\n storeData.push(particleSolana());\n }\n\n const connectors = createStore(() => storeData.map(setup));\n\n function getClient<chainType extends ChainType = EVMChain>(chainId: number): ClientType<chainType> {\n const chain = chains.getState().find((chain) => chain.id === chainId);\n if (!chain) {\n throw new ChainNotConfiguredError();\n }\n if (isEVMChain(chain)) {\n return getPublicClient(chain) as ClientType<chainType>;\n }\n\n return getConnection(chain) as ClientType<chainType>;\n }\n\n return {\n get type() {\n return authWalletConnectors.type;\n },\n get chains() {\n return chains.getState();\n },\n get connectors() {\n return connectors.getState();\n },\n store: connectors,\n getClient,\n supportAuthTypes: supportAuthTypes as unknown as readonly [AuthType, ...AuthType[]],\n authOptions: {\n projectId,\n clientKey,\n appId,\n authTypes: supportAuthTypes,\n fiatCoin,\n language,\n promptSettingConfig,\n supportEIP6963: false,\n customStyle: {\n zIndex: 2147500000,\n ...overrides?.customStyle,\n },\n wallet: false,\n chains: _chains,\n },\n AuthCoreContextProvider,\n _internal: {\n connectors: {\n setup,\n },\n },\n auth,\n };\n });\n}\n", "import { createPublicClient, http, type Chain, type PublicClient } from 'viem';\n\nconst clients = new Map<number, PublicClient>();\n\nexport function getPublicClient(chain: Chain): PublicClient {\n {\n const client = clients.get(chain.id);\n if (client) return client;\n }\n\n const client = createPublicClient({\n chain,\n transport: http(),\n });\n clients.set(chain.id, client);\n\n return client;\n}\n", "import { Connection, type Commitment, type ConnectionConfig } from '@solana/web3.js';\nimport type { Chain } from 'viem';\n\nconst clients = new Map<number, Connection>();\n\nexport function getConnection(chain: Chain, commitmentOrConfig?: Commitment | ConnectionConfig): Connection {\n {\n const client = clients.get(chain.id);\n if (client) return client;\n }\n\n const client = new Connection(chain.rpcUrls.default.http[0]!, commitmentOrConfig);\n\n clients.set(chain.id, client);\n\n return client;\n}\n", "import type {\n ConnectParam,\n ConnectWithEmailParam,\n ConnectWithPhoneParam,\n ConnectWithProvider,\n} from '@particle-network/auth-core';\nimport {\n ChainNotConfiguredError,\n ProviderNotFoundError,\n SwitchChainError,\n UserRejectedRequestError,\n createConnector,\n isEVMChain,\n numberToHex,\n type Connector,\n type RpcError,\n} from '@particle-network/connector-core';\nimport { type EVMProvider } from './types';\n\ntype ConnectOptions = Omit<ConnectParam, 'chain'> & { chainId?: number; isReconnecting?: boolean };\n\nparticleEvm.type = 'particleAuth' as const;\nexport function particleEvm() {\n type Provider = EVMProvider | undefined;\n\n type Properties = {\n connect(options?: ConnectOptions): Promise<{\n accounts: readonly string[];\n chainId: number;\n }>;\n };\n\n let accountsChanged: Connector['onAccountsChanged'] | undefined;\n let chainChanged: Connector['onChainChanged'] | undefined;\n let disconnect: Connector['onDisconnect'] | undefined;\n\n return createConnector<Provider, Properties>((config) => ({\n get icon() {\n return 'https://static.particle.network/logo-small.png';\n },\n get id() {\n return 'particleEVM';\n },\n get name() {\n return 'Particle Auth';\n },\n type: particleEvm.type,\n async connect(options: ConnectOptions) {\n const { chainId, isReconnecting } = options;\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n if ((options as ConnectWithPhoneParam).phone && !(options as ConnectWithPhoneParam).code) {\n throw new Error('Paramers error, need code.');\n }\n\n if ((options as ConnectWithEmailParam).email && !(options as ConnectWithEmailParam).code) {\n throw new Error('Paramers error, need code.');\n }\n\n if ((options as ConnectWithProvider).provider && !(options as ConnectWithProvider).thirdpartyCode) {\n throw new Error('Paramers error, need thirdpartyCode.');\n }\n\n let accounts: readonly string[] = [];\n accounts = await this.getAccounts().catch(() => []);\n\n try {\n if (!accounts?.length && !isReconnecting) {\n accounts = await provider.connect({\n ...options,\n chain: chainId ? config.chains.filter(isEVMChain).find((chain) => chain.id === chainId) : undefined,\n });\n }\n\n // Manage EIP-1193 event listeners\n // https://eips.ethereum.org/EIPS/eip-1193#events\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged!.bind(this);\n provider.on('accountsChanged', accountsChanged);\n }\n if (!chainChanged) {\n chainChanged = this.onChainChanged.bind(this);\n provider.on('chainChanged', chainChanged);\n }\n if (!disconnect) {\n disconnect = this.onDisconnect.bind(this);\n provider.on('disconnect', disconnect);\n }\n\n // Switch to chain if provided\n let currentChainId = await this.getChainId();\n if (chainId && currentChainId !== chainId) {\n const chain = await this.switchChain!({ chainId }).catch((error) => {\n if (error.code === UserRejectedRequestError.code) throw error;\n return { id: currentChainId };\n });\n currentChainId = chain?.id ?? currentChainId;\n }\n\n return { accounts, chainId: currentChainId };\n } catch (err) {\n const error = err as RpcError;\n if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error);\n throw error;\n }\n },\n async disconnect() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n // Manage EIP-1193 event listeners\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n\n await provider.disconnect();\n },\n async getAccounts() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n const accounts = await provider.request({ method: 'eth_accounts' });\n return accounts;\n },\n async getChainId() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n const hexChainId = await provider.request({ method: 'eth_chainId' });\n return Number(hexChainId);\n },\n async getProvider() {\n if (typeof window === 'undefined') return undefined;\n const provider: Provider = window.particle?.ethereum;\n return provider;\n },\n async isAuthorized() {\n try {\n const provider = await this.getProvider();\n if (!provider) {\n throw new ProviderNotFoundError();\n }\n if (provider.isSocialConnecting) {\n const timeout = 3_0000; // social login timeout\n await Promise.race([\n ...(typeof window !== 'undefined'\n ? [\n new Promise<boolean>((resolve) =>\n window.addEventListener('particle:socialConnectCompleted', () => resolve(true), { once: true })\n ),\n ]\n : []),\n new Promise<boolean>((resolve) => setTimeout(() => resolve(true), timeout)),\n ]);\n }\n\n const accounts = await this.getAccounts();\n return !!accounts.length;\n } catch {\n return false;\n }\n },\n /**\n * particle does not support adding chains\n */\n async switchChain({ chainId }) {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n const chain = config.chains.filter(isEVMChain).find((x) => x.id === chainId);\n if (!chain) throw new SwitchChainError(new ChainNotConfiguredError());\n\n try {\n await Promise.all([\n provider\n .request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: numberToHex(chainId) }],\n })\n .then(async () => {\n const currentChainId = await this.getChainId();\n if (currentChainId === chainId) config.emitter.emit('change', { chainId });\n }),\n new Promise<void>((resolve) =>\n config.emitter.once('change', ({ chainId: currentChainId }) => {\n if (currentChainId === chainId) resolve();\n })\n ),\n ]);\n\n return chain;\n } catch (err) {\n const error = err as RpcError;\n if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error);\n throw new SwitchChainError(error);\n }\n },\n async onAccountsChanged(accounts) {\n // Disconnect if there are no accounts\n if (accounts.length === 0) this.onDisconnect();\n // Regular change event\n else\n config.emitter.emit('change', {\n accounts,\n });\n },\n onChainChanged(chain) {\n const chainId = Number(chain);\n config.emitter.emit('change', { chainId });\n },\n async onDisconnect() {\n const provider = await this.getProvider();\n\n config.emitter.emit('disconnect');\n\n // Manage EIP-1193 event listeners\n if (provider) {\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n }\n },\n isInstalled() {\n return true;\n },\n }));\n}\n", "import type {\n ConnectParam,\n ConnectWithEmailParam,\n ConnectWithPhoneParam,\n ConnectWithProvider,\n} from '@particle-network/auth-core';\nimport {\n ChainNotConfiguredError,\n ProviderNotFoundError,\n SwitchChainError,\n UserRejectedRequestError,\n createConnector,\n isSolanaChain,\n type Connector,\n type RpcError,\n} from '@particle-network/connector-core';\nimport { type SolanaWallet } from './types';\n\ntype ConnectOptions = Omit<ConnectParam, 'chain'> & { chainId?: number; isReconnecting?: boolean };\n\nparticleSolana.type = 'particleAuth' as const;\nexport function particleSolana() {\n type Provider = SolanaWallet | undefined;\n\n type Properties = {\n connect(options?: ConnectOptions): Promise<{\n accounts: readonly string[];\n chainId: number;\n }>;\n };\n\n let accountsChanged: Connector['onAccountsChanged'] | undefined;\n let chainChanged: Connector['onChainChanged'] | undefined;\n let disconnect: Connector['onDisconnect'] | undefined;\n\n return createConnector<Provider, Properties>((config) => ({\n get icon() {\n return 'https://static.particle.network/logo-small.png';\n },\n get id() {\n return 'particleSolana';\n },\n get name() {\n return 'Particle Auth';\n },\n type: particleSolana.type,\n async connect(options: ConnectOptions) {\n const { chainId, isReconnecting } = options;\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n if ((options as ConnectWithPhoneParam).phone && !(options as ConnectWithPhoneParam).code) {\n throw new Error('Paramers error, need code.');\n }\n\n if ((options as ConnectWithEmailParam).email && !(options as ConnectWithEmailParam).code) {\n throw new Error('Paramers error, need code.');\n }\n\n if ((options as ConnectWithProvider).provider && !(options as ConnectWithProvider).thirdpartyCode) {\n throw new Error('Paramers error, need thirdpartyCode.');\n }\n\n let accounts: readonly string[] = [];\n accounts = await this.getAccounts().catch(() => []);\n\n try {\n if (!isReconnecting) {\n // \u5982\u679C\u5DF2\u7ECF\u767B\u5F55\u8FC7\uFF0C\u4E5F\u9700\u8981\u8C03\u7528\u8BE5\u65B9\u6CD5\n // 1. \u5F53\u6CA1\u6709\u521B\u5EFA\u94B1\u5305\u65F6\u4F1A\u81EA\u52A8\u521B\u5EFA\n // 2. \u5982\u679C\u5DF2\u7ECF\u767B\u5F55\u8FC7\u5207\u521B\u5EFA\u4E86\u94B1\u5305\uFF0C\u4F1A\u76F4\u63A5\u8FD4\u56DE\n // 3. \u6CA1\u767B\u5F55\u8FC7\u4F1A\u8C03\u7528\u767B\u5F55\u65B9\u6CD5\n await provider.connect({\n ...options,\n chain: chainId ? config.chains.filter(isSolanaChain).find((chain) => chain.id === chainId) : undefined,\n });\n accounts = [provider.selectedAddress!];\n } else {\n // \u91CD\u8FDE\u65F6\uFF0C\u5982\u679C\u94B1\u5305\u5DF2\u7ECF\u521B\u5EFA\u4E86\uFF0C\u9700\u8981\u8C03\u7528connect\u65B9\u6CD5\u521D\u59CB\u5316publicKey\n if (accounts.length && !provider.isConnected) {\n await provider.connect();\n }\n }\n\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged!.bind(this);\n provider.on('accountsChanged', accountsChanged);\n }\n if (!chainChanged) {\n chainChanged = this.onChainChanged.bind(this);\n provider.on('chainChanged', chainChanged);\n }\n if (!disconnect) {\n disconnect = this.onDisconnect.bind(this);\n provider.on('disconnect', disconnect);\n }\n\n // Switch to chain if provided\n let currentChainId = await this.getChainId();\n if (chainId && currentChainId !== chainId) {\n const chain = await this.switchChain!({ chainId }).catch((error) => {\n if (error.code === UserRejectedRequestError.code) throw error;\n return { id: currentChainId };\n });\n currentChainId = chain?.id ?? currentChainId;\n }\n\n return { accounts, chainId: currentChainId };\n } catch (err) {\n const error = err as RpcError;\n if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error);\n throw error;\n }\n },\n async disconnect() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n // Manage EIP-1193 event listeners\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n\n await provider.disconnect();\n },\n async getAccounts() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n if (provider.selectedAddress) {\n return [provider.selectedAddress];\n }\n return [];\n },\n async getChainId() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n if (config.chains.find((chain) => chain.id === provider.chainId)) {\n return provider.chainId;\n }\n const chainId = config.chains[0].id;\n await this.switchChain!({ chainId });\n return chainId;\n },\n async getProvider() {\n if (typeof window === 'undefined') return undefined;\n const provider: Provider = window.particle?.solana;\n return provider;\n },\n async isAuthorized() {\n try {\n const provider = await this.getProvider();\n if (!provider) {\n throw new ProviderNotFoundError();\n }\n if (provider.isSocialConnecting) {\n const timeout = 3_0000; // social login timeout\n await Promise.race([\n ...(typeof window !== 'undefined'\n ? [\n new Promise<boolean>((resolve) =>\n window.addEventListener('particle:socialConnectCompleted', () => resolve(true), { once: true })\n ),\n ]\n : []),\n new Promise<boolean>((resolve) => setTimeout(() => resolve(true), timeout)),\n ]);\n }\n\n const accounts = await this.getAccounts();\n return !!accounts.length;\n } catch {\n return false;\n }\n },\n async switchChain({ chainId }) {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n const chain = config.chains.filter(isSolanaChain).find((x) => x.id === chainId);\n if (!chain) throw new SwitchChainError(new ChainNotConfiguredError());\n\n try {\n await provider.switchChain(chainId);\n return chain;\n } catch (err) {\n const error = err as RpcError;\n if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error);\n throw new SwitchChainError(error);\n }\n },\n async onAccountsChanged(accounts) {\n // Disconnect if there are no accounts\n if (accounts.length === 0) this.onDisconnect();\n // Regular change event\n else\n config.emitter.emit('change', {\n accounts,\n });\n },\n onChainChanged(chain) {\n const chainId = Number(chain);\n config.emitter.emit('change', { chainId });\n },\n async onDisconnect() {\n const provider = await this.getProvider();\n\n config.emitter.emit('disconnect');\n\n // Manage EIP-1193 event listeners\n if (provider) {\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n }\n },\n isInstalled() {\n return true;\n },\n }));\n}\n", "import { getCloudflareTurnstileResponse, getConnectCaptcha, getLatestAuthType } from '@particle-network/auth-core';\nimport type { EVMProvider, SolanaWallet } from '@particle-network/authkit';\n\nconst auth = {\n getCloudflareTurnstileResponse,\n getConnectCaptcha,\n getLatestAuthType,\n};\n\ndeclare global {\n interface Window {\n particle?: {\n ethereum?: EVMProvider;\n solana?: SolanaWallet;\n };\n }\n}\n\nexport { auth, type EVMProvider, type SolanaWallet };\n", "export const version = '2.1.1';\n"],
3
+ "sources": ["../src/store.ts", "../src/getClient.ts", "../src/getConnection.ts", "../src/particleEvm.ts", "../src/particleSolana.ts", "../src/types.ts", "../src/version.ts"],
4
+ "sourcesContent": ["import { AuthType } from '@particle-network/auth-core';\nimport { AuthCoreContextProvider, type AuthCoreModalOptions, type CustomStyle } from '@particle-network/authkit';\nimport {\n ChainNotConfiguredError,\n createEmitter,\n createWalletConnector,\n isEVMChain,\n isSolanaChain,\n type ChainType,\n type ClientType,\n type Connector,\n type ConnectorEventMap,\n type CreateConnectorFn,\n type EVMChain,\n type Prettify,\n type WalletConnectorsOption,\n} from '@particle-network/connector-core';\nimport { createStore } from 'zustand/vanilla';\nimport { getPublicClient } from './getClient';\nimport { getConnection } from './getConnection';\nimport { particleEvm } from './particleEvm';\nimport { particleSolana } from './particleSolana';\nimport { auth } from './types';\n\ntype AuthConnectorsOption = WalletConnectorsOption & {\n projectId: string;\n clientKey: string;\n appId: string;\n};\n\ntype AuthTypeValue = `${AuthType}`;\n\nexport type AuthWalletParameters = Prettify<\n Pick<AuthCoreModalOptions, 'language' | 'fiatCoin' | 'promptSettingConfig'> & {\n authTypes?: (AuthTypeValue | AuthType)[];\n overrides?: {\n customStyle?: CustomStyle;\n };\n }\n>;\n\nauthWalletConnectors.type = 'particleAuth' as const;\nexport function authWalletConnectors(parameters: AuthWalletParameters = {}) {\n const { authTypes, fiatCoin, promptSettingConfig, overrides, language } = parameters;\n if (authTypes && authTypes.length === 0) {\n throw new Error('authTypes cannot be empty.');\n }\n type Properties = {\n authOptions: AuthCoreModalOptions;\n supportAuthTypes: readonly [AuthType, ...AuthType[]];\n AuthCoreContextProvider: (props: {\n options: AuthCoreModalOptions;\n children: React.ReactNode;\n }) => React.ReactElement;\n } & { auth: typeof auth };\n\n const supportAuthTypes = (authTypes as AuthType[]) || Object.values(AuthType);\n\n return createWalletConnector<AuthConnectorsOption, Properties>((options) => {\n const { chains: _chains, storage, projectId, clientKey, appId } = options;\n const chains = createStore(() => _chains);\n\n function setup(connectorFn: CreateConnectorFn): Connector {\n // Set up emitter and add to connector so they are \"linked\" together.\n const emitter = createEmitter<ConnectorEventMap>();\n const result = connectorFn({ emitter, chains: _chains, storage });\n const connector = {\n ...result,\n emitter,\n uid: emitter.uid,\n chainType: result.id.toLowerCase().includes('evm') ? ('evm' as const) : ('solana' as const),\n walletConnectorType: authWalletConnectors.type,\n };\n connector.setup?.();\n return connector;\n }\n\n const storeData: CreateConnectorFn[] = [];\n if (_chains.some(isEVMChain)) {\n storeData.push(particleEvm());\n }\n if (_chains.some(isSolanaChain)) {\n storeData.push(particleSolana());\n }\n\n const connectors = createStore(() => storeData.map(setup));\n\n function getClient<chainType extends ChainType = EVMChain>(chainId: number): ClientType<chainType> {\n const chain = chains.getState().find((chain) => chain.id === chainId);\n if (!chain) {\n throw new ChainNotConfiguredError();\n }\n if (isEVMChain(chain)) {\n return getPublicClient(chain) as ClientType<chainType>;\n }\n\n return getConnection(chain) as ClientType<chainType>;\n }\n\n return {\n get type() {\n return authWalletConnectors.type;\n },\n get chains() {\n return chains.getState();\n },\n get connectors() {\n return connectors.getState();\n },\n store: connectors,\n getClient,\n supportAuthTypes: supportAuthTypes as unknown as readonly [AuthType, ...AuthType[]],\n authOptions: {\n projectId,\n clientKey,\n appId,\n authTypes: supportAuthTypes,\n fiatCoin,\n language,\n promptSettingConfig,\n supportEIP6963: false,\n customStyle: {\n zIndex: 2147500000,\n ...overrides?.customStyle,\n },\n wallet: false,\n chains: _chains,\n },\n AuthCoreContextProvider,\n _internal: {\n connectors: {\n setup,\n },\n },\n auth,\n };\n });\n}\n", "import { createPublicClient, http, type Chain, type PublicClient } from 'viem';\n\nconst clients = new Map<number, PublicClient>();\n\nexport function getPublicClient(chain: Chain): PublicClient {\n {\n const client = clients.get(chain.id);\n if (client) return client;\n }\n\n const client = createPublicClient({\n chain,\n transport: http(),\n });\n clients.set(chain.id, client);\n\n return client;\n}\n", "import { Connection, type Commitment, type ConnectionConfig } from '@solana/web3.js';\nimport type { Chain } from 'viem';\n\nconst clients = new Map<number, Connection>();\n\nexport function getConnection(chain: Chain, commitmentOrConfig?: Commitment | ConnectionConfig): Connection {\n {\n const client = clients.get(chain.id);\n if (client) return client;\n }\n\n const client = new Connection(chain.rpcUrls.default.http[0]!, commitmentOrConfig);\n\n clients.set(chain.id, client);\n\n return client;\n}\n", "import type {\n ConnectParam,\n ConnectWithEmailParam,\n ConnectWithPhoneParam,\n ConnectWithProvider,\n} from '@particle-network/auth-core';\nimport {\n ChainNotConfiguredError,\n ProviderNotFoundError,\n SwitchChainError,\n UserRejectedRequestError,\n createConnector,\n isEVMChain,\n numberToHex,\n type Connector,\n type RpcError,\n} from '@particle-network/connector-core';\nimport { type EVMProvider } from './types';\n\ntype ConnectOptions = Omit<ConnectParam, 'chain'> & { chainId?: number; isReconnecting?: boolean };\n\nparticleEvm.type = 'particleAuth' as const;\nexport function particleEvm() {\n type Provider = EVMProvider | undefined;\n\n type Properties = {\n connect(options?: ConnectOptions): Promise<{\n accounts: readonly string[];\n chainId: number;\n }>;\n };\n\n let accountsChanged: Connector['onAccountsChanged'] | undefined;\n let chainChanged: Connector['onChainChanged'] | undefined;\n let disconnect: Connector['onDisconnect'] | undefined;\n\n return createConnector<Provider, Properties>((config) => ({\n get icon() {\n return 'https://static.particle.network/logo-small.png';\n },\n get id() {\n return 'particleEVM';\n },\n get name() {\n return 'Particle Auth';\n },\n type: particleEvm.type,\n async connect(options: ConnectOptions) {\n const { chainId, isReconnecting } = options;\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n if ((options as ConnectWithPhoneParam).phone && !(options as ConnectWithPhoneParam).code) {\n throw new Error('Paramers error, need code.');\n }\n\n if ((options as ConnectWithEmailParam).email && !(options as ConnectWithEmailParam).code) {\n throw new Error('Paramers error, need code.');\n }\n\n if ((options as ConnectWithProvider).provider && !(options as ConnectWithProvider).thirdpartyCode) {\n throw new Error('Paramers error, need thirdpartyCode.');\n }\n\n let accounts: readonly string[] = [];\n accounts = await this.getAccounts().catch(() => []);\n\n try {\n if (!accounts?.length && !isReconnecting) {\n accounts = await provider.connect({\n ...options,\n chain: chainId ? config.chains.filter(isEVMChain).find((chain) => chain.id === chainId) : undefined,\n });\n }\n\n // Manage EIP-1193 event listeners\n // https://eips.ethereum.org/EIPS/eip-1193#events\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged!.bind(this);\n provider.on('accountsChanged', accountsChanged);\n }\n if (!chainChanged) {\n chainChanged = this.onChainChanged.bind(this);\n provider.on('chainChanged', chainChanged);\n }\n if (!disconnect) {\n disconnect = this.onDisconnect.bind(this);\n provider.on('disconnect', disconnect);\n }\n\n // Switch to chain if provided\n let currentChainId = await this.getChainId();\n if (chainId && currentChainId !== chainId) {\n const chain = await this.switchChain!({ chainId }).catch((error) => {\n if (error.code === UserRejectedRequestError.code) throw error;\n return { id: currentChainId };\n });\n currentChainId = chain?.id ?? currentChainId;\n }\n\n return { accounts, chainId: currentChainId };\n } catch (err) {\n const error = err as RpcError;\n if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error);\n throw error;\n }\n },\n async disconnect() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n // Manage EIP-1193 event listeners\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n\n await provider.disconnect();\n },\n async getAccounts() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n const accounts = await provider.request({ method: 'eth_accounts' });\n return accounts;\n },\n async getChainId() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n const hexChainId = await provider.request({ method: 'eth_chainId' });\n return Number(hexChainId);\n },\n async getProvider() {\n if (typeof window === 'undefined') return undefined;\n const provider: Provider = window.particle?.ethereum;\n return provider;\n },\n async isAuthorized() {\n try {\n const provider = await this.getProvider();\n if (!provider) {\n throw new ProviderNotFoundError();\n }\n if (provider.isSocialConnecting) {\n const timeout = 3_0000; // social login timeout\n await Promise.race([\n ...(typeof window !== 'undefined'\n ? [\n new Promise<boolean>((resolve) =>\n window.addEventListener('particle:socialConnectCompleted', () => resolve(true), { once: true })\n ),\n ]\n : []),\n new Promise<boolean>((resolve) => setTimeout(() => resolve(true), timeout)),\n ]);\n }\n\n const accounts = await this.getAccounts();\n return !!accounts.length;\n } catch {\n return false;\n }\n },\n /**\n * particle does not support adding chains\n */\n async switchChain({ chainId }) {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n const chain = config.chains.filter(isEVMChain).find((x) => x.id === chainId);\n if (!chain) throw new SwitchChainError(new ChainNotConfiguredError());\n\n try {\n await Promise.all([\n provider\n .request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: numberToHex(chainId) }],\n })\n .then(async () => {\n const currentChainId = await this.getChainId();\n if (currentChainId === chainId) config.emitter.emit('change', { chainId });\n }),\n new Promise<void>((resolve) =>\n config.emitter.once('change', ({ chainId: currentChainId }) => {\n if (currentChainId === chainId) resolve();\n })\n ),\n ]);\n\n return chain;\n } catch (err) {\n const error = err as RpcError;\n if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error);\n throw new SwitchChainError(error);\n }\n },\n async onAccountsChanged(accounts) {\n // Disconnect if there are no accounts\n if (accounts.length === 0) this.onDisconnect();\n // Regular change event\n else\n config.emitter.emit('change', {\n accounts,\n });\n },\n onChainChanged(chain) {\n const chainId = Number(chain);\n config.emitter.emit('change', { chainId });\n },\n async onDisconnect() {\n const provider = await this.getProvider();\n\n config.emitter.emit('disconnect');\n\n // Manage EIP-1193 event listeners\n if (provider) {\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n }\n },\n isInstalled() {\n return true;\n },\n }));\n}\n", "import type {\n ConnectParam,\n ConnectWithEmailParam,\n ConnectWithPhoneParam,\n ConnectWithProvider,\n} from '@particle-network/auth-core';\nimport {\n ChainNotConfiguredError,\n ProviderNotFoundError,\n SwitchChainError,\n UserRejectedRequestError,\n createConnector,\n isSolanaChain,\n type Connector,\n type RpcError,\n} from '@particle-network/connector-core';\nimport { type SolanaWallet } from './types';\n\ntype ConnectOptions = Omit<ConnectParam, 'chain'> & { chainId?: number; isReconnecting?: boolean };\n\nparticleSolana.type = 'particleAuth' as const;\nexport function particleSolana() {\n type Provider = SolanaWallet | undefined;\n\n type Properties = {\n connect(options?: ConnectOptions): Promise<{\n accounts: readonly string[];\n chainId: number;\n }>;\n };\n\n let accountsChanged: Connector['onAccountsChanged'] | undefined;\n let chainChanged: Connector['onChainChanged'] | undefined;\n let disconnect: Connector['onDisconnect'] | undefined;\n\n return createConnector<Provider, Properties>((config) => ({\n get icon() {\n return 'https://static.particle.network/logo-small.png';\n },\n get id() {\n return 'particleSolana';\n },\n get name() {\n return 'Particle Auth';\n },\n type: particleSolana.type,\n async connect(options: ConnectOptions) {\n const { chainId, isReconnecting } = options;\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n if ((options as ConnectWithPhoneParam).phone && !(options as ConnectWithPhoneParam).code) {\n throw new Error('Paramers error, need code.');\n }\n\n if ((options as ConnectWithEmailParam).email && !(options as ConnectWithEmailParam).code) {\n throw new Error('Paramers error, need code.');\n }\n\n if ((options as ConnectWithProvider).provider && !(options as ConnectWithProvider).thirdpartyCode) {\n throw new Error('Paramers error, need thirdpartyCode.');\n }\n\n let accounts: readonly string[] = [];\n accounts = await this.getAccounts().catch(() => []);\n\n try {\n if (!isReconnecting) {\n // \u5982\u679C\u5DF2\u7ECF\u767B\u5F55\u8FC7\uFF0C\u4E5F\u9700\u8981\u8C03\u7528\u8BE5\u65B9\u6CD5\n // 1. \u5F53\u6CA1\u6709\u521B\u5EFA\u94B1\u5305\u65F6\u4F1A\u81EA\u52A8\u521B\u5EFA\n // 2. \u5982\u679C\u5DF2\u7ECF\u767B\u5F55\u8FC7\u5207\u521B\u5EFA\u4E86\u94B1\u5305\uFF0C\u4F1A\u76F4\u63A5\u8FD4\u56DE\n // 3. \u6CA1\u767B\u5F55\u8FC7\u4F1A\u8C03\u7528\u767B\u5F55\u65B9\u6CD5\n await provider.connect({\n ...options,\n chain: chainId ? config.chains.filter(isSolanaChain).find((chain) => chain.id === chainId) : undefined,\n });\n accounts = [provider.selectedAddress!];\n } else {\n // \u91CD\u8FDE\u65F6\uFF0C\u5982\u679C\u94B1\u5305\u5DF2\u7ECF\u521B\u5EFA\u4E86\uFF0C\u9700\u8981\u8C03\u7528connect\u65B9\u6CD5\u521D\u59CB\u5316publicKey\n if (accounts.length && !provider.isConnected) {\n await provider.connect();\n }\n }\n\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged!.bind(this);\n provider.on('accountsChanged', accountsChanged);\n }\n if (!chainChanged) {\n chainChanged = this.onChainChanged.bind(this);\n provider.on('chainChanged', chainChanged);\n }\n if (!disconnect) {\n disconnect = this.onDisconnect.bind(this);\n provider.on('disconnect', disconnect);\n }\n\n // Switch to chain if provided\n let currentChainId = await this.getChainId();\n if (chainId && currentChainId !== chainId) {\n const chain = await this.switchChain!({ chainId }).catch((error) => {\n if (error.code === UserRejectedRequestError.code) throw error;\n return { id: currentChainId };\n });\n currentChainId = chain?.id ?? currentChainId;\n }\n\n return { accounts, chainId: currentChainId };\n } catch (err) {\n const error = err as RpcError;\n if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error);\n throw error;\n }\n },\n async disconnect() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n // Manage EIP-1193 event listeners\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n\n await provider.disconnect();\n },\n async getAccounts() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n if (provider.selectedAddress) {\n return [provider.selectedAddress];\n }\n return [];\n },\n async getChainId() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n if (config.chains.find((chain) => chain.id === provider.chainId)) {\n return provider.chainId;\n }\n const chainId = config.chains[0].id;\n await this.switchChain!({ chainId });\n return chainId;\n },\n async getProvider() {\n if (typeof window === 'undefined') return undefined;\n const provider: Provider = window.particle?.solana;\n return provider;\n },\n async isAuthorized() {\n try {\n const provider = await this.getProvider();\n if (!provider) {\n throw new ProviderNotFoundError();\n }\n if (provider.isSocialConnecting) {\n const timeout = 3_0000; // social login timeout\n await Promise.race([\n ...(typeof window !== 'undefined'\n ? [\n new Promise<boolean>((resolve) =>\n window.addEventListener('particle:socialConnectCompleted', () => resolve(true), { once: true })\n ),\n ]\n : []),\n new Promise<boolean>((resolve) => setTimeout(() => resolve(true), timeout)),\n ]);\n }\n\n const accounts = await this.getAccounts();\n return !!accounts.length;\n } catch {\n return false;\n }\n },\n async switchChain({ chainId }) {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n const chain = config.chains.filter(isSolanaChain).find((x) => x.id === chainId);\n if (!chain) throw new SwitchChainError(new ChainNotConfiguredError());\n\n try {\n await provider.switchChain(chainId);\n return chain;\n } catch (err) {\n const error = err as RpcError;\n if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error);\n throw new SwitchChainError(error);\n }\n },\n async onAccountsChanged(accounts) {\n // Disconnect if there are no accounts\n if (accounts.length === 0) this.onDisconnect();\n // Regular change event\n else\n config.emitter.emit('change', {\n accounts,\n });\n },\n onChainChanged(chain) {\n const chainId = Number(chain);\n config.emitter.emit('change', { chainId });\n },\n async onDisconnect() {\n const provider = await this.getProvider();\n\n config.emitter.emit('disconnect');\n\n // Manage EIP-1193 event listeners\n if (provider) {\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n }\n },\n isInstalled() {\n return true;\n },\n }));\n}\n", "import { getCloudflareTurnstileResponse, getConnectCaptcha, getLatestAuthType } from '@particle-network/auth-core';\nimport type { EVMProvider, SolanaWallet } from '@particle-network/authkit';\n\nconst auth = {\n getCloudflareTurnstileResponse,\n getConnectCaptcha,\n getLatestAuthType,\n};\n\ndeclare global {\n interface Window {\n particle?: {\n ethereum?: EVMProvider;\n solana?: SolanaWallet;\n };\n }\n}\n\nexport { auth, type EVMProvider, type SolanaWallet };\n", "export const version = '3.0.0-alpha.1';\n"],
5
5
  "mappings": "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",
6
6
  "names": ["ChainNotConfiguredError", "isEVMChain", "isSolanaChain", "client", "clients", "client", "ChainNotConfiguredError", "ProviderNotFoundError", "SwitchChainError", "UserRejectedRequestError", "createConnector", "isEVMChain", "isSolanaChain", "chain", "ChainNotConfiguredError"]
7
7
  }
@@ -1,16 +1,4 @@
1
- import type { ConnectParam } from '@particle-network/auth-core';
2
- import { type EVMProvider } from './types';
3
- type ConnectOptions = Omit<ConnectParam, 'chain'> & {
4
- chainId?: number;
5
- isReconnecting?: boolean;
6
- };
7
- export declare function particleEvm(): import("@particle-network/connector-core").CreateConnectorFn<EVMProvider | undefined, {
8
- connect(options?: ConnectOptions): Promise<{
9
- accounts: readonly string[];
10
- chainId: number;
11
- }>;
12
- }, Record<string, unknown>>;
1
+ export declare function particleEvm(): any;
13
2
  export declare namespace particleEvm {
14
3
  var type: "particleAuth";
15
4
  }
16
- export {};
@@ -1,16 +1,4 @@
1
- import type { ConnectParam } from '@particle-network/auth-core';
2
- import { type SolanaWallet } from './types';
3
- type ConnectOptions = Omit<ConnectParam, 'chain'> & {
4
- chainId?: number;
5
- isReconnecting?: boolean;
6
- };
7
- export declare function particleSolana(): import("@particle-network/connector-core").CreateConnectorFn<SolanaWallet | undefined, {
8
- connect(options?: ConnectOptions): Promise<{
9
- accounts: readonly string[];
10
- chainId: number;
11
- }>;
12
- }, Record<string, unknown>>;
1
+ export declare function particleSolana(): any;
13
2
  export declare namespace particleSolana {
14
3
  var type: "particleAuth";
15
4
  }
16
- export {};
@@ -1,6 +1,6 @@
1
1
  import { AuthType } from '@particle-network/auth-core';
2
2
  import { type AuthCoreModalOptions, type CustomStyle } from '@particle-network/authkit';
3
- import { type Prettify, type WalletConnectorsOption } from '@particle-network/connector-core';
3
+ import { type Prettify } from '@particle-network/connector-core';
4
4
  type AuthTypeValue = `${AuthType}`;
5
5
  export type AuthWalletParameters = Prettify<Pick<AuthCoreModalOptions, 'language' | 'fiatCoin' | 'promptSettingConfig'> & {
6
6
  authTypes?: (AuthTypeValue | AuthType)[];
@@ -8,7 +8,7 @@ export type AuthWalletParameters = Prettify<Pick<AuthCoreModalOptions, 'language
8
8
  customStyle?: CustomStyle;
9
9
  };
10
10
  }>;
11
- export declare function authWalletConnectors(parameters?: AuthWalletParameters): import("@particle-network/connector-core").CreateWalletConnectorFn<WalletConnectorsOption, Record<string, unknown>>;
11
+ export declare function authWalletConnectors(parameters?: AuthWalletParameters): any;
12
12
  export declare namespace authWalletConnectors {
13
13
  var type: "particleAuth";
14
14
  }
package/package.json CHANGED
@@ -1,10 +1,16 @@
1
1
  {
2
2
  "name": "@particle-network/auth-connectors",
3
- "version": "2.1.1",
3
+ "version": "3.0.0-alpha.1",
4
4
  "type": "module",
5
- "main": "./dist/cjs/index.cjs",
6
- "module": "./dist/esm/index.mjs",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
7
  "types": "./dist/types/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/types/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
8
14
  "license": "Apache-2.0",
9
15
  "homepage": "https://particle.network",
10
16
  "files": [
@@ -28,24 +34,24 @@
28
34
  ],
29
35
  "sideEffects": false,
30
36
  "scripts": {
31
- "build": "mkdir -p dist/cjs && echo '{ \"type\": \"commonjs\" }' > dist/cjs/package.json && node build.js",
37
+ "build": "node build.js",
32
38
  "build:dev": "NODE_ENV=development yarn build",
33
39
  "build:watch": "yarn build --watch",
34
- "clean": "rm -rf dist && rm -rf esm",
40
+ "clean": "rm -rf dist",
35
41
  "dev": "yarn clean && NODE_ENV=development yarn build:watch & NODE_ENV=development yarn typegen:watch",
36
- "prepare": "MINIFY_CSS=true yarn build",
42
+ "prepare": "yarn clean && MINIFY_CSS=true yarn build",
37
43
  "prebuild": "yarn typegen",
38
44
  "typecheck": "yarn tsc --noEmit",
39
45
  "typegen": "tsc --emitDeclarationOnly || true",
40
46
  "typegen:watch": "tsc --emitDeclarationOnly --watch"
41
47
  },
42
48
  "dependencies": {
43
- "@particle-network/authkit": "^2.1.1",
44
- "@particle-network/connector-core": "^2.1.0"
49
+ "@particle-network/authkit": "^3.0.0-alpha.2",
50
+ "@particle-network/connector-core": "^3.0.0-alpha.0"
45
51
  },
46
52
  "devDependencies": {
47
53
  "@types/react": "^19",
48
54
  "@types/react-dom": "^19"
49
55
  },
50
- "gitHead": "05490a48a33b29a2fce49d8a941acf9c7a030797"
56
+ "gitHead": "9796edf4a0ad1fab5a3da8415841e93444af1310"
51
57
  }
@@ -1,541 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
23
- auth: () => auth,
24
- authWalletConnectors: () => authWalletConnectors,
25
- version: () => version
26
- });
27
- module.exports = __toCommonJS(src_exports);
28
-
29
- // src/store.ts
30
- var import_auth_core2 = require("@particle-network/auth-core");
31
- var import_authkit = require("@particle-network/authkit");
32
- var import_connector_core3 = require("@particle-network/connector-core");
33
- var import_vanilla = require("zustand/vanilla");
34
-
35
- // src/getClient.ts
36
- var import_viem = require("viem");
37
- var clients = /* @__PURE__ */ new Map();
38
- function getPublicClient(chain) {
39
- {
40
- const client2 = clients.get(chain.id);
41
- if (client2)
42
- return client2;
43
- }
44
- const client = (0, import_viem.createPublicClient)({
45
- chain,
46
- transport: (0, import_viem.http)()
47
- });
48
- clients.set(chain.id, client);
49
- return client;
50
- }
51
-
52
- // src/getConnection.ts
53
- var import_web3 = require("@solana/web3.js");
54
- var clients2 = /* @__PURE__ */ new Map();
55
- function getConnection(chain, commitmentOrConfig) {
56
- {
57
- const client2 = clients2.get(chain.id);
58
- if (client2)
59
- return client2;
60
- }
61
- const client = new import_web3.Connection(chain.rpcUrls.default.http[0], commitmentOrConfig);
62
- clients2.set(chain.id, client);
63
- return client;
64
- }
65
-
66
- // src/particleEvm.ts
67
- var import_connector_core = require("@particle-network/connector-core");
68
- particleEvm.type = "particleAuth";
69
- function particleEvm() {
70
- let accountsChanged;
71
- let chainChanged;
72
- let disconnect;
73
- return (0, import_connector_core.createConnector)((config) => ({
74
- get icon() {
75
- return "https://static.particle.network/logo-small.png";
76
- },
77
- get id() {
78
- return "particleEVM";
79
- },
80
- get name() {
81
- return "Particle Auth";
82
- },
83
- type: particleEvm.type,
84
- async connect(options) {
85
- var _a;
86
- const { chainId, isReconnecting } = options;
87
- const provider = await this.getProvider();
88
- if (!provider)
89
- throw new import_connector_core.ProviderNotFoundError();
90
- if (options.phone && !options.code) {
91
- throw new Error("Paramers error, need code.");
92
- }
93
- if (options.email && !options.code) {
94
- throw new Error("Paramers error, need code.");
95
- }
96
- if (options.provider && !options.thirdpartyCode) {
97
- throw new Error("Paramers error, need thirdpartyCode.");
98
- }
99
- let accounts = [];
100
- accounts = await this.getAccounts().catch(() => []);
101
- try {
102
- if (!(accounts == null ? void 0 : accounts.length) && !isReconnecting) {
103
- accounts = await provider.connect({
104
- ...options,
105
- chain: chainId ? config.chains.filter(import_connector_core.isEVMChain).find((chain) => chain.id === chainId) : void 0
106
- });
107
- }
108
- if (!accountsChanged) {
109
- accountsChanged = this.onAccountsChanged.bind(this);
110
- provider.on("accountsChanged", accountsChanged);
111
- }
112
- if (!chainChanged) {
113
- chainChanged = this.onChainChanged.bind(this);
114
- provider.on("chainChanged", chainChanged);
115
- }
116
- if (!disconnect) {
117
- disconnect = this.onDisconnect.bind(this);
118
- provider.on("disconnect", disconnect);
119
- }
120
- let currentChainId = await this.getChainId();
121
- if (chainId && currentChainId !== chainId) {
122
- const chain = await this.switchChain({ chainId }).catch((error) => {
123
- if (error.code === import_connector_core.UserRejectedRequestError.code)
124
- throw error;
125
- return { id: currentChainId };
126
- });
127
- currentChainId = (_a = chain == null ? void 0 : chain.id) != null ? _a : currentChainId;
128
- }
129
- return { accounts, chainId: currentChainId };
130
- } catch (err) {
131
- const error = err;
132
- if (error.code === import_connector_core.UserRejectedRequestError.code)
133
- throw new import_connector_core.UserRejectedRequestError(error);
134
- throw error;
135
- }
136
- },
137
- async disconnect() {
138
- const provider = await this.getProvider();
139
- if (!provider)
140
- throw new import_connector_core.ProviderNotFoundError();
141
- if (chainChanged) {
142
- provider.removeListener("chainChanged", chainChanged);
143
- chainChanged = void 0;
144
- }
145
- if (disconnect) {
146
- provider.removeListener("disconnect", disconnect);
147
- disconnect = void 0;
148
- }
149
- await provider.disconnect();
150
- },
151
- async getAccounts() {
152
- const provider = await this.getProvider();
153
- if (!provider)
154
- throw new import_connector_core.ProviderNotFoundError();
155
- const accounts = await provider.request({ method: "eth_accounts" });
156
- return accounts;
157
- },
158
- async getChainId() {
159
- const provider = await this.getProvider();
160
- if (!provider)
161
- throw new import_connector_core.ProviderNotFoundError();
162
- const hexChainId = await provider.request({ method: "eth_chainId" });
163
- return Number(hexChainId);
164
- },
165
- async getProvider() {
166
- var _a;
167
- if (typeof window === "undefined")
168
- return void 0;
169
- const provider = (_a = window.particle) == null ? void 0 : _a.ethereum;
170
- return provider;
171
- },
172
- async isAuthorized() {
173
- try {
174
- const provider = await this.getProvider();
175
- if (!provider) {
176
- throw new import_connector_core.ProviderNotFoundError();
177
- }
178
- if (provider.isSocialConnecting) {
179
- const timeout = 3e4;
180
- await Promise.race([
181
- ...typeof window !== "undefined" ? [
182
- new Promise(
183
- (resolve) => window.addEventListener("particle:socialConnectCompleted", () => resolve(true), { once: true })
184
- )
185
- ] : [],
186
- new Promise((resolve) => setTimeout(() => resolve(true), timeout))
187
- ]);
188
- }
189
- const accounts = await this.getAccounts();
190
- return !!accounts.length;
191
- } catch {
192
- return false;
193
- }
194
- },
195
- async switchChain({ chainId }) {
196
- const provider = await this.getProvider();
197
- if (!provider)
198
- throw new import_connector_core.ProviderNotFoundError();
199
- const chain = config.chains.filter(import_connector_core.isEVMChain).find((x) => x.id === chainId);
200
- if (!chain)
201
- throw new import_connector_core.SwitchChainError(new import_connector_core.ChainNotConfiguredError());
202
- try {
203
- await Promise.all([
204
- provider.request({
205
- method: "wallet_switchEthereumChain",
206
- params: [{ chainId: (0, import_connector_core.numberToHex)(chainId) }]
207
- }).then(async () => {
208
- const currentChainId = await this.getChainId();
209
- if (currentChainId === chainId)
210
- config.emitter.emit("change", { chainId });
211
- }),
212
- new Promise(
213
- (resolve) => config.emitter.once("change", ({ chainId: currentChainId }) => {
214
- if (currentChainId === chainId)
215
- resolve();
216
- })
217
- )
218
- ]);
219
- return chain;
220
- } catch (err) {
221
- const error = err;
222
- if (error.code === import_connector_core.UserRejectedRequestError.code)
223
- throw new import_connector_core.UserRejectedRequestError(error);
224
- throw new import_connector_core.SwitchChainError(error);
225
- }
226
- },
227
- async onAccountsChanged(accounts) {
228
- if (accounts.length === 0)
229
- this.onDisconnect();
230
- else
231
- config.emitter.emit("change", {
232
- accounts
233
- });
234
- },
235
- onChainChanged(chain) {
236
- const chainId = Number(chain);
237
- config.emitter.emit("change", { chainId });
238
- },
239
- async onDisconnect() {
240
- const provider = await this.getProvider();
241
- config.emitter.emit("disconnect");
242
- if (provider) {
243
- if (chainChanged) {
244
- provider.removeListener("chainChanged", chainChanged);
245
- chainChanged = void 0;
246
- }
247
- if (disconnect) {
248
- provider.removeListener("disconnect", disconnect);
249
- disconnect = void 0;
250
- }
251
- }
252
- },
253
- isInstalled() {
254
- return true;
255
- }
256
- }));
257
- }
258
-
259
- // src/particleSolana.ts
260
- var import_connector_core2 = require("@particle-network/connector-core");
261
- particleSolana.type = "particleAuth";
262
- function particleSolana() {
263
- let accountsChanged;
264
- let chainChanged;
265
- let disconnect;
266
- return (0, import_connector_core2.createConnector)((config) => ({
267
- get icon() {
268
- return "https://static.particle.network/logo-small.png";
269
- },
270
- get id() {
271
- return "particleSolana";
272
- },
273
- get name() {
274
- return "Particle Auth";
275
- },
276
- type: particleSolana.type,
277
- async connect(options) {
278
- var _a;
279
- const { chainId, isReconnecting } = options;
280
- const provider = await this.getProvider();
281
- if (!provider)
282
- throw new import_connector_core2.ProviderNotFoundError();
283
- if (options.phone && !options.code) {
284
- throw new Error("Paramers error, need code.");
285
- }
286
- if (options.email && !options.code) {
287
- throw new Error("Paramers error, need code.");
288
- }
289
- if (options.provider && !options.thirdpartyCode) {
290
- throw new Error("Paramers error, need thirdpartyCode.");
291
- }
292
- let accounts = [];
293
- accounts = await this.getAccounts().catch(() => []);
294
- try {
295
- if (!isReconnecting) {
296
- await provider.connect({
297
- ...options,
298
- chain: chainId ? config.chains.filter(import_connector_core2.isSolanaChain).find((chain) => chain.id === chainId) : void 0
299
- });
300
- accounts = [provider.selectedAddress];
301
- } else {
302
- if (accounts.length && !provider.isConnected) {
303
- await provider.connect();
304
- }
305
- }
306
- if (!accountsChanged) {
307
- accountsChanged = this.onAccountsChanged.bind(this);
308
- provider.on("accountsChanged", accountsChanged);
309
- }
310
- if (!chainChanged) {
311
- chainChanged = this.onChainChanged.bind(this);
312
- provider.on("chainChanged", chainChanged);
313
- }
314
- if (!disconnect) {
315
- disconnect = this.onDisconnect.bind(this);
316
- provider.on("disconnect", disconnect);
317
- }
318
- let currentChainId = await this.getChainId();
319
- if (chainId && currentChainId !== chainId) {
320
- const chain = await this.switchChain({ chainId }).catch((error) => {
321
- if (error.code === import_connector_core2.UserRejectedRequestError.code)
322
- throw error;
323
- return { id: currentChainId };
324
- });
325
- currentChainId = (_a = chain == null ? void 0 : chain.id) != null ? _a : currentChainId;
326
- }
327
- return { accounts, chainId: currentChainId };
328
- } catch (err) {
329
- const error = err;
330
- if (error.code === import_connector_core2.UserRejectedRequestError.code)
331
- throw new import_connector_core2.UserRejectedRequestError(error);
332
- throw error;
333
- }
334
- },
335
- async disconnect() {
336
- const provider = await this.getProvider();
337
- if (!provider)
338
- throw new import_connector_core2.ProviderNotFoundError();
339
- if (chainChanged) {
340
- provider.removeListener("chainChanged", chainChanged);
341
- chainChanged = void 0;
342
- }
343
- if (disconnect) {
344
- provider.removeListener("disconnect", disconnect);
345
- disconnect = void 0;
346
- }
347
- await provider.disconnect();
348
- },
349
- async getAccounts() {
350
- const provider = await this.getProvider();
351
- if (!provider)
352
- throw new import_connector_core2.ProviderNotFoundError();
353
- if (provider.selectedAddress) {
354
- return [provider.selectedAddress];
355
- }
356
- return [];
357
- },
358
- async getChainId() {
359
- const provider = await this.getProvider();
360
- if (!provider)
361
- throw new import_connector_core2.ProviderNotFoundError();
362
- if (config.chains.find((chain) => chain.id === provider.chainId)) {
363
- return provider.chainId;
364
- }
365
- const chainId = config.chains[0].id;
366
- await this.switchChain({ chainId });
367
- return chainId;
368
- },
369
- async getProvider() {
370
- var _a;
371
- if (typeof window === "undefined")
372
- return void 0;
373
- const provider = (_a = window.particle) == null ? void 0 : _a.solana;
374
- return provider;
375
- },
376
- async isAuthorized() {
377
- try {
378
- const provider = await this.getProvider();
379
- if (!provider) {
380
- throw new import_connector_core2.ProviderNotFoundError();
381
- }
382
- if (provider.isSocialConnecting) {
383
- const timeout = 3e4;
384
- await Promise.race([
385
- ...typeof window !== "undefined" ? [
386
- new Promise(
387
- (resolve) => window.addEventListener("particle:socialConnectCompleted", () => resolve(true), { once: true })
388
- )
389
- ] : [],
390
- new Promise((resolve) => setTimeout(() => resolve(true), timeout))
391
- ]);
392
- }
393
- const accounts = await this.getAccounts();
394
- return !!accounts.length;
395
- } catch {
396
- return false;
397
- }
398
- },
399
- async switchChain({ chainId }) {
400
- const provider = await this.getProvider();
401
- if (!provider)
402
- throw new import_connector_core2.ProviderNotFoundError();
403
- const chain = config.chains.filter(import_connector_core2.isSolanaChain).find((x) => x.id === chainId);
404
- if (!chain)
405
- throw new import_connector_core2.SwitchChainError(new import_connector_core2.ChainNotConfiguredError());
406
- try {
407
- await provider.switchChain(chainId);
408
- return chain;
409
- } catch (err) {
410
- const error = err;
411
- if (error.code === import_connector_core2.UserRejectedRequestError.code)
412
- throw new import_connector_core2.UserRejectedRequestError(error);
413
- throw new import_connector_core2.SwitchChainError(error);
414
- }
415
- },
416
- async onAccountsChanged(accounts) {
417
- if (accounts.length === 0)
418
- this.onDisconnect();
419
- else
420
- config.emitter.emit("change", {
421
- accounts
422
- });
423
- },
424
- onChainChanged(chain) {
425
- const chainId = Number(chain);
426
- config.emitter.emit("change", { chainId });
427
- },
428
- async onDisconnect() {
429
- const provider = await this.getProvider();
430
- config.emitter.emit("disconnect");
431
- if (provider) {
432
- if (chainChanged) {
433
- provider.removeListener("chainChanged", chainChanged);
434
- chainChanged = void 0;
435
- }
436
- if (disconnect) {
437
- provider.removeListener("disconnect", disconnect);
438
- disconnect = void 0;
439
- }
440
- }
441
- },
442
- isInstalled() {
443
- return true;
444
- }
445
- }));
446
- }
447
-
448
- // src/types.ts
449
- var import_auth_core = require("@particle-network/auth-core");
450
- var auth = {
451
- getCloudflareTurnstileResponse: import_auth_core.getCloudflareTurnstileResponse,
452
- getConnectCaptcha: import_auth_core.getConnectCaptcha,
453
- getLatestAuthType: import_auth_core.getLatestAuthType
454
- };
455
-
456
- // src/store.ts
457
- authWalletConnectors.type = "particleAuth";
458
- function authWalletConnectors(parameters = {}) {
459
- const { authTypes, fiatCoin, promptSettingConfig, overrides, language } = parameters;
460
- if (authTypes && authTypes.length === 0) {
461
- throw new Error("authTypes cannot be empty.");
462
- }
463
- const supportAuthTypes = authTypes || Object.values(import_auth_core2.AuthType);
464
- return (0, import_connector_core3.createWalletConnector)((options) => {
465
- const { chains: _chains, storage, projectId, clientKey, appId } = options;
466
- const chains = (0, import_vanilla.createStore)(() => _chains);
467
- function setup(connectorFn) {
468
- var _a;
469
- const emitter = (0, import_connector_core3.createEmitter)();
470
- const result = connectorFn({ emitter, chains: _chains, storage });
471
- const connector = {
472
- ...result,
473
- emitter,
474
- uid: emitter.uid,
475
- chainType: result.id.toLowerCase().includes("evm") ? "evm" : "solana",
476
- walletConnectorType: authWalletConnectors.type
477
- };
478
- (_a = connector.setup) == null ? void 0 : _a.call(connector);
479
- return connector;
480
- }
481
- const storeData = [];
482
- if (_chains.some(import_connector_core3.isEVMChain)) {
483
- storeData.push(particleEvm());
484
- }
485
- if (_chains.some(import_connector_core3.isSolanaChain)) {
486
- storeData.push(particleSolana());
487
- }
488
- const connectors = (0, import_vanilla.createStore)(() => storeData.map(setup));
489
- function getClient(chainId) {
490
- const chain = chains.getState().find((chain2) => chain2.id === chainId);
491
- if (!chain) {
492
- throw new import_connector_core3.ChainNotConfiguredError();
493
- }
494
- if ((0, import_connector_core3.isEVMChain)(chain)) {
495
- return getPublicClient(chain);
496
- }
497
- return getConnection(chain);
498
- }
499
- return {
500
- get type() {
501
- return authWalletConnectors.type;
502
- },
503
- get chains() {
504
- return chains.getState();
505
- },
506
- get connectors() {
507
- return connectors.getState();
508
- },
509
- store: connectors,
510
- getClient,
511
- supportAuthTypes,
512
- authOptions: {
513
- projectId,
514
- clientKey,
515
- appId,
516
- authTypes: supportAuthTypes,
517
- fiatCoin,
518
- language,
519
- promptSettingConfig,
520
- supportEIP6963: false,
521
- customStyle: {
522
- zIndex: 21475e5,
523
- ...overrides == null ? void 0 : overrides.customStyle
524
- },
525
- wallet: false,
526
- chains: _chains
527
- },
528
- AuthCoreContextProvider: import_authkit.AuthCoreContextProvider,
529
- _internal: {
530
- connectors: {
531
- setup
532
- }
533
- },
534
- auth
535
- };
536
- });
537
- }
538
-
539
- // src/version.ts
540
- var version = "2.1.1";
541
- //# sourceMappingURL=index.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/index.ts", "../../src/store.ts", "../../src/getClient.ts", "../../src/getConnection.ts", "../../src/particleEvm.ts", "../../src/particleSolana.ts", "../../src/types.ts", "../../src/version.ts"],
4
- "sourcesContent": ["export * from './store';\nexport * from './types';\nexport * from './version';\n", "import { AuthType } from '@particle-network/auth-core';\nimport { AuthCoreContextProvider, type AuthCoreModalOptions, type CustomStyle } from '@particle-network/authkit';\nimport {\n ChainNotConfiguredError,\n createEmitter,\n createWalletConnector,\n isEVMChain,\n isSolanaChain,\n type ChainType,\n type ClientType,\n type Connector,\n type ConnectorEventMap,\n type CreateConnectorFn,\n type EVMChain,\n type Prettify,\n type WalletConnectorsOption,\n} from '@particle-network/connector-core';\nimport { createStore } from 'zustand/vanilla';\nimport { getPublicClient } from './getClient';\nimport { getConnection } from './getConnection';\nimport { particleEvm } from './particleEvm';\nimport { particleSolana } from './particleSolana';\nimport { auth } from './types';\n\ntype AuthConnectorsOption = WalletConnectorsOption & {\n projectId: string;\n clientKey: string;\n appId: string;\n};\n\ntype AuthTypeValue = `${AuthType}`;\n\nexport type AuthWalletParameters = Prettify<\n Pick<AuthCoreModalOptions, 'language' | 'fiatCoin' | 'promptSettingConfig'> & {\n authTypes?: (AuthTypeValue | AuthType)[];\n overrides?: {\n customStyle?: CustomStyle;\n };\n }\n>;\n\nauthWalletConnectors.type = 'particleAuth' as const;\nexport function authWalletConnectors(parameters: AuthWalletParameters = {}) {\n const { authTypes, fiatCoin, promptSettingConfig, overrides, language } = parameters;\n if (authTypes && authTypes.length === 0) {\n throw new Error('authTypes cannot be empty.');\n }\n type Properties = {\n authOptions: AuthCoreModalOptions;\n supportAuthTypes: readonly [AuthType, ...AuthType[]];\n AuthCoreContextProvider: (props: {\n options: AuthCoreModalOptions;\n children: React.ReactNode;\n }) => React.ReactElement;\n } & { auth: typeof auth };\n\n const supportAuthTypes = (authTypes as AuthType[]) || Object.values(AuthType);\n\n return createWalletConnector<AuthConnectorsOption, Properties>((options) => {\n const { chains: _chains, storage, projectId, clientKey, appId } = options;\n const chains = createStore(() => _chains);\n\n function setup(connectorFn: CreateConnectorFn): Connector {\n // Set up emitter and add to connector so they are \"linked\" together.\n const emitter = createEmitter<ConnectorEventMap>();\n const result = connectorFn({ emitter, chains: _chains, storage });\n const connector = {\n ...result,\n emitter,\n uid: emitter.uid,\n chainType: result.id.toLowerCase().includes('evm') ? ('evm' as const) : ('solana' as const),\n walletConnectorType: authWalletConnectors.type,\n };\n connector.setup?.();\n return connector;\n }\n\n const storeData: CreateConnectorFn[] = [];\n if (_chains.some(isEVMChain)) {\n storeData.push(particleEvm());\n }\n if (_chains.some(isSolanaChain)) {\n storeData.push(particleSolana());\n }\n\n const connectors = createStore(() => storeData.map(setup));\n\n function getClient<chainType extends ChainType = EVMChain>(chainId: number): ClientType<chainType> {\n const chain = chains.getState().find((chain) => chain.id === chainId);\n if (!chain) {\n throw new ChainNotConfiguredError();\n }\n if (isEVMChain(chain)) {\n return getPublicClient(chain) as ClientType<chainType>;\n }\n\n return getConnection(chain) as ClientType<chainType>;\n }\n\n return {\n get type() {\n return authWalletConnectors.type;\n },\n get chains() {\n return chains.getState();\n },\n get connectors() {\n return connectors.getState();\n },\n store: connectors,\n getClient,\n supportAuthTypes: supportAuthTypes as unknown as readonly [AuthType, ...AuthType[]],\n authOptions: {\n projectId,\n clientKey,\n appId,\n authTypes: supportAuthTypes,\n fiatCoin,\n language,\n promptSettingConfig,\n supportEIP6963: false,\n customStyle: {\n zIndex: 2147500000,\n ...overrides?.customStyle,\n },\n wallet: false,\n chains: _chains,\n },\n AuthCoreContextProvider,\n _internal: {\n connectors: {\n setup,\n },\n },\n auth,\n };\n });\n}\n", "import { createPublicClient, http, type Chain, type PublicClient } from 'viem';\n\nconst clients = new Map<number, PublicClient>();\n\nexport function getPublicClient(chain: Chain): PublicClient {\n {\n const client = clients.get(chain.id);\n if (client) return client;\n }\n\n const client = createPublicClient({\n chain,\n transport: http(),\n });\n clients.set(chain.id, client);\n\n return client;\n}\n", "import { Connection, type Commitment, type ConnectionConfig } from '@solana/web3.js';\nimport type { Chain } from 'viem';\n\nconst clients = new Map<number, Connection>();\n\nexport function getConnection(chain: Chain, commitmentOrConfig?: Commitment | ConnectionConfig): Connection {\n {\n const client = clients.get(chain.id);\n if (client) return client;\n }\n\n const client = new Connection(chain.rpcUrls.default.http[0]!, commitmentOrConfig);\n\n clients.set(chain.id, client);\n\n return client;\n}\n", "import type {\n ConnectParam,\n ConnectWithEmailParam,\n ConnectWithPhoneParam,\n ConnectWithProvider,\n} from '@particle-network/auth-core';\nimport {\n ChainNotConfiguredError,\n ProviderNotFoundError,\n SwitchChainError,\n UserRejectedRequestError,\n createConnector,\n isEVMChain,\n numberToHex,\n type Connector,\n type RpcError,\n} from '@particle-network/connector-core';\nimport { type EVMProvider } from './types';\n\ntype ConnectOptions = Omit<ConnectParam, 'chain'> & { chainId?: number; isReconnecting?: boolean };\n\nparticleEvm.type = 'particleAuth' as const;\nexport function particleEvm() {\n type Provider = EVMProvider | undefined;\n\n type Properties = {\n connect(options?: ConnectOptions): Promise<{\n accounts: readonly string[];\n chainId: number;\n }>;\n };\n\n let accountsChanged: Connector['onAccountsChanged'] | undefined;\n let chainChanged: Connector['onChainChanged'] | undefined;\n let disconnect: Connector['onDisconnect'] | undefined;\n\n return createConnector<Provider, Properties>((config) => ({\n get icon() {\n return 'https://static.particle.network/logo-small.png';\n },\n get id() {\n return 'particleEVM';\n },\n get name() {\n return 'Particle Auth';\n },\n type: particleEvm.type,\n async connect(options: ConnectOptions) {\n const { chainId, isReconnecting } = options;\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n if ((options as ConnectWithPhoneParam).phone && !(options as ConnectWithPhoneParam).code) {\n throw new Error('Paramers error, need code.');\n }\n\n if ((options as ConnectWithEmailParam).email && !(options as ConnectWithEmailParam).code) {\n throw new Error('Paramers error, need code.');\n }\n\n if ((options as ConnectWithProvider).provider && !(options as ConnectWithProvider).thirdpartyCode) {\n throw new Error('Paramers error, need thirdpartyCode.');\n }\n\n let accounts: readonly string[] = [];\n accounts = await this.getAccounts().catch(() => []);\n\n try {\n if (!accounts?.length && !isReconnecting) {\n accounts = await provider.connect({\n ...options,\n chain: chainId ? config.chains.filter(isEVMChain).find((chain) => chain.id === chainId) : undefined,\n });\n }\n\n // Manage EIP-1193 event listeners\n // https://eips.ethereum.org/EIPS/eip-1193#events\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged!.bind(this);\n provider.on('accountsChanged', accountsChanged);\n }\n if (!chainChanged) {\n chainChanged = this.onChainChanged.bind(this);\n provider.on('chainChanged', chainChanged);\n }\n if (!disconnect) {\n disconnect = this.onDisconnect.bind(this);\n provider.on('disconnect', disconnect);\n }\n\n // Switch to chain if provided\n let currentChainId = await this.getChainId();\n if (chainId && currentChainId !== chainId) {\n const chain = await this.switchChain!({ chainId }).catch((error) => {\n if (error.code === UserRejectedRequestError.code) throw error;\n return { id: currentChainId };\n });\n currentChainId = chain?.id ?? currentChainId;\n }\n\n return { accounts, chainId: currentChainId };\n } catch (err) {\n const error = err as RpcError;\n if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error);\n throw error;\n }\n },\n async disconnect() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n // Manage EIP-1193 event listeners\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n\n await provider.disconnect();\n },\n async getAccounts() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n const accounts = await provider.request({ method: 'eth_accounts' });\n return accounts;\n },\n async getChainId() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n const hexChainId = await provider.request({ method: 'eth_chainId' });\n return Number(hexChainId);\n },\n async getProvider() {\n if (typeof window === 'undefined') return undefined;\n const provider: Provider = window.particle?.ethereum;\n return provider;\n },\n async isAuthorized() {\n try {\n const provider = await this.getProvider();\n if (!provider) {\n throw new ProviderNotFoundError();\n }\n if (provider.isSocialConnecting) {\n const timeout = 3_0000; // social login timeout\n await Promise.race([\n ...(typeof window !== 'undefined'\n ? [\n new Promise<boolean>((resolve) =>\n window.addEventListener('particle:socialConnectCompleted', () => resolve(true), { once: true })\n ),\n ]\n : []),\n new Promise<boolean>((resolve) => setTimeout(() => resolve(true), timeout)),\n ]);\n }\n\n const accounts = await this.getAccounts();\n return !!accounts.length;\n } catch {\n return false;\n }\n },\n /**\n * particle does not support adding chains\n */\n async switchChain({ chainId }) {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n const chain = config.chains.filter(isEVMChain).find((x) => x.id === chainId);\n if (!chain) throw new SwitchChainError(new ChainNotConfiguredError());\n\n try {\n await Promise.all([\n provider\n .request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: numberToHex(chainId) }],\n })\n .then(async () => {\n const currentChainId = await this.getChainId();\n if (currentChainId === chainId) config.emitter.emit('change', { chainId });\n }),\n new Promise<void>((resolve) =>\n config.emitter.once('change', ({ chainId: currentChainId }) => {\n if (currentChainId === chainId) resolve();\n })\n ),\n ]);\n\n return chain;\n } catch (err) {\n const error = err as RpcError;\n if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error);\n throw new SwitchChainError(error);\n }\n },\n async onAccountsChanged(accounts) {\n // Disconnect if there are no accounts\n if (accounts.length === 0) this.onDisconnect();\n // Regular change event\n else\n config.emitter.emit('change', {\n accounts,\n });\n },\n onChainChanged(chain) {\n const chainId = Number(chain);\n config.emitter.emit('change', { chainId });\n },\n async onDisconnect() {\n const provider = await this.getProvider();\n\n config.emitter.emit('disconnect');\n\n // Manage EIP-1193 event listeners\n if (provider) {\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n }\n },\n isInstalled() {\n return true;\n },\n }));\n}\n", "import type {\n ConnectParam,\n ConnectWithEmailParam,\n ConnectWithPhoneParam,\n ConnectWithProvider,\n} from '@particle-network/auth-core';\nimport {\n ChainNotConfiguredError,\n ProviderNotFoundError,\n SwitchChainError,\n UserRejectedRequestError,\n createConnector,\n isSolanaChain,\n type Connector,\n type RpcError,\n} from '@particle-network/connector-core';\nimport { type SolanaWallet } from './types';\n\ntype ConnectOptions = Omit<ConnectParam, 'chain'> & { chainId?: number; isReconnecting?: boolean };\n\nparticleSolana.type = 'particleAuth' as const;\nexport function particleSolana() {\n type Provider = SolanaWallet | undefined;\n\n type Properties = {\n connect(options?: ConnectOptions): Promise<{\n accounts: readonly string[];\n chainId: number;\n }>;\n };\n\n let accountsChanged: Connector['onAccountsChanged'] | undefined;\n let chainChanged: Connector['onChainChanged'] | undefined;\n let disconnect: Connector['onDisconnect'] | undefined;\n\n return createConnector<Provider, Properties>((config) => ({\n get icon() {\n return 'https://static.particle.network/logo-small.png';\n },\n get id() {\n return 'particleSolana';\n },\n get name() {\n return 'Particle Auth';\n },\n type: particleSolana.type,\n async connect(options: ConnectOptions) {\n const { chainId, isReconnecting } = options;\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n if ((options as ConnectWithPhoneParam).phone && !(options as ConnectWithPhoneParam).code) {\n throw new Error('Paramers error, need code.');\n }\n\n if ((options as ConnectWithEmailParam).email && !(options as ConnectWithEmailParam).code) {\n throw new Error('Paramers error, need code.');\n }\n\n if ((options as ConnectWithProvider).provider && !(options as ConnectWithProvider).thirdpartyCode) {\n throw new Error('Paramers error, need thirdpartyCode.');\n }\n\n let accounts: readonly string[] = [];\n accounts = await this.getAccounts().catch(() => []);\n\n try {\n if (!isReconnecting) {\n // \u5982\u679C\u5DF2\u7ECF\u767B\u5F55\u8FC7\uFF0C\u4E5F\u9700\u8981\u8C03\u7528\u8BE5\u65B9\u6CD5\n // 1. \u5F53\u6CA1\u6709\u521B\u5EFA\u94B1\u5305\u65F6\u4F1A\u81EA\u52A8\u521B\u5EFA\n // 2. \u5982\u679C\u5DF2\u7ECF\u767B\u5F55\u8FC7\u5207\u521B\u5EFA\u4E86\u94B1\u5305\uFF0C\u4F1A\u76F4\u63A5\u8FD4\u56DE\n // 3. \u6CA1\u767B\u5F55\u8FC7\u4F1A\u8C03\u7528\u767B\u5F55\u65B9\u6CD5\n await provider.connect({\n ...options,\n chain: chainId ? config.chains.filter(isSolanaChain).find((chain) => chain.id === chainId) : undefined,\n });\n accounts = [provider.selectedAddress!];\n } else {\n // \u91CD\u8FDE\u65F6\uFF0C\u5982\u679C\u94B1\u5305\u5DF2\u7ECF\u521B\u5EFA\u4E86\uFF0C\u9700\u8981\u8C03\u7528connect\u65B9\u6CD5\u521D\u59CB\u5316publicKey\n if (accounts.length && !provider.isConnected) {\n await provider.connect();\n }\n }\n\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged!.bind(this);\n provider.on('accountsChanged', accountsChanged);\n }\n if (!chainChanged) {\n chainChanged = this.onChainChanged.bind(this);\n provider.on('chainChanged', chainChanged);\n }\n if (!disconnect) {\n disconnect = this.onDisconnect.bind(this);\n provider.on('disconnect', disconnect);\n }\n\n // Switch to chain if provided\n let currentChainId = await this.getChainId();\n if (chainId && currentChainId !== chainId) {\n const chain = await this.switchChain!({ chainId }).catch((error) => {\n if (error.code === UserRejectedRequestError.code) throw error;\n return { id: currentChainId };\n });\n currentChainId = chain?.id ?? currentChainId;\n }\n\n return { accounts, chainId: currentChainId };\n } catch (err) {\n const error = err as RpcError;\n if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error);\n throw error;\n }\n },\n async disconnect() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n // Manage EIP-1193 event listeners\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n\n await provider.disconnect();\n },\n async getAccounts() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n if (provider.selectedAddress) {\n return [provider.selectedAddress];\n }\n return [];\n },\n async getChainId() {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n if (config.chains.find((chain) => chain.id === provider.chainId)) {\n return provider.chainId;\n }\n const chainId = config.chains[0].id;\n await this.switchChain!({ chainId });\n return chainId;\n },\n async getProvider() {\n if (typeof window === 'undefined') return undefined;\n const provider: Provider = window.particle?.solana;\n return provider;\n },\n async isAuthorized() {\n try {\n const provider = await this.getProvider();\n if (!provider) {\n throw new ProviderNotFoundError();\n }\n if (provider.isSocialConnecting) {\n const timeout = 3_0000; // social login timeout\n await Promise.race([\n ...(typeof window !== 'undefined'\n ? [\n new Promise<boolean>((resolve) =>\n window.addEventListener('particle:socialConnectCompleted', () => resolve(true), { once: true })\n ),\n ]\n : []),\n new Promise<boolean>((resolve) => setTimeout(() => resolve(true), timeout)),\n ]);\n }\n\n const accounts = await this.getAccounts();\n return !!accounts.length;\n } catch {\n return false;\n }\n },\n async switchChain({ chainId }) {\n const provider = await this.getProvider();\n if (!provider) throw new ProviderNotFoundError();\n\n const chain = config.chains.filter(isSolanaChain).find((x) => x.id === chainId);\n if (!chain) throw new SwitchChainError(new ChainNotConfiguredError());\n\n try {\n await provider.switchChain(chainId);\n return chain;\n } catch (err) {\n const error = err as RpcError;\n if (error.code === UserRejectedRequestError.code) throw new UserRejectedRequestError(error);\n throw new SwitchChainError(error);\n }\n },\n async onAccountsChanged(accounts) {\n // Disconnect if there are no accounts\n if (accounts.length === 0) this.onDisconnect();\n // Regular change event\n else\n config.emitter.emit('change', {\n accounts,\n });\n },\n onChainChanged(chain) {\n const chainId = Number(chain);\n config.emitter.emit('change', { chainId });\n },\n async onDisconnect() {\n const provider = await this.getProvider();\n\n config.emitter.emit('disconnect');\n\n // Manage EIP-1193 event listeners\n if (provider) {\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n }\n },\n isInstalled() {\n return true;\n },\n }));\n}\n", "import { getCloudflareTurnstileResponse, getConnectCaptcha, getLatestAuthType } from '@particle-network/auth-core';\nimport type { EVMProvider, SolanaWallet } from '@particle-network/authkit';\n\nconst auth = {\n getCloudflareTurnstileResponse,\n getConnectCaptcha,\n getLatestAuthType,\n};\n\ndeclare global {\n interface Window {\n particle?: {\n ethereum?: EVMProvider;\n solana?: SolanaWallet;\n };\n }\n}\n\nexport { auth, type EVMProvider, type SolanaWallet };\n", "export const version = '2.1.1';\n"],
5
- "mappings": "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",
6
- "names": ["import_auth_core", "import_connector_core", "client", "clients", "client", "import_connector_core", "chain"]
7
- }
@@ -1 +0,0 @@
1
- { "type": "commonjs" }