@mcp-abap-adt/interfaces-adt 21.0.0 → 22.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
@@ -7,6 +7,89 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [22.0.0] - 2026-10-28
11
+
12
+ A major for one change: the ABAP cloud table loses the program and include
13
+ operations the cloud refuses (see "Changed (breaking)"). Everything else is
14
+ added beside 21.0.0's types: each keeps its meaning, and a type parameter
15
+ added to an existing type has the 21.0.0 type as its default.
16
+
17
+ ### Changed (breaking)
18
+
19
+ - **`ADT_TYPES_CLOUD`: a program and an include change nothing.** ABAP cloud
20
+ refuses to create either (`403`, S_DEVELOP, measured on the BTP trial
21
+ 2026-10-28), so `PROG/P` and `PROG/I` no longer list `create`, `update`,
22
+ `lock`, `unlock`, `activate`, `validate`, `deletionCheck` or `delete`.
23
+ What a delivered one answers stays: `read`, `source` and `readMetadata`
24
+ (measured on both), `check` and `versions` for a program (measured),
25
+ and the operations not measured — the enhancement reads, `transport`,
26
+ `run`, `profile` and the unit-test runs — as the release's `typestructure`
27
+ lists them. Leaving out the change operations beyond `create` is an
28
+ inference from the refusal: S_DEVELOP is the change authorization, and an
29
+ object nobody can create has nothing of one's own to change. A function
30
+ include (`FUGR/I`) is unchanged: the cloud creates one (`200`, measured).
31
+ `AdtTypeCodeWith<'cloud', Op>` and `AdtCodeWith<AdtModernVariant, Op>` no
32
+ longer name `PROG/P` or `PROG/I` for those operations, and the cloud table
33
+ is no longer the on-premise one in operations.
34
+
35
+ ### Added
36
+
37
+ - **`updateMetadata`** on `CLAS/OC`, `INTF/OI`, `FUGR/FF` and `DDLS/DF` in
38
+ `ADT_TYPES_ONPREM` and `ADT_TYPES_CLOUD`, and on `PROG/P` in
39
+ `ADT_TYPES_ONPREM`: the object's whole metadata document, written back with
40
+ the media type it was read with, answers `200` on S/4HANA 2025 and on ABAP
41
+ cloud (measured 2026-10-27). 7.40 is not measured yet and keeps none.
42
+
43
+ - **Intersecting helpers.** `AdtCodeOf<V>` and `AdtCodeWith<V, Op>`: the codes
44
+ every variant of `V` lists (with `Op`) — the default modern variant,
45
+ `AdtModernVariant` (`'onprem' | 'cloud'`), gets what both newer tables
46
+ serve. `AdtCodeOfIn<Tables, V>` and `AdtCodeWithIn<Tables, V, Op>` are the
47
+ same over any set of tables; `AdtServingVariantsIn<Tables, A>` and
48
+ `AdtPerformingVariantsIn<Tables, A, Op>` name the variants whose table
49
+ serves an API, or one of its codes an operation. `AdtTypeCodeOf`,
50
+ `AdtTypeCodeWith`, `AdtApiWith` and `AdtApiWithIn` are unchanged; their docs
51
+ now state what they answer for a union of variants — the APIs all of them
52
+ serve, and for those the codes and operations any of them lists.
53
+ - **Utility code tables**, `ADT_UTILITY_CODES_ONPREM`, `_CLOUD`,
54
+ `_BASIS_740` (`IAdtUtilityCodeTables`, `AdtUtilityCodeTable<R>`,
55
+ `IAdtUtilityCodeFacts<R>`, `AdtUtilityOperation`, `AdtUtilityCodeWith<V,
56
+ Op>`, `AdtUtilityCode`): the codes `getUtils()` takes beyond the API tables,
57
+ each with its operations, whether they were measured, and its evidence.
58
+ - `VIEW/DV`, a DDIC database view, on every release: group activation,
59
+ group deletion and where-used, under `/sap/bc/adt/ddic/views`. No API
60
+ serves it — a **group-only code**, `AdtGroupOnlyCode`,
61
+ `AdtGroupOnlyCodeOf<V>`. Sent, unmeasured.
62
+ - `DEVC/K` in a group activation on the newer releases — sent, unmeasured.
63
+ - `DEVC/K` in `fetchNodeStructure` on 7.40 — measured (the legacy
64
+ `UtilsReaders` cycle). A table of its own rather than a package entry on
65
+ 7.40, because an entry would gate `getPackage()` open where every package
66
+ member is refused, and a new `AdtOperation` word would break a 21.0.0
67
+ consumer's exhaustive map over the vocabulary.
68
+ - `IObjectReference<C>`, `IGetWhereUsedParams<C>` and
69
+ `IGetWhereUsedScopeParams<C>` take a group-only code as their type
70
+ argument (`IObjectReference<'VIEW/DV'>`). Their defaults are 21.0.0's: a
71
+ bare `IObjectReference` still admits `AdtTypeCode` alone.
72
+ - **What each group operation is given:** `AdtGroupActivationCode<V>`,
73
+ `AdtGroupDeletionCheckCode<V>`, `AdtGroupDeletionCode<V>` (no `MSAG/NN`,
74
+ which has no address of its own), `AdtWhereUsedCode<V>` (no `FUGR/I` or
75
+ `MSAG/NN`), and the references over them, `IAdtGroupActivationReference<V>`,
76
+ `IAdtGroupDeletionCheckReference<V>`, `IAdtGroupDeletionReference<V>`,
77
+ `IAdtWhereUsedParamsOf<V>`, `IAdtWhereUsedScopeParamsOf<V>`, built by
78
+ `IAdtCodedReference<C>`: `parentName` required for each parented code, and
79
+ a reference from a code known only by its set compiles when it names its
80
+ parent — inside TypeScript's 25-combination limit.
81
+ - `IAdtTypedGroupLifecycle<TActivation, TDeletionCheck, TDeletion, V>` and
82
+ `IAdtTypedWhereUsed<TWhereUsed, TScope, V>`: the group and where-used members
83
+ over those references. New atoms beside `IAdtGroupLifecycle` and
84
+ `IAdtWhereUsed`, with the same member names: an implementation declaring
85
+ both offers both signatures, and a caller passing `IObjectReference[]` is
86
+ unaffected. Adding the signatures to the 21.0.0 atoms instead would have
87
+ made every implementation of them stop compiling.
88
+ - `IAdtTypeStructure<TTypeStructure>`: `getTypeStructure({ headers })`,
89
+ `POST /sap/bc/adt/repository/typestructure`, an atom of its own like
90
+ `IAdtObjectProperties`, and `IUtilResults.typeStructure`, its reading —
91
+ optional, so a 21.0.0 result set is still one.
92
+
10
93
  ## [21.0.0] - 2026-10-27
11
94
 
12
95
  ### Added
package/README.md CHANGED
@@ -11,6 +11,7 @@ ADT contracts: object operations, runtime analysis, execution, feeds and service
11
11
  - Since 14.0.0 `IDebuggerIdentity` is a union by `debuggingMode` (required), `attach` takes the identity, `condition` is for line breakpoints only, and `IAbapDebugger` gains `TSettings` and five members. The CHANGELOG has the migration note.
12
12
  - Since 15.0.0 `skipCount` is gone from breakpoints (the server ignores it) and `clientId` pairs an answer row with its request. The CHANGELOG has the migration note.
13
13
  - Since 15.1.0 the plain class and program run take `debuggee` (`IDebuggeeIds`): the terminal id and IDE id a terminal-mode listener catches the run by.
14
+ - Since 22.0.0, the ABAP cloud table creates and changes no program or include (`403`, S_DEVELOP; see "Migrating to 22.0.0"), and `updateMetadata` is listed where it was measured. Beside that, additions only: intersecting helpers (`AdtCodeOf<V>`, `AdtCodeWith<V, Op>`, `AdtServingVariantsIn`, `AdtPerformingVariantsIn`; the default `AdtModernVariant` gets what both newer tables serve), utility code tables per variant (`ADT_UTILITY_CODES_*`: the group-only `VIEW/DV`, `DEVC/K` in a modern group activation and in 7.40's node structure), group references per operation with the typed atoms `IAdtTypedGroupLifecycle` and `IAdtTypedWhereUsed`, and `IAdtTypeStructure` with its `IUtilResults.typeStructure` slot. See "Intersections, group-only codes and group references".
14
15
  - Since 21.0.0 the object type codes are the library's own tables — `ADT_TYPES_ONPREM` (S/4HANA 2025), `ADT_TYPES_CLOUD` (ABAP cloud), `ADT_TYPES_BASIS_740` (SAP_BASIS 7.40 SP04), keyed by API — and every code in a contract is an `AdtTypeCode` drawn from them. `AdtObjectTypeLower`, `AdtObjectType`, `AdtSourceObjectTypeLower` and `AdtSourceObjectType` are removed, and with them the codes no release lists. An identifying atom takes the parent's field as its last type parameter (`TParent`, default `never`, which leaves the config `Partial<TConfig>` as before), and `IObjectReference<C>` requires `parentName` for a code with a parent. A code read from an answer is an `IAdtAnsweredObject`. See "The ADT type tables" and "Migrating to 21.0.0".
15
16
  - Since 20.2.0 every object's result-set contract (`IClassResults`, `IProgramResults`, … 30 in all, `IMessageClassMessageResults<TRead, TWritten, TDeleted>` among them) and `IServiceBindingPublicationConfig` are declared here, in the object's own `IAdtX.ts`: the slot map an implementation is constructed with, each slot an `IResultStrategy<unknown>`. A consumer composes its client contract from these and the atoms. Additions only.
16
17
  - Since 20.1.0 `IAdtObjectProperties` reads one repository object's properties from `/informationsystem/objectproperties/values?uri=`, any object uri (a transaction by its `vit` workbench uri); its own atom, not part of `IAdtInformationSystem`.
@@ -31,14 +32,14 @@ npm install @mcp-abap-adt/interfaces-adt
31
32
 
32
33
  | directory | files | what |
33
34
  |---|---|---|
34
- | `adt/` | 41 | the object contracts: capability atoms, the object types, the ADT type tables and their entry shape, `IAdtResponse`, `IAdtError`, the error codes, the transport request's object list |
35
+ | `adt/` | 42 | the object contracts: capability atoms, the object types, the ADT type tables and their entry shape, `IAdtResponse`, `IAdtError`, the error codes, the transport request's object list |
35
36
  | `runtime/` | 14 | runtime analysis: the debuggers (`IAbapDebugger`, `IAmdpDebugger`) and `IMemorySnapshots`, `IProfiler`, the trace contracts (`ITraceListing`/`ITraceReading`, `ICrossTrace`, `ISt05Trace`), `IApplicationLog`, `IAtcLog` and the ATC run (`IAtcRunOptions`, `IAtcFindings`), `IDdicActivation`, `IGatewayErrorLog`, `IRuntimeDumps`, `ISystemMessages` |
36
37
  | `execution/` | 3 | class and program execution, with profiling |
37
38
  | `feeds/` | 2 | the ADT feed contracts |
38
39
  | `service/` | 1 | service definitions and bindings |
39
40
  | `shared/` | 1 | what more than one object type needs |
40
41
 
41
- Six directories, all ADT. `connection/` left for `interfaces-adt-connection` in 11.0.0. `sap/`, `auth/`, `token/`, `session/`, `serviceKey/`, `store/`, `validation/` and `Headers.ts` were here until 9.0.0 and are listed above under what left; `__typechecks__/` holds 29 files that compile shapes this contract must and must not accept, and ships in no tarball.
42
+ Six directories, all ADT. `connection/` left for `interfaces-adt-connection` in 11.0.0. `sap/`, `auth/`, `token/`, `session/`, `serviceKey/`, `store/`, `validation/` and `Headers.ts` were here until 9.0.0 and are listed above under what left; `__typechecks__/` holds 30 files that compile shapes this contract must and must not accept, and ships in no tarball.
42
43
 
43
44
  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 used to sit in the facade's README; the facade is deleted, and each package documents its own contracts.
44
45
 
@@ -94,7 +95,8 @@ library reads; `AdtSourceTypeCode` is drawn from it.
94
95
  **What is not in a table is not served.** An API whose every member the 7.40
95
96
  client refuses is absent from `ADT_TYPES_BASIS_740`, and an operation it
96
97
  refuses is absent from its code — 7.40 has no `deletionCheck`, no `transport`,
97
- no `run`. The entry shape (`AdtApiTable<R>`) refuses a misspelt field, an
98
+ no `run`. On ABAP cloud a program and an include list no operation that
99
+ changes an object, since the cloud refuses to create either. The entry shape (`AdtApiTable<R>`) refuses a misspelt field, an
98
100
  operation outside the vocabulary, an API with no factory and another release's
99
101
  evidence at compile time.
100
102
 
@@ -158,6 +160,46 @@ when `[C] extends [AdtParentedTypeCode]` — `IObjectReference<'FUGR/FF'>` —
158
160
  and leaves it optional otherwise, the default included, so a reference built
159
161
  from a code typed `AdtTypeCode` compiles and an interface can extend it.
160
162
 
163
+ ### Intersections, group-only codes and group references (22.0.0)
164
+
165
+ **A union of variants.** `AdtTypeCodeOf<V>`, `AdtTypeCodeWith<V, Op>` and
166
+ `AdtApiWith<V, Op>` read a union of variants as one union table: the APIs all
167
+ of them serve, and for those the codes and operations any of them lists. The
168
+ intersecting helpers ask every variant: `AdtCodeOf<V>` and `AdtCodeWith<V, Op>`
169
+ are the codes every variant of `V` lists (with `Op`), and
170
+ `AdtServingVariantsIn<IAdtTypeTables, A>` and
171
+ `AdtPerformingVariantsIn<IAdtTypeTables, A, Op>` name the variants that serve
172
+ an API or perform an operation on one of its codes — what a client's gates
173
+ need. For `AdtModernVariant`, `'onprem' | 'cloud'`, that is what both tables
174
+ serve. `AdtCodeOfIn` and `AdtCodeWithIn` take any set of tables.
175
+
176
+ **Utility codes.** `ADT_UTILITY_CODES_ONPREM`, `_CLOUD` and `_BASIS_740` hold
177
+ what `getUtils()` takes beyond the API tables, with its operations
178
+ (`AdtUtilityOperation`), whether they were measured, and the evidence:
179
+
180
+ | code | where | operations | measured |
181
+ |---|---|---|---|
182
+ | `VIEW/DV` | every release, `/sap/bc/adt/ddic/views` | group activation, group deletion, where-used | no |
183
+ | `DEVC/K` | S/4HANA 2025, ABAP cloud | group activation | no |
184
+ | `DEVC/K` | SAP_BASIS 7.40 SP04 | node structure | yes |
185
+
186
+ `VIEW/DV` is a **group-only code** (`AdtGroupOnlyCode`): no API serves it, so
187
+ it is no `AdtTypeCode`. `IObjectReference<'VIEW/DV'>` and
188
+ `IGetWhereUsedParams<'VIEW/DV'>` name it; the defaults do not.
189
+
190
+ **Group references.** `IAdtGroupActivationReference<V>`,
191
+ `IAdtGroupDeletionCheckReference<V>`, `IAdtGroupDeletionReference<V>` and
192
+ `IAdtWhereUsedParamsOf<V>` take only the codes their operation sends on `V`
193
+ — no message class in an activation, no package in a 7.40 one, no function
194
+ include in where-used — and require `parentName` for `FUGR/FF` and `FUGR/I`.
195
+ `IAdtTypedGroupLifecycle` and `IAdtTypedWhereUsed` declare the members over
196
+ them, beside `IAdtGroupLifecycle` and `IAdtWhereUsed`: a contract composed of
197
+ both takes typed references and the 21.0.0 `IObjectReference[]` alike.
198
+
199
+ **The type structure.** `IAdtTypeStructure.getTypeStructure({ headers })`
200
+ posts to `/sap/bc/adt/repository/typestructure`; its reading is
201
+ `IUtilResults.typeStructure`, optional so a 21.0.0 set is still one.
202
+
161
203
  ## Enhancements and their hosts
162
204
 
163
205
  `EnhancementType` accepts `enhoxhb` (BAdI implementation, ENHO/XHB), `enhoxhh`
@@ -231,6 +273,22 @@ The field is on each member's own options, not on `IAdtAnalyseOptions` or
231
273
  `IAdtOperationOptions`. `src/__typechecks__/headersOnEveryMember.ts` holds this
232
274
  for every member and every overload.
233
275
 
276
+ ## Migrating to 22.0.0
277
+
278
+ - **ABAP cloud: no program or include of one's own.** `ADT_TYPES_CLOUD` no
279
+ longer lists `create`, `update`, `lock`, `unlock`, `activate`, `validate`,
280
+ `deletionCheck` or `delete` for `PROG/P` and `PROG/I`: the cloud refuses to
281
+ create either (`403`, S_DEVELOP). Code gated on the cloud variant, or on
282
+ the intersecting helpers over `AdtModernVariant` (`AdtCodeWith`,
283
+ `AdtPerformingVariantsIn` — what both newer tables serve), that creates or
284
+ changes a program or an include stops compiling; on ABAP cloud the system
285
+ would have refused it. The union helpers (`AdtApiWith`, `AdtTypeCodeWith`)
286
+ over `AdtModernVariant` still name the program, since on-premise creates
287
+ one. Reading, checking and versioning a delivered program
288
+ compile as before. A function include (`FUGR/I`) is unchanged.
289
+ - Nothing else breaks: every other change is an addition (see the
290
+ CHANGELOG).
291
+
234
292
  ## Migrating to 21.0.0
235
293
 
236
294
  Every break is a type error; nothing a correct call sends changes.
@@ -17,13 +17,13 @@
17
17
  * Constants and types only: the tables are `as const` and `satisfies` the
18
18
  * entry shape of `IAdtTypeTable.ts`, and everything below them is derived.
19
19
  */
20
- import type { AdtCheckedTable, AdtOperation, IAdtCodelessApiEntry } from './IAdtTypeTable';
20
+ import type { AdtApiName, AdtCheckedTable, AdtOperation, IAdtCodelessApiEntry } from './IAdtTypeTable';
21
21
  /**
22
22
  * What the library serves on **S/4HANA 2025 on-premise**, API by API.
23
23
  *
24
- * Identical in operations to {@link ADT_TYPES_CLOUD}: the library has no
25
- * on-premise or cloud branch. The two differ where the releases do —
26
- * `SRVD/SRV` takes 40 characters here and 30 on ABAP cloud.
24
+ * The library has no on-premise or cloud branch; the two tables differ where
25
+ * the releases do — `SRVD/SRV` takes 40 characters here and 30 on ABAP
26
+ * cloud, and a program or an include is created and changed only here.
27
27
  */
28
28
  export declare const ADT_TYPES_ONPREM: {
29
29
  readonly class: {
@@ -33,7 +33,7 @@ export declare const ADT_TYPES_ONPREM: {
33
33
  readonly 'CLAS/OC': {
34
34
  readonly parent: null;
35
35
  readonly nameMaxLength: 30;
36
- readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "readEnhancementElements", "readEnhancementOptions", "activateTestClasses", "run", "profile", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
36
+ readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "readEnhancementElements", "readEnhancementOptions", "activateTestClasses", "run", "profile", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
37
37
  readonly evidence: "system-description-s4-2025--07-typestructure";
38
38
  };
39
39
  };
@@ -45,7 +45,7 @@ export declare const ADT_TYPES_ONPREM: {
45
45
  readonly 'INTF/OI': {
46
46
  readonly parent: null;
47
47
  readonly nameMaxLength: 30;
48
- readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport"];
48
+ readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport"];
49
49
  readonly evidence: "system-description-s4-2025--07-typestructure";
50
50
  };
51
51
  };
@@ -57,7 +57,7 @@ export declare const ADT_TYPES_ONPREM: {
57
57
  readonly 'PROG/P': {
58
58
  readonly parent: null;
59
59
  readonly nameMaxLength: 40;
60
- readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "readEnhancementElements", "readEnhancementOptions", "run", "profile", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
60
+ readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "readEnhancementElements", "readEnhancementOptions", "run", "profile", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
61
61
  readonly evidence: "system-description-s4-2025--07-typestructure";
62
62
  };
63
63
  };
@@ -93,7 +93,7 @@ export declare const ADT_TYPES_ONPREM: {
93
93
  readonly 'FUGR/FF': {
94
94
  readonly parent: "functionGroup";
95
95
  readonly nameMaxLength: 30;
96
- readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
96
+ readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
97
97
  readonly evidence: "system-description-s4-2025--07-typestructure";
98
98
  };
99
99
  };
@@ -129,7 +129,7 @@ export declare const ADT_TYPES_ONPREM: {
129
129
  readonly 'DDLS/DF': {
130
130
  readonly parent: null;
131
131
  readonly nameMaxLength: 30;
132
- readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "checkCdsTestDoubles"];
132
+ readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "checkCdsTestDoubles"];
133
133
  readonly evidence: "system-description-s4-2025--07-typestructure";
134
134
  };
135
135
  };
@@ -433,7 +433,9 @@ export declare const ADT_TYPES_ONPREM: {
433
433
  /**
434
434
  * What the library serves on **ABAP cloud** (measured on the BTP trial), API by
435
435
  * API. The same operations as {@link ADT_TYPES_ONPREM}, and this release's
436
- * name lengths.
436
+ * name lengths, but for a program (`PROG/P`) and an include (`PROG/I`): the
437
+ * cloud refuses to create either (`403`, S_DEVELOP), so they list only what a
438
+ * delivered one answers — nothing that changes an object.
437
439
  */
438
440
  export declare const ADT_TYPES_CLOUD: {
439
441
  readonly class: {
@@ -443,7 +445,7 @@ export declare const ADT_TYPES_CLOUD: {
443
445
  readonly 'CLAS/OC': {
444
446
  readonly parent: null;
445
447
  readonly nameMaxLength: 30;
446
- readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "readEnhancementElements", "readEnhancementOptions", "activateTestClasses", "run", "profile", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
448
+ readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "readEnhancementElements", "readEnhancementOptions", "activateTestClasses", "run", "profile", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
447
449
  readonly evidence: "system-description-abap-cloud--07-typestructure";
448
450
  };
449
451
  };
@@ -455,7 +457,7 @@ export declare const ADT_TYPES_CLOUD: {
455
457
  readonly 'INTF/OI': {
456
458
  readonly parent: null;
457
459
  readonly nameMaxLength: 30;
458
- readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport"];
460
+ readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport"];
459
461
  readonly evidence: "system-description-abap-cloud--07-typestructure";
460
462
  };
461
463
  };
@@ -467,7 +469,7 @@ export declare const ADT_TYPES_CLOUD: {
467
469
  readonly 'PROG/P': {
468
470
  readonly parent: null;
469
471
  readonly nameMaxLength: 40;
470
- readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "readEnhancementElements", "readEnhancementOptions", "run", "profile", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
472
+ readonly operations: readonly ["read", "source", "readMetadata", "check", "versions", "transport", "readEnhancementElements", "readEnhancementOptions", "run", "profile", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
471
473
  readonly evidence: "system-description-abap-cloud--07-typestructure";
472
474
  };
473
475
  };
@@ -479,7 +481,7 @@ export declare const ADT_TYPES_CLOUD: {
479
481
  readonly 'PROG/I': {
480
482
  readonly parent: null;
481
483
  readonly nameMaxLength: 40;
482
- readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "validate", "deletionCheck", "delete", "readEnhancementElements", "readEnhancementOptions"];
484
+ readonly operations: readonly ["read", "source", "readMetadata", "readEnhancementElements", "readEnhancementOptions"];
483
485
  readonly evidence: "system-description-abap-cloud--07-typestructure";
484
486
  };
485
487
  };
@@ -503,7 +505,7 @@ export declare const ADT_TYPES_CLOUD: {
503
505
  readonly 'FUGR/FF': {
504
506
  readonly parent: "functionGroup";
505
507
  readonly nameMaxLength: 30;
506
- readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
508
+ readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
507
509
  readonly evidence: "system-description-abap-cloud--07-typestructure";
508
510
  };
509
511
  };
@@ -539,7 +541,7 @@ export declare const ADT_TYPES_CLOUD: {
539
541
  readonly 'DDLS/DF': {
540
542
  readonly parent: null;
541
543
  readonly nameMaxLength: 30;
542
- readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "checkCdsTestDoubles"];
544
+ readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "checkCdsTestDoubles"];
543
545
  readonly evidence: "system-description-abap-cloud--07-typestructure";
544
546
  };
545
547
  };
@@ -1016,6 +1018,12 @@ export declare const ADT_TYPES_BASIS_740: {
1016
1018
  * `basis740` SAP_BASIS 7.40 SP04. Declared by the consumer, never detected.
1017
1019
  */
1018
1020
  export type AdtVariant = 'onprem' | 'cloud' | 'basis740';
1021
+ /**
1022
+ * A system of SAP_BASIS 7.50 or later, on premise or ABAP cloud — the variant
1023
+ * a client serves when none is named. Read with the intersecting helpers
1024
+ * below, it gets what **both** tables serve.
1025
+ */
1026
+ export type AdtModernVariant = Exclude<AdtVariant, 'basis740'>;
1019
1027
  /** The table of each variant, by its name. */
1020
1028
  export interface IAdtTypeTables {
1021
1029
  readonly onprem: AdtCheckedTable<typeof ADT_TYPES_ONPREM>;
@@ -1043,9 +1051,20 @@ type ParentedCodesOf<E> = E extends {
1043
1051
  readonly parent: null;
1044
1052
  } ? never : K;
1045
1053
  }[keyof C] & string : never;
1046
- /** The APIs — the client's factories — variant `V` serves. */
1054
+ /**
1055
+ * The APIs — the client's factories — variant `V` serves. For a union of
1056
+ * variants this is already the intersection: `keyof` a union of tables names
1057
+ * the APIs every one of them holds.
1058
+ */
1047
1059
  export type AdtApi<V extends AdtVariant> = keyof TableOf<V>;
1048
- /** The type codes variant `V` serves. */
1060
+ /**
1061
+ * The type codes variant `V` serves.
1062
+ *
1063
+ * **Union semantics within the shared APIs.** For a union of variants it
1064
+ * reads the tables as one union table: the APIs every one of them serves
1065
+ * (`keyof` a union), and for those the codes *any* of them lists.
1066
+ * {@link AdtCodeOf} is the intersection.
1067
+ */
1049
1068
  export type AdtTypeCodeOf<V extends AdtVariant> = {
1050
1069
  [A in AdtApi<V>]: CodesOf<TableOf<V>[A]>;
1051
1070
  }[AdtApi<V>];
@@ -1055,19 +1074,34 @@ export type AdtTypeCode = {
1055
1074
  }[AdtVariant];
1056
1075
  /**
1057
1076
  * The APIs of table `T` one code of which performs every operation of `Op` —
1077
+ * for a union of tables, **union semantics within the shared APIs**: an API
1078
+ * every table holds qualifies when one table's entry does (see
1079
+ * {@link AdtPerformingVariantsIn} for the intersecting question) —
1058
1080
  * or, for a codeless API, whose entry does. Operations spread across two codes
1059
1081
  * do not count: no single object of the API could be asked for all of them.
1060
1082
  */
1061
1083
  export type AdtApiWithIn<T, Op extends AdtOperation> = {
1062
1084
  [A in keyof T]: EntryHas<T[A], Op> extends true ? A : never;
1063
1085
  }[keyof T];
1064
- /** {@link AdtApiWithIn} over variant `V`'s table. */
1086
+ /**
1087
+ * {@link AdtApiWithIn} over variant `V`'s table — for a union of variants,
1088
+ * **union semantics within the shared APIs**: an API all of them serve
1089
+ * qualifies when one variant's table has it so.
1090
+ */
1065
1091
  export type AdtApiWith<V extends AdtVariant, Op extends AdtOperation> = AdtApiWithIn<TableOf<V>, Op>;
1066
- /** The codes of variant `V` whose facts list every operation of `Op`. */
1092
+ /**
1093
+ * The codes of variant `V` whose facts list every operation of `Op` — for a
1094
+ * union of variants, **union semantics within the shared APIs**: a code of an
1095
+ * API all of them serve, listed with `Op` by any of them. {@link AdtCodeWith}
1096
+ * is the intersection.
1097
+ */
1067
1098
  export type AdtTypeCodeWith<V extends AdtVariant, Op extends AdtOperation> = {
1068
1099
  [A in AdtApi<V>]: CodesWith<TableOf<V>[A], Op>;
1069
1100
  }[AdtApi<V>];
1070
- /** Every kind of any table — the tools' one vocabulary for objects. */
1101
+ /**
1102
+ * Every kind of any table — the tools' one vocabulary for objects. A union
1103
+ * over all variants by design.
1104
+ */
1071
1105
  export type AdtObjectKind = {
1072
1106
  [V in AdtVariant]: {
1073
1107
  [A in AdtApi<V>]: TableOf<V>[A] extends {
@@ -1075,7 +1109,11 @@ export type AdtObjectKind = {
1075
1109
  } ? K : never;
1076
1110
  }[AdtApi<V>];
1077
1111
  }[AdtVariant];
1078
- /** The codes, of any table, whose API reads a source there (`source`). */
1112
+ /**
1113
+ * The codes, of any table, whose API reads a source there (`source`) — a union
1114
+ * over all variants by design. A variant's own, intersected for a union of
1115
+ * variants, is `AdtCodeWith<V, 'source'>`.
1116
+ */
1079
1117
  export type AdtSourceTypeCode = {
1080
1118
  [V in AdtVariant]: AdtTypeCodeWith<V, 'source'>;
1081
1119
  }[AdtVariant];
@@ -1088,5 +1126,62 @@ export type AdtParentedTypeCode = {
1088
1126
  [A in AdtApi<V>]: ParentedCodesOf<TableOf<V>[A]>;
1089
1127
  }[AdtApi<V>];
1090
1128
  }[AdtVariant];
1129
+ type CodesOfTable<T> = {
1130
+ [A in keyof T]: CodesOf<T[A]>;
1131
+ }[keyof T];
1132
+ type CodesWithInTable<T, Op extends AdtOperation> = {
1133
+ [A in keyof T]: CodesWith<T[A], Op>;
1134
+ }[keyof T];
1135
+ /** The variants, among `Tables`' keys, whose table lists code `C`. */
1136
+ type VariantsListingIn<Tables, C> = {
1137
+ [W in keyof Tables]: C extends CodesOfTable<Tables[W]> ? W : never;
1138
+ }[keyof Tables];
1139
+ /** The variants, among `Tables`' keys, whose table lists `Op` for code `C`. */
1140
+ type VariantsWhereCodeHasIn<Tables, C, Op extends AdtOperation> = {
1141
+ [W in keyof Tables]: C extends CodesWithInTable<Tables[W], Op> ? W : never;
1142
+ }[keyof Tables];
1143
+ /**
1144
+ * The variants, among `Tables`' keys, whose table serves API `A`. Each key is
1145
+ * read on its own table, so nothing distributes over a union of tables.
1146
+ */
1147
+ export type AdtServingVariantsIn<Tables, A extends AdtApiName> = {
1148
+ [W in keyof Tables]: A extends keyof Tables[W] ? W : never;
1149
+ }[keyof Tables];
1150
+ /**
1151
+ * The variants, among `Tables`' keys, one code of whose API `A` lists every
1152
+ * operation of `Op` (or, for a codeless API, whose entry does).
1153
+ */
1154
+ export type AdtPerformingVariantsIn<Tables, A extends AdtApiName, Op extends AdtOperation> = {
1155
+ [W in keyof Tables]: [A] extends [AdtApiWithIn<Tables[W], Op>] ? W : never;
1156
+ }[keyof Tables];
1157
+ /** The codes any table of `V` lists — the candidates, each table read alone. */
1158
+ type CandidateCodes<Tables, V extends keyof Tables> = {
1159
+ [W in V]: CodesOfTable<Tables[W]>;
1160
+ }[V];
1161
+ /** The codes any table of `V` lists `Op` for, each table read alone. */
1162
+ type CandidateCodesWith<Tables, V extends keyof Tables, Op extends AdtOperation> = {
1163
+ [W in V]: CodesWithInTable<Tables[W], Op>;
1164
+ }[V];
1165
+ /** The codes every table of `V` among `Tables` lists: the intersection. */
1166
+ export type AdtCodeOfIn<Tables, V extends keyof Tables> = {
1167
+ [C in CandidateCodes<Tables, V>]: [V] extends [VariantsListingIn<Tables, C>] ? C : never;
1168
+ }[CandidateCodes<Tables, V>];
1169
+ /** The codes for which every table of `V` among `Tables` lists `Op`. */
1170
+ export type AdtCodeWithIn<Tables, V extends keyof Tables, Op extends AdtOperation> = {
1171
+ [C in CandidateCodesWith<Tables, V, Op>]: [V] extends [
1172
+ VariantsWhereCodeHasIn<Tables, C, Op>
1173
+ ] ? C : never;
1174
+ }[CandidateCodesWith<Tables, V, Op>];
1175
+ /**
1176
+ * The codes every variant of `V` lists — for the default modern variant, the
1177
+ * codes both newer tables list. The intersecting counterpart of
1178
+ * {@link AdtTypeCodeOf}.
1179
+ */
1180
+ export type AdtCodeOf<V extends AdtVariant> = AdtCodeOfIn<IAdtTypeTables, V>;
1181
+ /**
1182
+ * The codes for which every variant of `V` lists every operation of `Op` —
1183
+ * the intersecting counterpart of {@link AdtTypeCodeWith}.
1184
+ */
1185
+ export type AdtCodeWith<V extends AdtVariant, Op extends AdtOperation> = AdtCodeWithIn<IAdtTypeTables, V, Op>;
1091
1186
  export {};
1092
1187
  //# sourceMappingURL=AdtTypeTables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdtTypeTables.d.ts","sourceRoot":"","sources":["../../src/adt/AdtTypeTables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AdtTypeTables.d.ts","sourceRoot":"","sources":["../../src/adt/AdtTypeTables.ts"],"names":[],"mappings":"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"}
@@ -23,9 +23,9 @@ exports.ADT_TYPES_BASIS_740 = exports.ADT_TYPES_CLOUD = exports.ADT_TYPES_ONPREM
23
23
  /**
24
24
  * What the library serves on **S/4HANA 2025 on-premise**, API by API.
25
25
  *
26
- * Identical in operations to {@link ADT_TYPES_CLOUD}: the library has no
27
- * on-premise or cloud branch. The two differ where the releases do —
28
- * `SRVD/SRV` takes 40 characters here and 30 on ABAP cloud.
26
+ * The library has no on-premise or cloud branch; the two tables differ where
27
+ * the releases do — `SRVD/SRV` takes 40 characters here and 30 on ABAP
28
+ * cloud, and a program or an include is created and changed only here.
29
29
  */
30
30
  exports.ADT_TYPES_ONPREM = {
31
31
  class: {
@@ -41,6 +41,7 @@ exports.ADT_TYPES_ONPREM = {
41
41
  'source',
42
42
  'readMetadata',
43
43
  'update',
44
+ 'updateMetadata',
44
45
  'lock',
45
46
  'unlock',
46
47
  'activate',
@@ -77,6 +78,7 @@ exports.ADT_TYPES_ONPREM = {
77
78
  'source',
78
79
  'readMetadata',
79
80
  'update',
81
+ 'updateMetadata',
80
82
  'lock',
81
83
  'unlock',
82
84
  'activate',
@@ -104,6 +106,7 @@ exports.ADT_TYPES_ONPREM = {
104
106
  'source',
105
107
  'readMetadata',
106
108
  'update',
109
+ 'updateMetadata',
107
110
  'lock',
108
111
  'unlock',
109
112
  'activate',
@@ -195,6 +198,7 @@ exports.ADT_TYPES_ONPREM = {
195
198
  'source',
196
199
  'readMetadata',
197
200
  'update',
201
+ 'updateMetadata',
198
202
  'lock',
199
203
  'unlock',
200
204
  'activate',
@@ -276,6 +280,7 @@ exports.ADT_TYPES_ONPREM = {
276
280
  'source',
277
281
  'readMetadata',
278
282
  'update',
283
+ 'updateMetadata',
279
284
  'lock',
280
285
  'unlock',
281
286
  'activate',
@@ -956,7 +961,9 @@ exports.ADT_TYPES_ONPREM = {
956
961
  /**
957
962
  * What the library serves on **ABAP cloud** (measured on the BTP trial), API by
958
963
  * API. The same operations as {@link ADT_TYPES_ONPREM}, and this release's
959
- * name lengths.
964
+ * name lengths, but for a program (`PROG/P`) and an include (`PROG/I`): the
965
+ * cloud refuses to create either (`403`, S_DEVELOP), so they list only what a
966
+ * delivered one answers — nothing that changes an object.
960
967
  */
961
968
  exports.ADT_TYPES_CLOUD = {
962
969
  class: {
@@ -972,6 +979,7 @@ exports.ADT_TYPES_CLOUD = {
972
979
  'source',
973
980
  'readMetadata',
974
981
  'update',
982
+ 'updateMetadata',
975
983
  'lock',
976
984
  'unlock',
977
985
  'activate',
@@ -1008,6 +1016,7 @@ exports.ADT_TYPES_CLOUD = {
1008
1016
  'source',
1009
1017
  'readMetadata',
1010
1018
  'update',
1019
+ 'updateMetadata',
1011
1020
  'lock',
1012
1021
  'unlock',
1013
1022
  'activate',
@@ -1030,19 +1039,11 @@ exports.ADT_TYPES_CLOUD = {
1030
1039
  parent: null,
1031
1040
  nameMaxLength: 40,
1032
1041
  operations: [
1033
- 'create',
1034
1042
  'read',
1035
1043
  'source',
1036
1044
  'readMetadata',
1037
- 'update',
1038
- 'lock',
1039
- 'unlock',
1040
- 'activate',
1041
1045
  'check',
1042
- 'validate',
1043
1046
  'versions',
1044
- 'deletionCheck',
1045
- 'delete',
1046
1047
  'transport',
1047
1048
  'readEnhancementElements',
1048
1049
  'readEnhancementOptions',
@@ -1065,17 +1066,9 @@ exports.ADT_TYPES_CLOUD = {
1065
1066
  parent: null,
1066
1067
  nameMaxLength: 40,
1067
1068
  operations: [
1068
- 'create',
1069
1069
  'read',
1070
1070
  'source',
1071
1071
  'readMetadata',
1072
- 'update',
1073
- 'lock',
1074
- 'unlock',
1075
- 'activate',
1076
- 'validate',
1077
- 'deletionCheck',
1078
- 'delete',
1079
1072
  'readEnhancementElements',
1080
1073
  'readEnhancementOptions',
1081
1074
  ],
@@ -1126,6 +1119,7 @@ exports.ADT_TYPES_CLOUD = {
1126
1119
  'source',
1127
1120
  'readMetadata',
1128
1121
  'update',
1122
+ 'updateMetadata',
1129
1123
  'lock',
1130
1124
  'unlock',
1131
1125
  'activate',
@@ -1207,6 +1201,7 @@ exports.ADT_TYPES_CLOUD = {
1207
1201
  'source',
1208
1202
  'readMetadata',
1209
1203
  'update',
1204
+ 'updateMetadata',
1210
1205
  'lock',
1211
1206
  'unlock',
1212
1207
  'activate',