cinderbyte 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +2 -0
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.js +3 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/models/parsers/anime.d.ts +21 -0
  7. package/dist/models/parsers/anime.js +11 -0
  8. package/dist/models/parsers/anime.js.map +1 -0
  9. package/dist/models/parsers/base.d.ts +9 -0
  10. package/dist/models/parsers/base.js +5 -0
  11. package/dist/models/parsers/base.js.map +1 -0
  12. package/dist/models/parsers/index.d.ts +2 -0
  13. package/dist/models/parsers/index.js +3 -0
  14. package/dist/models/parsers/index.js.map +1 -0
  15. package/dist/models/providers/anime/animepahe.d.ts +45 -0
  16. package/dist/models/providers/anime/animepahe.js +248 -0
  17. package/dist/models/providers/anime/animepahe.js.map +1 -0
  18. package/dist/models/providers/anime/index.d.ts +2 -0
  19. package/dist/models/providers/anime/index.js +3 -0
  20. package/dist/models/providers/anime/index.js.map +1 -0
  21. package/dist/models/providers/baseProvider.d.ts +21 -0
  22. package/dist/models/providers/baseProvider.js +14 -0
  23. package/dist/models/providers/baseProvider.js.map +1 -0
  24. package/dist/models/providers/index.d.ts +7 -0
  25. package/dist/models/providers/index.js +8 -0
  26. package/dist/models/providers/index.js.map +1 -0
  27. package/dist/utils/heplers/kwik.d.ts +21 -0
  28. package/dist/utils/heplers/kwik.js +60 -0
  29. package/dist/utils/heplers/kwik.js.map +1 -0
  30. package/dist/utils/types/anime.d.ts +13 -0
  31. package/dist/utils/types/anime.js +1 -0
  32. package/dist/utils/types/anime.js.map +1 -0
  33. package/dist/utils/types/index.d.ts +22 -0
  34. package/dist/utils/types/index.js +1 -0
  35. package/dist/utils/types/index.js.map +1 -0
  36. package/dist/utils/types/provider.d.ts +12 -0
  37. package/dist/utils/types/provider.js +1 -0
  38. package/dist/utils/types/provider.js.map +1 -0
  39. package/dist/utils/use/browser.d.ts +0 -0
  40. package/dist/utils/use/browser.js +94 -0
  41. package/dist/utils/use/browser.js.map +1 -0
  42. package/dist/utils/use/cookie-cache.d.ts +4 -0
  43. package/dist/utils/use/cookie-cache.js +24 -0
  44. package/dist/utils/use/cookie-cache.js.map +1 -0
  45. package/dist/utils/use/index.d.ts +7 -0
  46. package/dist/utils/use/index.js +41 -0
  47. package/dist/utils/use/index.js.map +1 -0
  48. package/package.json +41 -0
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ import anime from "./models/providers";
2
+ export { anime };
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,oBAAoB,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import BaseParser from "./base";
2
+ import type { AnimeSearchResultsInterface } from "../../utils/types/anime";
3
+ declare abstract class AnimeParser extends BaseParser {
4
+ /**
5
+ * are dub and sub available separately
6
+ * - false: the anime is available as a single item
7
+ * - true: the anime has variants like `anime title (sub)` and `anime title (dub)`
8
+ */
9
+ protected readonly separateDubandSub: boolean;
10
+ /**
11
+ * - get search results for a search query
12
+ * @param query - search query
13
+ * @param page - page number of response
14
+ * @param perPage - number of items to show in each page
15
+ * @param args - other arguments (depend on the provider)
16
+ */
17
+ abstract search(query: string, page: number, perPage: number, ...args: any[]): Promise<AnimeSearchResultsInterface>;
18
+ abstract getAnimeInfo(...args: any): Promise<any>;
19
+ abstract getEpisodeSources(...args: any): Promise<any>;
20
+ }
21
+ export default AnimeParser;
@@ -0,0 +1,11 @@
1
+ import BaseParser from "./base";
2
+ class AnimeParser extends BaseParser {
3
+ /**
4
+ * are dub and sub available separately
5
+ * - false: the anime is available as a single item
6
+ * - true: the anime has variants like `anime title (sub)` and `anime title (dub)`
7
+ */
8
+ separateDubandSub = false;
9
+ }
10
+ export default AnimeParser;
11
+ //# sourceMappingURL=anime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anime.js","sourceRoot":"","sources":["../../../src/models/parsers/anime.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,QAAQ,CAAC;AAGhC,MAAe,WAAY,SAAQ,UAAU;IAC3C;;;;OAIG;IACgB,iBAAiB,GAAY,KAAK,CAAC;CAkBvD;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,9 @@
1
+ import BaseProvider from "../providers/baseProvider";
2
+ declare abstract class BaseParser extends BaseProvider {
3
+ /**
4
+ * base search function
5
+ *
6
+ */
7
+ abstract search(query: string, ...args: any[]): Promise<unknown>;
8
+ }
9
+ export default BaseParser;
@@ -0,0 +1,5 @@
1
+ import BaseProvider from "../providers/baseProvider";
2
+ class BaseParser extends BaseProvider {
3
+ }
4
+ export default BaseParser;
5
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/models/parsers/base.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAErD,MAAe,UAAW,SAAQ,YAAY;CAM7C;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ import AnimeParser from "./anime";
2
+ export { AnimeParser };
@@ -0,0 +1,3 @@
1
+ import AnimeParser from "./anime";
2
+ export { AnimeParser };
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,45 @@
1
+ import type { AnimeSearchResultsInterface } from "../../../utils/types/anime";
2
+ import type { ProviderInfo } from "../../../utils/types/provider";
3
+ import { AnimeParser } from "../../parsers";
4
+ export default class AnimePahe extends AnimeParser {
5
+ data: ProviderInfo;
6
+ cachePath: string;
7
+ constructor(basePath?: string);
8
+ private getHeaders;
9
+ private readCache;
10
+ private getCookieString;
11
+ private bypassToCache;
12
+ /**
13
+ * Ensures cache is fresh. Returns true when cache is usable.
14
+ */
15
+ writeToCache({ url, cachePath, force, }: {
16
+ url: string;
17
+ cachePath?: string;
18
+ force?: boolean;
19
+ }): Promise<boolean>;
20
+ search(query: string, page?: number, perPage?: number, ...args: any[]): Promise<AnimeSearchResultsInterface>;
21
+ getSession(title: string, animeId?: string): Promise<string>;
22
+ getEpisodes({ title, session, sort, page, }: {
23
+ title?: string;
24
+ session?: string;
25
+ sort?: string;
26
+ page?: number;
27
+ }): Promise<any>;
28
+ getAnimeInfo({ title, session, ep_page, }: {
29
+ title: string;
30
+ session?: string;
31
+ ep_page?: number;
32
+ }): Promise<{
33
+ session: string;
34
+ anilist_id: string;
35
+ title: string;
36
+ image: string;
37
+ synopsis: string;
38
+ episodes: any;
39
+ }>;
40
+ getEpisodeSources({ title, session, episode_id, }: {
41
+ title: string;
42
+ session?: string;
43
+ episode_id: string;
44
+ }): Promise<any>;
45
+ }
@@ -0,0 +1,248 @@
1
+ import axios from "axios";
2
+ import { bypass } from "cinderbyte-bypass-ddg";
3
+ import * as cheerio from "cheerio";
4
+ import { readFile } from "node:fs/promises";
5
+ import { userAgent } from "../../../utils/use";
6
+ import { editJsonFile } from "../../../utils/use/cookie-cache";
7
+ import { AnimeParser } from "../../parsers";
8
+ import extractKwikVideo, { organizeStreamLinks, } from "../../../utils/heplers/kwik";
9
+ export default class AnimePahe extends AnimeParser {
10
+ data = {
11
+ name: "AnimePahe",
12
+ language: "en",
13
+ type: "ANIME",
14
+ icon: "https://animepahe.si/pikacon.ico",
15
+ author: "Skunktank69",
16
+ baseUrl: "https://animepahe.si",
17
+ altUrls: ["https://animepahe.com", "https://animepahe.org"],
18
+ isNSFW: false,
19
+ };
20
+ cachePath;
21
+ constructor(basePath) {
22
+ super();
23
+ this.cachePath =
24
+ basePath ??
25
+ process.env.ANIMEPAHE_CACHE_DIR ??
26
+ "./cache/animepahe/cache.json";
27
+ }
28
+ getHeaders({ sessionId, cookie, }) {
29
+ const host = new URL(this.data.baseUrl).host;
30
+ // NOTE TO SELF ( by skunktank69 ):
31
+ // authority must match the actual host you are calling, otherwise some setups get weird.
32
+ // also: cookie must be omitted if empty, not `cookie: false`.
33
+ const headers = {
34
+ accept: "application/json, text/javascript, */*; q=0.01",
35
+ "accept-language": "en-US,en;q=0.9",
36
+ dnt: "1",
37
+ "sec-ch-ua": '"Not A(Brand";v="99", "Microsoft Edge";v="121", "Chromium";v="121"',
38
+ "sec-ch-ua-mobile": "?0",
39
+ "sec-ch-ua-platform": '"Windows"',
40
+ "sec-fetch-dest": "empty",
41
+ "sec-fetch-mode": "cors",
42
+ "sec-fetch-site": "same-origin",
43
+ "x-requested-with": "XMLHttpRequest",
44
+ referer: sessionId
45
+ ? `${this.data.baseUrl}/anime/${sessionId}`
46
+ : this.data.baseUrl,
47
+ "user-agent": userAgent,
48
+ authority: host,
49
+ };
50
+ if (cookie)
51
+ headers.cookie = cookie;
52
+ return headers;
53
+ }
54
+ async readCache(cachePath = this.cachePath) {
55
+ try {
56
+ const raw = await readFile(cachePath, "utf8");
57
+ const json = JSON.parse(raw);
58
+ // tolerate either {string: "..."} or raw object
59
+ return (json ?? {});
60
+ }
61
+ catch {
62
+ return {};
63
+ }
64
+ }
65
+ async getCookieString(cachePath = this.cachePath) {
66
+ const cache = await this.readCache(cachePath);
67
+ return typeof cache.string === "string" ? cache.string : "";
68
+ }
69
+ async bypassToCache(url) {
70
+ return new Promise((resolve, reject) => {
71
+ bypass(url, (err, resp) => {
72
+ if (err)
73
+ return reject(err);
74
+ const cookiesObj = resp?.cookies ?? {};
75
+ const cacheData = {
76
+ ...cookiesObj,
77
+ timeStamp: Date.now(),
78
+ expires: Date.now() + 604_800_000, // 7 days
79
+ };
80
+ resolve(cacheData);
81
+ });
82
+ });
83
+ }
84
+ /**
85
+ * Ensures cache is fresh. Returns true when cache is usable.
86
+ */
87
+ async writeToCache({ url, cachePath = this.cachePath, force = false, }) {
88
+ const apc = await this.readCache(cachePath);
89
+ const expires = typeof apc.expires === "number" ? apc.expires : 0;
90
+ const now = Date.now();
91
+ if (!force && expires > now) {
92
+ return true;
93
+ }
94
+ try {
95
+ const cacheData = await this.bypassToCache(url);
96
+ // editJsonFile is your util; assume it writes JSON atomically-ish
97
+ await Promise.resolve(editJsonFile(cachePath, cacheData));
98
+ return true;
99
+ }
100
+ catch (err) {
101
+ const fallbackCookie = typeof apc.string === "string" ? apc.string.trim() : "";
102
+ if (fallbackCookie)
103
+ return true;
104
+ throw err;
105
+ }
106
+ }
107
+ async search(query, page, perPage, ...args) {
108
+ const url = `${this.data.baseUrl}/api?m=search&q=${encodeURIComponent(query)}`;
109
+ await this.writeToCache({ url, force: true });
110
+ const cookie = await this.getCookieString();
111
+ const headers = this.getHeaders({ cookie });
112
+ const res = await axios.get(url, { ...headers });
113
+ return res.data;
114
+ }
115
+ async getSession(title, animeId) {
116
+ const url = `${this.data.baseUrl}/api?m=search&q=${encodeURIComponent(title)}`;
117
+ await this.writeToCache({ url, force: true });
118
+ const cookie = await this.getCookieString();
119
+ const headers = this.getHeaders({ cookie });
120
+ const res = await axios.get(url, { headers });
121
+ const data = res.data;
122
+ if (!data?.data || !Array.isArray(data.data)) {
123
+ throw new Error("Invalid search response");
124
+ }
125
+ const byId = animeId &&
126
+ data.data.find((a) => a?.id === animeId || a?.anime_id === animeId);
127
+ const byTitle = data.data.find((a) => a?.title === title);
128
+ const pick = byId ?? byTitle ?? data.data[0];
129
+ const session = pick?.session;
130
+ if (!session)
131
+ throw new Error("No matching anime found (missing session)");
132
+ return String(session);
133
+ }
134
+ async getEpisodes({ title, session, sort, page, }) {
135
+ await this.writeToCache({ url: this.data.baseUrl });
136
+ const cookie = await this.getCookieString();
137
+ const headers = this.getHeaders({ cookie });
138
+ if (!session && title) {
139
+ session = await this.getSession(title);
140
+ }
141
+ const url = `${this.data.baseUrl}/api?m=release&id=${session}&sort=${sort ?? "episode_desc"}&page=${page ?? 1}`;
142
+ const res = await axios.get(url, { headers });
143
+ const data = res.data;
144
+ return {
145
+ ...data,
146
+ };
147
+ }
148
+ async getAnimeInfo({ title, session, ep_page, }) {
149
+ await this.writeToCache({ url: this.data.baseUrl });
150
+ const cookie = await this.getCookieString();
151
+ const headers = this.getHeaders({ cookie });
152
+ if (!session && title) {
153
+ session = await this.getSession(title);
154
+ }
155
+ const episodes = await this.getEpisodes({
156
+ session: session,
157
+ page: ep_page ?? 1,
158
+ });
159
+ const url = `${this.data.baseUrl}/anime/${session}`;
160
+ const res = await axios.get(url, { headers });
161
+ const $ = cheerio.load(res.data);
162
+ const data = {
163
+ session,
164
+ anilist_id: $(".external-links > a:nth-of-type(1)")
165
+ .attr("href")
166
+ ?.split("/anime/")[1],
167
+ title: title ??
168
+ $(".anime-header > .title-wrapper > .user-select-none > span")
169
+ .text()
170
+ .trim(),
171
+ image: $(".youtube-preview > img").attr("data-src"),
172
+ synopsis: $(".anime-synopsis").text().trim(),
173
+ episodes,
174
+ };
175
+ return data;
176
+ }
177
+ async getEpisodeSources({ title, session, episode_id, }) {
178
+ try {
179
+ await this.writeToCache({ url: this.data.baseUrl });
180
+ const cookie = await this.getCookieString();
181
+ let headers = this.getHeaders({ cookie });
182
+ if (!session && title) {
183
+ session = await this.getSession(title);
184
+ }
185
+ headers = {
186
+ ...headers,
187
+ sessionId: session,
188
+ Referer: this.data.baseUrl,
189
+ };
190
+ const url = `${this.data.baseUrl}/play/${session}/${episode_id}`;
191
+ const res = await axios.get(url, { headers });
192
+ const $ = cheerio.load(res.data);
193
+ const buttons = $("#resolutionMenu button");
194
+ const videoLinks = [];
195
+ for (const button of buttons) {
196
+ const quality = $(button).text().trim();
197
+ const kwikLink = $(button).attr("data-src");
198
+ const audio = $(button).attr("data-audio");
199
+ if (kwikLink) {
200
+ const videoResult = await extractKwikVideo(kwikLink, {
201
+ baseUrl: this.data.baseUrl,
202
+ headers: headers,
203
+ });
204
+ if (!videoResult.error) {
205
+ videoLinks.push({
206
+ quality: quality,
207
+ url: videoResult.url,
208
+ referer: "https://kwik.cx",
209
+ isDub: audio === "eng",
210
+ });
211
+ }
212
+ const qualityOrder = {
213
+ "1080p": 1,
214
+ "720p": 2,
215
+ "480p": 3,
216
+ "360p": 4,
217
+ };
218
+ videoLinks.sort((a, b) => {
219
+ const qualityA =
220
+ //@ts-expect-error ----
221
+ qualityOrder[a.quality.replace(/.*?(\d+p).*/, "$1")] || 999;
222
+ const qualityB =
223
+ //@ts-expect-error ----
224
+ qualityOrder[b.quality.replace(/.*?(\d+p).*/, "$1")] || 999;
225
+ return qualityA - qualityB;
226
+ });
227
+ const organizedLinks = organizeStreamLinks(videoLinks);
228
+ return {
229
+ headers: {
230
+ Referer: "https://kwik.cx/",
231
+ },
232
+ sources: [
233
+ {
234
+ url: organizedLinks.sub[0] || organizedLinks.dub[0],
235
+ },
236
+ ],
237
+ multiSrc: videoLinks,
238
+ };
239
+ }
240
+ }
241
+ }
242
+ catch (error) {
243
+ console.error("Error getting episode sources:", error);
244
+ return { sources: [], multiSrc: [] };
245
+ }
246
+ }
247
+ }
248
+ //# sourceMappingURL=animepahe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animepahe.js","sourceRoot":"","sources":["../../../../src/models/providers/anime/animepahe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import AnimePahe from "./animepahe";
2
+ export { AnimePahe };
@@ -0,0 +1,3 @@
1
+ import AnimePahe from "./animepahe";
2
+ export { AnimePahe };
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/models/providers/anime/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { ExtensionTypeEnum, ProviderInfo } from "../../utils/types/provider";
2
+ declare abstract class BaseProvider {
3
+ /**
4
+ * provider info
5
+ */
6
+ protected abstract readonly data: ProviderInfo;
7
+ cachePath?: string;
8
+ protected generateIdentifier(name: string, isNSFW: boolean, type: ExtensionTypeEnum): string;
9
+ getInfo(): {
10
+ identifier: string;
11
+ name: string;
12
+ type: ExtensionTypeEnum;
13
+ author: string;
14
+ baseUrl: string;
15
+ altUrls?: string[];
16
+ icon: string;
17
+ language: string | string[];
18
+ isNSFW: boolean;
19
+ };
20
+ }
21
+ export default BaseProvider;
@@ -0,0 +1,14 @@
1
+ class BaseProvider {
2
+ cachePath;
3
+ generateIdentifier(name, isNSFW, type) {
4
+ return `${type.toLowerCase()}.${isNSFW ? "nsfw" : "sfw"}.${name}`.replaceAll("/[^0-9a-zA-Z]+/gm", "-");
5
+ }
6
+ getInfo() {
7
+ return {
8
+ ...this.data,
9
+ identifier: this.generateIdentifier(this.data.name, this.data.isNSFW, this.data.type),
10
+ };
11
+ }
12
+ }
13
+ export default BaseProvider;
14
+ //# sourceMappingURL=baseProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseProvider.js","sourceRoot":"","sources":["../../../src/models/providers/baseProvider.ts"],"names":[],"mappings":"AAKA,MAAe,YAAY;IAKzB,SAAS,CAAU;IAET,kBAAkB,CAC1B,IAAY,EACZ,MAAe,EACf,IAAuB;QAEvB,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,UAAU,CAC1E,mBAAmB,EACnB,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO;YACL,GAAG,IAAI,CAAC,IAAI;YACZ,UAAU,EAAE,IAAI,CAAC,kBAAkB,CACjC,IAAI,CAAC,IAAI,CAAC,IAAI,EACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CACf;SACF,CAAC;IACJ,CAAC;CACF;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { AnimePahe } from "./anime";
2
+ declare const anime: {
3
+ sfw: {
4
+ AnimePahe: typeof AnimePahe;
5
+ };
6
+ };
7
+ export default anime;
@@ -0,0 +1,8 @@
1
+ import { AnimePahe } from "./anime";
2
+ const anime = {
3
+ sfw: {
4
+ AnimePahe,
5
+ },
6
+ };
7
+ export default anime;
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,KAAK,GAAG;IACZ,GAAG,EAAE;QACH,SAAS;KACV;CACF,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { AxiosHeaders } from "axios";
2
+ export default function extractKwikVideo(url: string, { baseUrl, headers }: {
3
+ baseUrl: string;
4
+ headers: AxiosHeaders;
5
+ }): Promise<{
6
+ error: boolean;
7
+ url: any;
8
+ isM3U8: boolean;
9
+ originalUrl: string;
10
+ message?: undefined;
11
+ } | {
12
+ error: boolean;
13
+ message: any;
14
+ originalUrl: string;
15
+ url?: undefined;
16
+ isM3U8?: undefined;
17
+ }>;
18
+ export declare function organizeStreamLinks(links: any): {
19
+ sub: any[];
20
+ dub: any[];
21
+ };
@@ -0,0 +1,60 @@
1
+ import axios from "axios";
2
+ export default async function extractKwikVideo(url, { baseUrl, headers }) {
3
+ try {
4
+ const response = await axios.get(url, {
5
+ headers,
6
+ });
7
+ const html = await response.data;
8
+ const scriptMatch = /(eval)(\(f.*?)(\n<\/script>)/s.exec(html);
9
+ if (!scriptMatch) {
10
+ return {
11
+ error: true,
12
+ message: "Could not find obfuscated script",
13
+ originalUrl: url,
14
+ };
15
+ }
16
+ const evalCode = scriptMatch[2]?.replace("eval", "");
17
+ const deobfuscated = eval(evalCode);
18
+ const m3u8Match = deobfuscated.match(/https.*?m3u8/);
19
+ if (m3u8Match && m3u8Match[0]) {
20
+ return {
21
+ error: false,
22
+ url: m3u8Match[0],
23
+ isM3U8: true,
24
+ originalUrl: url,
25
+ };
26
+ }
27
+ return {
28
+ error: true,
29
+ message: "Could not extract m3u8 URL",
30
+ originalUrl: url,
31
+ };
32
+ }
33
+ catch (error) {
34
+ console.error("Error extracting Kwik video:", error);
35
+ return {
36
+ error: true,
37
+ message: error.message,
38
+ originalUrl: url,
39
+ };
40
+ }
41
+ }
42
+ export function organizeStreamLinks(links) {
43
+ const result = { sub: [], dub: [] };
44
+ const qualityOrder = ["1080p", "720p", "360p"];
45
+ for (const link of links) {
46
+ const isDub = link.isDub;
47
+ const targetList = isDub ? result.dub : result.sub;
48
+ targetList.push(link.url);
49
+ }
50
+ // Sort by quality
51
+ const sortByQuality = (a, b) => {
52
+ const qualityA = qualityOrder.indexOf(a.match(/\d+p/)?.[0] || "");
53
+ const qualityB = qualityOrder.indexOf(b.match(/\d+p/)?.[0] || "");
54
+ return qualityB - qualityA;
55
+ };
56
+ result.sub.sort(sortByQuality);
57
+ result.dub.sort(sortByQuality);
58
+ return result;
59
+ }
60
+ //# sourceMappingURL=kwik.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kwik.js","sourceRoot":"","sources":["../../../src/utils/heplers/kwik.ts"],"names":[],"mappings":"AAAA,OAAO,KAAuB,MAAM,OAAO,CAAC;AAE5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,gBAAgB,CAC5C,GAAW,EACX,EAAE,OAAO,EAAE,OAAO,EAA8C;IAEhE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACpC,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;QACjC,MAAM,WAAW,GAAG,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,kCAAkC;gBAC3C,WAAW,EAAE,GAAG;aACjB,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAkB,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAErD,IAAI,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;gBACjB,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,GAAG;aACjB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,4BAA4B;YACrC,WAAW,EAAE,GAAG;SACjB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO;YACL,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,GAAG;SACjB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC5C,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACpC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QACnD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAY,CAAC,CAAC;IACrC,CAAC;IAED,kBAAkB;IAClB,MAAM,aAAa,GAAG,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE;QACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE/B,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { BaseResultsInterface } from ".";
2
+ type episodeDataType = {
3
+ id: string | string[] | null;
4
+ title: string | string[] | null;
5
+ link: string | string[] | null;
6
+ image: string | null;
7
+ [x: string]: any;
8
+ };
9
+ interface AnimeSearchResultsInterface extends BaseResultsInterface {
10
+ episodes: episodeDataType;
11
+ [x: string]: any;
12
+ }
13
+ export type { AnimeSearchResultsInterface };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=anime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anime.js","sourceRoot":"","sources":["../../../src/utils/types/anime.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ interface BaseResultsInterface {
2
+ id: {
3
+ source: string | number | null;
4
+ [x: string]: any;
5
+ };
6
+ title: {
7
+ source: string | null;
8
+ original: string | null;
9
+ lang: {
10
+ [x: string]: any;
11
+ };
12
+ };
13
+ synopsis: {
14
+ source: string | null;
15
+ [x: string]: any;
16
+ };
17
+ images: {
18
+ cover: string | [] | null;
19
+ banner: string | [] | null;
20
+ };
21
+ }
22
+ export type { BaseResultsInterface };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ type ExtensionTypeEnum = "ANIME" | "MANGA" | "NOVELS" | "META" | "MOVIES";
2
+ interface ProviderInfo {
3
+ name: string;
4
+ type: ExtensionTypeEnum;
5
+ author: string;
6
+ baseUrl: string;
7
+ altUrls?: string[];
8
+ icon: string;
9
+ language: string | string[];
10
+ isNSFW: boolean;
11
+ }
12
+ export type { ProviderInfo, ExtensionTypeEnum };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/utils/types/provider.ts"],"names":[],"mappings":""}
File without changes