@mcp-abap-adt/adt-backup 1.3.0 → 1.5.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.
Files changed (37) hide show
  1. package/dist/lib/backup/readMetadataXmlForType.d.ts +1 -1
  2. package/dist/lib/backup/readMetadataXmlForType.d.ts.map +1 -1
  3. package/dist/lib/backup/readMetadataXmlForType.js +11 -1
  4. package/dist/lib/backup/readSourceText.d.ts.map +1 -1
  5. package/dist/lib/backup/readSourceText.js +11 -0
  6. package/dist/lib/constants/typeOrder.d.ts.map +1 -1
  7. package/dist/lib/constants/typeOrder.js +1 -0
  8. package/dist/lib/restore/analyzeDependencies.d.ts.map +1 -1
  9. package/dist/lib/restore/analyzeDependencies.js +5 -4
  10. package/dist/lib/restore/restoreObject.d.ts.map +1 -1
  11. package/dist/lib/restore/restoreObject.js +15 -0
  12. package/dist/lib/restore/restoreObjects.d.ts.map +1 -1
  13. package/dist/lib/restore/restoreObjects.js +1 -0
  14. package/dist/lib/restore/restoreTreeBackup.js +1 -1
  15. package/dist/lib/restore/restoreTreeNode.d.ts.map +1 -1
  16. package/dist/lib/restore/restoreTreeNode.js +15 -0
  17. package/dist/lib/tree/enrichTreeNode.d.ts.map +1 -1
  18. package/dist/lib/tree/enrichTreeNode.js +28 -2
  19. package/dist/lib/tree/getNodeFunctionGroupName.js +1 -1
  20. package/dist/lib/tree/getNodeObjectSpec.js +1 -1
  21. package/dist/lib/tree/isRestoreImplemented.d.ts.map +1 -1
  22. package/dist/lib/tree/isRestoreImplemented.js +1 -0
  23. package/dist/lib/tree/mapAdtTypeToSupported.d.ts.map +1 -1
  24. package/dist/lib/tree/mapAdtTypeToSupported.js +3 -0
  25. package/dist/lib/tree/readPayloadForType.d.ts.map +1 -1
  26. package/dist/lib/tree/readPayloadForType.js +1 -0
  27. package/dist/lib/types.d.ts +1 -1
  28. package/dist/lib/types.d.ts.map +1 -1
  29. package/dist/lib/utils/applyConfigName.d.ts.map +1 -1
  30. package/dist/lib/utils/applyConfigName.js +4 -0
  31. package/dist/lib/utils/formatObjectSpec.js +1 -1
  32. package/dist/lib/utils/normalizeType.d.ts.map +1 -1
  33. package/dist/lib/utils/normalizeType.js +2 -0
  34. package/dist/lib/utils/objectId.js +1 -1
  35. package/dist/lib/utils/parseObjectSpec.d.ts.map +1 -1
  36. package/dist/lib/utils/parseObjectSpec.js +2 -2
  37. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
1
  import type { AdtClient } from '@mcp-abap-adt/adt-clients';
2
2
  import type { SupportedType } from '../types';
3
- export declare function readMetadataXmlForType(client: AdtClient, type: SupportedType, name: string, _functionGroupName?: string): Promise<string | null | undefined>;
3
+ export declare function readMetadataXmlForType(client: AdtClient, type: SupportedType, name: string, functionGroupName?: string): Promise<string | null | undefined>;
4
4
  //# sourceMappingURL=readMetadataXmlForType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"readMetadataXmlForType.d.ts","sourceRoot":"","sources":["../../../src/lib/backup/readMetadataXmlForType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,MAAM,EACZ,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CA0IpC"}
1
+ {"version":3,"file":"readMetadataXmlForType.d.ts","sourceRoot":"","sources":["../../../src/lib/backup/readMetadataXmlForType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,MAAM,EACZ,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAoJpC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.readMetadataXmlForType = readMetadataXmlForType;
4
4
  const responseToText_1 = require("../utils/responseToText");
5
- async function readMetadataXmlForType(client, type, name, _functionGroupName) {
5
+ async function readMetadataXmlForType(client, type, name, functionGroupName) {
6
6
  try {
7
7
  let result;
8
8
  switch (type) {
@@ -105,6 +105,16 @@ async function readMetadataXmlForType(client, type, name, _functionGroupName) {
105
105
  result = (0, responseToText_1.responseToText)(state.metadataResult);
106
106
  break;
107
107
  }
108
+ case 'functionInclude': {
109
+ if (!functionGroupName) {
110
+ return undefined;
111
+ }
112
+ const state = await client
113
+ .getFunctionInclude()
114
+ .readMetadata({ functionGroupName, includeName: name });
115
+ result = (0, responseToText_1.responseToText)(state.metadataResult);
116
+ break;
117
+ }
108
118
  case 'enhancement': {
109
119
  const state = await client
110
120
  .getEnhancement()
@@ -1 +1 @@
1
- {"version":3,"file":"readSourceText.d.ts","sourceRoot":"","sources":["../../../src/lib/backup/readSourceText.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,QAAQ,GAAG,UAAqB,GACxC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CA8GpC"}
1
+ {"version":3,"file":"readSourceText.d.ts","sourceRoot":"","sources":["../../../src/lib/backup/readSourceText.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,QAAQ,GAAG,UAAqB,GACxC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CA2HpC"}
@@ -86,6 +86,17 @@ async function readSourceText(client, spec, version = 'active') {
86
86
  }, version);
87
87
  return (0, responseToText_1.responseToText)(state?.readResult);
88
88
  }
89
+ case 'functionInclude': {
90
+ if (!spec.functionGroupName)
91
+ return undefined;
92
+ // read() returns the include source (adt-clients >= 5.8.0), consistent
93
+ // with class/program/functionModule.
94
+ const state = await client.getFunctionInclude().read({
95
+ functionGroupName: spec.functionGroupName,
96
+ includeName: spec.name,
97
+ }, version);
98
+ return (0, responseToText_1.responseToText)(state?.readResult);
99
+ }
89
100
  case 'enhancement': {
90
101
  const state = await client
91
102
  .getEnhancement()
@@ -1 +1 @@
1
- {"version":3,"file":"typeOrder.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/typeOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,eAAO,MAAM,SAAS,EAAE,aAAa,EAoBpC,CAAC"}
1
+ {"version":3,"file":"typeOrder.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/typeOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,eAAO,MAAM,SAAS,EAAE,aAAa,EAqBpC,CAAC"}
@@ -10,6 +10,7 @@ exports.typeOrder = [
10
10
  'tableType',
11
11
  'view',
12
12
  'functionGroup',
13
+ 'functionInclude',
13
14
  'functionModule',
14
15
  'interface',
15
16
  'class',
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeDependencies.d.ts","sourceRoot":"","sources":["../../../src/lib/restore/analyzeDependencies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB;AA+MD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,YAAY,EAAE,CA2B3E;AA4BD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,cAAc,EAAE,GACtB,YAAY,EAAE,CA8DhB"}
1
+ {"version":3,"file":"analyzeDependencies.d.ts","sourceRoot":"","sources":["../../../src/lib/restore/analyzeDependencies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB;AA+MD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,YAAY,EAAE,CA2B3E;AA6BD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,cAAc,EAAE,GACtB,YAAY,EAAE,CA8DhB"}
@@ -220,10 +220,11 @@ const TYPE_CREATION_ORDER = {
220
220
  program: 7,
221
221
  transformation: 7,
222
222
  functionGroup: 7,
223
- functionModule: 8,
224
- serviceDefinition: 9,
225
- serviceBinding: 10,
226
- enhancement: 11,
223
+ functionInclude: 8,
224
+ functionModule: 9,
225
+ serviceDefinition: 10,
226
+ serviceBinding: 11,
227
+ enhancement: 12,
227
228
  };
228
229
  /**
229
230
  * Analyzes dependencies and merges SCCs at the same dependency level
@@ -1 +1 @@
1
- {"version":3,"file":"restoreObject.d.ts","sourceRoot":"","sources":["../../../src/lib/restore/restoreObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAoBV,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAO1D,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,OAAO,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CA2Tf"}
1
+ {"version":3,"file":"restoreObject.d.ts","sourceRoot":"","sources":["../../../src/lib/restore/restoreObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAqBV,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAO1D,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,OAAO,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CA2Uf"}
@@ -175,6 +175,21 @@ async function restoreObject(client, obj, mode, activate, transportRequest) {
175
175
  }
176
176
  return;
177
177
  }
178
+ case 'functionInclude': {
179
+ const fgn = (obj.functionGroupName ?? '').toUpperCase();
180
+ // The TOP include is auto-created with the function group, so it can only
181
+ // be updated (a create would fail "already exists"). Custom includes are
182
+ // created — the create chain uploads source and activates.
183
+ const isTop = obj.name.toUpperCase() === `L${fgn}TOP`;
184
+ const cfg = (0, asConfig_1.asConfig)(obj.source ? { ...config, sourceCode: obj.source } : config);
185
+ if (!isTop && mode !== 'update') {
186
+ await client.getFunctionInclude().create(cfg, options);
187
+ }
188
+ else if (obj.source) {
189
+ await client.getFunctionInclude().update(cfg, options);
190
+ }
191
+ return;
192
+ }
178
193
  case 'serviceDefinition': {
179
194
  if (mode !== 'update') {
180
195
  await client
@@ -1 +1 @@
1
- {"version":3,"file":"restoreObjects.d.ts","sourceRoot":"","sources":["../../../src/lib/restore/restoreObjects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,2BAA2B,CAAC;AAE5E,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AA4B1D,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,YAAY,EAAE,EACvB,IAAI,EAAE,WAAW,EACjB,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,CAAC,EAAE,MAAM,EACzB,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACzC,gBAAgB,UAAO,GACtB,OAAO,CAAC,IAAI,CAAC,CA+Df"}
1
+ {"version":3,"file":"restoreObjects.d.ts","sourceRoot":"","sources":["../../../src/lib/restore/restoreObjects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,2BAA2B,CAAC;AAE5E,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AA6B1D,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,YAAY,EAAE,EACvB,IAAI,EAAE,WAAW,EACjB,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,CAAC,EAAE,MAAM,EACzB,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACzC,gBAAgB,UAAO,GACtB,OAAO,CAAC,IAAI,CAAC,CA+Df"}
@@ -19,6 +19,7 @@ const ADT_TYPE_MAP = {
19
19
  transformation: 'XSLT/VT',
20
20
  functionGroup: 'FUGR/FF',
21
21
  functionModule: 'FUGR/I',
22
+ functionInclude: 'FUGR/I',
22
23
  serviceDefinition: 'SRVD/SRV',
23
24
  serviceBinding: 'SRVB/SRV',
24
25
  metadataExtension: 'DDLX/PX',
@@ -93,7 +93,7 @@ async function restoreTreeBackup(client, root, mode, activate, transportRequest,
93
93
  if (refs.length === 0)
94
94
  return;
95
95
  // Check which objects are actually inactive
96
- let toActivate = await findInactiveRefs(refs);
96
+ const toActivate = await findInactiveRefs(refs);
97
97
  if (toActivate.length === 0) {
98
98
  (0, logVerbose_1.logVerbose)(2, ` [*] ${phaseName}: all ${refs.length} objects already active`);
99
99
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"restoreTreeNode.d.ts","sourceRoot":"","sources":["../../../src/lib/restore/restoreTreeNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAqBV,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAQ5D,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,OAAO,EACjB,gBAAgB,CAAC,EAAE,MAAM,EACzB,yBAAyB,CAAC,EAAE,MAAM,EAClC,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAChC,oBAAoB,CAAC,EAAE,MAAM,EAC7B,sBAAsB,CAAC,EAAE,MAAM,GAC9B,OAAO,CAAC,IAAI,CAAC,CAibf"}
1
+ {"version":3,"file":"restoreTreeNode.d.ts","sourceRoot":"","sources":["../../../src/lib/restore/restoreTreeNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAsBV,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAQ5D,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,OAAO,EACjB,gBAAgB,CAAC,EAAE,MAAM,EACzB,yBAAyB,CAAC,EAAE,MAAM,EAClC,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAChC,oBAAoB,CAAC,EAAE,MAAM,EAC7B,sBAAsB,CAAC,EAAE,MAAM,GAC9B,OAAO,CAAC,IAAI,CAAC,CAicf"}
@@ -233,6 +233,21 @@ async function restoreTreeNode(client, node, mode, activate, transportRequest, s
233
233
  }
234
234
  return;
235
235
  }
236
+ case 'functionInclude': {
237
+ const fgn = (node.functionGroupName ?? '').toUpperCase();
238
+ // The TOP include is auto-created with the function group, so it can
239
+ // only be updated (a create would fail "already exists"). Custom
240
+ // includes are created — the create chain uploads source and activates.
241
+ const isTop = node.name.toUpperCase() === `L${fgn}TOP`;
242
+ const cfg = (0, asConfig_1.asConfig)(payload ? { ...config, sourceCode: payload } : config);
243
+ if (!isTop && mode !== 'update') {
244
+ await client.getFunctionInclude().create(cfg, options);
245
+ }
246
+ else if (payload) {
247
+ await client.getFunctionInclude().update(cfg, options);
248
+ }
249
+ return;
250
+ }
236
251
  case 'serviceDefinition': {
237
252
  if (mode !== 'update') {
238
253
  await client
@@ -1 +1 @@
1
- {"version":3,"file":"enrichTreeNode.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/enrichTreeNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAU/C,wBAAsB,cAAc,CAClC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,OAAO,EACpB,uBAAuB,CAAC,EAAE,MAAM,GAC/B,OAAO,CAAC,cAAc,CAAC,CAkGzB"}
1
+ {"version":3,"file":"enrichTreeNode.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/enrichTreeNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAU/C,wBAAsB,cAAc,CAClC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,OAAO,EACpB,uBAAuB,CAAC,EAAE,MAAM,GAC/B,OAAO,CAAC,cAAc,CAAC,CAgIzB"}
@@ -74,9 +74,35 @@ async function enrichTreeNode(node, client, includeCode, parentFunctionGroupName
74
74
  }
75
75
  }
76
76
  }
77
- if (node.children && node.children.length > 0) {
77
+ // A function group's function modules (FUGR/FF) and includes (FUGR/I) are not
78
+ // returned by the package hierarchy — enumerate them and attach as children so
79
+ // their source is captured. Skip the generated `L<FUGR>UXX` collector (no
80
+ // developer content; regenerated on restore).
81
+ const childNodes = node.children ? [...node.children] : [];
82
+ if (mappedType === 'functionGroup' && includeCode) {
83
+ const utils = client.getUtils();
84
+ const [fmNames, includeNames] = await Promise.all([
85
+ utils.listFunctionModules(node.name),
86
+ utils.listFunctionGroupIncludes(node.name),
87
+ ]);
88
+ const generatedCollector = `L${node.name.toUpperCase()}UXX`;
89
+ const enumerated = [
90
+ ...fmNames.map((name) => ({ name, adtType: 'FUGR/FF' })),
91
+ ...includeNames
92
+ .filter((name) => name.toUpperCase() !== generatedCollector)
93
+ .map((name) => ({ name, adtType: 'FUGR/I' })),
94
+ ];
95
+ const present = new Set(childNodes.map((c) => c.name.toUpperCase()));
96
+ for (const child of enumerated) {
97
+ if (!present.has(child.name.toUpperCase())) {
98
+ childNodes.push(child);
99
+ }
100
+ }
101
+ (0, logVerbose_1.logVerbose)(2, ` FUGR ${node.name}: +${fmNames.length} FM, +${enumerated.length - fmNames.length} include(s)`);
102
+ }
103
+ if (childNodes.length > 0) {
78
104
  const children = [];
79
- for (const child of node.children) {
105
+ for (const child of childNodes) {
80
106
  children.push(await enrichTreeNode(child, client, includeCode, functionGroupName));
81
107
  }
82
108
  nextNode.children = children;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getNodeFunctionGroupName = getNodeFunctionGroupName;
4
4
  function getNodeFunctionGroupName(node) {
5
- if (node.type !== 'functionModule') {
5
+ if (node.type !== 'functionModule' && node.type !== 'functionInclude') {
6
6
  return undefined;
7
7
  }
8
8
  const configGroup = node.config && typeof node.config.functionGroupName === 'string'
@@ -6,7 +6,7 @@ function getNodeObjectSpec(node) {
6
6
  if (!node.type) {
7
7
  return undefined;
8
8
  }
9
- if (node.type === 'functionModule') {
9
+ if (node.type === 'functionModule' || node.type === 'functionInclude') {
10
10
  const group = (0, getNodeFunctionGroupName_1.getNodeFunctionGroupName)(node);
11
11
  if (!group) {
12
12
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"isRestoreImplemented.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/isRestoreImplemented.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,oBAAoB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CA0BlE"}
1
+ {"version":3,"file":"isRestoreImplemented.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/isRestoreImplemented.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,oBAAoB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CA2BlE"}
@@ -12,6 +12,7 @@ function isRestoreImplemented(type) {
12
12
  case 'view':
13
13
  case 'functionGroup':
14
14
  case 'functionModule':
15
+ case 'functionInclude':
15
16
  case 'interface':
16
17
  case 'class':
17
18
  case 'program':
@@ -1 +1 @@
1
- {"version":3,"file":"mapAdtTypeToSupported.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/mapAdtTypeToSupported.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,qBAAqB,CACnC,OAAO,CAAC,EAAE,MAAM,GACf,aAAa,GAAG,SAAS,CAmE3B"}
1
+ {"version":3,"file":"mapAdtTypeToSupported.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/mapAdtTypeToSupported.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,qBAAqB,CACnC,OAAO,CAAC,EAAE,MAAM,GACf,aAAa,GAAG,SAAS,CAqE3B"}
@@ -26,6 +26,7 @@ function mapAdtTypeToSupported(adtType) {
26
26
  'XSLT/VT': 'transformation',
27
27
  'XSLT/ST': 'transformation',
28
28
  'FUGR/FF': 'functionModule',
29
+ 'FUGR/I': 'functionInclude',
29
30
  'FUGR/F': 'functionGroup',
30
31
  FUGR: 'functionGroup',
31
32
  'SRVD/SRV': 'serviceDefinition',
@@ -69,6 +70,8 @@ function mapAdtTypeToSupported(adtType) {
69
70
  return 'tableType';
70
71
  if (normalized.startsWith('FUGR/FF'))
71
72
  return 'functionModule';
73
+ if (normalized.startsWith('FUGR/I'))
74
+ return 'functionInclude';
72
75
  if (normalized.startsWith('FUGR/'))
73
76
  return 'functionGroup';
74
77
  if (normalized.startsWith('DEVC/'))
@@ -1 +1 @@
1
- {"version":3,"file":"readPayloadForType.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/readPayloadForType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9D,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,MAAM,EACZ,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAA;CAAE,CAAC,CAwCtE"}
1
+ {"version":3,"file":"readPayloadForType.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/readPayloadForType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9D,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,MAAM,EACZ,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAA;CAAE,CAAC,CAyCtE"}
@@ -13,6 +13,7 @@ async function readPayloadForType(client, type, name, functionGroupName) {
13
13
  case 'structure':
14
14
  case 'table':
15
15
  case 'functionModule':
16
+ case 'functionInclude':
16
17
  case 'serviceDefinition':
17
18
  case 'metadataExtension':
18
19
  case 'behaviorDefinition':
@@ -1,4 +1,4 @@
1
- export type SupportedType = 'package' | 'domain' | 'dataElement' | 'structure' | 'table' | 'tableType' | 'view' | 'class' | 'interface' | 'program' | 'transformation' | 'functionGroup' | 'functionModule' | 'serviceDefinition' | 'serviceBinding' | 'metadataExtension' | 'behaviorDefinition' | 'behaviorImplementation' | 'enhancement' | 'accessControl' | 'unitTest' | 'cdsUnitTest';
1
+ export type SupportedType = 'package' | 'domain' | 'dataElement' | 'structure' | 'table' | 'tableType' | 'view' | 'class' | 'interface' | 'program' | 'transformation' | 'functionGroup' | 'functionModule' | 'functionInclude' | 'serviceDefinition' | 'serviceBinding' | 'metadataExtension' | 'behaviorDefinition' | 'behaviorImplementation' | 'enhancement' | 'accessControl' | 'unitTest' | 'cdsUnitTest';
2
2
  export type RestoreMode = 'create' | 'update' | 'upsert' | 'skip';
3
3
  export type BackupConfig = Record<string, unknown>;
4
4
  export interface ObjectSpec {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"applyConfigName.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/applyConfigName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE5D,wBAAgB,eAAe,CAC7B,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,MAAM,EACZ,iBAAiB,CAAC,EAAE,MAAM,EAC1B,MAAM,CAAC,EAAE,YAAY,GACpB,YAAY,CAwEd"}
1
+ {"version":3,"file":"applyConfigName.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/applyConfigName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE5D,wBAAgB,eAAe,CAC7B,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,MAAM,EACZ,iBAAiB,CAAC,EAAE,MAAM,EAC1B,MAAM,CAAC,EAAE,YAAY,GACpB,YAAY,CA4Ed"}
@@ -44,6 +44,10 @@ function applyConfigName(type, name, functionGroupName, config) {
44
44
  finalConfig.functionModuleName = name;
45
45
  finalConfig.functionGroupName = functionGroupName;
46
46
  break;
47
+ case 'functionInclude':
48
+ finalConfig.includeName = name;
49
+ finalConfig.functionGroupName = functionGroupName;
50
+ break;
47
51
  case 'serviceDefinition':
48
52
  finalConfig.serviceDefinitionName = name;
49
53
  break;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatObjectSpec = formatObjectSpec;
4
4
  function formatObjectSpec(spec) {
5
- if (spec.type === 'functionModule') {
5
+ if (spec.type === 'functionModule' || spec.type === 'functionInclude') {
6
6
  return `${spec.type}:${spec.functionGroupName}|${spec.name}`;
7
7
  }
8
8
  return `${spec.type}:${spec.name}`;
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeType.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/normalizeType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CA6C5D"}
1
+ {"version":3,"file":"normalizeType.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/normalizeType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CA+C5D"}
@@ -25,6 +25,8 @@ function normalizeType(rawType) {
25
25
  function_group: 'functionGroup',
26
26
  functionmodule: 'functionModule',
27
27
  function_module: 'functionModule',
28
+ functioninclude: 'functionInclude',
29
+ function_include: 'functionInclude',
28
30
  servicedefinition: 'serviceDefinition',
29
31
  service_definition: 'serviceDefinition',
30
32
  servicebinding: 'serviceBinding',
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.objectId = objectId;
4
4
  function objectId(spec) {
5
- if (spec.type === 'functionModule') {
5
+ if (spec.type === 'functionModule' || spec.type === 'functionInclude') {
6
6
  return `${spec.type}:${spec.functionGroupName}|${spec.name}`;
7
7
  }
8
8
  return `${spec.type}:${spec.name}`;
@@ -1 +1 @@
1
- {"version":3,"file":"parseObjectSpec.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/parseObjectSpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CA0BxD"}
1
+ {"version":3,"file":"parseObjectSpec.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/parseObjectSpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAwBxD"}
@@ -12,10 +12,10 @@ function parseObjectSpec(spec) {
12
12
  if (!namePart) {
13
13
  throw new Error(`Missing name in object spec: ${spec}`);
14
14
  }
15
- if (type === 'functionModule') {
15
+ if (type === 'functionModule' || type === 'functionInclude') {
16
16
  const split = namePart.split(/[|/]/);
17
17
  if (split.length !== 2) {
18
- throw new Error(`Function module spec must be GROUP|NAME or GROUP/NAME: ${spec}`);
18
+ throw new Error(`${type} spec must be GROUP|NAME or GROUP/NAME: ${spec}`);
19
19
  }
20
20
  return {
21
21
  type,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/adt-backup",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "description": "ADT backup CLI for SAP ABAP objects (recursive package backups and restores)",
5
5
  "main": "dist/bin/adt-backup.js",
6
6
  "types": "dist/bin/adt-backup.d.ts",
@@ -48,7 +48,7 @@
48
48
  "node": ">=20.0.0"
49
49
  },
50
50
  "dependencies": {
51
- "@mcp-abap-adt/adt-clients": "^5.4.1",
51
+ "@mcp-abap-adt/adt-clients": "^5.8.0",
52
52
  "@mcp-abap-adt/auth-broker": "^1.0.5",
53
53
  "@mcp-abap-adt/auth-providers": "^1.0.5",
54
54
  "@mcp-abap-adt/auth-stores": "^1.0.4",