cross-seed 4.3.8 → 4.4.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.
- package/README.md +1 -1
- package/dist/Result.js +53 -0
- package/dist/Result.js.map +1 -0
- package/dist/clients/QBittorrent.js +8 -8
- package/dist/clients/QBittorrent.js.map +1 -1
- package/dist/clients/TorrentClient.js +5 -1
- package/dist/clients/TorrentClient.js.map +1 -1
- package/dist/clients/Transmission.js +113 -0
- package/dist/clients/Transmission.js.map +1 -0
- package/dist/cmd.js +6 -1
- package/dist/cmd.js.map +1 -1
- package/dist/config.template.cjs +13 -0
- package/dist/config.template.cjs.map +1 -1
- package/dist/config.template.docker.cjs +13 -0
- package/dist/config.template.docker.cjs.map +1 -1
- package/dist/configuration.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/db.js +7 -3
- package/dist/db.js.map +1 -1
- package/dist/decide.js +26 -13
- package/dist/decide.js.map +1 -1
- package/dist/indexers.js +64 -0
- package/dist/indexers.js.map +1 -0
- package/dist/jobs.js +12 -8
- package/dist/jobs.js.map +1 -1
- package/dist/logger.js +2 -0
- package/dist/logger.js.map +1 -1
- package/dist/migrations/00-initialSchema.js +1 -6
- package/dist/migrations/00-initialSchema.js.map +1 -1
- package/dist/migrations/01-jobs.js +0 -5
- package/dist/migrations/01-jobs.js.map +1 -1
- package/dist/migrations/02-timestamps.js +46 -0
- package/dist/migrations/02-timestamps.js.map +1 -0
- package/dist/migrations/03-rateLimits.js +14 -0
- package/dist/migrations/03-rateLimits.js.map +1 -0
- package/dist/migrations/migrations.js +3 -2
- package/dist/migrations/migrations.js.map +1 -1
- package/dist/pipeline.js +36 -26
- package/dist/pipeline.js.map +1 -1
- package/dist/preFilter.js +21 -12
- package/dist/preFilter.js.map +1 -1
- package/dist/pushNotifier.js +3 -9
- package/dist/pushNotifier.js.map +1 -1
- package/dist/runtimeConfig.js.map +1 -1
- package/dist/searchee.js +5 -4
- package/dist/searchee.js.map +1 -1
- package/dist/server.js +3 -2
- package/dist/server.js.map +1 -1
- package/dist/startup.js +6 -6
- package/dist/startup.js.map +1 -1
- package/dist/torrent.js +57 -31
- package/dist/torrent.js.map +1 -1
- package/dist/torznab.js +253 -133
- package/dist/torznab.js.map +1 -1
- package/dist/utils.js +13 -4
- package/dist/utils.js.map +1 -1
- package/package.json +6 -5
package/dist/indexers.js
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
import { db } from "./db.js";
|
2
|
+
import { Label, logger } from "./logger.js";
|
3
|
+
import { humanReadable } from "./utils.js";
|
4
|
+
export var IndexerStatus;
|
5
|
+
(function (IndexerStatus) {
|
6
|
+
/**
|
7
|
+
* equivalent to null
|
8
|
+
*/
|
9
|
+
IndexerStatus["OK"] = "OK";
|
10
|
+
IndexerStatus["RATE_LIMITED"] = "RATE_LIMITED";
|
11
|
+
IndexerStatus["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
|
12
|
+
})(IndexerStatus = IndexerStatus || (IndexerStatus = {}));
|
13
|
+
export async function getEnabledIndexers() {
|
14
|
+
return db("indexer")
|
15
|
+
.where({ active: true, search_cap: true, status: null })
|
16
|
+
.orWhere({ active: true, search_cap: true, status: IndexerStatus.OK })
|
17
|
+
.orWhere((b) => b
|
18
|
+
.where({ active: true, search_cap: true })
|
19
|
+
.where("retry_after", "<", Date.now()))
|
20
|
+
.select({
|
21
|
+
id: "id",
|
22
|
+
url: "url",
|
23
|
+
apikey: "apikey",
|
24
|
+
active: "active",
|
25
|
+
status: "status",
|
26
|
+
retryAfter: "retry_after",
|
27
|
+
searchCap: "search_cap",
|
28
|
+
tvSearchCap: "tv_search_cap",
|
29
|
+
movieSearchCap: "movie_search_cap",
|
30
|
+
});
|
31
|
+
}
|
32
|
+
export async function updateIndexerStatus(status, retryAfter, indexerIds) {
|
33
|
+
if (indexerIds.length > 0) {
|
34
|
+
logger.verbose({
|
35
|
+
label: Label.TORZNAB,
|
36
|
+
message: `Snoozing indexers ${indexerIds} with ${status} until ${humanReadable(retryAfter)}`,
|
37
|
+
});
|
38
|
+
await db("indexer").whereIn("id", indexerIds).update({
|
39
|
+
retry_after: retryAfter,
|
40
|
+
status,
|
41
|
+
});
|
42
|
+
}
|
43
|
+
}
|
44
|
+
export async function updateSearchTimestamps(name, indexerIds) {
|
45
|
+
for (const indexerId of indexerIds) {
|
46
|
+
await db.transaction(async (trx) => {
|
47
|
+
const now = Date.now();
|
48
|
+
const { id: searchee_id } = await trx("searchee")
|
49
|
+
.where({ name })
|
50
|
+
.select("id")
|
51
|
+
.first();
|
52
|
+
await trx("timestamp")
|
53
|
+
.insert({
|
54
|
+
searchee_id,
|
55
|
+
indexer_id: indexerId,
|
56
|
+
last_searched: now,
|
57
|
+
first_searched: now,
|
58
|
+
})
|
59
|
+
.onConflict(["searchee_id", "indexer_id"])
|
60
|
+
.merge(["searchee_id", "indexer_id", "last_searched"]);
|
61
|
+
});
|
62
|
+
}
|
63
|
+
}
|
64
|
+
//# sourceMappingURL=indexers.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"indexers.js","sourceRoot":"","sources":["../src/indexers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACxB;;OAEG;IACH,0BAAS,CAAA;IACT,8CAA6B,CAAA;IAC7B,gDAA+B,CAAA;AAChC,CAAC,EAPW,aAAa,GAAb,aAAa,KAAb,aAAa,QAOxB;AAiBD,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACvC,OAAO,EAAE,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SACvD,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC;SACrE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACd,CAAC;SACC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;SACzC,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CACvC;SACA,MAAM,CAAC;QACP,EAAE,EAAE,IAAI;QACR,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,aAAa;QACzB,SAAS,EAAE,YAAY;QACvB,WAAW,EAAE,eAAe;QAC5B,cAAc,EAAE,kBAAkB;KAClC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,MAAqB,EACrB,UAAkB,EAClB,UAAoB;IAEpB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,MAAM,CAAC,OAAO,CAAC;YACd,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,OAAO,EAAE,qBAAqB,UAAU,SAAS,MAAM,UAAU,aAAa,CAC7E,UAAU,CACV,EAAE;SACH,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC;YACpD,WAAW,EAAE,UAAU;YACvB,MAAM;SACN,CAAC,CAAC;KACH;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,IAAY,EACZ,UAAoB;IAEpB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;QACnC,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC;iBAC/C,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;iBACf,MAAM,CAAC,IAAI,CAAC;iBACZ,KAAK,EAAE,CAAC;YAEV,MAAM,GAAG,CAAC,WAAW,CAAC;iBACpB,MAAM,CAAC;gBACP,WAAW;gBACX,UAAU,EAAE,SAAS;gBACrB,aAAa,EAAE,GAAG;gBAClB,cAAc,EAAE,GAAG;aACnB,CAAC;iBACD,UAAU,CAAC,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;iBACzC,KAAK,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;KACH;AACF,CAAC"}
|
package/dist/jobs.js
CHANGED
@@ -24,7 +24,9 @@ class Job {
|
|
24
24
|
finally {
|
25
25
|
this.isActive = false;
|
26
26
|
}
|
27
|
+
return true;
|
27
28
|
}
|
29
|
+
return false;
|
28
30
|
}
|
29
31
|
}
|
30
32
|
const getJobs = () => {
|
@@ -34,7 +36,7 @@ const getJobs = () => {
|
|
34
36
|
searchCadence && new Job("search", searchCadence, main),
|
35
37
|
].filter(Boolean);
|
36
38
|
};
|
37
|
-
export
|
39
|
+
export function jobsLoop() {
|
38
40
|
const jobs = getJobs();
|
39
41
|
async function loop() {
|
40
42
|
var _a;
|
@@ -48,18 +50,20 @@ export async function jobsLoop() {
|
|
48
50
|
const eligibilityTs = lastRun ? lastRun + job.cadence : now;
|
49
51
|
const lastRunStr = lastRun ? `${ms(now - lastRun)} ago` : "never";
|
50
52
|
const nextRunStr = ms(eligibilityTs - now);
|
51
|
-
logger.
|
53
|
+
logger.info({
|
52
54
|
label: Label.SCHEDULER,
|
53
55
|
message: `${job.name}: last run ${lastRunStr}, next run in ${nextRunStr}`,
|
54
56
|
});
|
55
57
|
if (now >= eligibilityTs) {
|
56
58
|
job.run()
|
57
|
-
.then(async () => {
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
59
|
+
.then(async (didRun) => {
|
60
|
+
if (didRun) {
|
61
|
+
// upon success, update the log
|
62
|
+
await db("job_log")
|
63
|
+
.insert({ name: job.name, last_run: now })
|
64
|
+
.onConflict("name")
|
65
|
+
.merge();
|
66
|
+
}
|
63
67
|
})
|
64
68
|
.catch(exitOnCrossSeedErrors)
|
65
69
|
.catch((e) => void logger.error(e));
|
package/dist/jobs.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,GAAG;IAKR,YAAY,IAAI,EAAE,OAAO,EAAE,IAAI;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,GAAG;QACR,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI;gBACH,MAAM,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,KAAK,CAAC,SAAS;oBACtB,OAAO,EAAE,iBAAiB,IAAI,CAAC,IAAI,EAAE;iBACrC,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;aAClB;oBAAS;gBACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aACtB;
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.js
CHANGED
@@ -7,6 +7,7 @@ export var Label;
|
|
7
7
|
(function (Label) {
|
8
8
|
Label["QBITTORRENT"] = "qbittorrent";
|
9
9
|
Label["RTORRENT"] = "rtorrent";
|
10
|
+
Label["TRANSMISSION"] = "transmission";
|
10
11
|
Label["DECIDE"] = "decide";
|
11
12
|
Label["PREFILTER"] = "prefilter";
|
12
13
|
Label["CONFIGDUMP"] = "configdump";
|
@@ -42,6 +43,7 @@ function redactMessage(message) {
|
|
42
43
|
const runtimeConfig = getRuntimeConfig();
|
43
44
|
// redact torznab api keys
|
44
45
|
message = message.replace(/apikey=[a-zA-Z0-9]+/g, `apikey=${redactionMsg}`);
|
46
|
+
message = message.replace(/\/notification\/crossSeed\/\w+/g, `/notification/crossSeed/${redactionMsg}`);
|
45
47
|
for (const [key, urlStr] of Object.entries(runtimeConfig)) {
|
46
48
|
if (key.endsWith("Url") && urlStr) {
|
47
49
|
message = redactUrlPassword(message, urlStr);
|
package/dist/logger.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAExD,MAAM,CAAN,IAAY,
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
@@ -66,10 +66,5 @@ async function down(knex) {
|
|
66
66
|
await knex.schema.dropTable("decision");
|
67
67
|
await knex.schema.dropTable("torrent");
|
68
68
|
}
|
69
|
-
export default {
|
70
|
-
name: "00-initialSchema",
|
71
|
-
up,
|
72
|
-
down,
|
73
|
-
config: { transaction: true },
|
74
|
-
};
|
69
|
+
export default { name: "00-initialSchema", up, down };
|
75
70
|
//# sourceMappingURL=00-initialSchema.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"00-initialSchema.js","sourceRoot":"","sources":["../../src/migrations/00-initialSchema.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"00-initialSchema.js","sourceRoot":"","sources":["../../src/migrations/00-initialSchema.ts"],"names":[],"mappings":"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"}
|
@@ -1,9 +1,4 @@
|
|
1
|
-
import { join } from "path";
|
2
|
-
import { appDir } from "../configuration.js";
|
3
1
|
async function up(knex) {
|
4
|
-
const connection = await knex.client.acquireConnection();
|
5
|
-
await connection.backup(join(appDir(), "cross-seed.pre-jobs.backup.db"));
|
6
|
-
await knex.client.releaseConnection(connection);
|
7
2
|
await knex.schema.createTable("job_log", (table) => {
|
8
3
|
table.increments("id").primary();
|
9
4
|
table.string("name").unique();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"01-jobs.js","sourceRoot":"","sources":["../../src/migrations/01-jobs.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"01-jobs.js","sourceRoot":"","sources":["../../src/migrations/01-jobs.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,EAAE,CAAC,IAAe;IAChC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QAClD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QAC9B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAe;IAClC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC;AAED,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC"}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import { getRuntimeConfig } from "../runtimeConfig.js";
|
2
|
+
function sanitizeUrl(url) {
|
3
|
+
url = new URL(url);
|
4
|
+
return url.origin + url.pathname;
|
5
|
+
}
|
6
|
+
function getApikey(url) {
|
7
|
+
return new URL(url).searchParams.get("apikey");
|
8
|
+
}
|
9
|
+
async function backfill(knex) {
|
10
|
+
const { torznab } = getRuntimeConfig();
|
11
|
+
await knex("indexer")
|
12
|
+
.insert(torznab.map((url) => ({
|
13
|
+
url: sanitizeUrl(url),
|
14
|
+
apikey: getApikey(url),
|
15
|
+
active: true,
|
16
|
+
})))
|
17
|
+
.onConflict("url")
|
18
|
+
.merge(["active", "apikey"]);
|
19
|
+
const timestampRows = await knex
|
20
|
+
.select("searchee.id as searchee_id", "indexer.id as indexer_id", "searchee.first_searched as first_searched", "searchee.last_searched as last_searched")
|
21
|
+
.from("searchee")
|
22
|
+
.crossJoin(knex.raw("indexer"));
|
23
|
+
await knex.batchInsert("timestamp", timestampRows, 100);
|
24
|
+
}
|
25
|
+
async function up(knex) {
|
26
|
+
await knex.schema.createTable("indexer", (table) => {
|
27
|
+
table.increments("id").primary();
|
28
|
+
table.string("url").unique();
|
29
|
+
table.string("apikey");
|
30
|
+
table.boolean("active");
|
31
|
+
});
|
32
|
+
await knex.schema.createTable("timestamp", (table) => {
|
33
|
+
table.integer("searchee_id").references("id").inTable("searchee");
|
34
|
+
table.integer("indexer_id").references("id").inTable("indexer");
|
35
|
+
table.integer("first_searched");
|
36
|
+
table.integer("last_searched");
|
37
|
+
table.primary(["searchee_id", "indexer_id"]);
|
38
|
+
});
|
39
|
+
await backfill(knex);
|
40
|
+
}
|
41
|
+
async function down(knex) {
|
42
|
+
await knex.schema.dropTable("timestamp");
|
43
|
+
await knex.schema.dropTable("indexer");
|
44
|
+
}
|
45
|
+
export default { name: "02-timestamps", up, down };
|
46
|
+
//# sourceMappingURL=02-timestamps.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"02-timestamps.js","sourceRoot":"","sources":["../../src/migrations/02-timestamps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,SAAS,WAAW,CAAC,GAAiB;IACrC,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC;AAClC,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC7B,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAe;IACtC,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEvC,MAAM,IAAI,CAAC,SAAS,CAAC;SACnB,MAAM,CACN,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrB,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC;QACrB,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC;QACtB,MAAM,EAAE,IAAI;KACZ,CAAC,CAAC,CACH;SACA,UAAU,CAAC,KAAK,CAAC;SACjB,KAAK,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE9B,MAAM,aAAa,GAAG,MAAM,IAAI;SAC9B,MAAM,CACN,4BAA4B,EAC5B,0BAA0B,EAC1B,2CAA2C,EAC3C,yCAAyC,CACzC;SACA,IAAI,CAAC,UAAU,CAAC;SAChB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,EAAE,CAAC,IAAe;IAChC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QAClD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;QACpD,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAChC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAe;IAClC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC;AAED,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
async function up(knex) {
|
2
|
+
await knex.schema.alterTable("indexer", (table) => {
|
3
|
+
table.string("status");
|
4
|
+
table.integer("retry_after");
|
5
|
+
table.boolean("search_cap").nullable();
|
6
|
+
table.boolean("tv_search_cap").nullable();
|
7
|
+
table.boolean("movie_search_cap").nullable();
|
8
|
+
});
|
9
|
+
}
|
10
|
+
function down() {
|
11
|
+
// no new tables created
|
12
|
+
}
|
13
|
+
export default { name: "03-rateLimits", up, down };
|
14
|
+
//# sourceMappingURL=03-rateLimits.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"03-rateLimits.js","sourceRoot":"","sources":["../../src/migrations/03-rateLimits.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,EAAE,CAAC,IAAe;IAChC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QACjD,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7B,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1C,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,IAAI;IACZ,wBAAwB;AACzB,CAAC;AAED,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC"}
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import initialSchema from "./00-initialSchema.js";
|
2
2
|
import jobs from "./01-jobs.js";
|
3
|
-
|
3
|
+
import timestamps from "./02-timestamps.js";
|
4
|
+
import rateLimits from "./03-rateLimits.js";
|
4
5
|
export const migrations = {
|
5
|
-
getMigrations: () => Promise.resolve([initialSchema, jobs]),
|
6
|
+
getMigrations: () => Promise.resolve([initialSchema, jobs, timestamps, rateLimits]),
|
6
7
|
getMigrationName: (migration) => migration.name,
|
7
8
|
getMigration: (migration) => migration,
|
8
9
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/migrations/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,IAAI,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/migrations/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAC5C,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAG;IACzB,aAAa,EAAE,GAAG,EAAE,CACnB,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC/D,gBAAgB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI;IAC/C,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS;CACtC,CAAC"}
|
package/dist/pipeline.js
CHANGED
@@ -1,24 +1,25 @@
|
|
1
1
|
import chalk from "chalk";
|
2
2
|
import fs from "fs";
|
3
3
|
import { zip } from "lodash-es";
|
4
|
+
import ms from "ms";
|
4
5
|
import { performAction, performActions } from "./action.js";
|
5
6
|
import { Decision, InjectionResult, SaveResult, } from "./constants.js";
|
6
7
|
import { db } from "./db.js";
|
7
8
|
import { assessCandidate } from "./decide.js";
|
9
|
+
import { IndexerStatus, updateIndexerStatus, updateSearchTimestamps, } from "./indexers.js";
|
8
10
|
import { Label, logger } from "./logger.js";
|
9
11
|
import { filterByContent, filterDupes, filterTimestamps } from "./preFilter.js";
|
10
12
|
import { sendResultsNotification } from "./pushNotifier.js";
|
11
13
|
import { EmptyNonceOptions, getRuntimeConfig, } from "./runtimeConfig.js";
|
12
14
|
import { createSearcheeFromMetafile, createSearcheeFromTorrentFile, } from "./searchee.js";
|
13
15
|
import { getInfoHashesToExclude, getTorrentByCriteria, getTorrentByFuzzyName, indexNewTorrents, loadTorrentDirLight, } from "./torrent.js";
|
14
|
-
import {
|
15
|
-
import { filterAsync,
|
16
|
+
import { queryRssFeeds, searchTorznab } from "./torznab.js";
|
17
|
+
import { filterAsync, stripExtension } from "./utils.js";
|
16
18
|
async function findOnOtherSites(searchee, hashesToExclude, nonceOptions = EmptyNonceOptions) {
|
17
19
|
const assessEach = async (result) => ({
|
18
20
|
assessment: await assessCandidate(result, searchee, hashesToExclude),
|
19
21
|
tracker: result.tracker,
|
20
22
|
});
|
21
|
-
const query = stripExtension(searchee.name);
|
22
23
|
// make sure searchee is in database
|
23
24
|
await db("searchee")
|
24
25
|
.insert({ name: searchee.name })
|
@@ -26,35 +27,39 @@ async function findOnOtherSites(searchee, hashesToExclude, nonceOptions = EmptyN
|
|
26
27
|
.ignore();
|
27
28
|
let response;
|
28
29
|
try {
|
29
|
-
response = await
|
30
|
+
response = await searchTorznab(searchee.name);
|
30
31
|
}
|
31
32
|
catch (e) {
|
32
|
-
logger.error(`error searching for ${
|
33
|
+
logger.error(`error searching for ${searchee.name}`);
|
34
|
+
logger.debug(e);
|
33
35
|
return 0;
|
34
36
|
}
|
35
|
-
const results = response
|
36
|
-
|
37
|
-
|
37
|
+
const results = response.flatMap((e) => e.candidates.map((candidate) => ({
|
38
|
+
...candidate,
|
39
|
+
indexerId: e.indexerId,
|
40
|
+
})));
|
41
|
+
const assessed = await Promise.all(results.map(assessEach));
|
42
|
+
const { rateLimited, notRateLimited } = assessed.reduce((acc, cur, idx) => {
|
43
|
+
const candidate = results[idx];
|
44
|
+
if (cur.assessment.decision === Decision.RATE_LIMITED) {
|
45
|
+
acc.rateLimited.add(candidate.indexerId);
|
46
|
+
acc.notRateLimited.delete(candidate.indexerId);
|
47
|
+
}
|
48
|
+
return acc;
|
49
|
+
}, {
|
50
|
+
rateLimited: new Set(),
|
51
|
+
notRateLimited: new Set(response.map((r) => r.indexerId)),
|
52
|
+
});
|
53
|
+
await updateSearchTimestamps(searchee.name, Array.from(notRateLimited));
|
54
|
+
await updateIndexerStatus(IndexerStatus.RATE_LIMITED, Date.now() + ms("1 hour"), Array.from(rateLimited));
|
55
|
+
const matches = assessed.filter((e) => e.assessment.decision === Decision.MATCH);
|
38
56
|
const actionResults = await performActions(searchee, matches, nonceOptions);
|
39
57
|
if (!actionResults.includes(InjectionResult.TORRENT_NOT_COMPLETE)) {
|
40
58
|
const zipped = zip(matches.map((m) => m.assessment), matches.map((m) => m.tracker), actionResults);
|
41
59
|
sendResultsNotification(searchee, zipped, Label.SEARCH);
|
42
|
-
await updateSearchTimestamps(searchee.name);
|
43
60
|
}
|
44
61
|
return matches.length;
|
45
62
|
}
|
46
|
-
async function updateSearchTimestamps(name) {
|
47
|
-
await db.transaction(async (trx) => {
|
48
|
-
const now = Date.now();
|
49
|
-
const entry = await trx("searchee").where({ name }).first();
|
50
|
-
await trx("searchee")
|
51
|
-
.where({ name })
|
52
|
-
.update({
|
53
|
-
last_searched: now,
|
54
|
-
first_searched: (entry === null || entry === void 0 ? void 0 : entry.first_searched) ? undefined : now,
|
55
|
-
});
|
56
|
-
});
|
57
|
-
}
|
58
63
|
async function findMatchesBatch(samples, hashesToExclude) {
|
59
64
|
const { delay } = getRuntimeConfig();
|
60
65
|
let totalFound = 0;
|
@@ -106,7 +111,9 @@ async function findSearchableTorrents() {
|
|
106
111
|
let parsedTorrents;
|
107
112
|
if (Array.isArray(torrents)) {
|
108
113
|
const searcheeResults = await Promise.all(torrents.map(createSearcheeFromTorrentFile));
|
109
|
-
parsedTorrents = searcheeResults
|
114
|
+
parsedTorrents = searcheeResults
|
115
|
+
.filter((t) => t.isOk())
|
116
|
+
.map((t) => t.unwrapOrThrow());
|
110
117
|
}
|
111
118
|
else {
|
112
119
|
parsedTorrents = await loadTorrentDirLight();
|
@@ -132,20 +139,23 @@ export async function main() {
|
|
132
139
|
});
|
133
140
|
}
|
134
141
|
export async function scanRssFeeds() {
|
135
|
-
|
142
|
+
var _a, _b;
|
143
|
+
const candidates = await queryRssFeeds();
|
144
|
+
const lastRun = (_b = (_a = (await db("job_log").select("last_run").where({ name: "rss" }).first())) === null || _a === void 0 ? void 0 : _a.last_run) !== null && _b !== void 0 ? _b : 0;
|
145
|
+
const candidatesSinceLastTime = candidates.filter((c) => c.pubDate > lastRun);
|
136
146
|
logger.verbose({
|
137
147
|
label: Label.RSS,
|
138
|
-
message: `Scan returned ${candidates.length}
|
148
|
+
message: `Scan returned ${candidatesSinceLastTime.length} new results, ignoring ${candidates.length - candidatesSinceLastTime.length} already seen`,
|
139
149
|
});
|
140
150
|
logger.verbose({
|
141
151
|
label: Label.RSS,
|
142
152
|
message: "Indexing new torrents...",
|
143
153
|
});
|
144
154
|
await indexNewTorrents();
|
145
|
-
for (const [i, candidate] of
|
155
|
+
for (const [i, candidate] of candidatesSinceLastTime.entries()) {
|
146
156
|
logger.verbose({
|
147
157
|
label: Label.RSS,
|
148
|
-
message: `Processing release ${i + 1}/${
|
158
|
+
message: `Processing release ${i + 1}/${candidatesSinceLastTime.length}`,
|
149
159
|
});
|
150
160
|
await checkNewCandidateMatch(candidate);
|
151
161
|
}
|
package/dist/pipeline.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAEN,QAAQ,EACR,eAAe,EACf,UAAU,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACN,iBAAiB,EACjB,gBAAgB,GAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,0BAA0B,EAC1B,6BAA6B,GAE7B,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/preFilter.js
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
import { uniqBy } from "lodash-es";
|
2
|
+
import ms from "ms";
|
2
3
|
import path from "path";
|
3
4
|
import { EP_REGEX, EXTENSIONS } from "./constants.js";
|
5
|
+
import { db } from "./db.js";
|
4
6
|
import { Label, logger } from "./logger.js";
|
5
7
|
import { getRuntimeConfig } from "./runtimeConfig.js";
|
6
|
-
import {
|
7
|
-
import { nMsAgo } from "./utils.js";
|
8
|
+
import { humanReadable, nMsAgo } from "./utils.js";
|
8
9
|
const extensionsWithDots = EXTENSIONS.map((e) => `.${e}`);
|
9
10
|
export function filterByContent(searchee) {
|
10
11
|
const { includeEpisodes, includeNonVideos } = getRuntimeConfig();
|
@@ -40,27 +41,35 @@ export function filterDupes(searchees) {
|
|
40
41
|
export async function filterTimestamps(searchee) {
|
41
42
|
const { excludeOlder, excludeRecentSearch } = getRuntimeConfig();
|
42
43
|
const timestampDataSql = await db("searchee")
|
43
|
-
.
|
44
|
+
.join("timestamp", "searchee.id", "timestamp.searchee_id")
|
45
|
+
.join("indexer", "timestamp.indexer_id", "indexer.id")
|
46
|
+
.where({
|
47
|
+
name: searchee.name,
|
48
|
+
"indexer.active": true,
|
49
|
+
"indexer.search_cap": true,
|
50
|
+
})
|
51
|
+
.max({ first_searched_all: "timestamp.first_searched" })
|
52
|
+
.min({ last_searched_all: "timestamp.last_searched" })
|
44
53
|
.first();
|
45
54
|
if (!timestampDataSql)
|
46
55
|
return true;
|
47
|
-
const {
|
56
|
+
const { first_searched_all, last_searched_all } = timestampDataSql;
|
48
57
|
function logReason(reason) {
|
49
58
|
logger.verbose({
|
50
59
|
label: Label.PREFILTER,
|
51
60
|
message: `Torrent ${searchee.name} was not selected for searching because ${reason}`,
|
52
61
|
});
|
53
62
|
}
|
54
|
-
if (excludeOlder &&
|
55
|
-
|
56
|
-
|
57
|
-
logReason(`its first search timestamp ${
|
63
|
+
if (typeof excludeOlder === "number" &&
|
64
|
+
first_searched_all &&
|
65
|
+
first_searched_all < nMsAgo(excludeOlder)) {
|
66
|
+
logReason(`its first search timestamp ${humanReadable(first_searched_all)} is older than ${ms(excludeOlder, { long: true })} ago`);
|
58
67
|
return false;
|
59
68
|
}
|
60
|
-
if (excludeRecentSearch &&
|
61
|
-
|
62
|
-
|
63
|
-
logReason(`its last search timestamp ${
|
69
|
+
if (typeof excludeRecentSearch === "number" &&
|
70
|
+
last_searched_all &&
|
71
|
+
last_searched_all > nMsAgo(excludeRecentSearch)) {
|
72
|
+
logReason(`its last search timestamp ${humanReadable(last_searched_all)} is newer than ${ms(excludeRecentSearch, { long: true })} ago`);
|
64
73
|
return false;
|
65
74
|
}
|
66
75
|
return true;
|
package/dist/preFilter.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"preFilter.js","sourceRoot":"","sources":["../src/preFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"preFilter.js","sourceRoot":"","sources":["../src/preFilter.ts"],"names":[],"mappings":"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"}
|
package/dist/pushNotifier.js
CHANGED
@@ -2,6 +2,7 @@ import fetch from "node-fetch";
|
|
2
2
|
import { InjectionResult, SaveResult } from "./constants.js";
|
3
3
|
import { logger } from "./logger.js";
|
4
4
|
import { getRuntimeConfig } from "./runtimeConfig.js";
|
5
|
+
import { formatAsList } from "./utils.js";
|
5
6
|
export let pushNotifier;
|
6
7
|
var Event;
|
7
8
|
(function (Event) {
|
@@ -23,13 +24,6 @@ export class PushNotifier {
|
|
23
24
|
}
|
24
25
|
}
|
25
26
|
}
|
26
|
-
function formatTrackersAsList(trackers) {
|
27
|
-
// @ts-expect-error Intl.ListFormat totally exists on node 12
|
28
|
-
return new Intl.ListFormat("en", {
|
29
|
-
style: "long",
|
30
|
-
type: "conjunction",
|
31
|
-
}).format(trackers);
|
32
|
-
}
|
33
27
|
export function sendResultsNotification(searchee, results, source) {
|
34
28
|
const name = searchee.name;
|
35
29
|
const notableSuccesses = results.filter(([, , actionResult]) => actionResult === InjectionResult.SUCCESS ||
|
@@ -39,7 +33,7 @@ export function sendResultsNotification(searchee, results, source) {
|
|
39
33
|
const numTrackers = notableSuccesses.length;
|
40
34
|
const infoHashes = notableSuccesses.map(([assessment]) => assessment.metafile.infoHash);
|
41
35
|
const trackers = notableSuccesses.map(([, tracker]) => tracker);
|
42
|
-
const trackersListStr =
|
36
|
+
const trackersListStr = formatAsList(trackers);
|
43
37
|
const performedAction = notableSuccesses[0][2] === InjectionResult.SUCCESS
|
44
38
|
? "Injected"
|
45
39
|
: "Saved";
|
@@ -59,7 +53,7 @@ export function sendResultsNotification(searchee, results, source) {
|
|
59
53
|
const numTrackers = failures.length;
|
60
54
|
const infoHashes = failures.map(([assessment]) => assessment.metafile.infoHash);
|
61
55
|
const trackers = failures.map(([, tracker]) => tracker);
|
62
|
-
const trackersListStr =
|
56
|
+
const trackersListStr = formatAsList(trackers);
|
63
57
|
pushNotifier.notify({
|
64
58
|
body: `Failed to inject ${name} from ${numTrackers} trackers: ${trackersListStr}`,
|
65
59
|
extra: {
|
package/dist/pushNotifier.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pushNotifier.js","sourceRoot":"","sources":["../src/pushNotifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAgB,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAS,MAAM,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
1
|
+
{"version":3,"file":"pushNotifier.js","sourceRoot":"","sources":["../src/pushNotifier.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"runtimeConfig.js","sourceRoot":"","sources":["../src/runtimeConfig.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"runtimeConfig.js","sourceRoot":"","sources":["../src/runtimeConfig.ts"],"names":[],"mappings":"AA8BA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;CACpB,CAAC;AAEF,IAAI,aAA4B,CAAC;AAEjC,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACxD,aAAa,GAAG,SAAS,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC/B,OAAO,aAAa,CAAC;AACtB,CAAC"}
|