diff --git a/CHANGELOG.md b/CHANGELOG.md index a6cc820..69f74b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ ## Unreleased +### Public API + +- **Add `getAllTools` and `getVersionInfo` to public exports** — `getAllTools` is now re-exported from `@mapbox/mcp-devkit-server/tools` and `getVersionInfo` (plus `VersionInfo` type) from `@mapbox/mcp-devkit-server/utils`. These are needed by `hosted-mcp-server` to import server functionality via npm packages instead of submodule filesystem paths. +- Added `test/exports.test.ts` to verify public barrel exports + ## 0.5.1 - 2026-03-04 ### Dependencies diff --git a/src/tools/index.ts b/src/tools/index.ts index d7a2505..4e9c4a6 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -162,6 +162,7 @@ export const validateStyle = new ValidateStyleTool(); // Export registry functions for batch access export { + getAllTools, getCoreTools, getElicitationTools, getResourceFallbackTools, diff --git a/src/utils/index.ts b/src/utils/index.ts index 1b653a2..78448d6 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -42,5 +42,9 @@ export { type HttpPolicy } from './httpPipeline.js'; +// Export version utilities +export { getVersionInfo } from './versionUtils.js'; +export type { VersionInfo } from './versionUtils.js'; + // Export types export type { HttpRequest } from './types.js'; diff --git a/test/exports.test.ts b/test/exports.test.ts new file mode 100644 index 0000000..f3e16ae --- /dev/null +++ b/test/exports.test.ts @@ -0,0 +1,40 @@ +// Copyright (c) Mapbox, Inc. +// Licensed under the MIT License. + +import { describe, it, expect } from 'vitest'; + +describe('Public API exports', () => { + describe('tools barrel', () => { + it('exports getAllTools', async () => { + const { getAllTools } = await import('../src/tools/index.js'); + expect(getAllTools).toBeDefined(); + expect(typeof getAllTools).toBe('function'); + }); + + it('exports getCoreTools', async () => { + const { getCoreTools } = await import('../src/tools/index.js'); + expect(getCoreTools).toBeDefined(); + expect(typeof getCoreTools).toBe('function'); + }); + + it('exports getToolByName', async () => { + const { getToolByName } = await import('../src/tools/index.js'); + expect(getToolByName).toBeDefined(); + expect(typeof getToolByName).toBe('function'); + }); + }); + + describe('utils barrel', () => { + it('exports getVersionInfo', async () => { + const { getVersionInfo } = await import('../src/utils/index.js'); + expect(getVersionInfo).toBeDefined(); + expect(typeof getVersionInfo).toBe('function'); + }); + + it('exports httpRequest', async () => { + const { httpRequest } = await import('../src/utils/index.js'); + expect(httpRequest).toBeDefined(); + expect(typeof httpRequest).toBe('function'); + }); + }); +});