cross-seed 6.0.0-3 → 6.0.0-31
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/dist/Result.js +17 -11
- package/dist/Result.js.map +1 -1
- package/dist/action.js +188 -74
- package/dist/action.js.map +1 -1
- package/dist/arr.js +197 -0
- package/dist/arr.js.map +1 -0
- package/dist/clients/Deluge.js +153 -81
- package/dist/clients/Deluge.js.map +1 -1
- package/dist/clients/QBittorrent.js +95 -64
- package/dist/clients/QBittorrent.js.map +1 -1
- package/dist/clients/RTorrent.js +31 -10
- package/dist/clients/RTorrent.js.map +1 -1
- package/dist/clients/TorrentClient.js.map +1 -1
- package/dist/clients/Transmission.js +30 -10
- package/dist/clients/Transmission.js.map +1 -1
- package/dist/cmd.js +32 -16
- package/dist/cmd.js.map +1 -1
- package/dist/config.template.cjs +83 -46
- package/dist/config.template.cjs.map +1 -1
- package/dist/configSchema.js +98 -13
- package/dist/configSchema.js.map +1 -1
- package/dist/configuration.js +3 -0
- package/dist/configuration.js.map +1 -1
- package/dist/constants.js +113 -6
- package/dist/constants.js.map +1 -1
- package/dist/dataFiles.js +4 -5
- package/dist/dataFiles.js.map +1 -1
- package/dist/decide.js +276 -160
- package/dist/decide.js.map +1 -1
- package/dist/diff.js +12 -2
- package/dist/diff.js.map +1 -1
- package/dist/errors.js +5 -2
- package/dist/errors.js.map +1 -1
- package/dist/indexers.js +31 -4
- package/dist/indexers.js.map +1 -1
- package/dist/inject.js +409 -0
- package/dist/inject.js.map +1 -0
- package/dist/jobs.js +8 -1
- package/dist/jobs.js.map +1 -1
- package/dist/logger.js +20 -5
- package/dist/logger.js.map +1 -1
- package/dist/migrations/05-caps.js +16 -0
- package/dist/migrations/05-caps.js.map +1 -0
- package/dist/migrations/06-uniqueDecisions.js +29 -0
- package/dist/migrations/06-uniqueDecisions.js.map +1 -0
- package/dist/migrations/migrations.js +11 -1
- package/dist/migrations/migrations.js.map +1 -1
- package/dist/parseTorrent.js +6 -0
- package/dist/parseTorrent.js.map +1 -1
- package/dist/pipeline.js +202 -95
- package/dist/pipeline.js.map +1 -1
- package/dist/preFilter.js +130 -52
- package/dist/preFilter.js.map +1 -1
- package/dist/pushNotifier.js +6 -4
- package/dist/pushNotifier.js.map +1 -1
- package/dist/runtimeConfig.js.map +1 -1
- package/dist/searchee.js +190 -19
- package/dist/searchee.js.map +1 -1
- package/dist/server.js +70 -32
- package/dist/server.js.map +1 -1
- package/dist/startup.js +12 -1
- package/dist/startup.js.map +1 -1
- package/dist/torrent.js +103 -40
- package/dist/torrent.js.map +1 -1
- package/dist/torznab.js +304 -90
- package/dist/torznab.js.map +1 -1
- package/dist/utils.js +215 -33
- package/dist/utils.js.map +1 -1
- package/package.json +3 -1
package/dist/utils.js
CHANGED
@@ -1,21 +1,27 @@
|
|
1
|
-
import path
|
2
|
-
import { EP_REGEX, MOVIE_REGEX, SEASON_REGEX,
|
1
|
+
import path from "path";
|
2
|
+
import { ALL_EXTENSIONS, ANIME_REGEX, AUDIO_EXTENSIONS, BOOK_EXTENSIONS, Decision, EP_REGEX, LEVENSHTEIN_DIVISOR, MOVIE_REGEX, NON_UNICODE_ALPHANUM_REGEX, RELEASE_GROUP_REGEX, REPACK_PROPER_REGEX, RESOLUTION_REGEX, SCENE_TITLE_REGEX, SEASON_REGEX, sourceRegexRemove, VIDEO_DISC_EXTENSIONS, VIDEO_EXTENSIONS, YEARS_REGEX, } from "./constants.js";
|
3
3
|
import { resultOf, resultOfErr } from "./Result.js";
|
4
|
+
import chalk from "chalk";
|
5
|
+
import { getRuntimeConfig } from "./runtimeConfig.js";
|
6
|
+
import { distance } from "fastest-levenshtein";
|
4
7
|
export var MediaType;
|
5
8
|
(function (MediaType) {
|
6
9
|
MediaType["EPISODE"] = "episode";
|
7
10
|
MediaType["SEASON"] = "pack";
|
8
11
|
MediaType["MOVIE"] = "movie";
|
9
12
|
MediaType["ANIME"] = "anime";
|
13
|
+
MediaType["VIDEO"] = "video";
|
14
|
+
MediaType["AUDIO"] = "audio";
|
15
|
+
MediaType["BOOK"] = "book";
|
10
16
|
MediaType["OTHER"] = "unknown";
|
11
17
|
})(MediaType || (MediaType = {}));
|
12
18
|
export function isTruthy(value) {
|
13
19
|
return Boolean(value);
|
14
20
|
}
|
15
21
|
export function stripExtension(filename) {
|
16
|
-
for (const ext of
|
22
|
+
for (const ext of ALL_EXTENSIONS) {
|
17
23
|
if (filename.endsWith(ext))
|
18
|
-
return basename(filename, ext);
|
24
|
+
return path.basename(filename, ext);
|
19
25
|
}
|
20
26
|
return filename;
|
21
27
|
}
|
@@ -29,31 +35,89 @@ export function humanReadableSize(bytes) {
|
|
29
35
|
const k = 1000;
|
30
36
|
const sizes = ["B", "kB", "MB", "GB", "TB"];
|
31
37
|
// engineering notation: (coefficient) * 1000 ^ (exponent)
|
32
|
-
const exponent = Math.floor(Math.log(bytes) / Math.log(k));
|
38
|
+
const exponent = Math.floor(Math.log(Math.abs(bytes)) / Math.log(k));
|
33
39
|
const coefficient = bytes / Math.pow(k, exponent);
|
34
40
|
return `${parseFloat(coefficient.toFixed(2))} ${sizes[exponent]}`;
|
35
41
|
}
|
36
|
-
export function
|
37
|
-
return
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
}
|
47
|
-
|
42
|
+
export function filesWithExt(files, exts) {
|
43
|
+
return files.filter((f) => exts.includes(path.extname(f.name.toLowerCase())));
|
44
|
+
}
|
45
|
+
export function hasExt(files, exts) {
|
46
|
+
return files.some((f) => exts.includes(path.extname(f.name.toLowerCase())));
|
47
|
+
}
|
48
|
+
export function getMediaType(searchee) {
|
49
|
+
function unsupportedMediaType(searchee) {
|
50
|
+
if (hasExt(searchee.files, AUDIO_EXTENSIONS)) {
|
51
|
+
return MediaType.AUDIO;
|
52
|
+
}
|
53
|
+
else if (hasExt(searchee.files, BOOK_EXTENSIONS)) {
|
54
|
+
return MediaType.BOOK;
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
return MediaType.OTHER;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
/* eslint-disable no-fallthrough */
|
61
|
+
switch (true) {
|
62
|
+
case EP_REGEX.test(searchee.title):
|
63
|
+
return MediaType.EPISODE;
|
64
|
+
case SEASON_REGEX.test(searchee.title):
|
65
|
+
return MediaType.SEASON;
|
66
|
+
case hasExt(searchee.files, VIDEO_EXTENSIONS):
|
67
|
+
if (MOVIE_REGEX.test(searchee.title))
|
68
|
+
return MediaType.MOVIE;
|
69
|
+
if (ANIME_REGEX.test(searchee.title))
|
70
|
+
return MediaType.ANIME;
|
71
|
+
return MediaType.VIDEO;
|
72
|
+
case hasExt(searchee.files, VIDEO_DISC_EXTENSIONS):
|
73
|
+
if (MOVIE_REGEX.test(searchee.title))
|
74
|
+
return MediaType.MOVIE;
|
75
|
+
return MediaType.VIDEO;
|
76
|
+
case hasExt(searchee.files, [".rar"]):
|
77
|
+
if (MOVIE_REGEX.test(searchee.title))
|
78
|
+
return MediaType.MOVIE;
|
79
|
+
default:
|
80
|
+
return unsupportedMediaType(searchee);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
export function shouldRecheck(searchee, decision) {
|
84
|
+
if (hasExt(searchee.files, VIDEO_DISC_EXTENSIONS))
|
85
|
+
return true;
|
48
86
|
switch (decision) {
|
49
87
|
case Decision.MATCH:
|
50
|
-
return false;
|
51
88
|
case Decision.MATCH_SIZE_ONLY:
|
89
|
+
return false;
|
52
90
|
case Decision.MATCH_PARTIAL:
|
53
91
|
default:
|
54
92
|
return true;
|
55
93
|
}
|
56
94
|
}
|
95
|
+
export function areMediaTitlesSimilar(a, b) {
|
96
|
+
const matchA = a.match(EP_REGEX) ??
|
97
|
+
a.match(SEASON_REGEX) ??
|
98
|
+
a.match(MOVIE_REGEX) ??
|
99
|
+
a.match(ANIME_REGEX);
|
100
|
+
const matchB = b.match(EP_REGEX) ??
|
101
|
+
b.match(SEASON_REGEX) ??
|
102
|
+
b.match(MOVIE_REGEX) ??
|
103
|
+
b.match(ANIME_REGEX);
|
104
|
+
const titlesA = (matchA
|
105
|
+
? [matchA.groups?.title, matchA.groups?.altTitle].filter(isTruthy)
|
106
|
+
: [a])
|
107
|
+
.map((title) => createKeyTitle(stripMetaFromName(title)))
|
108
|
+
.filter(isTruthy);
|
109
|
+
const titlesB = (matchB
|
110
|
+
? [matchB.groups?.title, matchB.groups?.altTitle].filter(isTruthy)
|
111
|
+
: [b])
|
112
|
+
.map((title) => createKeyTitle(stripMetaFromName(title)))
|
113
|
+
.filter(isTruthy);
|
114
|
+
const maxDistanceA = Math.floor(Math.max(...titlesA.map((t) => t.length)) / LEVENSHTEIN_DIVISOR);
|
115
|
+
const maxDistanceB = Math.floor(Math.max(...titlesB.map((t) => t.length)) / LEVENSHTEIN_DIVISOR);
|
116
|
+
const maxDistance = Math.max(maxDistanceA, maxDistanceB);
|
117
|
+
return titlesA.some((titleA) => titlesB.some((titleB) => distance(titleA, titleB) <= maxDistance ||
|
118
|
+
titleA.includes(titleB) ||
|
119
|
+
titleB.includes(titleA)));
|
120
|
+
}
|
57
121
|
export async function time(cb, times) {
|
58
122
|
const before = performance.now();
|
59
123
|
try {
|
@@ -63,31 +127,80 @@ export async function time(cb, times) {
|
|
63
127
|
times.push(performance.now() - before);
|
64
128
|
}
|
65
129
|
}
|
130
|
+
export function sanitizeUrl(url) {
|
131
|
+
if (typeof url === "string") {
|
132
|
+
url = new URL(url);
|
133
|
+
}
|
134
|
+
return url.origin + url.pathname;
|
135
|
+
}
|
136
|
+
/**
|
137
|
+
* This cannot be done at the log level because of too many false positives.
|
138
|
+
* The caller will need to extract the infoHash from their specific syntax.
|
139
|
+
* @param infoHash The infoHash to sanitize
|
140
|
+
*/
|
141
|
+
export function sanitizeInfoHash(infoHash) {
|
142
|
+
return `${infoHash.slice(0, 8)}...`;
|
143
|
+
}
|
144
|
+
export function getApikey(url) {
|
145
|
+
return new URL(url).searchParams.get("apikey");
|
146
|
+
}
|
66
147
|
export function cleanseSeparators(str) {
|
67
148
|
return str
|
68
|
-
.replace(/\[.*?\]|「.*?」|「.*?」|【.*?】/g, "")
|
69
|
-
.replace(/[._()[\]]/g, " ")
|
70
|
-
.replace(/\s+/g, " ")
|
149
|
+
.replace(/\[.*?\]|「.*?」|「.*?」|【.*?】/g, "") // bracketed text
|
150
|
+
.replace(/[._()[\]]/g, " ") // release delimiters (except '-')
|
151
|
+
.replace(/\s+/g, " ") // successive spaces
|
152
|
+
.replace(/^\s*-+|-+\s*$/g, "") // "trim()" hyphens
|
71
153
|
.trim();
|
72
154
|
}
|
155
|
+
export function cleanTitle(title) {
|
156
|
+
return cleanseSeparators(title).match(SCENE_TITLE_REGEX).groups.title;
|
157
|
+
}
|
158
|
+
export function reformatTitleForSearching(name) {
|
159
|
+
const seriesTitle = name.match(EP_REGEX)?.groups?.title ??
|
160
|
+
name.match(SEASON_REGEX)?.groups?.title;
|
161
|
+
if (seriesTitle) {
|
162
|
+
const title = cleanTitle(seriesTitle);
|
163
|
+
return title.length > 4
|
164
|
+
? replaceLastOccurrence(title, YEARS_REGEX, "")
|
165
|
+
.replace(/\s+/g, " ")
|
166
|
+
.trim()
|
167
|
+
: title;
|
168
|
+
}
|
169
|
+
return cleanTitle(name.match(MOVIE_REGEX)?.[0] ?? name);
|
170
|
+
}
|
171
|
+
export function createKeyTitle(title) {
|
172
|
+
const key = cleanTitle(title)
|
173
|
+
.replace(NON_UNICODE_ALPHANUM_REGEX, "")
|
174
|
+
.toLowerCase();
|
175
|
+
return key.length > 4
|
176
|
+
? replaceLastOccurrence(key, YEARS_REGEX, "")
|
177
|
+
: key.length
|
178
|
+
? key
|
179
|
+
: null;
|
180
|
+
}
|
181
|
+
export function isBadTitle(title) {
|
182
|
+
return ["season", "ep"].includes(title.toLowerCase());
|
183
|
+
}
|
73
184
|
export function getAnimeQueries(name) {
|
74
|
-
// Only use if
|
185
|
+
// Only use if getMediaType returns anime as it's conditional on a few factors
|
75
186
|
const animeQueries = [];
|
76
187
|
const { title, altTitle, release } = name.match(ANIME_REGEX)?.groups ?? {};
|
77
188
|
if (title) {
|
78
|
-
animeQueries.push(
|
189
|
+
animeQueries.push(cleanTitle(`${title} ${release}`));
|
79
190
|
}
|
80
191
|
if (altTitle) {
|
81
|
-
|
192
|
+
if (isBadTitle(altTitle))
|
193
|
+
return animeQueries;
|
194
|
+
animeQueries.push(cleanTitle(`${altTitle} ${release}`));
|
82
195
|
}
|
83
196
|
return animeQueries;
|
84
197
|
}
|
85
|
-
export function
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
198
|
+
export function stripMetaFromName(name) {
|
199
|
+
return sourceRegexRemove(stripExtension(name)
|
200
|
+
.replace(RELEASE_GROUP_REGEX, "")
|
201
|
+
.replace(/\s*-\s*$/, "")
|
202
|
+
.replace(RESOLUTION_REGEX, "")
|
203
|
+
.replace(REPACK_PROPER_REGEX, "")).match(SCENE_TITLE_REGEX).groups.title;
|
91
204
|
}
|
92
205
|
export const tap = (fn) => (value) => {
|
93
206
|
fn(value);
|
@@ -101,11 +214,27 @@ export function humanReadableDate(timestamp) {
|
|
101
214
|
// swedish conventions roughly follow the iso format!
|
102
215
|
return new Date(timestamp).toLocaleString("sv");
|
103
216
|
}
|
104
|
-
export function
|
217
|
+
export function getLogString(searchee, color = chalk.reset) {
|
218
|
+
if (searchee.title === searchee.name) {
|
219
|
+
return searchee.infoHash
|
220
|
+
? `${color(searchee.title)} ${chalk.dim(`[${sanitizeInfoHash(searchee.infoHash)}]`)}`
|
221
|
+
: searchee.path
|
222
|
+
? color(searchee.path)
|
223
|
+
: color(searchee.title);
|
224
|
+
}
|
225
|
+
return searchee.infoHash
|
226
|
+
? `${color(searchee.title)} ${chalk.dim(`[${searchee.name} [${sanitizeInfoHash(searchee.infoHash)}]]`)}`
|
227
|
+
: searchee.path
|
228
|
+
? `${color(searchee.title)} ${chalk.dim(`[${searchee.path}]`)}`
|
229
|
+
: `${color(searchee.title)} ${chalk.dim(`[${searchee.name}]`)}`;
|
230
|
+
}
|
231
|
+
export function formatAsList(strings, options) {
|
232
|
+
if (options.sort)
|
233
|
+
strings.sort((a, b) => a.localeCompare(b));
|
105
234
|
return new Intl.ListFormat("en", {
|
106
235
|
style: "long",
|
107
|
-
type: "conjunction",
|
108
|
-
}).format(strings
|
236
|
+
type: options.type ?? "conjunction",
|
237
|
+
}).format(strings);
|
109
238
|
}
|
110
239
|
export function fallback(...args) {
|
111
240
|
for (const arg of args) {
|
@@ -131,4 +260,57 @@ export function extractCredentialsFromUrl(url, basePath) {
|
|
131
260
|
return resultOfErr("invalid URL");
|
132
261
|
}
|
133
262
|
}
|
263
|
+
export function capitalizeFirstLetter(string) {
|
264
|
+
return string.charAt(0).toUpperCase() + string.slice(1);
|
265
|
+
}
|
266
|
+
/**
|
267
|
+
* Replaces the last occurrence of a GLOBAL regex match in a string
|
268
|
+
* @param str The string to replace the last occurrence in
|
269
|
+
* @param globalRegExp The regex to match (must be global)
|
270
|
+
* @param newStr The string to replace the last occurrence with
|
271
|
+
*/
|
272
|
+
export function replaceLastOccurrence(str, globalRegExp, newStr) {
|
273
|
+
const matches = Array.from(str.matchAll(globalRegExp));
|
274
|
+
if (matches.length === 0)
|
275
|
+
return str;
|
276
|
+
const lastMatch = matches[matches.length - 1];
|
277
|
+
const lastMatchIndex = lastMatch.index;
|
278
|
+
const lastMatchStr = lastMatch[0];
|
279
|
+
return (str.slice(0, lastMatchIndex) +
|
280
|
+
newStr +
|
281
|
+
str.slice(lastMatchIndex + lastMatchStr.length));
|
282
|
+
}
|
283
|
+
export function extractInt(str) {
|
284
|
+
return parseInt(str.match(/\d+/)[0]);
|
285
|
+
}
|
286
|
+
export function getFuzzySizeFactor() {
|
287
|
+
const { fuzzySizeThreshold } = getRuntimeConfig();
|
288
|
+
return fuzzySizeThreshold;
|
289
|
+
}
|
290
|
+
export function getMinSizeRatio() {
|
291
|
+
const { fuzzySizeThreshold } = getRuntimeConfig();
|
292
|
+
return 1 - fuzzySizeThreshold;
|
293
|
+
}
|
294
|
+
/**
|
295
|
+
* Makes comparators for `Array.prototype.sort`.
|
296
|
+
* Second getter will be used if the first is a tie, etc.
|
297
|
+
* Booleans are treated as 0 and 1,
|
298
|
+
* Ascending by default, use - or ! for descending.
|
299
|
+
* @param getters
|
300
|
+
*/
|
301
|
+
export function comparing(...getters) {
|
302
|
+
return function compare(a, b) {
|
303
|
+
for (const getter of getters) {
|
304
|
+
const x = getter(a);
|
305
|
+
const y = getter(b);
|
306
|
+
if (x < y) {
|
307
|
+
return -1;
|
308
|
+
}
|
309
|
+
else if (x > y) {
|
310
|
+
return 1;
|
311
|
+
}
|
312
|
+
}
|
313
|
+
return 0;
|
314
|
+
};
|
315
|
+
}
|
134
316
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACN,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAU,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACpB,gCAAmB,CAAA;IACnB,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,8BAAiB,CAAA;AAClB,CAAC,EATW,SAAS,KAAT,SAAS,QASpB;AAMD,MAAM,UAAU,QAAQ,CAAI,KAAQ;IACnC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC9C,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,CAAS;IAC/B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AACD,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC9C,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClD,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AACnE,CAAC;AACD,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,IAAc;IACzD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CACjD,CAAC;AACH,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,KAAa,EAAE,IAAc;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AACD,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC9C,SAAS,oBAAoB,CAAC,QAAkB;QAC/C,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC;YAC9C,OAAO,SAAS,CAAC,KAAK,CAAC;QACxB,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;YACpD,OAAO,SAAS,CAAC,IAAI,CAAC;QACvB,CAAC;aAAM,CAAC;YACP,OAAO,SAAS,CAAC,KAAK,CAAC;QACxB,CAAC;IACF,CAAC;IAED,mCAAmC;IACnC,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACjC,OAAO,SAAS,CAAC,OAAO,CAAC;QAC1B,KAAK,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACrC,OAAO,SAAS,CAAC,MAAM,CAAC;QACzB,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;YAC5C,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC;YAC7D,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC;YAC7D,OAAO,SAAS,CAAC,KAAK,CAAC;QACxB,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;YACjD,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC;YAC7D,OAAO,SAAS,CAAC,KAAK,CAAC;QACxB,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC;QAC9D;YACC,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,QAAkB;IACnE,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC,KAAK,CAAC;QACpB,KAAK,QAAQ,CAAC,eAAe;YAC5B,OAAO,KAAK,CAAC;QACd,KAAK,QAAQ,CAAC,aAAa,CAAC;QAC5B;YACC,OAAO,IAAI,CAAC;IACd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAAS,EAAE,CAAS;IACzD,MAAM,MAAM,GACX,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjB,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;QACrB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtB,MAAM,MAAM,GACX,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjB,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;QACrB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtB,MAAM,OAAO,GAAa,CACzB,MAAM;QACL,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAClE,CAAC,CAAC,CAAC,CAAC,CAAC,CACN;SACC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;SACxD,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnB,MAAM,OAAO,GAAa,CACzB,MAAM;QACL,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAClE,CAAC,CAAC,CAAC,CAAC,CAAC,CACN;SACC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;SACxD,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,mBAAmB,CAC/D,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,mBAAmB,CAC/D,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACzD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC9B,OAAO,CAAC,IAAI,CACX,CAAC,MAAM,EAAE,EAAE,CACV,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,WAAW;QACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CACxB,CACD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAI,EAAW,EAAE,KAAe;IACzD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACjC,IAAI,CAAC;QACJ,OAAO,MAAM,EAAE,EAAE,CAAC;IACnB,CAAC;YAAS,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;IACxC,CAAC;AACF,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,GAAiB;IAC5C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC7B,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC;AAClC,CAAC;AACD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAChD,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW;IACpC,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AACD,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC5C,OAAO,GAAG;SACR,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC,iBAAiB;SAC3D,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,kCAAkC;SAC7D,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,oBAAoB;SACzC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,mBAAmB;SACjD,IAAI,EAAE,CAAC;AACV,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACvC,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAE,CAAC,MAAO,CAAC,KAAK,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACrD,MAAM,WAAW,GAChB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK;QACnC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC;IACzC,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC;YACtB,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;iBAC5C,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;iBACpB,IAAI,EAAE;YACT,CAAC,CAAC,KAAK,CAAC;IACV,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC3C,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC;SAC3B,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC;SACvC,WAAW,EAAE,CAAC;IAChB,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC;QACpB,CAAC,CAAC,qBAAqB,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC;QAC7C,CAAC,CAAC,GAAG,CAAC,MAAM;YACX,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,IAAI,CAAC;AACV,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACvC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,8EAA8E;IAC9E,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;IAC3E,IAAI,KAAK,EAAE,CAAC;QACX,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACd,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,YAAY,CAAC;QAC9C,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,OAAO,iBAAiB,CACvB,cAAc,CAAC,IAAI,CAAC;SAClB,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAC7B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAClC,CAAC,KAAK,CAAC,iBAAiB,CAAE,CAAC,MAAO,CAAC,KAAK,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;IACpC,EAAE,CAAC,KAAK,CAAC,CAAC;IACV,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAG,EAAE,SAAS;IAC/C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAEtD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IAClD,qDAAqD;IACrD,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,QAAkB,EAClB,QAAuB,KAAK,CAAC,KAAK;IAElC,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtC,OAAO,QAAQ,CAAC,QAAQ;YACvB,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACrF,CAAC,CAAC,QAAQ,CAAC,IAAI;gBACd,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACtB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,QAAQ,CAAC,QAAQ;QACvB,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACxG,CAAC,CAAC,QAAQ,CAAC,IAAI;YACd,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE;YAC/D,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,OAAiB,EACjB,OAAsD;IAEtD,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QAChC,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,aAAa;KACnC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,GAAG,IAAS;IACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC;IACnC,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,yBAAyB,CACxC,GAAW,EACX,QAAiB;IAEjB,IAAI,CAAC;QACJ,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9D,OAAO,QAAQ,CAAC;YACf,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC;YACtC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC;YACtC,IAAI,EAAE,QAAQ;gBACb,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAC9C,CAAC,CAAC,QAAQ,KAAK,GAAG;oBACjB,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,MAAM,GAAG,QAAQ;SACrB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAc;IACnD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACpC,GAAW,EACX,YAAoB,EACpB,MAAc;IAEd,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACrC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,SAAS,CAAC,KAAM,CAAC;IACxC,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,CACN,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC;QAC5B,MAAM;QACN,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAC/C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,kBAAkB;IACjC,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAClD,OAAO,kBAAkB,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,eAAe;IAC9B,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAClD,OAAO,CAAC,GAAG,kBAAkB,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAI,GAAG,OAAuC;IACtE,OAAO,SAAS,OAAO,CAAC,CAAI,EAAE,CAAI;QACjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,CAAC,CAAC;YACX,CAAC;iBAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,CAAC;YACV,CAAC;QACF,CAAC;QACD,OAAO,CAAC,CAAC;IACV,CAAC,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "cross-seed",
|
3
|
-
"version": "6.0.0-
|
3
|
+
"version": "6.0.0-31",
|
4
4
|
"description": "Fully-automatic cross-seeding with Torznab",
|
5
5
|
"scripts": {
|
6
6
|
"test": "true",
|
@@ -30,7 +30,9 @@
|
|
30
30
|
"bencode": "^2.0.1",
|
31
31
|
"better-sqlite3": "^9.4.0",
|
32
32
|
"chalk": "^5.0.0",
|
33
|
+
"strip-ansi": "^7.1.0",
|
33
34
|
"commander": "^8.3.0",
|
35
|
+
"fastest-levenshtein": "^1.0.16",
|
34
36
|
"fuse.js": "^6.6.2",
|
35
37
|
"knex": "^2.4.2",
|
36
38
|
"lodash-es": "^4.17.21",
|