genshin-world 4.1.2 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/package.json +8 -8
  2. package/dist/ReactionType-BBSdxyO3.js +0 -47
  3. package/dist/addKitEffect-DBqTfm_3.js +0 -17
  4. package/dist/ainoKit-Dy3vTp3B.js +0 -28
  5. package/dist/albedoKit-CU5N1Hnm.js +0 -43
  6. package/dist/alhaithamKit-Bhs-coX9.js +0 -212
  7. package/dist/aloyKit-C7x_Jf16.js +0 -32
  8. package/dist/amberKit-BO7ZAQgU.js +0 -38
  9. package/dist/arlecchinoKit-DJawwVVl.js +0 -4
  10. package/dist/ayakaKit-Bu_QuYsR.js +0 -26
  11. package/dist/ayatoKit-BXZNajk7.js +0 -108
  12. package/dist/baizhuKit-8_4IzZ3A.js +0 -33
  13. package/dist/barbaraKit-B5DpLyHJ.js +0 -58
  14. package/dist/beidouKit-sQUahtIk.js +0 -59
  15. package/dist/bennettKit-Cr-zZ_25.js +0 -66
  16. package/dist/candaceKit-BUs_wwFU.js +0 -84
  17. package/dist/characterPack-YAEqbhAX.d.ts +0 -116
  18. package/dist/characterPack-zycIUHje.js +0 -641
  19. package/dist/characterPack.d.ts +0 -2
  20. package/dist/characterPack.js +0 -1
  21. package/dist/charlotteKit-BOZiCPEb.js +0 -90
  22. package/dist/chascaKit-C1Csj0Yf.js +0 -4
  23. package/dist/chevreuseKit-DDHga8Tj.js +0 -20
  24. package/dist/chioriKit-CxRUSHNw.js +0 -28
  25. package/dist/chongyunKit-jrWQKRkG.js +0 -104
  26. package/dist/citlaliKit-sv7XrzVx.js +0 -4
  27. package/dist/clorindeKit-DxtRn_To.js +0 -4
  28. package/dist/colleiKit-CO_n9qra.js +0 -28
  29. package/dist/columbinaKit-DrW0EvqN.js +0 -31
  30. package/dist/constants--ARZpp1u.js +0 -49
  31. package/dist/constants-BqrUOf2M.js +0 -48
  32. package/dist/constants-CSFiwyHy.js +0 -46
  33. package/dist/createWindriseGroundPaint-BmZkGq-r.js +0 -295
  34. package/dist/cynoKit-DpfT5dmS.js +0 -179
  35. package/dist/dahliaKit-B8fOPvvi.js +0 -16
  36. package/dist/dehyaKit-42tyEI0Z.js +0 -4
  37. package/dist/dilucKit-EwLUSPgs.js +0 -63
  38. package/dist/dionaKit-89B1hwYL.js +0 -48
  39. package/dist/doriKit-G9XTwwCP.js +0 -24
  40. package/dist/durinKit-BIYdUkbh.js +0 -49
  41. package/dist/emilieKit-0b2vhNtl.js +0 -21
  42. package/dist/escoffierKit-Da5UAvAF.js +0 -48
  43. package/dist/eulaKit-DAENHIEx.js +0 -129
  44. package/dist/faruzanKit-BcW6D-N3.js +0 -71
  45. package/dist/fischlKit-Bm8vNmuV.js +0 -98
  46. package/dist/flinsKit-GUnFJdUg.js +0 -9
  47. package/dist/freminetKit-CpwsVmTT.js +0 -4
  48. package/dist/furinaKit-BREisAdJ.js +0 -279
  49. package/dist/gamingKit-D9ekWGMJ.js +0 -4
  50. package/dist/ganyuKit-DLJa1t-Z.js +0 -74
  51. package/dist/gorouKit-DkpaGNA8.js +0 -94
  52. package/dist/heizouKit-B6kRXVCP.js +0 -35
  53. package/dist/huTaoKit-drjrzLjf.js +0 -58
  54. package/dist/iansanKit-RNjD9nSq.js +0 -4
  55. package/dist/ifaKit-CXWxCOPI.js +0 -4
  56. package/dist/illugaKit-BFtXIf3P.js +0 -4
  57. package/dist/index-DQB91Tfq.d.ts +0 -19820
  58. package/dist/index.d.ts +0 -4
  59. package/dist/index.js +0 -29218
  60. package/dist/ineffaKit-3J0FJo2E.js +0 -51
  61. package/dist/ittoKit-CfwXkR0g.js +0 -112
  62. package/dist/jahodaKit-C1sdSDfr.js +0 -97
  63. package/dist/jeanKit-Do8vx5Kp.js +0 -56
  64. package/dist/kachinaKit-DWLNDpgO.js +0 -4
  65. package/dist/kaeyaKit-DU8Df4RE.js +0 -14
  66. package/dist/kavehKit-BWoAaKs4.js +0 -9
  67. package/dist/kazuhaKit-C5gn8iGg.js +0 -55
  68. package/dist/keqingKit-uGsb_p7t.js +0 -12
  69. package/dist/kinichKit-Dp3lNUJt.js +0 -22
  70. package/dist/kiraraKit-CCAGXouk.js +0 -43
  71. package/dist/kleeKit-BzcJLC2i.js +0 -48
  72. package/dist/kokomiKit-DBdTlTDr.js +0 -42
  73. package/dist/kujouSaraKit-DDE-24jd.js +0 -56
  74. package/dist/kukiKit-DcARldP9.js +0 -59
  75. package/dist/lanYanKit-B3lwZ7OW.js +0 -18
  76. package/dist/laumaKit-DkG-i0rL.js +0 -59
  77. package/dist/laylaKit-DYtz0tSZ.js +0 -41
  78. package/dist/linneaKit-DlVhnbGM.js +0 -4
  79. package/dist/lisaKit-CWUiiam1.js +0 -22
  80. package/dist/lohenKit-D-uagI_g.js +0 -4
  81. package/dist/lynetteKit-BnNW81Pm.js +0 -20
  82. package/dist/lyneyKit-D6yTnfFv.js +0 -19
  83. package/dist/mavuikaKit-CUC1kHRJ.js +0 -4
  84. package/dist/mikaKit-C9xDhjJg.js +0 -17
  85. package/dist/mizukiKit-DY-gHM8N.js +0 -4
  86. package/dist/monaKit-B748iTEy.js +0 -26
  87. package/dist/mualaniKit-B-Km_dcQ.js +0 -4
  88. package/dist/nahidaKit-BGRc-swN.js +0 -4
  89. package/dist/naviaKit-CHh2VdX3.js +0 -64
  90. package/dist/neferKit-BTALTTiV.js +0 -4
  91. package/dist/neuvilletteKit-DAfX_2tC.js +0 -4
  92. package/dist/nicoleKit-BVjL7LI0.js +0 -4
  93. package/dist/nilouKit-BgM4u-hg.js +0 -52
  94. package/dist/ningguangKit-N88BhNb_.js +0 -105
  95. package/dist/noelleKit-DDewnuJ9.js +0 -48
  96. package/dist/ororonKit-DiAd2dlh.js +0 -86
  97. package/dist/pruneKit-CHkC_OSB.js +0 -4
  98. package/dist/qiqiKit-DCtsriE7.js +0 -88
  99. package/dist/raidenKit-BBWMmPFn.js +0 -144
  100. package/dist/razorKit-CBgdHYic.js +0 -90
  101. package/dist/readCharacterAvatar-C7FufK7J.js +0 -292
  102. package/dist/rosariaKit-D_RDXpLp.js +0 -29
  103. package/dist/save-CEbj1mOx.js +0 -854
  104. package/dist/save.d.ts +0 -2
  105. package/dist/save.js +0 -1
  106. package/dist/sayuKit-Hnv4iA3_.js +0 -35
  107. package/dist/sceneExport-BZaF05K-.d.ts +0 -70
  108. package/dist/sceneExport-DiiIi0PM.js +0 -27
  109. package/dist/sceneExport.d.ts +0 -2
  110. package/dist/sceneExport.js +0 -1
  111. package/dist/sethosKit-8EK04AA4.js +0 -4
  112. package/dist/shenheKit-DqrG2I4S.js +0 -50
  113. package/dist/sigewinneKit-CYJyadTr.js +0 -10
  114. package/dist/skirkKit-BDjoFGAq.js +0 -10
  115. package/dist/style.css +0 -3612
  116. package/dist/sucroseKit-DF0jcI2y.js +0 -101
  117. package/dist/tartagliaKit-Bbtww18S.js +0 -136
  118. package/dist/terrainTileWorker.d.ts +0 -1
  119. package/dist/terrainTileWorker.js +0 -81
  120. package/dist/thomaKit-Zm5AJ9Fm.js +0 -64
  121. package/dist/tighnariKit-CSa_Yqpp.js +0 -4
  122. package/dist/varesaKit-CMXLbBv9.js +0 -4
  123. package/dist/varkaKit-C8_HlTVH.js +0 -4
  124. package/dist/ventiKit-BcQkbI-z.js +0 -52
  125. package/dist/wandererKit-CQM691sn.js +0 -9
  126. package/dist/wriothesleyKit-CBTnYlOy.js +0 -4
  127. package/dist/xianglingKit-BPQN7cxU.js +0 -108
  128. package/dist/xianyunKit-CVhuYBde.js +0 -4
  129. package/dist/xiaoKit-BDI_SODG.js +0 -90
  130. package/dist/xilonenKit-YAVOPRwm.js +0 -4
  131. package/dist/xingqiuKit-Cv8JYeYO.js +0 -106
  132. package/dist/xinyanKit-CffF-Er0.js +0 -120
  133. package/dist/yaeMikoKit-xAKYm2K6.js +0 -44
  134. package/dist/yanfeiKit-C6elnkmn.js +0 -86
  135. package/dist/yaoyaoKit-CaPIIp-i.js +0 -4
  136. package/dist/yelanKit-Da0oQ6yu.js +0 -33
  137. package/dist/yoimiyaKit-DTENWB4y.js +0 -49
  138. package/dist/yunjinKit-PP4yeyn1.js +0 -22
  139. package/dist/zhongliKit-uMdKUTP-.js +0 -100
  140. package/dist/zibaiKit-Dq6mFWSx.js +0 -4
@@ -1,641 +0,0 @@
1
- import { l as DATA_FETCH_TIMEOUT_MS } from "./constants-CSFiwyHy.js";
2
- import { InvalidOperationError, Operation, createEvictingPromiseCache, getResult, takeOne } from "@esposter/shared";
3
- import { GameLanguage, GameTextKey } from "genshin-text";
4
- import "vue";
5
- import { z } from "zod";
6
- //#region src/services/character/getCharacterNameKey.ts
7
- const getCharacterNameKey = (name) => name.normalize("NFKC").toLowerCase().replaceAll(" ", "");
8
- //#endregion
9
- //#region src/services/character/chooseCharacterPackModel.ts
10
- const chooseCharacterPackModel = async (folder, filePaths, readModelName, readCharacterNames) => {
11
- const modelPaths = filePaths.filter((filePath) => filePath.toLowerCase().endsWith(".pmx"));
12
- if (modelPaths.length === 0) throw new InvalidOperationError(Operation.Read, folder, "holds no .pmx model");
13
- if (modelPaths.length === 1) return takeOne(modelPaths);
14
- const [characterNames, modelNames] = await Promise.all([readCharacterNames(), Promise.all(modelPaths.map((modelPath) => readModelName(modelPath)))]);
15
- const characterNameKeys = new Set(characterNames.map((characterName) => getCharacterNameKey(characterName)));
16
- const namedModelPaths = modelPaths.filter((_modelPath, index) => characterNameKeys.has(getCharacterNameKey(takeOne(modelNames, index))));
17
- if (namedModelPaths.length !== 1) throw new InvalidOperationError(Operation.Read, folder, `holds several .pmx models, ${namedModelPaths.length} named as its character: ${modelPaths.join(", ")}`);
18
- return takeOne(namedModelPaths);
19
- };
20
- //#endregion
21
- //#region src/models/artifact/ArtifactSlot.ts
22
- let ArtifactSlot = /* @__PURE__ */ function(ArtifactSlot) {
23
- ArtifactSlot["CircletOfLogos"] = "EQUIP_DRESS";
24
- ArtifactSlot["FlowerOfLife"] = "EQUIP_BRACER";
25
- ArtifactSlot["GobletOfEonothem"] = "EQUIP_RING";
26
- ArtifactSlot["PlumeOfDeath"] = "EQUIP_NECKLACE";
27
- ArtifactSlot["SandsOfEon"] = "EQUIP_SHOES";
28
- return ArtifactSlot;
29
- }({});
30
- //#endregion
31
- //#region src/models/character/Attribute.ts
32
- let Attribute = /* @__PURE__ */ function(Attribute) {
33
- Attribute["AnemoDamageBonus"] = "FIGHT_PROP_WIND_ADD_HURT";
34
- Attribute["AnemoResistance"] = "FIGHT_PROP_WIND_SUB_HURT";
35
- Attribute["Attack"] = "FIGHT_PROP_ATTACK";
36
- Attribute["AttackPercent"] = "FIGHT_PROP_ATTACK_PERCENT";
37
- Attribute["BaseAttack"] = "FIGHT_PROP_BASE_ATTACK";
38
- Attribute["BaseDefense"] = "FIGHT_PROP_BASE_DEFENSE";
39
- Attribute["BaseHealth"] = "FIGHT_PROP_BASE_HP";
40
- Attribute["CriticalDamage"] = "FIGHT_PROP_CRITICAL_HURT";
41
- Attribute["CriticalRate"] = "FIGHT_PROP_CRITICAL";
42
- Attribute["CryoDamageBonus"] = "FIGHT_PROP_ICE_ADD_HURT";
43
- Attribute["CryoResistance"] = "FIGHT_PROP_ICE_SUB_HURT";
44
- Attribute["Defense"] = "FIGHT_PROP_DEFENSE";
45
- Attribute["DefensePercent"] = "FIGHT_PROP_DEFENSE_PERCENT";
46
- Attribute["DendroDamageBonus"] = "FIGHT_PROP_GRASS_ADD_HURT";
47
- Attribute["DendroResistance"] = "FIGHT_PROP_GRASS_SUB_HURT";
48
- Attribute["ElectroDamageBonus"] = "FIGHT_PROP_ELEC_ADD_HURT";
49
- Attribute["ElectroResistance"] = "FIGHT_PROP_ELEC_SUB_HURT";
50
- Attribute["ElementalMastery"] = "FIGHT_PROP_ELEMENT_MASTERY";
51
- Attribute["EnergyRecharge"] = "FIGHT_PROP_CHARGE_EFFICIENCY";
52
- Attribute["GeoDamageBonus"] = "FIGHT_PROP_ROCK_ADD_HURT";
53
- Attribute["GeoResistance"] = "FIGHT_PROP_ROCK_SUB_HURT";
54
- Attribute["HealingBonus"] = "FIGHT_PROP_HEAL_ADD";
55
- Attribute["Health"] = "FIGHT_PROP_HP";
56
- Attribute["HealthPercent"] = "FIGHT_PROP_HP_PERCENT";
57
- Attribute["HydroDamageBonus"] = "FIGHT_PROP_WATER_ADD_HURT";
58
- Attribute["HydroResistance"] = "FIGHT_PROP_WATER_SUB_HURT";
59
- Attribute["IncomingHealingBonus"] = "FIGHT_PROP_HEALED_ADD";
60
- Attribute["PhysicalDamageBonus"] = "FIGHT_PROP_PHYSICAL_ADD_HURT";
61
- Attribute["PhysicalResistance"] = "FIGHT_PROP_PHYSICAL_SUB_HURT";
62
- Attribute["PyroDamageBonus"] = "FIGHT_PROP_FIRE_ADD_HURT";
63
- Attribute["PyroResistance"] = "FIGHT_PROP_FIRE_SUB_HURT";
64
- Attribute["ShieldStrength"] = "FIGHT_PROP_SHIELD_COST_MINUS_RATIO";
65
- return Attribute;
66
- }({});
67
- const Attributes = Object.values(Attribute);
68
- //#endregion
69
- //#region src/models/character/CombatTalent.ts
70
- let CombatTalent = /* @__PURE__ */ function(CombatTalent) {
71
- CombatTalent["ElementalBurst"] = "ElementalBurst";
72
- CombatTalent["ElementalSkill"] = "ElementalSkill";
73
- CombatTalent["NormalAttack"] = "NormalAttack";
74
- return CombatTalent;
75
- }({});
76
- //#endregion
77
- //#region src/services/character/constants.ts
78
- const ARTIFACT_SLOT_ORDER = [
79
- "EQUIP_BRACER",
80
- "EQUIP_NECKLACE",
81
- "EQUIP_SHOES",
82
- "EQUIP_RING",
83
- "EQUIP_DRESS"
84
- ];
85
- const COMBAT_TALENT_ORDER = [
86
- "NormalAttack",
87
- "ElementalSkill",
88
- "ElementalBurst"
89
- ];
90
- const TALENT_START_LEVEL = 1;
91
- const CHARACTER_PACK_INDEX_PATH = "index.json";
92
- const CHARACTER_PACK_STORE_NAME = "genshin-character-packs";
93
- const CHARACTER_PACK_STORE_FILES_NAME = "files";
94
- const CHARACTER_PACK_STORE_VERSION = 1;
95
- const MACOS_RESOURCE_FORK_FOLDER = "__MACOSX/";
96
- const CHARACTER_MODEL_PATH = "model.pmx";
97
- const CHARACTER_TERMS_PATH = "terms.txt";
98
- const CHARACTER_TERMS_FILE_NAMES = [
99
- "利用規約",
100
- "readme",
101
- "使用说明",
102
- "规约",
103
- "规则",
104
- "terms"
105
- ];
106
- const CHARACTER_TERMS_NOT_JAPANESE_REGEX = /[\uE000-\uF8FF\uFF61-\uFF9F]/u;
107
- const CHARACTER_PACK_MODEL_NAME_LANGUAGES = [
108
- GameLanguage.ChineseSimplified,
109
- GameLanguage.English,
110
- GameLanguage.Japanese
111
- ];
112
- const CHARACTER_PACK_FETCH_TIMEOUT_MS = 6e4;
113
- const TRAVELER_CHARACTER_ID = 10000007;
114
- const ADVANCED_ATTRIBUTE_GAME_TEXT_KEYS = [
115
- ["FIGHT_PROP_CRITICAL", GameTextKey.AttributeCriticalRate],
116
- ["FIGHT_PROP_CRITICAL_HURT", GameTextKey.AttributeCriticalDamage],
117
- ["FIGHT_PROP_HEAL_ADD", GameTextKey.AttributeHealingBonus],
118
- ["FIGHT_PROP_CHARGE_EFFICIENCY", GameTextKey.AttributeEnergyRecharge]
119
- ];
120
- const ELEMENTAL_ATTRIBUTE_GAME_TEXT_KEYS = [
121
- ["FIGHT_PROP_FIRE_ADD_HURT", GameTextKey.AttributePyroDamageBonus],
122
- ["FIGHT_PROP_WATER_ADD_HURT", GameTextKey.AttributeHydroDamageBonus],
123
- ["FIGHT_PROP_GRASS_ADD_HURT", GameTextKey.AttributeDendroDamageBonus],
124
- ["FIGHT_PROP_ELEC_ADD_HURT", GameTextKey.AttributeElectroDamageBonus],
125
- ["FIGHT_PROP_WIND_ADD_HURT", GameTextKey.AttributeAnemoDamageBonus],
126
- ["FIGHT_PROP_ICE_ADD_HURT", GameTextKey.AttributeCryoDamageBonus],
127
- ["FIGHT_PROP_ROCK_ADD_HURT", GameTextKey.AttributeGeoDamageBonus],
128
- ["FIGHT_PROP_PHYSICAL_ADD_HURT", GameTextKey.AttributePhysicalDamageBonus]
129
- ];
130
- const WHOLE_ATTRIBUTES = [
131
- "FIGHT_PROP_BASE_ATTACK",
132
- "FIGHT_PROP_BASE_DEFENSE",
133
- "FIGHT_PROP_BASE_HP",
134
- "FIGHT_PROP_ATTACK",
135
- "FIGHT_PROP_DEFENSE",
136
- "FIGHT_PROP_HP",
137
- "FIGHT_PROP_ELEMENT_MASTERY"
138
- ];
139
- //#endregion
140
- //#region src/services/character/chooseCharacterTermsFile.ts
141
- const chooseCharacterTermsFile = (folder, filePaths) => {
142
- const [termsFile] = filePaths.flatMap((filePath) => {
143
- const parts = filePath.split("/");
144
- const name = (parts.at(-1) ?? "").normalize("NFC").toLowerCase();
145
- if (!name.endsWith(".txt")) return [];
146
- const nameIndex = CHARACTER_TERMS_FILE_NAMES.findIndex((termsFileName) => name.includes(termsFileName));
147
- return nameIndex === -1 ? [] : [{
148
- depth: parts.length,
149
- filePath,
150
- nameIndex
151
- }];
152
- }).toSorted((firstTermsFile, secondTermsFile) => firstTermsFile.nameIndex - secondTermsFile.nameIndex || firstTermsFile.depth - secondTermsFile.depth || (firstTermsFile.filePath < secondTermsFile.filePath ? -1 : 1));
153
- if (termsFile === void 0) throw new InvalidOperationError(Operation.Read, folder, `holds no terms file, a .txt named ${CHARACTER_TERMS_FILE_NAMES.join(", ")}`);
154
- return termsFile.filePath;
155
- };
156
- //#endregion
157
- //#region src/models/character/CharacterTermsEncoding.ts
158
- let CharacterTermsEncoding = /* @__PURE__ */ function(CharacterTermsEncoding) {
159
- CharacterTermsEncoding["Gbk"] = "gbk";
160
- CharacterTermsEncoding["ShiftJis"] = "shift_jis";
161
- CharacterTermsEncoding["Utf8"] = "utf8";
162
- CharacterTermsEncoding["Utf16BigEndian"] = "utf-16be";
163
- CharacterTermsEncoding["Utf16LittleEndian"] = "utf-16le";
164
- return CharacterTermsEncoding;
165
- }({});
166
- //#endregion
167
- //#region src/services/character/decodeCharacterTerms.ts
168
- const getEncodings = (bytes) => {
169
- if (bytes[0] === 255 && bytes[1] === 254) return ["utf-16le"];
170
- if (bytes[0] === 254 && bytes[1] === 255) return ["utf-16be"];
171
- return [
172
- "utf8",
173
- "shift_jis",
174
- "gbk"
175
- ];
176
- };
177
- const decodeCharacterTerms = (bytes) => {
178
- const encodings = getEncodings(bytes);
179
- for (const encoding of encodings) {
180
- const text = getResult(() => new TextDecoder(encoding, { fatal: true }).decode(bytes)).unwrapOr(void 0);
181
- if (text !== void 0 && !(encoding === "shift_jis" && CHARACTER_TERMS_NOT_JAPANESE_REGEX.test(text))) return {
182
- encoding,
183
- text
184
- };
185
- }
186
- throw new InvalidOperationError(Operation.Read, "terms", `decode in none of ${encodings.join(", ")}`);
187
- };
188
- //#endregion
189
- //#region src/models/character/AttributeLine.ts
190
- const attributeLineSchema = z.object({
191
- attribute: z.enum(Attribute),
192
- value: z.number()
193
- });
194
- //#endregion
195
- //#region src/models/character/AscensionPhase.ts
196
- const ascensionPhaseSchema = z.object({
197
- attributeLines: z.array(attributeLineSchema),
198
- maxLevel: z.int().positive()
199
- });
200
- //#endregion
201
- //#region src/models/character/BodyType.ts
202
- let BodyType = /* @__PURE__ */ function(BodyType) {
203
- BodyType["MediumFemale"] = "BODY_GIRL";
204
- BodyType["MediumMale"] = "BODY_BOY";
205
- BodyType["ShortFemale"] = "BODY_LOLI";
206
- BodyType["TallFemale"] = "BODY_LADY";
207
- BodyType["TallMale"] = "BODY_MALE";
208
- return BodyType;
209
- }({});
210
- //#endregion
211
- //#region src/models/character/GrowAttribute.ts
212
- const growAttributeSchema = z.object({
213
- attribute: z.enum(Attribute),
214
- base: z.number(),
215
- curve: z.string().min(1)
216
- });
217
- //#endregion
218
- //#region src/models/Element.ts
219
- let Element = /* @__PURE__ */ function(Element) {
220
- Element["Anemo"] = "Wind";
221
- Element["Cryo"] = "Ice";
222
- Element["Dendro"] = "Grass";
223
- Element["Electro"] = "Electric";
224
- Element["Geo"] = "Rock";
225
- Element["Hydro"] = "Water";
226
- Element["Pyro"] = "Fire";
227
- return Element;
228
- }({});
229
- const Elements = [
230
- "Fire",
231
- "Water",
232
- "Wind",
233
- "Electric",
234
- "Grass",
235
- "Ice",
236
- "Rock"
237
- ];
238
- //#endregion
239
- //#region src/models/weapon/WeaponType.ts
240
- let WeaponType = /* @__PURE__ */ function(WeaponType) {
241
- WeaponType["Bow"] = "WEAPON_BOW";
242
- WeaponType["Catalyst"] = "WEAPON_CATALYST";
243
- WeaponType["Claymore"] = "WEAPON_CLAYMORE";
244
- WeaponType["Polearm"] = "WEAPON_POLE";
245
- WeaponType["Sword"] = "WEAPON_SWORD_ONE_HAND";
246
- return WeaponType;
247
- }({});
248
- //#endregion
249
- //#region src/models/character/CharacterData.ts
250
- const characterDataSchema = z.object({
251
- ascensionPhases: z.array(ascensionPhaseSchema).min(1),
252
- attributeLines: z.array(attributeLineSchema),
253
- bodyType: z.enum(BodyType),
254
- element: z.enum(Element).optional(),
255
- growAttributes: z.array(growAttributeSchema),
256
- id: z.int().positive(),
257
- initialWeaponId: z.int().positive(),
258
- nameTextId: z.string().min(1),
259
- rarity: z.int().min(1).max(5),
260
- regionId: z.string().min(1).optional(),
261
- weaponType: z.enum(WeaponType)
262
- });
263
- //#endregion
264
- //#region src/models/data/TextChunk.ts
265
- const textChunkSchema = z.record(z.string(), z.string());
266
- //#endregion
267
- //#region src/services/data/gameDataLock.ts
268
- const gameDataLock = {
269
- indexes: {
270
- "bookBody/ChineseSimplified": "4a4d631ff8fbe3cff0269021ab8883b3f830797786fe1a45fad6a1f17a650bc1",
271
- "bookBody/ChineseTraditional": "9b3d4f1c30c1b7f68872d0dda48e9a21c4caf21e08acbd8deec2f857fd817d11",
272
- "bookBody/English": "a534890a2513569f4ba1b82c4e0f75ba970fe11d3fb9171e4c4e16912342303f",
273
- "bookBody/French": "2fa6d6860a41aa602cfc2dcc96837dcc4a9b49abe2e91a7ce112d19e0de24633",
274
- "bookBody/German": "292f8b8994725f793cab4e6e08828f61ae74ad7edd0ce223b815a238b8b59d57",
275
- "bookBody/Indonesian": "ce09728c31c70efcdea65b07276d6baedc69104839c85939c10e9b9dbdcdc9fa",
276
- "bookBody/Italian": "a0a7b1380c208d45cc38ca4b9e464bf0dc6b320b4ec5d72e58f5b90869de270b",
277
- "bookBody/Japanese": "e123de3c1daa2e4895f4fc67cb6c8b41d65264ac7585704117b8f3ee3717e526",
278
- "bookBody/Korean": "333f9803c4b5813b45c5b33286ac68f3ce9d1bed937fb02ed9647ccfc255812f",
279
- "bookBody/Portuguese": "fe75a9c06150c014ffc42f37286c0b7ea7a8485cc16cdc22dfab83824f8e7878",
280
- "bookBody/Russian": "9a84be055bb169e754fd6d2cb57471514b7c26ae18af51f74e4121745e4dc818",
281
- "bookBody/Spanish": "8c3ef65d7d9c5e2b26e47e1b4af6d51cf1c13e6de6358e63725b3cd9f35466ce",
282
- "bookBody/Thai": "fc620f03c7f29f7dcd6237092eb86c0f3c0014e2835ac9b11f1f1ad72092fcaf",
283
- "bookBody/Turkish": "f97c739b348fa55d56cab4118719159fe20593379cc1e8b2137bc3abef136991",
284
- "bookBody/Vietnamese": "7811a568c2251dc8729e6412efc24e92aa0ddd8a63729c178f07989eb7b7bcd0",
285
- "kitSources": "f761e9ee6faa1a5175d7a78b96bf210a04fdba1087e794bbd71546aa5e56c128",
286
- "kits": "a51de56d6d7d790cb4a97dab8aefc68657ed871f88f76dcf5472d5b64c25335e",
287
- "profile/ChineseSimplified": "9ef69a3542ecff7f49d7ae17f5b57989bb38ca234f4f92ab3d75311d81bddf9e",
288
- "profile/ChineseTraditional": "4b97f98bb87b889c95d951396d031888e86f5c9da51224373ad4ac95fccb9a9e",
289
- "profile/English": "a00677503ddf6b8a8007e0899731a2b1764daa269c3f51afbb592fb7f1609fa4",
290
- "profile/French": "fdd9645596332f3c054f8bb84f087edcd30a18764eae2f3beeb6df1184c8b496",
291
- "profile/German": "7bf2ae6726924dbbe898b9c64a6af2ab9b23a0748499241462f520238d52306e",
292
- "profile/Indonesian": "5759ddbfcc8085cee4b27fcd8049781403166d29de159703044c8e9efa78766e",
293
- "profile/Italian": "89fa55a1dbdc641c44f3a4f5eb17445f7645cf6e1f4f06a9454378522da86bac",
294
- "profile/Japanese": "f9eb79c70de34c2e3223fc89725866268d879d525394b30595d7df3a893fd08d",
295
- "profile/Korean": "fc39d8bd033d773277ab084701e973907555dc63e2d5aa373cc458eda65b46d7",
296
- "profile/Portuguese": "944b964406b6ff1b40e8110d382d35a9e8d2b8eff32f8bb93c113669ca73ab8c",
297
- "profile/Russian": "3ccc973e86b02054de2a505cca6fd7b0cd2482e7ad9a22cc46b1363e8720c703",
298
- "profile/Spanish": "26fbe8c33a3517eafe74fe058ba0f6bd349d0369a0a42343b42ad71e3bb9ec14",
299
- "profile/Thai": "3302260454f2abbc6be8799a922a3820be697215283b74cf8846825b549f0c10",
300
- "profile/Turkish": "3a89929d3593e023a69d649ea34579a5dc4e1388954d2103142c414256718a91",
301
- "profile/Vietnamese": "6b1887c09b5658cbd65875bb7b8b7200d6facf17bd06055279e16b297c5ddbf1",
302
- "skillGlyphs": "9632d7cfff053ab34122d767ac3fc3292f975d80c0d559c47f3ec88d0b632eac",
303
- "talentLabels": "d4963cac5ad36e9fd3ce573d6943cc6a5050ddb19bdbc7431ecd6f41a1c3b6ea",
304
- "talentMultipliers": "6fcf7b646c8bf474fe54c8aaf7d5a240943b11bb69cdc1e197033d6d41dfd043"
305
- },
306
- objects: {
307
- "achievementText/ChineseSimplified": "8e9c8b105c4f33495b8aa0e74fb9f608f3d150baf84143b45044a519840e5544",
308
- "achievementText/ChineseTraditional": "91399d3fd8e5fb4088e1954578b879b7ac7a6d28e4bfa63acbadeff19283e714",
309
- "achievementText/English": "b63c4e2f318c85e84cfdd8a7890dfa945878c21dc8c1408b76f770f5bd3ce33b",
310
- "achievementText/French": "f3a95288919400a05ba57dc10e34255ac2d22ac3709fc4057500566541d42432",
311
- "achievementText/German": "7f79e9b6b562d65cc14b2cd166e90fd9785be4abc0e32b799aa6f3e7553f332f",
312
- "achievementText/Indonesian": "4f058636976cf50b12867faacab48b46a97b3254e2074cadbfd179809d9eb496",
313
- "achievementText/Italian": "fb74d006a23b43335839a3856194e8cacd7d6165a2874b0cfdfe6945e3e54c98",
314
- "achievementText/Japanese": "2f8187d05d5d03b2b3db728c6b3ed7d2938605f9bcd648635597df87f41f0c57",
315
- "achievementText/Korean": "249a6f008121f0ce3b124b5dd531a72b75a15da0b9329e08e2b739805f169479",
316
- "achievementText/Portuguese": "c37619b2eef42b5e74b9162de0318187b32b94a9f192af5eb1facfaddbfa68c8",
317
- "achievementText/Russian": "f3ad07bf523f497c42b710034be0d8d411b0d0161804024c15b1935683f6e724",
318
- "achievementText/Spanish": "17493da65395173c995393db539867224da919fd3f536c45619ba87229af4f54",
319
- "achievementText/Thai": "8fb693648d1c2d6483c7c3001676e40d12e4906ef46e058c2bc96624192bfe67",
320
- "achievementText/Turkish": "21361723739bef1c09578056e3088248ad75edf7a3c6dbc63353a3a905033612",
321
- "achievementText/Vietnamese": "497125f6b06f1e60085e368cfe9d7981a302d95d6b1bc588fc0b34d2cde276f3",
322
- "achievements/achievements": "7c7f40e4b506ec1e9cfc0f342fc0b7567f15e7bfcde0ab9f4e0463064111ab92",
323
- "achievements/categories": "7b6613dc8d42dd3ac0e450c689359e4f1468e94a04b09f4e0c6cdf43b8044d13",
324
- "adventureRank/levels": "f9a8c36124965dc44cb38a6cec97f52c9ac25b000e9f28089487868f5bc8a31c",
325
- "adventureRank/locks": "d795fde35ab386c57264507adff9bd406d5f722ba8d62d7e166b4859691797bd",
326
- "adventureRank/worldLevels": "7fe55241a3074470bfe9303d17584eb861dee5aa1d550e1c78a452994bab198e",
327
- "archive/books": "529e510a246f5ae7965fc5a0db19e4a7658dfedc5e26660cc2f19b469d2c5335",
328
- "archive/equipment": "08829bfb349b10e9f3d2e55d13acbe49a64b8cf9db9fe144a31f1a26b4711122",
329
- "archive/geography": "b8210d6c55695478d9149817e1bb0bd033430b5b54894d2280f5b506f02c72e0",
330
- "archive/livingBeings": "eb647931b54e2ef921dbc4819f37330545d96ca28c1f6a48c83c77233030f744",
331
- "archive/materials": "b115c5243487fcf6bbe112e20f5ce61b4b249770424c2f1b729549a5d2b6ee97",
332
- "archive/travelLog": "838306d844315547c5abdd1fc8e622a1c4e7656ba1b9782a539ff7181a1c49c9",
333
- "archive/tutorials": "b19a764a2b9f3f5d7c955edb6cdad76d95bcd7c89cee0939905ae011613378ae",
334
- "archiveText/ChineseSimplified": "2695e5e3880941906271b6ba0725299be78050d1eb8b02997f69aaf8d12d9931",
335
- "archiveText/ChineseTraditional": "f96ccbce9503895c3faa095ff62bd48867da6c79305a9f1fd8406a356ddf764e",
336
- "archiveText/English": "2a6f0751e7914d6f0a3f49fadedc5cca70284805c967ba2564a4285b06ac92d6",
337
- "archiveText/French": "f97ce09249fda468feb5252622e6dde5d34e39b2178609fce94648eb5b767b8d",
338
- "archiveText/German": "b8c1cbbe3a23d5a08bbb048ab9c69d3db1af65ddab211009bf9fd1d5a115b595",
339
- "archiveText/Indonesian": "2c6d722c698c9b031a009775876b0b83b654c23b64b4e8e0e81581cf441e0c2e",
340
- "archiveText/Italian": "a6418ead2f147d2e013283394e4e701998c11b32ff96f1b97215b00cae7a6634",
341
- "archiveText/Japanese": "1289c490520cbb360c854ca0ec448d60e2d08f6c7c5680055fdf2c5c177f3669",
342
- "archiveText/Korean": "1ceef244416cbd54a15fb109265337f96469c0c00dfb276fea6db065fd72935b",
343
- "archiveText/Portuguese": "e1c46fcda681c72dcb783d11f65a7c0f3621a668c80dacdc170eae37de244565",
344
- "archiveText/Russian": "56afdd96a72204b670448beb9b4a698454df6f3a04987e3d1086cc5abd1f96e5",
345
- "archiveText/Spanish": "1b8aa0937f72c16e02a9db13e86859c60742a3b4b2fd5a61712d2eb41a67ed4c",
346
- "archiveText/Thai": "1f4c1de09ea35791ddf76c7a275723717e97b057ba56b7978d4a01d94fd8fe89",
347
- "archiveText/Turkish": "1b2e4bfe9d817469d818d5c70487c302eb0fb1e1ee64867129a180265564c257",
348
- "archiveText/Vietnamese": "f7cef631d98933b2c67236ce1b51e4da1bc803a07128ffec0a95f2ce9abca6c4",
349
- "catalogue/catalogue": "7bce4dfdb9f9105474f87ed8d5e756a5fa55e4746b3012699aca249e75fd515d",
350
- "chests/fontaine": "f22edb339a96d3199a03a96be3d346b74758f0bd54376862f17646ec1482bce1",
351
- "chests/inazuma": "a059cd7c4da1ddc77227fca2347e66a81304b4796aebdcc1c9ff1ed79dc9d19c",
352
- "chests/liyue": "8e688ef2b5cc65736ada99b95eed02178a06ec015a1772c1fb5f4a2b1a0af411",
353
- "chests/mondstadt": "3cf6cd3082aac5063f76149a82efe28e58444e855d387ade0ff4b73152412474",
354
- "chests/natlan": "068a2b24a7ca9f511f6081415bbe3a648b375726d9ac42918b34ff4af72913d0",
355
- "chests/nod-krai": "07a88455cb2fa7b890a1766ba2416fa37965353b4d5e281c1dcff32ef3be325b",
356
- "chests/snezhnaya": "7159627eb01e39aecda86cbb22188bd15da041267b56f4c2e427efc41d04c0a3",
357
- "chests/sumeru": "0b6f9462c3a4ebcc0a96b719f25bebbdf41d52ef82fb42494716b8cf5e43b67a",
358
- "commissions/mondstadt": "9a2d2db80cc49e9af39679a920ca1d3a7724ca305ea52127efb5d691e7c96279",
359
- "cooking/processing": "ee57ac226e5dc4ce64dfb79cf4afdd8ab753ec771f6b76b11a9184169d24e48d",
360
- "cooking/recipes": "272406135e89f80f2717303441c31fe236e777557355ee93ce765e7074616351",
361
- "crafting/recipes": "7d2547a58895cc049cf2651217c4909e050ad62e62ade4200900887ee8d58b7e",
362
- "enemies/kinds": "ca458f41df34b092b9c6da305d9f89cb3b8bde134d59c3efdcee81c91dbde8cb",
363
- "enemies/levelCurves": "86051813dd8b579aebea20bdfe184f68d22a8cee5249512d910a95d5b66268c8",
364
- "expeditions/limits": "7ad8f3e4d7b18301179793d164cdfc0ddf795bb95e0f2d78ea18468a67dbd94b",
365
- "expeditions/mondstadt": "063fc92281db7244280795a3dbe2a52fa5ea3a797e04713c2810be8b778d02ab",
366
- "exploration/mondstadt": "072e9e55c008a1777955447ea7529b67ec65a46ecc6978d94f1004044b2fca76",
367
- "fishing/fish": "86d01ff30a9c7f6b3d668bc37db836adfe897b2616167875000da602aaa2e5f7",
368
- "fishing/points": "625c11eba2b6c36c5298d06adeabecc022bf8eb122345f8360f0b5c8997c1fad",
369
- "fishing/pools": "101e1002230234d457913c0371c099be11adf9f9e08d58c5eb88ffdbd5be80ce",
370
- "fishing/rods": "00d03fe91d0fd1c9b58615f1263575860215fe2ce1f66f2c2461687221b79cb5",
371
- "forging/recipes": "a966346792fd06e53feb6e82bbe683e36a204a48e05f4ffb2fea7ce313eb4cd5",
372
- "friendship/friendship": "36fa6c56aa02478e691f4f089a46e13608fd6a475ef3d52d7a69aad0171530bc",
373
- "frostbearingTreePlaces/mondstadt": "06b5f101bcff311a74a7a6e2cbe66fec2bb10ca62aeff54698028ab012e11779",
374
- "gadgets/gadgets": "6b9c64644372b09dc1d9a1ba1e38bed6977eb6f819f9f9981c9d98548309650a",
375
- "gathering/fontaine": "3dbd14abdfea600e0d07053d9136484b364896441d20be1f7ae27209151c9d38",
376
- "gathering/inazuma": "2d3445226d6ea92ba762fa43dde89c3327f7a728bfc9c33f273e97ea8adbe7f0",
377
- "gathering/items": "3daec2be8486847e476bb547b68149fab7f69232ffe8b9079be749c75ee61b00",
378
- "gathering/liyue": "91ed99aa148a8a4f7a25c3bd2b3d4052395ce73723752dcf321b7b57a389b760",
379
- "gathering/mondstadt": "df6166d23f8a5cc20032073cf0ad52942f8e892c8b69da8581ce6ea7090c530f",
380
- "gathering/natlan": "578f6c711dddeac475912f77908f62ce7ac4a54e6462e6625c634fe978bdc9cf",
381
- "gathering/nod-krai": "d1d2735f119fae870d98db716e98f0a5fb1238cb45bbcfd6520345ff73557cae",
382
- "gathering/snezhnaya": "910c99a0af27f08f845511d1646ef63f226880c07167565c0f7d2517292f93d5",
383
- "gathering/sumeru": "b6e1c773b8effdf46f9ebf4ad04c803f26e0f3c7ad9f838ed7cd8c9328f20c09",
384
- "gcg/deck1": "b27261a046167ef66f4135f8fadc991d536ecf11dcd449ce87feb26eba0ec188",
385
- "gcg/deck11002": "d4c01c9a5146aedc995938460d8b0315d07512097b825c9c14627a6f90de065c",
386
- "gcg/deck11005": "bd6a3f04c7274bb33cfdd2a28ef0f3cb47c09815c5ab9c4c3da8f659e15fa940",
387
- "gcg/deck2": "4bbd66298fa311382bd7a1ad1ce5533dbd6d7d31bef92ec074e91e97476b53ba",
388
- "gcg/deck3": "31a59b9a646cb847b9f01f581d19d8fa7849721b544a82d221e49f186476fc54",
389
- "gcg/deck30111": "315aa6a4c8f64ddc304180de94bfbdeb079d054434692c9bd3e11c00629546b4",
390
- "gcg/deck30112": "f3f9032b19d1e74a28e8fbf3862e8f3694334159b2b845663fdfe246cea0370b",
391
- "gcg/deck4": "a97427bbb55f0e599cf3416fd2c249e32354dea482dcdb75464a8150ce6cd2f7",
392
- "gcg/deck7": "399d4bd918e517a39f8bbffddb8c9089fa48bd641422575fb69f011127b2d955",
393
- "gcg/games": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
394
- "gcg/standardRule": "000255b49dd59883e3e00b6526e81b95ac74cb8d0a1965e46a6f223a0a2a6634",
395
- "gcgText/ChineseSimplified": "70d613fa2a50c290c9596c4846fa005dfa7697a420dbaf160ddea85b9f13691f",
396
- "gcgText/ChineseTraditional": "753b7cfeb53122f1198ff63a605174f913618adf2e24ed41603efb2cf7a33139",
397
- "gcgText/English": "133d9eec483e3d7ed8f203ab9377eb4a50f2c53a1f511e5ab293237934ce7cc9",
398
- "gcgText/French": "ea008aeaf48b16501fd863e7a930d25b49eab69ca4d38964c89474c955c5a9f1",
399
- "gcgText/German": "19d09cf948963b5ccdf04e952e937856243f07b0b80fea845a55302513409761",
400
- "gcgText/Indonesian": "02c7985c9d96240bb4de27f460be8ea90f352ec4fc8dbcca6ffe339041d29008",
401
- "gcgText/Italian": "07ebd7e0037f9fd5c1d25bb21762542d183069112d4cccf53eaa6c9d4907eaa9",
402
- "gcgText/Japanese": "ab9a3bb0a2e36bccd9e09c890c4290e0a07e52225ab6f90de85c4f241c9956b7",
403
- "gcgText/Korean": "c96cf3a6397faf4ef479392681e971bb9b4c8b7a86119d1809f06b824cc17310",
404
- "gcgText/Portuguese": "3bcb3d71af67a817661f5f11eeb7e3e17846a1e4e0d1621c64e6365146727ccc",
405
- "gcgText/Russian": "43df00723345a569d44805e96bfca744a388aee5feb37ae999a605585533a334",
406
- "gcgText/Spanish": "e1b958aab1c49ec0fb05c17545a6ccc59e9590abfbf3c15a51cfa20b7422066c",
407
- "gcgText/Thai": "5c828305041dea6003fcdada95f635feee54b3816abd064ae05f41b44ae62c19",
408
- "gcgText/Turkish": "be13bc62d9c397058c1509f612a525a4bbf4bb931fbc821014c4a5480d6bcb15",
409
- "gcgText/Vietnamese": "e6d5202bc0c069836451dc8873ecef55d65dc274b1b84c93b9a88136c124e4ee",
410
- "ground/fontaine": "0589e098b8b75ccd96fb17f6af9689d89a7dbab5753f3cf0cea3db2d90838a61",
411
- "ground/inazuma": "35121ac9051de32442f58b2c62e732d45236df6cdab9961831a4db80c30fbe72",
412
- "ground/liyue": "93c700eaf69423a8db42eb5164e12f0138d483c20ebae98025c17ab0e201a95e",
413
- "ground/mondstadt": "d46c78463b2e6f23e1a3a9ed838470984a492cc632fb7ad600d01a188294cb1a",
414
- "ground/natlan": "13774d92632d4e9bd5316d236aeb2ee060ab4425f5b7148c32240ec5f87f0d41",
415
- "ground/nod-krai": "d0d1cdbf36406372996f99b54750c0028ad25f45bf1cc45a303ea8347d8edae0",
416
- "ground/snezhnaya": "d87923cba3cbeeb391b092d8ed7e826455d8a1871415267e24e8c2940d1429dd",
417
- "ground/sumeru": "cea11e841e40c2bb7334790ea2675661f6e072cea1f99dd132a24ab5ed4a56c7",
418
- "ground/windrise": "aa6f10e68b31aaf72c4f6b94fd72caa064e272cc02cd9463ca77f3040e5ceee6",
419
- "home/blueprints": "14eec1a23adba1a3397456d83471a2d76d8638b414f8a917fd1c2388a54ac74e",
420
- "home/levels": "ef2801f4ad2be2af8d9eaade9f8a4c9c0f0dcd7e456b3e34cf982269f9314410",
421
- "hud/interfaceRects": "c5b05d58ec2de204b4a2cc488cb0cbabb2aedad4581601a183456df4e6cdd87e",
422
- "imaginarium/difficulties": "0e78b6de89bf07e73e684e3572bec8887e881d8c68b1d09df4fbea7c3a41127f",
423
- "imaginarium/seasons": "ab728a23a886f96814db4955bda8ce5249ae40e33b1221ee505a5a75076db20b",
424
- "items/materials": "3ec613b2559e2b503f5e5cf91db55ed47d0a2abd02024a3bb7438d7801276048",
425
- "items/reliquarySets": "d13bda3b504302261a7d3c184304391c64ab8845e2414fe6dc30f834511a8c15",
426
- "login/ageRating": "877295e10d96634920d9d1583a10141ea730c01f5b1bee4389d712ac28551e3a",
427
- "login/cloudLayerTextures": "e060aae16bc782fa7a681f087c989f50687ab34d1fa20c58a3b968551d60466e",
428
- "login/clouds": "dfad60ed52fb22816bcd2de04a589fc3b8ddd9c71e7964498bce013f1a2e5985",
429
- "login/door": "d8d9e7f1aea8c38cceeeda78f1938cd16cc88741763bb56810da6381964be9ee",
430
- "login/hulls": "c72a961fd9374f6b5f0a27b55c15b6dacc73824f043b85e9227d5308d888dfb3",
431
- "login/interfaceClips": "0ca349073f22513062f7789560d7dbeed02581b2ac7a5f2236896f4babc0a9f4",
432
- "login/interfaceRects": "493e210c8929aaf1dfe176c3cb3964c3fc338fcdfc7ade83050ab43a40b7f7e5",
433
- "login/music": "060df2b95844a09d4ab3f283f95cecd91e177da1b64594311a5d998f69af187c",
434
- "login/paving": "a92ca505bf76aca8793b1df2e553f09b29be291878b92a25e5aaa923591d5753",
435
- "login/scroll": "46f5590bf46645619b6a2b2573403b5a0a1ab1b2cf71929456a604a2121db9a2",
436
- "login/sky": "df3801d5cdce5b88d57a8d263bca13b47d376992b6010a7aface999fec34faa1",
437
- "login/sounds": "5523c4b4cee27020c460a2a08a930025fe6b69c05e10ffada78f373da3b8df97",
438
- "login/stone": "d912643bb799d5fcb9cce87486aca513d495a14cf3b1a53f3f272c968acc4076",
439
- "login/stoneLight": "6a52402c91cd589c4df18389bffda0cc49e5afb65eaf4f36798cdbacb4924b57",
440
- "login/towers": "4d7c89359c5e979c1030a3d4df1e61110c221ae8df2d43977e45d5379bbb1cbb",
441
- "login/walkway": "7ffee328bf0ef48dfcc62475d5573f0479a2c7fcb789cd9cf8340cf3dde2cc4c",
442
- "nameText/ChineseSimplified": "206d914dde1b649c080f1596f13565b68723779255c9dc33622a50e450e21e18",
443
- "nameText/ChineseTraditional": "c96fcedfcadf069ddf9c840485beeddcdeb4cce8f6a594ab1592f395cd7db150",
444
- "nameText/English": "3767947163b9be6604efb8814c9c42f66af16d8f5adb34c987090d7d185a0b12",
445
- "nameText/French": "0ae3f4eac4fe934cf5905fc1e72bb359c541b47f6deb98c206c08e2cc9d665d5",
446
- "nameText/German": "5fda4d1a76507aa34c3dd19fffd066276834289763ddde1d4b4c57f2efd8820b",
447
- "nameText/Indonesian": "0f427989cd95ecf218dc7769d7a346032c46b527c882ec642adc5e54268322d6",
448
- "nameText/Italian": "f4720a66566b9e09ed5e24a0744b3faee6b79a01d942417935975d87aa627d71",
449
- "nameText/Japanese": "0c431cd7320771ad3cf7d3a2c981eec615cbaa16c13f370573a7d5f90f6719a3",
450
- "nameText/Korean": "7c9d33d0b25523a7852ac5d042ccb7bcbe2a3d5f1c3ca6d4609832d1ff08e371",
451
- "nameText/Portuguese": "77450a8c0f10f1bf86e0c9e0dd21b68511c337b3ae769ab9cd1969f264ca56f2",
452
- "nameText/Russian": "dccc4e59c42fc221996940390ad7a024856ef80ee41cdf56f75a77d69f317897",
453
- "nameText/Spanish": "00828922c5d0fe0d63bfe3a3d75e67bb686a3ba1215972873bc4450debf85c4d",
454
- "nameText/Thai": "cf35e662b7d9b3d4f93b6042c81180d00a8d876f6f08da58a0aa967a9ce51c6a",
455
- "nameText/Turkish": "81e270e84cdabbeb7f9dae2264ea4ea8a76e136f163895eaa74146294bc844d7",
456
- "nameText/Vietnamese": "cc65fbd184b9c61c9e147242815f66afac0d317ef8a50cfe567368be53ab0d1e",
457
- "oculi/fontaine": "66d3eec9935cd4a213596f32507c8ef1a802ed13de7f7261746f4288173661fa",
458
- "oculi/inazuma": "a2adae5f9297520f2da3be8b57f07fe945ee724cd7da05de8ef6657b43c4cf39",
459
- "oculi/liyue": "6df0af9cdbfd2253504fb0cd350cdb61e1465918298ee346fe2a7df99c7e5d5f",
460
- "oculi/mondstadt": "94aebab976d60450e69d44ebf179f26176f6dfe69c1be8434bd1eb79b6484742",
461
- "oculi/natlan": "7ac66600c873bfde8fc66f62ade1115eae406390007acecccd7dcb8996c32068",
462
- "oculi/nod-krai": "ed8e967d379f0561bc63ce3f85763dd435918649575127e981d8ea8b17ed52cc",
463
- "oculi/snezhnaya": "c9ffcc01ba38475df05a05362fdf98e6692340a5c8b4eda4c98f465a0022edfc",
464
- "oculi/sumeru": "a09870b872aa67507869c88bb71a19a99b83232eeeb610cc91e5244a01807820",
465
- "offerings/frostbearingTree": "b0a9a203001bad9178356cbfa4a137bfaf70cb88fa79b442bca9f9c42305685f",
466
- "puzzles/fontaine": "ba1325a038478b80afce0ee55178db5bd5f95d45b20df46874e713f50d08dca0",
467
- "puzzles/inazuma": "8c4c08407c6a41d394f06b777686f190f45c0159737cb95033ce613625dd8cb7",
468
- "puzzles/liyue": "752f5662b50e3785aae22b03bb3989df42bdf99b30edcea97b8c8406ecf4f810",
469
- "puzzles/mondstadt": "f7812acc6bd4dada2f6f97dd00d1b047b12aa0f4d86d653c6efc590ecd315b4b",
470
- "puzzles/natlan": "202ed01b368afe968fbf025dccfa183cbcfb69d6de3788ca34c72d32bbde8ce2",
471
- "puzzles/nod-krai": "048e3554215274cc9804db241db1f92c56c4b43685dd053c7615b2609267b9ad",
472
- "puzzles/snezhnaya": "a39236b232948cc08c9af6cc66d85f7ea7c40d1d2904603c3e1e805f524d6637",
473
- "puzzles/sumeru": "62fffc13e9531d6a99bb4554ea46046297b64a5587fb1699b3d394112604ba4c",
474
- "questText/ChineseSimplified": "1b1a2376030905196f7a17792bf3d2a7b77a9e6839d0a59d83598a9970f4380f",
475
- "questText/ChineseTraditional": "992d851fbc907d81d175a0940d4c28acc4571eacd14bcb78941a09aa76bc770d",
476
- "questText/English": "c9394bb4155007ee7ca62e7ef73aaa4b6c5e084a779b50a4977cee76190b57ca",
477
- "questText/French": "2450b4001b2c2733f703c8010c92ce9423bbe9f9efc0a702cec218c407fc709c",
478
- "questText/German": "94cdfdd5ba01d3bf01843cd972a5288da323423f47d3fa90b6cc4eb03ed23c0d",
479
- "questText/Indonesian": "d28c0aaed7881ea315cb84ab75733b24787919e2a1866a227b115ebc9b58ed02",
480
- "questText/Italian": "51fc84034a1d49da32ec1dd28f32c0ffe362a5636538c68cf64998626d1e4da2",
481
- "questText/Japanese": "61a6619ce455e3212dae4252cf3215ffd4e15cd0878e48494d94e66905867261",
482
- "questText/Korean": "56abd3591392c661ad3ebbdd20d4b113ff4dc28e783ddfb9a0884adb9829d3b6",
483
- "questText/Portuguese": "ab909db40d5a181a60509c2ab7b03ccd4982cfdc5f61f0676c6656b70758245b",
484
- "questText/Russian": "12aef2c5793808d61a2a7e9a2c30a4d067500739681dfb446a5c8e000248dcb2",
485
- "questText/Spanish": "27d6fd05d6468fc92ece6aeb4bc594ebe5279bba8b05c9cacbe88632db316e9a",
486
- "questText/Thai": "d1aca32fe2f08db6506cec63b02a19f2f67570e1c2a1cda8a05f7d512863e6a5",
487
- "questText/Turkish": "2b1c1010e762d629d58d57454b06c14247bdbc414069dab8863ca8e5f0c1a072",
488
- "questText/Vietnamese": "17ad71de5a7f8007d7a2bed4769594a6a157b918aba3198c09e5f298c648d860",
489
- "quests/351": "cf34bcabbc4a01f5c2972d09272fd2c86f569d8ed0996c1958bf164ff87d5486",
490
- "quests/352": "36596ceab3f7bf50df0fcfcfd9e2e8d9bc86b5fd14eb5f3829e5604ab2e198a2",
491
- "quests/72154": "843ceee7afbffc24bda4ff6f0dac948e40a6c8f325c8fd03325c346daad3aa16",
492
- "regions/fontaine/palette": "06b96950c3111634b54c7552a0c8b2fd65a8e05dcdff6808bb2905b36356a7cf",
493
- "regions/inazuma/palette": "dac3221c8e07b31b400af4897c019f66956b690994700fcf45cc1d3d4cbda57c",
494
- "regions/liyue/palette": "d50a258777fd304d25f3d8943d7791685253e0e081cb49d5ffe420a7b9b3a0ea",
495
- "regions/mondstadt/palette": "783234507e9250d8c12dc5b8580c7945764729c9ff39fc321ce63f2454d607c9",
496
- "regions/natlan/palette": "d1ee2aaa7b36ae21dfdd4c9ec0e7b4153c37853887ba08501384deb187369ebd",
497
- "regions/nod-krai/palette": "8d543f35b0b9bda676604d000cc3ab90f20106ef237986a10212331a46ce2022",
498
- "regions/sumeru/palette": "d06fcadcf5b1ef351f789b8c1cd333eadb5015cc37fd0c800544f53b1ddbc2f8",
499
- "reputation/mondstadt": "374ea4f6e80cf6785a609b6491ac6086d6ef65eeff24786b71facd4ea3c09201",
500
- "sceneGroups/scene3": "a2511e4cbf420a99ba5f8a9b8fd4e5af59f8a8d8abcb37db0e910cccbf365c20",
501
- "sceneNpcBorn/scene3": "561633b72271c622fee8bb6f2a37de3418a8b140c606e0a1b14a46c606bbcc59",
502
- "shops/mondstadtGeneralGoods": "6525e094b34e2de80aef53ed2be399225864fcc15eb36d29a4839b76efcfe2f5",
503
- "shops/paimonsBargains": "14a1169b758639d87e120f0e07496520dc57633d9f1a1e6f53e013eee4ec6e6d",
504
- "spiralAbyss/floors": "39807c974fe846ff76e2c9cc3490a4d7104cab22d02304793c447065566fb996",
505
- "spiralAbyss/periods": "2a726b638c312afd30260e1559d1223db98bbf76f6350cddd853a0058763866f",
506
- "spiralAbyss/rewards": "0444f59252a5b56621686a0969cbfe4ac105ba551275da15ef51e360185965fd",
507
- "splash/titleLogo/ChineseSimplified": "75c36da077d899a9650ebc768fdd54b13d0574ca6146b5d47769c8849aa156f3",
508
- "splash/titleLogo/ChineseTraditional": "83c0c7d1bb72bf5435185c314431e9acb007e04dc8116b1a2ab10fc8eab6510b",
509
- "splash/titleLogo/English": "5196c5b8680f25921c3a23367501449fdbcfd81f05563d055a1aa56dd6535d59",
510
- "splash/titleLogo/Japanese": "f7eeba3a4e2c6333aaae40383a89372b72245e1be0ba6776b1243bfd2f0a9c65",
511
- "splash/titleLogo/Korean": "969eae242e84e8486054a4881a685749e20849d1329c31f62cc70bd1788bf234",
512
- "standingTalkText/ChineseSimplified": "1b0b155b034d65224b2830160079f9285aaae571a38dd6eb3f1988398f7eb98a",
513
- "standingTalkText/ChineseTraditional": "582f26b177d69d1cf5fccc8db1b7ff6a2a358bb9f3616a85c27873fd8609bc89",
514
- "standingTalkText/English": "7df0e1909b6d25697d121a20b25ec5a838e9f90ee91f9f3abf714d50bde84f4b",
515
- "standingTalkText/French": "51cdd6c76562704b596f6bfabffa0077cc46f9b79d835c326c0c2ad5930f25d5",
516
- "standingTalkText/German": "dd0a37c8ecc18d557bcf02d3137f95bbe946429721ba4723e4bfbdd17b1b2169",
517
- "standingTalkText/Indonesian": "5b035d1ee9aaa06ef198025a18046f7efe4ee4aeae27ae9700cbfcf24b16ec95",
518
- "standingTalkText/Italian": "a13580c82c5b5a511e61859152290547b9ebcc75a4b276bd9999143f65fbf4b9",
519
- "standingTalkText/Japanese": "4d0ce41a86789052fe60caf30ba276f633c1cb15b62d6ed94b5e09428863831d",
520
- "standingTalkText/Korean": "d3d4dc678c17a7658adb3a0a7e15ac56d172e680312beb67630aab3afd4d5e55",
521
- "standingTalkText/Portuguese": "6a633003d242fbedba8a74648ecf121cb6b9a47a73fdf17ec30fa487a681e652",
522
- "standingTalkText/Russian": "9ae93c38d9e4771144187231154095063063a3fc8d4c32047441d3af14b80513",
523
- "standingTalkText/Spanish": "06cf1eafe17ea39f5324901bb647d081bfa686c3f362bdf4f3a3c73a3d43cea1",
524
- "standingTalkText/Thai": "632c502a56b9ffc62657c25c086aca2ea89224dd41d6a2d10a4b79178f3df185",
525
- "standingTalkText/Turkish": "d13a0e4a4f0b149e81a1ff6272ece7e546a2a3d84d9b85d796bbdee406b0d4cb",
526
- "standingTalkText/Vietnamese": "c625c6ec9819e062de58d917ae9a130d55beffea48f674da59abb849391c6a29",
527
- "standingTalks/residents": "95f5938921a3291cdb35c280946ce6e4fd2261a0b4dbca53d3a548f776f675c4",
528
- "stats/artifactExpMaterials": "502dffdf8454d5b2ed81822b10aad4e2fd1c65055a3bf04e4b4f555b717ec54f",
529
- "stats/artifactMainAffixCurves": "1d6960ed077043c1fb4df6160c31c11bd217bf7a8eb757a02ddd09905a3301d7",
530
- "stats/artifactMainAffixPools": "c0dd2109e274968efa535a3bbe71b38e0110cde8248ec8296723882f6f546e8d",
531
- "stats/artifactRarities": "e9decdd67f6b5e4b564f8ca71ebbbb5330f137b3d1390f697db518b11109f474",
532
- "stats/artifactSets": "440b5ba0e204f565d9bebf8e16ab993e83ad4f50523f25e49e098ba81699e7e3",
533
- "stats/characterConstellationKits": "42a7009c6da185e4d0304dbf26b1cea451a51938b78c4e3f254fdf2ecab983f1",
534
- "stats/characterGrowCurves": "5d5cde0b0c2f473f7375248e49c330b75653633aed5e72665b5bc454503ddfb4",
535
- "stats/characterSkillKits": "236b499c1df0ec5d8f73ba3bd3ff73620597f21d1630b7fee1f2ff2736adb266",
536
- "stats/characterTalentKits": "b80a7fa207edaa053eab284ed82789de44c98fbceb7bd7ef6a7787c22692714e",
537
- "stats/characters": "451c4740d49c1be48b566c83e82e0e074af9c3d99fc9e51a31753766e0f00246",
538
- "stats/talentUpgrades": "464d5cde384971f3df5ebde0d585cfc3daa01858964d92a0cc69024be155a8a7",
539
- "stats/weaponGrowCurves": "f4327c1e523f869582066c02b4224d8e8ffe61b371acb5a039aeadfa3a487bcb",
540
- "stats/weaponLevelRequiredExps": "5eba0c9efb4af69a4defcb2ca4d54b8c6c90a8d0e0a9b3fd78971d5471d20cf2",
541
- "stats/weapons": "176c1ebffaee08c9d5f59009f90d8070f79ff2c8d9d4b56e2508ff2607f80393",
542
- "statueLevels/mondstadt": "7278dd3b97c7759b7306265d919a4de83ff851a835f0e68a2a3a73b39832d9eb",
543
- "transPoints/scene3": "d06ceab423d9696fde9641bd151a52c57530678213e1cb4b59f3ef58b546e284",
544
- "wildlife/fontaine": "379a322c223c2ae109848c042ed6c4b2bd50549cbe36c2dc58ff5960d22f7e85",
545
- "wildlife/inazuma": "4c94f5c5825545ddde5bff3f942f0949bef3292637ee1fd77aab0f6cbfe73616",
546
- "wildlife/liyue": "e33214459f6c90500f95c4f9bfdab302732571b17fcfa08c0d2e5792597594f4",
547
- "wildlife/mondstadt": "b64a51c236715ef971d2a23a8e56c8370ea08d4b67cef6b5abe03081ac378027",
548
- "wildlife/natlan": "62b242252e952bc75e5015f7e70f24112f467eeb65f48bda46f2f798169b3d7f",
549
- "wildlife/nod-krai": "50e1124ae38ee3ab1d2c04c6942f1446962c07ffc9e20df312f6153636207125",
550
- "wildlife/snezhnaya": "816a7100cf6393e308e00226eb04f3b34f6af5ee756b1b8241eecf56b9294301",
551
- "wildlife/sumeru": "3f50e2a193a19d2b97985e67d4da907017c4468492345936ff142e8c6927675c",
552
- "windrise/ground-layers": "fdea76ec911e840878bff3970065a868f545aff7098012c052251a68358449d3",
553
- "windrise/oak": "b38005e02451a3befd683fe4866b211a2fa5d40d98e7b286b1f0792f28136dff",
554
- "windrise/paving": "8d2d04e7783cb05f8642fcf8730963f3d252532a79a816216e0f380c233467fb",
555
- "windrise/plants": "946a6e8ffbec3108e329f8b117102f33e66e3f47a69bd34808e8f4b6003d11f6",
556
- "windrise/statue": "2c346fc0de7b55f99d25437947864f0db3921662d4952277b9513593b8fd599b",
557
- "windrise/surfaces": "3c3b88800bfee0a250fa09106005e0367e0904777730db964127f5bf987e82ef",
558
- "windrise/water": "2e046f06a32db5b818986f6c5df74497d08b105d70cc05e256cc07531e0b6768"
559
- }
560
- };
561
- //#endregion
562
- //#region src/services/shared/fetchJson.ts
563
- const fetchJson = async (url) => {
564
- const response = await fetch(url, { signal: AbortSignal.timeout(DATA_FETCH_TIMEOUT_MS) });
565
- if (!response.ok) throw new InvalidOperationError(Operation.Read, url, `HTTP ${response.status} ${response.statusText}`);
566
- return await response.json();
567
- };
568
- //#endregion
569
- //#region src/services/data/readGameDataObject.ts
570
- const readCachedGameDataObject = createEvictingPromiseCache((url) => url, fetchJson);
571
- const readGameDataObject = (gameDataBaseUrl, hash) => readCachedGameDataObject(`${gameDataBaseUrl}/${hash}.json`);
572
- //#endregion
573
- //#region src/services/data/readGameData.ts
574
- const readGameData = async (gameDataBaseUrl, key, schema) => {
575
- const hash = gameDataLock.objects[key];
576
- if (hash === void 0) throw new InvalidOperationError(Operation.Read, key, "is not in the game data lock");
577
- return schema.parse(await readGameDataObject(gameDataBaseUrl, hash));
578
- };
579
- //#endregion
580
- //#region src/services/character/NameTextLoaderMap.ts
581
- const NameTextLoaderMap = {
582
- [GameLanguage.ChineseSimplified]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/ChineseSimplified", textChunkSchema),
583
- [GameLanguage.ChineseTraditional]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/ChineseTraditional", textChunkSchema),
584
- [GameLanguage.English]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/English", textChunkSchema),
585
- [GameLanguage.French]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/French", textChunkSchema),
586
- [GameLanguage.German]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/German", textChunkSchema),
587
- [GameLanguage.Indonesian]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/Indonesian", textChunkSchema),
588
- [GameLanguage.Italian]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/Italian", textChunkSchema),
589
- [GameLanguage.Japanese]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/Japanese", textChunkSchema),
590
- [GameLanguage.Korean]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/Korean", textChunkSchema),
591
- [GameLanguage.Portuguese]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/Portuguese", textChunkSchema),
592
- [GameLanguage.Russian]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/Russian", textChunkSchema),
593
- [GameLanguage.Spanish]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/Spanish", textChunkSchema),
594
- [GameLanguage.Thai]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/Thai", textChunkSchema),
595
- [GameLanguage.Turkish]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/Turkish", textChunkSchema),
596
- [GameLanguage.Vietnamese]: (gameDataBaseUrl) => readGameData(gameDataBaseUrl, "nameText/Vietnamese", textChunkSchema)
597
- };
598
- //#endregion
599
- //#region src/services/character/readCharacterIdNamesMap.ts
600
- const readCharacterIdNamesMap = async (gameDataBaseUrl) => {
601
- const [characters, ...nameTexts] = await Promise.all([readGameData(gameDataBaseUrl, "stats/characters", z.array(characterDataSchema)), ...CHARACTER_PACK_MODEL_NAME_LANGUAGES.map((language) => NameTextLoaderMap[language](gameDataBaseUrl))]);
602
- return new Map(characters.map(({ id, nameTextId }) => [id, nameTexts.flatMap((nameText) => nameText[nameTextId] ?? [])]));
603
- };
604
- //#endregion
605
- //#region src/services/character/readCharacterNames.ts
606
- const readCharacterNames = async (gameDataBaseUrl, characterId) => {
607
- const characterNames = (await readCharacterIdNamesMap(gameDataBaseUrl)).get(characterId);
608
- if (characterNames === void 0) throw new InvalidOperationError(Operation.Read, String(characterId), "is no character of the game's tables");
609
- return characterNames;
610
- };
611
- //#endregion
612
- //#region src/services/character/getCharacterPackFilePath.ts
613
- const getCharacterPackFilePath = (path) => {
614
- const parts = [];
615
- for (const part of path.split(/[/\\]/u)) if (part === "" || part === ".") continue;
616
- else if (part === ".." && parts.length > 0 && parts.at(-1) !== "..") parts.pop();
617
- else parts.push(part);
618
- return parts.join("/");
619
- };
620
- //#endregion
621
- //#region src/services/character/resolveCharacterPackTextures.ts
622
- const getMatchKey = (path) => path.normalize("NFC").toLowerCase();
623
- const resolveCharacterPackTextures = (texturePaths, filePaths, modelPath) => {
624
- const modelFolder = modelPath.slice(0, modelPath.lastIndexOf("/") + 1);
625
- const filePathMap = new Map(filePaths.filter((filePath) => filePath.startsWith(modelFolder)).map((filePath) => [getMatchKey(filePath.slice(modelFolder.length)), filePath]));
626
- const pathFilePathMap = /* @__PURE__ */ new Map();
627
- for (const texturePath of texturePaths) {
628
- const path = getCharacterPackFilePath(texturePath);
629
- const filePath = path.split("/").includes("..") ? void 0 : filePathMap.get(getMatchKey(path));
630
- if (filePath !== void 0) pathFilePathMap.set(path, filePath);
631
- }
632
- return { files: Array.from(pathFilePathMap, ([path, filePath]) => ({
633
- filePath,
634
- path
635
- })) };
636
- };
637
- //#endregion
638
- //#region src/services/data/constants.ts
639
- const GAME_DATA_BLOB_PATH = "genshin/data";
640
- //#endregion
641
- export { CHARACTER_PACK_STORE_NAME as A, WHOLE_ATTRIBUTES as B, ADVANCED_ATTRIBUTE_GAME_TEXT_KEYS as C, CHARACTER_PACK_INDEX_PATH as D, CHARACTER_PACK_FETCH_TIMEOUT_MS as E, COMBAT_TALENT_ORDER as F, chooseCharacterPackModel as G, Attribute as H, ELEMENTAL_ATTRIBUTE_GAME_TEXT_KEYS as I, getCharacterNameKey as K, MACOS_RESOURCE_FORK_FOLDER as L, CHARACTER_TERMS_FILE_NAMES as M, CHARACTER_TERMS_NOT_JAPANESE_REGEX as N, CHARACTER_PACK_MODEL_NAME_LANGUAGES as O, CHARACTER_TERMS_PATH as P, TALENT_START_LEVEL as R, chooseCharacterTermsFile as S, CHARACTER_MODEL_PATH as T, Attributes as U, CombatTalent as V, ArtifactSlot as W, BodyType as _, readCharacterIdNamesMap as a, decodeCharacterTerms as b, readGameDataObject as c, textChunkSchema as d, characterDataSchema as f, growAttributeSchema as g, Elements as h, readCharacterNames as i, CHARACTER_PACK_STORE_VERSION as j, CHARACTER_PACK_STORE_FILES_NAME as k, fetchJson as l, Element as m, resolveCharacterPackTextures as n, NameTextLoaderMap as o, WeaponType as p, getCharacterPackFilePath as r, readGameData as s, GAME_DATA_BLOB_PATH as t, gameDataLock as u, ascensionPhaseSchema as v, ARTIFACT_SLOT_ORDER as w, CharacterTermsEncoding as x, attributeLineSchema as y, TRAVELER_CHARACTER_ID as z };