@kya-os/mcp-i
Version:
The TypeScript MCP framework with identity features built-in
41 lines (40 loc) • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MemoryOAuthStorage = exports.MemoryTokenStorage = void 0;
// Module-level storage map that persists across instances (SINGLETON PATTERN)
const tokensMap = new Map();
class MemoryTokenStorage {
// same, module level map
tokens = tokensMap;
async getToken(token) {
const accessToken = tokensMap.get(token);
if (accessToken &&
accessToken.expiresAt &&
accessToken.expiresAt < new Date()) {
tokensMap.delete(token);
return null;
}
return accessToken || null;
}
async saveToken(token) {
tokensMap.set(token.token, token);
}
async deleteToken(token) {
tokensMap.delete(token);
}
async deleteTokensByClient(clientId) {
for (const [tokenValue, tokenData] of tokensMap.entries()) {
if (tokenData.clientId === clientId) {
tokensMap.delete(tokenValue);
}
}
}
}
exports.MemoryTokenStorage = MemoryTokenStorage;
class MemoryOAuthStorage {
tokens;
constructor() {
this.tokens = new MemoryTokenStorage();
}
}
exports.MemoryOAuthStorage = MemoryOAuthStorage;