@bubblelab/bubble-core 0.1.8 → 0.1.9

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 (160) hide show
  1. package/dist/bubble-bundle.d.ts +625 -296
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +13 -9
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubbles/service-bubble/ai-agent.d.ts +135 -117
  6. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  7. package/dist/bubbles/service-bubble/ai-agent.js +273 -95
  8. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
  9. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +805 -0
  10. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts.map +1 -0
  11. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.js +131 -0
  12. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.js.map +1 -0
  13. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +485 -0
  14. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts.map +1 -0
  15. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.js +176 -0
  16. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.js.map +1 -0
  17. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +302 -0
  18. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts.map +1 -0
  19. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.js +138 -0
  20. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.js.map +1 -0
  21. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +642 -0
  22. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts.map +1 -0
  23. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.js +123 -0
  24. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.js.map +1 -0
  25. package/dist/bubbles/service-bubble/apify/api-scraper.schema.d.ts +370 -0
  26. package/dist/bubbles/service-bubble/apify/api-scraper.schema.d.ts.map +1 -0
  27. package/dist/bubbles/service-bubble/apify/api-scraper.schema.js +14 -0
  28. package/dist/bubbles/service-bubble/apify/api-scraper.schema.js.map +1 -0
  29. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +1770 -0
  30. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts.map +1 -0
  31. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js +38 -0
  32. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js.map +1 -0
  33. package/dist/bubbles/service-bubble/apify/apify.d.ts +143 -0
  34. package/dist/bubbles/service-bubble/apify/apify.d.ts.map +1 -0
  35. package/dist/bubbles/service-bubble/apify/apify.js +276 -0
  36. package/dist/bubbles/service-bubble/apify/apify.js.map +1 -0
  37. package/dist/bubbles/service-bubble/apify/index.d.ts +4 -0
  38. package/dist/bubbles/service-bubble/apify/index.d.ts.map +1 -0
  39. package/dist/bubbles/service-bubble/apify/index.js +3 -0
  40. package/dist/bubbles/service-bubble/apify/index.js.map +1 -0
  41. package/dist/bubbles/service-bubble/apify/types.d.ts +7 -0
  42. package/dist/bubbles/service-bubble/apify/types.d.ts.map +1 -0
  43. package/dist/bubbles/service-bubble/apify/types.js +6 -0
  44. package/dist/bubbles/service-bubble/apify/types.js.map +1 -0
  45. package/dist/bubbles/service-bubble/apify.d.ts +136 -0
  46. package/dist/bubbles/service-bubble/apify.d.ts.map +1 -0
  47. package/dist/bubbles/service-bubble/apify.js +282 -0
  48. package/dist/bubbles/service-bubble/apify.js.map +1 -0
  49. package/dist/bubbles/service-bubble/gmail.d.ts +52 -52
  50. package/dist/bubbles/service-bubble/google-calendar.d.ts +24 -24
  51. package/dist/bubbles/service-bubble/google-drive.d.ts +68 -68
  52. package/dist/bubbles/service-bubble/google-sheets.d.ts +64 -64
  53. package/dist/bubbles/service-bubble/hello-world.d.ts +4 -4
  54. package/dist/bubbles/service-bubble/http.d.ts +4 -4
  55. package/dist/bubbles/service-bubble/postgresql.d.ts +12 -12
  56. package/dist/bubbles/service-bubble/resend.d.ts +13 -13
  57. package/dist/bubbles/service-bubble/resend.d.ts.map +1 -1
  58. package/dist/bubbles/service-bubble/resend.js +16 -5
  59. package/dist/bubbles/service-bubble/resend.js.map +1 -1
  60. package/dist/bubbles/service-bubble/slack.d.ts +462 -462
  61. package/dist/bubbles/service-bubble/storage.d.ts +32 -32
  62. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +12 -12
  63. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +14 -1
  64. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts.map +1 -1
  65. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js +85 -39
  66. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js.map +1 -1
  67. package/dist/bubbles/tool-bubble/instagram-tool.d.ts +435 -0
  68. package/dist/bubbles/tool-bubble/instagram-tool.d.ts.map +1 -0
  69. package/dist/bubbles/tool-bubble/instagram-tool.js +474 -0
  70. package/dist/bubbles/tool-bubble/instagram-tool.js.map +1 -0
  71. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +2136 -0
  72. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts.map +1 -0
  73. package/dist/bubbles/tool-bubble/linkedin-tool.js +608 -0
  74. package/dist/bubbles/tool-bubble/linkedin-tool.js.map +1 -0
  75. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +14 -14
  76. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +6 -6
  77. package/dist/bubbles/tool-bubble/research-agent-tool.js +1 -1
  78. package/dist/bubbles/tool-bubble/research-agent-tool.js.map +1 -1
  79. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
  80. package/dist/bubbles/tool-bubble/tool-template.d.ts +4 -4
  81. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +4 -4
  82. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +8 -8
  83. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +16 -16
  84. package/dist/bubbles/tool-bubble/web-scrape-tool.js +1 -1
  85. package/dist/bubbles/tool-bubble/web-scrape-tool.js.map +1 -1
  86. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +10 -10
  87. package/dist/bubbles/tool-bubble/web-search-tool.js +1 -1
  88. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts.map +1 -1
  89. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js +5 -0
  90. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js.map +1 -1
  91. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +4 -4
  92. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +78 -78
  93. package/dist/bubbles/workflow-bubble/generate-document.workflow.js +1 -1
  94. package/dist/bubbles/workflow-bubble/generate-document.workflow.js.map +1 -1
  95. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +50 -50
  96. package/dist/bubbles/workflow-bubble/parse-document.workflow.js +1 -1
  97. package/dist/bubbles/workflow-bubble/parse-document.workflow.js.map +1 -1
  98. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +42 -42
  99. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts.map +1 -1
  100. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js +1 -4
  101. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js.map +1 -1
  102. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +36 -36
  103. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js +1 -1
  104. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js.map +1 -1
  105. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +40 -40
  106. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js +1 -1
  107. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js.map +1 -1
  108. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +34 -34
  109. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js +1 -1
  110. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js.map +1 -1
  111. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +10 -10
  112. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts.map +1 -1
  113. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js +1 -2
  114. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js.map +1 -1
  115. package/dist/bubbles.json +474 -0
  116. package/dist/index.d.ts +12 -1
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +6 -0
  119. package/dist/index.js.map +1 -1
  120. package/dist/logging/BubbleLogger.d.ts +11 -0
  121. package/dist/logging/BubbleLogger.d.ts.map +1 -1
  122. package/dist/logging/BubbleLogger.js +69 -22
  123. package/dist/logging/BubbleLogger.js.map +1 -1
  124. package/dist/logging/StreamingBubbleLogger.d.ts.map +1 -1
  125. package/dist/logging/StreamingBubbleLogger.js +18 -11
  126. package/dist/logging/StreamingBubbleLogger.js.map +1 -1
  127. package/dist/types/ai-models.d.ts +1 -1
  128. package/dist/types/ai-models.d.ts.map +1 -1
  129. package/dist/types/ai-models.js +4 -0
  130. package/dist/types/ai-models.js.map +1 -1
  131. package/dist/types/api-scraper.schema.d.ts +453 -0
  132. package/dist/types/api-scraper.schema.d.ts.map +1 -0
  133. package/dist/types/api-scraper.schema.js +160 -0
  134. package/dist/types/api-scraper.schema.js.map +1 -0
  135. package/dist/types/available-tools.d.ts +1 -1
  136. package/dist/types/available-tools.d.ts.map +1 -1
  137. package/dist/types/available-tools.js +2 -0
  138. package/dist/types/available-tools.js.map +1 -1
  139. package/dist/types/base-bubble-class.d.ts +5 -0
  140. package/dist/types/base-bubble-class.d.ts.map +1 -1
  141. package/dist/types/base-bubble-class.js +18 -3
  142. package/dist/types/base-bubble-class.js.map +1 -1
  143. package/dist/types/bubble.d.ts +2 -3
  144. package/dist/types/bubble.d.ts.map +1 -1
  145. package/dist/types/service-bubble-class.d.ts +4 -4
  146. package/dist/types/service-bubble-class.d.ts.map +1 -1
  147. package/dist/types/service-bubble-class.js +6 -7
  148. package/dist/types/service-bubble-class.js.map +1 -1
  149. package/dist/types/tool-bubble-class.d.ts.map +1 -1
  150. package/dist/types/tool-bubble-class.js +9 -1
  151. package/dist/types/tool-bubble-class.js.map +1 -1
  152. package/dist/utils/agent-formatter.d.ts +17 -0
  153. package/dist/utils/agent-formatter.d.ts.map +1 -0
  154. package/dist/utils/agent-formatter.js +139 -0
  155. package/dist/utils/agent-formatter.js.map +1 -0
  156. package/dist/utils/json-parsing.d.ts +1 -0
  157. package/dist/utils/json-parsing.d.ts.map +1 -1
  158. package/dist/utils/json-parsing.js +205 -32
  159. package/dist/utils/json-parsing.js.map +1 -1
  160. package/package.json +4 -3
@@ -0,0 +1,453 @@
1
+ import { z } from 'zod';
2
+ export declare const APIFY_ACTOR_SCHEMAS: {
3
+ readonly 'apify/instagram-scraper': {
4
+ readonly input: z.ZodObject<{
5
+ directUrls: z.ZodArray<z.ZodString, "many">;
6
+ resultsType: z.ZodDefault<z.ZodEnum<["posts", "details"]>>;
7
+ resultsLimit: z.ZodDefault<z.ZodNumber>;
8
+ includeStories: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
9
+ includeHighlights: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ directUrls: string[];
12
+ resultsType: "posts" | "details";
13
+ resultsLimit: number;
14
+ includeStories?: boolean | undefined;
15
+ includeHighlights?: boolean | undefined;
16
+ }, {
17
+ directUrls: string[];
18
+ resultsType?: "posts" | "details" | undefined;
19
+ resultsLimit?: number | undefined;
20
+ includeStories?: boolean | undefined;
21
+ includeHighlights?: boolean | undefined;
22
+ }>;
23
+ readonly output: z.ZodObject<{
24
+ username: z.ZodOptional<z.ZodString>;
25
+ fullName: z.ZodOptional<z.ZodString>;
26
+ biography: z.ZodOptional<z.ZodString>;
27
+ followersCount: z.ZodOptional<z.ZodNumber>;
28
+ followingCount: z.ZodOptional<z.ZodNumber>;
29
+ followsCount: z.ZodOptional<z.ZodNumber>;
30
+ postsCount: z.ZodOptional<z.ZodNumber>;
31
+ verified: z.ZodOptional<z.ZodBoolean>;
32
+ isVerified: z.ZodOptional<z.ZodBoolean>;
33
+ isPrivate: z.ZodOptional<z.ZodBoolean>;
34
+ profilePicUrl: z.ZodOptional<z.ZodString>;
35
+ profilePicture: z.ZodOptional<z.ZodString>;
36
+ externalUrl: z.ZodOptional<z.ZodString>;
37
+ latestPosts: z.ZodOptional<z.ZodArray<z.ZodObject<{
38
+ url: z.ZodString;
39
+ shortCode: z.ZodOptional<z.ZodString>;
40
+ caption: z.ZodOptional<z.ZodString>;
41
+ likesCount: z.ZodOptional<z.ZodNumber>;
42
+ commentsCount: z.ZodOptional<z.ZodNumber>;
43
+ ownerUsername: z.ZodOptional<z.ZodString>;
44
+ ownerFullName: z.ZodOptional<z.ZodString>;
45
+ timestamp: z.ZodOptional<z.ZodString>;
46
+ type: z.ZodOptional<z.ZodNullable<z.ZodEnum<["image", "video", "carousel"]>>>;
47
+ displayUrl: z.ZodOptional<z.ZodString>;
48
+ hashtags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
49
+ mentions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
50
+ location: z.ZodOptional<z.ZodNullable<z.ZodObject<{
51
+ name: z.ZodOptional<z.ZodString>;
52
+ id: z.ZodOptional<z.ZodString>;
53
+ }, "strip", z.ZodTypeAny, {
54
+ name?: string | undefined;
55
+ id?: string | undefined;
56
+ }, {
57
+ name?: string | undefined;
58
+ id?: string | undefined;
59
+ }>>>;
60
+ }, "strip", z.ZodTypeAny, {
61
+ url: string;
62
+ type?: "image" | "video" | "carousel" | null | undefined;
63
+ shortCode?: string | undefined;
64
+ caption?: string | undefined;
65
+ likesCount?: number | undefined;
66
+ commentsCount?: number | undefined;
67
+ ownerUsername?: string | undefined;
68
+ ownerFullName?: string | undefined;
69
+ timestamp?: string | undefined;
70
+ displayUrl?: string | undefined;
71
+ hashtags?: string[] | undefined;
72
+ mentions?: string[] | undefined;
73
+ location?: {
74
+ name?: string | undefined;
75
+ id?: string | undefined;
76
+ } | null | undefined;
77
+ }, {
78
+ url: string;
79
+ type?: "image" | "video" | "carousel" | null | undefined;
80
+ shortCode?: string | undefined;
81
+ caption?: string | undefined;
82
+ likesCount?: number | undefined;
83
+ commentsCount?: number | undefined;
84
+ ownerUsername?: string | undefined;
85
+ ownerFullName?: string | undefined;
86
+ timestamp?: string | undefined;
87
+ displayUrl?: string | undefined;
88
+ hashtags?: string[] | undefined;
89
+ mentions?: string[] | undefined;
90
+ location?: {
91
+ name?: string | undefined;
92
+ id?: string | undefined;
93
+ } | null | undefined;
94
+ }>, "many">>;
95
+ stories: z.ZodOptional<z.ZodArray<z.ZodObject<{
96
+ url: z.ZodOptional<z.ZodString>;
97
+ timestamp: z.ZodOptional<z.ZodString>;
98
+ type: z.ZodOptional<z.ZodEnum<["image", "video"]>>;
99
+ viewsCount: z.ZodOptional<z.ZodNumber>;
100
+ }, "strip", z.ZodTypeAny, {
101
+ type?: "image" | "video" | undefined;
102
+ url?: string | undefined;
103
+ timestamp?: string | undefined;
104
+ viewsCount?: number | undefined;
105
+ }, {
106
+ type?: "image" | "video" | undefined;
107
+ url?: string | undefined;
108
+ timestamp?: string | undefined;
109
+ viewsCount?: number | undefined;
110
+ }>, "many">>;
111
+ highlights: z.ZodOptional<z.ZodArray<z.ZodObject<{
112
+ title: z.ZodOptional<z.ZodString>;
113
+ coverUrl: z.ZodOptional<z.ZodString>;
114
+ itemsCount: z.ZodOptional<z.ZodNumber>;
115
+ }, "strip", z.ZodTypeAny, {
116
+ title?: string | undefined;
117
+ coverUrl?: string | undefined;
118
+ itemsCount?: number | undefined;
119
+ }, {
120
+ title?: string | undefined;
121
+ coverUrl?: string | undefined;
122
+ itemsCount?: number | undefined;
123
+ }>, "many">>;
124
+ }, "strip", z.ZodTypeAny, {
125
+ username?: string | undefined;
126
+ fullName?: string | undefined;
127
+ biography?: string | undefined;
128
+ followersCount?: number | undefined;
129
+ followingCount?: number | undefined;
130
+ followsCount?: number | undefined;
131
+ postsCount?: number | undefined;
132
+ verified?: boolean | undefined;
133
+ isVerified?: boolean | undefined;
134
+ isPrivate?: boolean | undefined;
135
+ profilePicUrl?: string | undefined;
136
+ profilePicture?: string | undefined;
137
+ externalUrl?: string | undefined;
138
+ latestPosts?: {
139
+ url: string;
140
+ type?: "image" | "video" | "carousel" | null | undefined;
141
+ shortCode?: string | undefined;
142
+ caption?: string | undefined;
143
+ likesCount?: number | undefined;
144
+ commentsCount?: number | undefined;
145
+ ownerUsername?: string | undefined;
146
+ ownerFullName?: string | undefined;
147
+ timestamp?: string | undefined;
148
+ displayUrl?: string | undefined;
149
+ hashtags?: string[] | undefined;
150
+ mentions?: string[] | undefined;
151
+ location?: {
152
+ name?: string | undefined;
153
+ id?: string | undefined;
154
+ } | null | undefined;
155
+ }[] | undefined;
156
+ stories?: {
157
+ type?: "image" | "video" | undefined;
158
+ url?: string | undefined;
159
+ timestamp?: string | undefined;
160
+ viewsCount?: number | undefined;
161
+ }[] | undefined;
162
+ highlights?: {
163
+ title?: string | undefined;
164
+ coverUrl?: string | undefined;
165
+ itemsCount?: number | undefined;
166
+ }[] | undefined;
167
+ }, {
168
+ username?: string | undefined;
169
+ fullName?: string | undefined;
170
+ biography?: string | undefined;
171
+ followersCount?: number | undefined;
172
+ followingCount?: number | undefined;
173
+ followsCount?: number | undefined;
174
+ postsCount?: number | undefined;
175
+ verified?: boolean | undefined;
176
+ isVerified?: boolean | undefined;
177
+ isPrivate?: boolean | undefined;
178
+ profilePicUrl?: string | undefined;
179
+ profilePicture?: string | undefined;
180
+ externalUrl?: string | undefined;
181
+ latestPosts?: {
182
+ url: string;
183
+ type?: "image" | "video" | "carousel" | null | undefined;
184
+ shortCode?: string | undefined;
185
+ caption?: string | undefined;
186
+ likesCount?: number | undefined;
187
+ commentsCount?: number | undefined;
188
+ ownerUsername?: string | undefined;
189
+ ownerFullName?: string | undefined;
190
+ timestamp?: string | undefined;
191
+ displayUrl?: string | undefined;
192
+ hashtags?: string[] | undefined;
193
+ mentions?: string[] | undefined;
194
+ location?: {
195
+ name?: string | undefined;
196
+ id?: string | undefined;
197
+ } | null | undefined;
198
+ }[] | undefined;
199
+ stories?: {
200
+ type?: "image" | "video" | undefined;
201
+ url?: string | undefined;
202
+ timestamp?: string | undefined;
203
+ viewsCount?: number | undefined;
204
+ }[] | undefined;
205
+ highlights?: {
206
+ title?: string | undefined;
207
+ coverUrl?: string | undefined;
208
+ itemsCount?: number | undefined;
209
+ }[] | undefined;
210
+ }>;
211
+ readonly description: "Scrape Instagram profiles, posts, stories, and highlights";
212
+ readonly documentation: "https://docs.apify.com/platform/actors/apify/instagram-scraper";
213
+ readonly category: "social-media";
214
+ };
215
+ };
216
+ export type ActorId = keyof typeof APIFY_ACTOR_SCHEMAS;
217
+ export type ActorInput<T extends ActorId> = z.input<typeof APIFY_ACTOR_SCHEMAS[T]['input']>;
218
+ export type ActorOutput<T extends ActorId> = z.output<typeof APIFY_ACTOR_SCHEMAS[T]['output']>;
219
+ export type ActorSchema<T extends ActorId> = typeof APIFY_ACTOR_SCHEMAS[T];
220
+ /**
221
+ * Get the input schema for a specific actor
222
+ */
223
+ export declare function getActorInputSchema<T extends ActorId>(actorId: T): z.ZodObject<{
224
+ directUrls: z.ZodArray<z.ZodString, "many">;
225
+ resultsType: z.ZodDefault<z.ZodEnum<["posts", "details"]>>;
226
+ resultsLimit: z.ZodDefault<z.ZodNumber>;
227
+ includeStories: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
228
+ includeHighlights: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
229
+ }, "strip", z.ZodTypeAny, {
230
+ directUrls: string[];
231
+ resultsType: "posts" | "details";
232
+ resultsLimit: number;
233
+ includeStories?: boolean | undefined;
234
+ includeHighlights?: boolean | undefined;
235
+ }, {
236
+ directUrls: string[];
237
+ resultsType?: "posts" | "details" | undefined;
238
+ resultsLimit?: number | undefined;
239
+ includeStories?: boolean | undefined;
240
+ includeHighlights?: boolean | undefined;
241
+ }>;
242
+ /**
243
+ * Get the output schema for a specific actor
244
+ */
245
+ export declare function getActorOutputSchema<T extends ActorId>(actorId: T): z.ZodObject<{
246
+ username: z.ZodOptional<z.ZodString>;
247
+ fullName: z.ZodOptional<z.ZodString>;
248
+ biography: z.ZodOptional<z.ZodString>;
249
+ followersCount: z.ZodOptional<z.ZodNumber>;
250
+ followingCount: z.ZodOptional<z.ZodNumber>;
251
+ followsCount: z.ZodOptional<z.ZodNumber>;
252
+ postsCount: z.ZodOptional<z.ZodNumber>;
253
+ verified: z.ZodOptional<z.ZodBoolean>;
254
+ isVerified: z.ZodOptional<z.ZodBoolean>;
255
+ isPrivate: z.ZodOptional<z.ZodBoolean>;
256
+ profilePicUrl: z.ZodOptional<z.ZodString>;
257
+ profilePicture: z.ZodOptional<z.ZodString>;
258
+ externalUrl: z.ZodOptional<z.ZodString>;
259
+ latestPosts: z.ZodOptional<z.ZodArray<z.ZodObject<{
260
+ url: z.ZodString;
261
+ shortCode: z.ZodOptional<z.ZodString>;
262
+ caption: z.ZodOptional<z.ZodString>;
263
+ likesCount: z.ZodOptional<z.ZodNumber>;
264
+ commentsCount: z.ZodOptional<z.ZodNumber>;
265
+ ownerUsername: z.ZodOptional<z.ZodString>;
266
+ ownerFullName: z.ZodOptional<z.ZodString>;
267
+ timestamp: z.ZodOptional<z.ZodString>;
268
+ type: z.ZodOptional<z.ZodNullable<z.ZodEnum<["image", "video", "carousel"]>>>;
269
+ displayUrl: z.ZodOptional<z.ZodString>;
270
+ hashtags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
271
+ mentions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
272
+ location: z.ZodOptional<z.ZodNullable<z.ZodObject<{
273
+ name: z.ZodOptional<z.ZodString>;
274
+ id: z.ZodOptional<z.ZodString>;
275
+ }, "strip", z.ZodTypeAny, {
276
+ name?: string | undefined;
277
+ id?: string | undefined;
278
+ }, {
279
+ name?: string | undefined;
280
+ id?: string | undefined;
281
+ }>>>;
282
+ }, "strip", z.ZodTypeAny, {
283
+ url: string;
284
+ type?: "image" | "video" | "carousel" | null | undefined;
285
+ shortCode?: string | undefined;
286
+ caption?: string | undefined;
287
+ likesCount?: number | undefined;
288
+ commentsCount?: number | undefined;
289
+ ownerUsername?: string | undefined;
290
+ ownerFullName?: string | undefined;
291
+ timestamp?: string | undefined;
292
+ displayUrl?: string | undefined;
293
+ hashtags?: string[] | undefined;
294
+ mentions?: string[] | undefined;
295
+ location?: {
296
+ name?: string | undefined;
297
+ id?: string | undefined;
298
+ } | null | undefined;
299
+ }, {
300
+ url: string;
301
+ type?: "image" | "video" | "carousel" | null | undefined;
302
+ shortCode?: string | undefined;
303
+ caption?: string | undefined;
304
+ likesCount?: number | undefined;
305
+ commentsCount?: number | undefined;
306
+ ownerUsername?: string | undefined;
307
+ ownerFullName?: string | undefined;
308
+ timestamp?: string | undefined;
309
+ displayUrl?: string | undefined;
310
+ hashtags?: string[] | undefined;
311
+ mentions?: string[] | undefined;
312
+ location?: {
313
+ name?: string | undefined;
314
+ id?: string | undefined;
315
+ } | null | undefined;
316
+ }>, "many">>;
317
+ stories: z.ZodOptional<z.ZodArray<z.ZodObject<{
318
+ url: z.ZodOptional<z.ZodString>;
319
+ timestamp: z.ZodOptional<z.ZodString>;
320
+ type: z.ZodOptional<z.ZodEnum<["image", "video"]>>;
321
+ viewsCount: z.ZodOptional<z.ZodNumber>;
322
+ }, "strip", z.ZodTypeAny, {
323
+ type?: "image" | "video" | undefined;
324
+ url?: string | undefined;
325
+ timestamp?: string | undefined;
326
+ viewsCount?: number | undefined;
327
+ }, {
328
+ type?: "image" | "video" | undefined;
329
+ url?: string | undefined;
330
+ timestamp?: string | undefined;
331
+ viewsCount?: number | undefined;
332
+ }>, "many">>;
333
+ highlights: z.ZodOptional<z.ZodArray<z.ZodObject<{
334
+ title: z.ZodOptional<z.ZodString>;
335
+ coverUrl: z.ZodOptional<z.ZodString>;
336
+ itemsCount: z.ZodOptional<z.ZodNumber>;
337
+ }, "strip", z.ZodTypeAny, {
338
+ title?: string | undefined;
339
+ coverUrl?: string | undefined;
340
+ itemsCount?: number | undefined;
341
+ }, {
342
+ title?: string | undefined;
343
+ coverUrl?: string | undefined;
344
+ itemsCount?: number | undefined;
345
+ }>, "many">>;
346
+ }, "strip", z.ZodTypeAny, {
347
+ username?: string | undefined;
348
+ fullName?: string | undefined;
349
+ biography?: string | undefined;
350
+ followersCount?: number | undefined;
351
+ followingCount?: number | undefined;
352
+ followsCount?: number | undefined;
353
+ postsCount?: number | undefined;
354
+ verified?: boolean | undefined;
355
+ isVerified?: boolean | undefined;
356
+ isPrivate?: boolean | undefined;
357
+ profilePicUrl?: string | undefined;
358
+ profilePicture?: string | undefined;
359
+ externalUrl?: string | undefined;
360
+ latestPosts?: {
361
+ url: string;
362
+ type?: "image" | "video" | "carousel" | null | undefined;
363
+ shortCode?: string | undefined;
364
+ caption?: string | undefined;
365
+ likesCount?: number | undefined;
366
+ commentsCount?: number | undefined;
367
+ ownerUsername?: string | undefined;
368
+ ownerFullName?: string | undefined;
369
+ timestamp?: string | undefined;
370
+ displayUrl?: string | undefined;
371
+ hashtags?: string[] | undefined;
372
+ mentions?: string[] | undefined;
373
+ location?: {
374
+ name?: string | undefined;
375
+ id?: string | undefined;
376
+ } | null | undefined;
377
+ }[] | undefined;
378
+ stories?: {
379
+ type?: "image" | "video" | undefined;
380
+ url?: string | undefined;
381
+ timestamp?: string | undefined;
382
+ viewsCount?: number | undefined;
383
+ }[] | undefined;
384
+ highlights?: {
385
+ title?: string | undefined;
386
+ coverUrl?: string | undefined;
387
+ itemsCount?: number | undefined;
388
+ }[] | undefined;
389
+ }, {
390
+ username?: string | undefined;
391
+ fullName?: string | undefined;
392
+ biography?: string | undefined;
393
+ followersCount?: number | undefined;
394
+ followingCount?: number | undefined;
395
+ followsCount?: number | undefined;
396
+ postsCount?: number | undefined;
397
+ verified?: boolean | undefined;
398
+ isVerified?: boolean | undefined;
399
+ isPrivate?: boolean | undefined;
400
+ profilePicUrl?: string | undefined;
401
+ profilePicture?: string | undefined;
402
+ externalUrl?: string | undefined;
403
+ latestPosts?: {
404
+ url: string;
405
+ type?: "image" | "video" | "carousel" | null | undefined;
406
+ shortCode?: string | undefined;
407
+ caption?: string | undefined;
408
+ likesCount?: number | undefined;
409
+ commentsCount?: number | undefined;
410
+ ownerUsername?: string | undefined;
411
+ ownerFullName?: string | undefined;
412
+ timestamp?: string | undefined;
413
+ displayUrl?: string | undefined;
414
+ hashtags?: string[] | undefined;
415
+ mentions?: string[] | undefined;
416
+ location?: {
417
+ name?: string | undefined;
418
+ id?: string | undefined;
419
+ } | null | undefined;
420
+ }[] | undefined;
421
+ stories?: {
422
+ type?: "image" | "video" | undefined;
423
+ url?: string | undefined;
424
+ timestamp?: string | undefined;
425
+ viewsCount?: number | undefined;
426
+ }[] | undefined;
427
+ highlights?: {
428
+ title?: string | undefined;
429
+ coverUrl?: string | undefined;
430
+ itemsCount?: number | undefined;
431
+ }[] | undefined;
432
+ }>;
433
+ /**
434
+ * Get all available actors
435
+ */
436
+ export declare function getAvailableActors(): ActorId[];
437
+ /**
438
+ * Get actors by category
439
+ */
440
+ export declare function getActorsByCategory(category: string): "apify/instagram-scraper"[];
441
+ /**
442
+ * Validate actor input against its schema
443
+ */
444
+ export declare function validateActorInput<T extends ActorId>(actorId: T, input: unknown): ActorInput<T>;
445
+ /**
446
+ * Validate actor output against its schema
447
+ */
448
+ export declare function validateActorOutput<T extends ActorId>(actorId: T, output: unknown): ActorOutput<T>;
449
+ /**
450
+ * Check if an actor ID is supported
451
+ */
452
+ export declare function isActorSupported(actorId: string): actorId is ActorId;
453
+ //# sourceMappingURL=api-scraper.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-scraper.schema.d.ts","sourceRoot":"","sources":["../../src/types/api-scraper.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmHxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAStB,CAAC;AAMX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,mBAAmB,CAAC;AACvD,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5F,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/F,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,IAAI,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAO3E;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC;;;;;;;;;;;;;;;;;;GAEhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAEjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IACW,OAAO,EAAE,CACrD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,+BAInD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAClD,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,OAAO,GACb,UAAU,CAAC,CAAC,CAAC,CAGf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,OAAO,EACnD,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,OAAO,GACd,WAAW,CAAC,CAAC,CAAC,CAGhB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,OAAO,CAEpE"}
@@ -0,0 +1,160 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Apify Actor Schema Registry
4
+ *
5
+ * This registry provides type-safe input and output schemas for popular Apify actors.
6
+ * Each actor definition includes:
7
+ * - Input schema: Validates parameters sent to the actor
8
+ * - Output schema: Validates and types the results returned by the actor
9
+ * - Description: Human-readable description of what the actor does
10
+ * - Documentation: Link to actor documentation
11
+ */
12
+ // ============================================================================
13
+ // INSTAGRAM SCRAPER SCHEMAS
14
+ // ============================================================================
15
+ const InstagramScraperInputSchema = z.object({
16
+ directUrls: z
17
+ .array(z.string().url())
18
+ .min(1, 'At least one Instagram URL is required')
19
+ .describe('Instagram profile URLs to scrape. Examples: ["https://www.instagram.com/username/"]'),
20
+ resultsType: z
21
+ .enum(['posts', 'details'])
22
+ .default('posts')
23
+ .describe('Type of results to fetch: "posts" for posts only, "details" for profile + posts'),
24
+ resultsLimit: z
25
+ .number()
26
+ .min(1)
27
+ .max(200)
28
+ .default(20)
29
+ .describe('Maximum number of posts to fetch per profile (1-200)'),
30
+ includeStories: z
31
+ .boolean()
32
+ .default(false)
33
+ .optional()
34
+ .describe('Whether to include Instagram stories in results'),
35
+ includeHighlights: z
36
+ .boolean()
37
+ .default(false)
38
+ .optional()
39
+ .describe('Whether to include Instagram highlights in results'),
40
+ });
41
+ const InstagramPostSchema = z.object({
42
+ url: z.string().url().describe('Post URL'),
43
+ shortCode: z.string().optional().describe('Instagram short code'),
44
+ caption: z.string().optional().describe('Post caption text'),
45
+ likesCount: z.number().optional().describe('Number of likes'),
46
+ commentsCount: z.number().optional().describe('Number of comments'),
47
+ ownerUsername: z.string().optional().describe('Post owner username'),
48
+ ownerFullName: z.string().optional().describe('Post owner full name'),
49
+ timestamp: z.string().optional().describe('Post timestamp (ISO format)'),
50
+ type: z
51
+ .enum(['image', 'video', 'carousel'])
52
+ .nullable()
53
+ .optional()
54
+ .describe('Post media type'),
55
+ displayUrl: z.string().optional().describe('Main display image URL'),
56
+ hashtags: z.array(z.string()).optional().describe('Hashtags in the post'),
57
+ mentions: z.array(z.string()).optional().describe('User mentions in the post'),
58
+ location: z
59
+ .object({
60
+ name: z.string().optional(),
61
+ id: z.string().optional(),
62
+ })
63
+ .nullable()
64
+ .optional()
65
+ .describe('Location information if available'),
66
+ });
67
+ // Single profile/item output schema (each item in the array)
68
+ const InstagramScraperItemSchema = z.object({
69
+ // When resultsType is 'details', profile fields are at the top level
70
+ username: z.string().optional().describe('Instagram username'),
71
+ fullName: z.string().optional().describe('Full name'),
72
+ biography: z.string().optional().describe('Profile bio'),
73
+ followersCount: z.number().optional().describe('Number of followers'),
74
+ followingCount: z.number().optional().describe('Number of following'),
75
+ followsCount: z.number().optional().describe('Number of following (alt field)'),
76
+ postsCount: z.number().optional().describe('Total posts'),
77
+ verified: z.boolean().optional().describe('Verification status'),
78
+ isVerified: z.boolean().optional().describe('Verification status (alt field)'),
79
+ isPrivate: z.boolean().optional().describe('Whether profile is private'),
80
+ profilePicUrl: z.string().optional().describe('Profile picture URL'),
81
+ profilePicture: z.string().optional().describe('Profile picture URL (alt field)'),
82
+ externalUrl: z.string().optional().describe('External website URL'),
83
+ // Posts (nested when resultsType is 'details')
84
+ latestPosts: z.array(InstagramPostSchema).optional().describe('Latest posts from the profile'),
85
+ // Stories (when includeStories is true)
86
+ stories: z.array(z.object({
87
+ url: z.string().optional(),
88
+ timestamp: z.string().optional(),
89
+ type: z.enum(['image', 'video']).optional(),
90
+ viewsCount: z.number().optional(),
91
+ })).optional().describe('Instagram stories'),
92
+ // Highlights (when includeHighlights is true)
93
+ highlights: z.array(z.object({
94
+ title: z.string().optional(),
95
+ coverUrl: z.string().optional(),
96
+ itemsCount: z.number().optional(),
97
+ })).optional().describe('Instagram highlights'),
98
+ });
99
+ // ============================================================================
100
+ // ACTOR REGISTRY
101
+ // ============================================================================
102
+ export const APIFY_ACTOR_SCHEMAS = {
103
+ 'apify/instagram-scraper': {
104
+ input: InstagramScraperInputSchema,
105
+ output: InstagramScraperItemSchema,
106
+ description: 'Scrape Instagram profiles, posts, stories, and highlights',
107
+ documentation: 'https://docs.apify.com/platform/actors/apify/instagram-scraper',
108
+ category: 'social-media',
109
+ },
110
+ };
111
+ // ============================================================================
112
+ // UTILITY FUNCTIONS
113
+ // ============================================================================
114
+ /**
115
+ * Get the input schema for a specific actor
116
+ */
117
+ export function getActorInputSchema(actorId) {
118
+ return APIFY_ACTOR_SCHEMAS[actorId].input;
119
+ }
120
+ /**
121
+ * Get the output schema for a specific actor
122
+ */
123
+ export function getActorOutputSchema(actorId) {
124
+ return APIFY_ACTOR_SCHEMAS[actorId].output;
125
+ }
126
+ /**
127
+ * Get all available actors
128
+ */
129
+ export function getAvailableActors() {
130
+ return Object.keys(APIFY_ACTOR_SCHEMAS);
131
+ }
132
+ /**
133
+ * Get actors by category
134
+ */
135
+ export function getActorsByCategory(category) {
136
+ return Object.entries(APIFY_ACTOR_SCHEMAS)
137
+ .filter(([_, schema]) => schema.category === category)
138
+ .map(([actorId]) => actorId);
139
+ }
140
+ /**
141
+ * Validate actor input against its schema
142
+ */
143
+ export function validateActorInput(actorId, input) {
144
+ const schema = getActorInputSchema(actorId);
145
+ return schema.parse(input);
146
+ }
147
+ /**
148
+ * Validate actor output against its schema
149
+ */
150
+ export function validateActorOutput(actorId, output) {
151
+ const schema = getActorOutputSchema(actorId);
152
+ return schema.parse(output);
153
+ }
154
+ /**
155
+ * Check if an actor ID is supported
156
+ */
157
+ export function isActorSupported(actorId) {
158
+ return actorId in APIFY_ACTOR_SCHEMAS;
159
+ }
160
+ //# sourceMappingURL=api-scraper.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-scraper.schema.js","sourceRoot":"","sources":["../../src/types/api-scraper.schema.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { z } from 'zod';
2
- export declare const AvailableTools: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "list-bubbles-tool", "get-bubble-details-tool", "bubbleflow-validation-tool", "chart-js-tool", "sql-query-tool"]>;
2
+ export declare const AvailableTools: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "get-bubble-details-tool", "bubbleflow-validation-tool", "chart-js-tool", "sql-query-tool"]>;
3
3
  export type AvailableTool = z.infer<typeof AvailableTools>;
4
4
  //# sourceMappingURL=available-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"available-tools.d.ts","sourceRoot":"","sources":["../../src/types/available-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc,uPAcgB,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"available-tools.d.ts","sourceRoot":"","sources":["../../src/types/available-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc,yQAgBgB,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -9,6 +9,8 @@ export const AvailableTools = z.enum([
9
9
  'web-extract-tool',
10
10
  'research-agent-tool',
11
11
  'reddit-scrape-tool',
12
+ // Social media tools
13
+ 'instagram-tool',
12
14
  // Existing bubble tools (for reference - these are handled by bubble names)
13
15
  'list-bubbles-tool',
14
16
  'get-bubble-details-tool',
@@ -1 +1 @@
1
- {"version":3,"file":"available-tools.js","sourceRoot":"","sources":["../../src/types/available-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,4DAA4D;AAC5D,oEAAoE;AACpE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,4EAA4E;IAC5E,mBAAmB;IACnB,yBAAyB;IACzB,4BAA4B;IAC5B,eAAe;IACf,gBAAgB;CACwB,CAAC,CAAC"}
1
+ {"version":3,"file":"available-tools.js","sourceRoot":"","sources":["../../src/types/available-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,4DAA4D;AAC5D,oEAAoE;AACpE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,gBAAgB;IAChB,4EAA4E;IAC5E,mBAAmB;IACnB,yBAAyB;IACzB,4BAA4B;IAC5B,eAAe;IACf,gBAAgB;CACwB,CAAC,CAAC"}
@@ -25,6 +25,11 @@ export declare abstract class BaseBubble<TParams = unknown, TResult extends Bubb
25
25
  private computeChildContext;
26
26
  saveResult<R extends BubbleOperationResult>(result: BubbleResult<R>): void;
27
27
  clearSavedResult(): void;
28
+ /**
29
+ * Override toJSON to prevent credential leaking via JSON.stringify or console.log
30
+ * Only exposes safe metadata, never params which may contain credentials
31
+ */
32
+ toJSON(): Record<string, unknown>;
28
33
  /**
29
34
  * Execute the bubble - just runs the action
30
35
  */