init
All checks were successful
Gitea Auto Deploy / Deploy-Container (push) Successful in 1m31s

This commit is contained in:
2025-07-01 09:33:43 +07:00
parent 3a26f09a01
commit 331aba4489
156 changed files with 1206219 additions and 146 deletions

9
src/zod/affix.zod.ts Normal file
View File

@@ -0,0 +1,9 @@
// Generated by ts-to-zod
import { z } from "zod";
export const affixDetailSchema = z.object({
property: z.string(),
base: z.number(),
step: z.number(),
step_num: z.number(),
});

21
src/zod/card.zod.ts Normal file
View File

@@ -0,0 +1,21 @@
// Generated by ts-to-zod
import { z } from "zod";
export const characterInfoCardTypeSchema = z.object({
key: z.number(),
avatar_id: z.number(),
rank: z.number(),
level: z.number(),
lightcone: z.object({
level: z.number(),
rank: z.number(),
item_id: z.number(),
}),
relics: z.array(
z.object({
level: z.number(),
relic_id: z.number(),
relic_set_id: z.number(),
}),
),
});

View File

@@ -0,0 +1,15 @@
// Generated by ts-to-zod
import { z } from "zod";
export const characterBasicRawSchema = z.object({
release: z.number(),
icon: z.string(),
rank: z.string(),
baseType: z.string(),
damageType: z.string(),
en: z.string(),
desc: z.string(),
kr: z.string(),
cn: z.string(),
jp: z.string(),
});

View File

@@ -0,0 +1,163 @@
// Generated by ts-to-zod
import { z } from "zod";
export const rankTypeSchema = z.object({
Id: z.number(),
Name: z.string(),
Desc: z.string(),
ParamList: z.array(z.number()),
});
export const uniqueAbilitySchema = z.object({
Tag: z.string(),
Name: z.string(),
Desc: z.string(),
Param: z.array(z.number()),
});
export const voiceActorsSchema = z.object({
Chinese: z.string().nullable(),
Japanese: z.string().nullable(),
Korean: z.string().nullable(),
English: z.string().nullable(),
});
export const levelParamsSchema = z.object({
Level: z.number(),
ParamList: z.array(z.number()),
});
export const itemConfigRowSchema = z.object({
$type: z.string(),
ItemID: z.number(),
ItemNum: z.number(),
Rarity: z.string(),
});
export const spriteSkillSchema = z.object({
Name: z.string(),
Desc: z.string().nullable(),
Type: z.string().nullable(),
Tag: z.string(),
SPBase: z.number().nullable(),
BPNeed: z.number(),
BPAdd: z.number().nullable(),
ShowStanceList: z.array(z.number()),
SkillComboValueDelta: z.number().nullable(),
Level: z.record(levelParamsSchema),
});
export const statSchema = z.object({
AttackBase: z.number(),
AttackAdd: z.number(),
DefenceBase: z.number(),
DefenceAdd: z.number(),
HPBase: z.number(),
HPAdd: z.number(),
SpeedBase: z.number(),
CriticalChance: z.number(),
CriticalDamage: z.number(),
BaseAggro: z.number(),
Cost: z.array(itemConfigRowSchema),
});
export const relicRecommendPropertySchema = z.object({
$type: z.string(),
RelicType: z.string(),
PropertyType: z.string(),
});
export const characterInfoSchema = z.object({
Camp: z.string().nullable(),
VA: voiceActorsSchema,
Stories: z.record(z.string().nullable()),
Voicelines: z.array(z.string()),
});
export const skillTypeSchema = z.object({
Id: z.number(),
Name: z.string(),
Desc: z.string(),
Type: z.string(),
Tag: z.string(),
SPBase: z.number().nullable(),
BPNeed: z.number(),
BPAdd: z.number(),
ShowStanceList: z.array(z.number()),
SkillComboValueDelta: z.number().nullable(),
Level: z.record(levelParamsSchema),
});
export const skillTreePointSchema = z.object({
Anchor: z.string(),
AvatarPromotionLimit: z.number().nullable(),
AvatarLevelLimit: z.number().nullable(),
DefaultUnlock: z.boolean(),
Icon: z.string(),
LevelUpSkillID: z.array(z.number()),
MaterialList: z.array(itemConfigRowSchema),
MaxLevel: z.number(),
ParamList: z.array(z.any()),
PointID: z.number(),
PointName: z.string().nullable(),
PointDesc: z.string().nullable(),
PointTriggerKey: z.number(),
PointType: z.number(),
PrePoint: z.array(z.string()),
StatusAddList: z.array(z.any()),
});
export const memospriteSchema = z.object({
Name: z.string(),
Icon: z.string(),
HPBase: z.string(),
HPInherit: z.string(),
HPSkill: z.number().nullable(),
SpeedBase: z.string(),
SpeedInherit: z.string(),
SpeedSkill: z.number(),
Aggro: z.number(),
Skills: z.record(spriteSkillSchema),
Talent: z.record(z.any()),
});
export const relicsSchema = z.object({
AvatarID: z.number(),
Set4IDList: z.array(z.number()),
Set2IDList: z.array(z.number()),
PropertyList3: z.array(z.string()),
PropertyList4: z.array(z.string()),
PropertyList5: z.array(z.string()),
PropertyList6: z.array(z.string()),
PropertyList: z.array(relicRecommendPropertySchema),
SubAffixPropertyList: z.array(z.string()),
ScoreRankList: z.array(z.number()),
});
export const enhancedTypeSchema = z.object({
Descs: z.array(z.string()),
ChangeRankList: z.any(),
ChangeSkillTreeList: z.any(),
Ranks: z.record(rankTypeSchema),
Skills: z.record(skillTypeSchema),
SkillTrees: z.record(z.record(skillTreePointSchema)),
});
export const characterDetailSchema = z.object({
Name: z.string(),
Desc: z.string(),
CharaInfo: characterInfoSchema,
Rarity: z.string(),
AvatarVOTag: z.string(),
SPNeed: z.number().nullable(),
BaseType: z.string(),
DamageType: z.string(),
Ranks: z.record(rankTypeSchema),
Skills: z.record(skillTypeSchema),
SkillTrees: z.record(z.record(skillTreePointSchema)),
Memosprite: memospriteSchema,
Unique: z.record(uniqueAbilitySchema),
Stats: z.record(statSchema),
Relics: relicsSchema,
Enhanced: z.record(enhancedTypeSchema),
});

View File

@@ -0,0 +1,28 @@
// Generated by ts-to-zod
import { z } from "zod";
export const aSConfigMazeSchema = z.object({
buff_1: z.array(z.number()),
buff_2: z.array(z.number()),
maze_buff: z.number(),
});
export const pFConfigMazeSchema = z.object({
buff: z.array(z.number()),
maze_buff: z.number(),
});
export const mOCConfigMazeSchema = z.object({
maze_buff: z.number(),
});
export const avatarConfigMazeSchema = z.object({
maze_buff: z.array(z.number()),
});
export const configMazeSchema = z.object({
Avatar: z.record(avatarConfigMazeSchema),
MOC: z.record(mOCConfigMazeSchema),
AS: z.record(aSConfigMazeSchema),
PF: z.record(pFConfigMazeSchema),
});

100
src/zod/enka.zod.ts Normal file
View File

@@ -0,0 +1,100 @@
// Generated by ts-to-zod
import { z } from "zod";
const privacySettingInfoSchema = z.object({
displayCollection: z.boolean(),
displayRecord: z.boolean(),
displayRecordTeam: z.boolean(),
displayOnlineStatus: z.boolean(),
displayDiary: z.boolean(),
});
const challengeInfoSchema = z.object({});
const recordInfoSchema = z.object({
achievementCount: z.number(),
bookCount: z.number(),
avatarCount: z.number(),
equipmentCount: z.number(),
musicCount: z.number(),
relicCount: z.number(),
challengeInfo: challengeInfoSchema,
maxRogueChallengeScore: z.number(),
});
const subAffixSchema = z.object({
affixId: z.number(),
cnt: z.number(),
step: z.number().optional(),
});
const flatPropSchema = z.object({
type: z.string(),
value: z.number(),
});
const relicFlatSchema = z.object({
props: z.array(flatPropSchema),
setName: z.string(),
setID: z.number(),
});
const relicSchema = z.object({
mainAffixId: z.number(),
subAffixList: z.array(subAffixSchema),
tid: z.number(),
type: z.number(),
level: z.number(),
_flat: relicFlatSchema,
});
const skillTreeSchema = z.object({
pointId: z.number(),
level: z.number(),
});
const equipmentFlatSchema = z.object({
props: z.array(flatPropSchema),
name: z.string(),
});
const equipmentSchema = z.object({
rank: z.number(),
tid: z.number(),
promotion: z.number(),
level: z.number(),
_flat: equipmentFlatSchema,
});
export const avatarEnkaDetailSchema = z.object({
relicList: z.array(relicSchema),
level: z.number(),
promotion: z.number(),
rank: z.number().optional(),
skillTreeList: z.array(skillTreeSchema),
equipment: equipmentSchema,
avatarId: z.number(),
_assist: z.boolean().optional(),
});
const detailInfoSchema = z.object({
worldLevel: z.number(),
privacySettingInfo: privacySettingInfoSchema,
headIcon: z.number(),
signature: z.string(),
avatarDetailList: z.array(avatarEnkaDetailSchema),
platform: z.string(),
recordInfo: recordInfoSchema,
uid: z.number(),
level: z.number(),
nickname: z.string(),
isDisplayAvatar: z.boolean(),
friendCount: z.number(),
personalCardId: z.number(),
});
export const enkaResponseSchema = z.object({
detailInfo: detailInfoSchema,
ttl: z.number(),
uid: z.string(),
});

22
src/zod/filter.zod.ts Normal file
View File

@@ -0,0 +1,22 @@
// Generated by ts-to-zod
import { z } from "zod";
export const filterAvatarTypeSchema = z.object({
name: z.string(),
path: z.array(z.string()),
element: z.array(z.string()),
rarity: z.string(),
locale: z.string(),
});
export const filterLightconeTypeSchema = z.object({
path: z.array(z.string()),
rarity: z.array(z.string()),
locale: z.string(),
name: z.string(),
});
export const filterRelicTypeSchema = z.object({
locale: z.string(),
name: z.string(),
});

13
src/zod/index.ts Normal file
View File

@@ -0,0 +1,13 @@
export * from "./affix.zod";
export * from "./card.zod";
export * from "./characterBasic.zod";
export * from "./characterDetail.zod";
export * from "./config_maze.zod";
export * from "./enka.zod";
export * from "./filter.zod";
export * from "./lightconeBasic.zod";
export * from "./lightconeDetail.zod";
export * from "./mics.zod";
export * from "./relicBasic.zod";
export * from "./relicDetail.zod";
export * from "./srtools.zod";

View File

@@ -0,0 +1,12 @@
// Generated by ts-to-zod
import { z } from "zod";
export const lightConeBasicRawSchema = z.object({
rank: z.string(),
baseType: z.string(),
en: z.string(),
desc: z.string(),
kr: z.string(),
cn: z.string(),
jp: z.string(),
});

View File

@@ -0,0 +1,43 @@
// Generated by ts-to-zod
import { z } from "zod";
const refinementDetailSchema = z.object({
Name: z.string(),
Desc: z.string(),
Level: z.record(
z.object({
ParamList: z.array(z.number()),
}),
),
});
const promotionCostSchema = z.object({
$type: z.string(),
ItemID: z.number(),
ItemNum: z.number(),
Rarity: z.string(),
});
const statEntryDetailSchema = z.object({
EquipmentID: z.number(),
Promotion: z.number().optional(),
PromotionCostList: z.array(promotionCostSchema),
PlayerLevelRequire: z.number().optional(),
WorldLevelRequire: z.number().optional(),
MaxLevel: z.number(),
BaseHP: z.number(),
BaseHPAdd: z.number(),
BaseAttack: z.number(),
BaseAttackAdd: z.number(),
BaseDefence: z.number(),
BaseDefenceAdd: z.number(),
});
export const lightConeDetailSchema = z.object({
Name: z.string(),
Desc: z.string(),
Rarity: z.string(),
BaseType: z.string(),
Refinements: refinementDetailSchema,
Stats: z.array(statEntryDetailSchema),
});

82
src/zod/mics.zod.ts Normal file
View File

@@ -0,0 +1,82 @@
// Generated by ts-to-zod
import { z } from "zod";
export const avatarDataStoreSchema = z.object({
rank: z.number(),
skills: z.record(z.number()),
});
export const lightconeStoreSchema = z.object({
level: z.number(),
item_id: z.number(),
rank: z.number(),
promotion: z.number(),
});
export const subAffixStoreSchema = z.object({
sub_affix_id: z.number(),
count: z.number(),
step: z.number(),
});
export const relicStoreSchema = z.object({
level: z.number(),
relic_id: z.number(),
relic_set_id: z.number(),
main_affix_id: z.number(),
sub_affixes: z.array(subAffixStoreSchema),
});
export const avatarProfileStoreSchema = z.object({
profile_name: z.string(),
lightcone: lightconeStoreSchema.nullable(),
relics: z.record(relicStoreSchema),
});
export const avatarStoreSchema = z.object({
owner_uid: z.number(),
avatar_id: z.number(),
data: avatarDataStoreSchema,
level: z.number(),
promotion: z.number(),
techniques: z.array(z.number()),
sp_value: z.number(),
sp_max: z.number(),
can_change_sp: z.boolean(),
enhanced: z.string(),
profileSelect: z.number(),
profileList: z.array(avatarProfileStoreSchema),
});
export const monsterStoreSchema = z.object({
monster_id: z.number(),
level: z.number(),
amount: z.number(),
});
export const dynamicKeyStoreSchema = z.object({
key: z.string(),
value: z.number(),
});
export const battleBuffStoreSchema = z.object({
level: z.number(),
id: z.number(),
dynamic_key: dynamicKeyStoreSchema.optional(),
});
export const battleConfigStoreSchema = z.object({
battle_type: z.string(),
blessings: z.array(battleBuffStoreSchema),
custom_stats: z.array(subAffixStoreSchema),
cycle_count: z.number(),
stage_id: z.number(),
path_resonance_id: z.number(),
monsters: z.array(z.array(monsterStoreSchema)),
});
export const micsSchema = z.object({
avatars: z.record(z.string(), avatarStoreSchema),
battle_config: battleConfigStoreSchema,
})

10
src/zod/relicBasic.zod.ts Normal file
View File

@@ -0,0 +1,10 @@
// Generated by ts-to-zod
import { z } from "zod";
export const relicBasicRawEffectSchema = z.object({
en: z.string(),
ParamList: z.array(z.number()),
kr: z.string(),
cn: z.string(),
jp: z.string(),
});

View File

@@ -0,0 +1,20 @@
// Generated by ts-to-zod
import { z } from "zod";
export const partDataSchema = z.object({
Name: z.string(),
Desc: z.string(),
Story: z.string(),
});
export const requireBonusSchema = z.object({
Desc: z.string(),
ParamList: z.array(z.number()),
});
export const relicDetailSchema = z.object({
Name: z.string(),
Icon: z.string(),
Parts: z.record(partDataSchema),
RequireNum: z.record(requireBonusSchema),
});

82
src/zod/srtools.zod.ts Normal file
View File

@@ -0,0 +1,82 @@
// Generated by ts-to-zod
import { z } from "zod";
export const subAffixSchema = z.object({
sub_affix_id: z.number(),
count: z.number(),
step: z.number(),
});
export const relicJsonSchema = z.object({
level: z.number(),
relic_id: z.number(),
relic_set_id: z.number(),
main_affix_id: z.number(),
sub_affixes: z.array(subAffixSchema),
internal_uid: z.number(),
equip_avatar: z.number(),
});
export const lightconeJsonSchema = z.object({
level: z.number(),
item_id: z.number(),
equip_avatar: z.number(),
rank: z.number(),
promotion: z.number(),
internal_uid: z.number(),
});
export const avatarDataSchema = z.object({
rank: z.number(),
skills: z.record(z.number()),
});
export const avatarJsonSchema = z.object({
owner_uid: z.number(),
avatar_id: z.number(),
data: avatarDataSchema,
level: z.number(),
promotion: z.number(),
techniques: z.array(z.number()),
sp_value: z.number(),
sp_max: z.number(),
});
export const monsterJsonSchema = z.object({
monster_id: z.number(),
level: z.number(),
amount: z.number(),
});
export const dynamicKeyJsonSchema = z.object({
key: z.string(),
value: z.number(),
});
export const battleBuffJsonSchema = z.object({
level: z.number(),
id: z.number(),
dynamic_key: dynamicKeyJsonSchema.optional(),
});
export const battleConfigJsonSchema = z.object({
battle_type: z.string(),
blessings: z.array(battleBuffJsonSchema),
custom_stats: z.array(subAffixSchema),
cycle_count: z.number(),
stage_id: z.number(),
path_resonance_id: z.number(),
monsters: z.array(z.array(monsterJsonSchema)),
});
export const freeSRJsonSchema = z.object({
lightcones: z.array(lightconeJsonSchema),
relics: z.array(relicJsonSchema),
avatars: z.record(avatarJsonSchema),
battle_config: battleConfigJsonSchema,
});
export const psResponseSchema = z.object({
status: z.number(),
message: z.string(),
});