diff --git a/ANIWATCH_README.md b/ANIWATCH_README.md
new file mode 100644
index 0000000..f0870b3
--- /dev/null
+++ b/ANIWATCH_README.md
@@ -0,0 +1,1210 @@
+
+
+
+
+
+
+# Aniwatch
+
+
+
+
+
+
+
+[](https://github.com/ghoshRitesh12/aniwatch/actions/workflows/publish.yml)
+
+[](https://github.com/ghoshRitesh12/aniwatch/blob/main/LICENSE)
+
+
+
+
+
+
+
+[](https://github.com/ghoshRitesh12/aniwatch/stargazers)
+[](https://github.com/ghoshRitesh12/aniwatch/network/members)
+[](https://github.com/ghoshRitesh12/aniwatch/issues?q=is%3Aissue+is%3Aopen+)
+[](https://github.com/ghoshRitesh12/aniwatch/releases/latest)
+
+
+
+> [!IMPORTANT]
+>
+> 1. This package is just an unofficial package for [hianimez.to](https://hianimez.to) and is in no other way officially related to the same.
+> 2. The content that this package provides is not mine, nor is it hosted by me. These belong to their respective owners. This package just demonstrates how to build a package that scrapes websites and uses their content.
+
+## Table of Contents
+
+- [Quick Start](#quick-start)
+ - [Installation](#installation)
+ - [Example Usage](#example-usage)
+- [Documentation](#documentation)
+- - [getHomePage](#gethomepage)
+ - [getAZList](#getazlist)
+ - [getQtipInfo](#getqtipinfo)
+ - [getAnimeAboutInfo](#getanimeaboutinfo)
+ - [getAnimeSearchResults](#getanimesearchresults)
+ - [getAnimeSearchSuggestion](#getanimesearchsuggestion)
+ - [getProducerAnimes](#getproduceranimes)
+ - [getGenreAnime](#getgenreanime)
+ - [getAnimeCategory](#getanimecategory)
+ - [getEstimatedSchedule](#getestimatedschedule)
+ - [getNextEpisodeSchedule](#getnextepisodeschedule)
+ - [getAnimeEpisodes](#getanimeepisodes)
+ - [getEpisodeServers](#getepisodeservers)
+ - [getAnimeEpisodeSources](#getanimeepisodesources)
+- [Development](#development)
+- [Thanks](#thanks)
+- [Support](#support)
+- [License](#license)
+- [Contributors](#contributors)
+- [Star History](#star-history)
+
+## Quick start
+
+### Installation
+
+To use `aniwatch` package in your project, run:
+
+```bash
+pnpm add aniwatch
+# or "yarn add aniwatch"
+# or "npm install aniwatch"
+```
+
+### Example usage
+
+Example - getting information about an anime by providing it's unique anime id, using anime [Steins;Gate](https://www.imdb.com/title/tt1910272/) with `steinsgate-3` unique anime id as an example.
+
+```javascript
+import { HiAnime, HiAnimeError } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+try {
+ const data: HiAnime.ScrapedAnimeAboutInfo = await hianime.getInfo(
+ "steinsgate-3"
+ );
+ console.log(data);
+} catch (err) {
+ console.error(err instanceof HiAnimeError, err);
+}
+```
+
+
+
+
+
+### `getHomePage`
+
+
+
+#### Sample Usage
+
+```typescript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+hianime
+ .getHomePage()
+ .then((data) => console.log(data))
+ .catch((err) => console.error(err));
+```
+
+#### Response Schema
+
+```javascript
+{
+ genres: ["Action", "Cars", "Adventure", ...],
+ latestEpisodeAnimes: [
+ {
+ id: string,
+ name: string,
+ poster: string,
+ type: string,
+ episodes: {
+ sub: number,
+ dub: number,
+ }
+ },
+ {...},
+ ],
+ spotlightAnimes: [
+ {
+ id: string,
+ name: string,
+ jname: string,
+ poster: string,
+ description: string,
+ rank: number,
+ otherInfo: string[],
+ episodes: {
+ sub: number,
+ dub: number,
+ },
+ },
+ {...},
+ ],
+ top10Animes: {
+ today: [
+ {
+ episodes: {
+ sub: number,
+ dub: number,
+ },
+ id: string,
+ name: string,
+ poster: string,
+ rank: number
+ },
+ {...},
+ ],
+ month: [...],
+ week: [...]
+ },
+ topAiringAnimes: [
+ {
+ id: string,
+ name: string,
+ jname: string,
+ poster: string,
+ },
+ {...},
+ ],
+ topUpcomingAnimes: [
+ {
+ id: string,
+ name: string,
+ poster: string,
+ duration: string,
+ type: string,
+ rating: string,
+ episodes: {
+ sub: number,
+ dub: number,
+ }
+ },
+ {...},
+ ],
+ trendingAnimes: [
+ {
+ id: string,
+ name: string,
+ poster: string,
+ rank: number,
+ },
+ {...},
+ ],
+ mostPopularAnimes: [
+ {
+ id: string,
+ name: string,
+ poster: string,
+ type: string,
+ episodes: {
+ sub: number,
+ dub: number,
+ }
+ },
+ {...},
+ ],
+ mostFavoriteAnimes: [
+ {
+ id: string,
+ name: string,
+ poster: string,
+ type: string,
+ episodes: {
+ sub: number,
+ dub: number,
+ }
+ },
+ {...},
+ ],
+ latestCompletedAnimes: [
+ {
+ id: string,
+ name: string,
+ poster: string,
+ type: string,
+ episodes: {
+ sub: number,
+ dub: number,
+ }
+ },
+ {...},
+ ],
+}
+
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+
+
+
+
+### `getAZList`
+
+
+
+#### Parameters
+
+| Parameter | Type | Description | Required? | Default |
+| :----------: | :----: | :-------------------------------------------------------------------------------------------------: | :-------: | :-----: |
+| `sortOption` | string | The az-list sort option. Possible values include: "all", "other", "0-9" and all english alphabets . | Yes | -- |
+| `page` | number | The page number of the result. | No | `1` |
+
+#### Sample Usage
+
+```javascript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+hianime
+ .getAZList("0-9", 1)
+ .then((data) => console.log(data))
+ .catch((err) => console.error(err));
+```
+
+#### Response Schema
+
+```javascript
+{
+ sortOption: "0-9",
+ animes: [
+ {
+ id: string,
+ name: string,
+ jname: string,
+ poster: string,
+ duration: string,
+ type: string,
+ rating: string,
+ episodes: {
+ sub: number ,
+ dub: number
+ }
+ },
+ {...}
+ ],
+ totalPages: 1,
+ currentPage: 1,
+ hasNextPage: false
+}
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+
+
+
+
+### `getQtipInfo`
+
+
+
+#### Parameters
+
+| Parameter | Type | Description | Required? | Default |
+| :-------: | :----: | :----------------------------------: | :-------: | :-----: |
+| `animeId` | string | The unique anime id (in kebab case). | Yes | -- |
+
+#### Sample Usage
+
+```javascript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+hianime
+ .getQtipInfo("one-piece-100")
+ .then((data) => console.log(data))
+ .catch((err) => console.error(err));
+```
+
+#### Response Schema
+
+```javascript
+{
+ anime: {
+ id: "one-piece-100",
+ name: "One Piece",
+ malscore: string,
+ quality: string,
+ episodes: {
+ sub: number,
+ dub: number
+ },
+ type: string,
+ description: string,
+ jname: string,
+ synonyms: string,
+ aired: string,
+ status: string,
+ genres: ["Action", "Adventure", "Comedy", "Drama", "Fantasy", "Shounen", "Drama", "Fantasy", "Shounen", "Fantasy", "Shounen", "Shounen", "Super Power"]
+ }
+}
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+
+
+
+
+### `getAnimeAboutInfo`
+
+
+
+#### Parameters
+
+| Parameter | Type | Description | Required? | Default |
+| :-------: | :----: | :----------------------------------: | :-------: | :-----: |
+| `animeId` | string | The unique anime id (in kebab case). | Yes | -- |
+
+#### Sample Usage
+
+```javascript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+hianime
+ .getInfo("steinsgate-3")
+ .then((data) => console.log(data))
+ .catch((err) => console.error(err));
+```
+
+#### Response Schema
+
+```javascript
+{
+ anime: [
+ info: {
+ id: string,
+ name: string,
+ poster: string,
+ description: string,
+ stats: {
+ rating: string,
+ quality: string,
+ episodes: {
+ sub: number,
+ dub: number
+ },
+ type: string,
+ duration: string
+ },
+ promotionalVideos: [
+ {
+ title: string | undefined,
+ source: string | undefined,
+ thumbnail: string | undefined
+ },
+ {...},
+ ],
+ characterVoiceActor: [
+ {
+ character: {
+ id: string,
+ poster: string,
+ name: string,
+ cast: string
+ },
+ voiceActor: {
+ id: string,
+ poster: string,
+ name: string,
+ cast: string
+ }
+ },
+ {...},
+ ]
+ }
+ moreInfo: {
+ aired: string,
+ genres: ["Action", "Mystery", ...],
+ status: string,
+ studios: string,
+ duration: string
+ ...
+ }
+ ],
+ mostPopularAnimes: [
+ {
+ episodes: {
+ sub: number,
+ dub: number,
+ },
+ id: string,
+ jname: string,
+ name: string,
+ poster: string,
+ type: string
+ },
+ {...},
+ ],
+ recommendedAnimes: [
+ {
+ id: string,
+ name: string,
+ poster: string,
+ duration: string,
+ type: string,
+ rating: string,
+ episodes: {
+ sub: number,
+ dub: number,
+ }
+ },
+ {...},
+ ],
+ relatedAnimes: [
+ {
+ id: string,
+ name: string,
+ poster: string,
+ duration: string,
+ type: string,
+ rating: string,
+ episodes: {
+ sub: number,
+ dub: number,
+ }
+ },
+ {...},
+ ],
+ seasons: [
+ {
+ id: string,
+ name: string,
+ title: string,
+ poster: string,
+ isCurrent: boolean
+ },
+ {...}
+ ]
+}
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+
+
+
+
+### `getAnimeSearchResults`
+
+
+
+#### Parameters
+
+| Parameter | Type | Description | Required? | Default |
+| :----------: | :----: | :---------------------------------------------------------------: | :-------: | :-----: |
+| `q` | string | The search query, i.e. the title of the item you are looking for. | Yes | -- |
+| `page` | number | The page number of the result. | No | `1` |
+| `type` | string | Type of the anime. eg: `movie` | No | -- |
+| `status` | string | Status of the anime. eg: `finished-airing` | No | -- |
+| `rated` | string | Rating of the anime. eg: `r+` or `pg-13` | No | -- |
+| `score` | string | Score of the anime. eg: `good` or `very-good` | No | -- |
+| `season` | string | Season of the aired anime. eg: `spring` | No | -- |
+| `language` | string | Language category of the anime. eg: `sub` or `sub-&-dub` | No | -- |
+| `start_date` | string | Start date of the anime(yyyy-mm-dd). eg: `2014-10-2` | No | -- |
+| `end_date` | string | End date of the anime(yyyy-mm-dd). eg: `2010-12-4` | No | -- |
+| `sort` | string | Order of sorting the anime result. eg: `recently-added` | No | -- |
+| `genres` | string | Genre of the anime, separated by commas. eg: `isekai,shounen` | No | -- |
+
+> [!TIP]
+>
+> For both `start_date` and `end_date`, year must be mentioned. If you wanna omit date or month specify `0` instead. Eg: omitting date -> 2014-10-0, omitting month -> 2014-0-12, omitting both -> 2014-0-0
+
+#### Sample Usage
+
+```javascript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+hianime
+ .search("monster", 1, {
+ genres: "seinen,psychological",
+ })
+ .then((data) => {
+ console.log(data);
+ })
+ .catch((err) => {
+ console.error(err);
+ });
+```
+
+#### Response Schema
+
+```javascript
+{
+ animes: [
+ {
+ id: string,
+ name: string,
+ poster: string,
+ duration: string,
+ type: string,
+ rating: string,
+ episodes: {
+ sub: number,
+ dub: number,
+ }
+ },
+ {...},
+ ],
+ mostPopularAnimes: [
+ {
+ episodes: {
+ sub: number,
+ dub: number,
+ },
+ id: string,
+ jname: string,
+ name: string,
+ poster: string,
+ type: string
+ },
+ {...},
+ ],
+ currentPage: 1,
+ totalPages: 1,
+ hasNextPage: false,
+ searchQuery: string,
+ searchFilters: {
+ [filter_name]: [filter_value]
+ ...
+ }
+}
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+
+
+
+
+### `getAnimeSearchSuggestion`
+
+
+
+#### Parameters
+
+| Parameter | Type | Description | Required? | Default |
+| :-------: | :----: | :--------------------------: | :-------: | :-----: |
+| `q` | string | The search suggestion query. | Yes | -- |
+
+#### Sample Usage
+
+```javascript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+hianime
+ .searchSuggestions("one piece")
+ .then((data) => console.log(data))
+ .catch((err) => console.error(err));
+```
+
+#### Response Schema
+
+```javascript
+{
+ suggestions: [
+ {
+ id: string,
+ name: string,
+ poster: string,
+ jname: string,
+ moreInfo: ["Mar 4, 2000", "Movie", "50m"]
+ },
+ {...},
+ ],
+}
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+
+
+
+
+### `getProducerAnimes`
+
+
+
+#### Parameters
+
+| Parameter | Type | Description | Required? | Default |
+| :-------: | :----: | :-----------------------------------------: | :-------: | :-----: |
+| `name` | string | The name of anime producer (in kebab case). | Yes |
+| `page` | number | The page number of the result. | No | `1` |
+
+#### Sample Usage
+
+```javascript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+hianime
+ .getProducerAnimes("toei-animation", 2)
+ .then((data) => console.log(data))
+ .catch((err) => console.error(err));
+```
+
+#### Response Schema
+
+```javascript
+{
+ producerName: "Toei Animation Anime",
+ animes: [
+ {
+ id: string,
+ name: string,
+ poster: string,
+ duration: string,
+ type: string,
+ rating: string,
+ episodes: {
+ sub: number,
+ dub: number,
+ }
+ },
+ {...},
+ ],
+ top10Animes: {
+ today: [
+ {
+ episodes: {
+ sub: number,
+ dub: number,
+ },
+ id: string,
+ name: string,
+ poster: string,
+ rank: number
+ },
+ {...},
+ ],
+ month: [...],
+ week: [...]
+ },
+ topAiringAnimes: [
+ {
+ episodes: {
+ sub: number,
+ dub: number,
+ },
+ id: string,
+ jname: string,
+ name: string,
+ poster: string,
+ type: string
+ },
+ {...},
+ ],
+ currentPage: 2,
+ totalPages: 11,
+ hasNextPage: true,
+}
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+
+
+
+
+### `getGenreAnime`
+
+
+
+#### Parameters
+
+| Parameter | Type | Description | Required? | Default |
+| :-------: | :----: | :--------------------------------------: | :-------: | :-----: |
+| `name` | string | The name of anime genre (in kebab case). | Yes | -- |
+| `page` | number | The page number of the result. | No | `1` |
+
+#### Sample Usage
+
+```javascript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+hianime
+ .getGenreAnime("shounen", 2)
+ .then((data) => console.log(data))
+ .catch((err) => console.error(err));
+```
+
+#### Response Schema
+
+```javascript
+{
+ genreName: "Shounen Anime",
+ animes: [
+ {
+ id: string,
+ name: string,
+ poster: string,
+ duration: string,
+ type: string,
+ rating: string,
+ episodes: {
+ sub: number,
+ dub: number,
+ }
+ },
+ {...},
+ ],
+ genres: ["Action", "Cars", "Adventure", ...],
+ topAiringAnimes: [
+ {
+ episodes: {
+ sub: number,
+ dub: number,
+ },
+ id: string,
+ jname: string,
+ name: string,
+ poster: string,
+ type: string
+ },
+ {...},
+ ],
+ currentPage: 2,
+ totalPages: 38,
+ hasNextPage: true
+}
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+
+
+
+
+### `getAnimeCategory`
+
+
+
+#### Parameters
+
+| Parameter | Type | Description | Required? | Default |
+| :--------: | :----: | :----------------------------: | :-------: | :-----: |
+| `category` | string | The category of anime. | Yes | -- |
+| `page` | number | The page number of the result. | No | `1` |
+
+#### Sample Usage
+
+```javascript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+hianime
+ .getCategoryAnime("subbed-anime")
+ .then((data) => console.log(data))
+ .catch((err) => console.error(err));
+
+// categories ->
+// "most-favorite", "most-popular", "subbed-anime", "dubbed-anime",
+// "recently-updated", "recently-added", "top-upcoming", "top-airing",
+// "movie", "special", "ova", "ona", "tv", "completed"
+```
+
+#### Response Schema
+
+```javascript
+{
+ category: "TV Series Anime",
+ animes: [
+ {
+ id: string,
+ name: string,
+ poster: string,
+ duration: string,
+ type: string,
+ rating: string,
+ episodes: {
+ sub: number,
+ dub: number,
+ }
+ },
+ {...},
+ ],
+ genres: ["Action", "Cars", "Adventure", ...],
+ top10Animes: {
+ today: [
+ {
+ episodes: {
+ sub: number,
+ dub: number,
+ },
+ id: string,
+ name: string,
+ poster: string,
+ rank: number
+ },
+ {...},
+ ],
+ month: [...],
+ week: [...]
+ },
+ currentPage: 2,
+ totalPages: 100,
+ hasNextPage: true
+}
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+
+
+
+
+### `getEstimatedSchedule`
+
+
+
+#### Parameters
+
+| Parameter | Type | Description | Required? | Default |
+| :-----------------: | :----: | :------------------------------------------------------------------: | :-------: | :-----: |
+| `date (yyyy-mm-dd)` | string | The date of the desired schedule. (months & days must have 2 digits) | Yes | -- |
+| `tzOffset` | number | The timezone offset in minutes (defaults to -330 i.e. IST) | No | `-330` |
+
+#### Sample Usage
+
+```javascript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+const timezoneOffset = -330; // IST offset in minutes
+
+hianime
+ .getEstimatedSchedule("2025-06-09", timezoneOffset)
+ .then((data) => console.log(data))
+ .catch((err) => console.error(err));
+```
+
+#### Response Schema
+
+```javascript
+{
+ scheduledAnimes: [
+ {
+ id: string,
+ time: string, // 24 hours format
+ name: string,
+ jname: string,
+ airingTimestamp: number,
+ secondsUntilAiring: number
+ },
+ {...}
+ ]
+}
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+##
+
+
+
+
+
+### `getNextEpisodeSchedule`
+
+
+
+#### Parameters
+
+| Parameter | Type | Description | Required? | Default |
+| :-------: | :----: | :----------------------------------: | :-------: | :-----: |
+| `animeId` | string | The unique anime id (in kebab case). | Yes | -- |
+
+#### Sample Usage
+
+```javascript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+hianime
+ .getNextEpisodeSchedule("one-piece-100")
+ .then((data) => console.log(data))
+ .catch((err) => console.error(err));
+```
+
+#### Response Schema
+
+```javascript
+{
+ airingISOTimestamp: string | null,
+ airingTimestamp: number | null,
+ secondsUntilAiring: number | null
+}
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+
+
+
+
+### `getAnimeEpisodes`
+
+
+
+#### Parameters
+
+| Parameter | Type | Description | Required? | Default |
+| :-------: | :----: | :------------------: | :-------: | :-----: |
+| `animeId` | string | The unique anime id. | Yes | -- |
+
+#### Sample Usage
+
+```javascript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+hianime
+ .getEpisodes("steinsgate-3")
+ .then((data) => console.log(data))
+ .catch((err) => console.error(err));
+```
+
+#### Response Schema
+
+```javascript
+{
+ totalEpisodes: 24,
+ episodes: [
+ {
+ number: 1,
+ isFiller: false,
+ title: "Turning Point",
+ episodeId: "steinsgate-3?ep=213"
+ },
+ {...}
+ ]
+}
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+
+
+
+
+### `getEpisodeServers`
+
+
+
+#### Parameters
+
+| Parameter | Type | Description | Required? | Default |
+| :---------: | :----: | :--------------------: | :-------: | :-----: |
+| `episodeId` | string | The unique episode id. | Yes | -- |
+
+#### Request sample
+
+```javascript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+hianime
+ .getEpisodeServers("steinsgate-0-92?ep=2055")
+ .then((data) => console.log(data))
+ .catch((err) => console.error(err));
+```
+
+#### Response Schema
+
+```javascript
+{
+ episodeId: "steinsgate-0-92?ep=2055",
+ episodeNo: 5,
+ sub: [
+ {
+ serverId: 4,
+ serverName: "vidstreaming",
+ },
+ {...}
+ ],
+ dub: [
+ {
+ serverId: 1,
+ serverName: "megacloud",
+ },
+ {...}
+ ],
+ raw: [
+ {
+ serverId: 1,
+ serverName: "megacloud",
+ },
+ {...}
+ ],
+}
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+
+
+
+
+### `getAnimeEpisodeSources`
+
+
+
+#### Parameters
+
+| Parameter | Type | Description | Required? | Default |
+| :--------: | :----: | :--------------------------------------------------: | :-------: | :--------------: |
+| `id` | string | The id of the episode. | Yes | -- |
+| `server` | string | The name of the server. | No | `"vidstreaming"` |
+| `category` | string | The category of the episode ('sub', 'dub' or 'raw'). | No | `"sub"` |
+
+#### Request sample
+
+```javascript
+import { HiAnime } from "aniwatch";
+
+const hianime = new HiAnime.Scraper();
+
+hianime
+ .getEpisodeSources("steinsgate-3?ep=230", "hd-1", "sub")
+ .then((data) => console.log(data))
+ .catch((err) => console.error(err));
+```
+
+#### Response Schema
+
+```javascript
+{
+ headers: {
+ Referer: string,
+ "User-Agent": string,
+ ...
+ },
+ sources: [
+ {
+ url: string, // .m3u8 hls streaming file
+ isM3U8: boolean,
+ quality?: string,
+ },
+ {...}
+ ],
+ subtitles: [
+ {
+ lang: "English",
+ url: string, // .vtt subtitle file
+ default: boolean,
+ },
+ {...}
+ ],
+ anilistID: number | null,
+ malID: number | null,
+}
+```
+
+[๐ผ Back to Top](#table-of-contents)
+
+
+
+## Development
+
+Pull requests are always welcome. If you encounter any bug or want to add a new feature to this package, consider creating a new [issue](https://github.com/ghoshRitesh12/aniwatch/issues). If you wish to contribute to this project, read the [CONTRIBUTING.md](https://github.com/ghoshRitesh12/aniwatch/blob/main/CONTRIBUTING.md) file.
+
+## Contributors
+
+Thanks to the following people for keeping this project alive and relevant.
+
+[](https://github.com/ghoshRitesh12/aniwatch/graphs/contributors)
+
+## Thanks
+
+- [consumet.ts](https://github.com/consumet/consumet.ts)
+- [api.consumet.org](https://github.com/consumet/api.consumet.org)
+
+## Support
+
+Don't forget to leave a star ๐. You can also follow me on X (Twitter) [@riteshgsh](https://x.com/riteshgsh).
+
+## License
+
+This project is licensed under the [MIT License](https://opensource.org/license/mit/) - see the [LICENSE](https://github.com/ghoshRitesh12/aniwatch/blob/main/LICENSE) file for more details.
+
+
+
+## Star History
+
+
diff --git a/CONSUMET_README.md b/CONSUMET_README.md
new file mode 100644
index 0000000..be78140
--- /dev/null
+++ b/CONSUMET_README.md
@@ -0,0 +1,120 @@
+
+
+ consumet.ts
+
+consumet.ts is a Node library which provides high-level APIs to get information about several entertainment mediums like books, movies, comics, anime, manga, etc.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Table of Contents
+
+- [Quick Start](#quick-start)
+ - [Installation](#installation)
+ - [Usage](#usage)
+- [Documentation](#documentation)
+- [Ecosystem](#ecosystem)
+- [Provider Request](#provider-request)
+- [Contributing](#contributing)
+- [Support](#support)
+- [Contributors โจ](#contributors-)
+ - [Credits](#credits)
+- [License](#license)
+
+## Quick Start
+
+### Installation
+
+To use consumet.ts in your project, run:
+```bash
+yarn add @consumet/extensions
+# or "npm i @consumet/extensions"
+```
+
+### Usage
+
+**Example** - searching for a book using the libgen provider.
+```ts
+import { BOOKS } from "@consumet/extensions"
+
+// Create a new instance of the Libgen provider
+const books = new BOOKS.Libgen();
+// Search for a book. In this case, "Pride and Prejudice"
+const data = books.search('pride and prejudice').then(data => {
+ // print results
+ console.log(data)
+})
+```
+
+**Example** - searching for anime using the gogoanime provider.
+```ts
+import { ANIME } from "@consumet/extensions"
+
+// Create a new instance of the Gogoanime provider
+const gogoanime = new ANIME.Gogoanime();
+// Search for an anime. In this case, "One Piece"
+const results = gogoanime.search("One Piece").then(data => {
+ // print results
+ console.log(data);
+})
+```
+
+Do you want to know more? Head to the [`Getting Started`](https://github.com/consumet/consumet.ts/tree/master/docs/guides/getting-started.md).
+
+## Documentation
+- [`Getting Started`](./docs/guides/getting-started.md)
+- [`Guides`](https://github.com/consumet/consumet.ts/tree/master/docs)
+- [`Anime`](./docs/guides/anime.md)
+- [`Manga`](./docs/guides/manga.md)
+- [`Books`](./docs/guides/books.md)
+- [`Movies`](./docs/guides/movies.md)
+- [`Light Novels`](./docs/guides/light-novels.md)
+- [`Comics`](./docs/guides/comics.md)
+- [`Meta`](./docs/guides/meta.md)
+- [`News`](./docs/guides/news.md)
+
+## Ecosystem
+- [Rest-API Reference](https://docs.consumet.org/) - public rest api documentation
+- [Examples](https://github.com/consumet/consumet.ts/tree/master/examples) - examples of using consumet.ts.
+- [Provider Status](https://github.com/consumet/providers-status/blob/main/README.md) - A list of providers and their status.
+- [Changelog](https://github.com/consumet/consumet.ts/blob/master/CHANGELOG.md) - See the latest changes.
+- [Discord Server](https://discord.gg/qTPfvMxzNH) - Join our discord server and chat with the maintainers.
+
+## Provider Request
+Make a new [issue](https://github.com/consumet/consumet.ts/issues/new?assignees=&labels=provider+request&template=provider-request.yml) with the name of the provider on the title, as well as a link to the provider in the body paragraph.
+
+## Contributing
+Check out [contributing guide](https://github.com/consumet/consumet.ts/blob/master/CONTRIBUTING.md) to get an overview of consumet.ts development.
+
+## Support
+You can contact the maintainers of consumet.ts via [email](mailto:consumet.org@gmail.com), or [join the discord server](https://discord.gg/qTPfvMxzNH) (Recommended).
+
+
+
+
+
+## Contributors โจ
+Thanks to the following people for keeping this project alive and thriving.
+
+[](https://github.com/consumet/consumet.ts/graphs/contributors)
+
+### Credits
+- [Anify API](https://github.com/Eltik/Anify) - Used as a caching layer for the meta/anilist provider to speed up responses.
+
+## License
+Licensed under [GPL-3.0](./LICENSE).
diff --git a/README.md b/README.md
index f0870b3..e99c423 100644
--- a/README.md
+++ b/README.md
@@ -1,1210 +1,24 @@
-
-
-
-
-
+
-# Aniwatch
+### Quick Recap
+On 2026-03-23 Cocksucker [Crunchyroll has DMCA striked these GitHub repositories](https://github.com/github/dmca/blob/master/2026/03/2026-03-23-crunchyroll.md) for copyright infringement instead of releasing a pr statement for the data breach that they experienced around the same time, I have gained all prior packages for `aniwatch` and `@consumet/extension`, but unfortunately I couldn't archieve the source code.
-
+### Rant
+I won't force you to stop using crunchyroll but these motherfuckers have there priorities upside down not fixing there core service was the reason for these api/sdk/scraper to exist, thought not ethical/legal they focused on taking down piracy site and innocent individuals git repos as if it will stop it all together. There only so much these archive can provide so use it for the temporary solution it is
-
+### Related Links:
+- https://github.com/consumet/consumet.ts
+- https://github.com/ghoshRitesh12/aniwatch-api
+- https://github.com/ghoshRitesh12/aniwatch
+- https://github.com/consumet/api.consumet.org
+- https://github.com/github/dmca/blob/master/2026/03/2026-03-23-crunchyroll.md
-
-[](https://github.com/ghoshRitesh12/aniwatch/actions/workflows/publish.yml)
-
-[](https://github.com/ghoshRitesh12/aniwatch/blob/main/LICENSE)
+- https://www.cnet.com/tech/services-and-software/crunchyroll-responds-claims-of-cyberattack/
+- https://piunikaweb.com/2026/03/23/crunchyroll-data-breach-alleged-third-party-access/
+- https://www.escudodigital.com/en/cybersecurity/hacker-claims-theft-of-100-gb-of-crunchyroll-data.html
-
+Archive of packages `aniwatch` and `@consumet/extension` are in the folder match the version and do `npm i package.zip`.
-
-
-
-[](https://github.com/ghoshRitesh12/aniwatch/stargazers)
-[](https://github.com/ghoshRitesh12/aniwatch/network/members)
-[](https://github.com/ghoshRitesh12/aniwatch/issues?q=is%3Aissue+is%3Aopen+)
-[](https://github.com/ghoshRitesh12/aniwatch/releases/latest)
-
-
-
-> [!IMPORTANT]
->
-> 1. This package is just an unofficial package for [hianimez.to](https://hianimez.to) and is in no other way officially related to the same.
-> 2. The content that this package provides is not mine, nor is it hosted by me. These belong to their respective owners. This package just demonstrates how to build a package that scrapes websites and uses their content.
-
-## Table of Contents
-
-- [Quick Start](#quick-start)
- - [Installation](#installation)
- - [Example Usage](#example-usage)
-- [Documentation](#documentation)
-- - [getHomePage](#gethomepage)
- - [getAZList](#getazlist)
- - [getQtipInfo](#getqtipinfo)
- - [getAnimeAboutInfo](#getanimeaboutinfo)
- - [getAnimeSearchResults](#getanimesearchresults)
- - [getAnimeSearchSuggestion](#getanimesearchsuggestion)
- - [getProducerAnimes](#getproduceranimes)
- - [getGenreAnime](#getgenreanime)
- - [getAnimeCategory](#getanimecategory)
- - [getEstimatedSchedule](#getestimatedschedule)
- - [getNextEpisodeSchedule](#getnextepisodeschedule)
- - [getAnimeEpisodes](#getanimeepisodes)
- - [getEpisodeServers](#getepisodeservers)
- - [getAnimeEpisodeSources](#getanimeepisodesources)
-- [Development](#development)
-- [Thanks](#thanks)
-- [Support](#support)
-- [License](#license)
-- [Contributors](#contributors)
-- [Star History](#star-history)
-
-## Quick start
-
-### Installation
-
-To use `aniwatch` package in your project, run:
-
-```bash
-pnpm add aniwatch
-# or "yarn add aniwatch"
-# or "npm install aniwatch"
-```
-
-### Example usage
-
-Example - getting information about an anime by providing it's unique anime id, using anime [Steins;Gate](https://www.imdb.com/title/tt1910272/) with `steinsgate-3` unique anime id as an example.
-
-```javascript
-import { HiAnime, HiAnimeError } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-try {
- const data: HiAnime.ScrapedAnimeAboutInfo = await hianime.getInfo(
- "steinsgate-3"
- );
- console.log(data);
-} catch (err) {
- console.error(err instanceof HiAnimeError, err);
-}
-```
-
-
-
-
-
-### `getHomePage`
-
-
-
-#### Sample Usage
-
-```typescript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-hianime
- .getHomePage()
- .then((data) => console.log(data))
- .catch((err) => console.error(err));
-```
-
-#### Response Schema
-
-```javascript
-{
- genres: ["Action", "Cars", "Adventure", ...],
- latestEpisodeAnimes: [
- {
- id: string,
- name: string,
- poster: string,
- type: string,
- episodes: {
- sub: number,
- dub: number,
- }
- },
- {...},
- ],
- spotlightAnimes: [
- {
- id: string,
- name: string,
- jname: string,
- poster: string,
- description: string,
- rank: number,
- otherInfo: string[],
- episodes: {
- sub: number,
- dub: number,
- },
- },
- {...},
- ],
- top10Animes: {
- today: [
- {
- episodes: {
- sub: number,
- dub: number,
- },
- id: string,
- name: string,
- poster: string,
- rank: number
- },
- {...},
- ],
- month: [...],
- week: [...]
- },
- topAiringAnimes: [
- {
- id: string,
- name: string,
- jname: string,
- poster: string,
- },
- {...},
- ],
- topUpcomingAnimes: [
- {
- id: string,
- name: string,
- poster: string,
- duration: string,
- type: string,
- rating: string,
- episodes: {
- sub: number,
- dub: number,
- }
- },
- {...},
- ],
- trendingAnimes: [
- {
- id: string,
- name: string,
- poster: string,
- rank: number,
- },
- {...},
- ],
- mostPopularAnimes: [
- {
- id: string,
- name: string,
- poster: string,
- type: string,
- episodes: {
- sub: number,
- dub: number,
- }
- },
- {...},
- ],
- mostFavoriteAnimes: [
- {
- id: string,
- name: string,
- poster: string,
- type: string,
- episodes: {
- sub: number,
- dub: number,
- }
- },
- {...},
- ],
- latestCompletedAnimes: [
- {
- id: string,
- name: string,
- poster: string,
- type: string,
- episodes: {
- sub: number,
- dub: number,
- }
- },
- {...},
- ],
-}
-
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-
-
-
-
-### `getAZList`
-
-
-
-#### Parameters
-
-| Parameter | Type | Description | Required? | Default |
-| :----------: | :----: | :-------------------------------------------------------------------------------------------------: | :-------: | :-----: |
-| `sortOption` | string | The az-list sort option. Possible values include: "all", "other", "0-9" and all english alphabets . | Yes | -- |
-| `page` | number | The page number of the result. | No | `1` |
-
-#### Sample Usage
-
-```javascript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-hianime
- .getAZList("0-9", 1)
- .then((data) => console.log(data))
- .catch((err) => console.error(err));
-```
-
-#### Response Schema
-
-```javascript
-{
- sortOption: "0-9",
- animes: [
- {
- id: string,
- name: string,
- jname: string,
- poster: string,
- duration: string,
- type: string,
- rating: string,
- episodes: {
- sub: number ,
- dub: number
- }
- },
- {...}
- ],
- totalPages: 1,
- currentPage: 1,
- hasNextPage: false
-}
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-
-
-
-
-### `getQtipInfo`
-
-
-
-#### Parameters
-
-| Parameter | Type | Description | Required? | Default |
-| :-------: | :----: | :----------------------------------: | :-------: | :-----: |
-| `animeId` | string | The unique anime id (in kebab case). | Yes | -- |
-
-#### Sample Usage
-
-```javascript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-hianime
- .getQtipInfo("one-piece-100")
- .then((data) => console.log(data))
- .catch((err) => console.error(err));
-```
-
-#### Response Schema
-
-```javascript
-{
- anime: {
- id: "one-piece-100",
- name: "One Piece",
- malscore: string,
- quality: string,
- episodes: {
- sub: number,
- dub: number
- },
- type: string,
- description: string,
- jname: string,
- synonyms: string,
- aired: string,
- status: string,
- genres: ["Action", "Adventure", "Comedy", "Drama", "Fantasy", "Shounen", "Drama", "Fantasy", "Shounen", "Fantasy", "Shounen", "Shounen", "Super Power"]
- }
-}
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-
-
-
-
-### `getAnimeAboutInfo`
-
-
-
-#### Parameters
-
-| Parameter | Type | Description | Required? | Default |
-| :-------: | :----: | :----------------------------------: | :-------: | :-----: |
-| `animeId` | string | The unique anime id (in kebab case). | Yes | -- |
-
-#### Sample Usage
-
-```javascript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-hianime
- .getInfo("steinsgate-3")
- .then((data) => console.log(data))
- .catch((err) => console.error(err));
-```
-
-#### Response Schema
-
-```javascript
-{
- anime: [
- info: {
- id: string,
- name: string,
- poster: string,
- description: string,
- stats: {
- rating: string,
- quality: string,
- episodes: {
- sub: number,
- dub: number
- },
- type: string,
- duration: string
- },
- promotionalVideos: [
- {
- title: string | undefined,
- source: string | undefined,
- thumbnail: string | undefined
- },
- {...},
- ],
- characterVoiceActor: [
- {
- character: {
- id: string,
- poster: string,
- name: string,
- cast: string
- },
- voiceActor: {
- id: string,
- poster: string,
- name: string,
- cast: string
- }
- },
- {...},
- ]
- }
- moreInfo: {
- aired: string,
- genres: ["Action", "Mystery", ...],
- status: string,
- studios: string,
- duration: string
- ...
- }
- ],
- mostPopularAnimes: [
- {
- episodes: {
- sub: number,
- dub: number,
- },
- id: string,
- jname: string,
- name: string,
- poster: string,
- type: string
- },
- {...},
- ],
- recommendedAnimes: [
- {
- id: string,
- name: string,
- poster: string,
- duration: string,
- type: string,
- rating: string,
- episodes: {
- sub: number,
- dub: number,
- }
- },
- {...},
- ],
- relatedAnimes: [
- {
- id: string,
- name: string,
- poster: string,
- duration: string,
- type: string,
- rating: string,
- episodes: {
- sub: number,
- dub: number,
- }
- },
- {...},
- ],
- seasons: [
- {
- id: string,
- name: string,
- title: string,
- poster: string,
- isCurrent: boolean
- },
- {...}
- ]
-}
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-
-
-
-
-### `getAnimeSearchResults`
-
-
-
-#### Parameters
-
-| Parameter | Type | Description | Required? | Default |
-| :----------: | :----: | :---------------------------------------------------------------: | :-------: | :-----: |
-| `q` | string | The search query, i.e. the title of the item you are looking for. | Yes | -- |
-| `page` | number | The page number of the result. | No | `1` |
-| `type` | string | Type of the anime. eg: `movie` | No | -- |
-| `status` | string | Status of the anime. eg: `finished-airing` | No | -- |
-| `rated` | string | Rating of the anime. eg: `r+` or `pg-13` | No | -- |
-| `score` | string | Score of the anime. eg: `good` or `very-good` | No | -- |
-| `season` | string | Season of the aired anime. eg: `spring` | No | -- |
-| `language` | string | Language category of the anime. eg: `sub` or `sub-&-dub` | No | -- |
-| `start_date` | string | Start date of the anime(yyyy-mm-dd). eg: `2014-10-2` | No | -- |
-| `end_date` | string | End date of the anime(yyyy-mm-dd). eg: `2010-12-4` | No | -- |
-| `sort` | string | Order of sorting the anime result. eg: `recently-added` | No | -- |
-| `genres` | string | Genre of the anime, separated by commas. eg: `isekai,shounen` | No | -- |
-
-> [!TIP]
->
-> For both `start_date` and `end_date`, year must be mentioned. If you wanna omit date or month specify `0` instead. Eg: omitting date -> 2014-10-0, omitting month -> 2014-0-12, omitting both -> 2014-0-0
-
-#### Sample Usage
-
-```javascript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-hianime
- .search("monster", 1, {
- genres: "seinen,psychological",
- })
- .then((data) => {
- console.log(data);
- })
- .catch((err) => {
- console.error(err);
- });
-```
-
-#### Response Schema
-
-```javascript
-{
- animes: [
- {
- id: string,
- name: string,
- poster: string,
- duration: string,
- type: string,
- rating: string,
- episodes: {
- sub: number,
- dub: number,
- }
- },
- {...},
- ],
- mostPopularAnimes: [
- {
- episodes: {
- sub: number,
- dub: number,
- },
- id: string,
- jname: string,
- name: string,
- poster: string,
- type: string
- },
- {...},
- ],
- currentPage: 1,
- totalPages: 1,
- hasNextPage: false,
- searchQuery: string,
- searchFilters: {
- [filter_name]: [filter_value]
- ...
- }
-}
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-
-
-
-
-### `getAnimeSearchSuggestion`
-
-
-
-#### Parameters
-
-| Parameter | Type | Description | Required? | Default |
-| :-------: | :----: | :--------------------------: | :-------: | :-----: |
-| `q` | string | The search suggestion query. | Yes | -- |
-
-#### Sample Usage
-
-```javascript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-hianime
- .searchSuggestions("one piece")
- .then((data) => console.log(data))
- .catch((err) => console.error(err));
-```
-
-#### Response Schema
-
-```javascript
-{
- suggestions: [
- {
- id: string,
- name: string,
- poster: string,
- jname: string,
- moreInfo: ["Mar 4, 2000", "Movie", "50m"]
- },
- {...},
- ],
-}
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-
-
-
-
-### `getProducerAnimes`
-
-
-
-#### Parameters
-
-| Parameter | Type | Description | Required? | Default |
-| :-------: | :----: | :-----------------------------------------: | :-------: | :-----: |
-| `name` | string | The name of anime producer (in kebab case). | Yes |
-| `page` | number | The page number of the result. | No | `1` |
-
-#### Sample Usage
-
-```javascript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-hianime
- .getProducerAnimes("toei-animation", 2)
- .then((data) => console.log(data))
- .catch((err) => console.error(err));
-```
-
-#### Response Schema
-
-```javascript
-{
- producerName: "Toei Animation Anime",
- animes: [
- {
- id: string,
- name: string,
- poster: string,
- duration: string,
- type: string,
- rating: string,
- episodes: {
- sub: number,
- dub: number,
- }
- },
- {...},
- ],
- top10Animes: {
- today: [
- {
- episodes: {
- sub: number,
- dub: number,
- },
- id: string,
- name: string,
- poster: string,
- rank: number
- },
- {...},
- ],
- month: [...],
- week: [...]
- },
- topAiringAnimes: [
- {
- episodes: {
- sub: number,
- dub: number,
- },
- id: string,
- jname: string,
- name: string,
- poster: string,
- type: string
- },
- {...},
- ],
- currentPage: 2,
- totalPages: 11,
- hasNextPage: true,
-}
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-
-
-
-
-### `getGenreAnime`
-
-
-
-#### Parameters
-
-| Parameter | Type | Description | Required? | Default |
-| :-------: | :----: | :--------------------------------------: | :-------: | :-----: |
-| `name` | string | The name of anime genre (in kebab case). | Yes | -- |
-| `page` | number | The page number of the result. | No | `1` |
-
-#### Sample Usage
-
-```javascript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-hianime
- .getGenreAnime("shounen", 2)
- .then((data) => console.log(data))
- .catch((err) => console.error(err));
-```
-
-#### Response Schema
-
-```javascript
-{
- genreName: "Shounen Anime",
- animes: [
- {
- id: string,
- name: string,
- poster: string,
- duration: string,
- type: string,
- rating: string,
- episodes: {
- sub: number,
- dub: number,
- }
- },
- {...},
- ],
- genres: ["Action", "Cars", "Adventure", ...],
- topAiringAnimes: [
- {
- episodes: {
- sub: number,
- dub: number,
- },
- id: string,
- jname: string,
- name: string,
- poster: string,
- type: string
- },
- {...},
- ],
- currentPage: 2,
- totalPages: 38,
- hasNextPage: true
-}
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-
-
-
-
-### `getAnimeCategory`
-
-
-
-#### Parameters
-
-| Parameter | Type | Description | Required? | Default |
-| :--------: | :----: | :----------------------------: | :-------: | :-----: |
-| `category` | string | The category of anime. | Yes | -- |
-| `page` | number | The page number of the result. | No | `1` |
-
-#### Sample Usage
-
-```javascript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-hianime
- .getCategoryAnime("subbed-anime")
- .then((data) => console.log(data))
- .catch((err) => console.error(err));
-
-// categories ->
-// "most-favorite", "most-popular", "subbed-anime", "dubbed-anime",
-// "recently-updated", "recently-added", "top-upcoming", "top-airing",
-// "movie", "special", "ova", "ona", "tv", "completed"
-```
-
-#### Response Schema
-
-```javascript
-{
- category: "TV Series Anime",
- animes: [
- {
- id: string,
- name: string,
- poster: string,
- duration: string,
- type: string,
- rating: string,
- episodes: {
- sub: number,
- dub: number,
- }
- },
- {...},
- ],
- genres: ["Action", "Cars", "Adventure", ...],
- top10Animes: {
- today: [
- {
- episodes: {
- sub: number,
- dub: number,
- },
- id: string,
- name: string,
- poster: string,
- rank: number
- },
- {...},
- ],
- month: [...],
- week: [...]
- },
- currentPage: 2,
- totalPages: 100,
- hasNextPage: true
-}
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-
-
-
-
-### `getEstimatedSchedule`
-
-
-
-#### Parameters
-
-| Parameter | Type | Description | Required? | Default |
-| :-----------------: | :----: | :------------------------------------------------------------------: | :-------: | :-----: |
-| `date (yyyy-mm-dd)` | string | The date of the desired schedule. (months & days must have 2 digits) | Yes | -- |
-| `tzOffset` | number | The timezone offset in minutes (defaults to -330 i.e. IST) | No | `-330` |
-
-#### Sample Usage
-
-```javascript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-const timezoneOffset = -330; // IST offset in minutes
-
-hianime
- .getEstimatedSchedule("2025-06-09", timezoneOffset)
- .then((data) => console.log(data))
- .catch((err) => console.error(err));
-```
-
-#### Response Schema
-
-```javascript
-{
- scheduledAnimes: [
- {
- id: string,
- time: string, // 24 hours format
- name: string,
- jname: string,
- airingTimestamp: number,
- secondsUntilAiring: number
- },
- {...}
- ]
-}
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-##
-
-
-
-
-
-### `getNextEpisodeSchedule`
-
-
-
-#### Parameters
-
-| Parameter | Type | Description | Required? | Default |
-| :-------: | :----: | :----------------------------------: | :-------: | :-----: |
-| `animeId` | string | The unique anime id (in kebab case). | Yes | -- |
-
-#### Sample Usage
-
-```javascript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-hianime
- .getNextEpisodeSchedule("one-piece-100")
- .then((data) => console.log(data))
- .catch((err) => console.error(err));
-```
-
-#### Response Schema
-
-```javascript
-{
- airingISOTimestamp: string | null,
- airingTimestamp: number | null,
- secondsUntilAiring: number | null
-}
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-
-
-
-
-### `getAnimeEpisodes`
-
-
-
-#### Parameters
-
-| Parameter | Type | Description | Required? | Default |
-| :-------: | :----: | :------------------: | :-------: | :-----: |
-| `animeId` | string | The unique anime id. | Yes | -- |
-
-#### Sample Usage
-
-```javascript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-hianime
- .getEpisodes("steinsgate-3")
- .then((data) => console.log(data))
- .catch((err) => console.error(err));
-```
-
-#### Response Schema
-
-```javascript
-{
- totalEpisodes: 24,
- episodes: [
- {
- number: 1,
- isFiller: false,
- title: "Turning Point",
- episodeId: "steinsgate-3?ep=213"
- },
- {...}
- ]
-}
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-
-
-
-
-### `getEpisodeServers`
-
-
-
-#### Parameters
-
-| Parameter | Type | Description | Required? | Default |
-| :---------: | :----: | :--------------------: | :-------: | :-----: |
-| `episodeId` | string | The unique episode id. | Yes | -- |
-
-#### Request sample
-
-```javascript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-hianime
- .getEpisodeServers("steinsgate-0-92?ep=2055")
- .then((data) => console.log(data))
- .catch((err) => console.error(err));
-```
-
-#### Response Schema
-
-```javascript
-{
- episodeId: "steinsgate-0-92?ep=2055",
- episodeNo: 5,
- sub: [
- {
- serverId: 4,
- serverName: "vidstreaming",
- },
- {...}
- ],
- dub: [
- {
- serverId: 1,
- serverName: "megacloud",
- },
- {...}
- ],
- raw: [
- {
- serverId: 1,
- serverName: "megacloud",
- },
- {...}
- ],
-}
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-
-
-
-
-### `getAnimeEpisodeSources`
-
-
-
-#### Parameters
-
-| Parameter | Type | Description | Required? | Default |
-| :--------: | :----: | :--------------------------------------------------: | :-------: | :--------------: |
-| `id` | string | The id of the episode. | Yes | -- |
-| `server` | string | The name of the server. | No | `"vidstreaming"` |
-| `category` | string | The category of the episode ('sub', 'dub' or 'raw'). | No | `"sub"` |
-
-#### Request sample
-
-```javascript
-import { HiAnime } from "aniwatch";
-
-const hianime = new HiAnime.Scraper();
-
-hianime
- .getEpisodeSources("steinsgate-3?ep=230", "hd-1", "sub")
- .then((data) => console.log(data))
- .catch((err) => console.error(err));
-```
-
-#### Response Schema
-
-```javascript
-{
- headers: {
- Referer: string,
- "User-Agent": string,
- ...
- },
- sources: [
- {
- url: string, // .m3u8 hls streaming file
- isM3U8: boolean,
- quality?: string,
- },
- {...}
- ],
- subtitles: [
- {
- lang: "English",
- url: string, // .vtt subtitle file
- default: boolean,
- },
- {...}
- ],
- anilistID: number | null,
- malID: number | null,
-}
-```
-
-[๐ผ Back to Top](#table-of-contents)
-
-
-
-## Development
-
-Pull requests are always welcome. If you encounter any bug or want to add a new feature to this package, consider creating a new [issue](https://github.com/ghoshRitesh12/aniwatch/issues). If you wish to contribute to this project, read the [CONTRIBUTING.md](https://github.com/ghoshRitesh12/aniwatch/blob/main/CONTRIBUTING.md) file.
-
-## Contributors
-
-Thanks to the following people for keeping this project alive and relevant.
-
-[](https://github.com/ghoshRitesh12/aniwatch/graphs/contributors)
-
-## Thanks
-
-- [consumet.ts](https://github.com/consumet/consumet.ts)
-- [api.consumet.org](https://github.com/consumet/api.consumet.org)
-
-## Support
-
-Don't forget to leave a star ๐. You can also follow me on X (Twitter) [@riteshgsh](https://x.com/riteshgsh).
-
-## License
-
-This project is licensed under the [MIT License](https://opensource.org/license/mit/) - see the [LICENSE](https://github.com/ghoshRitesh12/aniwatch/blob/main/LICENSE) file for more details.
-
-
-
-## Star History
-
-
+### I guess it the end of an era.
\ No newline at end of file
diff --git a/aniwatch-0.1.0.tgz b/aniwatch/aniwatch-0.1.0.tgz
similarity index 100%
rename from aniwatch-0.1.0.tgz
rename to aniwatch/aniwatch-0.1.0.tgz
diff --git a/aniwatch-0.2.0.tgz b/aniwatch/aniwatch-0.2.0.tgz
similarity index 100%
rename from aniwatch-0.2.0.tgz
rename to aniwatch/aniwatch-0.2.0.tgz
diff --git a/aniwatch-0.2.1.tgz b/aniwatch/aniwatch-0.2.1.tgz
similarity index 100%
rename from aniwatch-0.2.1.tgz
rename to aniwatch/aniwatch-0.2.1.tgz
diff --git a/aniwatch-0.2.2.tgz b/aniwatch/aniwatch-0.2.2.tgz
similarity index 100%
rename from aniwatch-0.2.2.tgz
rename to aniwatch/aniwatch-0.2.2.tgz
diff --git a/aniwatch-0.2.3.tgz b/aniwatch/aniwatch-0.2.3.tgz
similarity index 100%
rename from aniwatch-0.2.3.tgz
rename to aniwatch/aniwatch-0.2.3.tgz
diff --git a/aniwatch-0.3.0.tgz b/aniwatch/aniwatch-0.3.0.tgz
similarity index 100%
rename from aniwatch-0.3.0.tgz
rename to aniwatch/aniwatch-0.3.0.tgz
diff --git a/aniwatch-0.3.1.tgz b/aniwatch/aniwatch-0.3.1.tgz
similarity index 100%
rename from aniwatch-0.3.1.tgz
rename to aniwatch/aniwatch-0.3.1.tgz
diff --git a/aniwatch-0.3.2.tgz b/aniwatch/aniwatch-0.3.2.tgz
similarity index 100%
rename from aniwatch-0.3.2.tgz
rename to aniwatch/aniwatch-0.3.2.tgz
diff --git a/aniwatch-1.0.0.tgz b/aniwatch/aniwatch-1.0.0.tgz
similarity index 100%
rename from aniwatch-1.0.0.tgz
rename to aniwatch/aniwatch-1.0.0.tgz
diff --git a/aniwatch-1.0.1.tgz b/aniwatch/aniwatch-1.0.1.tgz
similarity index 100%
rename from aniwatch-1.0.1.tgz
rename to aniwatch/aniwatch-1.0.1.tgz
diff --git a/aniwatch-1.0.2.tgz b/aniwatch/aniwatch-1.0.2.tgz
similarity index 100%
rename from aniwatch-1.0.2.tgz
rename to aniwatch/aniwatch-1.0.2.tgz
diff --git a/aniwatch-1.0.3.tgz b/aniwatch/aniwatch-1.0.3.tgz
similarity index 100%
rename from aniwatch-1.0.3.tgz
rename to aniwatch/aniwatch-1.0.3.tgz
diff --git a/aniwatch-1.0.4.tgz b/aniwatch/aniwatch-1.0.4.tgz
similarity index 100%
rename from aniwatch-1.0.4.tgz
rename to aniwatch/aniwatch-1.0.4.tgz
diff --git a/aniwatch-1.1.0.tgz b/aniwatch/aniwatch-1.1.0.tgz
similarity index 100%
rename from aniwatch-1.1.0.tgz
rename to aniwatch/aniwatch-1.1.0.tgz
diff --git a/aniwatch-1.1.1.tgz b/aniwatch/aniwatch-1.1.1.tgz
similarity index 100%
rename from aniwatch-1.1.1.tgz
rename to aniwatch/aniwatch-1.1.1.tgz
diff --git a/aniwatch-1.2.1.tgz b/aniwatch/aniwatch-1.2.1.tgz
similarity index 100%
rename from aniwatch-1.2.1.tgz
rename to aniwatch/aniwatch-1.2.1.tgz
diff --git a/aniwatch-1.2.2.tgz b/aniwatch/aniwatch-1.2.2.tgz
similarity index 100%
rename from aniwatch-1.2.2.tgz
rename to aniwatch/aniwatch-1.2.2.tgz
diff --git a/aniwatch-1.2.3.tgz b/aniwatch/aniwatch-1.2.3.tgz
similarity index 100%
rename from aniwatch-1.2.3.tgz
rename to aniwatch/aniwatch-1.2.3.tgz
diff --git a/aniwatch-2.0.1.tgz b/aniwatch/aniwatch-2.0.1.tgz
similarity index 100%
rename from aniwatch-2.0.1.tgz
rename to aniwatch/aniwatch-2.0.1.tgz
diff --git a/aniwatch-2.1.0.tgz b/aniwatch/aniwatch-2.1.0.tgz
similarity index 100%
rename from aniwatch-2.1.0.tgz
rename to aniwatch/aniwatch-2.1.0.tgz
diff --git a/aniwatch-2.1.1.tgz b/aniwatch/aniwatch-2.1.1.tgz
similarity index 100%
rename from aniwatch-2.1.1.tgz
rename to aniwatch/aniwatch-2.1.1.tgz
diff --git a/aniwatch-2.10.0.tgz b/aniwatch/aniwatch-2.10.0.tgz
similarity index 100%
rename from aniwatch-2.10.0.tgz
rename to aniwatch/aniwatch-2.10.0.tgz
diff --git a/aniwatch-2.11.0.tgz b/aniwatch/aniwatch-2.11.0.tgz
similarity index 100%
rename from aniwatch-2.11.0.tgz
rename to aniwatch/aniwatch-2.11.0.tgz
diff --git a/aniwatch-2.11.1.tgz b/aniwatch/aniwatch-2.11.1.tgz
similarity index 100%
rename from aniwatch-2.11.1.tgz
rename to aniwatch/aniwatch-2.11.1.tgz
diff --git a/aniwatch-2.12.0.tgz b/aniwatch/aniwatch-2.12.0.tgz
similarity index 100%
rename from aniwatch-2.12.0.tgz
rename to aniwatch/aniwatch-2.12.0.tgz
diff --git a/aniwatch-2.12.1.tgz b/aniwatch/aniwatch-2.12.1.tgz
similarity index 100%
rename from aniwatch-2.12.1.tgz
rename to aniwatch/aniwatch-2.12.1.tgz
diff --git a/aniwatch-2.12.2.tgz b/aniwatch/aniwatch-2.12.2.tgz
similarity index 100%
rename from aniwatch-2.12.2.tgz
rename to aniwatch/aniwatch-2.12.2.tgz
diff --git a/aniwatch-2.13.1.tgz b/aniwatch/aniwatch-2.13.1.tgz
similarity index 100%
rename from aniwatch-2.13.1.tgz
rename to aniwatch/aniwatch-2.13.1.tgz
diff --git a/aniwatch-2.14.0.tgz b/aniwatch/aniwatch-2.14.0.tgz
similarity index 100%
rename from aniwatch-2.14.0.tgz
rename to aniwatch/aniwatch-2.14.0.tgz
diff --git a/aniwatch-2.14.1.tgz b/aniwatch/aniwatch-2.14.1.tgz
similarity index 100%
rename from aniwatch-2.14.1.tgz
rename to aniwatch/aniwatch-2.14.1.tgz
diff --git a/aniwatch-2.14.3.tgz b/aniwatch/aniwatch-2.14.3.tgz
similarity index 100%
rename from aniwatch-2.14.3.tgz
rename to aniwatch/aniwatch-2.14.3.tgz
diff --git a/aniwatch-2.15.0.tgz b/aniwatch/aniwatch-2.15.0.tgz
similarity index 100%
rename from aniwatch-2.15.0.tgz
rename to aniwatch/aniwatch-2.15.0.tgz
diff --git a/aniwatch-2.15.1.tgz b/aniwatch/aniwatch-2.15.1.tgz
similarity index 100%
rename from aniwatch-2.15.1.tgz
rename to aniwatch/aniwatch-2.15.1.tgz
diff --git a/aniwatch-2.15.2.tgz b/aniwatch/aniwatch-2.15.2.tgz
similarity index 100%
rename from aniwatch-2.15.2.tgz
rename to aniwatch/aniwatch-2.15.2.tgz
diff --git a/aniwatch-2.16.0.tgz b/aniwatch/aniwatch-2.16.0.tgz
similarity index 100%
rename from aniwatch-2.16.0.tgz
rename to aniwatch/aniwatch-2.16.0.tgz
diff --git a/aniwatch-2.17.0.tgz b/aniwatch/aniwatch-2.17.0.tgz
similarity index 100%
rename from aniwatch-2.17.0.tgz
rename to aniwatch/aniwatch-2.17.0.tgz
diff --git a/aniwatch-2.18.0.tgz b/aniwatch/aniwatch-2.18.0.tgz
similarity index 100%
rename from aniwatch-2.18.0.tgz
rename to aniwatch/aniwatch-2.18.0.tgz
diff --git a/aniwatch-2.18.1.tgz b/aniwatch/aniwatch-2.18.1.tgz
similarity index 100%
rename from aniwatch-2.18.1.tgz
rename to aniwatch/aniwatch-2.18.1.tgz
diff --git a/aniwatch-2.18.2.tgz b/aniwatch/aniwatch-2.18.2.tgz
similarity index 100%
rename from aniwatch-2.18.2.tgz
rename to aniwatch/aniwatch-2.18.2.tgz
diff --git a/aniwatch-2.18.3.tgz b/aniwatch/aniwatch-2.18.3.tgz
similarity index 100%
rename from aniwatch-2.18.3.tgz
rename to aniwatch/aniwatch-2.18.3.tgz
diff --git a/aniwatch-2.19.0.tgz b/aniwatch/aniwatch-2.19.0.tgz
similarity index 100%
rename from aniwatch-2.19.0.tgz
rename to aniwatch/aniwatch-2.19.0.tgz
diff --git a/aniwatch-2.2.0.tgz b/aniwatch/aniwatch-2.2.0.tgz
similarity index 100%
rename from aniwatch-2.2.0.tgz
rename to aniwatch/aniwatch-2.2.0.tgz
diff --git a/aniwatch-2.2.1.tgz b/aniwatch/aniwatch-2.2.1.tgz
similarity index 100%
rename from aniwatch-2.2.1.tgz
rename to aniwatch/aniwatch-2.2.1.tgz
diff --git a/aniwatch-2.20.0.tgz b/aniwatch/aniwatch-2.20.0.tgz
similarity index 100%
rename from aniwatch-2.20.0.tgz
rename to aniwatch/aniwatch-2.20.0.tgz
diff --git a/aniwatch-2.21.0.tgz b/aniwatch/aniwatch-2.21.0.tgz
similarity index 100%
rename from aniwatch-2.21.0.tgz
rename to aniwatch/aniwatch-2.21.0.tgz
diff --git a/aniwatch-2.21.1.tgz b/aniwatch/aniwatch-2.21.1.tgz
similarity index 100%
rename from aniwatch-2.21.1.tgz
rename to aniwatch/aniwatch-2.21.1.tgz
diff --git a/aniwatch-2.21.2.tgz b/aniwatch/aniwatch-2.21.2.tgz
similarity index 100%
rename from aniwatch-2.21.2.tgz
rename to aniwatch/aniwatch-2.21.2.tgz
diff --git a/aniwatch-2.22.0.tgz b/aniwatch/aniwatch-2.22.0.tgz
similarity index 100%
rename from aniwatch-2.22.0.tgz
rename to aniwatch/aniwatch-2.22.0.tgz
diff --git a/aniwatch-2.22.1.tgz b/aniwatch/aniwatch-2.22.1.tgz
similarity index 100%
rename from aniwatch-2.22.1.tgz
rename to aniwatch/aniwatch-2.22.1.tgz
diff --git a/aniwatch-2.23.0.tgz b/aniwatch/aniwatch-2.23.0.tgz
similarity index 100%
rename from aniwatch-2.23.0.tgz
rename to aniwatch/aniwatch-2.23.0.tgz
diff --git a/aniwatch-2.23.1.tgz b/aniwatch/aniwatch-2.23.1.tgz
similarity index 100%
rename from aniwatch-2.23.1.tgz
rename to aniwatch/aniwatch-2.23.1.tgz
diff --git a/aniwatch-2.23.3.tgz b/aniwatch/aniwatch-2.23.3.tgz
similarity index 100%
rename from aniwatch-2.23.3.tgz
rename to aniwatch/aniwatch-2.23.3.tgz
diff --git a/aniwatch-2.23.4.tgz b/aniwatch/aniwatch-2.23.4.tgz
similarity index 100%
rename from aniwatch-2.23.4.tgz
rename to aniwatch/aniwatch-2.23.4.tgz
diff --git a/aniwatch-2.23.5.tgz b/aniwatch/aniwatch-2.23.5.tgz
similarity index 100%
rename from aniwatch-2.23.5.tgz
rename to aniwatch/aniwatch-2.23.5.tgz
diff --git a/aniwatch-2.24.0.tgz b/aniwatch/aniwatch-2.24.0.tgz
similarity index 100%
rename from aniwatch-2.24.0.tgz
rename to aniwatch/aniwatch-2.24.0.tgz
diff --git a/aniwatch-2.24.1.tgz b/aniwatch/aniwatch-2.24.1.tgz
similarity index 100%
rename from aniwatch-2.24.1.tgz
rename to aniwatch/aniwatch-2.24.1.tgz
diff --git a/aniwatch-2.24.3.tgz b/aniwatch/aniwatch-2.24.3.tgz
similarity index 100%
rename from aniwatch-2.24.3.tgz
rename to aniwatch/aniwatch-2.24.3.tgz
diff --git a/aniwatch-2.27.9.tgz b/aniwatch/aniwatch-2.27.9.tgz
similarity index 100%
rename from aniwatch-2.27.9.tgz
rename to aniwatch/aniwatch-2.27.9.tgz
diff --git a/aniwatch-2.3.0.tgz b/aniwatch/aniwatch-2.3.0.tgz
similarity index 100%
rename from aniwatch-2.3.0.tgz
rename to aniwatch/aniwatch-2.3.0.tgz
diff --git a/aniwatch-2.4.0.tgz b/aniwatch/aniwatch-2.4.0.tgz
similarity index 100%
rename from aniwatch-2.4.0.tgz
rename to aniwatch/aniwatch-2.4.0.tgz
diff --git a/aniwatch-2.4.1.tgz b/aniwatch/aniwatch-2.4.1.tgz
similarity index 100%
rename from aniwatch-2.4.1.tgz
rename to aniwatch/aniwatch-2.4.1.tgz
diff --git a/aniwatch-2.5.0.tgz b/aniwatch/aniwatch-2.5.0.tgz
similarity index 100%
rename from aniwatch-2.5.0.tgz
rename to aniwatch/aniwatch-2.5.0.tgz
diff --git a/aniwatch-2.7.0.tgz b/aniwatch/aniwatch-2.7.0.tgz
similarity index 100%
rename from aniwatch-2.7.0.tgz
rename to aniwatch/aniwatch-2.7.0.tgz
diff --git a/aniwatch-2.8.0.tgz b/aniwatch/aniwatch-2.8.0.tgz
similarity index 100%
rename from aniwatch-2.8.0.tgz
rename to aniwatch/aniwatch-2.8.0.tgz
diff --git a/aniwatch-2.9.0.tgz b/aniwatch/aniwatch-2.9.0.tgz
similarity index 100%
rename from aniwatch-2.9.0.tgz
rename to aniwatch/aniwatch-2.9.0.tgz
diff --git a/consumet-extensions-metadata.json b/consumet-extensions-metadata.json
new file mode 100644
index 0000000..403aadb
--- /dev/null
+++ b/consumet-extensions-metadata.json
@@ -0,0 +1,290 @@
+{
+ "_id": "@consumet/extensions@1.8.8",
+ "_rev": "76-53fd537a6a99a270a8eb02336988d67e",
+ "name": "@consumet/extensions",
+ "dist-tags": {
+ "latest": "1.8.8"
+ },
+ "versions": [
+ "1.0.0",
+ "1.0.1",
+ "1.0.2",
+ "1.0.3",
+ "1.0.4",
+ "1.0.5",
+ "1.0.6",
+ "1.0.7",
+ "1.0.8",
+ "1.0.9",
+ "1.0.10",
+ "1.1.0",
+ "1.1.1",
+ "1.1.2",
+ "1.1.3",
+ "1.1.4",
+ "1.1.5",
+ "1.1.6",
+ "1.1.7",
+ "1.1.8",
+ "1.1.9",
+ "1.2.0",
+ "1.2.1",
+ "1.2.2",
+ "1.2.3",
+ "1.2.4",
+ "1.2.5",
+ "1.2.6",
+ "1.2.7",
+ "1.2.8",
+ "1.2.9",
+ "1.2.10",
+ "1.2.11",
+ "1.2.12-rc",
+ "1.2.12",
+ "1.3.0",
+ "1.3.1",
+ "1.3.2",
+ "1.3.3",
+ "1.3.4",
+ "1.3.5",
+ "1.3.6",
+ "1.3.7",
+ "1.4.0",
+ "1.4.1",
+ "1.4.2",
+ "1.4.5",
+ "1.4.7",
+ "1.4.8",
+ "1.4.9",
+ "1.4.10",
+ "1.4.11",
+ "1.4.12",
+ "1.4.13",
+ "1.4.14",
+ "1.4.15",
+ "1.4.16",
+ "1.4.17",
+ "1.4.18",
+ "1.5.0",
+ "1.5.1",
+ "1.5.2",
+ "1.5.4",
+ "1.5.6",
+ "1.6.0",
+ "1.7.0",
+ "1.8.0",
+ "1.8.1",
+ "1.8.2",
+ "1.8.3",
+ "1.8.4",
+ "1.8.5",
+ "1.8.6",
+ "1.8.7",
+ "1.8.8"
+ ],
+ "time": {
+ "created": "2022-06-20T03:31:24.801Z",
+ "modified": "2026-01-20T21:33:07.498Z",
+ "1.0.0": "2022-06-20T03:31:25.046Z",
+ "1.0.1": "2022-06-22T20:39:48.276Z",
+ "1.0.2": "2022-07-06T21:00:31.310Z",
+ "1.0.3": "2022-07-10T04:11:01.668Z",
+ "1.0.4": "2022-07-13T22:50:52.540Z",
+ "1.0.5": "2022-07-17T14:56:25.803Z",
+ "1.0.6": "2022-07-20T11:48:24.733Z",
+ "1.0.7": "2022-07-25T17:07:18.801Z",
+ "1.0.8": "2022-07-31T05:14:10.358Z",
+ "1.0.9": "2022-08-04T21:06:02.871Z",
+ "1.0.10": "2022-08-09T19:01:12.619Z",
+ "1.1.0": "2022-08-28T01:29:25.974Z",
+ "1.1.1": "2022-09-27T03:15:21.950Z",
+ "1.1.2": "2022-10-01T18:01:53.918Z",
+ "1.1.3": "2022-10-02T00:06:09.163Z",
+ "1.1.4": "2022-10-04T19:07:37.439Z",
+ "1.1.5": "2022-10-05T04:54:23.868Z",
+ "1.1.6": "2022-10-13T13:22:16.322Z",
+ "1.1.7": "2022-10-13T13:50:24.016Z",
+ "1.1.8": "2022-10-15T19:49:59.308Z",
+ "1.1.9": "2022-10-18T16:01:09.461Z",
+ "1.2.0": "2022-10-22T03:17:20.554Z",
+ "1.2.1": "2022-10-22T03:35:47.399Z",
+ "1.2.2": "2022-10-24T21:04:30.992Z",
+ "1.2.3": "2022-10-26T22:50:20.661Z",
+ "1.2.4": "2022-11-01T22:33:55.834Z",
+ "1.2.5": "2022-11-01T23:21:56.303Z",
+ "1.2.6": "2022-11-05T21:46:33.040Z",
+ "1.2.7": "2022-11-09T23:00:31.536Z",
+ "1.2.8": "2022-11-14T03:28:22.669Z",
+ "1.2.9": "2022-11-28T01:34:28.954Z",
+ "1.2.10": "2022-12-01T23:07:29.092Z",
+ "1.2.11": "2022-12-03T21:03:59.907Z",
+ "1.2.12": "2022-12-14T00:14:47.750Z",
+ "1.2.12-rc": "2022-12-14T13:30:29.521Z",
+ "1.3.0": "2022-12-26T18:47:53.744Z",
+ "1.3.2": "2023-01-14T19:04:11.617Z",
+ "1.3.1": "2023-01-17T19:02:39.715Z",
+ "1.3.3": "2023-01-23T08:51:33.969Z",
+ "1.3.4": "2023-01-24T03:56:03.460Z",
+ "1.3.5": "2023-01-28T17:53:57.316Z",
+ "1.3.6": "2023-01-30T21:23:34.673Z",
+ "1.3.7": "2023-02-02T12:54:39.353Z",
+ "1.4.0": "2023-02-03T09:36:11.800Z",
+ "1.4.1": "2023-02-05T12:10:29.168Z",
+ "1.4.2": "2023-02-10T21:00:42.276Z",
+ "1.4.5": "2023-02-11T13:45:11.150Z",
+ "1.4.7": "2023-02-11T13:59:36.034Z",
+ "1.4.8": "2023-02-11T14:36:08.815Z",
+ "1.4.9": "2023-02-14T18:17:58.860Z",
+ "1.4.10": "2023-02-16T17:04:59.288Z",
+ "1.4.11": "2023-02-22T01:55:55.439Z",
+ "1.4.12": "2023-02-23T17:44:39.779Z",
+ "1.4.13": "2023-02-25T21:26:31.971Z",
+ "1.4.14": "2023-02-26T03:47:46.636Z",
+ "1.4.15": "2023-03-04T02:29:58.414Z",
+ "1.4.16": "2023-03-13T07:01:51.152Z",
+ "1.4.17": "2023-03-27T22:55:22.969Z",
+ "1.4.18": "2023-05-21T18:59:43.324Z",
+ "1.5.0": "2023-07-24T18:16:28.801Z",
+ "1.5.1": "2023-08-23T15:37:32.746Z",
+ "1.5.2": "2023-09-22T15:43:02.431Z",
+ "1.5.4": "2023-11-15T22:07:00.489Z",
+ "1.5.6": "2024-02-25T20:21:43.959Z",
+ "1.6.0": "2024-05-20T03:29:23.012Z",
+ "1.7.0": "2024-07-24T19:40:56.234Z",
+ "1.8.0": "2024-09-24T21:46:44.718Z",
+ "1.8.1": "2024-11-05T19:58:09.008Z",
+ "1.8.2": "2025-11-24T15:00:09.051Z",
+ "1.8.3": "2025-11-24T19:22:56.892Z",
+ "1.8.4": "2025-11-24T20:00:27.238Z",
+ "1.8.5": "2025-11-25T04:33:26.921Z",
+ "1.8.6": "2025-11-25T05:27:00.359Z",
+ "1.8.7": "2025-11-25T18:53:13.887Z",
+ "1.8.8": "2026-01-20T21:33:07.350Z"
+ },
+ "bugs": {
+ "url": "https://github.com/consumet/consumet.ts/issues"
+ },
+ "license": "MIT",
+ "homepage": "https://github.com/consumet/consumet.ts#readme",
+ "keywords": [
+ "consumet",
+ "scraper",
+ "streaming",
+ "anime",
+ "books",
+ "comics",
+ "movies",
+ "manga",
+ "light-novels",
+ "news",
+ "meta"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/consumet/consumet.ts.git"
+ },
+ "description": "Nodejs library that provides high-level APIs for obtaining information on various entertainment media such as books, movies, comic books, anime, manga, and so on.",
+ "maintainers": [
+ "riimuru ",
+ "prince-ao "
+ ],
+ "readmeFilename": "README.md",
+ "_contentLength": 277351,
+ "version": "1.8.8",
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "scripts": {
+ "build": "rimraf dist && tsc -p tsconfig.json",
+ "version": "auto-changelog -p && git add CHANGELOG.md",
+ "lint": "prettier --write .",
+ "prepare": "husky || true",
+ "test": "jest",
+ "test:anime": "jest ./test/anime",
+ "test:anime:kaa": "jest ./test/anime/kickassanime.test.ts",
+ "test:anime:anisma": "jest ./test/anime/animesama.test.ts",
+ "test:books": "jest ./test/books",
+ "test:comics": "jest ./test/comics",
+ "test:movies": "jest ./test/movies",
+ "test:manga": "jest ./test/manga",
+ "test:lightnovels": "jest ./test/light-novels",
+ "test:news": "jest ./test/news",
+ "test:meta": "jest ./test/meta"
+ },
+ "pre-commit": [
+ "lint",
+ "build"
+ ],
+ "authors": [
+ "https://github.com/riimuru",
+ "https://github.com/prince-ao"
+ ],
+ "dependencies": {
+ "ascii-url-encoder": "^1.2.0",
+ "axios": "^1.7.9",
+ "cheerio": "^1.0.0-rc.12",
+ "crypto-js": "^4.1.1",
+ "domhandler": "^5.0.3",
+ "form-data": "^4.0.0",
+ "got": "^11.8.6",
+ "got-scraping": "^4.1.2",
+ "husky": "^9.1.1",
+ "node-fetch": "^2.7.0"
+ },
+ "devDependencies": {
+ "@commitlint/cli": "^17.6.3",
+ "@commitlint/config-angular": "^17.6.3",
+ "@types/crypto-js": "^4.1.1",
+ "@types/jest": "^29.5.1",
+ "@types/node": "^20.19.25",
+ "@types/ws": "^8.5.4",
+ "auto-changelog": "^2.4.0",
+ "cloudscraper": "^4.6.0",
+ "is-ci": "^3.0.1",
+ "jest": "^29.5.0",
+ "pre-commit": "^1.0.10",
+ "prettier": "^2.8.8",
+ "request": "^2.88.2",
+ "rimraf": "^6.0.1",
+ "ts-jest": "^29.1.0",
+ "ts-node": "^10.9.1",
+ "typescript": "^5.0.4"
+ },
+ "auto-changelog": {
+ "template": "keepachangelog",
+ "preset": "typescript-preset-eslint",
+ "output": "CHANGELOG.md",
+ "commitUrl": "https://github.com/consumet/consumet.ts/commit/{id}",
+ "compareUrl": "https://github.com/consumet/consumet.ts/compare/{from}...{to}",
+ "issueUrl": "https://github.com/consumet/consumet.ts/issues/{id}",
+ "mergeUrl": "https://github.com/consumet/consumet.ts/pull/{id}"
+ },
+ "directories": {
+ "doc": "docs",
+ "example": "examples",
+ "test": "test",
+ "lib": "src"
+ },
+ "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e",
+ "gitHead": "fa3bd2b0eac3d6c48343861e8c91248c459313ff",
+ "_nodeVersion": "16.20.2",
+ "_npmVersion": "8.19.4",
+ "dist": {
+ "integrity": "sha512-FehyOLruF/dq2AsXaoeWQEPMbPoSKOHHztDIdwpRnt8THFQKtIMY2qT27mLkmPGBnCEdK7si/Am5bkjXeGAA/Q==",
+ "shasum": "dbfbadf832aaf52e5a9dfb46897087c722200b12",
+ "tarball": "https://registry.npmjs.org/@consumet/extensions/-/extensions-1.8.8.tgz",
+ "fileCount": 273,
+ "unpackedSize": 1406258,
+ "signatures": [
+ {
+ "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U",
+ "sig": "MEQCICEkM8a8HewVhictgduxvHEfllmbfgGyk5XEIpLWGaFIAiAOMht8nu8/TRT6kQiX5lKR+ti/iv7iwxXKNmsQIuslwQ=="
+ }
+ ]
+ },
+ "_npmUser": "riimuru ",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages-npm-production",
+ "tmp": "tmp/extensions_1.8.8_1768944787144_0.717119659806549"
+ },
+ "_hasShrinkwrap": false
+}
diff --git a/consumet/consumet-extensions-1.0.0.tgz b/consumet/consumet-extensions-1.0.0.tgz
new file mode 100644
index 0000000..537fe4e
Binary files /dev/null and b/consumet/consumet-extensions-1.0.0.tgz differ
diff --git a/consumet/consumet-extensions-1.0.1.tgz b/consumet/consumet-extensions-1.0.1.tgz
new file mode 100644
index 0000000..f0f859e
Binary files /dev/null and b/consumet/consumet-extensions-1.0.1.tgz differ
diff --git a/consumet/consumet-extensions-1.0.10.tgz b/consumet/consumet-extensions-1.0.10.tgz
new file mode 100644
index 0000000..537e333
Binary files /dev/null and b/consumet/consumet-extensions-1.0.10.tgz differ
diff --git a/consumet/consumet-extensions-1.0.2.tgz b/consumet/consumet-extensions-1.0.2.tgz
new file mode 100644
index 0000000..aa61845
Binary files /dev/null and b/consumet/consumet-extensions-1.0.2.tgz differ
diff --git a/consumet/consumet-extensions-1.0.3.tgz b/consumet/consumet-extensions-1.0.3.tgz
new file mode 100644
index 0000000..e604c79
Binary files /dev/null and b/consumet/consumet-extensions-1.0.3.tgz differ
diff --git a/consumet/consumet-extensions-1.0.4.tgz b/consumet/consumet-extensions-1.0.4.tgz
new file mode 100644
index 0000000..17b10d8
Binary files /dev/null and b/consumet/consumet-extensions-1.0.4.tgz differ
diff --git a/consumet/consumet-extensions-1.0.5.tgz b/consumet/consumet-extensions-1.0.5.tgz
new file mode 100644
index 0000000..408479f
Binary files /dev/null and b/consumet/consumet-extensions-1.0.5.tgz differ
diff --git a/consumet/consumet-extensions-1.0.6.tgz b/consumet/consumet-extensions-1.0.6.tgz
new file mode 100644
index 0000000..00112f5
Binary files /dev/null and b/consumet/consumet-extensions-1.0.6.tgz differ
diff --git a/consumet/consumet-extensions-1.0.7.tgz b/consumet/consumet-extensions-1.0.7.tgz
new file mode 100644
index 0000000..f7aa1f2
Binary files /dev/null and b/consumet/consumet-extensions-1.0.7.tgz differ
diff --git a/consumet/consumet-extensions-1.0.8.tgz b/consumet/consumet-extensions-1.0.8.tgz
new file mode 100644
index 0000000..b52101a
Binary files /dev/null and b/consumet/consumet-extensions-1.0.8.tgz differ
diff --git a/consumet/consumet-extensions-1.0.9.tgz b/consumet/consumet-extensions-1.0.9.tgz
new file mode 100644
index 0000000..f202771
Binary files /dev/null and b/consumet/consumet-extensions-1.0.9.tgz differ
diff --git a/consumet/consumet-extensions-1.1.0.tgz b/consumet/consumet-extensions-1.1.0.tgz
new file mode 100644
index 0000000..9295579
Binary files /dev/null and b/consumet/consumet-extensions-1.1.0.tgz differ
diff --git a/consumet/consumet-extensions-1.1.1.tgz b/consumet/consumet-extensions-1.1.1.tgz
new file mode 100644
index 0000000..7f0e665
Binary files /dev/null and b/consumet/consumet-extensions-1.1.1.tgz differ
diff --git a/consumet/consumet-extensions-1.1.2.tgz b/consumet/consumet-extensions-1.1.2.tgz
new file mode 100644
index 0000000..5e6bd13
Binary files /dev/null and b/consumet/consumet-extensions-1.1.2.tgz differ
diff --git a/consumet/consumet-extensions-1.1.3.tgz b/consumet/consumet-extensions-1.1.3.tgz
new file mode 100644
index 0000000..857383a
Binary files /dev/null and b/consumet/consumet-extensions-1.1.3.tgz differ
diff --git a/consumet/consumet-extensions-1.1.4.tgz b/consumet/consumet-extensions-1.1.4.tgz
new file mode 100644
index 0000000..4a8f9a5
Binary files /dev/null and b/consumet/consumet-extensions-1.1.4.tgz differ
diff --git a/consumet/consumet-extensions-1.1.5.tgz b/consumet/consumet-extensions-1.1.5.tgz
new file mode 100644
index 0000000..cd83451
Binary files /dev/null and b/consumet/consumet-extensions-1.1.5.tgz differ
diff --git a/consumet/consumet-extensions-1.1.6.tgz b/consumet/consumet-extensions-1.1.6.tgz
new file mode 100644
index 0000000..5370fe3
Binary files /dev/null and b/consumet/consumet-extensions-1.1.6.tgz differ
diff --git a/consumet/consumet-extensions-1.1.7.tgz b/consumet/consumet-extensions-1.1.7.tgz
new file mode 100644
index 0000000..f6b9cf6
Binary files /dev/null and b/consumet/consumet-extensions-1.1.7.tgz differ
diff --git a/consumet/consumet-extensions-1.1.8.tgz b/consumet/consumet-extensions-1.1.8.tgz
new file mode 100644
index 0000000..2efeb82
Binary files /dev/null and b/consumet/consumet-extensions-1.1.8.tgz differ
diff --git a/consumet/consumet-extensions-1.1.9.tgz b/consumet/consumet-extensions-1.1.9.tgz
new file mode 100644
index 0000000..d672d85
Binary files /dev/null and b/consumet/consumet-extensions-1.1.9.tgz differ
diff --git a/consumet/consumet-extensions-1.2.0.tgz b/consumet/consumet-extensions-1.2.0.tgz
new file mode 100644
index 0000000..bbc5b92
Binary files /dev/null and b/consumet/consumet-extensions-1.2.0.tgz differ
diff --git a/consumet/consumet-extensions-1.2.1.tgz b/consumet/consumet-extensions-1.2.1.tgz
new file mode 100644
index 0000000..dc578d2
Binary files /dev/null and b/consumet/consumet-extensions-1.2.1.tgz differ
diff --git a/consumet/consumet-extensions-1.2.10.tgz b/consumet/consumet-extensions-1.2.10.tgz
new file mode 100644
index 0000000..576ec1f
Binary files /dev/null and b/consumet/consumet-extensions-1.2.10.tgz differ
diff --git a/consumet/consumet-extensions-1.2.11.tgz b/consumet/consumet-extensions-1.2.11.tgz
new file mode 100644
index 0000000..517baaf
Binary files /dev/null and b/consumet/consumet-extensions-1.2.11.tgz differ
diff --git a/consumet/consumet-extensions-1.2.12-rc.tgz b/consumet/consumet-extensions-1.2.12-rc.tgz
new file mode 100644
index 0000000..686ef05
Binary files /dev/null and b/consumet/consumet-extensions-1.2.12-rc.tgz differ
diff --git a/consumet/consumet-extensions-1.2.12.tgz b/consumet/consumet-extensions-1.2.12.tgz
new file mode 100644
index 0000000..64c8193
Binary files /dev/null and b/consumet/consumet-extensions-1.2.12.tgz differ
diff --git a/consumet/consumet-extensions-1.2.2.tgz b/consumet/consumet-extensions-1.2.2.tgz
new file mode 100644
index 0000000..a7cb08c
Binary files /dev/null and b/consumet/consumet-extensions-1.2.2.tgz differ
diff --git a/consumet/consumet-extensions-1.2.3.tgz b/consumet/consumet-extensions-1.2.3.tgz
new file mode 100644
index 0000000..60548bf
Binary files /dev/null and b/consumet/consumet-extensions-1.2.3.tgz differ
diff --git a/consumet/consumet-extensions-1.2.4.tgz b/consumet/consumet-extensions-1.2.4.tgz
new file mode 100644
index 0000000..bfc1376
Binary files /dev/null and b/consumet/consumet-extensions-1.2.4.tgz differ
diff --git a/consumet/consumet-extensions-1.2.5.tgz b/consumet/consumet-extensions-1.2.5.tgz
new file mode 100644
index 0000000..881f39e
Binary files /dev/null and b/consumet/consumet-extensions-1.2.5.tgz differ
diff --git a/consumet/consumet-extensions-1.2.6.tgz b/consumet/consumet-extensions-1.2.6.tgz
new file mode 100644
index 0000000..edaa6b7
Binary files /dev/null and b/consumet/consumet-extensions-1.2.6.tgz differ
diff --git a/consumet/consumet-extensions-1.2.7.tgz b/consumet/consumet-extensions-1.2.7.tgz
new file mode 100644
index 0000000..02af547
Binary files /dev/null and b/consumet/consumet-extensions-1.2.7.tgz differ
diff --git a/consumet/consumet-extensions-1.2.8.tgz b/consumet/consumet-extensions-1.2.8.tgz
new file mode 100644
index 0000000..441965b
Binary files /dev/null and b/consumet/consumet-extensions-1.2.8.tgz differ
diff --git a/consumet/consumet-extensions-1.2.9.tgz b/consumet/consumet-extensions-1.2.9.tgz
new file mode 100644
index 0000000..23b9635
Binary files /dev/null and b/consumet/consumet-extensions-1.2.9.tgz differ
diff --git a/consumet/consumet-extensions-1.3.0.tgz b/consumet/consumet-extensions-1.3.0.tgz
new file mode 100644
index 0000000..05ce75f
Binary files /dev/null and b/consumet/consumet-extensions-1.3.0.tgz differ
diff --git a/consumet/consumet-extensions-1.3.1.tgz b/consumet/consumet-extensions-1.3.1.tgz
new file mode 100644
index 0000000..e830caf
Binary files /dev/null and b/consumet/consumet-extensions-1.3.1.tgz differ
diff --git a/consumet/consumet-extensions-1.3.2.tgz b/consumet/consumet-extensions-1.3.2.tgz
new file mode 100644
index 0000000..50d0825
Binary files /dev/null and b/consumet/consumet-extensions-1.3.2.tgz differ
diff --git a/consumet/consumet-extensions-1.3.3.tgz b/consumet/consumet-extensions-1.3.3.tgz
new file mode 100644
index 0000000..89e3278
Binary files /dev/null and b/consumet/consumet-extensions-1.3.3.tgz differ
diff --git a/consumet/consumet-extensions-1.3.4.tgz b/consumet/consumet-extensions-1.3.4.tgz
new file mode 100644
index 0000000..21368c8
Binary files /dev/null and b/consumet/consumet-extensions-1.3.4.tgz differ
diff --git a/consumet/consumet-extensions-1.3.5.tgz b/consumet/consumet-extensions-1.3.5.tgz
new file mode 100644
index 0000000..f305b17
Binary files /dev/null and b/consumet/consumet-extensions-1.3.5.tgz differ
diff --git a/consumet/consumet-extensions-1.3.6.tgz b/consumet/consumet-extensions-1.3.6.tgz
new file mode 100644
index 0000000..41e81e5
Binary files /dev/null and b/consumet/consumet-extensions-1.3.6.tgz differ
diff --git a/consumet/consumet-extensions-1.3.7.tgz b/consumet/consumet-extensions-1.3.7.tgz
new file mode 100644
index 0000000..2fe5a40
Binary files /dev/null and b/consumet/consumet-extensions-1.3.7.tgz differ
diff --git a/consumet/consumet-extensions-1.4.0.tgz b/consumet/consumet-extensions-1.4.0.tgz
new file mode 100644
index 0000000..0f8d9bf
Binary files /dev/null and b/consumet/consumet-extensions-1.4.0.tgz differ
diff --git a/consumet/consumet-extensions-1.4.1.tgz b/consumet/consumet-extensions-1.4.1.tgz
new file mode 100644
index 0000000..ea08a34
Binary files /dev/null and b/consumet/consumet-extensions-1.4.1.tgz differ
diff --git a/consumet/consumet-extensions-1.4.10.tgz b/consumet/consumet-extensions-1.4.10.tgz
new file mode 100644
index 0000000..4fe93c5
Binary files /dev/null and b/consumet/consumet-extensions-1.4.10.tgz differ
diff --git a/consumet/consumet-extensions-1.4.11.tgz b/consumet/consumet-extensions-1.4.11.tgz
new file mode 100644
index 0000000..2e4a909
Binary files /dev/null and b/consumet/consumet-extensions-1.4.11.tgz differ
diff --git a/consumet/consumet-extensions-1.4.12.tgz b/consumet/consumet-extensions-1.4.12.tgz
new file mode 100644
index 0000000..da1dff5
Binary files /dev/null and b/consumet/consumet-extensions-1.4.12.tgz differ
diff --git a/consumet/consumet-extensions-1.4.13.tgz b/consumet/consumet-extensions-1.4.13.tgz
new file mode 100644
index 0000000..fe31b5b
Binary files /dev/null and b/consumet/consumet-extensions-1.4.13.tgz differ
diff --git a/consumet/consumet-extensions-1.4.14.tgz b/consumet/consumet-extensions-1.4.14.tgz
new file mode 100644
index 0000000..5e662a2
Binary files /dev/null and b/consumet/consumet-extensions-1.4.14.tgz differ
diff --git a/consumet/consumet-extensions-1.4.15.tgz b/consumet/consumet-extensions-1.4.15.tgz
new file mode 100644
index 0000000..935314d
Binary files /dev/null and b/consumet/consumet-extensions-1.4.15.tgz differ
diff --git a/consumet/consumet-extensions-1.4.16.tgz b/consumet/consumet-extensions-1.4.16.tgz
new file mode 100644
index 0000000..aa3e67a
Binary files /dev/null and b/consumet/consumet-extensions-1.4.16.tgz differ
diff --git a/consumet/consumet-extensions-1.4.17.tgz b/consumet/consumet-extensions-1.4.17.tgz
new file mode 100644
index 0000000..ef01903
Binary files /dev/null and b/consumet/consumet-extensions-1.4.17.tgz differ
diff --git a/consumet/consumet-extensions-1.4.18.tgz b/consumet/consumet-extensions-1.4.18.tgz
new file mode 100644
index 0000000..2da2419
Binary files /dev/null and b/consumet/consumet-extensions-1.4.18.tgz differ
diff --git a/consumet/consumet-extensions-1.4.2.tgz b/consumet/consumet-extensions-1.4.2.tgz
new file mode 100644
index 0000000..22e37f8
Binary files /dev/null and b/consumet/consumet-extensions-1.4.2.tgz differ
diff --git a/consumet/consumet-extensions-1.4.5.tgz b/consumet/consumet-extensions-1.4.5.tgz
new file mode 100644
index 0000000..a8849bc
Binary files /dev/null and b/consumet/consumet-extensions-1.4.5.tgz differ
diff --git a/consumet/consumet-extensions-1.4.7.tgz b/consumet/consumet-extensions-1.4.7.tgz
new file mode 100644
index 0000000..7591485
Binary files /dev/null and b/consumet/consumet-extensions-1.4.7.tgz differ
diff --git a/consumet/consumet-extensions-1.4.8.tgz b/consumet/consumet-extensions-1.4.8.tgz
new file mode 100644
index 0000000..18cd1dc
Binary files /dev/null and b/consumet/consumet-extensions-1.4.8.tgz differ
diff --git a/consumet/consumet-extensions-1.4.9.tgz b/consumet/consumet-extensions-1.4.9.tgz
new file mode 100644
index 0000000..ccbdd0b
Binary files /dev/null and b/consumet/consumet-extensions-1.4.9.tgz differ
diff --git a/consumet/consumet-extensions-1.5.0.tgz b/consumet/consumet-extensions-1.5.0.tgz
new file mode 100644
index 0000000..0228d55
Binary files /dev/null and b/consumet/consumet-extensions-1.5.0.tgz differ
diff --git a/consumet/consumet-extensions-1.5.1.tgz b/consumet/consumet-extensions-1.5.1.tgz
new file mode 100644
index 0000000..8d3d11c
Binary files /dev/null and b/consumet/consumet-extensions-1.5.1.tgz differ
diff --git a/consumet/consumet-extensions-1.5.2.tgz b/consumet/consumet-extensions-1.5.2.tgz
new file mode 100644
index 0000000..0f7add3
Binary files /dev/null and b/consumet/consumet-extensions-1.5.2.tgz differ
diff --git a/consumet/consumet-extensions-1.5.4.tgz b/consumet/consumet-extensions-1.5.4.tgz
new file mode 100644
index 0000000..33ab009
Binary files /dev/null and b/consumet/consumet-extensions-1.5.4.tgz differ
diff --git a/consumet/consumet-extensions-1.5.6.tgz b/consumet/consumet-extensions-1.5.6.tgz
new file mode 100644
index 0000000..02a3af6
Binary files /dev/null and b/consumet/consumet-extensions-1.5.6.tgz differ
diff --git a/consumet/consumet-extensions-1.6.0.tgz b/consumet/consumet-extensions-1.6.0.tgz
new file mode 100644
index 0000000..eedf25c
Binary files /dev/null and b/consumet/consumet-extensions-1.6.0.tgz differ
diff --git a/consumet/consumet-extensions-1.7.0.tgz b/consumet/consumet-extensions-1.7.0.tgz
new file mode 100644
index 0000000..8635fcd
Binary files /dev/null and b/consumet/consumet-extensions-1.7.0.tgz differ
diff --git a/consumet/consumet-extensions-1.8.0.tgz b/consumet/consumet-extensions-1.8.0.tgz
new file mode 100644
index 0000000..88d52d5
Binary files /dev/null and b/consumet/consumet-extensions-1.8.0.tgz differ
diff --git a/consumet/consumet-extensions-1.8.1.tgz b/consumet/consumet-extensions-1.8.1.tgz
new file mode 100644
index 0000000..392fa42
Binary files /dev/null and b/consumet/consumet-extensions-1.8.1.tgz differ
diff --git a/consumet/consumet-extensions-1.8.2.tgz b/consumet/consumet-extensions-1.8.2.tgz
new file mode 100644
index 0000000..2f0e2dd
Binary files /dev/null and b/consumet/consumet-extensions-1.8.2.tgz differ
diff --git a/consumet/consumet-extensions-1.8.3.tgz b/consumet/consumet-extensions-1.8.3.tgz
new file mode 100644
index 0000000..ea229d9
Binary files /dev/null and b/consumet/consumet-extensions-1.8.3.tgz differ
diff --git a/consumet/consumet-extensions-1.8.4.tgz b/consumet/consumet-extensions-1.8.4.tgz
new file mode 100644
index 0000000..9a9488b
Binary files /dev/null and b/consumet/consumet-extensions-1.8.4.tgz differ
diff --git a/consumet/consumet-extensions-1.8.5.tgz b/consumet/consumet-extensions-1.8.5.tgz
new file mode 100644
index 0000000..1076b0d
Binary files /dev/null and b/consumet/consumet-extensions-1.8.5.tgz differ
diff --git a/consumet/consumet-extensions-1.8.6.tgz b/consumet/consumet-extensions-1.8.6.tgz
new file mode 100644
index 0000000..dc7d6e4
Binary files /dev/null and b/consumet/consumet-extensions-1.8.6.tgz differ
diff --git a/consumet/consumet-extensions-1.8.7.tgz b/consumet/consumet-extensions-1.8.7.tgz
new file mode 100644
index 0000000..1650f6d
Binary files /dev/null and b/consumet/consumet-extensions-1.8.7.tgz differ
diff --git a/consumet/consumet-extensions-1.8.8.tgz b/consumet/consumet-extensions-1.8.8.tgz
new file mode 100644
index 0000000..67ca43b
Binary files /dev/null and b/consumet/consumet-extensions-1.8.8.tgz differ
diff --git a/consumetlogo.png b/consumetlogo.png
new file mode 100644
index 0000000..118be0d
Binary files /dev/null and b/consumetlogo.png differ
diff --git a/dl.sh b/dl.sh
new file mode 100644
index 0000000..f0cbb9b
--- /dev/null
+++ b/dl.sh
@@ -0,0 +1,2 @@
+# npm view aniwatch versions --json | sed 's/[][",]//g' | xargs -I {} npm pack aniwatch@{}
+# npm view @consumet/extensions versions --json | sed 's/[][",]//g' | xargs -I {} npm pack @consumet/extensions@{}
\ No newline at end of file
diff --git a/fuck-crunchyroll.jpg b/fuck-crunchyroll.jpg
new file mode 100644
index 0000000..f5f47c6
Binary files /dev/null and b/fuck-crunchyroll.jpg differ
diff --git a/image.png b/image.png
new file mode 100644
index 0000000..247179a
Binary files /dev/null and b/image.png differ