genshin-manager
Version:
<div align="center"> <p> <a href="https://www.npmjs.com/package/genshin-manager"><img src="https://img.shields.io/npm/v/genshin-manager.svg?maxAge=3600" alt="npm version" /></a> <a href="https://www.npmjs.com/package/genshin-manager"><img src="https:
283 lines (282 loc) • 11.7 kB
TypeScript
/**
* Type of value of object
*/
export type ValueOf<T> = T[keyof T];
/**
* Client option
*/
export interface ClientOption {
/**
* Fetch option
* @default
* ```ts
* {
* 'user-agent': 'genshin-manager@x.x.x',
* }
* ```
*/
fetchOption: RequestInit;
/**
* List of TextMaps to download when new assets are found.
* @default
* ```ts
* ['EN','RU','VI','TH','PT','KR','JP','ID','FR','ES','DE','CHT','CHS']
* ```
*/
downloadLanguages: (keyof typeof TextMapLanguage)[];
/**
* default image base URL
* @default 'https://gi.yatta.top/assets/UI'
*/
defaultImageBaseURL: string;
/**
* default audio base URL
* @default 'https://gi.yatta.top/assets/Audio'
*/
defaultAudioBaseURL: string;
/**
* image base URL by regex
* @default
* ```ts
* {
* 'https://enka.network/ui': [
* /^UI_(AvatarIcon_Side|Costume)_/,
* /^UI_AvatarIcon_(.+)_Card$/,
* /^UI_AvatarIcon_(.+)_Circle/,
* /^UI_NameCardPic_(.+)_Alpha/,
* /^UI_EquipIcon_(.+)_Awaken/,
* ],
* 'https://res.cloudinary.com/genshin/image/upload/sprites': [
* /^Eff_UI_Talent_/,
* /^UI_(TowerPic|TowerBlessing|GcgIcon|Gcg_Cardtable|Gcg_CardBack)_/,
* ],
* 'https://gi.yatta.top/assets/UI/monster': [
* /^UI_(MonsterIcon|AnimalIcon)_/,
* ],
* 'https://gi.yatta.top/assets/UI/gcg': [/^UI_Gcg_CardFace_/],
* 'https://gi.yatta.top/assets/UI/reliquary': [/^UI_RelicIcon_/],
* 'https://gi.yatta.top/assets/UI/namecard': [/^UI_NameCard/],
* },
* ```
*/
imageBaseURLByRegex: {
[url: string]: RegExp[];
};
/**
* audio base url by regex
* @default
* ```ts
* {}
* ```
*/
audioBaseURLByRegex: {
[url: string]: RegExp[];
};
/**
* default language
* @default 'EN'
*/
defaultLanguage: keyof typeof TextMapLanguage;
/**
* show fetch cache log
* @default true
*/
showFetchCacheLog: boolean;
/**
* auto fetch latest assets by cron
* @warn If this option is `undefined`, asset updates and initial setup are not executed
* @default '0 0 0 * * 3' // minute hour day-of-month month day-of-week
* @see https://crontab.guru/
*/
autoFetchLatestAssetsByCron: string | undefined;
/**
* Automatically re-download the textMap if it has not been downloaded or if there is an error in the json format
* @warn If `autoFetchLatestAssetsByCron` is `undefined`, this option will be ignored
* @default true
*/
autoFixTextMap: boolean;
/**
* Automatically fix the ExcelBin if it has not been downloaded or if there is an error in the json format
* @warn If `autoFetchLatestAssetsByCron` is `undefined`, this option will be ignored
* @default true
*/
autoFixExcelBin: boolean;
/**
* auto cache image
* @default true
*/
autoCacheImage: boolean;
/**
* auto cache audio
* @default true
*/
autoCacheAudio: boolean;
/**
* asset cache folder path
* @default node_modules/genshin-manager/cache
*/
assetCacheFolderPath: string;
}
/**
* Element Map for ExcelBinOut to Element
*/
export declare const ElementKeys: {
readonly Physical: "Phys";
readonly Fire: "Pyro";
readonly Electric: "Electro";
readonly Ice: "Cryo";
readonly Wind: "Anemo";
readonly Water: "Hydro";
readonly Rock: "Geo";
readonly Grass: "Dendro";
};
/**
* Element type
*/
export type Element = ValueOf<typeof ElementKeys>;
/**
* Character voice type
*/
export type CVType = keyof Omit<typeof TextMapLanguage, 'RU' | 'VI' | 'TH' | 'PT' | 'ID' | 'FR' | 'ES' | 'DE' | 'CHT'>;
/**
* Artifact type
*/
export type ArtifactType = 'EQUIP_BRACER' | 'EQUIP_NECKLACE' | 'EQUIP_SHOES' | 'EQUIP_RING' | 'EQUIP_DRESS';
/**
* Association type
*/
export type AssocType = 'ASSOC_TYPE_FATUI' | 'ASSOC_TYPE_FONTAINE' | 'ASSOC_TYPE_INAZUMA' | 'ASSOC_TYPE_LIYUE' | 'ASSOC_TYPE_MAINACTOR' | 'ASSOC_TYPE_MONDSTADT' | 'ASSOC_TYPE_RANGER' | 'ASSOC_TYPE_SUMERU' | 'ASSOC_TYPE_NATLAN';
/**
* Item type
*/
export type ItemType = 'ITEM_VIRTUAL' | 'ITEM_MATERIAL';
/**
* Material type
*/
export type MaterialType = 'MATERIAL_ACTIVITY_GEAR' | 'MATERIAL_ACTIVITY_JIGSAW' | 'MATERIAL_ACTIVITY_ROBOT' | 'MATERIAL_ADSORBATE' | 'MATERIAL_ARANARA' | 'MATERIAL_AVATAR' | 'MATERIAL_AVATAR_MATERIAL' | 'MATERIAL_BGM' | 'MATERIAL_CHANNELLER_SLAB_BUFF' | 'MATERIAL_CHEST' | 'MATERIAL_CHEST_BATCH_USE' | 'MATERIAL_CONSUME' | 'MATERIAL_CONSUME_BATCH_USE' | 'MATERIAL_COSTUME' | 'MATERIAL_CRICKET' | 'MATERIAL_DESHRET_MANUAL' | 'MATERIAL_ELEM_CRYSTAL' | 'MATERIAL_EXCHANGE' | 'MATERIAL_EXP_FRUIT' | 'MATERIAL_FAKE_ABSORBATE' | 'MATERIAL_FIREWORKS' | 'MATERIAL_FISH_BAIT' | 'MATERIAL_FISH_ROD' | 'MATERIAL_FLYCLOAK' | 'MATERIAL_FOOD' | 'MATERIAL_FURNITURE_FORMULA' | 'MATERIAL_FURNITURE_SUITE_FORMULA' | 'MATERIAL_GCG_CARD' | 'MATERIAL_GCG_CARD_BACK' | 'MATERIAL_GCG_CARD_FACE' | 'MATERIAL_GCG_EXCHANGE_ITEM' | 'MATERIAL_GCG_FIELD' | 'MATERIAL_HOME_SEED' | 'MATERIAL_NAMECARD' | 'MATERIAL_NOTICE_ADD_HP' | 'MATERIAL_QUEST' | 'MATERIAL_RELIQUARY_MATERIAL' | 'MATERIAL_RENAME_ITEM' | 'MATERIAL_SEA_LAMP' | 'MATERIAL_SELECTABLE_CHEST' | 'MATERIAL_SPICE_FOOD' | 'MATERIAL_TALENT' | 'MATERIAL_WEAPON_EXP_STONE' | 'MATERIAL_WIDGET' | 'MATERIAL_WOOD';
/**
* FightProp Map
*/
export declare const FightProps: {
readonly 0: "FIGHT_PROP_NONE";
readonly 1: "FIGHT_PROP_BASE_HP";
readonly 2: "FIGHT_PROP_HP";
readonly 3: "FIGHT_PROP_HP_PERCENT";
readonly 4: "FIGHT_PROP_BASE_ATTACK";
readonly 5: "FIGHT_PROP_ATTACK";
readonly 6: "FIGHT_PROP_ATTACK_PERCENT";
readonly 7: "FIGHT_PROP_BASE_DEFENSE";
readonly 8: "FIGHT_PROP_DEFENSE";
readonly 9: "FIGHT_PROP_DEFENSE_PERCENT";
readonly 10: "FIGHT_PROP_BASE_SPEED";
readonly 11: "FIGHT_PROP_SPEED_PERCENT";
readonly 20: "FIGHT_PROP_CRITICAL";
readonly 22: "FIGHT_PROP_CRITICAL_HURT";
readonly 23: "FIGHT_PROP_CHARGE_EFFICIENCY";
readonly 26: "FIGHT_PROP_HEAL_ADD";
readonly 27: "FIGHT_PROP_HEALED_ADD";
readonly 28: "FIGHT_PROP_ELEMENT_MASTERY";
readonly 29: "FIGHT_PROP_PHYSICAL_SUB_HURT";
readonly 30: "FIGHT_PROP_PHYSICAL_ADD_HURT";
readonly 40: "FIGHT_PROP_FIRE_ADD_HURT";
readonly 41: "FIGHT_PROP_ELEC_ADD_HURT";
readonly 42: "FIGHT_PROP_WATER_ADD_HURT";
readonly 43: "FIGHT_PROP_GRASS_ADD_HURT";
readonly 44: "FIGHT_PROP_WIND_ADD_HURT";
readonly 45: "FIGHT_PROP_ROCK_ADD_HURT";
readonly 46: "FIGHT_PROP_ICE_ADD_HURT";
readonly 50: "FIGHT_PROP_FIRE_SUB_HURT";
readonly 51: "FIGHT_PROP_ELEC_SUB_HURT";
readonly 52: "FIGHT_PROP_WATER_SUB_HURT";
readonly 53: "FIGHT_PROP_GRASS_SUB_HURT";
readonly 54: "FIGHT_PROP_WIND_SUB_HURT";
readonly 55: "FIGHT_PROP_ROCK_SUB_HURT";
readonly 56: "FIGHT_PROP_ICE_SUB_HURT";
readonly 80: "FIGHT_PROP_SKILL_CD_MINUS_RATIO";
readonly 81: "FIGHT_PROP_SHIELD_COST_MINUS_RATIO";
readonly 1010: "FIGHT_PROP_CUR_HP";
readonly 2000: "FIGHT_PROP_MAX_HP";
readonly 2001: "FIGHT_PROP_CUR_ATTACK";
readonly 2002: "FIGHT_PROP_CUR_DEFENSE";
readonly 2003: "FIGHT_PROP_CUR_SPEED";
};
/**
* FightProp type
*/
export type FightPropType = ValueOf<typeof FightProps>;
/**
* Weapon type
*/
export type WeaponType = 'WEAPON_BOW' | 'WEAPON_CATALYST' | 'WEAPON_CLAYMORE' | 'WEAPON_POLE' | 'WEAPON_SWORD_ONE_HAND';
/**
* Character's profile picture type
*/
export type ProfilePictureType = 'PROFILE_PICTURE_UNLOCK_BY_AVATAR' | 'PROFILE_PICTURE_UNLOCK_BY_COSTUME' | 'PROFILE_PICTURE_UNLOCK_BY_ITEM';
/**
* Quality type (Rarity Type)
*/
export type QualityType = 'QUALITY_ORANGE' | 'QUALITY_PURPLE' | 'QUALITY_ORANGE_SP';
/**
* Body type
*/
export type BodyType = 'BODY_BOY' | 'BODY_GIRL' | 'BODY_LADY' | 'BODY_LOLI' | 'BODY_MALE';
/**
* Monster type
* @description `CODEX_SUBTYPE_ELEMENT_LIFE` is original (reason:Element lifeforms does not have a subType)
*/
export type CodexType = 'CODEX_SUBTYPE_ELEMENT_LIFE' | 'CODEX_SUBTYPE_ABYSS' | 'CODEX_SUBTYPE_ANIMAL' | 'CODEX_SUBTYPE_AUTOMATRON' | 'CODEX_SUBTYPE_AVIARY' | 'CODEX_SUBTYPE_BEAST' | 'CODEX_SUBTYPE_BOSS' | 'CODEX_SUBTYPE_CRITTER' | 'CODEX_SUBTYPE_FATUI' | 'CODEX_SUBTYPE_FISH' | 'CODEX_SUBTYPE_HILICHURL' | 'CODEX_SUBTYPE_HUMAN';
/**
* TextMap language type
*/
export declare const TextMapLanguage: {
readonly EN: readonly ["TextMapEN.json"];
readonly RU: readonly ["TextMapRU.json"];
readonly VI: readonly ["TextMapVI.json"];
readonly TH: readonly ["TextMapTH_0.json", "TextMapTH_1.json"];
readonly PT: readonly ["TextMapPT.json"];
readonly KR: readonly ["TextMapKR.json"];
readonly JP: readonly ["TextMapJP.json"];
readonly ID: readonly ["TextMapID.json"];
readonly FR: readonly ["TextMapFR.json"];
readonly ES: readonly ["TextMapES.json"];
readonly DE: readonly ["TextMapDE.json"];
readonly CHT: readonly ["TextMapCHT.json"];
readonly CHS: readonly ["TextMapCHS.json"];
};
/**
* ExcelBin outputs
*/
export declare const ExcelBinOutputs: {
readonly AnimalCodexExcelConfigData: "AnimalCodexExcelConfigData.json";
readonly AvatarCostumeExcelConfigData: "AvatarCostumeExcelConfigData.json";
readonly AvatarCurveExcelConfigData: "AvatarCurveExcelConfigData.json";
readonly AvatarExcelConfigData: "AvatarExcelConfigData.json";
readonly AvatarPromoteExcelConfigData: "AvatarPromoteExcelConfigData.json";
readonly AvatarSkillDepotExcelConfigData: "AvatarSkillDepotExcelConfigData.json";
readonly AvatarSkillExcelConfigData: "AvatarSkillExcelConfigData.json";
readonly AvatarTalentExcelConfigData: "AvatarTalentExcelConfigData.json";
readonly DungeonEntryExcelConfigData: "DungeonEntryExcelConfigData.json";
readonly DungeonLevelEntityConfigData: "DungeonLevelEntityConfigData.json";
readonly EquipAffixExcelConfigData: "EquipAffixExcelConfigData.json";
readonly FetterInfoExcelConfigData: "FetterInfoExcelConfigData.json";
readonly FettersExcelConfigData: "FettersExcelConfigData.json";
readonly FetterStoryExcelConfigData: "FetterStoryExcelConfigData.json";
readonly ManualTextMapConfigData: "ManualTextMapConfigData.json";
readonly MaterialExcelConfigData: "MaterialExcelConfigData.json";
readonly MonsterCurveExcelConfigData: "MonsterCurveExcelConfigData.json";
readonly MonsterDescribeExcelConfigData: "MonsterDescribeExcelConfigData.json";
readonly MonsterExcelConfigData: "MonsterExcelConfigData.json";
readonly ProudSkillExcelConfigData: "ProudSkillExcelConfigData.json";
readonly ProfilePictureExcelConfigData: "ProfilePictureExcelConfigData.json";
readonly ReliquaryAffixExcelConfigData: "ReliquaryAffixExcelConfigData.json";
readonly ReliquaryExcelConfigData: "ReliquaryExcelConfigData.json";
readonly ReliquaryLevelExcelConfigData: "ReliquaryLevelExcelConfigData.json";
readonly ReliquaryMainPropExcelConfigData: "ReliquaryMainPropExcelConfigData.json";
readonly ReliquarySetExcelConfigData: "ReliquarySetExcelConfigData.json";
readonly TowerFloorExcelConfigData: "TowerFloorExcelConfigData.json";
readonly TowerLevelExcelConfigData: "TowerLevelExcelConfigData.json";
readonly TowerScheduleExcelConfigData: "TowerScheduleExcelConfigData.json";
readonly WeaponCurveExcelConfigData: "WeaponCurveExcelConfigData.json";
readonly WeaponExcelConfigData: "WeaponExcelConfigData.json";
readonly WeaponPromoteExcelConfigData: "WeaponPromoteExcelConfigData.json";
};