@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 +58 -0
- package/README.md +46 -1
- package/dist/adt/IAdtTransport.d.ts +71 -11
- package/dist/adt/IAdtTransport.d.ts.map +1 -1
- package/package.json +1 -1
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.
|
|
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 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
|
-
/**
|
|
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
|
-
*
|
|
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.
|
|
164
|
-
*
|
|
165
|
-
*
|
|
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
|
|
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.
|
|
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
|
|
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":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,sFAAsF;AACtF,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,6BAA6B;IAC5C,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,mFAAmF;AACnF,eAAO,MAAM,mCAAmC,yEACwB,CAAC;AAGzE,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAGD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW,CAAC,KAAK;IAChC;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;CACtE;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB
|
|
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": "
|
|
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",
|