{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type {InjectConnectors} from './dappCore/injectConnectors'\nimport {injectConnectors} from './dappCore/injectConnectors'\nimport type {EnsureChannelIsReady} from './sdkCore/ensureChannelReady'\nimport {ensureChannelIsReady} from './sdkCore/ensureChannelReady'\nimport {isMetamaskInstalled} from './sdkCore/metamask'\nimport {getCoreSdkInfo} from './sdkCore/sdkInfo'\nimport {logger, setLogLevel} from './utils/logging'\nimport {CORE_SDK_NOT_INITIALIZED} from './widget'\nimport type {\n  GetWidgetVisibilityStatus,\n  IFrameOptions,\n  ShowWidget,\n  SignOutWidgetMessage,\n  SocialLoginInfo,\n} from './widget'\nimport {registerWidgetApiEvents} from './widget/events'\nimport type {EnsureWidgetEmbeddedInIframe} from './widget/init'\nimport {\n  ensureWidgetEmbeddedInIframe,\n  widgetManagementReadyPromise,\n} from './widget/init'\nimport {\n  exposeSocialLoginInfo,\n  onSocialLoginInfoChanged,\n} from './widget/socialLoginInfo'\n\nexport * from './utils/events'\nexport * from './dappCore'\nexport * from './sdkCore'\nexport * from './widget'\n\nlet initResult: {\n  hideWidget: () => void\n  showWidget: ShowWidget\n  sendSimplePostMessage: (message: unknown) => void\n  getWidgetVisibilityStatus: GetWidgetVisibilityStatus\n} | null = null\n\nconst init = (\n  origin = 'https://wallet.nu.fi',\n  iframeOptions?: IFrameOptions,\n): typeof initResult => {\n  const {\n    hideWidget,\n    showWidget,\n    sendSimplePostMessage,\n    getWidgetVisibilityStatus,\n  } = ensureWidgetEmbeddedInIframe({\n    type: 'prefetch',\n    baseUrl: `${origin}/widget/`,\n    iframeOptions,\n  })\n\n  registerWidgetApiEvents(origin)\n\n  return {\n    hideWidget,\n    showWidget,\n    sendSimplePostMessage,\n    getWidgetVisibilityStatus,\n  }\n}\n\ntype Api = {\n  hideWidget: () => void\n  showWidget: ShowWidget\n  getWidgetVisibilityStatus: GetWidgetVisibilityStatus\n  onSocialLoginInfoChanged: (\n    cb: (data: SocialLoginInfo | null) => unknown,\n  ) => SocialLoginInfo | null\n  getSocialLoginInfo: typeof exposeSocialLoginInfo\n  signOut: () => void\n  isMetamaskInstalled: () => Promise<boolean>\n}\n\nconst signOutMessage: SignOutWidgetMessage = {\n  appId: 'nufi',\n  method: 'signOut',\n}\n\nconst getApi = (): Api => {\n  if (initResult == null) {\n    throw new Error(CORE_SDK_NOT_INITIALIZED)\n  }\n  const {\n    hideWidget,\n    showWidget,\n    sendSimplePostMessage,\n    getWidgetVisibilityStatus,\n  } = initResult\n\n  return {\n    getSocialLoginInfo: exposeSocialLoginInfo,\n    hideWidget,\n    showWidget,\n    getWidgetVisibilityStatus,\n    onSocialLoginInfoChanged,\n    signOut: () => sendSimplePostMessage(signOutMessage),\n    isMetamaskInstalled,\n  }\n}\n\ntype WidgetApi = Pick<\n  Api,\n  'showWidget' | 'hideWidget' | 'getWidgetVisibilityStatus' | 'signOut'\n>\n\nconst getWidgetApi = async (): Promise<WidgetApi> => {\n  if (initResult == null) {\n    throw new Error(CORE_SDK_NOT_INITIALIZED)\n  }\n\n  await widgetManagementReadyPromise\n\n  const {\n    hideWidget,\n    showWidget,\n    getWidgetVisibilityStatus,\n    sendSimplePostMessage,\n  } = initResult\n\n  return {\n    hideWidget,\n    showWidget,\n    getWidgetVisibilityStatus,\n    signOut: () => sendSimplePostMessage(signOutMessage),\n  }\n}\n\n// Functions/Classes that depend on local state must be passed as a context\n// as there might be mismatch of core SDK lib versions between dapp and blockchain specific\n// versions of SDK.\ntype CoreDappSdkContext = {\n  ensureWidgetEmbeddedInIframe: EnsureWidgetEmbeddedInIframe\n  ensureChannelIsReady: EnsureChannelIsReady\n  injectConnectors: InjectConnectors\n}\n\nconst getContext = (): CoreDappSdkContext => {\n  if (initResult == null) {\n    throw new Error(CORE_SDK_NOT_INITIALIZED)\n  }\n  return {\n    ensureWidgetEmbeddedInIframe,\n    ensureChannelIsReady,\n    injectConnectors,\n  }\n}\n\nexport type PublicCoreSdk = {\n  __getContext: () => CoreDappSdkContext\n  __setLogLevel: typeof setLogLevel\n  __logger: typeof logger\n  __getSdkInfo: typeof getCoreSdkInfo\n  /**\n   * @deprecated\n   * The following methods ('showWidget' | 'hideWidget' | 'getWidgetVisibilityStatus' | 'signOut')\n   * are ignored if called when the widget is not yet initialized. We therefore suggest\n   * using `getWidgetApi` and importing other methods from default export instead.\n   */\n  getApi: () => Api\n  getWidgetApi: () => Promise<WidgetApi>\n  init: (origin?: string, iframeOptions?: IFrameOptions) => void\n  getSocialLoginInfo: Api['getSocialLoginInfo']\n  onSocialLoginInfoChanged: Api['onSocialLoginInfoChanged']\n  isMetamaskInstalled: Api['isMetamaskInstalled']\n}\n\nconst publicNufiCoreSdk: PublicCoreSdk = {\n  __getContext: getContext,\n  __setLogLevel: setLogLevel,\n  __logger: logger,\n  __getSdkInfo: getCoreSdkInfo,\n  getApi,\n  getWidgetApi,\n  init: (origin?: string, iframeOptions?: IFrameOptions) => {\n    initResult = init(origin, iframeOptions)\n  },\n  onSocialLoginInfoChanged,\n  getSocialLoginInfo: exposeSocialLoginInfo,\n  isMetamaskInstalled,\n}\n\nexport default publicNufiCoreSdk\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,8BAA+B;AAE/B,gCAAmC;AACnC,sBAAkC;AAClC,qBAA6B;AAC7B,qBAAkC;AAClC,oBAAuC;AAQvC,oBAAsC;AAEtC,kBAGO;AACP,6BAGO;AAEP,0BAAc,+BA1Bd;AA2BA,0BAAc,iCA3Bd;AA4BA,0BAAc,gCA5Bd;AA6BA,0BAAc,+BA7Bd;AA+BA,IAAI,aAKO;AAEX,IAAM,OAAO,CACX,SAAS,wBACT,kBACsB;AACtB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,0CAA6B;AAAA,IAC/B,MAAM;AAAA,IACN,SAAS,GAAG,MAAM;AAAA,IAClB;AAAA,EACF,CAAC;AAED,6CAAwB,MAAM;AAE9B,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAcA,IAAM,iBAAuC;AAAA,EAC3C,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,SAAS,MAAW;AACxB,MAAI,cAAc,MAAM;AACtB,UAAM,IAAI,MAAM,sCAAwB;AAAA,EAC1C;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,SAAO;AAAA,IACL,oBAAoB;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,MAAM,sBAAsB,cAAc;AAAA,IACnD;AAAA,EACF;AACF;AAOA,IAAM,eAAe,YAAgC;AACnD,MAAI,cAAc,MAAM;AACtB,UAAM,IAAI,MAAM,sCAAwB;AAAA,EAC1C;AAEA,QAAM;AAEN,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,MAAM,sBAAsB,cAAc;AAAA,EACrD;AACF;AAWA,IAAM,aAAa,MAA0B;AAC3C,MAAI,cAAc,MAAM;AACtB,UAAM,IAAI,MAAM,sCAAwB;AAAA,EAC1C;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAqBA,IAAM,oBAAmC;AAAA,EACvC,cAAc;AAAA,EACd,eAAe;AAAA,EACf,UAAU;AAAA,EACV,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA,MAAM,CAAC,QAAiB,kBAAkC;AACxD,iBAAa,KAAK,QAAQ,aAAa;AAAA,EACzC;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB;AACF;AAEA,IAAO,gBAAQ;","names":[]}