@irfanshadikrishad/anilist 1.2.1-forbidden.1 → 1.2.3-forbidden.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.
- package/README.md +0 -5
- package/bin/helpers/auth.js +34 -34
- package/bin/helpers/queries.d.ts +1 -1
- package/bin/helpers/queries.js +1 -1
- package/bin/helpers/types.d.ts +25 -1
- package/bin/helpers/workers.d.ts +3 -2
- package/bin/helpers/workers.js +7 -2
- package/package.json +80 -80
- package/assets/binance.jpg +0 -0
package/README.md
CHANGED
|
@@ -237,9 +237,4 @@ Since you are creating your own API client for login no else else can get your c
|
|
|
237
237
|
|
|
238
238
|
Want to contribute to the project? Check out complete guideline [here](CONTRIBUTING.md).
|
|
239
239
|
|
|
240
|
-
#### Donation
|
|
241
|
-
|
|
242
|
-
<img src='/assets/binance.jpg' alt='irfanshadikrishad_binance_pay' width='200px'><br>
|
|
243
|
-
Support the project if you find it useful to you.
|
|
244
|
-
|
|
245
240
|
#### **_Thanks for visiting 💙_**
|
package/bin/helpers/auth.js
CHANGED
|
@@ -17,7 +17,7 @@ import { fetcher } from "./fetcher.js";
|
|
|
17
17
|
import { AniList, MyAnimeList } from "./lists.js";
|
|
18
18
|
import { deleteActivityMutation, likeActivityMutation, saveTextActivityMutation, } from "./mutations.js";
|
|
19
19
|
import { activityAllQuery, activityAnimeListQuery, activityMangaListQuery, activityMediaList, activityMessageQuery, activityTextQuery, currentUserAnimeList, currentUserMangaList, currentUserQuery, deleteMangaEntryMutation, deleteMediaEntryMutation, followingActivitiesQuery, globalActivitiesQuery, specificUserActivitiesQuery, userActivityQuery, userQuery, } from "./queries.js";
|
|
20
|
-
import { aniListEndpoint, getTitle, redirectUri, timestampToTimeAgo, } from "./workers.js";
|
|
20
|
+
import { activityBy, aniListEndpoint, getTitle, redirectUri, timestampToTimeAgo, } from "./workers.js";
|
|
21
21
|
const home_dir = os.homedir();
|
|
22
22
|
const save_path = path.join(home_dir, ".anilist_token");
|
|
23
23
|
class Auth {
|
|
@@ -130,30 +130,30 @@ class Auth {
|
|
|
130
130
|
perPage: 10,
|
|
131
131
|
});
|
|
132
132
|
const activities = (_b = (_a = activiResponse === null || activiResponse === void 0 ? void 0 : activiResponse.data) === null || _a === void 0 ? void 0 : _a.Page) === null || _b === void 0 ? void 0 : _b.activities;
|
|
133
|
-
console.log(`
|
|
134
|
-
ID: ${user === null || user === void 0 ? void 0 : user.id}
|
|
135
|
-
Name: ${user === null || user === void 0 ? void 0 : user.name}
|
|
136
|
-
siteUrl: ${user === null || user === void 0 ? void 0 : user.siteUrl}
|
|
137
|
-
profileColor: ${(_c = user === null || user === void 0 ? void 0 : user.options) === null || _c === void 0 ? void 0 : _c.profileColor}
|
|
138
|
-
timeZone: ${(_d = user === null || user === void 0 ? void 0 : user.options) === null || _d === void 0 ? void 0 : _d.timezone}
|
|
139
|
-
activityMergeTime: ${(_e = user === null || user === void 0 ? void 0 : user.options) === null || _e === void 0 ? void 0 : _e.activityMergeTime}
|
|
140
|
-
donatorTier: ${user === null || user === void 0 ? void 0 : user.donatorTier}
|
|
141
|
-
donatorBadge: ${user === null || user === void 0 ? void 0 : user.donatorBadge}
|
|
142
|
-
unreadNotificationCount:${user === null || user === void 0 ? void 0 : user.unreadNotificationCount}
|
|
143
|
-
Account Created: ${new Date((user === null || user === void 0 ? void 0 : user.createdAt) * 1000).toUTCString()}
|
|
144
|
-
Account Updated: ${new Date((user === null || user === void 0 ? void 0 : user.updatedAt) * 1000).toUTCString()}
|
|
145
|
-
|
|
146
|
-
Statistics (Anime):
|
|
147
|
-
Count: ${(_g = (_f = user === null || user === void 0 ? void 0 : user.statistics) === null || _f === void 0 ? void 0 : _f.anime) === null || _g === void 0 ? void 0 : _g.count}
|
|
148
|
-
Mean Score: ${(_j = (_h = user === null || user === void 0 ? void 0 : user.statistics) === null || _h === void 0 ? void 0 : _h.anime) === null || _j === void 0 ? void 0 : _j.meanScore}
|
|
149
|
-
Minutes Watched: ${(_l = (_k = user === null || user === void 0 ? void 0 : user.statistics) === null || _k === void 0 ? void 0 : _k.anime) === null || _l === void 0 ? void 0 : _l.minutesWatched}
|
|
150
|
-
Episodes Watched: ${(_o = (_m = user === null || user === void 0 ? void 0 : user.statistics) === null || _m === void 0 ? void 0 : _m.anime) === null || _o === void 0 ? void 0 : _o.episodesWatched}
|
|
151
|
-
|
|
152
|
-
Statistics (Manga):
|
|
153
|
-
Count: ${(_q = (_p = user === null || user === void 0 ? void 0 : user.statistics) === null || _p === void 0 ? void 0 : _p.manga) === null || _q === void 0 ? void 0 : _q.count}
|
|
154
|
-
Mean Score: ${(_s = (_r = user === null || user === void 0 ? void 0 : user.statistics) === null || _r === void 0 ? void 0 : _r.manga) === null || _s === void 0 ? void 0 : _s.meanScore}
|
|
155
|
-
Chapters Read: ${(_u = (_t = user === null || user === void 0 ? void 0 : user.statistics) === null || _t === void 0 ? void 0 : _t.manga) === null || _u === void 0 ? void 0 : _u.chaptersRead}
|
|
156
|
-
Volumes Read: ${(_w = (_v = user === null || user === void 0 ? void 0 : user.statistics) === null || _v === void 0 ? void 0 : _v.manga) === null || _w === void 0 ? void 0 : _w.volumesRead}
|
|
133
|
+
console.log(`
|
|
134
|
+
ID: ${user === null || user === void 0 ? void 0 : user.id}
|
|
135
|
+
Name: ${user === null || user === void 0 ? void 0 : user.name}
|
|
136
|
+
siteUrl: ${user === null || user === void 0 ? void 0 : user.siteUrl}
|
|
137
|
+
profileColor: ${(_c = user === null || user === void 0 ? void 0 : user.options) === null || _c === void 0 ? void 0 : _c.profileColor}
|
|
138
|
+
timeZone: ${(_d = user === null || user === void 0 ? void 0 : user.options) === null || _d === void 0 ? void 0 : _d.timezone}
|
|
139
|
+
activityMergeTime: ${(_e = user === null || user === void 0 ? void 0 : user.options) === null || _e === void 0 ? void 0 : _e.activityMergeTime}
|
|
140
|
+
donatorTier: ${user === null || user === void 0 ? void 0 : user.donatorTier}
|
|
141
|
+
donatorBadge: ${user === null || user === void 0 ? void 0 : user.donatorBadge}
|
|
142
|
+
unreadNotificationCount:${user === null || user === void 0 ? void 0 : user.unreadNotificationCount}
|
|
143
|
+
Account Created: ${new Date((user === null || user === void 0 ? void 0 : user.createdAt) * 1000).toUTCString()}
|
|
144
|
+
Account Updated: ${new Date((user === null || user === void 0 ? void 0 : user.updatedAt) * 1000).toUTCString()}
|
|
145
|
+
|
|
146
|
+
Statistics (Anime):
|
|
147
|
+
Count: ${(_g = (_f = user === null || user === void 0 ? void 0 : user.statistics) === null || _f === void 0 ? void 0 : _f.anime) === null || _g === void 0 ? void 0 : _g.count}
|
|
148
|
+
Mean Score: ${(_j = (_h = user === null || user === void 0 ? void 0 : user.statistics) === null || _h === void 0 ? void 0 : _h.anime) === null || _j === void 0 ? void 0 : _j.meanScore}
|
|
149
|
+
Minutes Watched: ${(_l = (_k = user === null || user === void 0 ? void 0 : user.statistics) === null || _k === void 0 ? void 0 : _k.anime) === null || _l === void 0 ? void 0 : _l.minutesWatched}
|
|
150
|
+
Episodes Watched: ${(_o = (_m = user === null || user === void 0 ? void 0 : user.statistics) === null || _m === void 0 ? void 0 : _m.anime) === null || _o === void 0 ? void 0 : _o.episodesWatched}
|
|
151
|
+
|
|
152
|
+
Statistics (Manga):
|
|
153
|
+
Count: ${(_q = (_p = user === null || user === void 0 ? void 0 : user.statistics) === null || _p === void 0 ? void 0 : _p.manga) === null || _q === void 0 ? void 0 : _q.count}
|
|
154
|
+
Mean Score: ${(_s = (_r = user === null || user === void 0 ? void 0 : user.statistics) === null || _r === void 0 ? void 0 : _r.manga) === null || _s === void 0 ? void 0 : _s.meanScore}
|
|
155
|
+
Chapters Read: ${(_u = (_t = user === null || user === void 0 ? void 0 : user.statistics) === null || _t === void 0 ? void 0 : _t.manga) === null || _u === void 0 ? void 0 : _u.chaptersRead}
|
|
156
|
+
Volumes Read: ${(_w = (_v = user === null || user === void 0 ? void 0 : user.statistics) === null || _v === void 0 ? void 0 : _v.manga) === null || _w === void 0 ? void 0 : _w.volumesRead}
|
|
157
157
|
`);
|
|
158
158
|
console.log(`\nRecent Activities:`);
|
|
159
159
|
if (activities.length > 0) {
|
|
@@ -583,7 +583,7 @@ Statistics (Manga):
|
|
|
583
583
|
}
|
|
584
584
|
static LikeFollowing() {
|
|
585
585
|
return __awaiter(this, void 0, void 0, function* () {
|
|
586
|
-
var _a, _b, _c, _d
|
|
586
|
+
var _a, _b, _c, _d;
|
|
587
587
|
try {
|
|
588
588
|
let page = 1;
|
|
589
589
|
let hasMoreActivities = true;
|
|
@@ -603,14 +603,14 @@ Statistics (Manga):
|
|
|
603
603
|
const like = yield fetcher(likeActivityMutation, {
|
|
604
604
|
activityId: activ.id,
|
|
605
605
|
});
|
|
606
|
-
console.info(
|
|
606
|
+
console.info(`${activityBy(activ)} ${(like === null || like === void 0 ? void 0 : like.data) ? "✅" : "❌"}`);
|
|
607
607
|
}
|
|
608
608
|
catch (error) {
|
|
609
609
|
console.error(`Activity possibly deleted. ${error.message}`);
|
|
610
610
|
}
|
|
611
611
|
}
|
|
612
612
|
else {
|
|
613
|
-
console.log(
|
|
613
|
+
console.log(`${activityBy(activ)} 🔵`);
|
|
614
614
|
}
|
|
615
615
|
// avoiding rate-limit
|
|
616
616
|
yield new Promise((resolve) => {
|
|
@@ -640,7 +640,7 @@ Statistics (Manga):
|
|
|
640
640
|
}
|
|
641
641
|
static Like(type) {
|
|
642
642
|
return __awaiter(this, void 0, void 0, function* () {
|
|
643
|
-
var _a, _b, _c, _d
|
|
643
|
+
var _a, _b, _c, _d;
|
|
644
644
|
try {
|
|
645
645
|
let page = 1;
|
|
646
646
|
let hasMoreActivities = true;
|
|
@@ -663,14 +663,14 @@ Statistics (Manga):
|
|
|
663
663
|
activityId: activ.id,
|
|
664
664
|
});
|
|
665
665
|
// const ToggleLike = like?.data?.ToggleLike
|
|
666
|
-
console.info(
|
|
666
|
+
console.info(`${activityBy(activ)} ${(like === null || like === void 0 ? void 0 : like.data) ? "✅" : "❌"}`);
|
|
667
667
|
}
|
|
668
668
|
catch (error) {
|
|
669
669
|
console.error(`Activity possibly deleted. ${error.message}`);
|
|
670
670
|
}
|
|
671
671
|
}
|
|
672
672
|
else {
|
|
673
|
-
console.log(
|
|
673
|
+
console.log(`${activityBy(activ)} 🔵`);
|
|
674
674
|
}
|
|
675
675
|
// avoiding rate-limit
|
|
676
676
|
yield new Promise((resolve) => {
|
|
@@ -694,7 +694,7 @@ Statistics (Manga):
|
|
|
694
694
|
}
|
|
695
695
|
static LikeSpecificUser() {
|
|
696
696
|
return __awaiter(this, void 0, void 0, function* () {
|
|
697
|
-
var _a, _b, _c, _d
|
|
697
|
+
var _a, _b, _c, _d;
|
|
698
698
|
try {
|
|
699
699
|
const { username } = yield inquirer.prompt([
|
|
700
700
|
{
|
|
@@ -727,14 +727,14 @@ Statistics (Manga):
|
|
|
727
727
|
const like = yield fetcher(likeActivityMutation, {
|
|
728
728
|
activityId: activ.id,
|
|
729
729
|
});
|
|
730
|
-
console.info(
|
|
730
|
+
console.info(`${activityBy(activ)} ${(like === null || like === void 0 ? void 0 : like.data) ? "✅" : "❌"}`);
|
|
731
731
|
}
|
|
732
732
|
catch (error) {
|
|
733
733
|
console.error(`Activity possibly deleted. ${error.message}`);
|
|
734
734
|
}
|
|
735
735
|
}
|
|
736
736
|
else {
|
|
737
|
-
console.log(
|
|
737
|
+
console.log(`${activityBy(activ)} 🔵`);
|
|
738
738
|
}
|
|
739
739
|
// Avoiding rate limit
|
|
740
740
|
yield new Promise((resolve) => {
|
package/bin/helpers/queries.d.ts
CHANGED
|
@@ -21,5 +21,5 @@ declare const malIdToAnilistAnimeId = "query ($malId: Int) {\n Media(idMal: $ma
|
|
|
21
21
|
declare const malIdToAnilistMangaId = "query ($malId: Int) {\n Media(idMal: $malId, type: MANGA) { id title { romaji english } } }\n";
|
|
22
22
|
declare const followingActivitiesQuery = "\nquery ($page: Int, $perPage: Int) {\n Page(page: $page, perPage: $perPage) {\n activities(isFollowing: true, sort: ID_DESC) {\n ... on TextActivity { id type isLiked createdAt user { id name } }\n ... on ListActivity { id type isLiked status progress media { title { userPreferred } } createdAt user { id name } }\n ... on MessageActivity { id type isLiked message createdAt recipient { id name } }\n }\n }\n}\n";
|
|
23
23
|
declare const globalActivitiesQuery = "\nquery ($page: Int, $perPage: Int) {\n Page(page: $page, perPage: $perPage) {\n activities(sort: ID_DESC) {\n ... on TextActivity { id type isLiked createdAt user { id name } }\n ... on ListActivity { id type isLiked status progress media { title { userPreferred } } createdAt user { id name } }\n ... on MessageActivity { id type isLiked message createdAt recipient { id name } }\n }\n }\n}\n";
|
|
24
|
-
declare const specificUserActivitiesQuery = "\nquery ($page: Int, $perPage: Int, $userId: Int) {\n Page(page: $page, perPage: $perPage) {\n activities(userId: $userId, sort: ID_DESC) {\n ... on TextActivity { id type isLiked createdAt user { id name } }\n ... on ListActivity { id type isLiked status progress media { title { userPreferred } } createdAt user { id name } }\n ... on MessageActivity { id type isLiked message createdAt recipient { id name } }\n }\n }\n}\n";
|
|
24
|
+
declare const specificUserActivitiesQuery = "\nquery ($page: Int, $perPage: Int, $userId: Int) {\n Page(page: $page, perPage: $perPage) {\n activities(userId: $userId, sort: ID_DESC) {\n ... on TextActivity { id type isLiked createdAt user { id name } }\n ... on ListActivity { id type isLiked status progress media { title { userPreferred } } createdAt user { id name } }\n ... on MessageActivity { messenger { name } id type isLiked message createdAt recipient { id name } }\n }\n }\n}\n";
|
|
25
25
|
export { activityAllQuery, activityAnimeListQuery, activityMangaListQuery, activityMediaList, activityMessageQuery, activityTextQuery, animeDetailsQuery, animeSearchQuery, currentUserAnimeList, currentUserMangaList, currentUserQuery, deleteMangaEntryMutation, deleteMediaEntryMutation, followingActivitiesQuery, globalActivitiesQuery, malIdToAnilistAnimeId, malIdToAnilistMangaId, mangaSearchQuery, popularQuery, specificUserActivitiesQuery, trendingQuery, upcomingAnimesQuery, userActivityQuery, userQuery, };
|
package/bin/helpers/queries.js
CHANGED
|
@@ -153,7 +153,7 @@ query ($page: Int, $perPage: Int, $userId: Int) {
|
|
|
153
153
|
activities(userId: $userId, sort: ID_DESC) {
|
|
154
154
|
... on TextActivity { id type isLiked createdAt user { id name } }
|
|
155
155
|
... on ListActivity { id type isLiked status progress media { title { userPreferred } } createdAt user { id name } }
|
|
156
|
-
... on MessageActivity { id type isLiked message createdAt recipient { id name } }
|
|
156
|
+
... on MessageActivity { messenger { name } id type isLiked message createdAt recipient { id name } }
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
}
|
package/bin/helpers/types.d.ts
CHANGED
|
@@ -212,4 +212,28 @@ interface MediaListEntry {
|
|
|
212
212
|
hiddenFromStatusLists?: boolean;
|
|
213
213
|
private?: boolean;
|
|
214
214
|
}
|
|
215
|
-
|
|
215
|
+
interface TheActivity {
|
|
216
|
+
type: string;
|
|
217
|
+
id: number;
|
|
218
|
+
message?: string;
|
|
219
|
+
createdAt: number;
|
|
220
|
+
recipient?: {
|
|
221
|
+
id: number;
|
|
222
|
+
name: string;
|
|
223
|
+
};
|
|
224
|
+
isLiked?: boolean;
|
|
225
|
+
user?: {
|
|
226
|
+
id?: number;
|
|
227
|
+
name?: string;
|
|
228
|
+
};
|
|
229
|
+
messenger?: {
|
|
230
|
+
name: string;
|
|
231
|
+
};
|
|
232
|
+
media?: {
|
|
233
|
+
title?: {
|
|
234
|
+
userPreferred: string;
|
|
235
|
+
};
|
|
236
|
+
};
|
|
237
|
+
progress: string | null;
|
|
238
|
+
}
|
|
239
|
+
export { AniListMediaStatus, AnimeDetails, AnimeList, DateMonthYear, DeleteMangaResponse, List, MALAnimeStatus, MALAnimeXML, MALMangaStatus, MalIdToAnilistIdResponse, MediaEntry, MediaList, MediaListEntry, MediaTitle, MediaWithProgress, Myself, TheActivity, saveAnimeWithProgressResponse, };
|
package/bin/helpers/workers.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MALAnimeStatus, MALMangaStatus, MediaWithProgress } from "./types.js";
|
|
1
|
+
import { MALAnimeStatus, MALMangaStatus, MediaWithProgress, TheActivity } from "./types.js";
|
|
2
2
|
declare const aniListEndpoint = "https://graphql.anilist.co";
|
|
3
3
|
declare const redirectUri = "https://anilist.co/api/v2/oauth/pin";
|
|
4
4
|
declare function getTitle(title: {
|
|
@@ -36,4 +36,5 @@ declare function createAnimeListXML(mediaWithProgress: MediaWithProgress[]): Pro
|
|
|
36
36
|
declare function createMangaListXML(mediaWithProgress: MediaWithProgress[]): Promise<string>;
|
|
37
37
|
declare function getCurrentPackageVersion(): string | null;
|
|
38
38
|
declare function timestampToTimeAgo(timestamp: number): string;
|
|
39
|
-
|
|
39
|
+
declare function activityBy(activity: TheActivity): string;
|
|
40
|
+
export { activityBy, aniListEndpoint, createAnimeListXML, createAnimeXML, createMangaListXML, createMangaXML, formatDateObject, getCurrentPackageVersion, getDownloadFolderPath, getFormattedDate, getNextSeasonAndYear, getTitle, redirectUri, removeHtmlAndMarkdown, saveJSONasCSV, saveJSONasJSON, selectFile, timestampToTimeAgo, };
|
package/bin/helpers/workers.js
CHANGED
|
@@ -17,7 +17,7 @@ import { homedir } from "os";
|
|
|
17
17
|
import { join } from "path";
|
|
18
18
|
import process from "process";
|
|
19
19
|
import { Auth } from "./auth.js";
|
|
20
|
-
import { MALAnimeStatus, MALMangaStatus } from "./types.js";
|
|
20
|
+
import { MALAnimeStatus, MALMangaStatus, } from "./types.js";
|
|
21
21
|
const aniListEndpoint = `https://graphql.anilist.co`;
|
|
22
22
|
const redirectUri = "https://anilist.co/api/v2/oauth/pin";
|
|
23
23
|
function getTitle(title) {
|
|
@@ -314,4 +314,9 @@ function timestampToTimeAgo(timestamp) {
|
|
|
314
314
|
return `${years} year${years === 1 ? "" : "s"} ago`;
|
|
315
315
|
}
|
|
316
316
|
}
|
|
317
|
-
|
|
317
|
+
function activityBy(activity) {
|
|
318
|
+
var _a, _b;
|
|
319
|
+
const name = ((_a = activity === null || activity === void 0 ? void 0 : activity.messenger) === null || _a === void 0 ? void 0 : _a.name) || ((_b = activity === null || activity === void 0 ? void 0 : activity.user) === null || _b === void 0 ? void 0 : _b.name);
|
|
320
|
+
return name ? `[${activity.id}]\t${name}` : `???`;
|
|
321
|
+
}
|
|
322
|
+
export { activityBy, aniListEndpoint, createAnimeListXML, createAnimeXML, createMangaListXML, createMangaXML, formatDateObject, getCurrentPackageVersion, getDownloadFolderPath, getFormattedDate, getNextSeasonAndYear, getTitle, redirectUri, removeHtmlAndMarkdown, saveJSONasCSV, saveJSONasJSON, selectFile, timestampToTimeAgo, };
|
package/package.json
CHANGED
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@irfanshadikrishad/anilist",
|
|
3
|
-
"description": "Minimalist unofficial AniList CLI for Anime and Manga Enthusiasts",
|
|
4
|
-
"author": "Irfan Shadik Rishad",
|
|
5
|
-
"version": "1.2.
|
|
6
|
-
"main": "./bin/index.js",
|
|
7
|
-
"type": "module",
|
|
8
|
-
"types": "./bin/index.d.ts",
|
|
9
|
-
"bin": {
|
|
10
|
-
"anilist": "./bin/index.js"
|
|
11
|
-
},
|
|
12
|
-
"publishConfig": {
|
|
13
|
-
"access": "public"
|
|
14
|
-
},
|
|
15
|
-
"scripts": {
|
|
16
|
-
"build": "rm -rf ./bin && tsc",
|
|
17
|
-
"buildw": "rm -rf ./bin && tsc -w",
|
|
18
|
-
"format": "prettier . --write",
|
|
19
|
-
"format:check": "prettier . --check",
|
|
20
|
-
"lint": "eslint ./dist",
|
|
21
|
-
"lint:fix": "eslint ./dist --fix",
|
|
22
|
-
"all": "npm run lint && npm run lint:fix && npm run format && npm test",
|
|
23
|
-
"test": "jest ./tests"
|
|
24
|
-
},
|
|
25
|
-
"keywords": [
|
|
26
|
-
"anilist",
|
|
27
|
-
"CLI",
|
|
28
|
-
"anime",
|
|
29
|
-
"manga",
|
|
30
|
-
"anime list",
|
|
31
|
-
"manga list",
|
|
32
|
-
"anime tracker",
|
|
33
|
-
"manga tracker",
|
|
34
|
-
"anilist API",
|
|
35
|
-
"anime progress",
|
|
36
|
-
"manga progress",
|
|
37
|
-
"media list",
|
|
38
|
-
"export anime",
|
|
39
|
-
"import anime",
|
|
40
|
-
"export manga",
|
|
41
|
-
"import manga",
|
|
42
|
-
"status tracker",
|
|
43
|
-
"watchlist",
|
|
44
|
-
"reading list",
|
|
45
|
-
"graphql"
|
|
46
|
-
],
|
|
47
|
-
"repository": {
|
|
48
|
-
"type": "git",
|
|
49
|
-
"url": "https://github.com/irfanshadikrishad/anilist"
|
|
50
|
-
},
|
|
51
|
-
"homepage": "https://github.com/irfanshadikrishad/anilist",
|
|
52
|
-
"bugs": {
|
|
53
|
-
"url": "https://github.com/irfanshadikrishad/anilist/issues"
|
|
54
|
-
},
|
|
55
|
-
"license": "MPL-2.0",
|
|
56
|
-
"devDependencies": {
|
|
57
|
-
"@eslint/js": "^9.17.0",
|
|
58
|
-
"@types/jest": "^29.5.14",
|
|
59
|
-
"@types/json2csv": "^5.0.7",
|
|
60
|
-
"@types/node": "^22.10.5",
|
|
61
|
-
"eslint": "^9.17.0",
|
|
62
|
-
"globals": "^15.14.0",
|
|
63
|
-
"jest": "^29.7.0",
|
|
64
|
-
"prettier": "^3.4.2",
|
|
65
|
-
"prettier-plugin-organize-imports": "^4.1.0",
|
|
66
|
-
"ts-jest": "^29.2.5",
|
|
67
|
-
"ts-node": "^10.9.2",
|
|
68
|
-
"typescript": "^5.7.2",
|
|
69
|
-
"@babel/preset-env": "^7.26.0",
|
|
70
|
-
"@typescript-eslint/eslint-plugin": "^8.19.
|
|
71
|
-
},
|
|
72
|
-
"dependencies": {
|
|
73
|
-
"commander": "^13.0.0",
|
|
74
|
-
"fast-xml-parser": "^4.5.1",
|
|
75
|
-
"inquirer": "^12.3.0",
|
|
76
|
-
"json2csv": "^6.0.0-alpha.2",
|
|
77
|
-
"node-fetch": "^3.3.2",
|
|
78
|
-
"open": "^10.1.0"
|
|
79
|
-
}
|
|
80
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@irfanshadikrishad/anilist",
|
|
3
|
+
"description": "Minimalist unofficial AniList CLI for Anime and Manga Enthusiasts",
|
|
4
|
+
"author": "Irfan Shadik Rishad",
|
|
5
|
+
"version": "1.2.3-forbidden.1",
|
|
6
|
+
"main": "./bin/index.js",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"types": "./bin/index.d.ts",
|
|
9
|
+
"bin": {
|
|
10
|
+
"anilist": "./bin/index.js"
|
|
11
|
+
},
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"access": "public"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "rm -rf ./bin && tsc",
|
|
17
|
+
"buildw": "rm -rf ./bin && tsc -w",
|
|
18
|
+
"format": "prettier . --write",
|
|
19
|
+
"format:check": "prettier . --check",
|
|
20
|
+
"lint": "eslint ./dist",
|
|
21
|
+
"lint:fix": "eslint ./dist --fix",
|
|
22
|
+
"all": "npm run lint && npm run lint:fix && npm run format && npm test",
|
|
23
|
+
"test": "jest ./tests"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"anilist",
|
|
27
|
+
"CLI",
|
|
28
|
+
"anime",
|
|
29
|
+
"manga",
|
|
30
|
+
"anime list",
|
|
31
|
+
"manga list",
|
|
32
|
+
"anime tracker",
|
|
33
|
+
"manga tracker",
|
|
34
|
+
"anilist API",
|
|
35
|
+
"anime progress",
|
|
36
|
+
"manga progress",
|
|
37
|
+
"media list",
|
|
38
|
+
"export anime",
|
|
39
|
+
"import anime",
|
|
40
|
+
"export manga",
|
|
41
|
+
"import manga",
|
|
42
|
+
"status tracker",
|
|
43
|
+
"watchlist",
|
|
44
|
+
"reading list",
|
|
45
|
+
"graphql"
|
|
46
|
+
],
|
|
47
|
+
"repository": {
|
|
48
|
+
"type": "git",
|
|
49
|
+
"url": "https://github.com/irfanshadikrishad/anilist"
|
|
50
|
+
},
|
|
51
|
+
"homepage": "https://github.com/irfanshadikrishad/anilist",
|
|
52
|
+
"bugs": {
|
|
53
|
+
"url": "https://github.com/irfanshadikrishad/anilist/issues"
|
|
54
|
+
},
|
|
55
|
+
"license": "MPL-2.0",
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"@eslint/js": "^9.17.0",
|
|
58
|
+
"@types/jest": "^29.5.14",
|
|
59
|
+
"@types/json2csv": "^5.0.7",
|
|
60
|
+
"@types/node": "^22.10.5",
|
|
61
|
+
"eslint": "^9.17.0",
|
|
62
|
+
"globals": "^15.14.0",
|
|
63
|
+
"jest": "^29.7.0",
|
|
64
|
+
"prettier": "^3.4.2",
|
|
65
|
+
"prettier-plugin-organize-imports": "^4.1.0",
|
|
66
|
+
"ts-jest": "^29.2.5",
|
|
67
|
+
"ts-node": "^10.9.2",
|
|
68
|
+
"typescript": "^5.7.2",
|
|
69
|
+
"@babel/preset-env": "^7.26.0",
|
|
70
|
+
"@typescript-eslint/eslint-plugin": "^8.19.1"
|
|
71
|
+
},
|
|
72
|
+
"dependencies": {
|
|
73
|
+
"commander": "^13.0.0",
|
|
74
|
+
"fast-xml-parser": "^4.5.1",
|
|
75
|
+
"inquirer": "^12.3.0",
|
|
76
|
+
"json2csv": "^6.0.0-alpha.2",
|
|
77
|
+
"node-fetch": "^3.3.2",
|
|
78
|
+
"open": "^10.1.0"
|
|
79
|
+
}
|
|
80
|
+
}
|
package/assets/binance.jpg
DELETED
|
Binary file
|