@mcp-abap-adt/core 2.0.1 → 2.0.2

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
@@ -2,6 +2,13 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [2.0.2] - 2025-12-30
6
+ ### Changed
7
+ - **GetWhereUsed handler**: Now uses `getWhereUsedList()` from adt-clients and returns parsed JSON with structured references instead of raw XML
8
+
9
+ ### Fixed
10
+ - **Release workflow**: Simplified to use npm registry instead of uploading tgz artifacts
11
+
5
12
  ## [2.0.1] - 2025-12-30
6
13
  ### Documentation
7
14
  - Added glama.ai badge with security/license/quality grades
@@ -1,12 +1,12 @@
1
1
  /**
2
2
  * WhereUsed handler using AdtClient utilities
3
3
  * Endpoint: /sap/bc/adt/repository/informationsystem/usageReferences
4
- * Uses two-step workflow matching Eclipse ADT behavior
4
+ * Uses getWhereUsedList for parsed results
5
5
  */
6
6
  import type { HandlerContext } from '../../../lib/handlers/interfaces';
7
7
  export declare const TOOL_DEFINITION: {
8
8
  readonly name: "GetWhereUsed";
9
- readonly description: "[read-only] Retrieve where-used references for ABAP objects via ADT usageReferences. Uses Eclipse ADT-compatible two-step workflow with optional scope customization.";
9
+ readonly description: "[read-only] Retrieve where-used references for ABAP objects via ADT usageReferences. Returns parsed list of referencing objects with their types and packages.";
10
10
  readonly inputSchema: {
11
11
  readonly type: "object";
12
12
  readonly properties: {
@@ -34,10 +34,7 @@ interface WhereUsedArgs {
34
34
  }
35
35
  /**
36
36
  * Returns where-used references for ABAP objects using AdtClient utilities.
37
- *
38
- * Two-step workflow:
39
- * 1. Fetch scope configuration (if enable_all_types is true)
40
- * 2. Execute where-used search with scope
37
+ * Uses getWhereUsedList for parsed structured results.
41
38
  */
42
39
  export declare function handleGetWhereUsed(context: HandlerContext, args: WhereUsedArgs): Promise<{
43
40
  isError: boolean;
@@ -48,7 +45,15 @@ export declare function handleGetWhereUsed(context: HandlerContext, args: WhereU
48
45
  object_type: string;
49
46
  enable_all_types: boolean;
50
47
  total_references: number;
51
- raw_xml: any;
48
+ result_description: string;
49
+ references: {
50
+ name: string;
51
+ type: string;
52
+ uri: string;
53
+ package_name: string | undefined;
54
+ responsible: string | undefined;
55
+ usage_information: string | undefined;
56
+ }[];
52
57
  };
53
58
  }[];
54
59
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"handleGetWhereUsed.d.ts","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleGetWhereUsed.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;CAyBlB,CAAC;AAEX,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,aAAa;;;;;;;;;;;;;;;;;;GAyFpB"}
1
+ {"version":3,"file":"handleGetWhereUsed.d.ts","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleGetWhereUsed.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;CAyBlB,CAAC;AAEX,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEpB"}
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * WhereUsed handler using AdtClient utilities
4
4
  * Endpoint: /sap/bc/adt/repository/informationsystem/usageReferences
5
- * Uses two-step workflow matching Eclipse ADT behavior
5
+ * Uses getWhereUsedList for parsed results
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.TOOL_DEFINITION = void 0;
@@ -12,7 +12,7 @@ const getObjectsListCache_1 = require("../../../lib/getObjectsListCache");
12
12
  const utils_1 = require("../../../lib/utils");
13
13
  exports.TOOL_DEFINITION = {
14
14
  name: 'GetWhereUsed',
15
- description: '[read-only] Retrieve where-used references for ABAP objects via ADT usageReferences. Uses Eclipse ADT-compatible two-step workflow with optional scope customization.',
15
+ description: '[read-only] Retrieve where-used references for ABAP objects via ADT usageReferences. Returns parsed list of referencing objects with their types and packages.',
16
16
  inputSchema: {
17
17
  type: 'object',
18
18
  properties: {
@@ -35,10 +35,7 @@ exports.TOOL_DEFINITION = {
35
35
  };
36
36
  /**
37
37
  * Returns where-used references for ABAP objects using AdtClient utilities.
38
- *
39
- * Two-step workflow:
40
- * 1. Fetch scope configuration (if enable_all_types is true)
41
- * 2. Execute where-used search with scope
38
+ * Uses getWhereUsedList for parsed structured results.
42
39
  */
43
40
  async function handleGetWhereUsed(context, args) {
44
41
  const { connection, logger } = context;
@@ -55,36 +52,28 @@ async function handleGetWhereUsed(context, args) {
55
52
  // Create AdtClient and get utilities
56
53
  const client = new adt_clients_1.AdtClient(connection, logger);
57
54
  const utils = client.getUtils();
58
- let scopeXml;
59
- // Step 1: If enable_all_types is true, fetch and modify scope
60
- if (typedArgs.enable_all_types === true) {
61
- logger?.info('Fetching scope with all types enabled (Eclipse "select all" behavior)');
62
- const scopeResponse = await utils.getWhereUsedScope({
63
- object_name: typedArgs.object_name,
64
- object_type: typedArgs.object_type,
65
- });
66
- // Modify scope to enable all types
67
- scopeXml = utils.modifyWhereUsedScope(scopeResponse.data, {
68
- enableAll: true,
69
- });
70
- }
71
- // Step 2: Execute where-used search
72
- // If scopeXml is undefined, getWhereUsed will auto-fetch default scope
73
- const result = await utils.getWhereUsed({
55
+ // Use getWhereUsedList for parsed results
56
+ const result = await utils.getWhereUsedList({
74
57
  object_name: typedArgs.object_name,
75
58
  object_type: typedArgs.object_type,
76
- scopeXml,
59
+ enableAllTypes: typedArgs.enable_all_types,
77
60
  });
78
- logger?.debug(`Where-used search completed for ${typedArgs.object_type}/${typedArgs.object_name}`);
79
- // Parse numberOfResults from XML
80
- const numberOfResults = result.data?.match(/numberOfResults="(\d+)"/)?.[1] || '0';
81
- // Format response
61
+ logger?.debug(`Where-used search completed for ${typedArgs.object_type}/${typedArgs.object_name}: ${result.totalReferences} references`);
62
+ // Format response with parsed data
82
63
  const formattedResponse = {
83
- object_name: typedArgs.object_name,
84
- object_type: typedArgs.object_type,
64
+ object_name: result.objectName,
65
+ object_type: result.objectType,
85
66
  enable_all_types: typedArgs.enable_all_types || false,
86
- total_references: parseInt(numberOfResults, 10),
87
- raw_xml: result.data,
67
+ total_references: result.totalReferences,
68
+ result_description: result.resultDescription,
69
+ references: result.references.map((ref) => ({
70
+ name: ref.name,
71
+ type: ref.type,
72
+ uri: ref.uri,
73
+ package_name: ref.packageName,
74
+ responsible: ref.responsible,
75
+ usage_information: ref.usageInformation,
76
+ })),
88
77
  };
89
78
  const mcpResult = {
90
79
  isError: false,
@@ -1 +1 @@
1
- {"version":3,"file":"handleGetWhereUsed.js","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleGetWhereUsed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handleGetWhereUsed.js","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleGetWhereUsed.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/core",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {