Changelog
- Updated the domain for Project Amber (ambr.top -> gi.yatta.moe).
- Removed ImageAssets#mihoyoUrl and ImageAssets#imageType.
- Made ImageAssets#url and ImageAssets#name nullable (null instead of empty string).
4.6.1
- Fixed playable character filtering for GI 5.1.
4.6.0
- Better imageBaseUrl managing like one in starrail.js.
4.5.1
- Removed GenshinUser#theater.difficulty, use GenshinUser#theater.mode.difficulty instead.
- Added GenshinUser#theater.mode.
- Added ProfilePicture#id.
4.5.0
- Added GenshinUser#theater.
- Added GenshinUser#spiralAbyss.stars.
- Added GenshinUser#maxFriendshipCount.
- Added GenshinUser#showConstellationPreview.
- Added CharacterPreview#element and CharacterPreview#constellation.
- Separated EnkaClient#fetchUser and EnkaClient#fetchCollapsedUser.
4.4.0
Character voice data was removed from cache.zip
- Removed CharacterVoiceData. If you need it, please use FettersExcelConfigData.json excel instead.
4.3.2
- Added a parameter to EnkaClient#getAllWeapons() to filter by codex.
4.3.1
- Added WeaponData#splashImage.
4.3.0
cache.zip for GI 4.6 has breaking changes. It requires this version or newer.
- Fixed for GI 4.6 excels.
- Better types for params of some methods in CachedAssetsManager.
4.2.0
- Added DetailedGenshinUser#toGOOD(), Character#toGOOD(), Weapon#toGOOD(), and Artifact#toGOOD().
4.1.6
- Fixed GenshinData repo id for GitLab API again.
- Updated the branch name of GenshinData GitLab repo.
4.1.5
- Removed WeaponRefinements.
- Fixed GenshinData repo id for GitLab API.
4.1.4
- Added PassiveTalent#requiredAscension.
- Fixed that CharacterData#getStats() does not contain passive talent stats.
4.1.3
- Added "Furina" to Arkhe type for character Furina.
- Made "options" arg of CachedAssetsManager#fetchAllContents optional.
4.1.2
- Fixed AxiosError was occurred instead of EnkaNetworkError.
4.1.1
- Added GenshinCharacterBuild#imageUrl.
- Better user data caching.
- Fixed ImageAssets#mihoyoUrl was incorrect.
- Made to use new rounded pfp icons even if the format is old.
4.1.0
This version includes Breaking Changes
- Added Costume#getCharacterData().
- Removed CharacterPreview#character, use CharacterPreview#costume or CharacterPreview#costume.getCharacterData() instead.
- Changed type of GenshinUser#pictureProfile to
ProfilePicture | null
. - Removed deciphered keys from ObjectKeyManager.
4.0.0
This version includes Breaking Changes
- Moved Enka.Network-account-related codes to enka-system.
- Added EnkaClient#fetchEnkaGenshinAccount().
- Fixed StatProperty#isPercent was incorrect.
Refactoring
- Renamed User#enkaUserHash to enkaGameAccountHash.
- Renamed User to GenshinUser and DetailedUser to DetailedGenshinUser.
- Renamed EnkaClient#fetchGenshinEnkaUsers() to fetchEnkaGenshinAccounts().
- Renamed EnkaClient#fetchEnkaUserGenshinBuilds() to fetchEnkaGenshinBuilds().
- Renamed EnkaClientOptions#timeout to requestTimeout.
- Moved userCacheGetter, userCacheSetter, userCacheDeleter and storeUserCache in EnkaClientOptions into EnkaClient#userCache and renamed them to getter, setter, deleter and isEnabled.
Removed
- Removed starrailClient option from EnkaClientOptions.
- Removed EnkaClient#fetchEnkaProfile(), use EnkaSystem#fetchEnkaProfile() instead.
- Removed EnkaClient#fetchAllEnkaUsers(), use EnkaSystem#fetchEnkaGameAccounts() instead.
- Removed EnkaClient#fetchEnkaUser(), use EnkaSystem#fetchEnkaGameAccount() instead.
- Removed EnkaClient#fetchEnkaUserBuilds(), use EnkaSystem#fetchEnkaCharacterBuilds() instead.
- Removed EnkaClient#fetchStarRailEnkaUsers() and EnkaClient#fetchEnkaUserStarRailBuilds().
3.7.5
- Uses URLs with fewer redirects.
- Updated npm scripts to make it easier to move cache directory.
3.7.4
- Added CharacterData#arkhe.
- Fixed unexpected undefined in CharacterAscension#requiredAdventureRank and WeaponAscension#requiredAdventureRank.
- Made Weapon#weaponStats not to use flat data from Enka.Network API.
- Corrected errors in stats calculations by rounding and added StatProperty#rawValue.
3.7.3
- Added EnkaClientOptions#githubToken for less rate-limited requests to github rest api.
3.7.2
- Added EnkaClient#fetchGenshinEnkaUsers and EnkaClient#fetchStarRailEnkaUsers.
- Added EnkaProfile#fetchGenshinEnkaUsers and EnkaProfile#fetchStarRailEnkaUsers.
3.7.1
- Added WeaponData#_nameId.
3.7.0
- Added integration with starrail.js.
- Supported StarRail EnkaUser.
- StarRail character builds (including saved builds in Enka.Network).
- Changed type of CharacterVoiceData#textContent to DynamicTextAssets.
3.6.1
- More accurate artifact mainstats.
3.6.0
This version includes Breaking Changes
- Changed type of User#profilePictureCharacter to
CostumedCharacter | null
. - Renamed User#profilePictureCharacter to profilePicture.
- Better interface CharacterPreview with CostumedCharacter.
- More accurate total substats of artifacts.
3.5.0
This version includes Breaking Changes
- Added CharacterData#isTraveler.
- Added CharacterData#getStats().
- Renamed CharacterAscension#requiredPlayerLevel to requiredAdventureRank.
- Added WeaponData#getAscensionData().
- Added WeaponData#getStats().
3.4.0
This version includes Breaking Changes
- StatProperty#toString() no longer returns simple value text. Use StatProperty#valueText instead.
- Renamed StatProperty#getFormattedValue() to getMultipliedValue().
- Created DynamicTextAssets class for TextAssets which has placeholders.
- Made SkillAttributeAssets extend DynamicTextAssets, which extends TextAssets.
- Changed type of Skill#description to DynamicTextAssets, which extends TextAssets.
- Removed FormattedText class and FormattedText-related methods in TextAssets. Use
textAssets.setConvertToHtmlFormat(true).get()
for html formatting, anddynamicTextAssets.getReplacedText()
for placeholders.
const enka = new EnkaClient({
defaultLanguage: "en",
textAssetsDynamicData: {
userInfo: {
travelerGender: "FEMALE", // Lumine
travelerNickname: "nickname",
platform: "PC",
}
}
});
const dynamicTextAssets = /* example DynamicTextAssets, whose get() returns "#Hello {M:Mr}{F:Ms}.{NICKNAME}. {LAYOUT_MOBILE#Tap}{LAYOUT_PC#Press}{LAYOUT_PS#Press} the button." */
dynamicTextAssets.get();
// "#Hello {M:Mr}{F:Ms}.{NICKNAME}. {LAYOUT_MOBILE#Tap}{LAYOUT_PC#Press}{LAYOUT_PS#Press} the button."
dynamicTextAssets.getReplacedText();
// "Hello Ms.nickname. Press the button."
dynamicTextAssets.copyWithUserInfo({
travelerGender: "MALE", // Aether
travelerNickname: "Tom",
platform: "MOBILE",
}).getReplacedText();
// "Hello Mr.Tom. Tap the button."
3.3.0
- Added CharacterDetails#characterId.
- Added CharacterDetails#getVoices().
- Renamed typedef CharacterVoices to CharacterVoiceActors.
- Changed constructor parameters for most classes in src/models, and added static getById methods to them.
3.2.5
- Fixed a error with _downloadCacheZip().
3.2.4
- Use unzip-stream library instead of unzipper.
- Fixed that cache directory must have been named "cache".
3.2.3
- Fixed error on extract cache.zip.
3.2.2
- Use adm-zip library instead of unzipper.
3.2.1
- Specified the version of unzipper due to some bugs.
3.2.0
This version includes Breaking Changes
- Renamed StatusProperty to StatProperty.
- Renamed CharacterStatus to CharacterStats, CharacterStatus#statusProperties to CharacterStats#statProperties, and CharacterStatus#getStatusProperty to CharacterStats#getStatProperty.
- Renamed Character#status to Character#stats.
3.1.0
This version includes Breaking Changes
- Removed
playableOnly
param from EnkaClient#getAllCharacters. - Removed CharacterData#isPlayable.
- Safer type assertions. (Might be a little slow.)
3.0.5
This version includes small Breaking Changes
- Made EnkaUser#uid, EnkaUser#verificationCode, EnkaUser#verificationExpires, and EnkaUser#verificationCodeRetries nullable.
- Made Material#stars nullable.
- Added CachedAssetsManager#_validateCache for cache validation.
3.0.4
- Made skillDepotId optional on EnkaClient#getCharacterById (#33)
3.0.3
- Renamed typedef Rarity to CharacterRarity.
- Export more objects. (Such as typedefs, functions and constants.)
3.0.2
- Fixed some images did not exist.
- Use regex instead of prefix to determine the image base url.
3.0.1
- Fixed performance issue with text maps.
3.0.0
This version includes Breaking Changes
- Rewrote the package in Typescript.
- Changed UniqueSkill#maxCharge default value to 1.
costume
in User#charactersPreview will be its default costume if there is no special costume.- Use default character icon in Costume if the costume is default.
- Renamed StatusProperty#id to StatusProperty#fightProp.
- Renamed StatusProperty#type to StatusProperty#fightPropName.
- Removed bigint type from EnkaClientOptions#timeout.
- Both User#abyssFloor and User#abyssChamber are now in User#spiralAbyss.
- Added getter, setter, and deleter options in EnkaClientOptions for storing user caches.
2.6.1
- Allows EnkaClientOptions#timeout in number type.
2.6.0
- Supported text formatting in TextAssets.
- Added imageBaseUrlByPrefix option in EnkaClient.
- Added CharacterDetails#constellationIcon.
- Renamed imageBaseUrl option to defaultImageBaseUrl.
2.5.0
- Changed default imageBaseUrl.
2.4.3
- Use val instead of ival in enka response data.
2.4.2
- Override TextAssets#toString.
- Removed invalid mihoyo constellation_icon url.
- Made CharacterStatus#highestDamageBonus not null.
2.4.1
- Added ArtifactSet.getActiveSetBonus().
- Added is_cache in user data.
2.4.0
- Added user data caching and EnkaClient#close.
2.3.5
- Changed GenshinData gitlab repo url.
2.3.4
- Added some methods and prefer Array in jsdoc.
- Added EnkaClient#getArtifactById.
- Better errors.
2.3.3
- Added StatusProperty.getFightPropTextAssets().
- Changed default imageBaseUrl.
- Better types.
2.3.2
- Added Weapon#refinementRank.
- Changed order of CharacterStatus#highestDamageBonus.
2.3.1
- Applied thousands separator to StatusProperty#toString().
2.3.0
- Added EnkaClient#getAllMaterials and EnkaClient#getMaterialById.
- Added CharacterData#getAscensionData.
- Added PassiveTalent#addProps.
- Added UpgradableSkill#getUpgradeCost.
- Added CharacterStatus#highestDamageBonus and deprecated CharacterStatus#maxElementDamage
- Added imageBaseUrl option in EnkaClient.
- Better types.
- Fixed that WeaponRefinement#level was wrong.
2.2.2
- Added CharacterData#isArchon.
- Fixed Zhongli's constellation name
- Better types.
2.2.1
- Added CharacterData#weaponType.
- Throws errors if invalid id provided in get- methods in EnkaClient
2.2.0
- Added TextAssets#getNullable and SkillAttributeAssets#getNullableAttributeData.
- Added CachedAssetsManager#checkForUpdates.
2.1.2
- Allows string ids in get- methods in EnkaClient
2.1.1
- Override StatusProperty#toString.
2.1.0
- Removed unupgradable skills from Character#skillLevels and sorted Character#skillLevels.
2.0.6
- Added CharacterStatus#maxElementDamage.
2.0.5
- Added Enka.Network urls.
2.0.4
- Added CharacterBuild#enkaUserInfo.
2.0.3
- Added CharacterData#getOriginalName for Travelers.
2.0.2
- Added User#enkaUserHash.
2.0.1
- Added EnkaUser#uid.
- Added 404 status code for enka profile.
2.0.0
- Supported Enka.Network accounts.