@saptools/service-flow 0.1.60 → 0.1.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.61
4
+
5
+ - Recorded public static arrow-function and function-expression properties on exported classes as exported qualified symbols, matching static method declarations and enabling unique cross-package and relative `Class.member` resolution with `local_symbol_call` trace descent.
6
+ - Kept instance properties, private/protected static properties, and members of non-exported classes fail-closed as unexported, with no schema, linker-edge, trace, CLI, or output-shape change.
7
+
3
8
  ## 0.1.60
4
9
 
5
10
  - Fixed RC-A by resolving remote `send({ query: ... })` entities from the original query initializer AST and its real lexical scope, removing the isolated text reparse that fabricated parameter, mutable-local, runtime-const, runtime-destructured, and shadowed entity names while preserving genuine static entities and top-level query aliases.
package/dist/cli.js CHANGED
@@ -237,7 +237,7 @@ function migrate(db) {
237
237
  // package.json
238
238
  var package_default = {
239
239
  name: "@saptools/service-flow",
240
- version: "0.1.60",
240
+ version: "0.1.61",
241
241
  description: "Trace SAP CAP service-to-service flows across multi-repository workspaces with runtime-aware graph resolution",
242
242
  type: "module",
243
243
  publishConfig: {
@@ -714,7 +714,13 @@ async function parseExecutableSymbols(repoPath, filePath, context) {
714
714
  if (localName) addSymbol("method", localName, node, parentClass);
715
715
  } else if (ts.isPropertyDeclaration(node) && parentClass && node.initializer && (ts.isArrowFunction(node.initializer) || ts.isFunctionExpression(node.initializer))) {
716
716
  const localName = nameOf(node.name);
717
- if (localName) addSymbol("method", localName, node.initializer, parentClass, void 0, { source: "class_property_function", memberKind: ts.isArrowFunction(node.initializer) ? "arrow_function_property" : "function_expression_property" });
717
+ if (localName) {
718
+ const flags = ts.getCombinedModifierFlags(node);
719
+ const staticPublicExported = exportedClasses.has(parentClass) && (flags & ts.ModifierFlags.Static) !== 0 && (flags & ts.ModifierFlags.Private) === 0 && (flags & ts.ModifierFlags.Protected) === 0;
720
+ const isArrow = ts.isArrowFunction(node.initializer);
721
+ const memberKind = isArrow ? staticPublicExported ? "static_arrow_function" : "arrow_function_property" : staticPublicExported ? "static_function_expression" : "function_expression_property";
722
+ addSymbol("method", localName, node.initializer, parentClass, staticPublicExported ? `${parentClass}.${localName}` : void 0, staticPublicExported ? { source: "exported_class_member", exportedClass: parentClass, memberKind } : { source: "class_property_function", memberKind });
723
+ }
718
724
  } else if (ts.isFunctionDeclaration(node) && node.name) addSymbol("function", node.name.text, node, void 0, exported(node) ? node.name.text : void 0);
719
725
  else if (ts.isVariableStatement(node)) {
720
726
  for (const d of node.declarationList.declarations) {