@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.
@@ -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
- enum_options: {
182
- type: "array",
183
- items: {
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
- generateImageViaCodeInterpreter: {
1731
- enum: [true, false],
1732
- type: "boolean",
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
- enum_options: z.ZodOptional<z.ZodArray<z.ZodObject<{
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
- enum_options?: {
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
- enum_options?: {
199
- name?: string | undefined;
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
- enum_options?: {
215
- name?: string | undefined;
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
- enum_options?: {
231
- name?: string | undefined;
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
- enum_options?: {
301
- name?: string | undefined;
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
- enum_options?: {
343
- name?: string | undefined;
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
- enum_options?: {
389
- name?: string | undefined;
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
- enum_options?: {
435
- name?: string | undefined;
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
- generateImageViaCodeInterpreter: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<true>, z.ZodLiteral<false>]>>;
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
- generateImageViaCodeInterpreter?: boolean | undefined;
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
- generateImageViaCodeInterpreter?: boolean | undefined;
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
- enum_options: zod_1.z
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
- generateImageViaCodeInterpreter: zod_1.z
534
- .union([zod_1.z.literal(true), zod_1.z.literal(false)])
535
- .describe("Whether we should try to generate an image with results via code interpreter, regardless of if the codeInterpreter limit is reached")
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.array(zod_1.z.object({
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,3 @@
1
+ import { salesforceGetSalesforceRecordsByQueryFunction } from "../../autogen/types";
2
+ declare const getSalesforceRecordByQuery: salesforceGetSalesforceRecordsByQueryFunction;
3
+ export default getSalesforceRecordByQuery;
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "@credal/actions",
3
- "version": "0.1.80",
3
+ "version": "0.1.82",
4
4
  "description": "AI Actions by Credal AI",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,3 +0,0 @@
1
- import { confluenceUpdatePageFunction } from "../../../actions/autogen/types";
2
- declare const confluenceUpdatePage: confluenceUpdatePageFunction;
3
- export default confluenceUpdatePage;
@@ -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,7 +0,0 @@
1
- import type { ActionFunction } from "../../autogen/types";
2
- declare const fillTemplateAction: ActionFunction<{
3
- template: string;
4
- }, {
5
- result: string;
6
- }, unknown>;
7
- export default fillTemplateAction;
@@ -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,3 +0,0 @@
1
- import type { genericUniversalTestActionFunction } from "../../autogen/types";
2
- declare const genericApiCall: genericUniversalTestActionFunction;
3
- export default genericApiCall;
@@ -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,3 +0,0 @@
1
- import { googlemapsNearbysearchFunction } from "../../autogen/types";
2
- declare const nearbysearch: googlemapsNearbysearchFunction;
3
- export default nearbysearch;
@@ -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,3 +0,0 @@
1
- import { snowflakeRunSnowflakeQueryWriteResultsToS3Function } from "../../autogen/types";
2
- declare const runSnowflakeQueryWriteResultsToS3: snowflakeRunSnowflakeQueryWriteResultsToS3Function;
3
- export default runSnowflakeQueryWriteResultsToS3;
@@ -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,3 +0,0 @@
1
- import { xScrapePostDataWithNitterFunction } from "../../autogen/types";
2
- declare const scrapeTweetDataWithNitter: xScrapePostDataWithNitterFunction;
3
- export default scrapeTweetDataWithNitter;
@@ -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;