Files
openclaw/extensions/msteams/src/token.ts
2026-03-04 02:35:12 -05:00

41 lines
1.2 KiB
TypeScript

import type { MSTeamsConfig } from "openclaw/plugin-sdk/msteams";
import {
hasConfiguredSecretInput,
normalizeResolvedSecretInputString,
normalizeSecretInputString,
} from "./secret-input.js";
export type MSTeamsCredentials = {
appId: string;
appPassword: string;
tenantId: string;
};
export function hasConfiguredMSTeamsCredentials(cfg?: MSTeamsConfig): boolean {
return Boolean(
normalizeSecretInputString(cfg?.appId) &&
hasConfiguredSecretInput(cfg?.appPassword) &&
normalizeSecretInputString(cfg?.tenantId),
);
}
export function resolveMSTeamsCredentials(cfg?: MSTeamsConfig): MSTeamsCredentials | undefined {
const appId =
normalizeSecretInputString(cfg?.appId) ||
normalizeSecretInputString(process.env.MSTEAMS_APP_ID);
const appPassword =
normalizeResolvedSecretInputString({
value: cfg?.appPassword,
path: "channels.msteams.appPassword",
}) || normalizeSecretInputString(process.env.MSTEAMS_APP_PASSWORD);
const tenantId =
normalizeSecretInputString(cfg?.tenantId) ||
normalizeSecretInputString(process.env.MSTEAMS_TENANT_ID);
if (!appId || !appPassword || !tenantId) {
return undefined;
}
return { appId, appPassword, tenantId };
}