@creeperhost/modlens-mcp 1.6.0 → 1.6.4
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 +950 -938
- package/dist/cli.js +267 -267
- package/dist/db-backend.d.ts +14 -1
- package/dist/db-backend.d.ts.map +1 -1
- package/dist/db-backend.js +13 -0
- package/dist/db-backend.js.map +1 -1
- package/dist/generated/sqlite/internal/class.d.ts.map +1 -1
- package/dist/generated/sqlite/internal/class.js +5 -4
- package/dist/generated/sqlite/internal/class.js.map +1 -1
- package/dist/launcher.js +4 -1
- package/dist/launcher.js.map +1 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +6 -2
- package/dist/platform.js.map +1 -1
- package/dist/repositories/embeddings-sqlite.js +21 -21
- package/dist/repositories/embeddings.js +28 -28
- package/dist/repositories/mod.d.ts +7 -0
- package/dist/repositories/mod.d.ts.map +1 -1
- package/dist/repositories/mod.js +56 -15
- package/dist/repositories/mod.js.map +1 -1
- package/dist/search-adapter.js +51 -51
- package/dist/security.d.ts +9 -0
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +19 -0
- package/dist/security.js.map +1 -1
- package/dist/server.js +1248 -1217
- package/dist/server.js.map +1 -1
- package/dist/tools/compat-check.js +9 -9
- package/dist/tools/docs.d.ts.map +1 -1
- package/dist/tools/docs.js +4 -3
- package/dist/tools/docs.js.map +1 -1
- package/dist/tools/embed-registry.js +9 -9
- package/dist/tools/graphify.js +14 -14
- package/dist/tools/ingest.d.ts.map +1 -1
- package/dist/tools/ingest.js +4 -3
- package/dist/tools/ingest.js.map +1 -1
- package/dist/tools/kubejs.d.ts.map +1 -1
- package/dist/tools/kubejs.js +2 -0
- package/dist/tools/kubejs.js.map +1 -1
- package/dist/tools/mappings.d.ts.map +1 -1
- package/dist/tools/mappings.js +2 -1
- package/dist/tools/mappings.js.map +1 -1
- package/dist/tools/mc-fts.js +2 -2
- package/dist/tools/mcmeta.js +2 -2
- package/dist/tools/mcmeta.js.map +1 -1
- package/dist/tools/mixin-scan.d.ts +1 -1
- package/dist/tools/mixin-scan.d.ts.map +1 -1
- package/dist/tools/mixin-scan.js +29 -35
- package/dist/tools/mixin-scan.js.map +1 -1
- package/dist/tools/mod-data.js +2 -2
- package/dist/tools/mod-data.js.map +1 -1
- package/dist/tools/modpacks-ch.js +2 -2
- package/dist/tools/modpacks-ch.js.map +1 -1
- package/dist/tools/packtools.js +4 -4
- package/dist/tools/packtools.js.map +1 -1
- package/dist/tools/primers.d.ts.map +1 -1
- package/dist/tools/primers.js +4 -3
- package/dist/tools/primers.js.map +1 -1
- package/dist/tools/reports.d.ts.map +1 -1
- package/dist/tools/reports.js +8 -4
- package/dist/tools/reports.js.map +1 -1
- package/dist/tools/vanilla-data.js +2 -2
- package/dist/tools/vanilla-data.js.map +1 -1
- package/dist/tools/version-diff.js +3 -3
- package/package.json +70 -62
- package/prisma/backends/schema.sqlite.prisma +215 -215
- package/prisma/schema.prisma +303 -303
- package/scripts/backup.mjs +151 -151
- package/scripts/check-atm10.mjs +27 -27
- package/scripts/check-sync.mjs +13 -13
- package/scripts/create-fts-index.mjs +50 -50
- package/scripts/enable-pgvector.mjs +90 -90
- package/scripts/enable-sqlite-vec.mjs +158 -158
- package/scripts/migrate-backend.mjs +188 -188
- package/scripts/migrate-embed-provenance.mjs +80 -80
- package/scripts/migrate-metadata-source.mjs +62 -62
- package/scripts/migrate-mod-source-files.mjs +67 -67
- package/scripts/post-update.mjs +77 -77
- package/scripts/verify-atm10.mjs +63 -63
- package/dist/access-flags.test.d.ts +0 -2
- package/dist/access-flags.test.d.ts.map +0 -1
- package/dist/access-flags.test.js +0 -189
- package/dist/access-flags.test.js.map +0 -1
- package/dist/fetch-utils.test.d.ts +0 -2
- package/dist/fetch-utils.test.d.ts.map +0 -1
- package/dist/fetch-utils.test.js +0 -133
- package/dist/fetch-utils.test.js.map +0 -1
- package/dist/mappings.test.d.ts +0 -2
- package/dist/mappings.test.d.ts.map +0 -1
- package/dist/mappings.test.js +0 -161
- package/dist/mappings.test.js.map +0 -1
- package/dist/processor.test.d.ts +0 -2
- package/dist/processor.test.d.ts.map +0 -1
- package/dist/processor.test.js +0 -629
- package/dist/processor.test.js.map +0 -1
- package/dist/search.test.d.ts +0 -2
- package/dist/search.test.d.ts.map +0 -1
- package/dist/search.test.js +0 -71
- package/dist/search.test.js.map +0 -1
- package/dist/security.test.d.ts +0 -2
- package/dist/security.test.d.ts.map +0 -1
- package/dist/security.test.js +0 -687
- package/dist/security.test.js.map +0 -1
- package/dist/tools/compat-check.test.d.ts +0 -2
- package/dist/tools/compat-check.test.d.ts.map +0 -1
- package/dist/tools/compat-check.test.js +0 -179
- package/dist/tools/compat-check.test.js.map +0 -1
- package/dist/tools/diagnostics.test.d.ts +0 -2
- package/dist/tools/diagnostics.test.d.ts.map +0 -1
- package/dist/tools/diagnostics.test.js +0 -168
- package/dist/tools/diagnostics.test.js.map +0 -1
- package/dist/tools/graphify.test.d.ts +0 -2
- package/dist/tools/graphify.test.d.ts.map +0 -1
- package/dist/tools/graphify.test.js +0 -39
- package/dist/tools/graphify.test.js.map +0 -1
- package/dist/tools/ingest.test.d.ts +0 -2
- package/dist/tools/ingest.test.d.ts.map +0 -1
- package/dist/tools/ingest.test.js +0 -340
- package/dist/tools/ingest.test.js.map +0 -1
- package/dist/tools/mod-tags.test.d.ts +0 -2
- package/dist/tools/mod-tags.test.d.ts.map +0 -1
- package/dist/tools/mod-tags.test.js +0 -75
- package/dist/tools/mod-tags.test.js.map +0 -1
- package/dist/tools/packtools.test.d.ts +0 -2
- package/dist/tools/packtools.test.d.ts.map +0 -1
- package/dist/tools/packtools.test.js +0 -99
- package/dist/tools/packtools.test.js.map +0 -1
- package/dist/tools/version-diff.test.d.ts +0 -2
- package/dist/tools/version-diff.test.d.ts.map +0 -1
- package/dist/tools/version-diff.test.js +0 -102
- package/dist/tools/version-diff.test.js.map +0 -1
- package/dist/validate.test.d.ts +0 -2
- package/dist/validate.test.d.ts.map +0 -1
- package/dist/validate.test.js +0 -73
- package/dist/validate.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../../../src/generated/sqlite/internal/class.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AACxD,OAAO,KAAK,KAAK,MAAM,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../../../src/generated/sqlite/internal/class.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,23 +18,23 @@ const config = {
|
|
|
18
18
|
"value": "prisma-client"
|
|
19
19
|
},
|
|
20
20
|
"output": {
|
|
21
|
-
"value": "
|
|
21
|
+
"value": "/home/runner/work/modlens-mcp/modlens-mcp/src/generated/sqlite",
|
|
22
22
|
"fromEnvVar": null
|
|
23
23
|
},
|
|
24
24
|
"config": {
|
|
25
|
-
"engineType": "client",
|
|
26
25
|
"moduleFormat": "esm",
|
|
26
|
+
"engineType": "client",
|
|
27
27
|
"runtime": "nodejs"
|
|
28
28
|
},
|
|
29
29
|
"binaryTargets": [
|
|
30
30
|
{
|
|
31
31
|
"fromEnvVar": null,
|
|
32
|
-
"value": "
|
|
32
|
+
"value": "debian-openssl-3.0.x",
|
|
33
33
|
"native": true
|
|
34
34
|
}
|
|
35
35
|
],
|
|
36
36
|
"previewFeatures": [],
|
|
37
|
-
"sourceFilePath": "
|
|
37
|
+
"sourceFilePath": "/home/runner/work/modlens-mcp/modlens-mcp/prisma/backends/schema.sqlite.prisma",
|
|
38
38
|
"isCustomOutput": true
|
|
39
39
|
},
|
|
40
40
|
"relativePath": "../../../prisma/backends",
|
|
@@ -45,6 +45,7 @@ const config = {
|
|
|
45
45
|
],
|
|
46
46
|
"activeProvider": "sqlite",
|
|
47
47
|
"postinstall": false,
|
|
48
|
+
"ciName": "GitHub Actions",
|
|
48
49
|
"inlineDatasources": {
|
|
49
50
|
"db": {
|
|
50
51
|
"url": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../../src/generated/sqlite/internal/class.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;;GAMG;AAEH,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AAIxD,MAAM,MAAM,GAAkC;IAC5C,WAAW,EAAE;QACX,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE;YACV,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,eAAe;SACzB;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../../src/generated/sqlite/internal/class.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;;GAMG;AAEH,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AAIxD,MAAM,MAAM,GAAkC;IAC5C,WAAW,EAAE;QACX,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE;YACV,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,eAAe;SACzB;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,gEAAgE;YACzE,YAAY,EAAE,IAAI;SACnB;QACD,QAAQ,EAAE;YACR,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,QAAQ;YACtB,SAAS,EAAE,QAAQ;SACpB;QACD,eAAe,EAAE;YACf;gBACE,YAAY,EAAE,IAAI;gBAClB,OAAO,EAAE,sBAAsB;gBAC/B,QAAQ,EAAE,IAAI;aACf;SACF;QACD,iBAAiB,EAAE,EAAE;QACrB,gBAAgB,EAAE,gFAAgF;QAClG,gBAAgB,EAAE,IAAI;KACvB;IACD,cAAc,EAAE,0BAA0B;IAC1C,eAAe,EAAE,QAAQ;IACzB,eAAe,EAAE,0CAA0C;IAC3D,iBAAiB,EAAE;QACjB,IAAI;KACL;IACD,gBAAgB,EAAE,QAAQ;IAC1B,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,gBAAgB;IAC1B,mBAAmB,EAAE;QACnB,IAAI,EAAE;YACJ,KAAK,EAAE;gBACL,YAAY,EAAE,cAAc;gBAC5B,OAAO,EAAE,IAAI;aACd;SACF;KACF;IACD,cAAc,EAAE,6uOAA6uO;IAC7vO,kBAAkB,EAAE,kEAAkE;IACtF,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE;QAClB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ;IACD,SAAS,EAAE,EAAE;CACd,CAAA;AAED,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,yxSAAyxS,CAAC,CAAA;AAC/zS,MAAM,CAAC,UAAU,GAAG,SAAS,CAAA;AAE7B,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACnD,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,YAAY,GAAG;IACpB,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,qDAAqD,CAAC;IAE3F,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,iEAAiE,CAAC,CAAA;QAChG,OAAO,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;CACF,CAAA;AA0OD,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,CAAuC,CAAA;AAC9E,CAAC"}
|
package/dist/launcher.js
CHANGED
|
@@ -41,7 +41,10 @@ for (const ep of [ENV_FILE, join(PKG_ROOT, ".env")]) {
|
|
|
41
41
|
}
|
|
42
42
|
const args = process.argv.slice(2);
|
|
43
43
|
const wantSetup = args.includes("--setup");
|
|
44
|
-
|
|
44
|
+
// Bootstrap embedded SQLite only when nothing else is configured. A
|
|
45
|
+
// pre-supplied DATABASE_URL (e.g. Postgres via a container env var) opts out, so
|
|
46
|
+
// `docker run -e DATABASE_URL=postgresql://…` works without a stray SQLite db.
|
|
47
|
+
const isFirstRun = IS_INSTALLED && !existsSync(ENV_FILE) && !process.env.DATABASE_URL;
|
|
45
48
|
// ── Explicit setup wizard (--setup) ─────────────────────────────────────────
|
|
46
49
|
// Opt-in interactive configuration (Postgres, semantic search, MCP client, …).
|
|
47
50
|
if (wantSetup) {
|
package/dist/launcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACtF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,2EAA2E;AAC3E,+EAA+E;AAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACvC,MAAM,YAAY,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACzG,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACpF,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAEnD,gFAAgF;AAChF,KAAK,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IAClD,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;QACjB,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACxC,IAAI,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,MAAM;IACV,CAAC;AACL,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC3C,MAAM,UAAU,GAAG,YAAY,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IACzB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAMD,wBAAsB,cAAc,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAahG;AAED,wBAAsB,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IACzB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAMD,wBAAsB,cAAc,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAahG;AAED,wBAAsB,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAuBrG;AAED,wBAAsB,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoBvG;AAED,wBAAsB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAqD/F;AAYD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIvE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUxF;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBxE"}
|
package/dist/platform.js
CHANGED
|
@@ -42,8 +42,10 @@ export async function listNeoForgeVersions(mcVersion, limit = 20) {
|
|
|
42
42
|
})
|
|
43
43
|
.reverse(); // newest first
|
|
44
44
|
}
|
|
45
|
+
// Exact MC version, or a version-segment prefix family (e.g. "1.21" → all
|
|
46
|
+
// "1.21.x"). The trailing "." prevents "1.21.1" from matching "1.21.11".
|
|
45
47
|
const filtered = mcVersion
|
|
46
|
-
? neoforgeCache.filter((v) => v.mcVersion === mcVersion || v.mcVersion.startsWith(mcVersion))
|
|
48
|
+
? neoforgeCache.filter((v) => v.mcVersion === mcVersion || v.mcVersion.startsWith(mcVersion + "."))
|
|
47
49
|
: neoforgeCache;
|
|
48
50
|
return filtered.slice(0, limit);
|
|
49
51
|
}
|
|
@@ -107,8 +109,10 @@ export async function listForgeVersions(mcVersion, limit = 20) {
|
|
|
107
109
|
}
|
|
108
110
|
forgeCache = allVersions.reverse(); // newest first
|
|
109
111
|
}
|
|
112
|
+
// Exact MC version, or a version-segment prefix family (e.g. "1.21" → all
|
|
113
|
+
// "1.21.x"). The trailing "." prevents "1.21.1" from matching "1.21.11".
|
|
110
114
|
const filtered = mcVersion
|
|
111
|
-
? forgeCache.filter((v) => v.mcVersion === mcVersion || v.mcVersion.startsWith(mcVersion))
|
|
115
|
+
? forgeCache.filter((v) => v.mcVersion === mcVersion || v.mcVersion.startsWith(mcVersion + "."))
|
|
112
116
|
: forgeCache;
|
|
113
117
|
return filtered.slice(0, limit);
|
|
114
118
|
}
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/E,MAAM,WAAW,GAAG,iEAAiE,CAAC;AACtF,MAAM,cAAc,GAAG,6DAA6D,CAAC;AACrF,MAAM,aAAa,GAAG,gFAAgF,CAAC;AACvG,MAAM,WAAW,GAAG,2DAA2D,CAAC;AAChF,MAAM,YAAY,GAAG,gFAAgF,CAAC;AA8BtG,IAAI,OAAO,GAAuB,IAAI,CAAC;AACvC,IAAI,aAAa,GAA6B,IAAI,CAAC;AACnD,IAAI,UAAU,GAA0B,IAAI,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAqC;IACtE,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAgC,CAAC;QAC5D,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;YAClD,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CACjI,CAAC;IACN,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC;IAC5C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC3E,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAkB,EAAE,KAAK,GAAG,EAAE;IACrE,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA6B,CAAC;QACzD,mFAAmF;QACnF,aAAa,GAAG,IAAI,CAAC,QAAQ;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACP,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,SAAS,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;QACrC,CAAC,CAAC;aACD,OAAO,EAAE,CAAC,CAAC,eAAe;IACnC,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS;QACtB,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,8 +39,8 @@ export async function upsertDocEmbedding(id, vec) {
|
|
|
39
39
|
export async function searchDocsByVector(vec, limit = 5) {
|
|
40
40
|
const db = await getVecDb();
|
|
41
41
|
try {
|
|
42
|
-
const rows = db.prepare(`SELECT rowid AS id, distance FROM vec_doc_entries
|
|
43
|
-
WHERE embedding MATCH ? AND k = ?
|
|
42
|
+
const rows = db.prepare(`SELECT rowid AS id, distance FROM vec_doc_entries
|
|
43
|
+
WHERE embedding MATCH ? AND k = ?
|
|
44
44
|
ORDER BY distance`).all(float32Blob(vec), limit);
|
|
45
45
|
return rows.map((r) => ({ id: r.id, similarity: 1 - r.distance }));
|
|
46
46
|
}
|
|
@@ -61,8 +61,8 @@ export async function upsertPrimerEmbedding(id, vec) {
|
|
|
61
61
|
export async function searchPrimersByVector(vec, limit = 5) {
|
|
62
62
|
const db = await getVecDb();
|
|
63
63
|
try {
|
|
64
|
-
const rows = db.prepare(`SELECT rowid AS id, distance FROM vec_primers
|
|
65
|
-
WHERE embedding MATCH ? AND k = ?
|
|
64
|
+
const rows = db.prepare(`SELECT rowid AS id, distance FROM vec_primers
|
|
65
|
+
WHERE embedding MATCH ? AND k = ?
|
|
66
66
|
ORDER BY distance`).all(float32Blob(vec), limit);
|
|
67
67
|
return rows.map((r) => ({ id: r.id, similarity: 1 - r.distance }));
|
|
68
68
|
}
|
|
@@ -84,13 +84,13 @@ export async function searchSourceByVector(vec, mcVersionId, limit = 10, provena
|
|
|
84
84
|
const db = await getVecDb();
|
|
85
85
|
try {
|
|
86
86
|
const sql = provenance
|
|
87
|
-
? `SELECT v.rowid AS id, s.class_name, s.embed_source, v.distance FROM vec_mc_source v
|
|
88
|
-
JOIN mc_source_files s ON s.id = v.rowid
|
|
89
|
-
WHERE v.embedding MATCH ? AND v.k = ? AND s.mc_version_id = ? AND s.embed_source = ?
|
|
87
|
+
? `SELECT v.rowid AS id, s.class_name, s.embed_source, v.distance FROM vec_mc_source v
|
|
88
|
+
JOIN mc_source_files s ON s.id = v.rowid
|
|
89
|
+
WHERE v.embedding MATCH ? AND v.k = ? AND s.mc_version_id = ? AND s.embed_source = ?
|
|
90
90
|
ORDER BY v.distance`
|
|
91
|
-
: `SELECT v.rowid AS id, s.class_name, s.embed_source, v.distance FROM vec_mc_source v
|
|
92
|
-
JOIN mc_source_files s ON s.id = v.rowid
|
|
93
|
-
WHERE v.embedding MATCH ? AND v.k = ? AND s.mc_version_id = ?
|
|
91
|
+
: `SELECT v.rowid AS id, s.class_name, s.embed_source, v.distance FROM vec_mc_source v
|
|
92
|
+
JOIN mc_source_files s ON s.id = v.rowid
|
|
93
|
+
WHERE v.embedding MATCH ? AND v.k = ? AND s.mc_version_id = ?
|
|
94
94
|
ORDER BY v.distance`;
|
|
95
95
|
const args = provenance
|
|
96
96
|
? [float32Blob(vec), limit, mcVersionId, provenance]
|
|
@@ -116,13 +116,13 @@ export async function searchModSourceByVector(vec, modId, limit = 10, provenance
|
|
|
116
116
|
const db = await getVecDb();
|
|
117
117
|
try {
|
|
118
118
|
const sql = provenance
|
|
119
|
-
? `SELECT v.rowid AS id, s.class_name, s.embed_source, v.distance FROM vec_mod_source v
|
|
120
|
-
JOIN mod_source_files s ON s.id = v.rowid
|
|
121
|
-
WHERE v.embedding MATCH ? AND v.k = ? AND s.mod_id = ? AND s.embed_source = ?
|
|
119
|
+
? `SELECT v.rowid AS id, s.class_name, s.embed_source, v.distance FROM vec_mod_source v
|
|
120
|
+
JOIN mod_source_files s ON s.id = v.rowid
|
|
121
|
+
WHERE v.embedding MATCH ? AND v.k = ? AND s.mod_id = ? AND s.embed_source = ?
|
|
122
122
|
ORDER BY v.distance`
|
|
123
|
-
: `SELECT v.rowid AS id, s.class_name, s.embed_source, v.distance FROM vec_mod_source v
|
|
124
|
-
JOIN mod_source_files s ON s.id = v.rowid
|
|
125
|
-
WHERE v.embedding MATCH ? AND v.k = ? AND s.mod_id = ?
|
|
123
|
+
: `SELECT v.rowid AS id, s.class_name, s.embed_source, v.distance FROM vec_mod_source v
|
|
124
|
+
JOIN mod_source_files s ON s.id = v.rowid
|
|
125
|
+
WHERE v.embedding MATCH ? AND v.k = ? AND s.mod_id = ?
|
|
126
126
|
ORDER BY v.distance`;
|
|
127
127
|
const args = provenance
|
|
128
128
|
? [float32Blob(vec), limit, modId, provenance]
|
|
@@ -142,7 +142,7 @@ export async function findSourceIdsByClassNames(classNames, mcVersionId, require
|
|
|
142
142
|
const placeholders = classNames.map(() => "?").join(",");
|
|
143
143
|
const embFilter = requireEmbedding ? " AND embedding IS NOT NULL" : "";
|
|
144
144
|
try {
|
|
145
|
-
const rows = db.prepare(`SELECT id, class_name FROM mc_source_files
|
|
145
|
+
const rows = db.prepare(`SELECT id, class_name FROM mc_source_files
|
|
146
146
|
WHERE mc_version_id = ? AND class_name IN (${placeholders})${embFilter}`).all(mcVersionId, ...classNames);
|
|
147
147
|
return new Map(rows.map((r) => [r.class_name, r.id]));
|
|
148
148
|
}
|
|
@@ -157,7 +157,7 @@ export async function findModSourceIdsByClassNames(classNames, modId, requireEmb
|
|
|
157
157
|
const placeholders = classNames.map(() => "?").join(",");
|
|
158
158
|
const embFilter = requireEmbedding ? " AND embedding IS NOT NULL" : "";
|
|
159
159
|
try {
|
|
160
|
-
const rows = db.prepare(`SELECT id, class_name FROM mod_source_files
|
|
160
|
+
const rows = db.prepare(`SELECT id, class_name FROM mod_source_files
|
|
161
161
|
WHERE mod_id = ? AND class_name IN (${placeholders})${embFilter}`).all(modId, ...classNames);
|
|
162
162
|
return new Map(rows.map((r) => [r.class_name, r.id]));
|
|
163
163
|
}
|
|
@@ -172,7 +172,7 @@ export async function getEmbedSources(table, ids) {
|
|
|
172
172
|
const db = await getVecDb();
|
|
173
173
|
const placeholders = ids.map(() => "?").join(",");
|
|
174
174
|
try {
|
|
175
|
-
const rows = db.prepare(`SELECT id, embed_source, embed_updated_at FROM ${table}
|
|
175
|
+
const rows = db.prepare(`SELECT id, embed_source, embed_updated_at FROM ${table}
|
|
176
176
|
WHERE id IN (${placeholders}) AND embedding IS NOT NULL`).all(...ids);
|
|
177
177
|
return new Map(rows.map((r) => [r.id, {
|
|
178
178
|
source: r.embed_source,
|
|
@@ -188,8 +188,8 @@ export async function countEmbedsBySource(table, scopeColumn, scopeId) {
|
|
|
188
188
|
const db = await getVecDb();
|
|
189
189
|
const result = { local: 0, registry: 0, community: 0, unknown: 0 };
|
|
190
190
|
try {
|
|
191
|
-
const rows = db.prepare(`SELECT embed_source, COUNT(*) AS count FROM ${table}
|
|
192
|
-
WHERE ${scopeColumn} = ? AND embedding IS NOT NULL
|
|
191
|
+
const rows = db.prepare(`SELECT embed_source, COUNT(*) AS count FROM ${table}
|
|
192
|
+
WHERE ${scopeColumn} = ? AND embedding IS NOT NULL
|
|
193
193
|
GROUP BY embed_source`).all(scopeId);
|
|
194
194
|
for (const r of rows) {
|
|
195
195
|
if (r.embed_source === "local")
|
|
@@ -17,10 +17,10 @@ export async function upsertDocEmbedding(id, vec) {
|
|
|
17
17
|
}
|
|
18
18
|
export async function searchDocsByVector(vec, limit = 5) {
|
|
19
19
|
const db = await getDb();
|
|
20
|
-
return db.$queryRawUnsafe(`SELECT id, (1 - (embedding <=> $1::vector))::float AS similarity
|
|
21
|
-
FROM doc_entries
|
|
22
|
-
WHERE embedding IS NOT NULL
|
|
23
|
-
ORDER BY embedding <=> $1::vector
|
|
20
|
+
return db.$queryRawUnsafe(`SELECT id, (1 - (embedding <=> $1::vector))::float AS similarity
|
|
21
|
+
FROM doc_entries
|
|
22
|
+
WHERE embedding IS NOT NULL
|
|
23
|
+
ORDER BY embedding <=> $1::vector
|
|
24
24
|
LIMIT $2`, vecLiteral(vec), limit);
|
|
25
25
|
}
|
|
26
26
|
// ── primers ───────────────────────────────────────────────────────────────────
|
|
@@ -30,10 +30,10 @@ export async function upsertPrimerEmbedding(id, vec) {
|
|
|
30
30
|
}
|
|
31
31
|
export async function searchPrimersByVector(vec, limit = 5) {
|
|
32
32
|
const db = await getDb();
|
|
33
|
-
return db.$queryRawUnsafe(`SELECT id, (1 - (embedding <=> $1::vector))::float AS similarity
|
|
34
|
-
FROM primers
|
|
35
|
-
WHERE embedding IS NOT NULL
|
|
36
|
-
ORDER BY embedding <=> $1::vector
|
|
33
|
+
return db.$queryRawUnsafe(`SELECT id, (1 - (embedding <=> $1::vector))::float AS similarity
|
|
34
|
+
FROM primers
|
|
35
|
+
WHERE embedding IS NOT NULL
|
|
36
|
+
ORDER BY embedding <=> $1::vector
|
|
37
37
|
LIMIT $2`, vecLiteral(vec), limit);
|
|
38
38
|
}
|
|
39
39
|
// ── mc_source_files ───────────────────────────────────────────────────────────
|
|
@@ -44,16 +44,16 @@ export async function upsertSourceEmbedding(id, vec, source = "local") {
|
|
|
44
44
|
export async function searchSourceByVector(vec, mcVersionId, limit = 10, provenance) {
|
|
45
45
|
const db = await getDb();
|
|
46
46
|
if (provenance) {
|
|
47
|
-
return db.$queryRawUnsafe(`SELECT id, class_name, embed_source, (1 - (embedding <=> $1::vector))::float AS similarity
|
|
48
|
-
FROM mc_source_files
|
|
49
|
-
WHERE mc_version_id = $3 AND embedding IS NOT NULL AND embed_source = $4
|
|
50
|
-
ORDER BY embedding <=> $1::vector
|
|
47
|
+
return db.$queryRawUnsafe(`SELECT id, class_name, embed_source, (1 - (embedding <=> $1::vector))::float AS similarity
|
|
48
|
+
FROM mc_source_files
|
|
49
|
+
WHERE mc_version_id = $3 AND embedding IS NOT NULL AND embed_source = $4
|
|
50
|
+
ORDER BY embedding <=> $1::vector
|
|
51
51
|
LIMIT $2`, vecLiteral(vec), limit, mcVersionId, provenance);
|
|
52
52
|
}
|
|
53
|
-
return db.$queryRawUnsafe(`SELECT id, class_name, embed_source, (1 - (embedding <=> $1::vector))::float AS similarity
|
|
54
|
-
FROM mc_source_files
|
|
55
|
-
WHERE mc_version_id = $3 AND embedding IS NOT NULL
|
|
56
|
-
ORDER BY embedding <=> $1::vector
|
|
53
|
+
return db.$queryRawUnsafe(`SELECT id, class_name, embed_source, (1 - (embedding <=> $1::vector))::float AS similarity
|
|
54
|
+
FROM mc_source_files
|
|
55
|
+
WHERE mc_version_id = $3 AND embedding IS NOT NULL
|
|
56
|
+
ORDER BY embedding <=> $1::vector
|
|
57
57
|
LIMIT $2`, vecLiteral(vec), limit, mcVersionId);
|
|
58
58
|
}
|
|
59
59
|
/** Count rows with no embedding yet (for backfill progress). */
|
|
@@ -74,16 +74,16 @@ export async function upsertModSourceEmbedding(id, vec, source = "local") {
|
|
|
74
74
|
export async function searchModSourceByVector(vec, modId, limit = 10, provenance) {
|
|
75
75
|
const db = await getDb();
|
|
76
76
|
if (provenance) {
|
|
77
|
-
return db.$queryRawUnsafe(`SELECT id, class_name, embed_source, (1 - (embedding <=> $1::vector))::float AS similarity
|
|
78
|
-
FROM mod_source_files
|
|
79
|
-
WHERE mod_id = $3 AND embedding IS NOT NULL AND embed_source = $4
|
|
80
|
-
ORDER BY embedding <=> $1::vector
|
|
77
|
+
return db.$queryRawUnsafe(`SELECT id, class_name, embed_source, (1 - (embedding <=> $1::vector))::float AS similarity
|
|
78
|
+
FROM mod_source_files
|
|
79
|
+
WHERE mod_id = $3 AND embedding IS NOT NULL AND embed_source = $4
|
|
80
|
+
ORDER BY embedding <=> $1::vector
|
|
81
81
|
LIMIT $2`, vecLiteral(vec), limit, modId, provenance);
|
|
82
82
|
}
|
|
83
|
-
return db.$queryRawUnsafe(`SELECT id, class_name, embed_source, (1 - (embedding <=> $1::vector))::float AS similarity
|
|
84
|
-
FROM mod_source_files
|
|
85
|
-
WHERE mod_id = $3 AND embedding IS NOT NULL
|
|
86
|
-
ORDER BY embedding <=> $1::vector
|
|
83
|
+
return db.$queryRawUnsafe(`SELECT id, class_name, embed_source, (1 - (embedding <=> $1::vector))::float AS similarity
|
|
84
|
+
FROM mod_source_files
|
|
85
|
+
WHERE mod_id = $3 AND embedding IS NOT NULL
|
|
86
|
+
ORDER BY embedding <=> $1::vector
|
|
87
87
|
LIMIT $2`, vecLiteral(vec), limit, modId);
|
|
88
88
|
}
|
|
89
89
|
// ── Class-name → ID lookups (for diff semantic enrichment) ───────────────────
|
|
@@ -92,7 +92,7 @@ export async function findSourceIdsByClassNames(classNames, mcVersionId, require
|
|
|
92
92
|
return new Map();
|
|
93
93
|
const db = await getDb();
|
|
94
94
|
const embFilter = requireEmbedding ? " AND embedding IS NOT NULL" : "";
|
|
95
|
-
const rows = await db.$queryRawUnsafe(`SELECT id, class_name FROM mc_source_files
|
|
95
|
+
const rows = await db.$queryRawUnsafe(`SELECT id, class_name FROM mc_source_files
|
|
96
96
|
WHERE mc_version_id = $1 AND class_name = ANY($2::text[])${embFilter}`, mcVersionId, classNames);
|
|
97
97
|
return new Map(rows.map((r) => [r.class_name, r.id]));
|
|
98
98
|
}
|
|
@@ -101,7 +101,7 @@ export async function findModSourceIdsByClassNames(classNames, modId, requireEmb
|
|
|
101
101
|
return new Map();
|
|
102
102
|
const db = await getDb();
|
|
103
103
|
const embFilter = requireEmbedding ? " AND embedding IS NOT NULL" : "";
|
|
104
|
-
const rows = await db.$queryRawUnsafe(`SELECT id, class_name FROM mod_source_files
|
|
104
|
+
const rows = await db.$queryRawUnsafe(`SELECT id, class_name FROM mod_source_files
|
|
105
105
|
WHERE mod_id = $1 AND class_name = ANY($2::text[])${embFilter}`, modId, classNames);
|
|
106
106
|
return new Map(rows.map((r) => [r.class_name, r.id]));
|
|
107
107
|
}
|
|
@@ -116,8 +116,8 @@ export async function getEmbedSources(table, ids) {
|
|
|
116
116
|
/** Count embeddings by source provenance. */
|
|
117
117
|
export async function countEmbedsBySource(table, scopeColumn, scopeId) {
|
|
118
118
|
const db = await getDb();
|
|
119
|
-
const rows = await db.$queryRawUnsafe(`SELECT embed_source, COUNT(*)::text AS count FROM ${table}
|
|
120
|
-
WHERE ${scopeColumn} = $1 AND embedding IS NOT NULL
|
|
119
|
+
const rows = await db.$queryRawUnsafe(`SELECT embed_source, COUNT(*)::text AS count FROM ${table}
|
|
120
|
+
WHERE ${scopeColumn} = $1 AND embedding IS NOT NULL
|
|
121
121
|
GROUP BY embed_source`, scopeId);
|
|
122
122
|
const result = { local: 0, registry: 0, community: 0, unknown: 0 };
|
|
123
123
|
for (const r of rows) {
|
|
@@ -43,6 +43,13 @@ export type SyncModRow = {
|
|
|
43
43
|
sourcePath: string | null;
|
|
44
44
|
metadata: unknown;
|
|
45
45
|
};
|
|
46
|
+
/**
|
|
47
|
+
* Prisma `where` fragment matching an exact MC version, or a version-segment
|
|
48
|
+
* family prefix ("1.21" → every "1.21.x"). The trailing "." is what stops
|
|
49
|
+
* "1.21.1" from matching "1.21.11" — different patch releases are not
|
|
50
|
+
* cross-compatible, so a query for one must never pull in the other.
|
|
51
|
+
*/
|
|
52
|
+
export declare function mcVersionWhere(mcVersion: string): Prisma.ModWhereInput;
|
|
46
53
|
export declare function findModById(id: number): Promise<Mod | null>;
|
|
47
54
|
export declare function findModByJarPath(jarPath: string): Promise<Mod | null>;
|
|
48
55
|
export declare function findModByModId(modId: string): Promise<Mod | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/repositories/mod.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/repositories/mod.ts"],"names":[],"mappings":"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"}
|
package/dist/repositories/mod.js
CHANGED
|
@@ -5,6 +5,16 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { getDb } from "../db.js";
|
|
7
7
|
import { ftsSearchModSource } from "../search-adapter.js";
|
|
8
|
+
import { caseInsensitive, detectBackend } from "../db-backend.js";
|
|
9
|
+
/**
|
|
10
|
+
* Prisma `where` fragment matching an exact MC version, or a version-segment
|
|
11
|
+
* family prefix ("1.21" → every "1.21.x"). The trailing "." is what stops
|
|
12
|
+
* "1.21.1" from matching "1.21.11" — different patch releases are not
|
|
13
|
+
* cross-compatible, so a query for one must never pull in the other.
|
|
14
|
+
*/
|
|
15
|
+
export function mcVersionWhere(mcVersion) {
|
|
16
|
+
return { OR: [{ mcVersion }, { mcVersion: { startsWith: mcVersion + "." } }] };
|
|
17
|
+
}
|
|
8
18
|
// ── Mod queries ───────────────────────────────────────────────────────────────
|
|
9
19
|
export async function findModById(id) {
|
|
10
20
|
const db = await getDb();
|
|
@@ -70,10 +80,10 @@ export async function listMods(opts) {
|
|
|
70
80
|
return db.mod.findMany({
|
|
71
81
|
where: {
|
|
72
82
|
...(opts.loader ? { loader: opts.loader } : {}),
|
|
73
|
-
...(opts.mcVersion ?
|
|
83
|
+
...(opts.mcVersion ? mcVersionWhere(opts.mcVersion) : {}),
|
|
74
84
|
...(opts.hasMixins !== undefined ? { hasMixins: opts.hasMixins } : {}),
|
|
75
85
|
...(opts.decompiled !== undefined ? { decompiled: opts.decompiled } : {}),
|
|
76
|
-
...(opts.modIdFilter ? { modId: { contains: opts.modIdFilter,
|
|
86
|
+
...(opts.modIdFilter ? { modId: { contains: opts.modIdFilter, ...caseInsensitive() } } : {}),
|
|
77
87
|
},
|
|
78
88
|
orderBy: { ingestedAt: "desc" },
|
|
79
89
|
take: opts.limit ?? 100,
|
|
@@ -84,7 +94,7 @@ export async function listModsSlim(opts) {
|
|
|
84
94
|
return db.mod.findMany({
|
|
85
95
|
where: {
|
|
86
96
|
...(opts?.loader ? { loader: opts.loader } : {}),
|
|
87
|
-
...(opts?.mcVersion ?
|
|
97
|
+
...(opts?.mcVersion ? mcVersionWhere(opts.mcVersion) : {}),
|
|
88
98
|
...(opts?.hasMixins !== undefined ? { hasMixins: opts.hasMixins } : {}),
|
|
89
99
|
...(opts?.decompiled !== undefined ? { decompiled: opts.decompiled } : {}),
|
|
90
100
|
...(opts?.modIdFilter ? { modId: { contains: opts.modIdFilter } } : {}),
|
|
@@ -98,7 +108,7 @@ export async function listModsForMixinScan(opts) {
|
|
|
98
108
|
where: {
|
|
99
109
|
...(opts?.hasMixins !== undefined ? { hasMixins: opts.hasMixins } : {}),
|
|
100
110
|
...(opts?.loader ? { loader: opts.loader } : {}),
|
|
101
|
-
...(opts?.mcVersion ?
|
|
111
|
+
...(opts?.mcVersion ? mcVersionWhere(opts.mcVersion) : {}),
|
|
102
112
|
},
|
|
103
113
|
select: {
|
|
104
114
|
id: true, modId: true, displayName: true, version: true,
|
|
@@ -110,7 +120,7 @@ export async function listModsForMixinScan(opts) {
|
|
|
110
120
|
export async function listModsForDepGraph(mcVersion) {
|
|
111
121
|
const db = await getDb();
|
|
112
122
|
return db.mod.findMany({
|
|
113
|
-
where: mcVersion ?
|
|
123
|
+
where: mcVersion ? mcVersionWhere(mcVersion) : undefined,
|
|
114
124
|
select: {
|
|
115
125
|
id: true, modId: true, displayName: true, version: true,
|
|
116
126
|
mcVersion: true, loader: true, dependencies: true, metadata: true,
|
|
@@ -158,19 +168,24 @@ export async function groupModsByLoader() {
|
|
|
158
168
|
}
|
|
159
169
|
export async function searchModsFts(query, opts) {
|
|
160
170
|
const q = query.toLowerCase();
|
|
171
|
+
// metadata is a JSON column on Postgres/PGlite (filter the `description`
|
|
172
|
+
// path) but a TEXT column on SQLite (filter the raw JSON via substring).
|
|
173
|
+
const metadataMatch = detectBackend() === "sqlite"
|
|
174
|
+
? { metadata: { contains: q } }
|
|
175
|
+
: { metadata: { path: ["description"], string_contains: q } };
|
|
161
176
|
const db = await getDb();
|
|
162
177
|
return db.mod.findMany({
|
|
163
178
|
where: {
|
|
164
179
|
AND: [
|
|
165
180
|
{
|
|
166
181
|
OR: [
|
|
167
|
-
{ modId: { contains: q,
|
|
168
|
-
{ displayName: { contains: q,
|
|
169
|
-
|
|
182
|
+
{ modId: { contains: q, ...caseInsensitive() } },
|
|
183
|
+
{ displayName: { contains: q, ...caseInsensitive() } },
|
|
184
|
+
metadataMatch,
|
|
170
185
|
],
|
|
171
186
|
},
|
|
172
187
|
...(opts?.loader ? [{ loader: opts.loader }] : []),
|
|
173
|
-
...(opts?.mcVersion ? [
|
|
188
|
+
...(opts?.mcVersion ? [mcVersionWhere(opts.mcVersion)] : []),
|
|
174
189
|
],
|
|
175
190
|
},
|
|
176
191
|
orderBy: { ingestedAt: "desc" },
|
|
@@ -181,19 +196,45 @@ export async function listModsForSourceUrls(query) {
|
|
|
181
196
|
const db = await getDb();
|
|
182
197
|
return db.mod.findMany({
|
|
183
198
|
where: query
|
|
184
|
-
? { OR: [{ modId: { contains: query,
|
|
199
|
+
? { OR: [{ modId: { contains: query, ...caseInsensitive() } }, { displayName: { contains: query, ...caseInsensitive() } }] }
|
|
185
200
|
: undefined,
|
|
186
201
|
select: { modId: true, displayName: true, version: true, loader: true, metadata: true },
|
|
187
202
|
orderBy: { modId: "asc" },
|
|
188
203
|
});
|
|
189
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* Mod columns that are native JSON/array on Postgres/PGlite but plain TEXT
|
|
207
|
+
* (holding serialized JSON) on SQLite. The Prisma types are generated from the
|
|
208
|
+
* Postgres schema (arrays/objects), so on SQLite these must be stringified
|
|
209
|
+
* before a write — `deserializeArray` / JSON.parse reverse this on read.
|
|
210
|
+
*/
|
|
211
|
+
const SQLITE_JSON_FIELDS = [
|
|
212
|
+
"mixinConfigs", "mixinTargets", "atEntries", "awEntries", "dependencies", "tags", "metadata",
|
|
213
|
+
];
|
|
214
|
+
/**
|
|
215
|
+
* Pre-serialize JSON-text columns for SQLite writes. No-op on Postgres/PGlite,
|
|
216
|
+
* where the columns are native JSON/array. Only touches fields that are present
|
|
217
|
+
* and not already strings, so partial update inputs are safe.
|
|
218
|
+
*/
|
|
219
|
+
function serializeModWrite(data) {
|
|
220
|
+
if (detectBackend() !== "sqlite")
|
|
221
|
+
return data;
|
|
222
|
+
const out = { ...data };
|
|
223
|
+
for (const field of SQLITE_JSON_FIELDS) {
|
|
224
|
+
const value = out[field];
|
|
225
|
+
if (value != null && typeof value !== "string") {
|
|
226
|
+
out[field] = JSON.stringify(value);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return out;
|
|
230
|
+
}
|
|
190
231
|
export async function createMod(data) {
|
|
191
232
|
const db = await getDb();
|
|
192
|
-
return db.mod.create({ data });
|
|
233
|
+
return db.mod.create({ data: serializeModWrite(data) });
|
|
193
234
|
}
|
|
194
235
|
export async function updateMod(id, data) {
|
|
195
236
|
const db = await getDb();
|
|
196
|
-
return db.mod.update({ where: { id }, data });
|
|
237
|
+
return db.mod.update({ where: { id }, data: serializeModWrite(data) });
|
|
197
238
|
}
|
|
198
239
|
export async function getModMetadata(id) {
|
|
199
240
|
const db = await getDb();
|
|
@@ -292,7 +333,7 @@ export async function searchModTagsByPath(query, registry, limit = 50) {
|
|
|
292
333
|
const db = await getDb();
|
|
293
334
|
return db.modTag.findMany({
|
|
294
335
|
where: {
|
|
295
|
-
tagPath: { contains: query,
|
|
336
|
+
tagPath: { contains: query, ...caseInsensitive() },
|
|
296
337
|
...(registry ? { registry } : {}),
|
|
297
338
|
},
|
|
298
339
|
include: { mod: { select: { modId: true, displayName: true, version: true } } },
|
|
@@ -327,8 +368,8 @@ export async function countModSourceFiles(modId) {
|
|
|
327
368
|
}
|
|
328
369
|
export async function findModSourceFilesUnembedded(modId, limit, offset) {
|
|
329
370
|
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
|
|
371
|
+
return db.$queryRawUnsafe(`SELECT id, class_name AS "className", content FROM mod_source_files
|
|
372
|
+
WHERE mod_id = $1 AND embedding IS NULL
|
|
332
373
|
ORDER BY id LIMIT $2 OFFSET $3`, modId, limit, offset);
|
|
333
374
|
}
|
|
334
375
|
export async function countUnembeddedModSourceFiles(modId) {
|