@mcp-abap-adt/adt-clients 0.3.3 → 0.3.6

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 (87) hide show
  1. package/README.md +12 -0
  2. package/dist/core/behaviorDefinition/validation.d.ts +0 -1
  3. package/dist/core/behaviorDefinition/validation.d.ts.map +1 -1
  4. package/dist/core/behaviorDefinition/validation.js +0 -1
  5. package/dist/core/class/AdtClass.d.ts.map +1 -1
  6. package/dist/core/class/AdtClass.js +1 -1
  7. package/dist/core/class/create.d.ts +2 -2
  8. package/dist/core/class/create.d.ts.map +1 -1
  9. package/dist/core/class/create.js +12 -14
  10. package/dist/core/class/run.d.ts +2 -3
  11. package/dist/core/class/run.d.ts.map +1 -1
  12. package/dist/core/class/run.js +2 -3
  13. package/dist/core/dataElement/AdtDataElement.d.ts.map +1 -1
  14. package/dist/core/dataElement/AdtDataElement.js +2 -2
  15. package/dist/core/dataElement/update.d.ts +3 -3
  16. package/dist/core/dataElement/update.d.ts.map +1 -1
  17. package/dist/core/dataElement/update.js +8 -7
  18. package/dist/core/domain/AdtDomain.d.ts.map +1 -1
  19. package/dist/core/domain/AdtDomain.js +3 -3
  20. package/dist/core/domain/check.d.ts +2 -2
  21. package/dist/core/domain/check.d.ts.map +1 -1
  22. package/dist/core/domain/check.js +2 -2
  23. package/dist/core/enhancement/AdtEnhancement.d.ts.map +1 -1
  24. package/dist/core/enhancement/AdtEnhancement.js +3 -3
  25. package/dist/core/enhancement/create.d.ts +2 -2
  26. package/dist/core/enhancement/create.d.ts.map +1 -1
  27. package/dist/core/enhancement/create.js +12 -14
  28. package/dist/core/enhancement/update.d.ts +3 -3
  29. package/dist/core/enhancement/update.d.ts.map +1 -1
  30. package/dist/core/enhancement/update.js +14 -16
  31. package/dist/core/functionGroup/AdtFunctionGroup.d.ts.map +1 -1
  32. package/dist/core/functionGroup/AdtFunctionGroup.js +1 -1
  33. package/dist/core/functionGroup/create.d.ts +2 -2
  34. package/dist/core/functionGroup/create.d.ts.map +1 -1
  35. package/dist/core/functionGroup/create.js +26 -26
  36. package/dist/core/functionModule/AdtFunctionModule.d.ts.map +1 -1
  37. package/dist/core/functionModule/AdtFunctionModule.js +2 -1
  38. package/dist/core/interface/AdtInterface.d.ts.map +1 -1
  39. package/dist/core/interface/AdtInterface.js +1 -1
  40. package/dist/core/interface/create.d.ts +2 -2
  41. package/dist/core/interface/create.d.ts.map +1 -1
  42. package/dist/core/interface/create.js +6 -6
  43. package/dist/core/metadataExtension/AdtMetadataExtension.d.ts.map +1 -1
  44. package/dist/core/metadataExtension/AdtMetadataExtension.js +2 -1
  45. package/dist/core/serviceDefinition/AdtServiceDefinition.d.ts.map +1 -1
  46. package/dist/core/serviceDefinition/AdtServiceDefinition.js +2 -1
  47. package/dist/core/shared/AdtUtils.d.ts +8 -3
  48. package/dist/core/shared/AdtUtils.d.ts.map +1 -1
  49. package/dist/core/shared/AdtUtils.js +8 -3
  50. package/dist/core/shared/getInactiveObjects.d.ts +0 -1
  51. package/dist/core/shared/getInactiveObjects.d.ts.map +1 -1
  52. package/dist/core/shared/getInactiveObjects.js +0 -1
  53. package/dist/core/shared/index.d.ts +1 -1
  54. package/dist/core/shared/index.d.ts.map +1 -1
  55. package/dist/core/shared/packageHierarchy.d.ts +4 -4
  56. package/dist/core/shared/packageHierarchy.d.ts.map +1 -1
  57. package/dist/core/shared/packageHierarchy.js +297 -176
  58. package/dist/core/shared/types.d.ts +11 -0
  59. package/dist/core/shared/types.d.ts.map +1 -1
  60. package/dist/core/structure/AdtStructure.d.ts.map +1 -1
  61. package/dist/core/structure/AdtStructure.js +5 -4
  62. package/dist/core/structure/check.d.ts +2 -2
  63. package/dist/core/structure/check.d.ts.map +1 -1
  64. package/dist/core/structure/check.js +3 -3
  65. package/dist/core/table/AdtTable.d.ts.map +1 -1
  66. package/dist/core/table/AdtTable.js +2 -1
  67. package/dist/core/tabletype/AdtDdicTableType.d.ts.map +1 -1
  68. package/dist/core/tabletype/AdtDdicTableType.js +4 -3
  69. package/dist/core/tabletype/read.d.ts.map +1 -1
  70. package/dist/core/tabletype/read.js +1 -6
  71. package/dist/core/tabletype/update.d.ts +2 -2
  72. package/dist/core/tabletype/update.d.ts.map +1 -1
  73. package/dist/core/tabletype/update.js +3 -9
  74. package/dist/core/transport/AdtRequest.d.ts.map +1 -1
  75. package/dist/core/transport/AdtRequest.js +1 -0
  76. package/dist/core/unitTest/AdtCdsUnitTest.d.ts.map +1 -1
  77. package/dist/core/unitTest/AdtCdsUnitTest.js +1 -0
  78. package/dist/core/unitTest/AdtUnitTest.d.ts.map +1 -1
  79. package/dist/core/unitTest/AdtUnitTest.js +1 -0
  80. package/dist/core/view/AdtView.d.ts.map +1 -1
  81. package/dist/core/view/AdtView.js +5 -4
  82. package/dist/core/view/check.d.ts +2 -2
  83. package/dist/core/view/check.d.ts.map +1 -1
  84. package/dist/core/view/check.js +4 -4
  85. package/dist/index.d.ts +1 -1
  86. package/dist/index.d.ts.map +1 -1
  87. package/package.json +1 -1
package/README.md CHANGED
@@ -285,6 +285,18 @@ await adtObject.readTransport(config, { withLongPolling: true });
285
285
  - After `activate()` operations - wait for object to be available in active version
286
286
  - In tests - replace fixed `setTimeout` delays with long polling for better reliability
287
287
 
288
+ Operation results are stored on the returned state (`createResult`, `updateResult`, `checkResult`, etc.):
289
+
290
+ ```typescript
291
+ const createState = await client.getFunctionModule().create({
292
+ functionGroupName: 'ZFGROUP',
293
+ functionModuleName: 'ZFM_TEST',
294
+ description: 'Test FM',
295
+ });
296
+
297
+ console.log(createState.createResult?.status);
298
+ ```
299
+
288
300
  ### Accept Negotiation (Optional)
289
301
 
290
302
  Some ADT endpoints return `406` when the `Accept` header does not match the system’s supported media types. The client can
@@ -23,7 +23,6 @@ import type { IBehaviorDefinitionValidationParams } from './types';
23
23
  * // Check validation result
24
24
  * const severity = result.data.match(/<SEVERITY>([^<]+)<\/SEVERITY>/)?.[1];
25
25
  * if (severity === 'OK') {
26
- * console.log('Validation successful');
27
26
  * }
28
27
  * ```
29
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/behaviorDefinition/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,SAAS,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,mCAAmC,GAC1C,OAAO,CAAC,aAAa,CAAC,CA2BxB"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/behaviorDefinition/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,SAAS,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,mCAAmC,GAC1C,OAAO,CAAC,aAAa,CAAC,CA2BxB"}
@@ -25,7 +25,6 @@ const timeouts_1 = require("../../utils/timeouts");
25
25
  * // Check validation result
26
26
  * const severity = result.data.match(/<SEVERITY>([^<]+)<\/SEVERITY>/)?.[1];
27
27
  * if (severity === 'OK') {
28
- * console.log('Validation successful');
29
28
  * }
30
29
  * ```
31
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AdtClass.d.ts","sourceRoot":"","sources":["../../../src/core/class/AdtClass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AdtClass.d.ts","sourceRoot":"","sources":["../../../src/core/class/AdtClass.ts"],"names":[],"mappings":"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"}
@@ -135,7 +135,7 @@ class AdtClass {
135
135
  master_system: config.masterSystem,
136
136
  responsible: config.responsible,
137
137
  template_xml: config.classTemplate,
138
- });
138
+ }, this.logger);
139
139
  objectCreated = true;
140
140
  this.connection.setSessionType('stateless');
141
141
  this.logger?.info?.('Class created');
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Class create operations - Low-level functions
3
3
  */
4
- import type { IAdtResponse as AxiosResponse, IAbapConnection } from '@mcp-abap-adt/interfaces';
4
+ import type { IAdtResponse as AxiosResponse, IAbapConnection, ILogger } from '@mcp-abap-adt/interfaces';
5
5
  import type { ICreateClassParams } from './types';
6
6
  /**
7
7
  * Low-level: Create class object with metadata (POST)
@@ -9,5 +9,5 @@ import type { ICreateClassParams } from './types';
9
9
  *
10
10
  * NOTE: Requires stateful session mode enabled via connection.setSessionType("stateful")
11
11
  */
12
- export declare function create(connection: IAbapConnection, args: ICreateClassParams): Promise<AxiosResponse>;
12
+ export declare function create(connection: IAbapConnection, args: ICreateClassParams, logger?: ILogger): Promise<AxiosResponse>;
13
13
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/core/class/create.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAQlD;;;;;GAKG;AACH,wBAAsB,MAAM,CAC1B,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,aAAa,CAAC,CA4GxB"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/core/class/create.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EACf,OAAO,EACR,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAIlD;;;;;GAKG;AACH,wBAAsB,MAAM,CAC1B,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,kBAAkB,EACxB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,CA8GxB"}
@@ -8,17 +8,13 @@ const internalUtils_1 = require("../../utils/internalUtils");
8
8
  const systemInfo_1 = require("../../utils/systemInfo");
9
9
  const timeouts_1 = require("../../utils/timeouts");
10
10
  const debugEnabled = process.env.DEBUG_ADT_LIBS === 'true';
11
- const logger = {
12
- debug: debugEnabled ? console.log : () => { },
13
- error: debugEnabled ? console.error : () => { },
14
- };
15
11
  /**
16
12
  * Low-level: Create class object with metadata (POST)
17
13
  * Does NOT lock/upload/activate - just creates the object
18
14
  *
19
15
  * NOTE: Requires stateful session mode enabled via connection.setSessionType("stateful")
20
16
  */
21
- async function create(connection, args) {
17
+ async function create(connection, args, logger) {
22
18
  // Description is limited to 60 characters in SAP ADT
23
19
  const description = (0, internalUtils_1.limitDescription)(args.description || args.class_name || '');
24
20
  const url = `/sap/bc/adt/oo/classes${args.transport_request ? `?corrNr=${args.transport_request}` : ''}`;
@@ -76,10 +72,12 @@ async function create(connection, args) {
76
72
  'Content-Type': 'application/vnd.sap.adt.oo.classes.v4+xml',
77
73
  };
78
74
  // Log request details for debugging authorization issues
79
- logger.debug(`[DEBUG] Creating class - URL: ${url}`);
80
- logger.debug(`[DEBUG] Creating class - Method: POST`);
81
- logger.debug(`[DEBUG] Creating class - Headers: ${JSON.stringify(headers, null, 2)}`);
82
- logger.debug(`[DEBUG] Creating class - Body (first 500 chars): ${metadataXml.substring(0, 500)}`);
75
+ if (debugEnabled) {
76
+ logger?.debug?.(`[DEBUG] Creating class - URL: ${url}`);
77
+ logger?.debug?.(`[DEBUG] Creating class - Method: POST`);
78
+ logger?.debug?.(`[DEBUG] Creating class - Headers: ${JSON.stringify(headers, null, 2)}`);
79
+ logger?.debug?.(`[DEBUG] Creating class - Body (first 500 chars): ${metadataXml.substring(0, 500)}`);
80
+ }
83
81
  try {
84
82
  const response = await connection.makeAdtRequest({
85
83
  url,
@@ -92,11 +90,11 @@ async function create(connection, args) {
92
90
  }
93
91
  catch (error) {
94
92
  // Log error details for debugging
95
- if (error.response) {
96
- logger.error(`[ERROR] Create class failed - Status: ${error.response.status}`);
97
- logger.error(`[ERROR] Create class failed - StatusText: ${error.response.statusText}`);
98
- logger.error(`[ERROR] Create class failed - Response headers: ${JSON.stringify(error.response.headers, null, 2)}`);
99
- logger.error(`[ERROR] Create class failed - Response data (first 1000 chars):`, typeof error.response.data === 'string'
93
+ if (error.response && debugEnabled) {
94
+ logger?.error?.(`[ERROR] Create class failed - Status: ${error.response.status}`);
95
+ logger?.error?.(`[ERROR] Create class failed - StatusText: ${error.response.statusText}`);
96
+ logger?.error?.(`[ERROR] Create class failed - Response headers: ${JSON.stringify(error.response.headers, null, 2)}`);
97
+ logger?.error?.(`[ERROR] Create class failed - Response data (first 1000 chars):`, typeof error.response.data === 'string'
100
98
  ? error.response.data.substring(0, 1000)
101
99
  : JSON.stringify(error.response.data).substring(0, 1000));
102
100
  }
@@ -5,7 +5,7 @@ import type { IAdtResponse as AxiosResponse, IAbapConnection } from '@mcp-abap-a
5
5
  /**
6
6
  * Run an ABAP class that implements if_oo_adt_classrun interface.
7
7
  *
8
- * This executes the class's main() method and returns console output.
8
+ * This executes the class's main() method and returns execution output.
9
9
  * The class must implement if_oo_adt_classrun interface to be executable.
10
10
  *
11
11
  * Endpoint: POST /sap/bc/adt/oo/classrun/{className}
@@ -20,7 +20,7 @@ import type { IAdtResponse as AxiosResponse, IAbapConnection } from '@mcp-abap-a
20
20
  * @param className - Name of the class to run (must implement if_oo_adt_classrun)
21
21
  * @param runnable - Optional flag to check if class is runnable (default: true, throws error if false)
22
22
  * @param sessionId - Optional session ID for session-based requests
23
- * @returns Response with console output from the class execution
23
+ * @returns Response with execution output from the class execution
24
24
  * @throws Error if runnable is false, or if class doesn't implement if_oo_adt_classrun or execution fails
25
25
  *
26
26
  * @example
@@ -38,7 +38,6 @@ import type { IAdtResponse as AxiosResponse, IAbapConnection } from '@mcp-abap-a
38
38
  * // ENDCLASS.
39
39
  *
40
40
  * const result = await runClass(connection, 'ZCL_TEST', true);
41
- * console.log(result.data); // Console output from the class
42
41
  *
43
42
  * // Check if class is runnable before attempting to run
44
43
  * if (classConfig.runnable) {
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/core/class/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAIlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,OAAc,EACxB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAmBxB;AAOD,YAAY,EACV,wBAAwB,IAAI,uBAAuB,EACnD,wBAAwB,IAAI,uBAAuB,GACpD,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,wBAAwB,EAAE,EACjC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,aAAa,CAAC,CAgDxB;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,MAAM,EACb,eAAe,GAAE,OAAc,GAC9B,OAAO,CAAC,aAAa,CAAC,CAaxB;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;CAAE,GACxE,OAAO,CAAC,aAAa,CAAC,CAuBxB;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,aAAa,CAAC,CAyCxB"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/core/class/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAIlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,OAAc,EACxB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAmBxB;AAOD,YAAY,EACV,wBAAwB,IAAI,uBAAuB,EACnD,wBAAwB,IAAI,uBAAuB,GACpD,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,wBAAwB,EAAE,EACjC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,aAAa,CAAC,CAgDxB;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,MAAM,EACb,eAAe,GAAE,OAAc,GAC9B,OAAO,CAAC,aAAa,CAAC,CAaxB;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;CAAE,GACxE,OAAO,CAAC,aAAa,CAAC,CAuBxB;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,aAAa,CAAC,CAyCxB"}
@@ -13,7 +13,7 @@ const timeouts_1 = require("../../utils/timeouts");
13
13
  /**
14
14
  * Run an ABAP class that implements if_oo_adt_classrun interface.
15
15
  *
16
- * This executes the class's main() method and returns console output.
16
+ * This executes the class's main() method and returns execution output.
17
17
  * The class must implement if_oo_adt_classrun interface to be executable.
18
18
  *
19
19
  * Endpoint: POST /sap/bc/adt/oo/classrun/{className}
@@ -28,7 +28,7 @@ const timeouts_1 = require("../../utils/timeouts");
28
28
  * @param className - Name of the class to run (must implement if_oo_adt_classrun)
29
29
  * @param runnable - Optional flag to check if class is runnable (default: true, throws error if false)
30
30
  * @param sessionId - Optional session ID for session-based requests
31
- * @returns Response with console output from the class execution
31
+ * @returns Response with execution output from the class execution
32
32
  * @throws Error if runnable is false, or if class doesn't implement if_oo_adt_classrun or execution fails
33
33
  *
34
34
  * @example
@@ -46,7 +46,6 @@ const timeouts_1 = require("../../utils/timeouts");
46
46
  * // ENDCLASS.
47
47
  *
48
48
  * const result = await runClass(connection, 'ZCL_TEST', true);
49
- * console.log(result.data); // Console output from the class
50
49
  *
51
50
  * // Check if class is runnable before attempting to run
52
51
  * if (classConfig.runnable) {
@@ -1 +1 @@
1
- {"version":3,"file":"AdtDataElement.d.ts","sourceRoot":"","sources":["../../../src/core/dataElement/AdtDataElement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAKrE,qBAAa,cACX,YAAW,UAAU,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;IAE5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAiB;gBAEvC,UAAU,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO;IAKzD;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAkB7B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAsE7B;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,QAAQ,GAAE,QAAQ,GAAG,UAAqB,EAC1C,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IA0BzC;;;OAGG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,iBAAiB,CAAC;IA0C7B;;;;OAIG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAoP7B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAmC7B;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAsB7B;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC;IAqB7B;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,iBAAiB,CAAC;IAsC7B;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAShE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC;CAgB9B"}
1
+ {"version":3,"file":"AdtDataElement.d.ts","sourceRoot":"","sources":["../../../src/core/dataElement/AdtDataElement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAKrE,qBAAa,cACX,YAAW,UAAU,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;IAE5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAiB;gBAEvC,UAAU,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO;IAKzD;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAkB7B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAsE7B;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,QAAQ,GAAE,QAAQ,GAAG,UAAqB,EAC1C,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IA0BzC;;;OAGG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,iBAAiB,CAAC;IA0C7B;;;;OAIG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAsP7B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAmC7B;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAsB7B;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC;IAqB7B;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,iBAAiB,CAAC;IAsC7B;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAShE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC;CAgB9B"}
@@ -231,7 +231,7 @@ class AdtDataElement {
231
231
  search_help: config.searchHelp,
232
232
  search_help_parameter: config.searchHelpParameter,
233
233
  set_get_parameter: config.setGetParameter,
234
- }, options.lockHandle);
234
+ }, options.lockHandle, this.logger);
235
235
  this.logger?.info?.('Data element updated (low-level)');
236
236
  return {
237
237
  updateResult: updateResponse,
@@ -277,7 +277,7 @@ class AdtDataElement {
277
277
  search_help: config.searchHelp,
278
278
  search_help_parameter: config.searchHelpParameter,
279
279
  set_get_parameter: config.setGetParameter,
280
- }, lockHandle);
280
+ }, lockHandle, this.logger);
281
281
  // updateDataElement returns void, so we don't store it in state
282
282
  this.logger?.info?.('Data element updated');
283
283
  // 3.5. Read with long polling to ensure object is ready after update
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * DataElement update operations
3
3
  */
4
- import type { IAdtResponse as AxiosResponse, IAbapConnection } from '@mcp-abap-adt/interfaces';
4
+ import type { IAdtResponse as AxiosResponse, IAbapConnection, ILogger } from '@mcp-abap-adt/interfaces';
5
5
  import type { IUpdateDataElementParams } from './types';
6
6
  /**
7
7
  * Get domain info to extract dataType, length, decimals
@@ -19,11 +19,11 @@ export declare function updateDataElementInternal(connection: IAbapConnection, a
19
19
  dataType: string;
20
20
  length: number;
21
21
  decimals: number;
22
- }): Promise<AxiosResponse>;
22
+ }, logger?: ILogger): Promise<AxiosResponse>;
23
23
  /**
24
24
  * Update data element - atomic PUT operation
25
25
  * NOTE: Requires object to be locked first via lockDataElement()
26
26
  * NOTE: Caller should call connection.setSessionType("stateful") before locking
27
27
  */
28
- export declare function updateDataElement(connection: IAbapConnection, params: IUpdateDataElementParams, lockHandle: string): Promise<AxiosResponse>;
28
+ export declare function updateDataElement(connection: IAbapConnection, params: IUpdateDataElementParams, lockHandle: string, logger?: ILogger): Promise<AxiosResponse>;
29
29
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/core/dataElement/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAExD;;GAEG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmCjE;AAmCD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,wBAAwB,EAC9B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAClE,OAAO,CAAC,aAAa,CAAC,CAgMxB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,wBAAwB,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CA+BxB"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/core/dataElement/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EACf,OAAO,EACR,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAIxD;;GAEG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmCjE;AAmCD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,wBAAwB,EAC9B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EACnE,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,CAgMxB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,wBAAwB,EAChC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,CAgCxB"}
@@ -10,6 +10,7 @@ const fast_xml_parser_1 = require("fast-xml-parser");
10
10
  const internalUtils_1 = require("../../utils/internalUtils");
11
11
  const systemInfo_1 = require("../../utils/systemInfo");
12
12
  const timeouts_1 = require("../../utils/timeouts");
13
+ const debugEnabled = process.env.DEBUG_ADT_LIBS === 'true';
13
14
  /**
14
15
  * Get domain info to extract dataType, length, decimals
15
16
  */
@@ -66,7 +67,7 @@ async function _getDataElementForVerification(connection, dataElementName) {
66
67
  * Update data element with new data
67
68
  * Requires object to be locked first (lockHandle must be provided)
68
69
  */
69
- async function updateDataElementInternal(connection, args, lockHandle, username, _domainInfo) {
70
+ async function updateDataElementInternal(connection, args, lockHandle, username, _domainInfo, logger) {
70
71
  const dataElementNameEncoded = (0, internalUtils_1.encodeSapObjectName)(args.data_element_name.toLowerCase());
71
72
  const corrNrParam = args.transport_request
72
73
  ? `&corrNr=${args.transport_request}`
@@ -190,8 +191,8 @@ async function updateDataElementInternal(connection, args, lockHandle, username,
190
191
  'Content-Type': 'application/vnd.sap.adt.dataelements.v2+xml; charset=utf-8',
191
192
  };
192
193
  // Debug: log XML when DEBUG_ADT_LIBS is enabled (formatted for readability)
193
- if (process.env.DEBUG_ADT_LIBS === 'true') {
194
- console.log('[UPDATE XML]');
194
+ if (debugEnabled) {
195
+ logger?.debug?.('[UPDATE XML]');
195
196
  // Format XML with indentation for readability
196
197
  try {
197
198
  const { XMLParser, XMLBuilder } = require('fast-xml-parser');
@@ -207,11 +208,11 @@ async function updateDataElementInternal(connection, args, lockHandle, username,
207
208
  });
208
209
  const parsed = parser.parse(xmlBody);
209
210
  const formatted = builder.build(parsed);
210
- console.log(formatted);
211
+ logger?.debug?.(formatted);
211
212
  }
212
213
  catch {
213
214
  // If formatting fails, just log as-is
214
- console.log(xmlBody);
215
+ logger?.debug?.(xmlBody);
215
216
  }
216
217
  }
217
218
  return connection.makeAdtRequest({
@@ -227,7 +228,7 @@ async function updateDataElementInternal(connection, args, lockHandle, username,
227
228
  * NOTE: Requires object to be locked first via lockDataElement()
228
229
  * NOTE: Caller should call connection.setSessionType("stateful") before locking
229
230
  */
230
- async function updateDataElement(connection, params, lockHandle) {
231
+ async function updateDataElement(connection, params, lockHandle, logger) {
231
232
  if (!params.data_element_name) {
232
233
  throw new Error('Data element name is required');
233
234
  }
@@ -246,5 +247,5 @@ async function updateDataElement(connection, params, lockHandle) {
246
247
  length: params.length || 0,
247
248
  decimals: params.decimals || 0,
248
249
  };
249
- return updateDataElementInternal(connection, params, lockHandle, username, domainInfo);
250
+ return updateDataElementInternal(connection, params, lockHandle, username, domainInfo, logger);
250
251
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AdtDomain.d.ts","sourceRoot":"","sources":["../../../src/core/domain/AdtDomain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOpD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK3D,qBAAa,SAAU,YAAW,UAAU,CAAC,aAAa,EAAE,YAAY,CAAC;IACvE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAY;gBAElC,UAAU,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO;IAKzD;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAkBrE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,YAAY,CAAC;IAuExB;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,QAAQ,GAAE,QAAQ,GAAG,UAAqB,EAC1C,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAwBpC;;;OAGG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,YAAY,CAAC;IAwCxB;;;OAGG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,YAAY,CAAC;IA4NxB;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAmCnE;;;OAGG;IACG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAsBrE;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC;IAqBxB;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,YAAY,CAAC;IAoCxB;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAS3D;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC;CAgBzB"}
1
+ {"version":3,"file":"AdtDomain.d.ts","sourceRoot":"","sources":["../../../src/core/domain/AdtDomain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOpD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK3D,qBAAa,SAAU,YAAW,UAAU,CAAC,aAAa,EAAE,YAAY,CAAC;IACvE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAY;gBAElC,UAAU,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO;IAKzD;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAkBrE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,YAAY,CAAC;IAuExB;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,QAAQ,GAAE,QAAQ,GAAG,UAAqB,EAC1C,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAwBpC;;;OAGG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,YAAY,CAAC;IAwCxB;;;OAGG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,YAAY,CAAC;IA+NxB;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAmCnE;;;OAGG;IACG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAsBrE;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC;IAuBxB;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,YAAY,CAAC;IAoCxB;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAS3D;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC;CAgBzB"}
@@ -238,7 +238,7 @@ class AdtDomain {
238
238
  const xmlToCheck = options?.xmlContent;
239
239
  if (xmlToCheck) {
240
240
  this.logger?.info?.('check(inactive)');
241
- const checkResponse = await (0, check_1.checkDomainSyntax)(this.connection, config.domainName, 'inactive', xmlToCheck);
241
+ const checkResponse = await (0, check_1.checkDomainSyntax)(this.connection, config.domainName, 'inactive', xmlToCheck, this.logger);
242
242
  state.checkResult = checkResponse;
243
243
  this.logger?.info?.('checked(inactive)');
244
244
  }
@@ -285,7 +285,7 @@ class AdtDomain {
285
285
  }
286
286
  // 5. Final check (no stateful needed)
287
287
  this.logger?.info?.('check(inactive)');
288
- const checkResponse2 = await (0, check_1.checkDomainSyntax)(this.connection, config.domainName, 'inactive');
288
+ const checkResponse2 = await (0, check_1.checkDomainSyntax)(this.connection, config.domainName, 'inactive', undefined, this.logger);
289
289
  state.checkResult = checkResponse2;
290
290
  this.logger?.info?.('checked(inactive)');
291
291
  // 6. Activate (if requested, no stateful needed - uses same session/cookies)
@@ -416,7 +416,7 @@ class AdtDomain {
416
416
  };
417
417
  // Map status to version
418
418
  const version = status === 'active' ? 'active' : 'inactive';
419
- const checkResponse = await (0, check_1.checkDomainSyntax)(this.connection, config.domainName, version);
419
+ const checkResponse = await (0, check_1.checkDomainSyntax)(this.connection, config.domainName, version, undefined, this.logger);
420
420
  state.checkResult = checkResponse;
421
421
  return state;
422
422
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Domain check operations
3
3
  */
4
- import type { IAdtResponse as AxiosResponse, IAbapConnection } from '@mcp-abap-adt/interfaces';
4
+ import type { IAdtResponse as AxiosResponse, IAbapConnection, ILogger } from '@mcp-abap-adt/interfaces';
5
5
  /**
6
6
  * Check domain syntax
7
7
  *
@@ -13,5 +13,5 @@ import type { IAdtResponse as AxiosResponse, IAbapConnection } from '@mcp-abap-a
13
13
  *
14
14
  * Note: When xmlContent is provided, it should be the same XML that will be sent in PUT request.
15
15
  */
16
- export declare function checkDomainSyntax(connection: IAbapConnection, domainName: string, version: 'active' | 'inactive', xmlContent?: string): Promise<AxiosResponse>;
16
+ export declare function checkDomainSyntax(connection: IAbapConnection, domainName: string, version: 'active' | 'inactive', xmlContent?: string, logger?: ILogger): Promise<AxiosResponse>;
17
17
  //# sourceMappingURL=check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/domain/check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAKlC;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,GAAG,UAAU,EAC9B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAuExB"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/domain/check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EACf,OAAO,EACR,MAAM,0BAA0B,CAAC;AAKlC;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,GAAG,UAAU,EAC9B,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,CAuExB"}
@@ -18,7 +18,7 @@ const timeouts_1 = require("../../utils/timeouts");
18
18
  *
19
19
  * Note: When xmlContent is provided, it should be the same XML that will be sent in PUT request.
20
20
  */
21
- async function checkDomainSyntax(connection, domainName, version, xmlContent) {
21
+ async function checkDomainSyntax(connection, domainName, version, xmlContent, logger) {
22
22
  let response;
23
23
  if (xmlContent) {
24
24
  // Check with XML content (for unsaved changes or new content validation)
@@ -62,7 +62,7 @@ async function checkDomainSyntax(connection, domainName, version, xmlContent) {
62
62
  if (hasCheckedMessage) {
63
63
  // This is expected behavior - domain was already checked, return response anyway
64
64
  if (process.env.DEBUG_ADT_LIBS === 'true') {
65
- console.warn(`Check warning for domain ${domainName}: ${errorMessage} (domain was already checked)`);
65
+ logger?.warn?.(`Check warning for domain ${domainName}: ${errorMessage} (domain was already checked)`);
66
66
  }
67
67
  return response; // Return response anyway
68
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AdtEnhancement.d.ts","sourceRoot":"","sources":["../../../src/core/enhancement/AdtEnhancement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAWpD,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEvB,MAAM,SAAS,CAAC;AAKjB,qBAAa,cACX,YAAW,UAAU,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;IAE5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAiB;gBAEvC,UAAU,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO;IAKzD;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAqC7B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAmE7B;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,GAAE,QAAQ,GAAG,UAAqB,EACzC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAoDzC;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,iBAAiB,CAAC;IAgD7B;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,iBAAiB,CAAC;IA+C7B;;;;;OAKG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAqO7B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAiD7B;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAqC7B;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC;IAoC7B;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAahE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC;CAkB9B"}
1
+ {"version":3,"file":"AdtEnhancement.d.ts","sourceRoot":"","sources":["../../../src/core/enhancement/AdtEnhancement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAWpD,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEvB,MAAM,SAAS,CAAC;AAKjB,qBAAa,cACX,YAAW,UAAU,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;IAE5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAiB;gBAEvC,UAAU,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO;IAKzD;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAqC7B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAuE7B;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,GAAE,QAAQ,GAAG,UAAqB,EACzC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAoDzC;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,iBAAiB,CAAC;IAgD7B;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,iBAAiB,CAAC;IA+C7B;;;;;OAKG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IA6O7B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAiD7B;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAqC7B;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC;IAoC7B;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAahE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC;CAkB9B"}
@@ -106,7 +106,7 @@ class AdtEnhancement {
106
106
  transport_request: config.transportRequest,
107
107
  enhancement_spot: config.enhancementSpot,
108
108
  badi_definition: config.badiDefinition,
109
- });
109
+ }, this.logger);
110
110
  state.createResult = createResponse;
111
111
  objectCreated = true;
112
112
  this.logger?.info?.('Enhancement created');
@@ -304,7 +304,7 @@ class AdtEnhancement {
304
304
  source_code: codeToUpdate,
305
305
  lock_handle: options.lockHandle,
306
306
  transport_request: config.transportRequest,
307
- });
307
+ }, this.logger);
308
308
  this.logger?.info?.('Enhancement updated (low-level)');
309
309
  return {
310
310
  updateResult: updateResponse,
@@ -337,7 +337,7 @@ class AdtEnhancement {
337
337
  source_code: codeToCheck,
338
338
  lock_handle: lockHandle,
339
339
  transport_request: config.transportRequest,
340
- });
340
+ }, this.logger);
341
341
  state.updateResult = updateResponse;
342
342
  this.logger?.info?.('Enhancement updated');
343
343
  // 3.5. Read with long polling (wait for object to be ready after update)
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Enhancement create operations - Low-level functions
3
3
  */
4
- import type { IAdtResponse as AxiosResponse, IAbapConnection } from '@mcp-abap-adt/interfaces';
4
+ import type { IAdtResponse as AxiosResponse, IAbapConnection, ILogger } from '@mcp-abap-adt/interfaces';
5
5
  import { type ICreateEnhancementParams } from './types';
6
6
  /**
7
7
  * Low-level: Create enhancement object with metadata (POST)
@@ -13,5 +13,5 @@ import { type ICreateEnhancementParams } from './types';
13
13
  * @param args - Create parameters
14
14
  * @returns Axios response
15
15
  */
16
- export declare function create(connection: IAbapConnection, args: ICreateEnhancementParams): Promise<AxiosResponse>;
16
+ export declare function create(connection: IAbapConnection, args: ICreateEnhancementParams, logger?: ILogger): Promise<AxiosResponse>;
17
17
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/core/enhancement/create.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAGL,KAAK,wBAAwB,EAE9B,MAAM,SAAS,CAAC;AAoDjB;;;;;;;;;GASG;AACH,wBAAsB,MAAM,CAC1B,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAsExB"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/core/enhancement/create.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EACf,OAAO,EACR,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAGL,KAAK,wBAAwB,EAE9B,MAAM,SAAS,CAAC;AAgDjB;;;;;;;;;GASG;AACH,wBAAsB,MAAM,CAC1B,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,wBAAwB,EAC9B,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,CAwExB"}
@@ -9,10 +9,6 @@ const systemInfo_1 = require("../../utils/systemInfo");
9
9
  const timeouts_1 = require("../../utils/timeouts");
10
10
  const types_1 = require("./types");
11
11
  const debugEnabled = process.env.DEBUG_ADT_LIBS === 'true';
12
- const logger = {
13
- debug: debugEnabled ? console.log : () => { },
14
- error: debugEnabled ? console.error : () => { },
15
- };
16
12
  /**
17
13
  * Build XML payload for enhancement creation based on type
18
14
  */
@@ -56,7 +52,7 @@ function buildCreateXml(args, masterSystem, username) {
56
52
  * @param args - Create parameters
57
53
  * @returns Axios response
58
54
  */
59
- async function create(connection, args) {
55
+ async function create(connection, args, logger) {
60
56
  if (!args.enhancement_name) {
61
57
  throw new Error('enhancement_name is required');
62
58
  }
@@ -81,10 +77,12 @@ async function create(connection, args) {
81
77
  Accept: 'application/vnd.sap.adt.enhancements.v1+xml, application/xml',
82
78
  'Content-Type': 'application/vnd.sap.adt.enhancements.v1+xml',
83
79
  };
84
- logger.debug(`[DEBUG] Creating enhancement - URL: ${url}`);
85
- logger.debug(`[DEBUG] Creating enhancement - Method: POST`);
86
- logger.debug(`[DEBUG] Creating enhancement - Headers: ${JSON.stringify(headers, null, 2)}`);
87
- logger.debug(`[DEBUG] Creating enhancement - Body (first 500 chars): ${metadataXml.substring(0, 500)}`);
80
+ if (debugEnabled) {
81
+ logger?.debug?.(`[DEBUG] Creating enhancement - URL: ${url}`);
82
+ logger?.debug?.(`[DEBUG] Creating enhancement - Method: POST`);
83
+ logger?.debug?.(`[DEBUG] Creating enhancement - Headers: ${JSON.stringify(headers, null, 2)}`);
84
+ logger?.debug?.(`[DEBUG] Creating enhancement - Body (first 500 chars): ${metadataXml.substring(0, 500)}`);
85
+ }
88
86
  try {
89
87
  const response = await connection.makeAdtRequest({
90
88
  url,
@@ -96,11 +94,11 @@ async function create(connection, args) {
96
94
  return response;
97
95
  }
98
96
  catch (error) {
99
- if (error.response) {
100
- logger.error(`[ERROR] Create enhancement failed - Status: ${error.response.status}`);
101
- logger.error(`[ERROR] Create enhancement failed - StatusText: ${error.response.statusText}`);
102
- logger.error(`[ERROR] Create enhancement failed - Response headers: ${JSON.stringify(error.response.headers, null, 2)}`);
103
- logger.error(`[ERROR] Create enhancement failed - Response data (first 1000 chars):`, typeof error.response.data === 'string'
97
+ if (error.response && debugEnabled) {
98
+ logger?.error?.(`[ERROR] Create enhancement failed - Status: ${error.response.status}`);
99
+ logger?.error?.(`[ERROR] Create enhancement failed - StatusText: ${error.response.statusText}`);
100
+ logger?.error?.(`[ERROR] Create enhancement failed - Response headers: ${JSON.stringify(error.response.headers, null, 2)}`);
101
+ logger?.error?.(`[ERROR] Create enhancement failed - Response data (first 1000 chars):`, typeof error.response.data === 'string'
104
102
  ? error.response.data.substring(0, 1000)
105
103
  : JSON.stringify(error.response.data).substring(0, 1000));
106
104
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Enhancement update operations - Low-level functions
3
3
  */
4
- import type { IAdtResponse as AxiosResponse, IAbapConnection } from '@mcp-abap-adt/interfaces';
4
+ import type { IAdtResponse as AxiosResponse, IAbapConnection, ILogger } from '@mcp-abap-adt/interfaces';
5
5
  import { type EnhancementType, type IUpdateEnhancementParams } from './types';
6
6
  /**
7
7
  * Low-level: Update enhancement source code (PUT)
@@ -13,7 +13,7 @@ import { type EnhancementType, type IUpdateEnhancementParams } from './types';
13
13
  * @param args - Update parameters
14
14
  * @returns Axios response
15
15
  */
16
- export declare function update(connection: IAbapConnection, args: IUpdateEnhancementParams): Promise<AxiosResponse>;
16
+ export declare function update(connection: IAbapConnection, args: IUpdateEnhancementParams, logger?: ILogger): Promise<AxiosResponse>;
17
17
  /**
18
18
  * Convenience function: Update enhancement with simpler signature
19
19
  *
@@ -25,5 +25,5 @@ export declare function update(connection: IAbapConnection, args: IUpdateEnhance
25
25
  * @param transportRequest - Optional transport request
26
26
  * @returns Axios response
27
27
  */
28
- export declare function updateEnhancement(connection: IAbapConnection, enhancementType: EnhancementType, enhancementName: string, sourceCode: string, lockHandle: string, transportRequest?: string): Promise<AxiosResponse>;
28
+ export declare function updateEnhancement(connection: IAbapConnection, enhancementType: EnhancementType, enhancementName: string, sourceCode: string, lockHandle: string, transportRequest?: string, logger?: ILogger): Promise<AxiosResponse>;
29
29
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/core/enhancement/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,wBAAwB,EAE9B,MAAM,SAAS,CAAC;AAQjB;;;;;;;;;GASG;AACH,wBAAsB,MAAM,CAC1B,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,aAAa,CAAC,CA2ExB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,eAAe,EAC3B,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,aAAa,CAAC,CAQxB"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/core/enhancement/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,IAAI,aAAa,EAC7B,eAAe,EACf,OAAO,EACR,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,wBAAwB,EAE9B,MAAM,SAAS,CAAC;AAIjB;;;;;;;;;GASG;AACH,wBAAsB,MAAM,CAC1B,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,wBAAwB,EAC9B,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,CA6ExB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,eAAe,EAC3B,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,MAAM,EACzB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,aAAa,CAAC,CAYxB"}