amule-ec-client 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/dist/AddLinkRequest-DwUbSMXD.mjs +17 -0
- package/dist/AddLinkRequest-DwUbSMXD.mjs.map +1 -0
- package/dist/ClientQueueRequest-D9FaX5K9.mjs +17 -0
- package/dist/ClientQueueRequest-D9FaX5K9.mjs.map +1 -0
- package/dist/ClientQueueResponse-FVQBR_8b.mjs +65 -0
- package/dist/ClientQueueResponse-FVQBR_8b.mjs.map +1 -0
- package/dist/Codes-CjiW7Pdl.mjs +411 -0
- package/dist/Codes-CjiW7Pdl.mjs.map +1 -0
- package/dist/CreateCategoryRequest-Br6yfDhZ.mjs +24 -0
- package/dist/CreateCategoryRequest-Br6yfDhZ.mjs.map +1 -0
- package/dist/DeleteCategoryRequest-C2-p6sx0.mjs +17 -0
- package/dist/DeleteCategoryRequest-C2-p6sx0.mjs.map +1 -0
- package/dist/DownloadCommandRequest-CaULjfNi.mjs +31 -0
- package/dist/DownloadCommandRequest-CaULjfNi.mjs.map +1 -0
- package/dist/DownloadFileRequest-CcNqsBo7.mjs +20 -0
- package/dist/DownloadFileRequest-CcNqsBo7.mjs.map +1 -0
- package/dist/DownloadQueueRequest-bd7lFiMj.mjs +17 -0
- package/dist/DownloadQueueRequest-bd7lFiMj.mjs.map +1 -0
- package/dist/DownloadQueueResponse-DyP1rLTV.mjs +261 -0
- package/dist/DownloadQueueResponse-DyP1rLTV.mjs.map +1 -0
- package/dist/GetPreferencesRequest-C94Su9IH.mjs +18 -0
- package/dist/GetPreferencesRequest-C94Su9IH.mjs.map +1 -0
- package/dist/PreferencesDetailsResponse-BjMxbvVY.mjs +96 -0
- package/dist/PreferencesDetailsResponse-BjMxbvVY.mjs.map +1 -0
- package/dist/PreferencesResponse-Dth-n2sA.mjs +39 -0
- package/dist/PreferencesResponse-Dth-n2sA.mjs.map +1 -0
- package/dist/ReloadSharedFilesRequest-CPwAEJYG.mjs +15 -0
- package/dist/ReloadSharedFilesRequest-CPwAEJYG.mjs.map +1 -0
- package/dist/Request-C0UUuQIX.mjs +160 -0
- package/dist/Request-C0UUuQIX.mjs.map +1 -0
- package/dist/SearchProgressResponse-Bputc9Ww.mjs +17 -0
- package/dist/SearchProgressResponse-Bputc9Ww.mjs.map +1 -0
- package/dist/SearchRequest-CNqz-K1Z.mjs +57 -0
- package/dist/SearchRequest-CNqz-K1Z.mjs.map +1 -0
- package/dist/SearchResultsRequest-DKG508KF.mjs +15 -0
- package/dist/SearchResultsRequest-DKG508KF.mjs.map +1 -0
- package/dist/SearchResultsResponse-ChNrKJ6_.mjs +31 -0
- package/dist/SearchResultsResponse-ChNrKJ6_.mjs.map +1 -0
- package/dist/SearchStatusRequest-Bv6iaC9Y.mjs +15 -0
- package/dist/SearchStatusRequest-Bv6iaC9Y.mjs.map +1 -0
- package/dist/SearchStopRequest-rET-2Nsz.mjs +15 -0
- package/dist/SearchStopRequest-rET-2Nsz.mjs.map +1 -0
- package/dist/ServerConnectRequest-CcO2-Eqd.mjs +20 -0
- package/dist/ServerConnectRequest-CcO2-Eqd.mjs.map +1 -0
- package/dist/ServerDisconnectRequest-DEORM3SF.mjs +15 -0
- package/dist/ServerDisconnectRequest-DEORM3SF.mjs.map +1 -0
- package/dist/ServerListRequest-FwFQBp12.mjs +15 -0
- package/dist/ServerListRequest-FwFQBp12.mjs.map +1 -0
- package/dist/ServerListResponse-ZAKSSCPZ.mjs +52 -0
- package/dist/ServerListResponse-ZAKSSCPZ.mjs.map +1 -0
- package/dist/ServerUpdateFromUrlRequest-D4xBqJDJ.mjs +14 -0
- package/dist/ServerUpdateFromUrlRequest-D4xBqJDJ.mjs.map +1 -0
- package/dist/SetFileCategoryRequest-BwEPJVeR.mjs +17 -0
- package/dist/SetFileCategoryRequest-BwEPJVeR.mjs.map +1 -0
- package/dist/SetPreferencesRequest-D2fVIH3P.mjs +66 -0
- package/dist/SetPreferencesRequest-D2fVIH3P.mjs.map +1 -0
- package/dist/SharedFilePriorityRequest-j6ImgagV.mjs +15 -0
- package/dist/SharedFilePriorityRequest-j6ImgagV.mjs.map +1 -0
- package/dist/SharedFilesRequest-D2M3K0eB.mjs +17 -0
- package/dist/SharedFilesRequest-D2M3K0eB.mjs.map +1 -0
- package/dist/SharedFilesResponse-BiXT_oCx.mjs +41 -0
- package/dist/SharedFilesResponse-BiXT_oCx.mjs.map +1 -0
- package/dist/StatsRequest-B8v9LLHG.mjs +17 -0
- package/dist/StatsRequest-B8v9LLHG.mjs.map +1 -0
- package/dist/StatsResponse-BVUxNPbz.mjs +78 -0
- package/dist/StatsResponse-BVUxNPbz.mjs.map +1 -0
- package/dist/Tag-CZF6BRMY.mjs +262 -0
- package/dist/Tag-CZF6BRMY.mjs.map +1 -0
- package/dist/UpdateCategoryRequest-CgzH7SxP.mjs +24 -0
- package/dist/UpdateCategoryRequest-CgzH7SxP.mjs.map +1 -0
- package/dist/UpdateRequest-Bunl73Ga.mjs +17 -0
- package/dist/UpdateRequest-Bunl73Ga.mjs.map +1 -0
- package/dist/UpdateResponse-1LhyH9Zf.mjs +47 -0
- package/dist/UpdateResponse-1LhyH9Zf.mjs.map +1 -0
- package/dist/download-details-OM0FJUhZ.mjs +12 -0
- package/dist/download-details-OM0FJUhZ.mjs.map +1 -0
- package/dist/index.d.mts +1130 -0
- package/dist/index.mjs +1077 -0
- package/dist/index.mjs.map +1 -0
- package/dist/utils-DBnUQnZ-.mjs +26 -0
- package/dist/utils-DBnUQnZ-.mjs.map +1 -0
- package/package.json +5 -5
- package/dist/index.d.ts +0 -1016
- package/dist/index.js +0 -3130
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import "./Codes-CjiW7Pdl.mjs";
|
|
2
|
+
import { f as findNumericTag, p as findTag } from "./Tag-CZF6BRMY.mjs";
|
|
3
|
+
import { n as toOptionalBool, r as toOptionalIp } from "./utils-DBnUQnZ-.mjs";
|
|
4
|
+
import { ClientQueueResponseParser } from "./ClientQueueResponse-FVQBR_8b.mjs";
|
|
5
|
+
import { DownloadQueueResponseParser } from "./DownloadQueueResponse-DyP1rLTV.mjs";
|
|
6
|
+
import { ServerListResponseParser } from "./ServerListResponse-ZAKSSCPZ.mjs";
|
|
7
|
+
import { SharedFilesResponseParser } from "./SharedFilesResponse-BiXT_oCx.mjs";
|
|
8
|
+
//#region src/response/UpdateResponse.ts
|
|
9
|
+
var UpdateResponseParser = class {
|
|
10
|
+
static fromPacket(packet) {
|
|
11
|
+
const sharedFiles = SharedFilesResponseParser.fromPacket(packet).files;
|
|
12
|
+
const downloadQueue = DownloadQueueResponseParser.fromPacket(packet).files;
|
|
13
|
+
const clientContainer = findTag(packet.tags, 1536);
|
|
14
|
+
const clients = clientContainer && clientContainer.nestedTags ? ClientQueueResponseParser.fromTags(clientContainer.nestedTags).clients : [];
|
|
15
|
+
const serverContainer = findTag(packet.tags, 1280);
|
|
16
|
+
const servers = serverContainer && serverContainer.nestedTags ? ServerListResponseParser.fromTags(serverContainer.nestedTags).servers : [];
|
|
17
|
+
const friendContainer = findTag(packet.tags, 2048);
|
|
18
|
+
return {
|
|
19
|
+
sharedFiles,
|
|
20
|
+
downloadQueue,
|
|
21
|
+
clients,
|
|
22
|
+
servers,
|
|
23
|
+
friends: friendContainer && friendContainer.nestedTags ? this.parseFriends(friendContainer.nestedTags) : []
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
static parseFriends(tags) {
|
|
27
|
+
const friends = [];
|
|
28
|
+
const friendTags = tags.filter((t) => t.name === 2048);
|
|
29
|
+
for (const friendTag of friendTags) {
|
|
30
|
+
const nested = friendTag.nestedTags || [];
|
|
31
|
+
friends.push({
|
|
32
|
+
name: findTag(nested, 2049)?.getValue(),
|
|
33
|
+
userHashHexString: findTag(nested, 2050)?.getValue()?.toString("hex"),
|
|
34
|
+
ip: toOptionalIp(findNumericTag(nested, 2051)?.getInt()),
|
|
35
|
+
port: findNumericTag(nested, 2052)?.getInt(),
|
|
36
|
+
friendSlot: toOptionalBool(findNumericTag(nested, 2056)?.getInt()),
|
|
37
|
+
shared: toOptionalBool(findNumericTag(nested, 2057)?.getInt()),
|
|
38
|
+
client: ClientQueueResponseParser.fromTags(nested).clients[0]
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return friends;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
//#endregion
|
|
45
|
+
export { UpdateResponseParser };
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=UpdateResponse-1LhyH9Zf.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpdateResponse-1LhyH9Zf.mjs","names":[],"sources":["../src/response/UpdateResponse.ts"],"sourcesContent":["/**\n * Update Response - Parse incremental updates\n */\n\nimport { Packet } from '../ec/packet/Packet';\nimport { ECTagName } from '../ec/Codes';\nimport { findTag, findNumericTag } from '../ec/tag/Tag';\nimport { toOptionalBool, toOptionalIp } from './utils';\nimport type { AmuleFile, AmuleTransferringFile, AmuleUpDownClient, AmuleServer, AmuleFriend } from '../model';\nimport { SharedFilesResponseParser } from './SharedFilesResponse';\nimport { DownloadQueueResponseParser } from './DownloadQueueResponse';\nimport { ClientQueueResponseParser } from './ClientQueueResponse';\nimport { ServerListResponseParser } from './ServerListResponse';\n\nexport interface UpdateResponse {\n\tsharedFiles: AmuleFile[];\n\tdownloadQueue: AmuleTransferringFile[];\n\tclients: AmuleUpDownClient[];\n\tservers: AmuleServer[];\n\tfriends: AmuleFriend[];\n}\n\nexport class UpdateResponseParser {\n\tstatic fromPacket(packet: Packet): UpdateResponse {\n\t\t// Files are at the root of the packet according to res.cpp\n\t\tconst sharedFiles = SharedFilesResponseParser.fromPacket(packet).files;\n\t\tconst downloadQueue = DownloadQueueResponseParser.fromPacket(packet).files;\n\n\t\t// Clients, Servers, and Friends are wrapped in containers with their respective tag names\n\t\tconst clientContainer = findTag(packet.tags, ECTagName.EC_TAG_CLIENT);\n\t\tconst clients = clientContainer && clientContainer.nestedTags ? ClientQueueResponseParser.fromTags(clientContainer.nestedTags).clients : [];\n\n\t\tconst serverContainer = findTag(packet.tags, ECTagName.EC_TAG_SERVER);\n\t\tconst servers = serverContainer && serverContainer.nestedTags ? ServerListResponseParser.fromTags(serverContainer.nestedTags).servers : [];\n\n\t\tconst friendContainer = findTag(packet.tags, ECTagName.EC_TAG_FRIEND);\n\t\tconst friends = friendContainer && friendContainer.nestedTags ? this.parseFriends(friendContainer.nestedTags) : [];\n\n\t\treturn {\n\t\t\tsharedFiles,\n\t\t\tdownloadQueue,\n\t\t\tclients,\n\t\t\tservers,\n\t\t\tfriends,\n\t\t};\n\t}\n\n\tprivate static parseFriends(tags: any[]): AmuleFriend[] {\n\t\tconst friends: AmuleFriend[] = [];\n\t\tconst friendTags = tags.filter((t) => t.name === ECTagName.EC_TAG_FRIEND);\n\n\t\tfor (const friendTag of friendTags) {\n\t\t\tconst nested = friendTag.nestedTags || [];\n\t\t\tfriends.push({\n\t\t\t\tname: findTag(nested, ECTagName.EC_TAG_FRIEND_NAME)?.getValue(),\n\t\t\t\tuserHashHexString: findTag(nested, ECTagName.EC_TAG_FRIEND_HASH)?.getValue()?.toString('hex'),\n\t\t\t\tip: toOptionalIp(findNumericTag(nested, ECTagName.EC_TAG_FRIEND_IP)?.getInt()),\n\t\t\t\tport: findNumericTag(nested, ECTagName.EC_TAG_FRIEND_PORT)?.getInt(),\n\t\t\t\tfriendSlot: toOptionalBool(findNumericTag(nested, ECTagName.EC_TAG_FRIEND_FRIENDSLOT)?.getInt()),\n\t\t\t\tshared: toOptionalBool(findNumericTag(nested, ECTagName.EC_TAG_FRIEND_SHARED)?.getInt()),\n\t\t\t\t// Friend client information might be nested as a client tag\n\t\t\t\tclient: ClientQueueResponseParser.fromTags(nested).clients[0],\n\t\t\t});\n\t\t}\n\t\treturn friends;\n\t}\n}\n"],"mappings":";;;;;;;;AAsBA,IAAa,uBAAb,MAAkC;CACjC,OAAO,WAAW,QAAgC;EAEjD,MAAM,cAAc,0BAA0B,WAAW,MAAM,CAAC,CAAC;EACjE,MAAM,gBAAgB,4BAA4B,WAAW,MAAM,CAAC,CAAC;EAGrE,MAAM,kBAAkB,QAAQ,OAAO,MAAA,IAA6B;EACpE,MAAM,UAAU,mBAAmB,gBAAgB,aAAa,0BAA0B,SAAS,gBAAgB,UAAU,CAAC,CAAC,UAAU,CAAC;EAE1I,MAAM,kBAAkB,QAAQ,OAAO,MAAA,IAA6B;EACpE,MAAM,UAAU,mBAAmB,gBAAgB,aAAa,yBAAyB,SAAS,gBAAgB,UAAU,CAAC,CAAC,UAAU,CAAC;EAEzI,MAAM,kBAAkB,QAAQ,OAAO,MAAA,IAA6B;EAGpE,OAAO;GACN;GACA;GACA;GACA;GACA,SAPe,mBAAmB,gBAAgB,aAAa,KAAK,aAAa,gBAAgB,UAAU,IAAI,CAAC;EAQjH;CACD;CAEA,OAAe,aAAa,MAA4B;EACvD,MAAM,UAAyB,CAAC;EAChC,MAAM,aAAa,KAAK,QAAQ,MAAM,EAAE,SAAA,IAAgC;EAExE,KAAK,MAAM,aAAa,YAAY;GACnC,MAAM,SAAS,UAAU,cAAc,CAAC;GACxC,QAAQ,KAAK;IACZ,MAAM,QAAQ,QAAA,IAAoC,CAAC,EAAE,SAAS;IAC9D,mBAAmB,QAAQ,QAAA,IAAoC,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,KAAK;IAC5F,IAAI,aAAa,eAAe,QAAA,IAAkC,CAAC,EAAE,OAAO,CAAC;IAC7E,MAAM,eAAe,QAAA,IAAoC,CAAC,EAAE,OAAO;IACnE,YAAY,eAAe,eAAe,QAAA,IAA0C,CAAC,EAAE,OAAO,CAAC;IAC/F,QAAQ,eAAe,eAAe,QAAA,IAAsC,CAAC,EAAE,OAAO,CAAC;IAEvF,QAAQ,0BAA0B,SAAS,MAAM,CAAC,CAAC,QAAQ;GAC5D,CAAC;EACF;EACA,OAAO;CACR;AACD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/types/download-details.ts
|
|
2
|
+
const PARTSIZE = 9728e3;
|
|
3
|
+
const ChunkStatus = {
|
|
4
|
+
UNAVAILABLE: 0,
|
|
5
|
+
AVAILABLE: 1,
|
|
6
|
+
COMPLETE: 2,
|
|
7
|
+
DOWNLOADING: 3
|
|
8
|
+
};
|
|
9
|
+
//#endregion
|
|
10
|
+
export { PARTSIZE as n, ChunkStatus as t };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=download-details-OM0FJUhZ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download-details-OM0FJUhZ.mjs","names":[],"sources":["../src/types/download-details.ts"],"sourcesContent":["export const PARTSIZE = 9728000;\n\nexport const ChunkStatus = {\n\tUNAVAILABLE: 0,\n\tAVAILABLE: 1,\n\tCOMPLETE: 2,\n\tDOWNLOADING: 3,\n} as const;\n\nexport interface ChunkInfo {\n\tchunks: number[];\n\tavailability: number[];\n\tpartCount: number;\n\tsizeFull: number;\n}\n\nexport interface ParsedSource {\n\tclientName: string;\n\tuserHash: string;\n\tsoftware: string;\n\tsoftwareVersion: string;\n\tscore: number;\n\tuploadSpeed: number;\n\tdownloadSpeed: number;\n\tuploadState: number;\n\tdownloadState: number;\n\tip: string;\n\tport: number;\n\tremoteQueueRank: number;\n\twaitingPosition: number;\n\tidentState: number;\n\tobfuscationStatus: number;\n\tremoteFilename: string;\n\tavailableParts: number;\n\tsourceFrom: number;\n}\n\nexport interface SourceNameCount {\n\tname: string;\n\tcount: number;\n}\n\nexport interface SourceInfo {\n\tsources: ParsedSource[];\n\tsourceNames: SourceNameCount[];\n}\n"],"mappings":";AAAA,MAAa,WAAW;AAExB,MAAa,cAAc;CAC1B,aAAa;CACb,WAAW;CACX,UAAU;CACV,aAAa;AACd"}
|