@tuwaio/quasar-sdk 0.0.14 → 0.0.16

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.
@@ -0,0 +1 @@
1
+ import {a as a$1}from'./chunk-YPUBFZPR.js';var r=null;function a(e){r=e;}async function o(){for(let e=0;e<15;e++){if(r)return r();await new Promise(n=>setTimeout(n,200));}throw new Error("[QuasarSDK] Auth helper not initialized. Ensure QuasarAuthBridge is mounted and wallet is connected.")}async function c(e){await o();let n=e||a$1;try{let t=await fetch(`${n}/v1/engine/monitoring/health?t=${Date.now()}`,{method:"GET",headers:{"Cache-Control":"no-cache"},cache:"no-store"});if(!t.ok)throw new Error(`[QuasarSDK] API Health check failed with status: ${t.status}`)}catch(t){throw new Error("[QuasarSDK] Quasar Cloud Engine is currently unreachable.",{cause:t})}}export{r as a,a as b,o as c,c as d};
@@ -1 +1 @@
1
- import {a}from'./chunk-RFMAWFDP.js';import {k}from'./chunk-SDZRMP3Z.js';import {getWalletClient}from'@wagmi/core';import {useEffect,useRef,useCallback}from'react';import {jsx}from'react/jsx-runtime';function R({activeConnection:n,store:i,wagmiConfig:r,session:e,setSession:t,maxAge:s,onAddressMismatch:o}){return useEffect(()=>{e&&n?.address&&e.walletAddress!==n.address&&(console.log("[QuasarSDK] Address mismatch detected, clearing session..."),t(null),o?.());},[n?.address,e,t,o]),!n?.isConnected||!i?null:jsx(S,{wagmiConfig:r,store:i,session:e,setSession:t,maxAge:s})}function S({wagmiConfig:n,store:i,session:r,setSession:e,maxAge:t}){let s=useRef(r),o=useRef(e);useEffect(()=>{s.current=r;},[r]),useEffect(()=>{o.current=e;},[e]);let l=useCallback(async()=>{let u=i.getState().activeConnection;if(!u?.isConnected)throw new Error("[QuasarSDK] Wallet disconnected");let d=await getWalletClient(n);if(!d)throw new Error("[QuasarSDK] EVM Signer not found");return k({isConnected:u.isConnected,address:u.address,chainType:"EVM",signer:d},{miniSession:s.current,setMiniSession:o.current},t)},[i,n,t]);return useEffect(()=>(a(l),()=>{a(null);}),[l]),null}export{R as a};
1
+ import {h}from'./chunk-C6JAMIC3.js';import {b}from'./chunk-7CCLRGTM.js';import {getWalletClient}from'@wagmi/core';import {useEffect,useRef,useCallback}from'react';import {jsx}from'react/jsx-runtime';function D({activeConnection:n,store:i,wagmiConfig:r,session:e,setSession:t,maxAge:s,onAddressMismatch:o}){return useEffect(()=>{e&&n?.address&&e.walletAddress!==n.address&&(console.log("[QuasarSDK] Address mismatch detected, clearing session..."),t(null),o?.());},[n?.address,e,t,o]),!n?.isConnected||!i?null:jsx(S,{wagmiConfig:r,store:i,session:e,setSession:t,maxAge:s})}function S({wagmiConfig:n,store:i,session:r,setSession:e,maxAge:t}){let s=useRef(r),o=useRef(e);useEffect(()=>{s.current=r;},[r]),useEffect(()=>{o.current=e;},[e]);let l=useCallback(async()=>{let u=i.getState().activeConnection;if(!u?.isConnected)throw new Error("[QuasarSDK] Wallet disconnected");let d=await getWalletClient(n);if(!d)throw new Error("[QuasarSDK] EVM Signer not found");return h({isConnected:u.isConnected,address:u.address,chainType:"EVM",signer:d},{miniSession:s.current,setMiniSession:o.current},t)},[i,n,t]);return useEffect(()=>(b(l),()=>{b(null);}),[l]),null}export{D as a};
@@ -0,0 +1 @@
1
+ import {create}from'zustand';import {persist}from'zustand/middleware';var m=(t=>(t.EVM="EVM",t.SOLANA="SOLANA",t))(m||{});var u=300*1e3,w=60*1e3,y=30*1e3;function f(e){return `Mini-Session Login: ${e}`}async function p(e){let r=new Date().toISOString(),t=f(r);if(e.chainType==="EVM"){let i=e.signer;try{return {signature:await i.signMessage({account:e.walletAddress,message:t}),timestamp:r}}catch(n){throw new Error(`[SDK] EVM signing failed: ${n.message}`,{cause:n})}}if(e.chainType==="SOLANA"){let i=e.signer,n;try{n=await import('gill');}catch(s){throw new Error('[SDK] Peer dependency "gill" is required for Solana signing.',{cause:s})}try{let a=n.getUtf8Encoder().encode(t),o;if(i.modifyAndSignMessages){let g=n.createSignableMessage(a),d=(await i.modifyAndSignMessages([g]))[0].signatures[i.address];if(!d)throw new Error(`[SDK] Signature missing for address: ${i.address}`);o=d;}else if(i.signMessages){let S=(await i.signMessages([a]))[0];if(!S?.signature)throw new Error("[SDK] Wallet returned invalid signMessages output.");o=S.signature;}else if(i.signMessage)o=await i.signMessage(a);else throw new Error("[SDK] Signer lacks message signing capabilities.");return {signature:n.getSignatureFromBytes(o),timestamp:r}}catch(s){throw new Error(`[SDK] Solana signing failed: ${s.message}`,{cause:s})}}throw new Error(`[SDK] Unsupported chain type: ${e.chainType}`)}async function v(e){let r=new Date(e.timestamp).getTime(),t=Date.now();if(isNaN(r))throw new Error("[SDK] Invalid timestamp format. Use ISO string.");let i=e.maxAge??u;if(t-r>i)throw new Error("[SDK] Signature expired. Please sign a fresh message.");if(r>t+w)throw new Error("[SDK] Timestamp is in the future. Check your system clock.");let n=f(e.timestamp);if(e.chainType==="EVM"){let s;try{s=await import('viem');}catch(a){throw new Error('[SDK] Peer dependency "viem" is required for EVM verification.',{cause:a})}return await s.verifyMessage({address:e.walletAddress,message:n,signature:e.signature})}if(e.chainType==="SOLANA"){let s;try{s=await import('gill');}catch(a){throw new Error('[SDK] Peer dependency "gill" is required for Solana verification.',{cause:a})}try{let a=s.address(e.walletAddress);return await s.verifySignatureForAddress(a,e.signature,n)}catch{return false}}return false}var c=null;function C(e="mini-session-storage"){return create()(persist(r=>({miniSession:null,setMiniSession:t=>r({miniSession:t}),clearSession:()=>r({miniSession:null})}),{name:e}))}async function N(e,r,t=u){let{isConnected:i,address:n,chainType:s,signer:a}=e;if(!i||!n)throw new Error("[SDK] Wallet not connected. Please connect your wallet first.");let o=r.miniSession;if(o&&o.walletAddress===n&&o.chainType===s){let l=Date.now(),g=new Date(o.timestamp).getTime();if(l-g<t-y)return o}return c||(c=p({signer:a,walletAddress:n,chainType:s}).then(l=>{let g={...l,chainType:s,walletAddress:n};return r.setMiniSession(g),g}).finally(()=>{c=null;})),c}export{m as a,u as b,y as c,f as d,p as e,v as f,C as g,N as h};
@@ -1 +1 @@
1
- 'use strict';var chunkDSNBMH6F_cjs=require('./chunk-DSNBMH6F.cjs'),chunk4ENNEUVX_cjs=require('./chunk-4ENNEUVX.cjs'),react$1=require('@solana/react'),react=require('react'),jsxRuntime=require('react/jsx-runtime');function K({activeConnection:n,store:i,session:e,setSession:t,maxAge:s,onAddressMismatch:r}){return react.useEffect(()=>{e&&n?.address&&e.walletAddress!==n.address&&(console.log("[QuasarSDK] Address mismatch detected, clearing session..."),t(null),r?.());},[n?.address,e,t,r]),!n?.isConnected||!i?null:jsxRuntime.jsx(p,{connectedAccount:n.connectedAccount,store:i,session:e,setSession:t,maxAge:s})}function p({connectedAccount:n,store:i,session:e,setSession:t,maxAge:s}){let r=react$1.useWalletAccountMessageSigner(n),c=react.useRef(r),d=react.useRef(e),A=react.useRef(t);react.useEffect(()=>{c.current=r;},[r]),react.useEffect(()=>{d.current=e;},[e]),react.useEffect(()=>{A.current=t;},[t]);let S=react.useCallback(async()=>{let a=i.getState().activeConnection;if(!a?.isConnected)throw new Error("[QuasarSDK] Wallet disconnected");let g=c.current;if(!g)throw new Error("[QuasarSDK] Solana Message Signer not initialized.");return chunk4ENNEUVX_cjs.k({isConnected:a.isConnected,address:a.address,chainType:"SOLANA",signer:g},{miniSession:d.current,setMiniSession:A.current},s)},[i,s]);return react.useEffect(()=>(chunkDSNBMH6F_cjs.a(S),()=>{chunkDSNBMH6F_cjs.a(null);}),[S]),null}exports.a=K;
1
+ 'use strict';var chunkUIDJZGQ7_cjs=require('./chunk-UIDJZGQ7.cjs'),chunkPQ5VGVSP_cjs=require('./chunk-PQ5VGVSP.cjs'),react$1=require('@solana/react'),react=require('react'),jsxRuntime=require('react/jsx-runtime');function P({activeConnection:n,store:i,session:e,setSession:t,maxAge:s,onAddressMismatch:r}){return react.useEffect(()=>{e&&n?.address&&e.walletAddress!==n.address&&(console.log("[QuasarSDK] Address mismatch detected, clearing session..."),t(null),r?.());},[n?.address,e,t,r]),!n?.isConnected||!i?null:jsxRuntime.jsx(p,{connectedAccount:n.connectedAccount,store:i,session:e,setSession:t,maxAge:s})}function p({connectedAccount:n,store:i,session:e,setSession:t,maxAge:s}){let r=react$1.useWalletAccountMessageSigner(n),c=react.useRef(r),d=react.useRef(e),A=react.useRef(t);react.useEffect(()=>{c.current=r;},[r]),react.useEffect(()=>{d.current=e;},[e]),react.useEffect(()=>{A.current=t;},[t]);let S=react.useCallback(async()=>{let a=i.getState().activeConnection;if(!a?.isConnected)throw new Error("[QuasarSDK] Wallet disconnected");let g=c.current;if(!g)throw new Error("[QuasarSDK] Solana Message Signer not initialized.");return chunkUIDJZGQ7_cjs.h({isConnected:a.isConnected,address:a.address,chainType:"SOLANA",signer:g},{miniSession:d.current,setMiniSession:A.current},s)},[i,s]);return react.useEffect(()=>(chunkPQ5VGVSP_cjs.b(S),()=>{chunkPQ5VGVSP_cjs.b(null);}),[S]),null}exports.a=P;
@@ -0,0 +1,2 @@
1
+ 'use strict';var t="https://api.tuwa.io",n="/v1/engine/pulsar/sync",o="/v1/engine/pulsar/history";
2
+ exports.a=t;exports.b=n;exports.c=o;
@@ -0,0 +1 @@
1
+ 'use strict';var chunkNJH5FYLU_cjs=require('./chunk-NJH5FYLU.cjs');exports.a=null;function a(e){exports.a=e;}async function o(){for(let e=0;e<15;e++){if(exports.a)return exports.a();await new Promise(n=>setTimeout(n,200));}throw new Error("[QuasarSDK] Auth helper not initialized. Ensure QuasarAuthBridge is mounted and wallet is connected.")}async function c(e){await o();let n=e||chunkNJH5FYLU_cjs.a;try{let t=await fetch(`${n}/v1/engine/monitoring/health?t=${Date.now()}`,{method:"GET",headers:{"Cache-Control":"no-cache"},cache:"no-store"});if(!t.ok)throw new Error(`[QuasarSDK] API Health check failed with status: ${t.status}`)}catch(t){throw new Error("[QuasarSDK] Quasar Cloud Engine is currently unreachable.",{cause:t})}}exports.b=a;exports.c=o;exports.d=c;
@@ -1 +1 @@
1
- 'use strict';var chunkDSNBMH6F_cjs=require('./chunk-DSNBMH6F.cjs'),chunk4ENNEUVX_cjs=require('./chunk-4ENNEUVX.cjs'),core=require('@wagmi/core'),react=require('react'),jsxRuntime=require('react/jsx-runtime');function R({activeConnection:n,store:i,wagmiConfig:r,session:e,setSession:t,maxAge:s,onAddressMismatch:o}){return react.useEffect(()=>{e&&n?.address&&e.walletAddress!==n.address&&(console.log("[QuasarSDK] Address mismatch detected, clearing session..."),t(null),o?.());},[n?.address,e,t,o]),!n?.isConnected||!i?null:jsxRuntime.jsx(S,{wagmiConfig:r,store:i,session:e,setSession:t,maxAge:s})}function S({wagmiConfig:n,store:i,session:r,setSession:e,maxAge:t}){let s=react.useRef(r),o=react.useRef(e);react.useEffect(()=>{s.current=r;},[r]),react.useEffect(()=>{o.current=e;},[e]);let l=react.useCallback(async()=>{let u=i.getState().activeConnection;if(!u?.isConnected)throw new Error("[QuasarSDK] Wallet disconnected");let d=await core.getWalletClient(n);if(!d)throw new Error("[QuasarSDK] EVM Signer not found");return chunk4ENNEUVX_cjs.k({isConnected:u.isConnected,address:u.address,chainType:"EVM",signer:d},{miniSession:s.current,setMiniSession:o.current},t)},[i,n,t]);return react.useEffect(()=>(chunkDSNBMH6F_cjs.a(l),()=>{chunkDSNBMH6F_cjs.a(null);}),[l]),null}exports.a=R;
1
+ 'use strict';var chunkUIDJZGQ7_cjs=require('./chunk-UIDJZGQ7.cjs'),chunkPQ5VGVSP_cjs=require('./chunk-PQ5VGVSP.cjs'),core=require('@wagmi/core'),react=require('react'),jsxRuntime=require('react/jsx-runtime');function D({activeConnection:n,store:i,wagmiConfig:r,session:e,setSession:t,maxAge:s,onAddressMismatch:o}){return react.useEffect(()=>{e&&n?.address&&e.walletAddress!==n.address&&(console.log("[QuasarSDK] Address mismatch detected, clearing session..."),t(null),o?.());},[n?.address,e,t,o]),!n?.isConnected||!i?null:jsxRuntime.jsx(S,{wagmiConfig:r,store:i,session:e,setSession:t,maxAge:s})}function S({wagmiConfig:n,store:i,session:r,setSession:e,maxAge:t}){let s=react.useRef(r),o=react.useRef(e);react.useEffect(()=>{s.current=r;},[r]),react.useEffect(()=>{o.current=e;},[e]);let l=react.useCallback(async()=>{let u=i.getState().activeConnection;if(!u?.isConnected)throw new Error("[QuasarSDK] Wallet disconnected");let d=await core.getWalletClient(n);if(!d)throw new Error("[QuasarSDK] EVM Signer not found");return chunkUIDJZGQ7_cjs.h({isConnected:u.isConnected,address:u.address,chainType:"EVM",signer:d},{miniSession:s.current,setMiniSession:o.current},t)},[i,n,t]);return react.useEffect(()=>(chunkPQ5VGVSP_cjs.b(l),()=>{chunkPQ5VGVSP_cjs.b(null);}),[l]),null}exports.a=D;
@@ -0,0 +1 @@
1
+ 'use strict';var zustand=require('zustand'),middleware=require('zustand/middleware');var m=(t=>(t.EVM="EVM",t.SOLANA="SOLANA",t))(m||{});var u=300*1e3,w=60*1e3,y=30*1e3;function f(e){return `Mini-Session Login: ${e}`}async function p(e){let r=new Date().toISOString(),t=f(r);if(e.chainType==="EVM"){let i=e.signer;try{return {signature:await i.signMessage({account:e.walletAddress,message:t}),timestamp:r}}catch(n){throw new Error(`[SDK] EVM signing failed: ${n.message}`,{cause:n})}}if(e.chainType==="SOLANA"){let i=e.signer,n;try{n=await import('gill');}catch(s){throw new Error('[SDK] Peer dependency "gill" is required for Solana signing.',{cause:s})}try{let a=n.getUtf8Encoder().encode(t),o;if(i.modifyAndSignMessages){let g=n.createSignableMessage(a),d=(await i.modifyAndSignMessages([g]))[0].signatures[i.address];if(!d)throw new Error(`[SDK] Signature missing for address: ${i.address}`);o=d;}else if(i.signMessages){let S=(await i.signMessages([a]))[0];if(!S?.signature)throw new Error("[SDK] Wallet returned invalid signMessages output.");o=S.signature;}else if(i.signMessage)o=await i.signMessage(a);else throw new Error("[SDK] Signer lacks message signing capabilities.");return {signature:n.getSignatureFromBytes(o),timestamp:r}}catch(s){throw new Error(`[SDK] Solana signing failed: ${s.message}`,{cause:s})}}throw new Error(`[SDK] Unsupported chain type: ${e.chainType}`)}async function v(e){let r=new Date(e.timestamp).getTime(),t=Date.now();if(isNaN(r))throw new Error("[SDK] Invalid timestamp format. Use ISO string.");let i=e.maxAge??u;if(t-r>i)throw new Error("[SDK] Signature expired. Please sign a fresh message.");if(r>t+w)throw new Error("[SDK] Timestamp is in the future. Check your system clock.");let n=f(e.timestamp);if(e.chainType==="EVM"){let s;try{s=await import('viem');}catch(a){throw new Error('[SDK] Peer dependency "viem" is required for EVM verification.',{cause:a})}return await s.verifyMessage({address:e.walletAddress,message:n,signature:e.signature})}if(e.chainType==="SOLANA"){let s;try{s=await import('gill');}catch(a){throw new Error('[SDK] Peer dependency "gill" is required for Solana verification.',{cause:a})}try{let a=s.address(e.walletAddress);return await s.verifySignatureForAddress(a,e.signature,n)}catch{return false}}return false}var c=null;function C(e="mini-session-storage"){return zustand.create()(middleware.persist(r=>({miniSession:null,setMiniSession:t=>r({miniSession:t}),clearSession:()=>r({miniSession:null})}),{name:e}))}async function N(e,r,t=u){let{isConnected:i,address:n,chainType:s,signer:a}=e;if(!i||!n)throw new Error("[SDK] Wallet not connected. Please connect your wallet first.");let o=r.miniSession;if(o&&o.walletAddress===n&&o.chainType===s){let l=Date.now(),g=new Date(o.timestamp).getTime();if(l-g<t-y)return o}return c||(c=p({signer:a,walletAddress:n,chainType:s}).then(l=>{let g={...l,chainType:s,walletAddress:n};return r.setMiniSession(g),g}).finally(()=>{c=null;})),c}exports.a=m;exports.b=u;exports.c=y;exports.d=f;exports.e=p;exports.f=v;exports.g=C;exports.h=N;
@@ -1 +1 @@
1
- import {a}from'./chunk-RFMAWFDP.js';import {k}from'./chunk-SDZRMP3Z.js';import {useWalletAccountMessageSigner}from'@solana/react';import {useEffect,useRef,useCallback}from'react';import {jsx}from'react/jsx-runtime';function K({activeConnection:n,store:i,session:e,setSession:t,maxAge:s,onAddressMismatch:r}){return useEffect(()=>{e&&n?.address&&e.walletAddress!==n.address&&(console.log("[QuasarSDK] Address mismatch detected, clearing session..."),t(null),r?.());},[n?.address,e,t,r]),!n?.isConnected||!i?null:jsx(p,{connectedAccount:n.connectedAccount,store:i,session:e,setSession:t,maxAge:s})}function p({connectedAccount:n,store:i,session:e,setSession:t,maxAge:s}){let r=useWalletAccountMessageSigner(n),c=useRef(r),d=useRef(e),A=useRef(t);useEffect(()=>{c.current=r;},[r]),useEffect(()=>{d.current=e;},[e]),useEffect(()=>{A.current=t;},[t]);let S=useCallback(async()=>{let a=i.getState().activeConnection;if(!a?.isConnected)throw new Error("[QuasarSDK] Wallet disconnected");let g=c.current;if(!g)throw new Error("[QuasarSDK] Solana Message Signer not initialized.");return k({isConnected:a.isConnected,address:a.address,chainType:"SOLANA",signer:g},{miniSession:d.current,setMiniSession:A.current},s)},[i,s]);return useEffect(()=>(a(S),()=>{a(null);}),[S]),null}export{K as a};
1
+ import {h}from'./chunk-C6JAMIC3.js';import {b}from'./chunk-7CCLRGTM.js';import {useWalletAccountMessageSigner}from'@solana/react';import {useEffect,useRef,useCallback}from'react';import {jsx}from'react/jsx-runtime';function P({activeConnection:n,store:i,session:e,setSession:t,maxAge:s,onAddressMismatch:r}){return useEffect(()=>{e&&n?.address&&e.walletAddress!==n.address&&(console.log("[QuasarSDK] Address mismatch detected, clearing session..."),t(null),r?.());},[n?.address,e,t,r]),!n?.isConnected||!i?null:jsx(p,{connectedAccount:n.connectedAccount,store:i,session:e,setSession:t,maxAge:s})}function p({connectedAccount:n,store:i,session:e,setSession:t,maxAge:s}){let r=useWalletAccountMessageSigner(n),c=useRef(r),d=useRef(e),A=useRef(t);useEffect(()=>{c.current=r;},[r]),useEffect(()=>{d.current=e;},[e]),useEffect(()=>{A.current=t;},[t]);let S=useCallback(async()=>{let a=i.getState().activeConnection;if(!a?.isConnected)throw new Error("[QuasarSDK] Wallet disconnected");let g=c.current;if(!g)throw new Error("[QuasarSDK] Solana Message Signer not initialized.");return h({isConnected:a.isConnected,address:a.address,chainType:"SOLANA",signer:g},{miniSession:d.current,setMiniSession:A.current},s)},[i,s]);return useEffect(()=>(b(S),()=>{b(null);}),[S]),null}export{P as a};
@@ -0,0 +1,2 @@
1
+ var t="https://api.tuwa.io",n="/v1/engine/pulsar/sync",o="/v1/engine/pulsar/history";
2
+ export{t as a,n as b,o as c};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var chunk4ENNEUVX_cjs=require('./chunk-4ENNEUVX.cjs'),ofetch=require('ofetch');var i=class extends Error{status;originalError;constructor(r,e,t){super(r),this.name="QuasarSDKError",this.status=e,this.originalError=t;}},o=class{secretKey;internalSecret;baseUrl;timeout;constructor(r){if(!r.secretKey)throw new Error("[Quasar SDK] Missing API Key. Provide a secretKey starting with sk_live_.");this.secretKey=r.secretKey,this.internalSecret=r.internalSecret,this.baseUrl=r.baseUrl||chunk4ENNEUVX_cjs.a,this.timeout=r.timeout||1e4;}async request(r,e={}){try{return await ofetch.ofetch(r,{baseURL:this.baseUrl,timeout:this.timeout,...e,headers:{"Content-Type":"application/json","x-tuwa-secret-key":this.secretKey,...this.internalSecret?{"x-internal-secret":this.internalSecret}:{},...e.headers}})}catch(t){throw this.buildError(t)}}buildError(r){let e=r,t=e.statusCode??e.response?.status,S=(e.data??e.response?._data)?.error??e.message??"Unknown Error";return (t===401||t===403)&&console.error("\u{1F6A8} [Quasar SDK] Auth Error. Check your Secret Key and scopes."),new i(`[Quasar SDK] Request Failed (${t}): ${S}`,t,e)}};var s=class{constructor(r){this.client=r;}async syncCreate(r,e){return this.client.request(chunk4ENNEUVX_cjs.b,{method:"POST",body:{...r,appName:e}})}async getHistory(r={}){return this.client.request(chunk4ENNEUVX_cjs.c,{method:"GET",query:{page:r.page??1,limit:r.limit??10,chainId:r.chainId,status:r.status,txKey:r.txKey,appName:r.appName,walletAddress:r.walletAddress}})}};var E={createMiniSessionMessage:chunk4ENNEUVX_cjs.g,verifyMiniSession:chunk4ENNEUVX_cjs.i,signMiniSession:chunk4ENNEUVX_cjs.h,createMiniSessionStore:chunk4ENNEUVX_cjs.j,getMiniSessionAuth:chunk4ENNEUVX_cjs.k},y=class{static utils=E;client;pulsar;constructor(r){this.client=new o(r),this.pulsar=new s(this.client);}};Object.defineProperty(exports,"BASE_API_URL",{enumerable:true,get:function(){return chunk4ENNEUVX_cjs.a}});Object.defineProperty(exports,"ChainType",{enumerable:true,get:function(){return chunk4ENNEUVX_cjs.d}});Object.defineProperty(exports,"DEFAULT_MAX_AGE",{enumerable:true,get:function(){return chunk4ENNEUVX_cjs.e}});Object.defineProperty(exports,"NETWORK_SAFETY_BUFFER",{enumerable:true,get:function(){return chunk4ENNEUVX_cjs.f}});Object.defineProperty(exports,"PULSAR_HISTORY_ENDPOINT",{enumerable:true,get:function(){return chunk4ENNEUVX_cjs.c}});Object.defineProperty(exports,"PULSAR_SYNC_ENDPOINT",{enumerable:true,get:function(){return chunk4ENNEUVX_cjs.b}});Object.defineProperty(exports,"createMiniSessionMessage",{enumerable:true,get:function(){return chunk4ENNEUVX_cjs.g}});Object.defineProperty(exports,"createMiniSessionStore",{enumerable:true,get:function(){return chunk4ENNEUVX_cjs.j}});Object.defineProperty(exports,"getMiniSessionAuth",{enumerable:true,get:function(){return chunk4ENNEUVX_cjs.k}});Object.defineProperty(exports,"signMiniSession",{enumerable:true,get:function(){return chunk4ENNEUVX_cjs.h}});Object.defineProperty(exports,"verifyMiniSession",{enumerable:true,get:function(){return chunk4ENNEUVX_cjs.i}});exports.PulsarModule=s;exports.Quasar=y;exports.QuasarSDKError=i;exports.utils=E;
1
+ 'use strict';var chunkUIDJZGQ7_cjs=require('./chunk-UIDJZGQ7.cjs'),chunkNJH5FYLU_cjs=require('./chunk-NJH5FYLU.cjs'),ofetch=require('ofetch');var i=class extends Error{status;originalError;constructor(r,e,t){super(r),this.name="QuasarSDKError",this.status=e,this.originalError=t;}},o=class{secretKey;internalSecret;baseUrl;timeout;constructor(r){if(!r.secretKey)throw new Error("[Quasar SDK] Missing API Key. Provide a secretKey starting with sk_live_.");this.secretKey=r.secretKey,this.internalSecret=r.internalSecret,this.baseUrl=r.baseUrl||chunkNJH5FYLU_cjs.a,this.timeout=r.timeout||1e4;}async request(r,e={}){try{return await ofetch.ofetch(r,{baseURL:this.baseUrl,timeout:this.timeout,...e,headers:{"Content-Type":"application/json","x-tuwa-secret-key":this.secretKey,...this.internalSecret?{"x-internal-secret":this.internalSecret}:{},...e.headers}})}catch(t){throw this.buildError(t)}}buildError(r){let e=r,t=e.statusCode??e.response?.status,S=(e.data??e.response?._data)?.error??e.message??"Unknown Error";return (t===401||t===403)&&console.error("\u{1F6A8} [Quasar SDK] Auth Error. Check your Secret Key and scopes."),new i(`[Quasar SDK] Request Failed (${t}): ${S}`,t,e)}};var s=class{constructor(r){this.client=r;}async syncCreate(r,e){return this.client.request(chunkNJH5FYLU_cjs.b,{method:"POST",body:{...r,appName:e}})}async getHistory(r={}){return this.client.request(chunkNJH5FYLU_cjs.c,{method:"GET",query:{page:r.page??1,limit:r.limit??10,chainId:r.chainId,status:r.status,txKey:r.txKey,appName:r.appName,walletAddress:r.walletAddress}})}};var E={createMiniSessionMessage:chunkUIDJZGQ7_cjs.d,verifyMiniSession:chunkUIDJZGQ7_cjs.f,signMiniSession:chunkUIDJZGQ7_cjs.e,createMiniSessionStore:chunkUIDJZGQ7_cjs.g,getMiniSessionAuth:chunkUIDJZGQ7_cjs.h},y=class{static utils=E;client;pulsar;constructor(r){this.client=new o(r),this.pulsar=new s(this.client);}};Object.defineProperty(exports,"ChainType",{enumerable:true,get:function(){return chunkUIDJZGQ7_cjs.a}});Object.defineProperty(exports,"DEFAULT_MAX_AGE",{enumerable:true,get:function(){return chunkUIDJZGQ7_cjs.b}});Object.defineProperty(exports,"NETWORK_SAFETY_BUFFER",{enumerable:true,get:function(){return chunkUIDJZGQ7_cjs.c}});Object.defineProperty(exports,"createMiniSessionMessage",{enumerable:true,get:function(){return chunkUIDJZGQ7_cjs.d}});Object.defineProperty(exports,"createMiniSessionStore",{enumerable:true,get:function(){return chunkUIDJZGQ7_cjs.g}});Object.defineProperty(exports,"getMiniSessionAuth",{enumerable:true,get:function(){return chunkUIDJZGQ7_cjs.h}});Object.defineProperty(exports,"signMiniSession",{enumerable:true,get:function(){return chunkUIDJZGQ7_cjs.e}});Object.defineProperty(exports,"verifyMiniSession",{enumerable:true,get:function(){return chunkUIDJZGQ7_cjs.f}});Object.defineProperty(exports,"BASE_API_URL",{enumerable:true,get:function(){return chunkNJH5FYLU_cjs.a}});Object.defineProperty(exports,"PULSAR_HISTORY_ENDPOINT",{enumerable:true,get:function(){return chunkNJH5FYLU_cjs.c}});Object.defineProperty(exports,"PULSAR_SYNC_ENDPOINT",{enumerable:true,get:function(){return chunkNJH5FYLU_cjs.b}});exports.PulsarModule=s;exports.Quasar=y;exports.QuasarSDKError=i;exports.utils=E;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import {k,j,h,i as i$1,g,b,c,a}from'./chunk-SDZRMP3Z.js';export{a as BASE_API_URL,d as ChainType,e as DEFAULT_MAX_AGE,f as NETWORK_SAFETY_BUFFER,c as PULSAR_HISTORY_ENDPOINT,b as PULSAR_SYNC_ENDPOINT,g as createMiniSessionMessage,j as createMiniSessionStore,k as getMiniSessionAuth,h as signMiniSession,i as verifyMiniSession}from'./chunk-SDZRMP3Z.js';import {ofetch}from'ofetch';var i=class extends Error{status;originalError;constructor(r,e,t){super(r),this.name="QuasarSDKError",this.status=e,this.originalError=t;}},o=class{secretKey;internalSecret;baseUrl;timeout;constructor(r){if(!r.secretKey)throw new Error("[Quasar SDK] Missing API Key. Provide a secretKey starting with sk_live_.");this.secretKey=r.secretKey,this.internalSecret=r.internalSecret,this.baseUrl=r.baseUrl||a,this.timeout=r.timeout||1e4;}async request(r,e={}){try{return await ofetch(r,{baseURL:this.baseUrl,timeout:this.timeout,...e,headers:{"Content-Type":"application/json","x-tuwa-secret-key":this.secretKey,...this.internalSecret?{"x-internal-secret":this.internalSecret}:{},...e.headers}})}catch(t){throw this.buildError(t)}}buildError(r){let e=r,t=e.statusCode??e.response?.status,S=(e.data??e.response?._data)?.error??e.message??"Unknown Error";return (t===401||t===403)&&console.error("\u{1F6A8} [Quasar SDK] Auth Error. Check your Secret Key and scopes."),new i(`[Quasar SDK] Request Failed (${t}): ${S}`,t,e)}};var s=class{constructor(r){this.client=r;}async syncCreate(r,e){return this.client.request(b,{method:"POST",body:{...r,appName:e}})}async getHistory(r={}){return this.client.request(c,{method:"GET",query:{page:r.page??1,limit:r.limit??10,chainId:r.chainId,status:r.status,txKey:r.txKey,appName:r.appName,walletAddress:r.walletAddress}})}};var E={createMiniSessionMessage:g,verifyMiniSession:i$1,signMiniSession:h,createMiniSessionStore:j,getMiniSessionAuth:k},y=class{static utils=E;client;pulsar;constructor(r){this.client=new o(r),this.pulsar=new s(this.client);}};export{s as PulsarModule,y as Quasar,i as QuasarSDKError,E as utils};
1
+ import {h,g,e,f,d}from'./chunk-C6JAMIC3.js';export{a as ChainType,b as DEFAULT_MAX_AGE,c as NETWORK_SAFETY_BUFFER,d as createMiniSessionMessage,g as createMiniSessionStore,h as getMiniSessionAuth,e as signMiniSession,f as verifyMiniSession}from'./chunk-C6JAMIC3.js';import {b,c,a}from'./chunk-YPUBFZPR.js';export{a as BASE_API_URL,c as PULSAR_HISTORY_ENDPOINT,b as PULSAR_SYNC_ENDPOINT}from'./chunk-YPUBFZPR.js';import {ofetch}from'ofetch';var i=class extends Error{status;originalError;constructor(r,e,t){super(r),this.name="QuasarSDKError",this.status=e,this.originalError=t;}},o=class{secretKey;internalSecret;baseUrl;timeout;constructor(r){if(!r.secretKey)throw new Error("[Quasar SDK] Missing API Key. Provide a secretKey starting with sk_live_.");this.secretKey=r.secretKey,this.internalSecret=r.internalSecret,this.baseUrl=r.baseUrl||a,this.timeout=r.timeout||1e4;}async request(r,e={}){try{return await ofetch(r,{baseURL:this.baseUrl,timeout:this.timeout,...e,headers:{"Content-Type":"application/json","x-tuwa-secret-key":this.secretKey,...this.internalSecret?{"x-internal-secret":this.internalSecret}:{},...e.headers}})}catch(t){throw this.buildError(t)}}buildError(r){let e=r,t=e.statusCode??e.response?.status,S=(e.data??e.response?._data)?.error??e.message??"Unknown Error";return (t===401||t===403)&&console.error("\u{1F6A8} [Quasar SDK] Auth Error. Check your Secret Key and scopes."),new i(`[Quasar SDK] Request Failed (${t}): ${S}`,t,e)}};var s=class{constructor(r){this.client=r;}async syncCreate(r,e){return this.client.request(b,{method:"POST",body:{...r,appName:e}})}async getHistory(r={}){return this.client.request(c,{method:"GET",query:{page:r.page??1,limit:r.limit??10,chainId:r.chainId,status:r.status,txKey:r.txKey,appName:r.appName,walletAddress:r.walletAddress}})}};var E={createMiniSessionMessage:d,verifyMiniSession:f,signMiniSession:e,createMiniSessionStore:g,getMiniSessionAuth:h},y=class{static utils=E;client;pulsar;constructor(r){this.client=new o(r),this.pulsar=new s(this.client);}};export{s as PulsarModule,y as Quasar,i as QuasarSDKError,E as utils};
@@ -1 +1 @@
1
- 'use strict';var chunkHNYICVQP_cjs=require('../chunk-HNYICVQP.cjs'),chunkDSNBMH6F_cjs=require('../chunk-DSNBMH6F.cjs');require('../chunk-4ENNEUVX.cjs');Object.defineProperty(exports,"QuasarEvmAuthBridge",{enumerable:true,get:function(){return chunkHNYICVQP_cjs.a}});Object.defineProperty(exports,"getMiniSessionAuth",{enumerable:true,get:function(){return chunkDSNBMH6F_cjs.b}});
1
+ 'use strict';var chunkQSFNXJ4T_cjs=require('../chunk-QSFNXJ4T.cjs');require('../chunk-UIDJZGQ7.cjs');var chunkPQ5VGVSP_cjs=require('../chunk-PQ5VGVSP.cjs');require('../chunk-NJH5FYLU.cjs');Object.defineProperty(exports,"QuasarEvmAuthBridge",{enumerable:true,get:function(){return chunkQSFNXJ4T_cjs.a}});Object.defineProperty(exports,"getMiniSessionAuth",{enumerable:true,get:function(){return chunkPQ5VGVSP_cjs.c}});Object.defineProperty(exports,"preFlightTxCheck",{enumerable:true,get:function(){return chunkPQ5VGVSP_cjs.d}});
@@ -2,8 +2,8 @@ import * as react from 'react';
2
2
  import { Config } from '@wagmi/core';
3
3
  import { StoreApi } from 'zustand';
4
4
  import { b as MiniSessionAuth } from '../types-C4cwIvHT.cjs';
5
- import { Q as QuasarActiveConnection } from '../shared-BhkyjcXA.cjs';
6
- export { g as getMiniSessionAuth } from '../shared-BhkyjcXA.cjs';
5
+ import { QuasarActiveConnection } from './shared.cjs';
6
+ export { getMiniSessionAuth, preFlightTxCheck } from './shared.cjs';
7
7
 
8
8
  /**
9
9
  * Props for the QuasarEvmAuthBridge component.
@@ -2,8 +2,8 @@ import * as react from 'react';
2
2
  import { Config } from '@wagmi/core';
3
3
  import { StoreApi } from 'zustand';
4
4
  import { b as MiniSessionAuth } from '../types-C4cwIvHT.js';
5
- import { Q as QuasarActiveConnection } from '../shared-Dr4Tguwg.js';
6
- export { g as getMiniSessionAuth } from '../shared-Dr4Tguwg.js';
5
+ import { QuasarActiveConnection } from './shared.js';
6
+ export { getMiniSessionAuth, preFlightTxCheck } from './shared.js';
7
7
 
8
8
  /**
9
9
  * Props for the QuasarEvmAuthBridge component.
package/dist/react/evm.js CHANGED
@@ -1 +1 @@
1
- export{a as QuasarEvmAuthBridge}from'../chunk-GFQL5UBA.js';export{b as getMiniSessionAuth}from'../chunk-RFMAWFDP.js';import'../chunk-SDZRMP3Z.js';
1
+ export{a as QuasarEvmAuthBridge}from'../chunk-7P226H4W.js';import'../chunk-C6JAMIC3.js';export{c as getMiniSessionAuth,d as preFlightTxCheck}from'../chunk-7CCLRGTM.js';import'../chunk-YPUBFZPR.js';
@@ -0,0 +1 @@
1
+ 'use strict';var chunkPQ5VGVSP_cjs=require('../chunk-PQ5VGVSP.cjs');require('../chunk-NJH5FYLU.cjs');Object.defineProperty(exports,"authHelperReference",{enumerable:true,get:function(){return chunkPQ5VGVSP_cjs.a}});Object.defineProperty(exports,"getMiniSessionAuth",{enumerable:true,get:function(){return chunkPQ5VGVSP_cjs.c}});Object.defineProperty(exports,"preFlightTxCheck",{enumerable:true,get:function(){return chunkPQ5VGVSP_cjs.d}});Object.defineProperty(exports,"setAuthHelperReference",{enumerable:true,get:function(){return chunkPQ5VGVSP_cjs.b}});
@@ -1,4 +1,4 @@
1
- import { b as MiniSessionAuth } from './types-C4cwIvHT.js';
1
+ import { b as MiniSessionAuth } from '../types-C4cwIvHT.cjs';
2
2
 
3
3
  /**
4
4
  * @module react/shared
@@ -21,6 +21,20 @@ interface QuasarActiveConnection {
21
21
  /** The UiWalletAccount object (required for Solana signing). */
22
22
  connectedAccount?: any;
23
23
  }
24
+ /**
25
+ * A static reference to the current auth helper.
26
+ * This allows non-React code (like Pulsar sync) to trigger authentication.
27
+ *
28
+ * @internal
29
+ */
30
+ declare let authHelperReference: (() => Promise<MiniSessionAuth>) | null;
31
+ /**
32
+ * Sets the static reference to the authentication helper.
33
+ *
34
+ * @param ref - The authentication helper callback function, or null.
35
+ * @internal
36
+ */
37
+ declare function setAuthHelperReference(ref: (() => Promise<MiniSessionAuth>) | null): void;
24
38
  /**
25
39
  * Static utility to retrieve or trigger a Mini-Session authentication.
26
40
  * This is the primary way for services outside the React tree to get an auth token.
@@ -42,4 +56,4 @@ declare function getMiniSessionAuth(): Promise<MiniSessionAuth>;
42
56
  */
43
57
  declare function preFlightTxCheck(customApiUrl?: string): Promise<void>;
44
58
 
45
- export { type QuasarActiveConnection as Q, getMiniSessionAuth as g, preFlightTxCheck as p };
59
+ export { type QuasarActiveConnection, authHelperReference, getMiniSessionAuth, preFlightTxCheck, setAuthHelperReference };
@@ -1,4 +1,4 @@
1
- import { b as MiniSessionAuth } from './types-C4cwIvHT.cjs';
1
+ import { b as MiniSessionAuth } from '../types-C4cwIvHT.js';
2
2
 
3
3
  /**
4
4
  * @module react/shared
@@ -21,6 +21,20 @@ interface QuasarActiveConnection {
21
21
  /** The UiWalletAccount object (required for Solana signing). */
22
22
  connectedAccount?: any;
23
23
  }
24
+ /**
25
+ * A static reference to the current auth helper.
26
+ * This allows non-React code (like Pulsar sync) to trigger authentication.
27
+ *
28
+ * @internal
29
+ */
30
+ declare let authHelperReference: (() => Promise<MiniSessionAuth>) | null;
31
+ /**
32
+ * Sets the static reference to the authentication helper.
33
+ *
34
+ * @param ref - The authentication helper callback function, or null.
35
+ * @internal
36
+ */
37
+ declare function setAuthHelperReference(ref: (() => Promise<MiniSessionAuth>) | null): void;
24
38
  /**
25
39
  * Static utility to retrieve or trigger a Mini-Session authentication.
26
40
  * This is the primary way for services outside the React tree to get an auth token.
@@ -42,4 +56,4 @@ declare function getMiniSessionAuth(): Promise<MiniSessionAuth>;
42
56
  */
43
57
  declare function preFlightTxCheck(customApiUrl?: string): Promise<void>;
44
58
 
45
- export { type QuasarActiveConnection as Q, getMiniSessionAuth as g, preFlightTxCheck as p };
59
+ export { type QuasarActiveConnection, authHelperReference, getMiniSessionAuth, preFlightTxCheck, setAuthHelperReference };
@@ -0,0 +1 @@
1
+ export{a as authHelperReference,c as getMiniSessionAuth,d as preFlightTxCheck,b as setAuthHelperReference}from'../chunk-7CCLRGTM.js';import'../chunk-YPUBFZPR.js';
@@ -1 +1 @@
1
- 'use strict';var chunkG5NM7VXK_cjs=require('../chunk-G5NM7VXK.cjs'),chunkDSNBMH6F_cjs=require('../chunk-DSNBMH6F.cjs');require('../chunk-4ENNEUVX.cjs');Object.defineProperty(exports,"QuasarSolanaAuthBridge",{enumerable:true,get:function(){return chunkG5NM7VXK_cjs.a}});Object.defineProperty(exports,"getMiniSessionAuth",{enumerable:true,get:function(){return chunkDSNBMH6F_cjs.b}});
1
+ 'use strict';var chunkIHRZAKXC_cjs=require('../chunk-IHRZAKXC.cjs');require('../chunk-UIDJZGQ7.cjs');var chunkPQ5VGVSP_cjs=require('../chunk-PQ5VGVSP.cjs');require('../chunk-NJH5FYLU.cjs');Object.defineProperty(exports,"QuasarSolanaAuthBridge",{enumerable:true,get:function(){return chunkIHRZAKXC_cjs.a}});Object.defineProperty(exports,"getMiniSessionAuth",{enumerable:true,get:function(){return chunkPQ5VGVSP_cjs.c}});Object.defineProperty(exports,"preFlightTxCheck",{enumerable:true,get:function(){return chunkPQ5VGVSP_cjs.d}});
@@ -1,8 +1,8 @@
1
1
  import * as react from 'react';
2
2
  import { StoreApi } from 'zustand';
3
3
  import { b as MiniSessionAuth } from '../types-C4cwIvHT.cjs';
4
- import { Q as QuasarActiveConnection } from '../shared-BhkyjcXA.cjs';
5
- export { g as getMiniSessionAuth } from '../shared-BhkyjcXA.cjs';
4
+ import { QuasarActiveConnection } from './shared.cjs';
5
+ export { getMiniSessionAuth, preFlightTxCheck } from './shared.cjs';
6
6
 
7
7
  /**
8
8
  * Props for the QuasarSolanaAuthBridge component.
@@ -1,8 +1,8 @@
1
1
  import * as react from 'react';
2
2
  import { StoreApi } from 'zustand';
3
3
  import { b as MiniSessionAuth } from '../types-C4cwIvHT.js';
4
- import { Q as QuasarActiveConnection } from '../shared-Dr4Tguwg.js';
5
- export { g as getMiniSessionAuth } from '../shared-Dr4Tguwg.js';
4
+ import { QuasarActiveConnection } from './shared.js';
5
+ export { getMiniSessionAuth, preFlightTxCheck } from './shared.js';
6
6
 
7
7
  /**
8
8
  * Props for the QuasarSolanaAuthBridge component.
@@ -1 +1 @@
1
- export{a as QuasarSolanaAuthBridge}from'../chunk-GV5UDXAS.js';export{b as getMiniSessionAuth}from'../chunk-RFMAWFDP.js';import'../chunk-SDZRMP3Z.js';
1
+ export{a as QuasarSolanaAuthBridge}from'../chunk-W3JF2RIE.js';import'../chunk-C6JAMIC3.js';export{c as getMiniSessionAuth,d as preFlightTxCheck}from'../chunk-7CCLRGTM.js';import'../chunk-YPUBFZPR.js';
package/dist/react.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var chunkHNYICVQP_cjs=require('./chunk-HNYICVQP.cjs'),chunkG5NM7VXK_cjs=require('./chunk-G5NM7VXK.cjs'),chunkDSNBMH6F_cjs=require('./chunk-DSNBMH6F.cjs');require('./chunk-4ENNEUVX.cjs');var react=require('react'),jsxRuntime=require('react/jsx-runtime');function x({activeConnection:r,store:o,wagmiConfig:d,session:i,setSession:e,maxAge:n,onAddressMismatch:s}){let m=typeof r?.chainId=="string"?"SOLANA":"EVM";return react.useEffect(()=>{i&&r?.address&&i.walletAddress!==r.address&&(console.log("[QuasarSDK] Address mismatch detected, clearing session..."),e(null),s?.());},[r?.address,i,e,s]),!r?.isConnected||!o?null:m==="SOLANA"?jsxRuntime.jsx(chunkG5NM7VXK_cjs.a,{activeConnection:r,store:o,session:i,setSession:e,maxAge:n}):jsxRuntime.jsx(chunkHNYICVQP_cjs.a,{activeConnection:r,store:o,wagmiConfig:d,session:i,setSession:e,maxAge:n})}Object.defineProperty(exports,"getMiniSessionAuth",{enumerable:true,get:function(){return chunkDSNBMH6F_cjs.b}});Object.defineProperty(exports,"preFlightTxCheck",{enumerable:true,get:function(){return chunkDSNBMH6F_cjs.c}});exports.QuasarAuthBridge=x;
1
+ 'use strict';var chunkQSFNXJ4T_cjs=require('./chunk-QSFNXJ4T.cjs'),chunkIHRZAKXC_cjs=require('./chunk-IHRZAKXC.cjs');require('./chunk-UIDJZGQ7.cjs');var chunkPQ5VGVSP_cjs=require('./chunk-PQ5VGVSP.cjs');require('./chunk-NJH5FYLU.cjs');var react=require('react'),jsxRuntime=require('react/jsx-runtime');function x({activeConnection:r,store:o,wagmiConfig:d,session:i,setSession:e,maxAge:n,onAddressMismatch:s}){let m=typeof r?.chainId=="string"?"SOLANA":"EVM";return react.useEffect(()=>{i&&r?.address&&i.walletAddress!==r.address&&(console.log("[QuasarSDK] Address mismatch detected, clearing session..."),e(null),s?.());},[r?.address,i,e,s]),!r?.isConnected||!o?null:m==="SOLANA"?jsxRuntime.jsx(chunkIHRZAKXC_cjs.a,{activeConnection:r,store:o,session:i,setSession:e,maxAge:n}):jsxRuntime.jsx(chunkQSFNXJ4T_cjs.a,{activeConnection:r,store:o,wagmiConfig:d,session:i,setSession:e,maxAge:n})}Object.defineProperty(exports,"getMiniSessionAuth",{enumerable:true,get:function(){return chunkPQ5VGVSP_cjs.c}});Object.defineProperty(exports,"preFlightTxCheck",{enumerable:true,get:function(){return chunkPQ5VGVSP_cjs.d}});exports.QuasarAuthBridge=x;
package/dist/react.d.cts CHANGED
@@ -2,8 +2,8 @@ import * as react from 'react';
2
2
  import { Config } from '@wagmi/core';
3
3
  import { StoreApi } from 'zustand';
4
4
  import { b as MiniSessionAuth } from './types-C4cwIvHT.cjs';
5
- import { Q as QuasarActiveConnection } from './shared-BhkyjcXA.cjs';
6
- export { g as getMiniSessionAuth, p as preFlightTxCheck } from './shared-BhkyjcXA.cjs';
5
+ import { QuasarActiveConnection } from './react/shared.cjs';
6
+ export { getMiniSessionAuth, preFlightTxCheck } from './react/shared.cjs';
7
7
 
8
8
  /**
9
9
  * Props for the unified QuasarAuthBridge component.
package/dist/react.d.ts CHANGED
@@ -2,8 +2,8 @@ import * as react from 'react';
2
2
  import { Config } from '@wagmi/core';
3
3
  import { StoreApi } from 'zustand';
4
4
  import { b as MiniSessionAuth } from './types-C4cwIvHT.js';
5
- import { Q as QuasarActiveConnection } from './shared-Dr4Tguwg.js';
6
- export { g as getMiniSessionAuth, p as preFlightTxCheck } from './shared-Dr4Tguwg.js';
5
+ import { QuasarActiveConnection } from './react/shared.js';
6
+ export { getMiniSessionAuth, preFlightTxCheck } from './react/shared.js';
7
7
 
8
8
  /**
9
9
  * Props for the unified QuasarAuthBridge component.
package/dist/react.js CHANGED
@@ -1 +1 @@
1
- import {a as a$1}from'./chunk-GFQL5UBA.js';import {a}from'./chunk-GV5UDXAS.js';export{b as getMiniSessionAuth,c as preFlightTxCheck}from'./chunk-RFMAWFDP.js';import'./chunk-SDZRMP3Z.js';import {useEffect}from'react';import {jsx}from'react/jsx-runtime';function x({activeConnection:r,store:o,wagmiConfig:d,session:i,setSession:e,maxAge:n,onAddressMismatch:s}){let m=typeof r?.chainId=="string"?"SOLANA":"EVM";return useEffect(()=>{i&&r?.address&&i.walletAddress!==r.address&&(console.log("[QuasarSDK] Address mismatch detected, clearing session..."),e(null),s?.());},[r?.address,i,e,s]),!r?.isConnected||!o?null:m==="SOLANA"?jsx(a,{activeConnection:r,store:o,session:i,setSession:e,maxAge:n}):jsx(a$1,{activeConnection:r,store:o,wagmiConfig:d,session:i,setSession:e,maxAge:n})}export{x as QuasarAuthBridge};
1
+ import {a as a$1}from'./chunk-7P226H4W.js';import {a}from'./chunk-W3JF2RIE.js';import'./chunk-C6JAMIC3.js';export{c as getMiniSessionAuth,d as preFlightTxCheck}from'./chunk-7CCLRGTM.js';import'./chunk-YPUBFZPR.js';import {useEffect}from'react';import {jsx}from'react/jsx-runtime';function x({activeConnection:r,store:o,wagmiConfig:d,session:i,setSession:e,maxAge:n,onAddressMismatch:s}){let m=typeof r?.chainId=="string"?"SOLANA":"EVM";return useEffect(()=>{i&&r?.address&&i.walletAddress!==r.address&&(console.log("[QuasarSDK] Address mismatch detected, clearing session..."),e(null),s?.());},[r?.address,i,e,s]),!r?.isConnected||!o?null:m==="SOLANA"?jsx(a,{activeConnection:r,store:o,session:i,setSession:e,maxAge:n}):jsx(a$1,{activeConnection:r,store:o,wagmiConfig:d,session:i,setSession:e,maxAge:n})}export{x as QuasarAuthBridge};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tuwaio/quasar-sdk",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "private": false,
5
5
  "author": "Oleksandr Tkach",
6
6
  "license": "Apache-2.0",
@@ -29,6 +29,11 @@
29
29
  "types": "./dist/react/solana.d.ts",
30
30
  "import": "./dist/react/solana.js",
31
31
  "require": "./dist/react/solana.cjs"
32
+ },
33
+ "./react/shared": {
34
+ "types": "./dist/react/shared.d.ts",
35
+ "import": "./dist/react/shared.js",
36
+ "require": "./dist/react/shared.cjs"
32
37
  }
33
38
  },
34
39
  "publishConfig": {
@@ -1,2 +0,0 @@
1
- 'use strict';var zustand=require('zustand'),middleware=require('zustand/middleware');var E="https://api.tuwa.io",x="/v1/engine/pulsar/sync",T="/v1/engine/pulsar/history";var m=(t=>(t.EVM="EVM",t.SOLANA="SOLANA",t))(m||{});var u=300*1e3,w=60*1e3,y=30*1e3;function p(e){return `Mini-Session Login: ${e}`}async function f(e){let r=new Date().toISOString(),t=p(r);if(e.chainType==="EVM"){let i=e.signer;try{return {signature:await i.signMessage({account:e.walletAddress,message:t}),timestamp:r}}catch(n){throw new Error(`[SDK] EVM signing failed: ${n.message}`,{cause:n})}}if(e.chainType==="SOLANA"){let i=e.signer,n;try{n=await import('gill');}catch(s){throw new Error('[SDK] Peer dependency "gill" is required for Solana signing.',{cause:s})}try{let a=n.getUtf8Encoder().encode(t),o;if(i.modifyAndSignMessages){let g=n.createSignableMessage(a),d=(await i.modifyAndSignMessages([g]))[0].signatures[i.address];if(!d)throw new Error(`[SDK] Signature missing for address: ${i.address}`);o=d;}else if(i.signMessages){let S=(await i.signMessages([a]))[0];if(!S?.signature)throw new Error("[SDK] Wallet returned invalid signMessages output.");o=S.signature;}else if(i.signMessage)o=await i.signMessage(a);else throw new Error("[SDK] Signer lacks message signing capabilities.");return {signature:n.getSignatureFromBytes(o),timestamp:r}}catch(s){throw new Error(`[SDK] Solana signing failed: ${s.message}`,{cause:s})}}throw new Error(`[SDK] Unsupported chain type: ${e.chainType}`)}async function N(e){let r=new Date(e.timestamp).getTime(),t=Date.now();if(isNaN(r))throw new Error("[SDK] Invalid timestamp format. Use ISO string.");let i=e.maxAge??u;if(t-r>i)throw new Error("[SDK] Signature expired. Please sign a fresh message.");if(r>t+w)throw new Error("[SDK] Timestamp is in the future. Check your system clock.");let n=p(e.timestamp);if(e.chainType==="EVM"){let s;try{s=await import('viem');}catch(a){throw new Error('[SDK] Peer dependency "viem" is required for EVM verification.',{cause:a})}return await s.verifyMessage({address:e.walletAddress,message:n,signature:e.signature})}if(e.chainType==="SOLANA"){let s;try{s=await import('gill');}catch(a){throw new Error('[SDK] Peer dependency "gill" is required for Solana verification.',{cause:a})}try{let a=s.address(e.walletAddress);return await s.verifySignatureForAddress(a,e.signature,n)}catch{return false}}return false}var c=null;function L(e="mini-session-storage"){return zustand.create()(middleware.persist(r=>({miniSession:null,setMiniSession:t=>r({miniSession:t}),clearSession:()=>r({miniSession:null})}),{name:e}))}async function I(e,r,t=u){let{isConnected:i,address:n,chainType:s,signer:a}=e;if(!i||!n)throw new Error("[SDK] Wallet not connected. Please connect your wallet first.");let o=r.miniSession;if(o&&o.walletAddress===n&&o.chainType===s){let l=Date.now(),g=new Date(o.timestamp).getTime();if(l-g<t-y)return o}return c||(c=f({signer:a,walletAddress:n,chainType:s}).then(l=>{let g={...l,chainType:s,walletAddress:n};return r.setMiniSession(g),g}).finally(()=>{c=null;})),c}
2
- exports.a=E;exports.b=x;exports.c=T;exports.d=m;exports.e=u;exports.f=y;exports.g=p;exports.h=f;exports.i=N;exports.j=L;exports.k=I;
@@ -1 +0,0 @@
1
- 'use strict';var chunk4ENNEUVX_cjs=require('./chunk-4ENNEUVX.cjs');var r=null;function a(e){r=e;}async function o(){for(let e=0;e<15;e++){if(r)return r();await new Promise(n=>setTimeout(n,200));}throw new Error("[QuasarSDK] Auth helper not initialized. Ensure QuasarAuthBridge is mounted and wallet is connected.")}async function c(e){await o();let n=e||chunk4ENNEUVX_cjs.a;try{let t=await fetch(`${n}/v1/engine/health?t=${Date.now()}`,{method:"GET",headers:{"Cache-Control":"no-cache"},cache:"no-store"});if(!t.ok)throw new Error(`[QuasarSDK] API Health check failed with status: ${t.status}`)}catch(t){throw new Error("[QuasarSDK] Quasar Cloud Engine is currently unreachable.",{cause:t})}}exports.a=a;exports.b=o;exports.c=c;
@@ -1 +0,0 @@
1
- import {a as a$1}from'./chunk-SDZRMP3Z.js';var r=null;function a(e){r=e;}async function o(){for(let e=0;e<15;e++){if(r)return r();await new Promise(n=>setTimeout(n,200));}throw new Error("[QuasarSDK] Auth helper not initialized. Ensure QuasarAuthBridge is mounted and wallet is connected.")}async function c(e){await o();let n=e||a$1;try{let t=await fetch(`${n}/v1/engine/health?t=${Date.now()}`,{method:"GET",headers:{"Cache-Control":"no-cache"},cache:"no-store"});if(!t.ok)throw new Error(`[QuasarSDK] API Health check failed with status: ${t.status}`)}catch(t){throw new Error("[QuasarSDK] Quasar Cloud Engine is currently unreachable.",{cause:t})}}export{a,o as b,c};
@@ -1,2 +0,0 @@
1
- import {create}from'zustand';import {persist}from'zustand/middleware';var E="https://api.tuwa.io",x="/v1/engine/pulsar/sync",T="/v1/engine/pulsar/history";var m=(t=>(t.EVM="EVM",t.SOLANA="SOLANA",t))(m||{});var u=300*1e3,w=60*1e3,y=30*1e3;function p(e){return `Mini-Session Login: ${e}`}async function f(e){let r=new Date().toISOString(),t=p(r);if(e.chainType==="EVM"){let i=e.signer;try{return {signature:await i.signMessage({account:e.walletAddress,message:t}),timestamp:r}}catch(n){throw new Error(`[SDK] EVM signing failed: ${n.message}`,{cause:n})}}if(e.chainType==="SOLANA"){let i=e.signer,n;try{n=await import('gill');}catch(s){throw new Error('[SDK] Peer dependency "gill" is required for Solana signing.',{cause:s})}try{let a=n.getUtf8Encoder().encode(t),o;if(i.modifyAndSignMessages){let g=n.createSignableMessage(a),d=(await i.modifyAndSignMessages([g]))[0].signatures[i.address];if(!d)throw new Error(`[SDK] Signature missing for address: ${i.address}`);o=d;}else if(i.signMessages){let S=(await i.signMessages([a]))[0];if(!S?.signature)throw new Error("[SDK] Wallet returned invalid signMessages output.");o=S.signature;}else if(i.signMessage)o=await i.signMessage(a);else throw new Error("[SDK] Signer lacks message signing capabilities.");return {signature:n.getSignatureFromBytes(o),timestamp:r}}catch(s){throw new Error(`[SDK] Solana signing failed: ${s.message}`,{cause:s})}}throw new Error(`[SDK] Unsupported chain type: ${e.chainType}`)}async function N(e){let r=new Date(e.timestamp).getTime(),t=Date.now();if(isNaN(r))throw new Error("[SDK] Invalid timestamp format. Use ISO string.");let i=e.maxAge??u;if(t-r>i)throw new Error("[SDK] Signature expired. Please sign a fresh message.");if(r>t+w)throw new Error("[SDK] Timestamp is in the future. Check your system clock.");let n=p(e.timestamp);if(e.chainType==="EVM"){let s;try{s=await import('viem');}catch(a){throw new Error('[SDK] Peer dependency "viem" is required for EVM verification.',{cause:a})}return await s.verifyMessage({address:e.walletAddress,message:n,signature:e.signature})}if(e.chainType==="SOLANA"){let s;try{s=await import('gill');}catch(a){throw new Error('[SDK] Peer dependency "gill" is required for Solana verification.',{cause:a})}try{let a=s.address(e.walletAddress);return await s.verifySignatureForAddress(a,e.signature,n)}catch{return false}}return false}var c=null;function L(e="mini-session-storage"){return create()(persist(r=>({miniSession:null,setMiniSession:t=>r({miniSession:t}),clearSession:()=>r({miniSession:null})}),{name:e}))}async function I(e,r,t=u){let{isConnected:i,address:n,chainType:s,signer:a}=e;if(!i||!n)throw new Error("[SDK] Wallet not connected. Please connect your wallet first.");let o=r.miniSession;if(o&&o.walletAddress===n&&o.chainType===s){let l=Date.now(),g=new Date(o.timestamp).getTime();if(l-g<t-y)return o}return c||(c=f({signer:a,walletAddress:n,chainType:s}).then(l=>{let g={...l,chainType:s,walletAddress:n};return r.setMiniSession(g),g}).finally(()=>{c=null;})),c}
2
- export{E as a,x as b,T as c,m as d,u as e,y as f,p as g,f as h,N as i,L as j,I as k};