amule-ec-client 0.6.0 → 0.6.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/{AddLinkRequest-DwUbSMXD.mjs → AddLinkRequest-D2IME4eb.js} +3 -5
- package/dist/{ClientQueueRequest-D9FaX5K9.mjs → ClientQueueRequest-DFfCiNcz.js} +3 -5
- package/dist/{ClientQueueResponse-FVQBR_8b.mjs → ClientQueueResponse-JTrBqrr1.js} +3 -5
- package/dist/{Codes-CjiW7Pdl.mjs → Codes-CjiW7Pdl.js} +0 -2
- package/dist/{CreateCategoryRequest-Br6yfDhZ.mjs → CreateCategoryRequest-CRUMcPo5.js} +3 -5
- package/dist/{DeleteCategoryRequest-C2-p6sx0.mjs → DeleteCategoryRequest-C8v9oGZ-.js} +3 -5
- package/dist/{DownloadCommandRequest-CaULjfNi.mjs → DownloadCommandRequest-B3KV_bvm.js} +4 -6
- package/dist/{DownloadFileRequest-CcNqsBo7.mjs → DownloadFileRequest-BjrroO3h.js} +3 -5
- package/dist/{DownloadQueueRequest-bd7lFiMj.mjs → DownloadQueueRequest-Dil5hl3D.js} +3 -5
- package/dist/{DownloadQueueResponse-DyP1rLTV.mjs → DownloadQueueResponse-DUam_zNf.js} +4 -6
- package/dist/{GetPreferencesRequest-C94Su9IH.mjs → GetPreferencesRequest-DsxlghqT.js} +3 -5
- package/dist/{PreferencesDetailsResponse-BjMxbvVY.mjs → PreferencesDetailsResponse-DapscVQi.js} +2 -4
- package/dist/{PreferencesResponse-Dth-n2sA.mjs → PreferencesResponse-8n1STWUZ.js} +2 -4
- package/dist/{ReloadSharedFilesRequest-CPwAEJYG.mjs → ReloadSharedFilesRequest-kt0Pxs8A.js} +2 -4
- package/dist/{Request-C0UUuQIX.mjs → Request-C0UUuQIX.js} +0 -2
- package/dist/{SearchProgressResponse-Bputc9Ww.mjs → SearchProgressResponse-C1CdzKnz.js} +2 -4
- package/dist/{SearchRequest-CNqz-K1Z.mjs → SearchRequest-DQnKfA5Z.js} +4 -6
- package/dist/{SearchResultsRequest-DKG508KF.mjs → SearchResultsRequest-2ejFGQmQ.js} +2 -4
- package/dist/{SearchResultsResponse-ChNrKJ6_.mjs → SearchResultsResponse-DwmvbQop.js} +2 -4
- package/dist/{SearchStatusRequest-Bv6iaC9Y.mjs → SearchStatusRequest-B_xr4-72.js} +2 -4
- package/dist/{SearchStopRequest-rET-2Nsz.mjs → SearchStopRequest-8hwXobty.js} +2 -4
- package/dist/{ServerConnectRequest-CcO2-Eqd.mjs → ServerConnectRequest-BhNpGiEJ.js} +3 -5
- package/dist/{ServerDisconnectRequest-DEORM3SF.mjs → ServerDisconnectRequest-BjCitLtU.js} +2 -4
- package/dist/{ServerListRequest-FwFQBp12.mjs → ServerListRequest-BWXLGJib.js} +2 -4
- package/dist/{ServerListResponse-ZAKSSCPZ.mjs → ServerListResponse-BUJ7sz5p.js} +3 -5
- package/dist/{ServerUpdateFromUrlRequest-D4xBqJDJ.mjs → ServerUpdateFromUrlRequest-K8C_d0UQ.js} +3 -5
- package/dist/{SetFileCategoryRequest-BwEPJVeR.mjs → SetFileCategoryRequest-VwroLBTV.js} +3 -5
- package/dist/{SetPreferencesRequest-D2fVIH3P.mjs → SetPreferencesRequest-KZ23VaBY.js} +3 -5
- package/dist/{SharedFilePriorityRequest-j6ImgagV.mjs → SharedFilePriorityRequest-7BriqAcr.js} +3 -5
- package/dist/{SharedFilesRequest-D2M3K0eB.mjs → SharedFilesRequest-B72XyRcA.js} +3 -5
- package/dist/{SharedFilesResponse-BiXT_oCx.mjs → SharedFilesResponse-CkqvYd3N.js} +3 -5
- package/dist/{StatsRequest-B8v9LLHG.mjs → StatsRequest-CGGumOOx.js} +3 -5
- package/dist/{StatsResponse-BVUxNPbz.mjs → StatsResponse-DxQk686g.js} +2 -4
- package/dist/{Tag-CZF6BRMY.mjs → Tag-CZF6BRMY.js} +0 -2
- package/dist/{UpdateCategoryRequest-CgzH7SxP.mjs → UpdateCategoryRequest-CzKJa_rC.js} +3 -5
- package/dist/{UpdateRequest-Bunl73Ga.mjs → UpdateRequest-g2ReOQ5m.js} +3 -5
- package/dist/{UpdateResponse-1LhyH9Zf.mjs → UpdateResponse-CGwVjn0Y.js} +7 -9
- package/dist/{download-details-OM0FJUhZ.mjs → download-details-OM0FJUhZ.js} +0 -2
- package/dist/{index.d.mts → index.d.ts} +1 -2
- package/dist/{index.mjs → index.js} +39 -41
- package/dist/{utils-DBnUQnZ-.mjs → utils-DBnUQnZ-.js} +0 -2
- package/package.json +1 -1
- package/dist/AddLinkRequest-DwUbSMXD.mjs.map +0 -1
- package/dist/ClientQueueRequest-D9FaX5K9.mjs.map +0 -1
- package/dist/ClientQueueResponse-FVQBR_8b.mjs.map +0 -1
- package/dist/Codes-CjiW7Pdl.mjs.map +0 -1
- package/dist/CreateCategoryRequest-Br6yfDhZ.mjs.map +0 -1
- package/dist/DeleteCategoryRequest-C2-p6sx0.mjs.map +0 -1
- package/dist/DownloadCommandRequest-CaULjfNi.mjs.map +0 -1
- package/dist/DownloadFileRequest-CcNqsBo7.mjs.map +0 -1
- package/dist/DownloadQueueRequest-bd7lFiMj.mjs.map +0 -1
- package/dist/DownloadQueueResponse-DyP1rLTV.mjs.map +0 -1
- package/dist/GetPreferencesRequest-C94Su9IH.mjs.map +0 -1
- package/dist/PreferencesDetailsResponse-BjMxbvVY.mjs.map +0 -1
- package/dist/PreferencesResponse-Dth-n2sA.mjs.map +0 -1
- package/dist/ReloadSharedFilesRequest-CPwAEJYG.mjs.map +0 -1
- package/dist/Request-C0UUuQIX.mjs.map +0 -1
- package/dist/SearchProgressResponse-Bputc9Ww.mjs.map +0 -1
- package/dist/SearchRequest-CNqz-K1Z.mjs.map +0 -1
- package/dist/SearchResultsRequest-DKG508KF.mjs.map +0 -1
- package/dist/SearchResultsResponse-ChNrKJ6_.mjs.map +0 -1
- package/dist/SearchStatusRequest-Bv6iaC9Y.mjs.map +0 -1
- package/dist/SearchStopRequest-rET-2Nsz.mjs.map +0 -1
- package/dist/ServerConnectRequest-CcO2-Eqd.mjs.map +0 -1
- package/dist/ServerDisconnectRequest-DEORM3SF.mjs.map +0 -1
- package/dist/ServerListRequest-FwFQBp12.mjs.map +0 -1
- package/dist/ServerListResponse-ZAKSSCPZ.mjs.map +0 -1
- package/dist/ServerUpdateFromUrlRequest-D4xBqJDJ.mjs.map +0 -1
- package/dist/SetFileCategoryRequest-BwEPJVeR.mjs.map +0 -1
- package/dist/SetPreferencesRequest-D2fVIH3P.mjs.map +0 -1
- package/dist/SharedFilePriorityRequest-j6ImgagV.mjs.map +0 -1
- package/dist/SharedFilesRequest-D2M3K0eB.mjs.map +0 -1
- package/dist/SharedFilesResponse-BiXT_oCx.mjs.map +0 -1
- package/dist/StatsRequest-B8v9LLHG.mjs.map +0 -1
- package/dist/StatsResponse-BVUxNPbz.mjs.map +0 -1
- package/dist/Tag-CZF6BRMY.mjs.map +0 -1
- package/dist/UpdateCategoryRequest-CgzH7SxP.mjs.map +0 -1
- package/dist/UpdateRequest-Bunl73Ga.mjs.map +0 -1
- package/dist/UpdateResponse-1LhyH9Zf.mjs.map +0 -1
- package/dist/download-details-OM0FJUhZ.mjs.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/utils-DBnUQnZ-.mjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { n as Packet, r as Flags, t as Request } from "./Request-C0UUuQIX.
|
|
2
|
-
import { a as EcPrefs, i as ECTagName, n as ECOpCode, o as ProtocolVersion, r as ECSearchType, t as ECDetailLevel } from "./Codes-CjiW7Pdl.
|
|
3
|
-
import { a as StringTag, c as UInt128Tag, d as UShortTag, f as findNumericTag, i as Ipv4Tag, l as UIntTag, n as DoubleTag, o as Tag, r as Hash16Tag, s as UByteTag, t as CustomTag, u as ULongTag } from "./Tag-CZF6BRMY.
|
|
4
|
-
import { n as PARTSIZE, t as ChunkStatus } from "./download-details-OM0FJUhZ.
|
|
1
|
+
import { n as Packet, r as Flags, t as Request } from "./Request-C0UUuQIX.js";
|
|
2
|
+
import { a as EcPrefs, i as ECTagName, n as ECOpCode, o as ProtocolVersion, r as ECSearchType, t as ECDetailLevel } from "./Codes-CjiW7Pdl.js";
|
|
3
|
+
import { a as StringTag, c as UInt128Tag, d as UShortTag, f as findNumericTag, i as Ipv4Tag, l as UIntTag, n as DoubleTag, o as Tag, r as Hash16Tag, s as UByteTag, t as CustomTag, u as ULongTag } from "./Tag-CZF6BRMY.js";
|
|
4
|
+
import { n as PARTSIZE, t as ChunkStatus } from "./download-details-OM0FJUhZ.js";
|
|
5
5
|
import * as net from "net";
|
|
6
6
|
import * as zlib from "zlib";
|
|
7
7
|
import * as crypto from "crypto";
|
|
@@ -816,8 +816,8 @@ var AmuleClient = class {
|
|
|
816
816
|
* Get server statistics
|
|
817
817
|
*/
|
|
818
818
|
async getStats() {
|
|
819
|
-
const { StatsRequest } = await import("./StatsRequest-
|
|
820
|
-
const { StatsResponseParser } = await import("./StatsResponse-
|
|
819
|
+
const { StatsRequest } = await import("./StatsRequest-CGGumOOx.js");
|
|
820
|
+
const { StatsResponseParser } = await import("./StatsResponse-DxQk686g.js");
|
|
821
821
|
const request = new StatsRequest();
|
|
822
822
|
const packet = await this.connection.sendRequest(request);
|
|
823
823
|
return StatsResponseParser.fromPacket(packet);
|
|
@@ -826,8 +826,8 @@ var AmuleClient = class {
|
|
|
826
826
|
* Get incremental updates for files, clients, servers, and friends
|
|
827
827
|
*/
|
|
828
828
|
async getUpdate(detailLevel = 4) {
|
|
829
|
-
const { UpdateRequest } = await import("./UpdateRequest-
|
|
830
|
-
const { UpdateResponseParser } = await import("./UpdateResponse-
|
|
829
|
+
const { UpdateRequest } = await import("./UpdateRequest-g2ReOQ5m.js");
|
|
830
|
+
const { UpdateResponseParser } = await import("./UpdateResponse-CGwVjn0Y.js");
|
|
831
831
|
const request = new UpdateRequest(detailLevel);
|
|
832
832
|
const packet = await this.connection.sendRequest(request);
|
|
833
833
|
return UpdateResponseParser.fromPacket(packet);
|
|
@@ -836,7 +836,7 @@ var AmuleClient = class {
|
|
|
836
836
|
* Start an asynchronous search
|
|
837
837
|
*/
|
|
838
838
|
async searchAsync(query, searchType, filters) {
|
|
839
|
-
const { SearchRequest } = await import("./SearchRequest-
|
|
839
|
+
const { SearchRequest } = await import("./SearchRequest-DQnKfA5Z.js");
|
|
840
840
|
const request = new SearchRequest(query, searchType, filters);
|
|
841
841
|
await this.connection.sendRequest(request);
|
|
842
842
|
return query;
|
|
@@ -845,8 +845,8 @@ var AmuleClient = class {
|
|
|
845
845
|
* Get search status (0-1)
|
|
846
846
|
*/
|
|
847
847
|
async searchStatus() {
|
|
848
|
-
const { SearchStatusRequest } = await import("./SearchStatusRequest-
|
|
849
|
-
const { SearchProgressResponse } = await import("./SearchProgressResponse-
|
|
848
|
+
const { SearchStatusRequest } = await import("./SearchStatusRequest-B_xr4-72.js");
|
|
849
|
+
const { SearchProgressResponse } = await import("./SearchProgressResponse-C1CdzKnz.js");
|
|
850
850
|
const request = new SearchStatusRequest();
|
|
851
851
|
const packet = await this.connection.sendRequest(request);
|
|
852
852
|
return SearchProgressResponse.fromPacket(packet).progress;
|
|
@@ -855,8 +855,8 @@ var AmuleClient = class {
|
|
|
855
855
|
* Get search results
|
|
856
856
|
*/
|
|
857
857
|
async searchResults() {
|
|
858
|
-
const { SearchResultsRequest } = await import("./SearchResultsRequest-
|
|
859
|
-
const { SearchResultsResponseParser } = await import("./SearchResultsResponse-
|
|
858
|
+
const { SearchResultsRequest } = await import("./SearchResultsRequest-2ejFGQmQ.js");
|
|
859
|
+
const { SearchResultsResponseParser } = await import("./SearchResultsResponse-DwmvbQop.js");
|
|
860
860
|
const request = new SearchResultsRequest();
|
|
861
861
|
const packet = await this.connection.sendRequest(request);
|
|
862
862
|
return SearchResultsResponseParser.fromPacket(packet);
|
|
@@ -877,7 +877,7 @@ var AmuleClient = class {
|
|
|
877
877
|
* Stop current search
|
|
878
878
|
*/
|
|
879
879
|
async searchStop() {
|
|
880
|
-
const { SearchStopRequest } = await import("./SearchStopRequest-
|
|
880
|
+
const { SearchStopRequest } = await import("./SearchStopRequest-8hwXobty.js");
|
|
881
881
|
const request = new SearchStopRequest();
|
|
882
882
|
await this.connection.sendRequest(request);
|
|
883
883
|
}
|
|
@@ -885,7 +885,7 @@ var AmuleClient = class {
|
|
|
885
885
|
* Download a file from search results
|
|
886
886
|
*/
|
|
887
887
|
async downloadSearchResult(hash) {
|
|
888
|
-
const { DownloadFileRequest } = await import("./DownloadFileRequest-
|
|
888
|
+
const { DownloadFileRequest } = await import("./DownloadFileRequest-BjrroO3h.js");
|
|
889
889
|
const request = new DownloadFileRequest(hash);
|
|
890
890
|
await this.connection.sendRequest(request);
|
|
891
891
|
}
|
|
@@ -893,7 +893,7 @@ var AmuleClient = class {
|
|
|
893
893
|
* Download from an ed2k link
|
|
894
894
|
*/
|
|
895
895
|
async downloadEd2kLink(link) {
|
|
896
|
-
const { AddLinkRequest } = await import("./AddLinkRequest-
|
|
896
|
+
const { AddLinkRequest } = await import("./AddLinkRequest-D2IME4eb.js");
|
|
897
897
|
const request = new AddLinkRequest(link);
|
|
898
898
|
await this.connection.sendRequest(request);
|
|
899
899
|
}
|
|
@@ -901,8 +901,8 @@ var AmuleClient = class {
|
|
|
901
901
|
* Get download queue
|
|
902
902
|
*/
|
|
903
903
|
async getDownloadQueue() {
|
|
904
|
-
const { DownloadQueueRequest } = await import("./DownloadQueueRequest-
|
|
905
|
-
const { DownloadQueueResponseParser } = await import("./DownloadQueueResponse-
|
|
904
|
+
const { DownloadQueueRequest } = await import("./DownloadQueueRequest-Dil5hl3D.js");
|
|
905
|
+
const { DownloadQueueResponseParser } = await import("./DownloadQueueResponse-DUam_zNf.js");
|
|
906
906
|
const request = new DownloadQueueRequest();
|
|
907
907
|
const packet = await this.connection.sendRequest(request);
|
|
908
908
|
return DownloadQueueResponseParser.fromPacket(packet).files;
|
|
@@ -911,8 +911,8 @@ var AmuleClient = class {
|
|
|
911
911
|
* Get shared files
|
|
912
912
|
*/
|
|
913
913
|
async getSharedFiles() {
|
|
914
|
-
const { SharedFilesRequest } = await import("./SharedFilesRequest-
|
|
915
|
-
const { SharedFilesResponseParser } = await import("./SharedFilesResponse-
|
|
914
|
+
const { SharedFilesRequest } = await import("./SharedFilesRequest-B72XyRcA.js");
|
|
915
|
+
const { SharedFilesResponseParser } = await import("./SharedFilesResponse-CkqvYd3N.js");
|
|
916
916
|
const request = new SharedFilesRequest();
|
|
917
917
|
const packet = await this.connection.sendRequest(request);
|
|
918
918
|
return SharedFilesResponseParser.fromPacket(packet).files;
|
|
@@ -921,7 +921,7 @@ var AmuleClient = class {
|
|
|
921
921
|
* Reload shared files list
|
|
922
922
|
*/
|
|
923
923
|
async reloadSharedFiles() {
|
|
924
|
-
const { ReloadSharedFilesRequest } = await import("./ReloadSharedFilesRequest-
|
|
924
|
+
const { ReloadSharedFilesRequest } = await import("./ReloadSharedFilesRequest-kt0Pxs8A.js");
|
|
925
925
|
const request = new ReloadSharedFilesRequest();
|
|
926
926
|
await this.connection.sendRequest(request);
|
|
927
927
|
}
|
|
@@ -929,8 +929,8 @@ var AmuleClient = class {
|
|
|
929
929
|
* Get client upload/download queue (clients we are uploading to/downloading from)
|
|
930
930
|
*/
|
|
931
931
|
async getClientQueue() {
|
|
932
|
-
const { ClientQueueRequest } = await import("./ClientQueueRequest-
|
|
933
|
-
const { ClientQueueResponseParser } = await import("./ClientQueueResponse-
|
|
932
|
+
const { ClientQueueRequest } = await import("./ClientQueueRequest-DFfCiNcz.js");
|
|
933
|
+
const { ClientQueueResponseParser } = await import("./ClientQueueResponse-JTrBqrr1.js");
|
|
934
934
|
const request = new ClientQueueRequest();
|
|
935
935
|
const packet = await this.connection.sendRequest(request);
|
|
936
936
|
return ClientQueueResponseParser.fromPacket(packet).clients;
|
|
@@ -939,8 +939,8 @@ var AmuleClient = class {
|
|
|
939
939
|
* Get the list of servers
|
|
940
940
|
*/
|
|
941
941
|
async getServerList() {
|
|
942
|
-
const { ServerListRequest } = await import("./ServerListRequest-
|
|
943
|
-
const { ServerListResponseParser } = await import("./ServerListResponse-
|
|
942
|
+
const { ServerListRequest } = await import("./ServerListRequest-BWXLGJib.js");
|
|
943
|
+
const { ServerListResponseParser } = await import("./ServerListResponse-BUJ7sz5p.js");
|
|
944
944
|
const request = new ServerListRequest();
|
|
945
945
|
const packet = await this.connection.sendRequest(request);
|
|
946
946
|
return ServerListResponseParser.fromPacket(packet).servers;
|
|
@@ -949,7 +949,7 @@ var AmuleClient = class {
|
|
|
949
949
|
* Connect to a specific server
|
|
950
950
|
*/
|
|
951
951
|
async connectToServer(ip, port) {
|
|
952
|
-
const { ServerConnectRequest } = await import("./ServerConnectRequest-
|
|
952
|
+
const { ServerConnectRequest } = await import("./ServerConnectRequest-BhNpGiEJ.js");
|
|
953
953
|
const request = new ServerConnectRequest(ip, port);
|
|
954
954
|
await this.connection.sendRequest(request);
|
|
955
955
|
}
|
|
@@ -957,7 +957,7 @@ var AmuleClient = class {
|
|
|
957
957
|
* Disconnect from the current server
|
|
958
958
|
*/
|
|
959
959
|
async disconnectFromServer() {
|
|
960
|
-
const { ServerDisconnectRequest } = await import("./ServerDisconnectRequest-
|
|
960
|
+
const { ServerDisconnectRequest } = await import("./ServerDisconnectRequest-BjCitLtU.js");
|
|
961
961
|
const request = new ServerDisconnectRequest();
|
|
962
962
|
await this.connection.sendRequest(request);
|
|
963
963
|
}
|
|
@@ -965,7 +965,7 @@ var AmuleClient = class {
|
|
|
965
965
|
* Create a category
|
|
966
966
|
*/
|
|
967
967
|
async createCategory(category) {
|
|
968
|
-
const { CreateCategoryRequest } = await import("./CreateCategoryRequest-
|
|
968
|
+
const { CreateCategoryRequest } = await import("./CreateCategoryRequest-CRUMcPo5.js");
|
|
969
969
|
const request = new CreateCategoryRequest(category);
|
|
970
970
|
await this.connection.sendRequest(request);
|
|
971
971
|
}
|
|
@@ -973,7 +973,7 @@ var AmuleClient = class {
|
|
|
973
973
|
* Update a category
|
|
974
974
|
*/
|
|
975
975
|
async updateCategory(id, category) {
|
|
976
|
-
const { UpdateCategoryRequest } = await import("./UpdateCategoryRequest-
|
|
976
|
+
const { UpdateCategoryRequest } = await import("./UpdateCategoryRequest-CzKJa_rC.js");
|
|
977
977
|
const request = new UpdateCategoryRequest(id, category);
|
|
978
978
|
await this.connection.sendRequest(request);
|
|
979
979
|
}
|
|
@@ -981,7 +981,7 @@ var AmuleClient = class {
|
|
|
981
981
|
* Delete a category
|
|
982
982
|
*/
|
|
983
983
|
async deleteCategory(id) {
|
|
984
|
-
const { DeleteCategoryRequest } = await import("./DeleteCategoryRequest-
|
|
984
|
+
const { DeleteCategoryRequest } = await import("./DeleteCategoryRequest-C8v9oGZ-.js");
|
|
985
985
|
const request = new DeleteCategoryRequest(id);
|
|
986
986
|
await this.connection.sendRequest(request);
|
|
987
987
|
}
|
|
@@ -989,8 +989,8 @@ var AmuleClient = class {
|
|
|
989
989
|
* Get all categories
|
|
990
990
|
*/
|
|
991
991
|
async getCategories() {
|
|
992
|
-
const { GetPreferencesRequest } = await import("./GetPreferencesRequest-
|
|
993
|
-
const { PreferencesResponseParser } = await import("./PreferencesResponse-
|
|
992
|
+
const { GetPreferencesRequest } = await import("./GetPreferencesRequest-DsxlghqT.js");
|
|
993
|
+
const { PreferencesResponseParser } = await import("./PreferencesResponse-8n1STWUZ.js");
|
|
994
994
|
const request = new GetPreferencesRequest(1);
|
|
995
995
|
const packet = await this.connection.sendRequest(request);
|
|
996
996
|
return PreferencesResponseParser.fromPacket(packet).categories;
|
|
@@ -999,7 +999,7 @@ var AmuleClient = class {
|
|
|
999
999
|
* Set file category
|
|
1000
1000
|
*/
|
|
1001
1001
|
async setFileCategory(hash, categoryId) {
|
|
1002
|
-
const { SetFileCategoryRequest } = await import("./SetFileCategoryRequest-
|
|
1002
|
+
const { SetFileCategoryRequest } = await import("./SetFileCategoryRequest-VwroLBTV.js");
|
|
1003
1003
|
const request = new SetFileCategoryRequest(hash, categoryId);
|
|
1004
1004
|
await this.connection.sendRequest(request);
|
|
1005
1005
|
}
|
|
@@ -1007,7 +1007,7 @@ var AmuleClient = class {
|
|
|
1007
1007
|
* Send a download command (PAUSE, RESUME, STOP, DELETE, etc.)
|
|
1008
1008
|
*/
|
|
1009
1009
|
async sendDownloadCommand(hash, command) {
|
|
1010
|
-
const { DownloadCommandRequest } = await import("./DownloadCommandRequest-
|
|
1010
|
+
const { DownloadCommandRequest } = await import("./DownloadCommandRequest-B3KV_bvm.js");
|
|
1011
1011
|
const request = new DownloadCommandRequest(hash, command);
|
|
1012
1012
|
await this.connection.sendRequest(request);
|
|
1013
1013
|
}
|
|
@@ -1039,7 +1039,7 @@ var AmuleClient = class {
|
|
|
1039
1039
|
* Trigger a server list update from an URL.
|
|
1040
1040
|
*/
|
|
1041
1041
|
async updateServerListFromUrl(url) {
|
|
1042
|
-
const { ServerUpdateFromUrlRequest } = await import("./ServerUpdateFromUrlRequest-
|
|
1042
|
+
const { ServerUpdateFromUrlRequest } = await import("./ServerUpdateFromUrlRequest-K8C_d0UQ.js");
|
|
1043
1043
|
const request = new ServerUpdateFromUrlRequest(url);
|
|
1044
1044
|
await this.connection.sendRequest(request);
|
|
1045
1045
|
}
|
|
@@ -1047,7 +1047,7 @@ var AmuleClient = class {
|
|
|
1047
1047
|
* Set upload priority for a shared file.
|
|
1048
1048
|
*/
|
|
1049
1049
|
async setSharedFilePriority(hash, priority) {
|
|
1050
|
-
const { SharedFilePriorityRequest } = await import("./SharedFilePriorityRequest-
|
|
1050
|
+
const { SharedFilePriorityRequest } = await import("./SharedFilePriorityRequest-7BriqAcr.js");
|
|
1051
1051
|
const request = new SharedFilePriorityRequest(hash, priority);
|
|
1052
1052
|
await this.connection.sendRequest(request);
|
|
1053
1053
|
}
|
|
@@ -1055,8 +1055,8 @@ var AmuleClient = class {
|
|
|
1055
1055
|
* Get daemon preferences for general/connection/servers/security sections.
|
|
1056
1056
|
*/
|
|
1057
1057
|
async getPreferences() {
|
|
1058
|
-
const { GetPreferencesRequest } = await import("./GetPreferencesRequest-
|
|
1059
|
-
const { PreferencesDetailsResponseParser } = await import("./PreferencesDetailsResponse-
|
|
1058
|
+
const { GetPreferencesRequest } = await import("./GetPreferencesRequest-DsxlghqT.js");
|
|
1059
|
+
const { PreferencesDetailsResponseParser } = await import("./PreferencesDetailsResponse-DapscVQi.js");
|
|
1060
1060
|
const request = new GetPreferencesRequest(2118);
|
|
1061
1061
|
const packet = await this.connection.sendRequest(request);
|
|
1062
1062
|
return PreferencesDetailsResponseParser.fromPacket(packet).preferences;
|
|
@@ -1066,12 +1066,10 @@ var AmuleClient = class {
|
|
|
1066
1066
|
*/
|
|
1067
1067
|
async setPreferences(preferences) {
|
|
1068
1068
|
if (!preferences.general && !preferences.connection && !preferences.servers && !preferences.security) return;
|
|
1069
|
-
const { SetPreferencesRequest } = await import("./SetPreferencesRequest-
|
|
1069
|
+
const { SetPreferencesRequest } = await import("./SetPreferencesRequest-KZ23VaBY.js");
|
|
1070
1070
|
const request = new SetPreferencesRequest(preferences);
|
|
1071
1071
|
await this.connection.sendRequest(request);
|
|
1072
1072
|
}
|
|
1073
1073
|
};
|
|
1074
1074
|
//#endregion
|
|
1075
1075
|
export { AmuleClient, AmuleException, ChunkStatus, CommunicationException, CustomTag, DoubleTag, DownloadCommand, ECDetailLevel, ECOpCode, ECSearchType, ECTagName, EcPrefs, FileStatus, Flags, Hash16Tag, InvalidECException, Ipv4Tag, PARTSIZE, Packet, PacketParser, PacketWriter, ProtocolVersion, SearchType, ServerException, StringTag, Tag, UByteTag, UInt128Tag, UIntTag, ULongTag, UShortTag };
|
|
1076
|
-
|
|
1077
|
-
//# sourceMappingURL=index.mjs.map
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AddLinkRequest-DwUbSMXD.mjs","names":[],"sources":["../src/request/AddLinkRequest.ts"],"sourcesContent":["/**\n * Add Link Request - Download from ED2K link\n */\n\nimport { Request } from './Request';\nimport { ECOpCode, ECTagName } from '../ec/Codes';\nimport { StringTag } from '../ec/tag/Tag';\n\nexport class AddLinkRequest extends Request {\n\tconstructor(link: string) {\n\t\tsuper(ECOpCode.EC_OP_ADD_LINK);\n\n\t\tthis.addTag(new StringTag(ECTagName.EC_TAG_PARTFILE_ED2K_LINK, link));\n\t}\n}\n"],"mappings":";;;;;;;AAQA,IAAa,iBAAb,cAAoC,QAAQ;CAC3C,YAAY,MAAc;EACzB,MAAA,CAA6B;EAE7B,KAAK,OAAO,IAAI,UAAA,KAA+C,IAAI,CAAC;CACrE;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClientQueueRequest-D9FaX5K9.mjs","names":[],"sources":["../src/request/ClientQueueRequest.ts"],"sourcesContent":["/**\n * Client Queue Request - Get client upload queue\n */\n\nimport { Request } from './Request';\nimport { ECOpCode, ECTagName, ECDetailLevel } from '../ec/Codes';\nimport { UByteTag } from '../ec/tag/Tag';\n\nexport class ClientQueueRequest extends Request {\n\tconstructor(detailLevel: ECDetailLevel = ECDetailLevel.EC_DETAIL_FULL) {\n\t\tsuper(ECOpCode.EC_OP_GET_ULOAD_QUEUE);\n\n\t\tthis.addTag(new UByteTag(ECTagName.EC_TAG_DETAIL_LEVEL, detailLevel));\n\t}\n}\n"],"mappings":";;;;;;;AAQA,IAAa,qBAAb,cAAwC,QAAQ;CAC/C,YAAY,cAAA,GAA2D;EACtE,MAAA,EAAoC;EAEpC,KAAK,OAAO,IAAI,SAAA,GAAwC,WAAW,CAAC;CACrE;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClientQueueResponse-FVQBR_8b.mjs","names":[],"sources":["../src/response/ClientQueueResponse.ts"],"sourcesContent":["/**\n * Client Queue Response - Parse client upload queue\n */\n\nimport { Packet } from '../ec/packet/Packet';\nimport { ECTagName } from '../ec/Codes';\nimport { findNumericTag, findTag } from '../ec/tag/Tag';\nimport { toOptionalBool, toOptionalIp, toOptionalNumber } from './utils';\nimport { AmuleUpDownClient } from '../model';\n\nexport interface ClientQueueResponse {\n\tclients: AmuleUpDownClient[];\n}\n\nexport class ClientQueueResponseParser {\n\tstatic fromPacket(packet: Packet): ClientQueueResponse {\n\t\treturn this.fromTags(packet.tags);\n\t}\n\n\tstatic fromTags(allTags: any[]): ClientQueueResponse {\n\t\tconst clients: AmuleUpDownClient[] = [];\n\n\t\t// Find all client tags\n\t\tconst clientTags = allTags.filter((tag) => tag.name === ECTagName.EC_TAG_CLIENT);\n\n\t\tfor (const clientTag of clientTags) {\n\t\t\tconst tags = clientTag.nestedTags || [];\n\n\t\t\tconst client: AmuleUpDownClient = {\n\t\t\t\tclientName: findTag(tags, ECTagName.EC_TAG_CLIENT_NAME)?.getValue(),\n\t\t\t\tuserHashHexString: findTag(tags, ECTagName.EC_TAG_CLIENT_HASH)?.getValue()?.toString('hex'),\n\t\t\t\tuserID: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_USER_ID)?.getInt(),\n\t\t\t\tscore: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_SCORE)?.getInt(),\n\t\t\t\tsoftware: findTag(tags, ECTagName.EC_TAG_CLIENT_SOFTWARE)?.getValue(),\n\t\t\t\tsoftVerStr: findTag(tags, ECTagName.EC_TAG_CLIENT_SOFT_VER_STR)?.getValue(),\n\t\t\t\tuserIP: toOptionalIp(findNumericTag(tags, ECTagName.EC_TAG_CLIENT_USER_IP)?.getInt()),\n\t\t\t\tuserPort: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_USER_PORT)?.getInt(),\n\t\t\t\tsourceFrom: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_CLIENT_FROM)?.getLong()),\n\t\t\t\tserverIP: toOptionalIp(findNumericTag(tags, ECTagName.EC_TAG_CLIENT_SERVER_IP)?.getInt()),\n\t\t\t\tserverPort: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_SERVER_PORT)?.getInt(),\n\t\t\t\tserverName: findTag(tags, ECTagName.EC_TAG_CLIENT_SERVER_NAME)?.getValue(),\n\n\t\t\t\tupSpeed: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_CLIENT_UP_SPEED)?.getLong()),\n\t\t\t\tdownSpeed: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_CLIENT_DOWN_SPEED)?.getLong()),\n\t\t\t\tuploadSession: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_CLIENT_UPLOAD_SESSION)?.getLong()),\n\t\t\t\ttransferredDown: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_SIZE_XFER)?.getLong()),\n\t\t\t\tuploadedTotal: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_CLIENT_UPLOAD_TOTAL)?.getLong()),\n\t\t\t\tdownloadedTotal: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_CLIENT_DOWNLOAD_TOTAL)?.getLong()),\n\n\t\t\t\tuploadState: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_UPLOAD_STATE)?.getInt(),\n\t\t\t\tdownloadState: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_DOWNLOAD_STATE)?.getInt(),\n\t\t\t\tidentState: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_IDENT_STATE)?.getInt(),\n\t\t\t\textProtocol: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_EXT_PROTOCOL)?.getInt(),\n\t\t\t\twaitingPosition: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_WAITING_POSITION)?.getInt(),\n\t\t\t\tremoteQueueRank: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_REMOTE_QUEUE_RANK)?.getInt(),\n\t\t\t\toldRemoteQueueRank: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_OLD_REMOTE_QUEUE_RANK)?.getInt(),\n\t\t\t\tobfuscationStatus: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_OBFUSCATION_STATUS)?.getInt(),\n\t\t\t\tkadPort: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_KAD_PORT)?.getInt(),\n\t\t\t\tfriendSlot: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_FRIEND_SLOT)?.getInt(),\n\t\t\t\tuploadFileId: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_CLIENT_UPLOAD_FILE)?.getLong()),\n\t\t\t\tuploadFilename: findTag(tags, ECTagName.EC_TAG_PARTFILE_NAME)?.getValue(),\n\t\t\t\trequestFileId: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_CLIENT_REQUEST_FILE)?.getLong()),\n\t\t\t\tremoteFilename: findTag(tags, ECTagName.EC_TAG_CLIENT_REMOTE_FILENAME)?.getValue(),\n\t\t\t\tdisableViewShared: toOptionalBool(findNumericTag(tags, ECTagName.EC_TAG_CLIENT_DISABLE_VIEW_SHARED)?.getInt()),\n\t\t\t\tversion: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_VERSION)?.getInt(),\n\t\t\t\tmodVersion: findTag(tags, ECTagName.EC_TAG_CLIENT_MOD_VERSION)?.getValue(),\n\t\t\t\tosInfo: findTag(tags, ECTagName.EC_TAG_CLIENT_OS_INFO)?.getValue(),\n\t\t\t\tavailableParts: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_AVAILABLE_PARTS)?.getInt(),\n\t\t\t\tpartStatus: findTag(tags, ECTagName.EC_TAG_CLIENT_PART_STATUS)?.getValue(),\n\t\t\t\tnextRequestedPart: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_NEXT_REQUESTED_PART)?.getInt(),\n\t\t\t\tlastDownloadingPart: findNumericTag(tags, ECTagName.EC_TAG_CLIENT_LAST_DOWNLOADING_PART)?.getInt(),\n\t\t\t\tuploadPartStatus: findTag(tags, ECTagName.EC_TAG_CLIENT_UPLOAD_PART_STATUS)?.getValue(),\n\t\t\t\t// Additional fields can be added here as needed\n\t\t\t};\n\n\t\t\tclients.push(client);\n\t\t}\n\n\t\treturn { clients };\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Codes-CjiW7Pdl.mjs","names":[],"sources":["../src/ec/Codes.ts"],"sourcesContent":["// EC Protocol constants and enumerations\n\nexport enum ProtocolVersion {\n\tEC_CURRENT_PROTOCOL_VERSION = 0x0204,\n}\n\nexport enum ECFlag {\n\tEC_FLAG_ZLIB = 0x00000001,\n\tEC_FLAG_UTF8_NUMBERS = 0x00000002,\n\tEC_FLAG_HAS_ID = 0x00000004,\n\tEC_FLAG_ACCEPTS = 0x00000010,\n\tEC_FLAG_UNKNOWN_MASK = 0xff7f7f08,\n}\n\nexport enum ECOpCode {\n\tEC_OP_NOOP = 0x01,\n\tEC_OP_AUTH_REQ = 0x02,\n\tEC_OP_AUTH_FAIL = 0x03,\n\tEC_OP_AUTH_OK = 0x04,\n\tEC_OP_FAILED = 0x05,\n\tEC_OP_STRINGS = 0x06,\n\tEC_OP_MISC_DATA = 0x07,\n\tEC_OP_SHUTDOWN = 0x08,\n\tEC_OP_ADD_LINK = 0x09,\n\tEC_OP_STAT_REQ = 0x0a,\n\tEC_OP_GET_CONNSTATE = 0x0b,\n\tEC_OP_STATS = 0x0c,\n\tEC_OP_GET_DLOAD_QUEUE = 0x0d,\n\tEC_OP_GET_ULOAD_QUEUE = 0x0e,\n\tEC_OP_GET_SHARED_FILES = 0x10,\n\tEC_OP_SHARED_SET_PRIO = 0x11,\n\tEC_OP_PARTFILE_SWAP_A4AF_THIS = 0x16,\n\tEC_OP_PARTFILE_SWAP_A4AF_THIS_AUTO = 0x17,\n\tEC_OP_PARTFILE_SWAP_A4AF_OTHERS = 0x18,\n\tEC_OP_PARTFILE_PAUSE = 0x19,\n\tEC_OP_PARTFILE_RESUME = 0x1a,\n\tEC_OP_PARTFILE_STOP = 0x1b,\n\tEC_OP_PARTFILE_PRIO_SET = 0x1c,\n\tEC_OP_PARTFILE_DELETE = 0x1d,\n\tEC_OP_PARTFILE_SET_CAT = 0x1e,\n\tEC_OP_DLOAD_QUEUE = 0x1f,\n\tEC_OP_ULOAD_QUEUE = 0x20,\n\tEC_OP_SHARED_FILES = 0x22,\n\tEC_OP_SHAREDFILES_RELOAD = 0x23,\n\tEC_OP_RENAME_FILE = 0x25,\n\tEC_OP_SEARCH_START = 0x26,\n\tEC_OP_SEARCH_STOP = 0x27,\n\tEC_OP_SEARCH_RESULTS = 0x28,\n\tEC_OP_SEARCH_PROGRESS = 0x29,\n\tEC_OP_DOWNLOAD_SEARCH_RESULT = 0x2a,\n\tEC_OP_IPFILTER_RELOAD = 0x2b,\n\tEC_OP_GET_SERVER_LIST = 0x2c,\n\tEC_OP_SERVER_LIST = 0x2d,\n\tEC_OP_SERVER_DISCONNECT = 0x2e,\n\tEC_OP_SERVER_CONNECT = 0x2f,\n\tEC_OP_SERVER_REMOVE = 0x30,\n\tEC_OP_SERVER_ADD = 0x31,\n\tEC_OP_SERVER_UPDATE_FROM_URL = 0x32,\n\tEC_OP_ADDLOGLINE = 0x33,\n\tEC_OP_ADDDEBUGLOGLINE = 0x34,\n\tEC_OP_GET_LOG = 0x35,\n\tEC_OP_GET_DEBUGLOG = 0x36,\n\tEC_OP_GET_SERVERINFO = 0x37,\n\tEC_OP_LOG = 0x38,\n\tEC_OP_DEBUGLOG = 0x39,\n\tEC_OP_SERVERINFO = 0x3a,\n\tEC_OP_RESET_LOG = 0x3b,\n\tEC_OP_RESET_DEBUGLOG = 0x3c,\n\tEC_OP_CLEAR_SERVERINFO = 0x3d,\n\tEC_OP_GET_LAST_LOG_ENTRY = 0x3e,\n\tEC_OP_GET_PREFERENCES = 0x3f,\n\tEC_OP_SET_PREFERENCES = 0x40,\n\tEC_OP_CREATE_CATEGORY = 0x41,\n\tEC_OP_UPDATE_CATEGORY = 0x42,\n\tEC_OP_DELETE_CATEGORY = 0x43,\n\tEC_OP_GET_STATSGRAPHS = 0x44,\n\tEC_OP_STATSGRAPHS = 0x45,\n\tEC_OP_GET_STATSTREE = 0x46,\n\tEC_OP_STATSTREE = 0x47,\n\tEC_OP_KAD_START = 0x48,\n\tEC_OP_KAD_STOP = 0x49,\n\tEC_OP_CONNECT = 0x4a,\n\tEC_OP_DISCONNECT = 0x4b,\n\tEC_OP_KAD_UPDATE_FROM_URL = 0x4d,\n\tEC_OP_KAD_BOOTSTRAP_FROM_IP = 0x4e,\n\tEC_OP_AUTH_SALT = 0x4f,\n\tEC_OP_AUTH_PASSWD = 0x50,\n\tEC_OP_IPFILTER_UPDATE = 0x51,\n\tEC_OP_GET_UPDATE = 0x52,\n\tEC_OP_CLEAR_COMPLETED = 0x53,\n\tEC_OP_CLIENT_SWAP_TO_ANOTHER_FILE = 0x54,\n\tEC_OP_SHARED_FILE_SET_COMMENT = 0x55,\n\tEC_OP_SERVER_SET_STATIC_PRIO = 0x56,\n\tEC_OP_FRIEND = 0x57,\n}\n\nexport enum ECTagName {\n\tEC_TAG_STRING = 0x0000,\n\tEC_TAG_PASSWD_HASH = 0x0001,\n\tEC_TAG_PROTOCOL_VERSION = 0x0002,\n\tEC_TAG_VERSION_ID = 0x0003,\n\tEC_TAG_DETAIL_LEVEL = 0x0004,\n\tEC_TAG_CONNSTATE = 0x0005,\n\tEC_TAG_ED2K_ID = 0x0006,\n\tEC_TAG_LOG_TO_STATUS = 0x0007,\n\tEC_TAG_BOOTSTRAP_IP = 0x0008,\n\tEC_TAG_BOOTSTRAP_PORT = 0x0009,\n\tEC_TAG_CLIENT_ID = 0x000a,\n\tEC_TAG_PASSWD_SALT = 0x000b,\n\tEC_TAG_CAN_ZLIB = 0x000c,\n\tEC_TAG_CAN_UTF8_NUMBERS = 0x000d,\n\tEC_TAG_CAN_NOTIFY = 0x000e,\n\tEC_TAG_ECID = 0x000f,\n\tEC_TAG_KAD_ID = 0x0010,\n\tEC_TAG_CLIENT_NAME = 0x0100,\n\tEC_TAG_CLIENT_VERSION = 0x0101,\n\tEC_TAG_CLIENT_MOD = 0x0102,\n\tEC_TAG_STATS_UL_SPEED = 0x0200,\n\tEC_TAG_STATS_DL_SPEED = 0x0201,\n\tEC_TAG_STATS_UL_SPEED_LIMIT = 0x0202,\n\tEC_TAG_STATS_DL_SPEED_LIMIT = 0x0203,\n\tEC_TAG_STATS_UP_OVERHEAD = 0x0204,\n\tEC_TAG_STATS_DOWN_OVERHEAD = 0x0205,\n\tEC_TAG_STATS_TOTAL_SRC_COUNT = 0x0206,\n\tEC_TAG_STATS_BANNED_COUNT = 0x0207,\n\tEC_TAG_STATS_UL_QUEUE_LEN = 0x0208,\n\tEC_TAG_STATS_ED2K_USERS = 0x0209,\n\tEC_TAG_STATS_KAD_USERS = 0x020a,\n\tEC_TAG_STATS_ED2K_FILES = 0x020b,\n\tEC_TAG_STATS_KAD_FILES = 0x020c,\n\tEC_TAG_STATS_LOGGER_MESSAGE = 0x020d,\n\tEC_TAG_STATS_KAD_FIREWALLED_UDP = 0x020e,\n\tEC_TAG_STATS_KAD_INDEXED_SOURCES = 0x020f,\n\tEC_TAG_STATS_KAD_INDEXED_KEYWORDS = 0x0210,\n\tEC_TAG_STATS_KAD_INDEXED_NOTES = 0x0211,\n\tEC_TAG_STATS_KAD_INDEXED_LOAD = 0x0212,\n\tEC_TAG_STATS_KAD_IP_ADRESS = 0x0213,\n\tEC_TAG_STATS_BUDDY_STATUS = 0x0214,\n\tEC_TAG_STATS_BUDDY_IP = 0x0215,\n\tEC_TAG_STATS_BUDDY_PORT = 0x0216,\n\tEC_TAG_STATS_KAD_IN_LAN_MODE = 0x0217,\n\tEC_TAG_STATS_TOTAL_SENT_BYTES = 0x0218,\n\tEC_TAG_STATS_TOTAL_RECEIVED_BYTES = 0x0219,\n\tEC_TAG_STATS_SHARED_FILE_COUNT = 0x021a,\n\tEC_TAG_STATS_KAD_NODES = 0x021b,\n\tEC_TAG_PARTFILE = 0x0300,\n\tEC_TAG_PARTFILE_NAME = 0x0301,\n\tEC_TAG_PARTFILE_PARTMETID = 0x0302,\n\tEC_TAG_PARTFILE_SIZE_FULL = 0x0303,\n\tEC_TAG_PARTFILE_SIZE_XFER = 0x0304,\n\tEC_TAG_PARTFILE_SIZE_XFER_UP = 0x0305,\n\tEC_TAG_PARTFILE_SIZE_DONE = 0x0306,\n\tEC_TAG_PARTFILE_SPEED = 0x0307,\n\tEC_TAG_PARTFILE_STATUS = 0x0308,\n\tEC_TAG_PARTFILE_PRIO = 0x0309,\n\tEC_TAG_PARTFILE_SOURCE_COUNT = 0x030a,\n\tEC_TAG_PARTFILE_SOURCE_COUNT_A4AF = 0x030b,\n\tEC_TAG_PARTFILE_SOURCE_COUNT_NOT_CURRENT = 0x030c,\n\tEC_TAG_PARTFILE_SOURCE_COUNT_XFER = 0x030d,\n\tEC_TAG_PARTFILE_ED2K_LINK = 0x030e,\n\tEC_TAG_PARTFILE_CAT = 0x030f,\n\tEC_TAG_PARTFILE_LAST_RECV = 0x0310,\n\tEC_TAG_PARTFILE_LAST_SEEN_COMP = 0x0311,\n\tEC_TAG_PARTFILE_PART_STATUS = 0x0312,\n\tEC_TAG_PARTFILE_GAP_STATUS = 0x0313,\n\tEC_TAG_PARTFILE_REQ_STATUS = 0x0314,\n\tEC_TAG_PARTFILE_SOURCE_NAMES = 0x0315,\n\tEC_TAG_PARTFILE_COMMENTS = 0x0316,\n\tEC_TAG_PARTFILE_STOPPED = 0x0317,\n\tEC_TAG_PARTFILE_DOWNLOAD_ACTIVE = 0x0318,\n\tEC_TAG_PARTFILE_LOST_CORRUPTION = 0x0319,\n\tEC_TAG_PARTFILE_GAINED_COMPRESSION = 0x031a,\n\tEC_TAG_PARTFILE_SAVED_ICH = 0x031b,\n\tEC_TAG_PARTFILE_SOURCE_NAMES_COUNTS = 0x031c,\n\tEC_TAG_PARTFILE_AVAILABLE_PARTS = 0x031d,\n\tEC_TAG_PARTFILE_HASH = 0x031e,\n\tEC_TAG_PARTFILE_SHARED = 0x031f,\n\tEC_TAG_PARTFILE_HASHED_PART_COUNT = 0x0320,\n\tEC_TAG_PARTFILE_A4AFAUTO = 0x0321,\n\tEC_TAG_PARTFILE_A4AF_SOURCES = 0x0322,\n\tEC_TAG_KNOWNFILE = 0x0400,\n\tEC_TAG_KNOWNFILE_XFERRED = 0x0401,\n\tEC_TAG_KNOWNFILE_XFERRED_ALL = 0x0402,\n\tEC_TAG_KNOWNFILE_REQ_COUNT = 0x0403,\n\tEC_TAG_KNOWNFILE_REQ_COUNT_ALL = 0x0404,\n\tEC_TAG_KNOWNFILE_ACCEPT_COUNT = 0x0405,\n\tEC_TAG_KNOWNFILE_ACCEPT_COUNT_ALL = 0x0406,\n\tEC_TAG_KNOWNFILE_AICH_MASTERHASH = 0x0407,\n\tEC_TAG_KNOWNFILE_FILENAME = 0x0408,\n\tEC_TAG_KNOWNFILE_COMPLETE_SOURCES_LOW = 0x0409,\n\tEC_TAG_KNOWNFILE_COMPLETE_SOURCES_HIGH = 0x040a,\n\tEC_TAG_KNOWNFILE_PRIO = 0x040b,\n\tEC_TAG_KNOWNFILE_ON_QUEUE = 0x040c,\n\tEC_TAG_KNOWNFILE_COMPLETE_SOURCES = 0x040d,\n\tEC_TAG_KNOWNFILE_COMMENT = 0x040e,\n\tEC_TAG_KNOWNFILE_RATING = 0x040f,\n\tEC_TAG_SERVER = 0x0500,\n\tEC_TAG_SERVER_NAME = 0x0501,\n\tEC_TAG_SERVER_DESC = 0x0502,\n\tEC_TAG_SERVER_ADDRESS = 0x0503,\n\tEC_TAG_SERVER_PING = 0x0504,\n\tEC_TAG_SERVER_USERS = 0x0505,\n\tEC_TAG_SERVER_USERS_MAX = 0x0506,\n\tEC_TAG_SERVER_FILES = 0x0507,\n\tEC_TAG_SERVER_PRIO = 0x0508,\n\tEC_TAG_SERVER_FAILED = 0x0509,\n\tEC_TAG_SERVER_STATIC = 0x050a,\n\tEC_TAG_SERVER_VERSION = 0x050b,\n\tEC_TAG_SERVER_IP = 0x050c,\n\tEC_TAG_SERVER_PORT = 0x050d,\n\tEC_TAG_CLIENT = 0x0600,\n\tEC_TAG_CLIENT_SOFTWARE = 0x0601,\n\tEC_TAG_CLIENT_SCORE = 0x0602,\n\tEC_TAG_CLIENT_HASH = 0x0603,\n\tEC_TAG_CLIENT_FRIEND_SLOT = 0x0604,\n\tEC_TAG_CLIENT_WAIT_TIME = 0x0605,\n\tEC_TAG_CLIENT_XFER_TIME = 0x0606,\n\tEC_TAG_CLIENT_QUEUE_TIME = 0x0607,\n\tEC_TAG_CLIENT_LAST_TIME = 0x0608,\n\tEC_TAG_CLIENT_UPLOAD_SESSION = 0x0609,\n\tEC_TAG_CLIENT_UPLOAD_TOTAL = 0x060a,\n\tEC_TAG_CLIENT_DOWNLOAD_TOTAL = 0x060b,\n\tEC_TAG_CLIENT_DOWNLOAD_STATE = 0x060c,\n\tEC_TAG_CLIENT_UP_SPEED = 0x060d,\n\tEC_TAG_CLIENT_DOWN_SPEED = 0x060e,\n\tEC_TAG_CLIENT_FROM = 0x060f,\n\tEC_TAG_CLIENT_USER_IP = 0x0610,\n\tEC_TAG_CLIENT_USER_PORT = 0x0611,\n\tEC_TAG_CLIENT_SERVER_IP = 0x0612,\n\tEC_TAG_CLIENT_SERVER_PORT = 0x0613,\n\tEC_TAG_CLIENT_SERVER_NAME = 0x0614,\n\tEC_TAG_CLIENT_SOFT_VER_STR = 0x0615,\n\tEC_TAG_CLIENT_WAITING_POSITION = 0x0616,\n\tEC_TAG_CLIENT_IDENT_STATE = 0x0617,\n\tEC_TAG_CLIENT_OBFUSCATION_STATUS = 0x0618,\n\tEC_TAG_CLIENT_CURRENTLYUNUSED1 = 0x0619,\n\tEC_TAG_CLIENT_REMOTE_QUEUE_RANK = 0x061a,\n\tEC_TAG_CLIENT_DISABLE_VIEW_SHARED = 0x061b,\n\tEC_TAG_CLIENT_UPLOAD_STATE = 0x061c,\n\tEC_TAG_CLIENT_EXT_PROTOCOL = 0x061d,\n\tEC_TAG_CLIENT_USER_ID = 0x061e,\n\tEC_TAG_CLIENT_UPLOAD_FILE = 0x061f,\n\tEC_TAG_CLIENT_REQUEST_FILE = 0x0620,\n\tEC_TAG_CLIENT_A4AF_FILES = 0x0621,\n\tEC_TAG_CLIENT_OLD_REMOTE_QUEUE_RANK = 0x0622,\n\tEC_TAG_CLIENT_KAD_PORT = 0x0623,\n\tEC_TAG_CLIENT_PART_STATUS = 0x0624,\n\tEC_TAG_CLIENT_NEXT_REQUESTED_PART = 0x0625,\n\tEC_TAG_CLIENT_LAST_DOWNLOADING_PART = 0x0626,\n\tEC_TAG_CLIENT_REMOTE_FILENAME = 0x0627,\n\tEC_TAG_CLIENT_MOD_VERSION = 0x0628,\n\tEC_TAG_CLIENT_OS_INFO = 0x0629,\n\tEC_TAG_CLIENT_AVAILABLE_PARTS = 0x062a,\n\tEC_TAG_CLIENT_UPLOAD_PART_STATUS = 0x062b,\n\tEC_TAG_SEARCHFILE = 0x0700,\n\tEC_TAG_SEARCH_TYPE = 0x0701,\n\tEC_TAG_SEARCH_NAME = 0x0702,\n\tEC_TAG_SEARCH_MIN_SIZE = 0x0703,\n\tEC_TAG_SEARCH_MAX_SIZE = 0x0704,\n\tEC_TAG_SEARCH_FILE_TYPE = 0x0705,\n\tEC_TAG_SEARCH_EXTENSION = 0x0706,\n\tEC_TAG_SEARCH_AVAILABILITY = 0x0707,\n\tEC_TAG_SEARCH_STATUS = 0x0708,\n\tEC_TAG_SEARCH_PARENT = 0x0709,\n\tEC_TAG_FRIEND = 0x0800,\n\tEC_TAG_FRIEND_NAME = 0x0801,\n\tEC_TAG_FRIEND_HASH = 0x0802,\n\tEC_TAG_FRIEND_IP = 0x0803,\n\tEC_TAG_FRIEND_PORT = 0x0804,\n\tEC_TAG_FRIEND_CLIENT = 0x0805,\n\tEC_TAG_FRIEND_ADD = 0x0806,\n\tEC_TAG_FRIEND_REMOVE = 0x0807,\n\tEC_TAG_FRIEND_FRIENDSLOT = 0x0808,\n\tEC_TAG_FRIEND_SHARED = 0x0809,\n\tEC_TAG_SELECT_PREFS = 0x1000,\n\tEC_TAG_PREFS_CATEGORIES = 0x1100,\n\tEC_TAG_CATEGORY = 0x1101,\n\tEC_TAG_CATEGORY_TITLE = 0x1102,\n\tEC_TAG_CATEGORY_PATH = 0x1103,\n\tEC_TAG_CATEGORY_COMMENT = 0x1104,\n\tEC_TAG_CATEGORY_COLOR = 0x1105,\n\tEC_TAG_CATEGORY_PRIO = 0x1106,\n\tEC_TAG_PREFS_GENERAL = 0x1200,\n\tEC_TAG_USER_NICK = 0x1201,\n\tEC_TAG_USER_HASH = 0x1202,\n\tEC_TAG_USER_HOST = 0x1203,\n\tEC_TAG_GENERAL_CHECK_NEW_VERSION = 0x1204,\n\tEC_TAG_PREFS_CONNECTIONS = 0x1300,\n\tEC_TAG_CONN_DL_CAP = 0x1301,\n\tEC_TAG_CONN_UL_CAP = 0x1302,\n\tEC_TAG_CONN_MAX_DL = 0x1303,\n\tEC_TAG_CONN_MAX_UL = 0x1304,\n\tEC_TAG_CONN_SLOT_ALLOCATION = 0x1305,\n\tEC_TAG_CONN_TCP_PORT = 0x1306,\n\tEC_TAG_CONN_UDP_PORT = 0x1307,\n\tEC_TAG_CONN_UDP_DISABLE = 0x1308,\n\tEC_TAG_CONN_MAX_FILE_SOURCES = 0x1309,\n\tEC_TAG_CONN_MAX_CONN = 0x130a,\n\tEC_TAG_CONN_AUTOCONNECT = 0x130b,\n\tEC_TAG_CONN_RECONNECT = 0x130c,\n\tEC_TAG_NETWORK_ED2K = 0x130d,\n\tEC_TAG_NETWORK_KADEMLIA = 0x130e,\n\tEC_TAG_PREFS_MESSAGEFILTER = 0x1400,\n\tEC_TAG_MSGFILTER_ENABLED = 0x1401,\n\tEC_TAG_MSGFILTER_ALL = 0x1402,\n\tEC_TAG_MSGFILTER_FRIENDS = 0x1403,\n\tEC_TAG_MSGFILTER_SECURE = 0x1404,\n\tEC_TAG_MSGFILTER_BY_KEYWORD = 0x1405,\n\tEC_TAG_MSGFILTER_KEYWORDS = 0x1406,\n\tEC_TAG_PREFS_REMOTECTRL = 0x1500,\n\tEC_TAG_WEBSERVER_AUTORUN = 0x1501,\n\tEC_TAG_WEBSERVER_PORT = 0x1502,\n\tEC_TAG_WEBSERVER_GUEST = 0x1503,\n\tEC_TAG_WEBSERVER_USEGZIP = 0x1504,\n\tEC_TAG_WEBSERVER_REFRESH = 0x1505,\n\tEC_TAG_WEBSERVER_TEMPLATE = 0x1506,\n\tEC_TAG_PREFS_ONLINESIG = 0x1600,\n\tEC_TAG_ONLINESIG_ENABLED = 0x1601,\n\tEC_TAG_PREFS_SERVERS = 0x1700,\n\tEC_TAG_SERVERS_REMOVE_DEAD = 0x1701,\n\tEC_TAG_SERVERS_DEAD_SERVER_RETRIES = 0x1702,\n\tEC_TAG_SERVERS_AUTO_UPDATE = 0x1703,\n\tEC_TAG_SERVERS_URL_LIST = 0x1704,\n\tEC_TAG_SERVERS_ADD_FROM_SERVER = 0x1705,\n\tEC_TAG_SERVERS_ADD_FROM_CLIENT = 0x1706,\n\tEC_TAG_SERVERS_USE_SCORE_SYSTEM = 0x1707,\n\tEC_TAG_SERVERS_SMART_ID_CHECK = 0x1708,\n\tEC_TAG_SERVERS_SAFE_SERVER_CONNECT = 0x1709,\n\tEC_TAG_SERVERS_AUTOCONN_STATIC_ONLY = 0x170a,\n\tEC_TAG_SERVERS_MANUAL_HIGH_PRIO = 0x170b,\n\tEC_TAG_SERVERS_UPDATE_URL = 0x170c,\n\tEC_TAG_PREFS_FILES = 0x1800,\n\tEC_TAG_FILES_ICH_ENABLED = 0x1801,\n\tEC_TAG_FILES_AICH_TRUST = 0x1802,\n\tEC_TAG_FILES_NEW_PAUSED = 0x1803,\n\tEC_TAG_FILES_NEW_AUTO_DL_PRIO = 0x1804,\n\tEC_TAG_FILES_PREVIEW_PRIO = 0x1805,\n\tEC_TAG_FILES_NEW_AUTO_UL_PRIO = 0x1806,\n\tEC_TAG_FILES_UL_FULL_CHUNKS = 0x1807,\n\tEC_TAG_FILES_START_NEXT_PAUSED = 0x1808,\n\tEC_TAG_FILES_RESUME_SAME_CAT = 0x1809,\n\tEC_TAG_FILES_SAVE_SOURCES = 0x180a,\n\tEC_TAG_FILES_EXTRACT_METADATA = 0x180b,\n\tEC_TAG_FILES_ALLOC_FULL_SIZE = 0x180c,\n\tEC_TAG_FILES_CHECK_FREE_SPACE = 0x180d,\n\tEC_TAG_FILES_MIN_FREE_SPACE = 0x180e,\n\tEC_TAG_FILES_CREATE_NORMAL = 0x180f,\n\tEC_TAG_PREFS_DIRECTORIES = 0x1a00,\n\tEC_TAG_DIRECTORIES_INCOMING = 0x1a01,\n\tEC_TAG_DIRECTORIES_TEMP = 0x1a02,\n\tEC_TAG_DIRECTORIES_SHARED = 0x1a03,\n\tEC_TAG_DIRECTORIES_SHARE_HIDDEN = 0x1a04,\n\tEC_TAG_PREFS_STATISTICS = 0x1b00,\n\tEC_TAG_STATSGRAPH_WIDTH = 0x1b01,\n\tEC_TAG_STATSGRAPH_SCALE = 0x1b02,\n\tEC_TAG_STATSGRAPH_LAST = 0x1b03,\n\tEC_TAG_STATSGRAPH_DATA = 0x1b04,\n\tEC_TAG_STATTREE_CAPPING = 0x1b05,\n\tEC_TAG_STATTREE_NODE = 0x1b06,\n\tEC_TAG_STAT_NODE_VALUE = 0x1b07,\n\tEC_TAG_STAT_VALUE_TYPE = 0x1b08,\n\tEC_TAG_STATTREE_NODEID = 0x1b09,\n\tEC_TAG_PREFS_SECURITY = 0x1c00,\n\tEC_TAG_SECURITY_CAN_SEE_SHARES = 0x1c01,\n\tEC_TAG_IPFILTER_CLIENTS = 0x1c02,\n\tEC_TAG_IPFILTER_SERVERS = 0x1c03,\n\tEC_TAG_IPFILTER_AUTO_UPDATE = 0x1c04,\n\tEC_TAG_IPFILTER_UPDATE_URL = 0x1c05,\n\tEC_TAG_IPFILTER_LEVEL = 0x1c06,\n\tEC_TAG_IPFILTER_FILTER_LAN = 0x1c07,\n\tEC_TAG_SECURITY_USE_SECIDENT = 0x1c08,\n\tEC_TAG_SECURITY_OBFUSCATION_SUPPORTED = 0x1c09,\n\tEC_TAG_SECURITY_OBFUSCATION_REQUESTED = 0x1c0a,\n\tEC_TAG_SECURITY_OBFUSCATION_REQUIRED = 0x1c0b,\n\tEC_TAG_PREFS_CORETWEAKS = 0x1d00,\n\tEC_TAG_CORETW_MAX_CONN_PER_FIVE = 0x1d01,\n\tEC_TAG_CORETW_VERBOSE = 0x1d02,\n\tEC_TAG_CORETW_FILEBUFFER = 0x1d03,\n\tEC_TAG_CORETW_UL_QUEUE = 0x1d04,\n\tEC_TAG_CORETW_SRV_KEEPALIVE_TIMEOUT = 0x1d05,\n\tEC_TAG_PREFS_KADEMLIA = 0x1e00,\n\tEC_TAG_KADEMLIA_UPDATE_URL = 0x1e01,\n\tEC_TAG_UNKNOWN = 0xffff,\n}\n\nexport enum ECDetailLevel {\n\tEC_DETAIL_CMD = 0x00,\n\tEC_DETAIL_WEB = 0x01,\n\tEC_DETAIL_FULL = 0x02,\n\tEC_DETAIL_UPDATE = 0x03,\n\tEC_DETAIL_INC_UPDATE = 0x04,\n}\n\nexport enum ECSearchType {\n\tEC_SEARCH_LOCAL = 0x00,\n\tEC_SEARCH_GLOBAL = 0x01,\n\tEC_SEARCH_KAD = 0x02,\n\tEC_SEARCH_WEB = 0x03,\n}\n\nexport enum ECSearchFileDownloadStatus {\n\tNEW = 0,\n\tDOWNLOADED = 1,\n\tQUEUED = 2,\n\tCANCELED = 3,\n\tQUEUEDCANCELED = 4,\n}\n\nexport enum ECStatTreeNodeValueType {\n\tEC_VALUE_INTEGER = 0x00,\n\tEC_VALUE_ISTRING = 0x01,\n\tEC_VALUE_BYTES = 0x02,\n\tEC_VALUE_ISHORT = 0x03,\n\tEC_VALUE_TIME = 0x04,\n\tEC_VALUE_SPEED = 0x05,\n\tEC_VALUE_STRING = 0x06,\n\tEC_VALUE_DOUBLE = 0x07,\n}\n\nexport enum EcPrefs {\n\tEC_PREFS_CATEGORIES = 0x00000001,\n\tEC_PREFS_GENERAL = 0x00000002,\n\tEC_PREFS_CONNECTIONS = 0x00000004,\n\tEC_PREFS_MESSAGEFILTER = 0x00000008,\n\tEC_PREFS_REMOTECONTROLS = 0x00000010,\n\tEC_PREFS_ONLINESIG = 0x00000020,\n\tEC_PREFS_SERVERS = 0x00000040,\n\tEC_PREFS_FILES = 0x00000080,\n\tEC_PREFS_DIRECTORIES = 0x00000200,\n\tEC_PREFS_STATISTICS = 0x00000400,\n\tEC_PREFS_SECURITY = 0x00000800,\n\tEC_PREFS_CORETWEAKS = 0x00001000,\n\tEC_PREFS_KADEMLIA = 0x00002000,\n}\n\nexport enum ECTagType {\n\tEC_TAGTYPE_UNKNOWN = 0,\n\tEC_TAGTYPE_CUSTOM = 1,\n\tEC_TAGTYPE_UINT8 = 2,\n\tEC_TAGTYPE_UINT16 = 3,\n\tEC_TAGTYPE_UINT32 = 4,\n\tEC_TAGTYPE_UINT64 = 5,\n\tEC_TAGTYPE_STRING = 6,\n\tEC_TAGTYPE_DOUBLE = 7,\n\tEC_TAGTYPE_IPV4 = 8,\n\tEC_TAGTYPE_HASH16 = 9,\n\tEC_TAGTYPE_UINT128 = 10,\n}\n\n// Type sizes\nexport const LEN_UBYTE = 1;\nexport const LEN_USHORT = 2;\nexport const LEN_UINT = 4;\nexport const LEN_ULONG = 8;\nexport const LEN_UINT128 = 16;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreateCategoryRequest-Br6yfDhZ.mjs","names":[],"sources":["../src/request/CreateCategoryRequest.ts"],"sourcesContent":["/**\n * Create Category Request - Create a new category\n */\n\nimport { Request } from './Request';\nimport { ECOpCode, ECTagName } from '../ec/Codes';\nimport { StringTag, UByteTag, UIntTag } from '../ec/tag/Tag';\nimport type { AmuleCategory } from '../model';\n\nexport class CreateCategoryRequest extends Request {\n\tconstructor(category: AmuleCategory) {\n\t\tsuper(ECOpCode.EC_OP_CREATE_CATEGORY);\n\n\t\tconst subtags = [\n\t\t\tnew StringTag(ECTagName.EC_TAG_CATEGORY_TITLE, category.name),\n\t\t\tnew StringTag(ECTagName.EC_TAG_CATEGORY_PATH, category.path),\n\t\t\tnew StringTag(ECTagName.EC_TAG_CATEGORY_COMMENT, category.comment),\n\t\t\tnew UIntTag(ECTagName.EC_TAG_CATEGORY_COLOR, category.color),\n\t\t\tnew UByteTag(ECTagName.EC_TAG_CATEGORY_PRIO, category.priority),\n\t\t];\n\n\t\t// Category tag is a container for all category properties\n\t\tthis.addTag(new UIntTag(ECTagName.EC_TAG_CATEGORY, 0, subtags));\n\t}\n}\n"],"mappings":";;;;;;;AASA,IAAa,wBAAb,cAA2C,QAAQ;CAClD,YAAY,UAAyB;EACpC,MAAA,EAAoC;EAEpC,MAAM,UAAU;GACf,IAAI,UAAA,MAA2C,SAAS,IAAI;GAC5D,IAAI,UAAA,MAA0C,SAAS,IAAI;GAC3D,IAAI,UAAA,MAA6C,SAAS,OAAO;GACjE,IAAI,QAAA,MAAyC,SAAS,KAAK;GAC3D,IAAI,SAAA,MAAyC,SAAS,QAAQ;EAC/D;EAGA,KAAK,OAAO,IAAI,QAAA,MAAmC,GAAG,OAAO,CAAC;CAC/D;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteCategoryRequest-C2-p6sx0.mjs","names":[],"sources":["../src/request/DeleteCategoryRequest.ts"],"sourcesContent":["/**\n * Delete Category Request - Delete an existing category\n */\n\nimport { Request } from './Request';\nimport { ECOpCode, ECTagName } from '../ec/Codes';\nimport { UIntTag } from '../ec/tag/Tag';\n\nexport class DeleteCategoryRequest extends Request {\n\tconstructor(id: number) {\n\t\tsuper(ECOpCode.EC_OP_DELETE_CATEGORY);\n\n\t\tthis.addTag(new UIntTag(ECTagName.EC_TAG_CATEGORY, id));\n\t}\n}\n"],"mappings":";;;;;;;AAQA,IAAa,wBAAb,cAA2C,QAAQ;CAClD,YAAY,IAAY;EACvB,MAAA,EAAoC;EAEpC,KAAK,OAAO,IAAI,QAAA,MAAmC,EAAE,CAAC;CACvD;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadCommandRequest-CaULjfNi.mjs","names":[],"sources":["../src/request/DownloadCommandRequest.ts"],"sourcesContent":["/**\n * Download Command Request - Send commands to files in download queue\n * Commands: PAUSE, RESUME, STOP, DELETE, SWAP_A4AF_THIS, etc.\n */\n\nimport { Request } from './Request';\nimport { ECOpCode, ECTagName } from '../ec/Codes';\nimport { Hash16Tag } from '../ec/tag/Tag';\nimport { DownloadCommand } from '../model';\n\nexport class DownloadCommandRequest extends Request {\n\tconstructor(hash: Buffer, command: DownloadCommand) {\n\t\t// The command IS the opcode\n\t\tsuper(DownloadCommandRequest.commandToOpCode(command));\n\n\t\tthis.addTag(new Hash16Tag(ECTagName.EC_TAG_PARTFILE, hash));\n\t}\n\n\tprivate static commandToOpCode(command: DownloadCommand): ECOpCode {\n\t\tswitch (command) {\n\t\t\tcase DownloadCommand.SWAP_A4AF_THIS:\n\t\t\t\treturn ECOpCode.EC_OP_PARTFILE_SWAP_A4AF_THIS;\n\t\t\tcase DownloadCommand.SWAP_A4AF_THIS_AUTO:\n\t\t\t\treturn ECOpCode.EC_OP_PARTFILE_SWAP_A4AF_THIS_AUTO;\n\t\t\tcase DownloadCommand.SWAP_A4AF_OTHERS:\n\t\t\t\treturn ECOpCode.EC_OP_PARTFILE_SWAP_A4AF_OTHERS;\n\t\t\tcase DownloadCommand.PAUSE:\n\t\t\t\treturn ECOpCode.EC_OP_PARTFILE_PAUSE;\n\t\t\tcase DownloadCommand.RESUME:\n\t\t\t\treturn ECOpCode.EC_OP_PARTFILE_RESUME;\n\t\t\tcase DownloadCommand.STOP:\n\t\t\t\treturn ECOpCode.EC_OP_PARTFILE_STOP;\n\t\t\tcase DownloadCommand.DELETE:\n\t\t\t\treturn ECOpCode.EC_OP_PARTFILE_DELETE;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unknown download command: ${command}`);\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;AAUA,IAAa,yBAAb,MAAa,+BAA+B,QAAQ;CACnD,YAAY,MAAc,SAA0B;EAEnD,MAAM,uBAAuB,gBAAgB,OAAO,CAAC;EAErD,KAAK,OAAO,IAAI,UAAA,KAAqC,IAAI,CAAC;CAC3D;CAEA,OAAe,gBAAgB,SAAoC;EAClE,QAAQ,SAAR;GACC,KAAA,IACC,OAAA;GACD,KAAA,IACC,OAAA;GACD,KAAA,IACC,OAAA;GACD,KAAA,IACC,OAAA;GACD,KAAA,IACC,OAAA;GACD,KAAA,IACC,OAAA;GACD,KAAA,IACC,OAAA;GACD,SACC,MAAM,IAAI,MAAM,6BAA6B,SAAS;EACxD;CACD;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadFileRequest-CcNqsBo7.mjs","names":[],"sources":["../src/request/DownloadFileRequest.ts"],"sourcesContent":["/**\n * Download File Request - Download a file from search results\n *\n * This request downloads a file that was found in search results.\n * It uses the file hash to identify the file to download.\n */\n\nimport { Request } from './Request';\nimport { ECOpCode, ECTagName } from '../ec/Codes';\nimport { Hash16Tag } from '../ec/tag/Tag';\n\nexport class DownloadFileRequest extends Request {\n\tconstructor(hash: Buffer) {\n\t\tsuper(ECOpCode.EC_OP_DOWNLOAD_SEARCH_RESULT);\n\n\t\t// Only send the hash - same as jamule DownloadSearchResultRequest\n\t\tthis.addTag(new Hash16Tag(ECTagName.EC_TAG_PARTFILE, hash));\n\t}\n}\n"],"mappings":";;;;;;;;;;AAWA,IAAa,sBAAb,cAAyC,QAAQ;CAChD,YAAY,MAAc;EACzB,MAAA,EAA2C;EAG3C,KAAK,OAAO,IAAI,UAAA,KAAqC,IAAI,CAAC;CAC3D;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadQueueRequest-bd7lFiMj.mjs","names":[],"sources":["../src/request/DownloadQueueRequest.ts"],"sourcesContent":["/**\n * Download Queue Request - Get download queue\n */\n\nimport { Request } from './Request';\nimport { ECOpCode, ECTagName, ECDetailLevel } from '../ec/Codes';\nimport { UByteTag } from '../ec/tag/Tag';\n\nexport class DownloadQueueRequest extends Request {\n\tconstructor(detailLevel: ECDetailLevel = ECDetailLevel.EC_DETAIL_FULL) {\n\t\tsuper(ECOpCode.EC_OP_GET_DLOAD_QUEUE);\n\n\t\tthis.addTag(new UByteTag(ECTagName.EC_TAG_DETAIL_LEVEL, detailLevel));\n\t}\n}\n"],"mappings":";;;;;;;AAQA,IAAa,uBAAb,cAA0C,QAAQ;CACjD,YAAY,cAAA,GAA2D;EACtE,MAAA,EAAoC;EAEpC,KAAK,OAAO,IAAI,SAAA,GAAwC,WAAW,CAAC;CACrE;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadQueueResponse-DyP1rLTV.mjs","names":[],"sources":["../src/response/DownloadDetailsResponse.ts","../src/response/DownloadQueueResponse.ts"],"sourcesContent":["import { ECTagName } from '../ec/Codes';\nimport { Packet } from '../ec/packet/Packet';\nimport { findNumericTag, findTag, type Tag } from '../ec/tag/Tag';\nimport { ChunkStatus, PARTSIZE, SourceInfo, type ChunkInfo, type ParsedSource, type SourceNameCount } from '../types/download-details';\nimport { formatIp } from './utils';\n\nfunction rleDecode(buf: Buffer): Buffer {\n\tconst output: number[] = [];\n\tlet index = 0;\n\n\twhile (index < buf.length) {\n\t\tif (index < buf.length - 2 && buf[index + 1] === buf[index]) {\n\t\t\tconst value = buf[index];\n\t\t\tconst count = buf[index + 2];\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t\tindex += 3;\n\t\t} else {\n\t\t\toutput.push(buf[index]);\n\t\t\tindex += 1;\n\t\t}\n\t}\n\n\treturn Buffer.from(output);\n}\n\nfunction decodePartStatus(buf: Buffer): number[] {\n\tconst decoded = rleDecode(buf);\n\tconst result = new Array<number>(decoded.length);\n\tfor (let i = 0; i < decoded.length; i++) {\n\t\tresult[i] = decoded[i];\n\t}\n\treturn result;\n}\n\nfunction decodeUint64Array(buf: Buffer): number[] {\n\tconst decoded = rleDecode(buf);\n\tif (decoded.length === 0 || decoded.length % 8 !== 0) {\n\t\treturn [];\n\t}\n\n\tconst valueCount = decoded.length / 8;\n\tconst values = new Array<number>(valueCount);\n\tfor (let i = 0; i < valueCount; i++) {\n\t\tlet value = 0;\n\t\tfor (let byte = 7; byte >= 0; byte--) {\n\t\t\tvalue = value * 256 + decoded[i + byte * valueCount];\n\t\t}\n\t\tvalues[i] = value;\n\t}\n\treturn values;\n}\n\nfunction stringValue(tag: Tag<any> | undefined): string {\n\tif (!tag) {\n\t\treturn '';\n\t}\n\tconst value = tag.getValue();\n\treturn typeof value === 'string' ? value : '';\n}\n\nfunction bufferValue(tag: Tag<any> | undefined): Buffer | undefined {\n\tif (!tag) {\n\t\treturn undefined;\n\t}\n\tconst value = tag.getValue();\n\treturn Buffer.isBuffer(value) ? value : undefined;\n}\n\nfunction nestedTag(parent: Tag<any>, tagName: ECTagName): Tag<any> | undefined {\n\treturn parent.nestedTags ? findTag(parent.nestedTags, tagName) : undefined;\n}\n\nfunction nestedNumeric(parent: Tag<any>, tagName: ECTagName): number {\n\tif (!parent.nestedTags) {\n\t\treturn 0;\n\t}\n\tconst numeric = findNumericTag(parent.nestedTags, tagName);\n\tif (numeric) {\n\t\treturn Number(numeric.getValue());\n\t}\n\tconst tag = findTag(parent.nestedTags, tagName);\n\tif (!tag) return 0;\n\n\tconst value = tag.getValue();\n\tif (typeof value === 'number') return value;\n\tif (typeof value === 'bigint') return Number(value);\n\n\treturn 0;\n}\n\nfunction nestedString(parent: Tag<any>, tagName: ECTagName): string {\n\tif (!parent.nestedTags) {\n\t\treturn '';\n\t}\n\treturn stringValue(findTag(parent.nestedTags, tagName));\n}\n\nfunction nestedIp(parent: Tag<any>, tagName: ECTagName): string {\n\tconst ipAsNumber = nestedNumeric(parent, tagName);\n\tif (ipAsNumber === 0) {\n\t\treturn '';\n\t}\n\treturn formatIp(ipAsNumber);\n}\n\nexport class DownloadChunkDetailsResponseParser {\n\tstatic fromPacket(packet: Packet): Record<string, ChunkInfo> {\n\t\tconst result: Record<string, ChunkInfo> = {};\n\t\tconst partfileTags = packet.tags.filter((tag) => tag.name === ECTagName.EC_TAG_PARTFILE);\n\n\t\tfor (const fileTag of partfileTags) {\n\t\t\tconst hash = bufferValue(nestedTag(fileTag, ECTagName.EC_TAG_PARTFILE_HASH));\n\t\t\tif (!hash) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst fileHash = hash.toString('hex');\n\n\t\t\tconst sizeFull = nestedNumeric(fileTag, ECTagName.EC_TAG_PARTFILE_SIZE_FULL);\n\t\t\tconst partCount = sizeFull > 0 ? Math.ceil(sizeFull / PARTSIZE) : 0;\n\n\t\t\tconst partStatusBuf = bufferValue(nestedTag(fileTag, ECTagName.EC_TAG_PARTFILE_PART_STATUS));\n\t\t\tconst gapStatusBuf = bufferValue(nestedTag(fileTag, ECTagName.EC_TAG_PARTFILE_GAP_STATUS));\n\t\t\tconst reqStatusBuf = bufferValue(nestedTag(fileTag, ECTagName.EC_TAG_PARTFILE_REQ_STATUS));\n\n\t\t\tconst availability = new Array<number>(partCount).fill(0);\n\t\t\tif (partStatusBuf && partStatusBuf.length > 0) {\n\t\t\t\tconst decodedAvailability = decodePartStatus(partStatusBuf);\n\t\t\t\tfor (let i = 0; i < Math.min(decodedAvailability.length, partCount); i++) {\n\t\t\t\t\tavailability[i] = decodedAvailability[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst chunks = new Array<number>(partCount).fill(ChunkStatus.COMPLETE);\n\t\t\tif (partCount > 0 && gapStatusBuf && gapStatusBuf.length > 0) {\n\t\t\t\tconst gapValues = decodeUint64Array(gapStatusBuf);\n\t\t\t\tfor (let i = 0; i + 1 < gapValues.length; i += 2) {\n\t\t\t\t\tconst gapStart = gapValues[i];\n\t\t\t\t\tconst gapEnd = gapValues[i + 1];\n\t\t\t\t\tif (gapStart > sizeFull || gapEnd > sizeFull || gapStart >= gapEnd) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst startPart = Math.floor(gapStart / PARTSIZE);\n\t\t\t\t\tconst endPart = Math.min(Math.floor(gapEnd / PARTSIZE) + 1, partCount);\n\t\t\t\t\tfor (let part = startPart; part < endPart; part++) {\n\t\t\t\t\t\tconst chunkStart = part * PARTSIZE;\n\t\t\t\t\t\tconst chunkEnd = Math.min((part + 1) * PARTSIZE, sizeFull);\n\t\t\t\t\t\tif (gapStart < chunkEnd && gapEnd > chunkStart) {\n\t\t\t\t\t\t\tchunks[part] = availability[part] > 0 ? ChunkStatus.AVAILABLE : ChunkStatus.UNAVAILABLE;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (partCount > 0 && reqStatusBuf && reqStatusBuf.length > 0) {\n\t\t\t\tconst reqValues = decodeUint64Array(reqStatusBuf);\n\t\t\t\tfor (let i = 0; i + 1 < reqValues.length; i += 2) {\n\t\t\t\t\tconst reqStart = reqValues[i];\n\t\t\t\t\tconst reqEnd = reqValues[i + 1];\n\t\t\t\t\tif (reqStart > sizeFull || reqEnd > sizeFull || reqStart >= reqEnd) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst startPart = Math.floor(reqStart / PARTSIZE);\n\t\t\t\t\tconst endPart = Math.min(Math.floor(reqEnd / PARTSIZE) + 1, partCount);\n\t\t\t\t\tfor (let part = startPart; part < endPart; part++) {\n\t\t\t\t\t\tif (chunks[part] === ChunkStatus.COMPLETE) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst chunkStart = part * PARTSIZE;\n\t\t\t\t\t\tconst chunkEnd = Math.min((part + 1) * PARTSIZE, sizeFull);\n\t\t\t\t\t\tif (reqStart < chunkEnd && reqEnd > chunkStart) {\n\t\t\t\t\t\t\tchunks[part] = ChunkStatus.DOWNLOADING;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tresult[fileHash] = { chunks, availability, partCount, sizeFull };\n\t\t}\n\n\t\treturn result;\n\t}\n}\n\nexport class DownloadSourceDetailsResponseParser {\n\tstatic fromPacket(packet: Packet): Record<string, SourceInfo> {\n\t\tconst result: Record<string, SourceInfo> = {};\n\t\tconst partfileTags = packet.tags.filter((tag) => tag.name === ECTagName.EC_TAG_PARTFILE);\n\n\t\tfor (const fileTag of partfileTags) {\n\t\t\tconst hash = bufferValue(nestedTag(fileTag, ECTagName.EC_TAG_PARTFILE_HASH));\n\t\t\tif (!hash) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst fileHash = hash.toString('hex');\n\t\t\tconst sourceNames: SourceNameCount[] = [];\n\t\t\tconst sources: ParsedSource[] = [];\n\n\t\t\tfor (const nested of fileTag.nestedTags || []) {\n\t\t\t\tif (nested.name !== ECTagName.EC_TAG_CLIENT) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tsources.push({\n\t\t\t\t\tclientName: nestedString(nested, ECTagName.EC_TAG_CLIENT_NAME) || 'Unknown',\n\t\t\t\t\tuserHash: bufferValue(nestedTag(nested, ECTagName.EC_TAG_CLIENT_HASH))?.toString('hex') || '',\n\t\t\t\t\tsoftware: nestedString(nested, ECTagName.EC_TAG_CLIENT_SOFTWARE),\n\t\t\t\t\tsoftwareVersion: nestedString(nested, ECTagName.EC_TAG_CLIENT_SOFT_VER_STR),\n\t\t\t\t\tscore: nestedNumeric(nested, ECTagName.EC_TAG_CLIENT_SCORE),\n\t\t\t\t\tuploadSpeed: nestedNumeric(nested, ECTagName.EC_TAG_CLIENT_UP_SPEED),\n\t\t\t\t\tdownloadSpeed: nestedNumeric(nested, ECTagName.EC_TAG_CLIENT_DOWN_SPEED),\n\t\t\t\t\tuploadState: nestedNumeric(nested, ECTagName.EC_TAG_CLIENT_UPLOAD_STATE),\n\t\t\t\t\tdownloadState: nestedNumeric(nested, ECTagName.EC_TAG_CLIENT_DOWNLOAD_STATE),\n\t\t\t\t\tip: nestedIp(nested, ECTagName.EC_TAG_CLIENT_USER_IP),\n\t\t\t\t\tport: nestedNumeric(nested, ECTagName.EC_TAG_CLIENT_USER_PORT),\n\t\t\t\t\tremoteQueueRank: nestedNumeric(nested, ECTagName.EC_TAG_CLIENT_REMOTE_QUEUE_RANK),\n\t\t\t\t\twaitingPosition: nestedNumeric(nested, ECTagName.EC_TAG_CLIENT_WAITING_POSITION),\n\t\t\t\t\tidentState: nestedNumeric(nested, ECTagName.EC_TAG_CLIENT_IDENT_STATE),\n\t\t\t\t\tobfuscationStatus: nestedNumeric(nested, ECTagName.EC_TAG_CLIENT_OBFUSCATION_STATUS),\n\t\t\t\t\tremoteFilename: nestedString(nested, ECTagName.EC_TAG_CLIENT_REMOTE_FILENAME),\n\t\t\t\t\tavailableParts: nestedNumeric(nested, ECTagName.EC_TAG_CLIENT_AVAILABLE_PARTS),\n\t\t\t\t\tsourceFrom: nestedNumeric(nested, ECTagName.EC_TAG_CLIENT_FROM),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst namesTag = nestedTag(fileTag, ECTagName.EC_TAG_PARTFILE_SOURCE_NAMES);\n\t\t\tconst countsTag = nestedTag(fileTag, ECTagName.EC_TAG_PARTFILE_SOURCE_NAMES_COUNTS);\n\t\t\tconst nameTags = namesTag?.nestedTags || [];\n\t\t\tconst countTags = countsTag?.nestedTags || [];\n\n\t\t\tfor (let i = 0; i < nameTags.length; i++) {\n\t\t\t\tconst name = stringValue(nameTags[i]);\n\t\t\t\tif (!name) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst countTag = countTags[i];\n\t\t\t\tconst rawCount = countTag?.getValue();\n\t\t\t\tconst count = typeof rawCount === 'number' ? rawCount : typeof rawCount === 'bigint' ? Number(rawCount) : 1;\n\t\t\t\tsourceNames.push({ name, count });\n\t\t\t}\n\n\t\t\tresult[fileHash] = { sources, sourceNames };\n\t\t}\n\n\t\treturn result;\n\t}\n}\n","/**\n * Download Queue Response - Parse download queue\n */\n\nimport { Packet } from '../ec/packet/Packet';\nimport { ECTagName } from '../ec/Codes';\nimport { findNumericTag, findTag } from '../ec/tag/Tag';\nimport type { AmuleTransferringFile, FileStatus } from '../model';\nimport { DownloadChunkDetailsResponseParser, DownloadSourceDetailsResponseParser } from './DownloadDetailsResponse';\nimport { toOptionalBool, toOptionalNumber } from './utils';\n\nexport interface DownloadQueueResponse {\n\tfiles: AmuleTransferringFile[];\n}\n\nexport class DownloadQueueResponseParser {\n\tstatic fromPacket(packet: Packet): DownloadQueueResponse {\n\t\tconst files: AmuleTransferringFile[] = [];\n\t\tconst chunkDetailsByHash = DownloadChunkDetailsResponseParser.fromPacket(packet);\n\t\tconst sourceDetailsByHash = DownloadSourceDetailsResponseParser.fromPacket(packet);\n\n\t\t// Find all partfile tags\n\t\tconst partfileTags = packet.tags.filter((tag) => tag.name === ECTagName.EC_TAG_PARTFILE);\n\n\t\tfor (const fileTag of partfileTags) {\n\t\t\tconst tags = fileTag.nestedTags || [];\n\n\t\t\tconst hashTag = findTag(tags, ECTagName.EC_TAG_PARTFILE_HASH);\n\t\t\tconst fileNameTag = findTag(tags, ECTagName.EC_TAG_PARTFILE_NAME);\n\n\t\t\tlet a4afSources: number[] | undefined = undefined; // Will be filled if A4AF sources are present\n\t\t\tconst a4afSourcesTag = findTag(tags, ECTagName.EC_TAG_PARTFILE_A4AF_SOURCES);\n\t\t\tif (a4afSourcesTag) {\n\t\t\t\ta4afSources = [];\n\t\t\t\ta4afSourcesTag.nestedTags = a4afSourcesTag.nestedTags || [];\n\t\t\t\tfor (const sourceTag of a4afSourcesTag.nestedTags) {\n\t\t\t\t\tif (sourceTag.name === ECTagName.EC_TAG_ECID) {\n\t\t\t\t\t\ta4afSources.push(sourceTag.getValue());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Basic file info\n\t\t\tconst file: AmuleTransferringFile = {\n\t\t\t\tfileHashHexString: hashTag ? hashTag.getValue().toString('hex') : undefined,\n\t\t\t\tfileName: fileNameTag ? fileNameTag.getValue() : undefined,\n\t\t\t\tfilePath: findTag(tags, ECTagName.EC_TAG_KNOWNFILE_FILENAME)?.getValue(),\n\t\t\t\tsizeFull: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_SIZE_FULL)?.getLong()),\n\t\t\t\tfileEd2kLink: findTag(tags, ECTagName.EC_TAG_PARTFILE_ED2K_LINK)?.getValue(),\n\n\t\t\t\t// Transfer info\n\t\t\t\tpartMetID: findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_PARTMETID)?.getShort(),\n\t\t\t\tsizeXfer: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_SIZE_XFER)?.getLong()),\n\t\t\t\tsizeDone: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_SIZE_DONE)?.getLong()),\n\t\t\t\tfileStatus: findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_STATUS)?.getInt() as FileStatus | undefined,\n\t\t\t\tstopped: toOptionalBool(findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_STOPPED)?.getInt()),\n\t\t\t\tsourceCount: findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_SOURCE_COUNT)?.getShort(),\n\t\t\t\tsourceNotCurrCount: findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_SOURCE_COUNT_NOT_CURRENT)?.getShort(),\n\t\t\t\tsourceXferCount: findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_SOURCE_COUNT_XFER)?.getShort(),\n\t\t\t\tsourceCountA4AF: findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_SOURCE_COUNT_A4AF)?.getShort(),\n\t\t\t\tspeed: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_SPEED)?.getLong()),\n\t\t\t\tdownPrio: findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_PRIO)?.getInt(),\n\t\t\t\tfileCat: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_CAT)?.getLong()),\n\t\t\t\tlastSeenComplete: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_LAST_SEEN_COMP)?.getLong()),\n\t\t\t\tlastDateChanged: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_LAST_RECV)?.getLong()),\n\t\t\t\tdownloadActiveTime: findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_DOWNLOAD_ACTIVE)?.getInt(),\n\t\t\t\tavailablePartCount: findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_AVAILABLE_PARTS)?.getShort(),\n\t\t\t\ta4AFAuto: toOptionalBool(findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_A4AFAUTO)?.getInt()),\n\t\t\t\thashingProgress: toOptionalBool(findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_HASHED_PART_COUNT)?.getInt()),\n\n\t\t\t\t// Statistics\n\t\t\t\tgetLostDueToCorruption: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_LOST_CORRUPTION)?.getLong()),\n\t\t\t\tgetGainDueToCompression: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_GAINED_COMPRESSION)?.getLong()),\n\t\t\t\ttotalPacketsSavedDueToICH: findNumericTag(tags, ECTagName.EC_TAG_PARTFILE_SAVED_ICH)?.getInt(),\n\n\t\t\t\t// Known file shared info\n\t\t\t\tupPrio: findNumericTag(tags, ECTagName.EC_TAG_KNOWNFILE_PRIO)?.getInt(),\n\t\t\t\tgetRequests: findNumericTag(tags, ECTagName.EC_TAG_KNOWNFILE_REQ_COUNT)?.getShort(),\n\t\t\t\tgetAllRequests: findNumericTag(tags, ECTagName.EC_TAG_KNOWNFILE_REQ_COUNT_ALL)?.getInt(),\n\t\t\t\tgetAccepts: findNumericTag(tags, ECTagName.EC_TAG_KNOWNFILE_ACCEPT_COUNT)?.getShort(),\n\t\t\t\tgetAllAccepts: findNumericTag(tags, ECTagName.EC_TAG_KNOWNFILE_ACCEPT_COUNT_ALL)?.getInt(),\n\t\t\t\tgetXferred: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_KNOWNFILE_XFERRED)?.getLong()),\n\t\t\t\tgetAllXferred: toOptionalNumber(findNumericTag(tags, ECTagName.EC_TAG_KNOWNFILE_XFERRED_ALL)?.getLong()),\n\t\t\t\tgetCompleteSourcesLow: findNumericTag(tags, ECTagName.EC_TAG_KNOWNFILE_COMPLETE_SOURCES_LOW)?.getShort(),\n\t\t\t\tgetCompleteSourcesHigh: findNumericTag(tags, ECTagName.EC_TAG_KNOWNFILE_COMPLETE_SOURCES_HIGH)?.getShort(),\n\t\t\t\tgetCompleteSources: findNumericTag(tags, ECTagName.EC_TAG_KNOWNFILE_COMPLETE_SOURCES)?.getShort(),\n\t\t\t\tgetOnQueue: findNumericTag(tags, ECTagName.EC_TAG_KNOWNFILE_ON_QUEUE)?.getShort(),\n\t\t\t\tgetComment: findTag(tags, ECTagName.EC_TAG_KNOWNFILE_COMMENT)?.getValue(),\n\t\t\t\tgetRating: findNumericTag(tags, ECTagName.EC_TAG_KNOWNFILE_RATING)?.getInt(),\n\t\t\t\ta4afSources,\n\t\t\t};\n\n\t\t\tif (file.fileHashHexString) {\n\t\t\t\tfile.chunkInfo = chunkDetailsByHash[file.fileHashHexString];\n\t\t\t\tconst sourceDetails = sourceDetailsByHash[file.fileHashHexString];\n\t\t\t\tif (sourceDetails) {\n\t\t\t\t\tfile.sources = sourceDetails.sources;\n\t\t\t\t\tfile.sourceNames = sourceDetails.sourceNames;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfiles.push(file);\n\t\t}\n\n\t\treturn { files };\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GetPreferencesRequest-C94Su9IH.mjs","names":[],"sources":["../src/request/GetPreferencesRequest.ts"],"sourcesContent":["/**\n * Preferences Request - Get preferences\n */\n\nimport { Request } from './Request';\nimport { ECDetailLevel, ECOpCode, EcPrefs, ECTagName } from '../ec/Codes';\nimport { UByteTag, UIntTag } from '../ec/tag/Tag';\n\nexport class GetPreferencesRequest extends Request {\n\tconstructor(pref: EcPrefs) {\n\t\tsuper(ECOpCode.EC_OP_GET_PREFERENCES);\n\t\tthis.addTag(new UByteTag(ECTagName.EC_TAG_DETAIL_LEVEL, ECDetailLevel.EC_DETAIL_FULL));\n\t\tthis.addTag(new UIntTag(ECTagName.EC_TAG_SELECT_PREFS, pref));\n\t}\n}\n"],"mappings":";;;;;;;AAQA,IAAa,wBAAb,cAA2C,QAAQ;CAClD,YAAY,MAAe;EAC1B,MAAA,EAAoC;EACpC,KAAK,OAAO,IAAI,SAAA,GAAA,CAAoE,CAAC;EACrF,KAAK,OAAO,IAAI,QAAA,MAAuC,IAAI,CAAC;CAC7D;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PreferencesDetailsResponse-BjMxbvVY.mjs","names":[],"sources":["../src/response/PreferencesDetailsResponse.ts"],"sourcesContent":["import { EcPrefs, ECTagName } from '../ec/Codes';\nimport { Packet } from '../ec/packet/Packet';\nimport { findNumericTag, findTag, type Tag } from '../ec/tag/Tag';\nimport type { AmulePreferences, AmulePrefsConnection, AmulePrefsGeneral, AmulePrefsSecurity, AmulePrefsServers } from '../types/preferences';\n\nexport class PreferencesDetailsResponse {\n\tconstructor(public readonly preferences: AmulePreferences) {}\n}\n\nfunction getNestedTag(parent: Tag<any> | undefined, name: ECTagName): Tag<any> | undefined {\n\tif (!parent?.nestedTags) {\n\t\treturn undefined;\n\t}\n\treturn findTag(parent.nestedTags, name);\n}\n\nfunction getNestedNumber(parent: Tag<any> | undefined, name: ECTagName, fallback: number): number {\n\tif (!parent?.nestedTags) {\n\t\treturn fallback;\n\t}\n\n\tconst numeric = findNumericTag(parent.nestedTags, name);\n\tif (numeric) {\n\t\treturn Number(numeric.getValue());\n\t}\n\n\tconst tag = findTag(parent.nestedTags, name);\n\tif (!tag) {\n\t\treturn fallback;\n\t}\n\n\tconst value = tag.getValue();\n\tif (typeof value === 'number') {\n\t\treturn value;\n\t}\n\tif (typeof value === 'bigint') {\n\t\treturn Number(value);\n\t}\n\treturn fallback;\n}\n\nfunction getNestedBool(parent: Tag<any> | undefined, name: ECTagName, fallback: boolean): boolean {\n\tconst tag = getNestedTag(parent, name);\n\tif (!tag) {\n\t\treturn fallback;\n\t}\n\n\tconst value = tag.getValue();\n\tif (typeof value === 'boolean') {\n\t\treturn value;\n\t}\n\tif (typeof value === 'number') {\n\t\treturn value !== 0;\n\t}\n\tif (typeof value === 'bigint') {\n\t\treturn value !== 0n;\n\t}\n\tif (Buffer.isBuffer(value)) {\n\t\treturn value.length === 0 || value.some((byte) => byte !== 0);\n\t}\n\n\t// For empty/presence tags in EC protocol, presence means true.\n\treturn true;\n}\n\nfunction getNestedString(parent: Tag<any> | undefined, name: ECTagName, fallback: string): string {\n\tconst tag = getNestedTag(parent, name);\n\tif (!tag) {\n\t\treturn fallback;\n\t}\n\n\tconst value = tag.getValue();\n\treturn typeof value === 'string' ? value : fallback;\n}\n\nexport class PreferencesDetailsResponseParser {\n\tstatic fromPacket(packet: Packet): PreferencesDetailsResponse {\n\t\tconst generalTag = findTag(packet.tags, ECTagName.EC_TAG_PREFS_GENERAL);\n\t\tconst connectionTag = findTag(packet.tags, ECTagName.EC_TAG_PREFS_CONNECTIONS);\n\t\tconst serversTag = findTag(packet.tags, ECTagName.EC_TAG_PREFS_SERVERS);\n\t\tconst securityTag = findTag(packet.tags, ECTagName.EC_TAG_PREFS_SECURITY);\n\n\t\tconst general: AmulePrefsGeneral = {\n\t\t\tuserNick: getNestedString(generalTag, ECTagName.EC_TAG_USER_NICK, ''),\n\t\t\tcheckNewVersion: getNestedBool(generalTag, ECTagName.EC_TAG_GENERAL_CHECK_NEW_VERSION, false),\n\t\t};\n\n\t\tconst connection: AmulePrefsConnection = {\n\t\t\tuploadCapacity: getNestedNumber(connectionTag, ECTagName.EC_TAG_CONN_UL_CAP, 0),\n\t\t\tdownloadCapacity: getNestedNumber(connectionTag, ECTagName.EC_TAG_CONN_DL_CAP, 0),\n\t\t\tmaxUploadSpeed: getNestedNumber(connectionTag, ECTagName.EC_TAG_CONN_MAX_UL, 0),\n\t\t\tmaxDownloadSpeed: getNestedNumber(connectionTag, ECTagName.EC_TAG_CONN_MAX_DL, 0),\n\t\t\tslotAllocation: getNestedNumber(connectionTag, ECTagName.EC_TAG_CONN_SLOT_ALLOCATION, 2),\n\t\t\ttcpPort: getNestedNumber(connectionTag, ECTagName.EC_TAG_CONN_TCP_PORT, 4662),\n\t\t\tudpPort: getNestedNumber(connectionTag, ECTagName.EC_TAG_CONN_UDP_PORT, 4672),\n\t\t\tmaxFileSources: getNestedNumber(connectionTag, ECTagName.EC_TAG_CONN_MAX_FILE_SOURCES, 300),\n\t\t\tmaxConnections: getNestedNumber(connectionTag, ECTagName.EC_TAG_CONN_MAX_CONN, 500),\n\t\t\tautoconnect: getNestedBool(connectionTag, ECTagName.EC_TAG_CONN_AUTOCONNECT, false),\n\t\t\treconnect: getNestedBool(connectionTag, ECTagName.EC_TAG_CONN_RECONNECT, false),\n\t\t\tnetworkED2K: getNestedBool(connectionTag, ECTagName.EC_TAG_NETWORK_ED2K, true),\n\t\t\tnetworkKademlia: getNestedBool(connectionTag, ECTagName.EC_TAG_NETWORK_KADEMLIA, false),\n\t\t};\n\n\t\tconst servers: AmulePrefsServers = {\n\t\t\tremoveDead: getNestedBool(serversTag, ECTagName.EC_TAG_SERVERS_REMOVE_DEAD, true),\n\t\t\tdeadRetries: getNestedNumber(serversTag, ECTagName.EC_TAG_SERVERS_DEAD_SERVER_RETRIES, 3),\n\t\t\tuseScoreSystem: getNestedBool(serversTag, ECTagName.EC_TAG_SERVERS_USE_SCORE_SYSTEM, true),\n\t\t\tsmartIdCheck: getNestedBool(serversTag, ECTagName.EC_TAG_SERVERS_SMART_ID_CHECK, true),\n\t\t\tupdateUrl: getNestedString(serversTag, ECTagName.EC_TAG_SERVERS_UPDATE_URL, ''),\n\t\t};\n\n\t\tconst security: AmulePrefsSecurity = {\n\t\t\tcanSeeShares: getNestedNumber(securityTag, ECTagName.EC_TAG_SECURITY_CAN_SEE_SHARES, 2),\n\t\t\tipFilterClients: getNestedBool(securityTag, ECTagName.EC_TAG_IPFILTER_CLIENTS, true),\n\t\t\tipFilterServers: getNestedBool(securityTag, ECTagName.EC_TAG_IPFILTER_SERVERS, true),\n\t\t\tipFilterAutoUpdate: getNestedBool(securityTag, ECTagName.EC_TAG_IPFILTER_AUTO_UPDATE, false),\n\t\t\tipFilterUpdateUrl: getNestedString(securityTag, ECTagName.EC_TAG_IPFILTER_UPDATE_URL, ''),\n\t\t\tipFilterLevel: getNestedNumber(securityTag, ECTagName.EC_TAG_IPFILTER_LEVEL, 127),\n\t\t\tfilterLan: getNestedBool(securityTag, ECTagName.EC_TAG_IPFILTER_FILTER_LAN, true),\n\t\t\tuseSecIdent: getNestedBool(securityTag, ECTagName.EC_TAG_SECURITY_USE_SECIDENT, true),\n\t\t\tobfuscationSupported: getNestedBool(securityTag, ECTagName.EC_TAG_SECURITY_OBFUSCATION_SUPPORTED, true),\n\t\t\tobfuscationRequested: getNestedBool(securityTag, ECTagName.EC_TAG_SECURITY_OBFUSCATION_REQUESTED, false),\n\t\t\tobfuscationRequired: getNestedBool(securityTag, ECTagName.EC_TAG_SECURITY_OBFUSCATION_REQUIRED, false),\n\t\t};\n\n\t\treturn new PreferencesDetailsResponse({ general, connection, servers, security });\n\t}\n\n\tstatic preferenceMaskForAllSections(): EcPrefs {\n\t\treturn EcPrefs.EC_PREFS_GENERAL | EcPrefs.EC_PREFS_CONNECTIONS | EcPrefs.EC_PREFS_SERVERS | EcPrefs.EC_PREFS_SECURITY;\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PreferencesResponse-Dth-n2sA.mjs","names":[],"sources":["../src/response/PreferencesResponse.ts"],"sourcesContent":["/**\n * Preferences Response - Contains aMule preferences, including categories\n */\n\nimport { Packet } from '../ec/packet/Packet';\nimport { ECTagName } from '../ec/Codes';\nimport { findTag, findNumericTag, NumericTag } from '../ec/tag/Tag';\nimport type { AmuleCategory } from '../model';\n\nexport class PreferencesResponse {\n\tconstructor(public readonly categories: AmuleCategory[]) {}\n}\n\nexport class PreferencesResponseParser {\n\tstatic fromPacket(packet: Packet): PreferencesResponse {\n\t\tconst categories: AmuleCategory[] = [];\n\n\t\tconst prefsCategoriesTag = findTag(packet.tags, ECTagName.EC_TAG_PREFS_CATEGORIES);\n\n\t\tif (prefsCategoriesTag && prefsCategoriesTag.nestedTags) {\n\t\t\tfor (const categoryTag of prefsCategoriesTag.nestedTags) {\n\t\t\t\tif (categoryTag.name === ECTagName.EC_TAG_CATEGORY) {\n\t\t\t\t\tconst nestedTags = categoryTag.nestedTags || [];\n\n\t\t\t\t\tconst idTag = categoryTag;\n\t\t\t\t\tconst nameTag = findTag(nestedTags, ECTagName.EC_TAG_CATEGORY_TITLE);\n\t\t\t\t\tconst pathTag = findTag(nestedTags, ECTagName.EC_TAG_CATEGORY_PATH);\n\t\t\t\t\tconst commentTag = findTag(nestedTags, ECTagName.EC_TAG_CATEGORY_COMMENT);\n\t\t\t\t\tconst colorTag = findNumericTag(nestedTags, ECTagName.EC_TAG_CATEGORY_COLOR);\n\t\t\t\t\tconst priorityTag = findNumericTag(nestedTags, ECTagName.EC_TAG_CATEGORY_PRIO);\n\n\t\t\t\t\tif (nameTag) {\n\t\t\t\t\t\tcategories.push({\n\t\t\t\t\t\t\tid: idTag ? Number((idTag as unknown as NumericTag).getInt()) : 0,\n\t\t\t\t\t\t\tname: nameTag.getValue() || '',\n\t\t\t\t\t\t\tpath: pathTag ? pathTag.getValue() : '',\n\t\t\t\t\t\t\tcomment: commentTag ? commentTag.getValue() : '',\n\t\t\t\t\t\t\tcolor: colorTag ? Number((colorTag as unknown as NumericTag).getInt()) : 0,\n\t\t\t\t\t\t\tpriority: priorityTag ? Number((priorityTag as unknown as NumericTag).getInt()) : 0,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn new PreferencesResponse(categories);\n\t}\n}\n"],"mappings":";;;AASA,IAAa,sBAAb,MAAiC;CACJ;CAA5B,YAAY,YAA6C;EAA7B,KAAA,aAAA;CAA8B;AAC3D;AAEA,IAAa,4BAAb,MAAuC;CACtC,OAAO,WAAW,QAAqC;EACtD,MAAM,aAA8B,CAAC;EAErC,MAAM,qBAAqB,QAAQ,OAAO,MAAA,IAAuC;EAEjF,IAAI,sBAAsB,mBAAmB;QACvC,MAAM,eAAe,mBAAmB,YAC5C,IAAI,YAAY,SAAA,MAAoC;IACnD,MAAM,aAAa,YAAY,cAAc,CAAC;IAE9C,MAAM,QAAQ;IACd,MAAM,UAAU,QAAQ,YAAA,IAA2C;IACnE,MAAM,UAAU,QAAQ,YAAA,IAA0C;IAClE,MAAM,aAAa,QAAQ,YAAA,IAA6C;IACxE,MAAM,WAAW,eAAe,YAAA,IAA2C;IAC3E,MAAM,cAAc,eAAe,YAAA,IAA0C;IAE7E,IAAI,SACH,WAAW,KAAK;KACf,IAAI,QAAQ,OAAQ,MAAgC,OAAO,CAAC,IAAI;KAChE,MAAM,QAAQ,SAAS,KAAK;KAC5B,MAAM,UAAU,QAAQ,SAAS,IAAI;KACrC,SAAS,aAAa,WAAW,SAAS,IAAI;KAC9C,OAAO,WAAW,OAAQ,SAAmC,OAAO,CAAC,IAAI;KACzE,UAAU,cAAc,OAAQ,YAAsC,OAAO,CAAC,IAAI;IACnF,CAAC;GAEH;;EAIF,OAAO,IAAI,oBAAoB,UAAU;CAC1C;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReloadSharedFilesRequest-CPwAEJYG.mjs","names":[],"sources":["../src/request/ReloadSharedFilesRequest.ts"],"sourcesContent":["/**\n * Reload Shared Files Request - Reload shared files list\n */\n\nimport { Request } from './Request';\nimport { ECOpCode } from '../ec/Codes';\n\nexport class ReloadSharedFilesRequest extends Request {\n\tconstructor() {\n\t\tsuper(ECOpCode.EC_OP_SHAREDFILES_RELOAD);\n\t}\n}\n"],"mappings":";;;;;;AAOA,IAAa,2BAAb,cAA8C,QAAQ;CACrD,cAAc;EACb,MAAA,EAAuC;CACxC;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Request-C0UUuQIX.mjs","names":[],"sources":["../src/ec/packet/Flags.ts","../src/ec/packet/Packet.ts","../src/request/Request.ts"],"sourcesContent":["/**\n * Packet flags for EC protocol\n */\n\nexport class Flags {\n\tprivate static readonly FLAG_ACCEPTS = 0x10;\n\tprivate static readonly FLAG_ZLIB = 0x01;\n\tprivate static readonly FLAG_UTF8_NUMBERS = 0x02;\n\tprivate static readonly FLAG_ALWAYS_SET = 0x20; // Bit 5 always set to distinguish from older clients\n\n\tprivate readonly flags: number;\n\n\tconstructor(flags?: number) {\n\t\tthis.flags = flags ?? 0;\n\t}\n\n\t/**\n\t * Create flags from buffer\n\t */\n\tstatic fromBuffer(buffer: Buffer, offset: number = 0): Flags {\n\t\tconst flags = buffer.readUInt32BE(offset);\n\t\treturn new Flags(flags);\n\t}\n\n\t/**\n\t * Write flags to buffer\n\t */\n\twriteToBuffer(buffer: Buffer, offset: number = 0): void {\n\t\tbuffer.writeUInt32BE(this.flags, offset);\n\t}\n\n\t/**\n\t * Check if UTF-8 number encoding is supported/accepted\n\t */\n\tisUtf8NumbersAccepted(): boolean {\n\t\treturn (this.flags & Flags.FLAG_ACCEPTS) > 0 && (this.flags & Flags.FLAG_UTF8_NUMBERS) > 0;\n\t}\n\n\t/**\n\t * Check if ZLIB compression is supported/accepted\n\t */\n\tisZlibAccepted(): boolean {\n\t\treturn (this.flags & Flags.FLAG_ACCEPTS) > 0 && (this.flags & Flags.FLAG_ZLIB) > 0;\n\t}\n\n\t/**\n\t * Check if UTF-8 number encoding is used\n\t */\n\tisUtf8Numbers(): boolean {\n\t\treturn (this.flags & Flags.FLAG_UTF8_NUMBERS) > 0;\n\t}\n\n\t/**\n\t * Check if ZLIB compression is used\n\t */\n\tisZlib(): boolean {\n\t\treturn (this.flags & Flags.FLAG_ZLIB) > 0;\n\t}\n\n\t/**\n\t * Create flags accepting UTF-8 numbers and ZLIB\n\t */\n\tstatic accept(): Flags {\n\t\treturn new Flags(Flags.FLAG_ACCEPTS | Flags.FLAG_UTF8_NUMBERS | Flags.FLAG_ZLIB | Flags.FLAG_ALWAYS_SET);\n\t}\n\n\t/**\n\t * Create flags using UTF-8 numbers\n\t */\n\tstatic useUtf8Numbers(): Flags {\n\t\treturn new Flags(Flags.FLAG_UTF8_NUMBERS | Flags.FLAG_ALWAYS_SET);\n\t}\n\n\t/**\n\t * Create flags without UTF-8 numbers (required for search)\n\t */\n\tstatic noUtf8(): Flags {\n\t\treturn new Flags(Flags.FLAG_ALWAYS_SET);\n\t}\n\n\t/**\n\t * Create flags using ZLIB compression\n\t */\n\tstatic useZlib(): Flags {\n\t\treturn new Flags(Flags.FLAG_ZLIB | Flags.FLAG_ALWAYS_SET);\n\t}\n\n\t/**\n\t * Get numeric value of flags\n\t */\n\tgetValue(): number {\n\t\treturn this.flags;\n\t}\n}\n","/**\n * EC Packet structure\n */\n\nimport { ECOpCode } from '../Codes';\nimport { Flags } from './Flags';\nimport type { Tag } from '../tag/Tag';\n\nexport class Packet {\n\tprivate static readonly EC_CURRENT_PROTOCOL_VERSION = 0x0204;\n\n\tconstructor(\n\t\tpublic readonly opCode: ECOpCode,\n\t\tpublic readonly flags: Flags = new Flags(),\n\t\tpublic readonly tags: Tag<any>[] = []\n\t) {}\n\n\t/**\n\t * Add a tag to the packet\n\t */\n\taddTag(tag: Tag<any>): this {\n\t\tthis.tags.push(tag);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Add multiple tags to the packet\n\t */\n\taddTags(tags: Tag<any>[]): this {\n\t\tthis.tags.push(...tags);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Get protocol version\n\t */\n\tstatic getProtocolVersion(): number {\n\t\treturn Packet.EC_CURRENT_PROTOCOL_VERSION;\n\t}\n\n\t/**\n\t * Find a tag by name\n\t */\n\tfindTag(tagName: number): Tag<any> | undefined {\n\t\treturn this.tags.find((tag) => tag.name === tagName);\n\t}\n\n\t/**\n\t * Get all tags with a specific name\n\t */\n\tfindAllTags(tagName: number): Tag<any>[] {\n\t\treturn this.tags.filter((tag) => tag.name === tagName);\n\t}\n\n\t/**\n\t * Check if packet has a specific tag\n\t */\n\thasTag(tagName: number): boolean {\n\t\treturn this.findTag(tagName) !== undefined;\n\t}\n}\n","/**\n * Base Request class\n */\n\nimport { Packet } from '../ec/packet/Packet';\nimport { Flags } from '../ec/packet/Flags';\nimport { ECOpCode } from '../ec/Codes';\nimport type { Tag } from '../ec/tag/Tag';\n\nexport abstract class Request {\n\tprotected readonly opCode: ECOpCode;\n\tprotected readonly tags: Tag<any>[] = [];\n\n\tconstructor(opCode: ECOpCode) {\n\t\tthis.opCode = opCode;\n\t}\n\n\t/**\n\t * Add a tag to the request\n\t */\n\tprotected addTag(tag: Tag<any>): void {\n\t\tthis.tags.push(tag);\n\t}\n\n\t/**\n\t * Build the packet for this request\n\t */\n\tbuildPacket(): Packet {\n\t\tconst flags = Flags.useUtf8Numbers();\n\t\treturn new Packet(this.opCode, flags, this.tags);\n\t}\n}\n"],"mappings":";;;;AAIA,IAAa,QAAb,MAAa,MAAM;CAClB,OAAwB,eAAe;CACvC,OAAwB,YAAY;CACpC,OAAwB,oBAAoB;CAC5C,OAAwB,kBAAkB;CAE1C;CAEA,YAAY,OAAgB;EAC3B,KAAK,QAAQ,SAAS;CACvB;;;;CAKA,OAAO,WAAW,QAAgB,SAAiB,GAAU;EAE5D,OAAO,IAAI,MADG,OAAO,aAAa,MACb,CAAC;CACvB;;;;CAKA,cAAc,QAAgB,SAAiB,GAAS;EACvD,OAAO,cAAc,KAAK,OAAO,MAAM;CACxC;;;;CAKA,wBAAiC;EAChC,QAAQ,KAAK,QAAQ,MAAM,gBAAgB,MAAM,KAAK,QAAQ,MAAM,qBAAqB;CAC1F;;;;CAKA,iBAA0B;EACzB,QAAQ,KAAK,QAAQ,MAAM,gBAAgB,MAAM,KAAK,QAAQ,MAAM,aAAa;CAClF;;;;CAKA,gBAAyB;EACxB,QAAQ,KAAK,QAAQ,MAAM,qBAAqB;CACjD;;;;CAKA,SAAkB;EACjB,QAAQ,KAAK,QAAQ,MAAM,aAAa;CACzC;;;;CAKA,OAAO,SAAgB;EACtB,OAAO,IAAI,MAAM,MAAM,eAAe,MAAM,oBAAoB,MAAM,YAAY,MAAM,eAAe;CACxG;;;;CAKA,OAAO,iBAAwB;EAC9B,OAAO,IAAI,MAAM,MAAM,oBAAoB,MAAM,eAAe;CACjE;;;;CAKA,OAAO,SAAgB;EACtB,OAAO,IAAI,MAAM,MAAM,eAAe;CACvC;;;;CAKA,OAAO,UAAiB;EACvB,OAAO,IAAI,MAAM,MAAM,YAAY,MAAM,eAAe;CACzD;;;;CAKA,WAAmB;EAClB,OAAO,KAAK;CACb;AACD;;;ACrFA,IAAa,SAAb,MAAa,OAAO;CAIF;CACA;CACA;CALjB,OAAwB,8BAA8B;CAEtD,YACC,QACA,QAA+B,IAAI,MAAM,GACzC,OAAmC,CAAC,GACnC;EAHe,KAAA,SAAA;EACA,KAAA,QAAA;EACA,KAAA,OAAA;CACd;;;;CAKH,OAAO,KAAqB;EAC3B,KAAK,KAAK,KAAK,GAAG;EAClB,OAAO;CACR;;;;CAKA,QAAQ,MAAwB;EAC/B,KAAK,KAAK,KAAK,GAAG,IAAI;EACtB,OAAO;CACR;;;;CAKA,OAAO,qBAA6B;EACnC,OAAO,OAAO;CACf;;;;CAKA,QAAQ,SAAuC;EAC9C,OAAO,KAAK,KAAK,MAAM,QAAQ,IAAI,SAAS,OAAO;CACpD;;;;CAKA,YAAY,SAA6B;EACxC,OAAO,KAAK,KAAK,QAAQ,QAAQ,IAAI,SAAS,OAAO;CACtD;;;;CAKA,OAAO,SAA0B;EAChC,OAAO,KAAK,QAAQ,OAAO,MAAM,KAAA;CAClC;AACD;;;;;;ACnDA,IAAsB,UAAtB,MAA8B;CAC7B;CACA,OAAsC,CAAC;CAEvC,YAAY,QAAkB;EAC7B,KAAK,SAAS;CACf;;;;CAKA,OAAiB,KAAqB;EACrC,KAAK,KAAK,KAAK,GAAG;CACnB;;;;CAKA,cAAsB;EACrB,MAAM,QAAQ,MAAM,eAAe;EACnC,OAAO,IAAI,OAAO,KAAK,QAAQ,OAAO,KAAK,IAAI;CAChD;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SearchProgressResponse-Bputc9Ww.mjs","names":[],"sources":["../src/response/SearchProgressResponse.ts"],"sourcesContent":["/**\n * Search Progress Response - Search status/progress\n */\n\nimport { Packet } from '../ec/packet/Packet';\nimport { ECTagName } from '../ec/Codes';\nimport { findNumericTag } from '../ec/tag/Tag';\n\nexport class SearchProgressResponse {\n\tconstructor(public readonly progress: number) {}\n\n\tstatic fromPacket(packet: Packet): SearchProgressResponse {\n\t\tconst progressTag = findNumericTag(packet.tags, ECTagName.EC_TAG_SEARCH_STATUS);\n\t\tconst progress = progressTag ? Number(progressTag.getValue()) / 100.0 : 0;\n\n\t\treturn new SearchProgressResponse(progress);\n\t}\n}\n"],"mappings":";;;AAQA,IAAa,yBAAb,MAAa,uBAAuB;CACP;CAA5B,YAAY,UAAkC;EAAlB,KAAA,WAAA;CAAmB;CAE/C,OAAO,WAAW,QAAwC;EACzD,MAAM,cAAc,eAAe,OAAO,MAAA,IAAoC;EAG9E,OAAO,IAAI,uBAFM,cAAc,OAAO,YAAY,SAAS,CAAC,IAAI,MAAQ,CAE9B;CAC3C;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SearchRequest-CNqz-K1Z.mjs","names":[],"sources":["../src/request/SearchRequest.ts"],"sourcesContent":["/**\n * Search Request - Start a search\n *\n * In the EC protocol, search is structured as:\n * - EC_TAG_SEARCH_TYPE (UByte) containing subtag:\n * - EC_TAG_SEARCH_NAME (String) with the search query\n * - Uses non-UTF8 flags (Flags.noUtf8())\n */\n\nimport { Request } from './Request';\nimport { Packet } from '../ec/packet/Packet';\nimport { Flags } from '../ec/packet/Flags';\nimport { ECOpCode, ECTagName, ECSearchType } from '../ec/Codes';\nimport { StringTag, UByteTag, UIntTag, ULongTag } from '../ec/tag/Tag';\nimport { SearchType } from '../model';\nimport type { SearchFilters } from '../types';\n\nexport class SearchRequest extends Request {\n\tprivate readonly query: string;\n\tprivate readonly searchType: SearchType;\n\tprivate readonly filters?: SearchFilters;\n\n\tconstructor(query: string, searchType: SearchType = SearchType.LOCAL, filters?: SearchFilters) {\n\t\tsuper(ECOpCode.EC_OP_SEARCH_START);\n\t\tthis.query = query;\n\t\tthis.searchType = searchType;\n\t\tthis.filters = filters;\n\t}\n\n\t/**\n\t * Override buildPacket to use non-UTF8 flags and correct tag structure\n\t */\n\tbuildPacket(): Packet {\n\t\tconst flags = Flags.noUtf8();\n\t\tconst tags = this.buildTags();\n\t\treturn new Packet(this.opCode, flags, tags);\n\t}\n\n\tprivate buildTags(): any[] {\n\t\tconst tags: any[] = [];\n\n\t\t// EC_TAG_SEARCH_TYPE with EC_TAG_SEARCH_NAME as subtag\n\t\tconst ecSearchType = this.convertSearchType(this.searchType);\n\t\tconst searchNameTag = new StringTag(ECTagName.EC_TAG_SEARCH_NAME, this.query);\n\t\tconst searchTypeTag = new UByteTag(ECTagName.EC_TAG_SEARCH_TYPE, ecSearchType, [searchNameTag]);\n\t\ttags.push(searchTypeTag);\n\n\t\t// Add filters if provided\n\t\tif (this.filters) {\n\t\t\tif (this.filters.minSize !== undefined) {\n\t\t\t\ttags.push(new ULongTag(ECTagName.EC_TAG_SEARCH_MIN_SIZE, BigInt(this.filters.minSize)));\n\t\t\t}\n\t\t\tif (this.filters.maxSize !== undefined) {\n\t\t\t\ttags.push(new ULongTag(ECTagName.EC_TAG_SEARCH_MAX_SIZE, BigInt(this.filters.maxSize)));\n\t\t\t}\n\t\t\tif (this.filters.fileType !== undefined) {\n\t\t\t\ttags.push(new StringTag(ECTagName.EC_TAG_SEARCH_FILE_TYPE, this.filters.fileType));\n\t\t\t}\n\t\t\tif (this.filters.extension !== undefined) {\n\t\t\t\ttags.push(new StringTag(ECTagName.EC_TAG_SEARCH_EXTENSION, this.filters.extension));\n\t\t\t}\n\t\t\tif (this.filters.availability !== undefined) {\n\t\t\t\ttags.push(new UIntTag(ECTagName.EC_TAG_SEARCH_AVAILABILITY, this.filters.availability));\n\t\t\t}\n\t\t}\n\n\t\treturn tags;\n\t}\n\n\tprivate convertSearchType(searchType: SearchType): ECSearchType {\n\t\tswitch (searchType) {\n\t\t\tcase SearchType.LOCAL:\n\t\t\t\treturn ECSearchType.EC_SEARCH_LOCAL;\n\t\t\tcase SearchType.GLOBAL:\n\t\t\t\treturn ECSearchType.EC_SEARCH_GLOBAL;\n\t\t\tcase SearchType.KAD:\n\t\t\t\treturn ECSearchType.EC_SEARCH_KAD;\n\t\t\tcase SearchType.WEB:\n\t\t\t\treturn ECSearchType.EC_SEARCH_WEB;\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAiBA,IAAa,gBAAb,cAAmC,QAAQ;CAC1C;CACA;CACA;CAEA,YAAY,OAAe,aAAA,GAA2C,SAAyB;EAC9F,MAAA,EAAiC;EACjC,KAAK,QAAQ;EACb,KAAK,aAAa;EAClB,KAAK,UAAU;CAChB;;;;CAKA,cAAsB;EACrB,MAAM,QAAQ,MAAM,OAAO;EAC3B,MAAM,OAAO,KAAK,UAAU;EAC5B,OAAO,IAAI,OAAO,KAAK,QAAQ,OAAO,IAAI;CAC3C;CAEA,YAA2B;EAC1B,MAAM,OAAc,CAAC;EAKrB,MAAM,gBAAgB,IAAI,SAAA,MAFL,KAAK,kBAAkB,KAAK,UAEgB,GAAc,CAAC,IADtD,UAAA,MAAwC,KAAK,KACS,CAAa,CAAC;EAC9F,KAAK,KAAK,aAAa;EAGvB,IAAI,KAAK,SAAS;GACjB,IAAI,KAAK,QAAQ,YAAY,KAAA,GAC5B,KAAK,KAAK,IAAI,SAAA,MAA2C,OAAO,KAAK,QAAQ,OAAO,CAAC,CAAC;GAEvF,IAAI,KAAK,QAAQ,YAAY,KAAA,GAC5B,KAAK,KAAK,IAAI,SAAA,MAA2C,OAAO,KAAK,QAAQ,OAAO,CAAC,CAAC;GAEvF,IAAI,KAAK,QAAQ,aAAa,KAAA,GAC7B,KAAK,KAAK,IAAI,UAAA,MAA6C,KAAK,QAAQ,QAAQ,CAAC;GAElF,IAAI,KAAK,QAAQ,cAAc,KAAA,GAC9B,KAAK,KAAK,IAAI,UAAA,MAA6C,KAAK,QAAQ,SAAS,CAAC;GAEnF,IAAI,KAAK,QAAQ,iBAAiB,KAAA,GACjC,KAAK,KAAK,IAAI,QAAA,MAA8C,KAAK,QAAQ,YAAY,CAAC;EAExF;EAEA,OAAO;CACR;CAEA,kBAA0B,YAAsC;EAC/D,QAAQ,YAAR;GACC,KAAA,GACC,OAAA;GACD,KAAA,GACC,OAAA;GACD,KAAA,GACC,OAAA;GACD,KAAA,GACC,OAAA;EACF;CACD;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResultsRequest-DKG508KF.mjs","names":[],"sources":["../src/request/SearchResultsRequest.ts"],"sourcesContent":["/**\n * Search Results Request - Get search results\n */\n\nimport { Request } from './Request';\nimport { ECOpCode } from '../ec/Codes';\n\nexport class SearchResultsRequest extends Request {\n\tconstructor() {\n\t\tsuper(ECOpCode.EC_OP_SEARCH_RESULTS);\n\t}\n}\n"],"mappings":";;;;;;AAOA,IAAa,uBAAb,cAA0C,QAAQ;CACjD,cAAc;EACb,MAAA,EAAmC;CACpC;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResultsResponse-ChNrKJ6_.mjs","names":[],"sources":["../src/response/SearchResultsResponse.ts"],"sourcesContent":["/**\n * Search Results Response - Search results\n */\n\nimport { Packet } from '../ec/packet/Packet';\nimport { ECTagName } from '../ec/Codes';\nimport { findNumericTag, findTag } from '../ec/tag/Tag';\nimport type { SearchResultsResponse } from '../client/AmuleClient';\n\nexport class SearchResultsResponseParser {\n\tstatic fromPacket(packet: Packet): SearchResultsResponse {\n\t\tconst files: SearchResultsResponse['files'] = [];\n\n\t\t// Find all search result tags\n\t\tconst searchFileTags = packet.tags.filter((tag) => tag.name === ECTagName.EC_TAG_SEARCHFILE);\n\n\t\tfor (const fileTag of searchFileTags) {\n\t\t\tconst nestedTags = fileTag.nestedTags || [];\n\n\t\t\t// Extract file information\n\t\t\tconst fileNameTag = findTag(nestedTags, ECTagName.EC_TAG_PARTFILE_NAME);\n\t\t\tconst hashTag = findTag(nestedTags, ECTagName.EC_TAG_PARTFILE_HASH);\n\t\t\tconst sizeTag = findNumericTag(nestedTags, ECTagName.EC_TAG_PARTFILE_SIZE_FULL);\n\t\t\tconst sourceCountTag = findNumericTag(nestedTags, ECTagName.EC_TAG_PARTFILE_SOURCE_COUNT);\n\t\t\tconst completeSourcesTag = findNumericTag(nestedTags, ECTagName.EC_TAG_PARTFILE_SOURCE_COUNT_XFER);\n\t\t\tconst downloadStatusTag = findNumericTag(nestedTags, ECTagName.EC_TAG_PARTFILE_STATUS);\n\n\t\t\tif (fileNameTag && hashTag) {\n\t\t\t\tfiles.push({\n\t\t\t\t\tfileName: fileNameTag.getValue(),\n\t\t\t\t\thash: hashTag.getValue(),\n\t\t\t\t\tsizeFull: sizeTag ? Number(sizeTag.getLong()) : 0,\n\t\t\t\t\tdownloadStatus: downloadStatusTag ? downloadStatusTag.getInt() : 0,\n\t\t\t\t\tcompleteSourceCount: completeSourcesTag ? completeSourcesTag.getInt() : 0,\n\t\t\t\t\tsourceCount: sourceCountTag ? sourceCountTag.getInt() : 0,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn { files };\n\t}\n}\n"],"mappings":";;;AASA,IAAa,8BAAb,MAAyC;CACxC,OAAO,WAAW,QAAuC;EACxD,MAAM,QAAwC,CAAC;EAG/C,MAAM,iBAAiB,OAAO,KAAK,QAAQ,QAAQ,IAAI,SAAA,IAAoC;EAE3F,KAAK,MAAM,WAAW,gBAAgB;GACrC,MAAM,aAAa,QAAQ,cAAc,CAAC;GAG1C,MAAM,cAAc,QAAQ,YAAA,GAA0C;GACtE,MAAM,UAAU,QAAQ,YAAA,GAA0C;GAClE,MAAM,UAAU,eAAe,YAAA,GAA+C;GAC9E,MAAM,iBAAiB,eAAe,YAAA,GAAkD;GACxF,MAAM,qBAAqB,eAAe,YAAA,GAAuD;GACjG,MAAM,oBAAoB,eAAe,YAAA,GAA4C;GAErF,IAAI,eAAe,SAClB,MAAM,KAAK;IACV,UAAU,YAAY,SAAS;IAC/B,MAAM,QAAQ,SAAS;IACvB,UAAU,UAAU,OAAO,QAAQ,QAAQ,CAAC,IAAI;IAChD,gBAAgB,oBAAoB,kBAAkB,OAAO,IAAI;IACjE,qBAAqB,qBAAqB,mBAAmB,OAAO,IAAI;IACxE,aAAa,iBAAiB,eAAe,OAAO,IAAI;GACzD,CAAC;EAEH;EAEA,OAAO,EAAE,MAAM;CAChB;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SearchStatusRequest-Bv6iaC9Y.mjs","names":[],"sources":["../src/request/SearchStatusRequest.ts"],"sourcesContent":["/**\n * Search Status Request - Get search progress\n */\n\nimport { Request } from './Request';\nimport { ECOpCode } from '../ec/Codes';\n\nexport class SearchStatusRequest extends Request {\n\tconstructor() {\n\t\tsuper(ECOpCode.EC_OP_SEARCH_PROGRESS);\n\t}\n}\n"],"mappings":";;;;;;AAOA,IAAa,sBAAb,cAAyC,QAAQ;CAChD,cAAc;EACb,MAAA,EAAoC;CACrC;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SearchStopRequest-rET-2Nsz.mjs","names":[],"sources":["../src/request/SearchStopRequest.ts"],"sourcesContent":["/**\n * Search Stop Request - Stop current search\n */\n\nimport { Request } from './Request';\nimport { ECOpCode } from '../ec/Codes';\n\nexport class SearchStopRequest extends Request {\n\tconstructor() {\n\t\tsuper(ECOpCode.EC_OP_SEARCH_STOP);\n\t}\n}\n"],"mappings":";;;;;;AAOA,IAAa,oBAAb,cAAuC,QAAQ;CAC9C,cAAc;EACb,MAAA,EAAgC;CACjC;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServerConnectRequest-CcO2-Eqd.mjs","names":[],"sources":["../src/request/ServerConnectRequest.ts"],"sourcesContent":["/**\n * Server Connect Request - Connect to a specific server\n */\n\nimport { Request } from './Request';\nimport { ECOpCode, ECTagName } from '../ec/Codes';\nimport { Ipv4Tag } from '../ec/tag/Tag';\n\nexport class ServerConnectRequest extends Request {\n\tconstructor(ip?: string, port?: number) {\n\t\tsuper(ECOpCode.EC_OP_SERVER_CONNECT);\n\n\t\tif (ip && port) {\n\t\t\tthis.addTag(new Ipv4Tag(ECTagName.EC_TAG_SERVER, { address: ip, port }));\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;AAQA,IAAa,uBAAb,cAA0C,QAAQ;CACjD,YAAY,IAAa,MAAe;EACvC,MAAA,EAAmC;EAEnC,IAAI,MAAM,MACT,KAAK,OAAO,IAAI,QAAA,MAAiC;GAAE,SAAS;GAAI;EAAK,CAAC,CAAC;CAEzE;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServerDisconnectRequest-DEORM3SF.mjs","names":[],"sources":["../src/request/ServerDisconnectRequest.ts"],"sourcesContent":["/**\n * Server Disconnect Request - Disconnect from the current server\n */\n\nimport { Request } from './Request';\nimport { ECOpCode } from '../ec/Codes';\n\nexport class ServerDisconnectRequest extends Request {\n\tconstructor() {\n\t\tsuper(ECOpCode.EC_OP_SERVER_DISCONNECT);\n\t}\n}\n"],"mappings":";;;;;;AAOA,IAAa,0BAAb,cAA6C,QAAQ;CACpD,cAAc;EACb,MAAA,EAAsC;CACvC;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServerListRequest-FwFQBp12.mjs","names":[],"sources":["../src/request/ServerListRequest.ts"],"sourcesContent":["/**\n * Server List Request - Request the list of servers\n */\n\nimport { Request } from './Request';\nimport { ECOpCode } from '../ec/Codes';\n\nexport class ServerListRequest extends Request {\n\tconstructor() {\n\t\tsuper(ECOpCode.EC_OP_GET_SERVER_LIST);\n\t}\n}\n"],"mappings":";;;;;;AAOA,IAAa,oBAAb,cAAuC,QAAQ;CAC9C,cAAc;EACb,MAAA,EAAoC;CACrC;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServerListResponse-ZAKSSCPZ.mjs","names":[],"sources":["../src/response/ServerListResponse.ts"],"sourcesContent":["/**\n * Server List Response - Parse the list of servers\n */\n\nimport { Packet } from '../ec/packet/Packet';\nimport { ECTagName } from '../ec/Codes';\nimport { findNumericTag, findTag } from '../ec/tag/Tag';\nimport { formatIp, toOptionalBool } from './utils';\nimport type { AmuleServer } from '../model';\n\nexport interface ServerListResponse {\n\tservers: AmuleServer[];\n}\n\nexport class ServerListResponseParser {\n\tstatic fromPacket(packet: Packet): ServerListResponse {\n\t\treturn this.fromTags(packet.tags);\n\t}\n\n\tstatic fromTags(allTags: any[]): ServerListResponse {\n\t\tconst servers: AmuleServer[] = [];\n\n\t\t// Find all server tags\n\t\tconst serverTags = allTags.filter((tag) => tag.name === ECTagName.EC_TAG_SERVER);\n\n\t\tfor (const serverTag of serverTags) {\n\t\t\tconst nested = serverTag.nestedTags || [];\n\n\t\t\t// aMule often sends IP and Port combined in an Ipv4Tag (6 bytes)\n\t\t\t// Or as separate UInt32/UInt16 tags.\n\t\t\t// In many cases, the top-level EC_TAG_SERVER itself IS the Ipv4Tag.\n\t\t\tconst ipv4Tag =\n\t\t\t\tfindTag(nested, ECTagName.EC_TAG_SERVER_IP) ||\n\t\t\t\tfindTag(nested, ECTagName.EC_TAG_SERVER_ADDRESS) ||\n\t\t\t\t(serverTag.constructor.name.includes('Ipv4') ? serverTag : null);\n\n\t\t\tlet ip: string | undefined = undefined;\n\t\t\tlet port: number | undefined = undefined;\n\n\t\t\tif (ipv4Tag && ipv4Tag.getValue() && typeof ipv4Tag.getValue() === 'object' && 'address' in (ipv4Tag.getValue() as any)) {\n\t\t\t\tconst val = ipv4Tag.getValue() as any;\n\t\t\t\tip = val.address;\n\t\t\t\tport = val.port;\n\t\t\t} else {\n\t\t\t\t// Fallback to separate tags if not combined or if top-level\n\t\t\t\tconst ipNum = findNumericTag(nested, ECTagName.EC_TAG_SERVER_IP)?.getInt() || findNumericTag(allTags, ECTagName.EC_TAG_SERVER_IP)?.getInt();\n\n\t\t\t\tport = findNumericTag(nested, ECTagName.EC_TAG_SERVER_PORT)?.getInt() || findNumericTag(allTags, ECTagName.EC_TAG_SERVER_PORT)?.getInt();\n\n\t\t\t\tip = ipNum !== undefined ? formatIp(ipNum) : undefined;\n\t\t\t}\n\n\t\t\t// Some servers might have port in EC_TAG_SERVER_PORT even if IP is in combined tag\n\t\t\tif (port === undefined || port === 0) {\n\t\t\t\tconst extraPort = findNumericTag(nested, ECTagName.EC_TAG_SERVER_PORT)?.getInt();\n\t\t\t\tif (extraPort !== undefined) port = extraPort;\n\t\t\t}\n\n\t\t\tservers.push({\n\t\t\t\tname: findTag(nested, ECTagName.EC_TAG_SERVER_NAME)?.getValue(),\n\t\t\t\tdescription: findTag(nested, ECTagName.EC_TAG_SERVER_DESC)?.getValue(),\n\t\t\t\taddress: findTag(nested, ECTagName.EC_TAG_SERVER_ADDRESS)?.getValue(),\n\t\t\t\tip: ip,\n\t\t\t\tport: port,\n\t\t\t\tping: findNumericTag(nested, ECTagName.EC_TAG_SERVER_PING)?.getInt(),\n\t\t\t\tusers: findNumericTag(nested, ECTagName.EC_TAG_SERVER_USERS)?.getInt(),\n\t\t\t\tmaxUsers: findNumericTag(nested, ECTagName.EC_TAG_SERVER_USERS_MAX)?.getInt(),\n\t\t\t\tfiles: findNumericTag(nested, ECTagName.EC_TAG_SERVER_FILES)?.getInt(),\n\t\t\t\tpriority: findNumericTag(nested, ECTagName.EC_TAG_SERVER_PRIO)?.getInt(),\n\t\t\t\tversion: findTag(nested, ECTagName.EC_TAG_SERVER_VERSION)?.getValue(),\n\t\t\t\tisStatic: toOptionalBool(findNumericTag(nested, ECTagName.EC_TAG_SERVER_STATIC)?.getInt()),\n\t\t\t\tfailedCount: findNumericTag(nested, ECTagName.EC_TAG_SERVER_FAILED)?.getInt(),\n\t\t\t});\n\t\t}\n\n\t\treturn { servers };\n\t}\n}\n"],"mappings":";;;;AAcA,IAAa,2BAAb,MAAsC;CACrC,OAAO,WAAW,QAAoC;EACrD,OAAO,KAAK,SAAS,OAAO,IAAI;CACjC;CAEA,OAAO,SAAS,SAAoC;EACnD,MAAM,UAAyB,CAAC;EAGhC,MAAM,aAAa,QAAQ,QAAQ,QAAQ,IAAI,SAAA,IAAgC;EAE/E,KAAK,MAAM,aAAa,YAAY;GACnC,MAAM,SAAS,UAAU,cAAc,CAAC;GAKxC,MAAM,UACL,QAAQ,QAAA,IAAkC,KAC1C,QAAQ,QAAA,IAAuC,MAC9C,UAAU,YAAY,KAAK,SAAS,MAAM,IAAI,YAAY;GAE5D,IAAI,KAAyB,KAAA;GAC7B,IAAI,OAA2B,KAAA;GAE/B,IAAI,WAAW,QAAQ,SAAS,KAAK,OAAO,QAAQ,SAAS,MAAM,YAAY,aAAc,QAAQ,SAAS,GAAW;IACxH,MAAM,MAAM,QAAQ,SAAS;IAC7B,KAAK,IAAI;IACT,OAAO,IAAI;GACZ,OAAO;IAEN,MAAM,QAAQ,eAAe,QAAA,IAAkC,CAAC,EAAE,OAAO,KAAK,eAAe,SAAA,IAAmC,CAAC,EAAE,OAAO;IAE1I,OAAO,eAAe,QAAA,IAAoC,CAAC,EAAE,OAAO,KAAK,eAAe,SAAA,IAAqC,CAAC,EAAE,OAAO;IAEvI,KAAK,UAAU,KAAA,IAAY,SAAS,KAAK,IAAI,KAAA;GAC9C;GAGA,IAAI,SAAS,KAAA,KAAa,SAAS,GAAG;IACrC,MAAM,YAAY,eAAe,QAAA,IAAoC,CAAC,EAAE,OAAO;IAC/E,IAAI,cAAc,KAAA,GAAW,OAAO;GACrC;GAEA,QAAQ,KAAK;IACZ,MAAM,QAAQ,QAAA,IAAoC,CAAC,EAAE,SAAS;IAC9D,aAAa,QAAQ,QAAA,IAAoC,CAAC,EAAE,SAAS;IACrE,SAAS,QAAQ,QAAA,IAAuC,CAAC,EAAE,SAAS;IAChE;IACE;IACN,MAAM,eAAe,QAAA,IAAoC,CAAC,EAAE,OAAO;IACnE,OAAO,eAAe,QAAA,IAAqC,CAAC,EAAE,OAAO;IACrE,UAAU,eAAe,QAAA,IAAyC,CAAC,EAAE,OAAO;IAC5E,OAAO,eAAe,QAAA,IAAqC,CAAC,EAAE,OAAO;IACrE,UAAU,eAAe,QAAA,IAAoC,CAAC,EAAE,OAAO;IACvE,SAAS,QAAQ,QAAA,IAAuC,CAAC,EAAE,SAAS;IACpE,UAAU,eAAe,eAAe,QAAA,IAAsC,CAAC,EAAE,OAAO,CAAC;IACzF,aAAa,eAAe,QAAA,IAAsC,CAAC,EAAE,OAAO;GAC7E,CAAC;EACF;EAEA,OAAO,EAAE,QAAQ;CAClB;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServerUpdateFromUrlRequest-D4xBqJDJ.mjs","names":[],"sources":["../src/request/ServerUpdateFromUrlRequest.ts"],"sourcesContent":["import { ECOpCode, ECTagName } from '../ec/Codes';\nimport { StringTag } from '../ec/tag/Tag';\nimport { Request } from './Request';\n\nexport class ServerUpdateFromUrlRequest extends Request {\n\tconstructor(url: string) {\n\t\tsuper(ECOpCode.EC_OP_SERVER_UPDATE_FROM_URL);\n\t\tthis.addTag(new StringTag(ECTagName.EC_TAG_SERVERS_UPDATE_URL, url));\n\t}\n}\n"],"mappings":";;;;AAIA,IAAa,6BAAb,cAAgD,QAAQ;CACvD,YAAY,KAAa;EACxB,MAAA,EAA2C;EAC3C,KAAK,OAAO,IAAI,UAAA,MAA+C,GAAG,CAAC;CACpE;AACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SetFileCategoryRequest-BwEPJVeR.mjs","names":[],"sources":["../src/request/SetFileCategoryRequest.ts"],"sourcesContent":["/**\n * Set File Category Request - Change category of a file\n */\n\nimport { Request } from './Request';\nimport { ECOpCode, ECTagName } from '../ec/Codes';\nimport { Hash16Tag, UByteTag } from '../ec/tag/Tag';\n\nexport class SetFileCategoryRequest extends Request {\n\tconstructor(hash: Buffer, categoryId: number) {\n\t\tsuper(ECOpCode.EC_OP_PARTFILE_SET_CAT);\n\n\t\t// Hash tag with category as subtag\n\t\tthis.addTag(new Hash16Tag(ECTagName.EC_TAG_PARTFILE, hash, [new UByteTag(ECTagName.EC_TAG_PARTFILE_CAT, categoryId)]));\n\t}\n}\n"],"mappings":";;;;;;;AAQA,IAAa,yBAAb,cAA4C,QAAQ;CACnD,YAAY,MAAc,YAAoB;EAC7C,MAAA,EAAqC;EAGrC,KAAK,OAAO,IAAI,UAAA,KAAqC,MAAM,CAAC,IAAI,SAAA,KAAwC,UAAU,CAAC,CAAC,CAAC;CACtH;AACD"}
|