@credal/actions 0.1.81 → 0.1.83
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/autogen/templates.js +11 -14
- package/dist/actions/autogen/types.d.ts +39 -67
- package/dist/actions/autogen/types.js +6 -5
- package/dist/actions/providers/asana/listAsanaTasksByProject.js +5 -3
- package/dist/actions/providers/gong/getGongTranscripts.js +3 -2
- package/dist/actions/providers/salesforce/getSalesforceRecordByQuery.d.ts +3 -0
- package/dist/actions/providers/salesforce/getSalesforceRecordByQuery.js +43 -0
- package/package.json +1 -1
- package/dist/actions/providers/confluence/updatePage.d.ts +0 -3
- package/dist/actions/providers/confluence/updatePage.js +0 -46
- package/dist/actions/providers/generic/fillTemplateAction.d.ts +0 -7
- package/dist/actions/providers/generic/fillTemplateAction.js +0 -18
- package/dist/actions/providers/generic/genericApiCall.d.ts +0 -3
- package/dist/actions/providers/generic/genericApiCall.js +0 -38
- package/dist/actions/providers/googlemaps/nearbysearch.d.ts +0 -3
- package/dist/actions/providers/googlemaps/nearbysearch.js +0 -96
- 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
@@ -123,6 +123,7 @@ exports.asanaListAsanaTasksByProjectDefinition = {
|
|
123
123
|
},
|
124
124
|
custom_fields: {
|
125
125
|
type: "array",
|
126
|
+
nullable: true,
|
126
127
|
items: {
|
127
128
|
type: "object",
|
128
129
|
properties: {
|
@@ -134,6 +135,7 @@ exports.asanaListAsanaTasksByProjectDefinition = {
|
|
134
135
|
},
|
135
136
|
display_value: {
|
136
137
|
type: "string",
|
138
|
+
nullable: true,
|
137
139
|
},
|
138
140
|
},
|
139
141
|
},
|
@@ -169,6 +171,7 @@ exports.asanaListAsanaTasksByProjectDefinition = {
|
|
169
171
|
},
|
170
172
|
custom_fields: {
|
171
173
|
type: "array",
|
174
|
+
nullable: true,
|
172
175
|
items: {
|
173
176
|
type: "object",
|
174
177
|
properties: {
|
@@ -178,19 +181,9 @@ exports.asanaListAsanaTasksByProjectDefinition = {
|
|
178
181
|
name: {
|
179
182
|
type: "string",
|
180
183
|
},
|
181
|
-
|
182
|
-
type: "
|
183
|
-
|
184
|
-
type: "object",
|
185
|
-
properties: {
|
186
|
-
gid: {
|
187
|
-
type: "string",
|
188
|
-
},
|
189
|
-
name: {
|
190
|
-
type: "string",
|
191
|
-
},
|
192
|
-
},
|
193
|
-
},
|
184
|
+
display_value: {
|
185
|
+
type: "string",
|
186
|
+
nullable: true,
|
194
187
|
},
|
195
188
|
},
|
196
189
|
},
|
@@ -5115,7 +5108,11 @@ exports.gongGetGongTranscriptsDefinition = {
|
|
5115
5108
|
properties: {
|
5116
5109
|
callId: {
|
5117
5110
|
type: "string",
|
5118
|
-
description: "The ID of the
|
5111
|
+
description: "The ID of the call",
|
5112
|
+
},
|
5113
|
+
callName: {
|
5114
|
+
type: "string",
|
5115
|
+
description: "The name of the call",
|
5119
5116
|
},
|
5120
5117
|
transcript: {
|
5121
5118
|
type: "array",
|
@@ -126,19 +126,19 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
126
126
|
completed: z.ZodOptional<z.ZodBoolean>;
|
127
127
|
modified_at: z.ZodOptional<z.ZodString>;
|
128
128
|
notes: z.ZodOptional<z.ZodString>;
|
129
|
-
custom_fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
129
|
+
custom_fields: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
130
130
|
gid: z.ZodOptional<z.ZodString>;
|
131
131
|
name: z.ZodOptional<z.ZodString>;
|
132
|
-
display_value: z.ZodOptional<z.ZodString
|
132
|
+
display_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
133
133
|
}, "strip", z.ZodTypeAny, {
|
134
134
|
name?: string | undefined;
|
135
135
|
gid?: string | undefined;
|
136
|
-
display_value?: string | undefined;
|
136
|
+
display_value?: string | null | undefined;
|
137
137
|
}, {
|
138
138
|
name?: string | undefined;
|
139
139
|
gid?: string | undefined;
|
140
|
-
display_value?: string | undefined;
|
141
|
-
}>, "many"
|
140
|
+
display_value?: string | null | undefined;
|
141
|
+
}>, "many">>>;
|
142
142
|
num_subtasks: z.ZodOptional<z.ZodNumber>;
|
143
143
|
}, "strip", z.ZodTypeAny, {
|
144
144
|
name?: string | undefined;
|
@@ -149,8 +149,8 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
149
149
|
custom_fields?: {
|
150
150
|
name?: string | undefined;
|
151
151
|
gid?: string | undefined;
|
152
|
-
display_value?: string | undefined;
|
153
|
-
}[] | undefined;
|
152
|
+
display_value?: string | null | undefined;
|
153
|
+
}[] | null | undefined;
|
154
154
|
num_subtasks?: number | undefined;
|
155
155
|
}, {
|
156
156
|
name?: string | undefined;
|
@@ -161,8 +161,8 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
161
161
|
custom_fields?: {
|
162
162
|
name?: string | undefined;
|
163
163
|
gid?: string | undefined;
|
164
|
-
display_value?: string | undefined;
|
165
|
-
}[] | undefined;
|
164
|
+
display_value?: string | null | undefined;
|
165
|
+
}[] | null | undefined;
|
166
166
|
num_subtasks?: number | undefined;
|
167
167
|
}>;
|
168
168
|
subtasks: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
@@ -172,34 +172,19 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
172
172
|
modified_at: z.ZodOptional<z.ZodString>;
|
173
173
|
notes: z.ZodOptional<z.ZodString>;
|
174
174
|
assignee: z.ZodOptional<z.ZodString>;
|
175
|
-
custom_fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
175
|
+
custom_fields: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
176
176
|
gid: z.ZodOptional<z.ZodString>;
|
177
177
|
name: z.ZodOptional<z.ZodString>;
|
178
|
-
|
179
|
-
gid: z.ZodOptional<z.ZodString>;
|
180
|
-
name: z.ZodOptional<z.ZodString>;
|
181
|
-
}, "strip", z.ZodTypeAny, {
|
182
|
-
name?: string | undefined;
|
183
|
-
gid?: string | undefined;
|
184
|
-
}, {
|
185
|
-
name?: string | undefined;
|
186
|
-
gid?: string | undefined;
|
187
|
-
}>, "many">>;
|
178
|
+
display_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
188
179
|
}, "strip", z.ZodTypeAny, {
|
189
180
|
name?: string | undefined;
|
190
181
|
gid?: string | undefined;
|
191
|
-
|
192
|
-
name?: string | undefined;
|
193
|
-
gid?: string | undefined;
|
194
|
-
}[] | undefined;
|
182
|
+
display_value?: string | null | undefined;
|
195
183
|
}, {
|
196
184
|
name?: string | undefined;
|
197
185
|
gid?: string | undefined;
|
198
|
-
|
199
|
-
|
200
|
-
gid?: string | undefined;
|
201
|
-
}[] | undefined;
|
202
|
-
}>, "many">>;
|
186
|
+
display_value?: string | null | undefined;
|
187
|
+
}>, "many">>>;
|
203
188
|
num_subtasks: z.ZodOptional<z.ZodNumber>;
|
204
189
|
}, "strip", z.ZodTypeAny, {
|
205
190
|
name?: string | undefined;
|
@@ -211,11 +196,8 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
211
196
|
custom_fields?: {
|
212
197
|
name?: string | undefined;
|
213
198
|
gid?: string | undefined;
|
214
|
-
|
215
|
-
|
216
|
-
gid?: string | undefined;
|
217
|
-
}[] | undefined;
|
218
|
-
}[] | undefined;
|
199
|
+
display_value?: string | null | undefined;
|
200
|
+
}[] | null | undefined;
|
219
201
|
num_subtasks?: number | undefined;
|
220
202
|
}, {
|
221
203
|
name?: string | undefined;
|
@@ -227,11 +209,8 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
227
209
|
custom_fields?: {
|
228
210
|
name?: string | undefined;
|
229
211
|
gid?: string | undefined;
|
230
|
-
|
231
|
-
|
232
|
-
gid?: string | undefined;
|
233
|
-
}[] | undefined;
|
234
|
-
}[] | undefined;
|
212
|
+
display_value?: string | null | undefined;
|
213
|
+
}[] | null | undefined;
|
235
214
|
num_subtasks?: number | undefined;
|
236
215
|
}>, "many">>>;
|
237
216
|
taskStories: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
@@ -283,8 +262,8 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
283
262
|
custom_fields?: {
|
284
263
|
name?: string | undefined;
|
285
264
|
gid?: string | undefined;
|
286
|
-
display_value?: string | undefined;
|
287
|
-
}[] | undefined;
|
265
|
+
display_value?: string | null | undefined;
|
266
|
+
}[] | null | undefined;
|
288
267
|
num_subtasks?: number | undefined;
|
289
268
|
};
|
290
269
|
subtasks?: {
|
@@ -297,11 +276,8 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
297
276
|
custom_fields?: {
|
298
277
|
name?: string | undefined;
|
299
278
|
gid?: string | undefined;
|
300
|
-
|
301
|
-
|
302
|
-
gid?: string | undefined;
|
303
|
-
}[] | undefined;
|
304
|
-
}[] | undefined;
|
279
|
+
display_value?: string | null | undefined;
|
280
|
+
}[] | null | undefined;
|
305
281
|
num_subtasks?: number | undefined;
|
306
282
|
}[] | null | undefined;
|
307
283
|
taskStories?: {
|
@@ -325,8 +301,8 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
325
301
|
custom_fields?: {
|
326
302
|
name?: string | undefined;
|
327
303
|
gid?: string | undefined;
|
328
|
-
display_value?: string | undefined;
|
329
|
-
}[] | undefined;
|
304
|
+
display_value?: string | null | undefined;
|
305
|
+
}[] | null | undefined;
|
330
306
|
num_subtasks?: number | undefined;
|
331
307
|
};
|
332
308
|
subtasks?: {
|
@@ -339,11 +315,8 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
339
315
|
custom_fields?: {
|
340
316
|
name?: string | undefined;
|
341
317
|
gid?: string | undefined;
|
342
|
-
|
343
|
-
|
344
|
-
gid?: string | undefined;
|
345
|
-
}[] | undefined;
|
346
|
-
}[] | undefined;
|
318
|
+
display_value?: string | null | undefined;
|
319
|
+
}[] | null | undefined;
|
347
320
|
num_subtasks?: number | undefined;
|
348
321
|
}[] | null | undefined;
|
349
322
|
taskStories?: {
|
@@ -371,8 +344,8 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
371
344
|
custom_fields?: {
|
372
345
|
name?: string | undefined;
|
373
346
|
gid?: string | undefined;
|
374
|
-
display_value?: string | undefined;
|
375
|
-
}[] | undefined;
|
347
|
+
display_value?: string | null | undefined;
|
348
|
+
}[] | null | undefined;
|
376
349
|
num_subtasks?: number | undefined;
|
377
350
|
};
|
378
351
|
subtasks?: {
|
@@ -385,11 +358,8 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
385
358
|
custom_fields?: {
|
386
359
|
name?: string | undefined;
|
387
360
|
gid?: string | undefined;
|
388
|
-
|
389
|
-
|
390
|
-
gid?: string | undefined;
|
391
|
-
}[] | undefined;
|
392
|
-
}[] | undefined;
|
361
|
+
display_value?: string | null | undefined;
|
362
|
+
}[] | null | undefined;
|
393
363
|
num_subtasks?: number | undefined;
|
394
364
|
}[] | null | undefined;
|
395
365
|
taskStories?: {
|
@@ -417,8 +387,8 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
417
387
|
custom_fields?: {
|
418
388
|
name?: string | undefined;
|
419
389
|
gid?: string | undefined;
|
420
|
-
display_value?: string | undefined;
|
421
|
-
}[] | undefined;
|
390
|
+
display_value?: string | null | undefined;
|
391
|
+
}[] | null | undefined;
|
422
392
|
num_subtasks?: number | undefined;
|
423
393
|
};
|
424
394
|
subtasks?: {
|
@@ -431,11 +401,8 @@ export declare const asanaListAsanaTasksByProjectOutputSchema: z.ZodObject<{
|
|
431
401
|
custom_fields?: {
|
432
402
|
name?: string | undefined;
|
433
403
|
gid?: string | undefined;
|
434
|
-
|
435
|
-
|
436
|
-
gid?: string | undefined;
|
437
|
-
}[] | undefined;
|
438
|
-
}[] | undefined;
|
404
|
+
display_value?: string | null | undefined;
|
405
|
+
}[] | null | undefined;
|
439
406
|
num_subtasks?: number | undefined;
|
440
407
|
}[] | null | undefined;
|
441
408
|
taskStories?: {
|
@@ -2336,6 +2303,7 @@ export declare const gongGetGongTranscriptsOutputSchema: z.ZodObject<{
|
|
2336
2303
|
success: z.ZodBoolean;
|
2337
2304
|
callTranscripts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
2338
2305
|
callId: z.ZodOptional<z.ZodString>;
|
2306
|
+
callName: z.ZodOptional<z.ZodString>;
|
2339
2307
|
transcript: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
2340
2308
|
speakerName: z.ZodOptional<z.ZodString>;
|
2341
2309
|
topic: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
@@ -2371,6 +2339,7 @@ export declare const gongGetGongTranscriptsOutputSchema: z.ZodObject<{
|
|
2371
2339
|
}>, "many">>;
|
2372
2340
|
}, "strip", z.ZodTypeAny, {
|
2373
2341
|
callId?: string | undefined;
|
2342
|
+
callName?: string | undefined;
|
2374
2343
|
transcript?: {
|
2375
2344
|
speakerName?: string | undefined;
|
2376
2345
|
topic?: string | null | undefined;
|
@@ -2382,6 +2351,7 @@ export declare const gongGetGongTranscriptsOutputSchema: z.ZodObject<{
|
|
2382
2351
|
}[] | undefined;
|
2383
2352
|
}, {
|
2384
2353
|
callId?: string | undefined;
|
2354
|
+
callName?: string | undefined;
|
2385
2355
|
transcript?: {
|
2386
2356
|
speakerName?: string | undefined;
|
2387
2357
|
topic?: string | null | undefined;
|
@@ -2398,6 +2368,7 @@ export declare const gongGetGongTranscriptsOutputSchema: z.ZodObject<{
|
|
2398
2368
|
error?: string | undefined;
|
2399
2369
|
callTranscripts?: {
|
2400
2370
|
callId?: string | undefined;
|
2371
|
+
callName?: string | undefined;
|
2401
2372
|
transcript?: {
|
2402
2373
|
speakerName?: string | undefined;
|
2403
2374
|
topic?: string | null | undefined;
|
@@ -2413,6 +2384,7 @@ export declare const gongGetGongTranscriptsOutputSchema: z.ZodObject<{
|
|
2413
2384
|
error?: string | undefined;
|
2414
2385
|
callTranscripts?: {
|
2415
2386
|
callId?: string | undefined;
|
2387
|
+
callName?: string | undefined;
|
2416
2388
|
transcript?: {
|
2417
2389
|
speakerName?: string | undefined;
|
2418
2390
|
topic?: string | null | undefined;
|
@@ -60,8 +60,9 @@ exports.asanaListAsanaTasksByProjectOutputSchema = zod_1.z.object({
|
|
60
60
|
.array(zod_1.z.object({
|
61
61
|
gid: zod_1.z.string().optional(),
|
62
62
|
name: zod_1.z.string().optional(),
|
63
|
-
display_value: zod_1.z.string().optional(),
|
63
|
+
display_value: zod_1.z.string().nullable().optional(),
|
64
64
|
}))
|
65
|
+
.nullable()
|
65
66
|
.optional(),
|
66
67
|
num_subtasks: zod_1.z.number().optional(),
|
67
68
|
}),
|
@@ -77,10 +78,9 @@ exports.asanaListAsanaTasksByProjectOutputSchema = zod_1.z.object({
|
|
77
78
|
.array(zod_1.z.object({
|
78
79
|
gid: zod_1.z.string().optional(),
|
79
80
|
name: zod_1.z.string().optional(),
|
80
|
-
|
81
|
-
.array(zod_1.z.object({ gid: zod_1.z.string().optional(), name: zod_1.z.string().optional() }))
|
82
|
-
.optional(),
|
81
|
+
display_value: zod_1.z.string().nullable().optional(),
|
83
82
|
}))
|
83
|
+
.nullable()
|
84
84
|
.optional(),
|
85
85
|
num_subtasks: zod_1.z.number().optional(),
|
86
86
|
}))
|
@@ -2067,7 +2067,8 @@ exports.gongGetGongTranscriptsOutputSchema = zod_1.z.object({
|
|
2067
2067
|
callTranscripts: zod_1.z
|
2068
2068
|
.array(zod_1.z
|
2069
2069
|
.object({
|
2070
|
-
callId: zod_1.z.string().describe("The ID of the
|
2070
|
+
callId: zod_1.z.string().describe("The ID of the call").optional(),
|
2071
|
+
callName: zod_1.z.string().describe("The name of the call").optional(),
|
2071
2072
|
transcript: zod_1.z
|
2072
2073
|
.array(zod_1.z
|
2073
2074
|
.object({
|
@@ -28,11 +28,13 @@ const TaskDetailsSchema = zod_1.z
|
|
28
28
|
completed: zod_1.z.boolean(),
|
29
29
|
modified_at: zod_1.z.string(),
|
30
30
|
notes: zod_1.z.string(),
|
31
|
-
custom_fields: zod_1.z
|
31
|
+
custom_fields: zod_1.z
|
32
|
+
.array(zod_1.z.object({
|
32
33
|
gid: zod_1.z.string(),
|
33
34
|
name: zod_1.z.string(),
|
34
|
-
display_value: zod_1.z.string(),
|
35
|
-
}))
|
35
|
+
display_value: zod_1.z.string().nullable(),
|
36
|
+
}))
|
37
|
+
.nullable(),
|
36
38
|
num_subtasks: zod_1.z.number(),
|
37
39
|
})
|
38
40
|
.partial()
|
@@ -80,6 +80,7 @@ const CallSchema = zod_1.z
|
|
80
80
|
primaryUserId: zod_1.z.string(),
|
81
81
|
started: zod_1.z.string(),
|
82
82
|
isPrivate: zod_1.z.boolean(),
|
83
|
+
title: zod_1.z.string(),
|
83
84
|
}),
|
84
85
|
parties: zod_1.z.array(zod_1.z
|
85
86
|
.object({
|
@@ -301,14 +302,14 @@ const getGongTranscripts = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
301
302
|
}
|
302
303
|
});
|
303
304
|
const callTranscriptsWithNames = callTranscripts.map(callTranscript => {
|
304
|
-
var _a;
|
305
|
+
var _a, _b, _c, _d;
|
305
306
|
const currTranscript = Object.assign({}, callTranscript);
|
306
307
|
currTranscript.transcript = (_a = callTranscript.transcript) === null || _a === void 0 ? void 0 : _a.map(transcript => {
|
307
308
|
var _a;
|
308
309
|
const { speakerId } = transcript, rest = __rest(transcript, ["speakerId"]);
|
309
310
|
return Object.assign(Object.assign({}, rest), { speakerName: (_a = userIdToNameMap[speakerId !== null && speakerId !== void 0 ? speakerId : ""]) !== null && _a !== void 0 ? _a : "Unknown" });
|
310
311
|
});
|
311
|
-
return currTranscript;
|
312
|
+
return Object.assign({ callName: (_d = (_c = (_b = publicCalls.find(call => { var _a; return ((_a = call.metaData) === null || _a === void 0 ? void 0 : _a.id) === callTranscript.callId; })) === null || _b === void 0 ? void 0 : _b.metaData) === null || _c === void 0 ? void 0 : _c.title) !== null && _d !== void 0 ? _d : "" }, currTranscript);
|
312
313
|
});
|
313
314
|
return {
|
314
315
|
success: true,
|
@@ -0,0 +1,43 @@
|
|
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 getSalesforceRecordByQuery = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
14
|
+
const { authToken, baseUrl } = authParams;
|
15
|
+
const { query, limit } = params;
|
16
|
+
if (!authToken || !baseUrl) {
|
17
|
+
return {
|
18
|
+
success: false,
|
19
|
+
error: "authToken and baseUrl are required for Salesforce API",
|
20
|
+
};
|
21
|
+
}
|
22
|
+
// The API limits the maximum number of records returned to 2000, the limit lets the user set a smaller custom limit
|
23
|
+
const url = `${baseUrl}/services/data/v56.0/query/?q=${encodeURIComponent(query + " LIMIT " + (limit != undefined && limit <= 2000 ? limit : 2000))}`;
|
24
|
+
try {
|
25
|
+
const response = yield axiosClient_1.axiosClient.get(url, {
|
26
|
+
headers: {
|
27
|
+
Authorization: `Bearer ${authToken}`,
|
28
|
+
},
|
29
|
+
});
|
30
|
+
return {
|
31
|
+
success: true,
|
32
|
+
records: response.data,
|
33
|
+
};
|
34
|
+
}
|
35
|
+
catch (error) {
|
36
|
+
console.error("Error retrieving Salesforce record:", error);
|
37
|
+
return {
|
38
|
+
success: false,
|
39
|
+
error: error instanceof Error ? error.message : "An unknown error occurred",
|
40
|
+
};
|
41
|
+
}
|
42
|
+
});
|
43
|
+
exports.default = getSalesforceRecordByQuery;
|
package/package.json
CHANGED
@@ -1,46 +0,0 @@
|
|
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
|
-
function getConfluenceRequestConfig(baseUrl, username, apiToken) {
|
14
|
-
return {
|
15
|
-
baseURL: baseUrl,
|
16
|
-
headers: {
|
17
|
-
Accept: "application/json",
|
18
|
-
Authorization: `Basic ${Buffer.from(`${username}:${apiToken}`).toString("base64")}`,
|
19
|
-
},
|
20
|
-
};
|
21
|
-
}
|
22
|
-
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);
|
29
|
-
// Get current version number
|
30
|
-
const response = yield axiosClient_1.axiosClient.get(`/api/v2/pages/${pageId}`, config);
|
31
|
-
const currVersion = response.data.version.number;
|
32
|
-
const payload = {
|
33
|
-
id: pageId,
|
34
|
-
status: "current",
|
35
|
-
title,
|
36
|
-
body: {
|
37
|
-
representation: "storage",
|
38
|
-
value: content,
|
39
|
-
},
|
40
|
-
version: {
|
41
|
-
number: currVersion + 1,
|
42
|
-
},
|
43
|
-
};
|
44
|
-
yield axiosClient_1.axiosClient.put(`/api/v2/pages/${pageId}`, payload, config);
|
45
|
-
});
|
46
|
-
exports.default = confluenceUpdatePage;
|
@@ -1,18 +0,0 @@
|
|
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 fillTemplateAction = (_a) => __awaiter(void 0, [_a], void 0, function* ({ template }) {
|
13
|
-
// Simply return the template without any modification
|
14
|
-
return {
|
15
|
-
result: template,
|
16
|
-
};
|
17
|
-
});
|
18
|
-
exports.default = fillTemplateAction;
|
@@ -1,38 +0,0 @@
|
|
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 genericApiCall = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, }) {
|
17
|
-
try {
|
18
|
-
const { endpoint, method, headers, body } = params;
|
19
|
-
const response = yield (0, axios_1.default)({
|
20
|
-
url: endpoint,
|
21
|
-
method,
|
22
|
-
headers,
|
23
|
-
data: method !== "GET" ? body : undefined,
|
24
|
-
});
|
25
|
-
return {
|
26
|
-
statusCode: response.status,
|
27
|
-
headers: response.headers,
|
28
|
-
data: response.data,
|
29
|
-
};
|
30
|
-
}
|
31
|
-
catch (error) {
|
32
|
-
if (axios_1.default.isAxiosError(error)) {
|
33
|
-
throw Error("Axios Error: " + (error.message || "Failed to make API call"));
|
34
|
-
}
|
35
|
-
throw Error("Error: " + (error || "Failed to make API call"));
|
36
|
-
}
|
37
|
-
});
|
38
|
-
exports.default = genericApiCall;
|
@@ -1,96 +0,0 @@
|
|
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 types_1 = require("../../autogen/types");
|
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",
|
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",
|
50
|
-
];
|
51
|
-
const nearbysearch = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
52
|
-
const url = `https://places.googleapis.com/v1/places:searchNearby`;
|
53
|
-
const fieldMask = [
|
54
|
-
"places.displayName",
|
55
|
-
"places.formattedAddress",
|
56
|
-
"places.priceLevel",
|
57
|
-
"places.rating",
|
58
|
-
"places.primaryTypeDisplayName",
|
59
|
-
"places.editorialSummary",
|
60
|
-
"places.regularOpeningHours",
|
61
|
-
].join(",");
|
62
|
-
const response = yield axios_1.default.post(url, {
|
63
|
-
maxResultCount: 20,
|
64
|
-
includedTypes: INCLUDED_TYPES,
|
65
|
-
locationRestriction: {
|
66
|
-
circle: {
|
67
|
-
center: {
|
68
|
-
latitude: params.latitude,
|
69
|
-
longitude: params.longitude,
|
70
|
-
},
|
71
|
-
radius: 10000,
|
72
|
-
},
|
73
|
-
},
|
74
|
-
}, {
|
75
|
-
headers: {
|
76
|
-
"X-Goog-Api-Key": authParams.apiKey,
|
77
|
-
"X-Goog-FieldMask": fieldMask,
|
78
|
-
"Content-Type": "application/json",
|
79
|
-
},
|
80
|
-
});
|
81
|
-
return types_1.googlemapsNearbysearchOutputSchema.parse({
|
82
|
-
results: response.data.places.map((place) => {
|
83
|
-
var _a, _b;
|
84
|
-
return ({
|
85
|
-
name: place.displayName.text,
|
86
|
-
address: place.formattedAddress,
|
87
|
-
priceLevel: place.priceLevel,
|
88
|
-
rating: place.rating,
|
89
|
-
primaryType: place.primaryTypeDisplayName.text,
|
90
|
-
editorialSummary: ((_a = place.editorialSummary) === null || _a === void 0 ? void 0 : _a.text) || "",
|
91
|
-
openingHours: ((_b = place.regularOpeningHours) === null || _b === void 0 ? void 0 : _b.weekdayDescriptions.join("\n")) || "",
|
92
|
-
});
|
93
|
-
}),
|
94
|
-
});
|
95
|
-
});
|
96
|
-
exports.default = nearbysearch;
|
@@ -1,154 +0,0 @@
|
|
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 snowflake_sdk_1 = __importDefault(require("snowflake-sdk"));
|
16
|
-
const crypto_1 = __importDefault(require("crypto"));
|
17
|
-
const client_s3_1 = require("@aws-sdk/client-s3");
|
18
|
-
const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
|
19
|
-
const uuid_1 = require("uuid");
|
20
|
-
// Only log errors.
|
21
|
-
snowflake_sdk_1.default.configure({ logLevel: "ERROR" });
|
22
|
-
const runSnowflakeQueryWriteResultsToS3 = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
23
|
-
const { databaseName, warehouse, query, user, accountName, s3BucketName, s3Region, outputFormat = "json" } = params;
|
24
|
-
const { apiKey: privateKey, awsAccessKeyId, awsSecretAccessKey } = authParams;
|
25
|
-
if (!privateKey) {
|
26
|
-
throw new Error("Snowflake private key is required");
|
27
|
-
}
|
28
|
-
if (!awsAccessKeyId || !awsSecretAccessKey) {
|
29
|
-
throw new Error("AWS credentials are required");
|
30
|
-
}
|
31
|
-
if (!accountName || !user || !databaseName || !warehouse || !query || !s3BucketName) {
|
32
|
-
throw new Error("Missing required parameters for Snowflake query or S3 destination");
|
33
|
-
}
|
34
|
-
const getPrivateKeyCorrectFormat = (privateKey) => {
|
35
|
-
const buffer = Buffer.from(privateKey);
|
36
|
-
const privateKeyObject = crypto_1.default.createPrivateKey({
|
37
|
-
key: buffer,
|
38
|
-
format: "pem",
|
39
|
-
passphrase: "password",
|
40
|
-
});
|
41
|
-
const privateKeyCorrectFormat = privateKeyObject.export({
|
42
|
-
format: "pem",
|
43
|
-
type: "pkcs8",
|
44
|
-
});
|
45
|
-
return privateKeyCorrectFormat.toString();
|
46
|
-
};
|
47
|
-
const executeQueryAndFormatData = () => __awaiter(void 0, void 0, void 0, function* () {
|
48
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
49
|
-
const queryResults = yield new Promise((resolve, reject) => {
|
50
|
-
connection.execute({
|
51
|
-
sqlText: query,
|
52
|
-
complete: (err, stmt, rows) => {
|
53
|
-
if (err) {
|
54
|
-
return reject(err);
|
55
|
-
}
|
56
|
-
return resolve(rows || []);
|
57
|
-
},
|
58
|
-
});
|
59
|
-
});
|
60
|
-
// Format the results based on the output format
|
61
|
-
let formattedData;
|
62
|
-
if (outputFormat.toLowerCase() === "csv") {
|
63
|
-
if (queryResults.length === 0) {
|
64
|
-
formattedData = "";
|
65
|
-
}
|
66
|
-
else {
|
67
|
-
const headers = Object.keys(queryResults[0]).join(",");
|
68
|
-
const rows = queryResults.map(row => Object.values(row)
|
69
|
-
.map(value => (typeof value === "object" && value !== null ? JSON.stringify(value) : value))
|
70
|
-
.join(","));
|
71
|
-
formattedData = [headers, ...rows].join("\n");
|
72
|
-
}
|
73
|
-
}
|
74
|
-
else {
|
75
|
-
// Default to JSON
|
76
|
-
formattedData = JSON.stringify(queryResults, null, 2);
|
77
|
-
}
|
78
|
-
return { formattedData, resultsLength: queryResults.length };
|
79
|
-
});
|
80
|
-
const uploadToS3AndGetURL = (formattedData) => __awaiter(void 0, void 0, void 0, function* () {
|
81
|
-
// Create S3 client
|
82
|
-
const s3Client = new client_s3_1.S3Client({
|
83
|
-
region: s3Region,
|
84
|
-
credentials: {
|
85
|
-
accessKeyId: awsAccessKeyId,
|
86
|
-
secretAccessKey: awsSecretAccessKey,
|
87
|
-
},
|
88
|
-
});
|
89
|
-
const contentType = outputFormat.toLowerCase() === "csv" ? "text/csv" : "application/json";
|
90
|
-
const fileExtension = outputFormat.toLowerCase() === "csv" ? "csv" : "json";
|
91
|
-
const finalKey = `${databaseName}/${(0, uuid_1.v4)()}.${fileExtension}`;
|
92
|
-
// Upload to S3 without ACL
|
93
|
-
const uploadCommand = new client_s3_1.PutObjectCommand({
|
94
|
-
Bucket: s3BucketName,
|
95
|
-
Key: finalKey,
|
96
|
-
Body: formattedData,
|
97
|
-
ContentType: contentType,
|
98
|
-
});
|
99
|
-
yield s3Client.send(uploadCommand);
|
100
|
-
// Generate a presigned URL (valid for an hour)
|
101
|
-
const getObjectCommand = new client_s3_1.GetObjectCommand({
|
102
|
-
Bucket: s3BucketName,
|
103
|
-
Key: finalKey,
|
104
|
-
});
|
105
|
-
const presignedUrl = yield (0, s3_request_presigner_1.getSignedUrl)(s3Client, getObjectCommand, { expiresIn: 3600 });
|
106
|
-
return presignedUrl;
|
107
|
-
});
|
108
|
-
// Process the private key
|
109
|
-
const privateKeyCorrectFormatString = getPrivateKeyCorrectFormat(privateKey);
|
110
|
-
// Set up a connection using snowflake-sdk
|
111
|
-
const connection = snowflake_sdk_1.default.createConnection({
|
112
|
-
account: accountName,
|
113
|
-
username: user,
|
114
|
-
privateKey: privateKeyCorrectFormatString,
|
115
|
-
authenticator: "SNOWFLAKE_JWT",
|
116
|
-
role: "ACCOUNTADMIN",
|
117
|
-
warehouse: warehouse,
|
118
|
-
database: databaseName,
|
119
|
-
});
|
120
|
-
try {
|
121
|
-
// Connect to Snowflake
|
122
|
-
yield new Promise((resolve, reject) => {
|
123
|
-
connection.connect((err, conn) => {
|
124
|
-
if (err) {
|
125
|
-
console.error("Unable to connect to Snowflake:", err.message);
|
126
|
-
return reject(err);
|
127
|
-
}
|
128
|
-
resolve(conn);
|
129
|
-
});
|
130
|
-
});
|
131
|
-
const { formattedData, resultsLength } = yield executeQueryAndFormatData();
|
132
|
-
const presignedUrl = yield uploadToS3AndGetURL(formattedData);
|
133
|
-
// Return fields to match schema definition
|
134
|
-
connection.destroy(err => {
|
135
|
-
if (err) {
|
136
|
-
console.log("Failed to disconnect from Snowflake:", err);
|
137
|
-
}
|
138
|
-
});
|
139
|
-
return {
|
140
|
-
bucketUrl: presignedUrl,
|
141
|
-
message: `Query results successfully written to S3. URL valid for 1 hour.`,
|
142
|
-
rowCount: resultsLength,
|
143
|
-
};
|
144
|
-
}
|
145
|
-
catch (error) {
|
146
|
-
connection.destroy(err => {
|
147
|
-
if (err) {
|
148
|
-
console.log("Failed to disconnect from Snowflake:", err);
|
149
|
-
}
|
150
|
-
});
|
151
|
-
throw Error(`An error occurred: ${error}`);
|
152
|
-
}
|
153
|
-
});
|
154
|
-
exports.default = runSnowflakeQueryWriteResultsToS3;
|
@@ -1,45 +0,0 @@
|
|
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 firecrawl_js_1 = __importDefault(require("@mendable/firecrawl-js"));
|
16
|
-
const scrapeTweetDataWithNitter = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
17
|
-
const tweetUrlRegex = /^(?:https?:\/\/)?(?:www\.)?(?:twitter\.com|x\.com)\/([a-zA-Z0-9_]+)\/status\/(\d+)(?:\?.*)?$/;
|
18
|
-
if (!tweetUrlRegex.test(params.tweetUrl)) {
|
19
|
-
throw new Error("Invalid tweet URL. Expected format: https://twitter.com/username/status/id or https://x.com/username/status/id");
|
20
|
-
}
|
21
|
-
const nitterUrl = params.tweetUrl.replace(/^(?:https?:\/\/)?(?:www\.)?(?:twitter\.com|x\.com)/i, "https://nitter.net");
|
22
|
-
// Initialize Firecrawl
|
23
|
-
if (!authParams.apiKey) {
|
24
|
-
throw new Error("API key is required for X+Nitter+Firecrawl");
|
25
|
-
}
|
26
|
-
const firecrawl = new firecrawl_js_1.default({
|
27
|
-
apiKey: authParams.apiKey,
|
28
|
-
});
|
29
|
-
try {
|
30
|
-
// Scrape the Nitter URL
|
31
|
-
const result = yield firecrawl.scrapeUrl(nitterUrl);
|
32
|
-
if (!result.success) {
|
33
|
-
throw new Error(`Failed to scrape tweet: ${result.error || "Unknown error"}`);
|
34
|
-
}
|
35
|
-
// Extract the tweet text from the scraped content - simple approach - in practice, you might need more robust parsing based on nitter html structure
|
36
|
-
const tweetContent = result.markdown;
|
37
|
-
return {
|
38
|
-
text: tweetContent || "Error scraping with firecrawl",
|
39
|
-
};
|
40
|
-
}
|
41
|
-
catch (error) {
|
42
|
-
throw new Error(`Error scraping tweet: ${error instanceof Error ? error.message : error}`);
|
43
|
-
}
|
44
|
-
});
|
45
|
-
exports.default = scrapeTweetDataWithNitter;
|