arc-1 0.6.0 → 0.6.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.
Files changed (90) hide show
  1. package/README.md +25 -26
  2. package/dist/adt/btp.d.ts +19 -12
  3. package/dist/adt/btp.d.ts.map +1 -1
  4. package/dist/adt/btp.js +48 -35
  5. package/dist/adt/btp.js.map +1 -1
  6. package/dist/adt/client.d.ts +20 -2
  7. package/dist/adt/client.d.ts.map +1 -1
  8. package/dist/adt/client.js +65 -2
  9. package/dist/adt/client.js.map +1 -1
  10. package/dist/adt/codeintel.d.ts.map +1 -1
  11. package/dist/adt/codeintel.js +1 -10
  12. package/dist/adt/codeintel.js.map +1 -1
  13. package/dist/adt/config.d.ts +2 -0
  14. package/dist/adt/config.d.ts.map +1 -1
  15. package/dist/adt/config.js +2 -0
  16. package/dist/adt/config.js.map +1 -1
  17. package/dist/adt/crud.d.ts +7 -0
  18. package/dist/adt/crud.d.ts.map +1 -1
  19. package/dist/adt/crud.js +35 -3
  20. package/dist/adt/crud.js.map +1 -1
  21. package/dist/adt/ddic-xml.d.ts +78 -0
  22. package/dist/adt/ddic-xml.d.ts.map +1 -0
  23. package/dist/adt/ddic-xml.js +203 -0
  24. package/dist/adt/ddic-xml.js.map +1 -0
  25. package/dist/adt/devtools.d.ts +30 -7
  26. package/dist/adt/devtools.d.ts.map +1 -1
  27. package/dist/adt/devtools.js +215 -76
  28. package/dist/adt/devtools.js.map +1 -1
  29. package/dist/adt/diagnostics.d.ts.map +1 -1
  30. package/dist/adt/diagnostics.js +105 -184
  31. package/dist/adt/diagnostics.js.map +1 -1
  32. package/dist/adt/errors.d.ts +12 -0
  33. package/dist/adt/errors.d.ts.map +1 -1
  34. package/dist/adt/errors.js +42 -0
  35. package/dist/adt/errors.js.map +1 -1
  36. package/dist/adt/features.d.ts.map +1 -1
  37. package/dist/adt/features.js +23 -3
  38. package/dist/adt/features.js.map +1 -1
  39. package/dist/adt/flp.d.ts +43 -0
  40. package/dist/adt/flp.d.ts.map +1 -0
  41. package/dist/adt/flp.js +213 -0
  42. package/dist/adt/flp.js.map +1 -0
  43. package/dist/adt/http.d.ts +2 -0
  44. package/dist/adt/http.d.ts.map +1 -1
  45. package/dist/adt/http.js +162 -4
  46. package/dist/adt/http.js.map +1 -1
  47. package/dist/adt/transport.d.ts +48 -3
  48. package/dist/adt/transport.d.ts.map +1 -1
  49. package/dist/adt/transport.js +222 -32
  50. package/dist/adt/transport.js.map +1 -1
  51. package/dist/adt/types.d.ts +107 -0
  52. package/dist/adt/types.d.ts.map +1 -1
  53. package/dist/adt/ui5-repository.d.ts +19 -0
  54. package/dist/adt/ui5-repository.d.ts.map +1 -0
  55. package/dist/adt/ui5-repository.js +43 -0
  56. package/dist/adt/ui5-repository.js.map +1 -0
  57. package/dist/adt/xml-parser.d.ts +43 -1
  58. package/dist/adt/xml-parser.d.ts.map +1 -1
  59. package/dist/adt/xml-parser.js +208 -3
  60. package/dist/adt/xml-parser.js.map +1 -1
  61. package/dist/handlers/intent.d.ts +20 -6
  62. package/dist/handlers/intent.d.ts.map +1 -1
  63. package/dist/handlers/intent.js +1304 -104
  64. package/dist/handlers/intent.js.map +1 -1
  65. package/dist/handlers/schemas.d.ts +240 -0
  66. package/dist/handlers/schemas.d.ts.map +1 -1
  67. package/dist/handlers/schemas.js +201 -5
  68. package/dist/handlers/schemas.js.map +1 -1
  69. package/dist/handlers/tools.d.ts.map +1 -1
  70. package/dist/handlers/tools.js +339 -49
  71. package/dist/handlers/tools.js.map +1 -1
  72. package/dist/server/config.d.ts.map +1 -1
  73. package/dist/server/config.js +15 -3
  74. package/dist/server/config.js.map +1 -1
  75. package/dist/server/http.d.ts.map +1 -1
  76. package/dist/server/http.js +32 -3
  77. package/dist/server/http.js.map +1 -1
  78. package/dist/server/server.d.ts +1 -1
  79. package/dist/server/server.d.ts.map +1 -1
  80. package/dist/server/server.js +38 -6
  81. package/dist/server/server.js.map +1 -1
  82. package/dist/server/types.d.ts +2 -0
  83. package/dist/server/types.d.ts.map +1 -1
  84. package/dist/server/types.js +5 -3
  85. package/dist/server/types.js.map +1 -1
  86. package/dist/server/xsuaa.d.ts +13 -0
  87. package/dist/server/xsuaa.d.ts.map +1 -1
  88. package/dist/server/xsuaa.js +28 -2
  89. package/dist/server/xsuaa.js.map +1 -1
  90. package/package.json +19 -6
@@ -11,11 +11,23 @@ import { type SafetyConfig } from './safety.js';
11
11
  import type { SyntaxCheckResult, UnitTestResult } from './types.js';
12
12
  /** Run syntax check on an ABAP object */
13
13
  export declare function syntaxCheck(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string): Promise<SyntaxCheckResult>;
14
- /** Activate (publish) ABAP objects */
15
- export declare function activate(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string): Promise<{
14
+ /** Structured message from an activation response */
15
+ export interface ActivationMessage {
16
+ severity: 'error' | 'warning' | 'info';
17
+ text: string;
18
+ uri?: string;
19
+ line?: number;
20
+ }
21
+ /** Result of an activation operation */
22
+ export interface ActivationResult {
16
23
  success: boolean;
17
24
  messages: string[];
18
- }>;
25
+ details: ActivationMessage[];
26
+ }
27
+ /** Activate (publish) ABAP objects */
28
+ export declare function activate(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string, options?: {
29
+ preaudit?: boolean;
30
+ }): Promise<ActivationResult>;
19
31
  /**
20
32
  * Activate (publish) multiple ABAP objects in a single batch call.
21
33
  *
@@ -26,10 +38,19 @@ export declare function activate(http: AdtHttpClient, safety: SafetyConfig, obje
26
38
  export declare function activateBatch(http: AdtHttpClient, safety: SafetyConfig, objects: Array<{
27
39
  url: string;
28
40
  name: string;
29
- }>): Promise<{
30
- success: boolean;
31
- messages: string[];
32
- }>;
41
+ }>, options?: {
42
+ preaudit?: boolean;
43
+ }): Promise<ActivationResult>;
44
+ /** Result of a publish/unpublish operation */
45
+ export interface PublishResult {
46
+ severity: string;
47
+ shortText: string;
48
+ longText: string;
49
+ }
50
+ /** Publish an OData service binding (makes the service available for consumption) */
51
+ export declare function publishServiceBinding(http: AdtHttpClient, safety: SafetyConfig, name: string, version?: string): Promise<PublishResult>;
52
+ /** Unpublish an OData service binding (removes the service from consumption) */
53
+ export declare function unpublishServiceBinding(http: AdtHttpClient, safety: SafetyConfig, name: string, version?: string): Promise<PublishResult>;
33
54
  /** Run ABAP unit tests for an object */
34
55
  export declare function runUnitTests(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string): Promise<UnitTestResult[]>;
35
56
  /** Run ATC check on an object */
@@ -43,4 +64,6 @@ export interface AtcFinding {
43
64
  uri: string;
44
65
  line: number;
45
66
  }
67
+ /** Parse activation response XML to detect errors via proper XML parsing */
68
+ export declare function parseActivationResult(xml: string): ActivationResult;
46
69
  //# sourceMappingURL=devtools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../src/adt/devtools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnF,yCAAyC;AACzC,wBAAsB,WAAW,CAC/B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAa5B;AAED,sCAAsC;AACtC,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA0BnD;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC5C,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA6BnD;AAED,wCAAwC;AACxC,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,EAAE,CAAC,CAiC3B;AAED,iCAAiC;AACjC,wBAAsB,WAAW,CAC/B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC,CA2BrC;AAID,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../src/adt/devtools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAC;AAGnF,yCAAyC;AACzC,wBAAsB,WAAW,CAC/B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAa5B;AAED,qDAAqD;AACrD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wCAAwC;AACxC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,sCAAsC;AACtC,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAmB3B;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAC7C,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAwB3B;AAED,8CAA8C;AAC9C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAqCD,qFAAqF;AACrF,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,SAAS,GACf,OAAO,CAAC,aAAa,CAAC,CAWxB;AAED,gFAAgF;AAChF,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,SAAS,GACf,OAAO,CAAC,aAAa,CAAC,CAWxB;AAED,wCAAwC;AACxC,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,EAAE,CAAC,CAiC3B;AAED,iCAAiC;AACjC,wBAAsB,WAAW,CAC/B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC,CAkCrC;AAID,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAoCnE"}
@@ -7,12 +7,13 @@
7
7
  * - RunATCCheck: ABAP Test Cockpit (code quality)
8
8
  */
9
9
  import { checkOperation, OperationType } from './safety.js';
10
+ import { escapeXmlAttr, findDeepNodes, parseXml } from './xml-parser.js';
10
11
  /** Run syntax check on an ABAP object */
11
12
  export async function syntaxCheck(http, safety, objectUrl) {
12
13
  checkOperation(safety, OperationType.Read, 'SyntaxCheck');
13
14
  const body = `<?xml version="1.0" encoding="UTF-8"?>
14
15
  <chkrun:checkObjectList xmlns:chkrun="http://www.sap.com/adt/checkrun" xmlns:adtcore="http://www.sap.com/adt/core">
15
- <chkrun:checkObject adtcore:uri="${objectUrl}" chkrun:version="active"/>
16
+ <chkrun:checkObject adtcore:uri="${escapeXmlAttr(objectUrl)}" chkrun:version="active"/>
16
17
  </chkrun:checkObjectList>`;
17
18
  const resp = await http.post('/sap/bc/adt/checkruns', body, 'application/vnd.sap.adt.checkobjects+xml', {
18
19
  Accept: 'application/vnd.sap.adt.checkmessages+xml',
@@ -20,23 +21,17 @@ export async function syntaxCheck(http, safety, objectUrl) {
20
21
  return parseSyntaxCheckResult(resp.body);
21
22
  }
22
23
  /** Activate (publish) ABAP objects */
23
- export async function activate(http, safety, objectUrl) {
24
+ export async function activate(http, safety, objectUrl, options) {
24
25
  checkOperation(safety, OperationType.Activate, 'Activate');
26
+ const preaudit = options?.preaudit !== false;
25
27
  const body = `<?xml version="1.0" encoding="UTF-8"?>
26
28
  <adtcore:objectReferences xmlns:adtcore="http://www.sap.com/adt/core">
27
- <adtcore:objectReference adtcore:uri="${objectUrl}"/>
29
+ <adtcore:objectReference adtcore:uri="${escapeXmlAttr(objectUrl)}"/>
28
30
  </adtcore:objectReferences>`;
29
- const resp = await http.post('/sap/bc/adt/activation?method=activate&preauditRequested=true', body, 'application/xml', { Accept: 'application/xml' });
30
- // Check if activation succeeded (no error messages)
31
- const hasErrors = resp.body.includes('severity="error"') || resp.body.includes('type="E"');
32
- const messages = [];
33
- // Extract message texts
34
- const msgRegex = /shortText="([^"]+)"/g;
35
- let match;
36
- while ((match = msgRegex.exec(resp.body)) !== null) {
37
- messages.push(match[1]);
38
- }
39
- return { success: !hasErrors, messages };
31
+ // Use application/* wildcard for Content-Type matches how ADT Eclipse
32
+ // and abap-adt-api send activation requests. More resilient across SAP versions.
33
+ const resp = await http.post(`/sap/bc/adt/activation?method=activate&preauditRequested=${preaudit}`, body, 'application/*', { Accept: 'application/xml' });
34
+ return parseActivationResult(resp.body);
40
35
  }
41
36
  /**
42
37
  * Activate (publish) multiple ABAP objects in a single batch call.
@@ -45,25 +40,67 @@ export async function activate(http, safety, objectUrl) {
45
40
  * This is essential for RAP stacks where objects depend on each other
46
41
  * (DDLS → BDEF → SRVD → SRVB) and must be activated together.
47
42
  */
48
- export async function activateBatch(http, safety, objects) {
43
+ export async function activateBatch(http, safety, objects, options) {
49
44
  checkOperation(safety, OperationType.Activate, 'ActivateBatch');
45
+ const preaudit = options?.preaudit !== false;
50
46
  const refs = objects
51
- .map((o) => ` <adtcore:objectReference adtcore:uri="${o.url}" adtcore:name="${o.name}"/>`)
47
+ .map((o) => ` <adtcore:objectReference adtcore:uri="${escapeXmlAttr(o.url)}" adtcore:name="${escapeXmlAttr(o.name)}"/>`)
52
48
  .join('\n');
53
49
  const body = `<?xml version="1.0" encoding="UTF-8"?>
54
50
  <adtcore:objectReferences xmlns:adtcore="http://www.sap.com/adt/core">
55
51
  ${refs}
56
52
  </adtcore:objectReferences>`;
57
- const resp = await http.post('/sap/bc/adt/activation?method=activate&preauditRequested=true', body, 'application/xml', { Accept: 'application/xml' });
58
- // Check if activation succeeded (no error messages)
59
- const hasErrors = resp.body.includes('severity="error"') || resp.body.includes('type="E"');
60
- const messages = [];
61
- const msgRegex = /shortText="([^"]+)"/g;
62
- let match;
63
- while ((match = msgRegex.exec(resp.body)) !== null) {
64
- messages.push(match[1]);
53
+ const resp = await http.post(`/sap/bc/adt/activation?method=activate&preauditRequested=${preaudit}`, body, 'application/*', { Accept: 'application/xml' });
54
+ return parseActivationResult(resp.body);
55
+ }
56
+ function findDeepValue(obj, key) {
57
+ if (!obj || typeof obj !== 'object')
58
+ return undefined;
59
+ if (Array.isArray(obj)) {
60
+ for (const item of obj) {
61
+ const found = findDeepValue(item, key);
62
+ if (found !== undefined)
63
+ return found;
64
+ }
65
+ return undefined;
66
+ }
67
+ const record = obj;
68
+ if (key in record)
69
+ return record[key];
70
+ for (const val of Object.values(record)) {
71
+ const found = findDeepValue(val, key);
72
+ if (found !== undefined)
73
+ return found;
65
74
  }
66
- return { success: !hasErrors, messages };
75
+ return undefined;
76
+ }
77
+ function parsePublishResponse(xml) {
78
+ if (!xml.trim())
79
+ return { severity: 'OK', shortText: '', longText: '' };
80
+ const parsed = parseXml(xml);
81
+ const severity = findDeepValue(parsed, 'SEVERITY');
82
+ const shortText = findDeepValue(parsed, 'SHORT_TEXT');
83
+ const longText = findDeepValue(parsed, 'LONG_TEXT');
84
+ return {
85
+ severity: severity != null ? String(severity) : 'UNKNOWN',
86
+ shortText: shortText != null ? String(shortText) : '',
87
+ longText: longText != null ? String(longText) : '',
88
+ };
89
+ }
90
+ function publishBody(name) {
91
+ return `<adtcore:objectReferences xmlns:adtcore="http://www.sap.com/adt/core"><adtcore:objectReference adtcore:name="${escapeXmlAttr(name)}"/></adtcore:objectReferences>`;
92
+ }
93
+ /** Publish an OData service binding (makes the service available for consumption) */
94
+ export async function publishServiceBinding(http, safety, name, version = '0001') {
95
+ checkOperation(safety, OperationType.Activate, 'PublishServiceBinding');
96
+ const resp = await http.post(`/sap/bc/adt/businessservices/odatav2/publishjobs?servicename=${encodeURIComponent(name)}&serviceversion=${encodeURIComponent(version)}`, publishBody(name), 'application/xml', { Accept: 'application/*' });
97
+ return parsePublishResponse(resp.body);
98
+ }
99
+ /** Unpublish an OData service binding (removes the service from consumption) */
100
+ export async function unpublishServiceBinding(http, safety, name, version = '0001') {
101
+ checkOperation(safety, OperationType.Activate, 'UnpublishServiceBinding');
102
+ const resp = await http.post(`/sap/bc/adt/businessservices/odatav2/unpublishjobs?servicename=${encodeURIComponent(name)}&serviceversion=${encodeURIComponent(version)}`, publishBody(name), 'application/xml', { Accept: 'application/*' });
103
+ return parsePublishResponse(resp.body);
67
104
  }
68
105
  /** Run ABAP unit tests for an object */
69
106
  export async function runUnitTests(http, safety, objectUrl) {
@@ -82,13 +119,13 @@ export async function runUnitTests(http, safety, objectUrl) {
82
119
  <adtcore:objectSets xmlns:adtcore="http://www.sap.com/adt/core">
83
120
  <objectSet kind="inclusive">
84
121
  <adtcore:objectReferences>
85
- <adtcore:objectReference adtcore:uri="${objectUrl}"/>
122
+ <adtcore:objectReference adtcore:uri="${escapeXmlAttr(objectUrl)}"/>
86
123
  </adtcore:objectReferences>
87
124
  </objectSet>
88
125
  </adtcore:objectSets>
89
126
  </aunit:runConfiguration>`;
90
127
  const resp = await http.post('/sap/bc/adt/abapunit/testruns', body, 'application/vnd.sap.adt.abapunit.testruns.config.v4+xml', {
91
- Accept: 'application/xml',
128
+ Accept: 'application/vnd.sap.adt.abapunit.testruns.result.v2+xml',
92
129
  });
93
130
  return parseUnitTestResults(resp.body);
94
131
  }
@@ -101,7 +138,7 @@ export async function runAtcCheck(http, safety, objectUrl, variant) {
101
138
  <objectSets xmlns:adtcore="http://www.sap.com/adt/core">
102
139
  <objectSet kind="inclusive">
103
140
  <adtcore:objectReferences>
104
- <adtcore:objectReference adtcore:uri="${objectUrl}"/>
141
+ <adtcore:objectReference adtcore:uri="${escapeXmlAttr(objectUrl)}"/>
105
142
  </adtcore:objectReferences>
106
143
  </objectSet>
107
144
  </objectSets>
@@ -109,29 +146,90 @@ export async function runAtcCheck(http, safety, objectUrl, variant) {
109
146
  const createResp = await http.post('/sap/bc/adt/atc/runs?worklistId=1', createBody, 'application/xml', {
110
147
  Accept: 'application/xml',
111
148
  });
112
- // Parse worklist ID from response and fetch results
113
- const worklistId = extractAttr(createResp.body, 'id') || '1';
149
+ // Parse worklist ID from response via proper XML parsing
150
+ const createParsed = parseXml(createResp.body);
151
+ const runs = findDeepNodes(createParsed, 'run');
152
+ const runNode = runs[0];
153
+ const worklistId = runNode
154
+ ? String(runNode['@_worklistId'] ?? runNode['@_id'] ?? '1')
155
+ : '1';
114
156
  const resultResp = await http.get(`/sap/bc/adt/atc/worklists/${worklistId}`, {
115
157
  Accept: 'application/atc.worklist.v1+xml',
116
158
  });
117
159
  return { findings: parseAtcFindings(resultResp.body) };
118
160
  }
119
- function parseSyntaxCheckResult(xml) {
161
+ /** Parse activation response XML to detect errors via proper XML parsing */
162
+ export function parseActivationResult(xml) {
163
+ if (!xml.trim())
164
+ return { success: true, messages: [], details: [] };
165
+ const parsed = parseXml(xml);
166
+ const msgs = findDeepNodes(parsed, 'msg');
120
167
  const messages = [];
121
- // Parse check messages from XML
122
- const msgRegex = /<msg[^>]*type="([^"]*)"[^>]*line="(\d+)"[^>]*col="(\d+)"[^>]*>/g;
123
- const textRegex = /shortText="([^"]*)"/;
124
- let match;
125
- while ((match = msgRegex.exec(xml)) !== null) {
126
- const fullTag = xml.slice(match.index, xml.indexOf('>', match.index + match[0].length) + 1);
127
- const textMatch = textRegex.exec(fullTag);
128
- messages.push({
129
- severity: match[1] === 'E' ? 'error' : match[1] === 'W' ? 'warning' : 'info',
130
- text: textMatch?.[1] ?? '',
131
- line: Number.parseInt(match[2], 10),
132
- column: Number.parseInt(match[3], 10),
133
- });
168
+ const details = [];
169
+ let hasErrors = false;
170
+ for (const m of msgs) {
171
+ const rawSeverity = String(m['@_severity'] ?? '');
172
+ const type = String(m['@_type'] ?? '');
173
+ const isError = rawSeverity === 'error' || rawSeverity === 'fatal' || type === 'E' || type === 'A';
174
+ if (isError)
175
+ hasErrors = true;
176
+ const shortText = extractShortText(m);
177
+ if (shortText)
178
+ messages.push(shortText);
179
+ const severity = isError
180
+ ? 'error'
181
+ : type === 'W' || rawSeverity === 'warning'
182
+ ? 'warning'
183
+ : 'info';
184
+ const rawUri = m['@_uri'];
185
+ const rawLine = m['@_line'];
186
+ const detail = { severity, text: shortText };
187
+ if (rawUri)
188
+ detail.uri = String(rawUri);
189
+ if (rawLine != null) {
190
+ const parsed = Number.parseInt(String(rawLine), 10);
191
+ if (!Number.isNaN(parsed) && parsed > 0)
192
+ detail.line = parsed;
193
+ }
194
+ details.push(detail);
134
195
  }
196
+ return { success: !hasErrors, messages, details };
197
+ }
198
+ /** Extract shortText from an activation message node.
199
+ * Format 1 (attribute): <msg shortText="..."/>
200
+ * Format 2 (element): <msg><shortText><txt>line1</txt><txt>line2</txt></shortText></msg>
201
+ */
202
+ function extractShortText(m) {
203
+ // Try attribute first (older SAP systems / some message types)
204
+ const attr = m['@_shortText'];
205
+ if (attr)
206
+ return String(attr);
207
+ // Try child element with <txt> sub-elements
208
+ const shortTextNode = m.shortText;
209
+ if (!shortTextNode || typeof shortTextNode !== 'object')
210
+ return '';
211
+ const record = shortTextNode;
212
+ const txt = record.txt ?? record['#text'];
213
+ if (typeof txt === 'string')
214
+ return txt;
215
+ if (Array.isArray(txt))
216
+ return txt.map((t) => String(t)).join(' — ');
217
+ if (txt != null)
218
+ return String(txt);
219
+ return '';
220
+ }
221
+ function parseSyntaxCheckResult(xml) {
222
+ const parsed = parseXml(xml);
223
+ const msgs = findDeepNodes(parsed, 'msg');
224
+ const messages = msgs.map((m) => {
225
+ const type = String(m['@_type'] ?? '');
226
+ return {
227
+ severity: type === 'E' ? 'error' : type === 'W' ? 'warning' : 'info',
228
+ text: String(m['@_shortText'] ?? ''),
229
+ line: Number.parseInt(String(m['@_line'] ?? '0'), 10),
230
+ column: Number.parseInt(String(m['@_col'] ?? '0'), 10),
231
+ };
232
+ });
135
233
  return {
136
234
  hasErrors: messages.some((m) => m.severity === 'error'),
137
235
  messages,
@@ -139,41 +237,82 @@ function parseSyntaxCheckResult(xml) {
139
237
  }
140
238
  function parseUnitTestResults(xml) {
141
239
  const results = [];
142
- // Extract test results from ABAP Unit XML response
143
- const testMethodRegex = /<testMethod[^>]*name="([^"]*)"[^>]*>/g;
144
- let match;
145
- while ((match = testMethodRegex.exec(xml)) !== null) {
146
- const methodName = match[1];
147
- // Check for alerts after this method
148
- const afterMatch = xml.slice(match.index);
149
- const hasAlert = afterMatch.includes('<alert') && afterMatch.indexOf('<alert') < afterMatch.indexOf('</testMethod');
150
- results.push({
151
- program: '',
152
- testClass: '',
153
- testMethod: methodName,
154
- status: hasAlert ? 'failed' : 'passed',
155
- });
240
+ const parsed = parseXml(xml);
241
+ const testClasses = findDeepNodes(parsed, 'testClass');
242
+ for (const tc of testClasses) {
243
+ const className = String(tc['@_name'] ?? '');
244
+ const uri = String(tc['@_uri'] ?? '');
245
+ // Extract program name from URI:
246
+ // classes: /sap/bc/adt/oo/classes/ZCL_TEST/...
247
+ // programs: /sap/bc/adt/programs/programs/ZTEST/... (note: "programs" appears twice)
248
+ const uriParts = uri.split('/');
249
+ let program = '';
250
+ for (let i = 0; i < uriParts.length - 1; i++) {
251
+ if (uriParts[i] === 'classes') {
252
+ program = uriParts[i + 1] ?? '';
253
+ break;
254
+ }
255
+ if (uriParts[i] === 'programs' && uriParts[i + 1] === 'programs' && i + 2 < uriParts.length) {
256
+ program = uriParts[i + 2] ?? '';
257
+ break;
258
+ }
259
+ }
260
+ const methods = findDeepNodes(tc, 'testMethod');
261
+ for (const method of methods) {
262
+ const methodName = String(method['@_name'] ?? '');
263
+ const alerts = findDeepNodes(method, 'alert');
264
+ const hasAlert = alerts.length > 0;
265
+ // Extract message from first alert's title element
266
+ let message;
267
+ if (hasAlert) {
268
+ const titleVal = alerts[0].title;
269
+ if (titleVal != null) {
270
+ if (typeof titleVal === 'string') {
271
+ message = titleVal;
272
+ }
273
+ else if (typeof titleVal === 'object' && !Array.isArray(titleVal)) {
274
+ message = String(titleVal['#text'] ?? '');
275
+ }
276
+ else {
277
+ message = String(titleVal);
278
+ }
279
+ }
280
+ }
281
+ // Extract duration from executionTime attribute (in seconds)
282
+ const execTime = method['@_executionTime'];
283
+ const duration = execTime ? Number(execTime) : undefined;
284
+ results.push({
285
+ program,
286
+ testClass: className,
287
+ testMethod: methodName,
288
+ status: hasAlert ? 'failed' : 'passed',
289
+ ...(message ? { message } : {}),
290
+ ...(duration !== undefined && !Number.isNaN(duration) ? { duration } : {}),
291
+ });
292
+ }
156
293
  }
157
294
  return results;
158
295
  }
159
296
  function parseAtcFindings(xml) {
160
- const findings = [];
161
- const findingRegex = /<finding[^>]*priority="(\d)"[^>]*checkTitle="([^"]*)"[^>]*messageTitle="([^"]*)"[^>]*/g;
162
- let match;
163
- while ((match = findingRegex.exec(xml)) !== null) {
164
- findings.push({
165
- priority: Number.parseInt(match[1], 10),
166
- checkTitle: match[2],
167
- messageTitle: match[3],
168
- uri: '',
169
- line: 0,
170
- });
171
- }
172
- return findings;
173
- }
174
- function extractAttr(xml, attr) {
175
- const regex = new RegExp(`${attr}="([^"]*)"`);
176
- const match = xml.match(regex);
177
- return match?.[1] ?? '';
297
+ const parsed = parseXml(xml);
298
+ const nodes = findDeepNodes(parsed, 'finding');
299
+ return nodes.map((f) => {
300
+ const rawUri = String(f['@_uri'] ?? f['@_location'] ?? '');
301
+ let line = 0;
302
+ const startIdx = rawUri.indexOf('#start=');
303
+ if (startIdx !== -1) {
304
+ const fragment = rawUri.slice(startIdx + '#start='.length);
305
+ const firstNum = Number.parseInt(fragment.split(',')[0], 10);
306
+ if (!Number.isNaN(firstNum))
307
+ line = firstNum;
308
+ }
309
+ return {
310
+ priority: Number.parseInt(String(f['@_priority'] ?? '0'), 10),
311
+ checkTitle: String(f['@_checkTitle'] ?? ''),
312
+ messageTitle: String(f['@_messageTitle'] ?? ''),
313
+ uri: rawUri,
314
+ line,
315
+ };
316
+ });
178
317
  }
179
318
  //# sourceMappingURL=devtools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.js","sourceRoot":"","sources":["../../src/adt/devtools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devtools.js","sourceRoot":"","sources":["../../src/adt/devtools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/adt/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAEV,UAAU,EACV,SAAS,EACT,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,EAAE,CAAC,CAiBtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAc5G;AAID;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAQjG;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAQ9B;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,EAAE,CAAC,CAQ3B;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,EAAE,CAAC,CAQ1B;AAID;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAuBtD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAqC9F;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,CAmCxD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAsClE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAkBlE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,CAkBjE"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/adt/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAEV,UAAU,EACV,SAAS,EACT,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,EAAE,CAAC,CAiBtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAc5G;AAID;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAQjG;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAQ9B;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,EAAE,CAAC,CAQ3B;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,EAAE,CAAC,CAQ1B;AAID;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAiCtD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAqC9F;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,CAwBxD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAWlE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAiBlE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,CAkBjE"}