@bubblelab/bubble-core 0.1.234 → 0.1.235
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bubble-bundle.d.ts +116 -116
- package/dist/bubbles/service-bubble/agi-inc.d.ts +76 -76
- package/dist/bubbles/service-bubble/ai-agent.d.ts +16 -16
- package/dist/bubbles/service-bubble/airtable.d.ts +46 -46
- package/dist/bubbles/service-bubble/apify/apify.d.ts +12 -12
- package/dist/bubbles/service-bubble/ashby/ashby.d.ts +62 -62
- package/dist/bubbles/service-bubble/assembled/assembled.d.ts +26 -26
- package/dist/bubbles/service-bubble/attio/attio.d.ts +28 -28
- package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +28 -28
- package/dist/bubbles/service-bubble/confluence/confluence.d.ts +26 -26
- package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +86 -86
- package/dist/bubbles/service-bubble/eleven-labs.d.ts +28 -28
- package/dist/bubbles/service-bubble/firecrawl.d.ts +294 -294
- package/dist/bubbles/service-bubble/followupboss.d.ts +128 -128
- package/dist/bubbles/service-bubble/fullenrich/fullenrich.d.ts +28 -28
- package/dist/bubbles/service-bubble/github.d.ts +168 -168
- package/dist/bubbles/service-bubble/gmail.d.ts +387 -320
- package/dist/bubbles/service-bubble/gmail.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/gmail.js +54 -0
- package/dist/bubbles/service-bubble/gmail.js.map +1 -1
- package/dist/bubbles/service-bubble/google-calendar.d.ts +30 -30
- package/dist/bubbles/service-bubble/google-drive.d.ts +56 -56
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +22 -22
- package/dist/bubbles/service-bubble/hello-world.d.ts +4 -4
- package/dist/bubbles/service-bubble/http.d.ts +49 -26
- package/dist/bubbles/service-bubble/http.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/http.js +87 -12
- package/dist/bubbles/service-bubble/http.js.map +1 -1
- package/dist/bubbles/service-bubble/hubspot/hubspot.d.ts +38 -38
- package/dist/bubbles/service-bubble/insforge-db.d.ts +10 -10
- package/dist/bubbles/service-bubble/jira/jira.d.ts +62 -62
- package/dist/bubbles/service-bubble/linear/linear.d.ts +22 -22
- package/dist/bubbles/service-bubble/notion/notion.d.ts +669 -669
- package/dist/bubbles/service-bubble/postgresql.d.ts +10 -10
- package/dist/bubbles/service-bubble/posthog/posthog.d.ts +12 -12
- package/dist/bubbles/service-bubble/ramp/ramp.d.ts +28 -28
- package/dist/bubbles/service-bubble/resend.d.ts +16 -16
- package/dist/bubbles/service-bubble/s3/s3.d.ts +12 -12
- package/dist/bubbles/service-bubble/sendsafely/sendsafely.d.ts +10 -10
- package/dist/bubbles/service-bubble/slab/slab.d.ts +26 -26
- package/dist/bubbles/service-bubble/slack/slack.d.ts +326 -326
- package/dist/bubbles/service-bubble/storage.d.ts +24 -24
- package/dist/bubbles/service-bubble/stripe/stripe.d.ts +50 -50
- package/dist/bubbles/service-bubble/telegram.d.ts +56 -56
- package/dist/bubbles/service-bubble/xero/xero.d.ts +16 -16
- package/dist/bubbles/service-bubble/zendesk/zendesk.d.ts +36 -36
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +20 -20
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/tool.d.ts +2 -2
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.d.ts +2 -2
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/tool.d.ts +2 -2
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/tool.d.ts +2 -2
- package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +14 -14
- package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/get-trigger-detail-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +12 -12
- package/dist/bubbles/tool-bubble/instagram-tool.d.ts +14 -14
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +112 -112
- package/dist/bubbles/tool-bubble/list-airtable-bases-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/list-airtable-tables-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/list-capabilities-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/people-search-tool.d.ts +38 -38
- package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +24 -24
- package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +12 -12
- package/dist/bubbles/tool-bubble/tool-template.d.ts +4 -4
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts +48 -48
- package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +18 -18
- package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +16 -16
- package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +14 -14
- package/dist/bubbles/tool-bubble/web-search-tool.d.ts +12 -12
- package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/youtube-tool.d.ts +24 -24
- package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +4 -4
- package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +16 -16
- package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +4 -4
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +24 -24
- package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +24 -24
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +6 -6
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +14 -14
- package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +4 -4
- package/dist/bubbles.json +95 -6
- package/package.json +2 -2
|
@@ -148,8 +148,8 @@ declare const SlackNotifierResultSchema: z.ZodObject<{
|
|
|
148
148
|
originalLength?: number | undefined;
|
|
149
149
|
}>>;
|
|
150
150
|
}, "strip", z.ZodTypeAny, {
|
|
151
|
-
error: string;
|
|
152
151
|
success: boolean;
|
|
152
|
+
error: string;
|
|
153
153
|
messageInfo?: {
|
|
154
154
|
channelName?: string | undefined;
|
|
155
155
|
messageTimestamp?: string | undefined;
|
|
@@ -163,8 +163,8 @@ declare const SlackNotifierResultSchema: z.ZodObject<{
|
|
|
163
163
|
originalLength?: number | undefined;
|
|
164
164
|
} | undefined;
|
|
165
165
|
}, {
|
|
166
|
-
error: string;
|
|
167
166
|
success: boolean;
|
|
167
|
+
error: string;
|
|
168
168
|
messageInfo?: {
|
|
169
169
|
channelName?: string | undefined;
|
|
170
170
|
messageTimestamp?: string | undefined;
|
|
@@ -344,8 +344,8 @@ export declare class SlackNotifierWorkflowBubble extends WorkflowBubble<SlackNot
|
|
|
344
344
|
originalLength?: number | undefined;
|
|
345
345
|
}>>;
|
|
346
346
|
}, "strip", z.ZodTypeAny, {
|
|
347
|
-
error: string;
|
|
348
347
|
success: boolean;
|
|
348
|
+
error: string;
|
|
349
349
|
messageInfo?: {
|
|
350
350
|
channelName?: string | undefined;
|
|
351
351
|
messageTimestamp?: string | undefined;
|
|
@@ -359,8 +359,8 @@ export declare class SlackNotifierWorkflowBubble extends WorkflowBubble<SlackNot
|
|
|
359
359
|
originalLength?: number | undefined;
|
|
360
360
|
} | undefined;
|
|
361
361
|
}, {
|
|
362
|
-
error: string;
|
|
363
362
|
success: boolean;
|
|
363
|
+
error: string;
|
|
364
364
|
messageInfo?: {
|
|
365
365
|
channelName?: string | undefined;
|
|
366
366
|
messageTimestamp?: string | undefined;
|
package/dist/bubbles.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "2.0.0",
|
|
3
|
-
"generatedAt": "2026-03-
|
|
3
|
+
"generatedAt": "2026-03-17T00:27:22.349Z",
|
|
4
4
|
"totalCount": 75,
|
|
5
5
|
"bubbles": [
|
|
6
6
|
{
|
|
@@ -8204,7 +8204,7 @@
|
|
|
8204
8204
|
"type": "service",
|
|
8205
8205
|
"shortDescription": "Makes HTTP requests to external APIs and services",
|
|
8206
8206
|
"useCase": "- Calling external REST APIs",
|
|
8207
|
-
"outputSchema": "{\n status: number // HTTP status code,\n statusText: string // HTTP status text,\n headers: Record<string, string> // Response headers,\n body: string // Response body as
|
|
8207
|
+
"outputSchema": "{\n status: number // HTTP status code,\n statusText: string // HTTP status text,\n headers: Record<string, string> // Response headers,\n body: string // Response body. For text responses (HTML, JSON, etc.) this is the raw text. For binary responses (PDFs, images, etc.) this is base64-encoded — check isBase64 to know which.,\n isBase64: boolean // True when body is base64-encoded binary data. When true, pass body directly to tools that accept base64 content (e.g., google_drive upload_file, resend attachment content).,\n contentType: string // Response Content-Type (e.g., application/pdf, text/html). Pass to downstream tools as mimeType/contentType.,\n json: unknown | undefined // Parsed JSON response (if applicable),\n success: boolean // Whether the request was successful (HTTP 2xx status codes),\n error: string // Error message if request failed,\n responseTime: number // Response time in milliseconds,\n size: number // Raw response size in bytes (before base64 encoding, if applicable)\n}",
|
|
8208
8208
|
"inputJsonSchema": {
|
|
8209
8209
|
"type": "object",
|
|
8210
8210
|
"properties": {
|
|
@@ -8275,6 +8275,16 @@
|
|
|
8275
8275
|
"type": "string",
|
|
8276
8276
|
"description": "Custom header name when authType is \"custom\" (e.g., \"X-Custom-Auth\")"
|
|
8277
8277
|
},
|
|
8278
|
+
"responseType": {
|
|
8279
|
+
"type": "string",
|
|
8280
|
+
"enum": [
|
|
8281
|
+
"auto",
|
|
8282
|
+
"text",
|
|
8283
|
+
"binary"
|
|
8284
|
+
],
|
|
8285
|
+
"default": "auto",
|
|
8286
|
+
"description": "How to handle the response body. auto: detects from Content-Type (e.g., application/pdf → base64). text: always returns UTF-8 string. binary: always returns base64-encoded string. Use binary when downloading files like PDFs or images."
|
|
8287
|
+
},
|
|
8278
8288
|
"credentials": {
|
|
8279
8289
|
"type": "object",
|
|
8280
8290
|
"additionalProperties": {
|
|
@@ -8308,7 +8318,15 @@
|
|
|
8308
8318
|
},
|
|
8309
8319
|
"body": {
|
|
8310
8320
|
"type": "string",
|
|
8311
|
-
"description": "Response body
|
|
8321
|
+
"description": "Response body. For text responses (HTML, JSON, etc.) this is the raw text. For binary responses (PDFs, images, etc.) this is base64-encoded — check isBase64 to know which."
|
|
8322
|
+
},
|
|
8323
|
+
"isBase64": {
|
|
8324
|
+
"type": "boolean",
|
|
8325
|
+
"description": "True when body is base64-encoded binary data. When true, pass body directly to tools that accept base64 content (e.g., google_drive upload_file, resend attachment content)."
|
|
8326
|
+
},
|
|
8327
|
+
"contentType": {
|
|
8328
|
+
"type": "string",
|
|
8329
|
+
"description": "Response Content-Type (e.g., application/pdf, text/html). Pass to downstream tools as mimeType/contentType."
|
|
8312
8330
|
},
|
|
8313
8331
|
"json": {
|
|
8314
8332
|
"description": "Parsed JSON response (if applicable)"
|
|
@@ -8327,7 +8345,7 @@
|
|
|
8327
8345
|
},
|
|
8328
8346
|
"size": {
|
|
8329
8347
|
"type": "number",
|
|
8330
|
-
"description": "
|
|
8348
|
+
"description": "Raw response size in bytes (before base64 encoding, if applicable)"
|
|
8331
8349
|
}
|
|
8332
8350
|
},
|
|
8333
8351
|
"required": [
|
|
@@ -8335,6 +8353,8 @@
|
|
|
8335
8353
|
"statusText",
|
|
8336
8354
|
"headers",
|
|
8337
8355
|
"body",
|
|
8356
|
+
"isBase64",
|
|
8357
|
+
"contentType",
|
|
8338
8358
|
"success",
|
|
8339
8359
|
"error",
|
|
8340
8360
|
"responseTime",
|
|
@@ -8342,7 +8362,7 @@
|
|
|
8342
8362
|
],
|
|
8343
8363
|
"additionalProperties": false
|
|
8344
8364
|
},
|
|
8345
|
-
"usageExample": "// Example usage of http bubble\nconst http = new HttpBubble({\n url: \"example string\", // The URL to make the HTTP request to,\n method: \"GET\" // options: \"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"HEAD\", \"OPTIONS\", // HTTP method to use (default: GET),\n headers: { \"example_key\": \"example string\" }, // HTTP headers to include in the request,\n body: \"example string\", // Request body (string or JSON object),\n timeout: 30000 // default, // Request timeout in milliseconds (default: 30000, max: 120000),\n followRedirects: true // default, // Whether to follow HTTP redirects (default: true),\n authType: \"none\" // options: \"none\", \"bearer\", \"basic\", \"api-key\", \"api-key-header\", \"custom\", // Authentication type: none (default), bearer (Authorization: Bearer), basic (Authorization: Basic), api-key (X-API-Key), api-key-header (Api-Key), custom (user-specified header),\n authHeader: \"example string\", // Custom header name when authType is \"custom\" (e.g., \"X-Custom-Auth\"),\n});\n\nconst result = await http.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// status: number // HTTP status code,\n// statusText: string // HTTP status text,\n// headers: Record<string, string> // Response headers,\n// body: string // Response body as
|
|
8365
|
+
"usageExample": "// Example usage of http bubble\nconst http = new HttpBubble({\n url: \"example string\", // The URL to make the HTTP request to,\n method: \"GET\" // options: \"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"HEAD\", \"OPTIONS\", // HTTP method to use (default: GET),\n headers: { \"example_key\": \"example string\" }, // HTTP headers to include in the request,\n body: \"example string\", // Request body (string or JSON object),\n timeout: 30000 // default, // Request timeout in milliseconds (default: 30000, max: 120000),\n followRedirects: true // default, // Whether to follow HTTP redirects (default: true),\n authType: \"none\" // options: \"none\", \"bearer\", \"basic\", \"api-key\", \"api-key-header\", \"custom\", // Authentication type: none (default), bearer (Authorization: Bearer), basic (Authorization: Basic), api-key (X-API-Key), api-key-header (Api-Key), custom (user-specified header),\n authHeader: \"example string\", // Custom header name when authType is \"custom\" (e.g., \"X-Custom-Auth\"),\n responseType: \"auto\" // options: \"auto\", \"text\", \"binary\", // How to handle the response body. auto: detects from Content-Type (e.g., application/pdf → base64). text: always returns UTF-8 string. binary: always returns base64-encoded string. Use binary when downloading files like PDFs or images.,\n});\n\nconst result = await http.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// status: number // HTTP status code,\n// statusText: string // HTTP status text,\n// headers: Record<string, string> // Response headers,\n// body: string // Response body. For text responses (HTML, JSON, etc.) this is the raw text. For binary responses (PDFs, images, etc.) this is base64-encoded — check isBase64 to know which.,\n// isBase64: boolean // True when body is base64-encoded binary data. When true, pass body directly to tools that accept base64 content (e.g., google_drive upload_file, resend attachment content).,\n// contentType: string // Response Content-Type (e.g., application/pdf, text/html). Pass to downstream tools as mimeType/contentType.,\n// json: unknown | undefined // Parsed JSON response (if applicable),\n// success: boolean // Whether the request was successful (HTTP 2xx status codes),\n// error: string // Error message if request failed,\n// responseTime: number // Response time in milliseconds,\n// size: number // Raw response size in bytes (before base64 encoding, if applicable)\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
8346
8366
|
"requiredCredentials": [
|
|
8347
8367
|
"*"
|
|
8348
8368
|
]
|
|
@@ -10896,6 +10916,41 @@
|
|
|
10896
10916
|
"thread_id"
|
|
10897
10917
|
],
|
|
10898
10918
|
"additionalProperties": false
|
|
10919
|
+
},
|
|
10920
|
+
{
|
|
10921
|
+
"type": "object",
|
|
10922
|
+
"properties": {
|
|
10923
|
+
"operation": {
|
|
10924
|
+
"type": "string",
|
|
10925
|
+
"enum": [
|
|
10926
|
+
"get_attachment"
|
|
10927
|
+
],
|
|
10928
|
+
"description": "Download an attachment from an email message"
|
|
10929
|
+
},
|
|
10930
|
+
"message_id": {
|
|
10931
|
+
"type": "string",
|
|
10932
|
+
"minLength": 1,
|
|
10933
|
+
"description": "Gmail message ID that contains the attachment"
|
|
10934
|
+
},
|
|
10935
|
+
"attachment_id": {
|
|
10936
|
+
"type": "string",
|
|
10937
|
+
"minLength": 1,
|
|
10938
|
+
"description": "Attachment ID from the message payload (found in body.attachmentId of attachment parts)"
|
|
10939
|
+
},
|
|
10940
|
+
"credentials": {
|
|
10941
|
+
"type": "object",
|
|
10942
|
+
"additionalProperties": {
|
|
10943
|
+
"type": "string"
|
|
10944
|
+
},
|
|
10945
|
+
"description": "Object mapping credential types to values (injected at runtime)"
|
|
10946
|
+
}
|
|
10947
|
+
},
|
|
10948
|
+
"required": [
|
|
10949
|
+
"operation",
|
|
10950
|
+
"message_id",
|
|
10951
|
+
"attachment_id"
|
|
10952
|
+
],
|
|
10953
|
+
"additionalProperties": false
|
|
10899
10954
|
}
|
|
10900
10955
|
]
|
|
10901
10956
|
},
|
|
@@ -12197,10 +12252,44 @@
|
|
|
12197
12252
|
"error"
|
|
12198
12253
|
],
|
|
12199
12254
|
"additionalProperties": false
|
|
12255
|
+
},
|
|
12256
|
+
{
|
|
12257
|
+
"type": "object",
|
|
12258
|
+
"properties": {
|
|
12259
|
+
"operation": {
|
|
12260
|
+
"type": "string",
|
|
12261
|
+
"enum": [
|
|
12262
|
+
"get_attachment"
|
|
12263
|
+
],
|
|
12264
|
+
"description": "Download an attachment from an email message"
|
|
12265
|
+
},
|
|
12266
|
+
"success": {
|
|
12267
|
+
"type": "boolean",
|
|
12268
|
+
"description": "Whether the attachment was downloaded successfully"
|
|
12269
|
+
},
|
|
12270
|
+
"data": {
|
|
12271
|
+
"type": "string",
|
|
12272
|
+
"description": "Base64-encoded attachment content"
|
|
12273
|
+
},
|
|
12274
|
+
"size": {
|
|
12275
|
+
"type": "number",
|
|
12276
|
+
"description": "Attachment size in bytes"
|
|
12277
|
+
},
|
|
12278
|
+
"error": {
|
|
12279
|
+
"type": "string",
|
|
12280
|
+
"description": "Error message if operation failed"
|
|
12281
|
+
}
|
|
12282
|
+
},
|
|
12283
|
+
"required": [
|
|
12284
|
+
"operation",
|
|
12285
|
+
"success",
|
|
12286
|
+
"error"
|
|
12287
|
+
],
|
|
12288
|
+
"additionalProperties": false
|
|
12200
12289
|
}
|
|
12201
12290
|
]
|
|
12202
12291
|
},
|
|
12203
|
-
"usageExample": "// Send Email example\nconst gmail_send_email = new GmailBubble({\n operation: \"send_email\", // Send an email message\n to: [\"example string\"], // List of recipient email addresses\n cc: [\"example string\"], // List of CC recipient email addresses\n bcc: [\"example string\"], // List of BCC recipient email addresses\n subject: \"example string\", // Email subject line\n body_text: \"example string\", // [ONEOF:body] Email body (supports markdown — automatically converted to HTML for rendering)\n body_html: \"example string\", // [ONEOF:body] HTML email body. If not provided and body_text is set, HTML is auto-generated from body_text.\n reply_to: \"example string\", // Reply-to email address\n thread_id: \"example string\", // Thread ID to reply to (for threaded conversations)\n});\n\nconst result = await gmail_send_email.action();\n// outputSchema for result.data when operation === 'send_email':\n// {\n// operation: \"send_email\" // Send an email message,\n// success: boolean // Whether the email was sent successfully,\n// message_id: string | undefined // Sent message ID,\n// thread_id: string | undefined // Thread ID,\n// error: string // Error message if operation failed\n// }\n\n\n// List Emails example\nconst gmail_list_emails = new GmailBubble({\n operation: \"list_emails\", // List emails in the user mailbox\n query: \"example string\", // Gmail search query (e.g., \"from:user@example.com is:unread\")\n label_ids: [\"example string\"], // Filter by specific label IDs\n include_spam_trash: false // default, // Include messages from SPAM and TRASH\n max_results: 100 // default, // Maximum number of messages to return\n page_token: \"example string\", // Token for pagination to get next page\n include_details: true // default, // Whether to fetch full message details including snippet, headers, and body\n});\n\nconst result = await gmail_list_emails.action();\n// outputSchema for result.data when operation === 'list_emails':\n// {\n// operation: \"list_emails\" // List emails in the user mailbox,\n// success: boolean // Whether the email list was retrieved successfully,\n// messages: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure }[] | undefined // List of email messages,\n// next_page_token: string | undefined // Token for fetching next page,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Email example\nconst gmail_get_email = new GmailBubble({\n operation: \"get_email\", // Get a specific email message\n message_id: \"example string\", // Gmail message ID to retrieve\n format: \"minimal\" // options: \"minimal\", \"full\", \"raw\", \"metadata\", // Format to return the message in\n metadata_headers: [\"example string\"], // List of headers to include when format is metadata\n});\n\nconst result = await gmail_get_email.action();\n// outputSchema for result.data when operation === 'get_email':\n// {\n// operation: \"get_email\" // Get a specific email message,\n// success: boolean // Whether the email was retrieved successfully,\n// message: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure } | undefined // Email message details,\n// error: string // Error message if operation failed\n// }\n\n\n// Search Emails example\nconst gmail_search_emails = new GmailBubble({\n operation: \"search_emails\", // Search emails with query\n query: \"example string\", // Gmail search query string\n max_results: 50 // default, // Maximum number of results to return\n include_spam_trash: false // default, // Include messages from SPAM and TRASH\n});\n\nconst result = await gmail_search_emails.action();\n// outputSchema for result.data when operation === 'search_emails':\n// {\n// operation: \"search_emails\" // Search emails with query,\n// success: boolean // Whether the email search was completed successfully,\n// messages: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure }[] | undefined // List of matching email messages,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Mark As Read example\nconst gmail_mark_as_read = new GmailBubble({\n operation: \"mark_as_read\", // Mark one or more messages as read\n message_ids: [\"example string\"], // List of message IDs to mark as read\n});\n\nconst result = await gmail_mark_as_read.action();\n// outputSchema for result.data when operation === 'mark_as_read':\n// {\n// operation: \"mark_as_read\" // Mark one or more messages as read,\n// success: boolean // Whether the messages were marked as read successfully,\n// modified_messages: string[] | undefined // IDs of messages that were modified,\n// error: string // Error message if operation failed\n// }\n\n\n// Mark As Unread example\nconst gmail_mark_as_unread = new GmailBubble({\n operation: \"mark_as_unread\", // Mark one or more messages as unread\n message_ids: [\"example string\"], // List of message IDs to mark as unread\n});\n\nconst result = await gmail_mark_as_unread.action();\n// outputSchema for result.data when operation === 'mark_as_unread':\n// {\n// operation: \"mark_as_unread\" // Mark one or more messages as unread,\n// success: boolean // Whether the messages were marked as unread successfully,\n// modified_messages: string[] | undefined // IDs of messages that were modified,\n// error: string // Error message if operation failed\n// }\n\n\n// Create Draft example\nconst gmail_create_draft = new GmailBubble({\n operation: \"create_draft\", // Create a draft email\n to: [\"example string\"], // List of recipient email addresses\n cc: [\"example string\"], // List of CC recipient email addresses\n bcc: [\"example string\"], // List of BCC recipient email addresses\n subject: \"example string\", // Email subject line\n body_text: \"example string\", // [ONEOF:body] Email body (supports markdown — automatically converted to HTML for rendering)\n body_html: \"example string\", // [ONEOF:body] HTML email body. If not provided and body_text is set, HTML is auto-generated from body_text.\n reply_to: \"example string\", // Reply-to email address\n thread_id: \"example string\", // Thread ID to reply to (for threaded conversations)\n});\n\nconst result = await gmail_create_draft.action();\n// outputSchema for result.data when operation === 'create_draft':\n// {\n// operation: \"create_draft\" // Create a draft email,\n// success: boolean // Whether the draft was created successfully,\n// draft: { id: string // Unique draft identifier, message: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure } // Draft message content } | undefined // Created draft,\n// error: string // Error message if operation failed\n// }\n\n\n// Send Draft example\nconst gmail_send_draft = new GmailBubble({\n operation: \"send_draft\", // Send a draft email\n draft_id: \"example string\", // Gmail draft ID to send\n});\n\nconst result = await gmail_send_draft.action();\n// outputSchema for result.data when operation === 'send_draft':\n// {\n// operation: \"send_draft\" // Send a draft email,\n// success: boolean // Whether the draft was sent successfully,\n// message_id: string | undefined // Sent message ID,\n// thread_id: string | undefined // Thread ID,\n// error: string // Error message if operation failed\n// }\n\n\n// List Drafts example\nconst gmail_list_drafts = new GmailBubble({\n operation: \"list_drafts\", // List draft emails\n query: \"example string\", // Search query to filter drafts\n max_results: 100 // default, // Maximum number of drafts to return\n page_token: \"example string\", // Token for pagination to get next page\n include_spam_trash: false // default, // Include drafts from SPAM and TRASH\n});\n\nconst result = await gmail_list_drafts.action();\n// outputSchema for result.data when operation === 'list_drafts':\n// {\n// operation: \"list_drafts\" // List draft emails,\n// success: boolean // Whether the draft list was retrieved successfully,\n// drafts: { id: string // Unique draft identifier, message: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure } // Draft message content }[] | undefined // List of drafts,\n// next_page_token: string | undefined // Token for fetching next page,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Delete Email example\nconst gmail_delete_email = new GmailBubble({\n operation: \"delete_email\", // Delete an email message permanently\n message_id: \"example string\", // Gmail message ID to delete\n});\n\nconst result = await gmail_delete_email.action();\n// outputSchema for result.data when operation === 'delete_email':\n// {\n// operation: \"delete_email\" // Delete an email message permanently,\n// success: boolean // Whether the email was deleted successfully,\n// deleted_message_id: string | undefined // ID of the deleted message,\n// error: string // Error message if operation failed\n// }\n\n\n// Trash Email example\nconst gmail_trash_email = new GmailBubble({\n operation: \"trash_email\", // Move an email message to trash\n message_id: \"example string\", // Gmail message ID to move to trash\n});\n\nconst result = await gmail_trash_email.action();\n// outputSchema for result.data when operation === 'trash_email':\n// {\n// operation: \"trash_email\" // Move an email message to trash,\n// success: boolean // Whether the email was moved to trash successfully,\n// trashed_message_id: string | undefined // ID of the trashed message,\n// error: string // Error message if operation failed\n// }\n\n\n// List Threads example\nconst gmail_list_threads = new GmailBubble({\n operation: \"list_threads\", // List email threads\n query: \"example string\", // Gmail search query to filter threads\n label_ids: [\"example string\"], // Filter by specific label IDs\n include_spam_trash: false // default, // Include threads from SPAM and TRASH\n max_results: 100 // default, // Maximum number of threads to return\n page_token: \"example string\", // Token for pagination to get next page\n});\n\nconst result = await gmail_list_threads.action();\n// outputSchema for result.data when operation === 'list_threads':\n// {\n// operation: \"list_threads\" // List email threads,\n// success: boolean // Whether the thread list was retrieved successfully,\n// threads: { id: string // Unique thread identifier, historyId: string | undefined // Last history record ID, messages: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure }[] | undefined // Messages in this thread, snippet: string | undefined // Thread snippet }[] | undefined // List of email threads,\n// next_page_token: string | undefined // Token for fetching next page,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// List Labels example\nconst gmail_list_labels = new GmailBubble({\n operation: \"list_labels\", // List all labels in mailbox\n});\n\nconst result = await gmail_list_labels.action();\n// outputSchema for result.data when operation === 'list_labels':\n// {\n// operation: \"list_labels\" // List all labels in mailbox,\n// success: boolean // Whether the label list was retrieved successfully,\n// labels: { id: string // Label ID, name: string // Label name, type: \"system\" | \"user\" | undefined // Label type: system (built-in) or user (custom), messageListVisibility: \"show\" | \"hide\" | undefined // Visibility in message list, labelListVisibility: \"labelShow\" | \"labelShowIfUnread\" | \"labelHide\" | undefined // Visibility in label list }[] | undefined // List of labels (both system and user labels),\n// error: string // Error message if operation failed\n// }\n\n\n// Create Label example\nconst gmail_create_label = new GmailBubble({\n operation: \"create_label\", // Create a new custom label\n name: \"example string\", // Label name (display name)\n label_list_visibility: \"labelShow\" // options: \"labelShow\", \"labelShowIfUnread\", \"labelHide\", // Visibility in label list\n message_list_visibility: \"show\" // options: \"show\", \"hide\", // Visibility in message list\n background_color: \"example string\", // Background color in hex format (e.g., #000000)\n text_color: \"example string\", // Text color in hex format (e.g., #ffffff)\n});\n\nconst result = await gmail_create_label.action();\n// outputSchema for result.data when operation === 'create_label':\n// {\n// operation: \"create_label\" // Create a new custom label,\n// success: boolean // Whether the label was created successfully,\n// label: { id: string // Label ID, name: string // Label name, type: \"system\" | \"user\" | undefined // Label type: system (built-in) or user (custom), messageListVisibility: \"show\" | \"hide\" | undefined // Visibility in message list, labelListVisibility: \"labelShow\" | \"labelShowIfUnread\" | \"labelHide\" | undefined // Visibility in label list } | undefined // Created label details,\n// error: string // Error message if operation failed\n// }\n\n\n// Modify Message Labels example\nconst gmail_modify_message_labels = new GmailBubble({\n operation: \"modify_message_labels\", // Add or remove labels from a message\n message_id: \"example string\", // Gmail message ID to modify\n add_label_ids: [\"example string\"], // List of label IDs to add (max 100)\n remove_label_ids: [\"example string\"], // List of label IDs to remove (max 100)\n});\n\nconst result = await gmail_modify_message_labels.action();\n// outputSchema for result.data when operation === 'modify_message_labels':\n// {\n// operation: \"modify_message_labels\" // Add or remove labels from a message,\n// success: boolean // Whether the labels were modified successfully,\n// message_id: string | undefined // Modified message ID,\n// label_ids: string[] | undefined // Current label IDs after modification,\n// error: string // Error message if operation failed\n// }\n\n\n// Modify Thread Labels example\nconst gmail_modify_thread_labels = new GmailBubble({\n operation: \"modify_thread_labels\", // Add or remove labels from all messages in a thread\n thread_id: \"example string\", // Gmail thread ID to modify\n add_label_ids: [\"example string\"], // List of label IDs to add to all messages in thread (max 100)\n remove_label_ids: [\"example string\"], // List of label IDs to remove from all messages in thread (max 100)\n});\n\nconst result = await gmail_modify_thread_labels.action();\n// outputSchema for result.data when operation === 'modify_thread_labels':\n// {\n// operation: \"modify_thread_labels\" // Add or remove labels from all messages in a thread,\n// success: boolean // Whether the thread labels were modified successfully,\n// thread_id: string | undefined // Modified thread ID,\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(`gmail failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
12292
|
+
"usageExample": "// Send Email example\nconst gmail_send_email = new GmailBubble({\n operation: \"send_email\", // Send an email message\n to: [\"example string\"], // List of recipient email addresses\n cc: [\"example string\"], // List of CC recipient email addresses\n bcc: [\"example string\"], // List of BCC recipient email addresses\n subject: \"example string\", // Email subject line\n body_text: \"example string\", // [ONEOF:body] Email body (supports markdown — automatically converted to HTML for rendering)\n body_html: \"example string\", // [ONEOF:body] HTML email body. If not provided and body_text is set, HTML is auto-generated from body_text.\n reply_to: \"example string\", // Reply-to email address\n thread_id: \"example string\", // Thread ID to reply to (for threaded conversations)\n});\n\nconst result = await gmail_send_email.action();\n// outputSchema for result.data when operation === 'send_email':\n// {\n// operation: \"send_email\" // Send an email message,\n// success: boolean // Whether the email was sent successfully,\n// message_id: string | undefined // Sent message ID,\n// thread_id: string | undefined // Thread ID,\n// error: string // Error message if operation failed\n// }\n\n\n// List Emails example\nconst gmail_list_emails = new GmailBubble({\n operation: \"list_emails\", // List emails in the user mailbox\n query: \"example string\", // Gmail search query (e.g., \"from:user@example.com is:unread\")\n label_ids: [\"example string\"], // Filter by specific label IDs\n include_spam_trash: false // default, // Include messages from SPAM and TRASH\n max_results: 100 // default, // Maximum number of messages to return\n page_token: \"example string\", // Token for pagination to get next page\n include_details: true // default, // Whether to fetch full message details including snippet, headers, and body\n});\n\nconst result = await gmail_list_emails.action();\n// outputSchema for result.data when operation === 'list_emails':\n// {\n// operation: \"list_emails\" // List emails in the user mailbox,\n// success: boolean // Whether the email list was retrieved successfully,\n// messages: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure }[] | undefined // List of email messages,\n// next_page_token: string | undefined // Token for fetching next page,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Email example\nconst gmail_get_email = new GmailBubble({\n operation: \"get_email\", // Get a specific email message\n message_id: \"example string\", // Gmail message ID to retrieve\n format: \"minimal\" // options: \"minimal\", \"full\", \"raw\", \"metadata\", // Format to return the message in\n metadata_headers: [\"example string\"], // List of headers to include when format is metadata\n});\n\nconst result = await gmail_get_email.action();\n// outputSchema for result.data when operation === 'get_email':\n// {\n// operation: \"get_email\" // Get a specific email message,\n// success: boolean // Whether the email was retrieved successfully,\n// message: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure } | undefined // Email message details,\n// error: string // Error message if operation failed\n// }\n\n\n// Search Emails example\nconst gmail_search_emails = new GmailBubble({\n operation: \"search_emails\", // Search emails with query\n query: \"example string\", // Gmail search query string\n max_results: 50 // default, // Maximum number of results to return\n include_spam_trash: false // default, // Include messages from SPAM and TRASH\n});\n\nconst result = await gmail_search_emails.action();\n// outputSchema for result.data when operation === 'search_emails':\n// {\n// operation: \"search_emails\" // Search emails with query,\n// success: boolean // Whether the email search was completed successfully,\n// messages: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure }[] | undefined // List of matching email messages,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Mark As Read example\nconst gmail_mark_as_read = new GmailBubble({\n operation: \"mark_as_read\", // Mark one or more messages as read\n message_ids: [\"example string\"], // List of message IDs to mark as read\n});\n\nconst result = await gmail_mark_as_read.action();\n// outputSchema for result.data when operation === 'mark_as_read':\n// {\n// operation: \"mark_as_read\" // Mark one or more messages as read,\n// success: boolean // Whether the messages were marked as read successfully,\n// modified_messages: string[] | undefined // IDs of messages that were modified,\n// error: string // Error message if operation failed\n// }\n\n\n// Mark As Unread example\nconst gmail_mark_as_unread = new GmailBubble({\n operation: \"mark_as_unread\", // Mark one or more messages as unread\n message_ids: [\"example string\"], // List of message IDs to mark as unread\n});\n\nconst result = await gmail_mark_as_unread.action();\n// outputSchema for result.data when operation === 'mark_as_unread':\n// {\n// operation: \"mark_as_unread\" // Mark one or more messages as unread,\n// success: boolean // Whether the messages were marked as unread successfully,\n// modified_messages: string[] | undefined // IDs of messages that were modified,\n// error: string // Error message if operation failed\n// }\n\n\n// Create Draft example\nconst gmail_create_draft = new GmailBubble({\n operation: \"create_draft\", // Create a draft email\n to: [\"example string\"], // List of recipient email addresses\n cc: [\"example string\"], // List of CC recipient email addresses\n bcc: [\"example string\"], // List of BCC recipient email addresses\n subject: \"example string\", // Email subject line\n body_text: \"example string\", // [ONEOF:body] Email body (supports markdown — automatically converted to HTML for rendering)\n body_html: \"example string\", // [ONEOF:body] HTML email body. If not provided and body_text is set, HTML is auto-generated from body_text.\n reply_to: \"example string\", // Reply-to email address\n thread_id: \"example string\", // Thread ID to reply to (for threaded conversations)\n});\n\nconst result = await gmail_create_draft.action();\n// outputSchema for result.data when operation === 'create_draft':\n// {\n// operation: \"create_draft\" // Create a draft email,\n// success: boolean // Whether the draft was created successfully,\n// draft: { id: string // Unique draft identifier, message: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure } // Draft message content } | undefined // Created draft,\n// error: string // Error message if operation failed\n// }\n\n\n// Send Draft example\nconst gmail_send_draft = new GmailBubble({\n operation: \"send_draft\", // Send a draft email\n draft_id: \"example string\", // Gmail draft ID to send\n});\n\nconst result = await gmail_send_draft.action();\n// outputSchema for result.data when operation === 'send_draft':\n// {\n// operation: \"send_draft\" // Send a draft email,\n// success: boolean // Whether the draft was sent successfully,\n// message_id: string | undefined // Sent message ID,\n// thread_id: string | undefined // Thread ID,\n// error: string // Error message if operation failed\n// }\n\n\n// List Drafts example\nconst gmail_list_drafts = new GmailBubble({\n operation: \"list_drafts\", // List draft emails\n query: \"example string\", // Search query to filter drafts\n max_results: 100 // default, // Maximum number of drafts to return\n page_token: \"example string\", // Token for pagination to get next page\n include_spam_trash: false // default, // Include drafts from SPAM and TRASH\n});\n\nconst result = await gmail_list_drafts.action();\n// outputSchema for result.data when operation === 'list_drafts':\n// {\n// operation: \"list_drafts\" // List draft emails,\n// success: boolean // Whether the draft list was retrieved successfully,\n// drafts: { id: string // Unique draft identifier, message: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure } // Draft message content }[] | undefined // List of drafts,\n// next_page_token: string | undefined // Token for fetching next page,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Delete Email example\nconst gmail_delete_email = new GmailBubble({\n operation: \"delete_email\", // Delete an email message permanently\n message_id: \"example string\", // Gmail message ID to delete\n});\n\nconst result = await gmail_delete_email.action();\n// outputSchema for result.data when operation === 'delete_email':\n// {\n// operation: \"delete_email\" // Delete an email message permanently,\n// success: boolean // Whether the email was deleted successfully,\n// deleted_message_id: string | undefined // ID of the deleted message,\n// error: string // Error message if operation failed\n// }\n\n\n// Trash Email example\nconst gmail_trash_email = new GmailBubble({\n operation: \"trash_email\", // Move an email message to trash\n message_id: \"example string\", // Gmail message ID to move to trash\n});\n\nconst result = await gmail_trash_email.action();\n// outputSchema for result.data when operation === 'trash_email':\n// {\n// operation: \"trash_email\" // Move an email message to trash,\n// success: boolean // Whether the email was moved to trash successfully,\n// trashed_message_id: string | undefined // ID of the trashed message,\n// error: string // Error message if operation failed\n// }\n\n\n// List Threads example\nconst gmail_list_threads = new GmailBubble({\n operation: \"list_threads\", // List email threads\n query: \"example string\", // Gmail search query to filter threads\n label_ids: [\"example string\"], // Filter by specific label IDs\n include_spam_trash: false // default, // Include threads from SPAM and TRASH\n max_results: 100 // default, // Maximum number of threads to return\n page_token: \"example string\", // Token for pagination to get next page\n});\n\nconst result = await gmail_list_threads.action();\n// outputSchema for result.data when operation === 'list_threads':\n// {\n// operation: \"list_threads\" // List email threads,\n// success: boolean // Whether the thread list was retrieved successfully,\n// threads: { id: string // Unique thread identifier, historyId: string | undefined // Last history record ID, messages: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure }[] | undefined // Messages in this thread, snippet: string | undefined // Thread snippet }[] | undefined // List of email threads,\n// next_page_token: string | undefined // Token for fetching next page,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// List Labels example\nconst gmail_list_labels = new GmailBubble({\n operation: \"list_labels\", // List all labels in mailbox\n});\n\nconst result = await gmail_list_labels.action();\n// outputSchema for result.data when operation === 'list_labels':\n// {\n// operation: \"list_labels\" // List all labels in mailbox,\n// success: boolean // Whether the label list was retrieved successfully,\n// labels: { id: string // Label ID, name: string // Label name, type: \"system\" | \"user\" | undefined // Label type: system (built-in) or user (custom), messageListVisibility: \"show\" | \"hide\" | undefined // Visibility in message list, labelListVisibility: \"labelShow\" | \"labelShowIfUnread\" | \"labelHide\" | undefined // Visibility in label list }[] | undefined // List of labels (both system and user labels),\n// error: string // Error message if operation failed\n// }\n\n\n// Create Label example\nconst gmail_create_label = new GmailBubble({\n operation: \"create_label\", // Create a new custom label\n name: \"example string\", // Label name (display name)\n label_list_visibility: \"labelShow\" // options: \"labelShow\", \"labelShowIfUnread\", \"labelHide\", // Visibility in label list\n message_list_visibility: \"show\" // options: \"show\", \"hide\", // Visibility in message list\n background_color: \"example string\", // Background color in hex format (e.g., #000000)\n text_color: \"example string\", // Text color in hex format (e.g., #ffffff)\n});\n\nconst result = await gmail_create_label.action();\n// outputSchema for result.data when operation === 'create_label':\n// {\n// operation: \"create_label\" // Create a new custom label,\n// success: boolean // Whether the label was created successfully,\n// label: { id: string // Label ID, name: string // Label name, type: \"system\" | \"user\" | undefined // Label type: system (built-in) or user (custom), messageListVisibility: \"show\" | \"hide\" | undefined // Visibility in message list, labelListVisibility: \"labelShow\" | \"labelShowIfUnread\" | \"labelHide\" | undefined // Visibility in label list } | undefined // Created label details,\n// error: string // Error message if operation failed\n// }\n\n\n// Modify Message Labels example\nconst gmail_modify_message_labels = new GmailBubble({\n operation: \"modify_message_labels\", // Add or remove labels from a message\n message_id: \"example string\", // Gmail message ID to modify\n add_label_ids: [\"example string\"], // List of label IDs to add (max 100)\n remove_label_ids: [\"example string\"], // List of label IDs to remove (max 100)\n});\n\nconst result = await gmail_modify_message_labels.action();\n// outputSchema for result.data when operation === 'modify_message_labels':\n// {\n// operation: \"modify_message_labels\" // Add or remove labels from a message,\n// success: boolean // Whether the labels were modified successfully,\n// message_id: string | undefined // Modified message ID,\n// label_ids: string[] | undefined // Current label IDs after modification,\n// error: string // Error message if operation failed\n// }\n\n\n// Modify Thread Labels example\nconst gmail_modify_thread_labels = new GmailBubble({\n operation: \"modify_thread_labels\", // Add or remove labels from all messages in a thread\n thread_id: \"example string\", // Gmail thread ID to modify\n add_label_ids: [\"example string\"], // List of label IDs to add to all messages in thread (max 100)\n remove_label_ids: [\"example string\"], // List of label IDs to remove from all messages in thread (max 100)\n});\n\nconst result = await gmail_modify_thread_labels.action();\n// outputSchema for result.data when operation === 'modify_thread_labels':\n// {\n// operation: \"modify_thread_labels\" // Add or remove labels from all messages in a thread,\n// success: boolean // Whether the thread labels were modified successfully,\n// thread_id: string | undefined // Modified thread ID,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Attachment example\nconst gmail_get_attachment = new GmailBubble({\n operation: \"get_attachment\", // Download an attachment from an email message\n message_id: \"example string\", // Gmail message ID that contains the attachment\n attachment_id: \"example string\", // Attachment ID from the message payload (found in body.attachmentId of attachment parts)\n});\n\nconst result = await gmail_get_attachment.action();\n// outputSchema for result.data when operation === 'get_attachment':\n// {\n// operation: \"get_attachment\" // Download an attachment from an email message,\n// success: boolean // Whether the attachment was downloaded successfully,\n// data: string | undefined // Base64-encoded attachment content,\n// size: number | undefined // Attachment size in bytes,\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(`gmail failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
12204
12293
|
"requiredCredentials": [
|
|
12205
12294
|
"GMAIL_CRED"
|
|
12206
12295
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bubblelab/bubble-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.235",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"puppeteer-core": "^24.10.0",
|
|
42
42
|
"resend": "^4.8.0",
|
|
43
43
|
"zod": "^3.24.1",
|
|
44
|
-
"@bubblelab/shared-schemas": "0.1.
|
|
44
|
+
"@bubblelab/shared-schemas": "0.1.235"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@types/node": "^20.12.12",
|