@extenshi/mcp
Version:
Extenshi MCP server — bring the extension catalog (search, security, market research) and pre-publish scanning into your AI tools
31 lines • 1.66 kB
TypeScript
/**
* Best-effort "a newer version is available" nudge.
*
* The MCP has no built-in update mechanism — a pinned global install
* (`npm i -g @extenshi/mcp`) stays on whatever version was installed, and even
* an `npx @extenshi/mcp` (no `@latest`) can serve a stale cache. So on startup
* we ask the npm registry once for the latest published version and, if we're
* behind, print a one-line hint to STDERR.
*
* Hard constraints:
* - STDERR only. stdout is the MCP protocol channel (see index.ts header).
* - Fully fail-soft: any network/parse/timeout error is swallowed silently.
* - Non-blocking: callers fire-and-forget so tool availability is never delayed.
* - Opt-out honoured (shares the telemetry opt-out switches + a dedicated one).
*/
/** True when the user has opted out of the (network) update check. */
export declare function updateCheckOptedOut(env?: NodeJS.ProcessEnv): boolean;
/**
* Returns true when `latest` is a strictly newer 3-part version than `current`.
* Tolerant of pre-release/garbage: non-numeric parts coerce to 0, and any parse
* oddity returns false (never nag spuriously).
*/
export declare function isNewerVersion(current: string, latest: string): boolean;
/** Build the stderr hint (exported for testability). */
export declare function updateMessage(current: string, latest: string): string;
/**
* Fire-and-forget update check. Never throws; writes at most one line to stderr.
* `fetchImpl`/`out` are injectable for tests.
*/
export declare function checkForUpdate(current: string, fetchImpl?: typeof fetch, out?: (msg: string) => void): Promise<void>;
//# sourceMappingURL=update-check.d.ts.map