@30nama/sdk 1.0.0

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 (65) hide show
  1. package/README.md +13 -0
  2. package/dist/api/actions.d.ts +384 -0
  3. package/dist/api/actions.js +526 -0
  4. package/dist/api/actions.js.map +1 -0
  5. package/dist/api/index.d.ts +11 -0
  6. package/dist/api/index.js +131 -0
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/api/request.d.ts +18 -0
  9. package/dist/api/request.js +99 -0
  10. package/dist/api/request.js.map +1 -0
  11. package/dist/api/types.d.ts +29 -0
  12. package/dist/api/types.js +3 -0
  13. package/dist/api/types.js.map +1 -0
  14. package/dist/core.d.ts +23 -0
  15. package/dist/core.js +161 -0
  16. package/dist/core.js.map +1 -0
  17. package/dist/entities/ArchiveSlug.d.ts +17 -0
  18. package/dist/entities/ArchiveSlug.js +13 -0
  19. package/dist/entities/ArchiveSlug.js.map +1 -0
  20. package/dist/entities/ContinueWatchingTitle.d.ts +12 -0
  21. package/dist/entities/ContinueWatchingTitle.js +11 -0
  22. package/dist/entities/ContinueWatchingTitle.js.map +1 -0
  23. package/dist/entities/Download.d.ts +31 -0
  24. package/dist/entities/Download.js +22 -0
  25. package/dist/entities/Download.js.map +1 -0
  26. package/dist/entities/Downloadable.d.ts +27 -0
  27. package/dist/entities/Downloadable.js +19 -0
  28. package/dist/entities/Downloadable.js.map +1 -0
  29. package/dist/entities/Notification.d.ts +15 -0
  30. package/dist/entities/Notification.js +18 -0
  31. package/dist/entities/Notification.js.map +1 -0
  32. package/dist/entities/Person.d.ts +23 -0
  33. package/dist/entities/Person.js +12 -0
  34. package/dist/entities/Person.js.map +1 -0
  35. package/dist/entities/Plan.d.ts +22 -0
  36. package/dist/entities/Plan.js +14 -0
  37. package/dist/entities/Plan.js.map +1 -0
  38. package/dist/entities/PlayerData.d.ts +37 -0
  39. package/dist/entities/PlayerData.js +14 -0
  40. package/dist/entities/PlayerData.js.map +1 -0
  41. package/dist/entities/Single.d.ts +52 -0
  42. package/dist/entities/Single.js +18 -0
  43. package/dist/entities/Single.js.map +1 -0
  44. package/dist/entities/Stranger.d.ts +5 -0
  45. package/dist/entities/Stranger.js +10 -0
  46. package/dist/entities/Stranger.js.map +1 -0
  47. package/dist/entities/StreamData.d.ts +53 -0
  48. package/dist/entities/StreamData.js +13 -0
  49. package/dist/entities/StreamData.js.map +1 -0
  50. package/dist/entities/Title.d.ts +103 -0
  51. package/dist/entities/Title.js +25 -0
  52. package/dist/entities/Title.js.map +1 -0
  53. package/dist/entities/User.d.ts +20 -0
  54. package/dist/entities/User.js +21 -0
  55. package/dist/entities/User.js.map +1 -0
  56. package/dist/entities/UserLibrary.d.ts +14 -0
  57. package/dist/entities/UserLibrary.js +12 -0
  58. package/dist/entities/UserLibrary.js.map +1 -0
  59. package/dist/entities/index.d.ts +53 -0
  60. package/dist/entities/index.js +34 -0
  61. package/dist/entities/index.js.map +1 -0
  62. package/dist/index.d.ts +3 -0
  63. package/dist/index.js +10 -0
  64. package/dist/index.js.map +1 -0
  65. package/package.json +35 -0
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.API = void 0;
13
+ const actions = require("./actions");
14
+ const request_1 = require("./request");
15
+ const apisauce_1 = require("apisauce");
16
+ const getFastestResponse = (promises) => {
17
+ const newPromises = promises.map((p) => new Promise((resolve, reject) => p.then((v) => v && resolve(v), reject)));
18
+ newPromises.push(Promise.all(promises).then(() => false));
19
+ return Promise.race(newPromises);
20
+ };
21
+ // API Module
22
+ exports.API = {
23
+ actions: {},
24
+ config: {},
25
+ setConfig(config) {
26
+ this.config = Object.assign(Object.assign({}, this.config), config);
27
+ },
28
+ store: () => __awaiter(void 0, void 0, void 0, function* () { }),
29
+ setAPIStore(storeCallback) {
30
+ this.store = storeCallback;
31
+ },
32
+ emmiter: (_channel, _message) => { },
33
+ setAPIEmmiter(emmiterCallback) {
34
+ this.emmiter = emmiterCallback;
35
+ },
36
+ log(type, ...msg) {
37
+ if (!this.config.debug)
38
+ return;
39
+ console[type]('[SDK::API]', ...msg);
40
+ },
41
+ useTransferEndpoint(endpoints) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ const checkEndpoint = (host) => __awaiter(this, void 0, void 0, function* () {
44
+ try {
45
+ const testReq = new request_1.default('test', Object.assign(Object.assign({}, this), { config: Object.assign(Object.assign({}, this.config), { endpoint: host, requestRetries: 0 }) }));
46
+ const testRes = yield testReq.execute();
47
+ if (!testRes)
48
+ return;
49
+ if (!testRes.success)
50
+ return;
51
+ return host;
52
+ }
53
+ catch (_a) { }
54
+ });
55
+ const getFastestEndpoint = (endpoints) => {
56
+ const promises = endpoints.map((endpoint) => checkEndpoint(endpoint.host));
57
+ return getFastestResponse(promises);
58
+ };
59
+ const fastestEndpoint = yield getFastestEndpoint(endpoints);
60
+ if (!fastestEndpoint)
61
+ return false;
62
+ this.emmiter('endpointUpdated', fastestEndpoint);
63
+ this.config.endpoint = fastestEndpoint;
64
+ return true;
65
+ });
66
+ },
67
+ initialize() {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ try {
70
+ // Node 1
71
+ const getEndpointsFromAPI = () => __awaiter(this, void 0, void 0, function* () {
72
+ try {
73
+ const getEndpointsReq = new request_1.default('endpoint', this);
74
+ const endpointsRes = yield getEndpointsReq.execute();
75
+ return endpointsRes === null || endpointsRes === void 0 ? void 0 : endpointsRes.result;
76
+ }
77
+ catch (err) {
78
+ this.log('warn', '(getEndpointsFromAPI)', err);
79
+ }
80
+ });
81
+ // Node 2
82
+ const getEndpointsFromGithub = () => __awaiter(this, void 0, void 0, function* () {
83
+ try {
84
+ const api = (0, apisauce_1.create)({ baseURL: 'https://raw.githubusercontent.com/EternalC0der/30nama/main/sdk-endpoint.json?t=' + new Date().getTime() });
85
+ const res = yield api.get('');
86
+ if (!res.ok)
87
+ throw res.originalError;
88
+ if (!res.data)
89
+ throw 'Response is falsey';
90
+ return res.data;
91
+ }
92
+ catch (err) {
93
+ this.log('warn', '(getEndpointsFromGithub)', err);
94
+ }
95
+ });
96
+ // Node 3
97
+ const getEndpointsFromArvanCloud = () => __awaiter(this, void 0, void 0, function* () {
98
+ try {
99
+ const api = (0, apisauce_1.create)({ baseURL: 'https://api-json.s3.ir-thr-at1.arvanstorage.ir/response.json?versionId=' + new Date().getTime() });
100
+ const res = yield api.get('');
101
+ if (!res.ok)
102
+ throw res.originalError;
103
+ if (!res.data)
104
+ throw 'Response is falsey';
105
+ return res.data;
106
+ }
107
+ catch (err) {
108
+ this.log('warn', '(getEndpointsFromArvanCloud)', err);
109
+ }
110
+ });
111
+ // Try current endpoint, if it's valid, return true
112
+ const testReq = new request_1.default('test', this);
113
+ const testRes = yield testReq.execute(undefined, 1000 * 15);
114
+ if (testRes === null || testRes === void 0 ? void 0 : testRes.success)
115
+ return true;
116
+ const endpoints = yield getFastestResponse([getEndpointsFromAPI(), getEndpointsFromGithub(), getEndpointsFromArvanCloud()]);
117
+ if (!endpoints || !(yield this.useTransferEndpoint(endpoints)))
118
+ throw 'Failed to initialize API';
119
+ return true;
120
+ }
121
+ catch (err) {
122
+ this.log('warn', err);
123
+ return false;
124
+ }
125
+ });
126
+ }
127
+ };
128
+ // Add all actions to API object and apply API object as first argument
129
+ for (const [key, value] of Object.entries(actions))
130
+ exports.API.actions[key] = value.bind(exports.API);
131
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { API, Response } from './types';
2
+ export type RequestHeaders = Record<string, string | number | boolean>;
3
+ export default class {
4
+ private token;
5
+ private overrideSession?;
6
+ private config;
7
+ private actionUrl;
8
+ private emmiter;
9
+ private store;
10
+ private log;
11
+ constructor(actionUrl: string, instance: API, overrideSession?: string);
12
+ private buildUrl;
13
+ private buildHeaders;
14
+ private sendRequest;
15
+ execute(body?: {
16
+ [key: string]: any;
17
+ }, timeout?: number): Promise<Response | undefined>;
18
+ }
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const apisauce_1 = require("apisauce");
13
+ const QueryString = require("qs");
14
+ const core_1 = require("../core");
15
+ // types
16
+ const platformToken = {
17
+ DESKTOP: 'z8rT8vme3KvhpuvM8xkXVZ24N5mP5zIkPMGVUMwJ6YPtyFFMYvXRvFJwEhtIYvfP',
18
+ HYBRID: 'ZAw2TH8tLtqcXtdmbFRRdpeP5ME2bnJUm5CAewCgHGNamawRt6U4cKGNknf4UwR4',
19
+ ANDROIDTV: 'vJK4ByHBJaXNXDuG5P8WwNtqCR7YNsQRZSNXCXaLmTxpEJLEBdudVydBZwbdVfaC',
20
+ WEBTV: '83hRzBabjDnuv9SmV2GFaftpxjhZSHXYe7UnBuX5DdANdpzPvXu46jvKZHPb97As',
21
+ WEBSITE: 'B9gA4Dr8gefwtd999YYw7SNRzPzq2TDPEJvXVJLnPDWFL2H4RcVq83TZy7dHY9Z4',
22
+ MOBILE: 'PGfRhTuxjbku2pm3NZ6yWzBwGj8xAtfn49NEB77GgNNCu5eF463EKQw4mVxd5SNR',
23
+ SYSTEM: 'QguPhpFdjNQD73cmakvtIYwdMDHry8UDuG6qACvDshWTrXa2UaKtccAL5GAuIHZm',
24
+ DEVELOPMENT: 'BqnpVqrUNX8ReMWcurMK2Vr8yBPcxpaVzJ4eTgnfpd338X6fW4ChUjnVSLfBmpwb'
25
+ };
26
+ class default_1 {
27
+ constructor(actionUrl, instance, overrideSession) {
28
+ const { config, emmiter, store, log } = instance;
29
+ this.token = platformToken[config.platform];
30
+ this.config = config;
31
+ this.actionUrl = actionUrl;
32
+ this.overrideSession = overrideSession;
33
+ this.emmiter = emmiter;
34
+ this.store = store;
35
+ this.log = log;
36
+ }
37
+ buildUrl() {
38
+ return `${this.config.endpoint}/action/${this.actionUrl}`;
39
+ }
40
+ buildHeaders() {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ const headers = {
43
+ 'Content-Type': 'application/x-www-form-urlencoded',
44
+ 'c-api-key': this.token,
45
+ 'c-token': this.overrideSession || (yield this.store()) || '',
46
+ 'c-version-number': this.config.version,
47
+ 'c-bypass-limits': this.config.debug ? 'true' : '',
48
+ 'c-return-requests': this.config.debug ? 'true' : '',
49
+ 'c-language': this.config.language,
50
+ 'user-agent': this.config.userAgent,
51
+ 'c-ssr-user-ip': '' // To be implemented
52
+ };
53
+ // remove indexes with falsy values
54
+ for (const key in headers)
55
+ if (!headers[key])
56
+ delete headers[key];
57
+ return headers;
58
+ });
59
+ }
60
+ sendRequest(body_1) {
61
+ return __awaiter(this, arguments, void 0, function* (body, retry = 1) {
62
+ try {
63
+ const response = yield (0, apisauce_1.create)({ baseURL: `${this.config.endpoint}/action`, headers: yield this.buildHeaders() }).post(this.actionUrl, QueryString.stringify(body));
64
+ if (!response.ok)
65
+ throw response.originalError;
66
+ this.log('info', `Request to ${this.buildUrl()} was successful.`);
67
+ this.emmiter('requestSuccess');
68
+ return response.data;
69
+ }
70
+ catch (error) {
71
+ this.log('warn', `Request to ${this.buildUrl()} failed:\n`, error.message || error);
72
+ this.emmiter('requestFail');
73
+ if (!this.config.requestRetries)
74
+ return error === null || error === void 0 ? void 0 : error.data;
75
+ if (retry >= this.config.requestRetries) {
76
+ this.log('error', `Request to ${this.buildUrl()} failed ${retry} times. Terminating request retry.`);
77
+ this.emmiter('terminateRequestRetry');
78
+ return error === null || error === void 0 ? void 0 : error.data;
79
+ }
80
+ yield (0, core_1.delay)(1000);
81
+ return yield this.sendRequest(body, retry + 1);
82
+ }
83
+ });
84
+ }
85
+ execute(body, timeout) {
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ const responsePromise = this.sendRequest(body);
88
+ if (!timeout)
89
+ return yield responsePromise;
90
+ const timeoutPromise = (0, core_1.delay)(timeout);
91
+ const response = Promise.race([responsePromise, timeoutPromise]);
92
+ const result = yield response;
93
+ if (result)
94
+ return result;
95
+ });
96
+ }
97
+ }
98
+ exports.default = default_1;
99
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/api/request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export type emmiterChannels = 'requestSuccess' | 'requestFail' | 'terminateRequestRetry' | 'endpointUpdated';
2
+ export type Config = {
3
+ endpoint: string;
4
+ platform: 'DESKTOP' | 'HYBRID' | 'ANDROIDTV' | 'WEBTV' | 'WEBSITE' | 'MOBILE' | 'SYSTEM' | 'DEVELOPMENT';
5
+ language: 'fa' | 'en';
6
+ requestRetries?: number;
7
+ userAgent?: string;
8
+ version: string;
9
+ debug?: boolean;
10
+ };
11
+ export type API = {
12
+ config: Config;
13
+ store(): Promise<string | undefined>;
14
+ emmiter(channel: emmiterChannels, message?: string): void;
15
+ log(type: 'warn' | 'error' | 'info', ...msg: string[]): void;
16
+ useTransferEndpoint(endpoints: {
17
+ location: string;
18
+ host: string;
19
+ }[]): Promise<boolean>;
20
+ };
21
+ export type Response = {
22
+ status: number;
23
+ success: boolean;
24
+ error: boolean;
25
+ msg: string;
26
+ action?: any[];
27
+ seo?: any;
28
+ timestamp: number;
29
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":""}
package/dist/core.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ export declare const delay: (ms: number) => Promise<undefined>;
2
+ export declare const asyncMap: <T, R>(arr: T[], cb: (item: T) => Promise<R> | undefined, delay?: number) => Promise<R[]>;
3
+ export declare const shareSocialMedia: (socialMedia: 'telegram' | 'whatsApp' | 'twitter' | 'email' | 'facebook', share: string) => string;
4
+ export declare const decodeEntities: (text: string) => string;
5
+ export declare const readingTime: (length: number) => number;
6
+ export declare const toPersianDigits: (e: string | number) => string;
7
+ export declare const numberWithCommas: (x: number | string) => string;
8
+ export declare const nFormatter: (num: number, digits?: number) => string;
9
+ export declare const promiseState: (p: Promise<any>) => Promise<'pending' | 'fulfilled' | 'rejected'>;
10
+ export declare const secondToTime: (seconds: number) => {
11
+ hour: string;
12
+ minute: string;
13
+ second: string;
14
+ };
15
+ export declare function bytesToSize(bytes: number): string;
16
+ /**
17
+ * @description Inverse Lerp
18
+ * @param {number} min ILerp minimum
19
+ * @param {number} max ILerp maximum
20
+ * @param {number} v Given value
21
+ * @param {number} multiplier ILerp multiplier
22
+ */
23
+ export declare function ILerp(min: number, max: number, v: number, multiplier?: number): number;
package/dist/core.js ADDED
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ // import LRUCache from 'lru-cache'
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ILerp = exports.bytesToSize = exports.secondToTime = exports.promiseState = exports.nFormatter = exports.numberWithCommas = exports.toPersianDigits = exports.readingTime = exports.decodeEntities = exports.shareSocialMedia = exports.asyncMap = exports.delay = void 0;
14
+ const delay = (ms) => {
15
+ return new Promise((resolve) => setTimeout(resolve, ms));
16
+ };
17
+ exports.delay = delay;
18
+ const asyncMap = (arr_1, cb_1, ...args_1) => __awaiter(void 0, [arr_1, cb_1, ...args_1], void 0, function* (arr, cb, delay = 5) {
19
+ const results = [];
20
+ for (const item of arr) {
21
+ yield new Promise((resolve) => setTimeout(resolve, delay));
22
+ const result = yield cb(item);
23
+ if (result)
24
+ results.push(result);
25
+ }
26
+ return results;
27
+ });
28
+ exports.asyncMap = asyncMap;
29
+ const shareSocialMedia = (socialMedia, share) => {
30
+ const socials = {
31
+ telegram: 'tg://msg_url?url=',
32
+ whatsApp: 'whatsapp://send?text=',
33
+ twitter: 'https://twitter.com/share?url=',
34
+ email: 'mailto:?subject=30nama&body=',
35
+ facebook: 'http://www.facebook.com/sharer/sharer.php?u='
36
+ };
37
+ return socials[socialMedia] + share;
38
+ };
39
+ exports.shareSocialMedia = shareSocialMedia;
40
+ const decodeEntities = (text) => {
41
+ if (!text) {
42
+ return '';
43
+ }
44
+ const entities = [
45
+ ['amp', '&'],
46
+ ['apos', "'"],
47
+ ['#x27', "'"],
48
+ ['#x2F', '/'],
49
+ ['#39', "'"],
50
+ ['#039', ' '],
51
+ ['#47', '/'],
52
+ ['lt', '<'],
53
+ ['gt', '>'],
54
+ ['nbsp', ' '],
55
+ ['quot', '"'],
56
+ ['#8217', "'"],
57
+ ['#038', '&'],
58
+ ['#8211', '-'],
59
+ ['#8230', '…']
60
+ ];
61
+ for (let i = 0, max = entities.length; i < max; ++i) {
62
+ text = text.replace(new RegExp('&' + entities[i][0] + ';', 'g'), entities[i][1]);
63
+ }
64
+ return text;
65
+ };
66
+ exports.decodeEntities = decodeEntities;
67
+ const readingTime = (length) => {
68
+ const wpm = 225;
69
+ const time = Math.ceil(length / wpm);
70
+ return time;
71
+ };
72
+ exports.readingTime = readingTime;
73
+ const toPersianDigits = function (e) {
74
+ if (!e)
75
+ return '';
76
+ const id = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
77
+ return e.toString().replace(/[0-9]/g, function (w) {
78
+ return id[+w];
79
+ });
80
+ };
81
+ exports.toPersianDigits = toPersianDigits;
82
+ const numberWithCommas = (x) => {
83
+ return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
84
+ };
85
+ exports.numberWithCommas = numberWithCommas;
86
+ const nFormatter = (num, digits) => {
87
+ const lookup = [
88
+ { value: 1, symbol: '' },
89
+ { value: 1e3, symbol: 'K' },
90
+ { value: 1e6, symbol: 'M' },
91
+ { value: 1e9, symbol: 'G' },
92
+ { value: 1e12, symbol: 'T' },
93
+ { value: 1e15, symbol: 'P' },
94
+ { value: 1e18, symbol: 'E' }
95
+ ];
96
+ const rx = /\.0+$|(\.[0-9]*[1-9])0+$/;
97
+ const item = lookup
98
+ .slice()
99
+ .reverse()
100
+ .find(function (item) {
101
+ return num >= item.value;
102
+ });
103
+ return item ? (num / item.value).toFixed(digits).replace(rx, '$1') + item.symbol : '0';
104
+ };
105
+ exports.nFormatter = nFormatter;
106
+ const promiseState = (p) => {
107
+ const t = {};
108
+ return Promise.race([p, t]).then((v) => (v === t ? 'pending' : 'fulfilled'), () => 'rejected');
109
+ };
110
+ exports.promiseState = promiseState;
111
+ // export const memoize = (options: LRUCache.Options<string, any, any>) => {
112
+ // const cache = new LRUCache(options)
113
+ // const useMemo = <T extends (...args: any[]) => any>(fn: T): T => {
114
+ // // eslint-disable-next-line @typescript-eslint/ban-ts-comment
115
+ // // @ts-ignore
116
+ // return async (...args: any[]) => {
117
+ // const key = `${fn.name}::${Object.entries(args).toString()}`
118
+ // if (cache.has(key)) return cache.get(key)
119
+ // else {
120
+ // const result = await fn(args)
121
+ // cache.set(key, result)
122
+ // return result
123
+ // }
124
+ // }
125
+ // }
126
+ // return useMemo
127
+ // }
128
+ const secondToTime = (seconds) => {
129
+ const pad = (n, z = 2) => ('00' + n).slice(-z);
130
+ const hour = pad(Math.floor(seconds / 3600));
131
+ const minute = pad(Math.floor((seconds % 3600) / 60));
132
+ const second = pad(Math.floor(seconds % 60));
133
+ return {
134
+ hour,
135
+ minute,
136
+ second
137
+ };
138
+ };
139
+ exports.secondToTime = secondToTime;
140
+ function bytesToSize(bytes) {
141
+ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
142
+ if (bytes === 0)
143
+ return '0 Byte';
144
+ const i = Math.floor(Math.log(bytes) / Math.log(1024));
145
+ const result = (bytes / Math.pow(1024, i)).toFixed(2);
146
+ return `${result} ${sizes[i]}`;
147
+ }
148
+ exports.bytesToSize = bytesToSize;
149
+ /**
150
+ * @description Inverse Lerp
151
+ * @param {number} min ILerp minimum
152
+ * @param {number} max ILerp maximum
153
+ * @param {number} v Given value
154
+ * @param {number} multiplier ILerp multiplier
155
+ */
156
+ function ILerp(min, max, v, multiplier = 1) {
157
+ const clamp = (a, min = 0, max = 1) => Math.min(max, Math.max(min, a));
158
+ return clamp((v - min) / (max - min)) * multiplier;
159
+ }
160
+ exports.ILerp = ILerp;
161
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export default class ArchiveSlug {
2
+ id: number;
3
+ name: string;
4
+ slug: string;
5
+ count: number;
6
+ image: {
7
+ webp: {
8
+ thumb: string;
9
+ full: string;
10
+ };
11
+ jpg: {
12
+ thumb: string;
13
+ full: string;
14
+ };
15
+ };
16
+ constructor(archive: any);
17
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class ArchiveSlug {
4
+ constructor(archive) {
5
+ this.id = archive.id;
6
+ this.name = archive.name;
7
+ this.slug = archive.slug;
8
+ this.count = archive.count;
9
+ this.image = archive.image;
10
+ }
11
+ }
12
+ exports.default = ArchiveSlug;
13
+ //# sourceMappingURL=ArchiveSlug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchiveSlug.js","sourceRoot":"","sources":["../../src/entities/ArchiveSlug.ts"],"names":[],"mappings":";;AAAA,MAAqB,WAAW;IAe5B,YAAY,OAAY;QACpB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAC9B,CAAC;CACJ;AAtBD,8BAsBC"}
@@ -0,0 +1,12 @@
1
+ import Title from './Title';
2
+ export default class ContinueWatchingTitle extends Title {
3
+ data: {
4
+ episode_title: string;
5
+ season: number;
6
+ episode: string;
7
+ time: number;
8
+ display_time: string;
9
+ progress: string;
10
+ };
11
+ constructor(post: any);
12
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Title_1 = require("./Title");
4
+ class ContinueWatchingTitle extends Title_1.default {
5
+ constructor(post) {
6
+ super(post);
7
+ this.data = post.data;
8
+ }
9
+ }
10
+ exports.default = ContinueWatchingTitle;
11
+ //# sourceMappingURL=ContinueWatchingTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContinueWatchingTitle.js","sourceRoot":"","sources":["../../src/entities/ContinueWatchingTitle.ts"],"names":[],"mappings":";;AAAA,mCAA2B;AAE3B,MAAqB,qBAAsB,SAAQ,eAAK;IASpD,YAAY,IAAS;QACjB,KAAK,CAAC,IAAI,CAAC,CAAA;QACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IACzB,CAAC;CACJ;AAbD,wCAaC"}
@@ -0,0 +1,31 @@
1
+ export default class Download {
2
+ id: number;
3
+ season?: number;
4
+ season_int?: number;
5
+ season_name?: string;
6
+ first_episode?: number;
7
+ last_episode?: number;
8
+ total_episode?: number;
9
+ quality: string;
10
+ size: string;
11
+ resolution?: string;
12
+ encoder?: string;
13
+ version?: string;
14
+ tags: string[];
15
+ part?: string;
16
+ note?: string;
17
+ source?: string;
18
+ dl?: string;
19
+ persian_subtitle?: string;
20
+ screenshot?: string;
21
+ mediainfo?: string;
22
+ link: {
23
+ id: number;
24
+ dl: string;
25
+ episode: number;
26
+ mediainfo: string;
27
+ persian_subtitle?: string;
28
+ source?: string;
29
+ }[];
30
+ constructor(data: any);
31
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class Download {
4
+ constructor(data) {
5
+ this.id = data.id;
6
+ this.season = data.season;
7
+ this.season_int = data.season_int;
8
+ this.season_name = data.season_name;
9
+ this.first_episode = data.first_episode;
10
+ this.last_episode = data.last_episode;
11
+ this.total_episode = data.total_episode;
12
+ this.quality = data.quality;
13
+ this.size = data.size;
14
+ this.encoder = data.encoder;
15
+ this.note = data.note;
16
+ this.persian_subtitle = data.persian_subtitle;
17
+ this.tags = data.tags;
18
+ this.link = data.link;
19
+ }
20
+ }
21
+ exports.default = Download;
22
+ //# sourceMappingURL=Download.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Download.js","sourceRoot":"","sources":["../../src/entities/Download.ts"],"names":[],"mappings":";;AAAA,MAAqB,QAAQ;IA6BzB,YAAY,IAAS;QACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IACzB,CAAC;CACJ;AA7CD,2BA6CC"}
@@ -0,0 +1,27 @@
1
+ export default class Downloadable {
2
+ id: number;
3
+ postId: number;
4
+ title: string;
5
+ season?: number;
6
+ episode?: number;
7
+ tags: string[];
8
+ quality: string;
9
+ encoder: string;
10
+ size: string;
11
+ image: {
12
+ poster: {
13
+ preview: string;
14
+ webp: string;
15
+ };
16
+ cover: string;
17
+ };
18
+ progress?: {
19
+ percent: number;
20
+ downloaded: string;
21
+ updatedAt: string;
22
+ };
23
+ downloading?: boolean;
24
+ error?: string;
25
+ src: string;
26
+ constructor(data: any);
27
+ }