@credal/actions 0.2.197 → 0.2.199
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.
- package/dist/actions/actionMapper.js +8 -1
- package/dist/actions/autogen/templates.d.ts +1 -0
- package/dist/actions/autogen/templates.js +79 -18
- package/dist/actions/autogen/types.d.ts +39 -0
- package/dist/actions/autogen/types.js +43 -8
- package/dist/actions/groups.js +4 -1
- package/dist/actions/invoke.js +11 -22
- package/dist/actions/parse.js +231 -244
- package/dist/actions/providers/asana/commentAsanaTask.js +8 -15
- package/dist/actions/providers/asana/createAsanaTask.js +20 -21
- package/dist/actions/providers/asana/getTasksDetails.js +18 -34
- package/dist/actions/providers/asana/listAsanaTasksByProject.js +62 -79
- package/dist/actions/providers/asana/searchAsanaTasks.js +6 -16
- package/dist/actions/providers/asana/updateAsanaTask.js +16 -15
- package/dist/actions/providers/asana/utils.js +47 -64
- package/dist/actions/providers/bing/getTopNSearchResultUrls.js +4 -14
- package/dist/actions/providers/confluence/fetchPageContent.js +5 -15
- package/dist/actions/providers/confluence/overwritePage.js +5 -14
- package/dist/actions/providers/finnhub/getBasicFinancials.js +7 -19
- package/dist/actions/providers/finnhub/symbolLookup.js +3 -12
- package/dist/actions/providers/firecrawl/deepResearch.js +11 -21
- package/dist/actions/providers/firecrawl/getTopNSearchResultUrls.js +8 -21
- package/dist/actions/providers/firecrawl/scrapeTweetDataWithNitter.js +4 -13
- package/dist/actions/providers/firecrawl/scrapeUrl.js +16 -21
- package/dist/actions/providers/firecrawl/searchAndScrape.js +6 -17
- package/dist/actions/providers/generic/fillTemplate.js +2 -11
- package/dist/actions/providers/github/createBranch.js +9 -18
- package/dist/actions/providers/github/createOrUpdateFile.js +6 -15
- package/dist/actions/providers/github/createPullRequest.js +5 -14
- package/dist/actions/providers/github/fetchFile.d.ts +3 -0
- package/dist/actions/providers/github/fetchFile.js +131 -0
- package/dist/actions/providers/github/getBranch.js +4 -13
- package/dist/actions/providers/github/getContents.d.ts +3 -0
- package/dist/actions/providers/github/getContents.js +41 -0
- package/dist/actions/providers/github/getFileContent.js +6 -16
- package/dist/actions/providers/github/getPullRequestDetails.js +39 -18
- package/dist/actions/providers/github/listCommits.js +17 -15
- package/dist/actions/providers/github/listDirectory.js +13 -25
- package/dist/actions/providers/github/listPullRequests.js +4 -13
- package/dist/actions/providers/github/searchOrganization.js +29 -49
- package/dist/actions/providers/github/utils.js +5 -16
- package/dist/actions/providers/gitlab/getFileContent.js +13 -24
- package/dist/actions/providers/gitlab/getMergeRequest.js +18 -30
- package/dist/actions/providers/gitlab/listDirectory.js +15 -27
- package/dist/actions/providers/gitlab/searchGroup.js +45 -52
- package/dist/actions/providers/gitlab/utils.js +19 -32
- package/dist/actions/providers/google-oauth/addGroupMember.js +3 -12
- package/dist/actions/providers/google-oauth/addTextToTopOfDoc.js +3 -12
- package/dist/actions/providers/google-oauth/appendRowsToSpreadsheet.js +4 -13
- package/dist/actions/providers/google-oauth/createNewGoogleDoc.js +7 -17
- package/dist/actions/providers/google-oauth/createPresentation.js +7 -13
- package/dist/actions/providers/google-oauth/createSpreadsheet.js +7 -13
- package/dist/actions/providers/google-oauth/deleteCalendarEvent.js +3 -12
- package/dist/actions/providers/google-oauth/deleteGroupMember.js +3 -12
- package/dist/actions/providers/google-oauth/deleteRowFromSpreadsheet.js +3 -12
- package/dist/actions/providers/google-oauth/editAGoogleCalendarEvent.js +4 -14
- package/dist/actions/providers/google-oauth/getDriveFileContentById.js +23 -33
- package/dist/actions/providers/google-oauth/getGroup.js +3 -12
- package/dist/actions/providers/google-oauth/getPresentation.js +23 -37
- package/dist/actions/providers/google-oauth/hasGroupMember.js +3 -12
- package/dist/actions/providers/google-oauth/listCalendarEvents.js +27 -21
- package/dist/actions/providers/google-oauth/listCalendars.js +4 -14
- package/dist/actions/providers/google-oauth/listGroupMembers.js +4 -13
- package/dist/actions/providers/google-oauth/listGroups.js +4 -14
- package/dist/actions/providers/google-oauth/queryGoogleBigQuery.js +10 -21
- package/dist/actions/providers/google-oauth/scheduleCalendarMeeting.js +11 -14
- package/dist/actions/providers/google-oauth/searchDriveByKeywords.js +3 -12
- package/dist/actions/providers/google-oauth/searchDriveByKeywordsAndGetFileContent.js +12 -23
- package/dist/actions/providers/google-oauth/searchDriveByQuery.js +30 -42
- package/dist/actions/providers/google-oauth/searchDriveByQueryAndGetFileContent.js +9 -20
- package/dist/actions/providers/google-oauth/updateCalendarEvent.js +3 -12
- package/dist/actions/providers/google-oauth/updateDoc.js +3 -12
- package/dist/actions/providers/google-oauth/updatePresentation.js +3 -12
- package/dist/actions/providers/google-oauth/updateRowsInSpreadsheet.js +4 -13
- package/dist/actions/providers/google-oauth/updateSpreadsheet.js +3 -12
- package/dist/actions/providers/google-oauth/utils/decodeMessage.js +7 -8
- package/dist/actions/providers/googleSearch/customSearch.js +18 -36
- package/dist/actions/providers/googlemail/listGmailThreads.js +7 -16
- package/dist/actions/providers/googlemail/replyToGmail.d.ts +3 -0
- package/dist/actions/providers/googlemail/replyToGmail.js +89 -0
- package/dist/actions/providers/googlemail/searchGmailMessages.js +10 -20
- package/dist/actions/providers/googlemail/sendGmail.js +7 -17
- package/dist/actions/providers/googlemaps/nearbysearchRestaurants.js +13 -25
- package/dist/actions/providers/googlemaps/validateAddress.js +3 -12
- package/dist/actions/providers/hubspot/getCompanies.js +4 -14
- package/dist/actions/providers/hubspot/getCompanyDetails.js +3 -12
- package/dist/actions/providers/hubspot/getContactDetails.js +3 -12
- package/dist/actions/providers/hubspot/getContacts.js +4 -14
- package/dist/actions/providers/hubspot/getDealDetails.js +3 -12
- package/dist/actions/providers/hubspot/getDeals.js +3 -12
- package/dist/actions/providers/hubspot/getTicketDetails.js +3 -12
- package/dist/actions/providers/hubspot/getTickets.js +3 -12
- package/dist/actions/providers/jira/assignJiraTicket.js +4 -13
- package/dist/actions/providers/jira/commentJiraTicket.js +3 -12
- package/dist/actions/providers/jira/createJiraTicket.js +22 -18
- package/dist/actions/providers/jira/createServiceDeskRequest.js +3 -12
- package/dist/actions/providers/jira/getJiraDCIssuesByQuery.js +5 -14
- package/dist/actions/providers/jira/getJiraIssuesByQuery.js +19 -29
- package/dist/actions/providers/jira/getJiraTicketDetails.js +3 -12
- package/dist/actions/providers/jira/getJiraTicketHistory.js +3 -12
- package/dist/actions/providers/jira/moveJiraTicketToProject.js +11 -21
- package/dist/actions/providers/jira/publicCommentOnServiceDeskRequest.js +3 -12
- package/dist/actions/providers/jira/updateJiraTicketDetails.js +15 -15
- package/dist/actions/providers/jira/updateJiraTicketStatus.js +4 -13
- package/dist/actions/providers/jira/utils.js +104 -126
- package/dist/actions/providers/linear/getIssueDetails.js +10 -20
- package/dist/actions/providers/linear/getIssues.js +11 -21
- package/dist/actions/providers/linear/getProjectDetails.js +10 -20
- package/dist/actions/providers/linear/getProjects.js +6 -16
- package/dist/actions/providers/linear/getTeamDetails.js +7 -17
- package/dist/actions/providers/linear/getTeams.js +5 -15
- package/dist/actions/providers/looker/enableUserByEmail.js +5 -14
- package/dist/actions/providers/math/add.js +2 -11
- package/dist/actions/providers/microsoft/createDocument.js +4 -13
- package/dist/actions/providers/microsoft/getDocument.js +4 -13
- package/dist/actions/providers/microsoft/messageTeamsChannel.js +4 -13
- package/dist/actions/providers/microsoft/messageTeamsChat.js +4 -13
- package/dist/actions/providers/microsoft/updateDocument.js +4 -13
- package/dist/actions/providers/microsoft/updateSpreadsheet.js +4 -13
- package/dist/actions/providers/microsoft/utils.js +9 -20
- package/dist/actions/providers/mongodb/insertMongoDoc.js +5 -14
- package/dist/actions/providers/notion/searchByTitle.js +3 -12
- package/dist/actions/providers/nws/getForecastForLocation.js +4 -13
- package/dist/actions/providers/oktaOrg/getOktaUserByName.js +3 -12
- package/dist/actions/providers/openstreetmap/getLatitudeLongitudeFromLocation.js +3 -12
- package/dist/actions/providers/perplexity/perplexityDeepResearch.js +11 -21
- package/dist/actions/providers/resend/sendEmail.js +3 -12
- package/dist/actions/providers/resend/sendEmailHtml.js +3 -12
- package/dist/actions/providers/salesforce/createCase.js +10 -13
- package/dist/actions/providers/salesforce/createRecord.js +3 -12
- package/dist/actions/providers/salesforce/executeReport.js +3 -12
- package/dist/actions/providers/salesforce/generateSalesReport.js +3 -12
- package/dist/actions/providers/salesforce/getRecord.js +3 -12
- package/dist/actions/providers/salesforce/getReportMetadata.js +11 -21
- package/dist/actions/providers/salesforce/getSalesforceRecordsByQuery.js +7 -17
- package/dist/actions/providers/salesforce/listReports.js +3 -12
- package/dist/actions/providers/salesforce/searchAllSalesforceRecords.js +3 -12
- package/dist/actions/providers/salesforce/searchSalesforceRecords.js +3 -12
- package/dist/actions/providers/salesforce/updateRecord.js +3 -12
- package/dist/actions/providers/slack/archiveChannel.js +9 -2
- package/dist/actions/providers/slack/createChannel.js +7 -17
- package/dist/actions/providers/slack/getChannelMembers.js +8 -18
- package/dist/actions/providers/slack/getChannelMessages.js +8 -18
- package/dist/actions/providers/slack/helpers.js +16 -47
- package/dist/actions/providers/slack/messageTransformers.js +10 -13
- package/dist/actions/providers/slack/sendDmFromBot.js +9 -19
- package/dist/actions/providers/slack/sendMessage.js +7 -17
- package/dist/actions/providers/slackUser/searchSlack.js +179 -212
- package/dist/actions/providers/slackUser/searchSlackRTS.js +20 -33
- package/dist/actions/providers/slackUser/utils.js +1 -1
- package/dist/actions/providers/snowflake/auth/getSnowflakeConnection.js +23 -34
- package/dist/actions/providers/snowflake/getRowByFieldValue.js +4 -13
- package/dist/actions/providers/snowflake/runSnowflakeQuery.js +9 -19
- package/dist/actions/providers/zendesk/addCommentToTicket.js +5 -14
- package/dist/actions/providers/zendesk/assignTicket.js +3 -12
- package/dist/actions/providers/zendesk/createZendeskTicket.js +3 -12
- package/dist/actions/providers/zendesk/getTicketDetails.js +3 -12
- package/dist/actions/providers/zendesk/listTickets.js +3 -12
- package/dist/actions/providers/zendesk/searchZendeskByQuery.js +3 -12
- package/dist/actions/providers/zendesk/updateTicketStatus.js +3 -12
- package/dist/actions/util/axiosClient.js +5 -5
- package/dist/app.js +14 -25
- package/dist/utils/google.js +122 -143
- package/dist/utils/pdf.js +10 -21
- package/package.json +10 -9
- package/dist/actions/providers/credal/callCopilot.d.ts +0 -3
- package/dist/actions/providers/credal/callCopilot.js +0 -36
- package/dist/actions/providers/math/index.d.ts +0 -1
- package/dist/actions/providers/math/index.js +0 -37
- package/dist/actions/providers/salesforce/getSalesforceRecordByQuery.d.ts +0 -3
- package/dist/actions/providers/salesforce/getSalesforceRecordByQuery.js +0 -43
- package/dist/actions/providers/slack/index.d.ts +0 -1
- package/dist/actions/providers/slack/index.js +0 -37
- package/dist/actions/providers/slack/listConversations.d.ts +0 -3
- package/dist/actions/providers/slack/listConversations.js +0 -41
|
@@ -4,7 +4,7 @@ export function normalizeChannelOperand(raw) {
|
|
|
4
4
|
return;
|
|
5
5
|
// Accept inputs like "C123", "#C123", "<#C123>", "<#C123|name>", "general", or "#general"
|
|
6
6
|
const m = s.match(/<#(C[A-Z0-9]+)(?:\|[^>]+)?>/i);
|
|
7
|
-
if (m
|
|
7
|
+
if (m?.[1])
|
|
8
8
|
return `<#${m[1]}>`;
|
|
9
9
|
const stripped = s.replace(/^#/, "");
|
|
10
10
|
if (/^C[A-Z0-9]+$/i.test(stripped))
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import snowflake from "snowflake-sdk";
|
|
11
2
|
import forge from "node-forge";
|
|
12
3
|
const getPrivateKeyCorrectFormat = (privateKey) => {
|
|
@@ -18,7 +9,7 @@ const getPrivateKeyCorrectFormat = (privateKey) => {
|
|
|
18
9
|
}
|
|
19
10
|
catch (error) {
|
|
20
11
|
console.error("Error processing private key:", error);
|
|
21
|
-
throw new Error("Invalid private key format. Please check the key format and try again.");
|
|
12
|
+
throw new Error("Invalid private key format. Please check the key format and try again.", { cause: error });
|
|
22
13
|
}
|
|
23
14
|
};
|
|
24
15
|
export function getSnowflakeConnection(snowflakeData, authParams) {
|
|
@@ -51,30 +42,28 @@ export function getSnowflakeConnection(snowflakeData, authParams) {
|
|
|
51
42
|
throw new Error("Snowflake authToken or apiKey is required");
|
|
52
43
|
}
|
|
53
44
|
}
|
|
54
|
-
export function connectToSnowflakeAndWarehouse(connection, warehouse) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
resolve(conn);
|
|
63
|
-
});
|
|
45
|
+
export async function connectToSnowflakeAndWarehouse(connection, warehouse) {
|
|
46
|
+
await new Promise((resolve, reject) => {
|
|
47
|
+
connection.connect((err, conn) => {
|
|
48
|
+
if (err) {
|
|
49
|
+
console.error("Unable to connect to Snowflake:", err.message);
|
|
50
|
+
return reject(err);
|
|
51
|
+
}
|
|
52
|
+
resolve(conn);
|
|
64
53
|
});
|
|
65
|
-
if (warehouse) {
|
|
66
|
-
yield new Promise((resolve, reject) => {
|
|
67
|
-
connection.execute({
|
|
68
|
-
sqlText: `USE WAREHOUSE ${warehouse}`,
|
|
69
|
-
complete: (err, stmt, rows) => {
|
|
70
|
-
if (err) {
|
|
71
|
-
console.error("Unable to use warehouse:", err.message);
|
|
72
|
-
return reject(err);
|
|
73
|
-
}
|
|
74
|
-
resolve(rows);
|
|
75
|
-
},
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
54
|
});
|
|
55
|
+
if (warehouse) {
|
|
56
|
+
await new Promise((resolve, reject) => {
|
|
57
|
+
connection.execute({
|
|
58
|
+
sqlText: `USE WAREHOUSE ${warehouse}`,
|
|
59
|
+
complete: (err, stmt, rows) => {
|
|
60
|
+
if (err) {
|
|
61
|
+
console.error("Unable to use warehouse:", err.message);
|
|
62
|
+
return reject(err);
|
|
63
|
+
}
|
|
64
|
+
resolve(rows);
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}
|
|
80
69
|
}
|
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { getSnowflakeConnection } from "./auth/getSnowflakeConnection.js";
|
|
11
|
-
const getRowByFieldValue =
|
|
2
|
+
const getRowByFieldValue = async ({ params, authParams, }) => {
|
|
12
3
|
const { databaseName, tableName, fieldName, warehouse, fieldValue, accountName } = params;
|
|
13
4
|
if (!accountName || !databaseName || !warehouse) {
|
|
14
5
|
// TODO: Move these to required params
|
|
@@ -25,7 +16,7 @@ const getRowByFieldValue = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
25
16
|
apiKey: authParams.apiKey,
|
|
26
17
|
});
|
|
27
18
|
try {
|
|
28
|
-
|
|
19
|
+
await new Promise((resolve, reject) => {
|
|
29
20
|
connection.connect((err, conn) => {
|
|
30
21
|
if (err) {
|
|
31
22
|
console.error("Unable to connect:", err.message);
|
|
@@ -37,7 +28,7 @@ const getRowByFieldValue = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
37
28
|
});
|
|
38
29
|
const query = `SELECT * FROM ${databaseName}.PUBLIC.${tableName} WHERE ${fieldName} = ?`;
|
|
39
30
|
const binds = [fieldValue];
|
|
40
|
-
return
|
|
31
|
+
return await new Promise((resolve, reject) => {
|
|
41
32
|
connection.execute({
|
|
42
33
|
sqlText: query,
|
|
43
34
|
binds: binds,
|
|
@@ -75,5 +66,5 @@ const getRowByFieldValue = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
75
66
|
}
|
|
76
67
|
});
|
|
77
68
|
}
|
|
78
|
-
}
|
|
69
|
+
};
|
|
79
70
|
export default getRowByFieldValue;
|
|
@@ -1,23 +1,13 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import snowflake from "snowflake-sdk";
|
|
11
2
|
import { connectToSnowflakeAndWarehouse, getSnowflakeConnection } from "./auth/getSnowflakeConnection.js";
|
|
12
3
|
import { formatDataForCodeInterpreter } from "../../util/formatDataForCodeInterpreter.js";
|
|
13
4
|
snowflake.configure({ logLevel: "ERROR" });
|
|
14
|
-
const runSnowflakeQuery =
|
|
15
|
-
var _b;
|
|
5
|
+
const runSnowflakeQuery = async ({ params, authParams, }) => {
|
|
16
6
|
const { databaseName, warehouse, query, accountName, outputFormat = "json", limit, role, username } = params;
|
|
17
|
-
const executeQueryAndFormatData = () =>
|
|
7
|
+
const executeQueryAndFormatData = async () => {
|
|
18
8
|
const formattedQuery = query.trim().replace(/\s+/g, " "); // Normalize all whitespace to single spaces
|
|
19
9
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
-
const queryResults =
|
|
10
|
+
const queryResults = await new Promise((resolve, reject) => {
|
|
21
11
|
connection.execute({
|
|
22
12
|
sqlText: formattedQuery,
|
|
23
13
|
complete: (err, stmt, rows) => {
|
|
@@ -35,8 +25,8 @@ const runSnowflakeQuery = (_a) => __awaiter(void 0, [_a], void 0, function* ({ p
|
|
|
35
25
|
}
|
|
36
26
|
const formattedData = formatDataForCodeInterpreter(queryResults, outputFormat);
|
|
37
27
|
return { formattedData: formattedData, resultsLength: fullResultLength };
|
|
38
|
-
}
|
|
39
|
-
const snowflakeUsername =
|
|
28
|
+
};
|
|
29
|
+
const snowflakeUsername = authParams.username ?? username;
|
|
40
30
|
if (!snowflakeUsername) {
|
|
41
31
|
throw new Error("Snowflake username is required in authParams or as a action parameter.");
|
|
42
32
|
}
|
|
@@ -50,8 +40,8 @@ const runSnowflakeQuery = (_a) => __awaiter(void 0, [_a], void 0, function* ({ p
|
|
|
50
40
|
}, { authToken: authParams.authToken, apiKey: authParams.apiKey });
|
|
51
41
|
try {
|
|
52
42
|
// Connect to Snowflake
|
|
53
|
-
|
|
54
|
-
const { formattedData, resultsLength } =
|
|
43
|
+
await connectToSnowflakeAndWarehouse(connection, warehouse);
|
|
44
|
+
const { formattedData, resultsLength } = await executeQueryAndFormatData();
|
|
55
45
|
// Return fields to match schema definition
|
|
56
46
|
connection.destroy(err => {
|
|
57
47
|
if (err) {
|
|
@@ -71,7 +61,7 @@ const runSnowflakeQuery = (_a) => __awaiter(void 0, [_a], void 0, function* ({ p
|
|
|
71
61
|
console.log("Failed to disconnect from Snowflake:", err);
|
|
72
62
|
}
|
|
73
63
|
});
|
|
74
|
-
throw Error(`An error occurred: ${error}
|
|
64
|
+
throw Error(`An error occurred: ${error}`, { cause: error });
|
|
75
65
|
}
|
|
76
|
-
}
|
|
66
|
+
};
|
|
77
67
|
export default runSnowflakeQuery;
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { createAxiosClientWithRetries } from "../../util/axiosClient.js";
|
|
11
2
|
import { MISSING_AUTH_TOKEN } from "../../util/missingAuthConstants.js";
|
|
12
|
-
const addCommentToTicket =
|
|
3
|
+
const addCommentToTicket = async ({ params, authParams, }) => {
|
|
13
4
|
const { authToken } = authParams;
|
|
14
5
|
const { subdomain, ticketId, body, public: isPublic } = params;
|
|
15
6
|
const url = `https://${subdomain}.zendesk.com/api/v2/tickets/${ticketId}.json`;
|
|
@@ -18,7 +9,7 @@ const addCommentToTicket = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
18
9
|
}
|
|
19
10
|
const axiosClient = createAxiosClientWithRetries({ timeout: 20000, retryCount: 5 });
|
|
20
11
|
try {
|
|
21
|
-
|
|
12
|
+
await axiosClient.request({
|
|
22
13
|
url: url,
|
|
23
14
|
method: "PUT",
|
|
24
15
|
headers: {
|
|
@@ -29,7 +20,7 @@ const addCommentToTicket = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
29
20
|
ticket: {
|
|
30
21
|
comment: {
|
|
31
22
|
body: body,
|
|
32
|
-
public: isPublic
|
|
23
|
+
public: isPublic ?? true,
|
|
33
24
|
},
|
|
34
25
|
},
|
|
35
26
|
},
|
|
@@ -41,7 +32,7 @@ const addCommentToTicket = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
41
32
|
}
|
|
42
33
|
catch (error) {
|
|
43
34
|
console.error("Failed to add comment to Zendesk ticket:", error);
|
|
44
|
-
throw new Error(`Failed to add comment to ticket ${ticketId}: ${error instanceof Error ? error.message : "Unknown error"}
|
|
35
|
+
throw new Error(`Failed to add comment to ticket ${ticketId}: ${error instanceof Error ? error.message : "Unknown error"}`, { cause: error });
|
|
45
36
|
}
|
|
46
|
-
}
|
|
37
|
+
};
|
|
47
38
|
export default addCommentToTicket;
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { createAxiosClientWithRetries } from "../../util/axiosClient.js";
|
|
11
2
|
import { MISSING_AUTH_TOKEN } from "../../util/missingAuthConstants.js";
|
|
12
|
-
const updateTicketStatus =
|
|
3
|
+
const updateTicketStatus = async ({ params, authParams, }) => {
|
|
13
4
|
const { authToken } = authParams;
|
|
14
5
|
const { subdomain, ticketId, assigneeEmail } = params;
|
|
15
6
|
const url = `https://${subdomain}.zendesk.com/api/v2/tickets/${ticketId}.json`;
|
|
@@ -17,7 +8,7 @@ const updateTicketStatus = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
17
8
|
throw new Error(MISSING_AUTH_TOKEN);
|
|
18
9
|
}
|
|
19
10
|
const axiosClient = createAxiosClientWithRetries({ timeout: 10000, retryCount: 4 });
|
|
20
|
-
|
|
11
|
+
await axiosClient.request({
|
|
21
12
|
url: url,
|
|
22
13
|
method: "PUT",
|
|
23
14
|
headers: {
|
|
@@ -30,5 +21,5 @@ const updateTicketStatus = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
30
21
|
},
|
|
31
22
|
},
|
|
32
23
|
});
|
|
33
|
-
}
|
|
24
|
+
};
|
|
34
25
|
export default updateTicketStatus;
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { createAxiosClientWithRetries } from "../../util/axiosClient.js";
|
|
11
2
|
import { MISSING_AUTH_TOKEN } from "../../util/missingAuthConstants.js";
|
|
12
|
-
const createZendeskTicket =
|
|
3
|
+
const createZendeskTicket = async ({ params, authParams, }) => {
|
|
13
4
|
const { authToken } = authParams;
|
|
14
5
|
const { subdomain, subject, body, groupId } = params;
|
|
15
6
|
const url = `https://${subdomain}.zendesk.com/api/v2/tickets.json`;
|
|
@@ -26,7 +17,7 @@ const createZendeskTicket = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
26
17
|
throw new Error(MISSING_AUTH_TOKEN);
|
|
27
18
|
}
|
|
28
19
|
const axiosClient = createAxiosClientWithRetries({ timeout: 10000, retryCount: 4 });
|
|
29
|
-
const response =
|
|
20
|
+
const response = await axiosClient.post(url, payload, {
|
|
30
21
|
headers: {
|
|
31
22
|
"Content-Type": "application/json",
|
|
32
23
|
Authorization: `Bearer ${authToken}`,
|
|
@@ -36,5 +27,5 @@ const createZendeskTicket = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
36
27
|
ticketId: response.data.ticket.id,
|
|
37
28
|
ticketUrl: `https://${subdomain}.zendesk.com/requests/${response.data.ticket.id}`,
|
|
38
29
|
};
|
|
39
|
-
}
|
|
30
|
+
};
|
|
40
31
|
export default createZendeskTicket;
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { createAxiosClientWithRetries } from "../../util/axiosClient.js";
|
|
11
2
|
import { MISSING_AUTH_TOKEN } from "../../util/missingAuthConstants.js";
|
|
12
|
-
const getZendeskTicketDetails =
|
|
3
|
+
const getZendeskTicketDetails = async ({ params, authParams, }) => {
|
|
13
4
|
const { authToken } = authParams;
|
|
14
5
|
const { subdomain, ticketId } = params;
|
|
15
6
|
const url = `https://${subdomain}.zendesk.com/api/v2/tickets/${ticketId}.json`;
|
|
@@ -17,7 +8,7 @@ const getZendeskTicketDetails = (_a) => __awaiter(void 0, [_a], void 0, function
|
|
|
17
8
|
throw new Error(MISSING_AUTH_TOKEN);
|
|
18
9
|
}
|
|
19
10
|
const axiosClient = createAxiosClientWithRetries({ timeout: 10000, retryCount: 4 });
|
|
20
|
-
const response =
|
|
11
|
+
const response = await axiosClient.request({
|
|
21
12
|
url: url,
|
|
22
13
|
method: "GET",
|
|
23
14
|
headers: {
|
|
@@ -28,5 +19,5 @@ const getZendeskTicketDetails = (_a) => __awaiter(void 0, [_a], void 0, function
|
|
|
28
19
|
return {
|
|
29
20
|
ticket: response.data.ticket,
|
|
30
21
|
};
|
|
31
|
-
}
|
|
22
|
+
};
|
|
32
23
|
export default getZendeskTicketDetails;
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { createAxiosClientWithRetries } from "../../util/axiosClient.js";
|
|
11
2
|
import { MISSING_AUTH_TOKEN } from "../../util/missingAuthConstants.js";
|
|
12
|
-
const listZendeskTickets =
|
|
3
|
+
const listZendeskTickets = async ({ params, authParams, }) => {
|
|
13
4
|
const { authToken } = authParams;
|
|
14
5
|
const { subdomain, status } = params;
|
|
15
6
|
// Calculate date 3 months ago from now
|
|
@@ -28,7 +19,7 @@ const listZendeskTickets = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
28
19
|
if (status) {
|
|
29
20
|
queryParams.append("status", status);
|
|
30
21
|
}
|
|
31
|
-
const response =
|
|
22
|
+
const response = await axiosClient.get(`${url}?${queryParams.toString()}`, {
|
|
32
23
|
headers: {
|
|
33
24
|
"Content-Type": "application/json",
|
|
34
25
|
Authorization: `Bearer ${authToken}`,
|
|
@@ -38,5 +29,5 @@ const listZendeskTickets = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
38
29
|
tickets: response.data.tickets,
|
|
39
30
|
count: response.data.count,
|
|
40
31
|
};
|
|
41
|
-
}
|
|
32
|
+
};
|
|
42
33
|
export default listZendeskTickets;
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { createAxiosClientWithRetries } from "../../util/axiosClient.js";
|
|
11
2
|
import { MISSING_AUTH_TOKEN } from "../../util/missingAuthConstants.js";
|
|
12
|
-
const searchZendeskByQuery =
|
|
3
|
+
const searchZendeskByQuery = async ({ params, authParams, }) => {
|
|
13
4
|
const { authToken } = authParams;
|
|
14
5
|
const { subdomain, query, objectType = "ticket", limit = 100 } = params;
|
|
15
6
|
// Endpoint for searching Zendesk objects
|
|
@@ -22,7 +13,7 @@ const searchZendeskByQuery = (_a) => __awaiter(void 0, [_a], void 0, function* (
|
|
|
22
13
|
const queryParams = new URLSearchParams();
|
|
23
14
|
queryParams.append("query", `type:${objectType} ${query}`);
|
|
24
15
|
queryParams.append("per_page", limit.toString());
|
|
25
|
-
const response =
|
|
16
|
+
const response = await axiosClient.get(`${url}?${queryParams.toString()}`, {
|
|
26
17
|
headers: {
|
|
27
18
|
"Content-Type": "application/json",
|
|
28
19
|
Authorization: `Bearer ${authToken}`,
|
|
@@ -32,5 +23,5 @@ const searchZendeskByQuery = (_a) => __awaiter(void 0, [_a], void 0, function* (
|
|
|
32
23
|
results: response.data.results,
|
|
33
24
|
count: response.data.count,
|
|
34
25
|
};
|
|
35
|
-
}
|
|
26
|
+
};
|
|
36
27
|
export default searchZendeskByQuery;
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { createAxiosClientWithRetries } from "../../util/axiosClient.js";
|
|
11
2
|
import { MISSING_AUTH_TOKEN } from "../../util/missingAuthConstants.js";
|
|
12
|
-
const updateTicketStatus =
|
|
3
|
+
const updateTicketStatus = async ({ params, authParams, }) => {
|
|
13
4
|
const { authToken } = authParams;
|
|
14
5
|
const { subdomain, ticketId, status } = params;
|
|
15
6
|
const url = `https://${subdomain}.zendesk.com/api/v2/tickets/${ticketId}.json`;
|
|
@@ -17,7 +8,7 @@ const updateTicketStatus = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
17
8
|
throw new Error(MISSING_AUTH_TOKEN);
|
|
18
9
|
}
|
|
19
10
|
const axiosClient = createAxiosClientWithRetries({ timeout: 10000, retryCount: 4 });
|
|
20
|
-
|
|
11
|
+
await axiosClient.request({
|
|
21
12
|
url: url,
|
|
22
13
|
method: "PUT",
|
|
23
14
|
headers: {
|
|
@@ -30,5 +21,5 @@ const updateTicketStatus = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
30
21
|
},
|
|
31
22
|
},
|
|
32
23
|
});
|
|
33
|
-
}
|
|
24
|
+
};
|
|
34
25
|
export default updateTicketStatus;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import axios from "axios";
|
|
2
2
|
import axiosRetry from "axios-retry";
|
|
3
3
|
export class ApiError extends Error {
|
|
4
|
+
status;
|
|
5
|
+
data;
|
|
4
6
|
constructor(message, status, data) {
|
|
5
7
|
super(message);
|
|
6
8
|
this.name = "ApiError";
|
|
@@ -25,14 +27,13 @@ function createAxiosClient(timeout) {
|
|
|
25
27
|
instance.interceptors.response.use((response) => {
|
|
26
28
|
return response;
|
|
27
29
|
}, (error) => {
|
|
28
|
-
var _a, _b;
|
|
29
30
|
if (error.response) {
|
|
30
31
|
console.error(`API error:`, error.response.status, error.response.data);
|
|
31
32
|
return Promise.reject(new ApiError(`Request failed with status ${error.response.status}`, error.response.status, error.response.data));
|
|
32
33
|
}
|
|
33
34
|
else if (error.request) {
|
|
34
|
-
console.error(`No response received:`,
|
|
35
|
-
return Promise.reject(new ApiError(`No response received from server for ${
|
|
35
|
+
console.error(`No response received:`, error.config?.url);
|
|
36
|
+
return Promise.reject(new ApiError(`No response received from server for ${error.config?.url || "unknown endpoint"}`));
|
|
36
37
|
}
|
|
37
38
|
else {
|
|
38
39
|
console.error(`Request setup error:`, error.message);
|
|
@@ -58,8 +59,7 @@ export function createAxiosClientWithRetries(args) {
|
|
|
58
59
|
return status === 408 || status === 429 || status >= 500;
|
|
59
60
|
},
|
|
60
61
|
onRetry: (retryCount, error) => {
|
|
61
|
-
|
|
62
|
-
console.log(`Retry ${retryCount}: ${((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) || "Network Error"} - ${(_b = error.config) === null || _b === void 0 ? void 0 : _b.url}`);
|
|
62
|
+
console.log(`Retry ${retryCount}: ${error.response?.status || "Network Error"} - ${error.config?.url}`);
|
|
63
63
|
},
|
|
64
64
|
});
|
|
65
65
|
return instance;
|
package/dist/app.js
CHANGED
|
@@ -1,33 +1,22 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import * as templates from "./actions/autogen/templates.js";
|
|
11
2
|
import { invokeAction } from "./actions/invoke.js";
|
|
12
|
-
export function runAction(name, provider, authentication,
|
|
3
|
+
export async function runAction(name, provider, authentication,
|
|
13
4
|
// eslint-disable-next-line
|
|
14
5
|
parameters) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
authParams: authentication,
|
|
28
|
-
});
|
|
29
|
-
return result;
|
|
6
|
+
if (!parameters || !name || !provider) {
|
|
7
|
+
throw Error("Missing params");
|
|
8
|
+
}
|
|
9
|
+
const actionTemplate = getActionByProviderAndName(provider, name);
|
|
10
|
+
if (!actionTemplate) {
|
|
11
|
+
throw Error(`Action template with name ${name} does not exist`);
|
|
12
|
+
}
|
|
13
|
+
const result = await invokeAction({
|
|
14
|
+
provider: actionTemplate.provider,
|
|
15
|
+
name: actionTemplate.name,
|
|
16
|
+
parameters: parameters,
|
|
17
|
+
authParams: authentication,
|
|
30
18
|
});
|
|
19
|
+
return result;
|
|
31
20
|
}
|
|
32
21
|
/**
|
|
33
22
|
* HELPER FUNCTIONS
|