@credal/actions 0.1.31 → 0.1.34
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 +238 -0
- package/dist/actions/autogen/definitions.d.ts +5 -0
- package/dist/actions/autogen/definitions.js +132 -0
- package/dist/actions/autogen/templates.d.ts +38 -0
- package/dist/actions/autogen/templates.js +4570 -178
- package/dist/actions/autogen/types.d.ts +1414 -33
- package/dist/actions/autogen/types.js +1812 -1
- package/dist/actions/definitions.js +35 -0
- package/dist/actions/groups.js +44 -4
- package/dist/actions/invoke.js +3 -0
- package/dist/actions/invokeMapper.d.ts +9 -0
- package/dist/actions/invokeMapper.js +33 -0
- package/dist/actions/parse.js +3 -0
- package/dist/actions/providers/asana/commentAsanaTask.d.ts +3 -0
- package/dist/actions/providers/asana/commentAsanaTask.js +44 -0
- package/dist/actions/providers/asana/createAsanaTask.d.ts +3 -0
- package/dist/actions/providers/asana/createAsanaTask.js +93 -0
- package/dist/actions/providers/asana/updateAsanaTask.d.ts +3 -0
- package/dist/actions/providers/asana/updateAsanaTask.js +50 -0
- package/dist/actions/providers/asana/utils.d.ts +6 -0
- package/dist/actions/providers/asana/utils.js +73 -0
- package/dist/actions/providers/ashby/addCandidateToProject.d.ts +3 -0
- package/dist/actions/providers/ashby/addCandidateToProject.js +32 -0
- package/dist/actions/providers/ashby/createCandidate.d.ts +3 -0
- package/dist/actions/providers/ashby/createCandidate.js +42 -0
- package/dist/actions/providers/ashby/createNote.d.ts +3 -0
- package/dist/actions/providers/ashby/createNote.js +32 -0
- package/dist/actions/providers/ashby/getCandidateInfo.d.ts +3 -0
- package/dist/actions/providers/ashby/getCandidateInfo.js +34 -0
- package/dist/actions/providers/ashby/listCandidateNotes.d.ts +3 -0
- package/dist/actions/providers/ashby/listCandidateNotes.js +34 -0
- package/dist/actions/providers/ashby/listCandidates.d.ts +3 -0
- package/dist/actions/providers/ashby/listCandidates.js +31 -0
- package/dist/actions/providers/ashby/searchCandidates.d.ts +3 -0
- package/dist/actions/providers/ashby/searchCandidates.js +35 -0
- package/dist/actions/providers/ashby/updateCandidate.d.ts +3 -0
- package/dist/actions/providers/ashby/updateCandidate.js +60 -0
- package/dist/actions/providers/confluence/updatePage.js +2 -5
- package/dist/actions/providers/github/createBranch.d.ts +6 -0
- package/dist/actions/providers/github/createBranch.js +68 -0
- package/dist/actions/providers/github/createOrUpdateFile.d.ts +6 -0
- package/dist/actions/providers/github/createOrUpdateFile.js +75 -0
- package/dist/actions/providers/github/createPullRequest.d.ts +6 -0
- package/dist/actions/providers/github/createPullRequest.js +48 -0
- package/dist/actions/providers/google-oauth/createPresentation.d.ts +6 -0
- package/dist/actions/providers/google-oauth/createPresentation.js +52 -0
- package/dist/actions/providers/google-oauth/createSpreadsheet.d.ts +6 -0
- package/dist/actions/providers/google-oauth/createSpreadsheet.js +62 -0
- package/dist/actions/providers/google-oauth/scheduleCalendarMeeting.d.ts +6 -0
- package/dist/actions/providers/google-oauth/scheduleCalendarMeeting.js +74 -0
- package/dist/actions/providers/google-oauth/updateDoc.d.ts +7 -0
- package/dist/actions/providers/google-oauth/updateDoc.js +69 -0
- package/dist/actions/providers/google-oauth/updatePresentation.d.ts +7 -0
- package/dist/actions/providers/google-oauth/updatePresentation.js +64 -0
- package/dist/actions/providers/google-oauth/updateSpreadsheet.d.ts +7 -0
- package/dist/actions/providers/google-oauth/updateSpreadsheet.js +51 -0
- package/dist/actions/providers/googlemaps/nearbysearch.js +31 -31
- package/dist/actions/providers/jira/assignJiraTicket.d.ts +3 -0
- package/dist/actions/providers/jira/assignJiraTicket.js +52 -0
- package/dist/actions/providers/jira/commentJiraTicket.d.ts +3 -0
- package/dist/actions/providers/jira/commentJiraTicket.js +56 -0
- package/dist/actions/providers/jira/createJiraTicket.js +3 -24
- package/dist/actions/providers/jira/createTicket.d.ts +3 -0
- package/dist/actions/providers/jira/createTicket.js +34 -0
- package/dist/actions/providers/jira/getJiraTicketDetails.d.ts +3 -0
- package/dist/actions/providers/jira/getJiraTicketDetails.js +40 -0
- package/dist/actions/providers/jira/getJiraTicketHistory.d.ts +3 -0
- package/dist/actions/providers/jira/getJiraTicketHistory.js +41 -0
- package/dist/actions/providers/jira/updateJiraTicketDetails.d.ts +3 -0
- package/dist/actions/providers/jira/updateJiraTicketDetails.js +56 -0
- package/dist/actions/providers/jira/updateJiraTicketStatus.d.ts +3 -0
- package/dist/actions/providers/jira/updateJiraTicketStatus.js +57 -0
- package/dist/actions/providers/jira/utils.d.ts +1 -0
- package/dist/actions/providers/jira/utils.js +34 -0
- package/dist/actions/providers/microsoft/messageTeamsChannel.d.ts +3 -0
- package/dist/actions/providers/microsoft/messageTeamsChannel.js +45 -0
- package/dist/actions/providers/microsoft/messageTeamsChat.d.ts +3 -0
- package/dist/actions/providers/microsoft/messageTeamsChat.js +42 -0
- package/dist/actions/providers/microsoft/utils.d.ts +4 -0
- package/dist/actions/providers/microsoft/utils.js +55 -0
- package/dist/actions/providers/salesforce/createCase.d.ts +3 -0
- package/dist/actions/providers/salesforce/createCase.js +44 -0
- package/dist/actions/providers/salesforce/generateSalesReport.d.ts +3 -0
- package/dist/actions/providers/salesforce/generateSalesReport.js +52 -0
- package/dist/actions/providers/salesforce/getRecord.d.ts +3 -0
- package/dist/actions/providers/salesforce/getRecord.js +42 -0
- package/dist/actions/providers/salesforce/getSalesforceRecordByQuery.d.ts +3 -0
- package/dist/actions/providers/salesforce/getSalesforceRecordByQuery.js +43 -0
- package/dist/actions/providers/salesforce/updateRecord.d.ts +3 -0
- package/dist/actions/providers/salesforce/updateRecord.js +42 -0
- package/dist/actions/providers/slack/getChannelMessages.d.ts +3 -0
- package/dist/actions/providers/slack/getChannelMessages.js +33 -0
- package/dist/actions/providers/slack/list_conversations.d.ts +3 -0
- package/dist/actions/providers/slack/list_conversations.js +60 -0
- package/dist/actions/providers/slack/summarizeChannel.d.ts +3 -0
- package/dist/actions/providers/slack/summarizeChannel.js +51 -0
- package/dist/actions/providers/zendesk/addCommentToTicket.d.ts +3 -0
- package/dist/actions/providers/zendesk/addCommentToTicket.js +37 -0
- package/dist/actions/providers/zendesk/assignTicket.d.ts +3 -0
- package/dist/actions/providers/zendesk/assignTicket.js +37 -0
- package/dist/actions/providers/zendesk/getTicketDetails.d.ts +3 -0
- package/dist/actions/providers/zendesk/getTicketDetails.js +35 -0
- package/dist/actions/providers/zendesk/updateTicketStatus.d.ts +3 -0
- package/dist/actions/providers/zendesk/updateTicketStatus.js +37 -0
- package/dist/actions/schema.js +6 -0
- package/dist/actions/types.js +2 -0
- package/dist/main.js +11 -0
- package/package.json +7 -1
- package/dist/actions/providers/snowflake/runSnowflakeQueryWriteResultsToS3.d.ts +0 -3
- package/dist/actions/providers/snowflake/runSnowflakeQueryWriteResultsToS3.js +0 -154
- package/dist/actions/providers/x/scrapeTweetDataWithNitter.d.ts +0 -3
- package/dist/actions/providers/x/scrapeTweetDataWithNitter.js +0 -45
@@ -0,0 +1,69 @@
|
|
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
|
+
/**
|
17
|
+
* Updates an existing Google Docs document using OAuth authentication with batch requests
|
18
|
+
* https://developers.google.com/workspace/docs/api/reference/rest/v1/documents/batchUpdate
|
19
|
+
*/
|
20
|
+
const updateDoc = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
21
|
+
if (!authParams.authToken) {
|
22
|
+
return {
|
23
|
+
success: false,
|
24
|
+
documentId: params.documentId,
|
25
|
+
error: "No auth token provided",
|
26
|
+
};
|
27
|
+
}
|
28
|
+
const { documentId, requests } = params;
|
29
|
+
const baseApiUrl = "https://docs.googleapis.com/v1/documents";
|
30
|
+
try {
|
31
|
+
// If requests are provided, send them as a batch update
|
32
|
+
if (requests && requests.length > 0) {
|
33
|
+
const response = yield axios_1.default.post(`${baseApiUrl}/${documentId}:batchUpdate`, {
|
34
|
+
requests,
|
35
|
+
}, {
|
36
|
+
headers: {
|
37
|
+
Authorization: `Bearer ${authParams.authToken}`,
|
38
|
+
},
|
39
|
+
});
|
40
|
+
if (response.status < 200 || response.status >= 300) {
|
41
|
+
return {
|
42
|
+
success: false,
|
43
|
+
error: `${response.statusText}: ${JSON.stringify(response.data)}`,
|
44
|
+
};
|
45
|
+
}
|
46
|
+
const documentUrl = `https://docs.google.com/document/d/${documentId}/edit`;
|
47
|
+
return {
|
48
|
+
success: true,
|
49
|
+
documentId,
|
50
|
+
documentUrl,
|
51
|
+
};
|
52
|
+
}
|
53
|
+
else {
|
54
|
+
return {
|
55
|
+
success: false,
|
56
|
+
error: "No requests provided",
|
57
|
+
};
|
58
|
+
}
|
59
|
+
}
|
60
|
+
catch (error) {
|
61
|
+
console.error("Error updating document:", error);
|
62
|
+
return {
|
63
|
+
success: false,
|
64
|
+
documentId,
|
65
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
66
|
+
};
|
67
|
+
}
|
68
|
+
});
|
69
|
+
exports.default = updateDoc;
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { googleOauthUpdatePresentationFunction } from "../../autogen/types";
|
2
|
+
/**
|
3
|
+
* Updates an existing Google Slides presentation using OAuth authentication with batch requests
|
4
|
+
* https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate
|
5
|
+
*/
|
6
|
+
declare const updatePresentation: googleOauthUpdatePresentationFunction;
|
7
|
+
export default updatePresentation;
|
@@ -0,0 +1,64 @@
|
|
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
|
+
/**
|
14
|
+
* Updates an existing Google Slides presentation using OAuth authentication with batch requests
|
15
|
+
* https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate
|
16
|
+
*/
|
17
|
+
const updatePresentation = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
18
|
+
if (!authParams.authToken) {
|
19
|
+
return {
|
20
|
+
success: false,
|
21
|
+
error: "authToken is required for Google Slides API",
|
22
|
+
};
|
23
|
+
}
|
24
|
+
const { presentationId, requests } = params;
|
25
|
+
const baseApiUrl = "https://slides.googleapis.com/v1/presentations";
|
26
|
+
try {
|
27
|
+
// If requests are provided, send them as a batch update
|
28
|
+
if (requests && requests.length > 0) {
|
29
|
+
const response = yield axiosClient_1.axiosClient.post(`${baseApiUrl}/${presentationId}:batchUpdate`, {
|
30
|
+
requests,
|
31
|
+
}, {
|
32
|
+
headers: {
|
33
|
+
Authorization: `Bearer ${authParams.authToken}`,
|
34
|
+
"Content-Type": "application/json",
|
35
|
+
},
|
36
|
+
});
|
37
|
+
if (response.status < 200 || response.status >= 300) {
|
38
|
+
return {
|
39
|
+
success: false,
|
40
|
+
error: `${response.statusText}: ${JSON.stringify(response.data)}`,
|
41
|
+
};
|
42
|
+
}
|
43
|
+
const presentationUrl = `https://docs.google.com/presentation/d/${presentationId}/edit`;
|
44
|
+
return {
|
45
|
+
success: true,
|
46
|
+
presentationUrl,
|
47
|
+
};
|
48
|
+
}
|
49
|
+
else {
|
50
|
+
return {
|
51
|
+
success: false,
|
52
|
+
error: "No requests provided",
|
53
|
+
};
|
54
|
+
}
|
55
|
+
}
|
56
|
+
catch (error) {
|
57
|
+
console.error("Error updating presentation:", error);
|
58
|
+
return {
|
59
|
+
success: false,
|
60
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
61
|
+
};
|
62
|
+
}
|
63
|
+
});
|
64
|
+
exports.default = updatePresentation;
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { googleOauthUpdateSpreadsheetFunction } from "../../autogen/types";
|
2
|
+
/**
|
3
|
+
* Update a Google Spreadsheet using OAuth authentication
|
4
|
+
* https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/batchUpdate
|
5
|
+
*/
|
6
|
+
declare const updateSpreadsheet: googleOauthUpdateSpreadsheetFunction;
|
7
|
+
export default updateSpreadsheet;
|
@@ -0,0 +1,51 @@
|
|
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
|
+
/**
|
14
|
+
* Update a Google Spreadsheet using OAuth authentication
|
15
|
+
* https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/batchUpdate
|
16
|
+
*/
|
17
|
+
const updateSpreadsheet = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
18
|
+
if (!authParams.authToken) {
|
19
|
+
throw new Error("authToken is required for Google Spreadsheets API");
|
20
|
+
}
|
21
|
+
const { spreadsheetId, requests } = params;
|
22
|
+
const batchUpdateUrl = `https://sheets.googleapis.com/v4/spreadsheets/${spreadsheetId}:batchUpdate`;
|
23
|
+
try {
|
24
|
+
// Update the spreadsheet with the given requests
|
25
|
+
const response = yield axiosClient_1.axiosClient.post(batchUpdateUrl, { requests, includeSpreadsheetInResponse: true }, {
|
26
|
+
headers: {
|
27
|
+
Authorization: `Bearer ${authParams.authToken}`,
|
28
|
+
"Content-Type": "application/json",
|
29
|
+
},
|
30
|
+
});
|
31
|
+
if (response.status < 200 || response.status >= 300) {
|
32
|
+
return {
|
33
|
+
success: false,
|
34
|
+
error: response.data.error,
|
35
|
+
};
|
36
|
+
}
|
37
|
+
return {
|
38
|
+
success: true,
|
39
|
+
spreadsheetUrl: response.data.updatedSpreadsheet.spreadsheetUrl,
|
40
|
+
replies: response.data.replies,
|
41
|
+
};
|
42
|
+
}
|
43
|
+
catch (error) {
|
44
|
+
console.error("Error updating spreadsheet", error);
|
45
|
+
return {
|
46
|
+
success: false,
|
47
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
48
|
+
};
|
49
|
+
}
|
50
|
+
});
|
51
|
+
exports.default = updateSpreadsheet;
|
@@ -15,38 +15,38 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const axios_1 = __importDefault(require("axios"));
|
16
16
|
const types_1 = require("../../autogen/types");
|
17
17
|
const INCLUDED_TYPES = [
|
18
|
-
"monument",
|
19
|
-
"museum",
|
20
|
-
"art_gallery",
|
21
|
-
"sculpture",
|
22
|
-
"cultural_landmark",
|
23
|
-
"historical_place",
|
24
|
-
"performing_arts_theater",
|
25
|
-
"university",
|
26
|
-
"aquarium",
|
27
|
-
"botanical_garden",
|
28
|
-
"comedy_club",
|
29
|
-
"park",
|
30
|
-
"movie_theater",
|
31
|
-
"national_park",
|
32
|
-
"garden",
|
33
|
-
"night_club",
|
34
|
-
"tourist_attraction",
|
35
|
-
"water_park",
|
36
|
-
"zoo",
|
37
|
-
"bar",
|
18
|
+
// "monument",
|
19
|
+
// "museum",
|
20
|
+
// "art_gallery",
|
21
|
+
// "sculpture",
|
22
|
+
// "cultural_landmark",
|
23
|
+
// "historical_place",
|
24
|
+
// "performing_arts_theater",
|
25
|
+
// "university",
|
26
|
+
// "aquarium",
|
27
|
+
// "botanical_garden",
|
28
|
+
// "comedy_club",
|
29
|
+
// "park",
|
30
|
+
// "movie_theater",
|
31
|
+
// "national_park",
|
32
|
+
// "garden",
|
33
|
+
// "night_club",
|
34
|
+
// "tourist_attraction",
|
35
|
+
// "water_park",
|
36
|
+
// "zoo",
|
37
|
+
// "bar",
|
38
38
|
"restaurant",
|
39
|
-
"food_court",
|
40
|
-
"bakery",
|
41
|
-
"cafe",
|
42
|
-
"coffee_shop",
|
43
|
-
"pub",
|
44
|
-
"wine_bar",
|
45
|
-
"spa",
|
46
|
-
"beach",
|
47
|
-
"market",
|
48
|
-
"shopping_mall",
|
49
|
-
"stadium",
|
39
|
+
// "food_court",
|
40
|
+
// "bakery",
|
41
|
+
// "cafe",
|
42
|
+
// "coffee_shop",
|
43
|
+
// "pub",
|
44
|
+
// "wine_bar",
|
45
|
+
// "spa",
|
46
|
+
// "beach",
|
47
|
+
// "market",
|
48
|
+
// "shopping_mall",
|
49
|
+
// "stadium",
|
50
50
|
];
|
51
51
|
const nearbysearch = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
52
52
|
const url = `https://places.googleapis.com/v1/places:searchNearby`;
|
@@ -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,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
|
-
|
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
|
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
|
28
|
+
assigneeId = yield (0, utils_1.getUserAccountIdFromEmail)(params.assignee, apiUrl, authToken);
|
50
29
|
}
|
51
30
|
const description = {
|
52
31
|
type: "doc",
|
@@ -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
|
+
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 createTicket = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
17
|
+
const { authToken, baseUrl } = authParams;
|
18
|
+
const url = `${baseUrl}/rest/api/3/issue`;
|
19
|
+
const payload = {
|
20
|
+
fields: Object.assign({ project: {
|
21
|
+
key: params.projectKey,
|
22
|
+
}, summary: params.summary, description: params.description, issuetype: {
|
23
|
+
name: params.issueType,
|
24
|
+
} }, (params.reporter ? { reporter: { id: params.reporter } } : {})),
|
25
|
+
};
|
26
|
+
const response = yield axios_1.default.post(url, payload, {
|
27
|
+
headers: {
|
28
|
+
Authorization: `Basic ${Buffer.from(`${params.username}:${authToken}`).toString("base64")}`,
|
29
|
+
"Content-Type": "application/json",
|
30
|
+
},
|
31
|
+
});
|
32
|
+
return response.data;
|
33
|
+
});
|
34
|
+
exports.default = createTicket;
|
@@ -0,0 +1,40 @@
|
|
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 getJiraTicketDetails = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
14
|
+
const { authToken, cloudId } = authParams;
|
15
|
+
const { issueId } = params;
|
16
|
+
if (!cloudId || !issueId) {
|
17
|
+
throw new Error("Cloud ID and Issue ID are required to fetch Jira ticket details");
|
18
|
+
}
|
19
|
+
const apiUrl = `https://api.atlassian.com/ex/jira/${cloudId}/rest/api/3/issue/${issueId}`;
|
20
|
+
try {
|
21
|
+
const response = yield axiosClient_1.axiosClient.get(apiUrl, {
|
22
|
+
headers: {
|
23
|
+
Authorization: `Bearer ${authToken}`,
|
24
|
+
Accept: "application/json",
|
25
|
+
},
|
26
|
+
});
|
27
|
+
return {
|
28
|
+
success: true,
|
29
|
+
data: response.data,
|
30
|
+
};
|
31
|
+
}
|
32
|
+
catch (error) {
|
33
|
+
console.error("Error retrieving Jira ticket details: ", error);
|
34
|
+
return {
|
35
|
+
success: false,
|
36
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
37
|
+
};
|
38
|
+
}
|
39
|
+
});
|
40
|
+
exports.default = getJiraTicketDetails;
|
@@ -0,0 +1,41 @@
|
|
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 getJiraTicketHistory = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
14
|
+
var _b;
|
15
|
+
const { authToken, cloudId } = authParams;
|
16
|
+
const { issueId } = params;
|
17
|
+
if (!cloudId || !issueId) {
|
18
|
+
throw new Error("Cloud ID and Issue ID are required to retrieve ticket history");
|
19
|
+
}
|
20
|
+
const apiUrl = `https://api.atlassian.com/ex/jira/${cloudId}/rest/api/3/issue/${issueId}/changelog`;
|
21
|
+
try {
|
22
|
+
const response = yield axiosClient_1.axiosClient.get(apiUrl, {
|
23
|
+
headers: {
|
24
|
+
Authorization: `Bearer ${authToken}`,
|
25
|
+
Accept: "application/json",
|
26
|
+
},
|
27
|
+
});
|
28
|
+
return {
|
29
|
+
success: true,
|
30
|
+
history: (_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.values,
|
31
|
+
};
|
32
|
+
}
|
33
|
+
catch (error) {
|
34
|
+
console.error("Error retrieving Jira ticket history: ", error);
|
35
|
+
return {
|
36
|
+
success: false,
|
37
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
38
|
+
};
|
39
|
+
}
|
40
|
+
});
|
41
|
+
exports.default = getJiraTicketHistory;
|
@@ -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 updateJiraTicketDetails = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
14
|
+
const { authToken, cloudId, baseUrl } = authParams;
|
15
|
+
const { issueId, summary, description, customFields } = params;
|
16
|
+
if (!cloudId || !issueId) {
|
17
|
+
throw new Error("Cloud ID and Issue ID are required to update a Jira ticket");
|
18
|
+
}
|
19
|
+
const apiUrl = `https://api.atlassian.com/ex/jira/${cloudId}/rest/api/3/issue/${issueId}`;
|
20
|
+
const formattedDescription = description
|
21
|
+
? {
|
22
|
+
type: "doc",
|
23
|
+
version: 1,
|
24
|
+
content: [
|
25
|
+
{
|
26
|
+
type: "paragraph",
|
27
|
+
content: [
|
28
|
+
{
|
29
|
+
type: "text",
|
30
|
+
text: description,
|
31
|
+
},
|
32
|
+
],
|
33
|
+
},
|
34
|
+
],
|
35
|
+
}
|
36
|
+
: undefined;
|
37
|
+
const payload = {
|
38
|
+
fields: Object.assign(Object.assign(Object.assign({}, (summary && { summary })), (formattedDescription && { description: formattedDescription })), (customFields && Object.assign({}, customFields))),
|
39
|
+
};
|
40
|
+
try {
|
41
|
+
yield axiosClient_1.axiosClient.put(apiUrl, payload, {
|
42
|
+
headers: {
|
43
|
+
Authorization: `Bearer ${authToken}`,
|
44
|
+
Accept: "application/json",
|
45
|
+
},
|
46
|
+
});
|
47
|
+
return {
|
48
|
+
ticketUrl: `${baseUrl}/browse/${issueId}`,
|
49
|
+
};
|
50
|
+
}
|
51
|
+
catch (error) {
|
52
|
+
console.error("Error updating Jira ticket:", error);
|
53
|
+
throw new Error(error instanceof Error ? error.message : "Unknown error");
|
54
|
+
}
|
55
|
+
});
|
56
|
+
exports.default = updateJiraTicketDetails;
|