Skip to main content
Glama
TokenTargetAndSourceMapper.ts2.71 kB
import { TargetAndSourceMapper, SourceMapping, TargetMapping } from "./TargetAndSourceMapper.js"; /** * Mapper for Token login method type. * Default source is "Default" (empty configuration). * Supports Default and CustomHeader targets. */ export class TokenTargetAndSourceMapper implements TargetAndSourceMapper { getDefaultSourceType(): string { return "Default"; } mapSource(sourceType: string, params: any, existing?: any): SourceMapping { let source: 0 | 1 | 3 | 4 | 5; let sourceConfiguration: any; switch (sourceType) { case "Default": // DEFAULT (0) - Empty configuration for Token - Uses SimplifierToken source = 0; sourceConfiguration = {}; break; case "SystemReference": // SYSTEM_REFERENCE (3) - Uses SimplifierToken source = 3; sourceConfiguration = {}; break; case "Provided": // PROVIDED (1) - User-provided token if (!params.token) { throw new Error("Token Provided source requires 'token' field"); } source = 1; sourceConfiguration = { token: params.token, ...(existing && { changeToken: params.changeToken }) }; break; case "ProfileReference": // PROFILE_REFERENCE (4) if (!params.profileKey) { throw new Error("Token ProfileReference requires 'profileKey' field"); } source = 4; sourceConfiguration = { key: params.profileKey }; break; case "UserAttributeReference": // USER_ATTRIBUTE_REFERENCE (5) if (!params.userAttributeName || !params.userAttributeCategory) { throw new Error("Token UserAttributeReference requires 'userAttributeName' and 'userAttributeCategory' fields"); } source = 5; sourceConfiguration = { name: params.userAttributeName, category: params.userAttributeCategory }; break; default: throw new Error(`Unsupported sourceType for Token: ${sourceType}`); } return { source, sourceConfiguration }; } mapTarget(targetType: string, params: any): TargetMapping { let target: 0 | 1; let targetConfiguration: any = undefined; switch (targetType) { case "Default": target = 0; break; case "CustomHeader": if (!params.customHeaderName) { throw new Error("Token CustomHeader target requires 'customHeaderName' field"); } target = 1; targetConfiguration = { name: params.customHeaderName }; break; default: target = 0; // Default } return { target, targetConfiguration }; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SimplifierIO/simplifier-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server