@bubblelab/bubble-runtime 0.1.13 → 0.1.15

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 (68) hide show
  1. package/dist/extraction/BubbleParser.d.ts +188 -8
  2. package/dist/extraction/BubbleParser.d.ts.map +1 -1
  3. package/dist/extraction/BubbleParser.js +2265 -99
  4. package/dist/extraction/BubbleParser.js.map +1 -1
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/injection/BubbleInjector.d.ts +31 -5
  10. package/dist/injection/BubbleInjector.d.ts.map +1 -1
  11. package/dist/injection/BubbleInjector.js +349 -28
  12. package/dist/injection/BubbleInjector.js.map +1 -1
  13. package/dist/injection/LoggerInjector.d.ts +17 -0
  14. package/dist/injection/LoggerInjector.d.ts.map +1 -1
  15. package/dist/injection/LoggerInjector.js +319 -9
  16. package/dist/injection/LoggerInjector.js.map +1 -1
  17. package/dist/parse/BubbleScript.d.ts +54 -5
  18. package/dist/parse/BubbleScript.d.ts.map +1 -1
  19. package/dist/parse/BubbleScript.js +112 -24
  20. package/dist/parse/BubbleScript.js.map +1 -1
  21. package/dist/parse/index.d.ts +0 -1
  22. package/dist/parse/index.d.ts.map +1 -1
  23. package/dist/parse/index.js +0 -1
  24. package/dist/parse/index.js.map +1 -1
  25. package/dist/runtime/BubbleRunner.d.ts +9 -2
  26. package/dist/runtime/BubbleRunner.d.ts.map +1 -1
  27. package/dist/runtime/BubbleRunner.js +76 -49
  28. package/dist/runtime/BubbleRunner.js.map +1 -1
  29. package/dist/runtime/index.d.ts +1 -1
  30. package/dist/runtime/index.d.ts.map +1 -1
  31. package/dist/runtime/index.js.map +1 -1
  32. package/dist/utils/bubble-helper.d.ts +2 -2
  33. package/dist/utils/bubble-helper.d.ts.map +1 -1
  34. package/dist/utils/bubble-helper.js +5 -1
  35. package/dist/utils/bubble-helper.js.map +1 -1
  36. package/dist/utils/error-sanitizer.d.ts +16 -0
  37. package/dist/utils/error-sanitizer.d.ts.map +1 -0
  38. package/dist/utils/error-sanitizer.js +111 -0
  39. package/dist/utils/error-sanitizer.js.map +1 -0
  40. package/dist/utils/normalize-control-flow.d.ts +14 -0
  41. package/dist/utils/normalize-control-flow.d.ts.map +1 -0
  42. package/dist/utils/normalize-control-flow.js +179 -0
  43. package/dist/utils/normalize-control-flow.js.map +1 -0
  44. package/dist/utils/parameter-formatter.d.ts +14 -5
  45. package/dist/utils/parameter-formatter.d.ts.map +1 -1
  46. package/dist/utils/parameter-formatter.js +166 -51
  47. package/dist/utils/parameter-formatter.js.map +1 -1
  48. package/dist/utils/sanitize-script.d.ts +11 -0
  49. package/dist/utils/sanitize-script.d.ts.map +1 -0
  50. package/dist/utils/sanitize-script.js +43 -0
  51. package/dist/utils/sanitize-script.js.map +1 -0
  52. package/dist/validation/BubbleValidator.d.ts +15 -0
  53. package/dist/validation/BubbleValidator.d.ts.map +1 -1
  54. package/dist/validation/BubbleValidator.js +171 -1
  55. package/dist/validation/BubbleValidator.js.map +1 -1
  56. package/dist/validation/index.d.ts +7 -3
  57. package/dist/validation/index.d.ts.map +1 -1
  58. package/dist/validation/index.js +63 -12
  59. package/dist/validation/index.js.map +1 -1
  60. package/dist/validation/lint-rules.d.ts +91 -0
  61. package/dist/validation/lint-rules.d.ts.map +1 -0
  62. package/dist/validation/lint-rules.js +755 -0
  63. package/dist/validation/lint-rules.js.map +1 -0
  64. package/package.json +5 -5
  65. package/dist/parse/traceDependencies.d.ts +0 -18
  66. package/dist/parse/traceDependencies.d.ts.map +0 -1
  67. package/dist/parse/traceDependencies.js +0 -196
  68. package/dist/parse/traceDependencies.js.map +0 -1
@@ -1,19 +1,22 @@
1
1
  import { analyze, resetIds } from '@bubblelab/ts-scope-manager';
2
2
  import { parse } from '@typescript-eslint/typescript-estree';
3
3
  import { BubbleParser } from '../extraction/BubbleParser';
4
+ import { normalizeBracelessControlFlow } from '../utils/normalize-control-flow';
4
5
  export class BubbleScript {
5
6
  ast;
6
7
  scopeManager;
8
+ parsingErrors = [];
7
9
  // Stores parsed bubble information with variable $id as key
8
10
  parsedBubbles;
9
11
  originalParsedBubbles;
12
+ workflow;
10
13
  scriptVariables; // Maps Variable.$id to Variable
11
14
  variableLocations; // Maps Variable.$id to location
12
- handleMethodLocation;
15
+ instanceMethodsLocation;
13
16
  bubbleScript;
14
17
  bubbleFactory;
15
18
  currentBubbleScript;
16
- triggerEventType;
19
+ trigger;
17
20
  /**
18
21
  * Reparse the AST and bubbles after the script has been modified
19
22
  * This is necessary when the script text changes but we need updated bubble locations
@@ -28,7 +31,6 @@ export class BubbleScript {
28
31
  sourceType: 'module', // Treat as ES module
29
32
  ecmaVersion: 2022, // Modern JS/TS features
30
33
  });
31
- console.log('Done parsing AST');
32
34
  // Analyze scope to build variable dependency graph
33
35
  this.scopeManager = analyze(this.ast, {
34
36
  sourceType: 'module',
@@ -39,18 +41,21 @@ export class BubbleScript {
39
41
  // Parse bubble dependencies from AST using the provided factory and scope manager
40
42
  const bubbleParser = new BubbleParser(this.currentBubbleScript);
41
43
  const parseResult = bubbleParser.parseBubblesFromAST(this.bubbleFactory, this.ast, this.scopeManager);
44
+ this.instanceMethodsLocation = parseResult.instanceMethodsLocation;
42
45
  this.parsedBubbles = parseResult.bubbles;
43
- this.triggerEventType =
44
- this.getBubbleTriggerEventType();
46
+ this.workflow = parseResult.workflow;
47
+ this.trigger = this.getBubbleTriggerEventType() ?? { type: 'webhook/http' };
45
48
  }
46
49
  constructor(bubbleScript, bubbleFactory) {
47
50
  // Reset ID generator to ensure deterministic variable IDs
48
51
  resetIds();
52
+ // Normalize braceless control flow statements to prevent injection issues
53
+ const normalizedScript = normalizeBracelessControlFlow(bubbleScript);
49
54
  // Parse the bubble script into AST
50
- this.bubbleScript = bubbleScript;
51
- this.currentBubbleScript = bubbleScript;
55
+ this.bubbleScript = normalizedScript;
56
+ this.currentBubbleScript = normalizedScript;
52
57
  this.bubbleFactory = bubbleFactory;
53
- this.ast = parse(bubbleScript, {
58
+ this.ast = parse(normalizedScript, {
54
59
  range: true, // Required for scope-manager
55
60
  loc: true, // Location info for line numbers
56
61
  sourceType: 'module', // Treat as ES module
@@ -64,19 +69,40 @@ export class BubbleScript {
64
69
  // Build variable mapping first
65
70
  this.scriptVariables = this.buildVariableMapping();
66
71
  // Parse bubble dependencies from AST using the provided factory and scope manager
67
- const bubbleParser = new BubbleParser(bubbleScript);
72
+ const bubbleParser = new BubbleParser(normalizedScript);
68
73
  const parseResult = bubbleParser.parseBubblesFromAST(bubbleFactory, this.ast, this.scopeManager);
69
74
  this.parsedBubbles = parseResult.bubbles;
70
75
  this.originalParsedBubbles = parseResult.bubbles;
71
- this.handleMethodLocation = parseResult.handleMethodLocation;
72
- this.triggerEventType =
73
- this.getBubbleTriggerEventType();
76
+ this.workflow = parseResult.workflow;
77
+ this.instanceMethodsLocation = parseResult.instanceMethodsLocation;
78
+ this.trigger = this.getBubbleTriggerEventType() ?? { type: 'webhook/http' };
74
79
  }
75
80
  // getter for bubblescript (computed property)
76
81
  get bubblescript() {
77
82
  // Regenerate the script
78
83
  return this.currentBubbleScript;
79
84
  }
85
+ /** Print script with line numbers in pretty readable format */
86
+ showScript(message) {
87
+ const lines = this.currentBubbleScript.split('\n');
88
+ console.debug(`###### ${message} ######`);
89
+ console.debug('------------Script--------------');
90
+ console.debug(lines.map((line, index) => `${index + 1}: ${line}`).join('\n'));
91
+ // Show bubble paramer location (just the basic info)
92
+ console.debug('---------------------------------');
93
+ console.debug('--------Bubble Locations---------');
94
+ const bubbles = this.getParsedBubbles();
95
+ for (const bubble of Object.values(bubbles)) {
96
+ console.debug(`Bubble ${bubble.bubbleName} location: ${bubble.location.startLine}-${bubble.location.endLine}`);
97
+ }
98
+ // Print instance methods locations
99
+ console.debug('Instance methods locations:');
100
+ for (const [methodName, location] of Object.entries(this.instanceMethodsLocation)) {
101
+ console.debug(` ${methodName}: ${location.bodyStartLine}-${location.endLine} (invocations: ${location.invocationLines.join(', ')})`);
102
+ }
103
+ console.debug('---------------------------------');
104
+ console.debug(`##################`);
105
+ }
80
106
  /**
81
107
  * Get all variable names available at a specific line (excluding globals)
82
108
  * This is like setting a debugger breakpoint at that line
@@ -285,6 +311,7 @@ export class BubbleScript {
285
311
  /**
286
312
  * Build a mapping of all user-defined variables with unique IDs
287
313
  * Also cross-references with parsed bubbles
314
+ * Fills variableLocations
288
315
  */
289
316
  buildVariableMapping() {
290
317
  const variableMap = {};
@@ -368,11 +395,30 @@ export class BubbleScript {
368
395
  getParsedBubbles() {
369
396
  return this.parsedBubbles;
370
397
  }
398
+ /**
399
+ * Get the hierarchical workflow structure
400
+ */
401
+ getWorkflow() {
402
+ return this.workflow;
403
+ }
371
404
  /**
372
405
  * Get the handle method location (start and end lines)
373
406
  */
374
407
  getHandleMethodLocation() {
375
- return this.handleMethodLocation;
408
+ // Backward compatibility: return handle method from instanceMethodsLocation
409
+ const handleMethod = this.instanceMethodsLocation['handle'];
410
+ if (handleMethod) {
411
+ return {
412
+ startLine: handleMethod.startLine,
413
+ endLine: handleMethod.endLine,
414
+ definitionStartLine: handleMethod.definitionStartLine,
415
+ bodyStartLine: handleMethod.bodyStartLine,
416
+ };
417
+ }
418
+ return null;
419
+ }
420
+ getInstanceMethodLocation(methodName) {
421
+ return this.instanceMethodsLocation[methodName] || null;
376
422
  }
377
423
  /**
378
424
  * Get location information for a variable by its $id
@@ -458,7 +504,8 @@ export class BubbleScript {
458
504
  */
459
505
  getPayloadJsonSchema() {
460
506
  const bubbleParser = new BubbleParser(this.currentBubbleScript);
461
- return bubbleParser.getPayloadJsonSchema(this.ast);
507
+ const schema = bubbleParser.getPayloadJsonSchema(this.ast);
508
+ return schema;
462
509
  }
463
510
  /**
464
511
  * Detect the BubbleTriggerEventRegistry key from the class extends generic.
@@ -475,34 +522,75 @@ export class BubbleScript {
475
522
  return null;
476
523
  if (superClass.name !== 'BubbleFlow')
477
524
  return null;
478
- // typescript-estree attaches generic params to superTypeParameters
525
+ // Extract the event type from generic parameter
479
526
  const params = cls.superTypeParameters;
480
527
  const firstParam = params?.params?.[0];
481
528
  if (!firstParam)
482
529
  return null;
530
+ let eventType = null;
483
531
  if (firstParam.type === 'TSLiteralType' &&
484
532
  firstParam.literal.type === 'Literal') {
485
533
  const v = firstParam.literal.value;
486
- return typeof v === 'string' ? v : null;
534
+ eventType = typeof v === 'string' ? v : null;
535
+ }
536
+ if (!eventType)
537
+ return null;
538
+ // Extract cronSchedule if this is a schedule/cron event
539
+ let cronSchedule = undefined;
540
+ if (eventType === 'schedule/cron') {
541
+ // Look for cronSchedule property in the class body
542
+ for (const member of cls.body.body) {
543
+ if (member.type === 'PropertyDefinition' &&
544
+ member.key.type === 'Identifier' &&
545
+ member.key.name === 'cronSchedule') {
546
+ // Extract the string literal value
547
+ if (member.value &&
548
+ member.value.type === 'Literal' &&
549
+ typeof member.value.value === 'string') {
550
+ cronSchedule = member.value.value;
551
+ break;
552
+ }
553
+ }
554
+ }
487
555
  }
488
- return null;
556
+ return {
557
+ type: eventType,
558
+ cronSchedule,
559
+ };
489
560
  };
490
561
  if (stmt.type === 'ClassDeclaration') {
491
- const val = tryClass(stmt);
492
- if (val)
493
- return val;
562
+ const result = tryClass(stmt);
563
+ if (result) {
564
+ return {
565
+ type: result.type,
566
+ cronSchedule: result.cronSchedule,
567
+ };
568
+ }
494
569
  }
495
570
  if (stmt.type === 'ExportNamedDeclaration' &&
496
571
  stmt.declaration?.type === 'ClassDeclaration') {
497
- const val = tryClass(stmt.declaration);
498
- if (val)
499
- return val;
572
+ const result = tryClass(stmt.declaration);
573
+ if (result) {
574
+ return {
575
+ type: result.type,
576
+ cronSchedule: result.cronSchedule,
577
+ };
578
+ }
500
579
  }
501
580
  }
502
581
  // Fallback: simple regex over the source to catch extends BubbleFlow<'event/key'>
503
582
  const match = this.currentBubbleScript.match(/extends\s+BubbleFlow\s*<\s*(['"`])([^'"`]+)\1\s*>/m);
504
583
  if (match && typeof match[2] === 'string') {
505
- return match[2];
584
+ const eventType = match[2];
585
+ // Try to extract cronSchedule via regex if it's a cron event
586
+ let cronSchedule = undefined;
587
+ if (eventType === 'schedule/cron') {
588
+ const cronMatch = this.currentBubbleScript.match(/readonly\s+cronSchedule\s*=\s*['"`]([^'"`]+)['"`]/);
589
+ if (cronMatch) {
590
+ cronSchedule = cronMatch[1];
591
+ }
592
+ }
593
+ return { type: eventType, cronSchedule };
506
594
  }
507
595
  return null;
508
596
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleScript.js","sourceRoot":"","sources":["../../src/parse/BubbleScript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAY7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,OAAO,YAAY;IACf,GAAG,CAAmB;IACtB,YAAY,CAAe;IAEnC,4DAA4D;IACpD,aAAa,CAAuC;IACpD,qBAAqB,CAAuC;IAC5D,eAAe,CAA2B,CAAC,gCAAgC;IAC3E,iBAAiB,CAGvB,CAAC,gCAAgC;IAC3B,oBAAoB,CAAgD;IACpE,YAAY,CAAS;IACrB,aAAa,CAAgB;IAC9B,mBAAmB,CAAS;IAC5B,gBAAgB,CAAmC;IAE1D;;;OAGG;IACH,UAAU;QACR,0DAA0D;QAC1D,QAAQ,EAAE,CAAC;QAEX,2CAA2C;QAC3C,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACzC,KAAK,EAAE,IAAI,EAAE,6BAA6B;YAC1C,GAAG,EAAE,IAAI,EAAE,iCAAiC;YAC5C,UAAU,EAAE,QAAQ,EAAE,qBAAqB;YAC3C,WAAW,EAAE,IAAI,EAAE,wBAAwB;SAC5C,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEhC,mDAAmD;QACnD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACpC,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,+BAA+B;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEnD,kFAAkF;QAClF,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,YAAY,CAAC,mBAAmB,CAClD,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,gBAAgB;YACnB,IAAI,CAAC,yBAAyB,EAAsC,CAAC;IACzE,CAAC;IAED,YAAY,YAAoB,EAAE,aAA4B;QAC5D,0DAA0D;QAC1D,QAAQ,EAAE,CAAC;QAEX,mCAAmC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,YAAY,EAAE;YAC7B,KAAK,EAAE,IAAI,EAAE,6BAA6B;YAC1C,GAAG,EAAE,IAAI,EAAE,iCAAiC;YAC5C,UAAU,EAAE,QAAQ,EAAE,qBAAqB;YAC3C,WAAW,EAAE,IAAI,EAAE,wBAAwB;SAC5C,CAAC,CAAC;QAEH,mDAAmD;QACnD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACpC,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAE5B,+BAA+B;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEnD,kFAAkF;QAClF,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,YAAY,CAAC,mBAAmB,CAClD,aAAa,EACb,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,qBAAqB,GAAG,WAAW,CAAC,OAAO,CAAC;QACjD,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAC,oBAAoB,CAAC;QAC7D,IAAI,CAAC,gBAAgB;YACnB,IAAI,CAAC,yBAAyB,EAAsC,CAAC;IACzE,CAAC;IAED,8CAA8C;IAC9C,IAAW,YAAY;QACrB,wBAAwB;QACxB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,UAAkB;QAC/B,wDAAwD;QACxD,MAAM,gBAAgB,GAAG,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;QAErE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,+CAA+C;QAC/C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAY,CAAC;QAE9C,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;YACrC,gCAAgC;YAChC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;YAED,0CAA0C;YAC1C,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;YAC9B,OAAO,WAAW,EAAE,CAAC;gBACnB,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;oBAC7C,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClC,CAAC;gBACD,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC;YAClC,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,MAAM,cAAc,GAAe,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEjE,8EAA8E;QAC9E,OAAO,cAAc;aAClB,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;aACtD,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnB,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,UAAU,CAAC,CACxD;aACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACK,0BAA0B,CAAC,UAAkB;QACnD,MAAM,gBAAgB,GAAY,EAAE,CAAC;QAErC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;YAEhD,qCAAqC;YACrC,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;gBACvD,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,MAAM,GACV,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YAChE,MAAM,MAAM,GACV,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YAEhE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO,MAAM,GAAG,MAAM,CAAC,CAAC,sBAAsB;YAChD,CAAC;YAED,sCAAsC;YACtC,MAAM,aAAa,GAAG;gBACpB,KAAK,EAAE,CAAC;gBACR,GAAG,EAAE,CAAC;gBACN,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC;aACV,CAAC;YACF,MAAM,SAAS,GACb,aAAa,CAAC,CAAC,CAAC,IAAkC,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,SAAS,GACb,aAAa,CAAC,CAAC,CAAC,IAAkC,CAAC,IAAI,CAAC,CAAC;YAE3D,OAAO,SAAS,GAAG,SAAS,CAAC,CAAC,wBAAwB;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,UAAkB;QACzC,IAAI,WAAW,GAAiB,IAAI,CAAC;QACrC,IAAI,aAAa,GAAG,QAAQ,CAAC;QAE7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;YAEhD,qCAAqC;YACrC,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;gBACvD,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;gBAEzC,kEAAkE;gBAClE,MAAM,gBAAgB,GACpB,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,EAAE,IAAI,KAAK,QAAQ,CAAC;gBAE5D,+DAA+D;gBAC/D,IAAI,UAAU,GAAG,aAAa,IAAI,gBAAgB,EAAE,CAAC;oBACnD,aAAa,GAAG,UAAU,CAAC;oBAC3B,WAAW,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;OAGG;IACK,yBAAyB,CAAC,KAAY;QAC5C,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,IAAI,YAAY,GAAiB,KAAK,CAAC;QAEvC,sDAAsD;QACtD,OAAO,YAAY,EAAE,CAAC;YACpB,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1C,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,eAAe;QACpD,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,4BAA4B,CAClC,QAAkB,EAClB,UAAkB;QAElB,+CAA+C;QAC/C,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,CAAC,uEAAuE;QACtF,CAAC;QAED,2DAA2D;QAC3D,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;YAC5C,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,IAAI,UAAU,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,QAAkB;QACzC,6CAA6C;QAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;YAC1B,SAAS;YACT,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,SAAS;YACT,MAAM;YACN,MAAM;YACN,MAAM;YACN,SAAS;YACT,OAAO;YACP,UAAU;YACV,QAAQ;YACR,KAAK;YACL,KAAK;YACL,SAAS;YACT,SAAS;YACT,OAAO;YACP,SAAS;YACT,QAAQ;YACR,SAAS;YACT,QAAQ;YACR,SAAS;YACT,WAAW;YACX,YAAY;YACZ,QAAQ;YACR,SAAS;YACT,qBAAqB;YACrB,MAAM;YACN,mBAAmB;YACnB,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB;YAChB,oBAAoB;YACpB,kBAAkB;YAClB,QAAQ;YACR,aAAa;YACb,oBAAoB;YACpB,SAAS;YACT,UAAU;YACV,UAAU;YACV,MAAM;YACN,QAAQ;YACR,SAAS;YACT,SAAS;YACT,MAAM;YACN,aAAa;SACd,CAAC,CAAC;QAEH,OAAO,CACL,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9B,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;YAChC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CACpC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,UAAkB;QAMpC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEtD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS;aACpC,MAAM,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;aAClD,GAAG,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC;aACxD,MAAM,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;aAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEtB,OAAO;YACL,SAAS,EAAE,WAAW,CAAC,IAAI;YAC3B,SAAS,EAAE,SAAS;YACpB,aAAa,EAAE,OAAO;YACtB,SAAS,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;SACrF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,oBAAoB;QAC1B,MAAM,WAAW,GAA6B,EAAE,CAAC;QACjD,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAE5B,qDAAqD;QACrD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC7C,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACrC,6CAA6C;oBAC7C,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;oBAErC,8DAA8D;oBAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;oBACxD,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;oBAClD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,QAAkB;QAMhD,6CAA6C;QAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG;YAAE,OAAO,IAAI,CAAC;QAExC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QAChC,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;YACzB,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;YAC1B,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI;YACrB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM;SACvB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC7C,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,wBAAwB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,UAAkB;QAMpC,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,uBAAuB;QAIrB,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACvC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC;IAC/C,CAAC;IAED,8GAA8G;IAC9G,gBAAgB,CAAC,UAAkB,EAAE,QAAgB;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,YAAY,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,yBAAyB,QAAQ,CAAC,IAAI,SAAS,UAAU,aAAa,CACvE,CAAC;QACJ,CAAC;QAED,sCAAsC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnD,kEAAkE;QAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAEtC,8DAA8D;QAC9D,2DAA2D;QAC3D,MAAM,eAAe,GAAG,IAAI,MAAM,CAChC,4BAA4B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EACnF,GAAG,CACJ,CAAC;QAEF,IAAI,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACvC,yBAAyB;YACzB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,QAAQ,EAAE,CAAC,CAAC;YACvE,KAAK,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,2DAA2D;YAC3D,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAClC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAC9D,GAAG,CACJ,CAAC;YAEF,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAClC,iBAAiB,EACjB,KAAK,QAAQ,EAAE,CAChB,CAAC;gBACF,KAAK,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,kDAAkD,QAAQ,CAAC,IAAI,YAAY,QAAQ,CAAC,SAAS,EAAE,CAChG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,sFAAsF;IACtF,WAAW,CAAC,KAAe,EAAE,UAAkB;QAC7C,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,sCAAsC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzD,2CAA2C;QAC3C,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;QAEnC,2BAA2B;QAC3B,IAAI,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,eAAe,UAAU,2BAA2B,WAAW,CAAC,MAAM,SAAS,CAChF,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;QAE7C,0CAA0C;QAC1C,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,MAAc;QACjC,OAAO,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACI,oBAAoB;QACzB,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChE,OAAO,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACI,yBAAyB;QAC9B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,CAAC,GAAiD,EAAE,EAAE;gBACrE,IAAI,CAAC,GAAG;oBAAE,OAAO,IAAI,CAAC;gBACtB,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;gBAClC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY;oBAAE,OAAO,IAAI,CAAC;gBACjE,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY;oBAAE,OAAO,IAAI,CAAC;gBAClD,mEAAmE;gBACnE,MAAM,MAAM,GACV,GAGD,CAAC,mBAAmB,CAAC;gBACtB,MAAM,UAAU,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,UAAU;oBAAE,OAAO,IAAI,CAAC;gBAC7B,IACE,UAAU,CAAC,IAAI,KAAK,eAAe;oBACnC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EACrC,CAAC;oBACD,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;oBACnC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1C,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;YAEF,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,GAAG;oBAAE,OAAO,GAAG,CAAC;YACtB,CAAC;YACD,IACE,IAAI,CAAC,IAAI,KAAK,wBAAwB;gBACtC,IAAI,CAAC,WAAW,EAAE,IAAI,KAAK,kBAAkB,EAC7C,CAAC;gBACD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,IAAI,GAAG;oBAAE,OAAO,GAAG,CAAC;YACtB,CAAC;QACH,CAAC;QACD,kFAAkF;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAC1C,oDAAoD,CACrD,CAAC;QACF,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"BubbleScript.js","sourceRoot":"","sources":["../../src/parse/BubbleScript.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,2 @@
1
1
  export * from './BubbleScript';
2
- export * from './traceDependencies';
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
@@ -1,3 +1,2 @@
1
1
  export * from './BubbleScript';
2
- export * from './traceDependencies';
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ExecutionResult, ParsedBubbleWithInfo } from '@bubblelab/shared-schemas';
1
+ import { ExecutionResult, ParsedBubbleWithInfo, CredentialType } from '@bubblelab/shared-schemas';
2
2
  import { BubbleFactory, WebhookEvent, BubbleLogger, LogLevel } from '@bubblelab/bubble-core';
3
3
  import type { StreamCallback } from '@bubblelab/shared-schemas';
4
4
  import type { ExecutionPlan } from './types';
@@ -14,6 +14,12 @@ export interface BubbleRunnerOptions {
14
14
  enableLineByLineLogging?: boolean;
15
15
  enableBubbleLogging?: boolean;
16
16
  streamCallback?: StreamCallback;
17
+ useWebhookLogger?: boolean;
18
+ pricingTable: Record<string, {
19
+ unit: string;
20
+ unitCost: number;
21
+ }>;
22
+ userCredentialMapping?: Map<number, Set<CredentialType>>;
17
23
  }
18
24
  export declare class BubbleRunner {
19
25
  private bubbleFactory;
@@ -24,7 +30,8 @@ export declare class BubbleRunner {
24
30
  private logger;
25
31
  injector: BubbleInjector;
26
32
  private options;
27
- constructor(bubbleScript: string | BubbleScript, bubbleFactory: BubbleFactory, options?: BubbleRunnerOptions);
33
+ private hasInjectedLogging;
34
+ constructor(bubbleScript: string | BubbleScript, bubbleFactory: BubbleFactory, options: BubbleRunnerOptions);
28
35
  /**
29
36
  * Creates a list of steps where length = number of parsed bubbles
30
37
  * Contains the bubble and parameters to run
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleRunner.d.ts","sourceRoot":"","sources":["../../src/runtime/BubbleRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EAEb,YAAY,EACZ,YAAY,EACZ,QAAQ,EACT,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAMhE,OAAO,KAAK,EAAE,aAAa,EAA2B,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,qBAAa,YAAY;IAKvB,OAAO,CAAC,aAAa,CAAgB;IAE9B,YAAY,EAAE,YAAY,CAAC;IAGlC,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,MAAM,CAAe;IACtB,QAAQ,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,OAAO,CAAsB;gBAGnC,YAAY,EAAE,MAAM,GAAG,YAAY,EACnC,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,mBAAwB;IAwCnC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA8J1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8D3B,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAIxD;;OAEG;IACH,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAIhE,YAAY;IAIZ;;OAEG;IAEH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI7B;;OAEG;IACG,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAoQvE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IAEH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC,OAAO,IAAI,aAAa;IAOxB;;OAEG;IACH,SAAS,IAAI,YAAY,GAAG,SAAS;IAIrC;;OAEG;IACH,mBAAmB,IAAI,UAAU,CAC/B,YAAY,CAAC,qBAAqB,CAAC,CACpC,GAAG,IAAI;IAIR;;OAEG;IACH,UAAU,CAAC,MAAM,GAAE,MAAM,GAAG,KAAK,GAAG,OAAgB,GAAG,MAAM,GAAG,IAAI;IAIpE;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"BubbleRunner.d.ts","sourceRoot":"","sources":["../../src/runtime/BubbleRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,cAAc,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EAEb,YAAY,EACZ,YAAY,EACZ,QAAQ,EACT,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAMhE,OAAO,KAAK,EAAE,aAAa,EAA2B,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAQ7D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;CAC1D;AAED,qBAAa,YAAY;IAKvB,OAAO,CAAC,aAAa,CAAgB;IAE9B,YAAY,EAAE,YAAY,CAAC;IAGlC,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,MAAM,CAAe;IACtB,QAAQ,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,kBAAkB,CAAkB;gBAE1C,YAAY,EAAE,MAAM,GAAG,YAAY,EACnC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,mBAAmB;IAkD9B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA8J1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8D3B,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAIxD;;OAEG;IACH,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAIhE,YAAY;IAIZ;;OAEG;IAEH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI7B;;OAEG;IACG,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAmSvE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IAEH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC,OAAO,IAAI,aAAa;IAOxB;;OAEG;IACH,SAAS,IAAI,YAAY,GAAG,SAAS;IAIrC;;OAEG;IACH,mBAAmB,IAAI,UAAU,CAC/B,YAAY,CAAC,qBAAqB,CAAC,CACpC,GAAG,IAAI;IAIR;;OAEG;IACH,UAAU,CAAC,MAAM,GAAE,MAAM,GAAG,KAAK,GAAG,OAAgB,GAAG,MAAM,GAAG,IAAI;IAIpE;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
@@ -1,5 +1,6 @@
1
1
  import { BubbleLogger, LogLevel, } from '@bubblelab/bubble-core';
2
2
  import { StreamingBubbleLogger } from '@bubblelab/bubble-core';
3
+ import { WebhookStreamLogger } from '@bubblelab/bubble-core';
3
4
  import { BubbleValidationError, BubbleExecutionError, BubbleError, } from '@bubblelab/bubble-core';
4
5
  import { BubbleScript } from '../parse/BubbleScript';
5
6
  import { BubbleInjector } from '../injection/BubbleInjector';
@@ -7,6 +8,9 @@ import { pathToFileURL } from 'url';
7
8
  import path from 'path';
8
9
  import fs from 'fs/promises';
9
10
  import { existsSync } from 'fs';
11
+ import { randomUUID } from 'crypto';
12
+ import { getSafeErrorMessage } from '../utils/error-sanitizer.js';
13
+ import { sanitizeScript } from '../utils/sanitize-script.js';
10
14
  export class BubbleRunner {
11
15
  // Bubble script
12
16
  // Bubble factory
@@ -21,7 +25,8 @@ export class BubbleRunner {
21
25
  logger;
22
26
  injector;
23
27
  options;
24
- constructor(bubbleScript, bubbleFactory, options = {}) {
28
+ hasInjectedLogging = false;
29
+ constructor(bubbleScript, bubbleFactory, options) {
25
30
  this.bubbleScript =
26
31
  typeof bubbleScript === 'string'
27
32
  ? new BubbleScript(bubbleScript, bubbleFactory)
@@ -38,22 +43,32 @@ export class BubbleRunner {
38
43
  ...options,
39
44
  };
40
45
  // Initialize logger if enabled
46
+ const loggerConfig = {
47
+ minLevel: this.options.logLevel || LogLevel.INFO,
48
+ enableTiming: true,
49
+ enableMemoryTracking: true,
50
+ pricingTable: this.options.pricingTable,
51
+ userCredentialMapping: this.options.userCredentialMapping,
52
+ };
41
53
  if (this.options.streamCallback) {
42
- // Use streaming logger when stream callback is provided
43
- this.logger = new StreamingBubbleLogger('BubbleFlow', {
44
- minLevel: this.options.logLevel || LogLevel.INFO,
45
- enableTiming: true,
46
- enableMemoryTracking: true,
47
- streamCallback: this.options.streamCallback,
48
- });
54
+ // Use webhook logger for terminal-friendly output when requested
55
+ if (this.options.useWebhookLogger) {
56
+ this.logger = new WebhookStreamLogger('BubbleFlow', {
57
+ ...loggerConfig,
58
+ streamCallback: this.options.streamCallback,
59
+ });
60
+ }
61
+ else {
62
+ // Use streaming logger when stream callback is provided
63
+ this.logger = new StreamingBubbleLogger('BubbleFlow', {
64
+ ...loggerConfig,
65
+ streamCallback: this.options.streamCallback,
66
+ });
67
+ }
49
68
  }
50
69
  else {
51
70
  // Use regular logger
52
- this.logger = new BubbleLogger('BubbleFlow', {
53
- minLevel: this.options.logLevel || LogLevel.INFO,
54
- enableTiming: true,
55
- enableMemoryTracking: true,
56
- });
71
+ this.logger = new BubbleLogger('BubbleFlow', loggerConfig);
57
72
  }
58
73
  this.plan = this.buildExecutionPlan();
59
74
  }
@@ -291,19 +306,19 @@ export class BubbleRunner {
291
306
  let tempFilePath = null;
292
307
  console.log('Running all');
293
308
  try {
294
- this.logger?.info('Starting BubbleFlow execution');
309
+ this.logger?.info('Preparing for BubbleFlow execution...');
295
310
  // Inject logging into the script if enabled
296
311
  let scriptToExecute = this.bubbleScript.bubblescript;
297
- if (this.options.enableLogging && this.logger) {
298
- this.injector.injectBubbleLoggingAndReinitializeBubbleParameters();
312
+ if (this.logger && !this.hasInjectedLogging) {
313
+ this.injector.injectBubbleLoggingAndReinitializeBubbleParameters(this.options.enableLogging);
299
314
  scriptToExecute = this.bubbleScript.bubblescript;
315
+ this.hasInjectedLogging = true;
300
316
  }
317
+ this.bubbleScript.showScript('Prepared script for execution');
301
318
  // Create a temporary file with the bubble script code in the project directory
302
319
  // This ensures proper module resolution for @nodex packages
303
320
  const projectRoot = this.findProjectRoot();
304
321
  const tempDir = path.join(projectRoot, '.tmp');
305
- console.log('[BubbleRunner] projectRoot:', projectRoot);
306
- console.log('[BubbleRunner] tempDir:', tempDir);
307
322
  // Ensure temp directory exists
308
323
  try {
309
324
  await fs.mkdir(tempDir, { recursive: true });
@@ -315,7 +330,8 @@ export class BubbleRunner {
315
330
  }
316
331
  const tempFileName = `bubble-script-${Date.now()}-${Math.random().toString(36).substring(7)}.ts`;
317
332
  tempFilePath = path.join(tempDir, tempFileName);
318
- console.log('[BubbleRunner] tempFilePath:', tempFilePath);
333
+ // Sanitize script to block access to process.env for security
334
+ scriptToExecute = sanitizeScript(scriptToExecute);
319
335
  // Write the script code to the temporary file
320
336
  try {
321
337
  console.log('[BubbleRunner] About to write script to temp file. Script length:', scriptToExecute?.length);
@@ -347,6 +363,7 @@ export class BubbleRunner {
347
363
  module = await import(moduleUrl);
348
364
  }
349
365
  catch (importErr) {
366
+ this.bubbleScript.parsingErrors.push(`Dynamic import failed: ${importErr instanceof Error ? importErr.message : String(importErr)}`);
350
367
  console.error('[BubbleRunner] Dynamic import failed:', importErr);
351
368
  // Optionally dump first 300 chars of script to help debug syntax errors
352
369
  const preview = (scriptToExecute ?? '').slice(0, 300);
@@ -362,6 +379,7 @@ export class BubbleRunner {
362
379
  // Create default webhook payload if none provided
363
380
  const webhookPayload = {
364
381
  type: 'webhook/http',
382
+ executionId: randomUUID(),
365
383
  timestamp: new Date().toISOString(),
366
384
  path: '/webhook',
367
385
  body: {},
@@ -388,7 +406,8 @@ export class BubbleRunner {
388
406
  additionalData: { executionTime, result },
389
407
  });
390
408
  // Log execution completion for streaming
391
- if (this.logger instanceof StreamingBubbleLogger) {
409
+ if (this.logger instanceof StreamingBubbleLogger ||
410
+ this.logger instanceof WebhookStreamLogger) {
392
411
  this.logger.logExecutionComplete(true, result);
393
412
  }
394
413
  return {
@@ -402,83 +421,91 @@ export class BubbleRunner {
402
421
  catch (error) {
403
422
  // Enhanced error handling for bubble-specific errors
404
423
  if (error instanceof BubbleValidationError) {
405
- this.logger?.fatal(`Bubble validation failed: ${error.message}`, error, {
406
- variableId: error.variableId,
407
- bubbleName: error.bubbleName,
424
+ const validationError = error;
425
+ this.logger?.fatal(`Bubble validation failed: ${validationError.message}`, validationError, {
426
+ variableId: validationError.variableId,
427
+ bubbleName: validationError.bubbleName,
408
428
  additionalData: {
409
- validationErrors: error.validationErrors,
410
- variableId: error.variableId,
411
- bubbleName: error.bubbleName,
429
+ validationErrors: validationError.validationErrors,
430
+ variableId: validationError.variableId,
431
+ bubbleName: validationError.bubbleName,
412
432
  },
413
433
  });
414
434
  // Log execution failure for streaming
415
- if (this.logger instanceof StreamingBubbleLogger) {
416
- this.logger.logExecutionComplete(false, undefined, `Bubble validation failed at ${error.bubbleName} (variableId: ${error.variableId}): ${error.message}`);
435
+ if (this.logger instanceof StreamingBubbleLogger ||
436
+ this.logger instanceof WebhookStreamLogger) {
437
+ this.logger.logExecutionComplete(false, undefined, `Bubble validation failed at ${validationError.bubbleName} (variableId: ${validationError.variableId}): ${validationError.message}`);
417
438
  }
418
439
  return {
419
440
  executionId: 0,
420
441
  success: false,
421
442
  summary: this.logger.getExecutionSummary(),
422
- error: `Bubble validation failed at ${error.bubbleName} (variableId: ${error.variableId}): ${error.message}`,
443
+ error: `Bubble validation failed at ${validationError.bubbleName} (variableId: ${validationError.variableId}): ${validationError.message}`,
423
444
  data: undefined,
424
445
  };
425
446
  }
426
447
  else if (error instanceof BubbleExecutionError) {
427
- this.logger?.fatal(`Bubble execution failed: ${error.message}`, error, {
428
- variableId: error.variableId,
429
- bubbleName: error.bubbleName,
448
+ const executionError = error;
449
+ this.logger?.fatal(`Bubble execution failed: ${executionError.message}`, executionError, {
450
+ variableId: executionError.variableId,
451
+ bubbleName: executionError.bubbleName,
430
452
  additionalData: {
431
- executionPhase: error.executionPhase,
432
- variableId: error.variableId,
433
- bubbleName: error.bubbleName,
453
+ executionPhase: executionError.executionPhase,
454
+ variableId: executionError.variableId,
455
+ bubbleName: executionError.bubbleName,
434
456
  },
435
457
  });
436
458
  // Log execution failure for streaming
437
- if (this.logger instanceof StreamingBubbleLogger) {
438
- this.logger.logExecutionComplete(false, undefined, `Bubble execution failed at ${error.bubbleName} (variableId: ${error.variableId}): ${error.message}`);
459
+ if (this.logger instanceof StreamingBubbleLogger ||
460
+ this.logger instanceof WebhookStreamLogger) {
461
+ this.logger.logExecutionComplete(false, undefined, `Bubble execution failed at ${executionError.bubbleName} (variableId: ${executionError.variableId}): ${executionError.message}`);
439
462
  }
440
463
  return {
441
464
  executionId: 0,
442
465
  success: false,
443
466
  summary: this.logger.getExecutionSummary(),
444
- error: `Bubble execution failed at ${error.bubbleName} (variableId: ${error.variableId}): ${error.message}`,
467
+ error: `Bubble execution failed at ${executionError.bubbleName} (variableId: ${executionError.variableId}): ${executionError.message}`,
445
468
  data: undefined,
446
469
  };
447
470
  }
448
471
  else if (error instanceof BubbleError) {
449
472
  // Generic bubble error
450
- this.logger?.fatal(`Bubble error: ${error.message}`, error, {
451
- variableId: error.variableId,
452
- bubbleName: error.bubbleName,
473
+ const bubbleError = error;
474
+ this.logger?.fatal(`Bubble error: ${bubbleError.message}`, bubbleError, {
475
+ variableId: bubbleError.variableId,
476
+ bubbleName: bubbleError.bubbleName,
453
477
  additionalData: {
454
- variableId: error.variableId,
455
- bubbleName: error.bubbleName,
478
+ variableId: bubbleError.variableId,
479
+ bubbleName: bubbleError.bubbleName,
456
480
  },
457
481
  });
458
482
  // Log execution failure for streaming
459
- if (this.logger instanceof StreamingBubbleLogger) {
460
- this.logger.logExecutionComplete(false, undefined, `Bubble error at ${error.bubbleName} (variableId: ${error.variableId}): ${error.message}`);
483
+ if (this.logger instanceof StreamingBubbleLogger ||
484
+ this.logger instanceof WebhookStreamLogger) {
485
+ this.logger.logExecutionComplete(false, undefined, `Bubble error at ${bubbleError.bubbleName} (variableId: ${bubbleError.variableId}): ${bubbleError.message}`);
461
486
  }
462
487
  return {
463
488
  executionId: 0,
464
489
  summary: this.logger.getExecutionSummary(),
465
490
  success: false,
466
- error: `Bubble error at ${error.bubbleName} (variableId: ${error.variableId}): ${error.message}`,
491
+ error: `Bubble error at ${bubbleError.bubbleName} (variableId: ${bubbleError.variableId}): ${bubbleError.message}`,
467
492
  data: undefined,
468
493
  };
469
494
  }
470
495
  else {
471
496
  // Generic error fallback
497
+ const safeError = getSafeErrorMessage(error);
472
498
  this.logger?.fatal('BubbleFlow execution failed', error instanceof Error ? error : undefined);
473
499
  // Log execution failure for streaming
474
- if (this.logger instanceof StreamingBubbleLogger) {
475
- this.logger.logExecutionComplete(false, undefined, error.message);
500
+ if (this.logger instanceof StreamingBubbleLogger ||
501
+ this.logger instanceof WebhookStreamLogger) {
502
+ this.logger.logExecutionComplete(false, undefined, safeError);
476
503
  }
477
504
  return {
478
505
  executionId: 0,
479
506
  summary: this.logger.getExecutionSummary(),
480
507
  success: false,
481
- error: error.message,
508
+ error: safeError,
482
509
  data: undefined,
483
510
  };
484
511
  }