@mcp-abap-adt/interfaces-adt 1.2.0 → 2.0.0

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/CHANGELOG.md CHANGED
@@ -5,6 +5,64 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.0.0] - 2026-09-21
9
+
10
+ ### Changed
11
+
12
+ - **BREAKING: `IAdtTransportObjectActions` takes a fifth type parameter**,
13
+ `TObjects`, for the reading added below. Every implementation and every
14
+ declared use names it.
15
+
16
+ - **BREAKING: `removeObject` requires `object.position`.** It took
17
+ `IAbapObjectEntry` whole, where the field is optional, and the member took
18
+ the whole type because nothing said the server needed it. It does. Measured
19
+ against an on-premise system, 2026-09-21: 22 objects asked for by
20
+ `pgmid`/`type`/`name` alone each answered `200` with the usual echo
21
+ document, and re-reading the task found all 22 still on it. The same
22
+ documents carrying `tm:position` — nothing else added — removed every one,
23
+ 22 down to 0, each confirmed by a re-read.
24
+
25
+ The parameter is `IAbapObjectEntry & { position: string }` rather than a new
26
+ type: the field belongs to the entry, and what changes is that this member
27
+ insists on it. `addObject` still does not, because an entry that does not
28
+ exist yet has no position.
29
+
30
+ - **BREAKING: `createTask` requires `targetUser`**, and the options argument
31
+ with it. This shipped saying the server would decide whose task it is when
32
+ `tm:targetuser` was absent. It does not: the call without the attribute was
33
+ refused with `400 SCTS_ADT_MSG 009`, *"User does not exist in the system
34
+ (or locked)"* — two spaces, an empty name — and the same call carrying it
35
+ answered 200 and a task number. Measured on the same run.
36
+
37
+ Nothing below the caller can fill it in: `IAbapConnection` does not expose
38
+ who is authenticated, and finding out costs a second request.
39
+
40
+ ### Added
41
+
42
+ - **`readObjects`** — the objects a request or task holds, each with the
43
+ `tm:position` that `removeObject` now needs.
44
+
45
+ It is a separate member because it is a separate representation. The
46
+ transport resource answers differently depending on the `Accept` the request
47
+ carries, and measured on the same run, a `GET` naming none comes back
48
+ without a single `tm:abap_object` in it. A reader that sends no `Accept` —
49
+ the usual one — therefore cannot answer this however its result is parsed;
50
+ `application/vnd.sap.adt.transportorganizer.v1+xml` is the media type that
51
+ carries the list.
52
+
53
+ Without it `removeObject` would require a value the package offers no way to
54
+ obtain, leaving a caller to assemble the request themselves — the layering
55
+ this package exists to prevent.
56
+
57
+ ### Why a major so soon after 1.2.0
58
+
59
+ 1.2.0 declared these members from captures of Eclipse and unit tests over the
60
+ documents it sent. Eclipse sends both attributes on every call, so nothing in
61
+ a capture could show that either was load-bearing. The first run against a
62
+ server found both. The contract is what was wrong, and a contract that permits
63
+ a call which cannot work is worse than one that forbids it: the old signatures
64
+ type-check today and fail — `createTask` at runtime, `removeObject` silently.
65
+
8
66
  ## [1.2.0] - 2026-09-21
9
67
 
10
68
  ### Added
package/README.md CHANGED
@@ -24,7 +24,52 @@ npm install @mcp-abap-adt/interfaces-adt
24
24
  | `token/`, `session/`, `serviceKey/`, `store/` | token providers and refreshers, stores and their error codes |
25
25
  | `validation/`, `Headers.ts` | header validation; `HEADER_SAP_*`, `HEADER_UAA_*`, `HEADER_BTP_DESTINATION`, `HEADER_MCP_DESTINATION`, `HEADER_MCP_URL`, `AUTH_TYPES`, `AuthType` |
26
26
 
27
- The contract rules — what a member answers, how a strategy is supplied, how a contract is built — are in [`docs/architecture/ARCHITECTURE.md`](../../docs/architecture/ARCHITECTURE.md). Domain-by-domain documentation with examples stays in the [`@mcp-abap-adt/interfaces` README](../interfaces/README.md); the contracts it describes are these. Contracts added after the split are documented here only — the facade is frozen at its 44.0.0 surface and does not export them.
27
+ The contract rules — what a member answers, how a strategy is supplied, how a contract is built — are in [`docs/architecture/ARCHITECTURE.md`](../../docs/architecture/ARCHITECTURE.md). Domain-by-domain documentation with examples stays in the [`@mcp-abap-adt/interfaces` README](../interfaces/README.md); the contracts it describes are these.
28
+
29
+ **The facade is pinned to its 44.0.0 surface, not frozen against additions.** This said the opposite until 2.0.0, and 45.1.0 had already disproved it: `IAbapObjectEntry` and `IAdtTransportObjectActions` were added here and re-exported there. `tools/check-surface.js` compares the built facade against `surface-44.0.0.txt` in both directions — nothing from 44.0.0 may disappear and nothing may appear — and an addition is made deliberate rather than impossible by being written into `tools/surface-added.txt`, one `<name> <kind>` per line. A symbol added here and not written there fails the check; a line written there for a symbol the facade does not export fails too.
30
+
31
+ ## The transport request's object list
32
+
33
+ `IAdtTransportObjectActions` and `IAbapObjectEntry` (`adt/IAdtTransport.ts`, since 1.2.0) declare what can be done to a request's object list and to its tasks: `removeObject`, `addObject`, `createTask`, `readActionLog`, `readObjects`.
34
+
35
+ They exist because deleting an ABAP object does not free its name. The CTS object-directory entry stays on the request that carried it, and until it is detached a create of the same name is refused with `CTS_WBO_API 019` — **even when that same request is passed as `corrNr`**. Without a way to detach one, the ways out are releasing the whole request, shipping everything else in it, or SE09 by hand.
36
+
37
+ Two of the signatures say things a capture cannot. 1.2.0 was declared from captures of Eclipse ADT, and Eclipse sends every attribute on every call, so nothing in a capture could show which of them the server needs. The first run against an on-premise system, 2026-09-21, found two that it does:
38
+
39
+ | call | what the server does |
40
+ |---|---|
41
+ | `createTask` without `tm:targetuser` | refused — `400 SCTS_ADT_MSG 009`, *"User&nbsp;&nbsp;does not exist in the system (or locked)"*: two spaces, because the owner resolved to an empty name |
42
+ | `removeObject` without `tm:position` | `200` with the usual echo document and **nothing removed** — 22 entries asked for by `pgmid`/`type`/`name` alone, 22 still on the task afterwards |
43
+
44
+ So `createTask` requires `targetUser` and `removeObject` requires `position`, and `readObjects` was added because otherwise the second would require a value this package offers no way to obtain. It is its own member rather than an option on a reader because it is its own representation: a `GET` naming no `Accept` comes back without a single `tm:abap_object` in it, and `application/vnd.sap.adt.transportorganizer.v1+xml` is the media type that carries the list.
45
+
46
+ `addObject` still takes an entry without a position — one that does not exist yet has none.
47
+
48
+ ## Migrating to 2.0.0
49
+
50
+ Three changes, all of them in `IAdtTransportObjectActions`. An implementation or a caller on 1.2.0 does this:
51
+
52
+ ```ts
53
+ // 1. Name the fifth type parameter: what readObjects answers.
54
+ type Actions = IAdtTransportObjectActions<
55
+ string, string, { number: string }, string[],
56
+ MyEntry[] // ← new
57
+ >;
58
+
59
+ // 2. Read the position rather than leaving it out.
60
+ const listed = await actions.readObjects(task); // ← new member
61
+ const entry = listed.ok
62
+ ? listed.getResult().value.find((o) => o.name === 'ZCL_X')
63
+ : undefined;
64
+ if (entry) await actions.removeObject(task, { ...entry });
65
+
66
+ // 3. Name the user the task is for.
67
+ await actions.createTask(request, { targetUser: 'DEVELOPER' });
68
+ ```
69
+
70
+ Both old call shapes compile against 1.2.0 and cannot work: `createTask(n)` throws where an implementation reads `options.targetUser`, and `removeObject(n, { name, type })` answers a success while removing nothing. That is why this is a major rather than a deprecation — there is no window in which the old shape does something useful.
71
+
72
+ `src/__typechecks__/transportObjectActions.ts` holds both wrong shapes as `@ts-expect-error`, so a future loosening stops compiling instead of shipping.
28
73
 
29
74
  ## Coming from `@mcp-abap-adt/interfaces`
30
75
 
@@ -132,7 +132,15 @@ export interface IAbapObjectEntry {
132
132
  pgmid?: string;
133
133
  /** `tm:obj_desc` — the description ADT shows beside the entry. */
134
134
  description?: string;
135
- /** `tm:position` — the entry's position in the task, e.g. `000025`. */
135
+ /**
136
+ * `tm:position` — the entry's position in the task, e.g. `000025`.
137
+ *
138
+ * Optional here because an entry being described is not always an entry
139
+ * being addressed: {@link IAdtTransportObjectActions.addObject} has no
140
+ * position to give, since the entry does not exist yet.
141
+ * {@link IAdtTransportObjectActions.removeObject} requires one, and says in
142
+ * its own words what happens without it.
143
+ */
136
144
  position?: string;
137
145
  }
138
146
  /**
@@ -152,19 +160,40 @@ export interface IAbapObjectEntry {
152
160
  * `removeObject` the ways out are releasing the whole request, shipping
153
161
  * everything else in it, or SE09.
154
162
  *
155
- * Four members and no composite: the order a caller uses them in, and what
156
- * they do when `addObject` is refused, is theirs.
163
+ * Five members and no composite: the order a caller uses them in, and what
164
+ * they do when `addObject` is refused, is theirs. One of them,
165
+ * {@link IAdtTransportObjectActions.readObjects}, is there because
166
+ * {@link IAdtTransportObjectActions.removeObject} needs a value nothing else
167
+ * here answers — which is a dependency between readings, not a composite.
157
168
  */
158
- export interface IAdtTransportObjectActions<TRemoved, TAdded, TTask, TActionLog> {
169
+ export interface IAdtTransportObjectActions<TRemoved, TAdded, TTask, TActionLog, TObjects> {
159
170
  /**
160
171
  * Detach one object from a request or task.
161
172
  *
162
173
  * Addressed at the **task** that holds the object: a request's objects live
163
- * on its tasks. The answer echoes the object it was asked about and says
164
- * nothing else, so {@link IAdtTransportObjectActions.readActionLog} is what
165
- * confirms the removal happened.
174
+ * on its tasks.
175
+ *
176
+ * **`position` is what identifies the entry, and the call does nothing
177
+ * without it.** This took `IAbapObjectEntry` whole when it shipped, which
178
+ * made the field optional. Measured against an on-premise system,
179
+ * 2026-09-21: 22 objects asked for by `pgmid`/`type`/`name` alone each
180
+ * answered `200` with the usual echo document, and a re-read of the task
181
+ * found all 22 still on it. The same documents carrying `tm:position` — and
182
+ * nothing else added — removed every one, 22 down to 0, each confirmed by a
183
+ * re-read.
184
+ *
185
+ * The number comes from
186
+ * {@link IAdtTransportObjectActions.readObjects}, which is the reading that
187
+ * carries it.
188
+ *
189
+ * The answer echoes the object it was asked about and says nothing else, so
190
+ * a `200` here is not evidence:
191
+ * {@link IAdtTransportObjectActions.readActionLog}, or a re-read of the
192
+ * object list, is what confirms the removal happened.
166
193
  */
167
- removeObject<E extends IAdtError = IAdtError>(transportNumber: string, object: IAbapObjectEntry, options?: IAdtOperationOptions<E>): Promise<IAdtResponse<TRemoved, E>>;
194
+ removeObject<E extends IAdtError = IAdtError>(transportNumber: string, object: IAbapObjectEntry & {
195
+ position: string;
196
+ }, options?: IAdtOperationOptions<E>): Promise<IAdtResponse<TRemoved, E>>;
168
197
  /**
169
198
  * Attach one object to a request or task.
170
199
  *
@@ -179,15 +208,46 @@ export interface IAdtTransportObjectActions<TRemoved, TAdded, TTask, TActionLog>
179
208
  *
180
209
  * The new task is itself a request resource: it reads, writes and releases
181
210
  * like one, and {@link IAdtTransportObjectActions.removeObject} addresses it
182
- * directly. With no `targetUser` the server decides whose task it is.
211
+ * directly.
212
+ *
213
+ * **`targetUser` is required, and that is measured.** This shipped saying
214
+ * the server would decide whose task it is when the attribute was absent.
215
+ * It does not: sent without `tm:targetuser` against an on-premise system,
216
+ * 2026-09-21, the owner resolved to an empty name and the call was refused
217
+ * with `400 SCTS_ADT_MSG 009`, *"User does not exist in the system (or
218
+ * locked)"* — two spaces, because the name was empty. The same call carrying
219
+ * the attribute answered 200 and a task number.
220
+ *
221
+ * No implementation can fill it in either. `IAbapConnection` does not say
222
+ * who is authenticated, and finding out costs a second request — which is
223
+ * what a member of this size does not do. So it is the caller's to name.
183
224
  */
184
- createTask<E extends IAdtError = IAdtError>(transportNumber: string, options?: {
185
- targetUser?: string;
225
+ createTask<E extends IAdtError = IAdtError>(transportNumber: string, options: {
226
+ targetUser: string;
186
227
  } & IAdtOperationOptions<E>): Promise<IAdtResponse<TTask, E>>;
187
228
  /**
188
229
  * What has happened to this request: created, object added, object deleted,
189
230
  * owner changed — one entry per event.
190
231
  */
191
232
  readActionLog<E extends IAdtError = IAdtError>(transportNumber: string, options?: IAdtOperationOptions<E>): Promise<IAdtResponse<TActionLog, E>>;
233
+ /**
234
+ * The objects a request or task holds, each with the `tm:position` that
235
+ * {@link IAdtTransportObjectActions.removeObject} needs.
236
+ *
237
+ * **A separate reading, not the metadata one.** The transport resource has
238
+ * more than one representation, and which one arrives depends on the
239
+ * `Accept` the request carries. Measured against an on-premise system,
240
+ * 2026-09-21: a `GET` that names none at all comes back without a single
241
+ * `tm:abap_object` in it, so an implementation whose reader sends no
242
+ * `Accept` — the usual one — cannot answer this no matter how its result is
243
+ * parsed. `application/vnd.sap.adt.transportorganizer.v1+xml` is the media
244
+ * type that carries the list.
245
+ *
246
+ * This exists because `removeObject` requires a position and nothing else
247
+ * here hands one back: without it a caller has to go around the
248
+ * implementation and assemble the request themselves, which is the layering
249
+ * this package exists to prevent.
250
+ */
251
+ readObjects<E extends IAdtError = IAdtError>(transportNumber: string, options?: IAdtOperationOptions<E>): Promise<IAdtResponse<TObjects, E>>;
192
252
  }
193
253
  //# sourceMappingURL=IAdtTransport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IAdtTransport.d.ts","sourceRoot":"","sources":["../../src/adt/IAdtTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IAdtTransport.d.ts","sourceRoot":"","sources":["../../src/adt/IAdtTransport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/interfaces-adt",
3
- "version": "1.2.0",
3
+ "version": "2.0.0",
4
4
  "description": "ADT contracts, the ABAP and Cloud ALM connections, and SAP/BTP configuration and authentication contracts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",