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.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 removeFromTransport(client, transportId, object) {
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 removeFromTransport(client, task.taskId, {
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, object) {
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, object);
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, object) {
3261
- return removeFromTransport2(this.state, this.requestor, transportId, object);
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) {