@routstr/sdk 0.1.8 → 0.2.1
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/client/index.js +27 -4
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +27 -4
- package/dist/client/index.mjs.map +1 -1
- package/dist/discovery/index.d.mts +2 -1
- package/dist/discovery/index.d.ts +2 -1
- package/dist/discovery/index.js +9 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/index.mjs +9 -1
- package/dist/discovery/index.mjs.map +1 -1
- package/dist/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +224 -142
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +224 -142
- package/dist/index.mjs.map +1 -1
- package/dist/storage/index.d.mts +19 -1
- package/dist/storage/index.d.ts +19 -1
- package/dist/storage/index.js +185 -135
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/index.mjs +185 -135
- package/dist/storage/index.mjs.map +1 -1
- package/dist/wallet/index.js +26 -3
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/index.mjs +26 -3
- package/dist/wallet/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/storage/index.d.mts
CHANGED
|
@@ -60,6 +60,13 @@ interface SdkStorageState {
|
|
|
60
60
|
sessionId?: string;
|
|
61
61
|
tags?: string[];
|
|
62
62
|
}>;
|
|
63
|
+
clientIds: Array<{
|
|
64
|
+
clientId: string;
|
|
65
|
+
name: string;
|
|
66
|
+
apiKey: string;
|
|
67
|
+
createdAt: number;
|
|
68
|
+
lastUsed?: number | null;
|
|
69
|
+
}>;
|
|
63
70
|
}
|
|
64
71
|
|
|
65
72
|
declare const localStorageDriver: StorageDriver;
|
|
@@ -133,10 +140,20 @@ interface SdkStorageStore extends SdkStorageState {
|
|
|
133
140
|
sessionId?: string;
|
|
134
141
|
tags?: string[];
|
|
135
142
|
}>) => void;
|
|
143
|
+
setClientIds: (value: Array<{
|
|
144
|
+
clientId: string;
|
|
145
|
+
name: string;
|
|
146
|
+
apiKey: string;
|
|
147
|
+
createdAt?: number;
|
|
148
|
+
lastUsed?: number | null;
|
|
149
|
+
}> | ((current: SdkStorageStore["clientIds"]) => SdkStorageStore["clientIds"])) => void;
|
|
136
150
|
}
|
|
137
151
|
/** Store type returned after async initialization */
|
|
138
152
|
type SdkStore = StoreApi<SdkStorageStore>;
|
|
139
|
-
declare const createSdkStore: ({ driver, }: SdkStoreOptions) =>
|
|
153
|
+
declare const createSdkStore: ({ driver, }: SdkStoreOptions) => {
|
|
154
|
+
store: SdkStore;
|
|
155
|
+
hydrate: Promise<void>;
|
|
156
|
+
};
|
|
140
157
|
declare const createDiscoveryAdapterFromStore: (store: SdkStore) => DiscoveryAdapter;
|
|
141
158
|
declare const createStorageAdapterFromStore: (store: SdkStore) => StorageAdapter;
|
|
142
159
|
declare const createProviderRegistryFromStore: (store: SdkStore) => ProviderRegistry;
|
|
@@ -157,6 +174,7 @@ declare const SDK_STORAGE_KEYS: {
|
|
|
157
174
|
readonly LAST_ROUTSTR21_MODELS_UPDATE: "lastRoutstr21ModelsUpdate";
|
|
158
175
|
readonly CACHED_RECEIVE_TOKENS: "cached_receive_tokens";
|
|
159
176
|
readonly USAGE_TRACKING: "usage_tracking";
|
|
177
|
+
readonly CLIENT_IDS: "client_ids";
|
|
160
178
|
};
|
|
161
179
|
|
|
162
180
|
declare const getDefaultSdkDriver: () => StorageDriver;
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -60,6 +60,13 @@ interface SdkStorageState {
|
|
|
60
60
|
sessionId?: string;
|
|
61
61
|
tags?: string[];
|
|
62
62
|
}>;
|
|
63
|
+
clientIds: Array<{
|
|
64
|
+
clientId: string;
|
|
65
|
+
name: string;
|
|
66
|
+
apiKey: string;
|
|
67
|
+
createdAt: number;
|
|
68
|
+
lastUsed?: number | null;
|
|
69
|
+
}>;
|
|
63
70
|
}
|
|
64
71
|
|
|
65
72
|
declare const localStorageDriver: StorageDriver;
|
|
@@ -133,10 +140,20 @@ interface SdkStorageStore extends SdkStorageState {
|
|
|
133
140
|
sessionId?: string;
|
|
134
141
|
tags?: string[];
|
|
135
142
|
}>) => void;
|
|
143
|
+
setClientIds: (value: Array<{
|
|
144
|
+
clientId: string;
|
|
145
|
+
name: string;
|
|
146
|
+
apiKey: string;
|
|
147
|
+
createdAt?: number;
|
|
148
|
+
lastUsed?: number | null;
|
|
149
|
+
}> | ((current: SdkStorageStore["clientIds"]) => SdkStorageStore["clientIds"])) => void;
|
|
136
150
|
}
|
|
137
151
|
/** Store type returned after async initialization */
|
|
138
152
|
type SdkStore = StoreApi<SdkStorageStore>;
|
|
139
|
-
declare const createSdkStore: ({ driver, }: SdkStoreOptions) =>
|
|
153
|
+
declare const createSdkStore: ({ driver, }: SdkStoreOptions) => {
|
|
154
|
+
store: SdkStore;
|
|
155
|
+
hydrate: Promise<void>;
|
|
156
|
+
};
|
|
140
157
|
declare const createDiscoveryAdapterFromStore: (store: SdkStore) => DiscoveryAdapter;
|
|
141
158
|
declare const createStorageAdapterFromStore: (store: SdkStore) => StorageAdapter;
|
|
142
159
|
declare const createProviderRegistryFromStore: (store: SdkStore) => ProviderRegistry;
|
|
@@ -157,6 +174,7 @@ declare const SDK_STORAGE_KEYS: {
|
|
|
157
174
|
readonly LAST_ROUTSTR21_MODELS_UPDATE: "lastRoutstr21ModelsUpdate";
|
|
158
175
|
readonly CACHED_RECEIVE_TOKENS: "cached_receive_tokens";
|
|
159
176
|
readonly USAGE_TRACKING: "usage_tracking";
|
|
177
|
+
readonly CLIENT_IDS: "client_ids";
|
|
160
178
|
};
|
|
161
179
|
|
|
162
180
|
declare const getDefaultSdkDriver: () => StorageDriver;
|
package/dist/storage/index.js
CHANGED
|
@@ -187,7 +187,11 @@ var createSqliteDriver = (options = {}) => {
|
|
|
187
187
|
};
|
|
188
188
|
|
|
189
189
|
// storage/drivers/indexedDB.ts
|
|
190
|
+
var isBrowser = typeof indexedDB !== "undefined";
|
|
190
191
|
var openDatabase = (dbName, storeName) => {
|
|
192
|
+
if (!isBrowser) {
|
|
193
|
+
return Promise.reject(new Error("IndexedDB is not available"));
|
|
194
|
+
}
|
|
191
195
|
return new Promise((resolve, reject) => {
|
|
192
196
|
const request = indexedDB.open(dbName, 1);
|
|
193
197
|
request.onupgradeneeded = () => {
|
|
@@ -292,7 +296,8 @@ var SDK_STORAGE_KEYS = {
|
|
|
292
296
|
ROUTSTR21_MODELS: "routstr21Models",
|
|
293
297
|
LAST_ROUTSTR21_MODELS_UPDATE: "lastRoutstr21ModelsUpdate",
|
|
294
298
|
CACHED_RECEIVE_TOKENS: "cached_receive_tokens",
|
|
295
|
-
USAGE_TRACKING: "usage_tracking"
|
|
299
|
+
USAGE_TRACKING: "usage_tracking",
|
|
300
|
+
CLIENT_IDS: "client_ids"
|
|
296
301
|
};
|
|
297
302
|
|
|
298
303
|
// storage/store.ts
|
|
@@ -310,9 +315,158 @@ var getCashuTokenBalance = (token) => {
|
|
|
310
315
|
return 0;
|
|
311
316
|
}
|
|
312
317
|
};
|
|
313
|
-
var
|
|
314
|
-
|
|
315
|
-
|
|
318
|
+
var createEmptyStore = (driver) => vanilla.createStore((set, get) => ({
|
|
319
|
+
modelsFromAllProviders: {},
|
|
320
|
+
lastUsedModel: null,
|
|
321
|
+
baseUrlsList: [],
|
|
322
|
+
lastBaseUrlsUpdate: null,
|
|
323
|
+
disabledProviders: [],
|
|
324
|
+
mintsFromAllProviders: {},
|
|
325
|
+
infoFromAllProviders: {},
|
|
326
|
+
lastModelsUpdate: {},
|
|
327
|
+
cachedTokens: [],
|
|
328
|
+
apiKeys: [],
|
|
329
|
+
childKeys: [],
|
|
330
|
+
routstr21Models: [],
|
|
331
|
+
lastRoutstr21ModelsUpdate: null,
|
|
332
|
+
cachedReceiveTokens: [],
|
|
333
|
+
usageTracking: [],
|
|
334
|
+
clientIds: [],
|
|
335
|
+
setModelsFromAllProviders: (value) => {
|
|
336
|
+
const normalized = {};
|
|
337
|
+
for (const [baseUrl, models] of Object.entries(value)) {
|
|
338
|
+
normalized[normalizeBaseUrl(baseUrl)] = models;
|
|
339
|
+
}
|
|
340
|
+
void driver.setItem(
|
|
341
|
+
SDK_STORAGE_KEYS.MODELS_FROM_ALL_PROVIDERS,
|
|
342
|
+
normalized
|
|
343
|
+
);
|
|
344
|
+
set({ modelsFromAllProviders: normalized });
|
|
345
|
+
},
|
|
346
|
+
setLastUsedModel: (value) => {
|
|
347
|
+
void driver.setItem(SDK_STORAGE_KEYS.LAST_USED_MODEL, value);
|
|
348
|
+
set({ lastUsedModel: value });
|
|
349
|
+
},
|
|
350
|
+
setBaseUrlsList: (value) => {
|
|
351
|
+
const normalized = value.map((url) => normalizeBaseUrl(url));
|
|
352
|
+
void driver.setItem(SDK_STORAGE_KEYS.BASE_URLS_LIST, normalized);
|
|
353
|
+
set({ baseUrlsList: normalized });
|
|
354
|
+
},
|
|
355
|
+
setBaseUrlsLastUpdate: (value) => {
|
|
356
|
+
void driver.setItem(SDK_STORAGE_KEYS.LAST_BASE_URLS_UPDATE, value);
|
|
357
|
+
set({ lastBaseUrlsUpdate: value });
|
|
358
|
+
},
|
|
359
|
+
setDisabledProviders: (value) => {
|
|
360
|
+
const normalized = value.map((url) => normalizeBaseUrl(url));
|
|
361
|
+
void driver.setItem(SDK_STORAGE_KEYS.DISABLED_PROVIDERS, normalized);
|
|
362
|
+
set({ disabledProviders: normalized });
|
|
363
|
+
},
|
|
364
|
+
setMintsFromAllProviders: (value) => {
|
|
365
|
+
const normalized = {};
|
|
366
|
+
for (const [baseUrl, mints] of Object.entries(value)) {
|
|
367
|
+
normalized[normalizeBaseUrl(baseUrl)] = mints.map(
|
|
368
|
+
(mint) => mint.endsWith("/") ? mint.slice(0, -1) : mint
|
|
369
|
+
);
|
|
370
|
+
}
|
|
371
|
+
void driver.setItem(
|
|
372
|
+
SDK_STORAGE_KEYS.MINTS_FROM_ALL_PROVIDERS,
|
|
373
|
+
normalized
|
|
374
|
+
);
|
|
375
|
+
set({ mintsFromAllProviders: normalized });
|
|
376
|
+
},
|
|
377
|
+
setInfoFromAllProviders: (value) => {
|
|
378
|
+
const normalized = {};
|
|
379
|
+
for (const [baseUrl, info] of Object.entries(value)) {
|
|
380
|
+
normalized[normalizeBaseUrl(baseUrl)] = info;
|
|
381
|
+
}
|
|
382
|
+
void driver.setItem(SDK_STORAGE_KEYS.INFO_FROM_ALL_PROVIDERS, normalized);
|
|
383
|
+
set({ infoFromAllProviders: normalized });
|
|
384
|
+
},
|
|
385
|
+
setLastModelsUpdate: (value) => {
|
|
386
|
+
const normalized = {};
|
|
387
|
+
for (const [baseUrl, timestamp] of Object.entries(value)) {
|
|
388
|
+
normalized[normalizeBaseUrl(baseUrl)] = timestamp;
|
|
389
|
+
}
|
|
390
|
+
void driver.setItem(SDK_STORAGE_KEYS.LAST_MODELS_UPDATE, normalized);
|
|
391
|
+
set({ lastModelsUpdate: normalized });
|
|
392
|
+
},
|
|
393
|
+
setCachedTokens: (value) => {
|
|
394
|
+
set((state) => {
|
|
395
|
+
const updates = typeof value === "function" ? value(state.cachedTokens) : value;
|
|
396
|
+
const normalized = updates.map((entry) => ({
|
|
397
|
+
...entry,
|
|
398
|
+
baseUrl: normalizeBaseUrl(entry.baseUrl),
|
|
399
|
+
balance: typeof entry.balance === "number" ? entry.balance : getCashuTokenBalance(entry.token),
|
|
400
|
+
lastUsed: entry.lastUsed ?? null
|
|
401
|
+
}));
|
|
402
|
+
void driver.setItem(SDK_STORAGE_KEYS.LOCAL_CASHU_TOKENS, normalized);
|
|
403
|
+
return { cachedTokens: normalized };
|
|
404
|
+
});
|
|
405
|
+
},
|
|
406
|
+
setApiKeys: (value) => {
|
|
407
|
+
set((state) => {
|
|
408
|
+
const updates = typeof value === "function" ? value(state.apiKeys) : value;
|
|
409
|
+
const normalized = updates.map((entry) => ({
|
|
410
|
+
...entry,
|
|
411
|
+
baseUrl: normalizeBaseUrl(entry.baseUrl),
|
|
412
|
+
balance: entry.balance ?? 0,
|
|
413
|
+
lastUsed: entry.lastUsed ?? null
|
|
414
|
+
}));
|
|
415
|
+
void driver.setItem(SDK_STORAGE_KEYS.API_KEYS, normalized);
|
|
416
|
+
return { apiKeys: normalized };
|
|
417
|
+
});
|
|
418
|
+
},
|
|
419
|
+
setChildKeys: (value) => {
|
|
420
|
+
set((state) => {
|
|
421
|
+
const updates = typeof value === "function" ? value(state.childKeys) : value;
|
|
422
|
+
const normalized = updates.map((entry) => ({
|
|
423
|
+
parentBaseUrl: normalizeBaseUrl(entry.parentBaseUrl),
|
|
424
|
+
childKey: entry.childKey,
|
|
425
|
+
balance: entry.balance ?? 0,
|
|
426
|
+
balanceLimit: entry.balanceLimit,
|
|
427
|
+
validityDate: entry.validityDate,
|
|
428
|
+
createdAt: entry.createdAt ?? Date.now()
|
|
429
|
+
}));
|
|
430
|
+
void driver.setItem(SDK_STORAGE_KEYS.CHILD_KEYS, normalized);
|
|
431
|
+
return { childKeys: normalized };
|
|
432
|
+
});
|
|
433
|
+
},
|
|
434
|
+
setRoutstr21Models: (value) => {
|
|
435
|
+
void driver.setItem(SDK_STORAGE_KEYS.ROUTSTR21_MODELS, value);
|
|
436
|
+
set({ routstr21Models: value });
|
|
437
|
+
},
|
|
438
|
+
setRoutstr21ModelsLastUpdate: (value) => {
|
|
439
|
+
void driver.setItem(SDK_STORAGE_KEYS.LAST_ROUTSTR21_MODELS_UPDATE, value);
|
|
440
|
+
set({ lastRoutstr21ModelsUpdate: value });
|
|
441
|
+
},
|
|
442
|
+
setCachedReceiveTokens: (value) => {
|
|
443
|
+
const normalized = value.map((entry) => ({
|
|
444
|
+
token: entry.token,
|
|
445
|
+
amount: entry.amount,
|
|
446
|
+
unit: entry.unit || "sat",
|
|
447
|
+
createdAt: entry.createdAt ?? Date.now()
|
|
448
|
+
}));
|
|
449
|
+
void driver.setItem(SDK_STORAGE_KEYS.CACHED_RECEIVE_TOKENS, normalized);
|
|
450
|
+
set({ cachedReceiveTokens: normalized });
|
|
451
|
+
},
|
|
452
|
+
setUsageTracking: (value) => {
|
|
453
|
+
void driver.setItem(SDK_STORAGE_KEYS.USAGE_TRACKING, value);
|
|
454
|
+
set({ usageTracking: value });
|
|
455
|
+
},
|
|
456
|
+
setClientIds: (value) => {
|
|
457
|
+
set((state) => {
|
|
458
|
+
const updates = typeof value === "function" ? value(state.clientIds) : value;
|
|
459
|
+
const normalized = updates.map((entry) => ({
|
|
460
|
+
...entry,
|
|
461
|
+
createdAt: entry.createdAt ?? Date.now(),
|
|
462
|
+
lastUsed: entry.lastUsed ?? null
|
|
463
|
+
}));
|
|
464
|
+
void driver.setItem(SDK_STORAGE_KEYS.CLIENT_IDS, normalized);
|
|
465
|
+
return { clientIds: normalized };
|
|
466
|
+
});
|
|
467
|
+
}
|
|
468
|
+
}));
|
|
469
|
+
var hydrateStoreFromDriver = async (store, driver) => {
|
|
316
470
|
const [
|
|
317
471
|
rawModels,
|
|
318
472
|
lastUsedModel,
|
|
@@ -328,7 +482,8 @@ var createSdkStore = async ({
|
|
|
328
482
|
rawRoutstr21Models,
|
|
329
483
|
rawLastRoutstr21ModelsUpdate,
|
|
330
484
|
rawCachedReceiveTokens,
|
|
331
|
-
rawUsageTracking
|
|
485
|
+
rawUsageTracking,
|
|
486
|
+
rawClientIds
|
|
332
487
|
] = await Promise.all([
|
|
333
488
|
driver.getItem(
|
|
334
489
|
SDK_STORAGE_KEYS.MODELS_FROM_ALL_PROVIDERS,
|
|
@@ -359,7 +514,8 @@ var createSdkStore = async ({
|
|
|
359
514
|
null
|
|
360
515
|
),
|
|
361
516
|
driver.getItem(SDK_STORAGE_KEYS.CACHED_RECEIVE_TOKENS, []),
|
|
362
|
-
driver.getItem(SDK_STORAGE_KEYS.USAGE_TRACKING, [])
|
|
517
|
+
driver.getItem(SDK_STORAGE_KEYS.USAGE_TRACKING, []),
|
|
518
|
+
driver.getItem(SDK_STORAGE_KEYS.CLIENT_IDS, [])
|
|
363
519
|
]);
|
|
364
520
|
const modelsFromAllProviders = Object.fromEntries(
|
|
365
521
|
Object.entries(rawModels).map(([baseUrl, models]) => [
|
|
@@ -418,7 +574,12 @@ var createSdkStore = async ({
|
|
|
418
574
|
createdAt: entry.createdAt ?? Date.now()
|
|
419
575
|
}));
|
|
420
576
|
const usageTracking = rawUsageTracking;
|
|
421
|
-
|
|
577
|
+
const clientIds = rawClientIds.map((entry) => ({
|
|
578
|
+
...entry,
|
|
579
|
+
createdAt: entry.createdAt ?? Date.now(),
|
|
580
|
+
lastUsed: entry.lastUsed ?? null
|
|
581
|
+
}));
|
|
582
|
+
store.setState({
|
|
422
583
|
modelsFromAllProviders,
|
|
423
584
|
lastUsedModel,
|
|
424
585
|
baseUrlsList,
|
|
@@ -434,128 +595,17 @@ var createSdkStore = async ({
|
|
|
434
595
|
lastRoutstr21ModelsUpdate,
|
|
435
596
|
cachedReceiveTokens,
|
|
436
597
|
usageTracking,
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
setLastUsedModel: (value) => {
|
|
449
|
-
void driver.setItem(SDK_STORAGE_KEYS.LAST_USED_MODEL, value);
|
|
450
|
-
set({ lastUsedModel: value });
|
|
451
|
-
},
|
|
452
|
-
setBaseUrlsList: (value) => {
|
|
453
|
-
const normalized = value.map((url) => normalizeBaseUrl(url));
|
|
454
|
-
void driver.setItem(SDK_STORAGE_KEYS.BASE_URLS_LIST, normalized);
|
|
455
|
-
set({ baseUrlsList: normalized });
|
|
456
|
-
},
|
|
457
|
-
setBaseUrlsLastUpdate: (value) => {
|
|
458
|
-
void driver.setItem(SDK_STORAGE_KEYS.LAST_BASE_URLS_UPDATE, value);
|
|
459
|
-
set({ lastBaseUrlsUpdate: value });
|
|
460
|
-
},
|
|
461
|
-
setDisabledProviders: (value) => {
|
|
462
|
-
const normalized = value.map((url) => normalizeBaseUrl(url));
|
|
463
|
-
void driver.setItem(SDK_STORAGE_KEYS.DISABLED_PROVIDERS, normalized);
|
|
464
|
-
set({ disabledProviders: normalized });
|
|
465
|
-
},
|
|
466
|
-
setMintsFromAllProviders: (value) => {
|
|
467
|
-
const normalized = {};
|
|
468
|
-
for (const [baseUrl, mints] of Object.entries(value)) {
|
|
469
|
-
normalized[normalizeBaseUrl(baseUrl)] = mints.map(
|
|
470
|
-
(mint) => mint.endsWith("/") ? mint.slice(0, -1) : mint
|
|
471
|
-
);
|
|
472
|
-
}
|
|
473
|
-
void driver.setItem(
|
|
474
|
-
SDK_STORAGE_KEYS.MINTS_FROM_ALL_PROVIDERS,
|
|
475
|
-
normalized
|
|
476
|
-
);
|
|
477
|
-
set({ mintsFromAllProviders: normalized });
|
|
478
|
-
},
|
|
479
|
-
setInfoFromAllProviders: (value) => {
|
|
480
|
-
const normalized = {};
|
|
481
|
-
for (const [baseUrl, info] of Object.entries(value)) {
|
|
482
|
-
normalized[normalizeBaseUrl(baseUrl)] = info;
|
|
483
|
-
}
|
|
484
|
-
void driver.setItem(SDK_STORAGE_KEYS.INFO_FROM_ALL_PROVIDERS, normalized);
|
|
485
|
-
set({ infoFromAllProviders: normalized });
|
|
486
|
-
},
|
|
487
|
-
setLastModelsUpdate: (value) => {
|
|
488
|
-
const normalized = {};
|
|
489
|
-
for (const [baseUrl, timestamp] of Object.entries(value)) {
|
|
490
|
-
normalized[normalizeBaseUrl(baseUrl)] = timestamp;
|
|
491
|
-
}
|
|
492
|
-
void driver.setItem(SDK_STORAGE_KEYS.LAST_MODELS_UPDATE, normalized);
|
|
493
|
-
set({ lastModelsUpdate: normalized });
|
|
494
|
-
},
|
|
495
|
-
setCachedTokens: (value) => {
|
|
496
|
-
set((state) => {
|
|
497
|
-
const updates = typeof value === "function" ? value(state.cachedTokens) : value;
|
|
498
|
-
const normalized = updates.map((entry) => ({
|
|
499
|
-
...entry,
|
|
500
|
-
baseUrl: normalizeBaseUrl(entry.baseUrl),
|
|
501
|
-
balance: typeof entry.balance === "number" ? entry.balance : getCashuTokenBalance(entry.token),
|
|
502
|
-
lastUsed: entry.lastUsed ?? null
|
|
503
|
-
}));
|
|
504
|
-
void driver.setItem(SDK_STORAGE_KEYS.LOCAL_CASHU_TOKENS, normalized);
|
|
505
|
-
return { cachedTokens: normalized };
|
|
506
|
-
});
|
|
507
|
-
},
|
|
508
|
-
setApiKeys: (value) => {
|
|
509
|
-
set((state) => {
|
|
510
|
-
const updates = typeof value === "function" ? value(state.apiKeys) : value;
|
|
511
|
-
const normalized = updates.map((entry) => ({
|
|
512
|
-
...entry,
|
|
513
|
-
baseUrl: normalizeBaseUrl(entry.baseUrl),
|
|
514
|
-
balance: entry.balance ?? 0,
|
|
515
|
-
lastUsed: entry.lastUsed ?? null
|
|
516
|
-
}));
|
|
517
|
-
void driver.setItem(SDK_STORAGE_KEYS.API_KEYS, normalized);
|
|
518
|
-
return { apiKeys: normalized };
|
|
519
|
-
});
|
|
520
|
-
},
|
|
521
|
-
setChildKeys: (value) => {
|
|
522
|
-
set((state) => {
|
|
523
|
-
const updates = typeof value === "function" ? value(state.childKeys) : value;
|
|
524
|
-
const normalized = updates.map((entry) => ({
|
|
525
|
-
parentBaseUrl: normalizeBaseUrl(entry.parentBaseUrl),
|
|
526
|
-
childKey: entry.childKey,
|
|
527
|
-
balance: entry.balance ?? 0,
|
|
528
|
-
balanceLimit: entry.balanceLimit,
|
|
529
|
-
validityDate: entry.validityDate,
|
|
530
|
-
createdAt: entry.createdAt ?? Date.now()
|
|
531
|
-
}));
|
|
532
|
-
void driver.setItem(SDK_STORAGE_KEYS.CHILD_KEYS, normalized);
|
|
533
|
-
return { childKeys: normalized };
|
|
534
|
-
});
|
|
535
|
-
},
|
|
536
|
-
setRoutstr21Models: (value) => {
|
|
537
|
-
void driver.setItem(SDK_STORAGE_KEYS.ROUTSTR21_MODELS, value);
|
|
538
|
-
set({ routstr21Models: value });
|
|
539
|
-
},
|
|
540
|
-
setRoutstr21ModelsLastUpdate: (value) => {
|
|
541
|
-
void driver.setItem(SDK_STORAGE_KEYS.LAST_ROUTSTR21_MODELS_UPDATE, value);
|
|
542
|
-
set({ lastRoutstr21ModelsUpdate: value });
|
|
543
|
-
},
|
|
544
|
-
setCachedReceiveTokens: (value) => {
|
|
545
|
-
const normalized = value.map((entry) => ({
|
|
546
|
-
token: entry.token,
|
|
547
|
-
amount: entry.amount,
|
|
548
|
-
unit: entry.unit || "sat",
|
|
549
|
-
createdAt: entry.createdAt ?? Date.now()
|
|
550
|
-
}));
|
|
551
|
-
void driver.setItem(SDK_STORAGE_KEYS.CACHED_RECEIVE_TOKENS, normalized);
|
|
552
|
-
set({ cachedReceiveTokens: normalized });
|
|
553
|
-
},
|
|
554
|
-
setUsageTracking: (value) => {
|
|
555
|
-
void driver.setItem(SDK_STORAGE_KEYS.USAGE_TRACKING, value);
|
|
556
|
-
set({ usageTracking: value });
|
|
557
|
-
}
|
|
558
|
-
}));
|
|
598
|
+
clientIds
|
|
599
|
+
});
|
|
600
|
+
};
|
|
601
|
+
var createSdkStore = ({
|
|
602
|
+
driver
|
|
603
|
+
}) => {
|
|
604
|
+
const store = createEmptyStore(driver);
|
|
605
|
+
return {
|
|
606
|
+
store,
|
|
607
|
+
hydrate: hydrateStoreFromDriver(store, driver)
|
|
608
|
+
};
|
|
559
609
|
};
|
|
560
610
|
var createDiscoveryAdapterFromStore = (store) => ({
|
|
561
611
|
getCachedModels: () => store.getState().modelsFromAllProviders,
|
|
@@ -820,7 +870,7 @@ var createProviderRegistryFromStore = (store) => ({
|
|
|
820
870
|
});
|
|
821
871
|
|
|
822
872
|
// storage/index.ts
|
|
823
|
-
var
|
|
873
|
+
var isBrowser2 = () => {
|
|
824
874
|
try {
|
|
825
875
|
return typeof window !== "undefined" && typeof window.localStorage !== "undefined";
|
|
826
876
|
} catch {
|
|
@@ -840,7 +890,7 @@ var isBun2 = () => {
|
|
|
840
890
|
};
|
|
841
891
|
var getDefaultSdkDriver = () => {
|
|
842
892
|
if (defaultDriver) return defaultDriver;
|
|
843
|
-
if (
|
|
893
|
+
if (isBrowser2()) {
|
|
844
894
|
defaultDriver = localStorageDriver;
|
|
845
895
|
return defaultDriver;
|
|
846
896
|
}
|
|
@@ -855,12 +905,12 @@ var getDefaultSdkDriver = () => {
|
|
|
855
905
|
defaultDriver = createMemoryDriver();
|
|
856
906
|
return defaultDriver;
|
|
857
907
|
};
|
|
858
|
-
var
|
|
908
|
+
var defaultStore = null;
|
|
859
909
|
var getDefaultSdkStore = () => {
|
|
860
|
-
if (!
|
|
861
|
-
|
|
910
|
+
if (!defaultStore) {
|
|
911
|
+
defaultStore = createSdkStore({ driver: getDefaultSdkDriver() });
|
|
862
912
|
}
|
|
863
|
-
return
|
|
913
|
+
return defaultStore.hydrate.then(() => defaultStore.store);
|
|
864
914
|
};
|
|
865
915
|
var getDefaultDiscoveryAdapter = async () => createDiscoveryAdapterFromStore(await getDefaultSdkStore());
|
|
866
916
|
var getDefaultStorageAdapter = async () => createStorageAdapterFromStore(await getDefaultSdkStore());
|