@bubblelab/bubble-core 0.1.69 → 0.1.70

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 (27) hide show
  1. package/dist/bubble-bundle.d.ts +37 -37
  2. package/dist/bubbles/service-bubble/airtable.d.ts +24 -24
  3. package/dist/bubbles/service-bubble/apify/apify.d.ts +4 -4
  4. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +32 -32
  5. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +12 -12
  6. package/dist/bubbles/service-bubble/eleven-labs.d.ts +4 -4
  7. package/dist/bubbles/service-bubble/firecrawl.d.ts +72 -72
  8. package/dist/bubbles/service-bubble/followupboss.d.ts +236 -236
  9. package/dist/bubbles/service-bubble/fullenrich/fullenrich.d.ts +76 -76
  10. package/dist/bubbles/service-bubble/google-drive.d.ts +61 -0
  11. package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
  12. package/dist/bubbles/service-bubble/google-drive.js +57 -0
  13. package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
  14. package/dist/bubbles/service-bubble/http.d.ts +8 -8
  15. package/dist/bubbles/service-bubble/jira/jira.d.ts +1 -1
  16. package/dist/bubbles/service-bubble/notion/notion.d.ts +20 -20
  17. package/dist/bubbles/service-bubble/slack/slack.d.ts +122 -122
  18. package/dist/bubbles/service-bubble/telegram.d.ts +2 -2
  19. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +20 -20
  20. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +8 -8
  21. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +94 -94
  22. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +30 -30
  23. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +28 -28
  24. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +8 -8
  25. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +8 -8
  26. package/dist/bubbles.json +67 -2
  27. package/package.json +2 -2
@@ -178,13 +178,13 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
178
178
  emoji?: boolean | undefined;
179
179
  verbatim?: boolean | undefined;
180
180
  }[] | undefined;
181
- label?: unknown;
182
181
  image_url?: string | undefined;
183
182
  optional?: boolean | undefined;
184
183
  alt_text?: string | undefined;
185
184
  block_id?: string | undefined;
186
185
  accessory?: unknown;
187
186
  element?: unknown;
187
+ label?: unknown;
188
188
  hint?: unknown;
189
189
  }, {
190
190
  type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
@@ -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;
215
214
  image_url?: string | undefined;
216
215
  optional?: boolean | undefined;
217
216
  alt_text?: string | undefined;
218
217
  block_id?: string | undefined;
219
218
  accessory?: unknown;
220
219
  element?: unknown;
220
+ label?: unknown;
221
221
  hint?: unknown;
222
222
  }>, "many">>;
223
223
  metadata: z.ZodObject<{
@@ -293,13 +293,13 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
293
293
  emoji?: boolean | undefined;
294
294
  verbatim?: boolean | undefined;
295
295
  }[] | undefined;
296
- label?: unknown;
297
296
  image_url?: string | undefined;
298
297
  optional?: boolean | undefined;
299
298
  alt_text?: string | undefined;
300
299
  block_id?: string | undefined;
301
300
  accessory?: unknown;
302
301
  element?: unknown;
302
+ label?: unknown;
303
303
  hint?: unknown;
304
304
  }[] | undefined;
305
305
  }, {
@@ -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;
347
346
  image_url?: string | undefined;
348
347
  optional?: boolean | undefined;
349
348
  alt_text?: string | undefined;
350
349
  block_id?: string | undefined;
351
350
  accessory?: unknown;
352
351
  element?: unknown;
352
+ label?: unknown;
353
353
  hint?: unknown;
354
354
  }[] | undefined;
355
355
  }>;
@@ -536,13 +536,13 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
536
536
  emoji?: boolean | undefined;
537
537
  verbatim?: boolean | undefined;
538
538
  }[] | undefined;
539
- label?: unknown;
540
539
  image_url?: string | undefined;
541
540
  optional?: boolean | undefined;
542
541
  alt_text?: string | undefined;
543
542
  block_id?: string | undefined;
544
543
  accessory?: unknown;
545
544
  element?: unknown;
545
+ label?: unknown;
546
546
  hint?: unknown;
547
547
  }, {
548
548
  type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
@@ -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;
573
572
  image_url?: string | undefined;
574
573
  optional?: boolean | undefined;
575
574
  alt_text?: string | undefined;
576
575
  block_id?: string | undefined;
577
576
  accessory?: unknown;
578
577
  element?: unknown;
578
+ label?: unknown;
579
579
  hint?: unknown;
580
580
  }>, "many">>;
581
581
  metadata: z.ZodObject<{
@@ -651,13 +651,13 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
651
651
  emoji?: boolean | undefined;
652
652
  verbatim?: boolean | undefined;
653
653
  }[] | undefined;
654
- label?: unknown;
655
654
  image_url?: string | undefined;
656
655
  optional?: boolean | undefined;
657
656
  alt_text?: string | undefined;
658
657
  block_id?: string | undefined;
659
658
  accessory?: unknown;
660
659
  element?: unknown;
660
+ label?: unknown;
661
661
  hint?: unknown;
662
662
  }[] | undefined;
663
663
  }, {
@@ -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;
705
704
  image_url?: string | undefined;
706
705
  optional?: boolean | undefined;
707
706
  alt_text?: string | undefined;
708
707
  block_id?: string | undefined;
709
708
  accessory?: unknown;
710
709
  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-01T06:48:42.412Z",
4
4
  "totalCount": 58,
5
5
  "bubbles": [
6
6
  {
@@ -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.70",
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.71"
44
44
  },
45
45
  "devDependencies": {
46
46
  "zod-to-json-schema": "^3.24.6",