@unicitylabs/sphere-sdk 0.2.2 → 0.2.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/README.md +73 -79
- package/dist/core/index.cjs +1220 -275
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +422 -221
- package/dist/core/index.d.ts +422 -221
- package/dist/core/index.js +1219 -275
- package/dist/core/index.js.map +1 -1
- package/dist/impl/browser/index.cjs +2077 -14
- package/dist/impl/browser/index.cjs.map +1 -1
- package/dist/impl/browser/index.js +2077 -14
- package/dist/impl/browser/index.js.map +1 -1
- package/dist/impl/browser/ipfs.cjs +1877 -513
- package/dist/impl/browser/ipfs.cjs.map +1 -1
- package/dist/impl/browser/ipfs.js +1877 -513
- package/dist/impl/browser/ipfs.js.map +1 -1
- package/dist/impl/nodejs/index.cjs +2222 -172
- package/dist/impl/nodejs/index.cjs.map +1 -1
- package/dist/impl/nodejs/index.d.cts +84 -3
- package/dist/impl/nodejs/index.d.ts +84 -3
- package/dist/impl/nodejs/index.js +2222 -172
- package/dist/impl/nodejs/index.js.map +1 -1
- package/dist/index.cjs +1231 -265
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +440 -67
- package/dist/index.d.ts +440 -67
- package/dist/index.js +1231 -265
- package/dist/index.js.map +1 -1
- package/package.json +25 -5
|
@@ -177,7 +177,7 @@ interface TokenStorageProvider<TData = unknown> extends BaseProvider {
|
|
|
177
177
|
*/
|
|
178
178
|
deleteToken?(tokenId: string): Promise<void>;
|
|
179
179
|
}
|
|
180
|
-
type StorageEventType = 'storage:saving' | 'storage:saved' | 'storage:loading' | 'storage:loaded' | 'storage:error' | 'sync:started' | 'sync:completed' | 'sync:conflict' | 'sync:error';
|
|
180
|
+
type StorageEventType = 'storage:saving' | 'storage:saved' | 'storage:loading' | 'storage:loaded' | 'storage:error' | 'storage:remote-updated' | 'sync:started' | 'sync:completed' | 'sync:conflict' | 'sync:error';
|
|
181
181
|
interface StorageEvent {
|
|
182
182
|
type: StorageEventType;
|
|
183
183
|
timestamp: number;
|
|
@@ -470,6 +470,12 @@ interface TransportProvider extends BaseProvider {
|
|
|
470
470
|
* @returns Unsubscribe function
|
|
471
471
|
*/
|
|
472
472
|
onInstantSplitReceived?(handler: InstantSplitBundleHandler): () => void;
|
|
473
|
+
/**
|
|
474
|
+
* Fetch pending events from transport (one-shot query).
|
|
475
|
+
* Creates a temporary subscription, processes events through normal handlers,
|
|
476
|
+
* and resolves after EOSE (End Of Stored Events).
|
|
477
|
+
*/
|
|
478
|
+
fetchPendingEvents?(): Promise<void>;
|
|
473
479
|
}
|
|
474
480
|
/**
|
|
475
481
|
* Payload for sending instant split bundles
|
|
@@ -534,7 +540,7 @@ interface IncomingTokenTransfer {
|
|
|
534
540
|
payload: TokenTransferPayload;
|
|
535
541
|
timestamp: number;
|
|
536
542
|
}
|
|
537
|
-
type TokenTransferHandler = (transfer: IncomingTokenTransfer) => void
|
|
543
|
+
type TokenTransferHandler = (transfer: IncomingTokenTransfer) => void | Promise<void>;
|
|
538
544
|
interface PaymentRequestPayload {
|
|
539
545
|
/** Amount requested (in smallest units) */
|
|
540
546
|
amount: string | bigint;
|
|
@@ -552,6 +558,8 @@ interface IncomingPaymentRequest {
|
|
|
552
558
|
id: string;
|
|
553
559
|
/** Transport-specific pubkey of sender */
|
|
554
560
|
senderTransportPubkey: string;
|
|
561
|
+
/** Sender's nametag (if included in encrypted content) */
|
|
562
|
+
senderNametag?: string;
|
|
555
563
|
/** Parsed request data */
|
|
556
564
|
request: {
|
|
557
565
|
requestId: string;
|
|
@@ -675,6 +683,14 @@ type UUIDGenerator = () => string;
|
|
|
675
683
|
* WebSocket is injected via factory for cross-platform support
|
|
676
684
|
*/
|
|
677
685
|
|
|
686
|
+
/**
|
|
687
|
+
* Minimal key-value storage interface for transport persistence.
|
|
688
|
+
* Used to persist the last processed event timestamp across sessions.
|
|
689
|
+
*/
|
|
690
|
+
interface TransportStorageAdapter {
|
|
691
|
+
get(key: string): Promise<string | null>;
|
|
692
|
+
set(key: string, value: string): Promise<void>;
|
|
693
|
+
}
|
|
678
694
|
interface NostrTransportProviderConfig {
|
|
679
695
|
/** Nostr relay URLs */
|
|
680
696
|
relays?: string[];
|
|
@@ -692,6 +708,8 @@ interface NostrTransportProviderConfig {
|
|
|
692
708
|
createWebSocket: WebSocketFactory;
|
|
693
709
|
/** UUID generator (optional, defaults to crypto.randomUUID) */
|
|
694
710
|
generateUUID?: UUIDGenerator;
|
|
711
|
+
/** Optional storage adapter for persisting subscription timestamps */
|
|
712
|
+
storage?: TransportStorageAdapter;
|
|
695
713
|
}
|
|
696
714
|
declare class NostrTransportProvider implements TransportProvider {
|
|
697
715
|
readonly id = "nostr";
|
|
@@ -699,11 +717,15 @@ declare class NostrTransportProvider implements TransportProvider {
|
|
|
699
717
|
readonly type: "p2p";
|
|
700
718
|
readonly description = "P2P messaging via Nostr protocol";
|
|
701
719
|
private config;
|
|
720
|
+
private storage;
|
|
721
|
+
/** In-memory max event timestamp to avoid read-before-write races in updateLastEventTimestamp. */
|
|
722
|
+
private lastEventTs;
|
|
702
723
|
private identity;
|
|
703
724
|
private keyManager;
|
|
704
725
|
private status;
|
|
705
726
|
private nostrClient;
|
|
706
727
|
private mainSubscriptionId;
|
|
728
|
+
private processedEventIds;
|
|
707
729
|
private messageHandlers;
|
|
708
730
|
private transferHandlers;
|
|
709
731
|
private paymentRequestHandlers;
|
|
@@ -800,6 +822,12 @@ declare class NostrTransportProvider implements TransportProvider {
|
|
|
800
822
|
publishBroadcast(content: string, tags?: string[]): Promise<string>;
|
|
801
823
|
onEvent(callback: TransportEventCallback): () => void;
|
|
802
824
|
private handleEvent;
|
|
825
|
+
/**
|
|
826
|
+
* Save the max event timestamp to storage (fire-and-forget, no await needed by caller).
|
|
827
|
+
* Uses in-memory `lastEventTs` to avoid read-before-write race conditions
|
|
828
|
+
* when multiple events arrive in quick succession.
|
|
829
|
+
*/
|
|
830
|
+
private updateLastEventTimestamp;
|
|
803
831
|
private handleDirectMessage;
|
|
804
832
|
private handleGiftWrap;
|
|
805
833
|
private handleTokenTransfer;
|
|
@@ -809,6 +837,7 @@ declare class NostrTransportProvider implements TransportProvider {
|
|
|
809
837
|
private createEvent;
|
|
810
838
|
private createEncryptedEvent;
|
|
811
839
|
private publishEvent;
|
|
840
|
+
fetchPendingEvents(): Promise<void>;
|
|
812
841
|
private queryEvents;
|
|
813
842
|
private walletSubscriptionId;
|
|
814
843
|
private chatSubscriptionId;
|
|
@@ -1301,6 +1330,42 @@ interface BaseProviders {
|
|
|
1301
1330
|
price?: PriceProvider;
|
|
1302
1331
|
}
|
|
1303
1332
|
|
|
1333
|
+
/** IPFS storage provider configuration */
|
|
1334
|
+
interface IpfsStorageConfig {
|
|
1335
|
+
/** Gateway URLs for HTTP API (defaults to Unicity dedicated nodes) */
|
|
1336
|
+
gateways?: string[];
|
|
1337
|
+
/** Content fetch timeout in ms (default: 15000) */
|
|
1338
|
+
fetchTimeoutMs?: number;
|
|
1339
|
+
/** IPNS resolution timeout in ms (default: 10000) */
|
|
1340
|
+
resolveTimeoutMs?: number;
|
|
1341
|
+
/** IPNS publish timeout in ms (default: 30000) */
|
|
1342
|
+
publishTimeoutMs?: number;
|
|
1343
|
+
/** Gateway connectivity test timeout in ms (default: 5000) */
|
|
1344
|
+
connectivityTimeoutMs?: number;
|
|
1345
|
+
/** IPNS record lifetime in ms (default: 99 years) */
|
|
1346
|
+
ipnsLifetimeMs?: number;
|
|
1347
|
+
/** IPNS cache TTL in ms (default: 60000) */
|
|
1348
|
+
ipnsCacheTtlMs?: number;
|
|
1349
|
+
/** Circuit breaker failure threshold (default: 3) */
|
|
1350
|
+
circuitBreakerThreshold?: number;
|
|
1351
|
+
/** Circuit breaker cooldown in ms (default: 60000) */
|
|
1352
|
+
circuitBreakerCooldownMs?: number;
|
|
1353
|
+
/** Known-fresh window in ms (default: 30000) */
|
|
1354
|
+
knownFreshWindowMs?: number;
|
|
1355
|
+
/** Enable debug logging (default: false) */
|
|
1356
|
+
debug?: boolean;
|
|
1357
|
+
/** WebSocket factory for IPNS push subscriptions (cross-platform) */
|
|
1358
|
+
createWebSocket?: WebSocketFactory;
|
|
1359
|
+
/** Override WebSocket URL (auto-derived from gateways if omitted) */
|
|
1360
|
+
wsUrl?: string;
|
|
1361
|
+
/** Fallback polling interval in ms when WS unavailable (default: 90000) */
|
|
1362
|
+
fallbackPollIntervalMs?: number;
|
|
1363
|
+
/** Debounce for push-triggered sync in ms (default: 500) */
|
|
1364
|
+
syncDebounceMs?: number;
|
|
1365
|
+
/** Debounce interval for background flush in ms (default: 2000) */
|
|
1366
|
+
flushDebounceMs?: number;
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1304
1369
|
/**
|
|
1305
1370
|
* Node.js Implementation
|
|
1306
1371
|
* Providers for CLI/Node.js usage
|
|
@@ -1321,6 +1386,18 @@ type NodeOracleConfig = BaseOracleConfig & NodeOracleExtensions;
|
|
|
1321
1386
|
* Same as base
|
|
1322
1387
|
*/
|
|
1323
1388
|
type NodeL1Config = L1Config;
|
|
1389
|
+
/** Node.js IPFS sync configuration */
|
|
1390
|
+
interface NodeIpfsSyncConfig {
|
|
1391
|
+
/** Enable IPFS sync (default: false) */
|
|
1392
|
+
enabled?: boolean;
|
|
1393
|
+
/** IPFS storage provider configuration */
|
|
1394
|
+
config?: IpfsStorageConfig;
|
|
1395
|
+
}
|
|
1396
|
+
/** Node.js token sync configuration */
|
|
1397
|
+
interface NodeTokenSyncConfig {
|
|
1398
|
+
/** IPFS sync backend */
|
|
1399
|
+
ipfs?: NodeIpfsSyncConfig;
|
|
1400
|
+
}
|
|
1324
1401
|
interface NodeProvidersConfig {
|
|
1325
1402
|
/** Network preset: mainnet, testnet, or dev */
|
|
1326
1403
|
network?: NetworkType;
|
|
@@ -1336,6 +1413,8 @@ interface NodeProvidersConfig {
|
|
|
1336
1413
|
l1?: NodeL1Config;
|
|
1337
1414
|
/** Price provider configuration (optional — enables fiat value display) */
|
|
1338
1415
|
price?: BasePriceConfig;
|
|
1416
|
+
/** Token sync backends configuration */
|
|
1417
|
+
tokenSync?: NodeTokenSyncConfig;
|
|
1339
1418
|
}
|
|
1340
1419
|
interface NodeProviders {
|
|
1341
1420
|
storage: StorageProvider;
|
|
@@ -1346,6 +1425,8 @@ interface NodeProviders {
|
|
|
1346
1425
|
l1?: L1Config;
|
|
1347
1426
|
/** Price provider (optional — enables fiat value display) */
|
|
1348
1427
|
price?: PriceProvider;
|
|
1428
|
+
/** IPFS token storage provider (when tokenSync.ipfs.enabled is true) */
|
|
1429
|
+
ipfsTokenStorage?: TokenStorageProvider<TxfStorageDataBase>;
|
|
1349
1430
|
}
|
|
1350
1431
|
/**
|
|
1351
1432
|
* Create all Node.js providers with default configuration
|
|
@@ -1385,4 +1466,4 @@ interface NodeProviders {
|
|
|
1385
1466
|
*/
|
|
1386
1467
|
declare function createNodeProviders(config?: NodeProvidersConfig): NodeProviders;
|
|
1387
1468
|
|
|
1388
|
-
export { type BaseOracleConfig, type BaseProviders, type BaseTransportConfig, FileStorageProvider, type FileStorageProviderConfig, type FileTokenStorageConfig, FileTokenStorageProvider, type IWebSocket, type L1Config, type NodeL1Config, type NodeOracleConfig, type NodeProviders, type NodeProvidersConfig, type NodeTransportConfig, NodeTrustBaseLoader, NostrTransportProvider, type NostrTransportProviderConfig, type TrustBaseLoader$1 as TrustBaseLoader, UnicityAggregatorProvider, type UnicityAggregatorProviderConfig, UnicityOracleProvider, type UnicityOracleProviderConfig, type WebSocketFactory, createFileStorageProvider, createFileTokenStorageProvider, createNodeProviders, createNodeTrustBaseLoader, createNodeWebSocketFactory, createNostrTransportProvider, createUnicityAggregatorProvider, createUnicityOracleProvider };
|
|
1469
|
+
export { type BaseOracleConfig, type BaseProviders, type BaseTransportConfig, FileStorageProvider, type FileStorageProviderConfig, type FileTokenStorageConfig, FileTokenStorageProvider, type IWebSocket, type L1Config, type NodeIpfsSyncConfig, type NodeL1Config, type NodeOracleConfig, type NodeProviders, type NodeProvidersConfig, type NodeTokenSyncConfig, type NodeTransportConfig, NodeTrustBaseLoader, NostrTransportProvider, type NostrTransportProviderConfig, type TrustBaseLoader$1 as TrustBaseLoader, UnicityAggregatorProvider, type UnicityAggregatorProviderConfig, UnicityOracleProvider, type UnicityOracleProviderConfig, type WebSocketFactory, createFileStorageProvider, createFileTokenStorageProvider, createNodeProviders, createNodeTrustBaseLoader, createNodeWebSocketFactory, createNostrTransportProvider, createUnicityAggregatorProvider, createUnicityOracleProvider };
|
|
@@ -177,7 +177,7 @@ interface TokenStorageProvider<TData = unknown> extends BaseProvider {
|
|
|
177
177
|
*/
|
|
178
178
|
deleteToken?(tokenId: string): Promise<void>;
|
|
179
179
|
}
|
|
180
|
-
type StorageEventType = 'storage:saving' | 'storage:saved' | 'storage:loading' | 'storage:loaded' | 'storage:error' | 'sync:started' | 'sync:completed' | 'sync:conflict' | 'sync:error';
|
|
180
|
+
type StorageEventType = 'storage:saving' | 'storage:saved' | 'storage:loading' | 'storage:loaded' | 'storage:error' | 'storage:remote-updated' | 'sync:started' | 'sync:completed' | 'sync:conflict' | 'sync:error';
|
|
181
181
|
interface StorageEvent {
|
|
182
182
|
type: StorageEventType;
|
|
183
183
|
timestamp: number;
|
|
@@ -470,6 +470,12 @@ interface TransportProvider extends BaseProvider {
|
|
|
470
470
|
* @returns Unsubscribe function
|
|
471
471
|
*/
|
|
472
472
|
onInstantSplitReceived?(handler: InstantSplitBundleHandler): () => void;
|
|
473
|
+
/**
|
|
474
|
+
* Fetch pending events from transport (one-shot query).
|
|
475
|
+
* Creates a temporary subscription, processes events through normal handlers,
|
|
476
|
+
* and resolves after EOSE (End Of Stored Events).
|
|
477
|
+
*/
|
|
478
|
+
fetchPendingEvents?(): Promise<void>;
|
|
473
479
|
}
|
|
474
480
|
/**
|
|
475
481
|
* Payload for sending instant split bundles
|
|
@@ -534,7 +540,7 @@ interface IncomingTokenTransfer {
|
|
|
534
540
|
payload: TokenTransferPayload;
|
|
535
541
|
timestamp: number;
|
|
536
542
|
}
|
|
537
|
-
type TokenTransferHandler = (transfer: IncomingTokenTransfer) => void
|
|
543
|
+
type TokenTransferHandler = (transfer: IncomingTokenTransfer) => void | Promise<void>;
|
|
538
544
|
interface PaymentRequestPayload {
|
|
539
545
|
/** Amount requested (in smallest units) */
|
|
540
546
|
amount: string | bigint;
|
|
@@ -552,6 +558,8 @@ interface IncomingPaymentRequest {
|
|
|
552
558
|
id: string;
|
|
553
559
|
/** Transport-specific pubkey of sender */
|
|
554
560
|
senderTransportPubkey: string;
|
|
561
|
+
/** Sender's nametag (if included in encrypted content) */
|
|
562
|
+
senderNametag?: string;
|
|
555
563
|
/** Parsed request data */
|
|
556
564
|
request: {
|
|
557
565
|
requestId: string;
|
|
@@ -675,6 +683,14 @@ type UUIDGenerator = () => string;
|
|
|
675
683
|
* WebSocket is injected via factory for cross-platform support
|
|
676
684
|
*/
|
|
677
685
|
|
|
686
|
+
/**
|
|
687
|
+
* Minimal key-value storage interface for transport persistence.
|
|
688
|
+
* Used to persist the last processed event timestamp across sessions.
|
|
689
|
+
*/
|
|
690
|
+
interface TransportStorageAdapter {
|
|
691
|
+
get(key: string): Promise<string | null>;
|
|
692
|
+
set(key: string, value: string): Promise<void>;
|
|
693
|
+
}
|
|
678
694
|
interface NostrTransportProviderConfig {
|
|
679
695
|
/** Nostr relay URLs */
|
|
680
696
|
relays?: string[];
|
|
@@ -692,6 +708,8 @@ interface NostrTransportProviderConfig {
|
|
|
692
708
|
createWebSocket: WebSocketFactory;
|
|
693
709
|
/** UUID generator (optional, defaults to crypto.randomUUID) */
|
|
694
710
|
generateUUID?: UUIDGenerator;
|
|
711
|
+
/** Optional storage adapter for persisting subscription timestamps */
|
|
712
|
+
storage?: TransportStorageAdapter;
|
|
695
713
|
}
|
|
696
714
|
declare class NostrTransportProvider implements TransportProvider {
|
|
697
715
|
readonly id = "nostr";
|
|
@@ -699,11 +717,15 @@ declare class NostrTransportProvider implements TransportProvider {
|
|
|
699
717
|
readonly type: "p2p";
|
|
700
718
|
readonly description = "P2P messaging via Nostr protocol";
|
|
701
719
|
private config;
|
|
720
|
+
private storage;
|
|
721
|
+
/** In-memory max event timestamp to avoid read-before-write races in updateLastEventTimestamp. */
|
|
722
|
+
private lastEventTs;
|
|
702
723
|
private identity;
|
|
703
724
|
private keyManager;
|
|
704
725
|
private status;
|
|
705
726
|
private nostrClient;
|
|
706
727
|
private mainSubscriptionId;
|
|
728
|
+
private processedEventIds;
|
|
707
729
|
private messageHandlers;
|
|
708
730
|
private transferHandlers;
|
|
709
731
|
private paymentRequestHandlers;
|
|
@@ -800,6 +822,12 @@ declare class NostrTransportProvider implements TransportProvider {
|
|
|
800
822
|
publishBroadcast(content: string, tags?: string[]): Promise<string>;
|
|
801
823
|
onEvent(callback: TransportEventCallback): () => void;
|
|
802
824
|
private handleEvent;
|
|
825
|
+
/**
|
|
826
|
+
* Save the max event timestamp to storage (fire-and-forget, no await needed by caller).
|
|
827
|
+
* Uses in-memory `lastEventTs` to avoid read-before-write race conditions
|
|
828
|
+
* when multiple events arrive in quick succession.
|
|
829
|
+
*/
|
|
830
|
+
private updateLastEventTimestamp;
|
|
803
831
|
private handleDirectMessage;
|
|
804
832
|
private handleGiftWrap;
|
|
805
833
|
private handleTokenTransfer;
|
|
@@ -809,6 +837,7 @@ declare class NostrTransportProvider implements TransportProvider {
|
|
|
809
837
|
private createEvent;
|
|
810
838
|
private createEncryptedEvent;
|
|
811
839
|
private publishEvent;
|
|
840
|
+
fetchPendingEvents(): Promise<void>;
|
|
812
841
|
private queryEvents;
|
|
813
842
|
private walletSubscriptionId;
|
|
814
843
|
private chatSubscriptionId;
|
|
@@ -1301,6 +1330,42 @@ interface BaseProviders {
|
|
|
1301
1330
|
price?: PriceProvider;
|
|
1302
1331
|
}
|
|
1303
1332
|
|
|
1333
|
+
/** IPFS storage provider configuration */
|
|
1334
|
+
interface IpfsStorageConfig {
|
|
1335
|
+
/** Gateway URLs for HTTP API (defaults to Unicity dedicated nodes) */
|
|
1336
|
+
gateways?: string[];
|
|
1337
|
+
/** Content fetch timeout in ms (default: 15000) */
|
|
1338
|
+
fetchTimeoutMs?: number;
|
|
1339
|
+
/** IPNS resolution timeout in ms (default: 10000) */
|
|
1340
|
+
resolveTimeoutMs?: number;
|
|
1341
|
+
/** IPNS publish timeout in ms (default: 30000) */
|
|
1342
|
+
publishTimeoutMs?: number;
|
|
1343
|
+
/** Gateway connectivity test timeout in ms (default: 5000) */
|
|
1344
|
+
connectivityTimeoutMs?: number;
|
|
1345
|
+
/** IPNS record lifetime in ms (default: 99 years) */
|
|
1346
|
+
ipnsLifetimeMs?: number;
|
|
1347
|
+
/** IPNS cache TTL in ms (default: 60000) */
|
|
1348
|
+
ipnsCacheTtlMs?: number;
|
|
1349
|
+
/** Circuit breaker failure threshold (default: 3) */
|
|
1350
|
+
circuitBreakerThreshold?: number;
|
|
1351
|
+
/** Circuit breaker cooldown in ms (default: 60000) */
|
|
1352
|
+
circuitBreakerCooldownMs?: number;
|
|
1353
|
+
/** Known-fresh window in ms (default: 30000) */
|
|
1354
|
+
knownFreshWindowMs?: number;
|
|
1355
|
+
/** Enable debug logging (default: false) */
|
|
1356
|
+
debug?: boolean;
|
|
1357
|
+
/** WebSocket factory for IPNS push subscriptions (cross-platform) */
|
|
1358
|
+
createWebSocket?: WebSocketFactory;
|
|
1359
|
+
/** Override WebSocket URL (auto-derived from gateways if omitted) */
|
|
1360
|
+
wsUrl?: string;
|
|
1361
|
+
/** Fallback polling interval in ms when WS unavailable (default: 90000) */
|
|
1362
|
+
fallbackPollIntervalMs?: number;
|
|
1363
|
+
/** Debounce for push-triggered sync in ms (default: 500) */
|
|
1364
|
+
syncDebounceMs?: number;
|
|
1365
|
+
/** Debounce interval for background flush in ms (default: 2000) */
|
|
1366
|
+
flushDebounceMs?: number;
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1304
1369
|
/**
|
|
1305
1370
|
* Node.js Implementation
|
|
1306
1371
|
* Providers for CLI/Node.js usage
|
|
@@ -1321,6 +1386,18 @@ type NodeOracleConfig = BaseOracleConfig & NodeOracleExtensions;
|
|
|
1321
1386
|
* Same as base
|
|
1322
1387
|
*/
|
|
1323
1388
|
type NodeL1Config = L1Config;
|
|
1389
|
+
/** Node.js IPFS sync configuration */
|
|
1390
|
+
interface NodeIpfsSyncConfig {
|
|
1391
|
+
/** Enable IPFS sync (default: false) */
|
|
1392
|
+
enabled?: boolean;
|
|
1393
|
+
/** IPFS storage provider configuration */
|
|
1394
|
+
config?: IpfsStorageConfig;
|
|
1395
|
+
}
|
|
1396
|
+
/** Node.js token sync configuration */
|
|
1397
|
+
interface NodeTokenSyncConfig {
|
|
1398
|
+
/** IPFS sync backend */
|
|
1399
|
+
ipfs?: NodeIpfsSyncConfig;
|
|
1400
|
+
}
|
|
1324
1401
|
interface NodeProvidersConfig {
|
|
1325
1402
|
/** Network preset: mainnet, testnet, or dev */
|
|
1326
1403
|
network?: NetworkType;
|
|
@@ -1336,6 +1413,8 @@ interface NodeProvidersConfig {
|
|
|
1336
1413
|
l1?: NodeL1Config;
|
|
1337
1414
|
/** Price provider configuration (optional — enables fiat value display) */
|
|
1338
1415
|
price?: BasePriceConfig;
|
|
1416
|
+
/** Token sync backends configuration */
|
|
1417
|
+
tokenSync?: NodeTokenSyncConfig;
|
|
1339
1418
|
}
|
|
1340
1419
|
interface NodeProviders {
|
|
1341
1420
|
storage: StorageProvider;
|
|
@@ -1346,6 +1425,8 @@ interface NodeProviders {
|
|
|
1346
1425
|
l1?: L1Config;
|
|
1347
1426
|
/** Price provider (optional — enables fiat value display) */
|
|
1348
1427
|
price?: PriceProvider;
|
|
1428
|
+
/** IPFS token storage provider (when tokenSync.ipfs.enabled is true) */
|
|
1429
|
+
ipfsTokenStorage?: TokenStorageProvider<TxfStorageDataBase>;
|
|
1349
1430
|
}
|
|
1350
1431
|
/**
|
|
1351
1432
|
* Create all Node.js providers with default configuration
|
|
@@ -1385,4 +1466,4 @@ interface NodeProviders {
|
|
|
1385
1466
|
*/
|
|
1386
1467
|
declare function createNodeProviders(config?: NodeProvidersConfig): NodeProviders;
|
|
1387
1468
|
|
|
1388
|
-
export { type BaseOracleConfig, type BaseProviders, type BaseTransportConfig, FileStorageProvider, type FileStorageProviderConfig, type FileTokenStorageConfig, FileTokenStorageProvider, type IWebSocket, type L1Config, type NodeL1Config, type NodeOracleConfig, type NodeProviders, type NodeProvidersConfig, type NodeTransportConfig, NodeTrustBaseLoader, NostrTransportProvider, type NostrTransportProviderConfig, type TrustBaseLoader$1 as TrustBaseLoader, UnicityAggregatorProvider, type UnicityAggregatorProviderConfig, UnicityOracleProvider, type UnicityOracleProviderConfig, type WebSocketFactory, createFileStorageProvider, createFileTokenStorageProvider, createNodeProviders, createNodeTrustBaseLoader, createNodeWebSocketFactory, createNostrTransportProvider, createUnicityAggregatorProvider, createUnicityOracleProvider };
|
|
1469
|
+
export { type BaseOracleConfig, type BaseProviders, type BaseTransportConfig, FileStorageProvider, type FileStorageProviderConfig, type FileTokenStorageConfig, FileTokenStorageProvider, type IWebSocket, type L1Config, type NodeIpfsSyncConfig, type NodeL1Config, type NodeOracleConfig, type NodeProviders, type NodeProvidersConfig, type NodeTokenSyncConfig, type NodeTransportConfig, NodeTrustBaseLoader, NostrTransportProvider, type NostrTransportProviderConfig, type TrustBaseLoader$1 as TrustBaseLoader, UnicityAggregatorProvider, type UnicityAggregatorProviderConfig, UnicityOracleProvider, type UnicityOracleProviderConfig, type WebSocketFactory, createFileStorageProvider, createFileTokenStorageProvider, createNodeProviders, createNodeTrustBaseLoader, createNodeWebSocketFactory, createNostrTransportProvider, createUnicityAggregatorProvider, createUnicityOracleProvider };
|