{"version":3,"sources":["../../src/react/nostr-sdk-provider.tsx"],"names":["jsx","NostrDataProvider","WoTProvider","NostrSessionProvider"],"mappings":";;;;;;;AAqDO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,QAAA;AAAA,EACA,MAAA;AAAA,EACA,kBAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,MAAM,SAAA,GAAY;AAAA,IAChB,GAAI,MAAA,KAAW,MAAA,GAAY,EAAE,MAAA,KAAW,EAAC;AAAA,IACzC,GAAI,kBAAA,KAAuB,MAAA,GAAY,EAAE,kBAAA,KAAuB,EAAC;AAAA,IACjE,GAAI,KAAA,KAAU,MAAA,GAAY,EAAE,KAAA,KAAU;AAAC,GACzC;AACA,EAAA,IAAI,IAAA,mBACFA,cAAA,CAACC,uBAAA,EAAA,EAAmB,GAAG,WAAY,QAAA,EAAS,CAAA;AAE9C,EAAA,IAAI,2BAAK,OAAA,EAAS;AAChB,IAAA,MAAM,EAAE,OAAA,EAAS,QAAA,EAAU,GAAG,UAAS,GAAI,GAAA;AAC3C,IAAA,IAAA,mBAAOD,cAAA,CAACE,mBAAA,EAAA,EAAa,GAAG,QAAA,EAAW,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,EAC1C;AAGA,EAAA,IAAI,OAAA,IAAW,OAAA,CAAQ,OAAA,KAAY,KAAA,EAAO,OAAO,IAAA;AACjD,EAAA,MAAM,EAAE,OAAA,EAAS,GAAA,EAAK,GAAG,YAAA,EAAa,GAAK,4BAAW,EAAC;AAGvD,EAAA,uBACEF,cAAA,CAACG,0BAAA,EAAA,EAAsB,GAAG,YAAA,EAAe,QAAA,EAAA,IAAA,EAAK,CAAA;AAElD","file":"index.cjs","sourcesContent":["'use client';\n\nimport type { ReactNode } from 'react';\nimport {\n  NostrDataProvider,\n  NostrSessionProvider,\n  type NostrSessionProviderProps,\n} from '@nostr-wot/data/react';\nimport { WoTProvider, type WoTProviderProps } from '@nostr-wot/wot/react';\n\nexport interface NostrSdkProviderProps {\n  children: ReactNode;\n  /** Override the default relay set used by all data fetchers. */\n  relays?: string[];\n  /** Specialised aggregators for kind-0 lookups (e.g. purplepag.es). */\n  profileAggregators?: string[];\n  /** Cache configuration. The SWR layer persists profiles, follows,\n   *  and relay-lists to localStorage by default. */\n  cache?: {\n    namespace?: string;\n    ttlMs?: number;\n  };\n  /** Session context — holds the active signer + pubkey. By default the\n   *  provider mounts an empty session so any child can call `useSigner()`\n   *  safely. Pass `initialSigner` / `onChange` / `onLogout` to wire your\n   *  app's auth, or `{ enabled: false }` to opt out (useful when an\n   *  outer `<NostrSessionProvider>` already wraps the tree). */\n  session?:\n    | ({ enabled?: true } & Omit<NostrSessionProviderProps, 'children'>)\n    | { enabled: false };\n  /** Web-of-Trust configuration. WoT is opt-in:\n   *    - Omit `wot` (or set `wot: { enabled: false }`) → no WoT context;\n   *      `useWoTContext()` returns null safely.\n   *    - Set `wot: { enabled: true, ... }` → wraps children with the\n   *      WoT context so `useWoT`, `useTrustScore`, `useIsInWoT`,\n   *      `useBatchWoT` work. */\n  wot?: { enabled: boolean } & Omit<WoTProviderProps, 'children'>;\n}\n\n/**\n * Top-level provider for an app using the full Nostr WoT SDK. Composes:\n *   - `<NostrSessionProvider>` — single mount point for the active signer\n *     + pubkey; consumed by DM hooks, blossom, login UI, etc.\n *   - `<NostrDataProvider>` — sets default relays, profile aggregators,\n *     cache namespace.\n *   - `<WoTProvider>` (optional, when `wot.enabled === true`).\n *\n * For data-only apps with no WoT scoring, depend on `@nostr-wot/data`\n * and use `<NostrDataProvider>` directly — no need to install\n * `@nostr-wot/wot`. For full login UI, install `@nostr-wot/ui` and use\n * its `<NostrSessionProvider>` (a thin shell on top of this one that\n * also handles silent re-attach + theming attributes).\n */\nexport function NostrSdkProvider({\n  children,\n  relays,\n  profileAggregators,\n  cache,\n  session,\n  wot,\n}: NostrSdkProviderProps) {\n  const dataProps = {\n    ...(relays !== undefined ? { relays } : {}),\n    ...(profileAggregators !== undefined ? { profileAggregators } : {}),\n    ...(cache !== undefined ? { cache } : {}),\n  };\n  let tree: ReactNode = (\n    <NostrDataProvider {...dataProps}>{children}</NostrDataProvider>\n  );\n  if (wot?.enabled) {\n    const { enabled: _enabled, ...wotProps } = wot;\n    tree = <WoTProvider {...wotProps}>{tree}</WoTProvider>;\n  }\n  // Default: mount session provider with empty signer state. Opt out\n  // via `session: { enabled: false }`.\n  if (session && session.enabled === false) return tree;\n  const { enabled: _se, ...sessionProps } = (session ?? {}) as {\n    enabled?: true;\n  } & Omit<NostrSessionProviderProps, 'children'>;\n  return (\n    <NostrSessionProvider {...sessionProps}>{tree}</NostrSessionProvider>\n  );\n}\n"]}