UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

108 lines (107 loc) 4.13 kB
import { c as normalizeOptionalString } from "./string-coerce-mnp54Vah.js"; import { d as normalizeSecretInputString, u as normalizeResolvedSecretInputString } from "./types.secrets-_0JOMGE5.js"; import { a as tryReadSecretFileSync } from "./secret-file-PClaG9G0.js"; import { n as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./account-id-Df9e41E6.js"; import { t as resolveAccountEntry } from "./account-lookup-DL1YTqjF.js"; import "./string-coerce-runtime-CEGJWkQ_.js"; import { c as resolveMergedAccountConfig, t as createAccountListHelpers } from "./account-helpers-pcH3lGFY.js"; import "./core-DSxVv-v1.js"; import "./routing-CQ63ICPX.js"; import "./secret-input-DVCzFGxN.js"; //#region extensions/zalo/src/token.ts function readTokenFromFile(tokenFile) { return tryReadSecretFileSync(tokenFile, "Zalo token file", { rejectSymlink: true }) ?? ""; } function resolveZaloToken(config, accountId, options) { const resolvedAccountId = normalizeAccountId(accountId ?? config?.defaultAccount); const isDefaultAccount = resolvedAccountId === DEFAULT_ACCOUNT_ID; const baseConfig = config; const accountConfig = resolveAccountEntry(baseConfig?.accounts, normalizeAccountId(resolvedAccountId)); const accountHasBotToken = Boolean(accountConfig && Object.hasOwn(accountConfig, "botToken")); if (accountConfig && accountHasBotToken) { const token = options?.allowUnresolvedSecretRef ? normalizeSecretInputString(accountConfig.botToken) : normalizeResolvedSecretInputString({ value: accountConfig.botToken, path: `channels.zalo.accounts.${resolvedAccountId}.botToken` }); if (token) return { token, source: "config" }; const fileToken = readTokenFromFile(accountConfig.tokenFile); if (fileToken) return { token: fileToken, source: "configFile" }; } if (!accountHasBotToken) { const fileToken = readTokenFromFile(accountConfig?.tokenFile); if (fileToken) return { token: fileToken, source: "configFile" }; } if (!accountHasBotToken) { const token = options?.allowUnresolvedSecretRef ? normalizeSecretInputString(baseConfig?.botToken) : normalizeResolvedSecretInputString({ value: baseConfig?.botToken, path: "channels.zalo.botToken" }); if (token) return { token, source: "config" }; const fileToken = readTokenFromFile(baseConfig?.tokenFile); if (fileToken) return { token: fileToken, source: "configFile" }; } if (isDefaultAccount) { const envToken = process.env.ZALO_BOT_TOKEN?.trim(); if (envToken) return { token: envToken, source: "env" }; } return { token: "", source: "none" }; } //#endregion //#region extensions/zalo/src/accounts.ts const { listAccountIds: listZaloAccountIds, resolveDefaultAccountId: resolveDefaultZaloAccountId } = createAccountListHelpers("zalo", { implicitDefaultAccount: { channelKeys: ["botToken", "tokenFile"], envVars: ["ZALO_BOT_TOKEN"] } }); function mergeZaloAccountConfig(cfg, accountId) { return resolveMergedAccountConfig({ channelConfig: cfg.channels?.zalo, accounts: (cfg.channels?.zalo)?.accounts, accountId, omitKeys: ["defaultAccount"] }); } function resolveZaloAccount(params) { const accountId = normalizeAccountId(params.accountId ?? (params.cfg.channels?.zalo)?.defaultAccount); const baseEnabled = (params.cfg.channels?.zalo)?.enabled !== false; const merged = mergeZaloAccountConfig(params.cfg, accountId); const accountEnabled = merged.enabled !== false; const enabled = baseEnabled && accountEnabled; const tokenResolution = resolveZaloToken(params.cfg.channels?.zalo, accountId, { allowUnresolvedSecretRef: params.allowUnresolvedSecretRef }); return { accountId, name: normalizeOptionalString(merged.name), enabled, token: tokenResolution.token, tokenSource: tokenResolution.source, config: merged }; } function listEnabledZaloAccounts(cfg) { return listZaloAccountIds(cfg).map((accountId) => resolveZaloAccount({ cfg, accountId })).filter((account) => account.enabled); } //#endregion export { resolveZaloToken as a, resolveZaloAccount as i, listZaloAccountIds as n, resolveDefaultZaloAccountId as r, listEnabledZaloAccounts as t };