@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
|
@@ -22,12 +22,12 @@ declare const HelloWorldResultSchema: z.ZodObject<{
|
|
|
22
22
|
success: z.ZodBoolean;
|
|
23
23
|
error: z.ZodString;
|
|
24
24
|
}, "strip", z.ZodTypeAny, {
|
|
25
|
-
error: string;
|
|
26
25
|
success: boolean;
|
|
26
|
+
error: string;
|
|
27
27
|
greeting: string;
|
|
28
28
|
}, {
|
|
29
|
-
error: string;
|
|
30
29
|
success: boolean;
|
|
30
|
+
error: string;
|
|
31
31
|
greeting: string;
|
|
32
32
|
}>;
|
|
33
33
|
type HelloWorldResult = z.output<typeof HelloWorldResultSchema>;
|
|
@@ -54,12 +54,12 @@ export declare class HelloWorldBubble extends ServiceBubble<HelloWorldParams, He
|
|
|
54
54
|
success: z.ZodBoolean;
|
|
55
55
|
error: z.ZodString;
|
|
56
56
|
}, "strip", z.ZodTypeAny, {
|
|
57
|
-
error: string;
|
|
58
57
|
success: boolean;
|
|
58
|
+
error: string;
|
|
59
59
|
greeting: string;
|
|
60
60
|
}, {
|
|
61
|
-
error: string;
|
|
62
61
|
success: boolean;
|
|
62
|
+
error: string;
|
|
63
63
|
greeting: string;
|
|
64
64
|
}>;
|
|
65
65
|
static readonly shortDescription = "Simple hello world bubble for testing purposes";
|
|
@@ -11,27 +11,30 @@ declare const HttpParamsSchema: z.ZodObject<{
|
|
|
11
11
|
followRedirects: z.ZodDefault<z.ZodBoolean>;
|
|
12
12
|
authType: z.ZodDefault<z.ZodEnum<["none", "bearer", "basic", "api-key", "api-key-header", "custom"]>>;
|
|
13
13
|
authHeader: z.ZodOptional<z.ZodString>;
|
|
14
|
+
responseType: z.ZodDefault<z.ZodEnum<["auto", "text", "binary"]>>;
|
|
14
15
|
credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
|
|
15
16
|
}, "strip", z.ZodTypeAny, {
|
|
16
17
|
url: string;
|
|
18
|
+
method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
|
|
17
19
|
timeout: number;
|
|
18
|
-
method: "POST" | "DELETE" | "GET" | "PUT" | "PATCH" | "HEAD" | "OPTIONS";
|
|
19
20
|
followRedirects: boolean;
|
|
20
|
-
authType: "
|
|
21
|
-
|
|
21
|
+
authType: "custom" | "none" | "bearer" | "basic" | "api-key" | "api-key-header";
|
|
22
|
+
responseType: "binary" | "auto" | "text";
|
|
22
23
|
headers?: Record<string, string> | undefined;
|
|
23
24
|
body?: string | Record<string, unknown> | undefined;
|
|
24
25
|
authHeader?: string | undefined;
|
|
26
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
25
27
|
}, {
|
|
26
28
|
url: string;
|
|
27
|
-
|
|
28
|
-
timeout?: number | undefined;
|
|
29
|
+
method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS" | undefined;
|
|
29
30
|
headers?: Record<string, string> | undefined;
|
|
30
|
-
method?: "POST" | "DELETE" | "GET" | "PUT" | "PATCH" | "HEAD" | "OPTIONS" | undefined;
|
|
31
31
|
body?: string | Record<string, unknown> | undefined;
|
|
32
|
+
timeout?: number | undefined;
|
|
32
33
|
followRedirects?: boolean | undefined;
|
|
33
|
-
authType?: "
|
|
34
|
+
authType?: "custom" | "none" | "bearer" | "basic" | "api-key" | "api-key-header" | undefined;
|
|
34
35
|
authHeader?: string | undefined;
|
|
36
|
+
responseType?: "binary" | "auto" | "text" | undefined;
|
|
37
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
35
38
|
}>;
|
|
36
39
|
type HttpParamsInput = z.input<typeof HttpParamsSchema>;
|
|
37
40
|
type HttpParams = z.output<typeof HttpParamsSchema>;
|
|
@@ -40,6 +43,8 @@ declare const HttpResultSchema: z.ZodObject<{
|
|
|
40
43
|
statusText: z.ZodString;
|
|
41
44
|
headers: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
42
45
|
body: z.ZodString;
|
|
46
|
+
isBase64: z.ZodBoolean;
|
|
47
|
+
contentType: z.ZodString;
|
|
43
48
|
json: z.ZodOptional<z.ZodUnknown>;
|
|
44
49
|
success: z.ZodBoolean;
|
|
45
50
|
error: z.ZodString;
|
|
@@ -47,23 +52,27 @@ declare const HttpResultSchema: z.ZodObject<{
|
|
|
47
52
|
size: z.ZodNumber;
|
|
48
53
|
}, "strip", z.ZodTypeAny, {
|
|
49
54
|
status: number;
|
|
50
|
-
error: string;
|
|
51
|
-
success: boolean;
|
|
52
55
|
headers: Record<string, string>;
|
|
53
|
-
size: number;
|
|
54
56
|
body: string;
|
|
57
|
+
isBase64: boolean;
|
|
55
58
|
statusText: string;
|
|
59
|
+
contentType: string;
|
|
60
|
+
success: boolean;
|
|
61
|
+
error: string;
|
|
56
62
|
responseTime: number;
|
|
63
|
+
size: number;
|
|
57
64
|
json?: unknown;
|
|
58
65
|
}, {
|
|
59
66
|
status: number;
|
|
60
|
-
error: string;
|
|
61
|
-
success: boolean;
|
|
62
67
|
headers: Record<string, string>;
|
|
63
|
-
size: number;
|
|
64
68
|
body: string;
|
|
69
|
+
isBase64: boolean;
|
|
65
70
|
statusText: string;
|
|
71
|
+
contentType: string;
|
|
72
|
+
success: boolean;
|
|
73
|
+
error: string;
|
|
66
74
|
responseTime: number;
|
|
75
|
+
size: number;
|
|
67
76
|
json?: unknown;
|
|
68
77
|
}>;
|
|
69
78
|
type HttpResult = z.output<typeof HttpResultSchema>;
|
|
@@ -81,33 +90,38 @@ export declare class HttpBubble extends ServiceBubble<HttpParams, HttpResult> {
|
|
|
81
90
|
followRedirects: z.ZodDefault<z.ZodBoolean>;
|
|
82
91
|
authType: z.ZodDefault<z.ZodEnum<["none", "bearer", "basic", "api-key", "api-key-header", "custom"]>>;
|
|
83
92
|
authHeader: z.ZodOptional<z.ZodString>;
|
|
93
|
+
responseType: z.ZodDefault<z.ZodEnum<["auto", "text", "binary"]>>;
|
|
84
94
|
credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
|
|
85
95
|
}, "strip", z.ZodTypeAny, {
|
|
86
96
|
url: string;
|
|
97
|
+
method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
|
|
87
98
|
timeout: number;
|
|
88
|
-
method: "POST" | "DELETE" | "GET" | "PUT" | "PATCH" | "HEAD" | "OPTIONS";
|
|
89
99
|
followRedirects: boolean;
|
|
90
|
-
authType: "
|
|
91
|
-
|
|
100
|
+
authType: "custom" | "none" | "bearer" | "basic" | "api-key" | "api-key-header";
|
|
101
|
+
responseType: "binary" | "auto" | "text";
|
|
92
102
|
headers?: Record<string, string> | undefined;
|
|
93
103
|
body?: string | Record<string, unknown> | undefined;
|
|
94
104
|
authHeader?: string | undefined;
|
|
105
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
95
106
|
}, {
|
|
96
107
|
url: string;
|
|
97
|
-
|
|
98
|
-
timeout?: number | undefined;
|
|
108
|
+
method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS" | undefined;
|
|
99
109
|
headers?: Record<string, string> | undefined;
|
|
100
|
-
method?: "POST" | "DELETE" | "GET" | "PUT" | "PATCH" | "HEAD" | "OPTIONS" | undefined;
|
|
101
110
|
body?: string | Record<string, unknown> | undefined;
|
|
111
|
+
timeout?: number | undefined;
|
|
102
112
|
followRedirects?: boolean | undefined;
|
|
103
|
-
authType?: "
|
|
113
|
+
authType?: "custom" | "none" | "bearer" | "basic" | "api-key" | "api-key-header" | undefined;
|
|
104
114
|
authHeader?: string | undefined;
|
|
115
|
+
responseType?: "binary" | "auto" | "text" | undefined;
|
|
116
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
105
117
|
}>;
|
|
106
118
|
static readonly resultSchema: z.ZodObject<{
|
|
107
119
|
status: z.ZodNumber;
|
|
108
120
|
statusText: z.ZodString;
|
|
109
121
|
headers: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
110
122
|
body: z.ZodString;
|
|
123
|
+
isBase64: z.ZodBoolean;
|
|
124
|
+
contentType: z.ZodString;
|
|
111
125
|
json: z.ZodOptional<z.ZodUnknown>;
|
|
112
126
|
success: z.ZodBoolean;
|
|
113
127
|
error: z.ZodString;
|
|
@@ -115,23 +129,27 @@ export declare class HttpBubble extends ServiceBubble<HttpParams, HttpResult> {
|
|
|
115
129
|
size: z.ZodNumber;
|
|
116
130
|
}, "strip", z.ZodTypeAny, {
|
|
117
131
|
status: number;
|
|
118
|
-
error: string;
|
|
119
|
-
success: boolean;
|
|
120
132
|
headers: Record<string, string>;
|
|
121
|
-
size: number;
|
|
122
133
|
body: string;
|
|
134
|
+
isBase64: boolean;
|
|
123
135
|
statusText: string;
|
|
136
|
+
contentType: string;
|
|
137
|
+
success: boolean;
|
|
138
|
+
error: string;
|
|
124
139
|
responseTime: number;
|
|
140
|
+
size: number;
|
|
125
141
|
json?: unknown;
|
|
126
142
|
}, {
|
|
127
143
|
status: number;
|
|
128
|
-
error: string;
|
|
129
|
-
success: boolean;
|
|
130
144
|
headers: Record<string, string>;
|
|
131
|
-
size: number;
|
|
132
145
|
body: string;
|
|
146
|
+
isBase64: boolean;
|
|
133
147
|
statusText: string;
|
|
148
|
+
contentType: string;
|
|
149
|
+
success: boolean;
|
|
150
|
+
error: string;
|
|
134
151
|
responseTime: number;
|
|
152
|
+
size: number;
|
|
135
153
|
json?: unknown;
|
|
136
154
|
}>;
|
|
137
155
|
static readonly shortDescription = "Makes HTTP requests to external APIs and services";
|
|
@@ -141,6 +159,11 @@ export declare class HttpBubble extends ServiceBubble<HttpParams, HttpResult> {
|
|
|
141
159
|
protected chooseCredential(): string | undefined;
|
|
142
160
|
testCredential(): Promise<boolean>;
|
|
143
161
|
protected performAction(context?: BubbleContext): Promise<HttpResult>;
|
|
162
|
+
/**
|
|
163
|
+
* Determines if a Content-Type represents text content (as opposed to binary).
|
|
164
|
+
* Binary content will be base64-encoded in the response body.
|
|
165
|
+
*/
|
|
166
|
+
private isTextMimeType;
|
|
144
167
|
}
|
|
145
168
|
export {};
|
|
146
169
|
//# sourceMappingURL=http.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/bubbles/service-bubble/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAc5E,QAAA,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/bubbles/service-bubble/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAc5E,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDpB,CAAC;AAEH,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AACxD,KAAK,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAGpD,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BpB,CAAC;AAEH,KAAK,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEpD,qBAAa,UAAW,SAAQ,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC;IACnE,MAAM,CAAC,QAAQ,CAAC,OAAO,gBAAgB;IACvC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IAC7C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAU;IAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoB;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoB;IAChD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,uDACsB;IACtD,MAAM,CAAC,QAAQ,CAAC,eAAe,orBAkB7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;gBAG9B,MAAM,GAAE,eAGP,EACD,OAAO,CAAC,EAAE,aAAa;IAKzB,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAenC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;cAM/B,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAuK3E;;;OAGG;IACH,OAAO,CAAC,cAAc;CA4BvB"}
|
|
@@ -44,6 +44,10 @@ const HttpParamsSchema = z.object({
|
|
|
44
44
|
.string()
|
|
45
45
|
.optional()
|
|
46
46
|
.describe('Custom header name when authType is "custom" (e.g., "X-Custom-Auth")'),
|
|
47
|
+
responseType: z
|
|
48
|
+
.enum(['auto', 'text', 'binary'])
|
|
49
|
+
.default('auto')
|
|
50
|
+
.describe('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.'),
|
|
47
51
|
credentials: z
|
|
48
52
|
.record(z.nativeEnum(CredentialType), z.string())
|
|
49
53
|
.optional()
|
|
@@ -54,14 +58,24 @@ const HttpResultSchema = z.object({
|
|
|
54
58
|
status: z.number().describe('HTTP status code'),
|
|
55
59
|
statusText: z.string().describe('HTTP status text'),
|
|
56
60
|
headers: z.record(z.string()).describe('Response headers'),
|
|
57
|
-
body: z
|
|
61
|
+
body: z
|
|
62
|
+
.string()
|
|
63
|
+
.describe('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.'),
|
|
64
|
+
isBase64: z
|
|
65
|
+
.boolean()
|
|
66
|
+
.describe('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).'),
|
|
67
|
+
contentType: z
|
|
68
|
+
.string()
|
|
69
|
+
.describe('Response Content-Type (e.g., application/pdf, text/html). Pass to downstream tools as mimeType/contentType.'),
|
|
58
70
|
json: z.unknown().optional().describe('Parsed JSON response (if applicable)'),
|
|
59
71
|
success: z
|
|
60
72
|
.boolean()
|
|
61
73
|
.describe('Whether the request was successful (HTTP 2xx status codes)'),
|
|
62
74
|
error: z.string().describe('Error message if request failed'),
|
|
63
75
|
responseTime: z.number().describe('Response time in milliseconds'),
|
|
64
|
-
size: z
|
|
76
|
+
size: z
|
|
77
|
+
.number()
|
|
78
|
+
.describe('Raw response size in bytes (before base64 encoding, if applicable)'),
|
|
65
79
|
});
|
|
66
80
|
export class HttpBubble extends ServiceBubble {
|
|
67
81
|
static service = 'nodex-core';
|
|
@@ -179,18 +193,44 @@ export class HttpBubble extends ServiceBubble {
|
|
|
179
193
|
const response = await fetch(url, requestOptions);
|
|
180
194
|
clearTimeout(timeoutId); // Clear timeout if request completes
|
|
181
195
|
const responseTime = Date.now() - startTime;
|
|
182
|
-
//
|
|
183
|
-
const
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
196
|
+
// Determine binary vs text handling
|
|
197
|
+
const rawContentType = response.headers.get('content-type') ?? '';
|
|
198
|
+
const responseTypeParam = this.params.responseType ?? 'auto';
|
|
199
|
+
let isBinary;
|
|
200
|
+
if (responseTypeParam === 'binary') {
|
|
201
|
+
isBinary = true;
|
|
202
|
+
}
|
|
203
|
+
else if (responseTypeParam === 'text') {
|
|
204
|
+
isBinary = false;
|
|
189
205
|
}
|
|
190
|
-
|
|
191
|
-
|
|
206
|
+
else {
|
|
207
|
+
isBinary = !this.isTextMimeType(rawContentType);
|
|
208
|
+
}
|
|
209
|
+
// Read response body based on detected type
|
|
210
|
+
let responseBody;
|
|
211
|
+
let responseSize;
|
|
212
|
+
let jsonResponse;
|
|
213
|
+
if (isBinary) {
|
|
214
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
215
|
+
responseSize = arrayBuffer.byteLength;
|
|
216
|
+
responseBody =
|
|
217
|
+
arrayBuffer.byteLength > 0
|
|
218
|
+
? Buffer.from(arrayBuffer).toString('base64')
|
|
219
|
+
: '';
|
|
192
220
|
jsonResponse = undefined;
|
|
193
221
|
}
|
|
222
|
+
else {
|
|
223
|
+
responseBody = await response.text();
|
|
224
|
+
responseSize = new Blob([responseBody]).size;
|
|
225
|
+
try {
|
|
226
|
+
jsonResponse = JSON.parse(responseBody);
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
jsonResponse = undefined;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
// Clean Content-Type for result (strip charset and other params)
|
|
233
|
+
const cleanContentType = rawContentType.split(';')[0].trim();
|
|
194
234
|
// Convert headers to plain object
|
|
195
235
|
const responseHeaders = {};
|
|
196
236
|
response.headers.forEach((value, key) => {
|
|
@@ -200,7 +240,9 @@ export class HttpBubble extends ServiceBubble {
|
|
|
200
240
|
status: response.status,
|
|
201
241
|
statusText: response.statusText,
|
|
202
242
|
headers: responseHeaders,
|
|
203
|
-
body:
|
|
243
|
+
body: responseBody,
|
|
244
|
+
isBase64: isBinary,
|
|
245
|
+
contentType: cleanContentType,
|
|
204
246
|
json: jsonResponse,
|
|
205
247
|
success: response.ok,
|
|
206
248
|
error: response.ok
|
|
@@ -221,6 +263,8 @@ export class HttpBubble extends ServiceBubble {
|
|
|
221
263
|
statusText: 'Request Failed',
|
|
222
264
|
headers: {},
|
|
223
265
|
body: '',
|
|
266
|
+
isBase64: false,
|
|
267
|
+
contentType: '',
|
|
224
268
|
json: undefined,
|
|
225
269
|
success: false,
|
|
226
270
|
error: errorMessage,
|
|
@@ -229,5 +273,36 @@ export class HttpBubble extends ServiceBubble {
|
|
|
229
273
|
};
|
|
230
274
|
}
|
|
231
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
* Determines if a Content-Type represents text content (as opposed to binary).
|
|
278
|
+
* Binary content will be base64-encoded in the response body.
|
|
279
|
+
*/
|
|
280
|
+
isTextMimeType(rawContentType) {
|
|
281
|
+
if (!rawContentType)
|
|
282
|
+
return true; // default to text for backward compat
|
|
283
|
+
// Strip charset and other params: "text/html; charset=utf-8" → "text/html"
|
|
284
|
+
const mimeType = rawContentType.split(';')[0].trim().toLowerCase();
|
|
285
|
+
// Text prefixes
|
|
286
|
+
if (mimeType.startsWith('text/'))
|
|
287
|
+
return true;
|
|
288
|
+
// Explicit text types
|
|
289
|
+
const textTypes = [
|
|
290
|
+
'application/json',
|
|
291
|
+
'application/xml',
|
|
292
|
+
'application/javascript',
|
|
293
|
+
'application/typescript',
|
|
294
|
+
'application/x-sh',
|
|
295
|
+
'application/x-yaml',
|
|
296
|
+
'application/x-toml',
|
|
297
|
+
'application/csv',
|
|
298
|
+
'application/x-www-form-urlencoded',
|
|
299
|
+
];
|
|
300
|
+
if (textTypes.includes(mimeType))
|
|
301
|
+
return true;
|
|
302
|
+
// Structured syntax suffixes (e.g., application/vnd.api+json, application/soap+xml)
|
|
303
|
+
if (mimeType.endsWith('+json') || mimeType.endsWith('+xml'))
|
|
304
|
+
return true;
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
232
307
|
}
|
|
233
308
|
//# sourceMappingURL=http.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/bubbles/service-bubble/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAmB,MAAM,2BAA2B,CAAC;AAE5E,oBAAoB;AACpB,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9B,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,QAAQ;IACR,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAEH,mDAAmD;AACnD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,CAAC,qBAAqB,CAAC;SAC1B,QAAQ,CAAC,qCAAqC,CAAC;IAClD,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAC9C,mCAAmC,CACpC;IACD,OAAO,EAAE,CAAC;SACP,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAClB,QAAQ,EAAE;SACV,QAAQ,CAAC,wCAAwC,CAAC;IACrD,IAAI,EAAE,CAAC;SACJ,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;SAC1C,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;IACnD,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,IAAI,CAAC;SACT,GAAG,CAAC,MAAM,CAAC;SACX,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,+DAA+D,CAAC;IAC5E,eAAe,EAAE,CAAC;SACf,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;SACxE,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CACP,kLAAkL,CACnL;IACH,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sEAAsE,CACvE;IACH,WAAW,EAAE,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAChD,QAAQ,EAAE;SACV,QAAQ,CAAC,+DAA+D,CAAC;CAC7E,CAAC,CAAC;AAKH,0CAA0C;AAC1C,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACnD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC1D,IAAI,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/bubbles/service-bubble/http.ts"],"names":[],"mappings":"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"}
|