Migrate type defs

This commit is contained in:
Justin Edmund 2025-09-09 00:27:26 -07:00
parent 1fc179c99d
commit 7b05fa0497
35 changed files with 596 additions and 0 deletions

6
src/lib/types/AccountCookie.d.ts vendored Normal file
View file

@ -0,0 +1,6 @@
interface AccountCookie {
userId: string
username: string
token: string
role: number
}

5
src/lib/types/AppUpdate.d.ts vendored Normal file
View file

@ -0,0 +1,5 @@
interface AppUpdate {
version: string
update_type: string
updated_at: string
}

11
src/lib/types/Awakening.d.ts vendored Normal file
View file

@ -0,0 +1,11 @@
interface Awakening {
id: string
name: {
[key: string]: string
en: string
jp: string
}
slug: string
object_type?: string
order: number
}

38
src/lib/types/Character.d.ts vendored Normal file
View file

@ -0,0 +1,38 @@
interface Character {
type: 'character'
id: string
granblue_id: string
character_id: readonly number[]
element: number
rarity: number
gender: number
max_level: number
name: {
[key: string]: string
en: string
ja: string
}
hp: {
min_hp: number
max_hp: number
max_hp_flb: number
}
atk: {
min_atk: number
max_atk: number
max_atk_flb: number
}
uncap: {
flb: boolean
ulb: boolean
}
race: {
race1: number
race2: number
}
proficiency: number[]
awakenings: Awakening[]
position?: number
special: boolean
}

4
src/lib/types/CheckedState.d.ts vendored Normal file
View file

@ -0,0 +1,4 @@
interface CheckedState {
id: number
checked: boolean
}

10
src/lib/types/ElementState.d.ts vendored Normal file
View file

@ -0,0 +1,10 @@
interface ElementState {
[key: string]: CheckedState
null: CheckedState
wind: CheckedState
fire: CheckedState
water: CheckedState
earth: CheckedState
dark: CheckedState
light: CheckedState
}

23
src/lib/types/FilterSet.d.ts vendored Normal file
View file

@ -0,0 +1,23 @@
interface FilterSet {
element?: number
raid?: string
recency?: number
full_auto?: number
auto_guard?: number
charge_attack?: number
characters_count?: number
weapons_count?: number
summons_count?: number
button_count?: number
turn_count?: number
name_quality?: boolean
user_quality?: boolean
original?: boolean
includes?: MentionItem[]
excludes?: MentionItem[]
}
interface ConvertedFilters extends Omit<FilterSet, 'includes' | 'excludes'> {
includes: string
excludes: string
}

5
src/lib/types/GranblueCookie.d.ts vendored Normal file
View file

@ -0,0 +1,5 @@
interface GranblueCookie {
account: AccountCookie
user: UserCookie
locale: string
}

10
src/lib/types/GranblueElement.d.ts vendored Normal file
View file

@ -0,0 +1,10 @@
interface GranblueElement {
[key: string]: any
id: number
weaknessId: number
name: {
en: string
ja: string
}
slug: string
}

1
src/lib/types/GridArray.d.ts vendored Normal file
View file

@ -0,0 +1 @@
type GridArray<T> = { [key: number]: T | undefined }

14
src/lib/types/GridCharacter.d.ts vendored Normal file
View file

@ -0,0 +1,14 @@
interface GridCharacter {
id: string
position: number
object: Character
uncap_level: number
transcendence_step: number
perpetuity: boolean
over_mastery: ExtendedMastery[]
aetherial_mastery?: ExtendedMastery
awakening: {
type: Awakening
level: number
}
}

10
src/lib/types/GridSummon.d.ts vendored Normal file
View file

@ -0,0 +1,10 @@
interface GridSummon {
id: string
main: boolean
friend: boolean
position: number
object: Summon
uncap_level: number
quick_summon: boolean
transcendence_step: number
}

15
src/lib/types/GridWeapon.d.ts vendored Normal file
View file

@ -0,0 +1,15 @@
interface GridWeapon {
id: string
mainhand: boolean
position: number
object: Weapon
uncap_level: number
transcendence_step: number
element: number
weapon_keys?: Array<WeaponKey>
ax?: Array<SimpleAxSkill>
awakening?: {
type: Awakening
level: number
}
}

14
src/lib/types/Guidebook.d.ts vendored Normal file
View file

@ -0,0 +1,14 @@
interface Guidebook {
id: string
granblue_id: string
name: {
[key: string]: string
en: string
jp: string
}
description: {
[key: string]: string
en: string
jp: string
}
}

16
src/lib/types/ItemSkill.d.ts vendored Normal file
View file

@ -0,0 +1,16 @@
interface ItemSkill {
name: {
[key: string]: string
en: string
ja: string
}
id: number
granblue_id: string
slug: string
minValue: number
maxValue: number
fractional: boolean
suffix?: string
secondary?: ItemSkill[]
values?: number[]
}

20
src/lib/types/Job.d.ts vendored Normal file
View file

@ -0,0 +1,20 @@
interface Job {
id: string
granblue_id: string
row: string
master_level: boolean
ultimate_mastery: boolean
order: number
name: {
[key: string]: string
en: string
ja: string
}
proficiency: {
proficiency1: number
proficiency2: number
}
base_job?: Job
accessory: boolean
accessory_type: number
}

11
src/lib/types/JobAccessory.d.ts vendored Normal file
View file

@ -0,0 +1,11 @@
interface JobAccessory {
id: string
granblue_id: string
job: Job
name: {
[key: string]: string
en: string
ja: string
}
rarity: number
}

16
src/lib/types/JobSkill.d.ts vendored Normal file
View file

@ -0,0 +1,16 @@
interface JobSkill {
id: string
job: Job
name: {
[key: string]: string
en: string
ja: string
}
slug: string
color: number
main: boolean
base: boolean
sub: boolean
emp: boolean
order: number
}

10
src/lib/types/MentionItem.d.ts vendored Normal file
View file

@ -0,0 +1,10 @@
interface MentionItem {
name: {
[key: string]: string
en: string
ja: string
}
type: string
granblue_id: string
element: GranblueElement
}

3
src/lib/types/OnClickEvent.d.ts vendored Normal file
View file

@ -0,0 +1,3 @@
type OnClickEvent = (
event: React.MouseEvent<HTMLDivElement, MouseEvent>
) => void

49
src/lib/types/Party.d.ts vendored Normal file
View file

@ -0,0 +1,49 @@
type JobSkillList = {
[key: number]: JobSkill | undefined
0: JobSkill | undefined
1: JobSkill | undefined
2: JobSkill | undefined
3: JobSkill | undefined
}
type GuidebookList = {
[key: number]: Guidebook | undefined
0: Guidebook | undefined
1: Guidebook | undefined
2: Guidebook | undefined
}
interface Party {
id: string
name: string
description: string
raid: Raid
full_auto: boolean
auto_guard: boolean
auto_summon: boolean
charge_attack: boolean
clear_time: number
button_count?: number
turn_count?: number
chain_count?: number
source_party?: Party
job: Job
master_level?: number
ultimate_mastery?: number
job_skills: JobSkillList
accessory: JobAccessory
shortcode: string
extra: boolean
guidebooks: GuidebookList
favorited: boolean
characters: Array<GridCharacter>
weapons: Array<GridWeapon>
summons: Array<GridSummon>
user: User
local_id?: string
remix: boolean
remixes: Party[]
visibility: number
created_at: string
updated_at: string
}

13
src/lib/types/ProficiencyState.d.ts vendored Normal file
View file

@ -0,0 +1,13 @@
interface ProficiencyState {
[key: string]: CheckedState
sabre: CheckedState
dagger: CheckedState
spear: CheckedState
axe: CheckedState
staff: CheckedState
melee: CheckedState
gun: CheckedState
bow: CheckedState
harp: CheckedState
katana: CheckedState
}

12
src/lib/types/Raid.d.ts vendored Normal file
View file

@ -0,0 +1,12 @@
interface Raid {
id: string
group: RaidGroup
name: {
[key: string]: string
en: string
ja: string
}
slug: string
level: number
element: number
}

15
src/lib/types/RaidGroup.d.ts vendored Normal file
View file

@ -0,0 +1,15 @@
interface RaidGroup {
id: string
name: {
[key: string]: string
en: string
ja: string
}
raids: Raid[]
difficulty: number
section: number
order: number
extra: boolean
guidebooks: boolean
hl: boolean
}

5
src/lib/types/RarityState.d.ts vendored Normal file
View file

@ -0,0 +1,5 @@
interface RarityState {
[key: string]: CheckedState
sr: CheckedState
ssr: CheckedState
}

4
src/lib/types/SimpleAxSkill.d.ts vendored Normal file
View file

@ -0,0 +1,4 @@
interface SimpleAxSkill {
modifier: number
strength: number
}

33
src/lib/types/Summon.d.ts vendored Normal file
View file

@ -0,0 +1,33 @@
interface Summon {
type: 'summon'
id: string
granblue_id: number
element: number
max_level: number
name: {
[key: string]: string
en: string
ja: string
}
hp: {
min_hp: number
max_hp: number
max_hp_flb: number
max_hp_ulb: number
max_hp_xlb: number
}
atk: {
min_atk: number
max_atk: number
max_atk_flb: number
max_atk_ulb: number
max_atk_xlb: number
}
uncap: {
flb: boolean
ulb: boolean
transcendence: boolean
}
position?: number
}

8
src/lib/types/TeamElement.d.ts vendored Normal file
View file

@ -0,0 +1,8 @@
interface TeamElement {
id: number
opposite_id: number
name: {
en: string
ja: string
}
}

11
src/lib/types/User.d.ts vendored Normal file
View file

@ -0,0 +1,11 @@
interface User {
id: string
username: string
granblueId: string
avatar: {
picture: string
element: string
}
gender: number
role: number
}

7
src/lib/types/UserCookie.d.ts vendored Normal file
View file

@ -0,0 +1,7 @@
interface UserCookie {
picture: string
element: string
language: string
gender: number
theme: string
}

38
src/lib/types/Weapon.d.ts vendored Normal file
View file

@ -0,0 +1,38 @@
interface Weapon {
type: 'weapon'
id: string
granblue_id: number
element: number
proficiency: number
max_level: number
max_skill_level: number
max_awakening_level: number
series: number
ax: boolean
ax_type: number
awakenings: Awakening[]
name: {
[key: string]: string
en: string
ja: string
}
hp: {
min_hp: number
max_hp: number
max_hp_flb: number
max_hp_ulb: number
}
atk: {
min_atk: number
max_atk: number
max_atk_flb: number
max_atk_ulb: number
}
uncap: {
flb: boolean
ulb: boolean
transcendence: boolean
}
position?: number
}

14
src/lib/types/WeaponKey.d.ts vendored Normal file
View file

@ -0,0 +1,14 @@
interface WeaponKey {
id: string
granblue_id: string
name: {
[key: string]: string
en: string
ja: string
}
slug: string
series: integer[]
slot: integer
group: integer
order: integer
}

27
src/lib/types/WeaponSeries.d.ts vendored Normal file
View file

@ -0,0 +1,27 @@
interface WeaponSeriesState {
[key: string]: CheckedState
seraphic: CheckedState
grand: CheckedState
opus: CheckedState
draconic: CheckedState
ultima: CheckedState
bahamut: CheckedState
omega: CheckedState
primal: CheckedState
olden_primal: CheckedState
militis: CheckedState
beast: CheckedState
rose: CheckedState
xeno: CheckedState
hollowsky: CheckedState
astral: CheckedState
epic: CheckedState
ennead: CheckedState
cosmic: CheckedState
ancestral: CheckedState
superlative: CheckedState
vintage: CheckedState
class_champion: CheckedState
sephira: CheckedState
new_world: CheckedState
}

7
src/lib/types/declarations.d.ts vendored Normal file
View file

@ -0,0 +1,7 @@
declare module '*.jpg'
declare module '*.svg' {
import React from 'react'
const SVG: React.FunctionComponent<React.SVGProps<SVGSVGElement>>
export default SVG
}

111
src/lib/types/index.d.ts vendored Normal file
View file

@ -0,0 +1,111 @@
export type SearchableObject =
| Character
| Weapon
| Summon
| JobSkill
| Guidebook
export type SearchableObjectArray = (Character | Weapon | Summon | JobSkill)[]
export type JobSkillObject = {
[key: number]: JobSkill | undefined
0: JobSkill | undefined
1: JobSkill | undefined
2: JobSkill | undefined
3: JobSkill | undefined
}
export type FilterObject = {
raid?: string
element?: number
recency?: number
}
export type PaginationObject = {
count: number
totalPages: number
perPage: number
}
export type DetailsObject = {
[key: string]: boolean | number | string | string[] | Raid | undefined
fullAuto?: boolean
autoGuard?: boolean
autoSummon?: boolean
chargeAttack?: boolean
clearTime?: number
buttonCount?: number
turnCount?: number
chainCount?: number
name?: string
description?: string
raid?: Raid
job?: Job
guidebooks?: string[]
visibility?: number
}
export type ExtendedMastery = {
modifier?: number
strength?: number
}
export type CharacterOverMastery = ExtendedMastery[]
export interface MasteryBonuses {
awakening?: {
type: Awakening
level: number
}
over_mastery?: CharacterOverMastery
aetherial_mastery?: ExtendedMastery
}
export interface GridCharacterObject {
character: {
rings: ExtendedMastery[]
earring: ExtendedMastery
awakening?: {
id: string
level: number
}
transcendence_step: number
perpetuity: boolean
}
}
interface GridWeaponObject {
weapon: {
element?: number
weapon_key1_id?: string
weapon_key2_id?: string
weapon_key3_id?: string
ax_modifier1?: number
ax_modifier2?: number
ax_strength1?: number
ax_strength2?: number
awakening_id?: string
awakening_level?: Number
}
}
interface PerpetuityObject {
character: {
perpetuity: boolean
}
}
interface PageContextObj {
user?: User
teams?: Party[]
party?: Party
jobs?: Job[]
jobSkills?: JobSkill[]
raidGroups: RaidGroup[]
weaponKeys?: GroupedWeaponKeys
pagination?: PaginationObject
meta?: { [key: string]: string }
}
interface ResponseStatus {
code: number
text: string
}