@mcp-abap-adt/adt-clients 6.0.0 → 6.1.0
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/README.md
CHANGED
|
@@ -185,6 +185,14 @@ for (const ref of result.references) {
|
|
|
185
185
|
console.log(`${ref.name} (${ref.type}) in ${ref.packageName}`);
|
|
186
186
|
}
|
|
187
187
|
|
|
188
|
+
// Restrict to specific object types — SAP filters server-side, so it never
|
|
189
|
+
// returns the unwanted types (e.g. hundreds of classes when you want structures)
|
|
190
|
+
await utils.getWhereUsedList({
|
|
191
|
+
object_name: 'ZMY_TABLE',
|
|
192
|
+
object_type: 'table',
|
|
193
|
+
enableOnlyTypes: ['TABL/DS', 'TABL/DT'] // or disableTypes: ['CLAS/OC']
|
|
194
|
+
});
|
|
195
|
+
|
|
188
196
|
// Where-used with raw XML (legacy)
|
|
189
197
|
await utils.getWhereUsed({ object_name: 'ZCL_TEST', object_type: 'class' });
|
|
190
198
|
```
|
|
@@ -97,6 +97,19 @@ export interface IGetWhereUsedListParams {
|
|
|
97
97
|
* Default: false (uses SAP default scope)
|
|
98
98
|
*/
|
|
99
99
|
enableAllTypes?: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Restrict the search to ONLY these object types (e.g. ['TABL/DS', 'TABL/DT']).
|
|
102
|
+
* All other types are deselected, so SAP does not search them at all — this is
|
|
103
|
+
* how you avoid getting 1000 classes back when you only want structures/tables.
|
|
104
|
+
* Type names are the ADT global types from the scope (e.g. 'CLAS/OC', 'STRU/DT').
|
|
105
|
+
* Takes precedence over `enableAllTypes`. Ignored if empty.
|
|
106
|
+
*/
|
|
107
|
+
enableOnlyTypes?: string[];
|
|
108
|
+
/**
|
|
109
|
+
* Remove these object types from the default SAP scope, keeping the rest.
|
|
110
|
+
* Applied on top of the default scope (or after `enableOnlyTypes`/`enableAllTypes`).
|
|
111
|
+
*/
|
|
112
|
+
disableTypes?: string[];
|
|
100
113
|
/**
|
|
101
114
|
* Include raw XML in response
|
|
102
115
|
* Default: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/shared/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/shared/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,14 +92,23 @@ export declare function getWhereUsed(connection: IAbapConnection, params: IGetWh
|
|
|
92
92
|
*
|
|
93
93
|
* @example
|
|
94
94
|
* ```typescript
|
|
95
|
-
*
|
|
95
|
+
* // Search every object type (Eclipse 'select all') — may return many results
|
|
96
|
+
* const all = await getWhereUsedList(connection, {
|
|
96
97
|
* object_name: 'ZMY_TABLE',
|
|
97
98
|
* object_type: 'table',
|
|
98
99
|
* enableAllTypes: true
|
|
99
100
|
* });
|
|
100
101
|
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
102
|
+
* // Or restrict to just the types you care about (e.g. only structures/tables),
|
|
103
|
+
* // so SAP never searches — and never returns — hundreds of classes.
|
|
104
|
+
* const structuresOnly = await getWhereUsedList(connection, {
|
|
105
|
+
* object_name: 'ZMY_TABLE',
|
|
106
|
+
* object_type: 'table',
|
|
107
|
+
* enableOnlyTypes: ['TABL/DS', 'TABL/DT']
|
|
108
|
+
* });
|
|
109
|
+
*
|
|
110
|
+
* console.log(`Found ${structuresOnly.totalReferences} references`);
|
|
111
|
+
* for (const ref of structuresOnly.references) {
|
|
103
112
|
* console.log(`${ref.name} (${ref.type}) in package ${ref.packageName}`);
|
|
104
113
|
* }
|
|
105
114
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whereUsed.d.ts","sourceRoot":"","sources":["../../../src/core/shared/whereUsed.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAUlC,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EAErB,MAAM,SAAS,CAAC;AAQjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IACP,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GACA,MAAM,
|
|
1
|
+
{"version":3,"file":"whereUsed.d.ts","sourceRoot":"","sources":["../../../src/core/shared/whereUsed.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAUlC,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EAErB,MAAM,SAAS,CAAC;AAQjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IACP,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GACA,MAAM,CAyBR;AAyED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,aAAa,CAAC,CAuBxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAgDxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CA8G/B"}
|
|
@@ -46,36 +46,43 @@ const xmlParser = new fast_xml_parser_1.XMLParser({
|
|
|
46
46
|
* });
|
|
47
47
|
*/
|
|
48
48
|
function modifyWhereUsedScope(scopeXml, options) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
49
|
+
// Each available type is a self-closing <usagereferences:type .../> tag.
|
|
50
|
+
// We rewrite ONLY the isSelected attribute per tag and never touch the
|
|
51
|
+
// opaque <usagereferences:payload> blob or attribute ordering — SAP emits
|
|
52
|
+
// attributes as `isDefault isSelected name`, so logic must read `name`
|
|
53
|
+
// wherever it appears, not assume it precedes isSelected.
|
|
54
|
+
const typeTagRegex = /<usagereferences:type\b[^>]*?\/>/g;
|
|
55
|
+
return scopeXml.replace(typeTagRegex, (tag) => {
|
|
56
|
+
const nameMatch = tag.match(/\bname="([^"]*)"/);
|
|
57
|
+
const name = nameMatch ? nameMatch[1] : '';
|
|
58
|
+
let selected;
|
|
59
|
+
if (options.enableAll) {
|
|
60
|
+
selected = true;
|
|
60
61
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
// Enable specific types (keep existing selections)
|
|
64
|
-
if (options.enable) {
|
|
65
|
-
for (const typeName of options.enable) {
|
|
66
|
-
const typeRegex = new RegExp(`(<usagereferences:type[^>]*name="${typeName.replace(/\//g, '\\/')})"[^>]*(isSelected=)"false"`, 'g');
|
|
67
|
-
result = result.replace(typeRegex, '$1 $2"true"');
|
|
68
|
-
}
|
|
62
|
+
else if (options.enableOnly) {
|
|
63
|
+
selected = options.enableOnly.includes(name);
|
|
69
64
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
65
|
+
else {
|
|
66
|
+
if (options.enable?.includes(name))
|
|
67
|
+
selected = true;
|
|
68
|
+
if (options.disable?.includes(name))
|
|
69
|
+
selected = false;
|
|
76
70
|
}
|
|
71
|
+
if (selected === undefined)
|
|
72
|
+
return tag;
|
|
73
|
+
return setIsSelected(tag, selected);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Set the isSelected attribute on a single <usagereferences:type> tag,
|
|
78
|
+
* inserting it if absent. Leaves all other attributes and their order intact.
|
|
79
|
+
*/
|
|
80
|
+
function setIsSelected(typeTag, selected) {
|
|
81
|
+
const value = selected ? 'true' : 'false';
|
|
82
|
+
if (/\bisSelected="(?:true|false)"/.test(typeTag)) {
|
|
83
|
+
return typeTag.replace(/\bisSelected="(?:true|false)"/, `isSelected="${value}"`);
|
|
77
84
|
}
|
|
78
|
-
return
|
|
85
|
+
return typeTag.replace(/<usagereferences:type\b/, `<usagereferences:type isSelected="${value}"`);
|
|
79
86
|
}
|
|
80
87
|
/**
|
|
81
88
|
* Build object URI based on type and name
|
|
@@ -238,14 +245,23 @@ async function getWhereUsed(connection, params) {
|
|
|
238
245
|
*
|
|
239
246
|
* @example
|
|
240
247
|
* ```typescript
|
|
241
|
-
*
|
|
248
|
+
* // Search every object type (Eclipse 'select all') — may return many results
|
|
249
|
+
* const all = await getWhereUsedList(connection, {
|
|
242
250
|
* object_name: 'ZMY_TABLE',
|
|
243
251
|
* object_type: 'table',
|
|
244
252
|
* enableAllTypes: true
|
|
245
253
|
* });
|
|
246
254
|
*
|
|
247
|
-
*
|
|
248
|
-
*
|
|
255
|
+
* // Or restrict to just the types you care about (e.g. only structures/tables),
|
|
256
|
+
* // so SAP never searches — and never returns — hundreds of classes.
|
|
257
|
+
* const structuresOnly = await getWhereUsedList(connection, {
|
|
258
|
+
* object_name: 'ZMY_TABLE',
|
|
259
|
+
* object_type: 'table',
|
|
260
|
+
* enableOnlyTypes: ['TABL/DS', 'TABL/DT']
|
|
261
|
+
* });
|
|
262
|
+
*
|
|
263
|
+
* console.log(`Found ${structuresOnly.totalReferences} references`);
|
|
264
|
+
* for (const ref of structuresOnly.references) {
|
|
249
265
|
* console.log(`${ref.name} (${ref.type}) in package ${ref.packageName}`);
|
|
250
266
|
* }
|
|
251
267
|
* ```
|
|
@@ -258,13 +274,31 @@ async function getWhereUsedList(connection, params) {
|
|
|
258
274
|
throw new Error('Object type is required');
|
|
259
275
|
}
|
|
260
276
|
let scopeXml;
|
|
261
|
-
//
|
|
262
|
-
|
|
277
|
+
// Fetch and modify the scope only when the caller wants to constrain which
|
|
278
|
+
// object types are searched. Otherwise getWhereUsed() falls back to SAP's
|
|
279
|
+
// default scope.
|
|
280
|
+
const enableOnly = params.enableOnlyTypes?.length
|
|
281
|
+
? params.enableOnlyTypes
|
|
282
|
+
: undefined;
|
|
283
|
+
const disable = params.disableTypes?.length ? params.disableTypes : undefined;
|
|
284
|
+
if (params.enableAllTypes || enableOnly || disable) {
|
|
263
285
|
const scopeResponse = await getWhereUsedScope(connection, {
|
|
264
286
|
object_name: params.object_name,
|
|
265
287
|
object_type: params.object_type,
|
|
266
288
|
});
|
|
267
|
-
|
|
289
|
+
// enableOnly wins over enableAll; disable is then applied on top so callers
|
|
290
|
+
// can both narrow to a set and prune one of those, in a single pass.
|
|
291
|
+
let modified = scopeResponse.data;
|
|
292
|
+
if (enableOnly) {
|
|
293
|
+
modified = modifyWhereUsedScope(modified, { enableOnly });
|
|
294
|
+
}
|
|
295
|
+
else if (params.enableAllTypes) {
|
|
296
|
+
modified = modifyWhereUsedScope(modified, { enableAll: true });
|
|
297
|
+
}
|
|
298
|
+
if (disable) {
|
|
299
|
+
modified = modifyWhereUsedScope(modified, { disable });
|
|
300
|
+
}
|
|
301
|
+
scopeXml = modified;
|
|
268
302
|
}
|
|
269
303
|
// Execute where-used search
|
|
270
304
|
const response = await getWhereUsed(connection, {
|