UNPKG

aniki

Version:

Aniki is an easy-to-use NPM module that gets information about your favorite anime and manga.

710 lines (709 loc) 22.7 kB
/** * @interface * @description This interface is the JSON response of the MangaKitsu#find and MangaKitsu#list Promise. */ interface IKitsuManga { /** * @property Get the content of the request (starting only with data) * @example * ```js * manga.find({ query: "oshi no ko", offset: 0 }).then(r => console.log(r.data[0])) // Calling the first result with [0]. * ``` */ data: [ { /** * @property The identifiant (ID) of the manga. */ id: string; /** * @property The type of the requested content (in logic: manga) */ type: string; links: { self: string; }; /** * @property The main attributes (manga informations) * @example * ```js * manga.find({ query: "oshi no ko", offset: 0}).then(r=> console.log(r.data[0].attributes)) // { ... } * ``` */ attributes: { /** * @property The creation date of the data from Kitsu.io (ISO 8601) */ createdAt: Date; /** * @property The update date of the data from Kitsu.io. (ISO 8601) */ updatedAt: Date; /** * @property The title with - (oshi-no-ko) */ slug: string; /** * @property The synopsis (description) of the manga */ synopsis: string; /** * @property The description of the manga. */ description: string; /** * @property The top offset of the cover image. * Seems deprecated in docs but some mangas have it so... */ coverImageTopOffset: number; /** * @property Titles in different languages. */ titles: { /** * @property Title in english version. */ en: string; /** * @property Title in japanese but in readable version. (like "Oshi no ko") */ en_jp: string; /** * @property Title in japanese. (like "推しの子") */ ja_jp: string; /** * @property Title in Thai. (like "เกิดใหม่เป็นลูกโอชิ") */ th_th?: string; /** * @property Title in Korean. */ ko_kr?: string; /** * @property Title in Russian. */ ru_ru?: string; }; /** * @property Canonical title. (mostly used for SEO) */ canonicalTitle: string; /** * @property Abbreviated titles. (like Roshidere) */ abbreviatedTitles: string[]; averageRating: string | null; ratingFrequencies: { "2": string; "3": string; "4": string; "5": string; "6": string; "7": string; "8": string; "9": string; "10": string; "11": string; "12": string; "13": string; "14": string; "15": string; "16": string; "17": string; "18": string; "19": string; "20": string; }; userCount: number; favoritesCount: number; /** * @property The official manga start date. */ startDate: string; /** * @property The official manga end date. */ endDate: string; /** * @property The approximate date of the next release. */ nextRelease: string | null; /** * @property The popularity rank of the manga. (used for Kitsu.app) */ popularityRank: number; ratingRank: number; /** * @property Age rating of the manga. (**G**: *General Audiences*, **PG**: *Parental Guidance Suggested*, **R**: *Restricted*, **R18**: *Restricted for 18 years old or older*.) */ ageRating: "G" | "PG" | "R"; ageRatingGuide: string | null; subtype: "manga" | "manhwa" | "manhua" | "novel" | "oneshot" | "doujin" | "oel"; /** * @property the actual status of the manga. */ status: "current" | "finished" | "tba" | "unreleased" | "upcoming"; /** * @property If the manga is **t**o **b**e **a**nnounced. */ tba: string | null; /** * @property the poster image (aka main image) of the manga. Available in different sizes. */ posterImage: { tiny: string; large: string; small: string; medium: string; original: string; meta: { dimensions: { tiny: { width: number; height: number; }; large: { width: number; height: number; }; small: { width: number; height: number; }; medium: { width: number; height: number; }; }; }; }; /** * @property The cover image of the manga, mostly used as background image. Available in different sizes. */ coverImage: { tiny: string; large: string; small: string; original: string; meta: { dimensions: { tiny: { width: number; height: number; }; large: { width: number; height: number; }; small: { width: number; height: number; }; }; }; }; /** * @property Number of chapters planned. */ chapterCount: number; /** * @property Number of volumes planned. */ volumeCount: number; serialization: string; }; relationships: { categories: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; castings: { links: { self: string; related: string; }; }; mappings: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; mediaRelationships: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; characters: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; staff: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; productions: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; quotes: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; chapters: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; }; } ]; } /** * @interface * @description This interface is the JSON response of the MangaKitsu#findById Promise (single object). */ interface IKitsuMangaSingle { /** * @property Get the content of the request (starting only with data) * @example * ```js * manga.find({ query: "oshi no ko", offset: 0 }).then(r => console.log(r.data[0])) // Calling the first result with [0]. * ``` */ data: { /** * @property The identifiant (ID) of the manga. */ id: string; /** * @property The type of the requested content (in logic: manga) */ type: string; links: { self: string; }; /** * @property The main attributes (manga informations) * @example * ```js * manga.find({ query: "oshi no ko", offset: 0}).then(r=> console.log(r.data[0].attributes)) // { ... } * ``` */ attributes: { /** * @property The creation date of the data from Kitsu.io (ISO 8601) */ createdAt: Date; /** * @property The update date of the data from Kitsu.io. (ISO 8601) */ updatedAt: Date; /** * @property The title with - (oshi-no-ko) */ slug: string; /** * @property The synopsis (description) of the manga */ synopsis: string; /** * @property The description of the manga. */ description: string; /** * @property The top offset of the cover image. * Seems deprecated in docs but some mangas have it so... */ coverImageTopOffset: number; /** * @property Titles in different languages. */ titles: { /** * @property Title in english version. */ en: string; /** * @property Title in japanese but in readable version. (like "Oshi no ko") */ en_jp: string; /** * @property Title in japanese. (like "推しの子") */ ja_jp: string; /** * @property Title in Thai. (like "เกิดใหม่เป็นลูกโอชิ") */ th_th?: string; /** * @property Title in Korean. */ ko_kr?: string; /** * @property Title in Russian. */ ru_ru?: string; }; /** * @property Canonical title. (mostly used for SEO) */ canonicalTitle: string; /** * @property Abbreviated titles. (like Roshidere) */ abbreviatedTitles: string[]; averageRating: string | null; ratingFrequencies: { "2": string; "3": string; "4": string; "5": string; "6": string; "7": string; "8": string; "9": string; "10": string; "11": string; "12": string; "13": string; "14": string; "15": string; "16": string; "17": string; "18": string; "19": string; "20": string; }; userCount: number; favoritesCount: number; /** * @property The official manga start date. */ startDate: string; /** * @property The official manga end date. */ endDate: string; /** * @property The approximate date of the next release. */ nextRelease: string | null; /** * @property The popularity rank of the manga. (used for Kitsu.app) */ popularityRank: number; ratingRank: number; /** * @property Age rating of the manga. (**G**: *General Audiences*, **PG**: *Parental Guidance Suggested*, **R**: *Restricted*, **R18**: *Restricted for 18 years old or older*.) */ ageRating: "G" | "PG" | "R"; ageRatingGuide: string | null; subtype: "manga" | "manhwa" | "manhua" | "novel" | "oneshot" | "doujin" | "oel"; status: "current" | "finished" | "tba" | "unreleased" | "upcoming"; tba: string | null; posterImage: { tiny: string; large: string; small: string; medium: string; original: string; meta: { dimensions: { tiny: { width: number; height: number; }; large: { width: number; height: number; }; small: { width: number; height: number; }; medium: { width: number; height: number; }; }; }; }; coverImage: { tiny: string; large: string; small: string; original: string; meta: { dimensions: { tiny: { width: number; height: number; }; large: { width: number; height: number; }; small: { width: number; height: number; }; }; }; }; chapterCount: number; volumeCount: number; serialization: string; }; relationships: { categories: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; castings: { links: { self: string; related: string; }; }; mappings: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; mediaRelationships: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; characters: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; staff: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; productions: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; quotes: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; chapters: { data: Array<{ id: string; type: string; }>; links: { self: string; related: string; }; }; }; }; } /** * @interface * @description The JSON response of the request from MangaKitsu#chapter * @since 1.3.0 */ interface IKitsuChapter { data: { /** * @property The identifiant (ID) of the manga. */ id: string; /** * @property The type of the requested content (in logic: manga) */ type: string; links: { self: string; }; attributes: { createdAt: string; updatedAt: string; synopsis: string; description: string; titles: { en_jp: string; en_us: string; ja_jp: string; }; canonicalTitle: string; seasonNumber: number; number: number; relativeNumber: number; airdate: string; length: number; thumbnail: { original: string; meta: { dimensions: object; }; }; }; relationships: { media: { links: { self: string; related: string; }; }; videos: { links: { self: string; related: string; }; }; }; }; } /** * @interface * @description The JSON response of the request from MangaKitsu#chapter * @since 1.3.0 */ interface IKitsuChapters { data: [ { /** * @property The identifiant (ID) of the manga. */ id: string; /** * @property The type of the requested content (in logic: manga) */ type: string; links: { self: string; }; attributes: { createdAt: string; updatedAt: string; synopsis: string; description: string; titles: { en_jp: string; en_us: string; ja_jp: string; }; canonicalTitle: string; seasonNumber: number; number: number; relativeNumber: number; airdate: string; length: number; thumbnail: { original: string; meta: { dimensions: object; }; }; }; relationships: { media: { links: { self: string; related: string; }; }; videos: { links: { self: string; related: string; }; }; }; } ]; } export { IKitsuChapter, IKitsuChapters, IKitsuManga, IKitsuMangaSingle };