Skip to main content

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, and dynamicTextAssets.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.