curseforge-v2
Version:
CurseForge V2 API Library
413 lines (412 loc) • 9.55 kB
TypeScript
export declare const BaseUrl = "https://api.curseforge.com";
export type CF2SortOrder = 'asc' | 'desc';
export declare enum CF2GameId {
WoW = 1,
TheSecretWorld = 64,
RunesOfMagic = 335,
WorldOfTanks = 423,
Rift = 424,
Minecraft = 432,
TheElderScrollsOnline = 455,
DarkestDungeon = 608,
StardewValley = 669,
Civ6 = 727,
KerbalSpaceProgram = 4401,
SecretWorldLegends = 4455,
SurvivingMars = 61489,
MinecraftDungeons = 69271,
ChroniclesOfArcadia = 70667,
Demeo = 78135
}
export declare enum CF2WowGameVersionType {
Retail = 517,// WoW
Classic = 67408,// WoW Classic
BurningCrusade = 73246,// WoW Burning Crusade Classic
WOTLK = 73713,// WoW Wrath of the Lich King Classic
Cata = 77522,// WoW Cataclysm Classic
Mists = 79434
}
export declare enum CF2ModStatus {
New = 1,
ChangesRequired = 2,
UnderSoftReview = 3,
Approved = 4,
Rejected = 5,
ChangesMade = 6,
Inactive = 7,
Abandoned = 8,
Deleted = 9,
UnderReview = 10
}
export declare enum CF2FileReleaseType {
Release = 1,
Beta = 2,
Alpha = 3
}
export declare enum CF2FileStatus {
Processing = 1,
ChangesRequired = 2,
UnderReview = 3,
Approved = 4,
Rejected = 5,
MalwareDetected = 6,
Deleted = 7,
Archived = 8,
Testing = 9,
Released = 10,
ReadyForReview = 11,
Deprecated = 12,
Baking = 13,
AwaitingPublishing = 14,
FailedPublishing = 15
}
export declare enum CF2HashAlgo {
Sha1 = 1,
Md5 = 2
}
export declare enum CF2FileRelationType {
EmbeddedLibrary = 1,
OptionalDependency = 2,
RequiredDependency = 3,
Tool = 4,
Incompatible = 5,
Include = 6
}
export declare enum CF2ModLoaderType {
Any = 0,
Forge = 1,
Cauldron = 2,
LiteLoader = 3,
Fabric = 4
}
export declare enum CF2CoreStatus {
Draft = 1,
Test = 2,
PendingReview = 3,
Rejected = 4,
Approved = 5,
Live = 6
}
export declare enum CF2CoreApiStatus {
Private = 1,
Public = 2
}
export declare enum CF2WowAddonCategory {
ChatCommunication = 1001,
AuctionEconomy = 1002,
AudioVideo = 1003,
PvP = 1004,
BuffsDebuffs = 1005,
Artwork = 1006,
DataExport = 1007,
Guild = 1008,
BagsInventory = 1009,
Libraries = 1010,
MapMinimap = 1011,
Mail = 1012,
QuestsLeveling = 1013,
BossEncounters = 1014,
Professions = 1015,
UnitFrames = 1016,
Miscellaneous = 1017,
ActionBars = 1018,
Combat = 1019,
Class = 1020,
Mage = 1021,
Paladin = 1022,
Druid = 1023,
Hunter = 1024,
Shaman = 1025,
Priest = 1026,
Rogue = 1027,
Warrior = 1028,
Warlock = 1029,
DevelopmentTools = 1031,
Healer = 1032,
Tank = 1033,
Caster = 1034,
DamageDealer = 1035,
DeathKnight = 1036,
RaidFrames = 1037,
Minigames = 1038,
HUDs = 1039,
Arena = 1040,
Battleground = 1041,
Alchemy = 1042,
Blacksmithing = 1043,
Cooking = 1044,
Enchanting = 1045,
Engineering = 1046,
FirstAid = 1047,
Fishing = 1048,
Herbalism = 1049,
Jewelcrafting = 1050,
Leatherworking = 1051,
Mining = 1052,
Skinning = 1053,
Tailoring = 1054,
Tooltip = 1055,
Inscription = 1059,
Roleplay = 1060,
Plugins = 1063,
FuBar = 1064,
TitanPanel = 1065,
DataBroker = 1066,
Achievements = 1067,
Companions = 1085,
Archaeology = 1103,
Transmogrification = 1171,
Monk = 1242,
BattlePets = 1243,
Garrison = 1469,
DemonHunters = 1502,
TwitchIntegration = 4675
}
export interface CF2GameAssets {
iconUrl: string;
tileUrl: string;
coverUrl: string;
}
export interface CF2Game {
id: number;
name: string;
slug: string;
dateModified: string;
assets: CF2GameAssets;
status: CF2CoreStatus;
apiStatus: CF2CoreApiStatus;
}
export interface CF2AddonLinks {
websiteUrl: string;
wikiUrl: string;
issuesUrl: string;
sourceUrl: string;
}
export interface CF2Category {
id: number;
gameId: number;
name: string;
slug: string;
url: string;
iconUrl: string;
dateModified: string;
isClass?: boolean;
classId?: number;
parentCategoryId?: number;
}
export interface CF2Author {
id: number;
name: string;
url: string;
}
export interface CF2Asset {
id: number;
modId: number;
title: string;
description: string;
thumbnailUrl: string;
url: string;
}
export interface CF2FileHash {
value: string;
algo: CF2HashAlgo;
}
export interface CF2SortableGameVersion {
gameVersionName: string;
gameVersionPadded: string;
gameVersion: string;
gameVersionReleaseDate: string;
gameVersionTypeId?: number;
}
export interface CF2FileDependency {
modId: number;
fileId: number;
relationType: CF2FileRelationType;
}
export interface CF2FileModule {
name: string;
fingerprint: number;
}
export interface CF2File {
id: number;
gameId: number;
modId: number;
isAvailable: boolean;
displayName: string;
fileName: string;
releaseType: CF2FileReleaseType;
fileStatus: CF2FileStatus;
hashes: CF2FileHash[];
fileDate: string;
fileLength: number;
downloadCount: number;
downloadUrl: string;
gameVersions: string[];
sortableGameVersions: CF2SortableGameVersion[];
dependencies: CF2FileDependency[];
exposeAsAlternative?: boolean;
parentProjectFileId?: number;
alternateFileId?: number;
isServerPack?: number;
serverPackFileId?: number;
fileFingerprint: number;
modules: CF2FileModule[];
}
export interface CF2FileIndex {
gameVersion: string;
fileId: number;
filename: string;
releaseType: CF2FileReleaseType;
gameVersionTypeId?: number;
modLoader?: CF2ModLoaderType;
}
export interface CF2Addon {
id: number;
gameId: number;
name: string;
slug: string;
links: CF2AddonLinks;
summary: string;
status: CF2ModStatus;
downloadCount: number;
isFeatured: boolean;
primaryCategoryId: number;
categories: CF2Category[];
authors: CF2Author[];
logo: CF2Asset;
screenshots: CF2Asset[];
mainFileId: number;
latestFiles: CF2File[];
latestFilesIndexes: CF2FileIndex[];
dateCreated: string;
dateModified: string;
dateReleased: string;
allowModDistribution?: boolean;
gamePopularityRank: number;
isAvailable: boolean;
thumbsUpCount?: number;
}
export interface CF2FingerprintMatch {
id: number;
file: CF2File;
latestFiles: CF2File[];
}
export interface CF2FingerprintsMatchesResult {
isCacheBuilt: boolean;
exactMatches: CF2FingerprintMatch[];
exactFingerprints: number[];
partialMatches: CF2FingerprintMatch[];
partialMatchFingerprints: any;
additionalProperties: number[];
installedFingerprints: number[];
unmatchedFingerprints: number[];
}
export interface CF2Pagination {
index: number;
pageSize: number;
resultCount: number;
totalCount: number;
}
export interface CF2GameVersionsByType {
type: number;
versions: string[];
}
export interface CF2GameVersionType {
id: number;
gameId: number;
name: string;
slug: string;
}
export interface GetFeaturedModsRequestBody {
gameId: number;
excludedModIds: number[];
gameVersionTypeId?: number;
}
export interface CF2GetModsRequest {
modIds: number[];
}
export interface CF2SearchModsParams {
gameId?: number;
classId?: number;
categoryId?: number;
gameVersion?: string;
searchFilter?: string;
sortField?: any;
sortOrder?: CF2SortOrder;
modLoaderType?: string;
gameVersionTypeId?: number;
index?: number;
pageSize?: number;
}
export interface CF2GetFingerprintMatchesRequest {
fingerprints: number[];
}
export interface CF2GetModFilesRequest {
modId: number;
gameVersion?: string;
modLoaderType?: CF2ModLoaderType;
gameVersionTypeId?: number;
index?: number;
pageSize?: number;
}
export interface CF2GetModFilesRequestBody {
fileIds: number[];
}
export interface CF2GetGamesResponse {
data: CF2Game[];
pagination: CF2Pagination;
}
export interface CF2GetGameResponse {
data: CF2Game;
}
export interface CF2GetAddonResponse {
data: CF2Addon;
}
export interface CF2GetVersionsResponse {
data: CF2GameVersionsByType[];
}
export interface CF2GetVersionTypesResponse {
data: CF2GameVersionType[];
}
export interface CF2FeaturedModsResponse {
featured: CF2Addon[];
popular: CF2Addon[];
recentlyUpdated: CF2Addon[];
}
export interface CF2GetFeaturedModsResponse {
data: CF2FeaturedModsResponse;
}
export interface CF2GetFingerprintMatchesResponse {
data: CF2FingerprintsMatchesResult;
}
export interface CF2GetModDescriptionResponse {
data: string;
}
export interface CF2GetModFileChangelogResponse {
data: string;
}
export interface CF2GetModsResponse {
data: CF2Addon[];
}
export interface CF2SearchModsResponse {
data: CF2Addon[];
pagination: CF2Pagination;
}
export interface CF2GetModFileResponse {
data: CF2File;
}
export interface CF2GetModFilesResponse {
data: CF2File[];
pagination: CF2Pagination;
}
export interface CF2GetFeaturedModsRequest {
gameId: number;
excludedModIds: number[];
gameVersionTypeId?: number;
}
export interface CF2GetFilesResponse {
data: CF2File[];
}
export interface CF2GetModFileDownloadUrlResponse {
data: string;
}