@mcp-abap-adt/adt-clients 12.1.0 → 16.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/README.md +33 -6
- package/dist/clients/AdtClient.d.ts +13 -1
- package/dist/clients/AdtClient.d.ts.map +1 -1
- package/dist/clients/AdtClient.js +16 -0
- package/dist/core/accessControl/AdtAccessControl.d.ts.map +1 -1
- package/dist/core/accessControl/AdtAccessControl.js +5 -0
- package/dist/core/accessControl/validation.d.ts +7 -1
- package/dist/core/accessControl/validation.d.ts.map +1 -1
- package/dist/core/accessControl/validation.js +9 -6
- package/dist/core/authorizationField/AdtAuthorizationField.d.ts.map +1 -1
- package/dist/core/authorizationField/AdtAuthorizationField.js +6 -1
- package/dist/core/authorizationField/validation.d.ts +8 -1
- package/dist/core/authorizationField/validation.d.ts.map +1 -1
- package/dist/core/authorizationField/validation.js +9 -2
- package/dist/core/authorizationField/xmlBuilder.d.ts +5 -3
- package/dist/core/authorizationField/xmlBuilder.d.ts.map +1 -1
- package/dist/core/authorizationField/xmlBuilder.js +7 -5
- package/dist/core/behaviorImplementation/AdtBehaviorImplementation.d.ts.map +1 -1
- package/dist/core/behaviorImplementation/AdtBehaviorImplementation.js +5 -0
- package/dist/core/behaviorImplementation/validation.d.ts +7 -1
- package/dist/core/behaviorImplementation/validation.d.ts.map +1 -1
- package/dist/core/behaviorImplementation/validation.js +7 -3
- package/dist/core/class/AdtClass.d.ts.map +1 -1
- package/dist/core/class/AdtClass.js +3 -0
- package/dist/core/class/validation.d.ts +7 -1
- package/dist/core/class/validation.d.ts.map +1 -1
- package/dist/core/class/validation.js +7 -3
- package/dist/core/dataElement/AdtDataElement.d.ts.map +1 -1
- package/dist/core/dataElement/AdtDataElement.js +6 -1
- package/dist/core/dataElement/validation.d.ts +8 -1
- package/dist/core/dataElement/validation.d.ts.map +1 -1
- package/dist/core/dataElement/validation.js +9 -3
- package/dist/core/ddl/AdtDdl.d.ts.map +1 -1
- package/dist/core/ddl/AdtDdl.js +3 -0
- package/dist/core/ddl/validation.d.ts +7 -1
- package/dist/core/ddl/validation.d.ts.map +1 -1
- package/dist/core/ddl/validation.js +9 -5
- package/dist/core/domain/AdtDomain.d.ts.map +1 -1
- package/dist/core/domain/AdtDomain.js +6 -1
- package/dist/core/domain/validation.d.ts +8 -1
- package/dist/core/domain/validation.d.ts.map +1 -1
- package/dist/core/domain/validation.js +9 -3
- package/dist/core/featureToggle/AdtFeatureToggle.d.ts.map +1 -1
- package/dist/core/featureToggle/AdtFeatureToggle.js +9 -1
- package/dist/core/featureToggle/validation.d.ts +15 -1
- package/dist/core/featureToggle/validation.d.ts.map +1 -1
- package/dist/core/featureToggle/validation.js +23 -3
- package/dist/core/functionGroup/validation.d.ts +6 -0
- package/dist/core/functionGroup/validation.d.ts.map +1 -1
- package/dist/core/functionGroup/validation.js +10 -7
- package/dist/core/include/AdtInclude.d.ts +103 -0
- package/dist/core/include/AdtInclude.d.ts.map +1 -0
- package/dist/core/include/AdtInclude.js +364 -0
- package/dist/core/include/activation.d.ts +9 -0
- package/dist/core/include/activation.d.ts.map +1 -0
- package/dist/core/include/activation.js +14 -0
- package/dist/core/include/create.d.ts +17 -0
- package/dist/core/include/create.d.ts.map +1 -0
- package/dist/core/include/create.js +54 -0
- package/dist/core/include/delete.d.ts +6 -0
- package/dist/core/include/delete.d.ts.map +1 -0
- package/dist/core/include/delete.js +17 -0
- package/dist/core/include/index.d.ts +29 -0
- package/dist/core/include/index.d.ts.map +1 -0
- package/dist/core/include/index.js +42 -0
- package/dist/core/include/lock.d.ts +16 -0
- package/dist/core/include/lock.d.ts.map +1 -0
- package/dist/core/include/lock.js +38 -0
- package/dist/core/include/read.d.ts +12 -0
- package/dist/core/include/read.d.ts.map +1 -0
- package/dist/core/include/read.js +32 -0
- package/dist/core/include/unlock.d.ts +6 -0
- package/dist/core/include/unlock.d.ts.map +1 -0
- package/dist/core/include/unlock.js +17 -0
- package/dist/core/include/update.d.ts +6 -0
- package/dist/core/include/update.d.ts.map +1 -0
- package/dist/core/include/update.js +19 -0
- package/dist/core/interface/AdtInterface.d.ts.map +1 -1
- package/dist/core/interface/AdtInterface.js +3 -0
- package/dist/core/interface/validation.d.ts +7 -1
- package/dist/core/interface/validation.d.ts.map +1 -1
- package/dist/core/interface/validation.js +7 -3
- package/dist/core/messageClass/AdtMessageClassMessage.d.ts +5 -5
- package/dist/core/messageClass/AdtMessageClassMessage.d.ts.map +1 -1
- package/dist/core/messageClass/AdtMessageClassMessage.js +67 -34
- package/dist/core/messageClass/lock.d.ts +29 -0
- package/dist/core/messageClass/lock.d.ts.map +1 -1
- package/dist/core/messageClass/lock.js +55 -0
- package/dist/core/metadataExtension/activate.d.ts.map +1 -1
- package/dist/core/metadataExtension/activate.js +2 -1
- package/dist/core/metadataExtension/delete.d.ts.map +1 -1
- package/dist/core/metadataExtension/delete.js +2 -1
- package/dist/core/metadataExtension/lock.d.ts.map +1 -1
- package/dist/core/metadataExtension/lock.js +2 -1
- package/dist/core/metadataExtension/read.d.ts.map +1 -1
- package/dist/core/metadataExtension/read.js +4 -3
- package/dist/core/metadataExtension/unlock.d.ts.map +1 -1
- package/dist/core/metadataExtension/unlock.js +2 -1
- package/dist/core/metadataExtension/update.d.ts.map +1 -1
- package/dist/core/metadataExtension/update.js +2 -1
- package/dist/core/package/AdtPackage.d.ts.map +1 -1
- package/dist/core/package/AdtPackage.js +102 -13
- package/dist/core/package/delete.d.ts.map +1 -1
- package/dist/core/package/delete.js +15 -6
- package/dist/core/package/read.js +2 -2
- package/dist/core/program/AdtProgram.d.ts.map +1 -1
- package/dist/core/program/AdtProgram.js +7 -1
- package/dist/core/program/create.d.ts.map +1 -1
- package/dist/core/program/create.js +10 -9
- package/dist/core/program/validation.d.ts +7 -1
- package/dist/core/program/validation.d.ts.map +1 -1
- package/dist/core/program/validation.js +8 -4
- package/dist/core/shared/contentTypes.d.ts +14 -0
- package/dist/core/shared/contentTypes.d.ts.map +1 -1
- package/dist/core/shared/contentTypes.js +19 -0
- package/dist/core/transformation/validation.d.ts +12 -2
- package/dist/core/transformation/validation.d.ts.map +1 -1
- package/dist/core/transformation/validation.js +12 -2
- package/dist/core/unitTest/AdtCdsUnitTest.d.ts.map +1 -1
- package/dist/core/unitTest/AdtCdsUnitTest.js +5 -0
- package/dist/core/unitTest/runLegacy.d.ts +20 -4
- package/dist/core/unitTest/runLegacy.d.ts.map +1 -1
- package/dist/core/unitTest/runLegacy.js +20 -34
- package/dist/executors/class/ClassExecutor.d.ts +23 -5
- package/dist/executors/class/ClassExecutor.d.ts.map +1 -1
- package/dist/executors/class/ClassExecutor.js +32 -112
- package/dist/executors/program/ProgramExecutor.d.ts +7 -1
- package/dist/executors/program/ProgramExecutor.d.ts.map +1 -1
- package/dist/executors/program/ProgramExecutor.js +16 -8
- package/dist/executors/traceScheduling.d.ts +38 -0
- package/dist/executors/traceScheduling.d.ts.map +1 -0
- package/dist/executors/traceScheduling.js +60 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.runtime.d.ts +8 -0
- package/dist/index.runtime.d.ts.map +1 -1
- package/dist/index.runtime.js +10 -1
- package/dist/runtime/atc/run.d.ts +23 -1
- package/dist/runtime/atc/run.d.ts.map +1 -1
- package/dist/runtime/atc/run.js +30 -2
- package/dist/runtime/dumps/read.d.ts +2 -2
- package/dist/runtime/dumps/read.js +2 -2
- package/dist/runtime/feeds/FeedRepository.d.ts +14 -1
- package/dist/runtime/feeds/FeedRepository.d.ts.map +1 -1
- package/dist/runtime/feeds/FeedRepository.js +23 -2
- package/dist/runtime/feeds/read.d.ts +13 -1
- package/dist/runtime/feeds/read.d.ts.map +1 -1
- package/dist/runtime/feeds/read.js +17 -2
- package/dist/runtime/traces/ProfilerDomain.d.ts +52 -15
- package/dist/runtime/traces/ProfilerDomain.d.ts.map +1 -1
- package/dist/runtime/traces/ProfilerDomain.js +82 -38
- package/dist/runtime/traces/crossTrace.d.ts +7 -0
- package/dist/runtime/traces/crossTrace.d.ts.map +1 -1
- package/dist/runtime/traces/crossTrace.js +7 -0
- package/dist/runtime/traces/index.d.ts +1 -1
- package/dist/runtime/traces/index.d.ts.map +1 -1
- package/dist/runtime/traces/index.js +3 -1
- package/dist/runtime/traces/profiler.d.ts +51 -2
- package/dist/runtime/traces/profiler.d.ts.map +1 -1
- package/dist/runtime/traces/profiler.js +100 -4
- package/dist/runtime/traces/traceParsing.d.ts +75 -0
- package/dist/runtime/traces/traceParsing.d.ts.map +1 -0
- package/dist/runtime/traces/traceParsing.js +418 -0
- package/dist/utils/discoveryEndpoints.d.ts +16 -3
- package/dist/utils/discoveryEndpoints.d.ts.map +1 -1
- package/dist/utils/discoveryEndpoints.js +20 -4
- package/package.json +9 -6
package/README.md
CHANGED
|
@@ -152,16 +152,39 @@ npm install @mcp-abap-adt/adt-clients
|
|
|
152
152
|
### Using AdtClient (Recommended - High-Level CRUD API)
|
|
153
153
|
|
|
154
154
|
```typescript
|
|
155
|
-
import {
|
|
155
|
+
import {
|
|
156
|
+
AdtOnPremConnector,
|
|
157
|
+
BasicAuthProvider,
|
|
158
|
+
OnPremHttpTransport,
|
|
159
|
+
} from '@mcp-abap-adt/connection';
|
|
156
160
|
import { AdtClient } from '@mcp-abap-adt/adt-clients';
|
|
157
161
|
|
|
158
|
-
const
|
|
162
|
+
const config = {
|
|
159
163
|
url: 'https://your-sap-system.example.com',
|
|
160
164
|
client: '100',
|
|
161
|
-
authType: 'basic',
|
|
165
|
+
authType: 'basic' as const,
|
|
162
166
|
username: process.env.SAP_USERNAME!,
|
|
163
|
-
password: process.env.SAP_PASSWORD
|
|
164
|
-
}
|
|
167
|
+
password: process.env.SAP_PASSWORD!,
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
// Three things, all stated by you: which system (the connector), which
|
|
171
|
+
// credential (the provider), and which wire (the transport). Since
|
|
172
|
+
// @mcp-abap-adt/connection 6.0.0 nothing is inferred and there is no factory —
|
|
173
|
+
// for ABAP Cloud take AdtCloudConnector + CloudHttpTransport instead.
|
|
174
|
+
const connection = new AdtOnPremConnector(
|
|
175
|
+
config,
|
|
176
|
+
new BasicAuthProvider(config.username, config.password),
|
|
177
|
+
new OnPremHttpTransport(() => ({}), console, {
|
|
178
|
+
client: config.client,
|
|
179
|
+
baseUrl: config.url,
|
|
180
|
+
}),
|
|
181
|
+
console,
|
|
182
|
+
);
|
|
183
|
+
|
|
184
|
+
// Required: a request on a connection nobody opened is refused before it is
|
|
185
|
+
// sent, and connect() fails if the server opened no session — rather than
|
|
186
|
+
// surfacing later as `400 Session not found` mid-edit.
|
|
187
|
+
await connection.connect();
|
|
165
188
|
|
|
166
189
|
const client = new AdtClient(connection, console);
|
|
167
190
|
|
|
@@ -295,7 +318,11 @@ const runWithProfilingResult = await executor.getProgramExecutor().runWithProfil
|
|
|
295
318
|
},
|
|
296
319
|
);
|
|
297
320
|
|
|
298
|
-
|
|
321
|
+
// The run reports what it did, not what SAP will write afterwards: there is no
|
|
322
|
+
// `traceId` here. Find the trace with `runtime.getProfiler().list()` when you
|
|
323
|
+
// are ready — comparing against the ids you saw before the run, since position
|
|
324
|
+
// in the feed is not age.
|
|
325
|
+
console.log(runWithProfilingResult.profilerId);
|
|
299
326
|
```
|
|
300
327
|
|
|
301
328
|
**AdtUtils read type safety:**
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* Each factory method returns an IAdtObject instance that can be used
|
|
13
13
|
* to perform operations on a specific object type.
|
|
14
14
|
*/
|
|
15
|
-
import type { IAbapConnection, IAdtActivatable, IAdtCheckable, IAdtClientOptions, IAdtContentTypes, IAdtCreatable, IAdtCrud, IAdtDeletable, IAdtLockable, IAdtModifiable, IAdtReadable, IAdtRunnable, IAdtSourceObject, IAdtSystemContext, IAdtTransportAware, IAdtUpdatable, IAdtValidatable, IAdtVersionable, ICdsTestDoubleCheckable, IClassUnitTestDefinition, IClassUnitTestRunOptions, ILogger, ITestRunInformation } from '@mcp-abap-adt/interfaces';
|
|
15
|
+
import type { IAbapConnection, IAdtActivatable, IAdtCheckable, IAdtClientOptions, IAdtContentTypes, IAdtCreatable, IAdtCrud, IAdtDeletable, IAdtLockable, IAdtModifiable, IAdtReadable, IAdtRunnable, IAdtSourceObject, IAdtSystemContext, IAdtTransportAware, IAdtUpdatable, IAdtValidatable, IAdtVersionable, ICdsTestDoubleCheckable, IClassUnitTestDefinition, IClassUnitTestRunOptions, IIncludeConfig, IIncludeState, ILogger, ITestRunInformation } from '@mcp-abap-adt/interfaces';
|
|
16
16
|
import { type IAccessControlConfig, type IAccessControlState } from '../core/accessControl';
|
|
17
17
|
import { type IAppendStructureConfig, type IAppendStructureState } from '../core/appendStructure';
|
|
18
18
|
import { type IAuthorizationFieldConfig, type IAuthorizationFieldState } from '../core/authorizationField';
|
|
@@ -94,6 +94,18 @@ export declare class AdtClient {
|
|
|
94
94
|
* @returns IAdtObject instance for Program operations
|
|
95
95
|
*/
|
|
96
96
|
getProgram(): IAdtSourceObject<IProgramConfig, IProgramState>;
|
|
97
|
+
/**
|
|
98
|
+
* Standalone `PROG/I` includes.
|
|
99
|
+
*
|
|
100
|
+
* A different resource from a program and from a function-group include —
|
|
101
|
+
* see `src/core/include/index.ts` for the three-way comparison. The return
|
|
102
|
+
* type names only the capabilities an include has: nothing measured says it
|
|
103
|
+
* is versionable, so it does not claim to be.
|
|
104
|
+
*
|
|
105
|
+
* Creatable on modern on-prem only, where discovery gives the includes
|
|
106
|
+
* collection an `app:accept`.
|
|
107
|
+
*/
|
|
108
|
+
getInclude(): IAdtCrud<IIncludeConfig, IIncludeState> & IAdtValidatable<IIncludeConfig, IIncludeState> & IAdtActivatable<IIncludeConfig, IIncludeState> & IAdtLockable<IIncludeConfig, IIncludeState>;
|
|
97
109
|
/**
|
|
98
110
|
* Get high-level operations for Interface objects
|
|
99
111
|
* @returns IAdtObject instance for Interface operations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdtClient.d.ts","sourceRoot":"","sources":["../../src/clients/AdtClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,cAAc,EAEd,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,OAAO,EAEP,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAU,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"AdtClient.d.ts","sourceRoot":"","sources":["../../src/clients/AdtClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ const featureToggle_1 = require("../core/featureToggle");
|
|
|
30
30
|
const functionGroup_1 = require("../core/functionGroup");
|
|
31
31
|
const functionInclude_1 = require("../core/functionInclude");
|
|
32
32
|
const functionModule_1 = require("../core/functionModule");
|
|
33
|
+
const include_1 = require("../core/include");
|
|
33
34
|
const interface_1 = require("../core/interface");
|
|
34
35
|
const messageClass_1 = require("../core/messageClass");
|
|
35
36
|
const metadataExtension_1 = require("../core/metadataExtension");
|
|
@@ -143,6 +144,21 @@ class AdtClient {
|
|
|
143
144
|
this.assertConnected();
|
|
144
145
|
return new program_1.AdtProgram(this.connection, this.logger, this.systemContext, this.contentTypes, this.lockRegistry);
|
|
145
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Standalone `PROG/I` includes.
|
|
149
|
+
*
|
|
150
|
+
* A different resource from a program and from a function-group include —
|
|
151
|
+
* see `src/core/include/index.ts` for the three-way comparison. The return
|
|
152
|
+
* type names only the capabilities an include has: nothing measured says it
|
|
153
|
+
* is versionable, so it does not claim to be.
|
|
154
|
+
*
|
|
155
|
+
* Creatable on modern on-prem only, where discovery gives the includes
|
|
156
|
+
* collection an `app:accept`.
|
|
157
|
+
*/
|
|
158
|
+
getInclude() {
|
|
159
|
+
this.assertConnected();
|
|
160
|
+
return new include_1.AdtInclude(this.connection, this.logger, this.contentTypes);
|
|
161
|
+
}
|
|
146
162
|
/**
|
|
147
163
|
* Get high-level operations for Interface objects
|
|
148
164
|
* @returns IAdtObject instance for Interface operations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdtAccessControl.d.ts","sourceRoot":"","sources":["../../../src/core/accessControl/AdtAccessControl.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAWpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AASzE,qBAAa,gBACX,YAAW,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;IAEtE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAmB;gBAGnD,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAa7B;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"AdtAccessControl.d.ts","sourceRoot":"","sources":["../../../src/core/accessControl/AdtAccessControl.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAWpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AASzE,qBAAa,gBACX,YAAW,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;IAEtE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAmB;gBAGnD,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAa7B;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAkC/B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,OAAO,CAAC,mBAAmB,CAAC;IAqC/B;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IA2B3C;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,mBAAmB,CAAC;IAkC/B;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,mBAAmB,CAAC;IAkC/B;;;;OAIG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IA4N/B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAwC/B;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAqB/B;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC;IAqB/B;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAclE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC;IAmB/B,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAIjD,gBAAgB,CAAC,UAAU,EAAE,MAAM;CAGpC"}
|
|
@@ -37,6 +37,11 @@ class AdtAccessControl {
|
|
|
37
37
|
state.errors.push({ method: 'validate', error, timestamp: new Date() });
|
|
38
38
|
throw error;
|
|
39
39
|
}
|
|
40
|
+
if (!config.packageName) {
|
|
41
|
+
const error = new Error('Package name is required for validation');
|
|
42
|
+
state.errors.push({ method: 'validate', error, timestamp: new Date() });
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
40
45
|
try {
|
|
41
46
|
const response = await (0, validation_1.validateAccessControlName)(this.connection, config.accessControlName, config.packageName, config.description);
|
|
42
47
|
state.validationResponse = response;
|
|
@@ -3,5 +3,11 @@ import type { IAbapConnection, IAdtResponse } from '@mcp-abap-adt/interfaces';
|
|
|
3
3
|
* Validate access control name
|
|
4
4
|
* Returns raw response from ADT - consumer decides how to interpret it
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Both `packageName` and `description` are required by the endpoint, and both
|
|
8
|
+
* used to be sent conditionally. Measured on E19 2026-08-28: omitting either
|
|
9
|
+
* answers **400, "Parameter … could not be found."**, while an empty
|
|
10
|
+
* `description` is accepted. See `docs/evidence/2026-08-28-validation-required-params.md`.
|
|
11
|
+
*/
|
|
12
|
+
export declare function validateAccessControlName(connection: IAbapConnection, accessControlName: string, packageName: string, description?: string): Promise<IAdtResponse>;
|
|
7
13
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/accessControl/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI9E;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,eAAe,EAC3B,iBAAiB,EAAE,MAAM,EACzB,WAAW,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/accessControl/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI9E;;;GAGG;AACH;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,eAAe,EAC3B,iBAAiB,EAAE,MAAM,EACzB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,CAiBvB"}
|
|
@@ -7,17 +7,20 @@ const timeouts_1 = require("../../utils/timeouts");
|
|
|
7
7
|
* Validate access control name
|
|
8
8
|
* Returns raw response from ADT - consumer decides how to interpret it
|
|
9
9
|
*/
|
|
10
|
+
/**
|
|
11
|
+
* Both `packageName` and `description` are required by the endpoint, and both
|
|
12
|
+
* used to be sent conditionally. Measured on E19 2026-08-28: omitting either
|
|
13
|
+
* answers **400, "Parameter … could not be found."**, while an empty
|
|
14
|
+
* `description` is accepted. See `docs/evidence/2026-08-28-validation-required-params.md`.
|
|
15
|
+
*/
|
|
10
16
|
async function validateAccessControlName(connection, accessControlName, packageName, description) {
|
|
11
17
|
const url = '/sap/bc/adt/acm/dcl/validation';
|
|
12
18
|
const queryParams = new URLSearchParams({
|
|
13
19
|
objname: accessControlName,
|
|
20
|
+
packagename: packageName,
|
|
21
|
+
// Required, and an empty value is accepted here — measured.
|
|
22
|
+
description: description || '',
|
|
14
23
|
});
|
|
15
|
-
if (packageName) {
|
|
16
|
-
queryParams.append('packagename', packageName);
|
|
17
|
-
}
|
|
18
|
-
if (description) {
|
|
19
|
-
queryParams.append('description', description);
|
|
20
|
-
}
|
|
21
24
|
return connection.makeAdtRequest({
|
|
22
25
|
url: `${url}?${queryParams.toString()}`,
|
|
23
26
|
method: 'POST',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdtAuthorizationField.d.ts","sourceRoot":"","sources":["../../../src/core/authorizationField/AdtAuthorizationField.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,eAAe,EACf,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,OAAO,EAER,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,QAAQ,CAAC;AACnE,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EAEzB,MAAM,SAAS,CAAC;AAIjB,qBAAa,qBACX,YACE,QAAQ,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,EAC7D,eAAe,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,EACpE,aAAa,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,EAClE,eAAe,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,EACpE,YAAY,CAAC,yBAAyB,EAAE,wBAAwB,CAAC;IAEnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAwB;gBAGxD,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAa7B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GACzC,OAAO,CAAC,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"AdtAuthorizationField.d.ts","sourceRoot":"","sources":["../../../src/core/authorizationField/AdtAuthorizationField.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,eAAe,EACf,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,OAAO,EAER,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,QAAQ,CAAC;AACnE,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EAEzB,MAAM,SAAS,CAAC;AAIjB,qBAAa,qBACX,YACE,QAAQ,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,EAC7D,eAAe,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,EACpE,aAAa,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,EAClE,eAAe,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,EACpE,YAAY,CAAC,yBAAyB,EAAE,wBAAwB,CAAC;IAEnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAwB;gBAGxD,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAa7B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GACzC,OAAO,CAAC,wBAAwB,CAAC;IAuBpC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;IAgDpC;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC;IA0BhD;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE,YAAY,GAAG;QAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;KAAE,GAC3D,OAAO,CAAC,wBAAwB,CAAC;IA6CpC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;IA8MpC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GACzC,OAAO,CAAC,wBAAwB,CAAC;IAoCpC;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GACzC,OAAO,CAAC,wBAAwB,CAAC;IAoBpC;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAmBpC;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAevE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC;CAerC"}
|
|
@@ -67,7 +67,12 @@ class AdtAuthorizationField {
|
|
|
67
67
|
if (!config.authorizationFieldName) {
|
|
68
68
|
throw new Error('Authorization field name is required for validation');
|
|
69
69
|
}
|
|
70
|
-
|
|
70
|
+
// The endpoint refuses an empty one, so this is a caller error rather
|
|
71
|
+
// than a 400 to decode later.
|
|
72
|
+
if (!config.description) {
|
|
73
|
+
throw new Error('Description is required for validation');
|
|
74
|
+
}
|
|
75
|
+
const validationResponse = await (0, validation_1.validateAuthorizationFieldName)(this.connection, config.authorizationFieldName, config.description, config.packageName);
|
|
71
76
|
return {
|
|
72
77
|
validationResponse,
|
|
73
78
|
errors: [],
|
|
@@ -7,5 +7,12 @@ import type { IAbapConnection, IAdtResponse } from '@mcp-abap-adt/interfaces';
|
|
|
7
7
|
* Validate authorization field name against SAP naming rules.
|
|
8
8
|
* Returns raw response — consumer interprets SEVERITY/SHORT_TEXT fields.
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* `description` is required by the endpoint **and may not be empty**. Measured
|
|
12
|
+
* on E19 (`RFCSAPRL 816`) 2026-08-28: sending `description=` answers **400,
|
|
13
|
+
* "The description is missing for VALIDATION"**, which is why passing
|
|
14
|
+
* `description || ''` never satisfied it. It moves ahead of the optional
|
|
15
|
+
* `packageName`, which this endpoint does NOT require. See `docs/evidence/2026-08-28-validation-required-params.md`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function validateAuthorizationFieldName(connection: IAbapConnection, name: string, description: string, packageName?: string): Promise<IAdtResponse>;
|
|
11
18
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/authorizationField/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI9E;;;GAGG;AACH,wBAAsB,8BAA8B,CAClD,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/authorizationField/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI9E;;;GAGG;AACH;;;;;;GAMG;AACH,wBAAsB,8BAA8B,CAClD,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,CAsBvB"}
|
|
@@ -11,7 +11,14 @@ const timeouts_1 = require("../../utils/timeouts");
|
|
|
11
11
|
* Validate authorization field name against SAP naming rules.
|
|
12
12
|
* Returns raw response — consumer interprets SEVERITY/SHORT_TEXT fields.
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* `description` is required by the endpoint **and may not be empty**. Measured
|
|
16
|
+
* on E19 (`RFCSAPRL 816`) 2026-08-28: sending `description=` answers **400,
|
|
17
|
+
* "The description is missing for VALIDATION"**, which is why passing
|
|
18
|
+
* `description || ''` never satisfied it. It moves ahead of the optional
|
|
19
|
+
* `packageName`, which this endpoint does NOT require. See `docs/evidence/2026-08-28-validation-required-params.md`.
|
|
20
|
+
*/
|
|
21
|
+
async function validateAuthorizationFieldName(connection, name, description, packageName) {
|
|
15
22
|
if (!name) {
|
|
16
23
|
throw new Error('Authorization field name is required');
|
|
17
24
|
}
|
|
@@ -22,7 +29,7 @@ async function validateAuthorizationFieldName(connection, name, packageName, des
|
|
|
22
29
|
if (packageName) {
|
|
23
30
|
queryParams.append('packagename', packageName);
|
|
24
31
|
}
|
|
25
|
-
queryParams.append('description', description
|
|
32
|
+
queryParams.append('description', description);
|
|
26
33
|
return connection.makeAdtRequest({
|
|
27
34
|
url: `${url}?${queryParams.toString()}`,
|
|
28
35
|
method: 'POST',
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared XML helpers for authorization field (SUSO / AUTH) payloads.
|
|
3
3
|
*
|
|
4
|
-
* The auth envelope is `auth:
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* The auth envelope is `auth:auth` with an inline `auth:content` block — the
|
|
5
|
+
* same root the endpoint returns on a GET. Any other local name in that
|
|
6
|
+
* namespace is rejected with HTTP 500, "System expected the element
|
|
7
|
+
* '{http://www.sap.com/iam/auth}auth'". Create and update share the root and
|
|
8
|
+
* differ only in whether the URL carries a lockHandle, so the builder is shared.
|
|
7
9
|
*/
|
|
8
10
|
import type { ICreateAuthorizationFieldParams } from './types';
|
|
9
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xmlBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/authorizationField/xmlBuilder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"xmlBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/authorizationField/xmlBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AA0B/D;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,+BAA+B,GACpC,MAAM,CAmCR"}
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Shared XML helpers for authorization field (SUSO / AUTH) payloads.
|
|
4
4
|
*
|
|
5
|
-
* The auth envelope is `auth:
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* The auth envelope is `auth:auth` with an inline `auth:content` block — the
|
|
6
|
+
* same root the endpoint returns on a GET. Any other local name in that
|
|
7
|
+
* namespace is rejected with HTTP 500, "System expected the element
|
|
8
|
+
* '{http://www.sap.com/iam/auth}auth'". Create and update share the root and
|
|
9
|
+
* differ only in whether the URL carries a lockHandle, so the builder is shared.
|
|
8
10
|
*/
|
|
9
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
12
|
exports.buildAuthorizationFieldXml = buildAuthorizationFieldXml;
|
|
@@ -59,9 +61,9 @@ function buildAuthorizationFieldXml(args) {
|
|
|
59
61
|
tag('col_searchhelp_name', args.col_searchhelp_name) +
|
|
60
62
|
tag('col_searchhelp_descr', args.col_searchhelp_descr);
|
|
61
63
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
62
|
-
<auth:
|
|
64
|
+
<auth:auth xmlns:auth="http://www.sap.com/iam/auth" xmlns:adtcore="http://www.sap.com/adt/core" adtcore:name="${escapeXml(name)}" adtcore:type="AUTH" adtcore:description="${description}"${masterSystemAttr}${responsibleAttr}>
|
|
63
65
|
<adtcore:packageRef adtcore:name="${escapeXml(pkg)}"/>
|
|
64
66
|
<auth:content>
|
|
65
67
|
${content} </auth:content>
|
|
66
|
-
</auth:
|
|
68
|
+
</auth:auth>`;
|
|
67
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdtBehaviorImplementation.d.ts","sourceRoot":"","sources":["../../../src/core/behaviorImplementation/AdtBehaviorImplementation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAKlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAMpD,OAAO,KAAK,EACV,6BAA6B,EAC7B,4BAA4B,EAC7B,MAAM,SAAS,CAAC;AAQjB,qBAAa,yBACX,YACE,gBAAgB,CACd,6BAA6B,EAC7B,4BAA4B,CAC7B;IAEH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,SAAgB,UAAU,EAAE,MAAM,CAA4B;gBAG5D,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,YAAY;IAe7B;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAC7C,OAAO,CAAC,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"AdtBehaviorImplementation.d.ts","sourceRoot":"","sources":["../../../src/core/behaviorImplementation/AdtBehaviorImplementation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAKlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAMpD,OAAO,KAAK,EACV,6BAA6B,EAC7B,4BAA4B,EAC7B,MAAM,SAAS,CAAC;AAQjB,qBAAa,yBACX,YACE,gBAAgB,CACd,6BAA6B,EAC7B,4BAA4B,CAC7B;IAEH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,SAAgB,UAAU,EAAE,MAAM,CAA4B;gBAG5D,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,YAAY;IAe7B;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAC7C,OAAO,CAAC,4BAA4B,CAAC;IAwCxC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,6BAA6B,EACrC,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,OAAO,CAAC,4BAA4B,CAAC;IA4CxC;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,EAC9C,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,4BAA4B,GAAG,SAAS,CAAC;IA8BpD;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,EAC9C,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,4BAA4B,CAAC;IAiCxC;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,EAC9C,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,4BAA4B,CAAC;IAoCxC;;;;OAIG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,EAC9C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,4BAA4B,CAAC;IAkPxC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAC7C,OAAO,CAAC,4BAA4B,CAAC;IA+BxC;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAC7C,OAAO,CAAC,4BAA4B,CAAC;IA0BxC;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,EAC9C,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,4BAA4B,CAAC;IAuBxC;;;OAGG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ3E;;;OAGG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC,EAC9C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,4BAA4B,CAAC;IAexC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,6BAA6B,CAAC;IAI1D,gBAAgB,CAAC,UAAU,EAAE,MAAM;CAGpC"}
|
|
@@ -60,6 +60,11 @@ class AdtBehaviorImplementation {
|
|
|
60
60
|
state.errors.push({ method: 'validate', error, timestamp: new Date() });
|
|
61
61
|
throw error;
|
|
62
62
|
}
|
|
63
|
+
if (!config.packageName) {
|
|
64
|
+
const error = new Error('Package name is required for validation');
|
|
65
|
+
state.errors.push({ method: 'validate', error, timestamp: new Date() });
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
63
68
|
try {
|
|
64
69
|
const response = await (0, validation_1.validateBehaviorImplementationName)(this.connection, config.className, config.packageName, config.description, config.behaviorDefinition);
|
|
65
70
|
state.validationResponse = response;
|
|
@@ -13,5 +13,11 @@ import type { IAbapConnection, IAdtResponse } from '@mcp-abap-adt/interfaces';
|
|
|
13
13
|
* @param behaviorDefinition - Behavior definition name (root entity)
|
|
14
14
|
* @returns Validation response (returns error response if object already exists)
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* `packageName` is required by the endpoint, not optional. Measured on E19
|
|
18
|
+
* (`RFCSAPRL 816`) 2026-08-28: without `packagename` it answers **400,
|
|
19
|
+
* "Parameter packagename could not be found."** — see
|
|
20
|
+
* `docs/evidence/2026-08-28-validation-required-params.md`.
|
|
21
|
+
*/
|
|
22
|
+
export declare function validateBehaviorImplementationName(connection: IAbapConnection, className: string, packageName: string, description?: string, behaviorDefinition?: string): Promise<IAdtResponse>;
|
|
17
23
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/behaviorImplementation/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAM9E;;;;;;;;;;GAUG;AACH,wBAAsB,kCAAkC,CACtD,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/behaviorImplementation/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAM9E;;;;;;;;;;GAUG;AACH;;;;;GAKG;AACH,wBAAsB,kCAAkC,CACtD,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,YAAY,CAAC,CAoCvB"}
|
|
@@ -19,15 +19,19 @@ const timeouts_1 = require("../../utils/timeouts");
|
|
|
19
19
|
* @param behaviorDefinition - Behavior definition name (root entity)
|
|
20
20
|
* @returns Validation response (returns error response if object already exists)
|
|
21
21
|
*/
|
|
22
|
+
/**
|
|
23
|
+
* `packageName` is required by the endpoint, not optional. Measured on E19
|
|
24
|
+
* (`RFCSAPRL 816`) 2026-08-28: without `packagename` it answers **400,
|
|
25
|
+
* "Parameter packagename could not be found."** — see
|
|
26
|
+
* `docs/evidence/2026-08-28-validation-required-params.md`.
|
|
27
|
+
*/
|
|
22
28
|
async function validateBehaviorImplementationName(connection, className, packageName, description, behaviorDefinition) {
|
|
23
29
|
// Build query parameters for behavior implementation validation
|
|
24
30
|
const params = new URLSearchParams({
|
|
25
31
|
objname: className,
|
|
26
32
|
objtype: 'CLAS/OC',
|
|
33
|
+
packagename: packageName,
|
|
27
34
|
});
|
|
28
|
-
if (packageName) {
|
|
29
|
-
params.append('packagename', packageName);
|
|
30
|
-
}
|
|
31
35
|
if (description) {
|
|
32
36
|
// Description is limited to 60 characters in SAP ADT
|
|
33
37
|
params.append('description', (0, internalUtils_1.limitDescription)(description));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdtClass.d.ts","sourceRoot":"","sources":["../../../src/core/class/AdtClass.ts"],"names":[],"mappings":"AAsBA,OAAO,EAML,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAErB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAYlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAW1D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAUzD,qBAAa,QACX,SAAQ,kBACR,YAAW,gBAAgB,CAAC,YAAY,EAAE,WAAW,CAAC;IAEtD,SAAgB,UAAU,EAAE,MAAM,CAAW;IAE7C;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"AdtClass.d.ts","sourceRoot":"","sources":["../../../src/core/class/AdtClass.ts"],"names":[],"mappings":"AAsBA,OAAO,EAML,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAErB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAYlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAW1D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAUzD,qBAAa,QACX,SAAQ,kBACR,YAAW,gBAAgB,CAAC,YAAY,EAAE,WAAW,CAAC;IAEtD,SAAgB,UAAU,EAAE,MAAM,CAAW;IAE7C;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAmDnE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,WAAW,CAAC;IAoEvB;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAC7B,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAqDnC;;;;OAIG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAC7B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,WAAW,CAAC;IAuMvB;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IA8DjE;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC;IA6EvB;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrE;;;OAGG;IACG,iBAAiB,CACrB,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAC7B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC;IAcxB;;OAEG;IACG,cAAc,CAClB,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,EACzD,OAAO,GAAE,QAAQ,GAAG,UAAuB,GAC1C,OAAO,CAAC,YAAY,CAAC;IAgBxB;;;OAGG;IACG,iBAAiB,CACrB,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,GACxD,OAAO,CAAC,YAAY,CAAC;IAmExB;;OAEG;IACG,mBAAmB,CACvB,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,GACxD,OAAO,CAAC,YAAY,CAAC;IAcxB,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAItE"}
|
|
@@ -57,6 +57,9 @@ class AdtClass extends AdtClassMemberBase_1.AdtClassMemberBase {
|
|
|
57
57
|
if (!config.className) {
|
|
58
58
|
throw new Error('Class name is required for validation');
|
|
59
59
|
}
|
|
60
|
+
if (!config.packageName) {
|
|
61
|
+
throw new Error('Package name is required for validation');
|
|
62
|
+
}
|
|
60
63
|
try {
|
|
61
64
|
const validationResponse = await (0, validation_1.validateClassName)(this.connection, config.className, config.packageName, config.description, config.superclass);
|
|
62
65
|
return {
|
|
@@ -11,7 +11,13 @@ import type { IAbapConnection, IAdtResponse } from '@mcp-abap-adt/interfaces';
|
|
|
11
11
|
* Uses ADT validation endpoint: /sap/bc/adt/oo/validation/objectname
|
|
12
12
|
* Returns raw response from ADT - consumer decides how to interpret it
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* `packageName` is required by the endpoint, not optional. Measured on E19
|
|
16
|
+
* (`RFCSAPRL 816`) 2026-08-28: without `packagename` it answers **400,
|
|
17
|
+
* "Parameter packagename could not be found."** — see
|
|
18
|
+
* `docs/evidence/2026-08-28-validation-required-params.md`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function validateClassName(connection: IAbapConnection, className: string, packageName: string, description?: string, superClass?: string): Promise<IAdtResponse>;
|
|
15
21
|
/**
|
|
16
22
|
* Validate class source code.
|
|
17
23
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/class/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI9E;;;GAGG;AACH;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/class/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI9E;;;GAGG;AACH;;;;GAIG;AACH;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CA2BvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,UAAU,GAAG,QAAmB,GACxC,OAAO,CAAC,YAAY,CAAC,CAkCvB"}
|
|
@@ -49,15 +49,19 @@ const timeouts_1 = require("../../utils/timeouts");
|
|
|
49
49
|
* Uses ADT validation endpoint: /sap/bc/adt/oo/validation/objectname
|
|
50
50
|
* Returns raw response from ADT - consumer decides how to interpret it
|
|
51
51
|
*/
|
|
52
|
+
/**
|
|
53
|
+
* `packageName` is required by the endpoint, not optional. Measured on E19
|
|
54
|
+
* (`RFCSAPRL 816`) 2026-08-28: without `packagename` it answers **400,
|
|
55
|
+
* "Parameter packagename could not be found."** — see
|
|
56
|
+
* `docs/evidence/2026-08-28-validation-required-params.md`.
|
|
57
|
+
*/
|
|
52
58
|
async function validateClassName(connection, className, packageName, description, superClass) {
|
|
53
59
|
// Build query parameters for class validation
|
|
54
60
|
const params = new URLSearchParams({
|
|
55
61
|
objname: className,
|
|
56
62
|
objtype: 'CLAS/OC',
|
|
63
|
+
packagename: packageName,
|
|
57
64
|
});
|
|
58
|
-
if (packageName) {
|
|
59
|
-
params.append('packagename', packageName);
|
|
60
|
-
}
|
|
61
65
|
if (description) {
|
|
62
66
|
params.append('description', description);
|
|
63
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdtDataElement.d.ts","sourceRoot":"","sources":["../../../src/core/dataElement/AdtDataElement.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,eAAe,EACf,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,OAAO,EAER,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAIrE,qBAAa,cACX,YACE,QAAQ,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAC/C,eAAe,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EACtD,aAAa,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EACpD,eAAe,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EACtD,YAAY,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EACnD,kBAAkB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;IAE3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAiB;gBAGjD,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAa7B;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAClC,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"AdtDataElement.d.ts","sourceRoot":"","sources":["../../../src/core/dataElement/AdtDataElement.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,12 @@ class AdtDataElement {
|
|
|
33
33
|
if (!config.dataElementName) {
|
|
34
34
|
throw new Error('Data element name is required for validation');
|
|
35
35
|
}
|
|
36
|
-
|
|
36
|
+
// The endpoint refuses an empty one, so this is a caller error rather
|
|
37
|
+
// than a 400 to decode later.
|
|
38
|
+
if (!config.description) {
|
|
39
|
+
throw new Error('Description is required for validation');
|
|
40
|
+
}
|
|
41
|
+
const validationResponse = await (0, validation_1.validateDataElementName)(this.connection, config.dataElementName, config.description, config.packageName);
|
|
37
42
|
return {
|
|
38
43
|
validationResponse: validationResponse,
|
|
39
44
|
errors: [],
|
|
@@ -13,5 +13,12 @@ import type { IAbapConnection, IAdtResponse } from '@mcp-abap-adt/interfaces';
|
|
|
13
13
|
* - Success: <SEVERITY>OK</SEVERITY>
|
|
14
14
|
* - Error: <SEVERITY>ERROR</SEVERITY> with <SHORT_TEXT> message
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* `description` is required by the endpoint **and may not be empty**. Measured
|
|
18
|
+
* on E19 (`RFCSAPRL 816`) 2026-08-28: sending `description=` answers **400,
|
|
19
|
+
* "The description is missing for VALIDATION"**, which is why passing
|
|
20
|
+
* `description || ''` never satisfied it. It moves ahead of the optional
|
|
21
|
+
* `packageName`, which this endpoint does NOT require. See `docs/evidence/2026-08-28-validation-required-params.md`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function validateDataElementName(connection: IAbapConnection, dataElementName: string, description: string, packageName?: string): Promise<IAdtResponse>;
|
|
17
24
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/dataElement/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI9E;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,eAAe,EAC3B,eAAe,EAAE,MAAM,EACvB,WAAW,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/dataElement/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI9E;;;;;;;;;GASG;AACH;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,eAAe,EAC3B,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,CAqBvB"}
|
|
@@ -17,7 +17,14 @@ const timeouts_1 = require("../../utils/timeouts");
|
|
|
17
17
|
* - Success: <SEVERITY>OK</SEVERITY>
|
|
18
18
|
* - Error: <SEVERITY>ERROR</SEVERITY> with <SHORT_TEXT> message
|
|
19
19
|
*/
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* `description` is required by the endpoint **and may not be empty**. Measured
|
|
22
|
+
* on E19 (`RFCSAPRL 816`) 2026-08-28: sending `description=` answers **400,
|
|
23
|
+
* "The description is missing for VALIDATION"**, which is why passing
|
|
24
|
+
* `description || ''` never satisfied it. It moves ahead of the optional
|
|
25
|
+
* `packageName`, which this endpoint does NOT require. See `docs/evidence/2026-08-28-validation-required-params.md`.
|
|
26
|
+
*/
|
|
27
|
+
async function validateDataElementName(connection, dataElementName, description, packageName) {
|
|
21
28
|
const url = `/sap/bc/adt/ddic/dataelements/validation`;
|
|
22
29
|
const queryParams = new URLSearchParams({
|
|
23
30
|
objtype: 'dtel',
|
|
@@ -26,8 +33,7 @@ async function validateDataElementName(connection, dataElementName, packageName,
|
|
|
26
33
|
if (packageName) {
|
|
27
34
|
queryParams.append('packagename', packageName);
|
|
28
35
|
}
|
|
29
|
-
|
|
30
|
-
queryParams.append('description', description || '');
|
|
36
|
+
queryParams.append('description', description);
|
|
31
37
|
return connection.makeAdtRequest({
|
|
32
38
|
url: `${url}?${queryParams.toString()}`,
|
|
33
39
|
method: 'POST',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdtDdl.d.ts","sourceRoot":"","sources":["../../../src/core/ddl/AdtDdl.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOpD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAMrD,qBAAa,MAAO,YAAW,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC;IACpE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAU;gBAG1C,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAY7B;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"AdtDdl.d.ts","sourceRoot":"","sources":["../../../src/core/ddl/AdtDdl.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOpD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAMrD,qBAAa,MAAO,YAAW,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC;IACpE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAU;gBAG1C,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAY7B;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IA8B/D;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,SAAS,CAAC;IA4DrB;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,EAC3B,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAyBjC;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,EAC3B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,SAAS,CAAC;IAgCrB;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,EAC3B,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,SAAS,CAAC;IAkCrB;;;;OAIG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,EAC3B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,SAAS,CAAC;IA+MrB;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAqC7D;;;OAGG;IACG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAiB/D;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,EAC3B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC;IAsBrB;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxD;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,CAAC;IAmBrB,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC;IAIvC,gBAAgB,CAAC,UAAU,EAAE,MAAM;CAGpC"}
|
package/dist/core/ddl/AdtDdl.js
CHANGED
|
@@ -34,6 +34,9 @@ class AdtDdl {
|
|
|
34
34
|
if (!config.ddlName) {
|
|
35
35
|
throw new Error('View name is required for validation');
|
|
36
36
|
}
|
|
37
|
+
if (!config.packageName) {
|
|
38
|
+
throw new Error('Package name is required for validation');
|
|
39
|
+
}
|
|
37
40
|
const state = { errors: [] };
|
|
38
41
|
try {
|
|
39
42
|
const response = await (0, validation_1.validateDdlName)(this.connection, config.ddlName, config.packageName, config.description);
|