{
  "version": 3,
  "sources": ["../../src/actions/connect.ts", "../../src/hooks/useConnect.ts"],
  "sourcesContent": ["import type { ConnectWithEmailParam, ConnectWithPhoneParam, ConnectWithProvider } from '@particle-network/auth-core';\nimport {\n  ConnectorAlreadyConnectedError,\n  type BaseErrorType,\n  type Connector,\n  type ConnectorAlreadyConnectedErrorType,\n  type ErrorType,\n} from '@particle-network/connector-core';\nimport type { Config } from '../createConfig';\nimport type { SocialAuthType } from '../utils/social';\n\nexport type ConnectWithSocialParam = {\n  socialType: SocialAuthType;\n  prompt?: 'none' | 'consent' | 'select_account';\n};\n\nexport type AuthConnectParams =\n  | Required<ConnectWithPhoneParam>\n  | Required<ConnectWithEmailParam>\n  | ConnectWithProvider\n  | ConnectWithSocialParam;\n\nexport type PasskeyParams = {\n  isRegistering?: boolean;\n};\n\nexport type ConnectParameters = {\n  connector: Connector;\n  chainId?: number;\n  authParams?: AuthConnectParams; // only particle auth need this.\n  passkeyParams?: PasskeyParams;\n};\n\nexport type ConnectReturnType = {\n  accounts: readonly [string, ...string[]];\n  chainId: number;\n};\n\nexport type ConnectErrorType = ConnectorAlreadyConnectedErrorType | BaseErrorType | ErrorType;\n\nexport async function connect(config: Config, parameters: ConnectParameters): Promise<ConnectReturnType> {\n  const connector = parameters.connector;\n\n  // Check if connector is already connected\n  if (connector.uid === config.state.current) throw new ConnectorAlreadyConnectedError();\n\n  try {\n    config.setState((x) => ({ ...x, status: 'connecting' }));\n    connector.emitter.emit('message', { type: 'connecting' });\n\n    const data = await connector.connect({\n      chainId: parameters.chainId,\n      ...parameters.authParams,\n      ...parameters.passkeyParams,\n    });\n    const accounts = data.accounts as readonly [string, ...string[]];\n\n    connector.emitter.off('connect', config._internal.events.connect);\n    connector.emitter.on('change', config._internal.events.change);\n    connector.emitter.on('disconnect', config._internal.events.disconnect);\n\n    await config.storage?.setItem('recentConnectorId', connector.id);\n    config.setState((x) => ({\n      ...x,\n      connections: new Map(x.connections).set(connector.uid, {\n        accounts,\n        chainId: data.chainId,\n        connector: connector,\n      }),\n      current: connector.uid,\n      status: 'connected',\n    }));\n\n    return { accounts, chainId: data.chainId };\n  } catch (error) {\n    config.setState((x) => ({\n      ...x,\n      // Keep existing connector connected in case of error\n      status: x.current ? 'connected' : 'disconnected',\n    }));\n    throw error;\n  }\n}\n", "import { isEVMChain, isSolanaChain } from '@particle-network/connector-core';\nimport { connect, type ConnectParameters, type ConnectReturnType } from '../actions/connect';\nimport { useContext } from '../context';\nimport { useLastConnectorId } from './useLastConnectorId';\nimport { useMutation, type MutationOptions } from './useMutation';\n\ntype UseConnectParameters = MutationOptions<ConnectReturnType, ConnectParameters>;\n\nexport default function useConnect(parameters?: UseConnectParameters) {\n  const { config, options } = useContext();\n  const { updateLastConnectorId } = useLastConnectorId();\n\n  const mutationFn = async (parameters: ConnectParameters) => {\n    const { connector, chainId } = parameters;\n    let connectChainId = chainId;\n    if (!connectChainId) {\n      if (connector.chainType === 'evm') {\n        connectChainId = options.initialChainId?.evm;\n        if (!connectChainId) {\n          connectChainId = config.chains.find(isEVMChain)?.id;\n        }\n      } else {\n        connectChainId = options.initialChainId?.solana;\n        if (!connectChainId) {\n          connectChainId = config.chains.find(isSolanaChain)?.id;\n        }\n      }\n    }\n    const result = await connect(config, {\n      ...parameters,\n      chainId: connectChainId,\n    });\n    if (connector.id !== 'walletConnect') {\n      updateLastConnectorId(connector.id);\n    }\n\n    return result;\n  };\n\n  const { status, data, error, mutate, mutateAsync } = useMutation(mutationFn, parameters);\n\n  return {\n    status,\n    data,\n    error,\n    connect: mutate,\n    connectAsync: mutateAsync,\n  };\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;AACA;AAAA,EACE;AAAA,OAKK;AAiCP,eAAsB,QAAQ,QAAgB,YAA2D;AACvG,QAAM,YAAY,WAAW;AAG7B,MAAI,UAAU,QAAQ,OAAO,MAAM;AAAS,UAAM,IAAI,+BAA+B;AAErF,MAAI;AACF,WAAO,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,QAAQ,aAAa,EAAE;AACvD,cAAU,QAAQ,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAExD,UAAM,OAAO,MAAM,UAAU,QAAQ;AAAA,MACnC,SAAS,WAAW;AAAA,MACpB,GAAG,WAAW;AAAA,MACd,GAAG,WAAW;AAAA,IAChB,CAAC;AACD,UAAM,WAAW,KAAK;AAEtB,cAAU,QAAQ,IAAI,WAAW,OAAO,UAAU,OAAO,OAAO;AAChE,cAAU,QAAQ,GAAG,UAAU,OAAO,UAAU,OAAO,MAAM;AAC7D,cAAU,QAAQ,GAAG,cAAc,OAAO,UAAU,OAAO,UAAU;AAErE,UAAM,OAAO,SAAS,QAAQ,qBAAqB,UAAU,EAAE;AAC/D,WAAO,SAAS,CAAC,OAAO;AAAA,MACtB,GAAG;AAAA,MACH,aAAa,IAAI,IAAI,EAAE,WAAW,EAAE,IAAI,UAAU,KAAK;AAAA,QACrD;AAAA,QACA,SAAS,KAAK;AAAA,QACd;AAAA,MACF,CAAC;AAAA,MACD,SAAS,UAAU;AAAA,MACnB,QAAQ;AAAA,IACV,EAAE;AAEF,WAAO,EAAE,UAAU,SAAS,KAAK,QAAQ;AAAA,EAC3C,SAAS,OAAP;AACA,WAAO,SAAS,CAAC,OAAO;AAAA,MACtB,GAAG;AAAA,MAEH,QAAQ,EAAE,UAAU,cAAc;AAAA,IACpC,EAAE;AACF,UAAM;AAAA,EACR;AACF;AAlFA;AAAA;AAAA;AAAA;AAAA;;;ACAA,SAAS,YAAY,qBAAqB;AAQ3B,SAAR,WAA4B,YAAmC;AACpE,QAAM,EAAE,QAAQ,QAAQ,IAAI,WAAW;AACvC,QAAM,EAAE,sBAAsB,IAAI,mBAAmB;AAErD,QAAM,aAAa,OAAOA,gBAAkC;AAC1D,UAAM,EAAE,WAAW,QAAQ,IAAIA;AAC/B,QAAI,iBAAiB;AACrB,QAAI,CAAC,gBAAgB;AACnB,UAAI,UAAU,cAAc,OAAO;AACjC,yBAAiB,QAAQ,gBAAgB;AACzC,YAAI,CAAC,gBAAgB;AACnB,2BAAiB,OAAO,OAAO,KAAK,UAAU,GAAG;AAAA,QACnD;AAAA,MACF,OAAO;AACL,yBAAiB,QAAQ,gBAAgB;AACzC,YAAI,CAAC,gBAAgB;AACnB,2BAAiB,OAAO,OAAO,KAAK,aAAa,GAAG;AAAA,QACtD;AAAA,MACF;AAAA,IACF;AACA,UAAM,SAAS,MAAM,QAAQ,QAAQ;AAAA,MACnC,GAAGA;AAAA,MACH,SAAS;AAAA,IACX,CAAC;AACD,QAAI,UAAU,OAAO,iBAAiB;AACpC,4BAAsB,UAAU,EAAE;AAAA,IACpC;AAEA,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,QAAQ,MAAM,OAAO,QAAQ,YAAY,IAAI,YAAY,YAAY,UAAU;AAEvF,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,cAAc;AAAA,EAChB;AACF;AAhDA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;",
  "names": ["parameters"]
}
