amule-ec-client 0.4.3 → 0.5.0

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
@@ -4,17 +4,17 @@ interface AmuleFile {
4
4
  filePath?: string;
5
5
  sizeFull?: number;
6
6
  fileEd2kLink?: string;
7
- upPrio: number;
8
- getRequests: number;
9
- getAllRequests: number;
10
- getAccepts: number;
11
- getAllAccepts: number;
12
- getXferred: number;
13
- getAllXferred: number;
14
- getCompleteSourcesLow: number;
15
- getCompleteSourcesHigh: number;
16
- getCompleteSources: number;
17
- getOnQueue: number;
7
+ upPrio?: number;
8
+ getRequests?: number;
9
+ getAllRequests?: number;
10
+ getAccepts?: number;
11
+ getAllAccepts?: number;
12
+ getXferred?: number;
13
+ getAllXferred?: number;
14
+ getCompleteSourcesLow?: number;
15
+ getCompleteSourcesHigh?: number;
16
+ getCompleteSources?: number;
17
+ getOnQueue?: number;
18
18
  getComment?: string;
19
19
  getRating?: number;
20
20
  }
@@ -22,48 +22,48 @@ interface AmuleTransferringFile extends AmuleFile {
22
22
  partMetID?: number;
23
23
  sizeXfer?: number;
24
24
  sizeDone?: number;
25
- fileStatus: FileStatus;
26
- stopped: boolean;
27
- sourceCount: number;
28
- sourceNotCurrCount: number;
29
- sourceXferCount: number;
30
- sourceCountA4AF: number;
25
+ fileStatus?: FileStatus;
26
+ stopped?: boolean;
27
+ sourceCount?: number;
28
+ sourceNotCurrCount?: number;
29
+ sourceXferCount?: number;
30
+ sourceCountA4AF?: number;
31
31
  speed?: number;
32
- downPrio: number;
33
- fileCat: number;
34
- lastSeenComplete: number;
35
- lastDateChanged: number;
36
- downloadActiveTime: number;
37
- availablePartCount: number;
38
- a4AFAuto: boolean;
39
- hashingProgress: boolean;
40
- getLostDueToCorruption: number;
41
- getGainDueToCompression: number;
42
- totalPacketsSavedDueToICH: number;
43
- a4afSources: number[];
32
+ downPrio?: number;
33
+ fileCat?: number;
34
+ lastSeenComplete?: number;
35
+ lastDateChanged?: number;
36
+ downloadActiveTime?: number;
37
+ availablePartCount?: number;
38
+ a4AFAuto?: boolean;
39
+ hashingProgress?: boolean;
40
+ getLostDueToCorruption?: number;
41
+ getGainDueToCompression?: number;
42
+ totalPacketsSavedDueToICH?: number;
43
+ a4afSources?: number[];
44
44
  }
45
45
  interface AmuleCategory {
46
- id: number;
47
- name: string;
48
- path: string;
49
- comment: string;
50
- color: number;
51
- priority: number;
46
+ id?: number;
47
+ name?: string;
48
+ path?: string;
49
+ comment?: string;
50
+ color?: number;
51
+ priority?: number;
52
52
  }
53
53
  interface AmuleServer {
54
54
  name?: string;
55
55
  description?: string;
56
56
  address?: string;
57
- ip: string;
58
- port: number;
57
+ ip?: string;
58
+ port?: number;
59
59
  ping?: number;
60
60
  users?: number;
61
61
  maxUsers?: number;
62
62
  files?: number;
63
- priority: number;
63
+ priority?: number;
64
64
  version?: string;
65
- isStatic: boolean;
66
- failedCount: number;
65
+ isStatic?: boolean;
66
+ failedCount?: number;
67
67
  }
68
68
  interface AmuleUpDownClient {
69
69
  clientName?: string;
@@ -98,7 +98,7 @@ interface AmuleUpDownClient {
98
98
  uploadFilename?: string;
99
99
  requestFileId?: bigint | number;
100
100
  remoteFilename?: string;
101
- disableViewShared: boolean;
101
+ disableViewShared?: boolean;
102
102
  version?: number;
103
103
  modVersion?: string;
104
104
  osInfo?: string;
@@ -108,6 +108,15 @@ interface AmuleUpDownClient {
108
108
  lastDownloadingPart?: number;
109
109
  uploadPartStatus?: string;
110
110
  }
111
+ interface AmuleFriend {
112
+ name?: string;
113
+ userHashHexString?: string;
114
+ ip?: string;
115
+ port?: number;
116
+ friendSlot?: boolean;
117
+ shared?: boolean;
118
+ client?: AmuleUpDownClient;
119
+ }
111
120
  declare enum FileStatus {
112
121
  READY = 0,
113
122
  EMPTY = 1,
@@ -176,161 +185,6 @@ declare enum SearchFileDownloadStatus {
176
185
  QUEUEDCANCELED = 4
177
186
  }
178
187
 
179
- /**
180
- * Main aMule EC Client
181
- */
182
-
183
- interface AmuleClientOptions {
184
- host: string;
185
- port: number;
186
- password: string;
187
- timeout?: number;
188
- }
189
- interface StatsResponse {
190
- id: number;
191
- ed2kId: number;
192
- kadId?: string;
193
- connectedServer?: {
194
- name?: string;
195
- description?: string;
196
- ip: string;
197
- port: number;
198
- };
199
- connectionState?: any;
200
- uploadOverhead: number;
201
- downloadOverhead: number;
202
- bannedCount: number;
203
- loggerMessage: string[];
204
- totalSentBytes: number;
205
- totalReceivedBytes: number;
206
- sharedFileCount: number;
207
- uploadSpeed: number;
208
- downloadSpeed: number;
209
- uploadSpeedLimit: number;
210
- downloadSpeedLimit: number;
211
- uploadQueueLength: number;
212
- totalSourceCount: number;
213
- ed2kUsers: number;
214
- kadUsers: number;
215
- ed2kFiles: number;
216
- kadFiles: number;
217
- kadNodes: number;
218
- }
219
- interface SearchResultsResponse {
220
- files: {
221
- fileName: string;
222
- hash: Buffer;
223
- sizeFull: number;
224
- downloadStatus: number;
225
- completeSourceCount: number;
226
- sourceCount: number;
227
- }[];
228
- }
229
- declare class AmuleClient {
230
- private connection;
231
- constructor(options: AmuleClientOptions);
232
- /**
233
- * Reconnect to the server
234
- */
235
- reconnect(): Promise<void>;
236
- /**
237
- * Get server statistics
238
- */
239
- getStats(): Promise<StatsResponse>;
240
- /**
241
- * Start an asynchronous search
242
- */
243
- searchAsync(query: string, searchType?: SearchType, filters?: SearchFilters): Promise<string>;
244
- /**
245
- * Get search status (0-1)
246
- */
247
- searchStatus(): Promise<number>;
248
- /**
249
- * Get search results
250
- */
251
- searchResults(): Promise<SearchResultsResponse>;
252
- /**
253
- * Perform a synchronous search (waits for results)
254
- */
255
- searchSync(query: string, searchType?: SearchType, filters?: SearchFilters, timeout?: number): Promise<SearchResultsResponse>;
256
- /**
257
- * Stop current search
258
- */
259
- searchStop(): Promise<void>;
260
- /**
261
- * Download a file from search results
262
- */
263
- downloadSearchResult(hash: Buffer): Promise<void>;
264
- /**
265
- * Download from an ed2k link
266
- */
267
- downloadEd2kLink(link: string): Promise<void>;
268
- /**
269
- * Get download queue
270
- */
271
- getDownloadQueue(): Promise<AmuleTransferringFile[]>;
272
- /**
273
- * Get shared files
274
- */
275
- getSharedFiles(): Promise<AmuleFile[]>;
276
- /**
277
- * Get client upload/download queue (clients we are uploading to/downloading from)
278
- */
279
- getClientQueue(): Promise<AmuleUpDownClient[]>;
280
- /**
281
- * Get the list of servers
282
- */
283
- getServerList(): Promise<AmuleServer[]>;
284
- /**
285
- * Connect to a specific server
286
- */
287
- connectToServer(ip: string, port: number): Promise<void>;
288
- /**
289
- * Disconnect from the current server
290
- */
291
- disconnectFromServer(): Promise<void>;
292
- /**
293
- * Create a category
294
- */
295
- createCategory(category: AmuleCategory): Promise<void>;
296
- /**
297
- * Update a category
298
- */
299
- updateCategory(id: number, category: AmuleCategory): Promise<void>;
300
- /**
301
- * Delete a category
302
- */
303
- deleteCategory(id: number): Promise<void>;
304
- /**
305
- * Get all categories
306
- */
307
- getCategories(): Promise<AmuleCategory[]>;
308
- /**
309
- * Set file category
310
- */
311
- setFileCategory(hash: Buffer, categoryId: number): Promise<void>;
312
- /**
313
- * Send a download command (PAUSE, RESUME, STOP, DELETE, etc.)
314
- */
315
- sendDownloadCommand(hash: Buffer, command: DownloadCommand): Promise<void>;
316
- /**
317
- * Pause a download
318
- */
319
- pauseDownload(hash: Buffer): Promise<void>;
320
- /**
321
- * Resume a download
322
- */
323
- resumeDownload(hash: Buffer): Promise<void>;
324
- /**
325
- * Stop a download
326
- */
327
- stopDownload(hash: Buffer): Promise<void>;
328
- /**
329
- * Delete a download
330
- */
331
- deleteDownload(hash: Buffer): Promise<void>;
332
- }
333
-
334
188
  declare enum ProtocolVersion {
335
189
  EC_CURRENT_PROTOCOL_VERSION = 516
336
190
  }
@@ -745,6 +599,172 @@ declare enum ECTagType {
745
599
  EC_TAGTYPE_UINT128 = 10
746
600
  }
747
601
 
602
+ /**
603
+ * Main aMule EC Client
604
+ */
605
+
606
+ interface AmuleClientOptions {
607
+ host: string;
608
+ port: number;
609
+ password: string;
610
+ timeout?: number;
611
+ }
612
+ interface StatsResponse {
613
+ id: number;
614
+ ed2kId: number;
615
+ kadId?: string;
616
+ connectedServer?: {
617
+ name?: string;
618
+ description?: string;
619
+ ip: string;
620
+ port: number;
621
+ };
622
+ connectionState?: any;
623
+ uploadOverhead: number;
624
+ downloadOverhead: number;
625
+ bannedCount: number;
626
+ loggerMessage: string[];
627
+ totalSentBytes: number;
628
+ totalReceivedBytes: number;
629
+ sharedFileCount: number;
630
+ uploadSpeed: number;
631
+ downloadSpeed: number;
632
+ uploadSpeedLimit: number;
633
+ downloadSpeedLimit: number;
634
+ uploadQueueLength: number;
635
+ totalSourceCount: number;
636
+ ed2kUsers: number;
637
+ kadUsers: number;
638
+ ed2kFiles: number;
639
+ kadFiles: number;
640
+ kadNodes: number;
641
+ }
642
+ interface SearchResultsResponse {
643
+ files: {
644
+ fileName: string;
645
+ hash: Buffer;
646
+ sizeFull: number;
647
+ downloadStatus: number;
648
+ completeSourceCount: number;
649
+ sourceCount: number;
650
+ }[];
651
+ }
652
+ interface UpdateResponse {
653
+ sharedFiles: AmuleFile[];
654
+ downloadQueue: AmuleTransferringFile[];
655
+ clients: AmuleUpDownClient[];
656
+ servers: AmuleServer[];
657
+ friends: AmuleFriend[];
658
+ }
659
+ declare class AmuleClient {
660
+ private connection;
661
+ constructor(options: AmuleClientOptions);
662
+ /**
663
+ * Reconnect to the server
664
+ */
665
+ reconnect(): Promise<void>;
666
+ /**
667
+ * Get server statistics
668
+ */
669
+ getStats(): Promise<StatsResponse>;
670
+ /**
671
+ * Get incremental updates for files, clients, servers, and friends
672
+ */
673
+ getUpdate(detailLevel?: ECDetailLevel): Promise<UpdateResponse>;
674
+ /**
675
+ * Start an asynchronous search
676
+ */
677
+ searchAsync(query: string, searchType?: SearchType, filters?: SearchFilters): Promise<string>;
678
+ /**
679
+ * Get search status (0-1)
680
+ */
681
+ searchStatus(): Promise<number>;
682
+ /**
683
+ * Get search results
684
+ */
685
+ searchResults(): Promise<SearchResultsResponse>;
686
+ /**
687
+ * Perform a synchronous search (waits for results)
688
+ */
689
+ searchSync(query: string, searchType?: SearchType, filters?: SearchFilters, timeout?: number): Promise<SearchResultsResponse>;
690
+ /**
691
+ * Stop current search
692
+ */
693
+ searchStop(): Promise<void>;
694
+ /**
695
+ * Download a file from search results
696
+ */
697
+ downloadSearchResult(hash: Buffer): Promise<void>;
698
+ /**
699
+ * Download from an ed2k link
700
+ */
701
+ downloadEd2kLink(link: string): Promise<void>;
702
+ /**
703
+ * Get download queue
704
+ */
705
+ getDownloadQueue(): Promise<AmuleTransferringFile[]>;
706
+ /**
707
+ * Get shared files
708
+ */
709
+ getSharedFiles(): Promise<AmuleFile[]>;
710
+ /**
711
+ * Get client upload/download queue (clients we are uploading to/downloading from)
712
+ */
713
+ getClientQueue(): Promise<AmuleUpDownClient[]>;
714
+ /**
715
+ * Get the list of servers
716
+ */
717
+ getServerList(): Promise<AmuleServer[]>;
718
+ /**
719
+ * Connect to a specific server
720
+ */
721
+ connectToServer(ip: string, port: number): Promise<void>;
722
+ /**
723
+ * Disconnect from the current server
724
+ */
725
+ disconnectFromServer(): Promise<void>;
726
+ /**
727
+ * Create a category
728
+ */
729
+ createCategory(category: AmuleCategory): Promise<void>;
730
+ /**
731
+ * Update a category
732
+ */
733
+ updateCategory(id: number, category: AmuleCategory): Promise<void>;
734
+ /**
735
+ * Delete a category
736
+ */
737
+ deleteCategory(id: number): Promise<void>;
738
+ /**
739
+ * Get all categories
740
+ */
741
+ getCategories(): Promise<AmuleCategory[]>;
742
+ /**
743
+ * Set file category
744
+ */
745
+ setFileCategory(hash: Buffer, categoryId: number): Promise<void>;
746
+ /**
747
+ * Send a download command (PAUSE, RESUME, STOP, DELETE, etc.)
748
+ */
749
+ sendDownloadCommand(hash: Buffer, command: DownloadCommand): Promise<void>;
750
+ /**
751
+ * Pause a download
752
+ */
753
+ pauseDownload(hash: Buffer): Promise<void>;
754
+ /**
755
+ * Resume a download
756
+ */
757
+ resumeDownload(hash: Buffer): Promise<void>;
758
+ /**
759
+ * Stop a download
760
+ */
761
+ stopDownload(hash: Buffer): Promise<void>;
762
+ /**
763
+ * Delete a download
764
+ */
765
+ deleteDownload(hash: Buffer): Promise<void>;
766
+ }
767
+
748
768
  declare class AmuleException extends Error {
749
769
  cause?: Error | undefined;
750
770
  constructor(message: string, cause?: Error | undefined);
@@ -993,4 +1013,4 @@ declare class PacketParser {
993
1013
  static hasCompletePacket(buffer: Buffer): boolean;
994
1014
  }
995
1015
 
996
- export { type AmuleCategory, AmuleClient, type AmuleClientOptions, AmuleException, type AmuleFile, type AmuleServer, type AmuleTransferringFile, type AmuleUpDownClient, CommunicationException, type ConnectionState, CustomTag, DoubleTag, DownloadCommand, ECDetailLevel, ECOpCode, ECSearchType, ECTagName, EcPrefs, FileStatus, Flags, Hash16Tag, InvalidECException, Ipv4Tag, Packet, PacketParser, PacketWriter, ProtocolVersion, SearchFileDownloadStatus, type SearchFilters, type SearchResultsResponse, SearchType, ServerException, type StatsResponse, StringTag, Tag, UByteTag, UInt128Tag, UIntTag, ULongTag, UShortTag };
1016
+ export { type AmuleCategory, AmuleClient, type AmuleClientOptions, AmuleException, type AmuleFile, type AmuleFriend, type AmuleServer, type AmuleTransferringFile, type AmuleUpDownClient, CommunicationException, type ConnectionState, CustomTag, DoubleTag, DownloadCommand, ECDetailLevel, ECOpCode, ECSearchType, ECTagName, EcPrefs, FileStatus, Flags, Hash16Tag, InvalidECException, Ipv4Tag, Packet, PacketParser, PacketWriter, ProtocolVersion, SearchFileDownloadStatus, type SearchFilters, type SearchResultsResponse, SearchType, ServerException, type StatsResponse, StringTag, Tag, UByteTag, UInt128Tag, UIntTag, ULongTag, UShortTag, type UpdateResponse };