Update langsdata to fix #192
This commit is contained in:
parent
918e44f169
commit
b681bc3491
7 changed files with 133 additions and 132 deletions
2
@types/crunchyTypes.d.ts
vendored
2
@types/crunchyTypes.d.ts
vendored
|
|
@ -16,7 +16,7 @@ export type CrunchyEpMeta = {
|
|||
|
||||
export type DownloadedMedia = {
|
||||
type: 'Video',
|
||||
lang: string,
|
||||
lang: LanguageItem,
|
||||
path: string
|
||||
} | ({
|
||||
type: 'Subtitle'
|
||||
|
|
|
|||
4
@types/downloadedFile.d.ts
vendored
4
@types/downloadedFile.d.ts
vendored
|
|
@ -1,4 +1,6 @@
|
|||
import { LanguageItem } from "../modules/module.langsData";
|
||||
|
||||
export type DownloadedFile = {
|
||||
path: string,
|
||||
lang: string
|
||||
lang: LanguageItem
|
||||
}
|
||||
26
crunchy.ts
26
crunchy.ts
|
|
@ -42,7 +42,7 @@ import { CrunchyEpisodeList, Item } from './@types/crunchyEpisodeList';
|
|||
import { CrunchyEpMeta, DownloadedMedia, ParseItem, SeriesSearch, SeriesSearchItem } from './@types/crunchyTypes';
|
||||
import { ObjectInfo } from './@types/objectInfo';
|
||||
import parseFileName, { Variable } from './modules/module.filename';
|
||||
import { PlaybackData } from './@types/playbackData';
|
||||
import { PlaybackData, Vcodec } from './@types/playbackData';
|
||||
import { downloaded } from './modules/module.downloadArchive';
|
||||
import parseSelect from './modules/module.parseSelect';
|
||||
const req = new reqModule.Req(domain, argv);
|
||||
|
|
@ -841,9 +841,7 @@ async function muxStreams(data: DownloadedMedia[], output: string) {
|
|||
throw new Error('Never');
|
||||
return {
|
||||
file: a.path,
|
||||
language: a.language.code,
|
||||
lookup: false,
|
||||
title: a.title
|
||||
language: a.language
|
||||
};
|
||||
}),
|
||||
simul: false,
|
||||
|
|
@ -854,7 +852,6 @@ async function muxStreams(data: DownloadedMedia[], output: string) {
|
|||
return {
|
||||
lang: a.lang,
|
||||
path: a.path,
|
||||
lookup: false
|
||||
};
|
||||
})
|
||||
});
|
||||
|
|
@ -997,7 +994,7 @@ const itemSelectMultiDub = (eps: Record<string, {
|
|||
? 'S' + epNumList.sp.toString().padStart(argv.numbers, '0')
|
||||
: '' + parseInt(epNum, 10).toString().padStart(argv.numbers, '0')
|
||||
);
|
||||
if((argv.but && !doEpsFilter.isSelected([selEpId, item.id])) || (argv.all || (doEpsFilter.isSelected([selEpId, item.id])) && item.playback && !argv.but)){
|
||||
if(item.playback && ((argv.but && !doEpsFilter.isSelected([selEpId, item.id])) || (argv.all || (doEpsFilter.isSelected([selEpId, item.id])) && !argv.but))) {
|
||||
if (Object.prototype.hasOwnProperty.call(ret, key)) {
|
||||
const epMe = ret[key];
|
||||
epMe.data.push({
|
||||
|
|
@ -1235,7 +1232,9 @@ async function downloadMediaList(medias: CrunchyEpMeta) : Promise<{
|
|||
console.log('[INFO] Selecting raw stream');
|
||||
}
|
||||
|
||||
let curStream;
|
||||
let curStream:
|
||||
undefined|typeof streams[0]
|
||||
= undefined;
|
||||
if(!dlFailed){
|
||||
argv.kstream = typeof argv.kstream == 'number' ? argv.kstream : 1;
|
||||
argv.kstream = argv.kstream > streams.length ? 1 : argv.kstream;
|
||||
|
|
@ -1251,7 +1250,7 @@ async function downloadMediaList(medias: CrunchyEpMeta) : Promise<{
|
|||
console.log('[INFO] Playlists URL: %s (%s)', curStream.url, curStream.type);
|
||||
}
|
||||
|
||||
if(!argv.novids && !dlFailed && curStream){
|
||||
if(!argv.novids && !dlFailed && curStream !== undefined){
|
||||
const streamPlaylistsReq = await req.getData(curStream.url);
|
||||
if(!streamPlaylistsReq.ok || !streamPlaylistsReq.res){
|
||||
console.log('[ERROR] CAN\'T FETCH VIDEO PLAYLISTS!');
|
||||
|
|
@ -1340,7 +1339,11 @@ async function downloadMediaList(medias: CrunchyEpMeta) : Promise<{
|
|||
type: 'number',
|
||||
replaceWith: quality === 0 ? plQuality[plQuality.length - 1].RESOLUTION.width as number : plQuality[quality - 1].RESOLUTION.width
|
||||
});
|
||||
const lang = curStream.audio_lang;
|
||||
const lang = langsData.languages.find(a => a.code === curStream?.audio_lang);
|
||||
if (!lang) {
|
||||
console.log(`[ERROR] Unable to find language for code ${curStream.audio_lang}`);
|
||||
return;
|
||||
}
|
||||
console.log(`[INFO] Selected quality: ${Object.keys(plSelectedList).find(a => plSelectedList[a] === selPlUrl)} @ ${plSelectedServer}`);
|
||||
if(argv['show-stream-url']){
|
||||
console.log('[INFO] Stream URL:', selPlUrl);
|
||||
|
|
@ -1381,7 +1384,7 @@ async function downloadMediaList(medias: CrunchyEpMeta) : Promise<{
|
|||
files.push({
|
||||
type: 'Video',
|
||||
path: `${tsFile}.ts`,
|
||||
lang: lang as string
|
||||
lang: lang
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -1415,8 +1418,7 @@ async function downloadMediaList(medias: CrunchyEpMeta) : Promise<{
|
|||
return {
|
||||
...s,
|
||||
locale: subLang,
|
||||
language: subLang.locale,
|
||||
titile: subLang.language
|
||||
language: subLang.locale
|
||||
};
|
||||
});
|
||||
const subsArr = langsData.sortSubtitles<typeof subsDataMapped[0]>(subsDataMapped, 'language');
|
||||
|
|
|
|||
43
funi.ts
43
funi.ts
|
|
@ -47,7 +47,7 @@ let fnEpNum: string|number = 0,
|
|||
season = 0,
|
||||
tsDlPath: {
|
||||
path: string,
|
||||
lang: string
|
||||
lang: langsData.LanguageItem
|
||||
}[] = [],
|
||||
stDlPath: Subtitle[] = [];
|
||||
|
||||
|
|
@ -346,7 +346,7 @@ async function getEpisode(fnSlug: {
|
|||
if(item && dub_type == (item.funi_name || item.name) && selUncut){
|
||||
streamIds.push({
|
||||
id: m.id,
|
||||
lang: merger.getLanguageCode(curDub, curDub.slice(0, -2))
|
||||
lang: item
|
||||
});
|
||||
stDlPath.push(...m.subtitles);
|
||||
localSubs = m.subtitles;
|
||||
|
|
@ -481,11 +481,10 @@ async function downloadStreams(epsiode: FunimationMediaDownload){
|
|||
}> = {};
|
||||
let plMaxLayer = 1,
|
||||
plNewIds = 1,
|
||||
plAud: {
|
||||
uri: string,
|
||||
langStr: string,
|
||||
language: string
|
||||
} = { uri: '', langStr: '', language: '' };
|
||||
plAud: undefined|{
|
||||
uri: string
|
||||
language: langsData.LanguageItem
|
||||
};
|
||||
|
||||
// new uris
|
||||
const vplReg = /streaming_video_(\d+)_(\d+)_(\d+)_index\.m3u8/;
|
||||
|
|
@ -497,7 +496,18 @@ async function downloadStreams(epsiode: FunimationMediaDownload){
|
|||
const audioDataParts = plQualityLinkList.mediaGroups.AUDIO[audioKey],
|
||||
audioEl = Object.keys(audioDataParts);
|
||||
const audioData = audioDataParts[audioEl[0]];
|
||||
plAud = { ...audioData, ...{ langStr: audioEl[0] } };
|
||||
let language = langsData.languages.find(a => a.locale === audioData.language);
|
||||
if (!language) {
|
||||
language = langsData.languages.find(a => a.funi_name || a.name === audioEl[0]);
|
||||
if (!language) {
|
||||
console.log(`[ERROR] Unable to find language for locale ${audioData.language} or name ${audioEl[0]}`);
|
||||
return;
|
||||
}
|
||||
}
|
||||
plAud = {
|
||||
uri: audioData.uri,
|
||||
language: language
|
||||
};
|
||||
}
|
||||
plQualityLinkList.playlists.sort((a, b) => {
|
||||
const aMatch = a.uri.match(vplReg), bMatch = b.uri.match(vplReg);
|
||||
|
|
@ -620,9 +630,9 @@ async function downloadStreams(epsiode: FunimationMediaDownload){
|
|||
await fs.promises.mkdir(path.join(cfg.dir.content, ...fnOutput.slice(0, -1)), { recursive: true });
|
||||
|
||||
video: if (!argv.novids) {
|
||||
if (plAud.uri && (purvideo.length > 0 || audioAndVideo.length > 0)) {
|
||||
if (plAud && (purvideo.length > 0 || audioAndVideo.length > 0)) {
|
||||
break video;
|
||||
} else if (!plAud.uri && (audioAndVideo.some(a => a.lang === streamPath.lang) || puraudio.some(a => a.lang === streamPath.lang))) {
|
||||
} else if (!plAud && (audioAndVideo.some(a => a.lang === streamPath.lang) || puraudio.some(a => a.lang === streamPath.lang))) {
|
||||
break video;
|
||||
}
|
||||
// download video
|
||||
|
|
@ -634,10 +644,10 @@ async function downloadStreams(epsiode: FunimationMediaDownload){
|
|||
|
||||
const chunkList = m3u8(reqVideo.res.body);
|
||||
|
||||
const tsFile = path.join(cfg.dir.content, ...fnOutput.slice(0, -1), `${fnOutput.slice(-1)}.video${(plAud.uri ? '' : '.' + streamPath.lang )}`);
|
||||
const tsFile = path.join(cfg.dir.content, ...fnOutput.slice(0, -1), `${fnOutput.slice(-1)}.video${(plAud?.uri ? '' : '.' + streamPath.lang.code )}`);
|
||||
dlFailed = !await downloadFile(tsFile, chunkList);
|
||||
if (!dlFailed) {
|
||||
if (plAud.uri) {
|
||||
if (plAud) {
|
||||
purvideo.push({
|
||||
path: `${tsFile}.ts`,
|
||||
lang: plAud.language
|
||||
|
|
@ -653,9 +663,9 @@ async function downloadStreams(epsiode: FunimationMediaDownload){
|
|||
else{
|
||||
console.log('[INFO] Skip video downloading...\n');
|
||||
}
|
||||
audio: if (!argv.noaudio && plAud.uri) {
|
||||
audio: if (plAud && !argv.noaudio) {
|
||||
// download audio
|
||||
if (audioAndVideo.some(a => a.lang === plAud.language) || puraudio.some(a => a.lang === plAud.language))
|
||||
if (audioAndVideo.some(a => a.lang === plAud?.language) || puraudio.some(a => a.lang === plAud?.language))
|
||||
break audio;
|
||||
const reqAudio = await getData({
|
||||
url: plAud.uri,
|
||||
|
|
@ -665,7 +675,7 @@ async function downloadStreams(epsiode: FunimationMediaDownload){
|
|||
|
||||
const chunkListA = m3u8(reqAudio.res.body);
|
||||
|
||||
const tsFileA = path.join(cfg.dir.content, ...fnOutput.slice(0, -1), `${fnOutput.slice(-1)}.audio.${plAud.language}`);
|
||||
const tsFileA = path.join(cfg.dir.content, ...fnOutput.slice(0, -1), `${fnOutput.slice(-1)}.audio.${plAud.language.code}`);
|
||||
|
||||
dlFailedA = !await downloadFile(tsFileA, chunkListA);
|
||||
if (!dlFailedA)
|
||||
|
|
@ -729,8 +739,7 @@ async function downloadStreams(epsiode: FunimationMediaDownload){
|
|||
subtitels: stDlPath.map(a => {
|
||||
return {
|
||||
file: a.out as string,
|
||||
language: a.lang.code,
|
||||
lookup: false,
|
||||
language: a.lang,
|
||||
title: a.lang.name
|
||||
};
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -6,15 +6,12 @@ import { LanguageItem } from './module.langsData';
|
|||
|
||||
export type MergerInput = {
|
||||
path: string,
|
||||
lang: string,
|
||||
lookup?: false,
|
||||
lang: LanguageItem
|
||||
}
|
||||
|
||||
export type SubtitleInput = {
|
||||
language: string,
|
||||
language: LanguageItem,
|
||||
file: string,
|
||||
title?: string
|
||||
lookup?: false,
|
||||
}
|
||||
|
||||
export type Font = keyof typeof fonts;
|
||||
|
|
@ -37,15 +34,6 @@ export type MergerOptions = {
|
|||
}
|
||||
|
||||
class Merger {
|
||||
private subDict = {
|
||||
'en': 'English (United State)',
|
||||
'es': 'Español (Latinoamericano)',
|
||||
'pt': 'Português (Brasil)',
|
||||
'ja': '日本語',
|
||||
'cmn': '官話'
|
||||
} as {
|
||||
[key: string]: string;
|
||||
};
|
||||
|
||||
constructor(private options: MergerOptions) {
|
||||
if (this.options.skipSubMux)
|
||||
|
|
@ -64,12 +52,12 @@ class Merger {
|
|||
args.push(`-i "${vid.path}"`);
|
||||
if (!hasVideo) {
|
||||
metaData.push(`-map ${index}:a -map ${index}:v`);
|
||||
metaData.push(`-metadata:s:a:${audioIndex} language=${vid.lookup === false ? vid.lang : Merger.getLanguageCode(vid.lang, vid.lang)}`);
|
||||
metaData.push(`-metadata:s:a:${audioIndex} language=${vid.lang.code}`);
|
||||
metaData.push(`-metadata:s:v:${index} title="[Video Stream]"`);
|
||||
hasVideo = true;
|
||||
} else {
|
||||
metaData.push(`-map ${index}:a`);
|
||||
metaData.push(`-metadata:s:a:${audioIndex} language=${vid.lookup === false ? vid.lang : Merger.getLanguageCode(vid.lang, vid.lang)}`);
|
||||
metaData.push(`-metadata:s:a:${audioIndex} language=${vid.lang.code}`);
|
||||
}
|
||||
audioIndex++;
|
||||
index++;
|
||||
|
|
@ -88,7 +76,7 @@ class Merger {
|
|||
for (const aud of this.options.onlyAudio) {
|
||||
args.push(`-i "${aud.path}"`);
|
||||
metaData.push(`-map ${index}`);
|
||||
metaData.push(`-metadata:s:a:${audioIndex} language=${aud.lookup === false ? aud.lang : Merger.getLanguageCode(aud.lang, aud.lang)}`);
|
||||
metaData.push(`-metadata:s:a:${audioIndex} language=${aud.lang.code}`);
|
||||
index++;
|
||||
audioIndex++;
|
||||
}
|
||||
|
|
@ -106,8 +94,8 @@ class Merger {
|
|||
);
|
||||
args.push(this.options.output.split('.').pop()?.toLowerCase() === 'mp4' ? '-c:s mov_text' : '-c:s ass');
|
||||
args.push(...this.options.subtitels.map((sub, subindex) => `-metadata:s:s:${subindex} title="${
|
||||
sub.title !== undefined ? sub.title : sub.lookup === false ? sub.language : Merger.getLanguageCode(sub.language)
|
||||
}" -metadata:s:s:${subindex} language=${sub.lookup === false ? sub.language : Merger.getLanguageCode(sub.language)}`));
|
||||
sub.language.language || sub.language.name
|
||||
}" -metadata:s:s:${subindex} language=${sub.language.code}`));
|
||||
args.push(`"${this.options.output}"`);
|
||||
return args.join(' ');
|
||||
}
|
||||
|
|
@ -141,9 +129,9 @@ class Merger {
|
|||
'--video-tracks 0',
|
||||
'--no-audio'
|
||||
);
|
||||
const trackName = (vid.lookup === false ? vid.lang : this.subDict[vid.lang]) + (this.options.simul ? ' [Simulcast]' : ' [Uncut]');
|
||||
const trackName = (vid.lang.name + (this.options.simul ? ' [Simulcast]' : ' [Uncut]'));
|
||||
args.push('--track-name', `0:"${trackName}"`);
|
||||
args.push(`--language 0:${Merger.getLanguageCode(vid.lang, vid.lang)}`);
|
||||
args.push(`--language 0:${vid.lang.code}`);
|
||||
hasVideo = true;
|
||||
args.push(`"${vid.path}"`);
|
||||
}
|
||||
|
|
@ -155,27 +143,27 @@ class Merger {
|
|||
'--video-tracks 0',
|
||||
'--audio-tracks 1'
|
||||
);
|
||||
const trackName = (vid.lookup === false ? vid.lang : this.subDict[vid.lang]) + (this.options.simul ? ' [Simulcast]' : ' [Uncut]');
|
||||
const trackName = (vid.lang.name + (this.options.simul ? ' [Simulcast]' : ' [Uncut]'));
|
||||
args.push('--track-name', `0:"${trackName}"`);
|
||||
args.push('--track-name', `1:"${trackName}"`);
|
||||
args.push(`--language 1:${Merger.getLanguageCode(vid.lang, vid.lang)}`);
|
||||
args.push(`--language 1:${vid.lang.code}`);
|
||||
hasVideo = true;
|
||||
} else {
|
||||
args.push(
|
||||
'--no-video',
|
||||
'--audio-tracks 1'
|
||||
);
|
||||
const trackName = (vid.lookup === false ? vid.lang : this.subDict[vid.lang]) + (this.options.simul ? ' [Simulcast]' : ' [Uncut]');
|
||||
const trackName = (vid.lang.name + (this.options.simul ? ' [Simulcast]' : ' [Uncut]'));
|
||||
args.push('--track-name', `1:"${trackName}"`);
|
||||
args.push(`--language 1:${Merger.getLanguageCode(vid.lang, vid.lang)}`);
|
||||
args.push(`--language 1:${vid.lang.code}`);
|
||||
}
|
||||
args.push(`"${vid.path}"`);
|
||||
}
|
||||
|
||||
for (const aud of this.options.onlyAudio) {
|
||||
const trackName = (aud.lookup === false ? aud.lang : this.subDict[aud.lang]) + (this.options.simul ? ' [Simulcast]' : ' [Uncut]');
|
||||
const trackName = aud.lang.name;
|
||||
args.push('--track-name', `0:"${trackName}"`);
|
||||
args.push(`--language 0:${Merger.getLanguageCode(aud.lang, aud.lang)}`);
|
||||
args.push(`--language 0:${aud.lang.code}`);
|
||||
args.push(
|
||||
'--no-video',
|
||||
'--audio-tracks 0'
|
||||
|
|
@ -185,8 +173,8 @@ class Merger {
|
|||
|
||||
if (this.options.subtitels.length > 0) {
|
||||
for (const subObj of this.options.subtitels) {
|
||||
args.push('--track-name', (subObj.title !== undefined ? `0:"${subObj.title}"` : `0:"${subObj.lookup === false ? subObj.language : Merger.getLanguageCode(subObj.language)}"`));
|
||||
args.push('--language', `0:"${subObj.lookup === false ? subObj.language : Merger.getLanguageCode(subObj.language)}"`);
|
||||
args.push('--track-name', `0:"${subObj.language.language || subObj.language.name}"`);
|
||||
args.push('--language', `0:"${subObj.language.code}"`);
|
||||
args.push(`"${subObj.file}"`);
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
142
package-lock.json
generated
142
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "multi-downloader-nx",
|
||||
"version": "2.0.11",
|
||||
"version": "2.0.12",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "multi-downloader-nx",
|
||||
"version": "2.0.11",
|
||||
"version": "2.0.12",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"cheerio": "^1.0.0-rc.10",
|
||||
|
|
@ -400,13 +400,13 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.7.0.tgz",
|
||||
"integrity": "sha512-8RTGBpNn5a9M628wBPrCbJ+v3YTEOE2qeZb7TDkGKTDXSj36KGRg92SpFFaR/0S3rSXQxM0Og/kV9EyadsYSBg==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.8.0.tgz",
|
||||
"integrity": "sha512-spu1UW7QuBn0nJ6+psnfCc3iVoQAifjKORgBngKOmC8U/1tbe2YJMzYQqDGYB4JCss7L8+RM2kKLb1B1Aw9BNA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/experimental-utils": "5.7.0",
|
||||
"@typescript-eslint/scope-manager": "5.7.0",
|
||||
"@typescript-eslint/experimental-utils": "5.8.0",
|
||||
"@typescript-eslint/scope-manager": "5.8.0",
|
||||
"debug": "^4.3.2",
|
||||
"functional-red-black-tree": "^1.0.1",
|
||||
"ignore": "^5.1.8",
|
||||
|
|
@ -432,15 +432,15 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/experimental-utils": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.7.0.tgz",
|
||||
"integrity": "sha512-u57eZ5FbEpzN5kSjmVrSesovWslH2ZyNPnaXQMXWgH57d5+EVHEt76W75vVuI9qKZ5BMDKNfRN+pxcPEjQjb2A==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.8.0.tgz",
|
||||
"integrity": "sha512-KN5FvNH71bhZ8fKtL+lhW7bjm7cxs1nt+hrDZWIqb6ViCffQcWyLunGrgvISgkRojIDcXIsH+xlFfI4RCDA0xA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/json-schema": "^7.0.9",
|
||||
"@typescript-eslint/scope-manager": "5.7.0",
|
||||
"@typescript-eslint/types": "5.7.0",
|
||||
"@typescript-eslint/typescript-estree": "5.7.0",
|
||||
"@typescript-eslint/scope-manager": "5.8.0",
|
||||
"@typescript-eslint/types": "5.8.0",
|
||||
"@typescript-eslint/typescript-estree": "5.8.0",
|
||||
"eslint-scope": "^5.1.1",
|
||||
"eslint-utils": "^3.0.0"
|
||||
},
|
||||
|
|
@ -452,18 +452,18 @@
|
|||
"url": "https://opencollective.com/typescript-eslint"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"eslint": "*"
|
||||
"eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.7.0.tgz",
|
||||
"integrity": "sha512-m/gWCCcS4jXw6vkrPQ1BjZ1vomP01PArgzvauBqzsoZ3urLbsRChexB8/YV8z9HwE3qlJM35FxfKZ1nfP/4x8g==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.8.0.tgz",
|
||||
"integrity": "sha512-Gleacp/ZhRtJRYs5/T8KQR3pAQjQI89Dn/k+OzyCKOsLiZH2/Vh60cFBTnFsHNI6WAD+lNUo/xGZ4NeA5u0Ipw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "5.7.0",
|
||||
"@typescript-eslint/types": "5.7.0",
|
||||
"@typescript-eslint/typescript-estree": "5.7.0",
|
||||
"@typescript-eslint/scope-manager": "5.8.0",
|
||||
"@typescript-eslint/types": "5.8.0",
|
||||
"@typescript-eslint/typescript-estree": "5.8.0",
|
||||
"debug": "^4.3.2"
|
||||
},
|
||||
"engines": {
|
||||
|
|
@ -483,13 +483,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/scope-manager": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.7.0.tgz",
|
||||
"integrity": "sha512-7mxR520DGq5F7sSSgM0HSSMJ+TFUymOeFRMfUfGFAVBv8BR+Jv1vHgAouYUvWRZeszVBJlLcc9fDdktxb5kmxA==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.8.0.tgz",
|
||||
"integrity": "sha512-x82CYJsLOjPCDuFFEbS6e7K1QEWj7u5Wk1alw8A+gnJiYwNnDJk0ib6PCegbaPMjrfBvFKa7SxE3EOnnIQz2Gg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "5.7.0",
|
||||
"@typescript-eslint/visitor-keys": "5.7.0"
|
||||
"@typescript-eslint/types": "5.8.0",
|
||||
"@typescript-eslint/visitor-keys": "5.8.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
|
|
@ -500,9 +500,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/types": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.7.0.tgz",
|
||||
"integrity": "sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.8.0.tgz",
|
||||
"integrity": "sha512-LdCYOqeqZWqCMOmwFnum6YfW9F3nKuxJiR84CdIRN5nfHJ7gyvGpXWqL/AaW0k3Po0+wm93ARAsOdzlZDPCcXg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
|
|
@ -513,13 +513,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.7.0.tgz",
|
||||
"integrity": "sha512-aO1Ql+izMrTnPj5aFFlEJkpD4jRqC4Gwhygu2oHK2wfVQpmOPbyDSveJ+r/NQo+PWV43M6uEAeLVbTi09dFLhg==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.8.0.tgz",
|
||||
"integrity": "sha512-srfeZ3URdEcUsSLbkOFqS7WoxOqn8JNil2NSLO9O+I2/Uyc85+UlfpEvQHIpj5dVts7KKOZnftoJD/Fdv0L7nQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "5.7.0",
|
||||
"@typescript-eslint/visitor-keys": "5.7.0",
|
||||
"@typescript-eslint/types": "5.8.0",
|
||||
"@typescript-eslint/visitor-keys": "5.8.0",
|
||||
"debug": "^4.3.2",
|
||||
"globby": "^11.0.4",
|
||||
"is-glob": "^4.0.3",
|
||||
|
|
@ -540,12 +540,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/visitor-keys": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.7.0.tgz",
|
||||
"integrity": "sha512-hdohahZ4lTFcglZSJ3DGdzxQHBSxsLVqHzkiOmKi7xVAWC4y2c1bIMKmPJSrA4aOEoRUPOKQ87Y/taC7yVHpFg==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.8.0.tgz",
|
||||
"integrity": "sha512-+HDIGOEMnqbxdAHegxvnOqESUH6RWFRR2b8qxP1W9CZnnYh4Usz6MBL+2KMAgPk/P0o9c1HqnYtwzVH6GTIqug==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "5.7.0",
|
||||
"@typescript-eslint/types": "5.8.0",
|
||||
"eslint-visitor-keys": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
|
|
@ -4495,13 +4495,13 @@
|
|||
"dev": true
|
||||
},
|
||||
"@typescript-eslint/eslint-plugin": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.7.0.tgz",
|
||||
"integrity": "sha512-8RTGBpNn5a9M628wBPrCbJ+v3YTEOE2qeZb7TDkGKTDXSj36KGRg92SpFFaR/0S3rSXQxM0Og/kV9EyadsYSBg==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.8.0.tgz",
|
||||
"integrity": "sha512-spu1UW7QuBn0nJ6+psnfCc3iVoQAifjKORgBngKOmC8U/1tbe2YJMzYQqDGYB4JCss7L8+RM2kKLb1B1Aw9BNA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/experimental-utils": "5.7.0",
|
||||
"@typescript-eslint/scope-manager": "5.7.0",
|
||||
"@typescript-eslint/experimental-utils": "5.8.0",
|
||||
"@typescript-eslint/scope-manager": "5.8.0",
|
||||
"debug": "^4.3.2",
|
||||
"functional-red-black-tree": "^1.0.1",
|
||||
"ignore": "^5.1.8",
|
||||
|
|
@ -4511,55 +4511,55 @@
|
|||
}
|
||||
},
|
||||
"@typescript-eslint/experimental-utils": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.7.0.tgz",
|
||||
"integrity": "sha512-u57eZ5FbEpzN5kSjmVrSesovWslH2ZyNPnaXQMXWgH57d5+EVHEt76W75vVuI9qKZ5BMDKNfRN+pxcPEjQjb2A==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.8.0.tgz",
|
||||
"integrity": "sha512-KN5FvNH71bhZ8fKtL+lhW7bjm7cxs1nt+hrDZWIqb6ViCffQcWyLunGrgvISgkRojIDcXIsH+xlFfI4RCDA0xA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/json-schema": "^7.0.9",
|
||||
"@typescript-eslint/scope-manager": "5.7.0",
|
||||
"@typescript-eslint/types": "5.7.0",
|
||||
"@typescript-eslint/typescript-estree": "5.7.0",
|
||||
"@typescript-eslint/scope-manager": "5.8.0",
|
||||
"@typescript-eslint/types": "5.8.0",
|
||||
"@typescript-eslint/typescript-estree": "5.8.0",
|
||||
"eslint-scope": "^5.1.1",
|
||||
"eslint-utils": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/parser": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.7.0.tgz",
|
||||
"integrity": "sha512-m/gWCCcS4jXw6vkrPQ1BjZ1vomP01PArgzvauBqzsoZ3urLbsRChexB8/YV8z9HwE3qlJM35FxfKZ1nfP/4x8g==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.8.0.tgz",
|
||||
"integrity": "sha512-Gleacp/ZhRtJRYs5/T8KQR3pAQjQI89Dn/k+OzyCKOsLiZH2/Vh60cFBTnFsHNI6WAD+lNUo/xGZ4NeA5u0Ipw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/scope-manager": "5.7.0",
|
||||
"@typescript-eslint/types": "5.7.0",
|
||||
"@typescript-eslint/typescript-estree": "5.7.0",
|
||||
"@typescript-eslint/scope-manager": "5.8.0",
|
||||
"@typescript-eslint/types": "5.8.0",
|
||||
"@typescript-eslint/typescript-estree": "5.8.0",
|
||||
"debug": "^4.3.2"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/scope-manager": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.7.0.tgz",
|
||||
"integrity": "sha512-7mxR520DGq5F7sSSgM0HSSMJ+TFUymOeFRMfUfGFAVBv8BR+Jv1vHgAouYUvWRZeszVBJlLcc9fDdktxb5kmxA==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.8.0.tgz",
|
||||
"integrity": "sha512-x82CYJsLOjPCDuFFEbS6e7K1QEWj7u5Wk1alw8A+gnJiYwNnDJk0ib6PCegbaPMjrfBvFKa7SxE3EOnnIQz2Gg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "5.7.0",
|
||||
"@typescript-eslint/visitor-keys": "5.7.0"
|
||||
"@typescript-eslint/types": "5.8.0",
|
||||
"@typescript-eslint/visitor-keys": "5.8.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/types": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.7.0.tgz",
|
||||
"integrity": "sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.8.0.tgz",
|
||||
"integrity": "sha512-LdCYOqeqZWqCMOmwFnum6YfW9F3nKuxJiR84CdIRN5nfHJ7gyvGpXWqL/AaW0k3Po0+wm93ARAsOdzlZDPCcXg==",
|
||||
"dev": true
|
||||
},
|
||||
"@typescript-eslint/typescript-estree": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.7.0.tgz",
|
||||
"integrity": "sha512-aO1Ql+izMrTnPj5aFFlEJkpD4jRqC4Gwhygu2oHK2wfVQpmOPbyDSveJ+r/NQo+PWV43M6uEAeLVbTi09dFLhg==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.8.0.tgz",
|
||||
"integrity": "sha512-srfeZ3URdEcUsSLbkOFqS7WoxOqn8JNil2NSLO9O+I2/Uyc85+UlfpEvQHIpj5dVts7KKOZnftoJD/Fdv0L7nQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "5.7.0",
|
||||
"@typescript-eslint/visitor-keys": "5.7.0",
|
||||
"@typescript-eslint/types": "5.8.0",
|
||||
"@typescript-eslint/visitor-keys": "5.8.0",
|
||||
"debug": "^4.3.2",
|
||||
"globby": "^11.0.4",
|
||||
"is-glob": "^4.0.3",
|
||||
|
|
@ -4568,12 +4568,12 @@
|
|||
}
|
||||
},
|
||||
"@typescript-eslint/visitor-keys": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.7.0.tgz",
|
||||
"integrity": "sha512-hdohahZ4lTFcglZSJ3DGdzxQHBSxsLVqHzkiOmKi7xVAWC4y2c1bIMKmPJSrA4aOEoRUPOKQ87Y/taC7yVHpFg==",
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.8.0.tgz",
|
||||
"integrity": "sha512-+HDIGOEMnqbxdAHegxvnOqESUH6RWFRR2b8qxP1W9CZnnYh4Usz6MBL+2KMAgPk/P0o9c1HqnYtwzVH6GTIqug==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "5.7.0",
|
||||
"@typescript-eslint/types": "5.8.0",
|
||||
"eslint-visitor-keys": "^3.0.0"
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "multi-downloader-nx",
|
||||
"short_name": "aniDL",
|
||||
"version": "2.0.11",
|
||||
"version": "2.0.12",
|
||||
"description": "Download videos from Funimation or Crunchyroll via cli",
|
||||
"keywords": [
|
||||
"download",
|
||||
|
|
|
|||
Loading…
Reference in a new issue