catalyst-relay 0.5.6 → 0.5.8
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 +58 -33
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +58 -33
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -2472,9 +2472,38 @@ async function createTransport(client, config) {
|
|
|
2472
2472
|
return ok(transportId);
|
|
2473
2473
|
}
|
|
2474
2474
|
|
|
2475
|
+
// src/core/adt/transports/parseTransportTasks.ts
|
|
2476
|
+
function parseTransportTasks(doc) {
|
|
2477
|
+
const tasks = [];
|
|
2478
|
+
const taskElements = doc.getElementsByTagName("tm:task");
|
|
2479
|
+
for (let i = 0; i < taskElements.length; i++) {
|
|
2480
|
+
const taskEl = taskElements[i];
|
|
2481
|
+
if (!taskEl) continue;
|
|
2482
|
+
const taskId = taskEl.getAttribute("tm:number");
|
|
2483
|
+
if (!taskId) continue;
|
|
2484
|
+
const objects = [];
|
|
2485
|
+
const objectElements = taskEl.getElementsByTagName("tm:abap_object");
|
|
2486
|
+
for (let j = 0; j < objectElements.length; j++) {
|
|
2487
|
+
const el = objectElements[j];
|
|
2488
|
+
if (!el) continue;
|
|
2489
|
+
const name = el.getAttribute("tm:name");
|
|
2490
|
+
if (!name) continue;
|
|
2491
|
+
objects.push({
|
|
2492
|
+
name,
|
|
2493
|
+
description: el.getAttribute("tm:obj_desc") || el.getAttribute("tm:obj_info") || "",
|
|
2494
|
+
pgmid: el.getAttribute("tm:pgmid") || "",
|
|
2495
|
+
type: el.getAttribute("tm:type") || "",
|
|
2496
|
+
position: el.getAttribute("tm:position") || ""
|
|
2497
|
+
});
|
|
2498
|
+
}
|
|
2499
|
+
tasks.push({ taskId, objects });
|
|
2500
|
+
}
|
|
2501
|
+
return tasks;
|
|
2502
|
+
}
|
|
2503
|
+
|
|
2475
2504
|
// src/core/adt/transports/removeFromTransport.ts
|
|
2476
2505
|
var ACCEPT_HEADER = "application/vnd.sap.adt.transportorganizer.v1+xml";
|
|
2477
|
-
async function
|
|
2506
|
+
async function removeTransportEntry(client, transportId, object) {
|
|
2478
2507
|
const body = [
|
|
2479
2508
|
'<?xml version="1.0" encoding="ASCII"?>',
|
|
2480
2509
|
`<tm:root xmlns:tm="http://www.sap.com/cts/adt/tm" tm:number="${escapeXml(transportId)}" tm:useraction="removeobject">`,
|
|
@@ -2500,36 +2529,32 @@ async function removeFromTransport(client, transportId, object) {
|
|
|
2500
2529
|
}
|
|
2501
2530
|
return ok(void 0);
|
|
2502
2531
|
}
|
|
2532
|
+
async function removeFromTransport(client, transportId, objectName) {
|
|
2533
|
+
const [response, requestErr] = await client.request({
|
|
2534
|
+
method: "GET",
|
|
2535
|
+
path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
|
|
2536
|
+
headers: { "Accept": ACCEPT_HEADER }
|
|
2537
|
+
});
|
|
2538
|
+
if (requestErr) return err(requestErr);
|
|
2539
|
+
if (!response.ok) {
|
|
2540
|
+
const text2 = await response.text();
|
|
2541
|
+
const errorMsg = extractError(text2);
|
|
2542
|
+
return err(new Error(`Failed to read transport ${transportId}: ${errorMsg}`));
|
|
2543
|
+
}
|
|
2544
|
+
const text = await response.text();
|
|
2545
|
+
const [doc, parseErr] = safeParseXml(text);
|
|
2546
|
+
if (parseErr) return err(parseErr);
|
|
2547
|
+
const tasks = parseTransportTasks(doc);
|
|
2548
|
+
for (const task of tasks) {
|
|
2549
|
+
const object = task.objects.find((o) => o.name === objectName);
|
|
2550
|
+
if (!object) continue;
|
|
2551
|
+
return removeTransportEntry(client, task.taskId, object);
|
|
2552
|
+
}
|
|
2553
|
+
return err(new Error(`Object '${objectName}' not found on transport ${transportId}`));
|
|
2554
|
+
}
|
|
2503
2555
|
|
|
2504
2556
|
// src/core/adt/transports/deleteTransport.ts
|
|
2505
2557
|
var ACCEPT_HEADER2 = "application/vnd.sap.adt.transportorganizer.v1+xml";
|
|
2506
|
-
function parseTransportTasks(doc) {
|
|
2507
|
-
const tasks = [];
|
|
2508
|
-
const taskElements = doc.getElementsByTagName("tm:task");
|
|
2509
|
-
for (let i = 0; i < taskElements.length; i++) {
|
|
2510
|
-
const taskEl = taskElements[i];
|
|
2511
|
-
if (!taskEl) continue;
|
|
2512
|
-
const taskId = taskEl.getAttribute("tm:number");
|
|
2513
|
-
if (!taskId) continue;
|
|
2514
|
-
const objects = [];
|
|
2515
|
-
const objectElements = taskEl.getElementsByTagName("tm:abap_object");
|
|
2516
|
-
for (let j = 0; j < objectElements.length; j++) {
|
|
2517
|
-
const el = objectElements[j];
|
|
2518
|
-
if (!el) continue;
|
|
2519
|
-
const name = el.getAttribute("tm:name");
|
|
2520
|
-
if (!name) continue;
|
|
2521
|
-
objects.push({
|
|
2522
|
-
name,
|
|
2523
|
-
description: el.getAttribute("tm:obj_desc") || el.getAttribute("tm:obj_info") || "",
|
|
2524
|
-
pgmid: el.getAttribute("tm:pgmid") || "",
|
|
2525
|
-
type: el.getAttribute("tm:type") || "",
|
|
2526
|
-
position: el.getAttribute("tm:position") || ""
|
|
2527
|
-
});
|
|
2528
|
-
}
|
|
2529
|
-
tasks.push({ taskId, objects });
|
|
2530
|
-
}
|
|
2531
|
-
return tasks;
|
|
2532
|
-
}
|
|
2533
2558
|
async function sortAndCompress(client, taskId) {
|
|
2534
2559
|
const [response, requestErr] = await client.request({
|
|
2535
2560
|
method: "POST",
|
|
@@ -2593,7 +2618,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
|
|
|
2593
2618
|
if (!el) continue;
|
|
2594
2619
|
const name = el.getAttribute("tm:name");
|
|
2595
2620
|
if (!name) continue;
|
|
2596
|
-
const [, removeErr] = await
|
|
2621
|
+
const [, removeErr] = await removeTransportEntry(client, task.taskId, {
|
|
2597
2622
|
name,
|
|
2598
2623
|
description: el.getAttribute("tm:obj_desc") || el.getAttribute("tm:obj_info") || "",
|
|
2599
2624
|
pgmid: el.getAttribute("tm:pgmid") || "",
|
|
@@ -2873,9 +2898,9 @@ async function deleteTransport2(state, requestor, transportId, removeObjects = f
|
|
|
2873
2898
|
}
|
|
2874
2899
|
|
|
2875
2900
|
// src/client/methods/transport/removeFromTransport.ts
|
|
2876
|
-
async function removeFromTransport2(state, requestor, transportId,
|
|
2901
|
+
async function removeFromTransport2(state, requestor, transportId, objectName) {
|
|
2877
2902
|
if (!state.session) return err(new Error("Not logged in"));
|
|
2878
|
-
return removeFromTransport(requestor, transportId,
|
|
2903
|
+
return removeFromTransport(requestor, transportId, objectName);
|
|
2879
2904
|
}
|
|
2880
2905
|
|
|
2881
2906
|
// src/client/methods/diff/gitDiff.ts
|
|
@@ -3257,8 +3282,8 @@ var ADTClientImpl = class {
|
|
|
3257
3282
|
async deleteTransport(transportId, removeObjects = false) {
|
|
3258
3283
|
return deleteTransport2(this.state, this.requestor, transportId, removeObjects);
|
|
3259
3284
|
}
|
|
3260
|
-
async removeFromTransport(transportId,
|
|
3261
|
-
return removeFromTransport2(this.state, this.requestor, transportId,
|
|
3285
|
+
async removeFromTransport(transportId, objectName) {
|
|
3286
|
+
return removeFromTransport2(this.state, this.requestor, transportId, objectName);
|
|
3262
3287
|
}
|
|
3263
3288
|
// --- Diff Operations ---
|
|
3264
3289
|
async gitDiff(objects) {
|