@bubblelab/bubble-core 0.1.10 → 0.1.11

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 (298) hide show
  1. package/dist/bubble-bundle.d.ts +759 -350
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +125 -35
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubble-flow/bubble-flow-class.d.ts +5 -0
  6. package/dist/bubble-flow/bubble-flow-class.d.ts.map +1 -1
  7. package/dist/bubble-flow/bubble-flow-class.js +20 -0
  8. package/dist/bubble-flow/bubble-flow-class.js.map +1 -1
  9. package/dist/bubble-flow/sample/simplified-data-analysis.flow.d.ts.map +1 -1
  10. package/dist/bubble-flow/sample/simplified-data-analysis.flow.js +6 -3
  11. package/dist/bubble-flow/sample/simplified-data-analysis.flow.js.map +1 -1
  12. package/dist/bubbles/service-bubble/agi-inc.d.ts +1121 -0
  13. package/dist/bubbles/service-bubble/agi-inc.d.ts.map +1 -0
  14. package/dist/bubbles/service-bubble/agi-inc.js +730 -0
  15. package/dist/bubbles/service-bubble/agi-inc.js.map +1 -0
  16. package/dist/bubbles/service-bubble/ai-agent.d.ts +277 -65
  17. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  18. package/dist/bubbles/service-bubble/ai-agent.js +533 -399
  19. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
  20. package/dist/bubbles/service-bubble/airtable.d.ts +1753 -0
  21. package/dist/bubbles/service-bubble/airtable.d.ts.map +1 -0
  22. package/dist/bubbles/service-bubble/airtable.js +1173 -0
  23. package/dist/bubbles/service-bubble/airtable.js.map +1 -0
  24. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts +240 -0
  25. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts.map +1 -0
  26. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.js +119 -0
  27. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.js.map +1 -0
  28. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +4 -4
  29. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +14 -14
  30. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +137 -0
  31. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts.map +1 -0
  32. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.js +81 -0
  33. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.js.map +1 -0
  34. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +6 -6
  35. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +32 -32
  36. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +488 -0
  37. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts.map +1 -0
  38. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.js +463 -0
  39. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.js.map +1 -0
  40. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +262 -0
  41. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts.map +1 -0
  42. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.js +291 -0
  43. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.js.map +1 -0
  44. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
  45. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +1301 -170
  46. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts.map +1 -1
  47. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js +32 -0
  48. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js.map +1 -1
  49. package/dist/bubbles/service-bubble/apify/apify.d.ts +162 -17
  50. package/dist/bubbles/service-bubble/apify/apify.d.ts.map +1 -1
  51. package/dist/bubbles/service-bubble/apify/apify.js +205 -32
  52. package/dist/bubbles/service-bubble/apify/apify.js.map +1 -1
  53. package/dist/bubbles/service-bubble/eleven-labs.d.ts +421 -0
  54. package/dist/bubbles/service-bubble/eleven-labs.d.ts.map +1 -0
  55. package/dist/bubbles/service-bubble/eleven-labs.js +479 -0
  56. package/dist/bubbles/service-bubble/eleven-labs.js.map +1 -0
  57. package/dist/bubbles/service-bubble/firecrawl.d.ts +37748 -0
  58. package/dist/bubbles/service-bubble/firecrawl.d.ts.map +1 -0
  59. package/dist/bubbles/service-bubble/firecrawl.js +1489 -0
  60. package/dist/bubbles/service-bubble/firecrawl.js.map +1 -0
  61. package/dist/bubbles/service-bubble/followupboss.d.ts +6822 -0
  62. package/dist/bubbles/service-bubble/followupboss.d.ts.map +1 -0
  63. package/dist/bubbles/service-bubble/followupboss.js +1394 -0
  64. package/dist/bubbles/service-bubble/followupboss.js.map +1 -0
  65. package/dist/bubbles/service-bubble/github.d.ts +2399 -0
  66. package/dist/bubbles/service-bubble/github.d.ts.map +1 -0
  67. package/dist/bubbles/service-bubble/github.js +1052 -0
  68. package/dist/bubbles/service-bubble/github.js.map +1 -0
  69. package/dist/bubbles/service-bubble/gmail.d.ts +180 -180
  70. package/dist/bubbles/service-bubble/google-calendar.d.ts +60 -60
  71. package/dist/bubbles/service-bubble/google-drive.d.ts +37 -36
  72. package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
  73. package/dist/bubbles/service-bubble/google-drive.js +35 -3
  74. package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
  75. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +943 -0
  76. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts.map +1 -0
  77. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts +31 -0
  78. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts.map +1 -0
  79. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js +184 -0
  80. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js.map +1 -0
  81. package/dist/bubbles/service-bubble/google-sheets/google-sheets.js +401 -0
  82. package/dist/bubbles/service-bubble/google-sheets/google-sheets.js.map +1 -0
  83. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts +1024 -0
  84. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts.map +1 -0
  85. package/dist/bubbles/service-bubble/{google-sheets.js → google-sheets/google-sheets.schema.js} +45 -409
  86. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.js.map +1 -0
  87. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.d.ts +38 -0
  88. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.d.ts.map +1 -0
  89. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.js +183 -0
  90. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.js.map +1 -0
  91. package/dist/bubbles/service-bubble/google-sheets/index.d.ts +4 -0
  92. package/dist/bubbles/service-bubble/google-sheets/index.d.ts.map +1 -0
  93. package/dist/bubbles/service-bubble/google-sheets/index.js +4 -0
  94. package/dist/bubbles/service-bubble/google-sheets/index.js.map +1 -0
  95. package/dist/bubbles/service-bubble/hello-world.d.ts +4 -4
  96. package/dist/bubbles/service-bubble/http.d.ts +4 -4
  97. package/dist/bubbles/service-bubble/http.d.ts.map +1 -1
  98. package/dist/bubbles/service-bubble/http.js +7 -1
  99. package/dist/bubbles/service-bubble/http.js.map +1 -1
  100. package/dist/bubbles/service-bubble/insforge-db.d.ts +140 -0
  101. package/dist/bubbles/service-bubble/insforge-db.d.ts.map +1 -0
  102. package/dist/bubbles/service-bubble/insforge-db.js +260 -0
  103. package/dist/bubbles/service-bubble/insforge-db.js.map +1 -0
  104. package/dist/bubbles/service-bubble/notion/index.d.ts +3 -0
  105. package/dist/bubbles/service-bubble/notion/index.d.ts.map +1 -0
  106. package/dist/bubbles/service-bubble/notion/index.js +3 -0
  107. package/dist/bubbles/service-bubble/notion/index.js.map +1 -0
  108. package/dist/bubbles/service-bubble/notion/notion.d.ts +35405 -0
  109. package/dist/bubbles/service-bubble/notion/notion.d.ts.map +1 -0
  110. package/dist/bubbles/service-bubble/notion/notion.js +1492 -0
  111. package/dist/bubbles/service-bubble/notion/notion.js.map +1 -0
  112. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +1148 -0
  113. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts.map +1 -0
  114. package/dist/bubbles/service-bubble/notion/property-schemas.js +341 -0
  115. package/dist/bubbles/service-bubble/notion/property-schemas.js.map +1 -0
  116. package/dist/bubbles/service-bubble/postgresql.d.ts +12 -12
  117. package/dist/bubbles/service-bubble/resend.d.ts +34 -13
  118. package/dist/bubbles/service-bubble/resend.d.ts.map +1 -1
  119. package/dist/bubbles/service-bubble/resend.js +133 -2
  120. package/dist/bubbles/service-bubble/resend.js.map +1 -1
  121. package/dist/bubbles/service-bubble/slack.d.ts +241 -241
  122. package/dist/bubbles/service-bubble/slack.d.ts.map +1 -1
  123. package/dist/bubbles/service-bubble/slack.js +2 -2
  124. package/dist/bubbles/service-bubble/slack.js.map +1 -1
  125. package/dist/bubbles/service-bubble/storage.d.ts +25 -21
  126. package/dist/bubbles/service-bubble/storage.d.ts.map +1 -1
  127. package/dist/bubbles/service-bubble/storage.js +43 -2
  128. package/dist/bubbles/service-bubble/storage.js.map +1 -1
  129. package/dist/bubbles/service-bubble/telegram.d.ts +7742 -0
  130. package/dist/bubbles/service-bubble/telegram.d.ts.map +1 -0
  131. package/dist/bubbles/service-bubble/telegram.js +1132 -0
  132. package/dist/bubbles/service-bubble/telegram.js.map +1 -0
  133. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +76 -20
  134. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts.map +1 -1
  135. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js +12 -0
  136. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js.map +1 -1
  137. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +14 -14
  138. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +188 -0
  139. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts.map +1 -0
  140. package/dist/bubbles/tool-bubble/code-edit-tool.js +321 -0
  141. package/dist/bubbles/tool-bubble/code-edit-tool.js.map +1 -0
  142. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +8 -4
  143. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts.map +1 -1
  144. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js +115 -10
  145. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js.map +1 -1
  146. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +455 -0
  147. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts.map +1 -0
  148. package/dist/bubbles/tool-bubble/google-maps-tool.js +205 -0
  149. package/dist/bubbles/tool-bubble/google-maps-tool.js.map +1 -0
  150. package/dist/bubbles/tool-bubble/instagram-tool.d.ts +36 -36
  151. package/dist/bubbles/tool-bubble/instagram-tool.d.ts.map +1 -1
  152. package/dist/bubbles/tool-bubble/instagram-tool.js +2 -2
  153. package/dist/bubbles/tool-bubble/instagram-tool.js.map +1 -1
  154. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +824 -447
  155. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts.map +1 -1
  156. package/dist/bubbles/tool-bubble/linkedin-tool.js +232 -12
  157. package/dist/bubbles/tool-bubble/linkedin-tool.js.map +1 -1
  158. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +4 -4
  159. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +66 -66
  160. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +17 -16
  161. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts.map +1 -1
  162. package/dist/bubbles/tool-bubble/research-agent-tool.js +26 -16
  163. package/dist/bubbles/tool-bubble/research-agent-tool.js.map +1 -1
  164. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
  165. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +485 -0
  166. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts.map +1 -0
  167. package/dist/bubbles/tool-bubble/tiktok-tool.js +226 -0
  168. package/dist/bubbles/tool-bubble/tiktok-tool.js.map +1 -0
  169. package/dist/bubbles/tool-bubble/tool-template.d.ts +8 -8
  170. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +947 -0
  171. package/dist/bubbles/tool-bubble/twitter-tool.d.ts.map +1 -0
  172. package/dist/bubbles/tool-bubble/twitter-tool.js +494 -0
  173. package/dist/bubbles/tool-bubble/twitter-tool.js.map +1 -0
  174. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +22 -16
  175. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts.map +1 -1
  176. package/dist/bubbles/tool-bubble/web-crawl-tool.js +58 -59
  177. package/dist/bubbles/tool-bubble/web-crawl-tool.js.map +1 -1
  178. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +8 -8
  179. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts.map +1 -1
  180. package/dist/bubbles/tool-bubble/web-extract-tool.js +17 -17
  181. package/dist/bubbles/tool-bubble/web-extract-tool.js.map +1 -1
  182. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +15 -107
  183. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts.map +1 -1
  184. package/dist/bubbles/tool-bubble/web-scrape-tool.js +51 -72
  185. package/dist/bubbles/tool-bubble/web-scrape-tool.js.map +1 -1
  186. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +20 -9
  187. package/dist/bubbles/tool-bubble/web-search-tool.d.ts.map +1 -1
  188. package/dist/bubbles/tool-bubble/web-search-tool.js +45 -35
  189. package/dist/bubbles/tool-bubble/web-search-tool.js.map +1 -1
  190. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +25 -25
  191. package/dist/bubbles/tool-bubble/youtube-tool.d.ts.map +1 -1
  192. package/dist/bubbles/tool-bubble/youtube-tool.js +5 -5
  193. package/dist/bubbles/tool-bubble/youtube-tool.js.map +1 -1
  194. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +4 -4
  195. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +30 -30
  196. package/dist/bubbles/workflow-bubble/generate-document.workflow.js +1 -1
  197. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +22 -22
  198. package/dist/bubbles/workflow-bubble/parse-document.workflow.js +1 -1
  199. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +54 -54
  200. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts.map +1 -1
  201. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js +4 -4
  202. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js.map +1 -1
  203. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +36 -36
  204. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js +1 -1
  205. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +14 -14
  206. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts.map +1 -1
  207. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js +6 -6
  208. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js.map +1 -1
  209. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +26 -26
  210. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts.map +1 -1
  211. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js +24 -4
  212. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js.map +1 -1
  213. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +19 -19
  214. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts.map +1 -1
  215. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js +8 -8
  216. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js.map +1 -1
  217. package/dist/bubbles.json +220 -72
  218. package/dist/index.d.ts +23 -4
  219. package/dist/index.d.ts.map +1 -1
  220. package/dist/index.js +16 -3
  221. package/dist/index.js.map +1 -1
  222. package/dist/logging/BubbleLogger.d.ts +45 -16
  223. package/dist/logging/BubbleLogger.d.ts.map +1 -1
  224. package/dist/logging/BubbleLogger.js +178 -77
  225. package/dist/logging/BubbleLogger.js.map +1 -1
  226. package/dist/logging/StreamingBubbleLogger.d.ts +13 -1
  227. package/dist/logging/StreamingBubbleLogger.d.ts.map +1 -1
  228. package/dist/logging/StreamingBubbleLogger.js +51 -8
  229. package/dist/logging/StreamingBubbleLogger.js.map +1 -1
  230. package/dist/logging/WebhookStreamLogger.d.ts +66 -0
  231. package/dist/logging/WebhookStreamLogger.d.ts.map +1 -0
  232. package/dist/logging/WebhookStreamLogger.js +291 -0
  233. package/dist/logging/WebhookStreamLogger.js.map +1 -0
  234. package/dist/types/available-tools.d.ts +1 -1
  235. package/dist/types/available-tools.d.ts.map +1 -1
  236. package/dist/types/available-tools.js +1 -0
  237. package/dist/types/available-tools.js.map +1 -1
  238. package/dist/types/base-bubble-class.d.ts +6 -4
  239. package/dist/types/base-bubble-class.d.ts.map +1 -1
  240. package/dist/types/base-bubble-class.js +35 -20
  241. package/dist/types/base-bubble-class.js.map +1 -1
  242. package/dist/types/bubble.d.ts +2 -0
  243. package/dist/types/bubble.d.ts.map +1 -1
  244. package/dist/types/service-bubble-class.d.ts +1 -1
  245. package/dist/types/service-bubble-class.d.ts.map +1 -1
  246. package/dist/types/service-bubble-class.js +2 -2
  247. package/dist/types/service-bubble-class.js.map +1 -1
  248. package/dist/types/tool-bubble-class.d.ts +1 -1
  249. package/dist/types/tool-bubble-class.d.ts.map +1 -1
  250. package/dist/types/tool-bubble-class.js +2 -2
  251. package/dist/types/tool-bubble-class.js.map +1 -1
  252. package/dist/types/workflow-bubble-class.d.ts +1 -1
  253. package/dist/types/workflow-bubble-class.d.ts.map +1 -1
  254. package/dist/types/workflow-bubble-class.js +2 -2
  255. package/dist/types/workflow-bubble-class.js.map +1 -1
  256. package/dist/utils/agent-formatter.d.ts +14 -2
  257. package/dist/utils/agent-formatter.d.ts.map +1 -1
  258. package/dist/utils/agent-formatter.js +174 -26
  259. package/dist/utils/agent-formatter.js.map +1 -1
  260. package/dist/utils/bubbleflow-validation.d.ts +7 -0
  261. package/dist/utils/bubbleflow-validation.d.ts.map +1 -1
  262. package/dist/utils/bubbleflow-validation.js +171 -6
  263. package/dist/utils/bubbleflow-validation.js.map +1 -1
  264. package/dist/utils/json-parsing.d.ts.map +1 -1
  265. package/dist/utils/json-parsing.js +146 -0
  266. package/dist/utils/json-parsing.js.map +1 -1
  267. package/dist/utils/safe-gemini-chat.d.ts +31 -0
  268. package/dist/utils/safe-gemini-chat.d.ts.map +1 -0
  269. package/dist/utils/safe-gemini-chat.js +93 -0
  270. package/dist/utils/safe-gemini-chat.js.map +1 -0
  271. package/dist/utils/schema-comparison.d.ts +92 -0
  272. package/dist/utils/schema-comparison.d.ts.map +1 -0
  273. package/dist/utils/schema-comparison.js +716 -0
  274. package/dist/utils/schema-comparison.js.map +1 -0
  275. package/dist/utils/zod-schema.d.ts +24 -0
  276. package/dist/utils/zod-schema.d.ts.map +1 -0
  277. package/dist/utils/zod-schema.js +56 -0
  278. package/dist/utils/zod-schema.js.map +1 -0
  279. package/package.json +5 -4
  280. package/dist/bubbles/service-bubble/google-sheets.d.ts +0 -1811
  281. package/dist/bubbles/service-bubble/google-sheets.d.ts.map +0 -1
  282. package/dist/bubbles/service-bubble/google-sheets.js.map +0 -1
  283. package/dist/bubbles/service-bubble/x-twitter.d.ts +0 -814
  284. package/dist/bubbles/service-bubble/x-twitter.d.ts.map +0 -1
  285. package/dist/bubbles/service-bubble/x-twitter.js +0 -445
  286. package/dist/bubbles/service-bubble/x-twitter.js.map +0 -1
  287. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts +0 -125
  288. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts.map +0 -1
  289. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js +0 -808
  290. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js.map +0 -1
  291. package/dist/test-gm.d.ts +0 -10
  292. package/dist/test-gm.d.ts.map +0 -1
  293. package/dist/test-gm.js +0 -95
  294. package/dist/test-gm.js.map +0 -1
  295. package/dist/utils/param-helper.d.ts +0 -2
  296. package/dist/utils/param-helper.d.ts.map +0 -1
  297. package/dist/utils/param-helper.js +0 -5
  298. package/dist/utils/param-helper.js.map +0 -1
@@ -0,0 +1,947 @@
1
+ import { z } from 'zod';
2
+ import { ToolBubble } from '../../types/tool-bubble-class.js';
3
+ import type { BubbleContext } from '../../types/bubble.js';
4
+ import { CredentialType, type BubbleName } from '@bubblelab/shared-schemas';
5
+ declare const TwitterUserSchema: z.ZodObject<{
6
+ id: z.ZodNullable<z.ZodString>;
7
+ name: z.ZodNullable<z.ZodString>;
8
+ userName: z.ZodNullable<z.ZodString>;
9
+ description: z.ZodNullable<z.ZodString>;
10
+ isVerified: z.ZodNullable<z.ZodBoolean>;
11
+ isBlueVerified: z.ZodNullable<z.ZodBoolean>;
12
+ profilePicture: z.ZodNullable<z.ZodString>;
13
+ followers: z.ZodNullable<z.ZodNumber>;
14
+ following: z.ZodNullable<z.ZodNumber>;
15
+ tweetsCount: z.ZodNullable<z.ZodNumber>;
16
+ url: z.ZodNullable<z.ZodString>;
17
+ createdAt: z.ZodNullable<z.ZodString>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ description: string | null;
20
+ name: string | null;
21
+ url: string | null;
22
+ id: string | null;
23
+ following: number | null;
24
+ userName: string | null;
25
+ isVerified: boolean | null;
26
+ isBlueVerified: boolean | null;
27
+ profilePicture: string | null;
28
+ followers: number | null;
29
+ tweetsCount: number | null;
30
+ createdAt: string | null;
31
+ }, {
32
+ description: string | null;
33
+ name: string | null;
34
+ url: string | null;
35
+ id: string | null;
36
+ following: number | null;
37
+ userName: string | null;
38
+ isVerified: boolean | null;
39
+ isBlueVerified: boolean | null;
40
+ profilePicture: string | null;
41
+ followers: number | null;
42
+ tweetsCount: number | null;
43
+ createdAt: string | null;
44
+ }>;
45
+ declare const TwitterTweetSchema: z.ZodObject<{
46
+ id: z.ZodNullable<z.ZodString>;
47
+ url: z.ZodNullable<z.ZodString>;
48
+ text: z.ZodNullable<z.ZodString>;
49
+ author: z.ZodNullable<z.ZodObject<{
50
+ id: z.ZodNullable<z.ZodString>;
51
+ name: z.ZodNullable<z.ZodString>;
52
+ userName: z.ZodNullable<z.ZodString>;
53
+ description: z.ZodNullable<z.ZodString>;
54
+ isVerified: z.ZodNullable<z.ZodBoolean>;
55
+ isBlueVerified: z.ZodNullable<z.ZodBoolean>;
56
+ profilePicture: z.ZodNullable<z.ZodString>;
57
+ followers: z.ZodNullable<z.ZodNumber>;
58
+ following: z.ZodNullable<z.ZodNumber>;
59
+ tweetsCount: z.ZodNullable<z.ZodNumber>;
60
+ url: z.ZodNullable<z.ZodString>;
61
+ createdAt: z.ZodNullable<z.ZodString>;
62
+ }, "strip", z.ZodTypeAny, {
63
+ description: string | null;
64
+ name: string | null;
65
+ url: string | null;
66
+ id: string | null;
67
+ following: number | null;
68
+ userName: string | null;
69
+ isVerified: boolean | null;
70
+ isBlueVerified: boolean | null;
71
+ profilePicture: string | null;
72
+ followers: number | null;
73
+ tweetsCount: number | null;
74
+ createdAt: string | null;
75
+ }, {
76
+ description: string | null;
77
+ name: string | null;
78
+ url: string | null;
79
+ id: string | null;
80
+ following: number | null;
81
+ userName: string | null;
82
+ isVerified: boolean | null;
83
+ isBlueVerified: boolean | null;
84
+ profilePicture: string | null;
85
+ followers: number | null;
86
+ tweetsCount: number | null;
87
+ createdAt: string | null;
88
+ }>>;
89
+ createdAt: z.ZodNullable<z.ZodString>;
90
+ stats: z.ZodNullable<z.ZodObject<{
91
+ retweetCount: z.ZodNullable<z.ZodNumber>;
92
+ replyCount: z.ZodNullable<z.ZodNumber>;
93
+ likeCount: z.ZodNullable<z.ZodNumber>;
94
+ quoteCount: z.ZodNullable<z.ZodNumber>;
95
+ viewCount: z.ZodNullable<z.ZodNumber>;
96
+ bookmarkCount: z.ZodNullable<z.ZodNumber>;
97
+ }, "strip", z.ZodTypeAny, {
98
+ viewCount: number | null;
99
+ retweetCount: number | null;
100
+ replyCount: number | null;
101
+ likeCount: number | null;
102
+ quoteCount: number | null;
103
+ bookmarkCount: number | null;
104
+ }, {
105
+ viewCount: number | null;
106
+ retweetCount: number | null;
107
+ replyCount: number | null;
108
+ likeCount: number | null;
109
+ quoteCount: number | null;
110
+ bookmarkCount: number | null;
111
+ }>>;
112
+ lang: z.ZodNullable<z.ZodString>;
113
+ media: z.ZodNullable<z.ZodArray<z.ZodObject<{
114
+ type: z.ZodNullable<z.ZodString>;
115
+ url: z.ZodNullable<z.ZodString>;
116
+ width: z.ZodNullable<z.ZodNumber>;
117
+ height: z.ZodNullable<z.ZodNumber>;
118
+ duration: z.ZodNullable<z.ZodNumber>;
119
+ }, "strip", z.ZodTypeAny, {
120
+ duration: number | null;
121
+ type: string | null;
122
+ url: string | null;
123
+ width: number | null;
124
+ height: number | null;
125
+ }, {
126
+ duration: number | null;
127
+ type: string | null;
128
+ url: string | null;
129
+ width: number | null;
130
+ height: number | null;
131
+ }>, "many">>;
132
+ entities: z.ZodNullable<z.ZodObject<{
133
+ hashtags: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
134
+ urls: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
135
+ mentions: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
136
+ }, "strip", z.ZodTypeAny, {
137
+ hashtags: string[] | null;
138
+ mentions: string[] | null;
139
+ urls: string[] | null;
140
+ }, {
141
+ hashtags: string[] | null;
142
+ mentions: string[] | null;
143
+ urls: string[] | null;
144
+ }>>;
145
+ isRetweet: z.ZodNullable<z.ZodBoolean>;
146
+ isQuote: z.ZodNullable<z.ZodBoolean>;
147
+ isReply: z.ZodNullable<z.ZodBoolean>;
148
+ }, "strip", z.ZodTypeAny, {
149
+ stats: {
150
+ viewCount: number | null;
151
+ retweetCount: number | null;
152
+ replyCount: number | null;
153
+ likeCount: number | null;
154
+ quoteCount: number | null;
155
+ bookmarkCount: number | null;
156
+ } | null;
157
+ url: string | null;
158
+ text: string | null;
159
+ id: string | null;
160
+ entities: {
161
+ hashtags: string[] | null;
162
+ mentions: string[] | null;
163
+ urls: string[] | null;
164
+ } | null;
165
+ author: {
166
+ description: string | null;
167
+ name: string | null;
168
+ url: string | null;
169
+ id: string | null;
170
+ following: number | null;
171
+ userName: string | null;
172
+ isVerified: boolean | null;
173
+ isBlueVerified: boolean | null;
174
+ profilePicture: string | null;
175
+ followers: number | null;
176
+ tweetsCount: number | null;
177
+ createdAt: string | null;
178
+ } | null;
179
+ media: {
180
+ duration: number | null;
181
+ type: string | null;
182
+ url: string | null;
183
+ width: number | null;
184
+ height: number | null;
185
+ }[] | null;
186
+ createdAt: string | null;
187
+ lang: string | null;
188
+ isRetweet: boolean | null;
189
+ isQuote: boolean | null;
190
+ isReply: boolean | null;
191
+ }, {
192
+ stats: {
193
+ viewCount: number | null;
194
+ retweetCount: number | null;
195
+ replyCount: number | null;
196
+ likeCount: number | null;
197
+ quoteCount: number | null;
198
+ bookmarkCount: number | null;
199
+ } | null;
200
+ url: string | null;
201
+ text: string | null;
202
+ id: string | null;
203
+ entities: {
204
+ hashtags: string[] | null;
205
+ mentions: string[] | null;
206
+ urls: string[] | null;
207
+ } | null;
208
+ author: {
209
+ description: string | null;
210
+ name: string | null;
211
+ url: string | null;
212
+ id: string | null;
213
+ following: number | null;
214
+ userName: string | null;
215
+ isVerified: boolean | null;
216
+ isBlueVerified: boolean | null;
217
+ profilePicture: string | null;
218
+ followers: number | null;
219
+ tweetsCount: number | null;
220
+ createdAt: string | null;
221
+ } | null;
222
+ media: {
223
+ duration: number | null;
224
+ type: string | null;
225
+ url: string | null;
226
+ width: number | null;
227
+ height: number | null;
228
+ }[] | null;
229
+ createdAt: string | null;
230
+ lang: string | null;
231
+ isRetweet: boolean | null;
232
+ isQuote: boolean | null;
233
+ isReply: boolean | null;
234
+ }>;
235
+ declare const TwitterToolParamsSchema: z.ZodObject<{
236
+ operation: z.ZodEnum<["scrapeProfile", "search", "scrapeUrl"]>;
237
+ twitterHandles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
238
+ searchTerms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
239
+ startUrls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
240
+ maxItems: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
241
+ sort: z.ZodOptional<z.ZodEnum<["Top", "Latest"]>>;
242
+ tweetLanguage: z.ZodOptional<z.ZodString>;
243
+ credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
244
+ }, "strip", z.ZodTypeAny, {
245
+ operation: "search" | "scrapeProfile" | "scrapeUrl";
246
+ sort?: "Top" | "Latest" | undefined;
247
+ maxItems?: number | undefined;
248
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
249
+ startUrls?: string[] | undefined;
250
+ searchTerms?: string[] | undefined;
251
+ twitterHandles?: string[] | undefined;
252
+ tweetLanguage?: string | undefined;
253
+ }, {
254
+ operation: "search" | "scrapeProfile" | "scrapeUrl";
255
+ sort?: "Top" | "Latest" | undefined;
256
+ maxItems?: number | undefined;
257
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
258
+ startUrls?: string[] | undefined;
259
+ searchTerms?: string[] | undefined;
260
+ twitterHandles?: string[] | undefined;
261
+ tweetLanguage?: string | undefined;
262
+ }>;
263
+ declare const TwitterToolResultSchema: z.ZodObject<{
264
+ operation: z.ZodEnum<["scrapeProfile", "search", "scrapeUrl"]>;
265
+ tweets: z.ZodArray<z.ZodObject<{
266
+ id: z.ZodNullable<z.ZodString>;
267
+ url: z.ZodNullable<z.ZodString>;
268
+ text: z.ZodNullable<z.ZodString>;
269
+ author: z.ZodNullable<z.ZodObject<{
270
+ id: z.ZodNullable<z.ZodString>;
271
+ name: z.ZodNullable<z.ZodString>;
272
+ userName: z.ZodNullable<z.ZodString>;
273
+ description: z.ZodNullable<z.ZodString>;
274
+ isVerified: z.ZodNullable<z.ZodBoolean>;
275
+ isBlueVerified: z.ZodNullable<z.ZodBoolean>;
276
+ profilePicture: z.ZodNullable<z.ZodString>;
277
+ followers: z.ZodNullable<z.ZodNumber>;
278
+ following: z.ZodNullable<z.ZodNumber>;
279
+ tweetsCount: z.ZodNullable<z.ZodNumber>;
280
+ url: z.ZodNullable<z.ZodString>;
281
+ createdAt: z.ZodNullable<z.ZodString>;
282
+ }, "strip", z.ZodTypeAny, {
283
+ description: string | null;
284
+ name: string | null;
285
+ url: string | null;
286
+ id: string | null;
287
+ following: number | null;
288
+ userName: string | null;
289
+ isVerified: boolean | null;
290
+ isBlueVerified: boolean | null;
291
+ profilePicture: string | null;
292
+ followers: number | null;
293
+ tweetsCount: number | null;
294
+ createdAt: string | null;
295
+ }, {
296
+ description: string | null;
297
+ name: string | null;
298
+ url: string | null;
299
+ id: string | null;
300
+ following: number | null;
301
+ userName: string | null;
302
+ isVerified: boolean | null;
303
+ isBlueVerified: boolean | null;
304
+ profilePicture: string | null;
305
+ followers: number | null;
306
+ tweetsCount: number | null;
307
+ createdAt: string | null;
308
+ }>>;
309
+ createdAt: z.ZodNullable<z.ZodString>;
310
+ stats: z.ZodNullable<z.ZodObject<{
311
+ retweetCount: z.ZodNullable<z.ZodNumber>;
312
+ replyCount: z.ZodNullable<z.ZodNumber>;
313
+ likeCount: z.ZodNullable<z.ZodNumber>;
314
+ quoteCount: z.ZodNullable<z.ZodNumber>;
315
+ viewCount: z.ZodNullable<z.ZodNumber>;
316
+ bookmarkCount: z.ZodNullable<z.ZodNumber>;
317
+ }, "strip", z.ZodTypeAny, {
318
+ viewCount: number | null;
319
+ retweetCount: number | null;
320
+ replyCount: number | null;
321
+ likeCount: number | null;
322
+ quoteCount: number | null;
323
+ bookmarkCount: number | null;
324
+ }, {
325
+ viewCount: number | null;
326
+ retweetCount: number | null;
327
+ replyCount: number | null;
328
+ likeCount: number | null;
329
+ quoteCount: number | null;
330
+ bookmarkCount: number | null;
331
+ }>>;
332
+ lang: z.ZodNullable<z.ZodString>;
333
+ media: z.ZodNullable<z.ZodArray<z.ZodObject<{
334
+ type: z.ZodNullable<z.ZodString>;
335
+ url: z.ZodNullable<z.ZodString>;
336
+ width: z.ZodNullable<z.ZodNumber>;
337
+ height: z.ZodNullable<z.ZodNumber>;
338
+ duration: z.ZodNullable<z.ZodNumber>;
339
+ }, "strip", z.ZodTypeAny, {
340
+ duration: number | null;
341
+ type: string | null;
342
+ url: string | null;
343
+ width: number | null;
344
+ height: number | null;
345
+ }, {
346
+ duration: number | null;
347
+ type: string | null;
348
+ url: string | null;
349
+ width: number | null;
350
+ height: number | null;
351
+ }>, "many">>;
352
+ entities: z.ZodNullable<z.ZodObject<{
353
+ hashtags: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
354
+ urls: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
355
+ mentions: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
356
+ }, "strip", z.ZodTypeAny, {
357
+ hashtags: string[] | null;
358
+ mentions: string[] | null;
359
+ urls: string[] | null;
360
+ }, {
361
+ hashtags: string[] | null;
362
+ mentions: string[] | null;
363
+ urls: string[] | null;
364
+ }>>;
365
+ isRetweet: z.ZodNullable<z.ZodBoolean>;
366
+ isQuote: z.ZodNullable<z.ZodBoolean>;
367
+ isReply: z.ZodNullable<z.ZodBoolean>;
368
+ }, "strip", z.ZodTypeAny, {
369
+ stats: {
370
+ viewCount: number | null;
371
+ retweetCount: number | null;
372
+ replyCount: number | null;
373
+ likeCount: number | null;
374
+ quoteCount: number | null;
375
+ bookmarkCount: number | null;
376
+ } | null;
377
+ url: string | null;
378
+ text: string | null;
379
+ id: string | null;
380
+ entities: {
381
+ hashtags: string[] | null;
382
+ mentions: string[] | null;
383
+ urls: string[] | null;
384
+ } | null;
385
+ author: {
386
+ description: string | null;
387
+ name: string | null;
388
+ url: string | null;
389
+ id: string | null;
390
+ following: number | null;
391
+ userName: string | null;
392
+ isVerified: boolean | null;
393
+ isBlueVerified: boolean | null;
394
+ profilePicture: string | null;
395
+ followers: number | null;
396
+ tweetsCount: number | null;
397
+ createdAt: string | null;
398
+ } | null;
399
+ media: {
400
+ duration: number | null;
401
+ type: string | null;
402
+ url: string | null;
403
+ width: number | null;
404
+ height: number | null;
405
+ }[] | null;
406
+ createdAt: string | null;
407
+ lang: string | null;
408
+ isRetweet: boolean | null;
409
+ isQuote: boolean | null;
410
+ isReply: boolean | null;
411
+ }, {
412
+ stats: {
413
+ viewCount: number | null;
414
+ retweetCount: number | null;
415
+ replyCount: number | null;
416
+ likeCount: number | null;
417
+ quoteCount: number | null;
418
+ bookmarkCount: number | null;
419
+ } | null;
420
+ url: string | null;
421
+ text: string | null;
422
+ id: string | null;
423
+ entities: {
424
+ hashtags: string[] | null;
425
+ mentions: string[] | null;
426
+ urls: string[] | null;
427
+ } | null;
428
+ author: {
429
+ description: string | null;
430
+ name: string | null;
431
+ url: string | null;
432
+ id: string | null;
433
+ following: number | null;
434
+ userName: string | null;
435
+ isVerified: boolean | null;
436
+ isBlueVerified: boolean | null;
437
+ profilePicture: string | null;
438
+ followers: number | null;
439
+ tweetsCount: number | null;
440
+ createdAt: string | null;
441
+ } | null;
442
+ media: {
443
+ duration: number | null;
444
+ type: string | null;
445
+ url: string | null;
446
+ width: number | null;
447
+ height: number | null;
448
+ }[] | null;
449
+ createdAt: string | null;
450
+ lang: string | null;
451
+ isRetweet: boolean | null;
452
+ isQuote: boolean | null;
453
+ isReply: boolean | null;
454
+ }>, "many">;
455
+ totalTweets: z.ZodNumber;
456
+ success: z.ZodBoolean;
457
+ error: z.ZodString;
458
+ }, "strip", z.ZodTypeAny, {
459
+ error: string;
460
+ success: boolean;
461
+ operation: "search" | "scrapeProfile" | "scrapeUrl";
462
+ tweets: {
463
+ stats: {
464
+ viewCount: number | null;
465
+ retweetCount: number | null;
466
+ replyCount: number | null;
467
+ likeCount: number | null;
468
+ quoteCount: number | null;
469
+ bookmarkCount: number | null;
470
+ } | null;
471
+ url: string | null;
472
+ text: string | null;
473
+ id: string | null;
474
+ entities: {
475
+ hashtags: string[] | null;
476
+ mentions: string[] | null;
477
+ urls: string[] | null;
478
+ } | null;
479
+ author: {
480
+ description: string | null;
481
+ name: string | null;
482
+ url: string | null;
483
+ id: string | null;
484
+ following: number | null;
485
+ userName: string | null;
486
+ isVerified: boolean | null;
487
+ isBlueVerified: boolean | null;
488
+ profilePicture: string | null;
489
+ followers: number | null;
490
+ tweetsCount: number | null;
491
+ createdAt: string | null;
492
+ } | null;
493
+ media: {
494
+ duration: number | null;
495
+ type: string | null;
496
+ url: string | null;
497
+ width: number | null;
498
+ height: number | null;
499
+ }[] | null;
500
+ createdAt: string | null;
501
+ lang: string | null;
502
+ isRetweet: boolean | null;
503
+ isQuote: boolean | null;
504
+ isReply: boolean | null;
505
+ }[];
506
+ totalTweets: number;
507
+ }, {
508
+ error: string;
509
+ success: boolean;
510
+ operation: "search" | "scrapeProfile" | "scrapeUrl";
511
+ tweets: {
512
+ stats: {
513
+ viewCount: number | null;
514
+ retweetCount: number | null;
515
+ replyCount: number | null;
516
+ likeCount: number | null;
517
+ quoteCount: number | null;
518
+ bookmarkCount: number | null;
519
+ } | null;
520
+ url: string | null;
521
+ text: string | null;
522
+ id: string | null;
523
+ entities: {
524
+ hashtags: string[] | null;
525
+ mentions: string[] | null;
526
+ urls: string[] | null;
527
+ } | null;
528
+ author: {
529
+ description: string | null;
530
+ name: string | null;
531
+ url: string | null;
532
+ id: string | null;
533
+ following: number | null;
534
+ userName: string | null;
535
+ isVerified: boolean | null;
536
+ isBlueVerified: boolean | null;
537
+ profilePicture: string | null;
538
+ followers: number | null;
539
+ tweetsCount: number | null;
540
+ createdAt: string | null;
541
+ } | null;
542
+ media: {
543
+ duration: number | null;
544
+ type: string | null;
545
+ url: string | null;
546
+ width: number | null;
547
+ height: number | null;
548
+ }[] | null;
549
+ createdAt: string | null;
550
+ lang: string | null;
551
+ isRetweet: boolean | null;
552
+ isQuote: boolean | null;
553
+ isReply: boolean | null;
554
+ }[];
555
+ totalTweets: number;
556
+ }>;
557
+ type TwitterToolParams = z.output<typeof TwitterToolParamsSchema>;
558
+ type TwitterToolResult = z.output<typeof TwitterToolResultSchema>;
559
+ type TwitterToolParamsInput = z.input<typeof TwitterToolParamsSchema>;
560
+ export type TwitterTweet = z.output<typeof TwitterTweetSchema>;
561
+ export type TwitterUser = z.output<typeof TwitterUserSchema>;
562
+ export type TwitterOperationResult<T extends TwitterToolParams['operation']> = Extract<TwitterToolResult, {
563
+ operation: T;
564
+ }>;
565
+ /**
566
+ * Generic Twitter/X scraping tool with unified interface
567
+ *
568
+ * This tool abstracts away the underlying scraping service (currently Apify)
569
+ * and provides a simple, opinionated interface for Twitter data extraction.
570
+ *
571
+ * Supports three operations:
572
+ * - scrapeProfile: Scrape user profiles and their tweets
573
+ * - search: Search for tweets by keywords or hashtags
574
+ * - scrapeUrl: Scrape specific Twitter URLs (tweets, profiles, searches, lists)
575
+ *
576
+ * Future versions can add support for other services (BrightData, custom scrapers)
577
+ * while maintaining the same interface.
578
+ */
579
+ export declare class TwitterTool extends ToolBubble<TwitterToolParams, TwitterToolResult> {
580
+ static readonly bubbleName: BubbleName;
581
+ static readonly schema: z.ZodObject<{
582
+ operation: z.ZodEnum<["scrapeProfile", "search", "scrapeUrl"]>;
583
+ twitterHandles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
584
+ searchTerms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
585
+ startUrls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
586
+ maxItems: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
587
+ sort: z.ZodOptional<z.ZodEnum<["Top", "Latest"]>>;
588
+ tweetLanguage: z.ZodOptional<z.ZodString>;
589
+ credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
590
+ }, "strip", z.ZodTypeAny, {
591
+ operation: "search" | "scrapeProfile" | "scrapeUrl";
592
+ sort?: "Top" | "Latest" | undefined;
593
+ maxItems?: number | undefined;
594
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
595
+ startUrls?: string[] | undefined;
596
+ searchTerms?: string[] | undefined;
597
+ twitterHandles?: string[] | undefined;
598
+ tweetLanguage?: string | undefined;
599
+ }, {
600
+ operation: "search" | "scrapeProfile" | "scrapeUrl";
601
+ sort?: "Top" | "Latest" | undefined;
602
+ maxItems?: number | undefined;
603
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
604
+ startUrls?: string[] | undefined;
605
+ searchTerms?: string[] | undefined;
606
+ twitterHandles?: string[] | undefined;
607
+ tweetLanguage?: string | undefined;
608
+ }>;
609
+ static readonly resultSchema: z.ZodObject<{
610
+ operation: z.ZodEnum<["scrapeProfile", "search", "scrapeUrl"]>;
611
+ tweets: z.ZodArray<z.ZodObject<{
612
+ id: z.ZodNullable<z.ZodString>;
613
+ url: z.ZodNullable<z.ZodString>;
614
+ text: z.ZodNullable<z.ZodString>;
615
+ author: z.ZodNullable<z.ZodObject<{
616
+ id: z.ZodNullable<z.ZodString>;
617
+ name: z.ZodNullable<z.ZodString>;
618
+ userName: z.ZodNullable<z.ZodString>;
619
+ description: z.ZodNullable<z.ZodString>;
620
+ isVerified: z.ZodNullable<z.ZodBoolean>;
621
+ isBlueVerified: z.ZodNullable<z.ZodBoolean>;
622
+ profilePicture: z.ZodNullable<z.ZodString>;
623
+ followers: z.ZodNullable<z.ZodNumber>;
624
+ following: z.ZodNullable<z.ZodNumber>;
625
+ tweetsCount: z.ZodNullable<z.ZodNumber>;
626
+ url: z.ZodNullable<z.ZodString>;
627
+ createdAt: z.ZodNullable<z.ZodString>;
628
+ }, "strip", z.ZodTypeAny, {
629
+ description: string | null;
630
+ name: string | null;
631
+ url: string | null;
632
+ id: string | null;
633
+ following: number | null;
634
+ userName: string | null;
635
+ isVerified: boolean | null;
636
+ isBlueVerified: boolean | null;
637
+ profilePicture: string | null;
638
+ followers: number | null;
639
+ tweetsCount: number | null;
640
+ createdAt: string | null;
641
+ }, {
642
+ description: string | null;
643
+ name: string | null;
644
+ url: string | null;
645
+ id: string | null;
646
+ following: number | null;
647
+ userName: string | null;
648
+ isVerified: boolean | null;
649
+ isBlueVerified: boolean | null;
650
+ profilePicture: string | null;
651
+ followers: number | null;
652
+ tweetsCount: number | null;
653
+ createdAt: string | null;
654
+ }>>;
655
+ createdAt: z.ZodNullable<z.ZodString>;
656
+ stats: z.ZodNullable<z.ZodObject<{
657
+ retweetCount: z.ZodNullable<z.ZodNumber>;
658
+ replyCount: z.ZodNullable<z.ZodNumber>;
659
+ likeCount: z.ZodNullable<z.ZodNumber>;
660
+ quoteCount: z.ZodNullable<z.ZodNumber>;
661
+ viewCount: z.ZodNullable<z.ZodNumber>;
662
+ bookmarkCount: z.ZodNullable<z.ZodNumber>;
663
+ }, "strip", z.ZodTypeAny, {
664
+ viewCount: number | null;
665
+ retweetCount: number | null;
666
+ replyCount: number | null;
667
+ likeCount: number | null;
668
+ quoteCount: number | null;
669
+ bookmarkCount: number | null;
670
+ }, {
671
+ viewCount: number | null;
672
+ retweetCount: number | null;
673
+ replyCount: number | null;
674
+ likeCount: number | null;
675
+ quoteCount: number | null;
676
+ bookmarkCount: number | null;
677
+ }>>;
678
+ lang: z.ZodNullable<z.ZodString>;
679
+ media: z.ZodNullable<z.ZodArray<z.ZodObject<{
680
+ type: z.ZodNullable<z.ZodString>;
681
+ url: z.ZodNullable<z.ZodString>;
682
+ width: z.ZodNullable<z.ZodNumber>;
683
+ height: z.ZodNullable<z.ZodNumber>;
684
+ duration: z.ZodNullable<z.ZodNumber>;
685
+ }, "strip", z.ZodTypeAny, {
686
+ duration: number | null;
687
+ type: string | null;
688
+ url: string | null;
689
+ width: number | null;
690
+ height: number | null;
691
+ }, {
692
+ duration: number | null;
693
+ type: string | null;
694
+ url: string | null;
695
+ width: number | null;
696
+ height: number | null;
697
+ }>, "many">>;
698
+ entities: z.ZodNullable<z.ZodObject<{
699
+ hashtags: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
700
+ urls: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
701
+ mentions: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
702
+ }, "strip", z.ZodTypeAny, {
703
+ hashtags: string[] | null;
704
+ mentions: string[] | null;
705
+ urls: string[] | null;
706
+ }, {
707
+ hashtags: string[] | null;
708
+ mentions: string[] | null;
709
+ urls: string[] | null;
710
+ }>>;
711
+ isRetweet: z.ZodNullable<z.ZodBoolean>;
712
+ isQuote: z.ZodNullable<z.ZodBoolean>;
713
+ isReply: z.ZodNullable<z.ZodBoolean>;
714
+ }, "strip", z.ZodTypeAny, {
715
+ stats: {
716
+ viewCount: number | null;
717
+ retweetCount: number | null;
718
+ replyCount: number | null;
719
+ likeCount: number | null;
720
+ quoteCount: number | null;
721
+ bookmarkCount: number | null;
722
+ } | null;
723
+ url: string | null;
724
+ text: string | null;
725
+ id: string | null;
726
+ entities: {
727
+ hashtags: string[] | null;
728
+ mentions: string[] | null;
729
+ urls: string[] | null;
730
+ } | null;
731
+ author: {
732
+ description: string | null;
733
+ name: string | null;
734
+ url: string | null;
735
+ id: string | null;
736
+ following: number | null;
737
+ userName: string | null;
738
+ isVerified: boolean | null;
739
+ isBlueVerified: boolean | null;
740
+ profilePicture: string | null;
741
+ followers: number | null;
742
+ tweetsCount: number | null;
743
+ createdAt: string | null;
744
+ } | null;
745
+ media: {
746
+ duration: number | null;
747
+ type: string | null;
748
+ url: string | null;
749
+ width: number | null;
750
+ height: number | null;
751
+ }[] | null;
752
+ createdAt: string | null;
753
+ lang: string | null;
754
+ isRetweet: boolean | null;
755
+ isQuote: boolean | null;
756
+ isReply: boolean | null;
757
+ }, {
758
+ stats: {
759
+ viewCount: number | null;
760
+ retweetCount: number | null;
761
+ replyCount: number | null;
762
+ likeCount: number | null;
763
+ quoteCount: number | null;
764
+ bookmarkCount: number | null;
765
+ } | null;
766
+ url: string | null;
767
+ text: string | null;
768
+ id: string | null;
769
+ entities: {
770
+ hashtags: string[] | null;
771
+ mentions: string[] | null;
772
+ urls: string[] | null;
773
+ } | null;
774
+ author: {
775
+ description: string | null;
776
+ name: string | null;
777
+ url: string | null;
778
+ id: string | null;
779
+ following: number | null;
780
+ userName: string | null;
781
+ isVerified: boolean | null;
782
+ isBlueVerified: boolean | null;
783
+ profilePicture: string | null;
784
+ followers: number | null;
785
+ tweetsCount: number | null;
786
+ createdAt: string | null;
787
+ } | null;
788
+ media: {
789
+ duration: number | null;
790
+ type: string | null;
791
+ url: string | null;
792
+ width: number | null;
793
+ height: number | null;
794
+ }[] | null;
795
+ createdAt: string | null;
796
+ lang: string | null;
797
+ isRetweet: boolean | null;
798
+ isQuote: boolean | null;
799
+ isReply: boolean | null;
800
+ }>, "many">;
801
+ totalTweets: z.ZodNumber;
802
+ success: z.ZodBoolean;
803
+ error: z.ZodString;
804
+ }, "strip", z.ZodTypeAny, {
805
+ error: string;
806
+ success: boolean;
807
+ operation: "search" | "scrapeProfile" | "scrapeUrl";
808
+ tweets: {
809
+ stats: {
810
+ viewCount: number | null;
811
+ retweetCount: number | null;
812
+ replyCount: number | null;
813
+ likeCount: number | null;
814
+ quoteCount: number | null;
815
+ bookmarkCount: number | null;
816
+ } | null;
817
+ url: string | null;
818
+ text: string | null;
819
+ id: string | null;
820
+ entities: {
821
+ hashtags: string[] | null;
822
+ mentions: string[] | null;
823
+ urls: string[] | null;
824
+ } | null;
825
+ author: {
826
+ description: string | null;
827
+ name: string | null;
828
+ url: string | null;
829
+ id: string | null;
830
+ following: number | null;
831
+ userName: string | null;
832
+ isVerified: boolean | null;
833
+ isBlueVerified: boolean | null;
834
+ profilePicture: string | null;
835
+ followers: number | null;
836
+ tweetsCount: number | null;
837
+ createdAt: string | null;
838
+ } | null;
839
+ media: {
840
+ duration: number | null;
841
+ type: string | null;
842
+ url: string | null;
843
+ width: number | null;
844
+ height: number | null;
845
+ }[] | null;
846
+ createdAt: string | null;
847
+ lang: string | null;
848
+ isRetweet: boolean | null;
849
+ isQuote: boolean | null;
850
+ isReply: boolean | null;
851
+ }[];
852
+ totalTweets: number;
853
+ }, {
854
+ error: string;
855
+ success: boolean;
856
+ operation: "search" | "scrapeProfile" | "scrapeUrl";
857
+ tweets: {
858
+ stats: {
859
+ viewCount: number | null;
860
+ retweetCount: number | null;
861
+ replyCount: number | null;
862
+ likeCount: number | null;
863
+ quoteCount: number | null;
864
+ bookmarkCount: number | null;
865
+ } | null;
866
+ url: string | null;
867
+ text: string | null;
868
+ id: string | null;
869
+ entities: {
870
+ hashtags: string[] | null;
871
+ mentions: string[] | null;
872
+ urls: string[] | null;
873
+ } | null;
874
+ author: {
875
+ description: string | null;
876
+ name: string | null;
877
+ url: string | null;
878
+ id: string | null;
879
+ following: number | null;
880
+ userName: string | null;
881
+ isVerified: boolean | null;
882
+ isBlueVerified: boolean | null;
883
+ profilePicture: string | null;
884
+ followers: number | null;
885
+ tweetsCount: number | null;
886
+ createdAt: string | null;
887
+ } | null;
888
+ media: {
889
+ duration: number | null;
890
+ type: string | null;
891
+ url: string | null;
892
+ width: number | null;
893
+ height: number | null;
894
+ }[] | null;
895
+ createdAt: string | null;
896
+ lang: string | null;
897
+ isRetweet: boolean | null;
898
+ isQuote: boolean | null;
899
+ isReply: boolean | null;
900
+ }[];
901
+ totalTweets: number;
902
+ }>;
903
+ static readonly shortDescription = "Scrape Twitter/X profiles, tweets, and search results with a simple, unified interface.";
904
+ static readonly longDescription = "\n Universal Twitter/X scraping tool that provides a simple, opinionated interface for extracting Twitter data.\n \n **OPERATIONS:**\n 1. **scrapeProfile**: Scrape user profiles and their tweets\n - Get tweets from specific user handles\n - Track influencer or brand accounts\n - Monitor user activity and engagement\n \n 2. **search**: Search for tweets by keywords or hashtags\n - Find tweets by search terms or hashtags\n - Monitor brand mentions and campaigns\n - Research trending topics and conversations\n - Supports advanced search syntax (see Twitter advanced search)\n \n 3. **scrapeUrl**: Scrape specific Twitter URLs\n - Scrape individual tweets, profiles, search results, or lists\n - Extract data from specific Twitter URLs\n - Useful for targeted data collection\n \n **WHEN TO USE THIS TOOL:**\n - **Any Twitter scraping task** - profiles, tweets, searches, engagement data\n - **Social media research** - influencer analysis, competitor monitoring\n - **Content gathering** - tweets, replies, retweets, engagement metrics\n - **Market research** - brand mentions, user sentiment on Twitter\n - **Trend analysis** - hashtag tracking, viral content discovery\n - **Real-time monitoring** - track conversations and mentions\n \n **DO NOT USE research-agent-tool or web-scrape-tool for Twitter** - This tool is specifically optimized for Twitter and provides:\n - Unified data format across all Twitter sources\n - Automatic service selection and optimization\n - Rate limiting and reliability handling\n - Clean, structured data ready for analysis\n \n **Simple Interface:**\n Just specify the operation and provide Twitter handles, search terms, or URLs to get back clean, structured data.\n The tool automatically handles:\n - Handle normalization (accepts handles with or without @)\n - Service selection (currently Apify, future: multiple sources)\n - Data transformation to unified format\n - Error handling and retries\n \n **What you get:**\n - Tweets with text, engagement stats, timestamps\n - Author information (for scrapeProfile operation)\n - Hashtags, mentions, and URLs\n - Media attachments\n - Language and metadata\n \n **Use cases:**\n - Influencer analysis and discovery\n - Brand monitoring and sentiment analysis\n - Competitor research on Twitter\n - Content strategy and trend analysis\n - Market research through Twitter data\n - Campaign performance tracking\n - Hashtag research and optimization\n - Real-time event monitoring\n \n The tool uses best-available services behind the scenes while maintaining a consistent, simple interface.\n ";
905
+ static readonly alias = "twitter";
906
+ static readonly type = "tool";
907
+ constructor(params?: TwitterToolParamsInput, context?: BubbleContext);
908
+ performAction(): Promise<TwitterToolResult>;
909
+ /**
910
+ * Create an error result
911
+ */
912
+ private createErrorResult;
913
+ /**
914
+ * Handle scrapeProfile operation
915
+ */
916
+ private handleScrapeProfile;
917
+ /**
918
+ * Handle search operation
919
+ */
920
+ private handleSearch;
921
+ /**
922
+ * Handle scrapeUrl operation
923
+ */
924
+ private handleScrapeUrl;
925
+ /**
926
+ * Scrape profiles using Apify service
927
+ * This is the current implementation - future versions could add other services
928
+ */
929
+ private scrapeWithApifyProfiles;
930
+ /**
931
+ * Search tweets using Apify service
932
+ * This is the current implementation - future versions could add other services
933
+ */
934
+ private scrapeWithApifySearch;
935
+ /**
936
+ * Scrape URLs using Apify service
937
+ * This is the current implementation - future versions could add other services
938
+ */
939
+ private scrapeWithApifyUrls;
940
+ /**
941
+ * Normalize Twitter handles (remove @ if present)
942
+ */
943
+ private normalizeHandles;
944
+ private transformTweets;
945
+ }
946
+ export {};
947
+ //# sourceMappingURL=twitter-tool.d.ts.map