@credal/actions 0.1.30 → 0.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/actions/actionMapper.js +138 -0
  2. package/dist/actions/autogen/templates.d.ts +22 -0
  3. package/dist/actions/autogen/templates.js +890 -2
  4. package/dist/actions/autogen/types.d.ts +663 -8
  5. package/dist/actions/autogen/types.js +246 -2
  6. package/dist/actions/groups.js +20 -3
  7. package/dist/actions/invoke.js +3 -0
  8. package/dist/actions/parse.js +3 -0
  9. package/dist/actions/providers/ashby/addCandidateToProject.d.ts +3 -0
  10. package/dist/actions/providers/ashby/addCandidateToProject.js +32 -0
  11. package/dist/actions/providers/ashby/createCandidate.d.ts +3 -0
  12. package/dist/actions/providers/ashby/createCandidate.js +42 -0
  13. package/dist/actions/providers/ashby/createNote.d.ts +3 -0
  14. package/dist/actions/providers/ashby/createNote.js +32 -0
  15. package/dist/actions/providers/ashby/getCandidateInfo.d.ts +3 -0
  16. package/dist/actions/providers/ashby/getCandidateInfo.js +34 -0
  17. package/dist/actions/providers/ashby/listCandidateNotes.d.ts +3 -0
  18. package/dist/actions/providers/ashby/listCandidateNotes.js +34 -0
  19. package/dist/actions/providers/ashby/listCandidates.d.ts +3 -0
  20. package/dist/actions/providers/ashby/listCandidates.js +31 -0
  21. package/dist/actions/providers/ashby/searchCandidates.d.ts +3 -0
  22. package/dist/actions/providers/ashby/searchCandidates.js +35 -0
  23. package/dist/actions/providers/ashby/updateCandidate.d.ts +3 -0
  24. package/dist/actions/providers/ashby/updateCandidate.js +60 -0
  25. package/dist/actions/providers/confluence/updatePage.js +15 -14
  26. package/dist/actions/providers/google-oauth/scheduleCalendarMeeting.d.ts +6 -0
  27. package/dist/actions/providers/google-oauth/scheduleCalendarMeeting.js +74 -0
  28. package/dist/actions/providers/jira/assignJiraTicket.d.ts +3 -0
  29. package/dist/actions/providers/jira/assignJiraTicket.js +52 -0
  30. package/dist/actions/providers/jira/commentJiraTicket.d.ts +3 -0
  31. package/dist/actions/providers/jira/commentJiraTicket.js +56 -0
  32. package/dist/actions/providers/jira/createJiraTicket.js +3 -24
  33. package/dist/actions/providers/jira/utils.d.ts +1 -0
  34. package/dist/actions/providers/jira/utils.js +34 -0
  35. package/dist/actions/providers/microsoft/messageTeamsChannel.d.ts +3 -0
  36. package/dist/actions/providers/microsoft/messageTeamsChannel.js +45 -0
  37. package/dist/actions/providers/microsoft/messageTeamsChat.d.ts +3 -0
  38. package/dist/actions/providers/microsoft/messageTeamsChat.js +42 -0
  39. package/dist/actions/providers/microsoft/utils.d.ts +4 -0
  40. package/dist/actions/providers/microsoft/utils.js +55 -0
  41. package/dist/actions/providers/salesforce/createCase.d.ts +3 -0
  42. package/dist/actions/providers/salesforce/createCase.js +44 -0
  43. package/dist/actions/providers/salesforce/generateSalesReport.d.ts +3 -0
  44. package/dist/actions/providers/salesforce/generateSalesReport.js +52 -0
  45. package/dist/actions/providers/salesforce/getRecord.d.ts +3 -0
  46. package/dist/actions/providers/salesforce/getRecord.js +42 -0
  47. package/dist/actions/providers/salesforce/updateRecord.d.ts +3 -0
  48. package/dist/actions/providers/salesforce/updateRecord.js +42 -0
  49. package/dist/actions/providers/slack/getChannelMessages.d.ts +3 -0
  50. package/dist/actions/providers/slack/getChannelMessages.js +33 -0
  51. package/dist/actions/providers/snowflake/runSnowflakeQuery.js +1 -0
  52. package/dist/actions/providers/workday/requestTimeOff.d.ts +23 -0
  53. package/dist/actions/providers/workday/requestTimeOff.js +88 -0
  54. package/dist/actions/providers/x/createXSharePostUrl.js +9 -2
  55. package/dist/actions/providers/zendesk/addCommentToTicket.d.ts +3 -0
  56. package/dist/actions/providers/zendesk/addCommentToTicket.js +37 -0
  57. package/dist/actions/providers/zendesk/assignTicket.d.ts +3 -0
  58. package/dist/actions/providers/zendesk/assignTicket.js +37 -0
  59. package/dist/actions/providers/zendesk/getTicketDetails.d.ts +3 -0
  60. package/dist/actions/providers/zendesk/getTicketDetails.js +35 -0
  61. package/dist/actions/providers/zendesk/updateTicketStatus.d.ts +3 -0
  62. package/dist/actions/providers/zendesk/updateTicketStatus.js +37 -0
  63. package/package.json +6 -1
  64. package/dist/actions/providers/googlemaps/nearbysearch.d.ts +0 -3
  65. package/dist/actions/providers/googlemaps/nearbysearch.js +0 -96
  66. package/dist/actions/providers/snowflake/runSnowflakeQueryWriteResultsToS3.d.ts +0 -3
  67. package/dist/actions/providers/snowflake/runSnowflakeQueryWriteResultsToS3.js +0 -154
  68. package/dist/actions/providers/x/scrapeTweetDataWithNitter.d.ts +0 -3
  69. package/dist/actions/providers/x/scrapeTweetDataWithNitter.js +0 -45
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const axiosClient_1 = require("../../util/axiosClient");
13
+ const searchCandidates = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
14
+ const { email, name } = params;
15
+ const { authToken } = authParams;
16
+ if (!authToken) {
17
+ throw new Error("Auth token is required");
18
+ }
19
+ const response = yield axiosClient_1.axiosClient.post(`https://api.ashbyhq.com/candidate.search`, {
20
+ email,
21
+ name,
22
+ }, {
23
+ auth: {
24
+ username: authToken,
25
+ password: "",
26
+ },
27
+ });
28
+ if (!response.data.success) {
29
+ throw new Error(response.data.errors.join("; "));
30
+ }
31
+ return {
32
+ candidates: response.data.results,
33
+ };
34
+ });
35
+ exports.default = searchCandidates;
@@ -0,0 +1,3 @@
1
+ import { ashbyUpdateCandidateFunction } from "../../autogen/types";
2
+ declare const updateCandidate: ashbyUpdateCandidateFunction;
3
+ export default updateCandidate;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const axiosClient_1 = require("../../util/axiosClient");
13
+ const updateCandidate = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
14
+ const { authToken } = authParams;
15
+ if (!authToken) {
16
+ throw new Error("Auth token is required");
17
+ }
18
+ if (!params.candidateId) {
19
+ throw new Error("Candidate ID is required");
20
+ }
21
+ const body = {
22
+ candidateId: params.candidateId,
23
+ };
24
+ if (params.name !== undefined)
25
+ body.name = params.name;
26
+ if (params.email !== undefined)
27
+ body.email = params.email;
28
+ if (params.phoneNumber !== undefined)
29
+ body.phoneNumber = params.phoneNumber;
30
+ if (params.linkedInUrl !== undefined)
31
+ body.linkedInUrl = params.linkedInUrl;
32
+ if (params.githubUrl !== undefined)
33
+ body.githubUrl = params.githubUrl;
34
+ if (params.websiteUrl !== undefined)
35
+ body.websiteUrl = params.websiteUrl;
36
+ if (params.alternateEmail !== undefined)
37
+ body.alternateEmail = params.alternateEmail;
38
+ if (params.socialLinks !== undefined)
39
+ body.socialLinks = params.socialLinks;
40
+ if (params.sourceId !== undefined)
41
+ body.sourceId = params.sourceId;
42
+ if (params.creditedToUserId !== undefined)
43
+ body.creditedToUserId = params.creditedToUserId;
44
+ if (params.location !== undefined)
45
+ body.location = params.location;
46
+ if (params.createdAt !== undefined)
47
+ body.createdAt = params.createdAt;
48
+ if (params.sendNotifications !== undefined)
49
+ body.sendNotifications = params.sendNotifications;
50
+ const response = yield axiosClient_1.axiosClient.post(`https://api.ashbyhq.com/candidate.update`, body, {
51
+ auth: {
52
+ username: authToken,
53
+ password: "",
54
+ },
55
+ });
56
+ if (!response.data.success) {
57
+ throw new Error(response.data.errors.join("; "));
58
+ }
59
+ });
60
+ exports.default = updateCandidate;
@@ -8,28 +8,30 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
- const axiosClient_1 = require("../../util/axiosClient");
13
- function getConfluenceRequestConfig(baseUrl, username, apiToken) {
14
- return {
15
+ const axios_1 = __importDefault(require("axios"));
16
+ function getConfluenceApi(baseUrl, username, apiToken) {
17
+ const api = axios_1.default.create({
15
18
  baseURL: baseUrl,
16
19
  headers: {
17
20
  Accept: "application/json",
21
+ // Tokens are associated with a specific user.
18
22
  Authorization: `Basic ${Buffer.from(`${username}:${apiToken}`).toString("base64")}`,
19
23
  },
20
- };
24
+ });
25
+ return api;
21
26
  }
22
27
  const confluenceUpdatePage = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
23
- const { pageId, content, title } = params;
24
- const { baseUrl, authToken, username } = authParams;
25
- if (!baseUrl || !authToken || !username) {
26
- throw new Error("Missing required authentication information");
27
- }
28
- const config = getConfluenceRequestConfig(baseUrl, username, authToken);
28
+ const { pageId, username, content, title } = params;
29
+ const { baseUrl, authToken } = authParams;
30
+ const api = getConfluenceApi(baseUrl, username, authToken);
29
31
  // Get current version number
30
- const response = yield axiosClient_1.axiosClient.get(`/api/v2/pages/${pageId}`, config);
32
+ const response = yield api.get(`/api/v2/pages/${pageId}`);
31
33
  const currVersion = response.data.version.number;
32
- const payload = {
34
+ yield api.put(`/api/v2/pages/${pageId}`, {
33
35
  id: pageId,
34
36
  status: "current",
35
37
  title,
@@ -40,7 +42,6 @@ const confluenceUpdatePage = (_a) => __awaiter(void 0, [_a], void 0, function* (
40
42
  version: {
41
43
  number: currVersion + 1,
42
44
  },
43
- };
44
- yield axiosClient_1.axiosClient.put(`/api/v2/pages/${pageId}`, payload, config);
45
+ });
45
46
  });
46
47
  exports.default = confluenceUpdatePage;
@@ -0,0 +1,6 @@
1
+ import { googleOauthScheduleCalendarMeetingFunction } from "../../autogen/types";
2
+ /**
3
+ * Creates a new Google calendar event using OAuth authentication
4
+ */
5
+ declare const scheduleCalendarMeeting: googleOauthScheduleCalendarMeetingFunction;
6
+ export default scheduleCalendarMeeting;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const uuid_1 = require("uuid");
13
+ const axiosClient_1 = require("../../util/axiosClient");
14
+ /**
15
+ * Creates a new Google calendar event using OAuth authentication
16
+ */
17
+ const scheduleCalendarMeeting = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
18
+ if (!authParams.authToken) {
19
+ throw new Error("authToken is required for Google Calendar API");
20
+ }
21
+ const { calendarId, name, start, end, description, attendees, useGoogleMeet } = params;
22
+ // https://developers.google.com/calendar/api/v3/reference/events/insert
23
+ let createEventApiUrl = `https://www.googleapis.com/calendar/v3/calendars/${calendarId}/events`;
24
+ const data = {
25
+ summary: name,
26
+ start: {
27
+ dateTime: start,
28
+ },
29
+ end: {
30
+ dateTime: end,
31
+ },
32
+ };
33
+ if (description) {
34
+ data.description = description;
35
+ }
36
+ if (attendees) {
37
+ data.attendees = attendees.map(attendee => ({ email: attendee }));
38
+ }
39
+ if (useGoogleMeet) {
40
+ createEventApiUrl += "?conferenceDataVersion=1";
41
+ data.conferenceData = {
42
+ createRequest: {
43
+ requestId: (0, uuid_1.v4)(),
44
+ },
45
+ };
46
+ }
47
+ try {
48
+ const response = yield axiosClient_1.axiosClient.post(createEventApiUrl, data, {
49
+ headers: {
50
+ Authorization: `Bearer ${authParams.authToken}`,
51
+ "Content-Type": "application/json",
52
+ },
53
+ });
54
+ if (response.status < 200 || response.status >= 300) {
55
+ return {
56
+ success: false,
57
+ error: response.data.error,
58
+ };
59
+ }
60
+ return {
61
+ success: true,
62
+ eventId: response.data.id,
63
+ eventUrl: response.data.htmlLink,
64
+ };
65
+ }
66
+ catch (error) {
67
+ console.error("Error scheduling calendar meeting", error);
68
+ return {
69
+ success: false,
70
+ error: error instanceof Error ? error.message : "Unknown error",
71
+ };
72
+ }
73
+ });
74
+ exports.default = scheduleCalendarMeeting;
@@ -0,0 +1,3 @@
1
+ import { jiraAssignJiraTicketFunction } from "../../autogen/types";
2
+ declare const assignJiraTicket: jiraAssignJiraTicketFunction;
3
+ export default assignJiraTicket;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const axios_1 = __importDefault(require("axios"));
16
+ const utils_1 = require("./utils");
17
+ const assignJiraTicket = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
18
+ const { authToken, cloudId, baseUrl } = authParams;
19
+ const apiUrl = `https://api.atlassian.com/ex/jira/${cloudId}/rest/api/3/`;
20
+ if (!cloudId || !authToken) {
21
+ throw new Error("Valid Cloud ID and auth token are required to assign Jira ticket");
22
+ }
23
+ try {
24
+ let assigneeId = params.assignee;
25
+ if (assigneeId && assigneeId.includes("@")) {
26
+ assigneeId = yield (0, utils_1.getUserAccountIdFromEmail)(assigneeId, apiUrl, authToken);
27
+ }
28
+ if (!assigneeId) {
29
+ throw new Error("Unable to get valid assignee account ID.");
30
+ }
31
+ yield axios_1.default.put(`${apiUrl}issue/${params.issueId}/assignee`, { accountId: assigneeId }, {
32
+ headers: {
33
+ Authorization: `Bearer ${authToken}`,
34
+ Accept: "application/json",
35
+ "Content-Type": "application/json",
36
+ },
37
+ });
38
+ return {
39
+ success: true,
40
+ ticketUrl: `${baseUrl}/browse/${params.issueId}`,
41
+ };
42
+ }
43
+ catch (error) {
44
+ const axiosError = error;
45
+ console.error("Error assigning issue:", axiosError);
46
+ return {
47
+ success: false,
48
+ error: axiosError.message,
49
+ };
50
+ }
51
+ });
52
+ exports.default = assignJiraTicket;
@@ -0,0 +1,3 @@
1
+ import { jiraCommentJiraTicketFunction } from "../../autogen/types";
2
+ declare const CommentJiraTicket: jiraCommentJiraTicketFunction;
3
+ export default CommentJiraTicket;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const axiosClient_1 = require("../../util/axiosClient");
13
+ const CommentJiraTicket = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
14
+ const { authToken, cloudId, baseUrl } = authParams;
15
+ if (!cloudId || !(params === null || params === void 0 ? void 0 : params.issueId)) {
16
+ throw new Error("Cloud ID and Issue ID are required to comment on a Jira ticket");
17
+ }
18
+ const apiUrl = `https://api.atlassian.com/ex/jira/${cloudId}/rest/api/3/issue/${params.issueId}/comment`;
19
+ try {
20
+ const response = yield axiosClient_1.axiosClient.post(apiUrl, {
21
+ body: {
22
+ type: "doc",
23
+ version: 1,
24
+ content: [
25
+ {
26
+ type: "paragraph",
27
+ content: [
28
+ {
29
+ type: "text",
30
+ text: params.comment,
31
+ },
32
+ ],
33
+ },
34
+ ],
35
+ },
36
+ }, {
37
+ headers: {
38
+ Authorization: `Bearer ${authToken}`,
39
+ Accept: "application/json",
40
+ "Content-Type": "application/json",
41
+ },
42
+ });
43
+ return {
44
+ success: true,
45
+ commentUrl: `${baseUrl}/browse/${params.issueId}?focusedCommentId=${response.data.id}`,
46
+ };
47
+ }
48
+ catch (error) {
49
+ console.error("Error commenting on Jira ticket: ", error);
50
+ return {
51
+ success: false,
52
+ error: error instanceof Error ? error.message : "Unknown error",
53
+ };
54
+ }
55
+ });
56
+ exports.default = CommentJiraTicket;
@@ -10,28 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const axiosClient_1 = require("../../util/axiosClient");
13
- function getUserAccountId(email, apiUrl, authToken) {
14
- return __awaiter(this, void 0, void 0, function* () {
15
- try {
16
- const response = yield axiosClient_1.axiosClient.get(`${apiUrl}/user/search?query=${encodeURIComponent(email)}`, {
17
- headers: {
18
- Authorization: `Bearer ${authToken}`,
19
- Accept: "application/json",
20
- },
21
- });
22
- if (response.data && response.data.length > 0) {
23
- return response.data[0].accountId;
24
- }
25
- return null;
26
- }
27
- catch (error) {
28
- // Try to complete request without assignee/reporter.
29
- const axiosError = error;
30
- console.error("Error finding user:", axiosError.message);
31
- return null;
32
- }
33
- });
34
- }
13
+ const utils_1 = require("./utils");
35
14
  const createJiraTicket = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
36
15
  const { authToken, cloudId, baseUrl } = authParams;
37
16
  const apiUrl = `https://api.atlassian.com/ex/jira/${cloudId}/rest/api/3/`;
@@ -41,12 +20,12 @@ const createJiraTicket = (_a) => __awaiter(void 0, [_a], void 0, function* ({ pa
41
20
  // If assignee is an email, look up the account ID
42
21
  let reporterId = null;
43
22
  if (params.reporter && typeof params.reporter === "string" && params.reporter.includes("@") && authToken) {
44
- reporterId = yield getUserAccountId(params.reporter, apiUrl, authToken);
23
+ reporterId = yield (0, utils_1.getUserAccountIdFromEmail)(params.reporter, apiUrl, authToken);
45
24
  }
46
25
  // If assignee is an email, look up the account ID
47
26
  let assigneeId = null;
48
27
  if (params.assignee && typeof params.assignee === "string" && params.assignee.includes("@") && authToken) {
49
- assigneeId = yield getUserAccountId(params.assignee, apiUrl, authToken);
28
+ assigneeId = yield (0, utils_1.getUserAccountIdFromEmail)(params.assignee, apiUrl, authToken);
50
29
  }
51
30
  const description = {
52
31
  type: "doc",
@@ -0,0 +1 @@
1
+ export declare function getUserAccountIdFromEmail(email: string, apiUrl: string, authToken: string): Promise<string | null>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getUserAccountIdFromEmail = getUserAccountIdFromEmail;
13
+ const axiosClient_1 = require("../../util/axiosClient");
14
+ function getUserAccountIdFromEmail(email, apiUrl, authToken) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ try {
17
+ const response = yield axiosClient_1.axiosClient.get(`${apiUrl}/user/search?query=${encodeURIComponent(email)}`, {
18
+ headers: {
19
+ Authorization: `Bearer ${authToken}`,
20
+ Accept: "application/json",
21
+ },
22
+ });
23
+ if (response.data && response.data.length > 0) {
24
+ return response.data[0].accountId;
25
+ }
26
+ return null;
27
+ }
28
+ catch (error) {
29
+ const axiosError = error;
30
+ console.error("Error finding user:", axiosError.message);
31
+ return null;
32
+ }
33
+ });
34
+ }
@@ -0,0 +1,3 @@
1
+ import { microsoftMessageTeamsChannelFunction } from "../../autogen/types";
2
+ declare const sendMessageToTeamsChannel: microsoftMessageTeamsChannelFunction;
3
+ export default sendMessageToTeamsChannel;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const utils_1 = require("./utils");
13
+ const sendMessageToTeamsChannel = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
14
+ const { channelId, teamId, message } = params;
15
+ if (!teamId) {
16
+ return {
17
+ success: false,
18
+ error: "Team ID is required to send a message",
19
+ };
20
+ }
21
+ if (!channelId) {
22
+ return { success: false, error: "Channel ID is required to send a message" };
23
+ }
24
+ if (!message) {
25
+ return {
26
+ success: false,
27
+ error: "Message content is required to send a message",
28
+ };
29
+ }
30
+ try {
31
+ const messageId = yield (0, utils_1.sendMessage)(`/teams/${teamId}/channels/${channelId}/messages`, message, authParams);
32
+ return {
33
+ success: true,
34
+ messageId: messageId,
35
+ };
36
+ }
37
+ catch (error) {
38
+ console.error(error);
39
+ return {
40
+ success: false,
41
+ error: error instanceof Error ? error.message : "Unknown error",
42
+ };
43
+ }
44
+ });
45
+ exports.default = sendMessageToTeamsChannel;
@@ -0,0 +1,3 @@
1
+ import { microsoftMessageTeamsChatFunction } from "../../autogen/types";
2
+ declare const sendMessageToTeamsChat: microsoftMessageTeamsChatFunction;
3
+ export default sendMessageToTeamsChat;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const utils_1 = require("./utils");
13
+ const sendMessageToTeamsChat = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
14
+ const { chatId, message } = params;
15
+ if (!chatId) {
16
+ return {
17
+ success: false,
18
+ error: "Chat ID is required to send a message",
19
+ };
20
+ }
21
+ if (!message) {
22
+ return {
23
+ success: false,
24
+ error: "Message content is required to send a message",
25
+ };
26
+ }
27
+ try {
28
+ const messageId = yield (0, utils_1.sendMessage)(`/chats/${chatId}/messages`, message, authParams);
29
+ return {
30
+ success: true,
31
+ messageId: messageId,
32
+ };
33
+ }
34
+ catch (error) {
35
+ console.error(error);
36
+ return {
37
+ success: false,
38
+ error: error instanceof Error ? error.message : "Unknown error",
39
+ };
40
+ }
41
+ });
42
+ exports.default = sendMessageToTeamsChat;
@@ -0,0 +1,4 @@
1
+ import { Client } from "@microsoft/microsoft-graph-client";
2
+ import { AuthParamsType } from "../../autogen/types";
3
+ export declare function getGraphClientForMessageSend(authParams: AuthParamsType): Promise<Client>;
4
+ export declare function sendMessage(api_url: string, message: string, authParams: AuthParamsType): Promise<string>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getGraphClientForMessageSend = getGraphClientForMessageSend;
13
+ exports.sendMessage = sendMessage;
14
+ const microsoft_graph_client_1 = require("@microsoft/microsoft-graph-client");
15
+ const axiosClient_1 = require("../../util/axiosClient");
16
+ function getGraphClientForMessageSend(authParams) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ if (!authParams.clientId ||
19
+ !authParams.clientSecret ||
20
+ !authParams.tenantId ||
21
+ !authParams.refreshToken ||
22
+ !authParams.redirectUri) {
23
+ throw new Error("Missing required authentication parameters");
24
+ }
25
+ const url = `https://login.microsoftonline.com/${authParams.tenantId}/oauth2/v2.0/token`;
26
+ const params = new URLSearchParams({
27
+ client_id: authParams.clientId,
28
+ client_secret: authParams.clientSecret,
29
+ scope: "offline_access ChannelMessage.Send ChatMessage.Send",
30
+ grant_type: "refresh_token",
31
+ refresh_token: authParams.refreshToken,
32
+ redirect_uri: authParams.redirectUri,
33
+ });
34
+ const response = yield axiosClient_1.axiosClient.post(url, params, {
35
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
36
+ });
37
+ const accessToken = response.data.access_token;
38
+ return microsoft_graph_client_1.Client.init({
39
+ authProvider: done => {
40
+ done(null, accessToken);
41
+ },
42
+ });
43
+ });
44
+ }
45
+ function sendMessage(api_url, message, authParams) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ const client = yield getGraphClientForMessageSend(authParams);
48
+ const response = yield client.api(api_url).post({
49
+ body: {
50
+ content: message,
51
+ },
52
+ });
53
+ return response.id;
54
+ });
55
+ }
@@ -0,0 +1,3 @@
1
+ import { salesforceCreateCaseFunction } from "../../autogen/types";
2
+ declare const createCase: salesforceCreateCaseFunction;
3
+ export default createCase;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const axiosClient_1 = require("../../util/axiosClient");
13
+ const createCase = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
14
+ const { authToken, baseUrl } = authParams;
15
+ const { subject, description, priority, origin, customFields } = params;
16
+ if (!authToken || !baseUrl) {
17
+ return {
18
+ success: false,
19
+ error: "authToken and baseUrl are required for Salesforce API",
20
+ };
21
+ }
22
+ const url = `${baseUrl}/services/data/v56.0/sobjects/Case`;
23
+ const caseData = Object.assign({ Subject: subject, Description: description, Priority: priority, Origin: origin }, customFields);
24
+ try {
25
+ const response = yield axiosClient_1.axiosClient.post(url, caseData, {
26
+ headers: {
27
+ Authorization: `Bearer ${authToken}`,
28
+ "Content-Type": "application/json",
29
+ },
30
+ });
31
+ return {
32
+ success: true,
33
+ caseId: response.data.id,
34
+ };
35
+ }
36
+ catch (error) {
37
+ console.error("Error creating Salesforce case:", error);
38
+ return {
39
+ success: false,
40
+ error: error instanceof Error ? error.message : "An unknown error occurred",
41
+ };
42
+ }
43
+ });
44
+ exports.default = createCase;
@@ -0,0 +1,3 @@
1
+ import { salesforceGenerateSalesReportFunction } from "../../autogen/types";
2
+ declare const generateSalesReport: salesforceGenerateSalesReportFunction;
3
+ export default generateSalesReport;