@creeperhost/modlens-mcp 1.6.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 +938 -0
- package/dist/access-flags.d.ts +58 -0
- package/dist/access-flags.d.ts.map +1 -0
- package/dist/access-flags.js +79 -0
- package/dist/access-flags.js.map +1 -0
- package/dist/access-flags.test.d.ts +2 -0
- package/dist/access-flags.test.d.ts.map +1 -0
- package/dist/access-flags.test.js +189 -0
- package/dist/access-flags.test.js.map +1 -0
- package/dist/batch-ingest.d.ts +2 -0
- package/dist/batch-ingest.d.ts.map +1 -0
- package/dist/batch-ingest.js +54 -0
- package/dist/batch-ingest.js.map +1 -0
- package/dist/batch-resolve-mixins.d.ts +2 -0
- package/dist/batch-resolve-mixins.d.ts.map +1 -0
- package/dist/batch-resolve-mixins.js +36 -0
- package/dist/batch-resolve-mixins.js.map +1 -0
- package/dist/cache.d.ts +16 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +36 -0
- package/dist/cache.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1318 -0
- package/dist/cli.js.map +1 -0
- package/dist/curseforge.d.ts +53 -0
- package/dist/curseforge.d.ts.map +1 -0
- package/dist/curseforge.js +104 -0
- package/dist/curseforge.js.map +1 -0
- package/dist/db-backend.d.ts +17 -0
- package/dist/db-backend.d.ts.map +1 -0
- package/dist/db-backend.js +40 -0
- package/dist/db-backend.js.map +1 -0
- package/dist/db.d.ts +11 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +55 -0
- package/dist/db.js.map +1 -0
- package/dist/embed-queue.d.ts +12 -0
- package/dist/embed-queue.d.ts.map +1 -0
- package/dist/embed-queue.js +103 -0
- package/dist/embed-queue.js.map +1 -0
- package/dist/embeddings.d.ts +21 -0
- package/dist/embeddings.d.ts.map +1 -0
- package/dist/embeddings.js +55 -0
- package/dist/embeddings.js.map +1 -0
- package/dist/env-path.d.ts +19 -0
- package/dist/env-path.d.ts.map +1 -0
- package/dist/env-path.js +40 -0
- package/dist/env-path.js.map +1 -0
- package/dist/fetch-utils.d.ts +24 -0
- package/dist/fetch-utils.d.ts.map +1 -0
- package/dist/fetch-utils.js +73 -0
- package/dist/fetch-utils.js.map +1 -0
- package/dist/fetch-utils.test.d.ts +2 -0
- package/dist/fetch-utils.test.d.ts.map +1 -0
- package/dist/fetch-utils.test.js +133 -0
- package/dist/fetch-utils.test.js.map +1 -0
- package/dist/generated/sqlite/browser.d.ts +55 -0
- package/dist/generated/sqlite/browser.d.ts.map +1 -0
- package/dist/generated/sqlite/browser.js +18 -0
- package/dist/generated/sqlite/browser.js.map +1 -0
- package/dist/generated/sqlite/client.d.ts +72 -0
- package/dist/generated/sqlite/client.d.ts.map +1 -0
- package/dist/generated/sqlite/client.js +33 -0
- package/dist/generated/sqlite/client.js.map +1 -0
- package/dist/generated/sqlite/commonInputTypes.d.ts +387 -0
- package/dist/generated/sqlite/commonInputTypes.d.ts.map +1 -0
- package/dist/generated/sqlite/commonInputTypes.js +11 -0
- package/dist/generated/sqlite/commonInputTypes.js.map +1 -0
- package/dist/generated/sqlite/enums.d.ts +2 -0
- package/dist/generated/sqlite/enums.d.ts.map +1 -0
- package/dist/generated/sqlite/enums.js +11 -0
- package/dist/generated/sqlite/enums.js.map +1 -0
- package/dist/generated/sqlite/internal/class.d.ts +226 -0
- package/dist/generated/sqlite/internal/class.d.ts.map +1 -0
- package/dist/generated/sqlite/internal/class.js +84 -0
- package/dist/generated/sqlite/internal/class.js.map +1 -0
- package/dist/generated/sqlite/internal/prismaNamespace.d.ts +1344 -0
- package/dist/generated/sqlite/internal/prismaNamespace.d.ts.map +1 -0
- package/dist/generated/sqlite/internal/prismaNamespace.js +220 -0
- package/dist/generated/sqlite/internal/prismaNamespace.js.map +1 -0
- package/dist/generated/sqlite/internal/prismaNamespaceBrowser.d.ts +204 -0
- package/dist/generated/sqlite/internal/prismaNamespaceBrowser.d.ts.map +1 -0
- package/dist/generated/sqlite/internal/prismaNamespaceBrowser.js +191 -0
- package/dist/generated/sqlite/internal/prismaNamespaceBrowser.js.map +1 -0
- package/dist/generated/sqlite/models/DocEntry.d.ts +1223 -0
- package/dist/generated/sqlite/models/DocEntry.d.ts.map +1 -0
- package/dist/generated/sqlite/models/DocEntry.js +2 -0
- package/dist/generated/sqlite/models/DocEntry.js.map +1 -0
- package/dist/generated/sqlite/models/McSourceFile.d.ts +1289 -0
- package/dist/generated/sqlite/models/McSourceFile.d.ts.map +1 -0
- package/dist/generated/sqlite/models/McSourceFile.js +2 -0
- package/dist/generated/sqlite/models/McSourceFile.js.map +1 -0
- package/dist/generated/sqlite/models/McVersion.d.ts +1315 -0
- package/dist/generated/sqlite/models/McVersion.d.ts.map +1 -0
- package/dist/generated/sqlite/models/McVersion.js +2 -0
- package/dist/generated/sqlite/models/McVersion.js.map +1 -0
- package/dist/generated/sqlite/models/McVersionDiff.d.ts +1061 -0
- package/dist/generated/sqlite/models/McVersionDiff.d.ts.map +1 -0
- package/dist/generated/sqlite/models/McVersionDiff.js +2 -0
- package/dist/generated/sqlite/models/McVersionDiff.js.map +1 -0
- package/dist/generated/sqlite/models/Mod.d.ts +2396 -0
- package/dist/generated/sqlite/models/Mod.d.ts.map +1 -0
- package/dist/generated/sqlite/models/Mod.js +2 -0
- package/dist/generated/sqlite/models/Mod.js.map +1 -0
- package/dist/generated/sqlite/models/ModClass.d.ts +1254 -0
- package/dist/generated/sqlite/models/ModClass.d.ts.map +1 -0
- package/dist/generated/sqlite/models/ModClass.js +2 -0
- package/dist/generated/sqlite/models/ModClass.js.map +1 -0
- package/dist/generated/sqlite/models/ModSourceFile.d.ts +1283 -0
- package/dist/generated/sqlite/models/ModSourceFile.d.ts.map +1 -0
- package/dist/generated/sqlite/models/ModSourceFile.js +2 -0
- package/dist/generated/sqlite/models/ModSourceFile.js.map +1 -0
- package/dist/generated/sqlite/models/ModTag.d.ts +1278 -0
- package/dist/generated/sqlite/models/ModTag.d.ts.map +1 -0
- package/dist/generated/sqlite/models/ModTag.js +2 -0
- package/dist/generated/sqlite/models/ModTag.js.map +1 -0
- package/dist/generated/sqlite/models/ModVersionDiff.d.ts +1073 -0
- package/dist/generated/sqlite/models/ModVersionDiff.d.ts.map +1 -0
- package/dist/generated/sqlite/models/ModVersionDiff.js +2 -0
- package/dist/generated/sqlite/models/ModVersionDiff.js.map +1 -0
- package/dist/generated/sqlite/models/Primer.d.ts +1319 -0
- package/dist/generated/sqlite/models/Primer.d.ts.map +1 -0
- package/dist/generated/sqlite/models/Primer.js +2 -0
- package/dist/generated/sqlite/models/Primer.js.map +1 -0
- package/dist/generated/sqlite/models.d.ts +12 -0
- package/dist/generated/sqlite/models.d.ts.map +1 -0
- package/dist/generated/sqlite/models.js +2 -0
- package/dist/generated/sqlite/models.js.map +1 -0
- package/dist/jar.d.ts +7 -0
- package/dist/jar.d.ts.map +1 -0
- package/dist/jar.js +52 -0
- package/dist/jar.js.map +1 -0
- package/dist/java-tools.d.ts +46 -0
- package/dist/java-tools.d.ts.map +1 -0
- package/dist/java-tools.js +263 -0
- package/dist/java-tools.js.map +1 -0
- package/dist/launcher.d.ts +3 -0
- package/dist/launcher.d.ts.map +1 -0
- package/dist/launcher.js +105 -0
- package/dist/launcher.js.map +1 -0
- package/dist/mappings.d.ts +95 -0
- package/dist/mappings.d.ts.map +1 -0
- package/dist/mappings.js +1094 -0
- package/dist/mappings.js.map +1 -0
- package/dist/mappings.test.d.ts +2 -0
- package/dist/mappings.test.d.ts.map +1 -0
- package/dist/mappings.test.js +161 -0
- package/dist/mappings.test.js.map +1 -0
- package/dist/minecraft.d.ts +21 -0
- package/dist/minecraft.d.ts.map +1 -0
- package/dist/minecraft.js +70 -0
- package/dist/minecraft.js.map +1 -0
- package/dist/modpacks-ch.d.ts +224 -0
- package/dist/modpacks-ch.d.ts.map +1 -0
- package/dist/modpacks-ch.js +146 -0
- package/dist/modpacks-ch.js.map +1 -0
- package/dist/modrinth.d.ts +67 -0
- package/dist/modrinth.d.ts.map +1 -0
- package/dist/modrinth.js +88 -0
- package/dist/modrinth.js.map +1 -0
- package/dist/platform-adapter.d.ts +23 -0
- package/dist/platform-adapter.d.ts.map +1 -0
- package/dist/platform-adapter.js +2 -0
- package/dist/platform-adapter.js.map +1 -0
- package/dist/platform.d.ts +47 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +175 -0
- package/dist/platform.js.map +1 -0
- package/dist/processor.d.ts +51 -0
- package/dist/processor.d.ts.map +1 -0
- package/dist/processor.js +655 -0
- package/dist/processor.js.map +1 -0
- package/dist/processor.test.d.ts +2 -0
- package/dist/processor.test.d.ts.map +1 -0
- package/dist/processor.test.js +629 -0
- package/dist/processor.test.js.map +1 -0
- package/dist/repositories/embeddings-sqlite.d.ts +38 -0
- package/dist/repositories/embeddings-sqlite.d.ts.map +1 -0
- package/dist/repositories/embeddings-sqlite.js +208 -0
- package/dist/repositories/embeddings-sqlite.js.map +1 -0
- package/dist/repositories/embeddings.d.ts +40 -0
- package/dist/repositories/embeddings.d.ts.map +1 -0
- package/dist/repositories/embeddings.js +136 -0
- package/dist/repositories/embeddings.js.map +1 -0
- package/dist/repositories/index.d.ts +2 -0
- package/dist/repositories/index.d.ts.map +1 -0
- package/dist/repositories/index.js +15 -0
- package/dist/repositories/index.js.map +1 -0
- package/dist/repositories/mcVersion.d.ts +16 -0
- package/dist/repositories/mcVersion.d.ts.map +1 -0
- package/dist/repositories/mcVersion.js +52 -0
- package/dist/repositories/mcVersion.js.map +1 -0
- package/dist/repositories/mod.d.ts +241 -0
- package/dist/repositories/mod.d.ts.map +1 -0
- package/dist/repositories/mod.js +342 -0
- package/dist/repositories/mod.js.map +1 -0
- package/dist/repositories/packs.d.ts +44 -0
- package/dist/repositories/packs.d.ts.map +1 -0
- package/dist/repositories/packs.js +138 -0
- package/dist/repositories/packs.js.map +1 -0
- package/dist/search-adapter.d.ts +34 -0
- package/dist/search-adapter.d.ts.map +1 -0
- package/dist/search-adapter.js +195 -0
- package/dist/search-adapter.js.map +1 -0
- package/dist/search.d.ts +6 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +54 -0
- package/dist/search.js.map +1 -0
- package/dist/search.test.d.ts +2 -0
- package/dist/search.test.d.ts.map +1 -0
- package/dist/search.test.js +71 -0
- package/dist/search.test.js.map +1 -0
- package/dist/security.d.ts +98 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +446 -0
- package/dist/security.js.map +1 -0
- package/dist/security.test.d.ts +2 -0
- package/dist/security.test.d.ts.map +1 -0
- package/dist/security.test.js +687 -0
- package/dist/security.test.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +1465 -0
- package/dist/server.js.map +1 -0
- package/dist/setup.d.ts +2 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +1113 -0
- package/dist/setup.js.map +1 -0
- package/dist/tools/bytecode.d.ts +129 -0
- package/dist/tools/bytecode.d.ts.map +1 -0
- package/dist/tools/bytecode.js +679 -0
- package/dist/tools/bytecode.js.map +1 -0
- package/dist/tools/catalog.d.ts +54 -0
- package/dist/tools/catalog.d.ts.map +1 -0
- package/dist/tools/catalog.js +249 -0
- package/dist/tools/catalog.js.map +1 -0
- package/dist/tools/compat-check.d.ts +23 -0
- package/dist/tools/compat-check.d.ts.map +1 -0
- package/dist/tools/compat-check.js +250 -0
- package/dist/tools/compat-check.js.map +1 -0
- package/dist/tools/compat-check.test.d.ts +2 -0
- package/dist/tools/compat-check.test.d.ts.map +1 -0
- package/dist/tools/compat-check.test.js +179 -0
- package/dist/tools/compat-check.test.js.map +1 -0
- package/dist/tools/diagnostics.d.ts +10 -0
- package/dist/tools/diagnostics.d.ts.map +1 -0
- package/dist/tools/diagnostics.js +133 -0
- package/dist/tools/diagnostics.js.map +1 -0
- package/dist/tools/diagnostics.test.d.ts +2 -0
- package/dist/tools/diagnostics.test.d.ts.map +1 -0
- package/dist/tools/diagnostics.test.js +168 -0
- package/dist/tools/diagnostics.test.js.map +1 -0
- package/dist/tools/docs.d.ts +19 -0
- package/dist/tools/docs.d.ts.map +1 -0
- package/dist/tools/docs.js +230 -0
- package/dist/tools/docs.js.map +1 -0
- package/dist/tools/embed-registry.d.ts +125 -0
- package/dist/tools/embed-registry.d.ts.map +1 -0
- package/dist/tools/embed-registry.js +560 -0
- package/dist/tools/embed-registry.js.map +1 -0
- package/dist/tools/gradle.d.ts +16 -0
- package/dist/tools/gradle.d.ts.map +1 -0
- package/dist/tools/gradle.js +182 -0
- package/dist/tools/gradle.js.map +1 -0
- package/dist/tools/graphify.d.ts +144 -0
- package/dist/tools/graphify.d.ts.map +1 -0
- package/dist/tools/graphify.js +798 -0
- package/dist/tools/graphify.js.map +1 -0
- package/dist/tools/graphify.test.d.ts +2 -0
- package/dist/tools/graphify.test.d.ts.map +1 -0
- package/dist/tools/graphify.test.js +39 -0
- package/dist/tools/graphify.test.js.map +1 -0
- package/dist/tools/ingest.d.ts +85 -0
- package/dist/tools/ingest.d.ts.map +1 -0
- package/dist/tools/ingest.js +477 -0
- package/dist/tools/ingest.js.map +1 -0
- package/dist/tools/ingest.test.d.ts +2 -0
- package/dist/tools/ingest.test.d.ts.map +1 -0
- package/dist/tools/ingest.test.js +340 -0
- package/dist/tools/ingest.test.js.map +1 -0
- package/dist/tools/kubejs.d.ts +37 -0
- package/dist/tools/kubejs.d.ts.map +1 -0
- package/dist/tools/kubejs.js +245 -0
- package/dist/tools/kubejs.js.map +1 -0
- package/dist/tools/mappings.d.ts +17 -0
- package/dist/tools/mappings.d.ts.map +1 -0
- package/dist/tools/mappings.js +85 -0
- package/dist/tools/mappings.js.map +1 -0
- package/dist/tools/mc-fts.d.ts +101 -0
- package/dist/tools/mc-fts.d.ts.map +1 -0
- package/dist/tools/mc-fts.js +279 -0
- package/dist/tools/mc-fts.js.map +1 -0
- package/dist/tools/mcmeta.d.ts +41 -0
- package/dist/tools/mcmeta.d.ts.map +1 -0
- package/dist/tools/mcmeta.js +365 -0
- package/dist/tools/mcmeta.js.map +1 -0
- package/dist/tools/mixin-scan.d.ts +113 -0
- package/dist/tools/mixin-scan.d.ts.map +1 -0
- package/dist/tools/mixin-scan.js +433 -0
- package/dist/tools/mixin-scan.js.map +1 -0
- package/dist/tools/mod-data.d.ts +83 -0
- package/dist/tools/mod-data.d.ts.map +1 -0
- package/dist/tools/mod-data.js +630 -0
- package/dist/tools/mod-data.js.map +1 -0
- package/dist/tools/mod-tags.d.ts +59 -0
- package/dist/tools/mod-tags.d.ts.map +1 -0
- package/dist/tools/mod-tags.js +279 -0
- package/dist/tools/mod-tags.js.map +1 -0
- package/dist/tools/mod-tags.test.d.ts +2 -0
- package/dist/tools/mod-tags.test.d.ts.map +1 -0
- package/dist/tools/mod-tags.test.js +75 -0
- package/dist/tools/mod-tags.test.js.map +1 -0
- package/dist/tools/modpacks-ch.d.ts +257 -0
- package/dist/tools/modpacks-ch.d.ts.map +1 -0
- package/dist/tools/modpacks-ch.js +516 -0
- package/dist/tools/modpacks-ch.js.map +1 -0
- package/dist/tools/packtools.d.ts +113 -0
- package/dist/tools/packtools.d.ts.map +1 -0
- package/dist/tools/packtools.js +809 -0
- package/dist/tools/packtools.js.map +1 -0
- package/dist/tools/packtools.test.d.ts +2 -0
- package/dist/tools/packtools.test.d.ts.map +1 -0
- package/dist/tools/packtools.test.js +99 -0
- package/dist/tools/packtools.test.js.map +1 -0
- package/dist/tools/platform.d.ts +68 -0
- package/dist/tools/platform.d.ts.map +1 -0
- package/dist/tools/platform.js +452 -0
- package/dist/tools/platform.js.map +1 -0
- package/dist/tools/primers.d.ts +36 -0
- package/dist/tools/primers.d.ts.map +1 -0
- package/dist/tools/primers.js +451 -0
- package/dist/tools/primers.js.map +1 -0
- package/dist/tools/reports.d.ts +19 -0
- package/dist/tools/reports.d.ts.map +1 -0
- package/dist/tools/reports.js +573 -0
- package/dist/tools/reports.js.map +1 -0
- package/dist/tools/source.d.ts +10 -0
- package/dist/tools/source.d.ts.map +1 -0
- package/dist/tools/source.js +101 -0
- package/dist/tools/source.js.map +1 -0
- package/dist/tools/vanilla-data.d.ts +127 -0
- package/dist/tools/vanilla-data.d.ts.map +1 -0
- package/dist/tools/vanilla-data.js +824 -0
- package/dist/tools/vanilla-data.js.map +1 -0
- package/dist/tools/vanilla.d.ts +171 -0
- package/dist/tools/vanilla.d.ts.map +1 -0
- package/dist/tools/vanilla.js +612 -0
- package/dist/tools/vanilla.js.map +1 -0
- package/dist/tools/version-diff.d.ts +113 -0
- package/dist/tools/version-diff.d.ts.map +1 -0
- package/dist/tools/version-diff.js +519 -0
- package/dist/tools/version-diff.js.map +1 -0
- package/dist/tools/version-diff.test.d.ts +2 -0
- package/dist/tools/version-diff.test.d.ts.map +1 -0
- package/dist/tools/version-diff.test.js +102 -0
- package/dist/tools/version-diff.test.js.map +1 -0
- package/dist/validate.d.ts +19 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +54 -0
- package/dist/validate.js.map +1 -0
- package/dist/validate.test.d.ts +2 -0
- package/dist/validate.test.d.ts.map +1 -0
- package/dist/validate.test.js +73 -0
- package/dist/validate.test.js.map +1 -0
- package/package.json +62 -0
- package/prisma/backends/schema.sqlite.prisma +215 -0
- package/prisma/backends/template.db +0 -0
- package/prisma/schema.prisma +303 -0
- package/scripts/backup.mjs +151 -0
- package/scripts/build-template-db.mjs +38 -0
- package/scripts/check-atm10.mjs +27 -0
- package/scripts/check-sync.mjs +13 -0
- package/scripts/create-fts-index.mjs +50 -0
- package/scripts/enable-pgvector.mjs +90 -0
- package/scripts/enable-sqlite-vec.mjs +158 -0
- package/scripts/migrate-backend.mjs +188 -0
- package/scripts/migrate-embed-provenance.mjs +80 -0
- package/scripts/migrate-metadata-source.mjs +62 -0
- package/scripts/migrate-mod-source-files.mjs +67 -0
- package/scripts/post-update.mjs +77 -0
- package/scripts/verify-atm10.mjs +63 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import type { Mod, Prisma } from "@prisma/client";
|
|
2
|
+
/** Minimal projection used in class-analysis and scan operations. */
|
|
3
|
+
export type ModRef = {
|
|
4
|
+
id: number;
|
|
5
|
+
modId: string;
|
|
6
|
+
displayName: string;
|
|
7
|
+
version: string;
|
|
8
|
+
jarPath: string;
|
|
9
|
+
loader: string;
|
|
10
|
+
mcVersion: string;
|
|
11
|
+
};
|
|
12
|
+
/** Projection for mixin-scan operations. */
|
|
13
|
+
export type MixinModRow = {
|
|
14
|
+
id: number;
|
|
15
|
+
modId: string;
|
|
16
|
+
displayName: string;
|
|
17
|
+
version: string;
|
|
18
|
+
mcVersion: string;
|
|
19
|
+
loader: string;
|
|
20
|
+
mixinTargets: unknown;
|
|
21
|
+
mixinConfigs: string[];
|
|
22
|
+
};
|
|
23
|
+
/** Projection for version-conflict and dep-graph operations. */
|
|
24
|
+
export type DepModRow = {
|
|
25
|
+
id: number;
|
|
26
|
+
modId: string;
|
|
27
|
+
displayName: string;
|
|
28
|
+
version: string;
|
|
29
|
+
mcVersion: string;
|
|
30
|
+
loader: string;
|
|
31
|
+
dependencies: unknown;
|
|
32
|
+
metadata: unknown;
|
|
33
|
+
};
|
|
34
|
+
/** Projection for batch platform-sync operations. */
|
|
35
|
+
export type SyncModRow = {
|
|
36
|
+
id: number;
|
|
37
|
+
modId: string;
|
|
38
|
+
version: string;
|
|
39
|
+
sha512: string | null;
|
|
40
|
+
murmur2: string | null;
|
|
41
|
+
modrinthId: string | null;
|
|
42
|
+
curseforgeId: number | null;
|
|
43
|
+
sourcePath: string | null;
|
|
44
|
+
metadata: unknown;
|
|
45
|
+
};
|
|
46
|
+
export declare function findModById(id: number): Promise<Mod | null>;
|
|
47
|
+
export declare function findModByJarPath(jarPath: string): Promise<Mod | null>;
|
|
48
|
+
export declare function findModByModId(modId: string): Promise<Mod | null>;
|
|
49
|
+
export declare function findModByModIdLike(modId: string): Promise<Mod | null>;
|
|
50
|
+
/** Resolve mod by string or number. Numeric strings try findById first. */
|
|
51
|
+
export declare function resolveModRef(ref: string | number): Promise<Mod | null>;
|
|
52
|
+
/** Slim resolveModRef — returns only id, modId, displayName, version, jarPath. */
|
|
53
|
+
export declare function resolveModRefSlim(ref: string | number): Promise<ModRef | null>;
|
|
54
|
+
export declare function findModByDupKey(modId: string, version: string, mcVersion: string, loader: string): Promise<Mod | null>;
|
|
55
|
+
export declare function findModBySha512(sha512: string): Promise<Mod | null>;
|
|
56
|
+
export declare function listAllMods(): Promise<Mod[]>;
|
|
57
|
+
export declare function findModsByIds(ids: number[]): Promise<Mod[]>;
|
|
58
|
+
export declare function listMods(opts: {
|
|
59
|
+
loader?: string;
|
|
60
|
+
mcVersion?: string;
|
|
61
|
+
hasMixins?: boolean;
|
|
62
|
+
decompiled?: boolean;
|
|
63
|
+
limit?: number;
|
|
64
|
+
modIdFilter?: string;
|
|
65
|
+
}): Promise<Mod[]>;
|
|
66
|
+
export declare function listModsSlim(opts?: {
|
|
67
|
+
loader?: string;
|
|
68
|
+
mcVersion?: string;
|
|
69
|
+
hasMixins?: boolean;
|
|
70
|
+
decompiled?: boolean;
|
|
71
|
+
modIdFilter?: string;
|
|
72
|
+
}): Promise<ModRef[]>;
|
|
73
|
+
export declare function listModsForMixinScan(opts?: {
|
|
74
|
+
hasMixins?: boolean;
|
|
75
|
+
loader?: string;
|
|
76
|
+
mcVersion?: string;
|
|
77
|
+
}): Promise<MixinModRow[]>;
|
|
78
|
+
export declare function listModsForDepGraph(mcVersion?: string): Promise<DepModRow[]>;
|
|
79
|
+
export declare function listModsForConflictCheck(opts?: {
|
|
80
|
+
mcVersion?: string;
|
|
81
|
+
loader?: string;
|
|
82
|
+
}): Promise<DepModRow[]>;
|
|
83
|
+
export declare function listModsForSync(opts?: {
|
|
84
|
+
modIdFilter?: string;
|
|
85
|
+
limit?: number;
|
|
86
|
+
}): Promise<SyncModRow[]>;
|
|
87
|
+
export declare function countMods(where?: Prisma.ModWhereInput): Promise<number>;
|
|
88
|
+
export declare function groupModsByLoader(): Promise<(Prisma.PickEnumerable<Prisma.ModGroupByOutputType, "loader"[]> & {
|
|
89
|
+
_count: {
|
|
90
|
+
id: number;
|
|
91
|
+
};
|
|
92
|
+
})[]>;
|
|
93
|
+
export declare function searchModsFts(query: string, opts?: {
|
|
94
|
+
loader?: string;
|
|
95
|
+
mcVersion?: string;
|
|
96
|
+
limit?: number;
|
|
97
|
+
}): Promise<Mod[]>;
|
|
98
|
+
export declare function listModsForSourceUrls(query?: string): Promise<{
|
|
99
|
+
version: string;
|
|
100
|
+
modId: string;
|
|
101
|
+
metadata: Prisma.JsonValue;
|
|
102
|
+
displayName: string;
|
|
103
|
+
loader: string;
|
|
104
|
+
}[]>;
|
|
105
|
+
export declare function createMod(data: Prisma.ModCreateInput): Promise<Mod>;
|
|
106
|
+
export declare function updateMod(id: number, data: Prisma.ModUpdateInput): Promise<Mod>;
|
|
107
|
+
export declare function getModMetadata(id: number): Promise<{
|
|
108
|
+
metadata: unknown;
|
|
109
|
+
} | null>;
|
|
110
|
+
export declare function countAllModClasses(): Promise<number>;
|
|
111
|
+
export declare function countModClasses(modId: number): Promise<number>;
|
|
112
|
+
export declare function createModClasses(data: Prisma.ModClassCreateManyInput[]): Promise<void>;
|
|
113
|
+
export declare function findModClassesForCrossModSearch(where1: Prisma.ModClassWhereInput, where2: Prisma.ModClassWhereInput, limit: number): Promise<[({
|
|
114
|
+
mod: {
|
|
115
|
+
version: string;
|
|
116
|
+
modId: string;
|
|
117
|
+
displayName: string;
|
|
118
|
+
};
|
|
119
|
+
} & {
|
|
120
|
+
id: number;
|
|
121
|
+
modId: number;
|
|
122
|
+
className: string;
|
|
123
|
+
superClass: string | null;
|
|
124
|
+
interfaces: string[];
|
|
125
|
+
accessFlags: number;
|
|
126
|
+
})[], ({
|
|
127
|
+
mod: {
|
|
128
|
+
version: string;
|
|
129
|
+
modId: string;
|
|
130
|
+
displayName: string;
|
|
131
|
+
};
|
|
132
|
+
} & {
|
|
133
|
+
id: number;
|
|
134
|
+
modId: number;
|
|
135
|
+
className: string;
|
|
136
|
+
superClass: string | null;
|
|
137
|
+
interfaces: string[];
|
|
138
|
+
accessFlags: number;
|
|
139
|
+
})[]]>;
|
|
140
|
+
/**
|
|
141
|
+
* Bulk-lookup: given a list of class names (slash-form), return all ModClass
|
|
142
|
+
* rows with their parent mod info. Used by analyzeCrashLog.
|
|
143
|
+
*/
|
|
144
|
+
export declare function findModClassesByClassNames(classNames: string[]): Promise<Array<{
|
|
145
|
+
className: string;
|
|
146
|
+
modId: number;
|
|
147
|
+
mod: {
|
|
148
|
+
modId: string;
|
|
149
|
+
displayName: string;
|
|
150
|
+
};
|
|
151
|
+
}>>;
|
|
152
|
+
export declare function deleteModById(id: number): Promise<void>;
|
|
153
|
+
export declare function deleteModTags(modId: number): Promise<void>;
|
|
154
|
+
export declare function createModTags(data: Prisma.ModTagCreateManyInput[]): Promise<void>;
|
|
155
|
+
export declare function findModTagsByPath(tagPath: string, registry?: string): Promise<({
|
|
156
|
+
mod: {
|
|
157
|
+
version: string;
|
|
158
|
+
modId: string;
|
|
159
|
+
displayName: string;
|
|
160
|
+
mcVersion: string;
|
|
161
|
+
loader: string;
|
|
162
|
+
};
|
|
163
|
+
} & {
|
|
164
|
+
id: number;
|
|
165
|
+
modId: number;
|
|
166
|
+
entries: string[];
|
|
167
|
+
replace: boolean;
|
|
168
|
+
registry: string;
|
|
169
|
+
tagPath: string;
|
|
170
|
+
namespace: string;
|
|
171
|
+
})[]>;
|
|
172
|
+
export declare function findModTagsByMod(modId: number, registry?: string): Promise<{
|
|
173
|
+
id: number;
|
|
174
|
+
modId: number;
|
|
175
|
+
entries: string[];
|
|
176
|
+
replace: boolean;
|
|
177
|
+
registry: string;
|
|
178
|
+
tagPath: string;
|
|
179
|
+
namespace: string;
|
|
180
|
+
}[]>;
|
|
181
|
+
export declare function findAllModTagsByPath(tagPath: string, registry?: string): Promise<({
|
|
182
|
+
mod: {
|
|
183
|
+
modId: string;
|
|
184
|
+
displayName: string;
|
|
185
|
+
};
|
|
186
|
+
} & {
|
|
187
|
+
id: number;
|
|
188
|
+
modId: number;
|
|
189
|
+
entries: string[];
|
|
190
|
+
replace: boolean;
|
|
191
|
+
registry: string;
|
|
192
|
+
tagPath: string;
|
|
193
|
+
namespace: string;
|
|
194
|
+
})[]>;
|
|
195
|
+
export declare function findReplaceModTags(registry?: string): Promise<({
|
|
196
|
+
mod: {
|
|
197
|
+
version: string;
|
|
198
|
+
modId: string;
|
|
199
|
+
displayName: string;
|
|
200
|
+
};
|
|
201
|
+
} & {
|
|
202
|
+
id: number;
|
|
203
|
+
modId: number;
|
|
204
|
+
entries: string[];
|
|
205
|
+
replace: boolean;
|
|
206
|
+
registry: string;
|
|
207
|
+
tagPath: string;
|
|
208
|
+
namespace: string;
|
|
209
|
+
})[]>;
|
|
210
|
+
export declare function searchModTagsByPath(query: string, registry?: string, limit?: number): Promise<({
|
|
211
|
+
mod: {
|
|
212
|
+
version: string;
|
|
213
|
+
modId: string;
|
|
214
|
+
displayName: string;
|
|
215
|
+
};
|
|
216
|
+
} & {
|
|
217
|
+
id: number;
|
|
218
|
+
modId: number;
|
|
219
|
+
entries: string[];
|
|
220
|
+
replace: boolean;
|
|
221
|
+
registry: string;
|
|
222
|
+
tagPath: string;
|
|
223
|
+
namespace: string;
|
|
224
|
+
})[]>;
|
|
225
|
+
export declare function listModTagNamespaces(): Promise<{
|
|
226
|
+
registry: string;
|
|
227
|
+
namespace: string;
|
|
228
|
+
}[]>;
|
|
229
|
+
export declare function upsertModSourceFile(modId: number, className: string, content: string): Promise<number>;
|
|
230
|
+
export declare function countModSourceFiles(modId: number): Promise<number>;
|
|
231
|
+
export declare function findModSourceFilesUnembedded(modId: number, limit: number, offset: number): Promise<Array<{
|
|
232
|
+
id: number;
|
|
233
|
+
className: string;
|
|
234
|
+
content: string;
|
|
235
|
+
}>>;
|
|
236
|
+
export declare function countUnembeddedModSourceFiles(modId: number): Promise<number>;
|
|
237
|
+
export declare function searchModSourceFiles(modId: number, query: string, limit: number): Promise<Array<{
|
|
238
|
+
className: string;
|
|
239
|
+
snippet: string;
|
|
240
|
+
}>>;
|
|
241
|
+
//# sourceMappingURL=mod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/repositories/mod.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Repository layer for the Mod, ModClass, and ModTag tables.
|
|
3
|
+
* All Prisma queries against these tables live here.
|
|
4
|
+
* Tool files import from this module instead of calling db() directly.
|
|
5
|
+
*/
|
|
6
|
+
import { getDb } from "../db.js";
|
|
7
|
+
import { ftsSearchModSource } from "../search-adapter.js";
|
|
8
|
+
// ── Mod queries ───────────────────────────────────────────────────────────────
|
|
9
|
+
export async function findModById(id) {
|
|
10
|
+
const db = await getDb();
|
|
11
|
+
return db.mod.findUnique({ where: { id } });
|
|
12
|
+
}
|
|
13
|
+
export async function findModByJarPath(jarPath) {
|
|
14
|
+
const db = await getDb();
|
|
15
|
+
return db.mod.findUnique({ where: { jarPath } });
|
|
16
|
+
}
|
|
17
|
+
export async function findModByModId(modId) {
|
|
18
|
+
const db = await getDb();
|
|
19
|
+
return db.mod.findFirst({ where: { modId } });
|
|
20
|
+
}
|
|
21
|
+
export async function findModByModIdLike(modId) {
|
|
22
|
+
const db = await getDb();
|
|
23
|
+
return db.mod.findFirst({ where: { modId: { contains: modId } } });
|
|
24
|
+
}
|
|
25
|
+
/** Resolve mod by string or number. Numeric strings try findById first. */
|
|
26
|
+
export async function resolveModRef(ref) {
|
|
27
|
+
if (typeof ref === "number")
|
|
28
|
+
return findModById(ref);
|
|
29
|
+
const n = parseInt(ref, 10);
|
|
30
|
+
if (!isNaN(n)) {
|
|
31
|
+
const byId = await findModById(n);
|
|
32
|
+
if (byId)
|
|
33
|
+
return byId;
|
|
34
|
+
}
|
|
35
|
+
return findModByModId(ref);
|
|
36
|
+
}
|
|
37
|
+
/** Slim resolveModRef — returns only id, modId, displayName, version, jarPath. */
|
|
38
|
+
export async function resolveModRefSlim(ref) {
|
|
39
|
+
const sel = { id: true, modId: true, displayName: true, version: true, jarPath: true, loader: true, mcVersion: true };
|
|
40
|
+
const db = await getDb();
|
|
41
|
+
if (typeof ref === "number") {
|
|
42
|
+
return db.mod.findUnique({ where: { id: ref }, select: sel });
|
|
43
|
+
}
|
|
44
|
+
const n = parseInt(String(ref), 10);
|
|
45
|
+
if (!isNaN(n)) {
|
|
46
|
+
const byId = await db.mod.findUnique({ where: { id: n }, select: sel });
|
|
47
|
+
if (byId)
|
|
48
|
+
return byId;
|
|
49
|
+
}
|
|
50
|
+
return db.mod.findFirst({ where: { modId: { contains: String(ref) } }, select: sel });
|
|
51
|
+
}
|
|
52
|
+
export async function findModByDupKey(modId, version, mcVersion, loader) {
|
|
53
|
+
const db = await getDb();
|
|
54
|
+
return db.mod.findFirst({ where: { modId, version, mcVersion, loader } });
|
|
55
|
+
}
|
|
56
|
+
export async function findModBySha512(sha512) {
|
|
57
|
+
const db = await getDb();
|
|
58
|
+
return db.mod.findFirst({ where: { sha512 } });
|
|
59
|
+
}
|
|
60
|
+
export async function listAllMods() {
|
|
61
|
+
const db = await getDb();
|
|
62
|
+
return db.mod.findMany({ orderBy: { id: "asc" } });
|
|
63
|
+
}
|
|
64
|
+
export async function findModsByIds(ids) {
|
|
65
|
+
const db = await getDb();
|
|
66
|
+
return db.mod.findMany({ where: { id: { in: ids } } });
|
|
67
|
+
}
|
|
68
|
+
export async function listMods(opts) {
|
|
69
|
+
const db = await getDb();
|
|
70
|
+
return db.mod.findMany({
|
|
71
|
+
where: {
|
|
72
|
+
...(opts.loader ? { loader: opts.loader } : {}),
|
|
73
|
+
...(opts.mcVersion ? { mcVersion: { contains: opts.mcVersion } } : {}),
|
|
74
|
+
...(opts.hasMixins !== undefined ? { hasMixins: opts.hasMixins } : {}),
|
|
75
|
+
...(opts.decompiled !== undefined ? { decompiled: opts.decompiled } : {}),
|
|
76
|
+
...(opts.modIdFilter ? { modId: { contains: opts.modIdFilter, mode: "insensitive" } } : {}),
|
|
77
|
+
},
|
|
78
|
+
orderBy: { ingestedAt: "desc" },
|
|
79
|
+
take: opts.limit ?? 100,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
export async function listModsSlim(opts) {
|
|
83
|
+
const db = await getDb();
|
|
84
|
+
return db.mod.findMany({
|
|
85
|
+
where: {
|
|
86
|
+
...(opts?.loader ? { loader: opts.loader } : {}),
|
|
87
|
+
...(opts?.mcVersion ? { mcVersion: { contains: opts.mcVersion } } : {}),
|
|
88
|
+
...(opts?.hasMixins !== undefined ? { hasMixins: opts.hasMixins } : {}),
|
|
89
|
+
...(opts?.decompiled !== undefined ? { decompiled: opts.decompiled } : {}),
|
|
90
|
+
...(opts?.modIdFilter ? { modId: { contains: opts.modIdFilter } } : {}),
|
|
91
|
+
},
|
|
92
|
+
select: { id: true, modId: true, displayName: true, version: true, jarPath: true, loader: true, mcVersion: true },
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
export async function listModsForMixinScan(opts) {
|
|
96
|
+
const db = await getDb();
|
|
97
|
+
return db.mod.findMany({
|
|
98
|
+
where: {
|
|
99
|
+
...(opts?.hasMixins !== undefined ? { hasMixins: opts.hasMixins } : {}),
|
|
100
|
+
...(opts?.loader ? { loader: opts.loader } : {}),
|
|
101
|
+
...(opts?.mcVersion ? { mcVersion: { contains: opts.mcVersion } } : {}),
|
|
102
|
+
},
|
|
103
|
+
select: {
|
|
104
|
+
id: true, modId: true, displayName: true, version: true,
|
|
105
|
+
mcVersion: true, loader: true, mixinTargets: true, mixinConfigs: true,
|
|
106
|
+
},
|
|
107
|
+
orderBy: { modId: "asc" },
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
export async function listModsForDepGraph(mcVersion) {
|
|
111
|
+
const db = await getDb();
|
|
112
|
+
return db.mod.findMany({
|
|
113
|
+
where: mcVersion ? { mcVersion: { contains: mcVersion } } : undefined,
|
|
114
|
+
select: {
|
|
115
|
+
id: true, modId: true, displayName: true, version: true,
|
|
116
|
+
mcVersion: true, loader: true, dependencies: true, metadata: true,
|
|
117
|
+
},
|
|
118
|
+
orderBy: { modId: "asc" },
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
export async function listModsForConflictCheck(opts) {
|
|
122
|
+
const where = {};
|
|
123
|
+
if (opts?.mcVersion)
|
|
124
|
+
where["mcVersion"] = opts.mcVersion;
|
|
125
|
+
if (opts?.loader)
|
|
126
|
+
where["loader"] = opts.loader;
|
|
127
|
+
const db = await getDb();
|
|
128
|
+
return db.mod.findMany({
|
|
129
|
+
where,
|
|
130
|
+
select: {
|
|
131
|
+
id: true, modId: true, displayName: true, version: true,
|
|
132
|
+
mcVersion: true, loader: true, dependencies: true, metadata: true,
|
|
133
|
+
},
|
|
134
|
+
orderBy: [{ modId: "asc" }, { version: "asc" }],
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
export async function listModsForSync(opts) {
|
|
138
|
+
const db = await getDb();
|
|
139
|
+
return db.mod.findMany({
|
|
140
|
+
where: opts?.modIdFilter ? { modId: { contains: opts.modIdFilter } } : {},
|
|
141
|
+
select: {
|
|
142
|
+
id: true, modId: true, version: true,
|
|
143
|
+
sha512: true, murmur2: true,
|
|
144
|
+
modrinthId: true, curseforgeId: true,
|
|
145
|
+
sourcePath: true, metadata: true,
|
|
146
|
+
},
|
|
147
|
+
orderBy: { id: "asc" },
|
|
148
|
+
take: opts?.limit ?? 500,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
export async function countMods(where) {
|
|
152
|
+
const db = await getDb();
|
|
153
|
+
return db.mod.count({ where });
|
|
154
|
+
}
|
|
155
|
+
export async function groupModsByLoader() {
|
|
156
|
+
const db = await getDb();
|
|
157
|
+
return db.mod.groupBy({ by: ["loader"], _count: { id: true } });
|
|
158
|
+
}
|
|
159
|
+
export async function searchModsFts(query, opts) {
|
|
160
|
+
const q = query.toLowerCase();
|
|
161
|
+
const db = await getDb();
|
|
162
|
+
return db.mod.findMany({
|
|
163
|
+
where: {
|
|
164
|
+
AND: [
|
|
165
|
+
{
|
|
166
|
+
OR: [
|
|
167
|
+
{ modId: { contains: q, mode: "insensitive" } },
|
|
168
|
+
{ displayName: { contains: q, mode: "insensitive" } },
|
|
169
|
+
{ metadata: { path: ["description"], string_contains: q } },
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
...(opts?.loader ? [{ loader: opts.loader }] : []),
|
|
173
|
+
...(opts?.mcVersion ? [{ mcVersion: { contains: opts.mcVersion } }] : []),
|
|
174
|
+
],
|
|
175
|
+
},
|
|
176
|
+
orderBy: { ingestedAt: "desc" },
|
|
177
|
+
take: opts?.limit ?? 50,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
export async function listModsForSourceUrls(query) {
|
|
181
|
+
const db = await getDb();
|
|
182
|
+
return db.mod.findMany({
|
|
183
|
+
where: query
|
|
184
|
+
? { OR: [{ modId: { contains: query, mode: "insensitive" } }, { displayName: { contains: query, mode: "insensitive" } }] }
|
|
185
|
+
: undefined,
|
|
186
|
+
select: { modId: true, displayName: true, version: true, loader: true, metadata: true },
|
|
187
|
+
orderBy: { modId: "asc" },
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
export async function createMod(data) {
|
|
191
|
+
const db = await getDb();
|
|
192
|
+
return db.mod.create({ data });
|
|
193
|
+
}
|
|
194
|
+
export async function updateMod(id, data) {
|
|
195
|
+
const db = await getDb();
|
|
196
|
+
return db.mod.update({ where: { id }, data });
|
|
197
|
+
}
|
|
198
|
+
export async function getModMetadata(id) {
|
|
199
|
+
const db = await getDb();
|
|
200
|
+
return db.mod.findUnique({ where: { id }, select: { metadata: true } });
|
|
201
|
+
}
|
|
202
|
+
// ── ModClass queries ──────────────────────────────────────────────────────────
|
|
203
|
+
export async function countAllModClasses() {
|
|
204
|
+
const db = await getDb();
|
|
205
|
+
return db.modClass.count();
|
|
206
|
+
}
|
|
207
|
+
export async function countModClasses(modId) {
|
|
208
|
+
const db = await getDb();
|
|
209
|
+
return db.modClass.count({ where: { modId } });
|
|
210
|
+
}
|
|
211
|
+
export async function createModClasses(data) {
|
|
212
|
+
const db = await getDb();
|
|
213
|
+
await db.modClass.createMany({ data, skipDuplicates: true });
|
|
214
|
+
}
|
|
215
|
+
export async function findModClassesForCrossModSearch(where1, where2, limit) {
|
|
216
|
+
const db = await getDb();
|
|
217
|
+
const sel = { mod: { select: { modId: true, displayName: true, version: true } } };
|
|
218
|
+
return Promise.all([
|
|
219
|
+
db.modClass.findMany({ where: where1, include: sel, take: limit }),
|
|
220
|
+
db.modClass.findMany({ where: where2, include: sel, take: limit }),
|
|
221
|
+
]);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Bulk-lookup: given a list of class names (slash-form), return all ModClass
|
|
225
|
+
* rows with their parent mod info. Used by analyzeCrashLog.
|
|
226
|
+
*/
|
|
227
|
+
export async function findModClassesByClassNames(classNames) {
|
|
228
|
+
if (classNames.length === 0)
|
|
229
|
+
return [];
|
|
230
|
+
const db = await getDb();
|
|
231
|
+
return db.modClass.findMany({
|
|
232
|
+
where: { className: { in: classNames } },
|
|
233
|
+
select: {
|
|
234
|
+
className: true,
|
|
235
|
+
modId: true,
|
|
236
|
+
mod: { select: { modId: true, displayName: true } },
|
|
237
|
+
},
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
// ── ModTag queries ────────────────────────────────────────────────────────────
|
|
241
|
+
export async function deleteModById(id) {
|
|
242
|
+
// ModClass rows are cascade-deleted by the DB foreign key; ModTag rows are not, delete manually
|
|
243
|
+
const db = await getDb();
|
|
244
|
+
await db.modTag.deleteMany({ where: { modId: id } });
|
|
245
|
+
await db.modClass.deleteMany({ where: { modId: id } });
|
|
246
|
+
await db.mod.delete({ where: { id } });
|
|
247
|
+
}
|
|
248
|
+
export async function deleteModTags(modId) {
|
|
249
|
+
const db = await getDb();
|
|
250
|
+
await db.modTag.deleteMany({ where: { modId } });
|
|
251
|
+
}
|
|
252
|
+
export async function createModTags(data) {
|
|
253
|
+
const db = await getDb();
|
|
254
|
+
await db.modTag.createMany({ data });
|
|
255
|
+
}
|
|
256
|
+
export async function findModTagsByPath(tagPath, registry) {
|
|
257
|
+
const db = await getDb();
|
|
258
|
+
return db.modTag.findMany({
|
|
259
|
+
where: {
|
|
260
|
+
tagPath: tagPath.replace(/^#/, ""),
|
|
261
|
+
...(registry ? { registry } : {}),
|
|
262
|
+
},
|
|
263
|
+
include: { mod: { select: { modId: true, displayName: true, version: true, mcVersion: true, loader: true } } },
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
export async function findModTagsByMod(modId, registry) {
|
|
267
|
+
const db = await getDb();
|
|
268
|
+
return db.modTag.findMany({
|
|
269
|
+
where: { modId, ...(registry ? { registry } : {}) },
|
|
270
|
+
orderBy: [{ registry: "asc" }, { tagPath: "asc" }],
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
export async function findAllModTagsByPath(tagPath, registry) {
|
|
274
|
+
const db = await getDb();
|
|
275
|
+
return db.modTag.findMany({
|
|
276
|
+
where: {
|
|
277
|
+
tagPath: tagPath.replace(/^#/, ""),
|
|
278
|
+
...(registry ? { registry } : {}),
|
|
279
|
+
},
|
|
280
|
+
include: { mod: { select: { modId: true, displayName: true } } },
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
export async function findReplaceModTags(registry) {
|
|
284
|
+
const db = await getDb();
|
|
285
|
+
return db.modTag.findMany({
|
|
286
|
+
where: { replace: true, ...(registry ? { registry } : {}) },
|
|
287
|
+
include: { mod: { select: { modId: true, displayName: true, version: true } } },
|
|
288
|
+
orderBy: [{ tagPath: "asc" }, { registry: "asc" }],
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
export async function searchModTagsByPath(query, registry, limit = 50) {
|
|
292
|
+
const db = await getDb();
|
|
293
|
+
return db.modTag.findMany({
|
|
294
|
+
where: {
|
|
295
|
+
tagPath: { contains: query, mode: "insensitive" },
|
|
296
|
+
...(registry ? { registry } : {}),
|
|
297
|
+
},
|
|
298
|
+
include: { mod: { select: { modId: true, displayName: true, version: true } } },
|
|
299
|
+
distinct: ["tagPath", "registry"],
|
|
300
|
+
orderBy: [{ tagPath: "asc" }, { registry: "asc" }],
|
|
301
|
+
take: limit,
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
export async function listModTagNamespaces() {
|
|
305
|
+
const db = await getDb();
|
|
306
|
+
const rows = await db.modTag.findMany({
|
|
307
|
+
select: { registry: true, namespace: true },
|
|
308
|
+
distinct: ["registry", "namespace"],
|
|
309
|
+
orderBy: [{ registry: "asc" }, { namespace: "asc" }],
|
|
310
|
+
});
|
|
311
|
+
return rows;
|
|
312
|
+
}
|
|
313
|
+
// ── ModSourceFile queries ─────────────────────────────────────────────────────
|
|
314
|
+
export async function upsertModSourceFile(modId, className, content) {
|
|
315
|
+
const db = await getDb();
|
|
316
|
+
const row = await db.modSourceFile.upsert({
|
|
317
|
+
where: { modId_className: { modId, className } },
|
|
318
|
+
create: { modId, className, content },
|
|
319
|
+
update: { content },
|
|
320
|
+
select: { id: true },
|
|
321
|
+
});
|
|
322
|
+
return row.id;
|
|
323
|
+
}
|
|
324
|
+
export async function countModSourceFiles(modId) {
|
|
325
|
+
const db = await getDb();
|
|
326
|
+
return db.modSourceFile.count({ where: { modId } });
|
|
327
|
+
}
|
|
328
|
+
export async function findModSourceFilesUnembedded(modId, limit, offset) {
|
|
329
|
+
const db = await getDb();
|
|
330
|
+
return db.$queryRawUnsafe(`SELECT id, class_name AS "className", content FROM mod_source_files
|
|
331
|
+
WHERE mod_id = $1 AND embedding IS NULL
|
|
332
|
+
ORDER BY id LIMIT $2 OFFSET $3`, modId, limit, offset);
|
|
333
|
+
}
|
|
334
|
+
export async function countUnembeddedModSourceFiles(modId) {
|
|
335
|
+
const db = await getDb();
|
|
336
|
+
const rows = await db.$queryRawUnsafe(`SELECT COUNT(*)::text AS count FROM mod_source_files WHERE mod_id = $1 AND embedding IS NULL`, modId);
|
|
337
|
+
return parseInt(rows[0].count, 10);
|
|
338
|
+
}
|
|
339
|
+
export async function searchModSourceFiles(modId, query, limit) {
|
|
340
|
+
return ftsSearchModSource(modId, query, limit);
|
|
341
|
+
}
|
|
342
|
+
//# sourceMappingURL=mod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/repositories/mod.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { PackVersion, PackFile } from "@prisma/client";
|
|
2
|
+
export interface UpsertPackVersionInput {
|
|
3
|
+
namespace: string;
|
|
4
|
+
packId: number;
|
|
5
|
+
versionId: number;
|
|
6
|
+
packName: string;
|
|
7
|
+
versionName: string;
|
|
8
|
+
mcVersion?: string | null;
|
|
9
|
+
modloader?: string | null;
|
|
10
|
+
}
|
|
11
|
+
/** Upsert a pack version record and return its DB id. */
|
|
12
|
+
export declare function upsertPackVersion(input: UpsertPackVersionInput): Promise<number>;
|
|
13
|
+
export interface UpsertPackFileInput {
|
|
14
|
+
packVersionId: number;
|
|
15
|
+
manifestFileId?: number | null;
|
|
16
|
+
fileType: string;
|
|
17
|
+
fileName: string;
|
|
18
|
+
filePath?: string | null;
|
|
19
|
+
cfProject?: number | null;
|
|
20
|
+
cfFile?: number | null;
|
|
21
|
+
sha1?: string | null;
|
|
22
|
+
status: string;
|
|
23
|
+
modId?: number | null;
|
|
24
|
+
}
|
|
25
|
+
/** Upsert a single pack file record. Keyed on (packVersionId, manifestFileId). */
|
|
26
|
+
export declare function upsertPackFile(input: UpsertPackFileInput): Promise<void>;
|
|
27
|
+
/** List all known pack versions, optionally filtered by namespace and/or packId. */
|
|
28
|
+
export declare function listPackVersions(namespace?: string, packId?: number): Promise<PackVersion[]>;
|
|
29
|
+
/** List all files recorded for a specific pack version DB id. */
|
|
30
|
+
export declare function listPackFiles(packVersionId: number): Promise<PackFile[]>;
|
|
31
|
+
export type PackMembership = PackVersion & {
|
|
32
|
+
fileName: string;
|
|
33
|
+
fileType: string;
|
|
34
|
+
status: string;
|
|
35
|
+
cfProject?: number | null;
|
|
36
|
+
cfFile?: number | null;
|
|
37
|
+
};
|
|
38
|
+
/** Find every pack version that contains a specific Mod (by DB id). */
|
|
39
|
+
export declare function findPacksForMod(modId: number): Promise<PackMembership[]>;
|
|
40
|
+
/** Find every pack version that contains a file with a given CurseForge project id. */
|
|
41
|
+
export declare function findPacksForCfProject(cfProject: number): Promise<PackMembership[]>;
|
|
42
|
+
/** Resolve a PackVersion record by namespace + packId + versionId. */
|
|
43
|
+
export declare function findPackVersion(namespace: string, packId: number, versionId: number): Promise<PackVersion | null>;
|
|
44
|
+
//# sourceMappingURL=packs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packs.d.ts","sourceRoot":"","sources":["../../src/repositories/packs.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI5D,MAAM,WAAW,sBAAsB;IACnC,SAAS,EAAI,MAAM,CAAC;IACpB,MAAM,EAAO,MAAM,CAAC;IACpB,SAAS,EAAI,MAAM,CAAC;IACpB,QAAQ,EAAK,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAG,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAG,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,yDAAyD;AACzD,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BtF;AAED,MAAM,WAAW,mBAAmB;IAChC,aAAa,EAAI,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAS,MAAM,CAAC;IACxB,QAAQ,EAAS,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAQ,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAO,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAU,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAY,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAW,MAAM,CAAC;IACxB,KAAK,CAAC,EAAW,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,kFAAkF;AAClF,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC9E;AAID,oFAAoF;AACpF,wBAAsB,gBAAgB,CAClC,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,EAAE,CAAC,CASxB;AAED,iEAAiE;AACjE,wBAAsB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAM9E;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAI,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAK,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,uEAAuE;AACvE,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAc9E;AAED,uFAAuF;AACvF,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAcxF;AAED,sEAAsE;AACtE,wBAAsB,eAAe,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAO7B"}
|