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.mjs CHANGED
@@ -2472,9 +2472,46 @@ async function createTransport(client, config) {
2472
2472
  return ok(transportId);
2473
2473
  }
2474
2474
 
2475
- // src/core/adt/transports/removeFromTransport.ts
2475
+ // src/core/adt/transports/getTransportContents.ts
2476
2476
  var ACCEPT_HEADER = "application/vnd.sap.adt.transportorganizer.v1+xml";
2477
- async function removeFromTransport(client, transportId, object) {
2477
+ async function getTransportContents(client, transportId) {
2478
+ const [response, requestErr] = await client.request({
2479
+ method: "GET",
2480
+ path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
2481
+ headers: {
2482
+ "Accept": ACCEPT_HEADER
2483
+ }
2484
+ });
2485
+ if (requestErr) return err(requestErr);
2486
+ if (!response.ok) {
2487
+ const text2 = await response.text();
2488
+ const errorMsg = extractError(text2);
2489
+ return err(new Error(`Failed to read transport ${transportId}: ${errorMsg}`));
2490
+ }
2491
+ const text = await response.text();
2492
+ const [doc, parseErr] = safeParseXml(text);
2493
+ if (parseErr) return err(parseErr);
2494
+ const objects = [];
2495
+ const elements = doc.getElementsByTagName("tm:abap_object");
2496
+ for (let i = 0; i < elements.length; i++) {
2497
+ const el = elements[i];
2498
+ if (!el) continue;
2499
+ const name = el.getAttribute("tm:name");
2500
+ if (!name) continue;
2501
+ objects.push({
2502
+ name,
2503
+ description: el.getAttribute("tm:obj_desc") || el.getAttribute("tm:obj_info") || "",
2504
+ pgmid: el.getAttribute("tm:pgmid") || "",
2505
+ type: el.getAttribute("tm:type") || "",
2506
+ position: el.getAttribute("tm:position") || ""
2507
+ });
2508
+ }
2509
+ return ok(objects);
2510
+ }
2511
+
2512
+ // src/core/adt/transports/removeFromTransport.ts
2513
+ var ACCEPT_HEADER2 = "application/vnd.sap.adt.transportorganizer.v1+xml";
2514
+ async function removeTransportEntry(client, transportId, object) {
2478
2515
  const body = [
2479
2516
  '<?xml version="1.0" encoding="ASCII"?>',
2480
2517
  `<tm:root xmlns:tm="http://www.sap.com/cts/adt/tm" tm:number="${escapeXml(transportId)}" tm:useraction="removeobject">`,
@@ -2487,7 +2524,7 @@ async function removeFromTransport(client, transportId, object) {
2487
2524
  method: "PUT",
2488
2525
  path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
2489
2526
  headers: {
2490
- "Accept": ACCEPT_HEADER,
2527
+ "Accept": ACCEPT_HEADER2,
2491
2528
  "Content-Type": "text/plain"
2492
2529
  },
2493
2530
  body
@@ -2500,9 +2537,18 @@ async function removeFromTransport(client, transportId, object) {
2500
2537
  }
2501
2538
  return ok(void 0);
2502
2539
  }
2540
+ async function removeFromTransport(client, transportId, objectName) {
2541
+ const [objects, listErr] = await getTransportContents(client, transportId);
2542
+ if (listErr) return err(listErr);
2543
+ const object = objects.find((o) => o.name === objectName);
2544
+ if (!object) {
2545
+ return err(new Error(`Object '${objectName}' not found on transport ${transportId}`));
2546
+ }
2547
+ return removeTransportEntry(client, transportId, object);
2548
+ }
2503
2549
 
2504
2550
  // src/core/adt/transports/deleteTransport.ts
2505
- var ACCEPT_HEADER2 = "application/vnd.sap.adt.transportorganizer.v1+xml";
2551
+ var ACCEPT_HEADER3 = "application/vnd.sap.adt.transportorganizer.v1+xml";
2506
2552
  function parseTransportTasks(doc) {
2507
2553
  const tasks = [];
2508
2554
  const taskElements = doc.getElementsByTagName("tm:task");
@@ -2534,7 +2580,7 @@ async function sortAndCompress(client, taskId) {
2534
2580
  const [response, requestErr] = await client.request({
2535
2581
  method: "POST",
2536
2582
  path: `/sap/bc/adt/cts/transportrequests/${taskId}/sortandcompress`,
2537
- headers: { "Accept": ACCEPT_HEADER2 }
2583
+ headers: { "Accept": ACCEPT_HEADER3 }
2538
2584
  });
2539
2585
  if (requestErr) return err(requestErr);
2540
2586
  if (!response.ok) {
@@ -2548,7 +2594,7 @@ async function deleteRequest(client, id) {
2548
2594
  const [response, requestErr] = await client.request({
2549
2595
  method: "DELETE",
2550
2596
  path: `/sap/bc/adt/cts/transportrequests/${id}`,
2551
- headers: { "Accept": ACCEPT_HEADER2 }
2597
+ headers: { "Accept": ACCEPT_HEADER3 }
2552
2598
  });
2553
2599
  if (requestErr) return err(requestErr);
2554
2600
  if (!response.ok) {
@@ -2562,7 +2608,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
2562
2608
  const [response, requestErr] = await client.request({
2563
2609
  method: "GET",
2564
2610
  path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
2565
- headers: { "Accept": ACCEPT_HEADER2 }
2611
+ headers: { "Accept": ACCEPT_HEADER3 }
2566
2612
  });
2567
2613
  if (requestErr) return err(requestErr);
2568
2614
  if (!response.ok) {
@@ -2581,7 +2627,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
2581
2627
  const [taskResponse, taskReadErr] = await client.request({
2582
2628
  method: "GET",
2583
2629
  path: `/sap/bc/adt/cts/transportrequests/${task.taskId}`,
2584
- headers: { "Accept": ACCEPT_HEADER2 }
2630
+ headers: { "Accept": ACCEPT_HEADER3 }
2585
2631
  });
2586
2632
  if (taskReadErr) return err(taskReadErr);
2587
2633
  const taskText = await taskResponse.text();
@@ -2593,7 +2639,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
2593
2639
  if (!el) continue;
2594
2640
  const name = el.getAttribute("tm:name");
2595
2641
  if (!name) continue;
2596
- const [, removeErr] = await removeFromTransport(client, task.taskId, {
2642
+ const [, removeErr] = await removeTransportEntry(client, task.taskId, {
2597
2643
  name,
2598
2644
  description: el.getAttribute("tm:obj_desc") || el.getAttribute("tm:obj_info") || "",
2599
2645
  pgmid: el.getAttribute("tm:pgmid") || "",
@@ -2873,9 +2919,9 @@ async function deleteTransport2(state, requestor, transportId, removeObjects = f
2873
2919
  }
2874
2920
 
2875
2921
  // src/client/methods/transport/removeFromTransport.ts
2876
- async function removeFromTransport2(state, requestor, transportId, object) {
2922
+ async function removeFromTransport2(state, requestor, transportId, objectName) {
2877
2923
  if (!state.session) return err(new Error("Not logged in"));
2878
- return removeFromTransport(requestor, transportId, object);
2924
+ return removeFromTransport(requestor, transportId, objectName);
2879
2925
  }
2880
2926
 
2881
2927
  // src/client/methods/diff/gitDiff.ts
@@ -3257,8 +3303,8 @@ var ADTClientImpl = class {
3257
3303
  async deleteTransport(transportId, removeObjects = false) {
3258
3304
  return deleteTransport2(this.state, this.requestor, transportId, removeObjects);
3259
3305
  }
3260
- async removeFromTransport(transportId, object) {
3261
- return removeFromTransport2(this.state, this.requestor, transportId, object);
3306
+ async removeFromTransport(transportId, objectName) {
3307
+ return removeFromTransport2(this.state, this.requestor, transportId, objectName);
3262
3308
  }
3263
3309
  // --- Diff Operations ---
3264
3310
  async gitDiff(objects) {