UNPKG

@brianveltman/sonatype-mcp

Version:

Model Context Protocol server for Sonatype Nexus Repository Manager

68 lines 2.53 kB
export class ComponentService { nexusClient; constructor(nexusClient) { this.nexusClient = nexusClient; } async searchComponents(params = {}) { const queryParams = {}; if (params.repository) queryParams.repository = params.repository; if (params.format) queryParams.format = params.format; if (params.group) queryParams.group = params.group; if (params.name) queryParams.name = params.name; if (params.version) queryParams.version = params.version; if (params.prerelease !== undefined) queryParams.prerelease = params.prerelease.toString(); if (params.sort) queryParams.sort = params.sort; if (params.direction) queryParams.direction = params.direction; const response = await this.nexusClient.get('/service/rest/v1/search', { params: queryParams }); return response; } async getComponent(id) { const component = await this.nexusClient.get(`/service/rest/v1/components/${encodeURIComponent(id)}`); return component; } async uploadComponent(repository, formData) { const component = await this.nexusClient.post(`/service/rest/v1/components?repository=${encodeURIComponent(repository)}`, formData, { headers: formData.getHeaders ? formData.getHeaders() : { 'Content-Type': 'multipart/form-data' } }); return component; } async deleteComponent(id) { await this.nexusClient.delete(`/service/rest/v1/components/${encodeURIComponent(id)}`); } async getComponentVersions(repository, format, group, name) { const searchParams = { repository, format, group, name, sort: 'version', direction: 'desc' }; const response = await this.searchComponents(searchParams); return response.items.map(component => component.version); } async getAssets(componentId) { const component = await this.getComponent(componentId); return component.assets; } async getAsset(id) { const asset = await this.nexusClient.get(`/service/rest/v1/assets/${encodeURIComponent(id)}`); return asset; } async deleteAsset(id) { await this.nexusClient.delete(`/service/rest/v1/assets/${encodeURIComponent(id)}`); } } //# sourceMappingURL=components.js.map