@mcp-abap-adt/interfaces-adt 23.1.0 → 24.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 +57 -0
- package/README.md +60 -1
- package/dist/adt/AdtSearchTypes.d.ts +3175 -0
- package/dist/adt/AdtSearchTypes.d.ts.map +1 -0
- package/dist/adt/AdtSearchTypes.js +993 -0
- package/dist/adt/AdtTypeTables.d.ts +113 -1
- package/dist/adt/AdtTypeTables.d.ts.map +1 -1
- package/dist/adt/AdtTypeTables.js +75 -0
- package/dist/adt/IAdtShared.d.ts +18 -2
- package/dist/adt/IAdtShared.d.ts.map +1 -1
- package/dist/adt/IAdtTypeTable.d.ts +48 -5
- package/dist/adt/IAdtTypeTable.d.ts.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,63 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [24.0.0] - 2026-10-29
|
|
11
|
+
|
|
12
|
+
### Breaking
|
|
13
|
+
|
|
14
|
+
- **The search filter takes the release's search names, not a code.**
|
|
15
|
+
`ISearchObjectsParams.objectType` was `AdtTypeCode`; it is `AdtSearchType`,
|
|
16
|
+
the names of the quick search's object types list. A code no longer
|
|
17
|
+
compiles as a filter: on S/4HANA 2025 and ABAP cloud a code that is no
|
|
18
|
+
list item's `type` selects as the text before its `/` (`ENHO/XHH` answers
|
|
19
|
+
as `ENHO`, with other first hits under `maxResults`) and an unknown one
|
|
20
|
+
answers nothing, silently (measured 2026-10-29).
|
|
21
|
+
- **`IAdtCodeFacts.main` is required.** Every code of a table checked against
|
|
22
|
+
`AdtApiTable<R>` states its main type, and `AdtCheckedTable<T>` requires it
|
|
23
|
+
to be its own key's (`AdtMainTypeOf`).
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- **Main types.** Every code entry of `ADT_TYPES_ONPREM`, `ADT_TYPES_CLOUD`
|
|
28
|
+
and `ADT_TYPES_BASIS_740` states its main type, the TADIR object type of
|
|
29
|
+
`R3TR <type>`: `'ENHO/XHH': { main: 'ENHO', … }` — a missing or a wrong one
|
|
30
|
+
does not compile, per key. **`AdtMainTypeOf<C>`**, **`AdtMainType`**,
|
|
31
|
+
**`AdtMainTypeOfVariant<V>`** and **`CodesOfMain<M>`** (a code with no `/`,
|
|
32
|
+
`AUTH`, is its own). A main type is not an address: every parameter that
|
|
33
|
+
builds one keeps taking a code.
|
|
34
|
+
- **Search names.** `ADT_SEARCH_TYPES_ONPREM` (385 names) and
|
|
35
|
+
`ADT_SEARCH_TYPES_CLOUD` (372), written from the recorded
|
|
36
|
+
`/sap/bc/adt/repository/informationsystem/objecttypes` lists — each name
|
|
37
|
+
with the code it selects (`type`: `STRU` → `TABL/DS`) or `group: true`
|
|
38
|
+
(`ABAP_TEST_COCKPIT`); `ADT_SEARCH_TYPES_BASIS_740`, the eleven names
|
|
39
|
+
measured to select on 7.40, which has no list (`404`) and answers its
|
|
40
|
+
aliases (`STRU`, `DTAB`, `REPO`, `INCL`, `BADI`) and unknown names with no
|
|
41
|
+
hits, silently. **`AdtSearchType`**, **`AdtSearchTypeOf<V>`**
|
|
42
|
+
(intersecting), **`IAdtSearchObjectsParamsOf<V>`**, and the shapes
|
|
43
|
+
`AdtSearchTypeTable`, `AdtListedSearchType`, `IAdtMeasuredSearchType`,
|
|
44
|
+
`AdtSearchTypeEvidence`, `IAdtSearchTypeTables`. Every main type of a
|
|
45
|
+
variant's table is a search name of that variant (recorded).
|
|
46
|
+
|
|
47
|
+
### Migration
|
|
48
|
+
|
|
49
|
+
- Where a code was passed as the search filter, pass the search name: the
|
|
50
|
+
main type from the table entry's `main`
|
|
51
|
+
(`ADT_TYPES_ONPREM.package.codes['DEVC/K'].main`), or the alias of a
|
|
52
|
+
subtype (`STRU` for `TABL/DS`).
|
|
53
|
+
- A table built against `AdtApiTable` carries `main` on every code.
|
|
54
|
+
|
|
55
|
+
## [23.1.1] - 2026-10-29
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
|
|
59
|
+
- **The SAP_BASIS 7.40 table lists `read`, `source` and `update` for
|
|
60
|
+
`FUGR/F`.** On 7.40 SP04, as on the newer releases, the group's document
|
|
61
|
+
links `source/main` (untyped): the function pool's main program. A read
|
|
62
|
+
answers `200 text/plain`; a write under the group's lock answers `200`; the
|
|
63
|
+
activation of the group activates the group and its main program, and the
|
|
64
|
+
active version carries the change (measured 2026-10-29 over RFC, on a group
|
|
65
|
+
of its own in a local package, deleted after). Nothing else changes.
|
|
66
|
+
|
|
10
67
|
## [23.1.0] - 2026-10-29
|
|
11
68
|
|
|
12
69
|
### Added
|
package/README.md
CHANGED
|
@@ -71,7 +71,8 @@ code serves two APIs (`CLAS/OC`: `class` and `behaviorImplementation`;
|
|
|
71
71
|
two APIs on one code share it;
|
|
72
72
|
- `collection` — the ADT collection its resource lives in, the parent's for an
|
|
73
73
|
API addressed under a parent;
|
|
74
|
-
- `codes` — for each code: `
|
|
74
|
+
- `codes` — for each code: `main` (its main type, below), `parent` (the
|
|
75
|
+
parent API, or `null`),
|
|
75
76
|
`nameMaxLength`, `operations` and `evidence`, the corpus case of the
|
|
76
77
|
release's `typestructure` answer that lists the code
|
|
77
78
|
(`system-description-basis-740--07-typestructure`); and, where a code lives
|
|
@@ -126,6 +127,10 @@ evidence at compile time.
|
|
|
126
127
|
| `AdtObjectKind` | every kind |
|
|
127
128
|
| `AdtSourceTypeCode` | the codes with `source` |
|
|
128
129
|
| `AdtParentedTypeCode` | the codes with a parent API: `FUGR/FF`, `FUGR/I` |
|
|
130
|
+
| `AdtMainTypeOf<C>` | the main type of code `C`: `'ENHO'` of `'ENHO/XHH'` |
|
|
131
|
+
| `AdtMainType` | every main type of any table (`AdtMainTypeOfVariant<V>` per variant) |
|
|
132
|
+
| `CodesOfMain<M>` | the codes of main type `M` |
|
|
133
|
+
| `AdtSearchType` | every search name of any release's list (`AdtSearchTypeOf<V>` the names every variant of `V` takes) |
|
|
129
134
|
|
|
130
135
|
A map a consumer keeps over the codes is typed by them, and the compiler then
|
|
131
136
|
asks for every code and refuses any other:
|
|
@@ -173,6 +178,48 @@ when `[C] extends [AdtParentedTypeCode]` — `IObjectReference<'FUGR/FF'>` —
|
|
|
173
178
|
and leaves it optional otherwise, the default included, so a reference built
|
|
174
179
|
from a code typed `AdtTypeCode` compiles and an interface can extend it.
|
|
175
180
|
|
|
181
|
+
### Main types and search names (24.0.0)
|
|
182
|
+
|
|
183
|
+
A code's **main type** is its TADIR object type, the `R3TR <type>` before the
|
|
184
|
+
`/`: `ENHO` of `ENHO/XHH`, `DEVC` of `DEVC/K`, `TABL` of `TABL/DS`. Every code
|
|
185
|
+
entry states its own as `main`; the table's `satisfies` refuses an entry
|
|
186
|
+
without one, and `AdtCheckedTable<T>` one whose `main` is not its own key's
|
|
187
|
+
(per key: the main type of a neighbouring code is refused too).
|
|
188
|
+
`AdtMainTypeOf<C>` is the main type of a code, `CodesOfMain<M>` the codes of a
|
|
189
|
+
main type (`CodesOfMain<'ENHO'>` is `'ENHO/XHB' | 'ENHO/XHH'`),
|
|
190
|
+
`AdtMainType` every main type of any table and `AdtMainTypeOfVariant<V>` a
|
|
191
|
+
variant's. **A main type is not an address:** `TABL` is `TABL/DT` or
|
|
192
|
+
`TABL/DS`, and every parameter that builds an address — read, write,
|
|
193
|
+
metadata, a URI, where-used, the group operations — takes a code.
|
|
194
|
+
|
|
195
|
+
**The search filter takes the release's search names.**
|
|
196
|
+
`ISearchObjectsParams.objectType` is an `AdtSearchType`: a name of the quick
|
|
197
|
+
search's object types list
|
|
198
|
+
(`/sap/bc/adt/repository/informationsystem/objecttypes`), held per variant in
|
|
199
|
+
`ADT_SEARCH_TYPES_ONPREM`, `ADT_SEARCH_TYPES_CLOUD` (written from the recorded
|
|
200
|
+
lists: each name with the code it selects, `type`, or `group: true`) and
|
|
201
|
+
`ADT_SEARCH_TYPES_BASIS_740`; `IAdtSearchObjectsParamsOf<V>` takes only the
|
|
202
|
+
names every variant of `V` takes (`AdtSearchTypeOf<V>`). Measured
|
|
203
|
+
2026-10-29, read only:
|
|
204
|
+
|
|
205
|
+
- on S/4HANA 2025 and ABAP cloud, identically, a name selects what the list
|
|
206
|
+
says — `STRU` only `TABL/DS`, `DTAB` only `TABL/DT`, `TABL` both, a group
|
|
207
|
+
(`ABAP_TEST_COCKPIT`) its members — and an unknown name is refused `400`;
|
|
208
|
+
- a code is no filter value: one equal to an item's `type` selects as that
|
|
209
|
+
item, any other as the text before its `/` (`ENHO/XHH` answers as `ENHO`,
|
|
210
|
+
with other first hits under `maxResults`), and an unknown code answers
|
|
211
|
+
nothing, silently;
|
|
212
|
+
- SAP_BASIS 7.40 has no list (`404`); `DEVC`, `CLAS`, `INTF`, `PROG`, `FUGR`,
|
|
213
|
+
`FUNC`, `DDLS`, `MSAG`, `TABL`, `ENHO` and `ENHS` select there, and the
|
|
214
|
+
aliases (`STRU`, `DTAB`, `REPO`, `INCL`, `BADI`) and an unknown name answer
|
|
215
|
+
no hits, silently.
|
|
216
|
+
|
|
217
|
+
Every main type of a variant's table is a search name of that variant
|
|
218
|
+
(`src/__typechecks__/mainTypes.ts`), so a search for a code's objects sends
|
|
219
|
+
its entry's `main` (`ADT_TYPES_ONPREM.package.codes['DEVC/K'].main`), and a
|
|
220
|
+
subtype with an alias its alias (`STRU`). A subtype without one (`ENHO/XHH`)
|
|
221
|
+
cannot be searched alone: the caller filters the hits.
|
|
222
|
+
|
|
176
223
|
### Intersections, group-only codes and group references (22.0.0)
|
|
177
224
|
|
|
178
225
|
**A union of variants.** `AdtTypeCodeOf<V>`, `AdtTypeCodeWith<V, Op>` and
|
|
@@ -338,6 +385,18 @@ The field is on each member's own options, not on `IAdtAnalyseOptions` or
|
|
|
338
385
|
`IAdtOperationOptions`. `src/__typechecks__/headersOnEveryMember.ts` holds this
|
|
339
386
|
for every member and every overload.
|
|
340
387
|
|
|
388
|
+
## Migrating to 24.0.0
|
|
389
|
+
|
|
390
|
+
- **The search filter takes a search name, not a code.**
|
|
391
|
+
`ISearchObjectsParams.objectType` was `AdtTypeCode`; it is `AdtSearchType`.
|
|
392
|
+
Where a code was passed, pass the search name: the main type from the table
|
|
393
|
+
entry's `main` (`ADT_TYPES_ONPREM.package.codes['DEVC/K'].main`, `'DEVC'`),
|
|
394
|
+
or the alias of a subtype (`'STRU'` for `TABL/DS`, `'DTAB'` for `TABL/DT`).
|
|
395
|
+
A code passed before selected as its main type, unless it was an item's own
|
|
396
|
+
`type`, so the main type keeps what such a search answered.
|
|
397
|
+
- **A table built against `AdtApiTable` carries `main` on every code**, equal
|
|
398
|
+
to `AdtMainTypeOf` of the code (`'ENHO'` for `'ENHO/XHH'`).
|
|
399
|
+
|
|
341
400
|
## Migrating to 23.0.4
|
|
342
401
|
|
|
343
402
|
- **A results set for a function group adds `updated`.** `IFunctionGroupResults`
|