@bubblelab/bubble-core 0.1.4 → 0.1.5

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 (66) hide show
  1. package/dist/bubble-bundle.d.ts +28 -28
  2. package/dist/bubbles/service-bubble/ai-agent.d.ts +24 -24
  3. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  4. package/dist/bubbles/service-bubble/ai-agent.js +16 -2
  5. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
  6. package/dist/bubbles/service-bubble/gmail.d.ts +4 -4
  7. package/dist/bubbles/service-bubble/google-calendar.d.ts +6 -6
  8. package/dist/bubbles/service-bubble/google-drive.d.ts +4 -4
  9. package/dist/bubbles/service-bubble/google-sheets.d.ts +20 -20
  10. package/dist/bubbles/service-bubble/http.d.ts +2 -2
  11. package/dist/bubbles/service-bubble/postgresql.d.ts +4 -4
  12. package/dist/bubbles/service-bubble/slack.d.ts +58 -58
  13. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
  14. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +4 -4
  15. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +4 -4
  16. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
  17. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +14 -14
  18. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +8 -8
  19. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +10 -10
  20. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts +8 -8
  21. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +66 -66
  22. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +50 -50
  23. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +92 -92
  24. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +36 -36
  25. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +46 -46
  26. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +60 -60
  27. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +14 -14
  28. package/dist/logging/BubbleLogger.d.ts.map +1 -1
  29. package/dist/logging/BubbleLogger.js +16 -4
  30. package/dist/logging/BubbleLogger.js.map +1 -1
  31. package/dist/types/ai-models.d.ts +1 -1
  32. package/dist/types/ai-models.d.ts.map +1 -1
  33. package/dist/types/ai-models.js +2 -0
  34. package/dist/types/ai-models.js.map +1 -1
  35. package/dist/types/base-bubble-class.d.ts.map +1 -1
  36. package/dist/types/base-bubble-class.js +7 -1
  37. package/dist/types/base-bubble-class.js.map +1 -1
  38. package/package.json +4 -3
  39. package/dist/bubbles/tool-bubble/virtual-file-editor-example.d.ts +0 -8
  40. package/dist/bubbles/tool-bubble/virtual-file-editor-example.d.ts.map +0 -1
  41. package/dist/bubbles/tool-bubble/virtual-file-editor-example.js +0 -65
  42. package/dist/bubbles/tool-bubble/virtual-file-editor-example.js.map +0 -1
  43. package/dist/bubbles/tool-bubble/virtual-file-editor.tool.d.ts +0 -125
  44. package/dist/bubbles/tool-bubble/virtual-file-editor.tool.d.ts.map +0 -1
  45. package/dist/bubbles/tool-bubble/virtual-file-editor.tool.js +0 -169
  46. package/dist/bubbles/tool-bubble/virtual-file-editor.tool.js.map +0 -1
  47. package/dist/bubbles/workflow-bubble/bubblscript-generateor.workflow.d.ts +0 -97
  48. package/dist/bubbles/workflow-bubble/bubblscript-generateor.workflow.d.ts.map +0 -1
  49. package/dist/bubbles/workflow-bubble/bubblscript-generateor.workflow.js +0 -327
  50. package/dist/bubbles/workflow-bubble/bubblscript-generateor.workflow.js.map +0 -1
  51. package/dist/bubbles/workflow-bubble/file-editor-agent.workflow.d.ts +0 -157
  52. package/dist/bubbles/workflow-bubble/file-editor-agent.workflow.d.ts.map +0 -1
  53. package/dist/bubbles/workflow-bubble/file-editor-agent.workflow.js +0 -310
  54. package/dist/bubbles/workflow-bubble/file-editor-agent.workflow.js.map +0 -1
  55. package/dist/bubbles/workflow-bubble/workflow-template.d.ts +0 -144
  56. package/dist/bubbles/workflow-bubble/workflow-template.d.ts.map +0 -1
  57. package/dist/bubbles/workflow-bubble/workflow-template.js +0 -124
  58. package/dist/bubbles/workflow-bubble/workflow-template.js.map +0 -1
  59. package/dist/types/streaming-events.d.ts +0 -18
  60. package/dist/types/streaming-events.d.ts.map +0 -1
  61. package/dist/types/streaming-events.js +0 -5
  62. package/dist/types/streaming-events.js.map +0 -1
  63. package/dist/utils/mock-data-generator.d.ts +0 -43
  64. package/dist/utils/mock-data-generator.d.ts.map +0 -1
  65. package/dist/utils/mock-data-generator.js +0 -312
  66. package/dist/utils/mock-data-generator.js.map +0 -1
@@ -1,43 +0,0 @@
1
- import { z } from 'zod';
2
- import type { BubbleResult, BubbleOperationResult } from '../types/bubble.js';
3
- /**
4
- * Utility class for generating mock data from Zod schemas
5
- * Useful for testing, development, and creating sample data
6
- */
7
- export declare class MockDataGenerator {
8
- /**
9
- * Generate a complete mock BubbleResult from a result schema
10
- */
11
- static generateMockResult<TResult extends BubbleOperationResult>(resultSchema: z.ZodObject<z.ZodRawShape>): BubbleResult<TResult>;
12
- /**
13
- * Generate mock data from JSON Schema
14
- * Converts JSON Schema to mock data with realistic values
15
- */
16
- static generateMockFromJsonSchema(jsonSchema: Record<string, unknown>): Record<string, unknown>;
17
- /**
18
- * Generate a mock value for a specific JSON Schema property
19
- */
20
- static generateMockValueFromJsonSchema(schema: Record<string, unknown>): unknown;
21
- /**
22
- * Generate mock data object from a Zod schema
23
- * Recursively handles nested objects, arrays, and primitive types
24
- */
25
- static generateMockFromSchema(schema: z.ZodObject<z.ZodRawShape>): Record<string, unknown>;
26
- /**
27
- * Generate a mock value for a specific Zod type
28
- */
29
- static generateMockValue(zodType: z.ZodTypeAny): unknown;
30
- /**
31
- * Generate mock string values with format-specific handling
32
- */
33
- private static generateMockString;
34
- /**
35
- * Generate mock number values respecting constraints
36
- */
37
- private static generateMockNumber;
38
- /**
39
- * Generate mock data with custom seed for reproducible results
40
- */
41
- static generateMockWithSeed<TResult extends BubbleOperationResult>(resultSchema: z.ZodObject<z.ZodRawShape>, seed: number): BubbleResult<TResult>;
42
- }
43
- //# sourceMappingURL=mock-data-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mock-data-generator.d.ts","sourceRoot":"","sources":["../../src/utils/mock-data-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE9E;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,SAAS,qBAAqB,EAC7D,YAAY,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GACvC,YAAY,CAAC,OAAO,CAAC;IAYxB;;;OAGG;IACH,MAAM,CAAC,0BAA0B,CAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA0B1B;;OAEG;IACH,MAAM,CAAC,+BAA+B,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO;IAwEV;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAC3B,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA0B1B;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,GAAG,OAAO;IA0HxD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAoCjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA4BjC;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,OAAO,SAAS,qBAAqB,EAC/D,YAAY,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EACxC,IAAI,EAAE,MAAM,GACX,YAAY,CAAC,OAAO,CAAC;CAmBzB"}
@@ -1,312 +0,0 @@
1
- import { z } from 'zod';
2
- import { randomUUID } from 'crypto';
3
- /**
4
- * Utility class for generating mock data from Zod schemas
5
- * Useful for testing, development, and creating sample data
6
- */
7
- export class MockDataGenerator {
8
- /**
9
- * Generate a complete mock BubbleResult from a result schema
10
- */
11
- static generateMockResult(resultSchema) {
12
- const mockData = this.generateMockFromSchema(resultSchema);
13
- return {
14
- success: true,
15
- data: mockData,
16
- executionId: randomUUID(),
17
- error: '',
18
- timestamp: new Date(),
19
- };
20
- }
21
- /**
22
- * Generate mock data from JSON Schema
23
- * Converts JSON Schema to mock data with realistic values
24
- */
25
- static generateMockFromJsonSchema(jsonSchema) {
26
- const mockData = {};
27
- if (!jsonSchema || typeof jsonSchema !== 'object') {
28
- return mockData;
29
- }
30
- // Handle object type with properties
31
- if (jsonSchema.type === 'object' && jsonSchema.properties) {
32
- const properties = jsonSchema.properties;
33
- for (const [key, propertySchema] of Object.entries(properties)) {
34
- if (propertySchema && typeof propertySchema === 'object') {
35
- const value = this.generateMockValueFromJsonSchema(propertySchema);
36
- if (value !== undefined) {
37
- mockData[key] = value;
38
- }
39
- }
40
- }
41
- }
42
- return mockData;
43
- }
44
- /**
45
- * Generate a mock value for a specific JSON Schema property
46
- */
47
- static generateMockValueFromJsonSchema(schema) {
48
- const type = schema.type;
49
- switch (type) {
50
- case 'string': {
51
- if (schema.enum && Array.isArray(schema.enum)) {
52
- return schema.enum[Math.floor(Math.random() * schema.enum.length)];
53
- }
54
- if (schema.format === 'email') {
55
- return 'test@example.com';
56
- }
57
- if (schema.format === 'date-time') {
58
- return new Date().toISOString();
59
- }
60
- if (schema.format === 'uuid') {
61
- return randomUUID();
62
- }
63
- const minLength = typeof schema.minLength === 'number' ? schema.minLength : 1;
64
- const maxLength = typeof schema.maxLength === 'number' ? schema.maxLength : 10;
65
- const length = Math.floor(Math.random() * (maxLength - minLength + 1)) + minLength;
66
- return ('sample_' +
67
- Math.random()
68
- .toString(36)
69
- .substring(2, 2 + length));
70
- }
71
- case 'number':
72
- case 'integer': {
73
- const min = typeof schema.minimum === 'number' ? schema.minimum : 0;
74
- const max = typeof schema.maximum === 'number' ? schema.maximum : 100;
75
- const value = Math.random() * (max - min) + min;
76
- return type === 'integer'
77
- ? Math.floor(value)
78
- : Math.round(value * 100) / 100;
79
- }
80
- case 'boolean': {
81
- return Math.random() > 0.5;
82
- }
83
- case 'array': {
84
- const items = schema.items;
85
- if (items) {
86
- const minItems = typeof schema.minItems === 'number' ? schema.minItems : 1;
87
- const maxItems = typeof schema.maxItems === 'number' ? schema.maxItems : 3;
88
- const length = Math.floor(Math.random() * (maxItems - minItems + 1)) + minItems;
89
- return Array.from({ length }, () => this.generateMockValueFromJsonSchema(items));
90
- }
91
- return [];
92
- }
93
- case 'object': {
94
- return this.generateMockFromJsonSchema(schema);
95
- }
96
- default: {
97
- return null;
98
- }
99
- }
100
- }
101
- /**
102
- * Generate mock data object from a Zod schema
103
- * Recursively handles nested objects, arrays, and primitive types
104
- */
105
- static generateMockFromSchema(schema) {
106
- const mockData = {};
107
- if (!schema || typeof schema !== 'object' || !('shape' in schema)) {
108
- return mockData;
109
- }
110
- const shape = schema.shape;
111
- for (const [key, zodType] of Object.entries(shape)) {
112
- if (key === 'success' || key === 'error') {
113
- // Skip these as they're handled by the wrapper
114
- continue;
115
- }
116
- if (zodType && typeof zodType === 'object' && '_def' in zodType) {
117
- const value = this.generateMockValue(zodType);
118
- if (value !== undefined) {
119
- mockData[key] = value;
120
- }
121
- }
122
- }
123
- return mockData;
124
- }
125
- /**
126
- * Generate a mock value for a specific Zod type
127
- */
128
- static generateMockValue(zodType) {
129
- const def = zodType._def;
130
- switch (def.typeName) {
131
- case 'ZodString': {
132
- return this.generateMockString(def);
133
- }
134
- case 'ZodNumber': {
135
- return this.generateMockNumber(def);
136
- }
137
- case 'ZodBoolean': {
138
- return Math.random() > 0.5;
139
- }
140
- case 'ZodDate': {
141
- return new Date();
142
- }
143
- case 'ZodArray': {
144
- const elementType = def.type;
145
- if (elementType) {
146
- const arrayLength = Math.floor(Math.random() * 3) + 1; // 1-3 elements
147
- return Array.from({ length: arrayLength }, () => this.generateMockValue(elementType));
148
- }
149
- return [];
150
- }
151
- case 'ZodObject': {
152
- if ('shape' in zodType) {
153
- const nestedMock = {};
154
- const shape = zodType.shape;
155
- for (const [key, value] of Object.entries(shape)) {
156
- if (value && typeof value === 'object' && '_def' in value) {
157
- const nestedValue = this.generateMockValue(value);
158
- if (nestedValue !== undefined) {
159
- nestedMock[key] = nestedValue;
160
- }
161
- }
162
- }
163
- return nestedMock;
164
- }
165
- return {};
166
- }
167
- case 'ZodOptional': {
168
- // 70% chance to include optional fields
169
- if (Math.random() > 0.3) {
170
- return this.generateMockValue(def.innerType);
171
- }
172
- return undefined;
173
- }
174
- case 'ZodDefault': {
175
- // 50% chance to use default, 50% to generate mock value
176
- if (Math.random() > 0.5) {
177
- return def.defaultValue();
178
- }
179
- return this.generateMockValue(def.innerType);
180
- }
181
- case 'ZodEnum': {
182
- const values = def.values;
183
- return values[Math.floor(Math.random() * values.length)];
184
- }
185
- case 'ZodLiteral': {
186
- return def.value;
187
- }
188
- case 'ZodUnion': {
189
- const options = def.options;
190
- const randomOption = options[Math.floor(Math.random() * options.length)];
191
- return this.generateMockValue(randomOption);
192
- }
193
- case 'ZodDiscriminatedUnion': {
194
- const discriminatedOptions = def.options;
195
- const randomDiscriminatedOption = discriminatedOptions[Math.floor(Math.random() * discriminatedOptions.length)];
196
- return this.generateMockValue(randomDiscriminatedOption);
197
- }
198
- case 'ZodRecord': {
199
- const recordMock = {};
200
- const numKeys = Math.floor(Math.random() * 3) + 1; // 1-3 keys
201
- for (let i = 0; i < numKeys; i++) {
202
- const key = `key${i + 1}`;
203
- const value = this.generateMockValue(def.valueType);
204
- if (value !== undefined) {
205
- recordMock[key] = value;
206
- }
207
- }
208
- return recordMock;
209
- }
210
- case 'ZodNullable': {
211
- // 80% chance to have value, 20% chance to be null
212
- if (Math.random() > 0.2) {
213
- return this.generateMockValue(def.innerType);
214
- }
215
- return null;
216
- }
217
- default: {
218
- // For unknown types, return a generic value
219
- console.warn(`Unknown Zod type for mock generation: ${def.typeName}`);
220
- return `mock_${def.typeName}`;
221
- }
222
- }
223
- }
224
- /**
225
- * Generate mock string values with format-specific handling
226
- */
227
- static generateMockString(def) {
228
- if (def.checks) {
229
- for (const check of def.checks) {
230
- switch (check.kind) {
231
- case 'email': {
232
- return 'test@example.com';
233
- }
234
- case 'url': {
235
- return 'https://example.com';
236
- }
237
- case 'uuid': {
238
- return randomUUID();
239
- }
240
- case 'regex': {
241
- // For regex patterns, try to generate simple matching strings
242
- const pattern = check.regex;
243
- if (pattern.source.includes('\\d+')) {
244
- return '12345';
245
- }
246
- if (pattern.source.includes('[a-z]')) {
247
- return 'abcde';
248
- }
249
- return 'mock_regex_match';
250
- }
251
- case 'min': {
252
- return 'a'.repeat(check.value);
253
- }
254
- case 'max': {
255
- return 'mock'.substring(0, check.value);
256
- }
257
- }
258
- }
259
- }
260
- return 'mock string';
261
- }
262
- /**
263
- * Generate mock number values respecting constraints
264
- */
265
- static generateMockNumber(def) {
266
- let min = 0;
267
- let max = 100;
268
- let isInt = false;
269
- if (def.checks) {
270
- for (const check of def.checks) {
271
- switch (check.kind) {
272
- case 'min': {
273
- min = check.value;
274
- break;
275
- }
276
- case 'max': {
277
- max = check.value;
278
- break;
279
- }
280
- case 'int': {
281
- isInt = true;
282
- break;
283
- }
284
- }
285
- }
286
- }
287
- const value = Math.random() * (max - min) + min;
288
- return isInt ? Math.floor(value) : Math.round(value * 100) / 100;
289
- }
290
- /**
291
- * Generate mock data with custom seed for reproducible results
292
- */
293
- static generateMockWithSeed(resultSchema, seed) {
294
- // Simple seeded random number generator
295
- let currentSeed = seed;
296
- const seededRandom = () => {
297
- currentSeed = (currentSeed * 9301 + 49297) % 233280;
298
- return currentSeed / 233280;
299
- };
300
- // Temporarily override Math.random
301
- const originalRandom = Math.random;
302
- Math.random = seededRandom;
303
- try {
304
- return this.generateMockResult(resultSchema);
305
- }
306
- finally {
307
- // Restore original Math.random
308
- Math.random = originalRandom;
309
- }
310
- }
311
- }
312
- //# sourceMappingURL=mock-data-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mock-data-generator.js","sourceRoot":"","sources":["../../src/utils/mock-data-generator.ts"],"names":[],"mappings":"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"}