@bubblelab/bubble-core 0.1.9 → 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 (355) hide show
  1. package/dist/bubble-bundle.d.ts +633 -1658
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +165 -43
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubble-flow/bubble-flow-class.d.ts +22 -1
  6. package/dist/bubble-flow/bubble-flow-class.d.ts.map +1 -1
  7. package/dist/bubble-flow/bubble-flow-class.js +36 -0
  8. package/dist/bubble-flow/bubble-flow-class.js.map +1 -1
  9. package/dist/bubble-flow/sample/data-analyst-flow.d.ts +1 -1
  10. package/dist/bubble-flow/sample/data-analyst-flow.d.ts.map +1 -1
  11. package/dist/bubble-flow/sample/error-ts.d.ts +1 -1
  12. package/dist/bubble-flow/sample/error-ts.d.ts.map +1 -1
  13. package/dist/bubble-flow/sample/sanitytest.d.ts +1 -1
  14. package/dist/bubble-flow/sample/sanitytest.d.ts.map +1 -1
  15. package/dist/bubble-flow/sample/simple-webhook-2.d.ts +1 -1
  16. package/dist/bubble-flow/sample/simple-webhook-2.d.ts.map +1 -1
  17. package/dist/bubble-flow/sample/simple-webhook.d.ts +1 -1
  18. package/dist/bubble-flow/sample/simple-webhook.d.ts.map +1 -1
  19. package/dist/bubble-flow/sample/simplified-data-analysis.flow.d.ts +1 -1
  20. package/dist/bubble-flow/sample/simplified-data-analysis.flow.d.ts.map +1 -1
  21. package/dist/bubble-flow/sample/simplified-data-analysis.flow.js +6 -3
  22. package/dist/bubble-flow/sample/simplified-data-analysis.flow.js.map +1 -1
  23. package/dist/bubble-flow/sample/slack-v0.1.d.ts +1 -1
  24. package/dist/bubble-flow/sample/slack-v0.1.d.ts.map +1 -1
  25. package/dist/bubble-flow/sample/slackagenttest.d.ts +1 -1
  26. package/dist/bubble-flow/sample/slackagenttest.d.ts.map +1 -1
  27. package/dist/bubbles/service-bubble/agi-inc.d.ts +1121 -0
  28. package/dist/bubbles/service-bubble/agi-inc.d.ts.map +1 -0
  29. package/dist/bubbles/service-bubble/agi-inc.js +730 -0
  30. package/dist/bubbles/service-bubble/agi-inc.js.map +1 -0
  31. package/dist/bubbles/service-bubble/ai-agent.d.ts +297 -85
  32. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  33. package/dist/bubbles/service-bubble/ai-agent.js +535 -399
  34. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
  35. package/dist/bubbles/service-bubble/airtable.d.ts +1753 -0
  36. package/dist/bubbles/service-bubble/airtable.d.ts.map +1 -0
  37. package/dist/bubbles/service-bubble/airtable.js +1173 -0
  38. package/dist/bubbles/service-bubble/airtable.js.map +1 -0
  39. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts +240 -0
  40. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts.map +1 -0
  41. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.js +119 -0
  42. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.js.map +1 -0
  43. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +38 -38
  44. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +56 -56
  45. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +137 -0
  46. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts.map +1 -0
  47. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.js +81 -0
  48. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.js.map +1 -0
  49. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +27 -27
  50. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +38 -38
  51. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +488 -0
  52. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts.map +1 -0
  53. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.js +463 -0
  54. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.js.map +1 -0
  55. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +262 -0
  56. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts.map +1 -0
  57. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.js +291 -0
  58. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.js.map +1 -0
  59. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +184 -0
  60. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts.map +1 -0
  61. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.js +145 -0
  62. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.js.map +1 -0
  63. package/dist/bubbles/service-bubble/apify/actors/youtube-transcript-scraper.d.ts +52 -0
  64. package/dist/bubbles/service-bubble/apify/actors/youtube-transcript-scraper.d.ts.map +1 -0
  65. package/dist/bubbles/service-bubble/apify/actors/youtube-transcript-scraper.js +29 -0
  66. package/dist/bubbles/service-bubble/apify/actors/youtube-transcript-scraper.js.map +1 -0
  67. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +1483 -123
  68. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts.map +1 -1
  69. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js +48 -0
  70. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js.map +1 -1
  71. package/dist/bubbles/service-bubble/apify/apify.d.ts +156 -11
  72. package/dist/bubbles/service-bubble/apify/apify.d.ts.map +1 -1
  73. package/dist/bubbles/service-bubble/apify/apify.js +205 -32
  74. package/dist/bubbles/service-bubble/apify/apify.js.map +1 -1
  75. package/dist/bubbles/service-bubble/apify/index.d.ts +2 -0
  76. package/dist/bubbles/service-bubble/apify/index.d.ts.map +1 -1
  77. package/dist/bubbles/service-bubble/apify/index.js +3 -0
  78. package/dist/bubbles/service-bubble/apify/index.js.map +1 -1
  79. package/dist/bubbles/service-bubble/apify/types.js +1 -2
  80. package/dist/bubbles/service-bubble/apify/types.js.map +1 -1
  81. package/dist/bubbles/service-bubble/eleven-labs.d.ts +421 -0
  82. package/dist/bubbles/service-bubble/eleven-labs.d.ts.map +1 -0
  83. package/dist/bubbles/service-bubble/eleven-labs.js +479 -0
  84. package/dist/bubbles/service-bubble/eleven-labs.js.map +1 -0
  85. package/dist/bubbles/service-bubble/firecrawl.d.ts +37748 -0
  86. package/dist/bubbles/service-bubble/firecrawl.d.ts.map +1 -0
  87. package/dist/bubbles/service-bubble/firecrawl.js +1489 -0
  88. package/dist/bubbles/service-bubble/firecrawl.js.map +1 -0
  89. package/dist/bubbles/service-bubble/followupboss.d.ts +6822 -0
  90. package/dist/bubbles/service-bubble/followupboss.d.ts.map +1 -0
  91. package/dist/bubbles/service-bubble/followupboss.js +1394 -0
  92. package/dist/bubbles/service-bubble/followupboss.js.map +1 -0
  93. package/dist/bubbles/service-bubble/github.d.ts +2399 -0
  94. package/dist/bubbles/service-bubble/github.d.ts.map +1 -0
  95. package/dist/bubbles/service-bubble/github.js +1052 -0
  96. package/dist/bubbles/service-bubble/github.js.map +1 -0
  97. package/dist/bubbles/service-bubble/gmail.d.ts +726 -232
  98. package/dist/bubbles/service-bubble/gmail.d.ts.map +1 -1
  99. package/dist/bubbles/service-bubble/gmail.js +435 -7
  100. package/dist/bubbles/service-bubble/gmail.js.map +1 -1
  101. package/dist/bubbles/service-bubble/google-calendar.d.ts +8 -8
  102. package/dist/bubbles/service-bubble/google-drive.d.ts +270 -40
  103. package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
  104. package/dist/bubbles/service-bubble/google-drive.js +100 -78
  105. package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
  106. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +943 -0
  107. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts.map +1 -0
  108. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts +31 -0
  109. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts.map +1 -0
  110. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js +184 -0
  111. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js.map +1 -0
  112. package/dist/bubbles/service-bubble/google-sheets/google-sheets.js +401 -0
  113. package/dist/bubbles/service-bubble/google-sheets/google-sheets.js.map +1 -0
  114. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts +1024 -0
  115. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts.map +1 -0
  116. package/dist/bubbles/service-bubble/{google-sheets.js → google-sheets/google-sheets.schema.js} +45 -409
  117. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.js.map +1 -0
  118. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.d.ts +38 -0
  119. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.d.ts.map +1 -0
  120. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.js +183 -0
  121. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.js.map +1 -0
  122. package/dist/bubbles/service-bubble/google-sheets/index.d.ts +4 -0
  123. package/dist/bubbles/service-bubble/google-sheets/index.d.ts.map +1 -0
  124. package/dist/bubbles/service-bubble/google-sheets/index.js +4 -0
  125. package/dist/bubbles/service-bubble/google-sheets/index.js.map +1 -0
  126. package/dist/bubbles/service-bubble/hello-world.js +2 -2
  127. package/dist/bubbles/service-bubble/hello-world.js.map +1 -1
  128. package/dist/bubbles/service-bubble/http.d.ts +6 -6
  129. package/dist/bubbles/service-bubble/http.d.ts.map +1 -1
  130. package/dist/bubbles/service-bubble/http.js +7 -1
  131. package/dist/bubbles/service-bubble/http.js.map +1 -1
  132. package/dist/bubbles/service-bubble/insforge-db.d.ts +140 -0
  133. package/dist/bubbles/service-bubble/insforge-db.d.ts.map +1 -0
  134. package/dist/bubbles/service-bubble/insforge-db.js +260 -0
  135. package/dist/bubbles/service-bubble/insforge-db.js.map +1 -0
  136. package/dist/bubbles/service-bubble/notion/index.d.ts +3 -0
  137. package/dist/bubbles/service-bubble/notion/index.d.ts.map +1 -0
  138. package/dist/bubbles/service-bubble/notion/index.js +3 -0
  139. package/dist/bubbles/service-bubble/notion/index.js.map +1 -0
  140. package/dist/bubbles/service-bubble/notion/notion.d.ts +35405 -0
  141. package/dist/bubbles/service-bubble/notion/notion.d.ts.map +1 -0
  142. package/dist/bubbles/service-bubble/notion/notion.js +1492 -0
  143. package/dist/bubbles/service-bubble/notion/notion.js.map +1 -0
  144. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +1148 -0
  145. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts.map +1 -0
  146. package/dist/bubbles/service-bubble/notion/property-schemas.js +341 -0
  147. package/dist/bubbles/service-bubble/notion/property-schemas.js.map +1 -0
  148. package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
  149. package/dist/bubbles/service-bubble/resend.d.ts +30 -9
  150. package/dist/bubbles/service-bubble/resend.d.ts.map +1 -1
  151. package/dist/bubbles/service-bubble/resend.js +133 -2
  152. package/dist/bubbles/service-bubble/resend.js.map +1 -1
  153. package/dist/bubbles/service-bubble/slack.d.ts +525 -525
  154. package/dist/bubbles/service-bubble/slack.d.ts.map +1 -1
  155. package/dist/bubbles/service-bubble/slack.js +2 -2
  156. package/dist/bubbles/service-bubble/slack.js.map +1 -1
  157. package/dist/bubbles/service-bubble/storage.d.ts +21 -17
  158. package/dist/bubbles/service-bubble/storage.d.ts.map +1 -1
  159. package/dist/bubbles/service-bubble/storage.js +59 -7
  160. package/dist/bubbles/service-bubble/storage.js.map +1 -1
  161. package/dist/bubbles/service-bubble/telegram.d.ts +7742 -0
  162. package/dist/bubbles/service-bubble/telegram.d.ts.map +1 -0
  163. package/dist/bubbles/service-bubble/telegram.js +1132 -0
  164. package/dist/bubbles/service-bubble/telegram.js.map +1 -0
  165. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +60 -4
  166. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts.map +1 -1
  167. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js +12 -0
  168. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js.map +1 -1
  169. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +4 -4
  170. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +188 -0
  171. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts.map +1 -0
  172. package/dist/bubbles/tool-bubble/code-edit-tool.js +321 -0
  173. package/dist/bubbles/tool-bubble/code-edit-tool.js.map +1 -0
  174. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +8 -4
  175. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts.map +1 -1
  176. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js +132 -19
  177. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js.map +1 -1
  178. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +455 -0
  179. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts.map +1 -0
  180. package/dist/bubbles/tool-bubble/google-maps-tool.js +205 -0
  181. package/dist/bubbles/tool-bubble/google-maps-tool.js.map +1 -0
  182. package/dist/bubbles/tool-bubble/instagram-tool.d.ts +90 -90
  183. package/dist/bubbles/tool-bubble/instagram-tool.d.ts.map +1 -1
  184. package/dist/bubbles/tool-bubble/instagram-tool.js +2 -2
  185. package/dist/bubbles/tool-bubble/instagram-tool.js.map +1 -1
  186. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +808 -431
  187. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts.map +1 -1
  188. package/dist/bubbles/tool-bubble/linkedin-tool.js +232 -12
  189. package/dist/bubbles/tool-bubble/linkedin-tool.js.map +1 -1
  190. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +4 -4
  191. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +21 -16
  192. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts.map +1 -1
  193. package/dist/bubbles/tool-bubble/reddit-scrape-tool.js +97 -22
  194. package/dist/bubbles/tool-bubble/reddit-scrape-tool.js.map +1 -1
  195. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +17 -16
  196. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts.map +1 -1
  197. package/dist/bubbles/tool-bubble/research-agent-tool.js +27 -17
  198. package/dist/bubbles/tool-bubble/research-agent-tool.js.map +1 -1
  199. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
  200. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +485 -0
  201. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts.map +1 -0
  202. package/dist/bubbles/tool-bubble/tiktok-tool.js +226 -0
  203. package/dist/bubbles/tool-bubble/tiktok-tool.js.map +1 -0
  204. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +947 -0
  205. package/dist/bubbles/tool-bubble/twitter-tool.d.ts.map +1 -0
  206. package/dist/bubbles/tool-bubble/twitter-tool.js +494 -0
  207. package/dist/bubbles/tool-bubble/twitter-tool.js.map +1 -0
  208. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +32 -26
  209. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts.map +1 -1
  210. package/dist/bubbles/tool-bubble/web-crawl-tool.js +58 -59
  211. package/dist/bubbles/tool-bubble/web-crawl-tool.js.map +1 -1
  212. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +4 -4
  213. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts.map +1 -1
  214. package/dist/bubbles/tool-bubble/web-extract-tool.js +17 -17
  215. package/dist/bubbles/tool-bubble/web-extract-tool.js.map +1 -1
  216. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +23 -115
  217. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts.map +1 -1
  218. package/dist/bubbles/tool-bubble/web-scrape-tool.js +51 -72
  219. package/dist/bubbles/tool-bubble/web-scrape-tool.js.map +1 -1
  220. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +18 -6
  221. package/dist/bubbles/tool-bubble/web-search-tool.d.ts.map +1 -1
  222. package/dist/bubbles/tool-bubble/web-search-tool.js +46 -32
  223. package/dist/bubbles/tool-bubble/web-search-tool.js.map +1 -1
  224. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +394 -0
  225. package/dist/bubbles/tool-bubble/youtube-tool.d.ts.map +1 -0
  226. package/dist/bubbles/tool-bubble/youtube-tool.js +352 -0
  227. package/dist/bubbles/tool-bubble/youtube-tool.js.map +1 -0
  228. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +78 -78
  229. package/dist/bubbles/workflow-bubble/generate-document.workflow.js +1 -1
  230. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +62 -62
  231. package/dist/bubbles/workflow-bubble/parse-document.workflow.js +1 -1
  232. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +80 -80
  233. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts.map +1 -1
  234. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js +4 -4
  235. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js.map +1 -1
  236. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +52 -52
  237. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts.map +1 -1
  238. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js +2 -2
  239. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js.map +1 -1
  240. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +32 -32
  241. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts.map +1 -1
  242. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js +6 -6
  243. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js.map +1 -1
  244. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +46 -46
  245. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts.map +1 -1
  246. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js +24 -4
  247. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js.map +1 -1
  248. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +27 -27
  249. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts.map +1 -1
  250. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js +8 -8
  251. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js.map +1 -1
  252. package/dist/bubbles.json +251 -88
  253. package/dist/index.d.ts +27 -6
  254. package/dist/index.d.ts.map +1 -1
  255. package/dist/index.js +18 -4
  256. package/dist/index.js.map +1 -1
  257. package/dist/logging/BubbleLogger.d.ts +45 -16
  258. package/dist/logging/BubbleLogger.d.ts.map +1 -1
  259. package/dist/logging/BubbleLogger.js +197 -89
  260. package/dist/logging/BubbleLogger.js.map +1 -1
  261. package/dist/logging/StreamingBubbleLogger.d.ts +13 -1
  262. package/dist/logging/StreamingBubbleLogger.d.ts.map +1 -1
  263. package/dist/logging/StreamingBubbleLogger.js +56 -13
  264. package/dist/logging/StreamingBubbleLogger.js.map +1 -1
  265. package/dist/logging/WebhookStreamLogger.d.ts +66 -0
  266. package/dist/logging/WebhookStreamLogger.d.ts.map +1 -0
  267. package/dist/logging/WebhookStreamLogger.js +291 -0
  268. package/dist/logging/WebhookStreamLogger.js.map +1 -0
  269. package/dist/types/available-tools.d.ts +1 -1
  270. package/dist/types/available-tools.d.ts.map +1 -1
  271. package/dist/types/available-tools.js +1 -0
  272. package/dist/types/available-tools.js.map +1 -1
  273. package/dist/types/base-bubble-class.d.ts +7 -5
  274. package/dist/types/base-bubble-class.d.ts.map +1 -1
  275. package/dist/types/base-bubble-class.js +63 -40
  276. package/dist/types/base-bubble-class.js.map +1 -1
  277. package/dist/types/bubble.d.ts +3 -10
  278. package/dist/types/bubble.d.ts.map +1 -1
  279. package/dist/types/bubble.js +1 -1
  280. package/dist/types/bubble.js.map +1 -1
  281. package/dist/types/service-bubble-class.d.ts +2 -2
  282. package/dist/types/service-bubble-class.d.ts.map +1 -1
  283. package/dist/types/service-bubble-class.js +2 -2
  284. package/dist/types/service-bubble-class.js.map +1 -1
  285. package/dist/types/tool-bubble-class.d.ts +2 -2
  286. package/dist/types/tool-bubble-class.d.ts.map +1 -1
  287. package/dist/types/tool-bubble-class.js +2 -4
  288. package/dist/types/tool-bubble-class.js.map +1 -1
  289. package/dist/types/workflow-bubble-class.d.ts +2 -2
  290. package/dist/types/workflow-bubble-class.d.ts.map +1 -1
  291. package/dist/types/workflow-bubble-class.js +2 -2
  292. package/dist/types/workflow-bubble-class.js.map +1 -1
  293. package/dist/utils/agent-formatter.d.ts +14 -2
  294. package/dist/utils/agent-formatter.d.ts.map +1 -1
  295. package/dist/utils/agent-formatter.js +176 -28
  296. package/dist/utils/agent-formatter.js.map +1 -1
  297. package/dist/utils/bubbleflow-validation.d.ts +7 -0
  298. package/dist/utils/bubbleflow-validation.d.ts.map +1 -1
  299. package/dist/utils/bubbleflow-validation.js +257 -35
  300. package/dist/utils/bubbleflow-validation.js.map +1 -1
  301. package/dist/utils/error-sanitizer.d.ts +12 -0
  302. package/dist/utils/error-sanitizer.d.ts.map +1 -0
  303. package/dist/utils/error-sanitizer.js +77 -0
  304. package/dist/utils/error-sanitizer.js.map +1 -0
  305. package/dist/utils/json-parsing.d.ts.map +1 -1
  306. package/dist/utils/json-parsing.js +146 -0
  307. package/dist/utils/json-parsing.js.map +1 -1
  308. package/dist/utils/safe-gemini-chat.d.ts +31 -0
  309. package/dist/utils/safe-gemini-chat.d.ts.map +1 -0
  310. package/dist/utils/safe-gemini-chat.js +93 -0
  311. package/dist/utils/safe-gemini-chat.js.map +1 -0
  312. package/dist/utils/schema-comparison.d.ts +92 -0
  313. package/dist/utils/schema-comparison.d.ts.map +1 -0
  314. package/dist/utils/schema-comparison.js +716 -0
  315. package/dist/utils/schema-comparison.js.map +1 -0
  316. package/dist/utils/zod-schema.d.ts +24 -0
  317. package/dist/utils/zod-schema.d.ts.map +1 -0
  318. package/dist/utils/zod-schema.js +56 -0
  319. package/dist/utils/zod-schema.js.map +1 -0
  320. package/package.json +7 -6
  321. package/dist/bubble-trigger/index.d.ts +0 -2
  322. package/dist/bubble-trigger/index.d.ts.map +0 -1
  323. package/dist/bubble-trigger/index.js +0 -2
  324. package/dist/bubble-trigger/index.js.map +0 -1
  325. package/dist/bubble-trigger/types.d.ts +0 -87
  326. package/dist/bubble-trigger/types.d.ts.map +0 -1
  327. package/dist/bubble-trigger/types.js +0 -14
  328. package/dist/bubble-trigger/types.js.map +0 -1
  329. package/dist/bubbles/service-bubble/apify/api-scraper.schema.d.ts +0 -370
  330. package/dist/bubbles/service-bubble/apify/api-scraper.schema.d.ts.map +0 -1
  331. package/dist/bubbles/service-bubble/apify/api-scraper.schema.js +0 -14
  332. package/dist/bubbles/service-bubble/apify/api-scraper.schema.js.map +0 -1
  333. package/dist/bubbles/service-bubble/apify.d.ts +0 -136
  334. package/dist/bubbles/service-bubble/apify.d.ts.map +0 -1
  335. package/dist/bubbles/service-bubble/apify.js +0 -282
  336. package/dist/bubbles/service-bubble/apify.js.map +0 -1
  337. package/dist/bubbles/service-bubble/google-sheets.d.ts +0 -1811
  338. package/dist/bubbles/service-bubble/google-sheets.d.ts.map +0 -1
  339. package/dist/bubbles/service-bubble/google-sheets.js.map +0 -1
  340. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts +0 -114
  341. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts.map +0 -1
  342. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js +0 -782
  343. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js.map +0 -1
  344. package/dist/types/ai-models.d.ts +0 -4
  345. package/dist/types/ai-models.d.ts.map +0 -1
  346. package/dist/types/ai-models.js +0 -20
  347. package/dist/types/ai-models.js.map +0 -1
  348. package/dist/types/api-scraper.schema.d.ts +0 -453
  349. package/dist/types/api-scraper.schema.d.ts.map +0 -1
  350. package/dist/types/api-scraper.schema.js +0 -160
  351. package/dist/types/api-scraper.schema.js.map +0 -1
  352. package/dist/utils/param-helper.d.ts +0 -2
  353. package/dist/utils/param-helper.d.ts.map +0 -1
  354. package/dist/utils/param-helper.js +0 -5
  355. package/dist/utils/param-helper.js.map +0 -1
@@ -0,0 +1,455 @@
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 GoogleMapsToolParamsSchema: z.ZodObject<{
6
+ operation: z.ZodEnum<["search"]>;
7
+ queries: z.ZodArray<z.ZodString, "many">;
8
+ location: z.ZodOptional<z.ZodString>;
9
+ limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
10
+ language: z.ZodOptional<z.ZodDefault<z.ZodString>>;
11
+ credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ operation: "search";
14
+ queries: string[];
15
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
16
+ limit?: number | undefined;
17
+ location?: string | undefined;
18
+ language?: string | undefined;
19
+ }, {
20
+ operation: "search";
21
+ queries: string[];
22
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
23
+ limit?: number | undefined;
24
+ location?: string | undefined;
25
+ language?: string | undefined;
26
+ }>;
27
+ declare const GoogleMapsToolResultSchema: z.ZodObject<{
28
+ operation: z.ZodEnum<["search"]>;
29
+ places: z.ZodArray<z.ZodObject<{
30
+ title: z.ZodNullable<z.ZodString>;
31
+ placeId: z.ZodNullable<z.ZodString>;
32
+ url: z.ZodNullable<z.ZodString>;
33
+ address: z.ZodNullable<z.ZodString>;
34
+ category: z.ZodNullable<z.ZodString>;
35
+ website: z.ZodNullable<z.ZodString>;
36
+ phone: z.ZodNullable<z.ZodString>;
37
+ rating: z.ZodNullable<z.ZodNumber>;
38
+ reviewsCount: z.ZodNullable<z.ZodNumber>;
39
+ priceLevel: z.ZodNullable<z.ZodString>;
40
+ isAdvertisement: z.ZodNullable<z.ZodBoolean>;
41
+ location: z.ZodNullable<z.ZodObject<{
42
+ lat: z.ZodNullable<z.ZodNumber>;
43
+ lng: z.ZodNullable<z.ZodNumber>;
44
+ }, "strip", z.ZodTypeAny, {
45
+ lat: number | null;
46
+ lng: number | null;
47
+ }, {
48
+ lat: number | null;
49
+ lng: number | null;
50
+ }>>;
51
+ openingHours: z.ZodNullable<z.ZodArray<z.ZodObject<{
52
+ day: z.ZodNullable<z.ZodString>;
53
+ hours: z.ZodUnion<[z.ZodNullable<z.ZodString>, z.ZodNullable<z.ZodArray<z.ZodString, "many">>]>;
54
+ }, "strip", z.ZodTypeAny, {
55
+ day: string | null;
56
+ hours: string | string[] | null;
57
+ }, {
58
+ day: string | null;
59
+ hours: string | string[] | null;
60
+ }>, "many">>;
61
+ reviews: z.ZodNullable<z.ZodArray<z.ZodObject<{
62
+ name: z.ZodNullable<z.ZodString>;
63
+ rating: z.ZodNullable<z.ZodNumber>;
64
+ text: z.ZodNullable<z.ZodString>;
65
+ publishedAtDate: z.ZodNullable<z.ZodString>;
66
+ likesCount: z.ZodNullable<z.ZodNumber>;
67
+ responseFromOwnerText: z.ZodNullable<z.ZodString>;
68
+ }, "strip", z.ZodTypeAny, {
69
+ name: string | null;
70
+ text: string | null;
71
+ likesCount: number | null;
72
+ rating: number | null;
73
+ publishedAtDate: string | null;
74
+ responseFromOwnerText: string | null;
75
+ }, {
76
+ name: string | null;
77
+ text: string | null;
78
+ likesCount: number | null;
79
+ rating: number | null;
80
+ publishedAtDate: string | null;
81
+ responseFromOwnerText: string | null;
82
+ }>, "many">>;
83
+ imageUrls: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
84
+ additionalInfo: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
85
+ }, "strip", z.ZodTypeAny, {
86
+ title: string | null;
87
+ url: string | null;
88
+ phone: string | null;
89
+ location: {
90
+ lat: number | null;
91
+ lng: number | null;
92
+ } | null;
93
+ rating: number | null;
94
+ category: string | null;
95
+ address: string | null;
96
+ website: string | null;
97
+ placeId: string | null;
98
+ reviewsCount: number | null;
99
+ openingHours: {
100
+ day: string | null;
101
+ hours: string | string[] | null;
102
+ }[] | null;
103
+ additionalInfo: Record<string, string[]> | null;
104
+ isAdvertisement: boolean | null;
105
+ priceLevel: string | null;
106
+ reviews: {
107
+ name: string | null;
108
+ text: string | null;
109
+ likesCount: number | null;
110
+ rating: number | null;
111
+ publishedAtDate: string | null;
112
+ responseFromOwnerText: string | null;
113
+ }[] | null;
114
+ imageUrls: string[] | null;
115
+ }, {
116
+ title: string | null;
117
+ url: string | null;
118
+ phone: string | null;
119
+ location: {
120
+ lat: number | null;
121
+ lng: number | null;
122
+ } | null;
123
+ rating: number | null;
124
+ category: string | null;
125
+ address: string | null;
126
+ website: string | null;
127
+ placeId: string | null;
128
+ reviewsCount: number | null;
129
+ openingHours: {
130
+ day: string | null;
131
+ hours: string | string[] | null;
132
+ }[] | null;
133
+ additionalInfo: Record<string, string[]> | null;
134
+ isAdvertisement: boolean | null;
135
+ priceLevel: string | null;
136
+ reviews: {
137
+ name: string | null;
138
+ text: string | null;
139
+ likesCount: number | null;
140
+ rating: number | null;
141
+ publishedAtDate: string | null;
142
+ responseFromOwnerText: string | null;
143
+ }[] | null;
144
+ imageUrls: string[] | null;
145
+ }>, "many">;
146
+ totalPlaces: z.ZodNumber;
147
+ success: z.ZodBoolean;
148
+ error: z.ZodString;
149
+ }, "strip", z.ZodTypeAny, {
150
+ error: string;
151
+ success: boolean;
152
+ operation: "search";
153
+ places: {
154
+ title: string | null;
155
+ url: string | null;
156
+ phone: string | null;
157
+ location: {
158
+ lat: number | null;
159
+ lng: number | null;
160
+ } | null;
161
+ rating: number | null;
162
+ category: string | null;
163
+ address: string | null;
164
+ website: string | null;
165
+ placeId: string | null;
166
+ reviewsCount: number | null;
167
+ openingHours: {
168
+ day: string | null;
169
+ hours: string | string[] | null;
170
+ }[] | null;
171
+ additionalInfo: Record<string, string[]> | null;
172
+ isAdvertisement: boolean | null;
173
+ priceLevel: string | null;
174
+ reviews: {
175
+ name: string | null;
176
+ text: string | null;
177
+ likesCount: number | null;
178
+ rating: number | null;
179
+ publishedAtDate: string | null;
180
+ responseFromOwnerText: string | null;
181
+ }[] | null;
182
+ imageUrls: string[] | null;
183
+ }[];
184
+ totalPlaces: number;
185
+ }, {
186
+ error: string;
187
+ success: boolean;
188
+ operation: "search";
189
+ places: {
190
+ title: string | null;
191
+ url: string | null;
192
+ phone: string | null;
193
+ location: {
194
+ lat: number | null;
195
+ lng: number | null;
196
+ } | null;
197
+ rating: number | null;
198
+ category: string | null;
199
+ address: string | null;
200
+ website: string | null;
201
+ placeId: string | null;
202
+ reviewsCount: number | null;
203
+ openingHours: {
204
+ day: string | null;
205
+ hours: string | string[] | null;
206
+ }[] | null;
207
+ additionalInfo: Record<string, string[]> | null;
208
+ isAdvertisement: boolean | null;
209
+ priceLevel: string | null;
210
+ reviews: {
211
+ name: string | null;
212
+ text: string | null;
213
+ likesCount: number | null;
214
+ rating: number | null;
215
+ publishedAtDate: string | null;
216
+ responseFromOwnerText: string | null;
217
+ }[] | null;
218
+ imageUrls: string[] | null;
219
+ }[];
220
+ totalPlaces: number;
221
+ }>;
222
+ type GoogleMapsToolParams = z.output<typeof GoogleMapsToolParamsSchema>;
223
+ type GoogleMapsToolResult = z.output<typeof GoogleMapsToolResultSchema>;
224
+ type GoogleMapsToolParamsInput = z.input<typeof GoogleMapsToolParamsSchema>;
225
+ export declare class GoogleMapsTool extends ToolBubble<GoogleMapsToolParams, GoogleMapsToolResult> {
226
+ static readonly bubbleName: BubbleName;
227
+ static readonly schema: z.ZodObject<{
228
+ operation: z.ZodEnum<["search"]>;
229
+ queries: z.ZodArray<z.ZodString, "many">;
230
+ location: z.ZodOptional<z.ZodString>;
231
+ limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
232
+ language: z.ZodOptional<z.ZodDefault<z.ZodString>>;
233
+ credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
234
+ }, "strip", z.ZodTypeAny, {
235
+ operation: "search";
236
+ queries: string[];
237
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
238
+ limit?: number | undefined;
239
+ location?: string | undefined;
240
+ language?: string | undefined;
241
+ }, {
242
+ operation: "search";
243
+ queries: string[];
244
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
245
+ limit?: number | undefined;
246
+ location?: string | undefined;
247
+ language?: string | undefined;
248
+ }>;
249
+ static readonly resultSchema: z.ZodObject<{
250
+ operation: z.ZodEnum<["search"]>;
251
+ places: z.ZodArray<z.ZodObject<{
252
+ title: z.ZodNullable<z.ZodString>;
253
+ placeId: z.ZodNullable<z.ZodString>;
254
+ url: z.ZodNullable<z.ZodString>;
255
+ address: z.ZodNullable<z.ZodString>;
256
+ category: z.ZodNullable<z.ZodString>;
257
+ website: z.ZodNullable<z.ZodString>;
258
+ phone: z.ZodNullable<z.ZodString>;
259
+ rating: z.ZodNullable<z.ZodNumber>;
260
+ reviewsCount: z.ZodNullable<z.ZodNumber>;
261
+ priceLevel: z.ZodNullable<z.ZodString>;
262
+ isAdvertisement: z.ZodNullable<z.ZodBoolean>;
263
+ location: z.ZodNullable<z.ZodObject<{
264
+ lat: z.ZodNullable<z.ZodNumber>;
265
+ lng: z.ZodNullable<z.ZodNumber>;
266
+ }, "strip", z.ZodTypeAny, {
267
+ lat: number | null;
268
+ lng: number | null;
269
+ }, {
270
+ lat: number | null;
271
+ lng: number | null;
272
+ }>>;
273
+ openingHours: z.ZodNullable<z.ZodArray<z.ZodObject<{
274
+ day: z.ZodNullable<z.ZodString>;
275
+ hours: z.ZodUnion<[z.ZodNullable<z.ZodString>, z.ZodNullable<z.ZodArray<z.ZodString, "many">>]>;
276
+ }, "strip", z.ZodTypeAny, {
277
+ day: string | null;
278
+ hours: string | string[] | null;
279
+ }, {
280
+ day: string | null;
281
+ hours: string | string[] | null;
282
+ }>, "many">>;
283
+ reviews: z.ZodNullable<z.ZodArray<z.ZodObject<{
284
+ name: z.ZodNullable<z.ZodString>;
285
+ rating: z.ZodNullable<z.ZodNumber>;
286
+ text: z.ZodNullable<z.ZodString>;
287
+ publishedAtDate: z.ZodNullable<z.ZodString>;
288
+ likesCount: z.ZodNullable<z.ZodNumber>;
289
+ responseFromOwnerText: z.ZodNullable<z.ZodString>;
290
+ }, "strip", z.ZodTypeAny, {
291
+ name: string | null;
292
+ text: string | null;
293
+ likesCount: number | null;
294
+ rating: number | null;
295
+ publishedAtDate: string | null;
296
+ responseFromOwnerText: string | null;
297
+ }, {
298
+ name: string | null;
299
+ text: string | null;
300
+ likesCount: number | null;
301
+ rating: number | null;
302
+ publishedAtDate: string | null;
303
+ responseFromOwnerText: string | null;
304
+ }>, "many">>;
305
+ imageUrls: z.ZodNullable<z.ZodArray<z.ZodString, "many">>;
306
+ additionalInfo: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
307
+ }, "strip", z.ZodTypeAny, {
308
+ title: string | null;
309
+ url: string | null;
310
+ phone: string | null;
311
+ location: {
312
+ lat: number | null;
313
+ lng: number | null;
314
+ } | null;
315
+ rating: number | null;
316
+ category: string | null;
317
+ address: string | null;
318
+ website: string | null;
319
+ placeId: string | null;
320
+ reviewsCount: number | null;
321
+ openingHours: {
322
+ day: string | null;
323
+ hours: string | string[] | null;
324
+ }[] | null;
325
+ additionalInfo: Record<string, string[]> | null;
326
+ isAdvertisement: boolean | null;
327
+ priceLevel: string | null;
328
+ reviews: {
329
+ name: string | null;
330
+ text: string | null;
331
+ likesCount: number | null;
332
+ rating: number | null;
333
+ publishedAtDate: string | null;
334
+ responseFromOwnerText: string | null;
335
+ }[] | null;
336
+ imageUrls: string[] | null;
337
+ }, {
338
+ title: string | null;
339
+ url: string | null;
340
+ phone: string | null;
341
+ location: {
342
+ lat: number | null;
343
+ lng: number | null;
344
+ } | null;
345
+ rating: number | null;
346
+ category: string | null;
347
+ address: string | null;
348
+ website: string | null;
349
+ placeId: string | null;
350
+ reviewsCount: number | null;
351
+ openingHours: {
352
+ day: string | null;
353
+ hours: string | string[] | null;
354
+ }[] | null;
355
+ additionalInfo: Record<string, string[]> | null;
356
+ isAdvertisement: boolean | null;
357
+ priceLevel: string | null;
358
+ reviews: {
359
+ name: string | null;
360
+ text: string | null;
361
+ likesCount: number | null;
362
+ rating: number | null;
363
+ publishedAtDate: string | null;
364
+ responseFromOwnerText: string | null;
365
+ }[] | null;
366
+ imageUrls: string[] | null;
367
+ }>, "many">;
368
+ totalPlaces: z.ZodNumber;
369
+ success: z.ZodBoolean;
370
+ error: z.ZodString;
371
+ }, "strip", z.ZodTypeAny, {
372
+ error: string;
373
+ success: boolean;
374
+ operation: "search";
375
+ places: {
376
+ title: string | null;
377
+ url: string | null;
378
+ phone: string | null;
379
+ location: {
380
+ lat: number | null;
381
+ lng: number | null;
382
+ } | null;
383
+ rating: number | null;
384
+ category: string | null;
385
+ address: string | null;
386
+ website: string | null;
387
+ placeId: string | null;
388
+ reviewsCount: number | null;
389
+ openingHours: {
390
+ day: string | null;
391
+ hours: string | string[] | null;
392
+ }[] | null;
393
+ additionalInfo: Record<string, string[]> | null;
394
+ isAdvertisement: boolean | null;
395
+ priceLevel: string | null;
396
+ reviews: {
397
+ name: string | null;
398
+ text: string | null;
399
+ likesCount: number | null;
400
+ rating: number | null;
401
+ publishedAtDate: string | null;
402
+ responseFromOwnerText: string | null;
403
+ }[] | null;
404
+ imageUrls: string[] | null;
405
+ }[];
406
+ totalPlaces: number;
407
+ }, {
408
+ error: string;
409
+ success: boolean;
410
+ operation: "search";
411
+ places: {
412
+ title: string | null;
413
+ url: string | null;
414
+ phone: string | null;
415
+ location: {
416
+ lat: number | null;
417
+ lng: number | null;
418
+ } | null;
419
+ rating: number | null;
420
+ category: string | null;
421
+ address: string | null;
422
+ website: string | null;
423
+ placeId: string | null;
424
+ reviewsCount: number | null;
425
+ openingHours: {
426
+ day: string | null;
427
+ hours: string | string[] | null;
428
+ }[] | null;
429
+ additionalInfo: Record<string, string[]> | null;
430
+ isAdvertisement: boolean | null;
431
+ priceLevel: string | null;
432
+ reviews: {
433
+ name: string | null;
434
+ text: string | null;
435
+ likesCount: number | null;
436
+ rating: number | null;
437
+ publishedAtDate: string | null;
438
+ responseFromOwnerText: string | null;
439
+ }[] | null;
440
+ imageUrls: string[] | null;
441
+ }[];
442
+ totalPlaces: number;
443
+ }>;
444
+ static readonly shortDescription = "Scrape Google Maps business listings, reviews, and place data.";
445
+ static readonly longDescription = "\n Universal Google Maps scraping tool.\n \n Operations:\n - search: Find businesses and places by keyword and location\n \n Uses Apify's compass/crawler-google-places.\n ";
446
+ static readonly alias = "maps";
447
+ static readonly type = "tool";
448
+ constructor(params?: GoogleMapsToolParamsInput, context?: BubbleContext);
449
+ performAction(): Promise<GoogleMapsToolResult>;
450
+ private createErrorResult;
451
+ private runScraper;
452
+ private transformPlaces;
453
+ }
454
+ export {};
455
+ //# sourceMappingURL=google-maps-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-maps-tool.d.ts","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/google-maps-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAsD5E,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;EA2B9B,CAAC;AAEH,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ9B,CAAC;AAEH,KAAK,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACxE,KAAK,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACxE,KAAK,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE5E,qBAAa,cAAe,SAAQ,UAAU,CAC5C,oBAAoB,EACpB,oBAAoB,CACrB;IACC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAsB;IAC5D,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;OAA8B;IACpD,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA8B;IAC1D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,oEACmC;IACnE,MAAM,CAAC,QAAQ,CAAC,eAAe,oMAO7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;gBAG5B,MAAM,GAAE,yBAIP,EACD,OAAO,CAAC,EAAE,aAAa;IAKnB,aAAa,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAyBpD,OAAO,CAAC,iBAAiB;YAUX,UAAU;IAgDxB,OAAO,CAAC,eAAe;CA+CxB"}
@@ -0,0 +1,205 @@
1
+ import { z } from 'zod';
2
+ import { ToolBubble } from '../../types/tool-bubble-class.js';
3
+ import { CredentialType } from '@bubblelab/shared-schemas';
4
+ import { ApifyBubble } from '../service-bubble/apify/apify.js';
5
+ // Unified Google Maps data types
6
+ const GoogleMapsReviewSchema = z.object({
7
+ name: z.string().nullable().describe('Reviewer name'),
8
+ rating: z.number().nullable().describe('Rating (1-5)'),
9
+ text: z.string().nullable().describe('Review text'),
10
+ publishedAtDate: z.string().nullable().describe('Publish date'),
11
+ likesCount: z.number().nullable().describe('Number of likes'),
12
+ responseFromOwnerText: z.string().nullable().describe('Owner response'),
13
+ });
14
+ const GoogleMapsPlaceSchema = z.object({
15
+ title: z.string().nullable().describe('Place name'),
16
+ placeId: z.string().nullable().describe('Place ID'),
17
+ url: z.string().nullable().describe('Place URL'),
18
+ address: z.string().nullable().describe('Full address'),
19
+ category: z.string().nullable().describe('Primary category'),
20
+ website: z.string().nullable().describe('Website URL'),
21
+ phone: z.string().nullable().describe('Phone number'),
22
+ rating: z.number().nullable().describe('Average rating'),
23
+ reviewsCount: z.number().nullable().describe('Total reviews'),
24
+ priceLevel: z.string().nullable().describe('Price level'),
25
+ isAdvertisement: z.boolean().nullable().describe('Is sponsored'),
26
+ location: z
27
+ .object({
28
+ lat: z.number().nullable(),
29
+ lng: z.number().nullable(),
30
+ })
31
+ .nullable()
32
+ .describe('Coordinates'),
33
+ openingHours: z
34
+ .array(z.object({
35
+ day: z.string().nullable(),
36
+ hours: z.string().nullable().or(z.array(z.string()).nullable()),
37
+ }))
38
+ .nullable()
39
+ .describe('Opening hours'),
40
+ reviews: z
41
+ .array(GoogleMapsReviewSchema)
42
+ .nullable()
43
+ .describe('Recent reviews'),
44
+ imageUrls: z.array(z.string()).nullable().describe('Image URLs'),
45
+ additionalInfo: z
46
+ .record(z.array(z.string()))
47
+ .nullable()
48
+ .describe('Additional attributes (accessibility, amenities, etc.)'),
49
+ });
50
+ const GoogleMapsToolParamsSchema = z.object({
51
+ operation: z.enum(['search']).describe('Operation (only search supported)'),
52
+ queries: z
53
+ .array(z.string())
54
+ .min(1)
55
+ .describe('Search queries (e.g. "restaurants in NYC")'),
56
+ location: z
57
+ .string()
58
+ .optional()
59
+ .describe('Location to focus search (e.g. "New York, USA")'),
60
+ limit: z
61
+ .number()
62
+ .min(1)
63
+ .max(500)
64
+ .default(20)
65
+ .optional()
66
+ .describe('Maximum number of places to scrape per query'),
67
+ language: z.string().default('en').optional().describe('Result language'),
68
+ credentials: z
69
+ .record(z.nativeEnum(CredentialType), z.string())
70
+ .optional()
71
+ .describe('Required credentials (auto-injected)'),
72
+ });
73
+ const GoogleMapsToolResultSchema = z.object({
74
+ operation: z.enum(['search']).describe('Operation performed'),
75
+ places: z.array(GoogleMapsPlaceSchema).describe('Found places'),
76
+ totalPlaces: z.number().describe('Total places found'),
77
+ success: z.boolean().describe('Whether the operation was successful'),
78
+ error: z.string().describe('Error message if operation failed'),
79
+ });
80
+ export class GoogleMapsTool extends ToolBubble {
81
+ static bubbleName = 'google-maps-tool';
82
+ static schema = GoogleMapsToolParamsSchema;
83
+ static resultSchema = GoogleMapsToolResultSchema;
84
+ static shortDescription = 'Scrape Google Maps business listings, reviews, and place data.';
85
+ static longDescription = `
86
+ Universal Google Maps scraping tool.
87
+
88
+ Operations:
89
+ - search: Find businesses and places by keyword and location
90
+
91
+ Uses Apify's compass/crawler-google-places.
92
+ `;
93
+ static alias = 'maps';
94
+ static type = 'tool';
95
+ constructor(params = {
96
+ operation: 'search',
97
+ queries: ['restaurants in SF'],
98
+ limit: 20,
99
+ }, context) {
100
+ super(params, context);
101
+ }
102
+ async performAction() {
103
+ const credentials = this.params.credentials;
104
+ if (!credentials || !credentials[CredentialType.APIFY_CRED]) {
105
+ return this.createErrorResult('Google Maps scraping requires authentication. Please configure APIFY_CRED.');
106
+ }
107
+ try {
108
+ const result = await this.runScraper();
109
+ return {
110
+ operation: 'search',
111
+ places: result.places,
112
+ totalPlaces: result.places.length,
113
+ success: result.success,
114
+ error: result.error,
115
+ };
116
+ }
117
+ catch (error) {
118
+ return this.createErrorResult(error instanceof Error ? error.message : 'Unknown error occurred');
119
+ }
120
+ }
121
+ createErrorResult(errorMessage) {
122
+ return {
123
+ operation: 'search',
124
+ places: [],
125
+ totalPlaces: 0,
126
+ success: false,
127
+ error: errorMessage,
128
+ };
129
+ }
130
+ async runScraper() {
131
+ const { queries, location, limit, language } = this.params;
132
+ const input = {
133
+ searchStringsArray: queries,
134
+ locationQuery: location,
135
+ maxCrawledPlacesPerSearch: limit,
136
+ language,
137
+ // Default safer settings
138
+ onlyDataFromSearchPage: false,
139
+ };
140
+ const scraper = new ApifyBubble({
141
+ actorId: 'compass/crawler-google-places',
142
+ input,
143
+ waitForFinish: true,
144
+ timeout: 240000, // 4 minutes, maps can be slow
145
+ credentials: this.params.credentials,
146
+ }, this.context, 'googleMapsScraper');
147
+ const apifyResult = await scraper.action();
148
+ if (!apifyResult.data.success) {
149
+ return {
150
+ places: [],
151
+ success: false,
152
+ error: apifyResult.data.error || 'Failed to scrape Google Maps',
153
+ };
154
+ }
155
+ const items = apifyResult.data.items || [];
156
+ const places = this.transformPlaces(items);
157
+ return {
158
+ places,
159
+ success: true,
160
+ error: '',
161
+ };
162
+ }
163
+ transformPlaces(items) {
164
+ return items.map((item) => ({
165
+ title: item.title || null,
166
+ placeId: item.placeId || null,
167
+ url: item.url || null,
168
+ address: item.address || null,
169
+ category: item.categoryName || item.categories?.[0] || null,
170
+ website: item.website || null,
171
+ phone: item.phone || item.phoneUnformatted || null,
172
+ rating: item.totalScore || null,
173
+ reviewsCount: item.reviewsCount || null,
174
+ priceLevel: item.price || null,
175
+ isAdvertisement: item.isAdvertisement || null,
176
+ location: item.location
177
+ ? {
178
+ lat: item.location.lat || null,
179
+ lng: item.location.lng || null,
180
+ }
181
+ : null,
182
+ openingHours: item.openingHours
183
+ ? item.openingHours.map((h) => ({
184
+ day: h.day || null,
185
+ hours: h.hours || null, // Can be string or array per schema
186
+ }))
187
+ : null,
188
+ reviews: null, // Reviews are not available in the current schema
189
+ imageUrls: item.imageUrl ? [item.imageUrl] : null,
190
+ additionalInfo: item.additionalInfo
191
+ ? Object.fromEntries(Object.entries(item.additionalInfo).map(([key, value]) => [
192
+ key,
193
+ Array.isArray(value)
194
+ ? value
195
+ .flatMap((v) => typeof v === 'object' && v !== null
196
+ ? Object.keys(v).filter((k) => v[k] === true)
197
+ : [])
198
+ .filter((v) => v)
199
+ : [],
200
+ ]))
201
+ : null,
202
+ }));
203
+ }
204
+ }
205
+ //# sourceMappingURL=google-maps-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-maps-tool.js","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/google-maps-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAmB,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAI/D,iCAAiC;AACjC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACtD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;IACnD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC/D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC7D,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;CACxE,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;IACnD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC5D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;IACtD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACxD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC7D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;IACzD,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IAChE,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC3B,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,aAAa,CAAC;IAC1B,YAAY,EAAE,CAAC;SACZ,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;KAChE,CAAC,CACH;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,eAAe,CAAC;IAC5B,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,sBAAsB,CAAC;SAC7B,QAAQ,EAAE;SACV,QAAQ,CAAC,gBAAgB,CAAC;IAC7B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IAChE,cAAc,EAAE,CAAC;SACd,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SAC3B,QAAQ,EAAE;SACV,QAAQ,CAAC,wDAAwD,CAAC;CACtE,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAE3E,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,4CAA4C,CAAC;IAEzD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;IAE9D,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;IAE3D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAEzE,WAAW,EAAE,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAChD,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAE7D,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IAE/D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACtD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACrE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAChE,CAAC,CAAC;AAMH,MAAM,OAAO,cAAe,SAAQ,UAGnC;IACC,MAAM,CAAU,UAAU,GAAe,kBAAkB,CAAC;IAC5D,MAAM,CAAU,MAAM,GAAG,0BAA0B,CAAC;IACpD,MAAM,CAAU,YAAY,GAAG,0BAA0B,CAAC;IAC1D,MAAM,CAAU,gBAAgB,GAC9B,gEAAgE,CAAC;IACnE,MAAM,CAAU,eAAe,GAAG;;;;;;;GAOjC,CAAC;IACF,MAAM,CAAU,KAAK,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAU,IAAI,GAAG,MAAM,CAAC;IAE9B,YACE,SAAoC;QAClC,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC9B,KAAK,EAAE,EAAE;KACV,EACD,OAAuB;QAEvB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QAC5C,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC,iBAAiB,CAC3B,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAEvC,OAAO;gBACL,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;gBACjC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,iBAAiB,CAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,YAAoB;QAC5C,OAAO;YACL,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,CAAC;YACd,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,YAAY;SACpB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,UAAU;QAKtB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3D,MAAM,KAAK,GAAiD;YAC1D,kBAAkB,EAAE,OAAO;YAC3B,aAAa,EAAE,QAAQ;YACvB,yBAAyB,EAAE,KAAK;YAChC,QAAQ;YACR,yBAAyB;YACzB,sBAAsB,EAAE,KAAK;SAC9B,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,WAAW,CAC7B;YACE,OAAO,EAAE,+BAA+B;YACxC,KAAK;YACL,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,MAAM,EAAE,8BAA8B;YAC/C,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;SACrC,EACD,IAAI,CAAC,OAAO,EACZ,mBAAmB,CACpB,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;QAE3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,8BAA8B;aAChE,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE3C,OAAO;YACL,MAAM;YACN,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAEO,eAAe,CACrB,KAAqD;QAErD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;YAC7B,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;YAC7B,QAAQ,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;YAC3D,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI;YAClD,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;YACvC,UAAU,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;YAC9B,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI;YAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACrB,CAAC,CAAC;oBACE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI;oBAC9B,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI;iBAC/B;gBACH,CAAC,CAAC,IAAI;YACR,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC7B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;oBACjC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI;oBAClB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,oCAAoC;iBAC7D,CAAC,CAAC;gBACL,CAAC,CAAC,IAAI;YACR,OAAO,EAAE,IAAI,EAAE,kDAAkD;YACjE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YACjD,cAAc,EAAE,IAAI,CAAC,cAAc;gBACjC,CAAC,CAAE,MAAM,CAAC,WAAW,CACjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;oBACxD,GAAG;oBACH,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;wBAClB,CAAC,CAAC,KAAK;6BACF,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;4BACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;4BAC7C,CAAC,CAAC,EAAE,CACP;6BACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;wBACrB,CAAC,CAAC,EAAE;iBACP,CAAC,CAC0B;gBAChC,CAAC,CAAC,IAAI;SACT,CAAC,CAAC,CAAC;IACN,CAAC"}