catalyst-relay 0.5.7 → 0.5.9

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}`));
2546
2543
  }
2547
- return removeTransportEntry(client, transportId, object);
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}`));
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();
@@ -2655,6 +2634,26 @@ async function deleteTransport(client, transportId, removeObjects = false) {
2655
2634
  return deleteRequest(client, transportId);
2656
2635
  }
2657
2636
 
2637
+ // src/core/adt/transports/viewTransportObjects.ts
2638
+ var ACCEPT_HEADER3 = "application/vnd.sap.adt.transportorganizer.v1+xml";
2639
+ async function viewTransportObjects(client, transportId) {
2640
+ const [response, requestErr] = await client.request({
2641
+ method: "GET",
2642
+ path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
2643
+ headers: { "Accept": ACCEPT_HEADER3 }
2644
+ });
2645
+ if (requestErr) return err(requestErr);
2646
+ if (!response.ok) {
2647
+ const text2 = await response.text();
2648
+ const errorMsg = extractError(text2);
2649
+ return err(new Error(`Failed to read transport ${transportId}: ${errorMsg}`));
2650
+ }
2651
+ const text = await response.text();
2652
+ const [doc, parseErr] = safeParseXml(text);
2653
+ if (parseErr) return err(parseErr);
2654
+ return ok(parseTransportTasks(doc));
2655
+ }
2656
+
2658
2657
  // src/core/adt/craud/gitDiff.ts
2659
2658
  import { diffArrays } from "diff";
2660
2659
  function computeDiff(serverLines, localLines) {
@@ -2924,6 +2923,12 @@ async function removeFromTransport2(state, requestor, transportId, objectName) {
2924
2923
  return removeFromTransport(requestor, transportId, objectName);
2925
2924
  }
2926
2925
 
2926
+ // src/client/methods/transport/viewTransportObjects.ts
2927
+ async function viewTransportObjects2(state, requestor, transportId) {
2928
+ if (!state.session) return err(new Error("Not logged in"));
2929
+ return viewTransportObjects(requestor, transportId);
2930
+ }
2931
+
2927
2932
  // src/client/methods/diff/gitDiff.ts
2928
2933
  async function gitDiff2(state, requestor, objects) {
2929
2934
  if (!state.session) return err(new Error("Not logged in"));
@@ -3306,6 +3311,9 @@ var ADTClientImpl = class {
3306
3311
  async removeFromTransport(transportId, objectName) {
3307
3312
  return removeFromTransport2(this.state, this.requestor, transportId, objectName);
3308
3313
  }
3314
+ async viewTransportObjects(transportId) {
3315
+ return viewTransportObjects2(this.state, this.requestor, transportId);
3316
+ }
3309
3317
  // --- Diff Operations ---
3310
3318
  async gitDiff(objects) {
3311
3319
  return gitDiff2(this.state, this.requestor, objects);