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
@@ -7,12 +7,57 @@
7
7
  import type { AdtHttpClient } from './http.js';
8
8
  import { type SafetyConfig } from './safety.js';
9
9
  import type { TransportRequest } from './types.js';
10
- /** List transport requests for a user */
11
- export declare function listTransports(http: AdtHttpClient, safety: SafetyConfig, user?: string): Promise<TransportRequest[]>;
10
+ /** Accept header for tree-structured responses (list/get transport) */
11
+ export declare const CTS_ACCEPT_TREE = "application/vnd.sap.adt.transportorganizertree.v1+xml";
12
+ /** Content-Type / Accept for organizer write operations (create transport) */
13
+ export declare const CTS_CONTENT_TYPE_ORGANIZER = "application/vnd.sap.adt.transportorganizer.v1+xml";
14
+ /** XML namespace for CTS ADT transport manager payloads */
15
+ export declare const CTS_NAMESPACE_TM = "http://www.sap.com/cts/adt/tm";
16
+ /** List transport requests for a user, optionally filtered by status (client-side) */
17
+ export declare function listTransports(http: AdtHttpClient, safety: SafetyConfig, user?: string, status?: string): Promise<TransportRequest[]>;
12
18
  /** Get details of a specific transport request */
13
19
  export declare function getTransport(http: AdtHttpClient, safety: SafetyConfig, transportId: string): Promise<TransportRequest | null>;
14
20
  /** Create a new transport request */
15
- export declare function createTransport(http: AdtHttpClient, safety: SafetyConfig, description: string, targetPackage?: string): Promise<string>;
21
+ export declare function createTransport(http: AdtHttpClient, safety: SafetyConfig, description: string, targetPackage?: string, transportType?: string): Promise<string>;
16
22
  /** Release a transport request */
17
23
  export declare function releaseTransport(http: AdtHttpClient, safety: SafetyConfig, transportId: string): Promise<void>;
24
+ /** Release a transport request recursively — tasks first, then parent */
25
+ export declare function releaseTransportRecursive(http: AdtHttpClient, safety: SafetyConfig, transportId: string): Promise<{
26
+ released: string[];
27
+ }>;
28
+ /** Delete a transport request */
29
+ export declare function deleteTransport(http: AdtHttpClient, safety: SafetyConfig, transportId: string, recursive?: boolean): Promise<void>;
30
+ /** Reassign a transport request to a new owner */
31
+ export declare function reassignTransport(http: AdtHttpClient, safety: SafetyConfig, transportId: string, newOwner: string, recursive?: boolean): Promise<void>;
32
+ /** Transport requirement info returned by the CTS transport checks endpoint */
33
+ export interface TransportInfo {
34
+ /** Whether transport recording is required ('X' = required, '' = not needed) */
35
+ recording: boolean;
36
+ /** Whether the package is a local package (no transport needed) */
37
+ isLocal: boolean;
38
+ /** Delivery unit: 'LOCAL' for local packages, transport layer name otherwise */
39
+ deliveryUnit: string;
40
+ /** Package name */
41
+ devclass: string;
42
+ /** Available existing transports the object could be added to */
43
+ existingTransports: Array<{
44
+ id: string;
45
+ description: string;
46
+ owner: string;
47
+ }>;
48
+ /** If the object is already locked in a transport */
49
+ lockedTransport?: string;
50
+ }
51
+ /**
52
+ * Check transport requirements for an object URL and package.
53
+ *
54
+ * Calls POST /sap/bc/adt/cts/transportchecks to determine whether a
55
+ * transport number is needed for object creation/modification. This is the
56
+ * same endpoint used by ADT Eclipse and abap-adt-api's `transportInfo()`.
57
+ *
58
+ * @param objectUrl - ADT object URL (e.g., `/sap/bc/adt/oo/classes/zcl_foo`)
59
+ * @param devclass - Package name (e.g., `$TMP`, `Z_RAP_VB_1`)
60
+ * @param operation - `I` for insert/create, empty string for modify (default: `I`)
61
+ */
62
+ export declare function getTransportInfo(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string, devclass: string, operation?: string): Promise<TransportInfo>;
18
63
  //# sourceMappingURL=transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/adt/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,yCAAyC;AACzC,wBAAsB,cAAc,CAClC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAU7B;AAED,kDAAkD;AAClD,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CASlC;AAED,qCAAqC;AACrC,wBAAsB,eAAe,CACnC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,kCAAkC;AAClC,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpH"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/adt/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAiD,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,KAAK,EAAmB,gBAAgB,EAAiB,MAAM,YAAY,CAAC;AAKnF,uEAAuE;AACvE,eAAO,MAAM,eAAe,0DAA0D,CAAC;AAEvF,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B,sDAAsD,CAAC;AAE9F,2DAA2D;AAC3D,eAAO,MAAM,gBAAgB,kCAAkC,CAAC;AAEhE,sFAAsF;AACtF,wBAAsB,cAAc,CAClC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA2B7B;AAED,kDAAkD;AAClD,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CASlC;AAED,qCAAqC;AACrC,wBAAsB,eAAe,CACnC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,MAAM,EACtB,aAAa,SAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,kCAAkC;AAClC,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASpH;AAED,yEAAyE;AACzE,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAyBjC;AAED,iCAAiC;AACjC,wBAAsB,eAAe,CACnC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,UAAQ,GAChB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,kDAAkD;AAClD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,UAAQ,GAChB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAmBD,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,SAAS,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,OAAO,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,kBAAkB,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9E,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,SAAM,GACd,OAAO,CAAC,aAAa,CAAC,CAuBxB"}
@@ -4,63 +4,253 @@
4
4
  * Transport operations require explicit opt-in via enableTransports flag.
5
5
  * Safety checks are applied at every entry point.
6
6
  */
7
- import { checkTransport } from './safety.js';
8
- /** List transport requests for a user */
9
- export async function listTransports(http, safety, user) {
7
+ import { checkOperation, checkTransport, OperationType } from './safety.js';
8
+ import { escapeXmlAttr, findDeepNodes, parseXml } from './xml-parser.js';
9
+ // ─── CTS Media Types & Namespaces ──────────────────────────────────
10
+ /** Accept header for tree-structured responses (list/get transport) */
11
+ export const CTS_ACCEPT_TREE = 'application/vnd.sap.adt.transportorganizertree.v1+xml';
12
+ /** Content-Type / Accept for organizer write operations (create transport) */
13
+ export const CTS_CONTENT_TYPE_ORGANIZER = 'application/vnd.sap.adt.transportorganizer.v1+xml';
14
+ /** XML namespace for CTS ADT transport manager payloads */
15
+ export const CTS_NAMESPACE_TM = 'http://www.sap.com/cts/adt/tm';
16
+ /** List transport requests for a user, optionally filtered by status (client-side) */
17
+ export async function listTransports(http, safety, user, status) {
10
18
  checkTransport(safety, '', 'ListTransports', false);
11
- let url = '/sap/bc/adt/cts/transportrequests';
19
+ // Build query params following sapcli's pattern:
20
+ // user={user}&target=true&requestType=KWT&requestStatus=DR
21
+ // requestType=KWT covers Workbench, Customizing, Transport of Copies.
22
+ // requestStatus is sent server-side; we also filter client-side as a fallback.
23
+ const params = new URLSearchParams();
12
24
  if (user && user !== '*') {
13
- url += `?user=${encodeURIComponent(user)}`;
25
+ params.set('user', user);
14
26
  }
15
- const resp = await http.get(url, { Accept: 'application/xml' });
16
- return parseTransportList(resp.body);
27
+ params.set('target', 'true');
28
+ params.set('requestType', 'KWT');
29
+ // Server-side: request both D and R, then filter client-side for reliability
30
+ params.set('requestStatus', status && status !== '*' ? status : 'DR');
31
+ const url = `/sap/bc/adt/cts/transportrequests?${params.toString()}`;
32
+ const resp = await http.get(url, { Accept: CTS_ACCEPT_TREE });
33
+ let transports = parseTransportList(resp.body);
34
+ // Client-side status filter as fallback (some systems ignore requestStatus)
35
+ if (status && status !== '*') {
36
+ transports = transports.filter((t) => t.status === status);
37
+ }
38
+ return transports;
17
39
  }
18
40
  /** Get details of a specific transport request */
19
41
  export async function getTransport(http, safety, transportId) {
20
42
  checkTransport(safety, transportId, 'GetTransport', false);
21
43
  const resp = await http.get(`/sap/bc/adt/cts/transportrequests/${encodeURIComponent(transportId)}`, {
22
- Accept: 'application/xml',
44
+ Accept: CTS_CONTENT_TYPE_ORGANIZER,
23
45
  });
24
46
  const transports = parseTransportList(resp.body);
25
47
  return transports[0] ?? null;
26
48
  }
27
49
  /** Create a new transport request */
28
- export async function createTransport(http, safety, description, targetPackage) {
50
+ export async function createTransport(http, safety, description, targetPackage, transportType = 'K') {
29
51
  checkTransport(safety, '', 'CreateTransport', true);
30
52
  const body = `<?xml version="1.0" encoding="UTF-8"?>
31
- <tm:root xmlns:tm="http://www.sap.com/cts/transports">
32
- <tm:request tm:desc="${escapeXml(description)}" tm:type="K"${targetPackage ? ` tm:target="${escapeXml(targetPackage)}"` : ''}/>
53
+ <tm:root xmlns:tm="${CTS_NAMESPACE_TM}">
54
+ <tm:request tm:desc="${escapeXmlAttr(description)}" tm:type="${escapeXmlAttr(transportType)}"${targetPackage ? ` tm:target="${escapeXmlAttr(targetPackage)}"` : ''}/>
33
55
  </tm:root>`;
34
- const resp = await http.post('/sap/bc/adt/cts/transportrequests', body, 'application/xml', {
35
- Accept: 'application/xml',
56
+ const resp = await http.post('/sap/bc/adt/cts/transportrequests', body, CTS_CONTENT_TYPE_ORGANIZER, {
57
+ Accept: CTS_CONTENT_TYPE_ORGANIZER,
36
58
  });
37
59
  // Extract transport number from response
38
- const match = resp.body.match(/tm:number="([^"]*)"/);
39
- return match?.[1] ?? '';
60
+ const parsed = parseXml(resp.body);
61
+ const requests = findDeepNodes(parsed, 'request');
62
+ return String(requests[0]?.['@_number'] ?? '');
40
63
  }
41
64
  /** Release a transport request */
42
65
  export async function releaseTransport(http, safety, transportId) {
43
66
  checkTransport(safety, transportId, 'ReleaseTransport', true);
44
- await http.post(`/sap/bc/adt/cts/transportrequests/${encodeURIComponent(transportId)}/newreleasejobs`);
67
+ await http.post(`/sap/bc/adt/cts/transportrequests/${encodeURIComponent(transportId)}/newreleasejobs`, undefined, undefined, { Accept: CTS_CONTENT_TYPE_ORGANIZER });
68
+ }
69
+ /** Release a transport request recursively — tasks first, then parent */
70
+ export async function releaseTransportRecursive(http, safety, transportId) {
71
+ checkTransport(safety, transportId, 'ReleaseTransportRecursive', true);
72
+ const transport = await getTransport(http, safety, transportId);
73
+ const released = [];
74
+ if (transport) {
75
+ for (const task of transport.tasks) {
76
+ if (task.status !== 'R') {
77
+ checkTransport(safety, task.id, 'ReleaseTransportRecursive', true);
78
+ await releaseTransport(http, safety, task.id);
79
+ released.push(task.id);
80
+ }
81
+ }
82
+ // Skip parent if already released (idempotent/retry-safe)
83
+ if (transport.status === 'R') {
84
+ return { released };
85
+ }
86
+ }
87
+ await releaseTransport(http, safety, transportId);
88
+ released.push(transportId);
89
+ return { released };
90
+ }
91
+ /** Delete a transport request */
92
+ export async function deleteTransport(http, safety, transportId, recursive = false) {
93
+ checkTransport(safety, transportId, 'DeleteTransport', true);
94
+ if (recursive) {
95
+ const transport = await getTransport(http, safety, transportId);
96
+ if (transport) {
97
+ for (const task of transport.tasks) {
98
+ if (task.status !== 'R') {
99
+ checkTransport(safety, task.id, 'DeleteTransport', true);
100
+ await http.delete(`/sap/bc/adt/cts/transportrequests/${encodeURIComponent(task.id)}`);
101
+ }
102
+ }
103
+ }
104
+ }
105
+ await http.delete(`/sap/bc/adt/cts/transportrequests/${encodeURIComponent(transportId)}`);
106
+ }
107
+ /** Reassign a transport request to a new owner */
108
+ export async function reassignTransport(http, safety, transportId, newOwner, recursive = false) {
109
+ checkTransport(safety, transportId, 'ReassignTransport', true);
110
+ if (recursive) {
111
+ const transport = await getTransport(http, safety, transportId);
112
+ if (transport) {
113
+ for (const task of transport.tasks) {
114
+ if (task.status !== 'R') {
115
+ checkTransport(safety, task.id, 'ReassignTransport', true);
116
+ await reassignSingle(http, task.id, newOwner);
117
+ }
118
+ }
119
+ }
120
+ }
121
+ await reassignSingle(http, transportId, newOwner);
122
+ }
123
+ async function reassignSingle(http, transportId, newOwner) {
124
+ const body = `<?xml version="1.0" encoding="ASCII"?>
125
+ <tm:root xmlns:tm="${CTS_NAMESPACE_TM}"
126
+ tm:number="${escapeXmlAttr(transportId)}"
127
+ tm:targetuser="${escapeXmlAttr(newOwner)}"
128
+ tm:useraction="changeowner"/>`;
129
+ await http.put(`/sap/bc/adt/cts/transportrequests/${encodeURIComponent(transportId)}`, body, CTS_CONTENT_TYPE_ORGANIZER, { Accept: CTS_CONTENT_TYPE_ORGANIZER });
130
+ }
131
+ /**
132
+ * Check transport requirements for an object URL and package.
133
+ *
134
+ * Calls POST /sap/bc/adt/cts/transportchecks to determine whether a
135
+ * transport number is needed for object creation/modification. This is the
136
+ * same endpoint used by ADT Eclipse and abap-adt-api's `transportInfo()`.
137
+ *
138
+ * @param objectUrl - ADT object URL (e.g., `/sap/bc/adt/oo/classes/zcl_foo`)
139
+ * @param devclass - Package name (e.g., `$TMP`, `Z_RAP_VB_1`)
140
+ * @param operation - `I` for insert/create, empty string for modify (default: `I`)
141
+ */
142
+ export async function getTransportInfo(http, safety, objectUrl, devclass, operation = 'I') {
143
+ // Transport info is a read operation — doesn't require enableTransports
144
+ checkOperation(safety, OperationType.Read, 'TransportInfo');
145
+ const body = `<?xml version="1.0" encoding="UTF-8"?>
146
+ <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
147
+ <asx:values>
148
+ <DATA>
149
+ <DEVCLASS>${escapeXmlAttr(devclass)}</DEVCLASS>
150
+ <URI>${escapeXmlAttr(objectUrl)}</URI>
151
+ <OPERATION>${escapeXmlAttr(operation)}</OPERATION>
152
+ </DATA>
153
+ </asx:values>
154
+ </asx:abap>`;
155
+ const resp = await http.post('/sap/bc/adt/cts/transportchecks', body, 'application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.transport.service.checkData', { Accept: 'application/vnd.sap.as+xml' });
156
+ return parseTransportInfo(resp.body);
157
+ }
158
+ /** Parse transport check response XML */
159
+ function parseTransportInfo(xml) {
160
+ const parsed = parseXml(xml);
161
+ // Extract flat fields from DATA element
162
+ const recording = String(findDeepValue(parsed, 'RECORDING') ?? '') === 'X';
163
+ const isLocal = String(findDeepValue(parsed, 'DLVUNIT') ?? '') === 'LOCAL';
164
+ const deliveryUnit = String(findDeepValue(parsed, 'DLVUNIT') ?? '');
165
+ const devclass = String(findDeepValue(parsed, 'DEVCLASS') ?? '');
166
+ // Extract locked transport from LOCKS/HEADER
167
+ const locks = findDeepNodes(parsed, 'LOCKS');
168
+ let lockedTransport;
169
+ if (locks.length > 0) {
170
+ const headers = findDeepNodes(locks[0], 'HEADER');
171
+ if (headers.length > 0) {
172
+ const trkorr = String(headers[0].TRKORR ?? '');
173
+ if (trkorr)
174
+ lockedTransport = trkorr;
175
+ }
176
+ }
177
+ // Extract available transports
178
+ const transportNodes = findDeepNodes(parsed, 'TRANSPORTS');
179
+ const existingTransports = [];
180
+ if (transportNodes.length > 0) {
181
+ // TRANSPORTS contains an array of transport header elements
182
+ const headers = findDeepNodes(transportNodes[0], 'headers');
183
+ for (const h of headers) {
184
+ const rec = h;
185
+ const id = String(rec.TRKORR ?? '');
186
+ const description = String(rec.AS4TEXT ?? '');
187
+ const owner = String(rec.AS4USER ?? '');
188
+ if (id)
189
+ existingTransports.push({ id, description, owner });
190
+ }
191
+ }
192
+ return {
193
+ recording,
194
+ isLocal,
195
+ deliveryUnit,
196
+ devclass,
197
+ existingTransports,
198
+ ...(lockedTransport ? { lockedTransport } : {}),
199
+ };
200
+ }
201
+ /** Deep value finder for flat XML structures */
202
+ function findDeepValue(obj, key) {
203
+ if (!obj || typeof obj !== 'object')
204
+ return undefined;
205
+ if (Array.isArray(obj)) {
206
+ for (const item of obj) {
207
+ const found = findDeepValue(item, key);
208
+ if (found !== undefined)
209
+ return found;
210
+ }
211
+ return undefined;
212
+ }
213
+ const record = obj;
214
+ if (key in record)
215
+ return record[key];
216
+ for (const val of Object.values(record)) {
217
+ const found = findDeepValue(val, key);
218
+ if (found !== undefined)
219
+ return found;
220
+ }
221
+ return undefined;
45
222
  }
46
223
  // ─── Parsers ────────────────────────────────────────────────────────
47
224
  function parseTransportList(xml) {
48
- const transports = [];
49
- const trRegex = /<tm:request[^>]*tm:number="([^"]*)"[^>]*tm:owner="([^"]*)"[^>]*tm:desc="([^"]*)"[^>]*tm:status="([^"]*)"[^>]*tm:type="([^"]*)"/g;
50
- let match;
51
- while ((match = trRegex.exec(xml)) !== null) {
52
- transports.push({
53
- id: match[1],
54
- description: match[3],
55
- owner: match[2],
56
- status: match[4],
57
- type: match[5],
58
- tasks: [],
225
+ const parsed = parseXml(xml);
226
+ const requests = findDeepNodes(parsed, 'request');
227
+ return requests.map((req) => {
228
+ const tasks = findDeepNodes(req, 'task').map((t) => {
229
+ const objects = findDeepNodes(t, 'abap_object').map((o) => ({
230
+ pgmid: String(o['@_pgmid'] ?? ''),
231
+ type: String(o['@_type'] ?? ''),
232
+ name: String(o['@_name'] ?? ''),
233
+ wbtype: String(o['@_wbtype'] ?? ''),
234
+ description: String(o['@_obj_desc'] ?? o['@_obj_info'] ?? ''),
235
+ locked: String(o['@_lock_status'] ?? '') === 'X',
236
+ position: String(o['@_position'] ?? '000000'),
237
+ }));
238
+ return {
239
+ id: String(t['@_number'] ?? ''),
240
+ description: String(t['@_desc'] ?? ''),
241
+ owner: String(t['@_owner'] ?? ''),
242
+ status: String(t['@_status'] ?? ''),
243
+ objects,
244
+ };
59
245
  });
60
- }
61
- return transports;
62
- }
63
- function escapeXml(str) {
64
- return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
246
+ return {
247
+ id: String(req['@_number'] ?? ''),
248
+ description: String(req['@_desc'] ?? ''),
249
+ owner: String(req['@_owner'] ?? ''),
250
+ status: String(req['@_status'] ?? ''),
251
+ type: String(req['@_type'] ?? ''),
252
+ tasks,
253
+ };
254
+ });
65
255
  }
66
256
  //# sourceMappingURL=transport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/adt/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/adt/transport.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,8 @@ export interface ResolvedFeatures {
38
38
  amdp: FeatureStatus;
39
39
  ui5: FeatureStatus;
40
40
  transport: FeatureStatus;
41
+ ui5repo: FeatureStatus;
42
+ flp: FeatureStatus;
41
43
  /** Detected SAP_BASIS release (e.g. "750", "757"). Populated during probe. */
42
44
  abapRelease?: string;
43
45
  /** Detected system type: 'btp' (SAP_CLOUD component present) or 'onprem'. */
@@ -92,11 +94,21 @@ export interface TransportRequest {
92
94
  type: string;
93
95
  tasks: TransportTask[];
94
96
  }
97
+ export interface TransportObject {
98
+ pgmid: string;
99
+ type: string;
100
+ name: string;
101
+ wbtype: string;
102
+ description: string;
103
+ locked: boolean;
104
+ position: string;
105
+ }
95
106
  export interface TransportTask {
96
107
  id: string;
97
108
  description: string;
98
109
  owner: string;
99
110
  status: string;
111
+ objects: TransportObject[];
100
112
  }
101
113
  /** Source code search result */
102
114
  export interface SourceSearchResult {
@@ -212,6 +224,16 @@ export interface TraceDbAccess {
212
224
  /** Total access time (microseconds) */
213
225
  accessTime: number;
214
226
  }
227
+ /** Message class metadata from /sap/bc/adt/messageclass/{name} */
228
+ export interface MessageClassInfo {
229
+ name: string;
230
+ description: string;
231
+ messages: Array<{
232
+ number: string;
233
+ shortText: string;
234
+ }>;
235
+ package: string;
236
+ }
215
237
  /** Domain metadata from /sap/bc/adt/ddic/domains/{name} */
216
238
  export interface DomainInfo {
217
239
  name: string;
@@ -267,6 +289,55 @@ export interface StructuredClassResponse {
267
289
  implementations: string | null;
268
290
  macros: string | null;
269
291
  }
292
+ /** BSP application info from /sap/bc/adt/filestore/ui5-bsp/objects listing */
293
+ export interface BspAppInfo {
294
+ name: string;
295
+ description: string;
296
+ }
297
+ /** File or folder node within a BSP application */
298
+ export interface BspFileNode {
299
+ name: string;
300
+ path: string;
301
+ type: 'file' | 'folder';
302
+ etag?: string;
303
+ }
304
+ /** BSP deploy info from ABAP Repository OData Service */
305
+ export interface BspDeployInfo {
306
+ name: string;
307
+ package: string;
308
+ description: string;
309
+ info: string;
310
+ }
311
+ /** FLP catalog from PAGE_BUILDER_CUST OData (entity: Catalog) */
312
+ export interface FlpCatalog {
313
+ id: string;
314
+ domainId: string;
315
+ title: string;
316
+ type: string;
317
+ scope: string;
318
+ chipCount: string;
319
+ }
320
+ /** FLP group (page) from PAGE_BUILDER_CUST OData (entity: Page) */
321
+ export interface FlpGroup {
322
+ id: string;
323
+ title: string;
324
+ catalogId: string;
325
+ layout: string;
326
+ }
327
+ /** FLP tile/target mapping instance from PAGE_BUILDER_CUST OData (entity: PageChipInstance) */
328
+ export interface FlpTileInstance {
329
+ instanceId: string;
330
+ chipId: string;
331
+ pageId: string;
332
+ title: string;
333
+ configuration: Record<string, unknown> | null;
334
+ }
335
+ /** FLP tile listing result — includes backend error flag for ASSERTION_FAILED */
336
+ export interface FlpTileResult {
337
+ tiles: FlpTileInstance[];
338
+ /** Set when backend returned ASSERTION_FAILED instead of data */
339
+ backendError?: string;
340
+ }
270
341
  /** Transaction code metadata */
271
342
  export interface TransactionInfo {
272
343
  code: string;
@@ -274,4 +345,40 @@ export interface TransactionInfo {
274
345
  program: string;
275
346
  package: string;
276
347
  }
348
+ /** Class hierarchy from SEOMETAREL (reltype 1=interface, 2=inheritance) */
349
+ export interface ClassHierarchy {
350
+ className: string;
351
+ superclass: string | null;
352
+ interfaces: string[];
353
+ subclasses: string[];
354
+ }
355
+ /** Single release contract (C0–C4) with state and successor info */
356
+ export interface ApiReleaseContract {
357
+ contract: string;
358
+ state: string;
359
+ stateDescription: string;
360
+ useInKeyUserApps: boolean;
361
+ useInSAPCloudPlatform: boolean;
362
+ successors: Array<{
363
+ uri: string;
364
+ type: string;
365
+ name: string;
366
+ }>;
367
+ }
368
+ /** API release state from /sap/bc/adt/apireleases/{encoded-object-uri} */
369
+ export interface ApiReleaseStateInfo {
370
+ objectUri: string;
371
+ objectType: string;
372
+ objectName: string;
373
+ contracts: ApiReleaseContract[];
374
+ isAnyContractReleased: boolean;
375
+ isAnyAssignmentPossible: boolean;
376
+ }
377
+ /** An object pending activation from /sap/bc/adt/activation/inactive */
378
+ export interface InactiveObject {
379
+ name: string;
380
+ type: string;
381
+ uri: string;
382
+ description?: string;
383
+ }
277
384
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adt/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adt/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * OData client for SAP ABAP Repository Service (UI5 app deployment).
3
+ *
4
+ * Queries deployed BSP/UI5 apps via `/sap/opu/odata/UI5/ABAP_REPOSITORY_SRV`.
5
+ * This is the same OData V2 service used by SAP Business Application Studio
6
+ * and @sap-ux/deploy-tooling for UI5 app deployment.
7
+ */
8
+ import type { AdtHttpClient } from './http.js';
9
+ import { type SafetyConfig } from './safety.js';
10
+ import type { BspDeployInfo } from './types.js';
11
+ /** Base path for the ABAP Repository OData Service */
12
+ export declare const SERVICE_PATH = "/sap/opu/odata/UI5/ABAP_REPOSITORY_SRV";
13
+ /**
14
+ * Get metadata for a deployed BSP/UI5 app.
15
+ *
16
+ * @returns App info, or undefined if the app does not exist (404).
17
+ */
18
+ export declare function getAppInfo(http: AdtHttpClient, safety: SafetyConfig, appName: string): Promise<BspDeployInfo | undefined>;
19
+ //# sourceMappingURL=ui5-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui5-repository.d.ts","sourceRoot":"","sources":["../../src/adt/ui5-repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,sDAAsD;AACtD,eAAO,MAAM,YAAY,2CAA2C,CAAC;AAErE;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAyBpC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * OData client for SAP ABAP Repository Service (UI5 app deployment).
3
+ *
4
+ * Queries deployed BSP/UI5 apps via `/sap/opu/odata/UI5/ABAP_REPOSITORY_SRV`.
5
+ * This is the same OData V2 service used by SAP Business Application Studio
6
+ * and @sap-ux/deploy-tooling for UI5 app deployment.
7
+ */
8
+ import { AdtApiError } from './errors.js';
9
+ import { checkOperation, OperationType } from './safety.js';
10
+ /** Base path for the ABAP Repository OData Service */
11
+ export const SERVICE_PATH = '/sap/opu/odata/UI5/ABAP_REPOSITORY_SRV';
12
+ /**
13
+ * Get metadata for a deployed BSP/UI5 app.
14
+ *
15
+ * @returns App info, or undefined if the app does not exist (404).
16
+ */
17
+ export async function getAppInfo(http, safety, appName) {
18
+ checkOperation(safety, OperationType.Read, 'GetBSPDeployInfo');
19
+ const path = `${SERVICE_PATH}/Repositories('${encodeURIComponent(appName)}')?$format=json`;
20
+ let resp;
21
+ try {
22
+ resp = await http.get(path, {
23
+ Accept: 'application/json',
24
+ });
25
+ }
26
+ catch (err) {
27
+ if (err instanceof AdtApiError && err.statusCode === 404) {
28
+ return undefined;
29
+ }
30
+ throw err;
31
+ }
32
+ const data = JSON.parse(resp.body);
33
+ const d = data.d;
34
+ if (!d)
35
+ throw new Error('Unexpected OData response: missing "d" property');
36
+ return {
37
+ name: d.Name ?? '',
38
+ package: d.Package ?? '',
39
+ description: d.Description ?? '',
40
+ info: d.Info ?? '',
41
+ };
42
+ }
43
+ //# sourceMappingURL=ui5-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui5-repository.js","sourceRoot":"","sources":["../../src/adt/ui5-repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAC;AAG/E,sDAAsD;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG,wCAAwC,CAAC;AAErE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAmB,EACnB,MAAoB,EACpB,OAAe;IAEf,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAE/D,MAAM,IAAI,GAAG,GAAG,YAAY,kBAAkB,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAC3F,IAAI,IAAiB,CAAC;IACtB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAC1B,MAAM,EAAE,kBAAkB;SAC3B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,WAAW,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YACzD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACjB,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC3E,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;QAClB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;QACxB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;QAChC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;KACnB,CAAC;AACJ,CAAC"}