@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 @@
1
+ {"version":3,"file":"google-sheets.schema.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/google-sheets/google-sheets.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAI3D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAWkB,CAAC;AAGhD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CkB,CAAC;AAgCrD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+VnC,CAAC;AAGH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiLnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAG3E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAG3E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { z } from 'zod';
2
- import { ServiceBubble } from '../../types/service-bubble-class.js';
3
2
  import { CredentialType } from '@bubblelab/shared-schemas';
3
+ import { normalizeRange, sanitizeValues } from './google-sheets.utils.js';
4
4
  // Define value range schema
5
- const ValueRangeSchema = z
5
+ export const ValueRangeSchema = z
6
6
  .object({
7
7
  range: z.string().describe('The A1 notation range'),
8
8
  majorDimension: z
@@ -15,7 +15,7 @@ const ValueRangeSchema = z
15
15
  })
16
16
  .describe('Range of values in a spreadsheet');
17
17
  // Define spreadsheet info schema
18
- const SpreadsheetInfoSchema = z
18
+ export const SpreadsheetInfoSchema = z
19
19
  .object({
20
20
  spreadsheetId: z.string().describe('Unique spreadsheet identifier'),
21
21
  properties: z
@@ -58,8 +58,31 @@ const SpreadsheetInfoSchema = z
58
58
  spreadsheetUrl: z.string().optional().describe('URL to the spreadsheet'),
59
59
  })
60
60
  .describe('Google Sheets spreadsheet information');
61
+ // Helper to create a range field with automatic normalization
62
+ // Uses transform instead of preprocess to preserve string input type
63
+ const createRangeField = (description) => z
64
+ .string()
65
+ .min(1, 'Range is required')
66
+ .transform((val) => normalizeRange(val))
67
+ .describe(description);
68
+ // Helper to create a values field with automatic sanitization
69
+ // Uses transform instead of preprocess to preserve array input type
70
+ // Input accepts any cell values (string, number, boolean, null, undefined, Date, etc.)
71
+ // Output is sanitized to only string, number, or boolean
72
+ const createValuesField = (description) => z
73
+ .array(z.array(z.unknown()))
74
+ .min(1, 'Values array cannot be empty')
75
+ .transform((val) => sanitizeValues(val))
76
+ .describe(description);
77
+ // Helper to create a ranges array field with automatic normalization
78
+ // Uses transform instead of preprocess to preserve string[] input type
79
+ const createRangesField = (description) => z
80
+ .array(z.string())
81
+ .min(1, 'At least one range is required')
82
+ .transform((val) => val.map((r) => normalizeRange(r)))
83
+ .describe(description);
61
84
  // Define the parameters schema for Google Sheets operations
62
- const GoogleSheetsParamsSchema = z.discriminatedUnion('operation', [
85
+ export const GoogleSheetsParamsSchema = z.discriminatedUnion('operation', [
63
86
  // Read values operation
64
87
  z.object({
65
88
  operation: z.literal('read_values').describe('Read values from a range'),
@@ -67,10 +90,7 @@ const GoogleSheetsParamsSchema = z.discriminatedUnion('operation', [
67
90
  .string()
68
91
  .min(1, 'Spreadsheet ID is required')
69
92
  .describe('Google Sheets spreadsheet ID'),
70
- range: z
71
- .string()
72
- .min(1, 'Range is required')
73
- .describe('A1 notation range (e.g., "Sheet1!A1:B10")'),
93
+ range: createRangeField('A1 notation range (e.g., "Sheet1!A1:B10" or "Sheet Name!A:G" - sheet names with spaces are automatically quoted)'),
74
94
  major_dimension: z
75
95
  .enum(['ROWS', 'COLUMNS'])
76
96
  .optional()
@@ -98,14 +118,8 @@ const GoogleSheetsParamsSchema = z.discriminatedUnion('operation', [
98
118
  .string()
99
119
  .min(1, 'Spreadsheet ID is required')
100
120
  .describe('Google Sheets spreadsheet ID'),
101
- range: z
102
- .string()
103
- .min(1, 'Range is required')
104
- .describe('A1 notation range (e.g., "Sheet1!A1:B10")'),
105
- values: z
106
- .array(z.array(z.union([z.string(), z.number(), z.boolean()])))
107
- .min(1, 'Values array cannot be empty')
108
- .describe('Data to write as array of arrays'),
121
+ range: createRangeField('A1 notation range (e.g., "Sheet1!A1:B10" or "Sheet Name!A:G" - sheet names with spaces are automatically quoted)'),
122
+ values: createValuesField('Data to write as array of arrays (null/undefined automatically converted to empty strings)'),
109
123
  major_dimension: z
110
124
  .enum(['ROWS', 'COLUMNS'])
111
125
  .optional()
@@ -135,14 +149,8 @@ const GoogleSheetsParamsSchema = z.discriminatedUnion('operation', [
135
149
  .string()
136
150
  .min(1, 'Spreadsheet ID is required')
137
151
  .describe('Google Sheets spreadsheet ID'),
138
- range: z
139
- .string()
140
- .min(1, 'Range is required')
141
- .describe('A1 notation range (e.g., "Sheet1!A1:B10")'),
142
- values: z
143
- .array(z.array(z.union([z.string(), z.number(), z.boolean()])))
144
- .min(1, 'Values array cannot be empty')
145
- .describe('Data to update as array of arrays'),
152
+ range: createRangeField('A1 notation range (e.g., "Sheet1!A1:B10" or "Sheet Name!A:G" - sheet names with spaces are automatically quoted)'),
153
+ values: createValuesField('Data to update as array of arrays (null/undefined automatically converted to empty strings)'),
146
154
  major_dimension: z
147
155
  .enum(['ROWS', 'COLUMNS'])
148
156
  .optional()
@@ -172,14 +180,8 @@ const GoogleSheetsParamsSchema = z.discriminatedUnion('operation', [
172
180
  .string()
173
181
  .min(1, 'Spreadsheet ID is required')
174
182
  .describe('Google Sheets spreadsheet ID'),
175
- range: z
176
- .string()
177
- .min(1, 'Range is required')
178
- .describe('A1 notation range to search for table (e.g., "Sheet1!A:A")'),
179
- values: z
180
- .array(z.array(z.union([z.string(), z.number(), z.boolean()])))
181
- .min(1, 'Values array cannot be empty')
182
- .describe('Data to append as array of arrays'),
183
+ range: createRangeField('A1 notation range to search for table (e.g., "Sheet1!A:A" or "Sheet Name!A:G" - sheet names with spaces are automatically quoted)'),
184
+ values: createValuesField('Data to append as array of arrays (null/undefined automatically converted to empty strings)'),
183
185
  major_dimension: z
184
186
  .enum(['ROWS', 'COLUMNS'])
185
187
  .optional()
@@ -212,10 +214,7 @@ const GoogleSheetsParamsSchema = z.discriminatedUnion('operation', [
212
214
  .string()
213
215
  .min(1, 'Spreadsheet ID is required')
214
216
  .describe('Google Sheets spreadsheet ID'),
215
- range: z
216
- .string()
217
- .min(1, 'Range is required')
218
- .describe('A1 notation range (e.g., "Sheet1!A1:B10")'),
217
+ range: createRangeField('A1 notation range (e.g., "Sheet1!A1:B10" or "Sheet Name!A:G" - sheet names with spaces are automatically quoted)'),
219
218
  credentials: z
220
219
  .record(z.nativeEnum(CredentialType), z.string())
221
220
  .optional()
@@ -230,10 +229,7 @@ const GoogleSheetsParamsSchema = z.discriminatedUnion('operation', [
230
229
  .string()
231
230
  .min(1, 'Spreadsheet ID is required')
232
231
  .describe('Google Sheets spreadsheet ID'),
233
- ranges: z
234
- .array(z.string())
235
- .min(1, 'At least one range is required')
236
- .describe('Array of A1 notation ranges'),
232
+ ranges: createRangesField('Array of A1 notation ranges (sheet names with spaces are automatically quoted)'),
237
233
  major_dimension: z
238
234
  .enum(['ROWS', 'COLUMNS'])
239
235
  .optional()
@@ -265,10 +261,14 @@ const GoogleSheetsParamsSchema = z.discriminatedUnion('operation', [
265
261
  .describe('Google Sheets spreadsheet ID'),
266
262
  value_ranges: z
267
263
  .array(z.object({
268
- range: z.string().describe('A1 notation range'),
264
+ range: z
265
+ .string()
266
+ .transform((val) => normalizeRange(val))
267
+ .describe('A1 notation range (sheet names with spaces are automatically quoted)'),
269
268
  values: z
270
- .array(z.array(z.union([z.string(), z.number(), z.boolean()])))
271
- .describe('Data values'),
269
+ .array(z.array(z.unknown()))
270
+ .transform((val) => sanitizeValues(val))
271
+ .describe('Data values (null/undefined automatically converted to empty strings)'),
272
272
  major_dimension: z
273
273
  .enum(['ROWS', 'COLUMNS'])
274
274
  .optional()
@@ -379,7 +379,7 @@ const GoogleSheetsParamsSchema = z.discriminatedUnion('operation', [
379
379
  }),
380
380
  ]);
381
381
  // Define result schemas for different operations
382
- const GoogleSheetsResultSchema = z.discriminatedUnion('operation', [
382
+ export const GoogleSheetsResultSchema = z.discriminatedUnion('operation', [
383
383
  z.object({
384
384
  operation: z.literal('read_values').describe('Read values from a range'),
385
385
  success: z.boolean().describe('Whether the operation was successful'),
@@ -537,368 +537,4 @@ const GoogleSheetsResultSchema = z.discriminatedUnion('operation', [
537
537
  error: z.string().describe('Error message if operation failed'),
538
538
  }),
539
539
  ]);
540
- export class GoogleSheetsBubble extends ServiceBubble {
541
- static type = 'service';
542
- static service = 'google-sheets';
543
- static authType = 'oauth';
544
- static bubbleName = 'google-sheets';
545
- static schema = GoogleSheetsParamsSchema;
546
- static resultSchema = GoogleSheetsResultSchema;
547
- static shortDescription = 'Google Sheets integration for spreadsheet operations';
548
- static longDescription = `
549
- Google Sheets service integration for comprehensive spreadsheet data management.
550
- Use cases:
551
- - Read and write spreadsheet data with flexible ranges
552
- - Batch operations for efficient data processing
553
- - Create and manage spreadsheets and sheets
554
- - Clear and append data with various formatting options
555
- - Handle formulas, formatted values, and raw data
556
-
557
- Security Features:
558
- - OAuth 2.0 authentication with Google
559
- - Scoped access permissions for Google Sheets
560
- - Secure data validation and sanitization
561
- - User-controlled access to spreadsheet data
562
- `;
563
- static alias = 'sheets';
564
- constructor(params = {
565
- operation: 'read_values',
566
- spreadsheet_id: '',
567
- range: 'Sheet1!A1:B10',
568
- }, context) {
569
- super(params, context);
570
- }
571
- async testCredential() {
572
- const credential = this.chooseCredential();
573
- if (!credential) {
574
- throw new Error('Google Sheets credentials are required');
575
- }
576
- try {
577
- // Test the credentials by making a simple API call
578
- const response = await fetch('https://sheets.googleapis.com/v4/spreadsheets/test', {
579
- headers: {
580
- Authorization: `Bearer ${credential}`,
581
- 'Content-Type': 'application/json',
582
- },
583
- });
584
- // Even if the spreadsheet doesn't exist, a 404 with proper auth means credentials work
585
- return response.status === 404 || response.ok;
586
- }
587
- catch {
588
- return false;
589
- }
590
- }
591
- async makeSheetsApiRequest(endpoint, method = 'GET', body, headers = {}) {
592
- const url = endpoint.startsWith('https://')
593
- ? endpoint
594
- : `https://sheets.googleapis.com/v4${endpoint}`;
595
- const requestHeaders = {
596
- Authorization: `Bearer ${this.chooseCredential()}`,
597
- 'Content-Type': 'application/json',
598
- ...headers,
599
- };
600
- const requestInit = {
601
- method,
602
- headers: requestHeaders,
603
- };
604
- if (body && method !== 'GET') {
605
- requestInit.body = JSON.stringify(body);
606
- }
607
- const response = await fetch(url, requestInit);
608
- if (!response.ok) {
609
- const errorText = await response.text();
610
- throw new Error(`Google Sheets API error: ${response.status} ${response.statusText} - ${errorText}`);
611
- }
612
- // Handle empty responses
613
- const contentType = response.headers.get('content-type');
614
- if (contentType && contentType.includes('application/json')) {
615
- return await response.json();
616
- }
617
- else {
618
- return await response.text();
619
- }
620
- }
621
- async performAction(context) {
622
- void context;
623
- const { operation } = this.params;
624
- try {
625
- const result = await (async () => {
626
- switch (operation) {
627
- case 'read_values':
628
- return await this.readValues(this.params);
629
- case 'write_values':
630
- return await this.writeValues(this.params);
631
- case 'update_values':
632
- return await this.updateValues(this.params);
633
- case 'append_values':
634
- return await this.appendValues(this.params);
635
- case 'clear_values':
636
- return await this.clearValues(this.params);
637
- case 'batch_read_values':
638
- return await this.batchReadValues(this.params);
639
- case 'batch_update_values':
640
- return await this.batchUpdateValues(this.params);
641
- case 'get_spreadsheet_info':
642
- return await this.getSpreadsheetInfo(this.params);
643
- case 'create_spreadsheet':
644
- return await this.createSpreadsheet(this.params);
645
- case 'add_sheet':
646
- return await this.addSheet(this.params);
647
- case 'delete_sheet':
648
- return await this.deleteSheet(this.params);
649
- default:
650
- throw new Error(`Unsupported operation: ${operation}`);
651
- }
652
- })();
653
- return result;
654
- }
655
- catch (error) {
656
- return {
657
- operation,
658
- success: false,
659
- error: error instanceof Error ? error.message : 'Unknown error occurred',
660
- };
661
- }
662
- }
663
- async readValues(params) {
664
- const { spreadsheet_id, range, major_dimension, value_render_option, date_time_render_option, } = params;
665
- const queryParams = new URLSearchParams({
666
- majorDimension: major_dimension || 'ROWS',
667
- valueRenderOption: value_render_option || 'FORMATTED_VALUE',
668
- dateTimeRenderOption: date_time_render_option || 'SERIAL_NUMBER',
669
- });
670
- const response = await this.makeSheetsApiRequest(`/spreadsheets/${spreadsheet_id}/values/${encodeURIComponent(range)}?${queryParams.toString()}`);
671
- return {
672
- operation: 'read_values',
673
- success: true,
674
- range: response.range,
675
- values: response.values || [],
676
- major_dimension: response.majorDimension,
677
- error: '',
678
- };
679
- }
680
- async writeValues(params) {
681
- const { spreadsheet_id, range, values, major_dimension, value_input_option, include_values_in_response, } = params;
682
- const queryParams = new URLSearchParams({
683
- valueInputOption: value_input_option || 'USER_ENTERED',
684
- includeValuesInResponse: include_values_in_response?.toString() || 'false',
685
- });
686
- const body = {
687
- range,
688
- majorDimension: major_dimension,
689
- values,
690
- };
691
- const response = await this.makeSheetsApiRequest(`/spreadsheets/${spreadsheet_id}/values/${encodeURIComponent(range)}?${queryParams.toString()}`, 'PUT', body);
692
- return {
693
- operation: 'write_values',
694
- success: true,
695
- updated_range: response.updatedRange,
696
- updated_rows: response.updatedRows,
697
- updated_columns: response.updatedColumns,
698
- updated_cells: response.updatedCells,
699
- updated_data: response.updatedData,
700
- error: '',
701
- };
702
- }
703
- async updateValues(params) {
704
- const { spreadsheet_id, range, values, major_dimension, value_input_option, include_values_in_response, } = params;
705
- const queryParams = new URLSearchParams({
706
- valueInputOption: value_input_option || 'USER_ENTERED',
707
- includeValuesInResponse: include_values_in_response?.toString() || 'false',
708
- });
709
- const body = {
710
- range,
711
- majorDimension: major_dimension,
712
- values,
713
- };
714
- const response = await this.makeSheetsApiRequest(`/spreadsheets/${spreadsheet_id}/values/${encodeURIComponent(range)}?${queryParams.toString()}`, 'PUT', body);
715
- return {
716
- operation: 'update_values',
717
- success: true,
718
- updated_range: response.updatedRange,
719
- updated_rows: response.updatedRows,
720
- updated_columns: response.updatedColumns,
721
- updated_cells: response.updatedCells,
722
- updated_data: response.updatedData,
723
- error: '',
724
- };
725
- }
726
- async appendValues(params) {
727
- const { spreadsheet_id, range, values, major_dimension, value_input_option, insert_data_option, include_values_in_response, } = params;
728
- const queryParams = new URLSearchParams({
729
- valueInputOption: value_input_option || 'USER_ENTERED',
730
- insertDataOption: insert_data_option || 'INSERT_ROWS',
731
- includeValuesInResponse: include_values_in_response?.toString() || 'false',
732
- });
733
- const body = {
734
- range,
735
- majorDimension: major_dimension,
736
- values,
737
- };
738
- const response = await this.makeSheetsApiRequest(`/spreadsheets/${spreadsheet_id}/values/${encodeURIComponent(range)}:append?${queryParams.toString()}`, 'POST', body);
739
- return {
740
- operation: 'append_values',
741
- success: true,
742
- table_range: response.tableRange,
743
- updated_range: response.updates?.updatedRange,
744
- updated_rows: response.updates?.updatedRows,
745
- updated_columns: response.updates?.updatedColumns,
746
- updated_cells: response.updates?.updatedCells,
747
- error: '',
748
- };
749
- }
750
- async clearValues(params) {
751
- const { spreadsheet_id, range } = params;
752
- const response = await this.makeSheetsApiRequest(`/spreadsheets/${spreadsheet_id}/values/${encodeURIComponent(range)}:clear`, 'POST', {});
753
- return {
754
- operation: 'clear_values',
755
- success: true,
756
- cleared_range: response.clearedRange,
757
- error: '',
758
- };
759
- }
760
- async batchReadValues(params) {
761
- const { spreadsheet_id, ranges, major_dimension, value_render_option, date_time_render_option, } = params;
762
- const queryParams = new URLSearchParams({
763
- majorDimension: major_dimension || 'ROWS',
764
- valueRenderOption: value_render_option || 'FORMATTED_VALUE',
765
- dateTimeRenderOption: date_time_render_option || 'SERIAL_NUMBER',
766
- });
767
- // Add multiple ranges
768
- ranges.forEach((range) => queryParams.append('ranges', range));
769
- const response = await this.makeSheetsApiRequest(`/spreadsheets/${spreadsheet_id}/values:batchGet?${queryParams.toString()}`);
770
- return {
771
- operation: 'batch_read_values',
772
- success: true,
773
- value_ranges: response.valueRanges || [],
774
- error: '',
775
- };
776
- }
777
- async batchUpdateValues(params) {
778
- const { spreadsheet_id, value_ranges, value_input_option, include_values_in_response, } = params;
779
- const body = {
780
- valueInputOption: value_input_option,
781
- includeValuesInResponse: include_values_in_response,
782
- data: value_ranges.map((vr) => ({
783
- range: vr.range,
784
- majorDimension: vr.major_dimension,
785
- values: vr.values,
786
- })),
787
- };
788
- const response = await this.makeSheetsApiRequest(`/spreadsheets/${spreadsheet_id}/values:batchUpdate`, 'POST', body);
789
- return {
790
- operation: 'batch_update_values',
791
- success: true,
792
- total_updated_rows: response.totalUpdatedRows,
793
- total_updated_columns: response.totalUpdatedColumns,
794
- total_updated_cells: response.totalUpdatedCells,
795
- total_updated_sheets: response.totalUpdatedSheets,
796
- responses: response.responses?.map((r) => ({
797
- updated_range: r.updatedRange,
798
- updated_rows: r.updatedRows,
799
- updated_columns: r.updatedColumns,
800
- updated_cells: r.updatedCells,
801
- })),
802
- error: '',
803
- };
804
- }
805
- async getSpreadsheetInfo(params) {
806
- const { spreadsheet_id, include_grid_data } = params;
807
- const queryParams = new URLSearchParams();
808
- if (include_grid_data) {
809
- queryParams.set('includeGridData', 'true');
810
- }
811
- const response = await this.makeSheetsApiRequest(`/spreadsheets/${spreadsheet_id}?${queryParams.toString()}`);
812
- return {
813
- operation: 'get_spreadsheet_info',
814
- success: true,
815
- spreadsheet: response,
816
- error: '',
817
- };
818
- }
819
- async createSpreadsheet(params) {
820
- const { title, sheet_titles } = params;
821
- if (!sheet_titles) {
822
- throw new Error('Sheet titles are required');
823
- }
824
- const body = {
825
- properties: {
826
- title,
827
- },
828
- sheets: sheet_titles.map((sheetTitle, index) => ({
829
- properties: {
830
- title: sheetTitle,
831
- index,
832
- sheetType: 'GRID',
833
- gridProperties: {
834
- rowCount: 1000,
835
- columnCount: 26,
836
- },
837
- },
838
- })),
839
- };
840
- const response = await this.makeSheetsApiRequest('/spreadsheets', 'POST', body);
841
- return {
842
- operation: 'create_spreadsheet',
843
- success: true,
844
- spreadsheet: response,
845
- error: '',
846
- };
847
- }
848
- async addSheet(params) {
849
- const { spreadsheet_id, sheet_title, row_count, column_count } = params;
850
- const body = {
851
- requests: [
852
- {
853
- addSheet: {
854
- properties: {
855
- title: sheet_title,
856
- sheetType: 'GRID',
857
- gridProperties: {
858
- rowCount: row_count,
859
- columnCount: column_count,
860
- },
861
- },
862
- },
863
- },
864
- ],
865
- };
866
- const response = await this.makeSheetsApiRequest(`/spreadsheets/${spreadsheet_id}:batchUpdate`, 'POST', body);
867
- const addSheetResponse = response.replies?.[0]?.addSheet;
868
- return {
869
- operation: 'add_sheet',
870
- success: true,
871
- sheet_id: addSheetResponse?.properties?.sheetId,
872
- sheet_title: addSheetResponse?.properties?.title,
873
- error: '',
874
- };
875
- }
876
- async deleteSheet(params) {
877
- const { spreadsheet_id, sheet_id } = params;
878
- const body = {
879
- requests: [
880
- {
881
- deleteSheet: {
882
- sheetId: sheet_id,
883
- },
884
- },
885
- ],
886
- };
887
- await this.makeSheetsApiRequest(`/spreadsheets/${spreadsheet_id}:batchUpdate`, 'POST', body);
888
- return {
889
- operation: 'delete_sheet',
890
- success: true,
891
- deleted_sheet_id: sheet_id,
892
- error: '',
893
- };
894
- }
895
- chooseCredential() {
896
- const { credentials } = this.params;
897
- if (!credentials || typeof credentials !== 'object') {
898
- throw new Error('No Google Sheets credentials provided');
899
- }
900
- // Google Sheets bubble uses GOOGLE_SHEETS_CRED credentials
901
- return credentials[CredentialType.GOOGLE_SHEETS_CRED];
902
- }
903
- }
904
- //# sourceMappingURL=google-sheets.js.map
540
+ //# sourceMappingURL=google-sheets.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-sheets.schema.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/google-sheets/google-sheets.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1E,4BAA4B;AAC5B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACnD,cAAc,EAAE,CAAC;SACd,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SACzB,QAAQ,EAAE;SACV,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;SAC9D,QAAQ,CAAC,oCAAoC,CAAC;CAClD,CAAC;KACD,QAAQ,CAAC,kCAAkC,CAAC,CAAC;AAEhD,iCAAiC;AACjC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACnE,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACjE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;KACtD,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,wBAAwB,CAAC;IACrC,MAAM,EAAE,CAAC;SACN,KAAK,CACJ,CAAC;SACE,MAAM,CAAC;QACN,UAAU,EAAE,CAAC;aACV,MAAM,CAAC;YACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;YACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACvD,cAAc,EAAE,CAAC;iBACd,MAAM,CAAC;gBACN,QAAQ,EAAE,CAAC;qBACR,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,6BAA6B,CAAC;gBAC1C,WAAW,EAAE,CAAC;qBACX,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,gCAAgC,CAAC;aAC9C,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,8BAA8B,CAAC;SAC5C,CAAC;aACD,QAAQ,CAAC,kBAAkB,CAAC;KAChC,CAAC;SACD,QAAQ,CAAC,mBAAmB,CAAC,CACjC;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,mCAAmC,CAAC;IAChD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACzE,CAAC;KACD,QAAQ,CAAC,uCAAuC,CAAC,CAAC;AAErD,8DAA8D;AAC9D,qEAAqE;AACrE,MAAM,gBAAgB,GAAG,CAAC,WAAmB,EAAE,EAAE,CAC/C,CAAC;KACE,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC;KAC3B,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;KACvC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAE3B,8DAA8D;AAC9D,oEAAoE;AACpE,uFAAuF;AACvF,yDAAyD;AACzD,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,EAAE,CAChD,CAAC;KACE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAC3B,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC;KACtC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;KACvC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAE3B,qEAAqE;AACrE,uEAAuE;AACvE,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,EAAE,CAChD,CAAC;KACE,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACjB,GAAG,CAAC,CAAC,EAAE,gCAAgC,CAAC;KACxC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;KACrD,QAAQ,CAAC,WAAW,CAAC,CAAC;AAE3B,4DAA4D;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,kBAAkB,CAAC,WAAW,EAAE;IACxE,wBAAwB;IACxB,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACxE,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;aACpC,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,KAAK,EAAE,gBAAgB,CACrB,kHAAkH,CACnH;QACD,eAAe,EAAE,CAAC;aACf,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;aACzB,QAAQ,EAAE;aACV,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,mBAAmB,EAAE,CAAC;aACnB,IAAI,CAAC,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;aACzD,QAAQ,EAAE;aACV,OAAO,CAAC,iBAAiB,CAAC;aAC1B,QAAQ,CAAC,gDAAgD,CAAC;QAC7D,uBAAuB,EAAE,CAAC;aACvB,IAAI,CAAC,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;aAC3C,QAAQ,EAAE;aACV,OAAO,CAAC,eAAe,CAAC;aACxB,QAAQ,CAAC,yCAAyC,CAAC;QACtD,WAAW,EAAE,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAChD,QAAQ,EAAE;aACV,QAAQ,CACP,iEAAiE,CAClE;KACJ,CAAC;IAEF,yBAAyB;IACzB,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACxE,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;aACpC,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,KAAK,EAAE,gBAAgB,CACrB,kHAAkH,CACnH;QACD,MAAM,EAAE,iBAAiB,CACvB,4FAA4F,CAC7F;QACD,eAAe,EAAE,CAAC;aACf,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;aACzB,QAAQ,EAAE;aACV,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,kBAAkB,EAAE,CAAC;aAClB,IAAI,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;aAC7B,QAAQ,EAAE;aACV,OAAO,CAAC,cAAc,CAAC;aACvB,QAAQ,CAAC,sCAAsC,CAAC;QACnD,0BAA0B,EAAE,CAAC;aAC1B,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,oCAAoC,CAAC;QACjD,WAAW,EAAE,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAChD,QAAQ,EAAE;aACV,QAAQ,CACP,iEAAiE,CAClE;KACJ,CAAC;IAEF,0BAA0B;IAC1B,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,eAAe,CAAC;aACxB,QAAQ,CAAC,mCAAmC,CAAC;QAChD,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;aACpC,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,KAAK,EAAE,gBAAgB,CACrB,kHAAkH,CACnH;QACD,MAAM,EAAE,iBAAiB,CACvB,6FAA6F,CAC9F;QACD,eAAe,EAAE,CAAC;aACf,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;aACzB,QAAQ,EAAE;aACV,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,kBAAkB,EAAE,CAAC;aAClB,IAAI,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;aAC7B,QAAQ,EAAE;aACV,OAAO,CAAC,cAAc,CAAC;aACvB,QAAQ,CAAC,sCAAsC,CAAC;QACnD,0BAA0B,EAAE,CAAC;aAC1B,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,oCAAoC,CAAC;QACjD,WAAW,EAAE,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAChD,QAAQ,EAAE;aACV,QAAQ,CACP,iEAAiE,CAClE;KACJ,CAAC;IAEF,0BAA0B;IAC1B,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,eAAe,CAAC;aACxB,QAAQ,CAAC,qCAAqC,CAAC;QAClD,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;aACpC,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,KAAK,EAAE,gBAAgB,CACrB,mIAAmI,CACpI;QACD,MAAM,EAAE,iBAAiB,CACvB,6FAA6F,CAC9F;QACD,eAAe,EAAE,CAAC;aACf,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;aACzB,QAAQ,EAAE;aACV,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,kBAAkB,EAAE,CAAC;aAClB,IAAI,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;aAC7B,QAAQ,EAAE;aACV,OAAO,CAAC,cAAc,CAAC;aACvB,QAAQ,CAAC,sCAAsC,CAAC;QACnD,kBAAkB,EAAE,CAAC;aAClB,IAAI,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;aAClC,QAAQ,EAAE;aACV,OAAO,CAAC,aAAa,CAAC;aACtB,QAAQ,CAAC,6BAA6B,CAAC;QAC1C,0BAA0B,EAAE,CAAC;aAC1B,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,qCAAqC,CAAC;QAClD,WAAW,EAAE,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAChD,QAAQ,EAAE;aACV,QAAQ,CACP,iEAAiE,CAClE;KACJ,CAAC;IAEF,yBAAyB;IACzB,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC1E,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;aACpC,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,KAAK,EAAE,gBAAgB,CACrB,kHAAkH,CACnH;QACD,WAAW,EAAE,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAChD,QAAQ,EAAE;aACV,QAAQ,CACP,iEAAiE,CAClE;KACJ,CAAC;IAEF,8BAA8B;IAC9B,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,mBAAmB,CAAC;aAC5B,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;aACpC,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,MAAM,EAAE,iBAAiB,CACvB,gFAAgF,CACjF;QACD,eAAe,EAAE,CAAC;aACf,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;aACzB,QAAQ,EAAE;aACV,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,mBAAmB,EAAE,CAAC;aACnB,IAAI,CAAC,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;aACzD,QAAQ,EAAE;aACV,OAAO,CAAC,iBAAiB,CAAC;aAC1B,QAAQ,CAAC,gDAAgD,CAAC;QAC7D,uBAAuB,EAAE,CAAC;aACvB,IAAI,CAAC,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;aAC3C,QAAQ,EAAE;aACV,OAAO,CAAC,eAAe,CAAC;aACxB,QAAQ,CAAC,yCAAyC,CAAC;QACtD,WAAW,EAAE,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAChD,QAAQ,EAAE;aACV,QAAQ,CACP,iEAAiE,CAClE;KACJ,CAAC;IAEF,gCAAgC;IAChC,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,qBAAqB,CAAC;aAC9B,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;aACpC,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,YAAY,EAAE,CAAC;aACZ,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;iBACvC,QAAQ,CACP,sEAAsE,CACvE;YACH,MAAM,EAAE,CAAC;iBACN,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;iBAC3B,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;iBACvC,QAAQ,CACP,uEAAuE,CACxE;YACH,eAAe,EAAE,CAAC;iBACf,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;iBACzB,QAAQ,EAAE;iBACV,OAAO,CAAC,MAAM,CAAC;SACnB,CAAC,CACH;aACA,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;aAC9C,QAAQ,CAAC,iCAAiC,CAAC;QAC9C,kBAAkB,EAAE,CAAC;aAClB,IAAI,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;aAC7B,QAAQ,EAAE;aACV,OAAO,CAAC,cAAc,CAAC;aACvB,QAAQ,CAAC,sCAAsC,CAAC;QACnD,0BAA0B,EAAE,CAAC;aAC1B,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,oCAAoC,CAAC;QACjD,WAAW,EAAE,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAChD,QAAQ,EAAE;aACV,QAAQ,CACP,iEAAiE,CAClE;KACJ,CAAC;IAEF,iCAAiC;IACjC,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,sBAAsB,CAAC;aAC/B,QAAQ,CAAC,yCAAyC,CAAC;QACtD,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;aACpC,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,iBAAiB,EAAE,CAAC;aACjB,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,WAAW,EAAE,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAChD,QAAQ,EAAE;aACV,QAAQ,CACP,iEAAiE,CAClE;KACJ,CAAC;IAEF,+BAA+B;IAC/B,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,oBAAoB,CAAC;aAC7B,QAAQ,CAAC,0BAA0B,CAAC;QACvC,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;aACvC,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,YAAY,EAAE,CAAC;aACZ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;aACnB,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,WAAW,EAAE,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAChD,QAAQ,EAAE;aACV,QAAQ,CACP,iEAAiE,CAClE;KACJ,CAAC;IAEF,sBAAsB;IACtB,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,WAAW,CAAC;aACpB,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;aACpC,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;aACjC,QAAQ,CAAC,yBAAyB,CAAC;QACtC,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,OAAO,CAAC,IAAI,CAAC;aACb,QAAQ,CAAC,iCAAiC,CAAC;QAC9C,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,oCAAoC,CAAC;QACjD,WAAW,EAAE,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAChD,QAAQ,EAAE;aACV,QAAQ,CACP,iEAAiE,CAClE;KACJ,CAAC;IAEF,yBAAyB;IACzB,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,cAAc,CAAC;aACvB,QAAQ,CAAC,iCAAiC,CAAC;QAC9C,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;aACpC,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;aACvC,QAAQ,CAAC,2BAA2B,CAAC;QACxC,WAAW,EAAE,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAChD,QAAQ,EAAE;aACV,QAAQ,CACP,iEAAiE,CAClE;KACJ,CAAC;CACH,CAAC,CAAC;AAEH,iDAAiD;AACjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,kBAAkB,CAAC,WAAW,EAAE;IACxE,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACxE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACrE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAChE,MAAM,EAAE,CAAC;aACN,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;aAC9D,QAAQ,EAAE;aACV,QAAQ,CAAC,2BAA2B,CAAC;QACxC,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wCAAwC,CAAC;QACrD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAChE,CAAC;IAEF,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACxE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACrE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC3E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACtE,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,2BAA2B,CAAC;QACxC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACxE,YAAY,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAChD,2BAA2B,CAC5B;QACD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAChE,CAAC;IAEF,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,eAAe,CAAC;aACxB,QAAQ,CAAC,mCAAmC,CAAC;QAChD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACrE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC3E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACtE,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,2BAA2B,CAAC;QACxC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACxE,YAAY,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAChD,2BAA2B,CAC5B;QACD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAChE,CAAC;IAEF,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,eAAe,CAAC;aACxB,QAAQ,CAAC,qCAAqC,CAAC;QAClD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACrE,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yCAAyC,CAAC;QACtD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC3E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACtE,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,2BAA2B,CAAC;QACxC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACxE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAChE,CAAC;IAEF,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC1E,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACrE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC3E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAChE,CAAC;IAEF,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,mBAAmB,CAAC;aAC5B,QAAQ,CAAC,8BAA8B,CAAC;QAC3C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACrE,YAAY,EAAE,CAAC;aACZ,KAAK,CAAC,gBAAgB,CAAC;aACvB,QAAQ,EAAE;aACV,QAAQ,CAAC,sCAAsC,CAAC;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAChE,CAAC;IAEF,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,qBAAqB,CAAC;aAC9B,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACrE,kBAAkB,EAAE,CAAC;aAClB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,gDAAgD,CAAC;QAC7D,qBAAqB,EAAE,CAAC;aACrB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mDAAmD,CAAC;QAChE,mBAAmB,EAAE,CAAC;aACnB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,iDAAiD,CAAC;QAC9D,oBAAoB,EAAE,CAAC;aACpB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,SAAS,EAAE,CAAC;aACT,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,aAAa,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,wBAAwB,CAAC;YACrC,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,sCAAsC,CAAC;YACnD,eAAe,EAAE,CAAC;iBACf,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,yCAAyC,CAAC;YACtD,aAAa,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,uCAAuC,CAAC;SACrD,CAAC;aACD,QAAQ,CAAC,kCAAkC,CAAC,CAChD;aACA,QAAQ,EAAE;aACV,QAAQ,CAAC,6BAA6B,CAAC;QAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAChE,CAAC;IAEF,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,sBAAsB,CAAC;aAC/B,QAAQ,CAAC,yCAAyC,CAAC;QACtD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACrE,WAAW,EAAE,qBAAqB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACpD,yBAAyB,CAC1B;QACD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAChE,CAAC;IAEF,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,oBAAoB,CAAC;aAC7B,QAAQ,CAAC,0BAA0B,CAAC;QACvC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACrE,WAAW,EAAE,qBAAqB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACpD,iCAAiC,CAClC;QACD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAChE,CAAC;IAEF,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,WAAW,CAAC;aACpB,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACrE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACjE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACvE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAChE,CAAC;IAEF,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC;aACT,OAAO,CAAC,cAAc,CAAC;aACvB,QAAQ,CAAC,iCAAiC,CAAC;QAC9C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACrE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC3E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAChE,CAAC;CACH,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Utility functions for Google Sheets bubble
3
+ * Handles range normalization, value sanitization, and error handling
4
+ */
5
+ /**
6
+ * Normalizes A1 notation range to ensure sheet names with spaces/special chars are quoted
7
+ *
8
+ * Examples:
9
+ * "Sheet1!A1:B10" -> "Sheet1!A1:B10"
10
+ * "Kaus Mode Landing zone!A:G" -> "'Kaus Mode Landing zone'!A:G"
11
+ * "'Sheet Name'!A1" -> "'Sheet Name'!A1" (already quoted, no change)
12
+ * "Sheet1!A1" -> "Sheet1!A1" (no sheet name change needed)
13
+ *
14
+ * @param range - A1 notation range string
15
+ * @returns Normalized range with proper quoting
16
+ */
17
+ export declare function normalizeRange(range: string): string;
18
+ /**
19
+ * Validates A1 notation range format
20
+ * Returns normalized range or throws descriptive error
21
+ *
22
+ * @param range - A1 notation range string
23
+ * @returns Normalized and validated range
24
+ * @throws Error if range format is invalid
25
+ */
26
+ export declare function validateAndNormalizeRange(range: string): string;
27
+ /**
28
+ * Sanitizes values array by converting null/undefined to empty strings
29
+ * This ensures Google Sheets API compatibility (only accepts string | number | boolean)
30
+ *
31
+ * Also handles Date objects by converting them to ISO strings
32
+ *
33
+ * @param values - Values array (may contain null/undefined/Date objects)
34
+ * @returns Sanitized array with only string | number | boolean values
35
+ */
36
+ export declare function sanitizeValues(values: unknown): Array<Array<string | number | boolean>>;
37
+ export declare function enhanceErrorMessage(errorText: string, status: number, statusText: string, spreadsheetId?: string, range?: string): string;
38
+ //# sourceMappingURL=google-sheets.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-sheets.utils.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/google-sheets/google-sheets.utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoCpD;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkB/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,OAAO,GACd,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAiCzC;AAiCD,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAsDR"}