@routstr/sdk 0.1.3 → 0.1.5

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.
package/dist/index.d.mts CHANGED
@@ -6,7 +6,8 @@ export { MintDiscovery, ModelManagerConfig } from './discovery/index.mjs';
6
6
  import { W as WalletAdapter, S as StorageAdapter, P as ProviderRegistry } from './interfaces-B85Wx7ni.mjs';
7
7
  export { A as ApiKeyEntry, C as ChildKeyEntry, R as RoutstrClientOptions, a as StreamingCallbacks } from './interfaces-B85Wx7ni.mjs';
8
8
  export { BalanceManager, CashuSpender, CreateProviderTokenOptions, ProviderTokenResult, RefundApiKeyOptions, RefundOptions, SpendOptions, TopUpOptions } from './wallet/index.mjs';
9
- export { AlertLevel, DebugLevel, FetchOptions, ModelProviderPrice, ProviderManager, RouteRequestParams, RoutstrClient, RoutstrClientMode, StreamCallbacks, StreamProcessor } from './client/index.mjs';
9
+ import { DebugLevel } from './client/index.mjs';
10
+ export { AlertLevel, FetchOptions, ModelProviderPrice, ProviderManager, RouteRequestParams, RoutstrClient, RoutstrClientMode, StreamCallbacks, StreamProcessor } from './client/index.mjs';
10
11
  export { SDK_STORAGE_KEYS, SdkStore, StorageDriver, createDiscoveryAdapterFromStore, createIndexedDBDriver, createMemoryDriver, createProviderRegistryFromStore, createSdkStore, createSqliteDriver, createStorageAdapterFromStore, getDefaultDiscoveryAdapter, getDefaultProviderRegistry, getDefaultSdkDriver, getDefaultSdkStore, getDefaultStorageAdapter, localStorageDriver } from './storage/index.mjs';
11
12
  import 'zustand/vanilla';
12
13
 
@@ -141,6 +142,8 @@ interface RouteRequestOptions {
141
142
  forceRefresh?: boolean;
142
143
  /** Optional: pre-initialized ModelManager (skips bootstrap if provided) */
143
144
  modelManager?: ModelManager;
145
+ /** Optional: set RoutstrClient debug level */
146
+ debugLevel?: DebugLevel;
144
147
  }
145
148
  /**
146
149
  * Result from routeRequests function
@@ -179,4 +182,4 @@ interface RouteRequestResult {
179
182
  */
180
183
  declare function routeRequests(options: RouteRequestOptions): Promise<Response>;
181
184
 
182
- export { DiscoveryAdapter, FailoverError, InsufficientBalanceError, MintDiscoveryError, MintUnreachableError, Model, ModelManager, ModelNotFoundError, NoProvidersAvailableError, ProviderBootstrapError, type ProviderDirectoryEntry, ProviderError, ProviderRegistry, type RouteRequestOptions, type RouteRequestResult, StorageAdapter, StreamingError, TokenOperationError, WalletAdapter, filterBaseUrlsForTor, getProviderEndpoints, isOnionUrl, isTorContext, normalizeProviderUrl, routeRequests };
185
+ export { DebugLevel, DiscoveryAdapter, FailoverError, InsufficientBalanceError, MintDiscoveryError, MintUnreachableError, Model, ModelManager, ModelNotFoundError, NoProvidersAvailableError, ProviderBootstrapError, type ProviderDirectoryEntry, ProviderError, ProviderRegistry, type RouteRequestOptions, type RouteRequestResult, StorageAdapter, StreamingError, TokenOperationError, WalletAdapter, filterBaseUrlsForTor, getProviderEndpoints, isOnionUrl, isTorContext, normalizeProviderUrl, routeRequests };
package/dist/index.d.ts CHANGED
@@ -6,7 +6,8 @@ export { MintDiscovery, ModelManagerConfig } from './discovery/index.js';
6
6
  import { W as WalletAdapter, S as StorageAdapter, P as ProviderRegistry } from './interfaces-BVNyAmKu.js';
7
7
  export { A as ApiKeyEntry, C as ChildKeyEntry, R as RoutstrClientOptions, a as StreamingCallbacks } from './interfaces-BVNyAmKu.js';
8
8
  export { BalanceManager, CashuSpender, CreateProviderTokenOptions, ProviderTokenResult, RefundApiKeyOptions, RefundOptions, SpendOptions, TopUpOptions } from './wallet/index.js';
9
- export { AlertLevel, DebugLevel, FetchOptions, ModelProviderPrice, ProviderManager, RouteRequestParams, RoutstrClient, RoutstrClientMode, StreamCallbacks, StreamProcessor } from './client/index.js';
9
+ import { DebugLevel } from './client/index.js';
10
+ export { AlertLevel, FetchOptions, ModelProviderPrice, ProviderManager, RouteRequestParams, RoutstrClient, RoutstrClientMode, StreamCallbacks, StreamProcessor } from './client/index.js';
10
11
  export { SDK_STORAGE_KEYS, SdkStore, StorageDriver, createDiscoveryAdapterFromStore, createIndexedDBDriver, createMemoryDriver, createProviderRegistryFromStore, createSdkStore, createSqliteDriver, createStorageAdapterFromStore, getDefaultDiscoveryAdapter, getDefaultProviderRegistry, getDefaultSdkDriver, getDefaultSdkStore, getDefaultStorageAdapter, localStorageDriver } from './storage/index.js';
11
12
  import 'zustand/vanilla';
12
13
 
@@ -141,6 +142,8 @@ interface RouteRequestOptions {
141
142
  forceRefresh?: boolean;
142
143
  /** Optional: pre-initialized ModelManager (skips bootstrap if provided) */
143
144
  modelManager?: ModelManager;
145
+ /** Optional: set RoutstrClient debug level */
146
+ debugLevel?: DebugLevel;
144
147
  }
145
148
  /**
146
149
  * Result from routeRequests function
@@ -179,4 +182,4 @@ interface RouteRequestResult {
179
182
  */
180
183
  declare function routeRequests(options: RouteRequestOptions): Promise<Response>;
181
184
 
182
- export { DiscoveryAdapter, FailoverError, InsufficientBalanceError, MintDiscoveryError, MintUnreachableError, Model, ModelManager, ModelNotFoundError, NoProvidersAvailableError, ProviderBootstrapError, type ProviderDirectoryEntry, ProviderError, ProviderRegistry, type RouteRequestOptions, type RouteRequestResult, StorageAdapter, StreamingError, TokenOperationError, WalletAdapter, filterBaseUrlsForTor, getProviderEndpoints, isOnionUrl, isTorContext, normalizeProviderUrl, routeRequests };
185
+ export { DebugLevel, DiscoveryAdapter, FailoverError, InsufficientBalanceError, MintDiscoveryError, MintUnreachableError, Model, ModelManager, ModelNotFoundError, NoProvidersAvailableError, ProviderBootstrapError, type ProviderDirectoryEntry, ProviderError, ProviderRegistry, type RouteRequestOptions, type RouteRequestResult, StorageAdapter, StreamingError, TokenOperationError, WalletAdapter, filterBaseUrlsForTor, getProviderEndpoints, isOnionUrl, isTorContext, normalizeProviderUrl, routeRequests };
package/dist/index.js CHANGED
@@ -1316,6 +1316,9 @@ var BalanceManager = class {
1316
1316
  fetchResult.token
1317
1317
  );
1318
1318
  const totalAmountMsat = receiveResult.unit === "msat" ? receiveResult.amount : receiveResult.amount * 1e3;
1319
+ if (receiveResult.success) {
1320
+ this.storageAdapter.removeApiKey(baseUrl);
1321
+ }
1319
1322
  return {
1320
1323
  success: receiveResult.success,
1321
1324
  refundedAmount: totalAmountMsat,
@@ -2452,7 +2455,7 @@ var ProviderManager = class {
2452
2455
  };
2453
2456
 
2454
2457
  // client/RoutstrClient.ts
2455
- var TOPUP_MARGIN = 0.7;
2458
+ var TOPUP_MARGIN = 1.2;
2456
2459
  var RoutstrClient = class {
2457
2460
  constructor(walletAdapter, storageAdapter, providerRegistry, alertLevel, mode = "xcashu") {
2458
2461
  this.walletAdapter = walletAdapter;
@@ -2739,12 +2742,14 @@ var RoutstrClient = class {
2739
2742
  try {
2740
2743
  const url = `${baseUrl.replace(/\/$/, "")}${path}`;
2741
2744
  if (this.mode === "xcashu") this._log("DEBUG", "HEADERS,", headers);
2745
+ this._log("DEBUG", "HEADERS,", headers);
2742
2746
  const response = await fetch(url, {
2743
2747
  method,
2744
2748
  headers,
2745
2749
  body: body === void 0 || method === "GET" ? void 0 : JSON.stringify(body)
2746
2750
  });
2747
2751
  if (this.mode === "xcashu") this._log("DEBUG", "response,", response);
2752
+ this._log("DEBUG", "response,", response);
2748
2753
  response.baseUrl = baseUrl;
2749
2754
  response.token = token;
2750
2755
  if (!response.ok) {
@@ -2851,6 +2856,7 @@ var RoutstrClient = class {
2851
2856
  }
2852
2857
  }
2853
2858
  if ((status === 402 || status === 413 && responseBody?.includes("Insufficient balance")) && !tryNextProvider && (this.mode === "apikeys" || this.mode === "lazyrefund")) {
2859
+ console.log("RESPONSFE ", responseBody);
2854
2860
  const topupResult = await this.balanceManager.topUp({
2855
2861
  mintUrl,
2856
2862
  baseUrl,
@@ -2953,8 +2959,6 @@ var RoutstrClient = class {
2953
2959
  status,
2954
2960
  refundResult.message ?? "Unknown error"
2955
2961
  );
2956
- } else {
2957
- this.storageAdapter.removeApiKey(baseUrl);
2958
2962
  }
2959
2963
  }
2960
2964
  }
@@ -3053,7 +3057,11 @@ var RoutstrClient = class {
3053
3057
  baseUrl
3054
3058
  );
3055
3059
  const latestTokenBalance = latestBalanceInfo.unit === "msat" ? latestBalanceInfo.amount / 1e3 : latestBalanceInfo.amount;
3056
- this.storageAdapter.updateChildKeyBalance(baseUrl, latestTokenBalance);
3060
+ const storedApiKeyEntry = this.storageAdapter.getApiKey(baseUrl);
3061
+ if (storedApiKeyEntry?.key.startsWith("cashu") && latestBalanceInfo.apiKey) {
3062
+ this.storageAdapter.removeApiKey(baseUrl);
3063
+ this.storageAdapter.setApiKey(baseUrl, latestBalanceInfo.apiKey);
3064
+ }
3057
3065
  this.storageAdapter.updateApiKeyBalance(baseUrl, latestTokenBalance);
3058
3066
  satsSpent = initialTokenBalance - latestTokenBalance;
3059
3067
  } catch (e) {
@@ -4215,7 +4223,8 @@ async function routeRequests(options) {
4215
4223
  includeProviderUrls = [],
4216
4224
  torMode = false,
4217
4225
  forceRefresh = false,
4218
- modelManager: providedModelManager
4226
+ modelManager: providedModelManager,
4227
+ debugLevel
4219
4228
  } = options;
4220
4229
  let modelManager;
4221
4230
  let providers;
@@ -4282,6 +4291,9 @@ async function routeRequests(options) {
4282
4291
  alertLevel,
4283
4292
  "apikeys"
4284
4293
  );
4294
+ if (debugLevel) {
4295
+ client.setDebugLevel(debugLevel);
4296
+ }
4285
4297
  const maxTokens = extractMaxTokens(requestBody);
4286
4298
  const stream = extractStream(requestBody);
4287
4299
  let response = null;