UNPKG

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
/** * 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"; };