@crysoline/lib 0.1.4 → 0.1.6

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 (69) hide show
  1. package/dist/core/anime/aniliberty/index.d.ts +1 -0
  2. package/dist/core/anime/aniliberty/index.js +1 -0
  3. package/dist/core/anime/aniliberty/types.d.ts +31 -0
  4. package/dist/core/anime/aniliberty/types.js +1 -0
  5. package/dist/core/anime/anime3rb/index.d.ts +1 -0
  6. package/dist/core/anime/anime3rb/index.js +1 -0
  7. package/dist/core/anime/anime3rb/types.d.ts +7 -0
  8. package/dist/core/anime/anime3rb/types.js +1 -0
  9. package/dist/core/anime/animeav1/index.d.ts +1 -0
  10. package/dist/core/anime/animeav1/index.js +1 -0
  11. package/dist/core/anime/animeav1/types.d.ts +17 -0
  12. package/dist/core/anime/animeav1/types.js +1 -0
  13. package/dist/core/anime/animegg/index.d.ts +1 -0
  14. package/dist/core/anime/animegg/index.js +1 -0
  15. package/dist/core/anime/animegg/types.d.ts +14 -0
  16. package/dist/core/anime/animegg/types.js +1 -0
  17. package/dist/core/anime/animekai/types.d.ts +2 -2
  18. package/dist/core/anime/animelib/index.d.ts +1 -0
  19. package/dist/core/anime/animelib/index.js +1 -0
  20. package/dist/core/anime/animelib/types.d.ts +12 -0
  21. package/dist/core/anime/animelib/types.js +1 -0
  22. package/dist/core/anime/animemeow/index.d.ts +1 -0
  23. package/dist/core/anime/animemeow/index.js +1 -0
  24. package/dist/core/anime/animemeow/types.d.ts +6 -0
  25. package/dist/core/anime/animemeow/types.js +1 -0
  26. package/dist/core/anime/animenix/index.d.ts +1 -0
  27. package/dist/core/anime/animenix/index.js +1 -0
  28. package/dist/core/anime/animenix/types.d.ts +6 -0
  29. package/dist/core/anime/animenix/types.js +1 -0
  30. package/dist/core/anime/index.d.ts +120 -0
  31. package/dist/core/anime/index.js +53 -0
  32. package/dist/core/extractors/index.d.ts +16 -0
  33. package/dist/core/extractors/index.js +10 -0
  34. package/dist/core/extractors/kodik/index.d.ts +1 -0
  35. package/dist/core/extractors/kodik/index.js +1 -0
  36. package/dist/core/extractors/kodik/types.d.ts +14 -0
  37. package/dist/core/extractors/kodik/types.js +1 -0
  38. package/dist/core/hentai/index.d.ts +18 -0
  39. package/dist/core/hentai/index.js +9 -0
  40. package/dist/core/hentai/watchhentai/index.d.ts +1 -0
  41. package/dist/core/hentai/watchhentai/index.js +1 -0
  42. package/dist/core/hentai/watchhentai/types.d.ts +16 -0
  43. package/dist/core/hentai/watchhentai/types.js +1 -0
  44. package/dist/core/index.d.ts +6 -5
  45. package/dist/core/index.js +6 -5
  46. package/dist/core/manga/comix/index.d.ts +1 -0
  47. package/dist/core/manga/comix/index.js +1 -0
  48. package/dist/core/manga/comix/types.d.ts +15 -0
  49. package/dist/core/manga/comix/types.js +1 -0
  50. package/dist/core/manga/index.d.ts +31 -0
  51. package/dist/core/manga/index.js +15 -0
  52. package/dist/core/manga/weebcentral/index.d.ts +1 -0
  53. package/dist/core/manga/weebcentral/index.js +1 -0
  54. package/dist/core/manga/weebcentral/types.d.ts +22 -0
  55. package/dist/core/manga/weebcentral/types.js +1 -0
  56. package/dist/core/mapper/index.d.ts +1 -0
  57. package/dist/core/mapper/index.js +1 -0
  58. package/dist/core/meta/anilist/index.d.ts +1 -0
  59. package/dist/core/meta/anilist/index.js +1 -0
  60. package/dist/core/meta/anilist/types.d.ts +69 -0
  61. package/dist/core/meta/anilist/types.js +1 -0
  62. package/dist/core/meta/index.d.ts +10 -0
  63. package/dist/core/meta/index.js +8 -0
  64. package/dist/core/types.d.ts +8 -7
  65. package/dist/helpers/fetch.d.ts +8 -0
  66. package/dist/helpers/fetch.js +15 -1
  67. package/dist/index.d.ts +2 -1
  68. package/dist/index.js +2 -1
  69. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,31 @@
1
+ export interface ALSearchMeta {
2
+ type: string | null;
3
+ season: string | null;
4
+ alias: string | null;
5
+ isOngoing: boolean | false;
6
+ ageRating: string | null;
7
+ genres: string[] | null;
8
+ }
9
+ export interface ALInfoMeta {
10
+ type: string | null;
11
+ season: string | null;
12
+ year: number | null;
13
+ alias: string | null;
14
+ isOngoing: boolean | false;
15
+ ageRating: string | null;
16
+ genres: string[] | null;
17
+ }
18
+ export interface ALEpisodeMeta {
19
+ hls_480: string | null;
20
+ hls_720: string | null;
21
+ hls_1080: string | null;
22
+ opening: {
23
+ start: number;
24
+ stop: number;
25
+ };
26
+ ending: {
27
+ start: number | null;
28
+ stop: number | null;
29
+ };
30
+ duration: number | null;
31
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,7 @@
1
+ export interface A3RBInfoMeta {
2
+ airdate: string | null;
3
+ genres: string[];
4
+ }
5
+ export interface AnimeRBSrcMeta {
6
+ posters: string[];
7
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,17 @@
1
+ export interface AVSearchMeta {
2
+ slug: string;
3
+ }
4
+ export interface AVInfoMeta {
5
+ season: string;
6
+ status: string;
7
+ format: string;
8
+ genres: string[];
9
+ startDate: string;
10
+ endDate: string;
11
+ }
12
+ export interface AVEpisodeMeta {
13
+ url: string;
14
+ }
15
+ export interface AVSourceMeta {
16
+ poster?: string | null;
17
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,14 @@
1
+ export interface AGGSearchMeta {
2
+ status: string | null;
3
+ altTitles: string[] | null;
4
+ }
5
+ export interface AGGInfoMeta {
6
+ status: string | null;
7
+ genres: string[] | null;
8
+ }
9
+ export interface AGGEpisodeMeta {
10
+ sub: boolean | false;
11
+ dub: boolean | false;
12
+ hd: boolean | false;
13
+ sd: boolean | false;
14
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -11,8 +11,8 @@ export interface KaiRelation {
11
11
  episodes?: number;
12
12
  }
13
13
  export interface KaiEpisodeMeta {
14
- isSub: boolean | null;
15
- isDub: boolean | null;
14
+ sub: boolean | false;
15
+ dub: boolean | false;
16
16
  url: string | null;
17
17
  }
18
18
  export interface KaiInfoMeta {
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,12 @@
1
+ export interface ALIBSearchMeta {
2
+ type: string;
3
+ status: string;
4
+ ageRating: string;
5
+ }
6
+ export interface ALIBInfoMeta {
7
+ type: string;
8
+ status: string;
9
+ ageRating: string;
10
+ genres: string[];
11
+ tags: string[];
12
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,6 @@
1
+ export interface AnimeMeowSearchMeta {
2
+ year: number;
3
+ type: string;
4
+ status: string;
5
+ languageImage: string;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,6 @@
1
+ export interface AnimeNixSearchMeta {
2
+ status: string | undefined;
3
+ }
4
+ export interface AnimeNixEpisodeMeta {
5
+ airDate?: string;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,6 +1,13 @@
1
1
  import type { OneTwoThreeAnimeInfoMeta, OneTwoThreeAnimeSearchMeta } from './123anime';
2
+ import type { ALEpisodeMeta, ALInfoMeta, ALSearchMeta } from './aniliberty';
3
+ import type { A3RBInfoMeta, AnimeRBSrcMeta } from './anime3rb';
4
+ import type { AVEpisodeMeta, AVInfoMeta, AVSearchMeta, AVSourceMeta } from './animeav1';
5
+ import type { AGGEpisodeMeta, AGGInfoMeta, AGGSearchMeta } from './animegg';
2
6
  import type { KaiEpisodeMeta, KaiInfoMeta, KaiSearchMeta } from './animekai';
7
+ import type { ALIBInfoMeta, ALIBSearchMeta } from './animelib';
8
+ import type { AnimeMeowSearchMeta } from './animemeow';
3
9
  import type { NEpisodeMeta, NInfoMeta, NSearchMeta } from './animenexus';
10
+ import type { AnimeNixEpisodeMeta, AnimeNixSearchMeta } from './animenix';
4
11
  import type { OEpisodeMeta, OInfoMeta } from './animeonsen';
5
12
  import type { PaheEpisodeMeta, PaheInfoMeta, PaheSearchMeta } from './animepahe';
6
13
  import type { AZEpisodeMeta, AZInfoMeta, AZSearchMeta } from './anizone';
@@ -22,6 +29,58 @@ declare const Anime: {
22
29
  server?: string;
23
30
  }) => Promise<import("../types").Source<unknown>>;
24
31
  };
32
+ Aniliberty: (apiKey: string) => {
33
+ name: string;
34
+ } & {
35
+ search: (q: string) => Promise<import("../types").Search<ALSearchMeta>[]>;
36
+ info: (id: string | number) => Promise<import("../types").Info<ALInfoMeta, import("../types").Episode<ALEpisodeMeta>>>;
37
+ episodes: (id: string | number) => Promise<import("../types").Episode<ALEpisodeMeta>[]>;
38
+ sources: (params: {
39
+ id: string | number;
40
+ episodeId: string | number;
41
+ subType?: string;
42
+ server?: string;
43
+ }) => Promise<import("../types").Source<unknown>>;
44
+ };
45
+ Anime3rb: (apiKey: string) => {
46
+ name: string;
47
+ } & {
48
+ search: (q: string) => Promise<import("../types").Search<unknown>[]>;
49
+ info: (id: string | number) => Promise<import("../types").Info<A3RBInfoMeta, import("../types").Episode<unknown>>>;
50
+ episodes: (id: string | number) => Promise<import("../types").Episode<unknown>[]>;
51
+ sources: (params: {
52
+ id: string | number;
53
+ episodeId: string | number;
54
+ subType?: string;
55
+ server?: string;
56
+ }) => Promise<import("../types").Source<AnimeRBSrcMeta>>;
57
+ };
58
+ AnimeAV1: (apiKey: string) => {
59
+ name: string;
60
+ } & {
61
+ search: (q: string) => Promise<import("../types").Search<AVSearchMeta>[]>;
62
+ info: (id: string | number) => Promise<import("../types").Info<AVInfoMeta, import("../types").Episode<AVEpisodeMeta>>>;
63
+ episodes: (id: string | number) => Promise<import("../types").Episode<AVEpisodeMeta>[]>;
64
+ sources: (params: {
65
+ id: string | number;
66
+ episodeId: string | number;
67
+ subType?: string;
68
+ server?: string;
69
+ }) => Promise<import("../types").Source<AVSourceMeta>>;
70
+ };
71
+ AnimeGG: (apiKey: string) => {
72
+ name: string;
73
+ } & {
74
+ search: (q: string) => Promise<import("../types").Search<AGGSearchMeta>[]>;
75
+ info: (id: string | number) => Promise<import("../types").Info<AGGInfoMeta, import("../types").Episode<AGGEpisodeMeta>>>;
76
+ episodes: (id: string | number) => Promise<import("../types").Episode<AGGEpisodeMeta>[]>;
77
+ sources: (params: {
78
+ id: string | number;
79
+ episodeId: string | number;
80
+ subType?: string;
81
+ server?: string;
82
+ }) => Promise<import("../types").Source<unknown>>;
83
+ };
25
84
  AnimeParadise: (apiKey: string) => {
26
85
  name: string;
27
86
  } & {
@@ -61,6 +120,36 @@ declare const Anime: {
61
120
  server?: string;
62
121
  }) => Promise<import("../types").Source<unknown>>;
63
122
  };
123
+ AnimeLib: (apiKey: string) => {
124
+ name: string;
125
+ } & {
126
+ search: (q: string) => Promise<import("../types").Search<ALIBSearchMeta>[]>;
127
+ info: (id: string | number) => Promise<import("../types").Info<ALIBInfoMeta, import("../types").Episode<unknown>>>;
128
+ episodes: (id: string | number) => Promise<import("../types").Episode<unknown>[]>;
129
+ sources: (params: {
130
+ id: string | number;
131
+ episodeId: string | number;
132
+ subType?: string;
133
+ server?: string;
134
+ }) => Promise<import("../types").Source<unknown>>;
135
+ servers: (params: {
136
+ id: string | number;
137
+ episodeId: string | number;
138
+ }) => Promise<import("../types").Server<unknown>>;
139
+ };
140
+ AnimeMeow: (apiKey: string) => {
141
+ name: string;
142
+ } & {
143
+ search: (q: string) => Promise<import("../types").Search<AnimeMeowSearchMeta>[]>;
144
+ info: (id: string | number) => Promise<import("../types").Info<unknown, import("../types").Episode<unknown>>>;
145
+ episodes: (id: string | number) => Promise<import("../types").Episode<unknown>[]>;
146
+ sources: (params: {
147
+ id: string | number;
148
+ episodeId: string | number;
149
+ subType?: string;
150
+ server?: string;
151
+ }) => Promise<import("../types").Source<unknown>>;
152
+ };
64
153
  AnimeNexus: (apiKey: string) => {
65
154
  name: string;
66
155
  } & {
@@ -74,6 +163,19 @@ declare const Anime: {
74
163
  server?: string;
75
164
  }) => Promise<import("../types").Source<unknown>>;
76
165
  };
166
+ AnimeNix: (apiKey: string) => {
167
+ name: string;
168
+ } & {
169
+ search: (q: string) => Promise<import("../types").Search<AnimeNixSearchMeta>[]>;
170
+ info: (id: string | number) => Promise<import("../types").Info<unknown, import("../types").Episode<AnimeNixEpisodeMeta>>>;
171
+ episodes: (id: string | number) => Promise<import("../types").Episode<AnimeNixEpisodeMeta>[]>;
172
+ sources: (params: {
173
+ id: string | number;
174
+ episodeId: string | number;
175
+ subType?: string;
176
+ server?: string;
177
+ }) => Promise<import("../types").Source<unknown>>;
178
+ };
77
179
  AnimeOnsen: (apiKey: string) => {
78
180
  name: string;
79
181
  } & {
@@ -171,3 +273,21 @@ declare const Anime: {
171
273
  };
172
274
  };
173
275
  export { Anime };
276
+ export * from './123anime';
277
+ export * from './aniliberty';
278
+ export * from './anime3rb';
279
+ export * from './animeav1';
280
+ export * from './animegg';
281
+ export * from './animeheaven';
282
+ export * from './animekai';
283
+ export * from './animelib';
284
+ export * from './animemeow';
285
+ export * from './animenexus';
286
+ export * from './animenix';
287
+ export * from './animeonsen';
288
+ export * from './animepahe';
289
+ export * from './anizone';
290
+ export * from './hianime';
291
+ export * from './kickassanime';
292
+ export * from './lunar';
293
+ export * from './uniquestream';
@@ -16,6 +16,22 @@ const OneTwoThreeAnime = (apiKey) => AnimeFetch({
16
16
  provider: 'onetwothreeanime',
17
17
  apiKey,
18
18
  });
19
+ const Aniliberty = (apiKey) => AnimeFetch({
20
+ provider: 'aniliberty',
21
+ apiKey,
22
+ });
23
+ const Anime3rb = (apiKey) => AnimeFetch({
24
+ provider: 'anime3rb',
25
+ apiKey,
26
+ });
27
+ const AnimeAV1 = (apiKey) => AnimeFetch({
28
+ provider: 'animeav1',
29
+ apiKey,
30
+ });
31
+ const AnimeGG = (apiKey) => AnimeFetch({
32
+ provider: 'animegg',
33
+ apiKey,
34
+ });
19
35
  /**
20
36
  * Creates an AnimeParadise API client.
21
37
  *
@@ -67,6 +83,14 @@ const AnimeKai = (apiKey) => AnimeFetch({
67
83
  provider: 'animekai',
68
84
  apiKey,
69
85
  });
86
+ const AnimeLib = (apiKey) => AnimeFetch({
87
+ provider: 'animelib',
88
+ apiKey,
89
+ });
90
+ const AnimeMeow = (apiKey) => AnimeFetch({
91
+ provider: 'animemeow',
92
+ apiKey,
93
+ });
70
94
  /**
71
95
  * Creates an AnimeNexus API client.
72
96
  *
@@ -84,6 +108,10 @@ const AnimeNexus = (apiKey) => AnimeFetch({
84
108
  provider: 'animenexus',
85
109
  apiKey,
86
110
  });
111
+ const AnimeNix = (apiKey) => AnimeFetch({
112
+ provider: 'animenix',
113
+ apiKey,
114
+ });
87
115
  /**
88
116
  * Creates an AnimeOnsen API client.
89
117
  *
@@ -231,10 +259,17 @@ const UniqueStream = (apiKey) => AnimeFetch({
231
259
  });
232
260
  const Anime = {
233
261
  OneTwoThreeAnime,
262
+ Aniliberty,
263
+ Anime3rb,
264
+ AnimeAV1,
265
+ AnimeGG,
234
266
  AnimeParadise,
235
267
  AnimeHeaven,
236
268
  AnimeKai,
269
+ AnimeLib,
270
+ AnimeMeow,
237
271
  AnimeNexus,
272
+ AnimeNix,
238
273
  AnimeOnsen,
239
274
  AnimePahe,
240
275
  AniZone,
@@ -244,3 +279,21 @@ const Anime = {
244
279
  UniqueStream,
245
280
  };
246
281
  export { Anime };
282
+ export * from './123anime';
283
+ export * from './aniliberty';
284
+ export * from './anime3rb';
285
+ export * from './animeav1';
286
+ export * from './animegg';
287
+ export * from './animeheaven';
288
+ export * from './animekai';
289
+ export * from './animelib';
290
+ export * from './animemeow';
291
+ export * from './animenexus';
292
+ export * from './animenix';
293
+ export * from './animeonsen';
294
+ export * from './animepahe';
295
+ export * from './anizone';
296
+ export * from './hianime';
297
+ export * from './kickassanime';
298
+ export * from './lunar';
299
+ export * from './uniquestream';
@@ -0,0 +1,16 @@
1
+ declare const Extractor: {
2
+ Kodik: (apiKey: string) => {
3
+ name: string;
4
+ } & {
5
+ episodes: (id: string | number) => Promise<import("../types").Episode<unknown>[]>;
6
+ sources: (params: {
7
+ id: string | number;
8
+ episodeId: string | number;
9
+ subType?: string;
10
+ server?: string;
11
+ }) => Promise<import("../types").Source<unknown>>;
12
+ translations: (id: string | number) => Promise<import("./kodik").KodikTranslation[]>;
13
+ };
14
+ };
15
+ export { Extractor };
16
+ export * from './kodik';
@@ -0,0 +1,10 @@
1
+ import { KodikFetch } from '../../helpers/fetch';
2
+ const Kodik = (apiKey) => KodikFetch({
3
+ provider: 'kodik',
4
+ apiKey,
5
+ });
6
+ const Extractor = {
7
+ Kodik,
8
+ };
9
+ export { Extractor };
10
+ export * from './kodik';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,14 @@
1
+ export interface KodikTranslation {
2
+ id: number | null;
3
+ link: string | null;
4
+ type: string | null;
5
+ title: string | null;
6
+ episodeCount: number | null;
7
+ quality: string | null;
8
+ camrip: boolean | false;
9
+ }
10
+ export interface KodikEpisodeMeta {
11
+ hash: string | null;
12
+ type: string | null;
13
+ link: string | null;
14
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -2,6 +2,7 @@ import type { HianimeEpisodeMeta } from '../anime/hianime';
2
2
  import type { HAnimeInfoMeta, HAnimeSearchMeta } from './hanime';
3
3
  import type { HavenEpisodeMeta, HavenInfoMeta, HavenSourceMeta } from './hentaihaven';
4
4
  import type { HStreamSearchMeta } from './hstream';
5
+ import type { WHEpisodeMeta, WHInfoMeta, WHSearchMeta } from './watchhentai';
5
6
  declare const Hentai: {
6
7
  HAnime: (apiKey: string) => {
7
8
  name: string;
@@ -42,5 +43,22 @@ declare const Hentai: {
42
43
  server?: string;
43
44
  }) => Promise<import("../types").Source<unknown>>;
44
45
  };
46
+ WatchHentai: (apiKey: string) => {
47
+ name: string;
48
+ } & {
49
+ search: (q: string) => Promise<import("../types").Search<WHSearchMeta>[]>;
50
+ info: (id: string | number) => Promise<import("../types").Info<WHInfoMeta, import("../types").Episode<WHEpisodeMeta>>>;
51
+ episodes: (id: string | number) => Promise<import("../types").Episode<WHEpisodeMeta>[]>;
52
+ sources: (params: {
53
+ id: string | number;
54
+ episodeId: string | number;
55
+ subType?: string;
56
+ server?: string;
57
+ }) => Promise<import("../types").Source<unknown>>;
58
+ };
45
59
  };
46
60
  export { Hentai };
61
+ export * from './hanime';
62
+ export * from './hentaihaven';
63
+ export * from './hstream';
64
+ export * from './watchhentai';
@@ -54,9 +54,18 @@ const HStream = (apiKey) => HentaiFetch({
54
54
  provider: 'hstream',
55
55
  apiKey,
56
56
  });
57
+ const WatchHentai = (apiKey) => HentaiFetch({
58
+ provider: 'watchhentai',
59
+ apiKey,
60
+ });
57
61
  const Hentai = {
58
62
  HAnime,
59
63
  HentaiHaven,
60
64
  HStream,
65
+ WatchHentai,
61
66
  };
62
67
  export { Hentai };
68
+ export * from './hanime';
69
+ export * from './hentaihaven';
70
+ export * from './hstream';
71
+ export * from './watchhentai';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,16 @@
1
+ export interface WHSearchMeta {
2
+ type: string | null;
3
+ year: number | null;
4
+ }
5
+ export interface WHInfoMeta {
6
+ airDate: string | null;
7
+ endDate: string | null;
8
+ seasons: number | null;
9
+ duration: string | null;
10
+ studio: string | null;
11
+ tags: string[] | null;
12
+ screenshots: string[] | null;
13
+ }
14
+ export interface WHEpisodeMeta {
15
+ date: string | null;
16
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,6 @@
1
- export { Anime } from './anime';
2
- export { Hentai } from './hentai';
3
- export { Manga } from './manga';
4
- export { Mapper } from './mapper';
5
- export { Meta } from './meta';
1
+ export * from './anime/index';
2
+ export * from './hentai/index';
3
+ export * from './manga/index';
4
+ export * from './mapper/index';
5
+ export * from './meta/index';
6
+ export * from './extractors/index';
@@ -1,5 +1,6 @@
1
- export { Anime } from './anime';
2
- export { Hentai } from './hentai';
3
- export { Manga } from './manga';
4
- export { Mapper } from './mapper';
5
- export { Meta } from './meta';
1
+ export * from './anime/index';
2
+ export * from './hentai/index';
3
+ export * from './manga/index';
4
+ export * from './mapper/index';
5
+ export * from './meta/index';
6
+ export * from './extractors/index';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,15 @@
1
+ export interface COSearchMeta {
2
+ slug: string | null;
3
+ status: string | null;
4
+ latestChapter: number | null;
5
+ nsfw: boolean | false;
6
+ }
7
+ export interface COInfoMeta {
8
+ slug: string | null;
9
+ status: string | null;
10
+ latestChapter: number | null;
11
+ nsfw: boolean | false;
12
+ }
13
+ export interface COChapterMeta {
14
+ official: boolean;
15
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,7 +1,21 @@
1
+ import type { COChapterMeta, COInfoMeta, COSearchMeta } from './comix';
1
2
  import type { LMangaInfoMeta, LMangaSearchMeta } from './lunar';
2
3
  import type { MDXInfoMeta, MDXSearchMeta } from './mangadex';
3
4
  import type { MFInfoMeta, MFSearchMeta } from './mangafire';
5
+ import type { WCInfoMeta, WCSearchMeta } from './weebcentral';
4
6
  declare const Manga: {
7
+ Comix: (apiKey: string) => {
8
+ name: string;
9
+ } & {
10
+ search: (q: string) => Promise<import("../types").Search<COSearchMeta>[]>;
11
+ info: (id: string | number) => Promise<import("../types").Info<COInfoMeta, import("../types").Episode<unknown>>>;
12
+ chapters: (id: string | number) => Promise<import("../types").Chapter<COChapterMeta>[]>;
13
+ pages: (params: {
14
+ id: string | number;
15
+ chapterId: string | number;
16
+ lang?: string;
17
+ }) => Promise<import("../types").Page[]>;
18
+ };
5
19
  LunarManga: (apiKey: string) => {
6
20
  name: string;
7
21
  } & {
@@ -38,5 +52,22 @@ declare const Manga: {
38
52
  lang?: string;
39
53
  }) => Promise<import("../types").Page[]>;
40
54
  };
55
+ WeebCentral: (apiKey: string) => {
56
+ name: string;
57
+ } & {
58
+ search: (q: string) => Promise<import("../types").Search<WCSearchMeta>[]>;
59
+ info: (id: string | number) => Promise<import("../types").Info<WCInfoMeta, import("../types").Episode<unknown>>>;
60
+ chapters: (id: string | number) => Promise<import("../types").Chapter<unknown>[]>;
61
+ pages: (params: {
62
+ id: string | number;
63
+ chapterId: string | number;
64
+ lang?: string;
65
+ }) => Promise<import("../types").Page[]>;
66
+ };
41
67
  };
42
68
  export { Manga };
69
+ export * from './comix';
70
+ export * from './lunar';
71
+ export * from './mangadex';
72
+ export * from './mangafire';
73
+ export * from './weebcentral';
@@ -1,4 +1,8 @@
1
1
  import { MangaFetch } from '../../helpers/fetch';
2
+ const Comix = (apiKey) => MangaFetch({
3
+ provider: 'comix',
4
+ apiKey,
5
+ });
2
6
  /**
3
7
  * Creates a LunarManga API client.
4
8
  *
@@ -63,9 +67,20 @@ const MangaFire = (apiKey) => MangaFetch({
63
67
  provider: 'mangafire',
64
68
  apiKey,
65
69
  });
70
+ const WeebCentral = (apiKey) => MangaFetch({
71
+ provider: 'weebcentral',
72
+ apiKey,
73
+ });
66
74
  const Manga = {
75
+ Comix,
67
76
  LunarManga,
68
77
  MangaDex,
69
78
  MangaFire,
79
+ WeebCentral,
70
80
  };
71
81
  export { Manga };
82
+ export * from './comix';
83
+ export * from './lunar';
84
+ export * from './mangadex';
85
+ export * from './mangafire';
86
+ export * from './weebcentral';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,22 @@
1
+ export interface WCLink {
2
+ source: string | null;
3
+ id: string | null;
4
+ }
5
+ export interface WCSearchMeta {
6
+ year: number | null;
7
+ status: string | null;
8
+ type: string | null;
9
+ authors: string[] | null;
10
+ tags: string[] | null;
11
+ }
12
+ export interface WCInfoMeta {
13
+ year: number | null;
14
+ status: string | null;
15
+ type: string | null;
16
+ official: boolean | false;
17
+ anime: boolean | false;
18
+ adult: boolean | false;
19
+ authors: string[] | null;
20
+ tags: string[] | null;
21
+ links: WCLink[] | null;
22
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -28,3 +28,4 @@ declare const Mapper: (apiKey: string) => {
28
28
  }) => Promise<import("./types").Mapping>;
29
29
  };
30
30
  export { Mapper };
31
+ export * from './types';
@@ -25,3 +25,4 @@ const Mapper = (apiKey) => MapperFetch({
25
25
  apiKey,
26
26
  });
27
27
  export { Mapper };
28
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,69 @@
1
+ export interface AnilistSearchMeta {
2
+ format: string;
3
+ averageScore: number | null;
4
+ popularity: number;
5
+ }
6
+ export interface AnilistInfoMeta {
7
+ format: string;
8
+ status: string;
9
+ startDate: AnilistDate;
10
+ endDate: AnilistDate;
11
+ season: string | null;
12
+ seasonYear: number | null;
13
+ duration: number | null;
14
+ source: string | null;
15
+ averageScore: number | null;
16
+ popularity: number;
17
+ favourites: number;
18
+ studios: string[];
19
+ genres: string[];
20
+ tags: string[];
21
+ relations: AnilistRelation[];
22
+ characters: AnilistCharacter[];
23
+ staff: AnilistStaff[];
24
+ trailer: AnilistTrailerInfo | null;
25
+ externalLinks: AnilistExternalLink[];
26
+ }
27
+ export interface AnilistRelation {
28
+ id: number;
29
+ title: {
30
+ romaji: string;
31
+ english: string | null;
32
+ };
33
+ coverImage: string;
34
+ format: string;
35
+ relationType: string;
36
+ }
37
+ export interface AnilistVoiceActor {
38
+ id: number;
39
+ name: string;
40
+ language: string;
41
+ image: string;
42
+ }
43
+ export interface AnilistCharacter {
44
+ id: number;
45
+ name: string;
46
+ role: string;
47
+ image: string;
48
+ voiceActors: AnilistVoiceActor[];
49
+ }
50
+ export interface AnilistStaff {
51
+ id: number;
52
+ name: string;
53
+ role: string;
54
+ image: string;
55
+ }
56
+ export interface AnilistTrailerInfo {
57
+ url: string;
58
+ site: string;
59
+ thumbnail: string;
60
+ }
61
+ export interface AnilistExternalLink {
62
+ url: string;
63
+ site: string;
64
+ }
65
+ export interface AnilistDate {
66
+ year: number | null;
67
+ month: number | null;
68
+ day: number | null;
69
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,6 +1,13 @@
1
+ import type { AnilistInfoMeta, AnilistSearchMeta } from './anilist';
1
2
  import type { MInfoMeta, MSearchMeta } from './myanimelist';
2
3
  import type { MMLInfoMeta, MMSearchMeta } from './mymangalist';
3
4
  declare const Meta: {
5
+ Anilist: (apiKey: string) => {
6
+ name: string;
7
+ } & {
8
+ search: (q: string) => Promise<import("../types").Search<AnilistSearchMeta>[]>;
9
+ info: (id: string | number) => Promise<import("../types").Info<AnilistInfoMeta, import("../types").Episode<unknown>>>;
10
+ };
4
11
  MyAnimeList: (apiKey: string) => {
5
12
  name: string;
6
13
  } & {
@@ -15,3 +22,6 @@ declare const Meta: {
15
22
  };
16
23
  };
17
24
  export { Meta };
25
+ export * from './anilist';
26
+ export * from './myanimelist';
27
+ export * from './mymangalist';
@@ -1,4 +1,8 @@
1
1
  import { MetaFetch } from '../../helpers/fetch';
2
+ const Anilist = (apiKey) => MetaFetch({
3
+ provider: 'anilist',
4
+ apiKey,
5
+ });
2
6
  /**
3
7
  * Creates a MyAnimeList API client for anime metadata.
4
8
  *
@@ -48,7 +52,11 @@ const MyMangaList = (apiKey) => MetaFetch({
48
52
  apiKey,
49
53
  });
50
54
  const Meta = {
55
+ Anilist,
51
56
  MyAnimeList,
52
57
  MyMangaList,
53
58
  };
54
59
  export { Meta };
60
+ export * from './anilist';
61
+ export * from './myanimelist';
62
+ export * from './mymangalist';
@@ -5,13 +5,14 @@ export interface Image {
5
5
  large: string;
6
6
  }
7
7
  export interface Title {
8
- english?: string | null | undefined;
9
- romaji?: string | null | undefined;
10
- japanese?: string | null | undefined;
11
- native?: string | null | undefined;
8
+ english?: string | null;
9
+ romaji?: string | null;
10
+ japanese?: string | null;
11
+ native?: string | null;
12
+ other?: string | null;
12
13
  }
13
14
  export interface Chapter<T = unknown> {
14
- id?: string | null;
15
+ id?: string | number | null;
15
16
  title?: string | null;
16
17
  number?: number | null;
17
18
  rating?: number | null;
@@ -39,7 +40,7 @@ export interface Info<T = unknown, E = unknown> {
39
40
  synonyms?: string[] | null;
40
41
  description?: string | null;
41
42
  image?: Image | null;
42
- banner?: Image | null;
43
+ background?: Image | null;
43
44
  logo?: Image | null;
44
45
  airedEpisodes?: number | null;
45
46
  totalEpisodes?: number | null;
@@ -78,7 +79,7 @@ export interface Download {
78
79
  export interface VideoSource {
79
80
  url?: string | null;
80
81
  isM3U8?: boolean | null;
81
- type?: VideoType | null;
82
+ type?: VideoType | string | null;
82
83
  quality?: string | null;
83
84
  isDub?: boolean | null;
84
85
  }
@@ -1,3 +1,4 @@
1
+ import type { KodikTranslation } from '../core/extractors/kodik/types';
1
2
  import type { Mapping } from '../core/mapper/types';
2
3
  import type { Chapter, Episode, Info, Page, Search, Server, Source } from '../core/types';
3
4
  type SearchRoute<T = unknown> = (q: string) => Promise<Search<T>[]>;
@@ -19,6 +20,7 @@ type PagesRoute = (params: {
19
20
  chapterId: string | number;
20
21
  lang?: string;
21
22
  }) => Promise<Page[]>;
23
+ type TranslationsRoute = (id: string | number) => Promise<KodikTranslation[]>;
22
24
  type MapRoute = (params: {
23
25
  id: number;
24
26
  provider: string;
@@ -31,6 +33,7 @@ type RouteMap<TSearchMeta = unknown, TInfoMeta = unknown, TEpisodeMeta = unknown
31
33
  servers: ServersRoute<TServerMeta>;
32
34
  chapters: ChaptersRoute<TChapterMeta>;
33
35
  pages: PagesRoute;
36
+ translations: TranslationsRoute;
34
37
  map: MapRoute;
35
38
  };
36
39
  type SelectRoutes = {
@@ -75,4 +78,9 @@ export declare const MetaFetch: <TSearchMeta = unknown, TInfoMeta = unknown, S e
75
78
  export declare const MapperFetch: (config: FetchModuleConfig) => BuildRoutes<{
76
79
  map: true;
77
80
  }>;
81
+ export declare const KodikFetch: (config: FetchModuleConfig) => BuildRoutes<{
82
+ episodes: true;
83
+ translations: true;
84
+ sources: true;
85
+ }>;
78
86
  export {};
@@ -85,10 +85,24 @@ export const MetaFetch = (config) => {
85
85
  };
86
86
  export const MapperFetch = (config) => {
87
87
  const { baseUrl = 'https://api.crysoline.moe', provider, apiKey } = config;
88
- const basePath = `${baseUrl}/api/mapper/${provider}/`;
88
+ const basePath = `${baseUrl}/api/${provider}/`;
89
89
  const fetcher = fetchFn(basePath, apiKey);
90
90
  const map = async (params) => fetcher('map', params);
91
91
  return {
92
92
  map,
93
93
  };
94
94
  };
95
+ export const KodikFetch = (config) => {
96
+ const { baseUrl = 'https://api.crysoline.moe', provider, apiKey } = config;
97
+ const basePath = `${baseUrl}/extractor/${provider}/`;
98
+ const fetcher = fetchFn(basePath, apiKey);
99
+ const episodes = async (id) => fetcher(`episodes/${encodeURIComponent(id)}`);
100
+ const sources = (params) => fetcher('sources', params);
101
+ const translations = (id) => fetcher(`translations/${encodeURIComponent(id)}`);
102
+ return {
103
+ name: provider,
104
+ episodes,
105
+ sources,
106
+ translations,
107
+ };
108
+ };
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
- export { Anime, Hentai, Manga, Mapper, Meta } from './core';
1
+ export * from './core';
2
+ export * from './core/types';
package/dist/index.js CHANGED
@@ -1 +1,2 @@
1
- export { Anime, Hentai, Manga, Mapper, Meta } from './core';
1
+ export * from './core';
2
+ export * from './core/types';
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@crysoline/lib",
3
3
  "description": "The official crysoline library for anime, manga using the Crysoline API",
4
4
  "license": "MIT",
5
- "version": "0.1.4",
5
+ "version": "0.1.6",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
8
8
  "types": "dist/index.d.ts",