This commit is contained in:
2026-07-11 11:52:15 +03:00
parent 07db914ca0
commit a4741b6820
10 changed files with 35 additions and 42 deletions
+2 -13
View File
@@ -4,6 +4,7 @@ import { createRequire } from "node:module";
import { promisify } from "node:util";
import { extractEmail, type Email } from "../utils/extract_email.ts";
import { extractFolders, type Folder } from "../utils/extract_folder.ts";
import { initDataDir } from "../utils/data.ts";
import {
loadConfig,
saveConfig,
@@ -11,9 +12,8 @@ import {
setPassword,
getPassword,
hasPassword,
initDataDir,
type LoginConfig,
} from "../utils/config.ts";
} from "../utils/login.ts";
const ntlm: any = createRequire(import.meta.url)("httpntlm");
const postAsync = promisify(ntlm.post.bind(ntlm));
@@ -482,14 +482,3 @@ ${mailboxDataXml}
return [];
}
}
// Re-export for backward compatibility
export {
initDataDir,
loadConfig,
saveConfig,
clearConfig,
setPassword,
getPassword,
hasPassword,
} from "../utils/config.ts";
+1 -1
View File
@@ -4,7 +4,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
import { Command } from "commander";
import crypto from "node:crypto";
import http from "node:http";
import { initDataDir } from "./client/ews_client.ts";
import { initDataDir } from "./utils/data.ts";
import { registerAuthTools } from "./tools/auth.ts";
import { registerAvailabilityTools } from "./tools/availability.ts";
import { registerCalendarTools } from "./tools/calendar.ts";
+3 -9
View File
@@ -1,14 +1,8 @@
import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod/v4";
import {
clearConfig,
EwsClient,
hasPassword,
loadConfig,
saveConfig,
setPassword,
} from "../client/ews_client.ts";
import { type LoginConfig } from "../utils/config.ts";
import { clearConfig, hasPassword, loadConfig, saveConfig, setPassword } from "../utils/login.ts";
import { EwsClient } from "../client/ews_client.ts";
import { type LoginConfig } from "../utils/login.ts";
export function registerAuthTools(server: McpServer): void {
server.registerTool(
+2 -1
View File
@@ -1,6 +1,7 @@
import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod/v4";
import { EwsClient, loadConfig } from "../client/ews_client.ts";
import { loadConfig } from "../utils/login.ts";
import { EwsClient } from "../client/ews_client.ts";
export function registerAvailabilityTools(server: McpServer): void {
server.registerTool(
+2 -1
View File
@@ -2,7 +2,8 @@ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import fs from "node:fs";
import path from "node:path";
import { z } from "zod/v4";
import { EwsClient, loadConfig } from "../client/ews_client.ts";
import { loadConfig } from "../utils/login.ts";
import { EwsClient } from "../client/ews_client.ts";
export function registerCalendarTools(server: McpServer): void {
server.registerTool(
+2 -1
View File
@@ -2,7 +2,8 @@ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import fs from "node:fs";
import path from "node:path";
import { z } from "zod/v4";
import { EwsClient, loadConfig } from "../client/ews_client.ts";
import { loadConfig } from "../utils/login.ts";
import { EwsClient } from "../client/ews_client.ts";
function getClient(): EwsClient {
return new EwsClient(loadConfig());
+2 -1
View File
@@ -1,6 +1,7 @@
import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod/v4";
import { EwsClient, loadConfig } from "../client/ews_client.ts";
import { loadConfig } from "../utils/login.ts";
import { EwsClient } from "../client/ews_client.ts";
export function registerFolderTools(server: McpServer): void {
server.registerTool(
+2 -1
View File
@@ -1,6 +1,7 @@
import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod/v4";
import { EwsClient, loadConfig } from "../client/ews_client.ts";
import { loadConfig } from "../utils/login.ts";
import { EwsClient } from "../client/ews_client.ts";
export function registerPeopleTools(server: McpServer): void {
server.registerTool(
+13
View File
@@ -0,0 +1,13 @@
import fs from "node:fs";
import path from "node:path";
let dataDir: string = "./data";
export function initDataDir(dir: string): void {
dataDir = path.resolve(dir);
fs.mkdirSync(dataDir, { recursive: true });
}
export function configFilePath(): string {
return path.join(dataDir, "config.json");
}
+6 -14
View File
@@ -1,3 +1,9 @@
import fs from "node:fs";
import { configFilePath, initDataDir } from "./data.ts";
// Re-export for backward compatibility
export { initDataDir };
export interface LoginConfig {
serverUrl: string;
email: string;
@@ -5,16 +11,6 @@ export interface LoginConfig {
domain?: string;
}
import fs from "node:fs";
import path from "node:path";
let dataDir: string = "./data";
export function initDataDir(dir: string): void {
dataDir = path.resolve(dir);
fs.mkdirSync(dataDir, { recursive: true });
}
let inMemoryPassword: string | null = null;
export function setPassword(password: string): void {
@@ -33,10 +29,6 @@ export function clearPassword(): void {
inMemoryPassword = null;
}
function configFilePath(): string {
return path.join(dataDir, "config.json");
}
export function loadConfig(): LoginConfig {
const filePath = configFilePath();
if (!fs.existsSync(filePath)) {