@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,5 +1,6 @@
1
1
  import path from 'path';
2
2
  import ts from 'typescript';
3
+ import { enhanceErrorMessage } from '@bubblelab/shared-schemas';
3
4
  /**
4
5
  * Minimal warmed TypeScript checker for validating string scripts.
5
6
  * - Uses LanguageService for fast incremental diagnostics
@@ -33,6 +34,9 @@ class LanguageServiceTypechecker {
33
34
  ...this.options,
34
35
  incremental: false,
35
36
  tsBuildInfoFile: undefined,
37
+ declaration: false,
38
+ declarationMap: false,
39
+ sourceMap: false,
36
40
  };
37
41
  this.configFileNames = parsed.fileNames;
38
42
  this.moduleResolutionCache = ts.createModuleResolutionCache(this.projectDir, (s) => s, this.sanitizedOptions);
@@ -112,7 +116,7 @@ class LanguageServiceTypechecker {
112
116
  const line = lc.line + 1; // 1-based line numbers
113
117
  const message = ts.flattenDiagnosticMessageText(d.messageText, ts.sys.newLine);
114
118
  const code = d.code ? `TS${d.code}: ` : '';
115
- const entry = `${code}${message}`;
119
+ const entry = `${code}${enhanceErrorMessage(message)}`;
116
120
  if (lineErrors[line]) {
117
121
  lineErrors[line] = `${lineErrors[line]}\n${entry}`;
118
122
  }
@@ -120,9 +124,19 @@ class LanguageServiceTypechecker {
120
124
  lineErrors[line] = entry;
121
125
  }
122
126
  }
127
+ // Extract variable types if there are errors
128
+ let variableTypes;
129
+ if (all.length > 0) {
130
+ const program = this.languageService.getProgram();
131
+ const sourceFile = program?.getSourceFile(normalized);
132
+ if (sourceFile && program) {
133
+ variableTypes = this.extractVariableTypes(sourceFile, program);
134
+ }
135
+ }
123
136
  return {
124
137
  success: all.length === 0,
125
138
  errors: Object.keys(lineErrors).length ? lineErrors : undefined,
139
+ variableTypes,
126
140
  };
127
141
  }
128
142
  // Warm the service by building a Program once. Speeds up first query.
@@ -141,6 +155,162 @@ class LanguageServiceTypechecker {
141
155
  getNewLine: () => ts.sys.newLine,
142
156
  };
143
157
  }
158
+ /**
159
+ * Expands a type to show its full structure, not just the type name
160
+ */
161
+ expandTypeString(type, typeChecker, sourceFile, visited = new Set()) {
162
+ // Prevent infinite recursion
163
+ if (visited.has(type)) {
164
+ return typeChecker.typeToString(type);
165
+ }
166
+ visited.add(type);
167
+ // Get the base type string
168
+ const baseTypeString = typeChecker.typeToString(type);
169
+ // If it's an object type, expand it to show properties
170
+ if (type.isClassOrInterface() || type.getSymbol()) {
171
+ const symbol = type.getSymbol();
172
+ if (symbol) {
173
+ // Check if it's a type alias or interface that we should expand
174
+ const declarations = symbol.getDeclarations();
175
+ if (declarations && declarations.length > 0) {
176
+ const declaration = declarations[0];
177
+ // If it's a type alias, try to get the aliased type
178
+ if (ts.isTypeAliasDeclaration(declaration)) {
179
+ const aliasedType = typeChecker.getTypeAtLocation(declaration.type);
180
+ if (aliasedType !== type) {
181
+ const expanded = this.expandTypeString(aliasedType, typeChecker, sourceFile, visited);
182
+ // Only use expanded if it's different and more detailed
183
+ if (expanded !== baseTypeString &&
184
+ expanded.length > baseTypeString.length) {
185
+ return expanded;
186
+ }
187
+ }
188
+ }
189
+ }
190
+ }
191
+ // For object types, try to get a more detailed representation
192
+ const properties = type.getProperties();
193
+ if (properties.length > 0) {
194
+ // Check if the type string is just the name (not expanded)
195
+ // If it's a simple name without braces, try to expand it
196
+ if (!baseTypeString.includes('{') &&
197
+ !baseTypeString.includes('[') &&
198
+ !baseTypeString.includes('|')) {
199
+ // Try to get the expanded type by checking the type's structure
200
+ const expandedParts = [];
201
+ for (const prop of properties.slice(0, 20)) {
202
+ // Limit to 20 properties to avoid huge output
203
+ const propDeclaration = prop.valueDeclaration ||
204
+ prop.getDeclarations()?.[0] ||
205
+ sourceFile;
206
+ const propType = typeChecker.getTypeOfSymbolAtLocation(prop, propDeclaration);
207
+ const propTypeString = this.expandTypeString(propType, typeChecker, sourceFile, new Set(visited));
208
+ const optional = prop.getFlags() & ts.SymbolFlags.Optional ? '?' : '';
209
+ expandedParts.push(`${prop.getName()}${optional}: ${propTypeString}`);
210
+ }
211
+ if (expandedParts.length > 0) {
212
+ const remaining = properties.length > 20
213
+ ? `... ${properties.length - 20} more`
214
+ : '';
215
+ return `{ ${expandedParts.join('; ')}${remaining ? `; ${remaining}` : ''} }`;
216
+ }
217
+ }
218
+ }
219
+ }
220
+ // For union types, expand each member
221
+ if (type.isUnion()) {
222
+ const unionTypes = type.types.map((t) => this.expandTypeString(t, typeChecker, sourceFile, new Set(visited)));
223
+ return unionTypes.join(' | ');
224
+ }
225
+ // For intersection types, expand each member
226
+ if (type.isIntersection()) {
227
+ const intersectionTypes = type.types.map((t) => this.expandTypeString(t, typeChecker, sourceFile, new Set(visited)));
228
+ return intersectionTypes.join(' & ');
229
+ }
230
+ return baseTypeString;
231
+ }
232
+ /**
233
+ * Extracts type definitions for all variables in the source file
234
+ */
235
+ extractVariableTypes(sourceFile, program) {
236
+ const typeChecker = program.getTypeChecker();
237
+ const variableTypes = [];
238
+ const expandTypeString = (type, visited = new Set()) => this.expandTypeString(type, typeChecker, sourceFile, visited);
239
+ const visit = (node) => {
240
+ // Extract variable declarations
241
+ if (ts.isVariableDeclaration(node)) {
242
+ const name = node.name;
243
+ if (ts.isIdentifier(name)) {
244
+ const variableName = name.text;
245
+ const type = typeChecker.getTypeAtLocation(node);
246
+ const typeString = expandTypeString(type);
247
+ // Get position information
248
+ const position = name.getStart(sourceFile);
249
+ const { line, character } = ts.getLineAndCharacterOfPosition(sourceFile, position);
250
+ variableTypes.push({
251
+ name: variableName,
252
+ type: typeString,
253
+ line: line + 1,
254
+ column: character + 1,
255
+ });
256
+ }
257
+ else if (ts.isObjectBindingPattern(name) ||
258
+ ts.isArrayBindingPattern(name)) {
259
+ // Handle destructuring patterns (e.g., const { a, b } = ... or const [a, b] = ...)
260
+ name.elements.forEach((element) => {
261
+ if (ts.isBindingElement(element) && element.name) {
262
+ if (ts.isIdentifier(element.name)) {
263
+ const variableName = element.name.text;
264
+ const type = typeChecker.getTypeAtLocation(element);
265
+ const typeString = expandTypeString(type);
266
+ const position = element.name.getStart(sourceFile);
267
+ const { line, character } = ts.getLineAndCharacterOfPosition(sourceFile, position);
268
+ variableTypes.push({
269
+ name: variableName,
270
+ type: typeString,
271
+ line: line + 1,
272
+ column: character + 1,
273
+ });
274
+ }
275
+ }
276
+ });
277
+ }
278
+ }
279
+ // Extract function parameters
280
+ if (ts.isParameter(node) && ts.isIdentifier(node.name)) {
281
+ const parameterName = node.name.text;
282
+ const type = typeChecker.getTypeAtLocation(node);
283
+ const typeString = expandTypeString(type);
284
+ const position = node.name.getStart(sourceFile);
285
+ const { line, character } = ts.getLineAndCharacterOfPosition(sourceFile, position);
286
+ variableTypes.push({
287
+ name: parameterName,
288
+ type: typeString,
289
+ line: line + 1,
290
+ column: character + 1,
291
+ });
292
+ }
293
+ // Extract class properties
294
+ if (ts.isPropertyDeclaration(node) && node.name) {
295
+ if (ts.isIdentifier(node.name)) {
296
+ const propertyName = node.name.text;
297
+ const type = typeChecker.getTypeAtLocation(node);
298
+ const typeString = expandTypeString(type);
299
+ const position = node.name.getStart(sourceFile);
300
+ const { line, character } = ts.getLineAndCharacterOfPosition(sourceFile, position);
301
+ variableTypes.push({
302
+ name: propertyName,
303
+ type: typeString,
304
+ line: line + 1,
305
+ column: character + 1,
306
+ });
307
+ }
308
+ }
309
+ ts.forEachChild(node, visit);
310
+ };
311
+ visit(sourceFile);
312
+ return variableTypes;
313
+ }
144
314
  }
145
315
  // Pool warm services by tsconfig path for server reuse
146
316
  const checkerPool = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleValidator.js","sourceRoot":"","sources":["../../src/validation/BubbleValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BubbleValidator.js","sourceRoot":"","sources":["../../src/validation/BubbleValidator.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
- import type { ParsedBubbleWithInfo, CredentialType } from '@bubblelab/shared-schemas';
1
+ import type { ParsedBubbleWithInfo, CredentialType, BubbleTrigger, ParsedWorkflow } from '@bubblelab/shared-schemas';
2
2
  import { BubbleFactory } from '@bubblelab/bubble-core';
3
3
  export interface ValidationResult {
4
4
  valid: boolean;
5
5
  errors?: string[];
6
+ syntaxErrors?: string[];
7
+ lintErrors?: string[];
6
8
  }
7
9
  export interface ValidationAndExtractionResult extends ValidationResult {
8
10
  bubbleParameters?: Record<number, ParsedBubbleWithInfo>;
11
+ workflow?: ParsedWorkflow;
9
12
  inputSchema?: Record<string, unknown>;
13
+ trigger?: BubbleTrigger;
10
14
  requiredCredentials?: Record<string, CredentialType[]>;
11
15
  }
12
16
  /**
@@ -16,7 +20,7 @@ export interface ValidationAndExtractionResult extends ValidationResult {
16
20
  * @param code - The TypeScript code to validate
17
21
  * @returns ValidationResult with success status and errors
18
22
  */
19
- export declare function validateBubbleFlow(code: string): Promise<ValidationResult>;
23
+ export declare function validateBubbleFlow(code: string, requireLintErrors?: boolean): Promise<ValidationResult>;
20
24
  /**
21
25
  * Validates a BubbleFlow TypeScript code and extracts bubble parameters
22
26
  * This is the main entry point for bubble runtime validation with extraction
@@ -24,5 +28,5 @@ export declare function validateBubbleFlow(code: string): Promise<ValidationResu
24
28
  * @param code - The TypeScript code to validate
25
29
  * @returns ValidationAndExtractionResult with success status, errors, and extracted parameters
26
30
  */
27
- export declare function validateAndExtract(code: string, bubbleFactory: BubbleFactory): Promise<ValidationAndExtractionResult>;
31
+ export declare function validateAndExtract(code: string, bubbleFactory: BubbleFactory, requireLintErrors?: boolean): Promise<ValidationAndExtractionResult>;
28
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACf,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,6BAA8B,SAAQ,gBAAgB;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;CACxD;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CA8B3B;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,6BAA6B,CAAC,CA6CxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,cAAc,EACf,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAKvD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,6BAA8B,SAAQ,gBAAgB;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACxD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;CACxD;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,iBAAiB,GAAE,OAAc,GAChC,OAAO,CAAC,gBAAgB,CAAC,CA8D3B;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,aAAa,EAC5B,iBAAiB,GAAE,OAAc,GAChC,OAAO,CAAC,6BAA6B,CAAC,CAuDxC"}
@@ -1,5 +1,9 @@
1
1
  import { validateScript } from './BubbleValidator.js';
2
2
  import { BubbleScript } from '../parse/BubbleScript.js';
3
+ import { BubbleInjector } from '../injection/BubbleInjector.js';
4
+ import { validateCronExpression } from '@bubblelab/shared-schemas';
5
+ import { defaultLintRuleRegistry } from './lint-rules.js';
6
+ import ts from 'typescript';
3
7
  /**
4
8
  * Validates a BubbleFlow TypeScript code
5
9
  * This focuses purely on validation without extraction
@@ -7,23 +11,44 @@ import { BubbleScript } from '../parse/BubbleScript.js';
7
11
  * @param code - The TypeScript code to validate
8
12
  * @returns ValidationResult with success status and errors
9
13
  */
10
- export async function validateBubbleFlow(code) {
11
- const errors = [];
14
+ export async function validateBubbleFlow(code, requireLintErrors = true) {
15
+ const syntaxErrors = [];
16
+ const lintErrors = [];
12
17
  try {
13
18
  // Step 1: Basic syntax and structure validation
14
19
  const validationResult = validateScript(code);
15
20
  if (!validationResult.success) {
16
- errors.push(...Object.values(validationResult.errors || {}));
21
+ if (validationResult.errors) {
22
+ const scriptErrors = Object.entries(validationResult.errors).map(([lineNumber, errorMessage]) => `line ${lineNumber}: ${errorMessage}`);
23
+ syntaxErrors.push(...scriptErrors);
24
+ }
17
25
  }
18
26
  // Step 2: Validate BubbleFlow class requirements
19
27
  const structuralErrors = validateBubbleFlowStructure(code);
20
- errors.push(...structuralErrors);
28
+ syntaxErrors.push(...structuralErrors);
21
29
  // Step 3: Validate bubble usage (only registered bubbles)
22
30
  const bubbleErrors = validateBubbleUsage(code);
23
- errors.push(...bubbleErrors);
31
+ syntaxErrors.push(...bubbleErrors);
32
+ // Step 4: Run lint rules
33
+ try {
34
+ const sourceFile = ts.createSourceFile('bubbleflow.ts', code, ts.ScriptTarget.Latest, true);
35
+ const lintRuleErrors = defaultLintRuleRegistry.validateAll(sourceFile);
36
+ const lintErrorMessages = lintRuleErrors.map((err) => `line ${err.line}: ${err.message}`);
37
+ lintErrors.push(...lintErrorMessages);
38
+ }
39
+ catch (error) {
40
+ // If lint rule execution fails, log but don't fail validation
41
+ console.error('Error running lint rules:', error);
42
+ }
43
+ // Combine all errors for backward compatibility
44
+ const allErrors = requireLintErrors
45
+ ? [...syntaxErrors, ...lintErrors]
46
+ : syntaxErrors;
24
47
  return {
25
- valid: errors.length === 0,
26
- errors: errors.length > 0 ? errors : undefined,
48
+ valid: allErrors.length === 0,
49
+ errors: allErrors.length > 0 ? allErrors : undefined,
50
+ syntaxErrors: syntaxErrors.length > 0 ? syntaxErrors : undefined,
51
+ lintErrors: lintErrors.length > 0 ? lintErrors : undefined,
27
52
  };
28
53
  }
29
54
  catch (error) {
@@ -31,6 +56,7 @@ export async function validateBubbleFlow(code) {
31
56
  return {
32
57
  valid: false,
33
58
  errors: [errorMessage],
59
+ syntaxErrors: [errorMessage],
34
60
  };
35
61
  }
36
62
  }
@@ -41,22 +67,29 @@ export async function validateBubbleFlow(code) {
41
67
  * @param code - The TypeScript code to validate
42
68
  * @returns ValidationAndExtractionResult with success status, errors, and extracted parameters
43
69
  */
44
- export async function validateAndExtract(code, bubbleFactory) {
70
+ export async function validateAndExtract(code, bubbleFactory, requireLintErrors = true) {
45
71
  // First validate the code
46
- const validationResult = await validateBubbleFlow(code);
72
+ const validationResult = await validateBubbleFlow(code, requireLintErrors);
47
73
  // If validation fails, return early
48
74
  if (!validationResult.valid) {
49
75
  return validationResult;
50
76
  }
51
- // If validation passes, extract bubble parameters
77
+ // After script validation passes, extract bubble parameters and validate trigger event
52
78
  try {
53
79
  const script = new BubbleScript(code, bubbleFactory);
80
+ // Step 4: Validate trigger event
81
+ const triggerEventErrors = validateTriggerEvent(script);
82
+ if (triggerEventErrors.length > 0) {
83
+ return {
84
+ valid: false,
85
+ errors: triggerEventErrors,
86
+ };
87
+ }
54
88
  const bubbleParameters = script.getParsedBubbles();
55
89
  // Extract required credentials from bubble parameters
56
90
  const requiredCredentials = {};
57
- const { BubbleInjector } = await import('../injection/BubbleInjector.js');
58
91
  const injector = new BubbleInjector(script);
59
- const credentials = injector.findCredentials(bubbleParameters);
92
+ const credentials = injector.findCredentials();
60
93
  for (const [varId, credentialTypes] of Object.entries(credentials)) {
61
94
  const bubble = bubbleParameters[Number(varId)];
62
95
  if (bubble && credentialTypes.length > 0) {
@@ -66,7 +99,9 @@ export async function validateAndExtract(code, bubbleFactory) {
66
99
  return {
67
100
  ...validationResult,
68
101
  bubbleParameters,
102
+ workflow: script.getWorkflow(),
69
103
  inputSchema: script.getPayloadJsonSchema() || {},
104
+ trigger: script.getBubbleTriggerEventType() || undefined,
70
105
  requiredCredentials: Object.keys(requiredCredentials).length > 0
71
106
  ? requiredCredentials
72
107
  : undefined,
@@ -80,6 +115,22 @@ export async function validateAndExtract(code, bubbleFactory) {
80
115
  };
81
116
  }
82
117
  }
118
+ function validateTriggerEvent(bubbleScript) {
119
+ const errors = [];
120
+ const triggerEvent = bubbleScript.getBubbleTriggerEventType();
121
+ if (!triggerEvent) {
122
+ errors.push('Missing trigger event');
123
+ }
124
+ if (triggerEvent?.type === 'schedule/cron') {
125
+ if (!triggerEvent.cronSchedule) {
126
+ errors.push("Missing cron schedule, please define it with the readonly cronSchedule property inside the BubbleFlow class. Ex. readonly cronSchedule = '0 0 * * *';");
127
+ }
128
+ if (!validateCronExpression(triggerEvent.cronSchedule).valid) {
129
+ errors.push("Invalid cron schedule, please define it with the readonly cronSchedule property inside the BubbleFlow class. Ex. readonly cronSchedule = '0 0 * * *';");
130
+ }
131
+ }
132
+ return errors;
133
+ }
83
134
  /**
84
135
  * Validates BubbleFlow class structure requirements
85
136
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import ts from 'typescript';
2
+ /**
3
+ * Represents a lint error found during validation
4
+ */
5
+ export interface LintError {
6
+ line: number;
7
+ column?: number;
8
+ message: string;
9
+ }
10
+ /**
11
+ * Context containing pre-parsed AST information for lint rules
12
+ * This allows rules to avoid redundant AST traversals
13
+ */
14
+ export interface LintRuleContext {
15
+ sourceFile: ts.SourceFile;
16
+ bubbleFlowClass: ts.ClassDeclaration | null;
17
+ handleMethod: ts.MethodDeclaration | null;
18
+ handleMethodBody: ts.Block | null;
19
+ importedBubbleClasses: Set<string>;
20
+ }
21
+ /**
22
+ * Interface for lint rules that can validate BubbleFlow code
23
+ */
24
+ export interface LintRule {
25
+ name: string;
26
+ validate(context: LintRuleContext): LintError[];
27
+ }
28
+ /**
29
+ * Registry that manages and executes all lint rules
30
+ */
31
+ export declare class LintRuleRegistry {
32
+ private rules;
33
+ /**
34
+ * Register a lint rule
35
+ */
36
+ register(rule: LintRule): void;
37
+ /**
38
+ * Execute all registered rules on the given code
39
+ * Traverses AST once and shares context with all rules for efficiency
40
+ */
41
+ validateAll(sourceFile: ts.SourceFile): LintError[];
42
+ /**
43
+ * Get all registered rule names
44
+ */
45
+ getRuleNames(): string[];
46
+ }
47
+ /**
48
+ * Lint rule that prevents throw statements directly in the handle method
49
+ */
50
+ export declare const noThrowInHandleRule: LintRule;
51
+ /**
52
+ * Lint rule that prevents direct bubble instantiation in the handle method
53
+ */
54
+ export declare const noDirectBubbleInstantiationInHandleRule: LintRule;
55
+ /**
56
+ * Lint rule that prevents credentials parameter from being used in bubble instantiations
57
+ */
58
+ export declare const noCredentialsParameterRule: LintRule;
59
+ /**
60
+ * Lint rule that prevents usage of process.env
61
+ */
62
+ export declare const noProcessEnvRule: LintRule;
63
+ /**
64
+ * Lint rule that prevents method invocations inside complex expressions
65
+ */
66
+ export declare const noMethodInvocationInComplexExpressionRule: LintRule;
67
+ /**
68
+ * Lint rule that prevents try-catch statements in the handle method
69
+ * Try-catch blocks interfere with runtime instrumentation and error handling
70
+ */
71
+ export declare const noTryCatchInHandleRule: LintRule;
72
+ /**
73
+ * Lint rule that prevents methods from calling other methods
74
+ * Methods should only be called from the handle method, not from other methods
75
+ */
76
+ export declare const noMethodCallingMethodRule: LintRule;
77
+ /**
78
+ * Lint rule that prevents usage of 'any' type
79
+ * Using 'any' bypasses TypeScript's type checking and should be avoided
80
+ */
81
+ export declare const noAnyTypeRule: LintRule;
82
+ /**
83
+ * Lint rule that prevents multiple BubbleFlow classes in a single file
84
+ * Only one class extending BubbleFlow is allowed per file for proper runtime instrumentation
85
+ */
86
+ export declare const singleBubbleFlowClassRule: LintRule;
87
+ /**
88
+ * Default registry instance with all rules registered
89
+ */
90
+ export declare const defaultLintRuleRegistry: LintRuleRegistry;
91
+ //# sourceMappingURL=lint-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-rules.d.ts","sourceRoot":"","sources":["../../src/validation/lint-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC;IAC1B,eAAe,EAAE,EAAE,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC5C,YAAY,EAAE,EAAE,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC1C,gBAAgB,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;IAClC,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,EAAE,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAkB;IAE/B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAI9B;;;OAGG;IACH,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,SAAS,EAAE;IAiBnD;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;CAGzB;AAgGD;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAoBjC,CAAC;AAwDF;;GAEG;AACH,eAAO,MAAM,uCAAuC,EAAE,QAsBrD,CAAC;AAmPF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAmCxC,CAAC;AA+DF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAsC9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yCAAyC,EAAE,QA0CvD,CAAC;AAwGF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,QA+BpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,QAuCvC,CAAC;AAsCF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,QA0B3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,QA+CvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,kBAAyB,CAAC"}