🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@robinpath/teams

Package Overview
Dependencies
Maintainers
4
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@robinpath/teams - npm Package Compare versions

Comparing version
0.1.0
to
0.1.1
+36
-7
package.json
{
"name": "@robinpath/teams",
"version": "0.1.0",
"publishConfig": { "access": "public" },
"version": "0.1.1",
"publishConfig": {
"access": "public"
},
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"exports": { ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" } },
"files": ["dist"],
"scripts": { "build": "tsc" },
"peerDependencies": { "@wiredwp/robinpath": ">=0.20.0" },
"devDependencies": { "@wiredwp/robinpath": "^0.30.1", "typescript": "^5.6.0" }
"exports": {
".": {
"import": "./dist/index.js",
"types": "./dist/index.d.ts"
}
},
"files": [
"dist"
],
"scripts": {
"build": "tsc"
},
"peerDependencies": {
"@robinpath/core": ">=0.20.0"
},
"devDependencies": {
"@robinpath/core": "^0.30.1",
"typescript": "^5.6.0"
},
"description": "Teams module for RobinPath.",
"keywords": [
"teams",
"messaging"
],
"license": "MIT",
"robinpath": {
"category": "messaging",
"type": "integration",
"auth": "bearer-token",
"functionCount": 10,
"baseUrl": "https://graph.microsoft.com"
}
}
-6
import type { ModuleAdapter } from "@wiredwp/robinpath";
declare const TeamsModule: ModuleAdapter;
export default TeamsModule;
export { TeamsModule };
export { TeamsFunctions, TeamsFunctionMetadata, TeamsModuleMetadata } from "./teams.js";
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,QAAA,MAAM,WAAW,EAAE,aAMlB,CAAC;AAEF,eAAe,WAAW,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
import { TeamsFunctions, TeamsFunctionMetadata, TeamsModuleMetadata } from "./teams.js";
const TeamsModule = {
name: "teams",
functions: TeamsFunctions,
functionMetadata: TeamsFunctionMetadata,
moduleMetadata: TeamsModuleMetadata,
global: false,
}; // as ModuleAdapter
export default TeamsModule;
export { TeamsModule };
export { TeamsFunctions, TeamsFunctionMetadata, TeamsModuleMetadata } from "./teams.js";
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAExF,MAAM,WAAW,GAAkB;IACjC,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,cAAc;IACzB,gBAAgB,EAAE,qBAA4B;IAC9C,cAAc,EAAE,mBAA0B;IAC1C,MAAM,EAAE,KAAK;CACd,CAAC,CAAC,mBAAmB;AAEtB,eAAe,WAAW,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
import type { BuiltinHandler } from "@wiredwp/robinpath";
export declare const TeamsFunctions: Record<string, BuiltinHandler>;
export declare const TeamsFunctionMetadata: {
setToken: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
sendChannel: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
sendChat: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
replyToMessage: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
listTeams: {
description: string;
parameters: never[];
returnType: string;
returnDescription: string;
example: string;
};
listChannels: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
getMessages: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
createChannel: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
listChats: {
description: string;
parameters: never[];
returnType: string;
returnDescription: string;
example: string;
};
sendWebhook: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
example: string;
};
};
export declare const TeamsModuleMetadata: {
description: string;
category: string;
methods: string[];
};
//# sourceMappingURL=teams.d.ts.map
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../src/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2C,MAAM,oBAAoB,CAAC;AA0HlG,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAWzD,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmGjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;CAI/B,CAAC"}
const config = new Map();
function getToken() {
const token = config.get("token");
if (!token)
throw new Error('Teams: token not configured. Call teams.setToken first.');
return token;
}
async function graphApi(path, method = "GET", body) {
const token = getToken();
const res = await fetch(`https://graph.microsoft.com/v1.0${path}`, {
method,
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
},
body: body ? JSON.stringify(body) : undefined,
});
if (!res.ok) {
const text = await res.text();
throw new Error(`Microsoft Graph API error (${res.status}): ${text}`);
}
if (res.status === 204)
return { success: true };
return res.json();
}
const setToken = (args) => {
const token = args[0];
if (!token)
throw new Error("teams.setToken requires a token.");
config.set("token", token);
return "Microsoft Teams token configured.";
};
const sendChannel = async (args) => {
const teamId = args[0];
const channelId = args[1];
const message = args[2];
if (!teamId || !channelId || !message)
throw new Error("teams.sendChannel requires teamId, channelId, and message.");
return graphApi(`/teams/${teamId}/channels/${channelId}/messages`, "POST", {
body: { content: message, contentType: "html" },
});
};
const sendChat = async (args) => {
const chatId = args[0];
const message = args[1];
if (!chatId || !message)
throw new Error("teams.sendChat requires chatId and message.");
return graphApi(`/chats/${chatId}/messages`, "POST", {
body: { content: message, contentType: "html" },
});
};
const replyToMessage = async (args) => {
const teamId = args[0];
const channelId = args[1];
const messageId = args[2];
const reply = args[3];
if (!teamId || !channelId || !messageId || !reply)
throw new Error("teams.replyToMessage requires teamId, channelId, messageId, and reply.");
return graphApi(`/teams/${teamId}/channels/${channelId}/messages/${messageId}/replies`, "POST", {
body: { content: reply, contentType: "html" },
});
};
const listTeams = async () => {
return graphApi("/me/joinedTeams");
};
const listChannels = async (args) => {
const teamId = args[0];
if (!teamId)
throw new Error("teams.listChannels requires a teamId.");
return graphApi(`/teams/${teamId}/channels`);
};
const getMessages = async (args) => {
const teamId = args[0];
const channelId = args[1];
const opts = (typeof args[2] === "object" && args[2] !== null ? args[2] : {});
if (!teamId || !channelId)
throw new Error("teams.getMessages requires teamId and channelId.");
const top = opts.top ? `?$top=${opts.top}` : "";
return graphApi(`/teams/${teamId}/channels/${channelId}/messages${top}`);
};
const createChannel = async (args) => {
const teamId = args[0];
const displayName = args[1];
const opts = (typeof args[2] === "object" && args[2] !== null ? args[2] : {});
if (!teamId || !displayName)
throw new Error("teams.createChannel requires teamId and displayName.");
const payload = {
displayName,
membershipType: opts.membershipType ?? "standard",
};
if (opts.description)
payload.description = opts.description;
return graphApi(`/teams/${teamId}/channels`, "POST", payload);
};
const listChats = async () => {
return graphApi("/me/chats");
};
const sendWebhook = async (args) => {
const webhookUrl = args[0];
const message = args[1];
const opts = (typeof args[2] === "object" && args[2] !== null ? args[2] : {});
if (!webhookUrl || !message)
throw new Error("teams.sendWebhook requires webhookUrl and message.");
const payload = { text: message };
if (opts.title)
payload.title = opts.title;
if (opts.themeColor)
payload.themeColor = opts.themeColor;
if (opts.sections)
payload.sections = opts.sections;
const res = await fetch(webhookUrl, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload),
});
if (!res.ok) {
const text = await res.text();
throw new Error(`Teams Webhook error (${res.status}): ${text}`);
}
return "Webhook message sent.";
};
export const TeamsFunctions = {
setToken,
sendChannel,
sendChat,
replyToMessage,
listTeams,
listChannels,
getMessages,
createChannel,
listChats,
sendWebhook,
};
export const TeamsFunctionMetadata = {
setToken: {
description: "Set the Microsoft Graph API access token.",
parameters: [
{ name: "token", dataType: "string", description: "OAuth2 access token with Teams permissions", formInputType: "text", required: true },
],
returnType: "string",
returnDescription: "Confirmation message.",
example: 'teams.setToken "eyJ0xxx"',
},
sendChannel: {
description: "Send a message to a Teams channel.",
parameters: [
{ name: "teamId", dataType: "string", description: "Team ID", formInputType: "text", required: true },
{ name: "channelId", dataType: "string", description: "Channel ID", formInputType: "text", required: true },
{ name: "message", dataType: "string", description: "Message content (supports HTML)", formInputType: "textarea", required: true },
],
returnType: "object",
returnDescription: "Created message object.",
example: 'teams.sendChannel "team-id" "channel-id" "Hello team!"',
},
sendChat: {
description: "Send a message in a 1:1 or group chat.",
parameters: [
{ name: "chatId", dataType: "string", description: "Chat ID", formInputType: "text", required: true },
{ name: "message", dataType: "string", description: "Message content (supports HTML)", formInputType: "textarea", required: true },
],
returnType: "object",
returnDescription: "Created message object.",
example: 'teams.sendChat "chat-id" "Hey there!"',
},
replyToMessage: {
description: "Reply to a message in a channel.",
parameters: [
{ name: "teamId", dataType: "string", description: "Team ID", formInputType: "text", required: true },
{ name: "channelId", dataType: "string", description: "Channel ID", formInputType: "text", required: true },
{ name: "messageId", dataType: "string", description: "Message ID to reply to", formInputType: "text", required: true },
{ name: "reply", dataType: "string", description: "Reply content", formInputType: "textarea", required: true },
],
returnType: "object",
returnDescription: "Created reply message.",
example: 'teams.replyToMessage "team-id" "channel-id" "msg-id" "Thanks!"',
},
listTeams: {
description: "List all teams the user has joined.",
parameters: [],
returnType: "object",
returnDescription: "Object with value array of teams.",
example: "teams.listTeams",
},
listChannels: {
description: "List channels in a team.",
parameters: [
{ name: "teamId", dataType: "string", description: "Team ID", formInputType: "text", required: true },
],
returnType: "object",
returnDescription: "Object with value array of channels.",
example: 'teams.listChannels "team-id"',
},
getMessages: {
description: "Get messages from a channel.",
parameters: [
{ name: "teamId", dataType: "string", description: "Team ID", formInputType: "text", required: true },
{ name: "channelId", dataType: "string", description: "Channel ID", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "Options: top (number of messages)", formInputType: "json", required: false },
],
returnType: "object",
returnDescription: "Object with value array of messages.",
example: 'teams.getMessages "team-id" "channel-id" {"top":20}',
},
createChannel: {
description: "Create a new channel in a team.",
parameters: [
{ name: "teamId", dataType: "string", description: "Team ID", formInputType: "text", required: true },
{ name: "displayName", dataType: "string", description: "Channel name", formInputType: "text", required: true },
{ name: "options", dataType: "object", description: "Options: description, membershipType (standard|private|shared)", formInputType: "json", required: false },
],
returnType: "object",
returnDescription: "Created channel object.",
example: 'teams.createChannel "team-id" "New Channel" {"description":"A new channel"}',
},
listChats: {
description: "List all chats for the current user.",
parameters: [],
returnType: "object",
returnDescription: "Object with value array of chats.",
example: "teams.listChats",
},
sendWebhook: {
description: "Send a message via an incoming webhook URL.",
parameters: [
{ name: "webhookUrl", dataType: "string", description: "Incoming webhook URL", formInputType: "text", required: true },
{ name: "message", dataType: "string", description: "Message text", formInputType: "textarea", required: true },
{ name: "options", dataType: "object", description: "Options: title, themeColor, sections", formInputType: "json", required: false },
],
returnType: "string",
returnDescription: "Confirmation message.",
example: 'teams.sendWebhook "https://outlook.office.com/webhook/xxx" "Alert: Build passed!"',
},
};
export const TeamsModuleMetadata = {
description: "Send messages, manage channels, and interact with Microsoft Teams via Microsoft Graph API.",
category: "messaging",
methods: Object.keys(TeamsFunctions),
};
//# sourceMappingURL=teams.js.map
{"version":3,"file":"teams.js","sourceRoot":"","sources":["../src/teams.ts"],"names":[],"mappings":"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"}