@credal/actions 0.1.80 → 0.1.82
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 +10 -18
- package/dist/actions/autogen/types.d.ts +37 -70
- package/dist/actions/autogen/types.js +8 -8
- package/dist/actions/providers/asana/listAsanaTasksByProject.js +5 -3
- 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
|
},
|
@@ -1725,12 +1718,11 @@ exports.snowflakeRunSnowflakeQueryDefinition = {
|
|
1725
1718
|
},
|
1726
1719
|
codeInterpreterLimit: {
|
1727
1720
|
type: "number",
|
1728
|
-
description: "A minimum number of rows required to pass to code interpreter (if enabled)",
|
1721
|
+
description: "A minimum number of rows required to pass to code interpreter for analysis and image generation (if enabled)",
|
1729
1722
|
},
|
1730
|
-
|
1731
|
-
|
1732
|
-
|
1733
|
-
description: "Whether we should try to generate an image with results via code interpreter, regardless of if the codeInterpreter limit is reached",
|
1723
|
+
codeInterpreterImageGenLimit: {
|
1724
|
+
type: "number",
|
1725
|
+
description: "A minimum number of rows required to pass to code interpreter for image generation only (if enabled)",
|
1734
1726
|
},
|
1735
1727
|
},
|
1736
1728
|
},
|
@@ -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?: {
|
@@ -1661,7 +1628,7 @@ export declare const snowflakeRunSnowflakeQueryParamsSchema: z.ZodObject<{
|
|
1661
1628
|
outputFormat: z.ZodOptional<z.ZodEnum<["json", "csv"]>>;
|
1662
1629
|
limit: z.ZodOptional<z.ZodNumber>;
|
1663
1630
|
codeInterpreterLimit: z.ZodOptional<z.ZodNumber>;
|
1664
|
-
|
1631
|
+
codeInterpreterImageGenLimit: z.ZodOptional<z.ZodNumber>;
|
1665
1632
|
}, "strip", z.ZodTypeAny, {
|
1666
1633
|
query: string;
|
1667
1634
|
databaseName: string;
|
@@ -1670,7 +1637,7 @@ export declare const snowflakeRunSnowflakeQueryParamsSchema: z.ZodObject<{
|
|
1670
1637
|
limit?: number | undefined;
|
1671
1638
|
outputFormat?: "json" | "csv" | undefined;
|
1672
1639
|
codeInterpreterLimit?: number | undefined;
|
1673
|
-
|
1640
|
+
codeInterpreterImageGenLimit?: number | undefined;
|
1674
1641
|
}, {
|
1675
1642
|
query: string;
|
1676
1643
|
databaseName: string;
|
@@ -1679,7 +1646,7 @@ export declare const snowflakeRunSnowflakeQueryParamsSchema: z.ZodObject<{
|
|
1679
1646
|
limit?: number | undefined;
|
1680
1647
|
outputFormat?: "json" | "csv" | undefined;
|
1681
1648
|
codeInterpreterLimit?: number | undefined;
|
1682
|
-
|
1649
|
+
codeInterpreterImageGenLimit?: number | undefined;
|
1683
1650
|
}>;
|
1684
1651
|
export type snowflakeRunSnowflakeQueryParamsType = z.infer<typeof snowflakeRunSnowflakeQueryParamsSchema>;
|
1685
1652
|
export declare const snowflakeRunSnowflakeQueryOutputSchema: z.ZodObject<{
|
@@ -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
|
}))
|
@@ -528,11 +528,11 @@ exports.snowflakeRunSnowflakeQueryParamsSchema = zod_1.z.object({
|
|
528
528
|
limit: zod_1.z.number().describe("A limit on the number of rows to return").optional(),
|
529
529
|
codeInterpreterLimit: zod_1.z
|
530
530
|
.number()
|
531
|
-
.describe("A minimum number of rows required to pass to code interpreter (if enabled)")
|
531
|
+
.describe("A minimum number of rows required to pass to code interpreter for analysis and image generation (if enabled)")
|
532
532
|
.optional(),
|
533
|
-
|
534
|
-
.
|
535
|
-
.describe("
|
533
|
+
codeInterpreterImageGenLimit: zod_1.z
|
534
|
+
.number()
|
535
|
+
.describe("A minimum number of rows required to pass to code interpreter for image generation only (if enabled)")
|
536
536
|
.optional(),
|
537
537
|
});
|
538
538
|
exports.snowflakeRunSnowflakeQueryOutputSchema = zod_1.z.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()
|
@@ -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;
|