catalyst-relay 0.5.7 → 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.js CHANGED
@@ -2506,45 +2506,37 @@ async function createTransport(client, config) {
2506
2506
  return ok(transportId);
2507
2507
  }
2508
2508
 
2509
- // src/core/adt/transports/getTransportContents.ts
2510
- var ACCEPT_HEADER = "application/vnd.sap.adt.transportorganizer.v1+xml";
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
2509
+ // src/core/adt/transports/parseTransportTasks.ts
2510
+ function parseTransportTasks(doc) {
2511
+ const tasks = [];
2512
+ const taskElements = doc.getElementsByTagName("tm:task");
2513
+ for (let i = 0; i < taskElements.length; i++) {
2514
+ const taskEl = taskElements[i];
2515
+ if (!taskEl) continue;
2516
+ const taskId = taskEl.getAttribute("tm:number");
2517
+ if (!taskId) continue;
2518
+ const objects = [];
2519
+ const objectElements = taskEl.getElementsByTagName("tm:abap_object");
2520
+ for (let j = 0; j < objectElements.length; j++) {
2521
+ const el = objectElements[j];
2522
+ if (!el) continue;
2523
+ const name = el.getAttribute("tm:name");
2524
+ if (!name) continue;
2525
+ objects.push({
2526
+ name,
2527
+ description: el.getAttribute("tm:obj_desc") || el.getAttribute("tm:obj_info") || "",
2528
+ pgmid: el.getAttribute("tm:pgmid") || "",
2529
+ type: el.getAttribute("tm:type") || "",
2530
+ position: el.getAttribute("tm:position") || ""
2531
+ });
2517
2532
  }
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
- });
2533
+ tasks.push({ taskId, objects });
2542
2534
  }
2543
- return ok(objects);
2535
+ return tasks;
2544
2536
  }
2545
2537
 
2546
2538
  // src/core/adt/transports/removeFromTransport.ts
2547
- var ACCEPT_HEADER2 = "application/vnd.sap.adt.transportorganizer.v1+xml";
2539
+ var ACCEPT_HEADER = "application/vnd.sap.adt.transportorganizer.v1+xml";
2548
2540
  async function removeTransportEntry(client, transportId, object) {
2549
2541
  const body = [
2550
2542
  '<?xml version="1.0" encoding="ASCII"?>',
@@ -2558,7 +2550,7 @@ async function removeTransportEntry(client, transportId, object) {
2558
2550
  method: "PUT",
2559
2551
  path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
2560
2552
  headers: {
2561
- "Accept": ACCEPT_HEADER2,
2553
+ "Accept": ACCEPT_HEADER,
2562
2554
  "Content-Type": "text/plain"
2563
2555
  },
2564
2556
  body
@@ -2572,49 +2564,36 @@ async function removeTransportEntry(client, transportId, object) {
2572
2564
  return ok(void 0);
2573
2565
  }
2574
2566
  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}`));
2567
+ const [response, requestErr] = await client.request({
2568
+ method: "GET",
2569
+ path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
2570
+ headers: { "Accept": ACCEPT_HEADER }
2571
+ });
2572
+ if (requestErr) return err(requestErr);
2573
+ if (!response.ok) {
2574
+ const text2 = await response.text();
2575
+ const errorMsg = extractError(text2);
2576
+ return err(new Error(`Failed to read transport ${transportId}: ${errorMsg}`));
2577
+ }
2578
+ const text = await response.text();
2579
+ const [doc, parseErr] = safeParseXml(text);
2580
+ if (parseErr) return err(parseErr);
2581
+ const tasks = parseTransportTasks(doc);
2582
+ for (const task of tasks) {
2583
+ const object = task.objects.find((o) => o.name === objectName);
2584
+ if (!object) continue;
2585
+ return removeTransportEntry(client, task.taskId, object);
2580
2586
  }
2581
- return removeTransportEntry(client, transportId, object);
2587
+ return err(new Error(`Object '${objectName}' not found on transport ${transportId}`));
2582
2588
  }
2583
2589
 
2584
2590
  // src/core/adt/transports/deleteTransport.ts
2585
- var ACCEPT_HEADER3 = "application/vnd.sap.adt.transportorganizer.v1+xml";
2586
- function parseTransportTasks(doc) {
2587
- const tasks = [];
2588
- const taskElements = doc.getElementsByTagName("tm:task");
2589
- for (let i = 0; i < taskElements.length; i++) {
2590
- const taskEl = taskElements[i];
2591
- if (!taskEl) continue;
2592
- const taskId = taskEl.getAttribute("tm:number");
2593
- if (!taskId) continue;
2594
- const objects = [];
2595
- const objectElements = taskEl.getElementsByTagName("tm:abap_object");
2596
- for (let j = 0; j < objectElements.length; j++) {
2597
- const el = objectElements[j];
2598
- if (!el) continue;
2599
- const name = el.getAttribute("tm:name");
2600
- if (!name) continue;
2601
- objects.push({
2602
- name,
2603
- description: el.getAttribute("tm:obj_desc") || el.getAttribute("tm:obj_info") || "",
2604
- pgmid: el.getAttribute("tm:pgmid") || "",
2605
- type: el.getAttribute("tm:type") || "",
2606
- position: el.getAttribute("tm:position") || ""
2607
- });
2608
- }
2609
- tasks.push({ taskId, objects });
2610
- }
2611
- return tasks;
2612
- }
2591
+ var ACCEPT_HEADER2 = "application/vnd.sap.adt.transportorganizer.v1+xml";
2613
2592
  async function sortAndCompress(client, taskId) {
2614
2593
  const [response, requestErr] = await client.request({
2615
2594
  method: "POST",
2616
2595
  path: `/sap/bc/adt/cts/transportrequests/${taskId}/sortandcompress`,
2617
- headers: { "Accept": ACCEPT_HEADER3 }
2596
+ headers: { "Accept": ACCEPT_HEADER2 }
2618
2597
  });
2619
2598
  if (requestErr) return err(requestErr);
2620
2599
  if (!response.ok) {
@@ -2628,7 +2607,7 @@ async function deleteRequest(client, id) {
2628
2607
  const [response, requestErr] = await client.request({
2629
2608
  method: "DELETE",
2630
2609
  path: `/sap/bc/adt/cts/transportrequests/${id}`,
2631
- headers: { "Accept": ACCEPT_HEADER3 }
2610
+ headers: { "Accept": ACCEPT_HEADER2 }
2632
2611
  });
2633
2612
  if (requestErr) return err(requestErr);
2634
2613
  if (!response.ok) {
@@ -2642,7 +2621,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
2642
2621
  const [response, requestErr] = await client.request({
2643
2622
  method: "GET",
2644
2623
  path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
2645
- headers: { "Accept": ACCEPT_HEADER3 }
2624
+ headers: { "Accept": ACCEPT_HEADER2 }
2646
2625
  });
2647
2626
  if (requestErr) return err(requestErr);
2648
2627
  if (!response.ok) {
@@ -2661,7 +2640,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
2661
2640
  const [taskResponse, taskReadErr] = await client.request({
2662
2641
  method: "GET",
2663
2642
  path: `/sap/bc/adt/cts/transportrequests/${task.taskId}`,
2664
- headers: { "Accept": ACCEPT_HEADER3 }
2643
+ headers: { "Accept": ACCEPT_HEADER2 }
2665
2644
  });
2666
2645
  if (taskReadErr) return err(taskReadErr);
2667
2646
  const taskText = await taskResponse.text();