@mcp-abap-adt/interfaces-adt 21.0.0 → 23.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 +124 -0
- package/README.md +87 -3
- package/dist/adt/AdtTypeTables.d.ts +133 -23
- package/dist/adt/AdtTypeTables.d.ts.map +1 -1
- package/dist/adt/AdtTypeTables.js +30 -31
- package/dist/adt/AdtUtilityCodes.d.ts +146 -0
- package/dist/adt/AdtUtilityCodes.d.ts.map +1 -0
- package/dist/adt/AdtUtilityCodes.js +73 -0
- package/dist/adt/IAdtShared.d.ts +60 -6
- package/dist/adt/IAdtShared.d.ts.map +1 -1
- package/dist/adt/IAdtUtilities.d.ts +96 -2
- package/dist/adt/IAdtUtilities.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,130 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [23.0.0] - 2026-10-28
|
|
11
|
+
|
|
12
|
+
### Changed (breaking)
|
|
13
|
+
|
|
14
|
+
- **`ADT_TYPES_CLOUD`: a program and an include list what a delivered one
|
|
15
|
+
answers, as measured.** ABAP cloud has no program or include of one's own:
|
|
16
|
+
its discovery gives neither collection an `app:accept`, and the create is
|
|
17
|
+
refused (`403`, S_DEVELOP). Measured on the BTP trial 2026-10-28 on a
|
|
18
|
+
delivered program and include:
|
|
19
|
+
- answered: `read`, `source`, `readMetadata`, `check` and `versions` (the
|
|
20
|
+
program's), `deletionCheck` (its `del:checkResponse`, not deletable), the
|
|
21
|
+
enhancement elements and options, and for a program the ABAP Unit run, its
|
|
22
|
+
status and result, and the synchronous run;
|
|
23
|
+
- refused: `transport` (`404`), `run` and `profile` (`200` with "You are not
|
|
24
|
+
authorized to execute this object" as the body).
|
|
25
|
+
|
|
26
|
+
So `PROG/P` lists `read`, `source`, `readMetadata`, `check`, `versions`,
|
|
27
|
+
`deletionCheck`, `readEnhancementElements`, `readEnhancementOptions`,
|
|
28
|
+
`unitTestRun`, `unitTestRunSync`, `unitTestStatus` and `unitTestResult`,
|
|
29
|
+
and `PROG/I` `read`, `source`, `readMetadata`, `deletionCheck` and the two
|
|
30
|
+
enhancement reads. Against 22.0.0 that removes `transport`, `run` and
|
|
31
|
+
`profile` from `PROG/P` — a narrowing, so a major — and adds
|
|
32
|
+
`deletionCheck` to both, which 22.0.0 had dropped by inference. A change of
|
|
33
|
+
an object (`create`, `update`, `updateMetadata`, `lock`, `unlock`,
|
|
34
|
+
`activate`, `delete`) and `validate`, which only prepares a create, stay
|
|
35
|
+
out. `AdtCodeWith<AdtModernVariant, Op>` follows.
|
|
36
|
+
- **`ADT_TYPES_CLOUD`: a feature toggle (`FTG2/FT`) is only read.** A table
|
|
37
|
+
lists a read where its release's discovery has the endpoint, and an
|
|
38
|
+
operation that changes an object (`create`, `update`, `updateMetadata`,
|
|
39
|
+
`lock`, `unlock`, `activate`, `delete`, a feature toggle's `switchOn` and
|
|
40
|
+
`switchOff`, and the `validate` that prepares a create) where the release
|
|
41
|
+
offers it — its discovery, and a measurement — and not where a measurement
|
|
42
|
+
on the release refused it. On ABAP cloud the create answers `403` (measured
|
|
43
|
+
on the BTP trial 2026-10-28; its `typestructure` gives the measuring user no
|
|
44
|
+
`CREATE` for the type): `FTG2/FT` keeps `read`, `source`, `readMetadata`,
|
|
45
|
+
`check`, `deletionCheck`, `getRuntimeState` and `checkState`. On S/4HANA
|
|
46
|
+
2025 it keeps every operation; a system may still refuse one — an S/4HANA
|
|
47
|
+
2025 system answers `403` "It is not allowed to create/update feature
|
|
48
|
+
toggles in this system" (`FTG2/035`), a setting of that system, which
|
|
49
|
+
reaches the caller as the system's answer.
|
|
50
|
+
|
|
51
|
+
## [22.0.0] - 2026-10-28
|
|
52
|
+
|
|
53
|
+
A major for one change: the ABAP cloud table loses the program and include
|
|
54
|
+
operations the cloud refuses (see "Changed (breaking)"). Everything else is
|
|
55
|
+
added beside 21.0.0's types: each keeps its meaning, and a type parameter
|
|
56
|
+
added to an existing type has the 21.0.0 type as its default.
|
|
57
|
+
|
|
58
|
+
### Changed (breaking)
|
|
59
|
+
|
|
60
|
+
- **`ADT_TYPES_CLOUD`: a program and an include change nothing.** ABAP cloud
|
|
61
|
+
refuses to create either (`403`, S_DEVELOP, measured on the BTP trial
|
|
62
|
+
2026-10-28), so `PROG/P` and `PROG/I` no longer list `create`, `update`,
|
|
63
|
+
`lock`, `unlock`, `activate`, `validate`, `deletionCheck` or `delete`.
|
|
64
|
+
What a delivered one answers stays: `read`, `source` and `readMetadata`
|
|
65
|
+
(measured on both), `check` and `versions` for a program (measured),
|
|
66
|
+
and the operations not measured — the enhancement reads, `transport`,
|
|
67
|
+
`run`, `profile` and the unit-test runs — as the release's `typestructure`
|
|
68
|
+
lists them. Leaving out the change operations beyond `create` is an
|
|
69
|
+
inference from the refusal: S_DEVELOP is the change authorization, and an
|
|
70
|
+
object nobody can create has nothing of one's own to change. A function
|
|
71
|
+
include (`FUGR/I`) is unchanged: the cloud creates one (`200`, measured).
|
|
72
|
+
`AdtTypeCodeWith<'cloud', Op>` and `AdtCodeWith<AdtModernVariant, Op>` no
|
|
73
|
+
longer name `PROG/P` or `PROG/I` for those operations, and the cloud table
|
|
74
|
+
is no longer the on-premise one in operations.
|
|
75
|
+
|
|
76
|
+
### Added
|
|
77
|
+
|
|
78
|
+
- **`updateMetadata`** on `CLAS/OC`, `INTF/OI`, `FUGR/FF` and `DDLS/DF` in
|
|
79
|
+
`ADT_TYPES_ONPREM` and `ADT_TYPES_CLOUD`, and on `PROG/P` in
|
|
80
|
+
`ADT_TYPES_ONPREM`: the object's whole metadata document, written back with
|
|
81
|
+
the media type it was read with, answers `200` on S/4HANA 2025 and on ABAP
|
|
82
|
+
cloud (measured 2026-10-27). 7.40 is not measured yet and keeps none.
|
|
83
|
+
|
|
84
|
+
- **Intersecting helpers.** `AdtCodeOf<V>` and `AdtCodeWith<V, Op>`: the codes
|
|
85
|
+
every variant of `V` lists (with `Op`) — the default modern variant,
|
|
86
|
+
`AdtModernVariant` (`'onprem' | 'cloud'`), gets what both newer tables
|
|
87
|
+
serve. `AdtCodeOfIn<Tables, V>` and `AdtCodeWithIn<Tables, V, Op>` are the
|
|
88
|
+
same over any set of tables; `AdtServingVariantsIn<Tables, A>` and
|
|
89
|
+
`AdtPerformingVariantsIn<Tables, A, Op>` name the variants whose table
|
|
90
|
+
serves an API, or one of its codes an operation. `AdtTypeCodeOf`,
|
|
91
|
+
`AdtTypeCodeWith`, `AdtApiWith` and `AdtApiWithIn` are unchanged; their docs
|
|
92
|
+
now state what they answer for a union of variants — the APIs all of them
|
|
93
|
+
serve, and for those the codes and operations any of them lists.
|
|
94
|
+
- **Utility code tables**, `ADT_UTILITY_CODES_ONPREM`, `_CLOUD`,
|
|
95
|
+
`_BASIS_740` (`IAdtUtilityCodeTables`, `AdtUtilityCodeTable<R>`,
|
|
96
|
+
`IAdtUtilityCodeFacts<R>`, `AdtUtilityOperation`, `AdtUtilityCodeWith<V,
|
|
97
|
+
Op>`, `AdtUtilityCode`): the codes `getUtils()` takes beyond the API tables,
|
|
98
|
+
each with its operations, whether they were measured, and its evidence.
|
|
99
|
+
- `VIEW/DV`, a DDIC database view, on every release: group activation,
|
|
100
|
+
group deletion and where-used, under `/sap/bc/adt/ddic/views`. No API
|
|
101
|
+
serves it — a **group-only code**, `AdtGroupOnlyCode`,
|
|
102
|
+
`AdtGroupOnlyCodeOf<V>`. Sent, unmeasured.
|
|
103
|
+
- `DEVC/K` in a group activation on the newer releases — sent, unmeasured.
|
|
104
|
+
- `DEVC/K` in `fetchNodeStructure` on 7.40 — measured (the legacy
|
|
105
|
+
`UtilsReaders` cycle). A table of its own rather than a package entry on
|
|
106
|
+
7.40, because an entry would gate `getPackage()` open where every package
|
|
107
|
+
member is refused, and a new `AdtOperation` word would break a 21.0.0
|
|
108
|
+
consumer's exhaustive map over the vocabulary.
|
|
109
|
+
- `IObjectReference<C>`, `IGetWhereUsedParams<C>` and
|
|
110
|
+
`IGetWhereUsedScopeParams<C>` take a group-only code as their type
|
|
111
|
+
argument (`IObjectReference<'VIEW/DV'>`). Their defaults are 21.0.0's: a
|
|
112
|
+
bare `IObjectReference` still admits `AdtTypeCode` alone.
|
|
113
|
+
- **What each group operation is given:** `AdtGroupActivationCode<V>`,
|
|
114
|
+
`AdtGroupDeletionCheckCode<V>`, `AdtGroupDeletionCode<V>` (no `MSAG/NN`,
|
|
115
|
+
which has no address of its own), `AdtWhereUsedCode<V>` (no `FUGR/I` or
|
|
116
|
+
`MSAG/NN`), and the references over them, `IAdtGroupActivationReference<V>`,
|
|
117
|
+
`IAdtGroupDeletionCheckReference<V>`, `IAdtGroupDeletionReference<V>`,
|
|
118
|
+
`IAdtWhereUsedParamsOf<V>`, `IAdtWhereUsedScopeParamsOf<V>`, built by
|
|
119
|
+
`IAdtCodedReference<C>`: `parentName` required for each parented code, and
|
|
120
|
+
a reference from a code known only by its set compiles when it names its
|
|
121
|
+
parent — inside TypeScript's 25-combination limit.
|
|
122
|
+
- `IAdtTypedGroupLifecycle<TActivation, TDeletionCheck, TDeletion, V>` and
|
|
123
|
+
`IAdtTypedWhereUsed<TWhereUsed, TScope, V>`: the group and where-used members
|
|
124
|
+
over those references. New atoms beside `IAdtGroupLifecycle` and
|
|
125
|
+
`IAdtWhereUsed`, with the same member names: an implementation declaring
|
|
126
|
+
both offers both signatures, and a caller passing `IObjectReference[]` is
|
|
127
|
+
unaffected. Adding the signatures to the 21.0.0 atoms instead would have
|
|
128
|
+
made every implementation of them stop compiling.
|
|
129
|
+
- `IAdtTypeStructure<TTypeStructure>`: `getTypeStructure({ headers })`,
|
|
130
|
+
`POST /sap/bc/adt/repository/typestructure`, an atom of its own like
|
|
131
|
+
`IAdtObjectProperties`, and `IUtilResults.typeStructure`, its reading —
|
|
132
|
+
optional, so a 21.0.0 result set is still one.
|
|
133
|
+
|
|
10
134
|
## [21.0.0] - 2026-10-27
|
|
11
135
|
|
|
12
136
|
### 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 23.0.0, a program and an include on ABAP cloud list only what a delivered one answers (no create, change, transport, run or profile), and a feature toggle is only read there (see "Migrating to 23.0.0"); since 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/` |
|
|
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
|
|
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,16 @@ 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`.
|
|
98
|
+
no `run`. On ABAP cloud a program and an include are only SAP's own: they
|
|
99
|
+
list what a delivered one answers — reads, checks, the deletion check, the
|
|
100
|
+
enhancement reads and a program's ABAP Unit runs. A read is listed where the
|
|
101
|
+
release's discovery has its endpoint; an operation that changes an object where
|
|
102
|
+
the release offers it (its discovery, and a measurement), and not where a
|
|
103
|
+
measurement on the release refused it. `typestructure`'s `USER_AUTHORIZATIONS`
|
|
104
|
+
is one user's on one system — the type accessible there and the user allowed
|
|
105
|
+
to create it — so it explains a refusal, it does not fill a table. A system's
|
|
106
|
+
own refusal (an authorization, a setting) is its answer at run time.
|
|
107
|
+
The entry shape (`AdtApiTable<R>`) refuses a misspelt field, an
|
|
98
108
|
operation outside the vocabulary, an API with no factory and another release's
|
|
99
109
|
evidence at compile time.
|
|
100
110
|
|
|
@@ -158,6 +168,46 @@ when `[C] extends [AdtParentedTypeCode]` — `IObjectReference<'FUGR/FF'>` —
|
|
|
158
168
|
and leaves it optional otherwise, the default included, so a reference built
|
|
159
169
|
from a code typed `AdtTypeCode` compiles and an interface can extend it.
|
|
160
170
|
|
|
171
|
+
### Intersections, group-only codes and group references (22.0.0)
|
|
172
|
+
|
|
173
|
+
**A union of variants.** `AdtTypeCodeOf<V>`, `AdtTypeCodeWith<V, Op>` and
|
|
174
|
+
`AdtApiWith<V, Op>` read a union of variants as one union table: the APIs all
|
|
175
|
+
of them serve, and for those the codes and operations any of them lists. The
|
|
176
|
+
intersecting helpers ask every variant: `AdtCodeOf<V>` and `AdtCodeWith<V, Op>`
|
|
177
|
+
are the codes every variant of `V` lists (with `Op`), and
|
|
178
|
+
`AdtServingVariantsIn<IAdtTypeTables, A>` and
|
|
179
|
+
`AdtPerformingVariantsIn<IAdtTypeTables, A, Op>` name the variants that serve
|
|
180
|
+
an API or perform an operation on one of its codes — what a client's gates
|
|
181
|
+
need. For `AdtModernVariant`, `'onprem' | 'cloud'`, that is what both tables
|
|
182
|
+
serve. `AdtCodeOfIn` and `AdtCodeWithIn` take any set of tables.
|
|
183
|
+
|
|
184
|
+
**Utility codes.** `ADT_UTILITY_CODES_ONPREM`, `_CLOUD` and `_BASIS_740` hold
|
|
185
|
+
what `getUtils()` takes beyond the API tables, with its operations
|
|
186
|
+
(`AdtUtilityOperation`), whether they were measured, and the evidence:
|
|
187
|
+
|
|
188
|
+
| code | where | operations | measured |
|
|
189
|
+
|---|---|---|---|
|
|
190
|
+
| `VIEW/DV` | every release, `/sap/bc/adt/ddic/views` | group activation, group deletion, where-used | no |
|
|
191
|
+
| `DEVC/K` | S/4HANA 2025, ABAP cloud | group activation | no |
|
|
192
|
+
| `DEVC/K` | SAP_BASIS 7.40 SP04 | node structure | yes |
|
|
193
|
+
|
|
194
|
+
`VIEW/DV` is a **group-only code** (`AdtGroupOnlyCode`): no API serves it, so
|
|
195
|
+
it is no `AdtTypeCode`. `IObjectReference<'VIEW/DV'>` and
|
|
196
|
+
`IGetWhereUsedParams<'VIEW/DV'>` name it; the defaults do not.
|
|
197
|
+
|
|
198
|
+
**Group references.** `IAdtGroupActivationReference<V>`,
|
|
199
|
+
`IAdtGroupDeletionCheckReference<V>`, `IAdtGroupDeletionReference<V>` and
|
|
200
|
+
`IAdtWhereUsedParamsOf<V>` take only the codes their operation sends on `V`
|
|
201
|
+
— no message class in an activation, no package in a 7.40 one, no function
|
|
202
|
+
include in where-used — and require `parentName` for `FUGR/FF` and `FUGR/I`.
|
|
203
|
+
`IAdtTypedGroupLifecycle` and `IAdtTypedWhereUsed` declare the members over
|
|
204
|
+
them, beside `IAdtGroupLifecycle` and `IAdtWhereUsed`: a contract composed of
|
|
205
|
+
both takes typed references and the 21.0.0 `IObjectReference[]` alike.
|
|
206
|
+
|
|
207
|
+
**The type structure.** `IAdtTypeStructure.getTypeStructure({ headers })`
|
|
208
|
+
posts to `/sap/bc/adt/repository/typestructure`; its reading is
|
|
209
|
+
`IUtilResults.typeStructure`, optional so a 21.0.0 set is still one.
|
|
210
|
+
|
|
161
211
|
## Enhancements and their hosts
|
|
162
212
|
|
|
163
213
|
`EnhancementType` accepts `enhoxhb` (BAdI implementation, ENHO/XHB), `enhoxhh`
|
|
@@ -231,6 +281,40 @@ The field is on each member's own options, not on `IAdtAnalyseOptions` or
|
|
|
231
281
|
`IAdtOperationOptions`. `src/__typechecks__/headersOnEveryMember.ts` holds this
|
|
232
282
|
for every member and every overload.
|
|
233
283
|
|
|
284
|
+
## Migrating to 23.0.0
|
|
285
|
+
|
|
286
|
+
- **ABAP cloud: a delivered program is not transported, run or profiled.**
|
|
287
|
+
`ADT_TYPES_CLOUD` no longer lists `transport`, `run` or `profile` for
|
|
288
|
+
`PROG/P`: on a delivered program the transport answers `404`, and a run or a
|
|
289
|
+
profiled run is refused ("You are not authorized to execute this object",
|
|
290
|
+
measured 2026-10-28). Code gated on the cloud variant, or on the
|
|
291
|
+
intersecting helpers over `AdtModernVariant`, that reads a program's
|
|
292
|
+
transport or runs or profiles a program stops compiling.
|
|
293
|
+
- **ABAP cloud: a feature toggle is only read.** `ADT_TYPES_CLOUD` lists for
|
|
294
|
+
`FTG2/FT` `read`, `source`, `readMetadata`, `check`, `deletionCheck`,
|
|
295
|
+
`getRuntimeState` and `checkState`: the create answers `403` (the cloud's
|
|
296
|
+
`typestructure` gives the measuring user no `CREATE` for it). Code gated
|
|
297
|
+
on the cloud variant, or on the intersecting helpers over
|
|
298
|
+
`AdtModernVariant`, that creates, changes, locks, activates, deletes or
|
|
299
|
+
switches a feature toggle stops compiling.
|
|
300
|
+
- `deletionCheck` is listed again for `PROG/P` and `PROG/I` on ABAP cloud;
|
|
301
|
+
nothing that compiled stops compiling for it.
|
|
302
|
+
|
|
303
|
+
## Migrating to 22.0.0
|
|
304
|
+
|
|
305
|
+
- **ABAP cloud: no program or include of one's own.** `ADT_TYPES_CLOUD` no
|
|
306
|
+
longer lists `create`, `update`, `lock`, `unlock`, `activate`, `validate`,
|
|
307
|
+
`deletionCheck` or `delete` for `PROG/P` and `PROG/I`: the cloud refuses to
|
|
308
|
+
create either (`403`, S_DEVELOP). Code gated on the cloud variant, or on the
|
|
309
|
+
intersecting helpers over `AdtModernVariant` (`AdtCodeWith`,
|
|
310
|
+
`AdtPerformingVariantsIn` — what both newer tables serve), that creates or
|
|
311
|
+
changes a program or an include stops compiling. The union helpers
|
|
312
|
+
(`AdtApiWith`, `AdtTypeCodeWith`) over `AdtModernVariant` still name the
|
|
313
|
+
program, since on-premise creates one. A function include (`FUGR/I`) is
|
|
314
|
+
unchanged. (23.0.0 lists `deletionCheck` again.)
|
|
315
|
+
- Nothing else breaks: every other change is an addition (see the
|
|
316
|
+
CHANGELOG).
|
|
317
|
+
|
|
234
318
|
## Migrating to 21.0.0
|
|
235
319
|
|
|
236
320
|
Every break is a type error; nothing a correct call sends changes.
|
|
@@ -17,13 +17,14 @@
|
|
|
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
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
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, a program run,
|
|
27
|
+
* and a feature toggle created, changed and switched, only here.
|
|
27
28
|
*/
|
|
28
29
|
export declare const ADT_TYPES_ONPREM: {
|
|
29
30
|
readonly class: {
|
|
@@ -33,7 +34,7 @@ export declare const ADT_TYPES_ONPREM: {
|
|
|
33
34
|
readonly 'CLAS/OC': {
|
|
34
35
|
readonly parent: null;
|
|
35
36
|
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"];
|
|
37
|
+
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
38
|
readonly evidence: "system-description-s4-2025--07-typestructure";
|
|
38
39
|
};
|
|
39
40
|
};
|
|
@@ -45,7 +46,7 @@ export declare const ADT_TYPES_ONPREM: {
|
|
|
45
46
|
readonly 'INTF/OI': {
|
|
46
47
|
readonly parent: null;
|
|
47
48
|
readonly nameMaxLength: 30;
|
|
48
|
-
readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport"];
|
|
49
|
+
readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport"];
|
|
49
50
|
readonly evidence: "system-description-s4-2025--07-typestructure";
|
|
50
51
|
};
|
|
51
52
|
};
|
|
@@ -57,7 +58,7 @@ export declare const ADT_TYPES_ONPREM: {
|
|
|
57
58
|
readonly 'PROG/P': {
|
|
58
59
|
readonly parent: null;
|
|
59
60
|
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"];
|
|
61
|
+
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
62
|
readonly evidence: "system-description-s4-2025--07-typestructure";
|
|
62
63
|
};
|
|
63
64
|
};
|
|
@@ -93,7 +94,7 @@ export declare const ADT_TYPES_ONPREM: {
|
|
|
93
94
|
readonly 'FUGR/FF': {
|
|
94
95
|
readonly parent: "functionGroup";
|
|
95
96
|
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"];
|
|
97
|
+
readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
|
|
97
98
|
readonly evidence: "system-description-s4-2025--07-typestructure";
|
|
98
99
|
};
|
|
99
100
|
};
|
|
@@ -129,7 +130,7 @@ export declare const ADT_TYPES_ONPREM: {
|
|
|
129
130
|
readonly 'DDLS/DF': {
|
|
130
131
|
readonly parent: null;
|
|
131
132
|
readonly nameMaxLength: 30;
|
|
132
|
-
readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "checkCdsTestDoubles"];
|
|
133
|
+
readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "checkCdsTestDoubles"];
|
|
133
134
|
readonly evidence: "system-description-s4-2025--07-typestructure";
|
|
134
135
|
};
|
|
135
136
|
};
|
|
@@ -433,7 +434,23 @@ export declare const ADT_TYPES_ONPREM: {
|
|
|
433
434
|
/**
|
|
434
435
|
* What the library serves on **ABAP cloud** (measured on the BTP trial), API by
|
|
435
436
|
* API. The same operations as {@link ADT_TYPES_ONPREM}, and this release's
|
|
436
|
-
* name lengths
|
|
437
|
+
* name lengths, but for a program (`PROG/P`), an include (`PROG/I`) and a
|
|
438
|
+
* feature toggle (`FTG2/FT`), each only read here. The cloud has no program
|
|
439
|
+
* or include of one's own — its discovery gives neither collection an
|
|
440
|
+
* `app:accept`, and the create is refused (`403`, S_DEVELOP) — so they list
|
|
441
|
+
* what a delivered one answers (measured): the reads, the check, the versions,
|
|
442
|
+
* the deletion check, the enhancement reads and, for a program, the ABAP Unit
|
|
443
|
+
* runs. Its transport is `404`, and running or profiling it is refused.
|
|
444
|
+
*
|
|
445
|
+
* A read is listed where the release's discovery has its endpoint. An
|
|
446
|
+
* operation that changes an object (`create`, `update`, `updateMetadata`,
|
|
447
|
+
* `lock`, `unlock`, `activate`, `delete`, a feature toggle's switch, and the
|
|
448
|
+
* `validate` that prepares a create) is listed where the release offers it —
|
|
449
|
+
* its discovery, and a measurement — and left out where a measurement on the
|
|
450
|
+
* release refused it: a feature toggle (`FTG2/FT`) is only read here, while a
|
|
451
|
+
* function include (`FUGR/I`) is created in its group. `typestructure`'s
|
|
452
|
+
* `USER_AUTHORIZATIONS` says why a measuring user was refused, for that user
|
|
453
|
+
* on that system; it explains the table, it does not fill it.
|
|
437
454
|
*/
|
|
438
455
|
export declare const ADT_TYPES_CLOUD: {
|
|
439
456
|
readonly class: {
|
|
@@ -443,7 +460,7 @@ export declare const ADT_TYPES_CLOUD: {
|
|
|
443
460
|
readonly 'CLAS/OC': {
|
|
444
461
|
readonly parent: null;
|
|
445
462
|
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"];
|
|
463
|
+
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
464
|
readonly evidence: "system-description-abap-cloud--07-typestructure";
|
|
448
465
|
};
|
|
449
466
|
};
|
|
@@ -455,7 +472,7 @@ export declare const ADT_TYPES_CLOUD: {
|
|
|
455
472
|
readonly 'INTF/OI': {
|
|
456
473
|
readonly parent: null;
|
|
457
474
|
readonly nameMaxLength: 30;
|
|
458
|
-
readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport"];
|
|
475
|
+
readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport"];
|
|
459
476
|
readonly evidence: "system-description-abap-cloud--07-typestructure";
|
|
460
477
|
};
|
|
461
478
|
};
|
|
@@ -467,7 +484,7 @@ export declare const ADT_TYPES_CLOUD: {
|
|
|
467
484
|
readonly 'PROG/P': {
|
|
468
485
|
readonly parent: null;
|
|
469
486
|
readonly nameMaxLength: 40;
|
|
470
|
-
readonly operations: readonly ["
|
|
487
|
+
readonly operations: readonly ["read", "source", "readMetadata", "check", "versions", "deletionCheck", "readEnhancementElements", "readEnhancementOptions", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
|
|
471
488
|
readonly evidence: "system-description-abap-cloud--07-typestructure";
|
|
472
489
|
};
|
|
473
490
|
};
|
|
@@ -479,7 +496,7 @@ export declare const ADT_TYPES_CLOUD: {
|
|
|
479
496
|
readonly 'PROG/I': {
|
|
480
497
|
readonly parent: null;
|
|
481
498
|
readonly nameMaxLength: 40;
|
|
482
|
-
readonly operations: readonly ["
|
|
499
|
+
readonly operations: readonly ["read", "source", "readMetadata", "deletionCheck", "readEnhancementElements", "readEnhancementOptions"];
|
|
483
500
|
readonly evidence: "system-description-abap-cloud--07-typestructure";
|
|
484
501
|
};
|
|
485
502
|
};
|
|
@@ -503,7 +520,7 @@ export declare const ADT_TYPES_CLOUD: {
|
|
|
503
520
|
readonly 'FUGR/FF': {
|
|
504
521
|
readonly parent: "functionGroup";
|
|
505
522
|
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"];
|
|
523
|
+
readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "unitTestRun", "unitTestRunSync", "unitTestStatus", "unitTestResult"];
|
|
507
524
|
readonly evidence: "system-description-abap-cloud--07-typestructure";
|
|
508
525
|
};
|
|
509
526
|
};
|
|
@@ -539,7 +556,7 @@ export declare const ADT_TYPES_CLOUD: {
|
|
|
539
556
|
readonly 'DDLS/DF': {
|
|
540
557
|
readonly parent: null;
|
|
541
558
|
readonly nameMaxLength: 30;
|
|
542
|
-
readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "checkCdsTestDoubles"];
|
|
559
|
+
readonly operations: readonly ["create", "read", "source", "readMetadata", "update", "updateMetadata", "lock", "unlock", "activate", "check", "validate", "versions", "deletionCheck", "delete", "transport", "checkCdsTestDoubles"];
|
|
543
560
|
readonly evidence: "system-description-abap-cloud--07-typestructure";
|
|
544
561
|
};
|
|
545
562
|
};
|
|
@@ -755,7 +772,7 @@ export declare const ADT_TYPES_CLOUD: {
|
|
|
755
772
|
readonly 'FTG2/FT': {
|
|
756
773
|
readonly parent: null;
|
|
757
774
|
readonly nameMaxLength: 30;
|
|
758
|
-
readonly operations: readonly ["
|
|
775
|
+
readonly operations: readonly ["read", "source", "readMetadata", "check", "deletionCheck", "getRuntimeState", "checkState"];
|
|
759
776
|
readonly evidence: "system-description-abap-cloud--07-typestructure";
|
|
760
777
|
};
|
|
761
778
|
};
|
|
@@ -1016,6 +1033,12 @@ export declare const ADT_TYPES_BASIS_740: {
|
|
|
1016
1033
|
* `basis740` SAP_BASIS 7.40 SP04. Declared by the consumer, never detected.
|
|
1017
1034
|
*/
|
|
1018
1035
|
export type AdtVariant = 'onprem' | 'cloud' | 'basis740';
|
|
1036
|
+
/**
|
|
1037
|
+
* A system of SAP_BASIS 7.50 or later, on premise or ABAP cloud — the variant
|
|
1038
|
+
* a client serves when none is named. Read with the intersecting helpers
|
|
1039
|
+
* below, it gets what **both** tables serve.
|
|
1040
|
+
*/
|
|
1041
|
+
export type AdtModernVariant = Exclude<AdtVariant, 'basis740'>;
|
|
1019
1042
|
/** The table of each variant, by its name. */
|
|
1020
1043
|
export interface IAdtTypeTables {
|
|
1021
1044
|
readonly onprem: AdtCheckedTable<typeof ADT_TYPES_ONPREM>;
|
|
@@ -1043,9 +1066,20 @@ type ParentedCodesOf<E> = E extends {
|
|
|
1043
1066
|
readonly parent: null;
|
|
1044
1067
|
} ? never : K;
|
|
1045
1068
|
}[keyof C] & string : never;
|
|
1046
|
-
/**
|
|
1069
|
+
/**
|
|
1070
|
+
* The APIs — the client's factories — variant `V` serves. For a union of
|
|
1071
|
+
* variants this is already the intersection: `keyof` a union of tables names
|
|
1072
|
+
* the APIs every one of them holds.
|
|
1073
|
+
*/
|
|
1047
1074
|
export type AdtApi<V extends AdtVariant> = keyof TableOf<V>;
|
|
1048
|
-
/**
|
|
1075
|
+
/**
|
|
1076
|
+
* The type codes variant `V` serves.
|
|
1077
|
+
*
|
|
1078
|
+
* **Union semantics within the shared APIs.** For a union of variants it
|
|
1079
|
+
* reads the tables as one union table: the APIs every one of them serves
|
|
1080
|
+
* (`keyof` a union), and for those the codes *any* of them lists.
|
|
1081
|
+
* {@link AdtCodeOf} is the intersection.
|
|
1082
|
+
*/
|
|
1049
1083
|
export type AdtTypeCodeOf<V extends AdtVariant> = {
|
|
1050
1084
|
[A in AdtApi<V>]: CodesOf<TableOf<V>[A]>;
|
|
1051
1085
|
}[AdtApi<V>];
|
|
@@ -1055,19 +1089,34 @@ export type AdtTypeCode = {
|
|
|
1055
1089
|
}[AdtVariant];
|
|
1056
1090
|
/**
|
|
1057
1091
|
* The APIs of table `T` one code of which performs every operation of `Op` —
|
|
1092
|
+
* for a union of tables, **union semantics within the shared APIs**: an API
|
|
1093
|
+
* every table holds qualifies when one table's entry does (see
|
|
1094
|
+
* {@link AdtPerformingVariantsIn} for the intersecting question) —
|
|
1058
1095
|
* or, for a codeless API, whose entry does. Operations spread across two codes
|
|
1059
1096
|
* do not count: no single object of the API could be asked for all of them.
|
|
1060
1097
|
*/
|
|
1061
1098
|
export type AdtApiWithIn<T, Op extends AdtOperation> = {
|
|
1062
1099
|
[A in keyof T]: EntryHas<T[A], Op> extends true ? A : never;
|
|
1063
1100
|
}[keyof T];
|
|
1064
|
-
/**
|
|
1101
|
+
/**
|
|
1102
|
+
* {@link AdtApiWithIn} over variant `V`'s table — for a union of variants,
|
|
1103
|
+
* **union semantics within the shared APIs**: an API all of them serve
|
|
1104
|
+
* qualifies when one variant's table has it so.
|
|
1105
|
+
*/
|
|
1065
1106
|
export type AdtApiWith<V extends AdtVariant, Op extends AdtOperation> = AdtApiWithIn<TableOf<V>, Op>;
|
|
1066
|
-
/**
|
|
1107
|
+
/**
|
|
1108
|
+
* The codes of variant `V` whose facts list every operation of `Op` — for a
|
|
1109
|
+
* union of variants, **union semantics within the shared APIs**: a code of an
|
|
1110
|
+
* API all of them serve, listed with `Op` by any of them. {@link AdtCodeWith}
|
|
1111
|
+
* is the intersection.
|
|
1112
|
+
*/
|
|
1067
1113
|
export type AdtTypeCodeWith<V extends AdtVariant, Op extends AdtOperation> = {
|
|
1068
1114
|
[A in AdtApi<V>]: CodesWith<TableOf<V>[A], Op>;
|
|
1069
1115
|
}[AdtApi<V>];
|
|
1070
|
-
/**
|
|
1116
|
+
/**
|
|
1117
|
+
* Every kind of any table — the tools' one vocabulary for objects. A union
|
|
1118
|
+
* over all variants by design.
|
|
1119
|
+
*/
|
|
1071
1120
|
export type AdtObjectKind = {
|
|
1072
1121
|
[V in AdtVariant]: {
|
|
1073
1122
|
[A in AdtApi<V>]: TableOf<V>[A] extends {
|
|
@@ -1075,7 +1124,11 @@ export type AdtObjectKind = {
|
|
|
1075
1124
|
} ? K : never;
|
|
1076
1125
|
}[AdtApi<V>];
|
|
1077
1126
|
}[AdtVariant];
|
|
1078
|
-
/**
|
|
1127
|
+
/**
|
|
1128
|
+
* The codes, of any table, whose API reads a source there (`source`) — a union
|
|
1129
|
+
* over all variants by design. A variant's own, intersected for a union of
|
|
1130
|
+
* variants, is `AdtCodeWith<V, 'source'>`.
|
|
1131
|
+
*/
|
|
1079
1132
|
export type AdtSourceTypeCode = {
|
|
1080
1133
|
[V in AdtVariant]: AdtTypeCodeWith<V, 'source'>;
|
|
1081
1134
|
}[AdtVariant];
|
|
@@ -1088,5 +1141,62 @@ export type AdtParentedTypeCode = {
|
|
|
1088
1141
|
[A in AdtApi<V>]: ParentedCodesOf<TableOf<V>[A]>;
|
|
1089
1142
|
}[AdtApi<V>];
|
|
1090
1143
|
}[AdtVariant];
|
|
1144
|
+
type CodesOfTable<T> = {
|
|
1145
|
+
[A in keyof T]: CodesOf<T[A]>;
|
|
1146
|
+
}[keyof T];
|
|
1147
|
+
type CodesWithInTable<T, Op extends AdtOperation> = {
|
|
1148
|
+
[A in keyof T]: CodesWith<T[A], Op>;
|
|
1149
|
+
}[keyof T];
|
|
1150
|
+
/** The variants, among `Tables`' keys, whose table lists code `C`. */
|
|
1151
|
+
type VariantsListingIn<Tables, C> = {
|
|
1152
|
+
[W in keyof Tables]: C extends CodesOfTable<Tables[W]> ? W : never;
|
|
1153
|
+
}[keyof Tables];
|
|
1154
|
+
/** The variants, among `Tables`' keys, whose table lists `Op` for code `C`. */
|
|
1155
|
+
type VariantsWhereCodeHasIn<Tables, C, Op extends AdtOperation> = {
|
|
1156
|
+
[W in keyof Tables]: C extends CodesWithInTable<Tables[W], Op> ? W : never;
|
|
1157
|
+
}[keyof Tables];
|
|
1158
|
+
/**
|
|
1159
|
+
* The variants, among `Tables`' keys, whose table serves API `A`. Each key is
|
|
1160
|
+
* read on its own table, so nothing distributes over a union of tables.
|
|
1161
|
+
*/
|
|
1162
|
+
export type AdtServingVariantsIn<Tables, A extends AdtApiName> = {
|
|
1163
|
+
[W in keyof Tables]: A extends keyof Tables[W] ? W : never;
|
|
1164
|
+
}[keyof Tables];
|
|
1165
|
+
/**
|
|
1166
|
+
* The variants, among `Tables`' keys, one code of whose API `A` lists every
|
|
1167
|
+
* operation of `Op` (or, for a codeless API, whose entry does).
|
|
1168
|
+
*/
|
|
1169
|
+
export type AdtPerformingVariantsIn<Tables, A extends AdtApiName, Op extends AdtOperation> = {
|
|
1170
|
+
[W in keyof Tables]: [A] extends [AdtApiWithIn<Tables[W], Op>] ? W : never;
|
|
1171
|
+
}[keyof Tables];
|
|
1172
|
+
/** The codes any table of `V` lists — the candidates, each table read alone. */
|
|
1173
|
+
type CandidateCodes<Tables, V extends keyof Tables> = {
|
|
1174
|
+
[W in V]: CodesOfTable<Tables[W]>;
|
|
1175
|
+
}[V];
|
|
1176
|
+
/** The codes any table of `V` lists `Op` for, each table read alone. */
|
|
1177
|
+
type CandidateCodesWith<Tables, V extends keyof Tables, Op extends AdtOperation> = {
|
|
1178
|
+
[W in V]: CodesWithInTable<Tables[W], Op>;
|
|
1179
|
+
}[V];
|
|
1180
|
+
/** The codes every table of `V` among `Tables` lists: the intersection. */
|
|
1181
|
+
export type AdtCodeOfIn<Tables, V extends keyof Tables> = {
|
|
1182
|
+
[C in CandidateCodes<Tables, V>]: [V] extends [VariantsListingIn<Tables, C>] ? C : never;
|
|
1183
|
+
}[CandidateCodes<Tables, V>];
|
|
1184
|
+
/** The codes for which every table of `V` among `Tables` lists `Op`. */
|
|
1185
|
+
export type AdtCodeWithIn<Tables, V extends keyof Tables, Op extends AdtOperation> = {
|
|
1186
|
+
[C in CandidateCodesWith<Tables, V, Op>]: [V] extends [
|
|
1187
|
+
VariantsWhereCodeHasIn<Tables, C, Op>
|
|
1188
|
+
] ? C : never;
|
|
1189
|
+
}[CandidateCodesWith<Tables, V, Op>];
|
|
1190
|
+
/**
|
|
1191
|
+
* The codes every variant of `V` lists — for the default modern variant, the
|
|
1192
|
+
* codes both newer tables list. The intersecting counterpart of
|
|
1193
|
+
* {@link AdtTypeCodeOf}.
|
|
1194
|
+
*/
|
|
1195
|
+
export type AdtCodeOf<V extends AdtVariant> = AdtCodeOfIn<IAdtTypeTables, V>;
|
|
1196
|
+
/**
|
|
1197
|
+
* The codes for which every variant of `V` lists every operation of `Op` —
|
|
1198
|
+
* the intersecting counterpart of {@link AdtTypeCodeWith}.
|
|
1199
|
+
*/
|
|
1200
|
+
export type AdtCodeWith<V extends AdtVariant, Op extends AdtOperation> = AdtCodeWithIn<IAdtTypeTables, V, Op>;
|
|
1091
1201
|
export {};
|
|
1092
1202
|
//# sourceMappingURL=AdtTypeTables.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdtTypeTables.d.ts","sourceRoot":"","sources":["../../src/adt/AdtTypeTables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,YAAY,EACZ,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB
|
|
1
|
+
{"version":3,"file":"AdtTypeTables.d.ts","sourceRoot":"","sources":["../../src/adt/AdtTypeTables.ts"],"names":[],"mappings":"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"}
|