@tuwaio/nova-connect 1.0.0-fix-indep-alpha.7.285558c → 1.0.0-fix-indep-alpha.8.549f0ed

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.
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkPUEGOPQT_cjs=require('../chunk-PUEGOPQT.cjs');Object.defineProperty(exports,"AllConnectors",{enumerable:true,get:function(){return chunkPUEGOPQT_cjs.b}});Object.defineProperty(exports,"Connection",{enumerable:true,get:function(){return chunkPUEGOPQT_cjs.c}});Object.defineProperty(exports,"Connector",{enumerable:true,get:function(){return chunkPUEGOPQT_cjs.d}});Object.defineProperty(exports,"SatelliteConnectProvider",{enumerable:true,get:function(){return chunkPUEGOPQT_cjs.e}});Object.defineProperty(exports,"SatelliteConnectProviderProps",{enumerable:true,get:function(){return chunkPUEGOPQT_cjs.f}});Object.defineProperty(exports,"SatelliteStoreContext",{enumerable:true,get:function(){return chunkPUEGOPQT_cjs.g}});Object.defineProperty(exports,"getSatelliteExports",{enumerable:true,get:function(){return chunkPUEGOPQT_cjs.a}});Object.defineProperty(exports,"useInitializeAutoConnect",{enumerable:true,get:function(){return chunkPUEGOPQT_cjs.h}});Object.defineProperty(exports,"useSatelliteConnectStore",{enumerable:true,get:function(){return chunkPUEGOPQT_cjs.i}});//# sourceMappingURL=index.cjs.map
1
+ 'use strict';var chunkJFUJC4EJ_cjs=require('../chunk-JFUJC4EJ.cjs');Object.defineProperty(exports,"AllConnectors",{enumerable:true,get:function(){return chunkJFUJC4EJ_cjs.a}});Object.defineProperty(exports,"Connection",{enumerable:true,get:function(){return chunkJFUJC4EJ_cjs.b}});Object.defineProperty(exports,"Connector",{enumerable:true,get:function(){return chunkJFUJC4EJ_cjs.c}});Object.defineProperty(exports,"SatelliteConnectProvider",{enumerable:true,get:function(){return chunkJFUJC4EJ_cjs.d}});Object.defineProperty(exports,"SatelliteConnectProviderProps",{enumerable:true,get:function(){return chunkJFUJC4EJ_cjs.e}});Object.defineProperty(exports,"SatelliteStoreContext",{enumerable:true,get:function(){return chunkJFUJC4EJ_cjs.f}});Object.defineProperty(exports,"useInitializeAutoConnect",{enumerable:true,get:function(){return chunkJFUJC4EJ_cjs.g}});Object.defineProperty(exports,"useSatelliteConnectStore",{enumerable:true,get:function(){return chunkJFUJC4EJ_cjs.h}});//# sourceMappingURL=index.cjs.map
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,5 +1 @@
1
1
  export { AllConnectors, Connection, Connector, SatelliteConnectProvider, SatelliteConnectProviderProps, SatelliteStoreContext, useInitializeAutoConnect, useSatelliteConnectStore } from '@tuwaio/satellite-react';
2
-
3
- declare function getSatelliteExports(): Promise<any>;
4
-
5
- export { getSatelliteExports };
@@ -1,5 +1 @@
1
1
  export { AllConnectors, Connection, Connector, SatelliteConnectProvider, SatelliteConnectProviderProps, SatelliteStoreContext, useInitializeAutoConnect, useSatelliteConnectStore } from '@tuwaio/satellite-react';
2
-
3
- declare function getSatelliteExports(): Promise<any>;
4
-
5
- export { getSatelliteExports };
@@ -1,2 +1,2 @@
1
- export{b as AllConnectors,c as Connection,d as Connector,e as SatelliteConnectProvider,f as SatelliteConnectProviderProps,g as SatelliteStoreContext,a as getSatelliteExports,h as useInitializeAutoConnect,i as useSatelliteConnectStore}from'../chunk-6ZNK56AI.js';//# sourceMappingURL=index.js.map
1
+ export{a as AllConnectors,b as Connection,c as Connector,d as SatelliteConnectProvider,e as SatelliteConnectProviderProps,f as SatelliteStoreContext,g as useInitializeAutoConnect,h as useSatelliteConnectStore}from'../chunk-WVALNTUP.js';//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tuwaio/nova-connect",
3
- "version": "1.0.0-fix-indep-alpha.7.285558c",
3
+ "version": "1.0.0-fix-indep-alpha.8.549f0ed",
4
4
  "private": false,
5
5
  "author": "Oleksandr Tkach",
6
6
  "license": "Apache-2.0",
@@ -199,7 +199,7 @@
199
199
  "@radix-ui/react-select": "^2.2.6",
200
200
  "@tuwaio/orbit-core": "^0.2.0",
201
201
  "@tuwaio/orbit-evm": "^0.2.2",
202
- "@tuwaio/satellite-react": "^0.2.2",
202
+ "@tuwaio/satellite-react": "1.0.0-fix-adapters-independ-alpha.1.82df95a",
203
203
  "@tuwaio/orbit-solana": "^0.2.0",
204
204
  "@tuwaio/satellite-core": "^0.2.0",
205
205
  "@tuwaio/satellite-evm": "^0.2.2",
@@ -229,8 +229,8 @@
229
229
  "tw-animate-css": "^1.4.0",
230
230
  "typescript": "^5.9.3",
231
231
  "tsup": "^8.5.1",
232
- "@tuwaio/nova-transactions": "^1.0.0-fix-indep-alpha.7.285558c",
233
- "@tuwaio/nova-core": "^1.0.0-fix-indep-alpha.7.285558c"
232
+ "@tuwaio/nova-core": "^1.0.0-fix-indep-alpha.8.549f0ed",
233
+ "@tuwaio/nova-transactions": "^1.0.0-fix-indep-alpha.8.549f0ed"
234
234
  },
235
235
  "scripts": {
236
236
  "start": "tsup src/index.ts --watch",
@@ -1,3 +0,0 @@
1
- import {a as a$1,i as i$1}from'./chunk-4WDAZUTQ.js';import {a}from'./chunk-3BMX6JWH.js';import {i}from'./chunk-6ZNK56AI.js';import {textCenterEllipsis}from'@tuwaio/nova-core';import {OrbitAdapter,getAdapterFromConnectorType,formatConnectorName}from'@tuwaio/orbit-core';import {createContext,useContext,useMemo,useState,useRef,useCallback,useEffect}from'react';function he(e){let{abbreviateSymbols:t=12,maxNameLength:n=30,autoRetry:o=false,retryDelay:s=3e3}=e,a=i(f=>f.activeConnection),i$1=i(f=>f.getAdapter),r=useMemo(()=>a?.address,[a?.address]),u=useMemo(()=>a?.connectorType,[a?.connectorType]),c=useMemo(()=>u?i$1(getAdapterFromConnectorType(u??`${OrbitAdapter.EVM}:not-connected`)):null,[i$1,u]),[d,b]=useState(null),[F,p]=useState(null),[g,m]=useState(false),[N,h]=useState(null),x=useRef(null),T=useRef(null),I=useMemo(()=>{if(!c)return {hasNameResolver:false,hasAvatarResolver:false};let f="getName"in c&&typeof c.getName=="function",C="getAvatar"in c&&typeof c.getAvatar=="function";return {hasNameResolver:f,hasAvatarResolver:C}},[c]),v=useCallback(()=>{x.current&&(x.current.abort(),x.current=null),T.current!==null&&(clearTimeout(T.current),T.current=null);},[]),L=useCallback(async()=>{if(v(),!r||!c||!I.hasNameResolver){b(null),p(null),m(false),h(null);return}x.current=new AbortController;let{signal:f}=x.current;m(true),h(null),b(null),p(null);try{if(f.aborted)return;let C=await c.getName?.(r);if(f.aborted)return;if(C&&(b(C),I.hasAvatarResolver))try{let S=await c.getAvatar?.(C);f.aborted||p(S??null);}catch(S){console.warn("Failed to fetch avatar:",S),f.aborted||p(null);}}catch(C){if(f.aborted)return;let S=C instanceof Error?C.message:"Failed to fetch name service data";console.error("Failed to fetch name service data:",C),h(S),b(null),p(null),o&&(T.current=setTimeout(()=>{L();},s));}finally{f.aborted||m(false);}},[r,c,I,o,s,v]),ee=useCallback(()=>{h(null),L();},[L]);useEffect(()=>(L(),v),[L,v]),useEffect(()=>v,[v]);let te=useMemo(()=>d?d.length>n?textCenterEllipsis(d,t,t):d:r?textCenterEllipsis(r,t,t):void 0,[d,r,n,t]);return {ensName:d,ensAvatar:F,isLoading:g,ensNameAbbreviated:te,error:N,retry:ee}}var R=class extends Error{constructor(t="useNovaConnect must be used within NovaConnectProvider"){super(t),this.name="NovaConnectProviderError";}},V=createContext(void 0),Ae=()=>{let e=useContext(V);if(!e)throw new R;return e},Ne=()=>useContext(V)!==void 0,xe=()=>useContext(V)??null;var ce=createContext(a),D=()=>useContext(ce),ke=e=>D()[e],we=e=>{let t=D(),n={};for(let o of e)n[o]=t[o];return n},Ee=(e,t)=>!!e[t]?.trim(),Be=e=>{let t=D(),o={actions:["connectWallet","disconnect","connecting","connected","tryAgain","back","connect","close"],states:["success","error","replaced","loading","idle"],accessibility:["chainSelector","closeModal","selectChain","walletControls","openWalletModal"],transactions:["transactionLoading","transactionSuccess","transactionError","transactionReplaced","recent"]}[e],s={};for(let a of o)s[a]=t[a];return s},Ie=e=>e===a,Me=(e,t,n)=>{let o=e[t];return o&&o.trim()?o:n||a[t]||t.toString()},Pe=(e,t)=>{let n={};for(let o of t)n[o]=e[o];return n};function U(e){if(typeof e!="string")return false;let t=e.trim();return !!/^0x[a-fA-F0-9]{40}$/.test(t)}function _(e){if(typeof e!="string")return false;let t=e.trim();return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(t)}function We(e,t="auto"){if(!e||typeof e!="string")return false;let n=e.trim();switch(t){case "evm":return U(n);case "solana":return _(n);case "auto":default:return U(n)||_(n)}}var y={[OrbitAdapter.EVM]:1,[OrbitAdapter.SOLANA]:"mainnet",[OrbitAdapter.Starknet]:"0x534e5f4d41494e"};function Ge({selectedAdapter:e,appChains:t,solanaRPCUrls:n}){switch(e){case OrbitAdapter.EVM:{let o=t?.[0];return o?.id&&typeof o.id=="number"?o.id:(process.env.NODE_ENV==="development"&&!t?.length&&console.warn("getConnectChainId: No EVM chains configured, using Ethereum Mainnet"),y[OrbitAdapter.EVM])}case OrbitAdapter.SOLANA:{if(n&&typeof n=="object"){let o=Object.keys(n);if(o.length>0)return o[0]}return process.env.NODE_ENV==="development"&&!n&&console.warn("getConnectChainId: No Solana RPC URLs configured, using mainnet"),y[OrbitAdapter.SOLANA]}case OrbitAdapter.Starknet:return process.env.NODE_ENV==="development"&&console.info("getConnectChainId: Using default Starknet chain ID"),y[OrbitAdapter.Starknet];default:return process.env.NODE_ENV==="development"&&console.error("getConnectChainId: Unknown adapter:",e),y[OrbitAdapter.EVM]}}function Fe({selectedAdapter:e,appChains:t,solanaRPCUrls:n}){switch(e){case OrbitAdapter.EVM:return t?.map(o=>o.id).filter(Boolean)??[y[OrbitAdapter.EVM]];case OrbitAdapter.SOLANA:return n?Object.keys(n):[y[OrbitAdapter.SOLANA]];case OrbitAdapter.Starknet:return [y[OrbitAdapter.Starknet]];default:return [y[OrbitAdapter.EVM]]}}function ie(e,t){if(!e||typeof e!="object")return null;let n=e;if(!n.name||typeof n.name!="string")return null;let o;if("icon"in n){let s=n.icon;if(typeof s=="string")o=s;else if(s&&typeof s=="object"&&"toString"in s&&typeof s.toString=="function")try{o=s.toString();}catch{}}return {name:n.name,icon:o,adapter:t,originalConnector:n}}function H({connectors:e,excludeConnectors:t=["injected"]}={connectors:{}}){if(!e||Object.keys(e).length===0)return [];let n=new Set(t.map(a=>formatConnectorName(a))),o=[];Object.entries(e).forEach(([a,i])=>{if(Array.isArray(i)){let r=a;i.forEach(u=>{let c=ie(u,r);if(c){let d=formatConnectorName(c.name);n.has(d)||o.push(c);}});}});let s=new Map;return o.forEach(a=>{let i=formatConnectorName(a.name);s.has(i)||s.set(i,{name:a.name,icon:a.icon,adapters:[],connectors:[]});let r=s.get(i);r.adapters.includes(a.adapter)||r.adapters.push(a.adapter);let u=Object.assign({},a.originalConnector,{adapter:a.adapter});r.connectors.push(u),!r.icon&&a.icon&&(r.icon=a.icon);}),Array.from(s.values()).sort((a,i)=>a.name.localeCompare(i.name,void 0,{sensitivity:"base"}))}function Ue(e){return Object.values(e).some(t=>Array.isArray(t)&&t.length>0)}function le(e){try{if(e&&typeof e=="object"&&e.adapter)return e.adapter}catch{}}function z(e,t){return le(e)===t}function Je({connectors:e,selectedAdapter:t}){if(!e||Object.keys(e).length===0)return [];let n=H({connectors:e});return t?n.filter(o=>o.adapters.includes(t)&&o.connectors.some(s=>z(s,t))).map(o=>{let s=o.connectors.filter(a=>z(a,t));return {...o,adapters:[t],connectors:s}}).filter(o=>o.connectors.length>0):n}function Ze(e,t){let n=e[t];return Array.isArray(n)&&n.length>0}var Xe=e=>{switch(e){case OrbitAdapter.EVM:return {chainId:1,name:"Ethereum"};case OrbitAdapter.SOLANA:return {chainId:"solana:mainnet",name:"Solana"}}};var tt={[OrbitAdapter.EVM]:{aboutNetwork:"https://ethereum.org/developers/docs/intro-to-ethereum/",choseWallet:"https://ethereum.org/wallets/find-wallet/",about:"https://ethereum.org/wallets/"},[OrbitAdapter.SOLANA]:{aboutNetwork:"https://solana.com/en/learn/what-is-solana",choseWallet:"https://solana.com/en/solana-wallets",about:"https://solana.com/en/learn/what-is-a-wallet"}};function ft(){return console.warn("getAvailableSolanaClusters: Using synchronous fallback with limited functionality. Use getAvailableSolanaClustersAsync for complete cluster detection."),[]}function Ct(e){return console.warn("isValidSolanaCluster: Using synchronous fallback with basic validation. Use isValidSolanaClusterAsync for comprehensive cluster validation."),["mainnet","devnet","testnet","localnet"].includes(e)}function Et({activeConnection:e,appChains:t,solanaRPCUrls:n}){let[o,s]=useState([]),[a,i]=useState(false);return useEffect(()=>{let r=true;return (async()=>{i(true);try{if(!e){let b=await a$1({connectorType:`${OrbitAdapter.EVM}:not-connected`,appChains:t,solanaRPCUrls:n,chains:[]});r&&s(b);return}let c=i$1(e),d=await a$1({connectorType:e.connectorType,appChains:t,solanaRPCUrls:n,chains:c});r&&s(d);}catch(c){console.error("Failed to fetch chains list:",c),r&&s([]);}finally{r&&i(false);}})(),()=>{r=false;}},[e,t,n]),{chainsList:o,isLoading:a}}function Rt(){let[e,t]=useState({}),[n,o]=useState(false),s=useRef(null),a=i(p=>p.activeConnection),i$1=i(p=>p.getAdapter),r=useMemo(()=>a?.chainId&&a?.address?`${a.address}-${a.chainId}`:null,[a?.chainId,a?.address]),u=useMemo(()=>a?.connectorType?i$1(getAdapterFromConnectorType(a.connectorType)):null,[i$1,a?.connectorType]),c=useMemo(()=>u&&"getBalance"in u&&typeof u.getBalance=="function",[u]),d=useCallback(async(p=false)=>{if(!a?.address||!u||!a?.chainId||!r||!c){o(false);return}let g=`${r}-${Date.now()}`;if(s.current=g,!p&&e[r]){o(false);return}o(true);try{let m=await u.getBalance(a.address,a.chainId);s.current===g&&t(N=>({...N,[r]:m}));}catch(m){console.error(`Failed to fetch native balance for ${r}:`,m),p&&s.current===g&&t(N=>{let h={...N};return delete h[r],h});}finally{s.current===g&&o(false);}},[a?.address,u,a?.chainId,r,c,e]),b=useCallback(()=>{d(true);},[d]);return useEffect(()=>{r&&c&&!e[r]?d(false):(!r||!c)&&o(false);},[r,c,e,d]),useEffect(()=>()=>{s.current=null;},[]),{balance:useMemo(()=>r&&e[r]||null,[r,e]),isLoading:n,refetch:b}}
2
- export{Et as A,Rt as B,he as a,R as b,V as c,Ae as d,Ne as e,xe as f,ce as g,D as h,ke as i,we as j,Ee as k,Be as l,Ie as m,Me as n,Pe as o,We as p,Ge as q,Fe as r,H as s,Ue as t,Je as u,Ze as v,Xe as w,tt as x,ft as y,Ct as z};//# sourceMappingURL=chunk-3LHD7CNB.js.map
3
- //# sourceMappingURL=chunk-3LHD7CNB.js.map
@@ -1,2 +0,0 @@
1
- export{AllConnectors as b,Connection as c,Connector as d,SatelliteConnectProvider as e,SatelliteConnectProviderProps as f,SatelliteStoreContext as g,useInitializeAutoConnect as h,useSatelliteConnectStore as i}from'@tuwaio/satellite-react';async function r(){try{let t=await new Function('return import("@tuwaio/satellite-react").catch(error => { console.warn("Failed to load Satellite exports:", error); return null; })')();return t?{...t,available:!0}:{available:!1,error:"Failed to load Satellite exports"}}catch(e){return console.warn("Failed to load Satellite exports:",e),{available:false,error:e instanceof Error?e.message:"Unknown error loading Satellite exports"}}}export{r as a};//# sourceMappingURL=chunk-6ZNK56AI.js.map
2
- //# sourceMappingURL=chunk-6ZNK56AI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/satellite/index.ts"],"names":["getSatelliteExports","satelliteReact","error"],"mappings":"+OAaA,eAAsBA,CAAAA,EAAsB,CAC1C,GAAI,CAOF,IAAMC,CAAAA,CAAiB,MAJO,IAAI,QAAA,CAChC,qIACF,GAEmD,CAEnD,OAAKA,CAAAA,CAOE,CACL,GAAGA,CAAAA,CACH,SAAA,CAAW,CAAA,CACb,CAAA,CATS,CACL,SAAA,CAAW,CAAA,CAAA,CACX,KAAA,CAAO,kCACT,CAOJ,CAAA,MAASC,CAAAA,CAAO,CACd,OAAA,OAAA,CAAQ,IAAA,CAAK,mCAAA,CAAqCA,CAAK,CAAA,CAChD,CACL,SAAA,CAAW,KAAA,CACX,KAAA,CAAOA,CAAAA,YAAiB,KAAA,CAAQA,CAAAA,CAAM,OAAA,CAAU,yCAClD,CACF,CACF","file":"chunk-6ZNK56AI.js","sourcesContent":["// Export all types and components directly to satisfy static imports\nexport {\n AllConnectors,\n Connection,\n Connector,\n SatelliteConnectProvider,\n SatelliteConnectProviderProps,\n SatelliteStoreContext,\n useInitializeAutoConnect,\n useSatelliteConnectStore,\n} from '@tuwaio/satellite-react';\n\n// Dynamic exports that will be loaded at runtime\nexport async function getSatelliteExports() {\n try {\n // Use a more indirect approach to prevent bundlers from resolving imports at build time\n // This creates a function that will be called at runtime\n const importSatelliteModule = new Function(\n 'return import(\"@tuwaio/satellite-react\").catch(error => { console.warn(\"Failed to load Satellite exports:\", error); return null; })'\n );\n\n const satelliteReact = await importSatelliteModule();\n\n if (!satelliteReact) {\n return {\n available: false,\n error: 'Failed to load Satellite exports',\n };\n }\n\n return {\n ...satelliteReact,\n available: true,\n };\n } catch (error) {\n console.warn('Failed to load Satellite exports:', error);\n return {\n available: false,\n error: error instanceof Error ? error.message : 'Unknown error loading Satellite exports',\n };\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- 'use strict';var satelliteReact=require('@tuwaio/satellite-react');async function r(){try{let t=await new Function('return import("@tuwaio/satellite-react").catch(error => { console.warn("Failed to load Satellite exports:", error); return null; })')();return t?{...t,available:!0}:{available:!1,error:"Failed to load Satellite exports"}}catch(e){return console.warn("Failed to load Satellite exports:",e),{available:false,error:e instanceof Error?e.message:"Unknown error loading Satellite exports"}}}Object.defineProperty(exports,"b",{enumerable:true,get:function(){return satelliteReact.AllConnectors}});Object.defineProperty(exports,"c",{enumerable:true,get:function(){return satelliteReact.Connection}});Object.defineProperty(exports,"d",{enumerable:true,get:function(){return satelliteReact.Connector}});Object.defineProperty(exports,"e",{enumerable:true,get:function(){return satelliteReact.SatelliteConnectProvider}});Object.defineProperty(exports,"f",{enumerable:true,get:function(){return satelliteReact.SatelliteConnectProviderProps}});Object.defineProperty(exports,"g",{enumerable:true,get:function(){return satelliteReact.SatelliteStoreContext}});Object.defineProperty(exports,"h",{enumerable:true,get:function(){return satelliteReact.useInitializeAutoConnect}});Object.defineProperty(exports,"i",{enumerable:true,get:function(){return satelliteReact.useSatelliteConnectStore}});exports.a=r;//# sourceMappingURL=chunk-PUEGOPQT.cjs.map
2
- //# sourceMappingURL=chunk-PUEGOPQT.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/satellite/index.ts"],"names":["getSatelliteExports","satelliteReact","error"],"mappings":"mEAaA,eAAsBA,CAAAA,EAAsB,CAC1C,GAAI,CAOF,IAAMC,CAAAA,CAAiB,MAJO,IAAI,QAAA,CAChC,qIACF,GAEmD,CAEnD,OAAKA,CAAAA,CAOE,CACL,GAAGA,CAAAA,CACH,SAAA,CAAW,CAAA,CACb,CAAA,CATS,CACL,SAAA,CAAW,CAAA,CAAA,CACX,KAAA,CAAO,kCACT,CAOJ,CAAA,MAASC,CAAAA,CAAO,CACd,OAAA,OAAA,CAAQ,IAAA,CAAK,mCAAA,CAAqCA,CAAK,CAAA,CAChD,CACL,SAAA,CAAW,KAAA,CACX,KAAA,CAAOA,CAAAA,YAAiB,KAAA,CAAQA,CAAAA,CAAM,OAAA,CAAU,yCAClD,CACF,CACF","file":"chunk-PUEGOPQT.cjs","sourcesContent":["// Export all types and components directly to satisfy static imports\nexport {\n AllConnectors,\n Connection,\n Connector,\n SatelliteConnectProvider,\n SatelliteConnectProviderProps,\n SatelliteStoreContext,\n useInitializeAutoConnect,\n useSatelliteConnectStore,\n} from '@tuwaio/satellite-react';\n\n// Dynamic exports that will be loaded at runtime\nexport async function getSatelliteExports() {\n try {\n // Use a more indirect approach to prevent bundlers from resolving imports at build time\n // This creates a function that will be called at runtime\n const importSatelliteModule = new Function(\n 'return import(\"@tuwaio/satellite-react\").catch(error => { console.warn(\"Failed to load Satellite exports:\", error); return null; })'\n );\n\n const satelliteReact = await importSatelliteModule();\n\n if (!satelliteReact) {\n return {\n available: false,\n error: 'Failed to load Satellite exports',\n };\n }\n\n return {\n ...satelliteReact,\n available: true,\n };\n } catch (error) {\n console.warn('Failed to load Satellite exports:', error);\n return {\n available: false,\n error: error instanceof Error ? error.message : 'Unknown error loading Satellite exports',\n };\n }\n}\n"]}