@bubblelab/bubble-core 0.1.10 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bubble-bundle.d.ts +759 -350
- package/dist/bubble-factory.d.ts.map +1 -1
- package/dist/bubble-factory.js +125 -35
- package/dist/bubble-factory.js.map +1 -1
- package/dist/bubble-flow/bubble-flow-class.d.ts +5 -0
- package/dist/bubble-flow/bubble-flow-class.d.ts.map +1 -1
- package/dist/bubble-flow/bubble-flow-class.js +20 -0
- package/dist/bubble-flow/bubble-flow-class.js.map +1 -1
- package/dist/bubble-flow/sample/simplified-data-analysis.flow.d.ts.map +1 -1
- package/dist/bubble-flow/sample/simplified-data-analysis.flow.js +6 -3
- package/dist/bubble-flow/sample/simplified-data-analysis.flow.js.map +1 -1
- package/dist/bubbles/service-bubble/agi-inc.d.ts +1121 -0
- package/dist/bubbles/service-bubble/agi-inc.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/agi-inc.js +730 -0
- package/dist/bubbles/service-bubble/agi-inc.js.map +1 -0
- package/dist/bubbles/service-bubble/ai-agent.d.ts +277 -65
- package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/ai-agent.js +533 -399
- package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
- package/dist/bubbles/service-bubble/airtable.d.ts +1753 -0
- package/dist/bubbles/service-bubble/airtable.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/airtable.js +1173 -0
- package/dist/bubbles/service-bubble/airtable.js.map +1 -0
- package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts +240 -0
- package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.js +119 -0
- package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.js.map +1 -0
- package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +4 -4
- package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +14 -14
- package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +137 -0
- package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.js +81 -0
- package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.js.map +1 -0
- package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +6 -6
- package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +32 -32
- package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +488 -0
- package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.js +463 -0
- package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.js.map +1 -0
- package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +262 -0
- package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.js +291 -0
- package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.js.map +1 -0
- package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
- package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +1301 -170
- package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js +32 -0
- package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js.map +1 -1
- package/dist/bubbles/service-bubble/apify/apify.d.ts +162 -17
- package/dist/bubbles/service-bubble/apify/apify.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/apify/apify.js +205 -32
- package/dist/bubbles/service-bubble/apify/apify.js.map +1 -1
- package/dist/bubbles/service-bubble/eleven-labs.d.ts +421 -0
- package/dist/bubbles/service-bubble/eleven-labs.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/eleven-labs.js +479 -0
- package/dist/bubbles/service-bubble/eleven-labs.js.map +1 -0
- package/dist/bubbles/service-bubble/firecrawl.d.ts +37748 -0
- package/dist/bubbles/service-bubble/firecrawl.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/firecrawl.js +1489 -0
- package/dist/bubbles/service-bubble/firecrawl.js.map +1 -0
- package/dist/bubbles/service-bubble/followupboss.d.ts +6822 -0
- package/dist/bubbles/service-bubble/followupboss.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/followupboss.js +1394 -0
- package/dist/bubbles/service-bubble/followupboss.js.map +1 -0
- package/dist/bubbles/service-bubble/github.d.ts +2399 -0
- package/dist/bubbles/service-bubble/github.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/github.js +1052 -0
- package/dist/bubbles/service-bubble/github.js.map +1 -0
- package/dist/bubbles/service-bubble/gmail.d.ts +180 -180
- package/dist/bubbles/service-bubble/google-calendar.d.ts +60 -60
- package/dist/bubbles/service-bubble/google-drive.d.ts +37 -36
- package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/google-drive.js +35 -3
- package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +943 -0
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts +31 -0
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js +184 -0
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js.map +1 -0
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.js +401 -0
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.js.map +1 -0
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts +1024 -0
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/{google-sheets.js → google-sheets/google-sheets.schema.js} +45 -409
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.js.map +1 -0
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.d.ts +38 -0
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.js +183 -0
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.js.map +1 -0
- package/dist/bubbles/service-bubble/google-sheets/index.d.ts +4 -0
- package/dist/bubbles/service-bubble/google-sheets/index.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/google-sheets/index.js +4 -0
- package/dist/bubbles/service-bubble/google-sheets/index.js.map +1 -0
- package/dist/bubbles/service-bubble/hello-world.d.ts +4 -4
- package/dist/bubbles/service-bubble/http.d.ts +4 -4
- package/dist/bubbles/service-bubble/http.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/http.js +7 -1
- package/dist/bubbles/service-bubble/http.js.map +1 -1
- package/dist/bubbles/service-bubble/insforge-db.d.ts +140 -0
- package/dist/bubbles/service-bubble/insforge-db.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/insforge-db.js +260 -0
- package/dist/bubbles/service-bubble/insforge-db.js.map +1 -0
- package/dist/bubbles/service-bubble/notion/index.d.ts +3 -0
- package/dist/bubbles/service-bubble/notion/index.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/notion/index.js +3 -0
- package/dist/bubbles/service-bubble/notion/index.js.map +1 -0
- package/dist/bubbles/service-bubble/notion/notion.d.ts +35405 -0
- package/dist/bubbles/service-bubble/notion/notion.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/notion/notion.js +1492 -0
- package/dist/bubbles/service-bubble/notion/notion.js.map +1 -0
- package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +1148 -0
- package/dist/bubbles/service-bubble/notion/property-schemas.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/notion/property-schemas.js +341 -0
- package/dist/bubbles/service-bubble/notion/property-schemas.js.map +1 -0
- package/dist/bubbles/service-bubble/postgresql.d.ts +12 -12
- package/dist/bubbles/service-bubble/resend.d.ts +34 -13
- package/dist/bubbles/service-bubble/resend.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/resend.js +133 -2
- package/dist/bubbles/service-bubble/resend.js.map +1 -1
- package/dist/bubbles/service-bubble/slack.d.ts +241 -241
- package/dist/bubbles/service-bubble/slack.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/slack.js +2 -2
- package/dist/bubbles/service-bubble/slack.js.map +1 -1
- package/dist/bubbles/service-bubble/storage.d.ts +25 -21
- package/dist/bubbles/service-bubble/storage.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/storage.js +43 -2
- package/dist/bubbles/service-bubble/storage.js.map +1 -1
- package/dist/bubbles/service-bubble/telegram.d.ts +7742 -0
- package/dist/bubbles/service-bubble/telegram.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/telegram.js +1132 -0
- package/dist/bubbles/service-bubble/telegram.js.map +1 -0
- package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +76 -20
- package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts.map +1 -1
- package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js +12 -0
- package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js.map +1 -1
- package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +14 -14
- package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +188 -0
- package/dist/bubbles/tool-bubble/code-edit-tool.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/code-edit-tool.js +321 -0
- package/dist/bubbles/tool-bubble/code-edit-tool.js.map +1 -0
- package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +8 -4
- package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts.map +1 -1
- package/dist/bubbles/tool-bubble/get-bubble-details-tool.js +115 -10
- package/dist/bubbles/tool-bubble/get-bubble-details-tool.js.map +1 -1
- package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +455 -0
- package/dist/bubbles/tool-bubble/google-maps-tool.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/google-maps-tool.js +205 -0
- package/dist/bubbles/tool-bubble/google-maps-tool.js.map +1 -0
- package/dist/bubbles/tool-bubble/instagram-tool.d.ts +36 -36
- package/dist/bubbles/tool-bubble/instagram-tool.d.ts.map +1 -1
- package/dist/bubbles/tool-bubble/instagram-tool.js +2 -2
- package/dist/bubbles/tool-bubble/instagram-tool.js.map +1 -1
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +824 -447
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts.map +1 -1
- package/dist/bubbles/tool-bubble/linkedin-tool.js +232 -12
- package/dist/bubbles/tool-bubble/linkedin-tool.js.map +1 -1
- package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +66 -66
- package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +17 -16
- package/dist/bubbles/tool-bubble/research-agent-tool.d.ts.map +1 -1
- package/dist/bubbles/tool-bubble/research-agent-tool.js +26 -16
- package/dist/bubbles/tool-bubble/research-agent-tool.js.map +1 -1
- package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +485 -0
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/tiktok-tool.js +226 -0
- package/dist/bubbles/tool-bubble/tiktok-tool.js.map +1 -0
- package/dist/bubbles/tool-bubble/tool-template.d.ts +8 -8
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts +947 -0
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/twitter-tool.js +494 -0
- package/dist/bubbles/tool-bubble/twitter-tool.js.map +1 -0
- package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +22 -16
- package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts.map +1 -1
- package/dist/bubbles/tool-bubble/web-crawl-tool.js +58 -59
- package/dist/bubbles/tool-bubble/web-crawl-tool.js.map +1 -1
- package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/web-extract-tool.d.ts.map +1 -1
- package/dist/bubbles/tool-bubble/web-extract-tool.js +17 -17
- package/dist/bubbles/tool-bubble/web-extract-tool.js.map +1 -1
- package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +15 -107
- package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts.map +1 -1
- package/dist/bubbles/tool-bubble/web-scrape-tool.js +51 -72
- package/dist/bubbles/tool-bubble/web-scrape-tool.js.map +1 -1
- package/dist/bubbles/tool-bubble/web-search-tool.d.ts +20 -9
- package/dist/bubbles/tool-bubble/web-search-tool.d.ts.map +1 -1
- package/dist/bubbles/tool-bubble/web-search-tool.js +45 -35
- package/dist/bubbles/tool-bubble/web-search-tool.js.map +1 -1
- package/dist/bubbles/tool-bubble/youtube-tool.d.ts +25 -25
- package/dist/bubbles/tool-bubble/youtube-tool.d.ts.map +1 -1
- package/dist/bubbles/tool-bubble/youtube-tool.js +5 -5
- package/dist/bubbles/tool-bubble/youtube-tool.js.map +1 -1
- package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +4 -4
- package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +30 -30
- package/dist/bubbles/workflow-bubble/generate-document.workflow.js +1 -1
- package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +22 -22
- package/dist/bubbles/workflow-bubble/parse-document.workflow.js +1 -1
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +54 -54
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts.map +1 -1
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js +4 -4
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js.map +1 -1
- package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +36 -36
- package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js +1 -1
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +14 -14
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts.map +1 -1
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js +6 -6
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js.map +1 -1
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +26 -26
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts.map +1 -1
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.js +24 -4
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.js.map +1 -1
- package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +19 -19
- package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts.map +1 -1
- package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js +8 -8
- package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js.map +1 -1
- package/dist/bubbles.json +220 -72
- package/dist/index.d.ts +23 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -3
- package/dist/index.js.map +1 -1
- package/dist/logging/BubbleLogger.d.ts +45 -16
- package/dist/logging/BubbleLogger.d.ts.map +1 -1
- package/dist/logging/BubbleLogger.js +178 -77
- package/dist/logging/BubbleLogger.js.map +1 -1
- package/dist/logging/StreamingBubbleLogger.d.ts +13 -1
- package/dist/logging/StreamingBubbleLogger.d.ts.map +1 -1
- package/dist/logging/StreamingBubbleLogger.js +51 -8
- package/dist/logging/StreamingBubbleLogger.js.map +1 -1
- package/dist/logging/WebhookStreamLogger.d.ts +66 -0
- package/dist/logging/WebhookStreamLogger.d.ts.map +1 -0
- package/dist/logging/WebhookStreamLogger.js +291 -0
- package/dist/logging/WebhookStreamLogger.js.map +1 -0
- package/dist/types/available-tools.d.ts +1 -1
- package/dist/types/available-tools.d.ts.map +1 -1
- package/dist/types/available-tools.js +1 -0
- package/dist/types/available-tools.js.map +1 -1
- package/dist/types/base-bubble-class.d.ts +6 -4
- package/dist/types/base-bubble-class.d.ts.map +1 -1
- package/dist/types/base-bubble-class.js +35 -20
- package/dist/types/base-bubble-class.js.map +1 -1
- package/dist/types/bubble.d.ts +2 -0
- package/dist/types/bubble.d.ts.map +1 -1
- package/dist/types/service-bubble-class.d.ts +1 -1
- package/dist/types/service-bubble-class.d.ts.map +1 -1
- package/dist/types/service-bubble-class.js +2 -2
- package/dist/types/service-bubble-class.js.map +1 -1
- package/dist/types/tool-bubble-class.d.ts +1 -1
- package/dist/types/tool-bubble-class.d.ts.map +1 -1
- package/dist/types/tool-bubble-class.js +2 -2
- package/dist/types/tool-bubble-class.js.map +1 -1
- package/dist/types/workflow-bubble-class.d.ts +1 -1
- package/dist/types/workflow-bubble-class.d.ts.map +1 -1
- package/dist/types/workflow-bubble-class.js +2 -2
- package/dist/types/workflow-bubble-class.js.map +1 -1
- package/dist/utils/agent-formatter.d.ts +14 -2
- package/dist/utils/agent-formatter.d.ts.map +1 -1
- package/dist/utils/agent-formatter.js +174 -26
- package/dist/utils/agent-formatter.js.map +1 -1
- package/dist/utils/bubbleflow-validation.d.ts +7 -0
- package/dist/utils/bubbleflow-validation.d.ts.map +1 -1
- package/dist/utils/bubbleflow-validation.js +171 -6
- package/dist/utils/bubbleflow-validation.js.map +1 -1
- package/dist/utils/json-parsing.d.ts.map +1 -1
- package/dist/utils/json-parsing.js +146 -0
- package/dist/utils/json-parsing.js.map +1 -1
- package/dist/utils/safe-gemini-chat.d.ts +31 -0
- package/dist/utils/safe-gemini-chat.d.ts.map +1 -0
- package/dist/utils/safe-gemini-chat.js +93 -0
- package/dist/utils/safe-gemini-chat.js.map +1 -0
- package/dist/utils/schema-comparison.d.ts +92 -0
- package/dist/utils/schema-comparison.d.ts.map +1 -0
- package/dist/utils/schema-comparison.js +716 -0
- package/dist/utils/schema-comparison.js.map +1 -0
- package/dist/utils/zod-schema.d.ts +24 -0
- package/dist/utils/zod-schema.d.ts.map +1 -0
- package/dist/utils/zod-schema.js +56 -0
- package/dist/utils/zod-schema.js.map +1 -0
- package/package.json +5 -4
- package/dist/bubbles/service-bubble/google-sheets.d.ts +0 -1811
- package/dist/bubbles/service-bubble/google-sheets.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/google-sheets.js.map +0 -1
- package/dist/bubbles/service-bubble/x-twitter.d.ts +0 -814
- package/dist/bubbles/service-bubble/x-twitter.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/x-twitter.js +0 -445
- package/dist/bubbles/service-bubble/x-twitter.js.map +0 -1
- package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts +0 -125
- package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts.map +0 -1
- package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js +0 -808
- package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js.map +0 -1
- package/dist/test-gm.d.ts +0 -10
- package/dist/test-gm.d.ts.map +0 -1
- package/dist/test-gm.js +0 -95
- package/dist/test-gm.js.map +0 -1
- package/dist/utils/param-helper.d.ts +0 -2
- package/dist/utils/param-helper.d.ts.map +0 -1
- package/dist/utils/param-helper.js +0 -5
- package/dist/utils/param-helper.js.map +0 -1
|
@@ -0,0 +1,183 @@
|
|
|
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 function normalizeRange(range) {
|
|
18
|
+
// If range doesn't contain '!', it's just a cell/range reference, return as-is
|
|
19
|
+
if (!range.includes('!')) {
|
|
20
|
+
return range;
|
|
21
|
+
}
|
|
22
|
+
const [sheetPart, cellPart] = range.split('!', 2);
|
|
23
|
+
// If already quoted, ensure inner quotes are properly escaped
|
|
24
|
+
if (sheetPart.startsWith("'") && sheetPart.endsWith("'")) {
|
|
25
|
+
const innerName = sheetPart.slice(1, -1);
|
|
26
|
+
// Detect any single quote that is not part of a doubled-quote escape
|
|
27
|
+
const hasUnescapedQuote = /(^|[^'])'([^']|$)/.test(innerName);
|
|
28
|
+
if (hasUnescapedQuote) {
|
|
29
|
+
// Re-escape all quotes - first undo any existing escaping, then escape properly
|
|
30
|
+
const unescapedName = innerName.replace(/''/g, "'");
|
|
31
|
+
const escapedInnerName = unescapedName.replace(/'/g, "''");
|
|
32
|
+
return `'${escapedInnerName}'!${cellPart}`;
|
|
33
|
+
}
|
|
34
|
+
// Already quoted and correctly escaped
|
|
35
|
+
return range;
|
|
36
|
+
}
|
|
37
|
+
// Check if sheet name needs quoting (contains spaces, special chars, or starts with number)
|
|
38
|
+
const needsQuoting = sheetPart.includes(' ') ||
|
|
39
|
+
/[^a-zA-Z0-9_]/.test(sheetPart) ||
|
|
40
|
+
/^\d/.test(sheetPart);
|
|
41
|
+
if (needsQuoting) {
|
|
42
|
+
// Escape single quotes in sheet name and wrap in quotes
|
|
43
|
+
const escapedSheetName = sheetPart.replace(/'/g, "''");
|
|
44
|
+
return `'${escapedSheetName}'!${cellPart}`;
|
|
45
|
+
}
|
|
46
|
+
return range;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Validates A1 notation range format
|
|
50
|
+
* Returns normalized range or throws descriptive error
|
|
51
|
+
*
|
|
52
|
+
* @param range - A1 notation range string
|
|
53
|
+
* @returns Normalized and validated range
|
|
54
|
+
* @throws Error if range format is invalid
|
|
55
|
+
*/
|
|
56
|
+
export function validateAndNormalizeRange(range) {
|
|
57
|
+
if (!range || typeof range !== 'string') {
|
|
58
|
+
throw new Error('Range must be a non-empty string');
|
|
59
|
+
}
|
|
60
|
+
const normalized = normalizeRange(range);
|
|
61
|
+
// Basic validation: should contain at least one cell reference
|
|
62
|
+
// Pattern: [SheetName!]A1[:B10] or [SheetName!]A[:G]
|
|
63
|
+
// Handles both quoted ('Sheet Name'!) and unquoted (Sheet1!) sheet names
|
|
64
|
+
const rangePattern = /^(('[^']*'|[^!]*?)!)?[A-Z]+\d*(:[A-Z]+\d*)?$/;
|
|
65
|
+
if (!normalized.match(rangePattern)) {
|
|
66
|
+
throw new Error(`Invalid range format: "${range}". Expected format: "SheetName!A1:B10" or "'Sheet Name'!A:G"`);
|
|
67
|
+
}
|
|
68
|
+
return normalized;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Sanitizes values array by converting null/undefined to empty strings
|
|
72
|
+
* This ensures Google Sheets API compatibility (only accepts string | number | boolean)
|
|
73
|
+
*
|
|
74
|
+
* Also handles Date objects by converting them to ISO strings
|
|
75
|
+
*
|
|
76
|
+
* @param values - Values array (may contain null/undefined/Date objects)
|
|
77
|
+
* @returns Sanitized array with only string | number | boolean values
|
|
78
|
+
*/
|
|
79
|
+
export function sanitizeValues(values) {
|
|
80
|
+
if (!Array.isArray(values)) {
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
return values.map((row) => {
|
|
84
|
+
if (!Array.isArray(row)) {
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
return row.map((cell) => {
|
|
88
|
+
// Convert null/undefined to empty string
|
|
89
|
+
if (cell === null || cell === undefined) {
|
|
90
|
+
return '';
|
|
91
|
+
}
|
|
92
|
+
// Handle Date objects
|
|
93
|
+
if (cell instanceof Date) {
|
|
94
|
+
return cell.toISOString();
|
|
95
|
+
}
|
|
96
|
+
// Keep valid types as-is
|
|
97
|
+
if (typeof cell === 'string' ||
|
|
98
|
+
typeof cell === 'number' ||
|
|
99
|
+
typeof cell === 'boolean') {
|
|
100
|
+
return cell;
|
|
101
|
+
}
|
|
102
|
+
// Convert everything else to string
|
|
103
|
+
return String(cell);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Enhances Google Sheets API error messages with helpful hints
|
|
109
|
+
*
|
|
110
|
+
* @param errorText - Raw error text from API
|
|
111
|
+
* @param status - HTTP status code
|
|
112
|
+
* @param statusText - HTTP status text
|
|
113
|
+
* @param spreadsheetId - Optional spreadsheet ID for generating helpful links
|
|
114
|
+
* @returns Enhanced error message with helpful hints
|
|
115
|
+
*/
|
|
116
|
+
/**
|
|
117
|
+
* Extracts sheet name from a range string
|
|
118
|
+
* Examples:
|
|
119
|
+
* "Sheet1!A1:B10" -> "Sheet1"
|
|
120
|
+
* "'Sheet Name'!A1" -> "Sheet Name"
|
|
121
|
+
* "A1:B10" -> undefined (no sheet name)
|
|
122
|
+
*/
|
|
123
|
+
function extractSheetName(range) {
|
|
124
|
+
if (!range.includes('!')) {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
const [sheetPart] = range.split('!', 2);
|
|
128
|
+
// Remove quotes if present
|
|
129
|
+
if (sheetPart.startsWith("'") && sheetPart.endsWith("'")) {
|
|
130
|
+
return sheetPart.slice(1, -1).replace(/''/g, "'");
|
|
131
|
+
}
|
|
132
|
+
return sheetPart;
|
|
133
|
+
}
|
|
134
|
+
export function enhanceErrorMessage(errorText, status, statusText, spreadsheetId, range) {
|
|
135
|
+
let errorMessage = `Google Sheets API error: ${status} ${statusText}`;
|
|
136
|
+
try {
|
|
137
|
+
const errorJson = JSON.parse(errorText);
|
|
138
|
+
const apiError = errorJson.error;
|
|
139
|
+
if (apiError?.message) {
|
|
140
|
+
errorMessage = apiError.message;
|
|
141
|
+
// Provide helpful hints for common errors
|
|
142
|
+
if (apiError.message.includes('Unable to parse range')) {
|
|
143
|
+
const spreadsheetLink = spreadsheetId
|
|
144
|
+
? `https://docs.google.com/spreadsheets/d/${spreadsheetId}`
|
|
145
|
+
: 'the spreadsheet';
|
|
146
|
+
const sheetName = range ? extractSheetName(range) : undefined;
|
|
147
|
+
const sheetNameInfo = sheetName ? ` "${sheetName}"` : '';
|
|
148
|
+
errorMessage += range ? `\nRange: "${range}"` : '';
|
|
149
|
+
errorMessage +=
|
|
150
|
+
`\nPlease verify that the sheet name${sheetNameInfo} exists in ${spreadsheetLink}. ` +
|
|
151
|
+
`Navigate to the spreadsheet and check the exact sheet name (case-sensitive). ` +
|
|
152
|
+
`The sheet name in your range must match exactly, including any spaces or special characters.`;
|
|
153
|
+
}
|
|
154
|
+
else if (apiError.message.includes('INVALID_ARGUMENT')) {
|
|
155
|
+
errorMessage +=
|
|
156
|
+
'. Please check that all values are strings, numbers, or booleans (not null/undefined). The bubble automatically converts null/undefined to empty strings.';
|
|
157
|
+
}
|
|
158
|
+
else if (apiError.message.includes('PERMISSION_DENIED') ||
|
|
159
|
+
apiError.message.includes('permission')) {
|
|
160
|
+
errorMessage +=
|
|
161
|
+
'. Please ensure your credentials have access to this spreadsheet. The spreadsheet must be present on the same account you connected bubble lab to.';
|
|
162
|
+
}
|
|
163
|
+
else if (apiError.message.includes('NOT_FOUND')) {
|
|
164
|
+
const spreadsheetLink = spreadsheetId
|
|
165
|
+
? `https://docs.google.com/spreadsheets/d/${spreadsheetId}`
|
|
166
|
+
: 'the spreadsheet';
|
|
167
|
+
const sheetName = range ? extractSheetName(range) : undefined;
|
|
168
|
+
const sheetNameInfo = sheetName ? ` "${sheetName}"` : '';
|
|
169
|
+
errorMessage += `. The spreadsheet or sheet may not exist, or you may not have access to it.`;
|
|
170
|
+
if (range) {
|
|
171
|
+
errorMessage += `\nRange: "${range}"`;
|
|
172
|
+
}
|
|
173
|
+
errorMessage += `\nPlease navigate to ${spreadsheetLink} and verify that the sheet name${sheetNameInfo} exists and matches exactly (case-sensitive).`;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
// If parsing fails, use the raw error text
|
|
179
|
+
errorMessage += ` - ${errorText}`;
|
|
180
|
+
}
|
|
181
|
+
return errorMessage;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=google-sheets.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-sheets.utils.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/google-sheets/google-sheets.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { GoogleSheetsBubble } from './google-sheets.js';
|
|
2
|
+
export { GoogleSheetsParamsSchema, GoogleSheetsResultSchema, ValueRangeSchema, SpreadsheetInfoSchema, type GoogleSheetsParams, type GoogleSheetsResult, type GoogleSheetsParamsInput, } from './google-sheets.schema.js';
|
|
3
|
+
export { normalizeRange, validateAndNormalizeRange, sanitizeValues, enhanceErrorMessage, } from './google-sheets.utils.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/google-sheets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,mBAAmB,GACpB,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { GoogleSheetsBubble } from './google-sheets.js';
|
|
2
|
+
export { GoogleSheetsParamsSchema, GoogleSheetsResultSchema, ValueRangeSchema, SpreadsheetInfoSchema, } from './google-sheets.schema.js';
|
|
3
|
+
export { normalizeRange, validateAndNormalizeRange, sanitizeValues, enhanceErrorMessage, } from './google-sheets.utils.js';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/google-sheets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GAItB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,mBAAmB,GACpB,MAAM,0BAA0B,CAAC"}
|
|
@@ -22,12 +22,12 @@ declare const HelloWorldResultSchema: z.ZodObject<{
|
|
|
22
22
|
success: z.ZodBoolean;
|
|
23
23
|
error: z.ZodString;
|
|
24
24
|
}, "strip", z.ZodTypeAny, {
|
|
25
|
-
success: boolean;
|
|
26
25
|
error: string;
|
|
26
|
+
success: boolean;
|
|
27
27
|
greeting: string;
|
|
28
28
|
}, {
|
|
29
|
-
success: boolean;
|
|
30
29
|
error: string;
|
|
30
|
+
success: boolean;
|
|
31
31
|
greeting: string;
|
|
32
32
|
}>;
|
|
33
33
|
type HelloWorldResult = z.output<typeof HelloWorldResultSchema>;
|
|
@@ -54,12 +54,12 @@ export declare class HelloWorldBubble extends ServiceBubble<HelloWorldParams, He
|
|
|
54
54
|
success: z.ZodBoolean;
|
|
55
55
|
error: z.ZodString;
|
|
56
56
|
}, "strip", z.ZodTypeAny, {
|
|
57
|
-
success: boolean;
|
|
58
57
|
error: string;
|
|
58
|
+
success: boolean;
|
|
59
59
|
greeting: string;
|
|
60
60
|
}, {
|
|
61
|
-
success: boolean;
|
|
62
61
|
error: string;
|
|
62
|
+
success: boolean;
|
|
63
63
|
greeting: string;
|
|
64
64
|
}>;
|
|
65
65
|
static readonly shortDescription = "Simple hello world bubble for testing purposes";
|
|
@@ -41,8 +41,8 @@ declare const HttpResultSchema: z.ZodObject<{
|
|
|
41
41
|
size: z.ZodNumber;
|
|
42
42
|
}, "strip", z.ZodTypeAny, {
|
|
43
43
|
status: number;
|
|
44
|
-
success: boolean;
|
|
45
44
|
error: string;
|
|
45
|
+
success: boolean;
|
|
46
46
|
headers: Record<string, string>;
|
|
47
47
|
size: number;
|
|
48
48
|
body: string;
|
|
@@ -51,8 +51,8 @@ declare const HttpResultSchema: z.ZodObject<{
|
|
|
51
51
|
json?: unknown;
|
|
52
52
|
}, {
|
|
53
53
|
status: number;
|
|
54
|
-
success: boolean;
|
|
55
54
|
error: string;
|
|
55
|
+
success: boolean;
|
|
56
56
|
headers: Record<string, string>;
|
|
57
57
|
size: number;
|
|
58
58
|
body: string;
|
|
@@ -103,8 +103,8 @@ export declare class HttpBubble extends ServiceBubble<HttpParams, HttpResult> {
|
|
|
103
103
|
size: z.ZodNumber;
|
|
104
104
|
}, "strip", z.ZodTypeAny, {
|
|
105
105
|
status: number;
|
|
106
|
-
success: boolean;
|
|
107
106
|
error: string;
|
|
107
|
+
success: boolean;
|
|
108
108
|
headers: Record<string, string>;
|
|
109
109
|
size: number;
|
|
110
110
|
body: string;
|
|
@@ -113,8 +113,8 @@ export declare class HttpBubble extends ServiceBubble<HttpParams, HttpResult> {
|
|
|
113
113
|
json?: unknown;
|
|
114
114
|
}, {
|
|
115
115
|
status: number;
|
|
116
|
-
success: boolean;
|
|
117
116
|
error: string;
|
|
117
|
+
success: boolean;
|
|
118
118
|
headers: Record<string, string>;
|
|
119
119
|
size: number;
|
|
120
120
|
body: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/bubbles/service-bubble/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAc5E,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;EA8BpB,CAAC;AAEH,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AACxD,KAAK,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAGpD,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYpB,CAAC;AAEH,KAAK,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEpD,qBAAa,UAAW,SAAQ,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC;IACnE,MAAM,CAAC,QAAQ,CAAC,OAAO,gBAAgB;IACvC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IAC3C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAU;IAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;OAAoB;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoB;IAChD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,uDACsB;IACtD,MAAM,CAAC,QAAQ,CAAC,eAAe,orBAkB7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;gBAG9B,MAAM,GAAE,eAGP,EACD,OAAO,CAAC,EAAE,aAAa;IAKzB,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAKnC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;cAM/B,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/bubbles/service-bubble/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAc5E,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;EA8BpB,CAAC;AAEH,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AACxD,KAAK,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAGpD,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYpB,CAAC;AAEH,KAAK,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEpD,qBAAa,UAAW,SAAQ,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC;IACnE,MAAM,CAAC,QAAQ,CAAC,OAAO,gBAAgB;IACvC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IAC3C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAU;IAChD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;OAAoB;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoB;IAChD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,uDACsB;IACtD,MAAM,CAAC,QAAQ,CAAC,eAAe,orBAkB7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;gBAG9B,MAAM,GAAE,eAGP,EACD,OAAO,CAAC,EAAE,aAAa;IAKzB,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAKnC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;cAM/B,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;CAsG5E"}
|
|
@@ -104,6 +104,11 @@ export class HttpBubble extends ServiceBubble {
|
|
|
104
104
|
const startTime = Date.now();
|
|
105
105
|
try {
|
|
106
106
|
console.log(`[HttpBubble] Making ${method} request to ${url}`);
|
|
107
|
+
// Create abort controller for timeout
|
|
108
|
+
const abortController = new AbortController();
|
|
109
|
+
const timeoutId = setTimeout(() => {
|
|
110
|
+
abortController.abort();
|
|
111
|
+
}, timeout);
|
|
107
112
|
// Prepare request options
|
|
108
113
|
const requestOptions = {
|
|
109
114
|
method,
|
|
@@ -112,7 +117,7 @@ export class HttpBubble extends ServiceBubble {
|
|
|
112
117
|
...headers,
|
|
113
118
|
},
|
|
114
119
|
redirect: followRedirects ? 'follow' : 'manual',
|
|
115
|
-
signal:
|
|
120
|
+
signal: abortController.signal,
|
|
116
121
|
};
|
|
117
122
|
// Add body for non-GET methods
|
|
118
123
|
if (body && method !== 'GET' && method !== 'HEAD') {
|
|
@@ -129,6 +134,7 @@ export class HttpBubble extends ServiceBubble {
|
|
|
129
134
|
}
|
|
130
135
|
// Make the request
|
|
131
136
|
const response = await fetch(url, requestOptions);
|
|
137
|
+
clearTimeout(timeoutId); // Clear timeout if request completes
|
|
132
138
|
const responseTime = Date.now() - startTime;
|
|
133
139
|
// Read response body
|
|
134
140
|
const responseText = await response.text();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/bubbles/service-bubble/http.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/bubbles/service-bubble/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ServiceBubble } from '../../types/service-bubble-class.js';
|
|
3
|
+
import type { BubbleContext } from '../../types/bubble.js';
|
|
4
|
+
import { CredentialType } from '@bubblelab/shared-schemas';
|
|
5
|
+
export declare const SqlOperations: z.ZodEnum<["SELECT", "INSERT", "UPDATE", "DELETE", "CREATE", "WITH", "EXPLAIN"]>;
|
|
6
|
+
declare const InsForgeDbParamsSchema: z.ZodObject<{
|
|
7
|
+
query: z.ZodString;
|
|
8
|
+
allowedOperations: z.ZodDefault<z.ZodArray<z.ZodEnum<["SELECT", "INSERT", "UPDATE", "DELETE", "CREATE", "WITH", "EXPLAIN"]>, "many">>;
|
|
9
|
+
parameters: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>>;
|
|
10
|
+
timeout: z.ZodDefault<z.ZodNumber>;
|
|
11
|
+
maxRows: z.ZodDefault<z.ZodNumber>;
|
|
12
|
+
credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
parameters: unknown[];
|
|
15
|
+
timeout: number;
|
|
16
|
+
query: string;
|
|
17
|
+
allowedOperations: ("SELECT" | "INSERT" | "UPDATE" | "DELETE" | "WITH" | "EXPLAIN" | "CREATE")[];
|
|
18
|
+
maxRows: number;
|
|
19
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
20
|
+
}, {
|
|
21
|
+
query: string;
|
|
22
|
+
parameters?: unknown[] | undefined;
|
|
23
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
24
|
+
timeout?: number | undefined;
|
|
25
|
+
allowedOperations?: ("SELECT" | "INSERT" | "UPDATE" | "DELETE" | "WITH" | "EXPLAIN" | "CREATE")[] | undefined;
|
|
26
|
+
maxRows?: number | undefined;
|
|
27
|
+
}>;
|
|
28
|
+
type InsForgeDbParamsInput = z.input<typeof InsForgeDbParamsSchema>;
|
|
29
|
+
type InsForgeDbParams = z.output<typeof InsForgeDbParamsSchema>;
|
|
30
|
+
declare const InsForgeDbResultSchema: z.ZodObject<{
|
|
31
|
+
rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
32
|
+
rowCount: z.ZodNullable<z.ZodNumber>;
|
|
33
|
+
command: z.ZodString;
|
|
34
|
+
executionTime: z.ZodNumber;
|
|
35
|
+
success: z.ZodBoolean;
|
|
36
|
+
error: z.ZodString;
|
|
37
|
+
cleanedJSONString: z.ZodString;
|
|
38
|
+
}, "strip", z.ZodTypeAny, {
|
|
39
|
+
executionTime: number;
|
|
40
|
+
error: string;
|
|
41
|
+
success: boolean;
|
|
42
|
+
rows: Record<string, unknown>[];
|
|
43
|
+
rowCount: number | null;
|
|
44
|
+
command: string;
|
|
45
|
+
cleanedJSONString: string;
|
|
46
|
+
}, {
|
|
47
|
+
executionTime: number;
|
|
48
|
+
error: string;
|
|
49
|
+
success: boolean;
|
|
50
|
+
rows: Record<string, unknown>[];
|
|
51
|
+
rowCount: number | null;
|
|
52
|
+
command: string;
|
|
53
|
+
cleanedJSONString: string;
|
|
54
|
+
}>;
|
|
55
|
+
type InsForgeDbResult = z.output<typeof InsForgeDbResultSchema>;
|
|
56
|
+
export type { InsForgeDbParamsInput };
|
|
57
|
+
/**
|
|
58
|
+
* InsForge Database Bubble
|
|
59
|
+
*
|
|
60
|
+
* Execute SQL queries against an InsForge backend database.
|
|
61
|
+
* Works similarly to the PostgreSQL bubble but uses InsForge's REST API.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* const result = await new InsForgeDbBubble({
|
|
66
|
+
* query: 'SELECT * FROM users WHERE active = $1',
|
|
67
|
+
* parameters: [true],
|
|
68
|
+
* allowedOperations: ['SELECT'],
|
|
69
|
+
* maxRows: 100,
|
|
70
|
+
* }).action();
|
|
71
|
+
*
|
|
72
|
+
* console.log(result.data.rows);
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export declare class InsForgeDbBubble extends ServiceBubble<InsForgeDbParams, InsForgeDbResult> {
|
|
76
|
+
static readonly type: "service";
|
|
77
|
+
static readonly service = "insforge";
|
|
78
|
+
static readonly authType: "apikey";
|
|
79
|
+
static readonly bubbleName = "insforge-db";
|
|
80
|
+
static readonly schema: z.ZodObject<{
|
|
81
|
+
query: z.ZodString;
|
|
82
|
+
allowedOperations: z.ZodDefault<z.ZodArray<z.ZodEnum<["SELECT", "INSERT", "UPDATE", "DELETE", "CREATE", "WITH", "EXPLAIN"]>, "many">>;
|
|
83
|
+
parameters: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>>;
|
|
84
|
+
timeout: z.ZodDefault<z.ZodNumber>;
|
|
85
|
+
maxRows: z.ZodDefault<z.ZodNumber>;
|
|
86
|
+
credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
|
|
87
|
+
}, "strip", z.ZodTypeAny, {
|
|
88
|
+
parameters: unknown[];
|
|
89
|
+
timeout: number;
|
|
90
|
+
query: string;
|
|
91
|
+
allowedOperations: ("SELECT" | "INSERT" | "UPDATE" | "DELETE" | "WITH" | "EXPLAIN" | "CREATE")[];
|
|
92
|
+
maxRows: number;
|
|
93
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
94
|
+
}, {
|
|
95
|
+
query: string;
|
|
96
|
+
parameters?: unknown[] | undefined;
|
|
97
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
98
|
+
timeout?: number | undefined;
|
|
99
|
+
allowedOperations?: ("SELECT" | "INSERT" | "UPDATE" | "DELETE" | "WITH" | "EXPLAIN" | "CREATE")[] | undefined;
|
|
100
|
+
maxRows?: number | undefined;
|
|
101
|
+
}>;
|
|
102
|
+
static readonly resultSchema: z.ZodObject<{
|
|
103
|
+
rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
104
|
+
rowCount: z.ZodNullable<z.ZodNumber>;
|
|
105
|
+
command: z.ZodString;
|
|
106
|
+
executionTime: z.ZodNumber;
|
|
107
|
+
success: z.ZodBoolean;
|
|
108
|
+
error: z.ZodString;
|
|
109
|
+
cleanedJSONString: z.ZodString;
|
|
110
|
+
}, "strip", z.ZodTypeAny, {
|
|
111
|
+
executionTime: number;
|
|
112
|
+
error: string;
|
|
113
|
+
success: boolean;
|
|
114
|
+
rows: Record<string, unknown>[];
|
|
115
|
+
rowCount: number | null;
|
|
116
|
+
command: string;
|
|
117
|
+
cleanedJSONString: string;
|
|
118
|
+
}, {
|
|
119
|
+
executionTime: number;
|
|
120
|
+
error: string;
|
|
121
|
+
success: boolean;
|
|
122
|
+
rows: Record<string, unknown>[];
|
|
123
|
+
rowCount: number | null;
|
|
124
|
+
command: string;
|
|
125
|
+
cleanedJSONString: string;
|
|
126
|
+
}>;
|
|
127
|
+
static readonly shortDescription = "InsForge is the backend built for AI-assisted development. Connect InsForge with any agent. Add authentication, database, storage, functions, and AI integrations to your app in seconds.";
|
|
128
|
+
static readonly longDescription = "\n Authentication - Complete user management system\n Database - Flexible data storage and retrieval\n Storage - File management and organization\n AI Integration - Chat completions and image generation (OpenAI-compatible)\n Serverless Functions - Scalable compute power\n Site Deployment (coming soon) - Easy application deployment\n ";
|
|
129
|
+
static readonly alias = "insforge";
|
|
130
|
+
constructor(params?: InsForgeDbParamsInput, context?: BubbleContext);
|
|
131
|
+
testCredential(): Promise<boolean>;
|
|
132
|
+
protected chooseCredential(): string | undefined;
|
|
133
|
+
private getCredentials;
|
|
134
|
+
/**
|
|
135
|
+
* Validate that the SQL query operation is allowed
|
|
136
|
+
*/
|
|
137
|
+
private validateSqlOperation;
|
|
138
|
+
protected performAction(context?: BubbleContext): Promise<InsForgeDbResult>;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=insforge-db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insforge-db.d.ts","sourceRoot":"","sources":["../../../src/bubbles/service-bubble/insforge-db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,eAAO,MAAM,aAAa,kFAQxB,CAAC;AAIH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAkC1B,CAAC;AAEH,KAAK,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACpE,KAAK,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAGhE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;EAa1B,CAAC;AAEH,KAAK,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEhE,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAEtC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,gBAAiB,SAAQ,aAAa,CACjD,gBAAgB,EAChB,gBAAgB,CACjB;IACC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,cAAc;IACrC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IAC7C,MAAM,CAAC,QAAQ,CAAC,UAAU,iBAAiB;IAC3C,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;OAA0B;IAChD,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;OAA0B;IACtD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,+LAC8J;IAC9L,MAAM,CAAC,QAAQ,CAAC,eAAe,wWAO7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAc;gBAGjC,MAAM,GAAE,qBAMP,EACD,OAAO,CAAC,EAAE,aAAa;IAQZ,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAyD/C,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAKhD,OAAO,CAAC,cAAc;IAwBtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;cA8CZ,aAAa,CAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,gBAAgB,CAAC;CAsE7B"}
|