@microsoft/agents-hosting-extensions-teams
Version:
Microsoft 365 Agents SDK for JavaScript. Teams extensions
63 lines • 2.53 kB
JavaScript
"use strict";
/**
* Copyright(c) Microsoft Corporation.All rights reserved.
* Licensed under the MIT License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.teamsChannelDataZodSchema = void 0;
exports.parseTeamsChannelData = parseTeamsChannelData;
const zod_1 = require("zod");
const channelInfo_1 = require("./channelInfo");
const notificationInfo_1 = require("./notificationInfo");
const onBehalfOf_1 = require("./onBehalfOf");
const teamsChannelDataSettings_1 = require("./teamsChannelDataSettings");
const teamsMeetingInfo_1 = require("./teamsMeetingInfo");
const tenantInfo_1 = require("./tenantInfo");
const teamInfo_1 = require("./teamInfo");
/**
* @private
* Zod schema for validating membership source types.
*/
const membershipSourceTypeZodSchema = zod_1.z.enum(['channel', 'team']);
/**
* Zod schema for validating membership source types.
*/
const membershipTypeZodSchema = zod_1.z.enum(['direct', 'transitive']);
/**
* @private
* Zod schema for validating a membership source.
*/
const membershipSourceZodSchema = zod_1.z.object({
sourceType: membershipSourceTypeZodSchema,
id: zod_1.z.string().min(1),
name: zod_1.z.string().optional(),
membershipType: membershipTypeZodSchema,
aadGroupId: zod_1.z.string().min(1).optional(),
tenantId: zod_1.z.string().min(1).optional(),
});
/**
* Zod schema for validating TeamsChannelData objects.
*/
exports.teamsChannelDataZodSchema = zod_1.z.object({
channel: channelInfo_1.channelInfoZodSchema.optional(),
eventType: zod_1.z.string().min(1).optional(),
team: teamInfo_1.teamInfoZodSchema.optional(),
notification: notificationInfo_1.notificationInfoZodSchema.optional(),
tenant: tenantInfo_1.tenantInfoZodSchema.optional(),
meeting: teamsMeetingInfo_1.teamsMeetingInfoZodSchema.optional(),
settings: teamsChannelDataSettings_1.teamsChannelDataSettingsZodSchema.optional(),
onBehalfOf: zod_1.z.array(onBehalfOf_1.onBehalfOfZodSchema).optional(),
sharedWithTeams: zod_1.z.array(teamInfo_1.teamInfoZodSchema).optional(),
unsharedFromTeams: zod_1.z.array(teamInfo_1.teamInfoZodSchema).optional(),
membershipSource: membershipSourceZodSchema.optional()
});
/**
* Parses the given object as TeamsChannelData.
*
* @param {object} o - The object to parse.
* @returns {TeamsChannelData} - The parsed TeamsChannelData.
*/
function parseTeamsChannelData(o) {
return exports.teamsChannelDataZodSchema.passthrough().parse(o);
}
//# sourceMappingURL=teamsChannelData.js.map