@saptools/service-flow 0.1.25 → 0.1.26

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,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.26
4
+
5
+ - Resolve helper-internal remote sends contextually in trace output when service clients are passed through positional arguments or one-level destructured object parameters.
6
+ - Add auditable contextual binding evidence for propagated helper client receivers, including caller argument, caller object property, callee parameter, callee receiver, and propagation source.
7
+ - Keep nested `this.<property>.<method>()` symbol-call resolution conservative unless explicit same-file or relative-import helper instance evidence exists.
8
+ - Update strict doctor diagnostics for trace-time contextual propagation opportunities and nested `this` receiver quality signals.
9
+
3
10
  ## 0.1.25
4
11
 
5
12
  - Make class-instance symbol-call indexing conservative so only same-file and relatively imported helper classes are traced, while built-in collection, date, URL, error, typed-array, promise, and abort-controller instances are ignored.
@@ -2388,7 +2388,8 @@ function trace(db, start, options) {
2388
2388
  while (queue.length > 0) {
2389
2389
  const current = queue.shift();
2390
2390
  if (!current || current.depth > maxDepth) continue;
2391
- const key = `${current.repoId ?? "*"}:${[...current.symbolIds ?? /* @__PURE__ */ new Set(["*"])].sort().join(",")}:${[...current.files ?? /* @__PURE__ */ new Set(["*"])].sort().join(",")}`;
2391
+ const contextKey = [...(current.context ?? /* @__PURE__ */ new Map()).keys()].sort().join(",");
2392
+ const key = `${current.repoId ?? "*"}:${[...current.symbolIds ?? /* @__PURE__ */ new Set(["*"])].sort().join(",")}:${[...current.files ?? /* @__PURE__ */ new Set(["*"])].sort().join(",")}:${contextKey}`;
2392
2393
  if (seenScopes.has(key)) continue;
2393
2394
  seenScopes.add(key);
2394
2395
  const calls = db.prepare(
@@ -2428,7 +2429,7 @@ function trace(db, start, options) {
2428
2429
  line: call.source_line,
2429
2430
  callType: call.call_type
2430
2431
  });
2431
- const contextual = contextualRuntimeResolution(db, call, (current.context ?? /* @__PURE__ */ new Map()).get(receiverFromEvidence(call.evidence_json) ?? ""), workspaceIdForCall(db, String(call.id)));
2432
+ const contextual = contextualRuntimeResolution(db, call, callerBindings.get(receiverFromEvidence(call.evidence_json) ?? ""), workspaceIdForCall(db, String(call.id)));
2432
2433
  const graphRows = contextual.row ? [contextual.row] : graph.get(Number(call.id)) ?? [];
2433
2434
  for (const row of graphRows) {
2434
2435
  if (seenEdges.has(Number(row.id))) continue;
@@ -2530,4 +2531,4 @@ export {
2530
2531
  linkWorkspace,
2531
2532
  trace
2532
2533
  };
2533
- //# sourceMappingURL=chunk-HS746OHV.js.map
2534
+ //# sourceMappingURL=chunk-Q3J2QDNX.js.map