chore(wailsv3): migrate frontend to v3 bindings and runtime
Regenerated bindings with wails3 generate bindings (1 service, 29 methods, 25 models) into frontend/bindings/AniTrack as TypeScript; output verified byte-deterministic across regens, so it is committed like wailsjs was.
- 10 Svelte files: wailsjs/go/main/App imports -> import {App} from bindings/AniTrack with App.* call prefixes. No logic or markup changes.
- WebsiteLink.svelte: BrowserOpenURL -> Browser.OpenURL from @wailsio/runtime.
- AvatarMenu.svelte: runtime.Quit -> Application.Quit from @wailsio/runtime.
- package.json: add @wailsio/runtime pinned to 3.0.0-beta.20 (exact, matching the Go framework); lockfile updated, all deps still max in-range, majors deferred.
- Production vite build passes with the new bindings.
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
||||
// This file is automatically generated. DO NOT EDIT
|
||||
|
||||
/**
|
||||
* App struct
|
||||
* @module
|
||||
*/
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore: Unused imports
|
||||
import { Call as $Call, CancellablePromise as $CancellablePromise } from "@wailsio/runtime";
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore: Unused imports
|
||||
import * as $models from "./models.js";
|
||||
|
||||
export function AniListBrowse(page: number, perPage: number, id: number, isAdult: boolean, search: string, format: string[] | null, status: string, countryOfOrigin: string, source: string, season: string, seasonYear: number, year: string, onList: boolean, yearLesser: number, yearGreater: number, episodeLesser: number, episodeGreater: number, durationLesser: number, durationGreater: number, chapterLesser: number, chapterGreater: number, volumeLesser: number, volumeGreater: number, licensedBy: number[] | null, isLicensed: boolean, genres: string[] | null, excludedGenres: string[] | null, tags: string[] | null, excludedTags: string[] | null, minimumTagRank: number, sort: string[] | null): $CancellablePromise<$models.AniListCurrentUserWatchList> {
|
||||
return $Call.ByID(509958107, page, perPage, id, isAdult, search, format, status, countryOfOrigin, source, season, seasonYear, year, onList, yearLesser, yearGreater, episodeLesser, episodeGreater, durationLesser, durationGreater, chapterLesser, chapterGreater, volumeLesser, volumeGreater, licensedBy, isLicensed, genres, excludedGenres, tags, excludedTags, minimumTagRank, sort);
|
||||
}
|
||||
|
||||
export function AniListDeleteEntry(mediaListId: number): $CancellablePromise<$models.DeleteAniListReturn> {
|
||||
return $Call.ByID(814044062, mediaListId);
|
||||
}
|
||||
|
||||
export function AniListLogin(): $CancellablePromise<void> {
|
||||
return $Call.ByID(1289244998);
|
||||
}
|
||||
|
||||
export function AniListSearch(query: string): $CancellablePromise<any> {
|
||||
return $Call.ByID(535361453, query);
|
||||
}
|
||||
|
||||
export function AniListUpdateEntry(updateBody: $models.AniListUpdateVariables): $CancellablePromise<$models.AniListGetSingleAnime> {
|
||||
return $Call.ByID(1288135876, updateBody);
|
||||
}
|
||||
|
||||
export function CheckIfAniListLoggedIn(): $CancellablePromise<boolean> {
|
||||
return $Call.ByID(3851355);
|
||||
}
|
||||
|
||||
export function CheckIfMyAnimeListLoggedIn(): $CancellablePromise<boolean> {
|
||||
return $Call.ByID(3447028267);
|
||||
}
|
||||
|
||||
export function CheckIfSimklLoggedIn(): $CancellablePromise<boolean> {
|
||||
return $Call.ByID(2483871029);
|
||||
}
|
||||
|
||||
export function DeleteMyAnimeListEntry(id: number): $CancellablePromise<boolean> {
|
||||
return $Call.ByID(3393515640, id);
|
||||
}
|
||||
|
||||
export function GetAniListItem(aniId: number, login: boolean): $CancellablePromise<$models.AniListGetSingleAnime> {
|
||||
return $Call.ByID(2336493728, aniId, login);
|
||||
}
|
||||
|
||||
export function GetAniListLoggedInUser(): $CancellablePromise<$models.AniListUser> {
|
||||
return $Call.ByID(448499589);
|
||||
}
|
||||
|
||||
export function GetAniListUserWatchingList(page: number, perPage: number, sort: string): $CancellablePromise<$models.AniListCurrentUserWatchList> {
|
||||
return $Call.ByID(3978330877, page, perPage, sort);
|
||||
}
|
||||
|
||||
export function GetMyAnimeList(count: number): $CancellablePromise<$models.MALWatchlist> {
|
||||
return $Call.ByID(1771759135, count);
|
||||
}
|
||||
|
||||
export function GetMyAnimeListAnime(id: number): $CancellablePromise<$models.MALAnime> {
|
||||
return $Call.ByID(1368244377, id);
|
||||
}
|
||||
|
||||
export function GetMyAnimeListLoggedInUser(): $CancellablePromise<$models.MyAnimeListUser> {
|
||||
return $Call.ByID(768446973);
|
||||
}
|
||||
|
||||
export function GetSimklLoggedInUser(): $CancellablePromise<$models.SimklUser> {
|
||||
return $Call.ByID(2872164207);
|
||||
}
|
||||
|
||||
export function LogoutAniList(): $CancellablePromise<string> {
|
||||
return $Call.ByID(1911309547);
|
||||
}
|
||||
|
||||
export function LogoutMyAnimeList(): $CancellablePromise<string> {
|
||||
return $Call.ByID(2568421227);
|
||||
}
|
||||
|
||||
export function LogoutSimkl(): $CancellablePromise<string> {
|
||||
return $Call.ByID(734133957);
|
||||
}
|
||||
|
||||
export function MyAnimeListLogin(): $CancellablePromise<void> {
|
||||
return $Call.ByID(439153478);
|
||||
}
|
||||
|
||||
export function MyAnimeListUpdate(anime: $models.MALAnime, update: $models.MALUploadStatus): $CancellablePromise<$models.MalListStatus> {
|
||||
return $Call.ByID(2544871568, anime, update);
|
||||
}
|
||||
|
||||
export function ShowVersion(): $CancellablePromise<void> {
|
||||
return $Call.ByID(4089383544);
|
||||
}
|
||||
|
||||
export function SimklGetUserWatchlist(): $CancellablePromise<$models.SimklWatchListType> {
|
||||
return $Call.ByID(3479741957);
|
||||
}
|
||||
|
||||
export function SimklLogin(): $CancellablePromise<void> {
|
||||
return $Call.ByID(4146248);
|
||||
}
|
||||
|
||||
export function SimklSearch(aniListAnime: $models.MediaList): $CancellablePromise<$models.SimklAnime> {
|
||||
return $Call.ByID(3130411731, aniListAnime);
|
||||
}
|
||||
|
||||
export function SimklSyncEpisodes(anime: $models.SimklAnime, progress: number): $CancellablePromise<$models.SimklAnime> {
|
||||
return $Call.ByID(3607297770, anime, progress);
|
||||
}
|
||||
|
||||
export function SimklSyncRating(anime: $models.SimklAnime, rating: number): $CancellablePromise<$models.SimklAnime> {
|
||||
return $Call.ByID(2909509273, anime, rating);
|
||||
}
|
||||
|
||||
export function SimklSyncRemove(anime: $models.SimklAnime): $CancellablePromise<boolean> {
|
||||
return $Call.ByID(1794667404, anime);
|
||||
}
|
||||
|
||||
export function SimklSyncStatus(anime: $models.SimklAnime, status: string): $CancellablePromise<$models.SimklAnime> {
|
||||
return $Call.ByID(2561714086, anime, status);
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
||||
// This file is automatically generated. DO NOT EDIT
|
||||
|
||||
import * as App from "./app.js";
|
||||
export {
|
||||
App
|
||||
};
|
||||
|
||||
export type {
|
||||
AiringScheduleNode,
|
||||
AniListCurrentUserWatchList,
|
||||
AniListGetSingleAnime,
|
||||
AniListUpdateVariables,
|
||||
AniListUser,
|
||||
AnimeStatistics,
|
||||
CompletedAt,
|
||||
DeleteAniListReturn,
|
||||
FlexString,
|
||||
MALAnime,
|
||||
MALUploadStatus,
|
||||
MALWatchlist,
|
||||
MalListStatus,
|
||||
Media,
|
||||
MediaAiringSchedule,
|
||||
MediaFuzzyDate,
|
||||
MediaList,
|
||||
MediaRelation,
|
||||
MediaRelations,
|
||||
MediaTitle,
|
||||
MyAnimeListUser,
|
||||
SimklAnime,
|
||||
SimklUser,
|
||||
SimklWatchListType,
|
||||
StartedAt
|
||||
} from "./models.js";
|
||||
@@ -0,0 +1,240 @@
|
||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
||||
// This file is automatically generated. DO NOT EDIT
|
||||
|
||||
export interface AiringScheduleNode {
|
||||
"id": number;
|
||||
"airingAt": number;
|
||||
"timeUntilAiring": number;
|
||||
"episode": number;
|
||||
"mediaId": number;
|
||||
}
|
||||
|
||||
export interface AniListCurrentUserWatchList {
|
||||
"data": {"Page": {"pageInfo": {"total": number, "perPage": number, "currentPage": number, "lastPage": number, "hasNextPage": boolean}, "mediaList": MediaList[] | null}};
|
||||
}
|
||||
|
||||
export interface AniListGetSingleAnime {
|
||||
"data": {"MediaList": MediaList};
|
||||
}
|
||||
|
||||
export interface AniListUpdateVariables {
|
||||
"mediaId": number;
|
||||
"progress": number;
|
||||
"status": string;
|
||||
"score": number;
|
||||
"repeat": number;
|
||||
"notes": string;
|
||||
"startedAt": StartedAt;
|
||||
"completedAt": CompletedAt;
|
||||
}
|
||||
|
||||
export interface AniListUser {
|
||||
"data": {"Viewer": {"id": number, "name": string, "avatar": {"large": string, "medium": string}, "bannerImage": string, "siteUrl": string}};
|
||||
}
|
||||
|
||||
export interface AnimeStatistics {
|
||||
"num_items_watching": number;
|
||||
"num_items_completed": number;
|
||||
"num_items_on_hold": number;
|
||||
"num_items_dropped": number;
|
||||
"num_items_plan_to_watch": number;
|
||||
"num_items": number;
|
||||
"num_days_watched": number;
|
||||
"num_days_watching": number;
|
||||
"num_days_completed": number;
|
||||
"num_days_on_hold": number;
|
||||
"num_days_dropped": number;
|
||||
"num_days": number;
|
||||
"num_episodes": number;
|
||||
"num_times_rewatched": number;
|
||||
"mean_score": number;
|
||||
}
|
||||
|
||||
export interface CompletedAt {
|
||||
"year": number;
|
||||
"month": number;
|
||||
"day": number;
|
||||
}
|
||||
|
||||
export interface DeleteAniListReturn {
|
||||
"data": {"DeleteMediaListEntry": {"deleted": boolean}};
|
||||
}
|
||||
|
||||
export type FlexString = string;
|
||||
|
||||
export interface MALAnime {
|
||||
"id": number;
|
||||
"title": string;
|
||||
"main_picture": {"large": string, "medium": string};
|
||||
"alternative_titles": {"synonyms": string[] | null, "en": string, "ja": string};
|
||||
"start_date": string;
|
||||
"end_date": string;
|
||||
"synopsis": string;
|
||||
"mean": number;
|
||||
"rank": number;
|
||||
"popularity": number;
|
||||
"num_list_users": number;
|
||||
"num_scoring_users": number;
|
||||
"nsfw": string;
|
||||
"genres": {"id": number, "name": string}[] | null;
|
||||
"created_at": string;
|
||||
"updated_at": string;
|
||||
"media_type": string;
|
||||
"status": string;
|
||||
"my_list_status": MalListStatus;
|
||||
"num_episodes": number;
|
||||
"start_season": {"year": number, "season": string};
|
||||
"broadcast": {"day_of_the_week": string, "start_time": string};
|
||||
"source": string;
|
||||
"average_episode_duration": number;
|
||||
"rating": string;
|
||||
"studios": {"id": number, "name": string}[] | null;
|
||||
"pictures": {"large": string, "medium": string}[] | null;
|
||||
"background": string;
|
||||
"related_anime": {"node": MALAnime, "relation_type": string, "relation_type_formatted": string}[] | null;
|
||||
"recommendations": {"node": MALAnime, "num_recommendations": number}[] | null;
|
||||
"Statistics": {"num_list_users": number, "Status": {"watching": FlexString, "completed": FlexString, "on_hold": FlexString, "dropped": FlexString, "plan_to_watch": FlexString}};
|
||||
}
|
||||
|
||||
export interface MALUploadStatus {
|
||||
"status": string;
|
||||
"is_rewatching": boolean;
|
||||
"score": number;
|
||||
"num_watched_episodes": number;
|
||||
"num_times_rewatched": number;
|
||||
"comments": string;
|
||||
}
|
||||
|
||||
export interface MALWatchlist {
|
||||
"data": {"node": {"id": number, "title": string, "main_picture": {"medium": string, "large": string}}, "list_status": {"status": string, "score": number, "num_episodes_watched": number, "is_rewatching": boolean, "updated_at": string, "start_date": string, "finish_date": string}}[] | null;
|
||||
"paging": {"previous": string, "next": string};
|
||||
}
|
||||
|
||||
export interface MalListStatus {
|
||||
"status": string;
|
||||
"score": number;
|
||||
"num_episodes_watched": number;
|
||||
"is_rewatching": boolean;
|
||||
"start_date": string;
|
||||
"finish_date": string;
|
||||
"priority": number;
|
||||
"num_times_rewatched": number;
|
||||
"rewatch_value": number;
|
||||
"tags": string[] | null;
|
||||
"comments": string;
|
||||
"updated_at": string;
|
||||
}
|
||||
|
||||
export interface Media {
|
||||
"id": number;
|
||||
"idMal": number;
|
||||
"title": MediaTitle;
|
||||
"description": string;
|
||||
"coverImage": {"ExtraLarge": string, "large": string, "Medium": string, "Color": string};
|
||||
"BannerImage": string;
|
||||
"Format": string;
|
||||
"season": string;
|
||||
"seasonYear": number;
|
||||
"status": string;
|
||||
"episodes": number;
|
||||
"Duration": number;
|
||||
"CountryOfOrigin": string;
|
||||
"Source": string;
|
||||
"Synonyms": string[] | null;
|
||||
"AverageScore": number;
|
||||
"MeanScore": number;
|
||||
"Popularity": number;
|
||||
"Trending": number;
|
||||
"Favourites": number;
|
||||
"relations": MediaRelations;
|
||||
"startDate": MediaFuzzyDate;
|
||||
"endDate": MediaFuzzyDate;
|
||||
"nextAiringEpisode": {"airingAt": number, "timeUntilAiring": number, "episode": number};
|
||||
"airingSchedule": MediaAiringSchedule;
|
||||
"genres": string[] | null;
|
||||
"tags": {"id": number, "name": string, "description": string, "rank": number, "isMediaSpoiler": boolean, "isAdult": boolean}[] | null;
|
||||
"isAdult": boolean;
|
||||
}
|
||||
|
||||
export interface MediaAiringSchedule {
|
||||
"nodes": AiringScheduleNode[] | null;
|
||||
}
|
||||
|
||||
export interface MediaFuzzyDate {
|
||||
"year": number;
|
||||
"month": number;
|
||||
"day": number;
|
||||
}
|
||||
|
||||
export interface MediaList {
|
||||
"id": number;
|
||||
"mediaId": number;
|
||||
"userId": number;
|
||||
"status": string;
|
||||
"media": Media;
|
||||
"startedAt": {"year": number, "month": number, "day": number};
|
||||
"completedAt": {"year": number, "month": number, "day": number};
|
||||
"notes": string;
|
||||
"progress": number;
|
||||
"score": number;
|
||||
"repeat": number;
|
||||
"user": {"id": number, "name": string, "avatar": {"large": string, "medium": string}, "statistics": {"anime": {"count": number, "statuses": {"status": string, "count": number}[] | null}}};
|
||||
}
|
||||
|
||||
export interface MediaRelation {
|
||||
"id": number;
|
||||
"title": MediaTitle;
|
||||
}
|
||||
|
||||
export interface MediaRelations {
|
||||
"nodes": MediaRelation[] | null;
|
||||
}
|
||||
|
||||
export interface MediaTitle {
|
||||
"userPreferred": string;
|
||||
"romaji": string;
|
||||
"english": string;
|
||||
"native": string;
|
||||
}
|
||||
|
||||
export interface MyAnimeListUser {
|
||||
"id": number;
|
||||
"name": string;
|
||||
"picture": string;
|
||||
"gender": string;
|
||||
"birthday": string;
|
||||
"location": string;
|
||||
"joined_at": string;
|
||||
"anime_statistics": AnimeStatistics;
|
||||
"time_zone": string;
|
||||
"is_supporter": boolean;
|
||||
}
|
||||
|
||||
export interface SimklAnime {
|
||||
"last_watched_at": string;
|
||||
"status": string;
|
||||
"user_rating": number;
|
||||
"last_watched": string;
|
||||
"next_to_watch": string;
|
||||
"watched_episodes_count": number;
|
||||
"total_episodes_count": number;
|
||||
"not_aired_episodes_count": number;
|
||||
"show": {"title": string, "poster": string, "ids": {"simkl": number, "slug": string, "offjp": string, "tw": string, "ann": string, "mal": string, "wikien": string, "wikijp": string, "allcin": string, "imdb": string, "tmdb": string, "offen": string, "crunchyroll": string, "tvdbslug": string, "anilist": string, "animeplanet": string, "anisearch": string, "kitsu": string, "livechart": string, "traktslug": string, "anidb": string}};
|
||||
"anime_type": string;
|
||||
}
|
||||
|
||||
export interface SimklUser {
|
||||
"user": {"name": string, "joined_at": string, "gender": string, "avatar": string, "bio": string, "loc": string, "age": string};
|
||||
"account": {"id": number, "timezone": string, "type": string};
|
||||
"connections": {"facebook": boolean};
|
||||
}
|
||||
|
||||
export interface SimklWatchListType {
|
||||
"anime": SimklAnime[] | null;
|
||||
}
|
||||
|
||||
export interface StartedAt {
|
||||
"year": number;
|
||||
"month": number;
|
||||
"day": number;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
//@ts-check
|
||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
||||
// This file is automatically generated. DO NOT EDIT
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore: Unused imports
|
||||
import { Create as $Create } from "@wailsio/runtime";
|
||||
|
||||
Object.freeze($Create.Events);
|
||||
@@ -0,0 +1,2 @@
|
||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
||||
// This file is automatically generated. DO NOT EDIT
|
||||
Reference in New Issue
Block a user