catalyst-relay 0.5.6 → 0.5.7
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/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +59 -13
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +59 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -520,7 +520,7 @@ interface TransportConfig {
|
|
|
520
520
|
*/
|
|
521
521
|
|
|
522
522
|
/**
|
|
523
|
-
* Object entry
|
|
523
|
+
* Object entry on a transport
|
|
524
524
|
*/
|
|
525
525
|
interface TransportObject {
|
|
526
526
|
/** Object name (e.g., 'ZSNAP_F72TG_103') */
|
|
@@ -612,7 +612,7 @@ interface ADTClient {
|
|
|
612
612
|
whereUsed(object: ObjectRef): AsyncResult<Dependency[]>;
|
|
613
613
|
createTransport(config: TransportConfig): AsyncResult<string>;
|
|
614
614
|
deleteTransport(transportId: string, removeObjects?: boolean): AsyncResult<void>;
|
|
615
|
-
removeFromTransport(transportId: string,
|
|
615
|
+
removeFromTransport(transportId: string, objectName: string): AsyncResult<void>;
|
|
616
616
|
gitDiff(objects: ObjectContent[]): AsyncResult<DiffResult[]>;
|
|
617
617
|
getObjectConfig(): ObjectConfig[];
|
|
618
618
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -520,7 +520,7 @@ interface TransportConfig {
|
|
|
520
520
|
*/
|
|
521
521
|
|
|
522
522
|
/**
|
|
523
|
-
* Object entry
|
|
523
|
+
* Object entry on a transport
|
|
524
524
|
*/
|
|
525
525
|
interface TransportObject {
|
|
526
526
|
/** Object name (e.g., 'ZSNAP_F72TG_103') */
|
|
@@ -612,7 +612,7 @@ interface ADTClient {
|
|
|
612
612
|
whereUsed(object: ObjectRef): AsyncResult<Dependency[]>;
|
|
613
613
|
createTransport(config: TransportConfig): AsyncResult<string>;
|
|
614
614
|
deleteTransport(transportId: string, removeObjects?: boolean): AsyncResult<void>;
|
|
615
|
-
removeFromTransport(transportId: string,
|
|
615
|
+
removeFromTransport(transportId: string, objectName: string): AsyncResult<void>;
|
|
616
616
|
gitDiff(objects: ObjectContent[]): AsyncResult<DiffResult[]>;
|
|
617
617
|
getObjectConfig(): ObjectConfig[];
|
|
618
618
|
}
|
package/dist/index.js
CHANGED
|
@@ -2506,9 +2506,46 @@ async function createTransport(client, config) {
|
|
|
2506
2506
|
return ok(transportId);
|
|
2507
2507
|
}
|
|
2508
2508
|
|
|
2509
|
-
// src/core/adt/transports/
|
|
2509
|
+
// src/core/adt/transports/getTransportContents.ts
|
|
2510
2510
|
var ACCEPT_HEADER = "application/vnd.sap.adt.transportorganizer.v1+xml";
|
|
2511
|
-
async function
|
|
2511
|
+
async function getTransportContents(client, transportId) {
|
|
2512
|
+
const [response, requestErr] = await client.request({
|
|
2513
|
+
method: "GET",
|
|
2514
|
+
path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
|
|
2515
|
+
headers: {
|
|
2516
|
+
"Accept": ACCEPT_HEADER
|
|
2517
|
+
}
|
|
2518
|
+
});
|
|
2519
|
+
if (requestErr) return err(requestErr);
|
|
2520
|
+
if (!response.ok) {
|
|
2521
|
+
const text2 = await response.text();
|
|
2522
|
+
const errorMsg = extractError(text2);
|
|
2523
|
+
return err(new Error(`Failed to read transport ${transportId}: ${errorMsg}`));
|
|
2524
|
+
}
|
|
2525
|
+
const text = await response.text();
|
|
2526
|
+
const [doc, parseErr] = safeParseXml(text);
|
|
2527
|
+
if (parseErr) return err(parseErr);
|
|
2528
|
+
const objects = [];
|
|
2529
|
+
const elements = doc.getElementsByTagName("tm:abap_object");
|
|
2530
|
+
for (let i = 0; i < elements.length; i++) {
|
|
2531
|
+
const el = elements[i];
|
|
2532
|
+
if (!el) continue;
|
|
2533
|
+
const name = el.getAttribute("tm:name");
|
|
2534
|
+
if (!name) continue;
|
|
2535
|
+
objects.push({
|
|
2536
|
+
name,
|
|
2537
|
+
description: el.getAttribute("tm:obj_desc") || el.getAttribute("tm:obj_info") || "",
|
|
2538
|
+
pgmid: el.getAttribute("tm:pgmid") || "",
|
|
2539
|
+
type: el.getAttribute("tm:type") || "",
|
|
2540
|
+
position: el.getAttribute("tm:position") || ""
|
|
2541
|
+
});
|
|
2542
|
+
}
|
|
2543
|
+
return ok(objects);
|
|
2544
|
+
}
|
|
2545
|
+
|
|
2546
|
+
// src/core/adt/transports/removeFromTransport.ts
|
|
2547
|
+
var ACCEPT_HEADER2 = "application/vnd.sap.adt.transportorganizer.v1+xml";
|
|
2548
|
+
async function removeTransportEntry(client, transportId, object) {
|
|
2512
2549
|
const body = [
|
|
2513
2550
|
'<?xml version="1.0" encoding="ASCII"?>',
|
|
2514
2551
|
`<tm:root xmlns:tm="http://www.sap.com/cts/adt/tm" tm:number="${escapeXml(transportId)}" tm:useraction="removeobject">`,
|
|
@@ -2521,7 +2558,7 @@ async function removeFromTransport(client, transportId, object) {
|
|
|
2521
2558
|
method: "PUT",
|
|
2522
2559
|
path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
|
|
2523
2560
|
headers: {
|
|
2524
|
-
"Accept":
|
|
2561
|
+
"Accept": ACCEPT_HEADER2,
|
|
2525
2562
|
"Content-Type": "text/plain"
|
|
2526
2563
|
},
|
|
2527
2564
|
body
|
|
@@ -2534,9 +2571,18 @@ async function removeFromTransport(client, transportId, object) {
|
|
|
2534
2571
|
}
|
|
2535
2572
|
return ok(void 0);
|
|
2536
2573
|
}
|
|
2574
|
+
async function removeFromTransport(client, transportId, objectName) {
|
|
2575
|
+
const [objects, listErr] = await getTransportContents(client, transportId);
|
|
2576
|
+
if (listErr) return err(listErr);
|
|
2577
|
+
const object = objects.find((o) => o.name === objectName);
|
|
2578
|
+
if (!object) {
|
|
2579
|
+
return err(new Error(`Object '${objectName}' not found on transport ${transportId}`));
|
|
2580
|
+
}
|
|
2581
|
+
return removeTransportEntry(client, transportId, object);
|
|
2582
|
+
}
|
|
2537
2583
|
|
|
2538
2584
|
// src/core/adt/transports/deleteTransport.ts
|
|
2539
|
-
var
|
|
2585
|
+
var ACCEPT_HEADER3 = "application/vnd.sap.adt.transportorganizer.v1+xml";
|
|
2540
2586
|
function parseTransportTasks(doc) {
|
|
2541
2587
|
const tasks = [];
|
|
2542
2588
|
const taskElements = doc.getElementsByTagName("tm:task");
|
|
@@ -2568,7 +2614,7 @@ async function sortAndCompress(client, taskId) {
|
|
|
2568
2614
|
const [response, requestErr] = await client.request({
|
|
2569
2615
|
method: "POST",
|
|
2570
2616
|
path: `/sap/bc/adt/cts/transportrequests/${taskId}/sortandcompress`,
|
|
2571
|
-
headers: { "Accept":
|
|
2617
|
+
headers: { "Accept": ACCEPT_HEADER3 }
|
|
2572
2618
|
});
|
|
2573
2619
|
if (requestErr) return err(requestErr);
|
|
2574
2620
|
if (!response.ok) {
|
|
@@ -2582,7 +2628,7 @@ async function deleteRequest(client, id) {
|
|
|
2582
2628
|
const [response, requestErr] = await client.request({
|
|
2583
2629
|
method: "DELETE",
|
|
2584
2630
|
path: `/sap/bc/adt/cts/transportrequests/${id}`,
|
|
2585
|
-
headers: { "Accept":
|
|
2631
|
+
headers: { "Accept": ACCEPT_HEADER3 }
|
|
2586
2632
|
});
|
|
2587
2633
|
if (requestErr) return err(requestErr);
|
|
2588
2634
|
if (!response.ok) {
|
|
@@ -2596,7 +2642,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
|
|
|
2596
2642
|
const [response, requestErr] = await client.request({
|
|
2597
2643
|
method: "GET",
|
|
2598
2644
|
path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
|
|
2599
|
-
headers: { "Accept":
|
|
2645
|
+
headers: { "Accept": ACCEPT_HEADER3 }
|
|
2600
2646
|
});
|
|
2601
2647
|
if (requestErr) return err(requestErr);
|
|
2602
2648
|
if (!response.ok) {
|
|
@@ -2615,7 +2661,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
|
|
|
2615
2661
|
const [taskResponse, taskReadErr] = await client.request({
|
|
2616
2662
|
method: "GET",
|
|
2617
2663
|
path: `/sap/bc/adt/cts/transportrequests/${task.taskId}`,
|
|
2618
|
-
headers: { "Accept":
|
|
2664
|
+
headers: { "Accept": ACCEPT_HEADER3 }
|
|
2619
2665
|
});
|
|
2620
2666
|
if (taskReadErr) return err(taskReadErr);
|
|
2621
2667
|
const taskText = await taskResponse.text();
|
|
@@ -2627,7 +2673,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
|
|
|
2627
2673
|
if (!el) continue;
|
|
2628
2674
|
const name = el.getAttribute("tm:name");
|
|
2629
2675
|
if (!name) continue;
|
|
2630
|
-
const [, removeErr] = await
|
|
2676
|
+
const [, removeErr] = await removeTransportEntry(client, task.taskId, {
|
|
2631
2677
|
name,
|
|
2632
2678
|
description: el.getAttribute("tm:obj_desc") || el.getAttribute("tm:obj_info") || "",
|
|
2633
2679
|
pgmid: el.getAttribute("tm:pgmid") || "",
|
|
@@ -2907,9 +2953,9 @@ async function deleteTransport2(state, requestor, transportId, removeObjects = f
|
|
|
2907
2953
|
}
|
|
2908
2954
|
|
|
2909
2955
|
// src/client/methods/transport/removeFromTransport.ts
|
|
2910
|
-
async function removeFromTransport2(state, requestor, transportId,
|
|
2956
|
+
async function removeFromTransport2(state, requestor, transportId, objectName) {
|
|
2911
2957
|
if (!state.session) return err(new Error("Not logged in"));
|
|
2912
|
-
return removeFromTransport(requestor, transportId,
|
|
2958
|
+
return removeFromTransport(requestor, transportId, objectName);
|
|
2913
2959
|
}
|
|
2914
2960
|
|
|
2915
2961
|
// src/client/methods/diff/gitDiff.ts
|
|
@@ -3291,8 +3337,8 @@ var ADTClientImpl = class {
|
|
|
3291
3337
|
async deleteTransport(transportId, removeObjects = false) {
|
|
3292
3338
|
return deleteTransport2(this.state, this.requestor, transportId, removeObjects);
|
|
3293
3339
|
}
|
|
3294
|
-
async removeFromTransport(transportId,
|
|
3295
|
-
return removeFromTransport2(this.state, this.requestor, transportId,
|
|
3340
|
+
async removeFromTransport(transportId, objectName) {
|
|
3341
|
+
return removeFromTransport2(this.state, this.requestor, transportId, objectName);
|
|
3296
3342
|
}
|
|
3297
3343
|
// --- Diff Operations ---
|
|
3298
3344
|
async gitDiff(objects) {
|