diff --git a/src/runtime.ts b/src/runtime.ts index bb5007d..d7e0f3c 100644 --- a/src/runtime.ts +++ b/src/runtime.ts @@ -1,3 +1,5 @@ +import { createRequire } from 'node:module'; + import { Client } from '@modelcontextprotocol/sdk/client/index.js'; import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js'; import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js'; @@ -15,7 +17,8 @@ import { closeTransportAndWait } from './runtime-process-utils.js'; import './sdk-patches.js'; const PACKAGE_NAME = 'mcporter'; -const CLIENT_VERSION = '0.5.11'; +// Keep version in one place by reading package.json via require (Node ESM-friendly without assertions). +const CLIENT_VERSION = createRequire(import.meta.url)('../package.json').version; const DEFAULT_OAUTH_CODE_TIMEOUT_MS = 60_000; const OAUTH_CODE_TIMEOUT_MS = parseOAuthTimeout( process.env.MCPORTER_OAUTH_TIMEOUT_MS ?? process.env.MCPORTER_OAUTH_TIMEOUT diff --git a/tests/version-consistency.test.ts b/tests/version-consistency.test.ts new file mode 100644 index 0000000..225a041 --- /dev/null +++ b/tests/version-consistency.test.ts @@ -0,0 +1,11 @@ +import { createRequire } from 'node:module'; +import { describe, expect, it } from 'vitest'; +import { MCPORTER_VERSION } from '../src/runtime.js'; + +const pkg = createRequire(import.meta.url)('../package.json'); + +describe('version consistency', () => { + it('matches package.json', () => { + expect(MCPORTER_VERSION).toBe(pkg.version); + }); +});