@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,53 +1,128 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Utility functions for formatting bubble parameters
|
|
3
3
|
*/
|
|
4
|
+
const INVOCATION_KEY_EXPR = '__bubbleFlowSelf?.__getInvocationCallSiteKey?.() ?? ""';
|
|
5
|
+
/**
|
|
6
|
+
* Patterns that indicate function literals in source code.
|
|
7
|
+
* Used to detect when parameters contain functions that cannot be safely condensed.
|
|
8
|
+
*/
|
|
9
|
+
const FUNCTION_LITERAL_PATTERNS = [
|
|
10
|
+
'func:', // Object property with function value
|
|
11
|
+
'=>', // Arrow function
|
|
12
|
+
'function(', // Function expression
|
|
13
|
+
'function (', // Function expression with space
|
|
14
|
+
'async(', // Async arrow function
|
|
15
|
+
'async (', // Async function with space
|
|
16
|
+
];
|
|
17
|
+
/**
|
|
18
|
+
* Check if a string contains function literal patterns.
|
|
19
|
+
* When function literals are present, the source code must be preserved as-is
|
|
20
|
+
* because functions cannot be safely serialized or condensed to single-line.
|
|
21
|
+
*/
|
|
22
|
+
export function containsFunctionLiteral(value) {
|
|
23
|
+
return FUNCTION_LITERAL_PATTERNS.some((pattern) => value.includes(pattern));
|
|
24
|
+
}
|
|
25
|
+
function buildInvocationOverrideReference(variableId) {
|
|
26
|
+
if (typeof variableId !== 'number') {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
return `globalThis["__bubbleInvocationDependencyGraphs"]?.[${INVOCATION_KEY_EXPR}]?.[${JSON.stringify(String(variableId))}]`;
|
|
30
|
+
}
|
|
31
|
+
function buildDependencyGraphExpression(dependencyGraphLiteral, overrideRef) {
|
|
32
|
+
if (overrideRef) {
|
|
33
|
+
return `${overrideRef} ?? ${dependencyGraphLiteral}`;
|
|
34
|
+
}
|
|
35
|
+
return dependencyGraphLiteral;
|
|
36
|
+
}
|
|
4
37
|
export function buildParametersObject(parameters, variableId, includeLoggerConfig = true, dependencyGraphLiteral, currentUniqueId = '') {
|
|
5
38
|
if (!parameters || parameters.length === 0) {
|
|
6
39
|
return '{}';
|
|
7
40
|
}
|
|
41
|
+
const dependencyGraphLiteralSafe = dependencyGraphLiteral && dependencyGraphLiteral.length > 0
|
|
42
|
+
? dependencyGraphLiteral
|
|
43
|
+
: undefined;
|
|
44
|
+
const invocationOverrideRef = buildInvocationOverrideReference(variableId);
|
|
45
|
+
const dependencyGraphExpr = dependencyGraphLiteralSafe !== undefined
|
|
46
|
+
? buildDependencyGraphExpression(dependencyGraphLiteralSafe, invocationOverrideRef)
|
|
47
|
+
: (invocationOverrideRef ?? undefined);
|
|
48
|
+
const currentUniqueIdLiteral = JSON.stringify(currentUniqueId);
|
|
49
|
+
const currentUniqueIdExpr = invocationOverrideRef !== undefined
|
|
50
|
+
? `${invocationOverrideRef}?.uniqueId ?? ${currentUniqueIdLiteral}`
|
|
51
|
+
: currentUniqueIdLiteral;
|
|
8
52
|
// Handle single variable parameter case (e.g., new GoogleDriveBubble(params))
|
|
9
53
|
if (parameters.length === 1 && parameters[0].type === 'variable') {
|
|
10
54
|
const paramValue = formatParameterValue(parameters[0].value, parameters[0].type);
|
|
11
55
|
if (includeLoggerConfig) {
|
|
12
|
-
const
|
|
13
|
-
?
|
|
56
|
+
const variableIdExpr = typeof variableId === 'number'
|
|
57
|
+
? `(__bubbleFlowSelf?.__computeInvocationVariableId?.(${variableId}) ?? ${variableId})`
|
|
58
|
+
: 'undefined';
|
|
59
|
+
const depGraphPart = dependencyGraphExpr !== undefined
|
|
60
|
+
? `, dependencyGraph: ${dependencyGraphExpr}`
|
|
14
61
|
: '';
|
|
15
|
-
const currentIdPart = `, currentUniqueId: ${
|
|
16
|
-
|
|
62
|
+
const currentIdPart = `, currentUniqueId: ${currentUniqueIdExpr}`;
|
|
63
|
+
const invocationKeyPart = ', invocationCallSiteKey: __bubbleFlowSelf?.__getInvocationCallSiteKey?.()';
|
|
64
|
+
return `${paramValue}, {logger: __bubbleFlowSelf.logger, variableId: ${variableIdExpr}${depGraphPart}${currentIdPart}${invocationKeyPart}}`;
|
|
17
65
|
}
|
|
18
66
|
return paramValue;
|
|
19
67
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
68
|
+
const nonCredentialParams = parameters.filter((p) => p.name !== 'credentials');
|
|
69
|
+
const credentialsParam = parameters.find((p) => p.name === 'credentials' && p.type === 'object');
|
|
70
|
+
// Separate spreads from regular properties
|
|
71
|
+
const spreadParams = nonCredentialParams.filter((p) => p.source === 'spread');
|
|
72
|
+
const regularParams = nonCredentialParams.filter((p) => p.source !== 'spread');
|
|
73
|
+
// Handle single variable parameter + credentials case (existing logic)
|
|
74
|
+
if (credentialsParam &&
|
|
75
|
+
nonCredentialParams.length === 1 &&
|
|
76
|
+
nonCredentialParams[0].type === 'variable') {
|
|
77
|
+
const paramsParam = nonCredentialParams[0];
|
|
78
|
+
// Only spread if the parameter source is 'first-arg' (represents entire first argument),
|
|
79
|
+
// or if source is undefined (backward compatibility) and name is 'arg0' (parser's fallback).
|
|
80
|
+
const shouldSpread = paramsParam.source === 'first-arg' ||
|
|
81
|
+
(paramsParam.source === undefined && paramsParam.name === 'arg0');
|
|
82
|
+
if (shouldSpread) {
|
|
27
83
|
const paramsValue = formatParameterValue(paramsParam.value, paramsParam.type);
|
|
28
84
|
const credentialsValue = formatParameterValue(credentialsParam.value, credentialsParam.type);
|
|
29
85
|
if (includeLoggerConfig) {
|
|
30
|
-
const
|
|
31
|
-
?
|
|
86
|
+
const variableIdExpr = typeof variableId === 'number'
|
|
87
|
+
? `(__bubbleFlowSelf?.__computeInvocationVariableId?.(${variableId}) ?? ${variableId})`
|
|
88
|
+
: 'undefined';
|
|
89
|
+
const depGraphPart = dependencyGraphExpr !== undefined
|
|
90
|
+
? `, dependencyGraph: ${dependencyGraphExpr}`
|
|
32
91
|
: '';
|
|
33
|
-
const currentIdPart = `, currentUniqueId: ${
|
|
34
|
-
|
|
92
|
+
const currentIdPart = `, currentUniqueId: ${currentUniqueIdExpr}`;
|
|
93
|
+
const invocationKeyPart = ', invocationCallSiteKey: __bubbleFlowSelf?.__getInvocationCallSiteKey?.()';
|
|
94
|
+
return `{...${paramsValue}, credentials: ${credentialsValue}}, {logger: __bubbleFlowSelf.logger, variableId: ${variableIdExpr}${depGraphPart}${currentIdPart}${invocationKeyPart}}`;
|
|
35
95
|
}
|
|
36
96
|
return `{...${paramsValue}, credentials: ${credentialsValue}}`;
|
|
37
97
|
}
|
|
38
98
|
}
|
|
39
|
-
|
|
99
|
+
// Build parameter entries: regular properties first, then spreads
|
|
100
|
+
const regularEntries = regularParams.map((param) => {
|
|
40
101
|
const value = formatParameterValue(param.value, param.type);
|
|
41
102
|
return `${param.name}: ${value}`;
|
|
42
103
|
});
|
|
43
|
-
const
|
|
104
|
+
const spreadEntries = spreadParams.map((param) => {
|
|
105
|
+
const value = formatParameterValue(param.value, param.type);
|
|
106
|
+
return `...${value}`;
|
|
107
|
+
});
|
|
108
|
+
// Combine all entries: regular properties, spreads, then credentials
|
|
109
|
+
const allEntries = [...regularEntries, ...spreadEntries];
|
|
110
|
+
if (credentialsParam) {
|
|
111
|
+
const credentialsValue = formatParameterValue(credentialsParam.value, credentialsParam.type);
|
|
112
|
+
allEntries.push(`credentials: ${credentialsValue}`);
|
|
113
|
+
}
|
|
114
|
+
const paramsString = `{\n ${allEntries.join(',\n ')}\n }`;
|
|
44
115
|
// Only add the logger configuration if explicitly requested
|
|
45
116
|
if (includeLoggerConfig) {
|
|
46
|
-
const
|
|
47
|
-
?
|
|
117
|
+
const variableIdExpr = typeof variableId === 'number'
|
|
118
|
+
? `(__bubbleFlowSelf?.__computeInvocationVariableId?.(${variableId}) ?? ${variableId})`
|
|
119
|
+
: 'undefined';
|
|
120
|
+
const depGraphPart = dependencyGraphExpr !== undefined
|
|
121
|
+
? `, dependencyGraph: ${dependencyGraphExpr}`
|
|
48
122
|
: '';
|
|
49
|
-
const currentIdPart = `, currentUniqueId: ${
|
|
50
|
-
|
|
123
|
+
const currentIdPart = `, currentUniqueId: ${currentUniqueIdExpr}`;
|
|
124
|
+
const invocationKeyPart = ', invocationCallSiteKey: __bubbleFlowSelf?.__getInvocationCallSiteKey?.()';
|
|
125
|
+
return `${paramsString}, {logger: __bubbleFlowSelf.logger, variableId: ${variableIdExpr}${depGraphPart}${currentIdPart}${invocationKeyPart}}`;
|
|
51
126
|
}
|
|
52
127
|
return paramsString;
|
|
53
128
|
}
|
|
@@ -62,12 +137,8 @@ export function formatParameterValue(value, type) {
|
|
|
62
137
|
if (stringValue.startsWith('`') && stringValue.endsWith('`')) {
|
|
63
138
|
return stringValue;
|
|
64
139
|
}
|
|
65
|
-
//
|
|
66
|
-
|
|
67
|
-
(stringValue.startsWith('"') && stringValue.endsWith('"'))) {
|
|
68
|
-
return stringValue;
|
|
69
|
-
}
|
|
70
|
-
// Escape single quotes and return single-quoted string
|
|
140
|
+
// Always properly quote strings, regardless of input format
|
|
141
|
+
// This ensures consistent quoting that survives condensation
|
|
71
142
|
const escapedValue = stringValue.replace(/'/g, "\\'");
|
|
72
143
|
return `'${escapedValue}'`;
|
|
73
144
|
}
|
|
@@ -79,6 +150,10 @@ export function formatParameterValue(value, type) {
|
|
|
79
150
|
// If caller provided a source literal string, keep it as code
|
|
80
151
|
if (typeof value === 'string') {
|
|
81
152
|
const trimmed = value.trim();
|
|
153
|
+
// Preserve source code if it contains function literals
|
|
154
|
+
if (containsFunctionLiteral(trimmed)) {
|
|
155
|
+
return value;
|
|
156
|
+
}
|
|
82
157
|
if ((trimmed.startsWith('{') && trimmed.endsWith('}')) ||
|
|
83
158
|
trimmed.startsWith('new ')) {
|
|
84
159
|
return value;
|
|
@@ -88,6 +163,10 @@ export function formatParameterValue(value, type) {
|
|
|
88
163
|
case 'array':
|
|
89
164
|
if (typeof value === 'string') {
|
|
90
165
|
const trimmed = value.trim();
|
|
166
|
+
// Preserve source code if it contains function literals
|
|
167
|
+
if (containsFunctionLiteral(trimmed)) {
|
|
168
|
+
return value;
|
|
169
|
+
}
|
|
91
170
|
if (trimmed.startsWith('[') && trimmed.endsWith(']')) {
|
|
92
171
|
return value;
|
|
93
172
|
}
|
|
@@ -254,29 +333,73 @@ function stripCommentsOutsideStrings(input) {
|
|
|
254
333
|
}
|
|
255
334
|
return result;
|
|
256
335
|
}
|
|
336
|
+
/**
|
|
337
|
+
* Condense a parameters string to a single line.
|
|
338
|
+
* Used when parameters don't contain function literals.
|
|
339
|
+
*/
|
|
340
|
+
export function condenseToSingleLine(input) {
|
|
341
|
+
return input
|
|
342
|
+
.replace(/\s*\n\s*/g, ' ')
|
|
343
|
+
.replace(/\s{2,}/g, ' ')
|
|
344
|
+
.replace(/\{\s+/g, '{ ')
|
|
345
|
+
.replace(/\s+\}/g, ' }')
|
|
346
|
+
.replace(/\s*,\s*/g, ', ')
|
|
347
|
+
.trim();
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Replace lines in an array, handling both single-line and multi-line replacements.
|
|
351
|
+
* Returns the number of lines that were effectively added or removed.
|
|
352
|
+
*/
|
|
353
|
+
function replaceLines(lines, startIndex, deleteCount, replacement) {
|
|
354
|
+
const replacementLines = replacement.split('\n');
|
|
355
|
+
const isMultiLine = replacementLines.length > 1;
|
|
356
|
+
if (isMultiLine) {
|
|
357
|
+
// Multi-line replacement: replace first line, delete old lines, insert remaining
|
|
358
|
+
lines[startIndex] = replacementLines[0];
|
|
359
|
+
if (deleteCount > 0) {
|
|
360
|
+
lines.splice(startIndex + 1, deleteCount);
|
|
361
|
+
}
|
|
362
|
+
if (replacementLines.length > 1) {
|
|
363
|
+
lines.splice(startIndex + 1, 0, ...replacementLines.slice(1));
|
|
364
|
+
}
|
|
365
|
+
return replacementLines.length - 1 - deleteCount;
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
// Single-line replacement
|
|
369
|
+
lines[startIndex] = replacement;
|
|
370
|
+
if (deleteCount > 0) {
|
|
371
|
+
lines.splice(startIndex + 1, deleteCount);
|
|
372
|
+
}
|
|
373
|
+
return -deleteCount;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
257
376
|
/**
|
|
258
377
|
* Replace a bubble instantiation with updated parameters
|
|
259
378
|
*
|
|
260
379
|
* This function:
|
|
261
|
-
* 1. Replaces the bubble instantiation line with
|
|
262
|
-
* 2.
|
|
263
|
-
* 3.
|
|
380
|
+
* 1. Replaces the bubble instantiation line with updated parameters
|
|
381
|
+
* 2. Preserves multi-line structure when function literals are present
|
|
382
|
+
* 3. Condenses to single-line otherwise
|
|
383
|
+
* 4. Uses bubble.location.endLine to know exactly where to stop deleting
|
|
264
384
|
*/
|
|
265
385
|
export function replaceBubbleInstantiation(lines, bubble) {
|
|
386
|
+
if (bubble.invocationCallSiteKey) {
|
|
387
|
+
// Invocation-specific clones are logical constructs and shouldn't rewrite source
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
266
390
|
const { location, className, parameters } = bubble;
|
|
267
|
-
// Build the
|
|
391
|
+
// Build the parameters object string
|
|
268
392
|
const dependencyGraphLiteral = JSON.stringify(bubble.dependencyGraph || { name: bubble.bubbleName, dependencies: [] }).replace(/</g, '\u003c');
|
|
269
|
-
|
|
270
|
-
|
|
393
|
+
const currentUniqueIdValue = bubble.dependencyGraph?.uniqueId ?? String(bubble.variableId);
|
|
394
|
+
let parametersObject = buildParametersObject(parameters, bubble.variableId, true, dependencyGraphLiteral, currentUniqueIdValue);
|
|
395
|
+
// Remove JS/TS comments that would otherwise break formatting
|
|
271
396
|
parametersObject = stripCommentsOutsideStrings(parametersObject);
|
|
272
|
-
//
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
.replace(/\s*,\s*/g, ', ')
|
|
279
|
-
.trim();
|
|
397
|
+
// Check if parameters contain function literals before condensing
|
|
398
|
+
// Function literals cannot be safely condensed to single-line
|
|
399
|
+
const hasFunctions = containsFunctionLiteral(parametersObject);
|
|
400
|
+
if (!hasFunctions) {
|
|
401
|
+
parametersObject = condenseToSingleLine(parametersObject);
|
|
402
|
+
}
|
|
280
403
|
const newInstantiationBase = `new ${className}(${parametersObject})`;
|
|
281
404
|
// Find the line with the bubble instantiation
|
|
282
405
|
for (let i = location.startLine - 1; i < lines.length; i++) {
|
|
@@ -290,12 +413,8 @@ export function replaceBubbleInstantiation(lines, bubble) {
|
|
|
290
413
|
const actionCall = bubble.hasActionCall ? '.action()' : '';
|
|
291
414
|
const newExpression = `${hadAwait ? 'await ' : ''}${newInstantiationBase}${actionCall}`;
|
|
292
415
|
const replacement = `${indentation}${declaration} ${variableName} = ${newExpression}`;
|
|
293
|
-
lines[i] = replacement;
|
|
294
|
-
// Delete all lines that were part of the old multi-line parameters
|
|
295
416
|
const linesToDelete = location.endLine - (i + 1);
|
|
296
|
-
|
|
297
|
-
lines.splice(i + 1, linesToDelete);
|
|
298
|
-
}
|
|
417
|
+
replaceLines(lines, i, linesToDelete, replacement);
|
|
299
418
|
}
|
|
300
419
|
// Pattern 2: Anonymous bubble (await new Bubble(...).action())
|
|
301
420
|
else if (bubble.variableName.startsWith('_anonymous_')) {
|
|
@@ -305,12 +424,8 @@ export function replaceBubbleInstantiation(lines, bubble) {
|
|
|
305
424
|
const newExpression = `${hadAwait ? 'await ' : ''}${newInstantiationBase}${actionCall}`;
|
|
306
425
|
const beforeClean = beforePattern.replace(/\bawait\s*$/, '');
|
|
307
426
|
const replacement = `${beforeClean}${newExpression}`;
|
|
308
|
-
lines[i] = replacement;
|
|
309
|
-
// Delete all lines that were part of the old multi-line parameters
|
|
310
427
|
const linesToDelete = location.endLine - (i + 1);
|
|
311
|
-
|
|
312
|
-
lines.splice(i + 1, linesToDelete);
|
|
313
|
-
}
|
|
428
|
+
replaceLines(lines, i, linesToDelete, replacement);
|
|
314
429
|
}
|
|
315
430
|
break;
|
|
316
431
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-formatter.js","sourceRoot":"","sources":["../../src/utils/parameter-formatter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parameter-formatter.js","sourceRoot":"","sources":["../../src/utils/parameter-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitizes user script code by blocking access to process.env.
|
|
3
|
+
* Transforms the code to replace process.env references with a throw statement.
|
|
4
|
+
*
|
|
5
|
+
* This prevents users from accessing sensitive environment variables
|
|
6
|
+
* without affecting the global process.env used by the API server.
|
|
7
|
+
*
|
|
8
|
+
* @param code - The code to sanitize
|
|
9
|
+
*/
|
|
10
|
+
export declare function sanitizeScript(code: string): string;
|
|
11
|
+
//# sourceMappingURL=sanitize-script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize-script.d.ts","sourceRoot":"","sources":["../../src/utils/sanitize-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0DnD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitizes user script code by blocking access to process.env.
|
|
3
|
+
* Transforms the code to replace process.env references with a throw statement.
|
|
4
|
+
*
|
|
5
|
+
* This prevents users from accessing sensitive environment variables
|
|
6
|
+
* without affecting the global process.env used by the API server.
|
|
7
|
+
*
|
|
8
|
+
* @param code - The code to sanitize
|
|
9
|
+
*/
|
|
10
|
+
export function sanitizeScript(code) {
|
|
11
|
+
// Note: The error message uses "process" + ".env" split to avoid the replacement pattern
|
|
12
|
+
// matching itself when subsequent patterns run
|
|
13
|
+
const throwError = "(() => { throw new Error('Access to process' + '.env is not allowed in bubble flows for security reasons.'); })()";
|
|
14
|
+
// Step 1: First replace process['env'] and process["env"] patterns BEFORE protecting strings
|
|
15
|
+
// This is necessary because the string protection would match "env" as a string literal
|
|
16
|
+
// e.g., process['env'].FOO, process['env']['FOO'], process["env"].BAR
|
|
17
|
+
const transformedCode = code.replace(/process\s*\[\s*['"]env['"]\s*\](\s*(\[['"`]?[^'"`\]]+['"`]?\]|\.\w+))*/g, throwError);
|
|
18
|
+
// Step 2: Use a marker-based approach to avoid replacing process.env in strings and comments
|
|
19
|
+
const PLACEHOLDER_PREFIX = '__SANITIZE_PLACEHOLDER_';
|
|
20
|
+
const placeholders = [];
|
|
21
|
+
// Temporarily replace string literals and comments with placeholders
|
|
22
|
+
// This prevents matching process.env inside strings or comments
|
|
23
|
+
const stringAndCommentPattern = /(\/\/[^\n]*|\/\*[\s\S]*?\*\/|`(?:[^`\\]|\\.)*`|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/g;
|
|
24
|
+
let protectedCode = transformedCode.replace(stringAndCommentPattern, (match) => {
|
|
25
|
+
const index = placeholders.length;
|
|
26
|
+
placeholders.push(match);
|
|
27
|
+
return `${PLACEHOLDER_PREFIX}${index}__`;
|
|
28
|
+
});
|
|
29
|
+
// Step 3: Now safely replace remaining process.env patterns (strings/comments are protected)
|
|
30
|
+
// Pattern 1: process.env.SOMETHING or process.env['SOMETHING'] or process.env["SOMETHING"]
|
|
31
|
+
protectedCode = protectedCode.replace(/process\.env\s*(\[['"`]?[^'"`\]]+['"`]?\]|\.\w+)/g, throwError);
|
|
32
|
+
// Pattern 2: Standalone process.env (without property access)
|
|
33
|
+
protectedCode = protectedCode.replace(/\bprocess\.env\b(?![.["'`\w])/g, throwError);
|
|
34
|
+
// Step 3: Restore the protected strings and comments
|
|
35
|
+
// Note: Use a function as the replacement to avoid $ being treated as a special
|
|
36
|
+
// replacement pattern character (e.g., $& inserts matched substring, $$ inserts literal $)
|
|
37
|
+
let result = protectedCode;
|
|
38
|
+
for (let i = 0; i < placeholders.length; i++) {
|
|
39
|
+
result = result.replace(`${PLACEHOLDER_PREFIX}${i}__`, () => placeholders[i]);
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=sanitize-script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize-script.js","sourceRoot":"","sources":["../../src/utils/sanitize-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,yFAAyF;IACzF,+CAA+C;IAC/C,MAAM,UAAU,GACd,mHAAmH,CAAC;IAEtH,6FAA6F;IAC7F,wFAAwF;IACxF,sEAAsE;IACtE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAClC,yEAAyE,EACzE,UAAU,CACX,CAAC;IAEF,6FAA6F;IAC7F,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;IACrD,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,qEAAqE;IACrE,gEAAgE;IAChE,MAAM,uBAAuB,GAC3B,sFAAsF,CAAC;IAEzF,IAAI,aAAa,GAAG,eAAe,CAAC,OAAO,CACzC,uBAAuB,EACvB,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;QAClC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,GAAG,kBAAkB,GAAG,KAAK,IAAI,CAAC;IAC3C,CAAC,CACF,CAAC;IAEF,6FAA6F;IAE7F,2FAA2F;IAC3F,aAAa,GAAG,aAAa,CAAC,OAAO,CACnC,mDAAmD,EACnD,UAAU,CACX,CAAC;IAEF,8DAA8D;IAC9D,aAAa,GAAG,aAAa,CAAC,OAAO,CACnC,gCAAgC,EAChC,UAAU,CACX,CAAC;IAEF,qDAAqD;IACrD,gFAAgF;IAChF,2FAA2F;IAC3F,IAAI,MAAM,GAAG,aAAa,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,GAAG,MAAM,CAAC,OAAO,CACrB,GAAG,kBAAkB,GAAG,CAAC,IAAI,EAC7B,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CACtB,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
export interface VariableTypeInfo {
|
|
2
|
+
name: string;
|
|
3
|
+
type: string;
|
|
4
|
+
line: number;
|
|
5
|
+
column: number;
|
|
6
|
+
}
|
|
1
7
|
type DiagnosticsResult = {
|
|
2
8
|
success: boolean;
|
|
3
9
|
errors?: Record<number, string>;
|
|
10
|
+
variableTypes?: VariableTypeInfo[];
|
|
4
11
|
};
|
|
5
12
|
/**
|
|
6
13
|
* Minimal warmed TypeScript checker for validating string scripts.
|
|
@@ -28,6 +35,14 @@ declare class LanguageServiceTypechecker {
|
|
|
28
35
|
prewarm(): void;
|
|
29
36
|
removeVirtualFile(fileName: string): void;
|
|
30
37
|
private createFormatHost;
|
|
38
|
+
/**
|
|
39
|
+
* Expands a type to show its full structure, not just the type name
|
|
40
|
+
*/
|
|
41
|
+
private expandTypeString;
|
|
42
|
+
/**
|
|
43
|
+
* Extracts type definitions for all variables in the source file
|
|
44
|
+
*/
|
|
45
|
+
private extractVariableTypes;
|
|
31
46
|
}
|
|
32
47
|
export declare function getWarmChecker(configPath?: string): LanguageServiceTypechecker;
|
|
33
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BubbleValidator.d.ts","sourceRoot":"","sources":["../../src/validation/BubbleValidator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BubbleValidator.d.ts","sourceRoot":"","sources":["../../src/validation/BubbleValidator.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACpC,CAAC;AAEF;;;;;GAKG;AACH,cAAM,0BAA0B;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGtB;IACJ,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+B;IAChE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA2B;IACjE,OAAO,CAAC,eAAe,CAAqB;gBAEhC,UAAU,SAAoB;IAiG1C,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,eAAe;IAIvB;;;OAGG;IACH,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,QAAQ,SAA0B,GACjC,iBAAiB;IAgDpB,OAAO,IAAI,IAAI;IAKf,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKzC,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgHxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAgH7B;AAID,wBAAgB,cAAc,CAC5B,UAAU,SAAoB,GAC7B,0BAA0B,CAe5B;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,iBAAiB,CAGnB"}
|