@bubblelab/bubble-runtime 0.1.14 → 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 (69) hide show
  1. package/dist/extraction/BubbleParser.d.ts +186 -8
  2. package/dist/extraction/BubbleParser.d.ts.map +1 -1
  3. package/dist/extraction/BubbleParser.js +2255 -117
  4. package/dist/extraction/BubbleParser.js.map +1 -1
  5. package/dist/extraction/index.js +1 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +2 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/injection/BubbleInjector.d.ts +27 -1
  11. package/dist/injection/BubbleInjector.d.ts.map +1 -1
  12. package/dist/injection/BubbleInjector.js +341 -29
  13. package/dist/injection/BubbleInjector.js.map +1 -1
  14. package/dist/injection/LoggerInjector.d.ts +12 -1
  15. package/dist/injection/LoggerInjector.d.ts.map +1 -1
  16. package/dist/injection/LoggerInjector.js +301 -13
  17. package/dist/injection/LoggerInjector.js.map +1 -1
  18. package/dist/injection/index.js +1 -0
  19. package/dist/parse/BubbleScript.d.ts +46 -2
  20. package/dist/parse/BubbleScript.d.ts.map +1 -1
  21. package/dist/parse/BubbleScript.js +39 -11
  22. package/dist/parse/BubbleScript.js.map +1 -1
  23. package/dist/parse/index.d.ts +0 -1
  24. package/dist/parse/index.d.ts.map +1 -1
  25. package/dist/parse/index.js +1 -1
  26. package/dist/parse/index.js.map +1 -1
  27. package/dist/runtime/BubbleRunner.d.ts +8 -2
  28. package/dist/runtime/BubbleRunner.d.ts.map +1 -1
  29. package/dist/runtime/BubbleRunner.js +40 -18
  30. package/dist/runtime/BubbleRunner.js.map +1 -1
  31. package/dist/runtime/index.d.ts +1 -1
  32. package/dist/runtime/index.d.ts.map +1 -1
  33. package/dist/runtime/index.js +1 -0
  34. package/dist/runtime/index.js.map +1 -1
  35. package/dist/runtime/types.js +1 -0
  36. package/dist/types/index.js +1 -0
  37. package/dist/utils/bubble-helper.d.ts +2 -2
  38. package/dist/utils/bubble-helper.d.ts.map +1 -1
  39. package/dist/utils/bubble-helper.js +6 -1
  40. package/dist/utils/bubble-helper.js.map +1 -1
  41. package/dist/utils/normalize-control-flow.d.ts +14 -0
  42. package/dist/utils/normalize-control-flow.d.ts.map +1 -0
  43. package/dist/utils/normalize-control-flow.js +179 -0
  44. package/dist/utils/normalize-control-flow.js.map +1 -0
  45. package/dist/utils/parameter-formatter.d.ts +14 -5
  46. package/dist/utils/parameter-formatter.d.ts.map +1 -1
  47. package/dist/utils/parameter-formatter.js +164 -45
  48. package/dist/utils/parameter-formatter.js.map +1 -1
  49. package/dist/utils/sanitize-script.d.ts +11 -0
  50. package/dist/utils/sanitize-script.d.ts.map +1 -0
  51. package/dist/utils/sanitize-script.js +43 -0
  52. package/dist/utils/sanitize-script.js.map +1 -0
  53. package/dist/validation/BubbleValidator.d.ts +15 -0
  54. package/dist/validation/BubbleValidator.d.ts.map +1 -1
  55. package/dist/validation/BubbleValidator.js +168 -1
  56. package/dist/validation/BubbleValidator.js.map +1 -1
  57. package/dist/validation/index.d.ts +6 -3
  58. package/dist/validation/index.d.ts.map +1 -1
  59. package/dist/validation/index.js +32 -9
  60. package/dist/validation/index.js.map +1 -1
  61. package/dist/validation/lint-rules.d.ts +91 -0
  62. package/dist/validation/lint-rules.d.ts.map +1 -0
  63. package/dist/validation/lint-rules.js +755 -0
  64. package/dist/validation/lint-rules.js.map +1 -0
  65. package/package.json +4 -4
  66. package/dist/parse/traceDependencies.d.ts +0 -18
  67. package/dist/parse/traceDependencies.d.ts.map +0 -1
  68. package/dist/parse/traceDependencies.js +0 -195
  69. 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
@@ -115,7 +116,7 @@ class LanguageServiceTypechecker {
115
116
  const line = lc.line + 1; // 1-based line numbers
116
117
  const message = ts.flattenDiagnosticMessageText(d.messageText, ts.sys.newLine);
117
118
  const code = d.code ? `TS${d.code}: ` : '';
118
- const entry = `${code}${message}`;
119
+ const entry = `${code}${enhanceErrorMessage(message)}`;
119
120
  if (lineErrors[line]) {
120
121
  lineErrors[line] = `${lineErrors[line]}\n${entry}`;
121
122
  }
@@ -123,9 +124,19 @@ class LanguageServiceTypechecker {
123
124
  lineErrors[line] = entry;
124
125
  }
125
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
+ }
126
136
  return {
127
137
  success: all.length === 0,
128
138
  errors: Object.keys(lineErrors).length ? lineErrors : undefined,
139
+ variableTypes,
129
140
  };
130
141
  }
131
142
  // Warm the service by building a Program once. Speeds up first query.
@@ -144,6 +155,162 @@ class LanguageServiceTypechecker {
144
155
  getNewLine: () => ts.sys.newLine,
145
156
  };
146
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
+ }
147
314
  }
148
315
  // Pool warm services by tsconfig path for server reuse
149
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":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAehE;;;;;GAKG;AACH,MAAM,0BAA0B;IACb,UAAU,CAAS;IACnB,OAAO,CAAqB;IAC5B,gBAAgB,CAAqB;IACrC,eAAe,CAAW;IAC1B,SAAS,GAAG,IAAI,GAAG,EAGjC,CAAC;IACa,gBAAgB,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC;IAC/C,qBAAqB,CAA2B;IACzD,eAAe,CAAqB;IAE5C,YAAY,UAAU,GAAG,iBAAiB;QACxC,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YACpD,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,UAAU,CAAC,CAAC;QAExD,MAAM,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC,kBAAkB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,EAAE,CAAC,oCAAoC,CACrD,CAAC,UAAU,CAAC,KAAK,CAAC,EAClB,IAAI,CAAC,gBAAgB,EAAE,CACxB,CAAC;YACF,MAAM,IAAI,KAAK,CACb,8BAA8B,kBAAkB,MAAM,OAAO,EAAE,CAChE,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,EAAE,CAAC,0BAA0B,CAC1C,UAAU,CAAC,MAAM,EACjB,EAAE,CAAC,GAAG,EACN,UAAU,CACX,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,yEAAyE;QACzE,IAAI,CAAC,gBAAgB,GAAG;YACtB,GAAG,IAAI,CAAC,OAAO;YACf,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,SAAS;YAC1B,WAAW,EAAE,KAAK;YAClB,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,KAAK;SACjB,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,2BAA2B,CACzD,IAAI,CAAC,UAAU,EACf,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EACR,IAAI,CAAC,gBAAgB,CACtB,CAAC;QAEF,wEAAwE;QACxE,MAAM,IAAI,GAA2B;YACnC,sBAAsB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB;YACnD,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;YAC1C,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC/D,kBAAkB,EAAE,GAAG,EAAE,CAAC;gBACxB,GAAG,IAAI,CAAC,eAAe;gBACvB,GAAG,IAAI,CAAC,eAAe,EAAE;aAC1B;YACD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG;YACzE,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC/C,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACzC,IAAI,IAAI,KAAK,SAAS;oBAAE,OAAO,SAAS,CAAC;gBACzC,OAAO,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;YACD,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU;YAC7B,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ;YACzB,aAAa,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa;YACnC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe;YACvC,cAAc,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc;YACrC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ;YACzB,yBAAyB,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,yBAAyB;YACjE,0CAA0C;YAC1C,yBAAyB,EAAE,CACzB,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,EAAE;gBACF,MAAM,OAAO,GACX,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACpB,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAC9B,CAAC,CAAC,IAAI,EACN,cAAc,EACd,OAAO,EACP,EAAE,CAAC,GAAG,EACN,IAAI,CAAC,qBAAqB,EAC1B,mBAAmB,CACpB,CAAC;oBACF,OAAO,GAAG,CAAC;gBACb,CAAC,CAAC,CAAC;gBACL,OAAO,OAAkE,CAAC;YAC5E,CAAC;SACF,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,qBAAqB,CAC7C,IAAI,EACJ,IAAI,CAAC,gBAAgB,CACtB,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,QAAgB;QAChC,oEAAoE;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;YAClC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;gBACrC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;gBACtB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACpD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QACpB,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACjC,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjC,OAAO,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,CAAC;IAEO,eAAe;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,SAAS,CACP,IAAY,EACZ,QAAQ,GAAG,uBAAuB;QAElC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAExD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACzE,iFAAiF;QACjF,MAAM,GAAG,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,kCAAkC;QAE1G,0DAA0D;QAC1D,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;gBAAE,SAAS;YAC/C,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,uBAAuB;YACjD,MAAM,OAAO,GAAG,EAAE,CAAC,4BAA4B,CAC7C,CAAC,CAAC,WAAW,EACb,EAAE,CAAC,GAAG,CAAC,OAAO,CACf,CAAC;YACF,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,GAAG,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,IAAI,aAA6C,CAAC;QAClD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAClD,MAAM,UAAU,GAAG,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;gBAC1B,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC;YACzB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC/D,aAAa;SACd,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,OAAO;QACL,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAED,6CAA6C;IAC7C,iBAAiB,CAAC,QAAgB;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAEO,gBAAgB;QACtB,OAAO;YACL,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;YAC1C,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAC1B,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YACxD,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO;SACjC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,IAAa,EACb,WAA2B,EAC3B,UAAyB,EACzB,UAAwB,IAAI,GAAG,EAAE;QAEjC,6BAA6B;QAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElB,2BAA2B;QAC3B,MAAM,cAAc,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAEtD,uDAAuD;QACvD,IAAI,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,MAAM,EAAE,CAAC;gBACX,gEAAgE;gBAChE,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC9C,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5C,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAEpC,oDAAoD;oBACpD,IAAI,EAAE,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC3C,MAAM,WAAW,GAAG,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBACpE,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;4BACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CACpC,WAAW,EACX,WAAW,EACX,UAAU,EACV,OAAO,CACR,CAAC;4BACF,wDAAwD;4BACxD,IACE,QAAQ,KAAK,cAAc;gCAC3B,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,EACvC,CAAC;gCACD,OAAO,QAAQ,CAAC;4BAClB,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,8DAA8D;YAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,2DAA2D;gBAC3D,yDAAyD;gBACzD,IACE,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC7B,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC7B,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC7B,CAAC;oBACD,gEAAgE;oBAChE,MAAM,aAAa,GAAa,EAAE,CAAC;oBAEnC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;wBAC3C,8CAA8C;wBAC9C,MAAM,eAAe,GACnB,IAAI,CAAC,gBAAgB;4BACrB,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC3B,UAAU,CAAC;wBACb,MAAM,QAAQ,GAAG,WAAW,CAAC,yBAAyB,CACpD,IAAI,EACJ,eAAe,CAChB,CAAC;wBACF,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAC1C,QAAQ,EACR,WAAW,EACX,UAAU,EACV,IAAI,GAAG,CAAC,OAAO,CAAC,CACjB,CAAC;wBACF,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvD,aAAa,CAAC,IAAI,CAChB,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,KAAK,cAAc,EAAE,CAClD,CAAC;oBACJ,CAAC;oBAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,MAAM,SAAS,GACb,UAAU,CAAC,MAAM,GAAG,EAAE;4BACpB,CAAC,CAAC,OAAO,UAAU,CAAC,MAAM,GAAG,EAAE,OAAO;4BACtC,CAAC,CAAC,EAAE,CAAC;wBACT,OAAO,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;oBAC/E,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CACpE,CAAC;YACF,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,6CAA6C;QAC7C,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7C,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CACpE,CAAC;YACF,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,UAAyB,EACzB,OAAmB;QAEnB,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAuB,EAAE,CAAC;QAC7C,MAAM,gBAAgB,GAAG,CACvB,IAAa,EACb,UAAwB,IAAI,GAAG,EAAE,EACjC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAEnE,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,EAAE;YAC9B,gCAAgC;YAChC,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC/B,MAAM,IAAI,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACjD,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAE1C,2BAA2B;oBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAC3C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,6BAA6B,CAC1D,UAAU,EACV,QAAQ,CACT,CAAC;oBAEF,aAAa,CAAC,IAAI,CAAC;wBACjB,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,IAAI,GAAG,CAAC;wBACd,MAAM,EAAE,SAAS,GAAG,CAAC;qBACtB,CAAC,CAAC;gBACL,CAAC;qBAAM,IACL,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC;oBAC/B,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAC9B,CAAC;oBACD,mFAAmF;oBACnF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAChC,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;4BACjD,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gCAClC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gCACvC,MAAM,IAAI,GAAG,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gCACpD,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;gCAE1C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gCACnD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,6BAA6B,CAC1D,UAAU,EACV,QAAQ,CACT,CAAC;gCAEF,aAAa,CAAC,IAAI,CAAC;oCACjB,IAAI,EAAE,YAAY;oCAClB,IAAI,EAAE,UAAU;oCAChB,IAAI,EAAE,IAAI,GAAG,CAAC;oCACd,MAAM,EAAE,SAAS,GAAG,CAAC;iCACtB,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,8BAA8B;YAC9B,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrC,MAAM,IAAI,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAChD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,6BAA6B,CAC1D,UAAU,EACV,QAAQ,CACT,CAAC;gBAEF,aAAa,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,IAAI,GAAG,CAAC;oBACd,MAAM,EAAE,SAAS,GAAG,CAAC;iBACtB,CAAC,CAAC;YACL,CAAC;YAED,2BAA2B;YAC3B,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChD,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpC,MAAM,IAAI,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACjD,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBAChD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,6BAA6B,CAC1D,UAAU,EACV,QAAQ,CACT,CAAC;oBAEF,aAAa,CAAC,IAAI,CAAC;wBACjB,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,IAAI,GAAG,CAAC;wBACd,MAAM,EAAE,SAAS,GAAG,CAAC;qBACtB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEF,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,OAAO,aAAa,CAAC;IACvB,CAAC;CACF;AAED,uDAAuD;AACvD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsC,CAAC;AAClE,MAAM,UAAU,cAAc,CAC5B,UAAU,GAAG,iBAAiB;IAE9B,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAC1C,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,yBAAyB;QAC1C,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,IAAI,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACnD,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,OAAoD;IAEpD,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAChD,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,IAAI,mBAAmB,CAAC,CAAC;AACvE,CAAC"}
@@ -1,11 +1,14 @@
1
- import type { ParsedBubbleWithInfo, CredentialType, BubbleTrigger } 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>;
10
13
  trigger?: BubbleTrigger;
11
14
  requiredCredentials?: Record<string, CredentialType[]>;
@@ -17,7 +20,7 @@ export interface ValidationAndExtractionResult extends ValidationResult {
17
20
  * @param code - The TypeScript code to validate
18
21
  * @returns ValidationResult with success status and errors
19
22
  */
20
- export declare function validateBubbleFlow(code: string): Promise<ValidationResult>;
23
+ export declare function validateBubbleFlow(code: string, requireLintErrors?: boolean): Promise<ValidationResult>;
21
24
  /**
22
25
  * Validates a BubbleFlow TypeScript code and extracts bubble parameters
23
26
  * This is the main entry point for bubble runtime validation with extraction
@@ -25,5 +28,5 @@ export declare function validateBubbleFlow(code: string): Promise<ValidationResu
25
28
  * @param code - The TypeScript code to validate
26
29
  * @returns ValidationAndExtractionResult with success status, errors, and extracted parameters
27
30
  */
28
- export declare function validateAndExtract(code: string, bubbleFactory: BubbleFactory): Promise<ValidationAndExtractionResult>;
31
+ export declare function validateAndExtract(code: string, bubbleFactory: BubbleFactory, requireLintErrors?: boolean): Promise<ValidationAndExtractionResult>;
29
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,EACd,aAAa,EACd,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,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,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,GACX,OAAO,CAAC,gBAAgB,CAAC,CAqC3B;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,6BAA6B,CAAC,CAsDxC"}
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"}
@@ -2,6 +2,8 @@ import { validateScript } from './BubbleValidator.js';
2
2
  import { BubbleScript } from '../parse/BubbleScript.js';
3
3
  import { BubbleInjector } from '../injection/BubbleInjector.js';
4
4
  import { validateCronExpression } from '@bubblelab/shared-schemas';
5
+ import { defaultLintRuleRegistry } from './lint-rules.js';
6
+ import ts from 'typescript';
5
7
  /**
6
8
  * Validates a BubbleFlow TypeScript code
7
9
  * This focuses purely on validation without extraction
@@ -9,25 +11,44 @@ import { validateCronExpression } from '@bubblelab/shared-schemas';
9
11
  * @param code - The TypeScript code to validate
10
12
  * @returns ValidationResult with success status and errors
11
13
  */
12
- export async function validateBubbleFlow(code) {
13
- const errors = [];
14
+ export async function validateBubbleFlow(code, requireLintErrors = true) {
15
+ const syntaxErrors = [];
16
+ const lintErrors = [];
14
17
  try {
15
18
  // Step 1: Basic syntax and structure validation
16
19
  const validationResult = validateScript(code);
17
20
  if (!validationResult.success) {
18
21
  if (validationResult.errors) {
19
- errors.push(...Object.entries(validationResult.errors).map(([lineNumber, errorMessage]) => `line ${lineNumber}: ${errorMessage}`));
22
+ const scriptErrors = Object.entries(validationResult.errors).map(([lineNumber, errorMessage]) => `line ${lineNumber}: ${errorMessage}`);
23
+ syntaxErrors.push(...scriptErrors);
20
24
  }
21
25
  }
22
26
  // Step 2: Validate BubbleFlow class requirements
23
27
  const structuralErrors = validateBubbleFlowStructure(code);
24
- errors.push(...structuralErrors);
28
+ syntaxErrors.push(...structuralErrors);
25
29
  // Step 3: Validate bubble usage (only registered bubbles)
26
30
  const bubbleErrors = validateBubbleUsage(code);
27
- 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;
28
47
  return {
29
- valid: errors.length === 0,
30
- 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,
31
52
  };
32
53
  }
33
54
  catch (error) {
@@ -35,6 +56,7 @@ export async function validateBubbleFlow(code) {
35
56
  return {
36
57
  valid: false,
37
58
  errors: [errorMessage],
59
+ syntaxErrors: [errorMessage],
38
60
  };
39
61
  }
40
62
  }
@@ -45,9 +67,9 @@ export async function validateBubbleFlow(code) {
45
67
  * @param code - The TypeScript code to validate
46
68
  * @returns ValidationAndExtractionResult with success status, errors, and extracted parameters
47
69
  */
48
- export async function validateAndExtract(code, bubbleFactory) {
70
+ export async function validateAndExtract(code, bubbleFactory, requireLintErrors = true) {
49
71
  // First validate the code
50
- const validationResult = await validateBubbleFlow(code);
72
+ const validationResult = await validateBubbleFlow(code, requireLintErrors);
51
73
  // If validation fails, return early
52
74
  if (!validationResult.valid) {
53
75
  return validationResult;
@@ -77,6 +99,7 @@ export async function validateAndExtract(code, bubbleFactory) {
77
99
  return {
78
100
  ...validationResult,
79
101
  bubbleParameters,
102
+ workflow: script.getWorkflow(),
80
103
  inputSchema: script.getPayloadJsonSchema() || {},
81
104
  trigger: script.getBubbleTriggerEventType() || undefined,
82
105
  requiredCredentials: Object.keys(requiredCredentials).length > 0
@@ -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"}