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.
- package/README.md +25 -26
- package/dist/adt/btp.d.ts +19 -12
- package/dist/adt/btp.d.ts.map +1 -1
- package/dist/adt/btp.js +48 -35
- package/dist/adt/btp.js.map +1 -1
- package/dist/adt/client.d.ts +20 -2
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +65 -2
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/codeintel.d.ts.map +1 -1
- package/dist/adt/codeintel.js +1 -10
- package/dist/adt/codeintel.js.map +1 -1
- package/dist/adt/config.d.ts +2 -0
- package/dist/adt/config.d.ts.map +1 -1
- package/dist/adt/config.js +2 -0
- package/dist/adt/config.js.map +1 -1
- package/dist/adt/crud.d.ts +7 -0
- package/dist/adt/crud.d.ts.map +1 -1
- package/dist/adt/crud.js +35 -3
- package/dist/adt/crud.js.map +1 -1
- package/dist/adt/ddic-xml.d.ts +78 -0
- package/dist/adt/ddic-xml.d.ts.map +1 -0
- package/dist/adt/ddic-xml.js +203 -0
- package/dist/adt/ddic-xml.js.map +1 -0
- package/dist/adt/devtools.d.ts +30 -7
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +215 -76
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/diagnostics.d.ts.map +1 -1
- package/dist/adt/diagnostics.js +105 -184
- package/dist/adt/diagnostics.js.map +1 -1
- package/dist/adt/errors.d.ts +12 -0
- package/dist/adt/errors.d.ts.map +1 -1
- package/dist/adt/errors.js +42 -0
- package/dist/adt/errors.js.map +1 -1
- package/dist/adt/features.d.ts.map +1 -1
- package/dist/adt/features.js +23 -3
- package/dist/adt/features.js.map +1 -1
- package/dist/adt/flp.d.ts +43 -0
- package/dist/adt/flp.d.ts.map +1 -0
- package/dist/adt/flp.js +213 -0
- package/dist/adt/flp.js.map +1 -0
- package/dist/adt/http.d.ts +2 -0
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +162 -4
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/transport.d.ts +48 -3
- package/dist/adt/transport.d.ts.map +1 -1
- package/dist/adt/transport.js +222 -32
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/types.d.ts +107 -0
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/ui5-repository.d.ts +19 -0
- package/dist/adt/ui5-repository.d.ts.map +1 -0
- package/dist/adt/ui5-repository.js +43 -0
- package/dist/adt/ui5-repository.js.map +1 -0
- package/dist/adt/xml-parser.d.ts +43 -1
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +208 -3
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/handlers/intent.d.ts +20 -6
- package/dist/handlers/intent.d.ts.map +1 -1
- package/dist/handlers/intent.js +1304 -104
- package/dist/handlers/intent.js.map +1 -1
- package/dist/handlers/schemas.d.ts +240 -0
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +201 -5
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +339 -49
- package/dist/handlers/tools.js.map +1 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +15 -3
- package/dist/server/config.js.map +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +32 -3
- package/dist/server/http.js.map +1 -1
- package/dist/server/server.d.ts +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +38 -6
- package/dist/server/server.js.map +1 -1
- package/dist/server/types.d.ts +2 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +5 -3
- package/dist/server/types.js.map +1 -1
- package/dist/server/xsuaa.d.ts +13 -0
- package/dist/server/xsuaa.d.ts.map +1 -1
- package/dist/server/xsuaa.js +28 -2
- package/dist/server/xsuaa.js.map +1 -1
- package/package.json +19 -6
package/dist/adt/transport.d.ts
CHANGED
|
@@ -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
|
-
/**
|
|
11
|
-
export declare
|
|
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,
|
|
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"}
|
package/dist/adt/transport.js
CHANGED
|
@@ -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
|
-
|
|
9
|
-
|
|
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
|
-
|
|
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
|
-
|
|
25
|
+
params.set('user', user);
|
|
14
26
|
}
|
|
15
|
-
|
|
16
|
-
|
|
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:
|
|
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="
|
|
32
|
-
<tm:request tm:desc="${
|
|
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,
|
|
35
|
-
Accept:
|
|
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
|
|
39
|
-
|
|
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
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/adt/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAC;AAE/F,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEzE,sEAAsE;AAEtE,uEAAuE;AACvE,MAAM,CAAC,MAAM,eAAe,GAAG,uDAAuD,CAAC;AAEvF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,0BAA0B,GAAG,mDAAmD,CAAC;AAE9F,2DAA2D;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,+BAA+B,CAAC;AAEhE,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAmB,EACnB,MAAoB,EACpB,IAAa,EACb,MAAe;IAEf,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAEpD,iDAAiD;IACjD,6DAA6D;IAC7D,sEAAsE;IACtE,+EAA+E;IAC/E,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACjC,6EAA6E;IAC7E,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEtE,MAAM,GAAG,GAAG,qCAAqC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IAErE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAC9D,IAAI,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/C,4EAA4E;IAC5E,IAAI,MAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QAC7B,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAmB,EACnB,MAAoB,EACpB,WAAmB;IAEnB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAE3D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,qCAAqC,kBAAkB,CAAC,WAAW,CAAC,EAAE,EAAE;QAClG,MAAM,EAAE,0BAA0B;KACnC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC/B,CAAC;AAED,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAmB,EACnB,MAAoB,EACpB,WAAmB,EACnB,aAAsB,EACtB,aAAa,GAAG,GAAG;IAEnB,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAEpD,MAAM,IAAI,GAAG;qBACM,gBAAgB;yBACZ,aAAa,CAAC,WAAW,CAAC,cAAc,aAAa,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,eAAe,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;WACzJ,CAAC;IAEV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mCAAmC,EAAE,IAAI,EAAE,0BAA0B,EAAE;QAClG,MAAM,EAAE,0BAA0B;KACnC,CAAC,CAAC;IAEH,yCAAyC;IACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,kCAAkC;AAClC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAmB,EAAE,MAAoB,EAAE,WAAmB;IACnG,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAE9D,MAAM,IAAI,CAAC,IAAI,CACb,qCAAqC,kBAAkB,CAAC,WAAW,CAAC,iBAAiB,EACrF,SAAS,EACT,SAAS,EACT,EAAE,MAAM,EAAE,0BAA0B,EAAE,CACvC,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAmB,EACnB,MAAoB,EACpB,WAAmB;IAEnB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC;IAEvE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACxB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC;gBACnE,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,0DAA0D;QAC1D,IAAI,SAAS,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7B,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAClD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE3B,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED,iCAAiC;AACjC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAmB,EACnB,MAAoB,EACpB,WAAmB,EACnB,SAAS,GAAG,KAAK;IAEjB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAE7D,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAChE,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBACnC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACxB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;oBACzD,MAAM,IAAI,CAAC,MAAM,CAAC,qCAAqC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,CAAC,MAAM,CAAC,qCAAqC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAmB,EACnB,MAAoB,EACpB,WAAmB,EACnB,QAAgB,EAChB,SAAS,GAAG,KAAK;IAEjB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAE/D,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAChE,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBACnC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACxB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;oBAC3D,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAmB,EAAE,WAAmB,EAAE,QAAgB;IACtF,MAAM,IAAI,GAAG;qBACM,gBAAgB;cACvB,aAAa,CAAC,WAAW,CAAC;kBACtB,aAAa,CAAC,QAAQ,CAAC;+BACV,CAAC;IAE9B,MAAM,IAAI,CAAC,GAAG,CACZ,qCAAqC,kBAAkB,CAAC,WAAW,CAAC,EAAE,EACtE,IAAI,EACJ,0BAA0B,EAC1B,EAAE,MAAM,EAAE,0BAA0B,EAAE,CACvC,CAAC;AACJ,CAAC;AAoBD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAmB,EACnB,MAAoB,EACpB,SAAiB,EACjB,QAAgB,EAChB,SAAS,GAAG,GAAG;IAEf,wEAAwE;IACxE,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAE5D,MAAM,IAAI,GAAG;;;;kBAIG,aAAa,CAAC,QAAQ,CAAC;aAC5B,aAAa,CAAC,SAAS,CAAC;mBAClB,aAAa,CAAC,SAAS,CAAC;;;YAG/B,CAAC;IAEX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAC1B,iCAAiC,EACjC,IAAI,EACJ,2FAA2F,EAC3F,EAAE,MAAM,EAAE,4BAA4B,EAAE,CACzC,CAAC;IAEF,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,yCAAyC;AACzC,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE7B,wCAAwC;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;IAC3E,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjE,6CAA6C;IAC7C,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,IAAI,eAAmC,CAAC;IACxC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,CAAE,OAAO,CAAC,CAAC,CAA6B,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAC5E,IAAI,MAAM;gBAAE,eAAe,GAAG,MAAM,CAAC;QACvC,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC3D,MAAM,kBAAkB,GAAwC,EAAE,CAAC;IACnE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,4DAA4D;QAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC5D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,CAA4B,CAAC;YACzC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACpC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACxC,IAAI,EAAE;gBAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS;QACT,OAAO;QACP,YAAY;QACZ,QAAQ;QACR,kBAAkB;QAClB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,gDAAgD;AAChD,SAAS,aAAa,CAAC,GAAY,EAAE,GAAW;IAC9C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACvC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;QACxC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,IAAI,GAAG,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,uEAAuE;AAEvE,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAElD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1B,MAAM,KAAK,GAAoB,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAClE,MAAM,OAAO,GAAsB,aAAa,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7E,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACjC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC/B,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC/B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACnC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC7D,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG;gBAChD,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC;aAC9C,CAAC,CAAC,CAAC;YAEJ,OAAO;gBACL,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBAC/B,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACtC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACjC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACnC,OAAO;aACR,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACjC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACjC,KAAK;SACN,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/adt/types.d.ts
CHANGED
|
@@ -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
|
package/dist/adt/types.d.ts.map
CHANGED
|
@@ -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"}
|