@bubblelab/bubble-core 0.1.27 → 0.1.30

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.
Files changed (88) hide show
  1. package/dist/bubble-bundle.d.ts +160 -91
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +4 -0
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubbles/service-bubble/agi-inc.d.ts +8 -8
  6. package/dist/bubbles/service-bubble/airtable.d.ts +98 -98
  7. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts +2 -2
  8. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +20 -20
  9. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +30 -30
  10. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +26 -26
  11. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +56 -56
  12. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +16 -16
  13. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +31 -31
  14. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +8 -8
  15. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +153 -153
  16. package/dist/bubbles/service-bubble/apify/apify.d.ts +12 -12
  17. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +4 -4
  18. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +8 -8
  19. package/dist/bubbles/service-bubble/eleven-labs.d.ts +4 -4
  20. package/dist/bubbles/service-bubble/firecrawl.d.ts +128 -128
  21. package/dist/bubbles/service-bubble/followupboss.d.ts +84 -84
  22. package/dist/bubbles/service-bubble/github.d.ts +120 -120
  23. package/dist/bubbles/service-bubble/gmail.d.ts +411 -411
  24. package/dist/bubbles/service-bubble/google-calendar.d.ts +184 -184
  25. package/dist/bubbles/service-bubble/google-drive.d.ts +48 -48
  26. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +33 -33
  27. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts +31 -0
  28. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts.map +1 -0
  29. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js +184 -0
  30. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js.map +1 -0
  31. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts +79 -79
  32. package/dist/bubbles/service-bubble/google-sheets.d.ts +1811 -0
  33. package/dist/bubbles/service-bubble/google-sheets.d.ts.map +1 -0
  34. package/dist/bubbles/service-bubble/google-sheets.js +904 -0
  35. package/dist/bubbles/service-bubble/google-sheets.js.map +1 -0
  36. package/dist/bubbles/service-bubble/http.d.ts +8 -8
  37. package/dist/bubbles/service-bubble/insforge-db.d.ts +4 -4
  38. package/dist/bubbles/service-bubble/jira/index.d.ts +5 -0
  39. package/dist/bubbles/service-bubble/jira/index.d.ts.map +1 -0
  40. package/dist/bubbles/service-bubble/jira/index.js +5 -0
  41. package/dist/bubbles/service-bubble/jira/index.js.map +1 -0
  42. package/dist/bubbles/service-bubble/jira/jira.d.ts +2695 -0
  43. package/dist/bubbles/service-bubble/jira/jira.d.ts.map +1 -0
  44. package/dist/bubbles/service-bubble/jira/jira.integration.flow.d.ts +38 -0
  45. package/dist/bubbles/service-bubble/jira/jira.integration.flow.d.ts.map +1 -0
  46. package/dist/bubbles/service-bubble/jira/jira.integration.flow.js +358 -0
  47. package/dist/bubbles/service-bubble/jira/jira.integration.flow.js.map +1 -0
  48. package/dist/bubbles/service-bubble/jira/jira.js +535 -0
  49. package/dist/bubbles/service-bubble/jira/jira.js.map +1 -0
  50. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +3659 -0
  51. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts.map +1 -0
  52. package/dist/bubbles/service-bubble/jira/jira.schema.js +502 -0
  53. package/dist/bubbles/service-bubble/jira/jira.schema.js.map +1 -0
  54. package/dist/bubbles/service-bubble/jira/jira.utils.d.ts +141 -0
  55. package/dist/bubbles/service-bubble/jira/jira.utils.d.ts.map +1 -0
  56. package/dist/bubbles/service-bubble/jira/jira.utils.js +428 -0
  57. package/dist/bubbles/service-bubble/jira/jira.utils.js.map +1 -0
  58. package/dist/bubbles/service-bubble/notion/notion.d.ts +148 -148
  59. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +36 -36
  60. package/dist/bubbles/service-bubble/postgresql.d.ts +4 -4
  61. package/dist/bubbles/service-bubble/resend.d.ts +4 -4
  62. package/dist/bubbles/service-bubble/slack/slack.d.ts +142 -142
  63. package/dist/bubbles/service-bubble/slack.d.ts +5869 -0
  64. package/dist/bubbles/service-bubble/slack.d.ts.map +1 -0
  65. package/dist/bubbles/service-bubble/slack.js +1536 -0
  66. package/dist/bubbles/service-bubble/slack.js.map +1 -0
  67. package/dist/bubbles/service-bubble/storage.d.ts +20 -20
  68. package/dist/bubbles/service-bubble/telegram.d.ts +6 -6
  69. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +4 -4
  70. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +4 -4
  71. package/dist/bubbles/tool-bubble/instagram-tool.d.ts +4 -4
  72. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +198 -198
  73. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +4 -4
  74. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +12 -12
  75. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  76. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
  77. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +44 -44
  78. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +88 -88
  79. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +4 -4
  80. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +20 -20
  81. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +42 -42
  82. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +48 -48
  83. package/dist/bubbles.json +1791 -2
  84. package/dist/index.d.ts +2 -0
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +1 -0
  87. package/dist/index.js.map +1 -1
  88. package/package.json +2 -2
@@ -42,21 +42,21 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
42
42
  date_time_render_option: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<["SERIAL_NUMBER", "FORMATTED_STRING"]>>>;
43
43
  credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
44
44
  }, "strip", import("zod").ZodTypeAny, {
45
- range: string;
46
45
  operation: "read_values";
47
46
  spreadsheet_id: string;
47
+ range: string;
48
48
  major_dimension: "ROWS" | "COLUMNS";
49
49
  value_render_option: "FORMATTED_VALUE" | "UNFORMATTED_VALUE" | "FORMULA";
50
50
  date_time_render_option: "SERIAL_NUMBER" | "FORMATTED_STRING";
51
51
  credentials?: Partial<Record<CredentialType, string>> | undefined;
52
52
  }, {
53
- range: string;
54
53
  operation: "read_values";
55
54
  spreadsheet_id: string;
55
+ range: string;
56
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
56
57
  major_dimension?: "ROWS" | "COLUMNS" | undefined;
57
58
  value_render_option?: "FORMATTED_VALUE" | "UNFORMATTED_VALUE" | "FORMULA" | undefined;
58
59
  date_time_render_option?: "SERIAL_NUMBER" | "FORMATTED_STRING" | undefined;
59
- credentials?: Partial<Record<CredentialType, string>> | undefined;
60
60
  }>, import("zod").ZodObject<{
61
61
  operation: import("zod").ZodLiteral<"write_values">;
62
62
  spreadsheet_id: import("zod").ZodString;
@@ -67,21 +67,21 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
67
67
  include_values_in_response: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
68
68
  credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
69
69
  }, "strip", import("zod").ZodTypeAny, {
70
- range: string;
71
70
  values: (string | number | boolean)[][];
72
71
  operation: "write_values";
73
72
  spreadsheet_id: string;
73
+ range: string;
74
74
  major_dimension: "ROWS" | "COLUMNS";
75
75
  value_input_option: "RAW" | "USER_ENTERED";
76
76
  include_values_in_response: boolean;
77
77
  credentials?: Partial<Record<CredentialType, string>> | undefined;
78
78
  }, {
79
- range: string;
80
79
  values: unknown[][];
81
80
  operation: "write_values";
82
81
  spreadsheet_id: string;
83
- major_dimension?: "ROWS" | "COLUMNS" | undefined;
82
+ range: string;
84
83
  credentials?: Partial<Record<CredentialType, string>> | undefined;
84
+ major_dimension?: "ROWS" | "COLUMNS" | undefined;
85
85
  value_input_option?: "RAW" | "USER_ENTERED" | undefined;
86
86
  include_values_in_response?: boolean | undefined;
87
87
  }>, import("zod").ZodObject<{
@@ -94,21 +94,21 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
94
94
  include_values_in_response: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
95
95
  credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
96
96
  }, "strip", import("zod").ZodTypeAny, {
97
- range: string;
98
97
  values: (string | number | boolean)[][];
99
98
  operation: "update_values";
100
99
  spreadsheet_id: string;
100
+ range: string;
101
101
  major_dimension: "ROWS" | "COLUMNS";
102
102
  value_input_option: "RAW" | "USER_ENTERED";
103
103
  include_values_in_response: boolean;
104
104
  credentials?: Partial<Record<CredentialType, string>> | undefined;
105
105
  }, {
106
- range: string;
107
106
  values: unknown[][];
108
107
  operation: "update_values";
109
108
  spreadsheet_id: string;
110
- major_dimension?: "ROWS" | "COLUMNS" | undefined;
109
+ range: string;
111
110
  credentials?: Partial<Record<CredentialType, string>> | undefined;
111
+ major_dimension?: "ROWS" | "COLUMNS" | undefined;
112
112
  value_input_option?: "RAW" | "USER_ENTERED" | undefined;
113
113
  include_values_in_response?: boolean | undefined;
114
114
  }>, import("zod").ZodObject<{
@@ -122,22 +122,22 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
122
122
  include_values_in_response: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
123
123
  credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
124
124
  }, "strip", import("zod").ZodTypeAny, {
125
- range: string;
126
125
  values: (string | number | boolean)[][];
127
126
  operation: "append_values";
128
127
  spreadsheet_id: string;
128
+ range: string;
129
129
  major_dimension: "ROWS" | "COLUMNS";
130
130
  value_input_option: "RAW" | "USER_ENTERED";
131
131
  include_values_in_response: boolean;
132
132
  insert_data_option: "OVERWRITE" | "INSERT_ROWS";
133
133
  credentials?: Partial<Record<CredentialType, string>> | undefined;
134
134
  }, {
135
- range: string;
136
135
  values: unknown[][];
137
136
  operation: "append_values";
138
137
  spreadsheet_id: string;
139
- major_dimension?: "ROWS" | "COLUMNS" | undefined;
138
+ range: string;
140
139
  credentials?: Partial<Record<CredentialType, string>> | undefined;
140
+ major_dimension?: "ROWS" | "COLUMNS" | undefined;
141
141
  value_input_option?: "RAW" | "USER_ENTERED" | undefined;
142
142
  include_values_in_response?: boolean | undefined;
143
143
  insert_data_option?: "OVERWRITE" | "INSERT_ROWS" | undefined;
@@ -147,14 +147,14 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
147
147
  range: import("zod").ZodEffects<import("zod").ZodString, string, string>;
148
148
  credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
149
149
  }, "strip", import("zod").ZodTypeAny, {
150
- range: string;
151
150
  operation: "clear_values";
152
151
  spreadsheet_id: string;
152
+ range: string;
153
153
  credentials?: Partial<Record<CredentialType, string>> | undefined;
154
154
  }, {
155
- range: string;
156
155
  operation: "clear_values";
157
156
  spreadsheet_id: string;
157
+ range: string;
158
158
  credentials?: Partial<Record<CredentialType, string>> | undefined;
159
159
  }>, import("zod").ZodObject<{
160
160
  operation: import("zod").ZodLiteral<"batch_read_values">;
@@ -176,10 +176,10 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
176
176
  operation: "batch_read_values";
177
177
  spreadsheet_id: string;
178
178
  ranges: string[];
179
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
179
180
  major_dimension?: "ROWS" | "COLUMNS" | undefined;
180
181
  value_render_option?: "FORMATTED_VALUE" | "UNFORMATTED_VALUE" | "FORMULA" | undefined;
181
182
  date_time_render_option?: "SERIAL_NUMBER" | "FORMATTED_STRING" | undefined;
182
- credentials?: Partial<Record<CredentialType, string>> | undefined;
183
183
  }>, import("zod").ZodObject<{
184
184
  operation: import("zod").ZodLiteral<"batch_update_values">;
185
185
  spreadsheet_id: import("zod").ZodString;
@@ -188,12 +188,12 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
188
188
  values: import("zod").ZodEffects<import("zod").ZodArray<import("zod").ZodArray<import("zod").ZodUnknown, "many">, "many">, (string | number | boolean)[][], unknown[][]>;
189
189
  major_dimension: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<["ROWS", "COLUMNS"]>>>;
190
190
  }, "strip", import("zod").ZodTypeAny, {
191
- range: string;
192
191
  values: (string | number | boolean)[][];
192
+ range: string;
193
193
  major_dimension: "ROWS" | "COLUMNS";
194
194
  }, {
195
- range: string;
196
195
  values: unknown[][];
196
+ range: string;
197
197
  major_dimension?: "ROWS" | "COLUMNS" | undefined;
198
198
  }>, "many">;
199
199
  value_input_option: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<["RAW", "USER_ENTERED"]>>>;
@@ -205,8 +205,8 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
205
205
  value_input_option: "RAW" | "USER_ENTERED";
206
206
  include_values_in_response: boolean;
207
207
  value_ranges: {
208
- range: string;
209
208
  values: (string | number | boolean)[][];
209
+ range: string;
210
210
  major_dimension: "ROWS" | "COLUMNS";
211
211
  }[];
212
212
  credentials?: Partial<Record<CredentialType, string>> | undefined;
@@ -214,8 +214,8 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
214
214
  operation: "batch_update_values";
215
215
  spreadsheet_id: string;
216
216
  value_ranges: {
217
- range: string;
218
217
  values: unknown[][];
218
+ range: string;
219
219
  major_dimension?: "ROWS" | "COLUMNS" | undefined;
220
220
  }[];
221
221
  credentials?: Partial<Record<CredentialType, string>> | undefined;
@@ -299,15 +299,15 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
299
299
  operation: "read_values";
300
300
  success: boolean;
301
301
  error: string;
302
- range?: string | undefined;
303
302
  values?: (string | number | boolean)[][] | undefined;
303
+ range?: string | undefined;
304
304
  major_dimension?: string | undefined;
305
305
  }, {
306
306
  operation: "read_values";
307
307
  success: boolean;
308
308
  error: string;
309
- range?: string | undefined;
310
309
  values?: (string | number | boolean)[][] | undefined;
310
+ range?: string | undefined;
311
311
  major_dimension?: string | undefined;
312
312
  }>, import("zod").ZodObject<{
313
313
  operation: import("zod").ZodLiteral<"write_values">;
@@ -321,12 +321,12 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
321
321
  majorDimension: import("zod").ZodOptional<import("zod").ZodEnum<["ROWS", "COLUMNS"]>>;
322
322
  values: import("zod").ZodArray<import("zod").ZodArray<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber, import("zod").ZodBoolean]>, "many">, "many">;
323
323
  }, "strip", import("zod").ZodTypeAny, {
324
- range: string;
325
324
  values: (string | number | boolean)[][];
325
+ range: string;
326
326
  majorDimension?: "ROWS" | "COLUMNS" | undefined;
327
327
  }, {
328
- range: string;
329
328
  values: (string | number | boolean)[][];
329
+ range: string;
330
330
  majorDimension?: "ROWS" | "COLUMNS" | undefined;
331
331
  }>>;
332
332
  error: import("zod").ZodString;
@@ -339,8 +339,8 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
339
339
  updated_columns?: number | undefined;
340
340
  updated_cells?: number | undefined;
341
341
  updated_data?: {
342
- range: string;
343
342
  values: (string | number | boolean)[][];
343
+ range: string;
344
344
  majorDimension?: "ROWS" | "COLUMNS" | undefined;
345
345
  } | undefined;
346
346
  }, {
@@ -352,8 +352,8 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
352
352
  updated_columns?: number | undefined;
353
353
  updated_cells?: number | undefined;
354
354
  updated_data?: {
355
- range: string;
356
355
  values: (string | number | boolean)[][];
356
+ range: string;
357
357
  majorDimension?: "ROWS" | "COLUMNS" | undefined;
358
358
  } | undefined;
359
359
  }>, import("zod").ZodObject<{
@@ -368,12 +368,12 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
368
368
  majorDimension: import("zod").ZodOptional<import("zod").ZodEnum<["ROWS", "COLUMNS"]>>;
369
369
  values: import("zod").ZodArray<import("zod").ZodArray<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber, import("zod").ZodBoolean]>, "many">, "many">;
370
370
  }, "strip", import("zod").ZodTypeAny, {
371
- range: string;
372
371
  values: (string | number | boolean)[][];
372
+ range: string;
373
373
  majorDimension?: "ROWS" | "COLUMNS" | undefined;
374
374
  }, {
375
- range: string;
376
375
  values: (string | number | boolean)[][];
376
+ range: string;
377
377
  majorDimension?: "ROWS" | "COLUMNS" | undefined;
378
378
  }>>;
379
379
  error: import("zod").ZodString;
@@ -386,8 +386,8 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
386
386
  updated_columns?: number | undefined;
387
387
  updated_cells?: number | undefined;
388
388
  updated_data?: {
389
- range: string;
390
389
  values: (string | number | boolean)[][];
390
+ range: string;
391
391
  majorDimension?: "ROWS" | "COLUMNS" | undefined;
392
392
  } | undefined;
393
393
  }, {
@@ -399,8 +399,8 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
399
399
  updated_columns?: number | undefined;
400
400
  updated_cells?: number | undefined;
401
401
  updated_data?: {
402
- range: string;
403
402
  values: (string | number | boolean)[][];
403
+ range: string;
404
404
  majorDimension?: "ROWS" | "COLUMNS" | undefined;
405
405
  } | undefined;
406
406
  }>, import("zod").ZodObject<{
@@ -453,12 +453,12 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
453
453
  majorDimension: import("zod").ZodOptional<import("zod").ZodEnum<["ROWS", "COLUMNS"]>>;
454
454
  values: import("zod").ZodArray<import("zod").ZodArray<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber, import("zod").ZodBoolean]>, "many">, "many">;
455
455
  }, "strip", import("zod").ZodTypeAny, {
456
- range: string;
457
456
  values: (string | number | boolean)[][];
457
+ range: string;
458
458
  majorDimension?: "ROWS" | "COLUMNS" | undefined;
459
459
  }, {
460
- range: string;
461
460
  values: (string | number | boolean)[][];
461
+ range: string;
462
462
  majorDimension?: "ROWS" | "COLUMNS" | undefined;
463
463
  }>, "many">>;
464
464
  error: import("zod").ZodString;
@@ -467,8 +467,8 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
467
467
  success: boolean;
468
468
  error: string;
469
469
  value_ranges?: {
470
- range: string;
471
470
  values: (string | number | boolean)[][];
471
+ range: string;
472
472
  majorDimension?: "ROWS" | "COLUMNS" | undefined;
473
473
  }[] | undefined;
474
474
  }, {
@@ -476,8 +476,8 @@ export declare class GoogleSheetsBubble<T extends GoogleSheetsParamsInput = Goog
476
476
  success: boolean;
477
477
  error: string;
478
478
  value_ranges?: {
479
- range: string;
480
479
  values: (string | number | boolean)[][];
480
+ range: string;
481
481
  majorDimension?: "ROWS" | "COLUMNS" | undefined;
482
482
  }[] | undefined;
483
483
  }>, import("zod").ZodObject<{
@@ -0,0 +1,31 @@
1
+ import { BubbleFlow, type WebhookEvent } from '@bubblelab/bubble-core';
2
+ export interface Output {
3
+ spreadsheetId: string;
4
+ spreadsheetUrl: string;
5
+ testResults: {
6
+ operation: string;
7
+ success: boolean;
8
+ details?: string;
9
+ }[];
10
+ }
11
+ /**
12
+ * Payload for the Google Sheets Stress Test workflow.
13
+ */
14
+ export interface SheetsStressTestPayload extends WebhookEvent {
15
+ /**
16
+ * The title for the test spreadsheet that will be created.
17
+ * @canBeFile false
18
+ */
19
+ testTitle?: string;
20
+ }
21
+ export declare class GoogleSheetsStressTest extends BubbleFlow<'webhook/http'> {
22
+ private createTestSpreadsheet;
23
+ private createSheetWithSpaces;
24
+ private writeRawDataWithNulls;
25
+ private readFromRangeWithSpaces;
26
+ private appendToRangeWithSpaces;
27
+ private clearRangeWithSpaces;
28
+ private deleteSheet;
29
+ handle(payload: SheetsStressTestPayload): Promise<Output>;
30
+ }
31
+ //# sourceMappingURL=google-sheets.integration.flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-sheets.integration.flow.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,MAAM;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,sBAAuB,SAAQ,UAAU,CAAC,cAAc,CAAC;YAEtD,qBAAqB;YAmBrB,qBAAqB;YAsBrB,qBAAqB;YAqBrB,uBAAuB;YAgBvB,uBAAuB;YAsBvB,oBAAoB;YAepB,WAAW;IAcnB,MAAM,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;CA0HhE"}
@@ -0,0 +1,184 @@
1
+ import { BubbleFlow, GoogleSheetsBubble, } from '@bubblelab/bubble-core';
2
+ export class GoogleSheetsStressTest extends BubbleFlow {
3
+ // Creates a new Google Spreadsheet with a specific title
4
+ async createTestSpreadsheet(title) {
5
+ const result = await new GoogleSheetsBubble({
6
+ operation: 'create_spreadsheet',
7
+ title: title,
8
+ sheet_titles: ['InitialSheet'],
9
+ }).action();
10
+ if (!result.success ||
11
+ result.data?.operation !== 'create_spreadsheet' ||
12
+ !result.data.spreadsheet) {
13
+ throw new Error(`Failed to create spreadsheet: ${result.error}`);
14
+ }
15
+ return result.data.spreadsheet;
16
+ }
17
+ // Adds a sheet with spaces in the name - tests if bubble handles spaces without manual quoting
18
+ async createSheetWithSpaces(spreadsheetId, sheetName) {
19
+ const result = await new GoogleSheetsBubble({
20
+ operation: 'add_sheet',
21
+ spreadsheet_id: spreadsheetId,
22
+ sheet_title: sheetName,
23
+ }).action();
24
+ if (!result.success ||
25
+ result.data?.operation !== 'add_sheet' ||
26
+ result.data.sheet_id === undefined) {
27
+ throw new Error(`Failed to add sheet with spaces: ${result.error}`);
28
+ }
29
+ return result.data.sheet_id;
30
+ }
31
+ // Writes raw data with nulls/undefineds to test bubble's native null handling
32
+ async writeRawDataWithNulls(spreadsheetId, range, data) {
33
+ const result = await new GoogleSheetsBubble({
34
+ operation: 'write_values',
35
+ spreadsheet_id: spreadsheetId,
36
+ range: range,
37
+ values: data,
38
+ value_input_option: 'RAW',
39
+ }).action();
40
+ if (!result.success) {
41
+ throw new Error(`Failed to write stress test data: ${result.error}`);
42
+ }
43
+ return result.data;
44
+ }
45
+ // Reads data from a range with spaces in sheet name - tests bubble's range parsing
46
+ async readFromRangeWithSpaces(spreadsheetId, range) {
47
+ const result = await new GoogleSheetsBubble({
48
+ operation: 'read_values',
49
+ spreadsheet_id: spreadsheetId,
50
+ range: range,
51
+ value_render_option: 'FORMATTED_VALUE',
52
+ }).action();
53
+ if (!result.success || result.data?.operation !== 'read_values') {
54
+ throw new Error(`Failed to read verification data: ${result.error}`);
55
+ }
56
+ return result.data.values;
57
+ }
58
+ // Appends data to a range with spaces in sheet name
59
+ async appendToRangeWithSpaces(spreadsheetId, range, values) {
60
+ const result = await new GoogleSheetsBubble({
61
+ operation: 'append_values',
62
+ spreadsheet_id: spreadsheetId,
63
+ range: range,
64
+ values: values,
65
+ insert_data_option: 'INSERT_ROWS',
66
+ value_input_option: 'RAW',
67
+ }).action();
68
+ if (!result.success) {
69
+ throw new Error(`Failed to append data: ${result.error}`);
70
+ }
71
+ return result.data;
72
+ }
73
+ // Clears data from a range with spaces in sheet name
74
+ async clearRangeWithSpaces(spreadsheetId, range) {
75
+ const result = await new GoogleSheetsBubble({
76
+ operation: 'clear_values',
77
+ spreadsheet_id: spreadsheetId,
78
+ range: range,
79
+ }).action();
80
+ if (!result.success) {
81
+ throw new Error(`Failed to clear data: ${result.error}`);
82
+ }
83
+ return result.data;
84
+ }
85
+ // Deletes a sheet by ID
86
+ async deleteSheet(spreadsheetId, sheetId) {
87
+ const result = await new GoogleSheetsBubble({
88
+ operation: 'delete_sheet',
89
+ spreadsheet_id: spreadsheetId,
90
+ sheet_id: sheetId,
91
+ }).action();
92
+ if (!result.success) {
93
+ throw new Error(`Failed to delete test sheet: ${result.error}`);
94
+ }
95
+ return result.data;
96
+ }
97
+ async handle(payload) {
98
+ const { testTitle = 'Integration Stress Test' } = payload;
99
+ const results = [];
100
+ const sheetNameWithSpaces = 'Kaus Mode Landing zone';
101
+ // 1. Create Spreadsheet
102
+ const spreadsheet = await this.createTestSpreadsheet(testTitle);
103
+ const spreadsheetId = spreadsheet.spreadsheetId;
104
+ results.push({ operation: 'create_spreadsheet', success: true });
105
+ // 2. Create Sheet with Spaces - NO HELPER
106
+ const sheetId = await this.createSheetWithSpaces(spreadsheetId, sheetNameWithSpaces);
107
+ results.push({ operation: 'add_sheet_with_spaces', success: true });
108
+ // 3. Write Data - RAW DATA WITH NULLS/UNDEFINEDS, NO SANITIZATION
109
+ const rawData = [
110
+ ['Name', 'Age', 'Email', 'Department', 'Salary', 'Active'],
111
+ ['John Doe', 28, 'john@example.com', 'Engineering', 95000, true],
112
+ ['Jane Smith', 34, 'jane@example.com', 'Marketing', 78000, true],
113
+ [null, undefined, 'Mixed', 'Sales', null, false],
114
+ ['Bob Johnson', 42, 'bob@example.com', null, 120000, true],
115
+ ['Alice Williams', 31, null, 'Engineering', 88000, undefined],
116
+ ['End of', 'Test', null, 'HR', 65000, false],
117
+ ];
118
+ // RANGE WITH SPACES - NO QUOTE WRAPPING
119
+ const writeRange = `${sheetNameWithSpaces}!A1:F7`;
120
+ await this.writeRawDataWithNulls(spreadsheetId, writeRange, rawData);
121
+ results.push({ operation: 'write_values_with_nulls', success: true });
122
+ // 4. Read Verification - Multiple read operations to test different scenarios
123
+ // 4a. Read entire written range
124
+ const readRange = `${sheetNameWithSpaces}!A1:F7`;
125
+ const readValues = await this.readFromRangeWithSpaces(spreadsheetId, readRange);
126
+ results.push({
127
+ operation: 'read_values_full_range',
128
+ success: !!readValues && readValues.length > 0,
129
+ details: `Read ${readValues?.length || 0} rows with ${readValues?.[0]?.length || 0} columns`,
130
+ });
131
+ // 4b. Read just headers
132
+ const headerRange = `${sheetNameWithSpaces}!A1:F1`;
133
+ const headerValues = await this.readFromRangeWithSpaces(spreadsheetId, headerRange);
134
+ results.push({
135
+ operation: 'read_headers_only',
136
+ success: !!headerValues && headerValues.length > 0,
137
+ details: `Read headers: ${headerValues?.[0]?.join(', ') || 'no headers'}`,
138
+ });
139
+ // 4c. Read single column
140
+ const columnRange = `${sheetNameWithSpaces}!A:A`;
141
+ const columnValues = await this.readFromRangeWithSpaces(spreadsheetId, columnRange);
142
+ results.push({
143
+ operation: 'read_single_column',
144
+ success: !!columnValues && columnValues.length > 0,
145
+ details: `Read ${columnValues?.length || 0} rows from Name column`,
146
+ });
147
+ // 4d. Read partial range (middle rows)
148
+ const partialRange = `${sheetNameWithSpaces}!B3:E5`;
149
+ const partialValues = await this.readFromRangeWithSpaces(spreadsheetId, partialRange);
150
+ results.push({
151
+ operation: 'read_partial_range',
152
+ success: !!partialValues && partialValues.length > 0,
153
+ details: `Read ${partialValues?.length || 0} rows from partial range`,
154
+ });
155
+ // 5. Append Data - RANGE WITH SPACES, NO QUOTE WRAPPING
156
+ const appendRange = `${sheetNameWithSpaces}!A:A`;
157
+ const appendValues = [
158
+ ['Charlie Brown', 29, 'charlie@example.com', 'Finance', 72000, true],
159
+ ];
160
+ await this.appendToRangeWithSpaces(spreadsheetId, appendRange, appendValues);
161
+ results.push({ operation: 'append_values', success: true });
162
+ // 5a. Read after append to verify
163
+ const postAppendRange = `${sheetNameWithSpaces}!A1:F8`;
164
+ const postAppendValues = await this.readFromRangeWithSpaces(spreadsheetId, postAppendRange);
165
+ results.push({
166
+ operation: 'read_after_append',
167
+ success: !!postAppendValues && postAppendValues.length === 8,
168
+ details: `Read ${postAppendValues?.length || 0} rows after append (expected 8)`,
169
+ });
170
+ // 6. Clear Data - RANGE WITH SPACES, NO QUOTE WRAPPING
171
+ const clearRange = `${sheetNameWithSpaces}!A1:F10`;
172
+ await this.clearRangeWithSpaces(spreadsheetId, clearRange);
173
+ results.push({ operation: 'clear_values', success: true });
174
+ // 7. Delete Sheet
175
+ await this.deleteSheet(spreadsheetId, sheetId);
176
+ results.push({ operation: 'delete_sheet', success: true });
177
+ return {
178
+ spreadsheetId: spreadsheetId,
179
+ spreadsheetUrl: spreadsheet.spreadsheetUrl || '',
180
+ testResults: results,
181
+ };
182
+ }
183
+ }
184
+ //# sourceMappingURL=google-sheets.integration.flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-sheets.integration.flow.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.ts"],"names":[],"mappings":"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"}