@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,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 depGraphPart = dependencyGraphLiteral && dependencyGraphLiteral.length > 0
13
- ? `, dependencyGraph: ${dependencyGraphLiteral}`
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: ${JSON.stringify(currentUniqueId)}`;
16
- return `${paramValue}, {logger: this.logger, variableId: ${variableId}${depGraphPart}${currentIdPart}}`;
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
- // Handle single variable parameter + credentials case (e.g., new GoogleDriveBubble(params) with injected credentials)
21
- if (parameters.length === 2 &&
22
- parameters.some((p) => p.type === 'variable') &&
23
- parameters.some((p) => p.name === 'credentials' && p.type === 'object')) {
24
- const paramsParam = parameters.find((p) => p.type === 'variable');
25
- const credentialsParam = parameters.find((p) => p.name === 'credentials' && p.type === 'object');
26
- if (paramsParam && credentialsParam) {
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 depGraphPart = dependencyGraphLiteral && dependencyGraphLiteral.length > 0
31
- ? `, dependencyGraph: ${dependencyGraphLiteral}`
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: ${JSON.stringify(currentUniqueId)}`;
34
- return `{...${paramsValue}, credentials: ${credentialsValue}}, {logger: this.logger, variableId: ${variableId}${depGraphPart}${currentIdPart}}`;
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
- const paramEntries = parameters.map((param) => {
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 paramsString = `{\n ${paramEntries.join(',\n ')}\n }`;
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 depGraphPart = dependencyGraphLiteral && dependencyGraphLiteral.length > 0
47
- ? `, dependencyGraph: ${dependencyGraphLiteral}`
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: ${JSON.stringify(currentUniqueId)}`;
50
- return `${paramsString}, {logger: this.logger, variableId: ${variableId}${depGraphPart}${currentIdPart}}`;
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
- // If already quoted, return as-is
66
- if ((stringValue.startsWith("'") && stringValue.endsWith("'")) ||
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 a single-line version
262
- * 2. Deletes all lines that were part of the original multi-line parameters
263
- * 3. Uses bubble.location.endLine to know exactly where to stop deleting
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 new single-line instantiation
391
+ // Build the parameters object string
268
392
  const dependencyGraphLiteral = JSON.stringify(bubble.dependencyGraph || { name: bubble.bubbleName, dependencies: [] }).replace(/</g, '\u003c');
269
- let parametersObject = buildParametersObject(parameters, bubble.variableId, true, dependencyGraphLiteral, String(bubble.variableId));
270
- // Remove JS/TS comments that would otherwise break single-line formatting
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
- // Condense to single line
273
- parametersObject = parametersObject
274
- .replace(/\s*\n\s*/g, ' ')
275
- .replace(/\s{2,}/g, ' ')
276
- .replace(/\{\s+/g, '{ ')
277
- .replace(/\s+\}/g, ' }')
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
- if (linesToDelete > 0) {
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
- if (linesToDelete > 0) {
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":"AAGA,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,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;IA8F1C,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,eAAe;IAIvB;;;OAGG;IACH,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,QAAQ,SAA0B,GACjC,iBAAiB;IAqCpB,OAAO,IAAI,IAAI;IAKf,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKzC,OAAO,CAAC,gBAAgB;CAQzB;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"}
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"}