@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
|
@@ -23,9 +23,10 @@ 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
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
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, a program run,
|
|
29
|
+
* and a feature toggle created, changed and switched, only here.
|
|
29
30
|
*/
|
|
30
31
|
exports.ADT_TYPES_ONPREM = {
|
|
31
32
|
class: {
|
|
@@ -41,6 +42,7 @@ exports.ADT_TYPES_ONPREM = {
|
|
|
41
42
|
'source',
|
|
42
43
|
'readMetadata',
|
|
43
44
|
'update',
|
|
45
|
+
'updateMetadata',
|
|
44
46
|
'lock',
|
|
45
47
|
'unlock',
|
|
46
48
|
'activate',
|
|
@@ -77,6 +79,7 @@ exports.ADT_TYPES_ONPREM = {
|
|
|
77
79
|
'source',
|
|
78
80
|
'readMetadata',
|
|
79
81
|
'update',
|
|
82
|
+
'updateMetadata',
|
|
80
83
|
'lock',
|
|
81
84
|
'unlock',
|
|
82
85
|
'activate',
|
|
@@ -104,6 +107,7 @@ exports.ADT_TYPES_ONPREM = {
|
|
|
104
107
|
'source',
|
|
105
108
|
'readMetadata',
|
|
106
109
|
'update',
|
|
110
|
+
'updateMetadata',
|
|
107
111
|
'lock',
|
|
108
112
|
'unlock',
|
|
109
113
|
'activate',
|
|
@@ -195,6 +199,7 @@ exports.ADT_TYPES_ONPREM = {
|
|
|
195
199
|
'source',
|
|
196
200
|
'readMetadata',
|
|
197
201
|
'update',
|
|
202
|
+
'updateMetadata',
|
|
198
203
|
'lock',
|
|
199
204
|
'unlock',
|
|
200
205
|
'activate',
|
|
@@ -276,6 +281,7 @@ exports.ADT_TYPES_ONPREM = {
|
|
|
276
281
|
'source',
|
|
277
282
|
'readMetadata',
|
|
278
283
|
'update',
|
|
284
|
+
'updateMetadata',
|
|
279
285
|
'lock',
|
|
280
286
|
'unlock',
|
|
281
287
|
'activate',
|
|
@@ -956,7 +962,23 @@ exports.ADT_TYPES_ONPREM = {
|
|
|
956
962
|
/**
|
|
957
963
|
* What the library serves on **ABAP cloud** (measured on the BTP trial), API by
|
|
958
964
|
* API. The same operations as {@link ADT_TYPES_ONPREM}, and this release's
|
|
959
|
-
* name lengths
|
|
965
|
+
* name lengths, but for a program (`PROG/P`), an include (`PROG/I`) and a
|
|
966
|
+
* feature toggle (`FTG2/FT`), each only read here. The cloud has no program
|
|
967
|
+
* or include of one's own — its discovery gives neither collection an
|
|
968
|
+
* `app:accept`, and the create is refused (`403`, S_DEVELOP) — so they list
|
|
969
|
+
* what a delivered one answers (measured): the reads, the check, the versions,
|
|
970
|
+
* the deletion check, the enhancement reads and, for a program, the ABAP Unit
|
|
971
|
+
* runs. Its transport is `404`, and running or profiling it is refused.
|
|
972
|
+
*
|
|
973
|
+
* A read is listed where the release's discovery has its endpoint. An
|
|
974
|
+
* operation that changes an object (`create`, `update`, `updateMetadata`,
|
|
975
|
+
* `lock`, `unlock`, `activate`, `delete`, a feature toggle's switch, and the
|
|
976
|
+
* `validate` that prepares a create) is listed where the release offers it —
|
|
977
|
+
* its discovery, and a measurement — and left out where a measurement on the
|
|
978
|
+
* release refused it: a feature toggle (`FTG2/FT`) is only read here, while a
|
|
979
|
+
* function include (`FUGR/I`) is created in its group. `typestructure`'s
|
|
980
|
+
* `USER_AUTHORIZATIONS` says why a measuring user was refused, for that user
|
|
981
|
+
* on that system; it explains the table, it does not fill it.
|
|
960
982
|
*/
|
|
961
983
|
exports.ADT_TYPES_CLOUD = {
|
|
962
984
|
class: {
|
|
@@ -972,6 +994,7 @@ exports.ADT_TYPES_CLOUD = {
|
|
|
972
994
|
'source',
|
|
973
995
|
'readMetadata',
|
|
974
996
|
'update',
|
|
997
|
+
'updateMetadata',
|
|
975
998
|
'lock',
|
|
976
999
|
'unlock',
|
|
977
1000
|
'activate',
|
|
@@ -1008,6 +1031,7 @@ exports.ADT_TYPES_CLOUD = {
|
|
|
1008
1031
|
'source',
|
|
1009
1032
|
'readMetadata',
|
|
1010
1033
|
'update',
|
|
1034
|
+
'updateMetadata',
|
|
1011
1035
|
'lock',
|
|
1012
1036
|
'unlock',
|
|
1013
1037
|
'activate',
|
|
@@ -1030,24 +1054,14 @@ exports.ADT_TYPES_CLOUD = {
|
|
|
1030
1054
|
parent: null,
|
|
1031
1055
|
nameMaxLength: 40,
|
|
1032
1056
|
operations: [
|
|
1033
|
-
'create',
|
|
1034
1057
|
'read',
|
|
1035
1058
|
'source',
|
|
1036
1059
|
'readMetadata',
|
|
1037
|
-
'update',
|
|
1038
|
-
'lock',
|
|
1039
|
-
'unlock',
|
|
1040
|
-
'activate',
|
|
1041
1060
|
'check',
|
|
1042
|
-
'validate',
|
|
1043
1061
|
'versions',
|
|
1044
1062
|
'deletionCheck',
|
|
1045
|
-
'delete',
|
|
1046
|
-
'transport',
|
|
1047
1063
|
'readEnhancementElements',
|
|
1048
1064
|
'readEnhancementOptions',
|
|
1049
|
-
'run',
|
|
1050
|
-
'profile',
|
|
1051
1065
|
'unitTestRun',
|
|
1052
1066
|
'unitTestRunSync',
|
|
1053
1067
|
'unitTestStatus',
|
|
@@ -1065,17 +1079,10 @@ exports.ADT_TYPES_CLOUD = {
|
|
|
1065
1079
|
parent: null,
|
|
1066
1080
|
nameMaxLength: 40,
|
|
1067
1081
|
operations: [
|
|
1068
|
-
'create',
|
|
1069
1082
|
'read',
|
|
1070
1083
|
'source',
|
|
1071
1084
|
'readMetadata',
|
|
1072
|
-
'update',
|
|
1073
|
-
'lock',
|
|
1074
|
-
'unlock',
|
|
1075
|
-
'activate',
|
|
1076
|
-
'validate',
|
|
1077
1085
|
'deletionCheck',
|
|
1078
|
-
'delete',
|
|
1079
1086
|
'readEnhancementElements',
|
|
1080
1087
|
'readEnhancementOptions',
|
|
1081
1088
|
],
|
|
@@ -1126,6 +1133,7 @@ exports.ADT_TYPES_CLOUD = {
|
|
|
1126
1133
|
'source',
|
|
1127
1134
|
'readMetadata',
|
|
1128
1135
|
'update',
|
|
1136
|
+
'updateMetadata',
|
|
1129
1137
|
'lock',
|
|
1130
1138
|
'unlock',
|
|
1131
1139
|
'activate',
|
|
@@ -1207,6 +1215,7 @@ exports.ADT_TYPES_CLOUD = {
|
|
|
1207
1215
|
'source',
|
|
1208
1216
|
'readMetadata',
|
|
1209
1217
|
'update',
|
|
1218
|
+
'updateMetadata',
|
|
1210
1219
|
'lock',
|
|
1211
1220
|
'unlock',
|
|
1212
1221
|
'activate',
|
|
@@ -1661,21 +1670,11 @@ exports.ADT_TYPES_CLOUD = {
|
|
|
1661
1670
|
parent: null,
|
|
1662
1671
|
nameMaxLength: 30,
|
|
1663
1672
|
operations: [
|
|
1664
|
-
'create',
|
|
1665
1673
|
'read',
|
|
1666
1674
|
'source',
|
|
1667
1675
|
'readMetadata',
|
|
1668
|
-
'update',
|
|
1669
|
-
'updateMetadata',
|
|
1670
|
-
'lock',
|
|
1671
|
-
'unlock',
|
|
1672
|
-
'activate',
|
|
1673
1676
|
'check',
|
|
1674
|
-
'validate',
|
|
1675
1677
|
'deletionCheck',
|
|
1676
|
-
'delete',
|
|
1677
|
-
'switchOn',
|
|
1678
|
-
'switchOff',
|
|
1679
1678
|
'getRuntimeState',
|
|
1680
1679
|
'checkState',
|
|
1681
1680
|
],
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The codes the cross-cutting utilities take beyond the API tables, per
|
|
3
|
+
* release variant: a code no API of the library serves, but that a group
|
|
4
|
+
* operation or a repository read addresses (`VIEW/DV`), and a code whose API
|
|
5
|
+
* a variant lacks or does not list the operation for, that a utility still
|
|
6
|
+
* sends (`DEVC/K`).
|
|
7
|
+
*
|
|
8
|
+
* **Why a table of its own, not an API entry.** An entry in `ADT_TYPES_*`
|
|
9
|
+
* makes a factory callable on that variant and an operation part of
|
|
10
|
+
* `AdtOperation`. A package entry on 7.40 would gate `getPackage()` open
|
|
11
|
+
* where every package member is refused, and a new operation word would
|
|
12
|
+
* widen the closed vocabulary a 21.0.0 consumer maps exhaustively. These codes
|
|
13
|
+
* belong to `getUtils()`, which is no entry (ruling R5), so they are typed
|
|
14
|
+
* where its members read them.
|
|
15
|
+
*
|
|
16
|
+
* Constants and types only, like the API tables.
|
|
17
|
+
*/
|
|
18
|
+
import type { AdtTypeCode, AdtVariant } from './AdtTypeTables';
|
|
19
|
+
import type { AdtCollection, AdtTypeEvidence } from './IAdtTypeTable';
|
|
20
|
+
/** What a utility of `getUtils()` does with a code of these tables. */
|
|
21
|
+
export type AdtUtilityOperation =
|
|
22
|
+
/** `activateObjectsGroup` */
|
|
23
|
+
'groupActivation'
|
|
24
|
+
/** `deleteObjectsGroup` */
|
|
25
|
+
| 'groupDeletion'
|
|
26
|
+
/** `getWhereUsed`, `getWhereUsedScope` */
|
|
27
|
+
| 'whereUsed'
|
|
28
|
+
/** `fetchNodeStructure` */
|
|
29
|
+
| 'nodeStructure';
|
|
30
|
+
/** What a utility table says about one code. */
|
|
31
|
+
export interface IAdtUtilityCodeFacts<R extends string> {
|
|
32
|
+
/** What the utilities do with it, at least one. */
|
|
33
|
+
readonly operations: readonly [AdtUtilityOperation, ...AdtUtilityOperation[]];
|
|
34
|
+
/**
|
|
35
|
+
* Whether a live run measured these operations answered. `false` is a
|
|
36
|
+
* request the library sends and nothing has proved.
|
|
37
|
+
*/
|
|
38
|
+
readonly measured: boolean;
|
|
39
|
+
/** The corpus case that lists the code on this release. */
|
|
40
|
+
readonly evidence: AdtTypeEvidence<R>;
|
|
41
|
+
/** The collection its objects are addressed under, where the code has no API. */
|
|
42
|
+
readonly collection?: AdtCollection;
|
|
43
|
+
}
|
|
44
|
+
/** What a utility table `satisfies`. */
|
|
45
|
+
export type AdtUtilityCodeTable<R extends string> = {
|
|
46
|
+
readonly [code: string]: IAdtUtilityCodeFacts<R>;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* On **S/4HANA 2025**: `VIEW/DV`, a DDIC database view, which group
|
|
50
|
+
* activation, group deletion and where-used address under
|
|
51
|
+
* `/sap/bc/adt/ddic/views` and no API serves; and `DEVC/K` in a group
|
|
52
|
+
* activation, which the API table lists no `activate` for — sent, unmeasured.
|
|
53
|
+
*/
|
|
54
|
+
export declare const ADT_UTILITY_CODES_ONPREM: {
|
|
55
|
+
readonly 'VIEW/DV': {
|
|
56
|
+
readonly operations: readonly ["groupActivation", "groupDeletion", "whereUsed"];
|
|
57
|
+
readonly measured: false;
|
|
58
|
+
readonly evidence: "system-description-s4-2025--07-typestructure";
|
|
59
|
+
readonly collection: "/sap/bc/adt/ddic/views";
|
|
60
|
+
};
|
|
61
|
+
readonly 'DEVC/K': {
|
|
62
|
+
readonly operations: readonly ["groupActivation"];
|
|
63
|
+
readonly measured: false;
|
|
64
|
+
readonly evidence: "system-description-s4-2025--07-typestructure";
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
/** On **ABAP cloud**: the same as {@link ADT_UTILITY_CODES_ONPREM}. */
|
|
68
|
+
export declare const ADT_UTILITY_CODES_CLOUD: {
|
|
69
|
+
readonly 'VIEW/DV': {
|
|
70
|
+
readonly operations: readonly ["groupActivation", "groupDeletion", "whereUsed"];
|
|
71
|
+
readonly measured: false;
|
|
72
|
+
readonly evidence: "system-description-abap-cloud--07-typestructure";
|
|
73
|
+
readonly collection: "/sap/bc/adt/ddic/views";
|
|
74
|
+
};
|
|
75
|
+
readonly 'DEVC/K': {
|
|
76
|
+
readonly operations: readonly ["groupActivation"];
|
|
77
|
+
readonly measured: false;
|
|
78
|
+
readonly evidence: "system-description-abap-cloud--07-typestructure";
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* On **SAP_BASIS 7.40 SP04**: `VIEW/DV` as on the newer releases, and
|
|
83
|
+
* `DEVC/K` in `fetchNodeStructure` — a package's contents are a node
|
|
84
|
+
* structure of the package, measured served (the legacy `UtilsReaders`
|
|
85
|
+
* cycle, `fetchNodeStructure('DEVC/K', '$TMP')`), though 7.40's API table has
|
|
86
|
+
* no package entry.
|
|
87
|
+
*/
|
|
88
|
+
export declare const ADT_UTILITY_CODES_BASIS_740: {
|
|
89
|
+
readonly 'VIEW/DV': {
|
|
90
|
+
readonly operations: readonly ["groupActivation", "groupDeletion", "whereUsed"];
|
|
91
|
+
readonly measured: false;
|
|
92
|
+
readonly evidence: "system-description-basis-740--07-typestructure";
|
|
93
|
+
readonly collection: "/sap/bc/adt/ddic/views";
|
|
94
|
+
};
|
|
95
|
+
readonly 'DEVC/K': {
|
|
96
|
+
readonly operations: readonly ["nodeStructure"];
|
|
97
|
+
readonly measured: true;
|
|
98
|
+
readonly evidence: "system-description-basis-740--07-typestructure";
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
/** The utility table of each variant, by its name. */
|
|
102
|
+
export interface IAdtUtilityCodeTables {
|
|
103
|
+
readonly onprem: typeof ADT_UTILITY_CODES_ONPREM;
|
|
104
|
+
readonly cloud: typeof ADT_UTILITY_CODES_CLOUD;
|
|
105
|
+
readonly basis740: typeof ADT_UTILITY_CODES_BASIS_740;
|
|
106
|
+
}
|
|
107
|
+
type UtilityCodesWithIn<T, Op extends AdtUtilityOperation> = {
|
|
108
|
+
[C in keyof T]: T[C] extends {
|
|
109
|
+
readonly operations: readonly (infer O)[];
|
|
110
|
+
} ? [Op] extends [O] ? C : never : never;
|
|
111
|
+
}[keyof T] & string;
|
|
112
|
+
type VariantsWhereUtilityHas<C, Op extends AdtUtilityOperation> = {
|
|
113
|
+
[W in AdtVariant]: C extends UtilityCodesWithIn<IAdtUtilityCodeTables[W], Op> ? W : never;
|
|
114
|
+
}[AdtVariant];
|
|
115
|
+
/**
|
|
116
|
+
* The codes for which every variant of `V` lists utility operation `Op` —
|
|
117
|
+
* intersecting, like `AdtCodeWith`: the default modern variant gets what both
|
|
118
|
+
* newer tables list.
|
|
119
|
+
*/
|
|
120
|
+
export type AdtUtilityCodeWith<V extends AdtVariant, Op extends AdtUtilityOperation> = Extract<{
|
|
121
|
+
[C in {
|
|
122
|
+
[W in V]: UtilityCodesWithIn<IAdtUtilityCodeTables[W], Op>;
|
|
123
|
+
}[V]]: [V] extends [VariantsWhereUtilityHas<C, Op>] ? C : never;
|
|
124
|
+
}[{
|
|
125
|
+
[W in V]: UtilityCodesWithIn<IAdtUtilityCodeTables[W], Op>;
|
|
126
|
+
}[V]], AdtUtilityCode>;
|
|
127
|
+
/** Every code a utility table holds: a code of the API tables, or a group-only one. */
|
|
128
|
+
export type AdtUtilityCode = AdtTypeCode | AdtGroupOnlyCode;
|
|
129
|
+
/**
|
|
130
|
+
* The codes the utilities address that no API table holds — `VIEW/DV`. A
|
|
131
|
+
* group-only code: it reaches a group operation or where-used, never a
|
|
132
|
+
* factory.
|
|
133
|
+
*/
|
|
134
|
+
export type AdtGroupOnlyCode = Exclude<{
|
|
135
|
+
[W in AdtVariant]: keyof IAdtUtilityCodeTables[W];
|
|
136
|
+
}[AdtVariant], AdtTypeCode>;
|
|
137
|
+
/** The group-only codes every variant of `V` lists. */
|
|
138
|
+
export type AdtGroupOnlyCodeOf<V extends AdtVariant> = {
|
|
139
|
+
[C in AdtGroupOnlyCode]: [V] extends [
|
|
140
|
+
{
|
|
141
|
+
[W in AdtVariant]: C extends keyof IAdtUtilityCodeTables[W] ? W : never;
|
|
142
|
+
}[AdtVariant]
|
|
143
|
+
] ? C : never;
|
|
144
|
+
}[AdtGroupOnlyCode];
|
|
145
|
+
export {};
|
|
146
|
+
//# sourceMappingURL=AdtUtilityCodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdtUtilityCodes.d.ts","sourceRoot":"","sources":["../../src/adt/AdtUtilityCodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEtE,uEAAuE;AACvE,MAAM,MAAM,mBAAmB;AAC7B,6BAA6B;AAC3B,iBAAiB;AACnB,2BAA2B;GACzB,eAAe;AACjB,0CAA0C;GACxC,WAAW;AACb,2BAA2B;GACzB,eAAe,CAAC;AAEpB,gDAAgD;AAChD,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,MAAM;IACpD,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAAC,CAAC;IAC9E;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACtC,iFAAiF;IACjF,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;CACrC;AAED,wCAAwC;AACxC,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI;IAClD,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;CAClD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;CAYc,CAAC;AAEpD,uEAAuE;AACvE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;CAYkB,CAAC;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;CAYa,CAAC;AAEtD,sDAAsD;AACtD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,wBAAwB,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,OAAO,uBAAuB,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,OAAO,2BAA2B,CAAC;CACvD;AAED,KAAK,kBAAkB,CAAC,CAAC,EAAE,EAAE,SAAS,mBAAmB,IAAI;KAC1D,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;KAC3C,GACG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GACd,CAAC,GACD,KAAK,GACP,KAAK;CACV,CAAC,MAAM,CAAC,CAAC,GACR,MAAM,CAAC;AAET,KAAK,uBAAuB,CAAC,CAAC,EAAE,EAAE,SAAS,mBAAmB,IAAI;KAC/D,CAAC,IAAI,UAAU,GAAG,CAAC,SAAS,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GACzE,CAAC,GACD,KAAK;CACV,CAAC,UAAU,CAAC,CAAC;AAEd;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAC5B,CAAC,SAAS,UAAU,EACpB,EAAE,SAAS,mBAAmB,IAC5B,OAAO,CACT;KACG,CAAC,IAAI;SACH,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;KAC3D,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAChE,CAAC;KAAG,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;CAAE,CAAC,CAAC,CAAC,CAAC,EACpE,cAAc,CACf,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAE5D;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CACpC;KAAG,CAAC,IAAI,UAAU,GAAG,MAAM,qBAAqB,CAAC,CAAC,CAAC;CAAE,CAAC,UAAU,CAAC,EACjE,WAAW,CACZ,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,UAAU,IAAI;KACpD,CAAC,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAC,SAAS;QACnC;aACG,CAAC,IAAI,UAAU,GAAG,CAAC,SAAS,MAAM,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;SACxE,CAAC,UAAU,CAAC;KACd,GACG,CAAC,GACD,KAAK;CACV,CAAC,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The codes the cross-cutting utilities take beyond the API tables, per
|
|
4
|
+
* release variant: a code no API of the library serves, but that a group
|
|
5
|
+
* operation or a repository read addresses (`VIEW/DV`), and a code whose API
|
|
6
|
+
* a variant lacks or does not list the operation for, that a utility still
|
|
7
|
+
* sends (`DEVC/K`).
|
|
8
|
+
*
|
|
9
|
+
* **Why a table of its own, not an API entry.** An entry in `ADT_TYPES_*`
|
|
10
|
+
* makes a factory callable on that variant and an operation part of
|
|
11
|
+
* `AdtOperation`. A package entry on 7.40 would gate `getPackage()` open
|
|
12
|
+
* where every package member is refused, and a new operation word would
|
|
13
|
+
* widen the closed vocabulary a 21.0.0 consumer maps exhaustively. These codes
|
|
14
|
+
* belong to `getUtils()`, which is no entry (ruling R5), so they are typed
|
|
15
|
+
* where its members read them.
|
|
16
|
+
*
|
|
17
|
+
* Constants and types only, like the API tables.
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.ADT_UTILITY_CODES_BASIS_740 = exports.ADT_UTILITY_CODES_CLOUD = exports.ADT_UTILITY_CODES_ONPREM = void 0;
|
|
21
|
+
/**
|
|
22
|
+
* On **S/4HANA 2025**: `VIEW/DV`, a DDIC database view, which group
|
|
23
|
+
* activation, group deletion and where-used address under
|
|
24
|
+
* `/sap/bc/adt/ddic/views` and no API serves; and `DEVC/K` in a group
|
|
25
|
+
* activation, which the API table lists no `activate` for — sent, unmeasured.
|
|
26
|
+
*/
|
|
27
|
+
exports.ADT_UTILITY_CODES_ONPREM = {
|
|
28
|
+
'VIEW/DV': {
|
|
29
|
+
operations: ['groupActivation', 'groupDeletion', 'whereUsed'],
|
|
30
|
+
measured: false,
|
|
31
|
+
evidence: 'system-description-s4-2025--07-typestructure',
|
|
32
|
+
collection: '/sap/bc/adt/ddic/views',
|
|
33
|
+
},
|
|
34
|
+
'DEVC/K': {
|
|
35
|
+
operations: ['groupActivation'],
|
|
36
|
+
measured: false,
|
|
37
|
+
evidence: 'system-description-s4-2025--07-typestructure',
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
/** On **ABAP cloud**: the same as {@link ADT_UTILITY_CODES_ONPREM}. */
|
|
41
|
+
exports.ADT_UTILITY_CODES_CLOUD = {
|
|
42
|
+
'VIEW/DV': {
|
|
43
|
+
operations: ['groupActivation', 'groupDeletion', 'whereUsed'],
|
|
44
|
+
measured: false,
|
|
45
|
+
evidence: 'system-description-abap-cloud--07-typestructure',
|
|
46
|
+
collection: '/sap/bc/adt/ddic/views',
|
|
47
|
+
},
|
|
48
|
+
'DEVC/K': {
|
|
49
|
+
operations: ['groupActivation'],
|
|
50
|
+
measured: false,
|
|
51
|
+
evidence: 'system-description-abap-cloud--07-typestructure',
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* On **SAP_BASIS 7.40 SP04**: `VIEW/DV` as on the newer releases, and
|
|
56
|
+
* `DEVC/K` in `fetchNodeStructure` — a package's contents are a node
|
|
57
|
+
* structure of the package, measured served (the legacy `UtilsReaders`
|
|
58
|
+
* cycle, `fetchNodeStructure('DEVC/K', '$TMP')`), though 7.40's API table has
|
|
59
|
+
* no package entry.
|
|
60
|
+
*/
|
|
61
|
+
exports.ADT_UTILITY_CODES_BASIS_740 = {
|
|
62
|
+
'VIEW/DV': {
|
|
63
|
+
operations: ['groupActivation', 'groupDeletion', 'whereUsed'],
|
|
64
|
+
measured: false,
|
|
65
|
+
evidence: 'system-description-basis-740--07-typestructure',
|
|
66
|
+
collection: '/sap/bc/adt/ddic/views',
|
|
67
|
+
},
|
|
68
|
+
'DEVC/K': {
|
|
69
|
+
operations: ['nodeStructure'],
|
|
70
|
+
measured: true,
|
|
71
|
+
evidence: 'system-description-basis-740--07-typestructure',
|
|
72
|
+
},
|
|
73
|
+
};
|
package/dist/adt/IAdtShared.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared types for cross-cutting ADT operations
|
|
3
3
|
*/
|
|
4
|
-
import type { AdtParentedTypeCode, AdtTypeCode } from './AdtTypeTables';
|
|
4
|
+
import type { AdtCodeOf, AdtCodeWith, AdtModernVariant, AdtParentedTypeCode, AdtTypeCode, AdtVariant } from './AdtTypeTables';
|
|
5
|
+
import type { AdtGroupOnlyCode, AdtUtilityCodeWith } from './AdtUtilityCodes';
|
|
5
6
|
/**
|
|
6
7
|
* An object as an answer named it: its type code when the tables know it, the
|
|
7
8
|
* code as it came when they do not.
|
|
@@ -36,8 +37,12 @@ export type IAdtAnsweredObject = {
|
|
|
36
37
|
* code known only as `AdtTypeCode` compiles, and an interface can extend it.
|
|
37
38
|
* A union of one member per code would do neither — it exceeds the 25
|
|
38
39
|
* combinations TypeScript checks an object literal against.
|
|
40
|
+
*
|
|
41
|
+
* **Since 22.0.0 `C` may be a group-only code** (`IObjectReference<'VIEW/DV'>`):
|
|
42
|
+
* the constraint is wider, the default is not, so `IObjectReference` alone is
|
|
43
|
+
* what it was in 21.0.0.
|
|
39
44
|
*/
|
|
40
|
-
export type IObjectReference<C extends AdtTypeCode = AdtTypeCode> = {
|
|
45
|
+
export type IObjectReference<C extends AdtTypeCode | AdtGroupOnlyCode = AdtTypeCode> = {
|
|
41
46
|
/** Object name, `adtcore:name`. */
|
|
42
47
|
name: string;
|
|
43
48
|
/** ADT object type code, e.g. `'CLAS/OC'`: a code of the tables. */
|
|
@@ -100,16 +105,16 @@ export interface IGetDiscoveryParams {
|
|
|
100
105
|
/**
|
|
101
106
|
* Where-used scope parameters (Step 1: get available object types)
|
|
102
107
|
*/
|
|
103
|
-
export interface IGetWhereUsedScopeParams {
|
|
108
|
+
export interface IGetWhereUsedScopeParams<C extends AdtTypeCode | AdtGroupOnlyCode = AdtTypeCode> {
|
|
104
109
|
object_name: string;
|
|
105
|
-
object_type:
|
|
110
|
+
object_type: C;
|
|
106
111
|
}
|
|
107
112
|
/**
|
|
108
113
|
* Where-used parameters (Step 2: execute search)
|
|
109
114
|
*/
|
|
110
|
-
export interface IGetWhereUsedParams {
|
|
115
|
+
export interface IGetWhereUsedParams<C extends AdtTypeCode | AdtGroupOnlyCode = AdtTypeCode> {
|
|
111
116
|
object_name: string;
|
|
112
|
-
object_type:
|
|
117
|
+
object_type: C;
|
|
113
118
|
/**
|
|
114
119
|
* Optional: scope XML from getWhereUsedScope() with user-modified selections.
|
|
115
120
|
* When omitted, the search runs unscoped (SAP's default scope) — getWhereUsed()
|
|
@@ -135,4 +140,53 @@ export interface IGetVirtualFoldersContentsParams {
|
|
|
135
140
|
withVersions?: boolean;
|
|
136
141
|
ignoreShortDescriptions?: boolean;
|
|
137
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* The codes a group activation activates on every variant of `V`: those whose
|
|
145
|
+
* API lists `activate`, and the utility codes listing `groupActivation`
|
|
146
|
+
* (`VIEW/DV`; `DEVC/K` on the newer releases, unmeasured).
|
|
147
|
+
*/
|
|
148
|
+
export type AdtGroupActivationCode<V extends AdtVariant = AdtModernVariant> = AdtCodeWith<V, 'activate'> | AdtUtilityCodeWith<V, 'groupActivation'>;
|
|
149
|
+
/** The codes a group deletion check asks about: those listing `deletionCheck`. */
|
|
150
|
+
export type AdtGroupDeletionCheckCode<V extends AdtVariant = AdtModernVariant> = AdtCodeWith<V, 'deletionCheck'>;
|
|
151
|
+
/**
|
|
152
|
+
* The codes a group deletion deletes: those listing `delete`, but a message of
|
|
153
|
+
* a message class (`MSAG/NN`), which has no address of its own — it is a row
|
|
154
|
+
* of its class — and the utility codes listing `groupDeletion` (`VIEW/DV`).
|
|
155
|
+
*/
|
|
156
|
+
export type AdtGroupDeletionCode<V extends AdtVariant = AdtModernVariant> = Exclude<AdtCodeWith<V, 'delete'>, 'MSAG/NN'> | AdtUtilityCodeWith<V, 'groupDeletion'>;
|
|
157
|
+
/**
|
|
158
|
+
* The codes where-used is asked of: every code of `V` but a function include,
|
|
159
|
+
* whose group the where-used request has no field for, and a message class
|
|
160
|
+
* message, which has no address of its own; and the utility codes listing
|
|
161
|
+
* `whereUsed` (`VIEW/DV`).
|
|
162
|
+
*/
|
|
163
|
+
export type AdtWhereUsedCode<V extends AdtVariant = AdtModernVariant> = Exclude<AdtCodeOf<V>, 'FUGR/I' | 'MSAG/NN'> | AdtUtilityCodeWith<V, 'whereUsed'>;
|
|
164
|
+
/**
|
|
165
|
+
* A reference to one of the codes `C`, with `parentName` required for each
|
|
166
|
+
* code that has a parent API (`FUGR/FF`, `FUGR/I`) and optional for the rest.
|
|
167
|
+
*
|
|
168
|
+
* Per code, but not as a union of one member per code: TypeScript relates an
|
|
169
|
+
* object literal whose `type` is itself a union to such a union only up to 25
|
|
170
|
+
* combinations, and a code set runs past it. So it is one reference over all
|
|
171
|
+
* of `C`, joined with "names its parent, or is a code without one" — a literal
|
|
172
|
+
* naming `parentName` matches the first without the `type` being split, and
|
|
173
|
+
* one without it must have a code of the second.
|
|
174
|
+
*/
|
|
175
|
+
export type IAdtCodedReference<C extends AdtTypeCode | AdtGroupOnlyCode> = [
|
|
176
|
+
Extract<C, AdtParentedTypeCode>
|
|
177
|
+
] extends [never] ? IObjectReference<C> : IObjectReference<C> & ({
|
|
178
|
+
parentName: string;
|
|
179
|
+
} | {
|
|
180
|
+
type: Exclude<C, AdtParentedTypeCode>;
|
|
181
|
+
});
|
|
182
|
+
/** What `activateObjectsGroup` is given, per object, on variant `V`. */
|
|
183
|
+
export type IAdtGroupActivationReference<V extends AdtVariant = AdtModernVariant> = IAdtCodedReference<AdtGroupActivationCode<V>>;
|
|
184
|
+
/** What `checkDeletionGroup` is given, per object, on variant `V`. */
|
|
185
|
+
export type IAdtGroupDeletionCheckReference<V extends AdtVariant = AdtModernVariant> = IAdtCodedReference<AdtGroupDeletionCheckCode<V>>;
|
|
186
|
+
/** What `deleteObjectsGroup` is given, per object, on variant `V`. */
|
|
187
|
+
export type IAdtGroupDeletionReference<V extends AdtVariant = AdtModernVariant> = IAdtCodedReference<AdtGroupDeletionCode<V>>;
|
|
188
|
+
/** What where-used is given on variant `V`. */
|
|
189
|
+
export type IAdtWhereUsedParamsOf<V extends AdtVariant = AdtModernVariant> = IGetWhereUsedParams<AdtWhereUsedCode<V>>;
|
|
190
|
+
/** What the where-used scope is given on variant `V`. */
|
|
191
|
+
export type IAdtWhereUsedScopeParamsOf<V extends AdtVariant = AdtModernVariant> = IGetWhereUsedScopeParams<AdtWhereUsedCode<V>>;
|
|
138
192
|
//# sourceMappingURL=IAdtShared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IAdtShared.d.ts","sourceRoot":"","sources":["../../src/adt/IAdtShared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"IAdtShared.d.ts","sourceRoot":"","sources":["../../src/adt/IAdtShared.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,11 +98,11 @@
|
|
|
98
98
|
* shape of the thing rather than a finished one.
|
|
99
99
|
*/
|
|
100
100
|
import type { IReadOptions } from '../shared/IReadOptions';
|
|
101
|
-
import type { AdtSourceTypeCode, AdtTypeCode } from './AdtTypeTables';
|
|
101
|
+
import type { AdtModernVariant, AdtSourceTypeCode, AdtTypeCode, AdtVariant } from './AdtTypeTables';
|
|
102
102
|
import type { IAdtHeaders } from './IAdtContentTypes';
|
|
103
103
|
import type { IAdtAnalyseOptions, IAnalyse } from './IAdtObject';
|
|
104
104
|
import type { IAdtError, IAdtResponse, IResultStrategy } from './IAdtResponse';
|
|
105
|
-
import type { IGetDiscoveryParams, IGetSqlQueryParams, IGetTableContentsParams, IGetVirtualFoldersContentsParams, IGetWhereUsedParams, IGetWhereUsedScopeParams, IObjectReference, ISearchObjectsParams } from './IAdtShared';
|
|
105
|
+
import type { IAdtGroupActivationReference, IAdtGroupDeletionCheckReference, IAdtGroupDeletionReference, IAdtWhereUsedParamsOf, IAdtWhereUsedScopeParamsOf, IGetDiscoveryParams, IGetSqlQueryParams, IGetTableContentsParams, IGetVirtualFoldersContentsParams, IGetWhereUsedParams, IGetWhereUsedScopeParams, IObjectReference, ISearchObjectsParams } from './IAdtShared';
|
|
106
106
|
/**
|
|
107
107
|
* `/sap/bc/adt/repository/informationsystem/*` — everything ADT answers about
|
|
108
108
|
* *where* something is: what exists, what uses it, and what the repository will
|
|
@@ -498,6 +498,13 @@ export interface IUtilResults {
|
|
|
498
498
|
readonly contents: IResultStrategy<unknown>;
|
|
499
499
|
/** The discovery catalogue — `/discovery`. */
|
|
500
500
|
readonly discovery: IResultStrategy<unknown>;
|
|
501
|
+
/**
|
|
502
|
+
* What `POST /repository/typestructure` answers — the system's object types
|
|
503
|
+
* ({@link IAdtTypeStructure}). Optional, so a set written for 21.0.0
|
|
504
|
+
* still is one; an implementation offering the
|
|
505
|
+
* member that wants its reading injected requires it.
|
|
506
|
+
*/
|
|
507
|
+
readonly typeStructure?: IResultStrategy<unknown>;
|
|
501
508
|
/** An object's source — `<objectUri>/source/main`. */
|
|
502
509
|
readonly source: IResultStrategy<unknown>;
|
|
503
510
|
/** An object's metadata document, without its source. */
|
|
@@ -510,4 +517,91 @@ export interface IUtilResults {
|
|
|
510
517
|
*/
|
|
511
518
|
readonly objectProperties: IResultStrategy<unknown>;
|
|
512
519
|
}
|
|
520
|
+
/**
|
|
521
|
+
* `POST /sap/bc/adt/repository/typestructure` — every object type the system
|
|
522
|
+
* knows, with its code, label, category, `URI_TEMPLATE`, parent type, name
|
|
523
|
+
* length and capabilities. No body; the Accept and Content-Type are the
|
|
524
|
+
* caller's, as for every member whose request sets both. Recorded on S/4HANA
|
|
525
|
+
* 2025, ABAP cloud and SAP_BASIS 7.40 SP04, each answering `200`. It is what
|
|
526
|
+
* the conformance check of the ADT type tables reads.
|
|
527
|
+
*
|
|
528
|
+
* **Its own atom, not part of {@link IAdtInformationSystem}**, like
|
|
529
|
+
* {@link IAdtObjectProperties}: adding it to a composite would make every
|
|
530
|
+
* implementation of that composite stop compiling over a member it never
|
|
531
|
+
* claimed. Added in 22.0.0; its reading is `IUtilResults.typeStructure`.
|
|
532
|
+
*/
|
|
533
|
+
export interface IAdtTypeStructure<TTypeStructure> {
|
|
534
|
+
/** The system's object types. One request. */
|
|
535
|
+
getTypeStructure<E extends IAdtError>(options: {
|
|
536
|
+
headers: IAdtHeaders;
|
|
537
|
+
} & IAdtAnalyseOptions<E> & {
|
|
538
|
+
analyse: IAnalyse<E>;
|
|
539
|
+
}): Promise<IAdtResponse<TTypeStructure, E>>;
|
|
540
|
+
getTypeStructure(options: {
|
|
541
|
+
headers: IAdtHeaders;
|
|
542
|
+
} & IAdtAnalyseOptions): Promise<IAdtResponse<TTypeStructure>>;
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* {@link IAdtGroupLifecycle}'s three group members, typed per operation and
|
|
546
|
+
* variant: each takes only the references its request serves —
|
|
547
|
+
* {@link IAdtGroupActivationReference}, {@link IAdtGroupDeletionCheckReference},
|
|
548
|
+
* {@link IAdtGroupDeletionReference} — so a message class is no activation
|
|
549
|
+
* object, a function module names its group, and `VIEW/DV` is accepted.
|
|
550
|
+
*
|
|
551
|
+
* **Beside the 21.0.0 atom, not in place of it.** The members have the same
|
|
552
|
+
* names; an implementation declaring both offers both sets of signatures, and a
|
|
553
|
+
* caller passing `IObjectReference[]` keeps compiling against the old one.
|
|
554
|
+
* Adding these signatures to {@link IAdtGroupLifecycle} itself would make
|
|
555
|
+
* every 21.0.0 implementation of it stop compiling, so they are an atom of
|
|
556
|
+
* their own (22.0.0).
|
|
557
|
+
*/
|
|
558
|
+
export interface IAdtTypedGroupLifecycle<TActivation, TDeletionCheck, TDeletion, V extends AdtVariant = AdtModernVariant> {
|
|
559
|
+
activateObjectsGroup<E extends IAdtError>(objects: IAdtGroupActivationReference<V>[], preauditRequested: boolean | undefined, options: {
|
|
560
|
+
headers: IAdtHeaders;
|
|
561
|
+
} & IAdtAnalyseOptions<E> & {
|
|
562
|
+
analyse: IAnalyse<E>;
|
|
563
|
+
}): Promise<IAdtResponse<TActivation, E>>;
|
|
564
|
+
activateObjectsGroup(objects: IAdtGroupActivationReference<V>[], preauditRequested: boolean | undefined, options: {
|
|
565
|
+
headers: IAdtHeaders;
|
|
566
|
+
} & IAdtAnalyseOptions): Promise<IAdtResponse<TActivation>>;
|
|
567
|
+
checkDeletionGroup<E extends IAdtError>(objects: IAdtGroupDeletionCheckReference<V>[], options: {
|
|
568
|
+
headers: IAdtHeaders;
|
|
569
|
+
} & IAdtAnalyseOptions<E> & {
|
|
570
|
+
analyse: IAnalyse<E>;
|
|
571
|
+
}): Promise<IAdtResponse<TDeletionCheck, E>>;
|
|
572
|
+
checkDeletionGroup(objects: IAdtGroupDeletionCheckReference<V>[], options: {
|
|
573
|
+
headers: IAdtHeaders;
|
|
574
|
+
} & IAdtAnalyseOptions): Promise<IAdtResponse<TDeletionCheck>>;
|
|
575
|
+
deleteObjectsGroup<E extends IAdtError>(objects: IAdtGroupDeletionReference<V>[], transportRequest: string | undefined, options: {
|
|
576
|
+
headers: IAdtHeaders;
|
|
577
|
+
} & IAdtAnalyseOptions<E> & {
|
|
578
|
+
analyse: IAnalyse<E>;
|
|
579
|
+
}): Promise<IAdtResponse<TDeletion, E>>;
|
|
580
|
+
deleteObjectsGroup(objects: IAdtGroupDeletionReference<V>[], transportRequest: string | undefined, options: {
|
|
581
|
+
headers: IAdtHeaders;
|
|
582
|
+
} & IAdtAnalyseOptions): Promise<IAdtResponse<TDeletion>>;
|
|
583
|
+
}
|
|
584
|
+
/**
|
|
585
|
+
* {@link IAdtWhereUsed}'s two requests, typed by the codes where-used is asked
|
|
586
|
+
* of on variant `V` (`VIEW/DV` among them). Beside the 21.0.0 atom, for the
|
|
587
|
+
* reason {@link IAdtTypedGroupLifecycle} gives (22.0.0).
|
|
588
|
+
*/
|
|
589
|
+
export interface IAdtTypedWhereUsed<TWhereUsed, TScope, V extends AdtVariant = AdtModernVariant> {
|
|
590
|
+
getWhereUsed<E extends IAdtError>(params: IAdtWhereUsedParamsOf<V>, options: {
|
|
591
|
+
headers: IAdtHeaders;
|
|
592
|
+
} & IAdtAnalyseOptions<E> & {
|
|
593
|
+
analyse: IAnalyse<E>;
|
|
594
|
+
}): Promise<IAdtResponse<TWhereUsed, E>>;
|
|
595
|
+
getWhereUsed(params: IAdtWhereUsedParamsOf<V>, options: {
|
|
596
|
+
headers: IAdtHeaders;
|
|
597
|
+
} & IAdtAnalyseOptions): Promise<IAdtResponse<TWhereUsed>>;
|
|
598
|
+
getWhereUsedScope<E extends IAdtError>(params: IAdtWhereUsedScopeParamsOf<V>, options: {
|
|
599
|
+
headers: IAdtHeaders;
|
|
600
|
+
} & IAdtAnalyseOptions<E> & {
|
|
601
|
+
analyse: IAnalyse<E>;
|
|
602
|
+
}): Promise<IAdtResponse<TScope, E>>;
|
|
603
|
+
getWhereUsedScope(params: IAdtWhereUsedScopeParamsOf<V>, options: {
|
|
604
|
+
headers: IAdtHeaders;
|
|
605
|
+
} & IAdtAnalyseOptions): Promise<IAdtResponse<TScope>>;
|
|
606
|
+
}
|
|
513
607
|
//# sourceMappingURL=IAdtUtilities.d.ts.map
|