@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.
- package/dist/extraction/BubbleParser.d.ts +188 -8
- package/dist/extraction/BubbleParser.d.ts.map +1 -1
- package/dist/extraction/BubbleParser.js +2265 -99
- package/dist/extraction/BubbleParser.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/injection/BubbleInjector.d.ts +31 -5
- package/dist/injection/BubbleInjector.d.ts.map +1 -1
- package/dist/injection/BubbleInjector.js +349 -28
- package/dist/injection/BubbleInjector.js.map +1 -1
- package/dist/injection/LoggerInjector.d.ts +17 -0
- package/dist/injection/LoggerInjector.d.ts.map +1 -1
- package/dist/injection/LoggerInjector.js +319 -9
- package/dist/injection/LoggerInjector.js.map +1 -1
- package/dist/parse/BubbleScript.d.ts +54 -5
- package/dist/parse/BubbleScript.d.ts.map +1 -1
- package/dist/parse/BubbleScript.js +112 -24
- package/dist/parse/BubbleScript.js.map +1 -1
- package/dist/parse/index.d.ts +0 -1
- package/dist/parse/index.d.ts.map +1 -1
- package/dist/parse/index.js +0 -1
- package/dist/parse/index.js.map +1 -1
- package/dist/runtime/BubbleRunner.d.ts +9 -2
- package/dist/runtime/BubbleRunner.d.ts.map +1 -1
- package/dist/runtime/BubbleRunner.js +76 -49
- package/dist/runtime/BubbleRunner.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/utils/bubble-helper.d.ts +2 -2
- package/dist/utils/bubble-helper.d.ts.map +1 -1
- package/dist/utils/bubble-helper.js +5 -1
- package/dist/utils/bubble-helper.js.map +1 -1
- package/dist/utils/error-sanitizer.d.ts +16 -0
- package/dist/utils/error-sanitizer.d.ts.map +1 -0
- package/dist/utils/error-sanitizer.js +111 -0
- package/dist/utils/error-sanitizer.js.map +1 -0
- package/dist/utils/normalize-control-flow.d.ts +14 -0
- package/dist/utils/normalize-control-flow.d.ts.map +1 -0
- package/dist/utils/normalize-control-flow.js +179 -0
- package/dist/utils/normalize-control-flow.js.map +1 -0
- package/dist/utils/parameter-formatter.d.ts +14 -5
- package/dist/utils/parameter-formatter.d.ts.map +1 -1
- package/dist/utils/parameter-formatter.js +166 -51
- package/dist/utils/parameter-formatter.js.map +1 -1
- package/dist/utils/sanitize-script.d.ts +11 -0
- package/dist/utils/sanitize-script.d.ts.map +1 -0
- package/dist/utils/sanitize-script.js +43 -0
- package/dist/utils/sanitize-script.js.map +1 -0
- package/dist/validation/BubbleValidator.d.ts +15 -0
- package/dist/validation/BubbleValidator.d.ts.map +1 -1
- package/dist/validation/BubbleValidator.js +171 -1
- package/dist/validation/BubbleValidator.js.map +1 -1
- package/dist/validation/index.d.ts +7 -3
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +63 -12
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/lint-rules.d.ts +91 -0
- package/dist/validation/lint-rules.d.ts.map +1 -0
- package/dist/validation/lint-rules.js +755 -0
- package/dist/validation/lint-rules.js.map +1 -0
- package/package.json +5 -5
- package/dist/parse/traceDependencies.d.ts +0 -18
- package/dist/parse/traceDependencies.d.ts.map +0 -1
- package/dist/parse/traceDependencies.js +0 -196
- 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
|
-
|
|
15
|
+
instanceMethodsLocation;
|
|
13
16
|
bubbleScript;
|
|
14
17
|
bubbleFactory;
|
|
15
18
|
currentBubbleScript;
|
|
16
|
-
|
|
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.
|
|
44
|
-
|
|
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 =
|
|
51
|
-
this.currentBubbleScript =
|
|
55
|
+
this.bubbleScript = normalizedScript;
|
|
56
|
+
this.currentBubbleScript = normalizedScript;
|
|
52
57
|
this.bubbleFactory = bubbleFactory;
|
|
53
|
-
this.ast = parse(
|
|
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(
|
|
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.
|
|
72
|
-
this.
|
|
73
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
|
556
|
+
return {
|
|
557
|
+
type: eventType,
|
|
558
|
+
cronSchedule,
|
|
559
|
+
};
|
|
489
560
|
};
|
|
490
561
|
if (stmt.type === 'ClassDeclaration') {
|
|
491
|
-
const
|
|
492
|
-
if (
|
|
493
|
-
return
|
|
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
|
|
498
|
-
if (
|
|
499
|
-
return
|
|
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
|
-
|
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"BubbleScript.js","sourceRoot":"","sources":["../../src/parse/BubbleScript.ts"],"names":[],"mappings":"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"}
|
package/dist/parse/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
package/dist/parse/index.js
CHANGED
package/dist/parse/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
|
43
|
-
this.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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('
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
406
|
-
|
|
407
|
-
|
|
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:
|
|
410
|
-
variableId:
|
|
411
|
-
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
|
|
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 ${
|
|
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
|
-
|
|
428
|
-
|
|
429
|
-
|
|
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:
|
|
432
|
-
variableId:
|
|
433
|
-
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
|
|
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 ${
|
|
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
|
-
|
|
451
|
-
|
|
452
|
-
|
|
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:
|
|
455
|
-
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
|
|
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 ${
|
|
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
|
|
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:
|
|
508
|
+
error: safeError,
|
|
482
509
|
data: undefined,
|
|
483
510
|
};
|
|
484
511
|
}
|