@4da/mcp-server 4.2.1 → 4.5.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/dist/http-transport.d.ts.map +1 -1
- package/dist/http-transport.js +5 -1
- package/dist/http-transport.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +9 -8
- package/dist/index.js.map +1 -1
- package/dist/live/crates-registry.d.ts +18 -0
- package/dist/live/crates-registry.d.ts.map +1 -0
- package/dist/live/crates-registry.js +133 -0
- package/dist/live/crates-registry.js.map +1 -0
- package/dist/live/go-registry.d.ts +19 -0
- package/dist/live/go-registry.d.ts.map +1 -0
- package/dist/live/go-registry.js +127 -0
- package/dist/live/go-registry.js.map +1 -0
- package/dist/live/http-utils.d.ts +3 -0
- package/dist/live/http-utils.d.ts.map +1 -0
- package/dist/live/http-utils.js +20 -0
- package/dist/live/http-utils.js.map +1 -0
- package/dist/live/index.d.ts +7 -2
- package/dist/live/index.d.ts.map +1 -1
- package/dist/live/index.js +71 -0
- package/dist/live/index.js.map +1 -1
- package/dist/live/npm-registry.d.ts +19 -0
- package/dist/live/npm-registry.d.ts.map +1 -0
- package/dist/live/npm-registry.js +132 -0
- package/dist/live/npm-registry.js.map +1 -0
- package/dist/live/osv-scanner.d.ts.map +1 -1
- package/dist/live/osv-scanner.js +1 -10
- package/dist/live/osv-scanner.js.map +1 -1
- package/dist/live/pypi-registry.d.ts +18 -0
- package/dist/live/pypi-registry.d.ts.map +1 -0
- package/dist/live/pypi-registry.js +142 -0
- package/dist/live/pypi-registry.js.map +1 -0
- package/dist/live/rate-limiter.d.ts +12 -0
- package/dist/live/rate-limiter.d.ts.map +1 -1
- package/dist/live/rate-limiter.js +4 -0
- package/dist/live/rate-limiter.js.map +1 -1
- package/dist/live/semver-utils.d.ts +5 -0
- package/dist/live/semver-utils.d.ts.map +1 -0
- package/dist/live/semver-utils.js +28 -0
- package/dist/live/semver-utils.js.map +1 -0
- package/dist/live/types.d.ts +41 -0
- package/dist/live/types.d.ts.map +1 -1
- package/dist/schema-registry.d.ts +2 -1
- package/dist/schema-registry.d.ts.map +1 -1
- package/dist/schema-registry.js +61 -2
- package/dist/schema-registry.js.map +1 -1
- package/dist/schemas/dependency-health.json +27 -0
- package/dist/schemas/ecosystem-pulse.json +17 -0
- package/dist/schemas/upgrade-planner.json +22 -0
- package/dist/tool-dispatch.d.ts.map +1 -1
- package/dist/tool-dispatch.js +4 -1
- package/dist/tool-dispatch.js.map +1 -1
- package/dist/tools/dependency-health.d.ts +45 -0
- package/dist/tools/dependency-health.d.ts.map +1 -0
- package/dist/tools/dependency-health.js +152 -0
- package/dist/tools/dependency-health.js.map +1 -0
- package/dist/tools/ecosystem-pulse.d.ts +48 -0
- package/dist/tools/ecosystem-pulse.d.ts.map +1 -0
- package/dist/tools/ecosystem-pulse.js +60 -0
- package/dist/tools/ecosystem-pulse.js.map +1 -0
- package/dist/tools/get-context.d.ts +8 -1
- package/dist/tools/get-context.d.ts.map +1 -1
- package/dist/tools/get-context.js +18 -1
- package/dist/tools/get-context.js.map +1 -1
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/upgrade-planner.d.ts +59 -0
- package/dist/tools/upgrade-planner.d.ts.map +1 -0
- package/dist/tools/upgrade-planner.js +167 -0
- package/dist/tools/upgrade-planner.js.map +1 -0
- package/dist/tools/what-should-i-know.d.ts +7 -0
- package/dist/tools/what-should-i-know.d.ts.map +1 -1
- package/dist/tools/what-should-i-know.js +24 -0
- package/dist/tools/what-should-i-know.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../src/http-transport.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../src/http-transport.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAMH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AASnE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAqBD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAA8D,GACtE,OAAO,CAAC,IAAI,CAAC,CA0Gf"}
|
package/dist/http-transport.js
CHANGED
|
@@ -11,11 +11,15 @@
|
|
|
11
11
|
* - Stateless mode (no session tracking)
|
|
12
12
|
*/
|
|
13
13
|
import { createServer } from "node:http";
|
|
14
|
+
import { readFileSync } from "node:fs";
|
|
15
|
+
import { join, dirname } from "node:path";
|
|
16
|
+
import { fileURLToPath } from "node:url";
|
|
14
17
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
15
18
|
import { extractAuthClaims } from "./auth.js";
|
|
16
19
|
const DEFAULT_PORT = 4840;
|
|
17
20
|
const DEFAULT_HOST = "127.0.0.1";
|
|
18
|
-
const
|
|
21
|
+
const __ht_dirname = dirname(fileURLToPath(import.meta.url));
|
|
22
|
+
const SERVER_VERSION = JSON.parse(readFileSync(join(__ht_dirname, "..", "package.json"), "utf-8")).version;
|
|
19
23
|
/**
|
|
20
24
|
* Parse JSON body from an incoming HTTP request.
|
|
21
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../src/http-transport.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAmC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../src/http-transport.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
* Do NOT expose this server over a network without adding proper auth.
|
|
13
13
|
*/
|
|
14
14
|
/**
|
|
15
|
-
* 4DA MCP Server v4.
|
|
15
|
+
* 4DA MCP Server v4.5.0 — Dependency Intelligence Platform
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
* persistent project memory, and tech stack awareness for any MCP host.
|
|
17
|
+
* 38 tools across 9 categories. Live vulnerability scanning (OSV.dev),
|
|
18
|
+
* ecosystem news, persistent project memory, and tech stack awareness for any MCP host.
|
|
19
19
|
*
|
|
20
20
|
* Categories (canonical — matches schema-registry.ts `ToolCategory`):
|
|
21
21
|
* Core (4) — content feed, context, relevance, feedback
|
package/dist/index.js
CHANGED
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
* Do NOT expose this server over a network without adding proper auth.
|
|
14
14
|
*/
|
|
15
15
|
/**
|
|
16
|
-
* 4DA MCP Server v4.
|
|
16
|
+
* 4DA MCP Server v4.5.0 — Dependency Intelligence Platform
|
|
17
17
|
*
|
|
18
|
-
*
|
|
19
|
-
* persistent project memory, and tech stack awareness for any MCP host.
|
|
18
|
+
* 38 tools across 9 categories. Live vulnerability scanning (OSV.dev),
|
|
19
|
+
* ecosystem news, persistent project memory, and tech stack awareness for any MCP host.
|
|
20
20
|
*
|
|
21
21
|
* Categories (canonical — matches schema-registry.ts `ToolCategory`):
|
|
22
22
|
* Core (4) — content feed, context, relevance, feedback
|
|
@@ -56,7 +56,7 @@ import { createDatabase, FourDADatabase } from "./db.js";
|
|
|
56
56
|
// =============================================================================
|
|
57
57
|
const server = new Server({
|
|
58
58
|
name: "4da-server",
|
|
59
|
-
version: "4.
|
|
59
|
+
version: "4.5.0",
|
|
60
60
|
}, {
|
|
61
61
|
capabilities: {
|
|
62
62
|
tools: { listChanged: true },
|
|
@@ -145,8 +145,9 @@ function getDatabase() {
|
|
|
145
145
|
* Full schemas available via MCP Resources: 4da://schema/{tool_name}
|
|
146
146
|
*/
|
|
147
147
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
148
|
+
const database = getDatabase();
|
|
148
149
|
return {
|
|
149
|
-
tools: getSlimToolList(),
|
|
150
|
+
tools: getSlimToolList(database.isStandalone ? true : undefined),
|
|
150
151
|
};
|
|
151
152
|
});
|
|
152
153
|
/**
|
|
@@ -272,13 +273,13 @@ async function main() {
|
|
|
272
273
|
const args = process.argv.slice(2);
|
|
273
274
|
// Version
|
|
274
275
|
if (args.includes("--version") || args.includes("-v")) {
|
|
275
|
-
console.log("@4da/mcp-server 4.
|
|
276
|
+
console.log("@4da/mcp-server 4.5.0");
|
|
276
277
|
return;
|
|
277
278
|
}
|
|
278
279
|
// Help
|
|
279
280
|
if (args.includes("--help") || args.includes("-h")) {
|
|
280
281
|
console.log(`
|
|
281
|
-
@4da/mcp-server —
|
|
282
|
+
@4da/mcp-server — Dependency intelligence for AI coding agents
|
|
282
283
|
|
|
283
284
|
Usage:
|
|
284
285
|
npx @4da/mcp-server Start MCP server (stdio transport)
|
|
@@ -361,7 +362,7 @@ async function main() {
|
|
|
361
362
|
process.exit(0);
|
|
362
363
|
});
|
|
363
364
|
const toolCount = getSlimToolList().length;
|
|
364
|
-
console.error(`4DA MCP Server v4.
|
|
365
|
+
console.error(`4DA MCP Server v4.5.0 started — ${toolCount} tools, stdio transport`);
|
|
365
366
|
console.error(" Use --http for Streamable HTTP, --setup to configure editors, --doctor to check health");
|
|
366
367
|
}
|
|
367
368
|
main().catch((error) => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,8CAA8C;AAC9C;;;;;;;;;;;GAWG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,4DAA4D;AAC5D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAElI,yEAAyE;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAiC,MAAM,SAAS,CAAC;AAExF,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;QAC5B,SAAS,EAAE,EAAE;KACd;CACF,CACF,CAAC;AAEF,uCAAuC;AACvC,IAAI,EAAE,GAA0B,IAAI,CAAC;AACrC,IAAI,SAAS,GAA4B,IAAI,CAAC;AAE9C;;;;GAIG;AACH,SAAS,WAAW;IAClB,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC1C,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5B,qCAAqC;QACrC,SAAS,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAE/B,mDAAmD;QACnD,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACrC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAE1B,MAAM,QAAQ,GAAG;gBACf,GAAG,IAAI,CAAC,SAAS;gBACjB,GAAG,IAAI,CAAC,UAAU;aACnB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAElB,OAAO,CAAC,KAAK,CACX,kCAAkC,IAAI,CAAC,WAAW,EAAE,CACrD,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CACX,qBAAqB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,UAAU,IAAI,CAAC,eAAe,CAAC,MAAM,WAAW,CACvH,CAAC;gBAEF,sDAAsD;gBACtD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;oBAChG,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC/B,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;4BACjC,CAAC,CAAC,QAAQ;4BACV,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;gCAC7B,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,KAAK,CAAC;gBAEhB,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;gBAErF,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC;oBAC1B,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;oBACnE,sEAAsE;oBACtE,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC1D,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBAC/C,OAAO,CAAC,KAAK,CAAC,0CAA0C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;oBAC9I,CAAC,CAAC,CAAC;oBACH,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBAChD,OAAO,CAAC,KAAK,CAAC,qCAAqC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC1G,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CACX,yCAAyC,GAAG,oCAAoC,CACjF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iFAAiF;YACjF,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CACxB,6FAA6F,CAC9F,CAAC,GAAG,EAAuD,CAAC;gBAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAC3B,mFAAmF,CACpF,CAAC,GAAG,EAAqC,CAAC;gBAE3C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpB,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC;oBAC9C,SAAS,CAAC,eAAe,CACvB,OAAO,CAAC,GAAG,EAAE,EACb,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAClC,WAAW,CACZ,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,sDAAsD;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO;QACL,KAAK,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,8CAA8C;AAC9C;;;;;;;;;;;GAWG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,4DAA4D;AAC5D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAElI,yEAAyE;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAiC,MAAM,SAAS,CAAC;AAExF,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;QAC5B,SAAS,EAAE,EAAE;KACd;CACF,CACF,CAAC;AAEF,uCAAuC;AACvC,IAAI,EAAE,GAA0B,IAAI,CAAC;AACrC,IAAI,SAAS,GAA4B,IAAI,CAAC;AAE9C;;;;GAIG;AACH,SAAS,WAAW;IAClB,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC1C,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5B,qCAAqC;QACrC,SAAS,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAE/B,mDAAmD;QACnD,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACrC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAE1B,MAAM,QAAQ,GAAG;gBACf,GAAG,IAAI,CAAC,SAAS;gBACjB,GAAG,IAAI,CAAC,UAAU;aACnB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAElB,OAAO,CAAC,KAAK,CACX,kCAAkC,IAAI,CAAC,WAAW,EAAE,CACrD,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CACX,qBAAqB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,UAAU,IAAI,CAAC,eAAe,CAAC,MAAM,WAAW,CACvH,CAAC;gBAEF,sDAAsD;gBACtD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;oBAChG,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC/B,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;4BACjC,CAAC,CAAC,QAAQ;4BACV,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;gCAC7B,CAAC,CAAC,IAAI;gCACN,CAAC,CAAC,KAAK,CAAC;gBAEhB,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;gBAErF,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC;oBAC1B,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;oBACnE,sEAAsE;oBACtE,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC1D,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBAC/C,OAAO,CAAC,KAAK,CAAC,0CAA0C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;oBAC9I,CAAC,CAAC,CAAC;oBACH,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBAChD,OAAO,CAAC,KAAK,CAAC,qCAAqC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC1G,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CACX,yCAAyC,GAAG,oCAAoC,CACjF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iFAAiF;YACjF,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CACxB,6FAA6F,CAC9F,CAAC,GAAG,EAAuD,CAAC;gBAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAC3B,mFAAmF,CACpF,CAAC,GAAG,EAAqC,CAAC;gBAE3C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpB,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC;oBAC9C,SAAS,CAAC,eAAe,CACvB,OAAO,CAAC,GAAG,EAAE,EACb,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAClC,WAAW,CACZ,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,sDAAsD;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,OAAO;QACL,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;KACjE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;IAC9D,MAAM,SAAS,GAAG;QAChB,GAAG,kBAAkB,EAAE;QACvB,oCAAoC;QACpC;YACE,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,kBAAkB;SAC7B;QACD,uCAAuC;QACvC;YACE,GAAG,EAAE,kBAAkB;YACvB,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,kBAAkB;SAC7B;KACF,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IACpE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;IAE/B,2BAA2B;IAC3B,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;QAC/B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG;oBACH,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACrD;aACF;SACF,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QACxF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG;oBACH,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,aAAa;iBACpB;aACF;SACF,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAExD,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,GAAG;gBACH,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE,aAAa;aACpB;SACF;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,OAAO,MAAM,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAA2C,CAAC,CAAC;IACzF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACvD;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;;;;;GAOG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,UAAU;IACV,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,OAAO;IACP,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CAyBf,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IAED,mCAAmC;IACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,QAAQ,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,+CAA+C;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACtF,MAAM,eAAe,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,4EAA4E;IAC5E,gEAAgE;IAChE,4EAA4E;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,SAAS,CAAC;IACvD,MAAM,UAAU,GAA6B,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAErF,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,8BAA8B,UAAU,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7F,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QACjC,sEAAsE;QACtE,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC1F,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QAClF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,+CAA+C;QAC/C,OAAO,CAAC,KAAK,CAAC,yBAAyB,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,+CAA+C;IAC/C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,IAAI,EAAE;YAAE,EAAE,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,IAAI,EAAE;YAAE,EAAE,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC,MAAM,CAAC;IAC3C,OAAO,CAAC,KAAK,CAAC,mCAAmC,SAAS,yBAAyB,CAAC,CAAC;IACrF,OAAO,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;AAC5G,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* crates.io Registry Fetcher
|
|
3
|
+
*
|
|
4
|
+
* Queries the crates.io sparse index (CDN, no rate limit) for package version
|
|
5
|
+
* data. Avoids the main crates.io API which has a strict 1 req/s rate limit.
|
|
6
|
+
*
|
|
7
|
+
* Privacy: sends only crate names — public manifest data.
|
|
8
|
+
*/
|
|
9
|
+
import type { LiveCache } from "./cache.js";
|
|
10
|
+
import type { RateLimiter } from "./rate-limiter.js";
|
|
11
|
+
import type { RegistryPackageInfo } from "./types.js";
|
|
12
|
+
export declare class CratesRegistry {
|
|
13
|
+
private cache;
|
|
14
|
+
private rateLimiter;
|
|
15
|
+
constructor(cache: LiveCache, rateLimiter: RateLimiter);
|
|
16
|
+
getPackageInfo(name: string, currentVersion: string | null, isDev: boolean): Promise<RegistryPackageInfo>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=crates-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crates-registry.d.ts","sourceRoot":"","sources":["../../src/live/crates-registry.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,YAAY,CAAC;AAYtE,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,WAAW,CAAc;gBAErB,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW;IAKhD,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,mBAAmB,CAAC;CAsEhC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// SPDX-License-Identifier: FSL-1.1-Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* crates.io Registry Fetcher
|
|
4
|
+
*
|
|
5
|
+
* Queries the crates.io sparse index (CDN, no rate limit) for package version
|
|
6
|
+
* data. Avoids the main crates.io API which has a strict 1 req/s rate limit.
|
|
7
|
+
*
|
|
8
|
+
* Privacy: sends only crate names — public manifest data.
|
|
9
|
+
*/
|
|
10
|
+
import { fetchWithTimeout } from "./http-utils.js";
|
|
11
|
+
import { computeSemverDistance, isPreRelease } from "./semver-utils.js";
|
|
12
|
+
const CRATES_TIMEOUT_MS = 8_000;
|
|
13
|
+
const CRATES_CACHE_TTL = 86_400; // 24 hours
|
|
14
|
+
export class CratesRegistry {
|
|
15
|
+
cache;
|
|
16
|
+
rateLimiter;
|
|
17
|
+
constructor(cache, rateLimiter) {
|
|
18
|
+
this.cache = cache;
|
|
19
|
+
this.rateLimiter = rateLimiter;
|
|
20
|
+
}
|
|
21
|
+
async getPackageInfo(name, currentVersion, isDev) {
|
|
22
|
+
const cacheKey = `crates-reg:${name}`;
|
|
23
|
+
const cached = this.cache.get(cacheKey);
|
|
24
|
+
if (cached !== null)
|
|
25
|
+
return cached;
|
|
26
|
+
if (!this.rateLimiter.canProceed("crates")) {
|
|
27
|
+
const stale = this.cache.getStale(cacheKey);
|
|
28
|
+
if (stale)
|
|
29
|
+
return stale.data;
|
|
30
|
+
return errorResult(name, currentVersion, isDev, "Rate limited");
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
this.rateLimiter.consume("crates");
|
|
34
|
+
const url = sparseIndexUrl(name);
|
|
35
|
+
const response = await fetchWithTimeout(url, { headers: { Accept: "application/json" } }, CRATES_TIMEOUT_MS);
|
|
36
|
+
if (!response.ok) {
|
|
37
|
+
throw new Error(`Sparse index HTTP ${response.status}: ${url}`);
|
|
38
|
+
}
|
|
39
|
+
const text = await response.text();
|
|
40
|
+
const entries = parseIndexLines(text);
|
|
41
|
+
if (entries.length === 0) {
|
|
42
|
+
throw new Error(`No versions found for crate: ${name}`);
|
|
43
|
+
}
|
|
44
|
+
// Latest = last entry overall (may be yanked or prerelease)
|
|
45
|
+
const latestEntry = entries[entries.length - 1];
|
|
46
|
+
const latestVersion = latestEntry.vers;
|
|
47
|
+
// Latest stable = last non-yanked, non-prerelease entry
|
|
48
|
+
const latestStable = findLatestStable(entries);
|
|
49
|
+
// Semver distance between current and latest stable (or latest)
|
|
50
|
+
let versionsBehind = null;
|
|
51
|
+
if (currentVersion && (latestStable || latestVersion)) {
|
|
52
|
+
versionsBehind = computeSemverDistance(currentVersion, latestStable || latestVersion);
|
|
53
|
+
}
|
|
54
|
+
const result = {
|
|
55
|
+
name,
|
|
56
|
+
ecosystem: "crates.io",
|
|
57
|
+
currentVersion,
|
|
58
|
+
latestVersion,
|
|
59
|
+
latestStableVersion: latestStable,
|
|
60
|
+
versionsBehind,
|
|
61
|
+
deprecated: false, // sparse index does not carry deprecation info
|
|
62
|
+
deprecationMessage: null,
|
|
63
|
+
lastPublished: null, // sparse index does not carry dates
|
|
64
|
+
license: null, // sparse index does not carry license
|
|
65
|
+
weeklyDownloads: null, // sparse index does not carry downloads
|
|
66
|
+
isDev,
|
|
67
|
+
fetchError: null,
|
|
68
|
+
};
|
|
69
|
+
this.cache.set(cacheKey, result, "crates", CRATES_CACHE_TTL);
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
const stale = this.cache.getStale(cacheKey);
|
|
74
|
+
if (stale)
|
|
75
|
+
return stale.data;
|
|
76
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
77
|
+
return errorResult(name, currentVersion, isDev, message);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function sparseIndexUrl(name) {
|
|
82
|
+
const n = name.toLowerCase();
|
|
83
|
+
switch (n.length) {
|
|
84
|
+
case 1: return `https://index.crates.io/1/${n}`;
|
|
85
|
+
case 2: return `https://index.crates.io/2/${n}`;
|
|
86
|
+
case 3: return `https://index.crates.io/3/${n[0]}/${n}`;
|
|
87
|
+
default: return `https://index.crates.io/${n.slice(0, 2)}/${n.slice(2, 4)}/${n}`;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function parseIndexLines(text) {
|
|
91
|
+
const entries = [];
|
|
92
|
+
for (const line of text.split("\n")) {
|
|
93
|
+
const trimmed = line.trim();
|
|
94
|
+
if (trimmed.length === 0)
|
|
95
|
+
continue;
|
|
96
|
+
try {
|
|
97
|
+
const entry = JSON.parse(trimmed);
|
|
98
|
+
if (entry.name && entry.vers) {
|
|
99
|
+
entries.push(entry);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// Skip malformed lines
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return entries;
|
|
107
|
+
}
|
|
108
|
+
function findLatestStable(entries) {
|
|
109
|
+
for (let i = entries.length - 1; i >= 0; i--) {
|
|
110
|
+
if (!entries[i].yanked && !isPreRelease(entries[i].vers)) {
|
|
111
|
+
return entries[i].vers;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
function errorResult(name, currentVersion, isDev, fetchError) {
|
|
117
|
+
return {
|
|
118
|
+
name,
|
|
119
|
+
ecosystem: "crates.io",
|
|
120
|
+
currentVersion,
|
|
121
|
+
latestVersion: null,
|
|
122
|
+
latestStableVersion: null,
|
|
123
|
+
versionsBehind: null,
|
|
124
|
+
deprecated: false,
|
|
125
|
+
deprecationMessage: null,
|
|
126
|
+
lastPublished: null,
|
|
127
|
+
license: null,
|
|
128
|
+
weeklyDownloads: null,
|
|
129
|
+
isDev,
|
|
130
|
+
fetchError,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=crates-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crates-registry.js","sourceRoot":"","sources":["../../src/live/crates-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Go Module Proxy Registry Fetcher
|
|
3
|
+
*
|
|
4
|
+
* Queries the Go module proxy for package metadata (latest version, version
|
|
5
|
+
* list, semver distance). The proxy does not expose deprecation, license, or
|
|
6
|
+
* download data.
|
|
7
|
+
*
|
|
8
|
+
* Privacy: sends only module paths -- public manifest data.
|
|
9
|
+
*/
|
|
10
|
+
import type { LiveCache } from "./cache.js";
|
|
11
|
+
import type { RateLimiter } from "./rate-limiter.js";
|
|
12
|
+
import type { RegistryPackageInfo } from "./types.js";
|
|
13
|
+
export declare class GoRegistry {
|
|
14
|
+
private cache;
|
|
15
|
+
private rateLimiter;
|
|
16
|
+
constructor(cache: LiveCache, rateLimiter: RateLimiter);
|
|
17
|
+
getPackageInfo(name: string, currentVersion: string | null, isDev: boolean): Promise<RegistryPackageInfo>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=go-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go-registry.d.ts","sourceRoot":"","sources":["../../src/live/go-registry.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAWtD,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,WAAW,CAAc;gBAErB,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW;IAKhD,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,mBAAmB,CAAC;CAiFhC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// SPDX-License-Identifier: FSL-1.1-Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* Go Module Proxy Registry Fetcher
|
|
4
|
+
*
|
|
5
|
+
* Queries the Go module proxy for package metadata (latest version, version
|
|
6
|
+
* list, semver distance). The proxy does not expose deprecation, license, or
|
|
7
|
+
* download data.
|
|
8
|
+
*
|
|
9
|
+
* Privacy: sends only module paths -- public manifest data.
|
|
10
|
+
*/
|
|
11
|
+
import { fetchJson, fetchWithTimeout } from "./http-utils.js";
|
|
12
|
+
import { computeSemverDistance, isPreRelease } from "./semver-utils.js";
|
|
13
|
+
const GO_PROXY_URL = "https://proxy.golang.org";
|
|
14
|
+
const GO_TIMEOUT_MS = 8_000;
|
|
15
|
+
const GO_CACHE_TTL = 86_400; // 24 hours
|
|
16
|
+
export class GoRegistry {
|
|
17
|
+
cache;
|
|
18
|
+
rateLimiter;
|
|
19
|
+
constructor(cache, rateLimiter) {
|
|
20
|
+
this.cache = cache;
|
|
21
|
+
this.rateLimiter = rateLimiter;
|
|
22
|
+
}
|
|
23
|
+
async getPackageInfo(name, currentVersion, isDev) {
|
|
24
|
+
const cacheKey = `go-reg:${name}`;
|
|
25
|
+
const cached = this.cache.get(cacheKey);
|
|
26
|
+
if (cached !== null)
|
|
27
|
+
return cached;
|
|
28
|
+
if (!this.rateLimiter.canProceed("go")) {
|
|
29
|
+
const stale = this.cache.getStale(cacheKey);
|
|
30
|
+
if (stale)
|
|
31
|
+
return stale.data;
|
|
32
|
+
return errorResult(name, currentVersion, isDev, "Rate limited");
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
this.rateLimiter.consume("go");
|
|
36
|
+
const escaped = escapeModulePath(name);
|
|
37
|
+
// Fetch @latest for latest version and timestamp
|
|
38
|
+
const latest = await fetchJson(`${GO_PROXY_URL}/${escaped}/@latest`, {}, GO_TIMEOUT_MS);
|
|
39
|
+
const latestVersion = latest.Version ?? null;
|
|
40
|
+
const lastPublished = latest.Time ?? null;
|
|
41
|
+
// Fetch @v/list for all versions to find latest stable
|
|
42
|
+
let latestStable = null;
|
|
43
|
+
try {
|
|
44
|
+
const listResponse = await fetchWithTimeout(`${GO_PROXY_URL}/${escaped}/@v/list`, {}, GO_TIMEOUT_MS);
|
|
45
|
+
if (listResponse.ok) {
|
|
46
|
+
const text = await listResponse.text();
|
|
47
|
+
const versions = text.trim().split("\n").filter(Boolean);
|
|
48
|
+
latestStable = findLatestStable(versions);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// Version list unavailable -- fall back to @latest if it's stable
|
|
53
|
+
if (latestVersion && !isPreRelease(latestVersion.replace(/^v/, ""))) {
|
|
54
|
+
latestStable = latestVersion;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Semver distance: strip v prefix for comparison
|
|
58
|
+
let versionsBehind = null;
|
|
59
|
+
const compareTarget = latestStable || latestVersion;
|
|
60
|
+
if (currentVersion && compareTarget) {
|
|
61
|
+
versionsBehind = computeSemverDistance(currentVersion.replace(/^v/, ""), compareTarget.replace(/^v/, ""));
|
|
62
|
+
}
|
|
63
|
+
const result = {
|
|
64
|
+
name,
|
|
65
|
+
ecosystem: "Go",
|
|
66
|
+
currentVersion,
|
|
67
|
+
latestVersion,
|
|
68
|
+
latestStableVersion: latestStable,
|
|
69
|
+
versionsBehind,
|
|
70
|
+
deprecated: false,
|
|
71
|
+
deprecationMessage: null,
|
|
72
|
+
lastPublished,
|
|
73
|
+
license: null, // Go proxy does not expose license info
|
|
74
|
+
weeklyDownloads: null, // Go proxy does not expose download counts
|
|
75
|
+
isDev,
|
|
76
|
+
fetchError: null,
|
|
77
|
+
};
|
|
78
|
+
this.cache.set(cacheKey, result, "go", GO_CACHE_TTL);
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
const stale = this.cache.getStale(cacheKey);
|
|
83
|
+
if (stale)
|
|
84
|
+
return stale.data;
|
|
85
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
86
|
+
return errorResult(name, currentVersion, isDev, message);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Escape uppercase letters in Go module paths for the proxy URL.
|
|
92
|
+
* Go proxy convention: uppercase 'X' becomes '!x'.
|
|
93
|
+
*/
|
|
94
|
+
function escapeModulePath(mod) {
|
|
95
|
+
return mod.replace(/[A-Z]/g, (c) => "!" + c.toLowerCase());
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Find the latest stable version from a list of Go module versions.
|
|
99
|
+
* Versions use "v" prefix (v1.2.3) -- strip for prerelease check.
|
|
100
|
+
*/
|
|
101
|
+
function findLatestStable(versions) {
|
|
102
|
+
for (let i = versions.length - 1; i >= 0; i--) {
|
|
103
|
+
const v = versions[i];
|
|
104
|
+
if (!isPreRelease(v.replace(/^v/, ""))) {
|
|
105
|
+
return v;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
function errorResult(name, currentVersion, isDev, fetchError) {
|
|
111
|
+
return {
|
|
112
|
+
name,
|
|
113
|
+
ecosystem: "Go",
|
|
114
|
+
currentVersion,
|
|
115
|
+
latestVersion: null,
|
|
116
|
+
latestStableVersion: null,
|
|
117
|
+
versionsBehind: null,
|
|
118
|
+
deprecated: false,
|
|
119
|
+
deprecationMessage: null,
|
|
120
|
+
lastPublished: null,
|
|
121
|
+
license: null,
|
|
122
|
+
weeklyDownloads: null,
|
|
123
|
+
isDev,
|
|
124
|
+
fetchError,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=go-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go-registry.js","sourceRoot":"","sources":["../../src/live/go-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-utils.d.ts","sourceRoot":"","sources":["../../src/live/http-utils.ts"],"names":[],"mappings":"AAIA,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,EACzB,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,QAAQ,CAAC,CAQnB;AAED,wBAAsB,SAAS,CAAC,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,EACzB,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,CAAC,CAAC,CAMZ"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// SPDX-License-Identifier: FSL-1.1-Apache-2.0
|
|
2
|
+
const DEFAULT_TIMEOUT_MS = 10_000;
|
|
3
|
+
export async function fetchWithTimeout(url, options = {}, timeoutMs = DEFAULT_TIMEOUT_MS) {
|
|
4
|
+
const controller = new AbortController();
|
|
5
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
6
|
+
try {
|
|
7
|
+
return await fetch(url, { ...options, signal: controller.signal });
|
|
8
|
+
}
|
|
9
|
+
finally {
|
|
10
|
+
clearTimeout(timeout);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export async function fetchJson(url, options = {}, timeoutMs = DEFAULT_TIMEOUT_MS) {
|
|
14
|
+
const response = await fetchWithTimeout(url, options, timeoutMs);
|
|
15
|
+
if (!response.ok) {
|
|
16
|
+
throw new Error(`HTTP ${response.status}: ${url}`);
|
|
17
|
+
}
|
|
18
|
+
return (await response.json());
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=http-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-utils.js","sourceRoot":"","sources":["../../src/live/http-utils.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAE9C,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,UAAuB,EAAE,EACzB,YAAoB,kBAAkB;IAEtC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAChE,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,UAAuB,EAAE,EACzB,YAAoB,kBAAkB;IAEtC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACjE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;AACtC,CAAC"}
|
package/dist/live/index.d.ts
CHANGED
|
@@ -8,13 +8,17 @@
|
|
|
8
8
|
* Set FOURDA_OFFLINE=true to disable all network calls.
|
|
9
9
|
*/
|
|
10
10
|
import type Database from "better-sqlite3";
|
|
11
|
-
import type { ResolvedDependency, VulnerabilityScanResult, LiveHeadline, LiveIntelligenceStatus } from "./types.js";
|
|
12
|
-
export type { VulnerabilityScanResult, VulnerabilityEntry, LiveHeadline, LiveIntelligenceStatus } from "./types.js";
|
|
11
|
+
import type { ResolvedDependency, RegistryPackageInfo, VulnerabilityScanResult, LiveHeadline, LiveIntelligenceStatus } from "./types.js";
|
|
12
|
+
export type { VulnerabilityScanResult, VulnerabilityEntry, LiveHeadline, LiveIntelligenceStatus, RegistryPackageInfo, DependencyHealthResult } from "./types.js";
|
|
13
13
|
export declare class LiveIntelligence {
|
|
14
14
|
private cache;
|
|
15
15
|
private rateLimiter;
|
|
16
16
|
private osvScanner;
|
|
17
17
|
private hnFetcher;
|
|
18
|
+
private npmRegistry;
|
|
19
|
+
private cratesRegistry;
|
|
20
|
+
private pypiRegistry;
|
|
21
|
+
private goRegistry;
|
|
18
22
|
private enabled;
|
|
19
23
|
private lastVulnScan;
|
|
20
24
|
private lastHeadlines;
|
|
@@ -50,6 +54,7 @@ export declare class LiveIntelligence {
|
|
|
50
54
|
getResolvedDeps(): ResolvedDependency[];
|
|
51
55
|
isEnabled(): boolean;
|
|
52
56
|
isInitialized(): boolean;
|
|
57
|
+
fetchRegistryHealth(deps: ResolvedDependency[]): Promise<RegistryPackageInfo[]>;
|
|
53
58
|
getStatus(): LiveIntelligenceStatus;
|
|
54
59
|
}
|
|
55
60
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/live/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAU3C,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,YAAY,EACZ,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEjK,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,WAAW,CAAS;gBAEhB,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAYjC;;OAEG;IACH,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,GACf,IAAI;IAKP;;OAEG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GACzD,OAAO,CAAC,uBAAuB,CAAC;IA2BnC;;OAEG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAWlE;;OAEG;IACH,kBAAkB,IAAI,uBAAuB,GAAG,IAAI;IAIpD;;OAEG;IACH,YAAY,IAAI,YAAY,EAAE;IAI9B;;OAEG;IACH,eAAe,IAAI,kBAAkB,EAAE;IAIvC,SAAS,IAAI,OAAO;IAIpB,aAAa,IAAI,OAAO;IAIlB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAgErF,SAAS,IAAI,sBAAsB;CAUpC"}
|