shogun-relay-sdk 1.1.4 → 1.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.ts CHANGED
@@ -7,6 +7,7 @@ import { DealsModule } from './modules/deals';
7
7
  import { RegistryModule } from './modules/registry';
8
8
  import { UploadsModule } from './modules/uploads';
9
9
  import { BridgeModule } from './modules/bridge';
10
+ export * from './types';
10
11
  export declare class ShogunRelaySDK {
11
12
  private client;
12
13
  system: SystemModule;
package/dist/index.js CHANGED
@@ -1,4 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
17
  exports.ShogunRelaySDK = void 0;
4
18
  const client_1 = require("./client");
@@ -10,6 +24,8 @@ const deals_1 = require("./modules/deals");
10
24
  const registry_1 = require("./modules/registry");
11
25
  const uploads_1 = require("./modules/uploads");
12
26
  const bridge_1 = require("./modules/bridge");
27
+ // Export types
28
+ __exportStar(require("./types"), exports);
13
29
  class ShogunRelaySDK {
14
30
  constructor(config) {
15
31
  this.client = new client_1.ApiClient(config);
@@ -1,15 +1,16 @@
1
1
  import { ApiClient } from '../client';
2
+ import { ReputationResponse, ReputationLeaderboardResponse, BestRelaysResponse, NetworkStatsResponse, RelayInfoResponse, RelaysListResponse } from '../types';
2
3
  export declare class NetworkModule {
3
4
  private client;
4
5
  constructor(client: ApiClient);
5
- getRelays(timeout?: number, maxAge?: number): Promise<any>;
6
- getRelay(host: string): Promise<any>;
7
- getStats(): Promise<any>;
6
+ getRelays(timeout?: number, maxAge?: number): Promise<RelaysListResponse>;
7
+ getRelay(host: string): Promise<RelayInfoResponse>;
8
+ getStats(): Promise<NetworkStatsResponse>;
8
9
  getProof(cid: string, challenge?: string): Promise<any>;
9
10
  verifyProof(proof: any): Promise<any>;
10
- getReputation(host: string): Promise<any>;
11
- getReputationLeaderboard(minScore?: number, limit?: number): Promise<any>;
12
- getBestRelays(count?: number, minScore?: number, excludeHost?: string): Promise<any>;
11
+ getReputation(host: string): Promise<ReputationResponse>;
12
+ getReputationLeaderboard(minScore?: number, limit?: number): Promise<ReputationLeaderboardResponse>;
13
+ getBestRelays(count?: number, minScore?: number, excludeHost?: string): Promise<BestRelaysResponse>;
13
14
  getOnChainRelays(chainId?: number): Promise<any>;
14
15
  getOnChainRelay(address: string, chainId?: number): Promise<any>;
15
16
  getOnChainParams(chainId?: number): Promise<any>;
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Type definitions for Shogun Relay SDK
3
+ */
4
+ /**
5
+ * Reputation Score Breakdown
6
+ */
7
+ export interface ReputationScoreBreakdown {
8
+ uptime: number;
9
+ proofSuccess: number;
10
+ responseTime: number;
11
+ pinFulfillment: number;
12
+ longevity: number;
13
+ resourceEfficiency?: number;
14
+ storageCapacity?: number;
15
+ dataQuality?: number;
16
+ reliability?: number;
17
+ dealPerformance?: number;
18
+ networkHealth?: number;
19
+ }
20
+ /**
21
+ * Reputation Weights
22
+ */
23
+ export interface ReputationWeights {
24
+ uptime: number;
25
+ proofSuccess: number;
26
+ responseTime: number;
27
+ pinFulfillment: number;
28
+ longevity: number;
29
+ }
30
+ /**
31
+ * Calculated Reputation Score
32
+ */
33
+ export interface ReputationScore {
34
+ total: number;
35
+ tier: 'excellent' | 'good' | 'average' | 'poor' | 'unreliable';
36
+ breakdown: ReputationScoreBreakdown;
37
+ weights: ReputationWeights;
38
+ hasEnoughData: boolean;
39
+ }
40
+ /**
41
+ * Reputation Metrics
42
+ */
43
+ export interface ReputationMetrics {
44
+ host?: string;
45
+ firstSeenTimestamp?: number;
46
+ lastSeenTimestamp?: number;
47
+ dataPoints?: number;
48
+ proofsTotal?: number;
49
+ proofsSuccessful?: number;
50
+ proofsFailed?: number;
51
+ avgResponseTimeMs?: number;
52
+ responseTimeSamples?: number;
53
+ pinRequestsReceived?: number;
54
+ pinRequestsFulfilled?: number;
55
+ expectedPulses?: number;
56
+ receivedPulses?: number;
57
+ uptimePercent?: number;
58
+ bridgeBatchSubmissionsTotal?: number;
59
+ bridgeBatchSubmissionsSuccessful?: number;
60
+ bridgeBatchSubmissionsFailed?: number;
61
+ bridgeProofsTotal?: number;
62
+ bridgeProofsSuccessful?: number;
63
+ bridgeProofsFailed?: number;
64
+ bridgeAvgProofResponseTimeMs?: number;
65
+ bridgeProofResponseTimeSamples?: number;
66
+ avgConnections?: number;
67
+ maxConnections?: number;
68
+ avgMemoryUsageMB?: number;
69
+ maxMemoryUsageMB?: number;
70
+ storageCapacityMB?: number;
71
+ storageUsedMB?: number;
72
+ storageUtilizationPercent?: number;
73
+ ipfsRepoSizeMB?: number;
74
+ ipfsPinsCount?: number;
75
+ avgLatencyMs?: number;
76
+ latencySamples?: number;
77
+ throughputMBps?: number;
78
+ errorRate?: number;
79
+ meanTimeBetweenFailures?: number;
80
+ meanTimeToRecovery?: number;
81
+ downtimeEvents?: number;
82
+ totalDowntimeMs?: number;
83
+ dataIntegrityChecks?: number;
84
+ dataIntegrityFailures?: number;
85
+ dataFreshnessMs?: number;
86
+ peerConnections?: number;
87
+ networkReachability?: number;
88
+ dealsTotal?: number;
89
+ dealsActive?: number;
90
+ dealsCompleted?: number;
91
+ dealsFailed?: number;
92
+ dealFulfillmentRate?: number;
93
+ subscriptionsTotal?: number;
94
+ subscriptionsActive?: number;
95
+ subscriptionRetentionRate?: number;
96
+ apiRequestsTotal?: number;
97
+ apiRequestsSuccessful?: number;
98
+ apiRequestsFailed?: number;
99
+ apiUptimePercent?: number;
100
+ securityIncidents?: number;
101
+ lastSecurityIncident?: number;
102
+ score?: number;
103
+ tier?: string;
104
+ lastScoreUpdate?: number;
105
+ proofSuccessRate?: number;
106
+ }
107
+ /**
108
+ * Leaderboard Entry with calculated score
109
+ */
110
+ export interface ReputationLeaderboardEntry extends ReputationMetrics {
111
+ calculatedScore: ReputationScore;
112
+ }
113
+ /**
114
+ * Reputation API Response
115
+ */
116
+ export interface ReputationResponse {
117
+ success: boolean;
118
+ host?: string;
119
+ reputation?: ReputationLeaderboardEntry;
120
+ error?: string;
121
+ }
122
+ /**
123
+ * Reputation Leaderboard Response
124
+ */
125
+ export interface ReputationLeaderboardResponse {
126
+ success: boolean;
127
+ count: number;
128
+ leaderboard: ReputationLeaderboardEntry[];
129
+ filters?: {
130
+ minScore?: number;
131
+ tier?: string;
132
+ limit?: number;
133
+ };
134
+ error?: string;
135
+ }
136
+ /**
137
+ * Best Relays Response
138
+ */
139
+ export interface BestRelaysResponse {
140
+ success: boolean;
141
+ count: number;
142
+ relays: Array<{
143
+ host: string;
144
+ score: number;
145
+ tier: string;
146
+ uptime: number;
147
+ lastSeen: number;
148
+ }>;
149
+ error?: string;
150
+ }
151
+ /**
152
+ * Network Stats Response
153
+ */
154
+ export interface NetworkStatsResponse {
155
+ success: boolean;
156
+ stats: {
157
+ totalRelays: number;
158
+ activeRelays: number;
159
+ totalConnections: number;
160
+ totalStorageBytes: number;
161
+ totalStorageMB: number;
162
+ totalStorageGB: string;
163
+ totalPins: number;
164
+ totalActiveDeals: number;
165
+ totalActiveSubscriptions: number;
166
+ totalDealStorageMB: number;
167
+ totalSubscriptionStorageMB: number;
168
+ };
169
+ timestamp: number;
170
+ debug?: {
171
+ relaysFound: number;
172
+ relaysWithPulse: number;
173
+ sources: {
174
+ pulse: string;
175
+ deals: string;
176
+ subscriptions: string;
177
+ ipfsDirect: string;
178
+ };
179
+ };
180
+ error?: string;
181
+ }
182
+ /**
183
+ * Relay Info Response
184
+ */
185
+ export interface RelayInfoResponse {
186
+ success: boolean;
187
+ host: string;
188
+ endpoint?: string;
189
+ lastSeen?: number;
190
+ uptime?: number;
191
+ connections?: {
192
+ active?: number;
193
+ total?: number;
194
+ };
195
+ memory?: {
196
+ heapUsed?: number;
197
+ heapTotal?: number;
198
+ rss?: number;
199
+ };
200
+ ipfs?: {
201
+ connected: boolean;
202
+ repoSize?: number;
203
+ repoSizeMB?: number;
204
+ numPins?: number;
205
+ numObjects?: number;
206
+ };
207
+ storage?: {
208
+ used?: number;
209
+ capacity?: number;
210
+ };
211
+ error?: string;
212
+ }
213
+ /**
214
+ * Relays List Response
215
+ */
216
+ export interface RelaysListResponse {
217
+ success: boolean;
218
+ count: number;
219
+ relays: Array<{
220
+ host: string;
221
+ endpoint: string | null;
222
+ lastSeen: number;
223
+ uptime?: number;
224
+ connections?: {
225
+ active?: number;
226
+ total?: number;
227
+ };
228
+ memory?: {
229
+ heapUsed?: number;
230
+ heapTotal?: number;
231
+ };
232
+ ipfs?: {
233
+ connected: boolean;
234
+ repoSize?: number;
235
+ numPins?: number;
236
+ };
237
+ storage?: {
238
+ used?: number;
239
+ capacity?: number;
240
+ };
241
+ }>;
242
+ error?: string;
243
+ }
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * Type definitions for Shogun Relay SDK
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shogun-relay-sdk",
3
- "version": "1.1.4",
3
+ "version": "1.1.5",
4
4
  "description": "SDK for interacting with Shogun Relay API - HTTP client for IPFS, deals, registry, and network operations",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",