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.mjs CHANGED
@@ -2472,45 +2472,37 @@ async function createTransport(client, config) {
2472
2472
  return ok(transportId);
2473
2473
  }
2474
2474
 
2475
- // src/core/adt/transports/getTransportContents.ts
2476
- var ACCEPT_HEADER = "application/vnd.sap.adt.transportorganizer.v1+xml";
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
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
+ });
2483
2498
  }
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
- });
2499
+ tasks.push({ taskId, objects });
2508
2500
  }
2509
- return ok(objects);
2501
+ return tasks;
2510
2502
  }
2511
2503
 
2512
2504
  // src/core/adt/transports/removeFromTransport.ts
2513
- var ACCEPT_HEADER2 = "application/vnd.sap.adt.transportorganizer.v1+xml";
2505
+ var ACCEPT_HEADER = "application/vnd.sap.adt.transportorganizer.v1+xml";
2514
2506
  async function removeTransportEntry(client, transportId, object) {
2515
2507
  const body = [
2516
2508
  '<?xml version="1.0" encoding="ASCII"?>',
@@ -2524,7 +2516,7 @@ async function removeTransportEntry(client, transportId, object) {
2524
2516
  method: "PUT",
2525
2517
  path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
2526
2518
  headers: {
2527
- "Accept": ACCEPT_HEADER2,
2519
+ "Accept": ACCEPT_HEADER,
2528
2520
  "Content-Type": "text/plain"
2529
2521
  },
2530
2522
  body
@@ -2538,49 +2530,36 @@ async function removeTransportEntry(client, transportId, object) {
2538
2530
  return ok(void 0);
2539
2531
  }
2540
2532
  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}`));
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);
2546
2552
  }
2547
- return removeTransportEntry(client, transportId, object);
2553
+ return err(new Error(`Object '${objectName}' not found on transport ${transportId}`));
2548
2554
  }
2549
2555
 
2550
2556
  // src/core/adt/transports/deleteTransport.ts
2551
- var ACCEPT_HEADER3 = "application/vnd.sap.adt.transportorganizer.v1+xml";
2552
- function parseTransportTasks(doc) {
2553
- const tasks = [];
2554
- const taskElements = doc.getElementsByTagName("tm:task");
2555
- for (let i = 0; i < taskElements.length; i++) {
2556
- const taskEl = taskElements[i];
2557
- if (!taskEl) continue;
2558
- const taskId = taskEl.getAttribute("tm:number");
2559
- if (!taskId) continue;
2560
- const objects = [];
2561
- const objectElements = taskEl.getElementsByTagName("tm:abap_object");
2562
- for (let j = 0; j < objectElements.length; j++) {
2563
- const el = objectElements[j];
2564
- if (!el) continue;
2565
- const name = el.getAttribute("tm:name");
2566
- if (!name) continue;
2567
- objects.push({
2568
- name,
2569
- description: el.getAttribute("tm:obj_desc") || el.getAttribute("tm:obj_info") || "",
2570
- pgmid: el.getAttribute("tm:pgmid") || "",
2571
- type: el.getAttribute("tm:type") || "",
2572
- position: el.getAttribute("tm:position") || ""
2573
- });
2574
- }
2575
- tasks.push({ taskId, objects });
2576
- }
2577
- return tasks;
2578
- }
2557
+ var ACCEPT_HEADER2 = "application/vnd.sap.adt.transportorganizer.v1+xml";
2579
2558
  async function sortAndCompress(client, taskId) {
2580
2559
  const [response, requestErr] = await client.request({
2581
2560
  method: "POST",
2582
2561
  path: `/sap/bc/adt/cts/transportrequests/${taskId}/sortandcompress`,
2583
- headers: { "Accept": ACCEPT_HEADER3 }
2562
+ headers: { "Accept": ACCEPT_HEADER2 }
2584
2563
  });
2585
2564
  if (requestErr) return err(requestErr);
2586
2565
  if (!response.ok) {
@@ -2594,7 +2573,7 @@ async function deleteRequest(client, id) {
2594
2573
  const [response, requestErr] = await client.request({
2595
2574
  method: "DELETE",
2596
2575
  path: `/sap/bc/adt/cts/transportrequests/${id}`,
2597
- headers: { "Accept": ACCEPT_HEADER3 }
2576
+ headers: { "Accept": ACCEPT_HEADER2 }
2598
2577
  });
2599
2578
  if (requestErr) return err(requestErr);
2600
2579
  if (!response.ok) {
@@ -2608,7 +2587,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
2608
2587
  const [response, requestErr] = await client.request({
2609
2588
  method: "GET",
2610
2589
  path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
2611
- headers: { "Accept": ACCEPT_HEADER3 }
2590
+ headers: { "Accept": ACCEPT_HEADER2 }
2612
2591
  });
2613
2592
  if (requestErr) return err(requestErr);
2614
2593
  if (!response.ok) {
@@ -2627,7 +2606,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
2627
2606
  const [taskResponse, taskReadErr] = await client.request({
2628
2607
  method: "GET",
2629
2608
  path: `/sap/bc/adt/cts/transportrequests/${task.taskId}`,
2630
- headers: { "Accept": ACCEPT_HEADER3 }
2609
+ headers: { "Accept": ACCEPT_HEADER2 }
2631
2610
  });
2632
2611
  if (taskReadErr) return err(taskReadErr);
2633
2612
  const taskText = await taskResponse.text();