@bubblelab/bubble-core 0.1.69 → 0.1.71

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 (46) hide show
  1. package/dist/bubble-bundle.d.ts +78 -78
  2. package/dist/bubbles/service-bubble/agi-inc.d.ts +20 -20
  3. package/dist/bubbles/service-bubble/ai-agent.d.ts +24 -24
  4. package/dist/bubbles/service-bubble/airtable.d.ts +24 -24
  5. package/dist/bubbles/service-bubble/apify/apify.d.ts +14 -14
  6. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +72 -72
  7. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +38 -38
  8. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +31 -31
  9. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +78 -78
  10. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +92 -92
  11. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +42 -42
  12. package/dist/bubbles/service-bubble/eleven-labs.d.ts +4 -4
  13. package/dist/bubbles/service-bubble/firecrawl.d.ts +346 -346
  14. package/dist/bubbles/service-bubble/followupboss.d.ts +320 -320
  15. package/dist/bubbles/service-bubble/fullenrich/fullenrich.d.ts +76 -76
  16. package/dist/bubbles/service-bubble/fullenrich/fullenrich.schema.d.ts +58 -58
  17. package/dist/bubbles/service-bubble/github.d.ts +36 -36
  18. package/dist/bubbles/service-bubble/gmail.d.ts +88 -88
  19. package/dist/bubbles/service-bubble/google-drive.d.ts +63 -2
  20. package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
  21. package/dist/bubbles/service-bubble/google-drive.js +74 -4
  22. package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
  23. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts +74 -74
  24. package/dist/bubbles/service-bubble/http.d.ts +8 -8
  25. package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
  26. package/dist/bubbles/service-bubble/jira/jira.d.ts +9 -9
  27. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +62 -62
  28. package/dist/bubbles/service-bubble/notion/notion.d.ts +20 -20
  29. package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
  30. package/dist/bubbles/service-bubble/resend.d.ts +4 -4
  31. package/dist/bubbles/service-bubble/slack/slack.d.ts +114 -114
  32. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +11 -11
  33. package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +78 -78
  34. package/dist/bubbles/service-bubble/telegram.d.ts +2 -2
  35. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +28 -28
  36. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +20 -20
  37. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +8 -8
  38. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +305 -305
  39. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +28 -28
  40. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
  41. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +56 -56
  42. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +108 -108
  43. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +24 -24
  44. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +32 -32
  45. package/dist/bubbles.json +69 -4
  46. package/package.json +2 -2
@@ -139,13 +139,13 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
139
139
  type: string;
140
140
  name: string;
141
141
  id: number;
142
- label: string;
142
+ x: number;
143
+ y: number;
143
144
  width: number;
144
145
  height: number;
146
+ label: string;
145
147
  page: number;
146
148
  choices: string[];
147
- x: number;
148
- y: number;
149
149
  field_type: string;
150
150
  current_value: string;
151
151
  rect: [number, number, number, number];
@@ -155,13 +155,13 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
155
155
  type: string;
156
156
  name: string;
157
157
  id: number;
158
- label: string;
158
+ x: number;
159
+ y: number;
159
160
  width: number;
160
161
  height: number;
162
+ label: string;
161
163
  page: number;
162
164
  choices: string[];
163
- x: number;
164
- y: number;
165
165
  field_type: string;
166
166
  current_value: string;
167
167
  rect: [number, number, number, number];
@@ -179,13 +179,13 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
179
179
  type: string;
180
180
  name: string;
181
181
  id: number;
182
- label: string;
182
+ x: number;
183
+ y: number;
183
184
  width: number;
184
185
  height: number;
186
+ label: string;
185
187
  page: number;
186
188
  choices: string[];
187
- x: number;
188
- y: number;
189
189
  field_type: string;
190
190
  current_value: string;
191
191
  rect: [number, number, number, number];
@@ -201,13 +201,13 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
201
201
  type: string;
202
202
  name: string;
203
203
  id: number;
204
- label: string;
204
+ x: number;
205
+ y: number;
205
206
  width: number;
206
207
  height: number;
208
+ label: string;
207
209
  page: number;
208
210
  choices: string[];
209
- x: number;
210
- y: number;
211
211
  field_type: string;
212
212
  current_value: string;
213
213
  rect: [number, number, number, number];
@@ -618,13 +618,13 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
618
618
  type: string;
619
619
  name: string;
620
620
  id: number;
621
- label: string;
621
+ x: number;
622
+ y: number;
622
623
  width: number;
623
624
  height: number;
625
+ label: string;
624
626
  page: number;
625
627
  choices: string[];
626
- x: number;
627
- y: number;
628
628
  field_type: string;
629
629
  current_value: string;
630
630
  rect: [number, number, number, number];
@@ -634,13 +634,13 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
634
634
  type: string;
635
635
  name: string;
636
636
  id: number;
637
- label: string;
637
+ x: number;
638
+ y: number;
638
639
  width: number;
639
640
  height: number;
641
+ label: string;
640
642
  page: number;
641
643
  choices: string[];
642
- x: number;
643
- y: number;
644
644
  field_type: string;
645
645
  current_value: string;
646
646
  rect: [number, number, number, number];
@@ -658,13 +658,13 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
658
658
  type: string;
659
659
  name: string;
660
660
  id: number;
661
- label: string;
661
+ x: number;
662
+ y: number;
662
663
  width: number;
663
664
  height: number;
665
+ label: string;
664
666
  page: number;
665
667
  choices: string[];
666
- x: number;
667
- y: number;
668
668
  field_type: string;
669
669
  current_value: string;
670
670
  rect: [number, number, number, number];
@@ -680,13 +680,13 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
680
680
  type: string;
681
681
  name: string;
682
682
  id: number;
683
- label: string;
683
+ x: number;
684
+ y: number;
684
685
  width: number;
685
686
  height: number;
687
+ label: string;
686
688
  page: number;
687
689
  choices: string[];
688
- x: number;
689
- y: number;
690
690
  field_type: string;
691
691
  current_value: string;
692
692
  rect: [number, number, number, number];
@@ -154,7 +154,7 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
154
154
  verbatim?: boolean | undefined;
155
155
  }>, "many">>;
156
156
  }, "strip", z.ZodTypeAny, {
157
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
157
+ type: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
158
158
  title?: {
159
159
  type: "plain_text";
160
160
  text: string;
@@ -178,16 +178,16 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
178
178
  emoji?: boolean | undefined;
179
179
  verbatim?: boolean | undefined;
180
180
  }[] | undefined;
181
- label?: unknown;
181
+ element?: unknown;
182
182
  image_url?: string | undefined;
183
183
  optional?: boolean | undefined;
184
184
  alt_text?: string | undefined;
185
185
  block_id?: string | undefined;
186
186
  accessory?: unknown;
187
- element?: unknown;
187
+ label?: unknown;
188
188
  hint?: unknown;
189
189
  }, {
190
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
190
+ type: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
191
191
  title?: {
192
192
  type: "plain_text";
193
193
  text: string;
@@ -211,13 +211,13 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
211
211
  emoji?: boolean | undefined;
212
212
  verbatim?: boolean | undefined;
213
213
  }[] | undefined;
214
- label?: unknown;
214
+ element?: unknown;
215
215
  image_url?: string | undefined;
216
216
  optional?: boolean | undefined;
217
217
  alt_text?: string | undefined;
218
218
  block_id?: string | undefined;
219
219
  accessory?: unknown;
220
- element?: unknown;
220
+ label?: unknown;
221
221
  hint?: unknown;
222
222
  }>, "many">>;
223
223
  metadata: z.ZodObject<{
@@ -255,21 +255,21 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
255
255
  }, "strip", z.ZodTypeAny, {
256
256
  success: boolean;
257
257
  error: string;
258
- response: string;
259
- iterations: number;
260
258
  metadata: {
261
259
  verbosityLevel: string;
262
260
  technicalityLevel: string;
263
261
  wordCount: number;
264
262
  blockCount?: number | undefined;
265
263
  };
264
+ response: string;
265
+ iterations: number;
266
266
  toolCalls?: {
267
267
  tool: string;
268
268
  input?: unknown;
269
269
  output?: unknown;
270
270
  }[] | undefined;
271
271
  blocks?: {
272
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
272
+ type: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
273
273
  title?: {
274
274
  type: "plain_text";
275
275
  text: string;
@@ -293,33 +293,33 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
293
293
  emoji?: boolean | undefined;
294
294
  verbatim?: boolean | undefined;
295
295
  }[] | undefined;
296
- label?: unknown;
296
+ element?: unknown;
297
297
  image_url?: string | undefined;
298
298
  optional?: boolean | undefined;
299
299
  alt_text?: string | undefined;
300
300
  block_id?: string | undefined;
301
301
  accessory?: unknown;
302
- element?: unknown;
302
+ label?: unknown;
303
303
  hint?: unknown;
304
304
  }[] | undefined;
305
305
  }, {
306
306
  success: boolean;
307
307
  error: string;
308
- response: string;
309
- iterations: number;
310
308
  metadata: {
311
309
  verbosityLevel: string;
312
310
  technicalityLevel: string;
313
311
  wordCount: number;
314
312
  blockCount?: number | undefined;
315
313
  };
314
+ response: string;
315
+ iterations: number;
316
316
  toolCalls?: {
317
317
  tool: string;
318
318
  input?: unknown;
319
319
  output?: unknown;
320
320
  }[] | undefined;
321
321
  blocks?: {
322
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
322
+ type: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
323
323
  title?: {
324
324
  type: "plain_text";
325
325
  text: string;
@@ -343,13 +343,13 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
343
343
  emoji?: boolean | undefined;
344
344
  verbatim?: boolean | undefined;
345
345
  }[] | undefined;
346
- label?: unknown;
346
+ element?: unknown;
347
347
  image_url?: string | undefined;
348
348
  optional?: boolean | undefined;
349
349
  alt_text?: string | undefined;
350
350
  block_id?: string | undefined;
351
351
  accessory?: unknown;
352
- element?: unknown;
352
+ label?: unknown;
353
353
  hint?: unknown;
354
354
  }[] | undefined;
355
355
  }>;
@@ -512,7 +512,7 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
512
512
  verbatim?: boolean | undefined;
513
513
  }>, "many">>;
514
514
  }, "strip", z.ZodTypeAny, {
515
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
515
+ type: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
516
516
  title?: {
517
517
  type: "plain_text";
518
518
  text: string;
@@ -536,16 +536,16 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
536
536
  emoji?: boolean | undefined;
537
537
  verbatim?: boolean | undefined;
538
538
  }[] | undefined;
539
- label?: unknown;
539
+ element?: unknown;
540
540
  image_url?: string | undefined;
541
541
  optional?: boolean | undefined;
542
542
  alt_text?: string | undefined;
543
543
  block_id?: string | undefined;
544
544
  accessory?: unknown;
545
- element?: unknown;
545
+ label?: unknown;
546
546
  hint?: unknown;
547
547
  }, {
548
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
548
+ type: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
549
549
  title?: {
550
550
  type: "plain_text";
551
551
  text: string;
@@ -569,13 +569,13 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
569
569
  emoji?: boolean | undefined;
570
570
  verbatim?: boolean | undefined;
571
571
  }[] | undefined;
572
- label?: unknown;
572
+ element?: unknown;
573
573
  image_url?: string | undefined;
574
574
  optional?: boolean | undefined;
575
575
  alt_text?: string | undefined;
576
576
  block_id?: string | undefined;
577
577
  accessory?: unknown;
578
- element?: unknown;
578
+ label?: unknown;
579
579
  hint?: unknown;
580
580
  }>, "many">>;
581
581
  metadata: z.ZodObject<{
@@ -613,21 +613,21 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
613
613
  }, "strip", z.ZodTypeAny, {
614
614
  success: boolean;
615
615
  error: string;
616
- response: string;
617
- iterations: number;
618
616
  metadata: {
619
617
  verbosityLevel: string;
620
618
  technicalityLevel: string;
621
619
  wordCount: number;
622
620
  blockCount?: number | undefined;
623
621
  };
622
+ response: string;
623
+ iterations: number;
624
624
  toolCalls?: {
625
625
  tool: string;
626
626
  input?: unknown;
627
627
  output?: unknown;
628
628
  }[] | undefined;
629
629
  blocks?: {
630
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
630
+ type: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
631
631
  title?: {
632
632
  type: "plain_text";
633
633
  text: string;
@@ -651,33 +651,33 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
651
651
  emoji?: boolean | undefined;
652
652
  verbatim?: boolean | undefined;
653
653
  }[] | undefined;
654
- label?: unknown;
654
+ element?: unknown;
655
655
  image_url?: string | undefined;
656
656
  optional?: boolean | undefined;
657
657
  alt_text?: string | undefined;
658
658
  block_id?: string | undefined;
659
659
  accessory?: unknown;
660
- element?: unknown;
660
+ label?: unknown;
661
661
  hint?: unknown;
662
662
  }[] | undefined;
663
663
  }, {
664
664
  success: boolean;
665
665
  error: string;
666
- response: string;
667
- iterations: number;
668
666
  metadata: {
669
667
  verbosityLevel: string;
670
668
  technicalityLevel: string;
671
669
  wordCount: number;
672
670
  blockCount?: number | undefined;
673
671
  };
672
+ response: string;
673
+ iterations: number;
674
674
  toolCalls?: {
675
675
  tool: string;
676
676
  input?: unknown;
677
677
  output?: unknown;
678
678
  }[] | undefined;
679
679
  blocks?: {
680
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
680
+ type: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
681
681
  title?: {
682
682
  type: "plain_text";
683
683
  text: string;
@@ -701,13 +701,13 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
701
701
  emoji?: boolean | undefined;
702
702
  verbatim?: boolean | undefined;
703
703
  }[] | undefined;
704
- label?: unknown;
704
+ element?: unknown;
705
705
  image_url?: string | undefined;
706
706
  optional?: boolean | undefined;
707
707
  alt_text?: string | undefined;
708
708
  block_id?: string | undefined;
709
709
  accessory?: unknown;
710
- element?: unknown;
710
+ label?: unknown;
711
711
  hint?: unknown;
712
712
  }[] | undefined;
713
713
  }>;
package/dist/bubbles.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "2.0.0",
3
- "generatedAt": "2026-02-01T06:36:13.937Z",
3
+ "generatedAt": "2026-02-01T07:08:12.310Z",
4
4
  "totalCount": 58,
5
5
  "bubbles": [
6
6
  {
@@ -8276,8 +8276,8 @@
8276
8276
  "name": "google-drive",
8277
8277
  "alias": "gdrive",
8278
8278
  "type": "service",
8279
- "shortDescription": "Google Drive integration for file management",
8280
- "useCase": "- Upload files and documents to Google Drive",
8279
+ "shortDescription": "Google Drive integration with full Google Docs tab support - read/write specific tabs, copy templates, and preserve formatting with find/replace",
8280
+ "useCase": "General purpose bubble for various workflow needs",
8281
8281
  "outputSchema": "Complex schema - see usage example for structure",
8282
8282
  "inputJsonSchema": {
8283
8283
  "anyOf": [
@@ -8793,6 +8793,41 @@
8793
8793
  "new_name"
8794
8794
  ],
8795
8795
  "additionalProperties": false
8796
+ },
8797
+ {
8798
+ "type": "object",
8799
+ "properties": {
8800
+ "operation": {
8801
+ "type": "string",
8802
+ "enum": [
8803
+ "create_tab"
8804
+ ],
8805
+ "description": "Create a new tab in a Google Doc"
8806
+ },
8807
+ "document_id": {
8808
+ "type": "string",
8809
+ "minLength": 1,
8810
+ "description": "The ID of the Google Doc to add a tab to"
8811
+ },
8812
+ "title": {
8813
+ "type": "string",
8814
+ "minLength": 1,
8815
+ "description": "Title for the new tab"
8816
+ },
8817
+ "credentials": {
8818
+ "type": "object",
8819
+ "additionalProperties": {
8820
+ "type": "string"
8821
+ },
8822
+ "description": "Object mapping credential types to values (injected at runtime)"
8823
+ }
8824
+ },
8825
+ "required": [
8826
+ "operation",
8827
+ "document_id",
8828
+ "title"
8829
+ ],
8830
+ "additionalProperties": false
8796
8831
  }
8797
8832
  ]
8798
8833
  },
@@ -9596,10 +9631,40 @@
9596
9631
  "error"
9597
9632
  ],
9598
9633
  "additionalProperties": false
9634
+ },
9635
+ {
9636
+ "type": "object",
9637
+ "properties": {
9638
+ "operation": {
9639
+ "type": "string",
9640
+ "enum": [
9641
+ "create_tab"
9642
+ ],
9643
+ "description": "Create a new tab in a Google Doc"
9644
+ },
9645
+ "success": {
9646
+ "type": "boolean",
9647
+ "description": "Whether the tab was created successfully"
9648
+ },
9649
+ "tab_id": {
9650
+ "type": "string",
9651
+ "description": "ID of the newly created tab"
9652
+ },
9653
+ "error": {
9654
+ "type": "string",
9655
+ "description": "Error message if operation failed"
9656
+ }
9657
+ },
9658
+ "required": [
9659
+ "operation",
9660
+ "success",
9661
+ "error"
9662
+ ],
9663
+ "additionalProperties": false
9599
9664
  }
9600
9665
  ]
9601
9666
  },
9602
- "usageExample": "// Upload File example\nconst googleDrive_upload_file = new GoogleDriveBubble({\n operation: \"upload_file\", // Upload a file to Google Drive\n name: \"example string\", // Name for the uploaded file\n content: \"example string\", // File content as base64 encoded string or plain text\n mimeType: \"example string\", // MIME type of the file (auto-detected if not provided)\n parent_folder_id: \"example string\", // ID of the parent folder (uploads to root if not provided)\n convert_to_google_docs: false // default, // Convert uploaded file to Google Docs format if possible\n});\n\nconst result = await googleDrive_upload_file.action();\n// outputSchema for result.data when operation === 'upload_file':\n// {\n// operation: \"upload_file\" // Upload a file to Google Drive,\n// success: boolean // Whether the file was uploaded successfully,\n// file: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners } | undefined // Uploaded file metadata,\n// error: string // Error message if operation failed\n// }\n\n\n// Download File example\nconst googleDrive_download_file = new GoogleDriveBubble({\n operation: \"download_file\", // Download a file from Google Drive\n file_id: \"example string\", // Google Drive file ID to download\n export_format: \"example string\", // Export format for Google Workspace files (e.g., \"application/pdf\", \"text/plain\")\n});\n\nconst result = await googleDrive_download_file.action();\n// outputSchema for result.data when operation === 'download_file':\n// {\n// operation: \"download_file\" // Download a file from Google Drive,\n// success: boolean // Whether the file was downloaded successfully,\n// content: string | undefined // File content as plain text (for text-based files) or base64 encoded string (for binary files),\n// filename: string | undefined // Original filename,\n// mimeType: string | undefined // MIME type of the downloaded file,\n// error: string // Error message if operation failed\n// }\n\n\n// List Files example\nconst googleDrive_list_files = new GoogleDriveBubble({\n operation: \"list_files\", // List files and folders in Google Drive\n folder_id: \"example string\", // ID of folder to list files from (lists from root if not provided)\n query: \"example string\", // Search query to filter files (e.g., \"name contains 'report'\"\n max_results: 100 // default, // Maximum number of files to return\n include_folders: true // default, // Include folders in the results\n order_by: \"modifiedTime desc\" // default, // Order results by field (e.g., \"name\", \"modifiedTime desc\")\n});\n\nconst result = await googleDrive_list_files.action();\n// outputSchema for result.data when operation === 'list_files':\n// {\n// operation: \"list_files\" // List files and folders in Google Drive,\n// success: boolean // Whether the file list was retrieved successfully,\n// files: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners }[] | undefined // List of files and folders,\n// total_count: number | undefined // Total number of files found,\n// next_page_token: string | undefined // Token for fetching next page of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Create Folder example\nconst googleDrive_create_folder = new GoogleDriveBubble({\n operation: \"create_folder\", // Create a new folder in Google Drive\n name: \"example string\", // Name of the folder to create\n parent_folder_id: \"example string\", // ID of the parent folder (creates in root if not provided)\n});\n\nconst result = await googleDrive_create_folder.action();\n// outputSchema for result.data when operation === 'create_folder':\n// {\n// operation: \"create_folder\" // Create a new folder in Google Drive,\n// success: boolean // Whether the folder was created successfully,\n// folder: { id: string // Unique folder identifier, name: string // Name of the folder, webViewLink: string | undefined // Link to view the folder in Google Drive, parents: string[] | undefined // Parent folder IDs } | undefined // Created folder metadata,\n// error: string // Error message if operation failed\n// }\n\n\n// Delete File example\nconst googleDrive_delete_file = new GoogleDriveBubble({\n operation: \"delete_file\", // Delete a file or folder from Google Drive\n file_id: \"example string\", // Google Drive file or folder ID to delete\n permanent: false // default, // Permanently delete (true) or move to trash (false)\n});\n\nconst result = await googleDrive_delete_file.action();\n// outputSchema for result.data when operation === 'delete_file':\n// {\n// operation: \"delete_file\" // Delete a file or folder from Google Drive,\n// success: boolean // Whether the file was deleted successfully,\n// deleted_file_id: string | undefined // ID of the deleted file,\n// error: string // Error message if operation failed\n// }\n\n\n// Get File Info example\nconst googleDrive_get_file_info = new GoogleDriveBubble({\n operation: \"get_file_info\", // Get detailed information about a file or folder\n file_id: \"example string\", // Google Drive file or folder ID to get info for\n include_permissions: false // default, // Include file permissions in the response\n});\n\nconst result = await googleDrive_get_file_info.action();\n// outputSchema for result.data when operation === 'get_file_info':\n// {\n// operation: \"get_file_info\" // Get detailed information about a file or folder,\n// success: boolean // Whether the file information was retrieved successfully,\n// file: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners } | undefined // File metadata and information,\n// permissions: { id: string, type: string, role: string, emailAddress: string | undefined // Permission holder email address, displayName: string | undefined // Permission holder display name }[] | undefined // File permissions (if requested),\n// error: string // Error message if operation failed\n// }\n\n\n// Share File example\nconst googleDrive_share_file = new GoogleDriveBubble({\n operation: \"share_file\", // Share a file or folder with specific users or make it public\n file_id: \"example string\", // Google Drive file or folder ID to share\n email_address: \"example string\", // Email address to share with (for specific user sharing)\n role: \"reader\" // options: \"reader\", \"writer\", \"commenter\", \"owner\", // Permission role to grant\n type: \"user\" // options: \"user\", \"group\", \"domain\", \"anyone\", // Type of permission to create\n send_notification: true // default, // Send notification email to the user\n});\n\nconst result = await googleDrive_share_file.action();\n// outputSchema for result.data when operation === 'share_file':\n// {\n// operation: \"share_file\" // Share a file or folder with specific users or make it public,\n// success: boolean // Whether the file was shared successfully,\n// permission_id: string | undefined // ID of the created permission,\n// share_link: string | undefined // Shareable link to the file,\n// error: string // Error message if operation failed\n// }\n\n\n// Move File example\nconst googleDrive_move_file = new GoogleDriveBubble({\n operation: \"move_file\", // Move a file or folder to a different location in Google Drive\n file_id: \"example string\", // Google Drive file or folder ID to move\n new_parent_folder_id: \"example string\", // ID of the new parent folder (moves to root if not provided)\n remove_parent_folder_id: \"example string\", // ID of the parent folder to remove (removes from all parents if not provided)\n});\n\nconst result = await googleDrive_move_file.action();\n// outputSchema for result.data when operation === 'move_file':\n// {\n// operation: \"move_file\" // Move a file or folder to a different location in Google Drive,\n// success: boolean // Whether the file was moved successfully,\n// file: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners } | undefined // Updated file metadata after move,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Doc example\nconst googleDrive_get_doc = new GoogleDriveBubble({\n operation: \"get_doc\", // Get the content and metadata of a Google Doc using the Google Docs API, use this over download_file for Google Docs\n document_id: \"example string\", // The ID of the Google Doc to retrieve\n tab_id: \"example string\", // Specific tab ID to read. If omitted, reads first tab.\n include_all_tabs: false // default, // Return info for all tabs including their plain text content\n});\n\nconst result = await googleDrive_get_doc.action();\n// outputSchema for result.data when operation === 'get_doc':\n// {\n// operation: \"get_doc\" // Get the content and metadata of a Google Doc using the Google Docs API,\n// success: boolean // Whether the document was retrieved successfully,\n// document: { documentId: string // The ID of the document, title: string // The title of the document, revisionId: string | undefined // The revision ID of the document, body: Record<string, unknown> | undefined // The main body of the document containing content array, suggestionsViewMode: string | undefined // The suggestions view mode applied to the document, inlineObjects: Record<string, unknown> | undefined // The inline objects (images, etc.) in the document, lists: Record<string, unknown> | undefined // The lists in the document, keyed by list ID } | undefined // The Google Docs document content and metadata,\n// plainText: string | undefined // Extracted plain text content from the document,\n// tabs: { tabId: string // Unique tab identifier, title: string // Tab title, index: number // Tab position index, plainText: string | undefined // Plain text content of the tab }[] | undefined // All tabs in the document,\n// error: string // Error message if operation failed\n// }\n\n\n// Update Doc example\nconst googleDrive_update_doc = new GoogleDriveBubble({\n operation: \"update_doc\", // Update a Google Doc with new content using the Google Docs API batchUpdate\n document_id: \"example string\", // The ID of the Google Doc to update\n content: \"example string\", // The text or markdown content to write to the document (auto-detected)\n mode: \"replace\" // options: \"replace\", \"append\", // Update mode: \"replace\" clears existing content first, \"append\" adds to the end\n tab_id: \"example string\", // Tab to write to. If omitted, writes to first tab.\n});\n\nconst result = await googleDrive_update_doc.action();\n// outputSchema for result.data when operation === 'update_doc':\n// {\n// operation: \"update_doc\" // Update a Google Doc with new content using the Google Docs API batchUpdate,\n// success: boolean // Whether the document was updated successfully,\n// documentId: string | undefined // The ID of the updated document,\n// revisionId: string | undefined // The new revision ID after the update,\n// error: string // Error message if operation failed\n// }\n\n\n// Replace Text example\nconst googleDrive_replace_text = new GoogleDriveBubble({\n operation: \"replace_text\", // Find and replace text in a Google Doc while preserving formatting\n document_id: \"example string\", // The ID of the Google Doc to perform replacements in\n replacements: [{ find: \"example string\" // Text to find, replace: \"example string\" // Text to replace with, match_case: true // default // Whether to match case when finding text }], // List of find/replace pairs\n tab_id: \"example string\", // Tab to perform replacements in. If omitted, applies to all tabs.\n});\n\nconst result = await googleDrive_replace_text.action();\n// outputSchema for result.data when operation === 'replace_text':\n// {\n// operation: \"replace_text\" // Find and replace text in a Google Doc,\n// success: boolean // Whether the replacements were made successfully,\n// replacements_made: number | undefined // Total number of replacements made,\n// error: string // Error message if operation failed\n// }\n\n\n// Copy Doc example\nconst googleDrive_copy_doc = new GoogleDriveBubble({\n operation: \"copy_doc\", // Create a copy of a Google Doc (useful for templates)\n document_id: \"example string\", // Source document ID to copy\n new_name: \"example string\", // Name for the new document\n parent_folder_id: \"example string\", // Folder to place the copy in\n});\n\nconst result = await googleDrive_copy_doc.action();\n// outputSchema for result.data when operation === 'copy_doc':\n// {\n// operation: \"copy_doc\" // Create a copy of a Google Doc,\n// success: boolean // Whether the document was copied successfully,\n// new_document_id: string | undefined // ID of the new document,\n// new_document_url: string | undefined // URL to view the new document,\n// error: string // Error message if operation failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`google-drive failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
9667
+ "usageExample": "// Upload File example\nconst googleDrive_upload_file = new GoogleDriveBubble({\n operation: \"upload_file\", // Upload a file to Google Drive\n name: \"example string\", // Name for the uploaded file\n content: \"example string\", // File content as base64 encoded string or plain text\n mimeType: \"example string\", // MIME type of the file (auto-detected if not provided)\n parent_folder_id: \"example string\", // ID of the parent folder (uploads to root if not provided)\n convert_to_google_docs: false // default, // Convert uploaded file to Google Docs format if possible\n});\n\nconst result = await googleDrive_upload_file.action();\n// outputSchema for result.data when operation === 'upload_file':\n// {\n// operation: \"upload_file\" // Upload a file to Google Drive,\n// success: boolean // Whether the file was uploaded successfully,\n// file: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners } | undefined // Uploaded file metadata,\n// error: string // Error message if operation failed\n// }\n\n\n// Download File example\nconst googleDrive_download_file = new GoogleDriveBubble({\n operation: \"download_file\", // Download a file from Google Drive\n file_id: \"example string\", // Google Drive file ID to download\n export_format: \"example string\", // Export format for Google Workspace files (e.g., \"application/pdf\", \"text/plain\")\n});\n\nconst result = await googleDrive_download_file.action();\n// outputSchema for result.data when operation === 'download_file':\n// {\n// operation: \"download_file\" // Download a file from Google Drive,\n// success: boolean // Whether the file was downloaded successfully,\n// content: string | undefined // File content as plain text (for text-based files) or base64 encoded string (for binary files),\n// filename: string | undefined // Original filename,\n// mimeType: string | undefined // MIME type of the downloaded file,\n// error: string // Error message if operation failed\n// }\n\n\n// List Files example\nconst googleDrive_list_files = new GoogleDriveBubble({\n operation: \"list_files\", // List files and folders in Google Drive\n folder_id: \"example string\", // ID of folder to list files from (lists from root if not provided)\n query: \"example string\", // Search query to filter files (e.g., \"name contains 'report'\"\n max_results: 100 // default, // Maximum number of files to return\n include_folders: true // default, // Include folders in the results\n order_by: \"modifiedTime desc\" // default, // Order results by field (e.g., \"name\", \"modifiedTime desc\")\n});\n\nconst result = await googleDrive_list_files.action();\n// outputSchema for result.data when operation === 'list_files':\n// {\n// operation: \"list_files\" // List files and folders in Google Drive,\n// success: boolean // Whether the file list was retrieved successfully,\n// files: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners }[] | undefined // List of files and folders,\n// total_count: number | undefined // Total number of files found,\n// next_page_token: string | undefined // Token for fetching next page of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Create Folder example\nconst googleDrive_create_folder = new GoogleDriveBubble({\n operation: \"create_folder\", // Create a new folder in Google Drive\n name: \"example string\", // Name of the folder to create\n parent_folder_id: \"example string\", // ID of the parent folder (creates in root if not provided)\n});\n\nconst result = await googleDrive_create_folder.action();\n// outputSchema for result.data when operation === 'create_folder':\n// {\n// operation: \"create_folder\" // Create a new folder in Google Drive,\n// success: boolean // Whether the folder was created successfully,\n// folder: { id: string // Unique folder identifier, name: string // Name of the folder, webViewLink: string | undefined // Link to view the folder in Google Drive, parents: string[] | undefined // Parent folder IDs } | undefined // Created folder metadata,\n// error: string // Error message if operation failed\n// }\n\n\n// Delete File example\nconst googleDrive_delete_file = new GoogleDriveBubble({\n operation: \"delete_file\", // Delete a file or folder from Google Drive\n file_id: \"example string\", // Google Drive file or folder ID to delete\n permanent: false // default, // Permanently delete (true) or move to trash (false)\n});\n\nconst result = await googleDrive_delete_file.action();\n// outputSchema for result.data when operation === 'delete_file':\n// {\n// operation: \"delete_file\" // Delete a file or folder from Google Drive,\n// success: boolean // Whether the file was deleted successfully,\n// deleted_file_id: string | undefined // ID of the deleted file,\n// error: string // Error message if operation failed\n// }\n\n\n// Get File Info example\nconst googleDrive_get_file_info = new GoogleDriveBubble({\n operation: \"get_file_info\", // Get detailed information about a file or folder\n file_id: \"example string\", // Google Drive file or folder ID to get info for\n include_permissions: false // default, // Include file permissions in the response\n});\n\nconst result = await googleDrive_get_file_info.action();\n// outputSchema for result.data when operation === 'get_file_info':\n// {\n// operation: \"get_file_info\" // Get detailed information about a file or folder,\n// success: boolean // Whether the file information was retrieved successfully,\n// file: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners } | undefined // File metadata and information,\n// permissions: { id: string, type: string, role: string, emailAddress: string | undefined // Permission holder email address, displayName: string | undefined // Permission holder display name }[] | undefined // File permissions (if requested),\n// error: string // Error message if operation failed\n// }\n\n\n// Share File example\nconst googleDrive_share_file = new GoogleDriveBubble({\n operation: \"share_file\", // Share a file or folder with specific users or make it public\n file_id: \"example string\", // Google Drive file or folder ID to share\n email_address: \"example string\", // Email address to share with (for specific user sharing)\n role: \"reader\" // options: \"reader\", \"writer\", \"commenter\", \"owner\", // Permission role to grant\n type: \"user\" // options: \"user\", \"group\", \"domain\", \"anyone\", // Type of permission to create\n send_notification: true // default, // Send notification email to the user\n});\n\nconst result = await googleDrive_share_file.action();\n// outputSchema for result.data when operation === 'share_file':\n// {\n// operation: \"share_file\" // Share a file or folder with specific users or make it public,\n// success: boolean // Whether the file was shared successfully,\n// permission_id: string | undefined // ID of the created permission,\n// share_link: string | undefined // Shareable link to the file,\n// error: string // Error message if operation failed\n// }\n\n\n// Move File example\nconst googleDrive_move_file = new GoogleDriveBubble({\n operation: \"move_file\", // Move a file or folder to a different location in Google Drive\n file_id: \"example string\", // Google Drive file or folder ID to move\n new_parent_folder_id: \"example string\", // ID of the new parent folder (moves to root if not provided)\n remove_parent_folder_id: \"example string\", // ID of the parent folder to remove (removes from all parents if not provided)\n});\n\nconst result = await googleDrive_move_file.action();\n// outputSchema for result.data when operation === 'move_file':\n// {\n// operation: \"move_file\" // Move a file or folder to a different location in Google Drive,\n// success: boolean // Whether the file was moved successfully,\n// file: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners } | undefined // Updated file metadata after move,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Doc example\nconst googleDrive_get_doc = new GoogleDriveBubble({\n operation: \"get_doc\", // Get the content and metadata of a Google Doc using the Google Docs API, use this over download_file for Google Docs\n document_id: \"example string\", // The ID of the Google Doc to retrieve\n tab_id: \"example string\", // Specific tab ID to read. If omitted, reads first tab.\n include_all_tabs: false // default, // Return info for all tabs including their plain text content\n});\n\nconst result = await googleDrive_get_doc.action();\n// outputSchema for result.data when operation === 'get_doc':\n// {\n// operation: \"get_doc\" // Get the content and metadata of a Google Doc using the Google Docs API,\n// success: boolean // Whether the document was retrieved successfully,\n// document: { documentId: string // The ID of the document, title: string // The title of the document, revisionId: string | undefined // The revision ID of the document, body: Record<string, unknown> | undefined // The main body of the document containing content array, suggestionsViewMode: string | undefined // The suggestions view mode applied to the document, inlineObjects: Record<string, unknown> | undefined // The inline objects (images, etc.) in the document, lists: Record<string, unknown> | undefined // The lists in the document, keyed by list ID } | undefined // The Google Docs document content and metadata,\n// plainText: string | undefined // Extracted plain text content from the document,\n// tabs: { tabId: string // Unique tab identifier, title: string // Tab title, index: number // Tab position index, plainText: string | undefined // Plain text content of the tab }[] | undefined // All tabs in the document,\n// error: string // Error message if operation failed\n// }\n\n\n// Update Doc example\nconst googleDrive_update_doc = new GoogleDriveBubble({\n operation: \"update_doc\", // Update a Google Doc with new content using the Google Docs API batchUpdate\n document_id: \"example string\", // The ID of the Google Doc to update\n content: \"example string\", // The text or markdown content to write to the document (auto-detected)\n mode: \"replace\" // options: \"replace\", \"append\", // Update mode: \"replace\" clears existing content first, \"append\" adds to the end\n tab_id: \"example string\", // Tab to write to. If omitted, writes to first tab.\n});\n\nconst result = await googleDrive_update_doc.action();\n// outputSchema for result.data when operation === 'update_doc':\n// {\n// operation: \"update_doc\" // Update a Google Doc with new content using the Google Docs API batchUpdate,\n// success: boolean // Whether the document was updated successfully,\n// documentId: string | undefined // The ID of the updated document,\n// revisionId: string | undefined // The new revision ID after the update,\n// error: string // Error message if operation failed\n// }\n\n\n// Replace Text example\nconst googleDrive_replace_text = new GoogleDriveBubble({\n operation: \"replace_text\", // Find and replace text in a Google Doc while preserving formatting\n document_id: \"example string\", // The ID of the Google Doc to perform replacements in\n replacements: [{ find: \"example string\" // Text to find, replace: \"example string\" // Text to replace with, match_case: true // default // Whether to match case when finding text }], // List of find/replace pairs\n tab_id: \"example string\", // Tab to perform replacements in. If omitted, applies to all tabs.\n});\n\nconst result = await googleDrive_replace_text.action();\n// outputSchema for result.data when operation === 'replace_text':\n// {\n// operation: \"replace_text\" // Find and replace text in a Google Doc,\n// success: boolean // Whether the replacements were made successfully,\n// replacements_made: number | undefined // Total number of replacements made,\n// error: string // Error message if operation failed\n// }\n\n\n// Copy Doc example\nconst googleDrive_copy_doc = new GoogleDriveBubble({\n operation: \"copy_doc\", // Create a copy of a Google Doc (useful for templates)\n document_id: \"example string\", // Source document ID to copy\n new_name: \"example string\", // Name for the new document\n parent_folder_id: \"example string\", // Folder to place the copy in\n});\n\nconst result = await googleDrive_copy_doc.action();\n// outputSchema for result.data when operation === 'copy_doc':\n// {\n// operation: \"copy_doc\" // Create a copy of a Google Doc,\n// success: boolean // Whether the document was copied successfully,\n// new_document_id: string | undefined // ID of the new document,\n// new_document_url: string | undefined // URL to view the new document,\n// error: string // Error message if operation failed\n// }\n\n\n// Create Tab example\nconst googleDrive_create_tab = new GoogleDriveBubble({\n operation: \"create_tab\", // Create a new tab in a Google Doc\n document_id: \"example string\", // The ID of the Google Doc to add a tab to\n title: \"example string\", // Title for the new tab\n});\n\nconst result = await googleDrive_create_tab.action();\n// outputSchema for result.data when operation === 'create_tab':\n// {\n// operation: \"create_tab\" // Create a new tab in a Google Doc,\n// success: boolean // Whether the tab was created successfully,\n// tab_id: string | undefined // ID of the newly created tab,\n// error: string // Error message if operation failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`google-drive failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
9603
9668
  "requiredCredentials": [
9604
9669
  "GOOGLE_DRIVE_CRED"
9605
9670
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bubblelab/bubble-core",
3
- "version": "0.1.69",
3
+ "version": "0.1.71",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./dist/index.js",
@@ -40,7 +40,7 @@
40
40
  "puppeteer-core": "^24.10.0",
41
41
  "resend": "^4.8.0",
42
42
  "zod": "^3.24.1",
43
- "@bubblelab/shared-schemas": "0.1.70"
43
+ "@bubblelab/shared-schemas": "0.1.72"
44
44
  },
45
45
  "devDependencies": {
46
46
  "zod-to-json-schema": "^3.24.6",