@bubblelab/bubble-core 0.1.112 → 0.1.113

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 (82) hide show
  1. package/dist/bubble-bundle.d.ts +85 -85
  2. package/dist/bubbles/service-bubble/agi-inc.d.ts +20 -20
  3. package/dist/bubbles/service-bubble/ai-agent.d.ts +76 -74
  4. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  5. package/dist/bubbles/service-bubble/ai-agent.js +40 -5
  6. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
  7. package/dist/bubbles/service-bubble/airtable.d.ts +76 -76
  8. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +2 -2
  9. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +8 -8
  10. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +2 -2
  11. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +22 -22
  12. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +52 -52
  13. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +6 -6
  14. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +12 -12
  15. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
  16. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +88 -88
  17. package/dist/bubbles/service-bubble/apify/apify.d.ts +18 -18
  18. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +2 -2
  19. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +2 -2
  20. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +1 -1
  21. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +1 -1
  22. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +10 -10
  23. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +24 -24
  24. package/dist/bubbles/service-bubble/firecrawl.d.ts +338 -338
  25. package/dist/bubbles/service-bubble/followupboss.d.ts +4 -4
  26. package/dist/bubbles/service-bubble/github.d.ts +60 -60
  27. package/dist/bubbles/service-bubble/gmail.d.ts +164 -164
  28. package/dist/bubbles/service-bubble/google-calendar.d.ts +6 -6
  29. package/dist/bubbles/service-bubble/google-drive.d.ts +8 -8
  30. package/dist/bubbles/service-bubble/http.d.ts +2 -2
  31. package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
  32. package/dist/bubbles/service-bubble/jira/jira.d.ts +30 -30
  33. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +36 -36
  34. package/dist/bubbles/service-bubble/notion/notion.d.ts +848 -848
  35. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +8 -8
  36. package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
  37. package/dist/bubbles/service-bubble/resend.d.ts +4 -4
  38. package/dist/bubbles/service-bubble/salesforce/index.d.ts +4 -0
  39. package/dist/bubbles/service-bubble/salesforce/index.d.ts.map +1 -0
  40. package/dist/bubbles/service-bubble/salesforce/index.js +4 -0
  41. package/dist/bubbles/service-bubble/salesforce/index.js.map +1 -0
  42. package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts +1331 -0
  43. package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts.map +1 -0
  44. package/dist/bubbles/service-bubble/salesforce/salesforce.js +618 -0
  45. package/dist/bubbles/service-bubble/salesforce/salesforce.js.map +1 -0
  46. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts +1445 -0
  47. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts.map +1 -0
  48. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js +609 -0
  49. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js.map +1 -0
  50. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts +87 -0
  51. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts.map +1 -0
  52. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js +181 -0
  53. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js.map +1 -0
  54. package/dist/bubbles/service-bubble/slack/slack.d.ts +324 -324
  55. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +24 -24
  56. package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +28 -28
  57. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +6 -6
  58. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +8 -8
  59. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
  60. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +28 -28
  61. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +310 -310
  62. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +44 -44
  63. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
  64. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  65. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
  66. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +60 -60
  67. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +134 -134
  68. package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +36 -36
  69. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +20 -20
  70. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +12 -12
  71. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +24 -24
  72. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +2 -2
  73. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +18 -18
  74. package/dist/bubbles.json +1 -1
  75. package/dist/capabilities/define-capability.d.ts +6 -0
  76. package/dist/capabilities/define-capability.d.ts.map +1 -1
  77. package/dist/capabilities/define-capability.js +7 -0
  78. package/dist/capabilities/define-capability.js.map +1 -1
  79. package/dist/capabilities/index.d.ts +1 -1
  80. package/dist/capabilities/index.d.ts.map +1 -1
  81. package/dist/capabilities/index.js.map +1 -1
  82. package/package.json +2 -2
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Salesforce Bubble Utility Functions
3
+ *
4
+ * Helper functions for Salesforce API interactions and data formatting.
5
+ */
6
+ /**
7
+ * Validate Salesforce ID format (15 or 18 character)
8
+ * @param id Salesforce record ID
9
+ * @returns Whether the ID is valid
10
+ */
11
+ export declare function isValidSalesforceId(id: string): boolean;
12
+ /**
13
+ * Convert 15-character Salesforce ID to 18-character ID
14
+ * @param id15 15-character Salesforce ID
15
+ * @returns 18-character Salesforce ID
16
+ */
17
+ export declare function to18CharId(id15: string): string;
18
+ /**
19
+ * Format Salesforce date to ISO string
20
+ * @param sfDate Salesforce date string (YYYY-MM-DD or ISO format)
21
+ * @returns ISO date string
22
+ */
23
+ export declare function formatSalesforceDate(sfDate: string): string;
24
+ /**
25
+ * Convert JavaScript Date to Salesforce date format
26
+ * @param date JavaScript Date object
27
+ * @returns Salesforce date string (YYYY-MM-DD)
28
+ */
29
+ export declare function toSalesforceDate(date: Date): string;
30
+ /**
31
+ * Escape SOQL special characters in a string
32
+ * @param value String to escape
33
+ * @returns Escaped string safe for SOQL
34
+ */
35
+ export declare function escapeSoql(value: string): string;
36
+ /**
37
+ * Build a SOQL query string
38
+ * @param sobjectType sObject API name
39
+ * @param fields Array of field names to select
40
+ * @param options Query options (where, orderBy, limit)
41
+ * @returns SOQL query string
42
+ */
43
+ export declare function buildSoqlQuery(sobjectType: string, fields: string[], options?: {
44
+ where?: string;
45
+ orderBy?: string;
46
+ limit?: number;
47
+ }): string;
48
+ /**
49
+ * Enhance Salesforce API error messages with helpful hints
50
+ * @param error Original error message or object
51
+ * @param statusCode HTTP status code
52
+ * @returns Enhanced error message
53
+ */
54
+ export declare function enhanceSalesforceErrorMessage(error: string | SalesforceErrorResponse[], statusCode?: number): string;
55
+ /**
56
+ * Salesforce error response object
57
+ */
58
+ export interface SalesforceErrorResponse {
59
+ message: string;
60
+ errorCode?: string;
61
+ fields?: string[];
62
+ }
63
+ /**
64
+ * Parse Salesforce API error response
65
+ * @param responseBody Response body from Salesforce API
66
+ * @returns Array of error objects or string error
67
+ */
68
+ export declare function parseSalesforceError(responseBody: unknown): SalesforceErrorResponse[] | string;
69
+ /**
70
+ * Get the instance URL from OAuth token response metadata
71
+ * @param instanceUrl Instance URL from OAuth response
72
+ * @returns Cleaned instance URL (without trailing slash)
73
+ */
74
+ export declare function cleanInstanceUrl(instanceUrl: string): string;
75
+ /**
76
+ * Get Salesforce API version
77
+ * @returns Current API version string
78
+ */
79
+ export declare function getSalesforceApiVersion(): string;
80
+ /**
81
+ * Build Salesforce REST API URL
82
+ * @param instanceUrl Salesforce instance URL
83
+ * @param endpoint API endpoint path
84
+ * @returns Full API URL
85
+ */
86
+ export declare function buildApiUrl(instanceUrl: string, endpoint: string): string;
87
+ //# sourceMappingURL=salesforce.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"salesforce.utils.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/salesforce/salesforce.utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmB/C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAO3D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQhD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,MAAM,CAgBR;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,MAAM,GAAG,uBAAuB,EAAE,EACzC,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CA8BR;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,OAAO,GACpB,uBAAuB,EAAE,GAAG,MAAM,CAepC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWzE"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Salesforce Bubble Utility Functions
3
+ *
4
+ * Helper functions for Salesforce API interactions and data formatting.
5
+ */
6
+ /**
7
+ * Validate Salesforce ID format (15 or 18 character)
8
+ * @param id Salesforce record ID
9
+ * @returns Whether the ID is valid
10
+ */
11
+ export function isValidSalesforceId(id) {
12
+ // Salesforce IDs are either 15-character (case-sensitive) or 18-character (case-insensitive)
13
+ return /^[a-zA-Z0-9]{15}$|^[a-zA-Z0-9]{18}$/.test(id);
14
+ }
15
+ /**
16
+ * Convert 15-character Salesforce ID to 18-character ID
17
+ * @param id15 15-character Salesforce ID
18
+ * @returns 18-character Salesforce ID
19
+ */
20
+ export function to18CharId(id15) {
21
+ if (id15.length === 18)
22
+ return id15;
23
+ if (id15.length !== 15) {
24
+ throw new Error('Invalid Salesforce ID: must be 15 or 18 characters');
25
+ }
26
+ const suffix = [];
27
+ for (let i = 0; i < 3; i++) {
28
+ let flags = 0;
29
+ for (let j = 0; j < 5; j++) {
30
+ const char = id15.charAt(i * 5 + j);
31
+ if (char >= 'A' && char <= 'Z') {
32
+ flags += 1 << j;
33
+ }
34
+ }
35
+ suffix.push('ABCDEFGHIJKLMNOPQRSTUVWXYZ012345'.charAt(flags));
36
+ }
37
+ return id15 + suffix.join('');
38
+ }
39
+ /**
40
+ * Format Salesforce date to ISO string
41
+ * @param sfDate Salesforce date string (YYYY-MM-DD or ISO format)
42
+ * @returns ISO date string
43
+ */
44
+ export function formatSalesforceDate(sfDate) {
45
+ // If already ISO format, return as-is
46
+ if (sfDate.includes('T')) {
47
+ return sfDate;
48
+ }
49
+ // Convert YYYY-MM-DD to ISO
50
+ return new Date(sfDate + 'T00:00:00.000Z').toISOString();
51
+ }
52
+ /**
53
+ * Convert JavaScript Date to Salesforce date format
54
+ * @param date JavaScript Date object
55
+ * @returns Salesforce date string (YYYY-MM-DD)
56
+ */
57
+ export function toSalesforceDate(date) {
58
+ return date.toISOString().split('T')[0];
59
+ }
60
+ /**
61
+ * Escape SOQL special characters in a string
62
+ * @param value String to escape
63
+ * @returns Escaped string safe for SOQL
64
+ */
65
+ export function escapeSoql(value) {
66
+ // Escape single quotes, backslashes, and other special characters
67
+ return value
68
+ .replace(/\\/g, '\\\\')
69
+ .replace(/'/g, "\\'")
70
+ .replace(/\n/g, '\\n')
71
+ .replace(/\r/g, '\\r')
72
+ .replace(/\t/g, '\\t');
73
+ }
74
+ /**
75
+ * Build a SOQL query string
76
+ * @param sobjectType sObject API name
77
+ * @param fields Array of field names to select
78
+ * @param options Query options (where, orderBy, limit)
79
+ * @returns SOQL query string
80
+ */
81
+ export function buildSoqlQuery(sobjectType, fields, options) {
82
+ let query = `SELECT ${fields.join(', ')} FROM ${sobjectType}`;
83
+ if (options?.where) {
84
+ query += ` WHERE ${options.where}`;
85
+ }
86
+ if (options?.orderBy) {
87
+ query += ` ORDER BY ${options.orderBy}`;
88
+ }
89
+ if (options?.limit) {
90
+ query += ` LIMIT ${options.limit}`;
91
+ }
92
+ return query;
93
+ }
94
+ /**
95
+ * Enhance Salesforce API error messages with helpful hints
96
+ * @param error Original error message or object
97
+ * @param statusCode HTTP status code
98
+ * @returns Enhanced error message
99
+ */
100
+ export function enhanceSalesforceErrorMessage(error, statusCode) {
101
+ // Handle array of Salesforce error objects
102
+ if (Array.isArray(error)) {
103
+ const messages = error.map((e) => {
104
+ let msg = e.message;
105
+ if (e.errorCode) {
106
+ msg = `[${e.errorCode}] ${msg}`;
107
+ }
108
+ if (e.fields && e.fields.length > 0) {
109
+ msg += ` (Fields: ${e.fields.join(', ')})`;
110
+ }
111
+ return msg;
112
+ });
113
+ return messages.join('; ');
114
+ }
115
+ // Handle string error
116
+ let errorMsg = error;
117
+ if (statusCode === 401) {
118
+ errorMsg += '\n\nHint: Your Salesforce access token may be expired. Try refreshing your OAuth credentials.';
119
+ }
120
+ else if (statusCode === 403) {
121
+ errorMsg += '\n\nHint: You may not have permission to access this resource. Check your Salesforce profile permissions.';
122
+ }
123
+ else if (statusCode === 404) {
124
+ errorMsg += '\n\nHint: The requested resource was not found. Check that the ID or object type is correct.';
125
+ }
126
+ else if (statusCode === 400) {
127
+ errorMsg += '\n\nHint: The request was malformed. Check your field names and data types.';
128
+ }
129
+ return errorMsg;
130
+ }
131
+ /**
132
+ * Parse Salesforce API error response
133
+ * @param responseBody Response body from Salesforce API
134
+ * @returns Array of error objects or string error
135
+ */
136
+ export function parseSalesforceError(responseBody) {
137
+ if (Array.isArray(responseBody)) {
138
+ return responseBody;
139
+ }
140
+ if (typeof responseBody === 'string') {
141
+ return responseBody;
142
+ }
143
+ if (typeof responseBody === 'object' &&
144
+ responseBody !== null &&
145
+ 'message' in responseBody) {
146
+ return [responseBody];
147
+ }
148
+ return 'Unknown Salesforce API error';
149
+ }
150
+ /**
151
+ * Get the instance URL from OAuth token response metadata
152
+ * @param instanceUrl Instance URL from OAuth response
153
+ * @returns Cleaned instance URL (without trailing slash)
154
+ */
155
+ export function cleanInstanceUrl(instanceUrl) {
156
+ return instanceUrl.replace(/\/$/, '');
157
+ }
158
+ /**
159
+ * Get Salesforce API version
160
+ * @returns Current API version string
161
+ */
162
+ export function getSalesforceApiVersion() {
163
+ return 'v59.0'; // Winter '24 release - current stable version
164
+ }
165
+ /**
166
+ * Build Salesforce REST API URL
167
+ * @param instanceUrl Salesforce instance URL
168
+ * @param endpoint API endpoint path
169
+ * @returns Full API URL
170
+ */
171
+ export function buildApiUrl(instanceUrl, endpoint) {
172
+ const cleanedInstance = cleanInstanceUrl(instanceUrl);
173
+ const version = getSalesforceApiVersion();
174
+ // Handle endpoints that already include the services path
175
+ if (endpoint.startsWith('/services/')) {
176
+ return `${cleanedInstance}${endpoint}`;
177
+ }
178
+ // Standard data API endpoints
179
+ return `${cleanedInstance}/services/data/${version}${endpoint}`;
180
+ }
181
+ //# sourceMappingURL=salesforce.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"salesforce.utils.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/salesforce/salesforce.utils.ts"],"names":[],"mappings":"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"}