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.d.mts CHANGED
@@ -520,7 +520,7 @@ interface TransportConfig {
520
520
  */
521
521
 
522
522
  /**
523
- * Object entry to remove from a transport
523
+ * Object entry on a transport
524
524
  */
525
525
  interface TransportObject {
526
526
  /** Object name (e.g., 'ZSNAP_F72TG_103') */
@@ -612,7 +612,7 @@ interface ADTClient {
612
612
  whereUsed(object: ObjectRef): AsyncResult<Dependency[]>;
613
613
  createTransport(config: TransportConfig): AsyncResult<string>;
614
614
  deleteTransport(transportId: string, removeObjects?: boolean): AsyncResult<void>;
615
- removeFromTransport(transportId: string, object: TransportObject): AsyncResult<void>;
615
+ removeFromTransport(transportId: string, objectName: string): AsyncResult<void>;
616
616
  gitDiff(objects: ObjectContent[]): AsyncResult<DiffResult[]>;
617
617
  getObjectConfig(): ObjectConfig[];
618
618
  }
package/dist/index.d.ts CHANGED
@@ -520,7 +520,7 @@ interface TransportConfig {
520
520
  */
521
521
 
522
522
  /**
523
- * Object entry to remove from a transport
523
+ * Object entry on a transport
524
524
  */
525
525
  interface TransportObject {
526
526
  /** Object name (e.g., 'ZSNAP_F72TG_103') */
@@ -612,7 +612,7 @@ interface ADTClient {
612
612
  whereUsed(object: ObjectRef): AsyncResult<Dependency[]>;
613
613
  createTransport(config: TransportConfig): AsyncResult<string>;
614
614
  deleteTransport(transportId: string, removeObjects?: boolean): AsyncResult<void>;
615
- removeFromTransport(transportId: string, object: TransportObject): AsyncResult<void>;
615
+ removeFromTransport(transportId: string, objectName: string): AsyncResult<void>;
616
616
  gitDiff(objects: ObjectContent[]): AsyncResult<DiffResult[]>;
617
617
  getObjectConfig(): ObjectConfig[];
618
618
  }
package/dist/index.js CHANGED
@@ -2506,9 +2506,46 @@ async function createTransport(client, config) {
2506
2506
  return ok(transportId);
2507
2507
  }
2508
2508
 
2509
- // src/core/adt/transports/removeFromTransport.ts
2509
+ // src/core/adt/transports/getTransportContents.ts
2510
2510
  var ACCEPT_HEADER = "application/vnd.sap.adt.transportorganizer.v1+xml";
2511
- async function removeFromTransport(client, transportId, object) {
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
2517
+ }
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
+ });
2542
+ }
2543
+ return ok(objects);
2544
+ }
2545
+
2546
+ // src/core/adt/transports/removeFromTransport.ts
2547
+ var ACCEPT_HEADER2 = "application/vnd.sap.adt.transportorganizer.v1+xml";
2548
+ async function removeTransportEntry(client, transportId, object) {
2512
2549
  const body = [
2513
2550
  '<?xml version="1.0" encoding="ASCII"?>',
2514
2551
  `<tm:root xmlns:tm="http://www.sap.com/cts/adt/tm" tm:number="${escapeXml(transportId)}" tm:useraction="removeobject">`,
@@ -2521,7 +2558,7 @@ async function removeFromTransport(client, transportId, object) {
2521
2558
  method: "PUT",
2522
2559
  path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
2523
2560
  headers: {
2524
- "Accept": ACCEPT_HEADER,
2561
+ "Accept": ACCEPT_HEADER2,
2525
2562
  "Content-Type": "text/plain"
2526
2563
  },
2527
2564
  body
@@ -2534,9 +2571,18 @@ async function removeFromTransport(client, transportId, object) {
2534
2571
  }
2535
2572
  return ok(void 0);
2536
2573
  }
2574
+ 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}`));
2580
+ }
2581
+ return removeTransportEntry(client, transportId, object);
2582
+ }
2537
2583
 
2538
2584
  // src/core/adt/transports/deleteTransport.ts
2539
- var ACCEPT_HEADER2 = "application/vnd.sap.adt.transportorganizer.v1+xml";
2585
+ var ACCEPT_HEADER3 = "application/vnd.sap.adt.transportorganizer.v1+xml";
2540
2586
  function parseTransportTasks(doc) {
2541
2587
  const tasks = [];
2542
2588
  const taskElements = doc.getElementsByTagName("tm:task");
@@ -2568,7 +2614,7 @@ async function sortAndCompress(client, taskId) {
2568
2614
  const [response, requestErr] = await client.request({
2569
2615
  method: "POST",
2570
2616
  path: `/sap/bc/adt/cts/transportrequests/${taskId}/sortandcompress`,
2571
- headers: { "Accept": ACCEPT_HEADER2 }
2617
+ headers: { "Accept": ACCEPT_HEADER3 }
2572
2618
  });
2573
2619
  if (requestErr) return err(requestErr);
2574
2620
  if (!response.ok) {
@@ -2582,7 +2628,7 @@ async function deleteRequest(client, id) {
2582
2628
  const [response, requestErr] = await client.request({
2583
2629
  method: "DELETE",
2584
2630
  path: `/sap/bc/adt/cts/transportrequests/${id}`,
2585
- headers: { "Accept": ACCEPT_HEADER2 }
2631
+ headers: { "Accept": ACCEPT_HEADER3 }
2586
2632
  });
2587
2633
  if (requestErr) return err(requestErr);
2588
2634
  if (!response.ok) {
@@ -2596,7 +2642,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
2596
2642
  const [response, requestErr] = await client.request({
2597
2643
  method: "GET",
2598
2644
  path: `/sap/bc/adt/cts/transportrequests/${transportId}`,
2599
- headers: { "Accept": ACCEPT_HEADER2 }
2645
+ headers: { "Accept": ACCEPT_HEADER3 }
2600
2646
  });
2601
2647
  if (requestErr) return err(requestErr);
2602
2648
  if (!response.ok) {
@@ -2615,7 +2661,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
2615
2661
  const [taskResponse, taskReadErr] = await client.request({
2616
2662
  method: "GET",
2617
2663
  path: `/sap/bc/adt/cts/transportrequests/${task.taskId}`,
2618
- headers: { "Accept": ACCEPT_HEADER2 }
2664
+ headers: { "Accept": ACCEPT_HEADER3 }
2619
2665
  });
2620
2666
  if (taskReadErr) return err(taskReadErr);
2621
2667
  const taskText = await taskResponse.text();
@@ -2627,7 +2673,7 @@ async function deleteTransport(client, transportId, removeObjects = false) {
2627
2673
  if (!el) continue;
2628
2674
  const name = el.getAttribute("tm:name");
2629
2675
  if (!name) continue;
2630
- const [, removeErr] = await removeFromTransport(client, task.taskId, {
2676
+ const [, removeErr] = await removeTransportEntry(client, task.taskId, {
2631
2677
  name,
2632
2678
  description: el.getAttribute("tm:obj_desc") || el.getAttribute("tm:obj_info") || "",
2633
2679
  pgmid: el.getAttribute("tm:pgmid") || "",
@@ -2907,9 +2953,9 @@ async function deleteTransport2(state, requestor, transportId, removeObjects = f
2907
2953
  }
2908
2954
 
2909
2955
  // src/client/methods/transport/removeFromTransport.ts
2910
- async function removeFromTransport2(state, requestor, transportId, object) {
2956
+ async function removeFromTransport2(state, requestor, transportId, objectName) {
2911
2957
  if (!state.session) return err(new Error("Not logged in"));
2912
- return removeFromTransport(requestor, transportId, object);
2958
+ return removeFromTransport(requestor, transportId, objectName);
2913
2959
  }
2914
2960
 
2915
2961
  // src/client/methods/diff/gitDiff.ts
@@ -3291,8 +3337,8 @@ var ADTClientImpl = class {
3291
3337
  async deleteTransport(transportId, removeObjects = false) {
3292
3338
  return deleteTransport2(this.state, this.requestor, transportId, removeObjects);
3293
3339
  }
3294
- async removeFromTransport(transportId, object) {
3295
- return removeFromTransport2(this.state, this.requestor, transportId, object);
3340
+ async removeFromTransport(transportId, objectName) {
3341
+ return removeFromTransport2(this.state, this.requestor, transportId, objectName);
3296
3342
  }
3297
3343
  // --- Diff Operations ---
3298
3344
  async gitDiff(objects) {