arc-1 0.9.13 → 0.9.15
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 +17 -4
- package/dist/adt/class-structure.d.ts +1 -1
- package/dist/adt/class-structure.js +1 -1
- package/dist/adt/client.d.ts +16 -3
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +40 -35
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/ddic-xml.d.ts +9 -0
- package/dist/adt/ddic-xml.d.ts.map +1 -1
- package/dist/adt/ddic-xml.js +49 -53
- package/dist/adt/ddic-xml.js.map +1 -1
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +46 -15
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/fm-signature.d.ts +1 -1
- package/dist/adt/fm-signature.js +1 -1
- package/dist/adt/rap-generate.js +1 -1
- package/dist/adt/rap-generate.js.map +1 -1
- package/dist/adt/rap-handlers.d.ts +1 -1
- package/dist/adt/rap-handlers.js +1 -1
- package/dist/adt/refactoring.d.ts.map +1 -1
- package/dist/adt/refactoring.js +11 -14
- package/dist/adt/refactoring.js.map +1 -1
- package/dist/adt/server-driven.d.ts +46 -2
- package/dist/adt/server-driven.d.ts.map +1 -1
- package/dist/adt/server-driven.js +13 -3
- package/dist/adt/server-driven.js.map +1 -1
- package/dist/adt/xml-parser.d.ts +8 -1
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +57 -49
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/authz/policy.d.ts +1 -1
- package/dist/authz/policy.js +1 -1
- package/dist/cache/cache.d.ts +1 -0
- package/dist/cache/cache.d.ts.map +1 -1
- package/dist/cache/cache.js.map +1 -1
- package/dist/cache/inactive-list-cache.d.ts +4 -4
- package/dist/cache/inactive-list-cache.d.ts.map +1 -1
- package/dist/cache/inactive-list-cache.js +19 -12
- package/dist/cache/inactive-list-cache.js.map +1 -1
- package/dist/cache/memory.d.ts +1 -0
- package/dist/cache/memory.d.ts.map +1 -1
- package/dist/cache/memory.js +3 -0
- package/dist/cache/memory.js.map +1 -1
- package/dist/cache/sqlite.d.ts +1 -0
- package/dist/cache/sqlite.d.ts.map +1 -1
- package/dist/cache/sqlite.js +3 -0
- package/dist/cache/sqlite.js.map +1 -1
- package/dist/cache/warmup.d.ts.map +1 -1
- package/dist/cache/warmup.js +85 -38
- package/dist/cache/warmup.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/context/compressor.d.ts.map +1 -1
- package/dist/context/compressor.js +22 -13
- package/dist/context/compressor.js.map +1 -1
- package/dist/context/contract.d.ts.map +1 -1
- package/dist/context/contract.js +4 -3
- package/dist/context/contract.js.map +1 -1
- package/dist/context/deps.d.ts.map +1 -1
- package/dist/context/deps.js +3 -2
- package/dist/context/deps.js.map +1 -1
- package/dist/context/grep.d.ts +3 -1
- package/dist/context/grep.d.ts.map +1 -1
- package/dist/context/grep.js +83 -1
- package/dist/context/grep.js.map +1 -1
- package/dist/context/method-surgery.d.ts.map +1 -1
- package/dist/context/method-surgery.js +3 -2
- package/dist/context/method-surgery.js.map +1 -1
- package/dist/handlers/activate.d.ts +25 -0
- package/dist/handlers/activate.d.ts.map +1 -0
- package/dist/handlers/activate.js +334 -0
- package/dist/handlers/activate.js.map +1 -0
- package/dist/handlers/cache-security.d.ts +22 -0
- package/dist/handlers/cache-security.d.ts.map +1 -0
- package/dist/handlers/cache-security.js +51 -0
- package/dist/handlers/cache-security.js.map +1 -0
- package/dist/handlers/cds-hints.d.ts +26 -0
- package/dist/handlers/cds-hints.d.ts.map +1 -0
- package/dist/handlers/cds-hints.js +380 -0
- package/dist/handlers/cds-hints.js.map +1 -0
- package/dist/handlers/context.d.ts +10 -0
- package/dist/handlers/context.d.ts.map +1 -0
- package/dist/handlers/context.js +344 -0
- package/dist/handlers/context.js.map +1 -0
- package/dist/handlers/diagnose.d.ts +8 -0
- package/dist/handlers/diagnose.d.ts.map +1 -0
- package/dist/handlers/diagnose.js +274 -0
- package/dist/handlers/diagnose.js.map +1 -0
- package/dist/handlers/dispatch.d.ts +39 -0
- package/dist/handlers/dispatch.d.ts.map +1 -0
- package/dist/handlers/dispatch.js +640 -0
- package/dist/handlers/dispatch.js.map +1 -0
- package/dist/handlers/feature-cache.d.ts +26 -0
- package/dist/handlers/feature-cache.d.ts.map +1 -0
- package/dist/handlers/feature-cache.js +45 -0
- package/dist/handlers/feature-cache.js.map +1 -0
- package/dist/handlers/git.d.ts +9 -0
- package/dist/handlers/git.d.ts.map +1 -0
- package/dist/handlers/git.js +227 -0
- package/dist/handlers/git.js.map +1 -0
- package/dist/handlers/lint.d.ts +9 -0
- package/dist/handlers/lint.d.ts.map +1 -0
- package/dist/handlers/lint.js +82 -0
- package/dist/handlers/lint.js.map +1 -0
- package/dist/handlers/manage.d.ts +10 -0
- package/dist/handlers/manage.d.ts.map +1 -0
- package/dist/handlers/manage.js +375 -0
- package/dist/handlers/manage.js.map +1 -0
- package/dist/handlers/navigate.d.ts +8 -0
- package/dist/handlers/navigate.d.ts.map +1 -0
- package/dist/handlers/navigate.js +188 -0
- package/dist/handlers/navigate.js.map +1 -0
- package/dist/handlers/object-types.d.ts +103 -0
- package/dist/handlers/object-types.d.ts.map +1 -0
- package/dist/handlers/object-types.js +476 -0
- package/dist/handlers/object-types.js.map +1 -0
- package/dist/handlers/query.d.ts +7 -0
- package/dist/handlers/query.d.ts.map +1 -0
- package/dist/handlers/query.js +190 -0
- package/dist/handlers/query.js.map +1 -0
- package/dist/handlers/read.d.ts +18 -0
- package/dist/handlers/read.d.ts.map +1 -0
- package/dist/handlers/read.js +581 -0
- package/dist/handlers/read.js.map +1 -0
- package/dist/handlers/schemas.d.ts +28 -26
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +17 -153
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/search.d.ts +24 -0
- package/dist/handlers/search.d.ts.map +1 -0
- package/dist/handlers/search.js +208 -0
- package/dist/handlers/search.js.map +1 -0
- package/dist/handlers/shared.d.ts +19 -0
- package/dist/handlers/shared.d.ts.map +1 -0
- package/dist/handlers/shared.js +23 -0
- package/dist/handlers/shared.js.map +1 -0
- package/dist/handlers/tool-registry.d.ts +44 -0
- package/dist/handlers/tool-registry.d.ts.map +1 -0
- package/dist/handlers/tool-registry.js +152 -0
- package/dist/handlers/tool-registry.js.map +1 -0
- package/dist/handlers/tools.d.ts +9 -0
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +40 -141
- package/dist/handlers/tools.js.map +1 -1
- package/dist/handlers/transport.d.ts +8 -0
- package/dist/handlers/transport.d.ts.map +1 -0
- package/dist/handlers/transport.js +281 -0
- package/dist/handlers/transport.js.map +1 -0
- package/dist/handlers/write/class-surgery.d.ts +18 -0
- package/dist/handlers/write/class-surgery.d.ts.map +1 -0
- package/dist/handlers/write/class-surgery.js +366 -0
- package/dist/handlers/write/class-surgery.js.map +1 -0
- package/dist/handlers/write/context.d.ts +43 -0
- package/dist/handlers/write/context.d.ts.map +1 -0
- package/dist/handlers/write/context.js +5 -0
- package/dist/handlers/write/context.js.map +1 -0
- package/dist/handlers/write/create.d.ts +8 -0
- package/dist/handlers/write/create.d.ts.map +1 -0
- package/dist/handlers/write/create.js +603 -0
- package/dist/handlers/write/create.js.map +1 -0
- package/dist/handlers/write/rap.d.ts +8 -0
- package/dist/handlers/write/rap.d.ts.map +1 -0
- package/dist/handlers/write/rap.js +235 -0
- package/dist/handlers/write/rap.js.map +1 -0
- package/dist/handlers/write/update-delete.d.ts +8 -0
- package/dist/handlers/write/update-delete.d.ts.map +1 -0
- package/dist/handlers/write/update-delete.js +182 -0
- package/dist/handlers/write/update-delete.js.map +1 -0
- package/dist/handlers/write-helpers.d.ts +155 -0
- package/dist/handlers/write-helpers.d.ts.map +1 -0
- package/dist/handlers/write-helpers.js +859 -0
- package/dist/handlers/write-helpers.js.map +1 -0
- package/dist/handlers/write.d.ts +16 -0
- package/dist/handlers/write.d.ts.map +1 -0
- package/dist/handlers/write.js +210 -0
- package/dist/handlers/write.js.map +1 -0
- package/dist/handlers/zod-errors.d.ts +1 -1
- package/dist/handlers/zod-errors.js +1 -1
- package/dist/lint/abaplint-config-cache.d.ts +5 -0
- package/dist/lint/abaplint-config-cache.d.ts.map +1 -0
- package/dist/lint/abaplint-config-cache.js +29 -0
- package/dist/lint/abaplint-config-cache.js.map +1 -0
- package/dist/lint/config-builder.d.ts.map +1 -1
- package/dist/lint/config-builder.js +3 -4
- package/dist/lint/config-builder.js.map +1 -1
- package/dist/lint/lint.d.ts +1 -1
- package/dist/lint/lint.d.ts.map +1 -1
- package/dist/lint/lint.js +3 -2
- package/dist/lint/lint.js.map +1 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +22 -8
- package/dist/server/config.js.map +1 -1
- package/dist/server/mcp-rate-limit.d.ts +1 -1
- package/dist/server/mcp-rate-limit.js +1 -1
- package/dist/server/server.d.ts +1 -1
- package/dist/server/server.js +3 -2
- package/dist/server/server.js.map +1 -1
- package/package.json +15 -10
- package/dist/handlers/intent.d.ts +0 -144
- package/dist/handlers/intent.d.ts.map +0 -1
- package/dist/handlers/intent.js +0 -6782
- package/dist/handlers/intent.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activate.js","sourceRoot":"","sources":["../../src/handlers/activate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache-security context for per-user (principal-propagation) clients — upstream fix #393.
|
|
3
|
+
*
|
|
4
|
+
* Under PP, every user gets their own SAP session; shared per-process caches (the inactive-object
|
|
5
|
+
* list, the dependency-payload cache) must be keyed per user — or bypassed — so one user's view
|
|
6
|
+
* never leaks into another's. handleToolCall builds the context once per call and threads it into
|
|
7
|
+
* the read/write/activate/context handlers and the server-driven write engine.
|
|
8
|
+
*
|
|
9
|
+
* This is the leaf home for the helpers because five handler modules + dispatch consume them.
|
|
10
|
+
*/
|
|
11
|
+
import type { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types.js';
|
|
12
|
+
import type { AdtClient } from '../adt/client.js';
|
|
13
|
+
import type { CachingLayer } from '../cache/caching-layer.js';
|
|
14
|
+
export interface CacheSecurityContext {
|
|
15
|
+
isPerUserClient: boolean;
|
|
16
|
+
userKey?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function buildCacheSecurityContext(authInfo: AuthInfo | undefined, isPerUserClient?: boolean): CacheSecurityContext;
|
|
19
|
+
export declare function inactiveListUserKey(client: AdtClient, cacheSecurity: CacheSecurityContext): string | undefined;
|
|
20
|
+
export declare function invalidateInactiveList(cachingLayer: CachingLayer | undefined, client: AdtClient, cacheSecurity: CacheSecurityContext): void;
|
|
21
|
+
export declare function contextCacheForDependencyPayloads(cachingLayer: CachingLayer | undefined, cacheSecurity: CacheSecurityContext): CachingLayer | undefined;
|
|
22
|
+
//# sourceMappingURL=cache-security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-security.d.ts","sourceRoot":"","sources":["../../src/handlers/cache-security.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAiCD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,eAAe,CAAC,EAAE,OAAO,GACxB,oBAAoB,CAMtB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAE9G;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,oBAAoB,GAClC,IAAI,CAEN;AAED,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,aAAa,EAAE,oBAAoB,GAClC,YAAY,GAAG,SAAS,CAE1B"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache-security context for per-user (principal-propagation) clients — upstream fix #393.
|
|
3
|
+
*
|
|
4
|
+
* Under PP, every user gets their own SAP session; shared per-process caches (the inactive-object
|
|
5
|
+
* list, the dependency-payload cache) must be keyed per user — or bypassed — so one user's view
|
|
6
|
+
* never leaks into another's. handleToolCall builds the context once per call and threads it into
|
|
7
|
+
* the read/write/activate/context handlers and the server-driven write engine.
|
|
8
|
+
*
|
|
9
|
+
* This is the leaf home for the helpers because five handler modules + dispatch consume them.
|
|
10
|
+
*/
|
|
11
|
+
function nonEmptyString(value) {
|
|
12
|
+
return typeof value === 'string' && value.trim().length > 0 ? value.trim() : undefined;
|
|
13
|
+
}
|
|
14
|
+
function resolveCacheUserKey(authInfo) {
|
|
15
|
+
if (!authInfo)
|
|
16
|
+
return undefined;
|
|
17
|
+
const extra = (authInfo.extra ?? {});
|
|
18
|
+
const issuerOrClient = nonEmptyString(extra.iss) ?? nonEmptyString(authInfo.clientId) ?? 'unknown-auth-source';
|
|
19
|
+
const namespace = issuerOrClient.toLowerCase();
|
|
20
|
+
const userName = nonEmptyString(extra.userName);
|
|
21
|
+
if (userName)
|
|
22
|
+
return `${namespace}:userName:${userName.toUpperCase()}`;
|
|
23
|
+
const email = nonEmptyString(extra.email);
|
|
24
|
+
if (email)
|
|
25
|
+
return `${namespace}:email:${email.toLowerCase()}`;
|
|
26
|
+
const sub = nonEmptyString(extra.sub);
|
|
27
|
+
if (sub)
|
|
28
|
+
return `${namespace}:sub:${sub}`;
|
|
29
|
+
const preferredUsername = nonEmptyString(extra.preferred_username);
|
|
30
|
+
if (preferredUsername)
|
|
31
|
+
return `${namespace}:preferred_username:${preferredUsername.toLowerCase()}`;
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
export function buildCacheSecurityContext(authInfo, isPerUserClient) {
|
|
35
|
+
if (!isPerUserClient)
|
|
36
|
+
return { isPerUserClient: false };
|
|
37
|
+
return {
|
|
38
|
+
isPerUserClient: true,
|
|
39
|
+
userKey: resolveCacheUserKey(authInfo),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export function inactiveListUserKey(client, cacheSecurity) {
|
|
43
|
+
return cacheSecurity.isPerUserClient ? cacheSecurity.userKey : client.username;
|
|
44
|
+
}
|
|
45
|
+
export function invalidateInactiveList(cachingLayer, client, cacheSecurity) {
|
|
46
|
+
cachingLayer?.inactiveLists.invalidate(inactiveListUserKey(client, cacheSecurity));
|
|
47
|
+
}
|
|
48
|
+
export function contextCacheForDependencyPayloads(cachingLayer, cacheSecurity) {
|
|
49
|
+
return cacheSecurity.isPerUserClient ? undefined : cachingLayer;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=cache-security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-security.js","sourceRoot":"","sources":["../../src/handlers/cache-security.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAED,SAAS,mBAAmB,CAAC,QAA8B;IACzD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAMlC,CAAC;IACF,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC;IAC/G,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;IAE/C,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,QAAQ;QAAE,OAAO,GAAG,SAAS,aAAa,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;IAEvE,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,KAAK;QAAE,OAAO,GAAG,SAAS,UAAU,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;IAE9D,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG;QAAE,OAAO,GAAG,SAAS,QAAQ,GAAG,EAAE,CAAC;IAE1C,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACnE,IAAI,iBAAiB;QAAE,OAAO,GAAG,SAAS,uBAAuB,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC;IAEnG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAA8B,EAC9B,eAAyB;IAEzB,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IACxD,OAAO;QACL,eAAe,EAAE,IAAI;QACrB,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,aAAmC;IACxF,OAAO,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,YAAsC,EACtC,MAAiB,EACjB,aAAmC;IAEnC,YAAY,EAAE,aAAa,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,YAAsC,EACtC,aAAmC;IAEnC,OAAO,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CDS impact + pre-write hint helpers.
|
|
3
|
+
*
|
|
4
|
+
* Downstream-impact bucketing/ordering, where-used scoping, the update/delete/activation
|
|
5
|
+
* dependency hints, and the CDS reserved-keyword guard. Shared by the SAPWrite, SAPActivate and
|
|
6
|
+
* SAPContext handlers.
|
|
7
|
+
*/
|
|
8
|
+
import type { AdtClient } from '../adt/client.js';
|
|
9
|
+
import type { ResolvedFeatures } from '../adt/types.js';
|
|
10
|
+
import { errorResult } from './shared.js';
|
|
11
|
+
export declare const CDS_DEPENDENCY_SENSITIVE_TYPES: Set<string>;
|
|
12
|
+
export declare function buildCdsUpdateCrudHint(client: AdtClient, name: string, objectUrl: string): Promise<string>;
|
|
13
|
+
export declare function buildCdsDeleteDependencyHint(client: AdtClient, type: string, name: string, objectUrl: string): Promise<string | undefined>;
|
|
14
|
+
export declare function buildCdsActivationDependencyHint(client: AdtClient, name: string, objectUrl: string): Promise<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Guard CDS syntax against known version-dependent features.
|
|
17
|
+
* Returns an error result if the source uses unsupported syntax, or undefined to proceed.
|
|
18
|
+
* Best-effort: if cachedFeatures is not available (no probe yet), always proceeds.
|
|
19
|
+
*/
|
|
20
|
+
export declare function guardCdsSyntax(type: string, source: string, features: ResolvedFeatures | undefined): ReturnType<typeof errorResult> | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Detect CDS reserved keywords used as field names in DDL source.
|
|
23
|
+
* Returns a warning string listing suspicious field names, or undefined if none found.
|
|
24
|
+
*/
|
|
25
|
+
export declare function warnCdsReservedKeywords(source: string): string | undefined;
|
|
26
|
+
//# sourceMappingURL=cds-hints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cds-hints.d.ts","sourceRoot":"","sources":["../../src/handlers/cds-hints.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,eAAO,MAAM,8BAA8B,aAAoE,CAAC;AAgOhH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BhH;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2C7B;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAuCD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GACrC,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,SAAS,CA8B5C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAyB1E"}
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CDS impact + pre-write hint helpers.
|
|
3
|
+
*
|
|
4
|
+
* Downstream-impact bucketing/ordering, where-used scoping, the update/delete/activation
|
|
5
|
+
* dependency hints, and the CDS reserved-keyword guard. Shared by the SAPWrite, SAPActivate and
|
|
6
|
+
* SAPContext handlers.
|
|
7
|
+
*/
|
|
8
|
+
import { classifyCdsImpact } from '../adt/cds-impact.js';
|
|
9
|
+
import { findWhereUsed, getWhereUsedScope } from '../adt/codeintel.js';
|
|
10
|
+
import { AdtApiError } from '../adt/errors.js';
|
|
11
|
+
import { normalizeObjectType } from './object-types.js';
|
|
12
|
+
import { errorResult } from './shared.js';
|
|
13
|
+
export const CDS_DEPENDENCY_SENSITIVE_TYPES = new Set(['DDLS', 'DCLS', 'DDLX', 'BDEF', 'SRVD', 'SRVB', 'TABL']);
|
|
14
|
+
const CDS_IMPACT_BUCKET_ORDER = [
|
|
15
|
+
'projectionViews',
|
|
16
|
+
'bdefs',
|
|
17
|
+
'serviceDefinitions',
|
|
18
|
+
'serviceBindings',
|
|
19
|
+
'accessControls',
|
|
20
|
+
'metadataExtensions',
|
|
21
|
+
'abapConsumers',
|
|
22
|
+
'tables',
|
|
23
|
+
'documentation',
|
|
24
|
+
'other',
|
|
25
|
+
];
|
|
26
|
+
const CDS_IMPACT_BUCKET_LABEL = {
|
|
27
|
+
projectionViews: 'Projection views (DDLS)',
|
|
28
|
+
bdefs: 'Behavior definitions (BDEF)',
|
|
29
|
+
serviceDefinitions: 'Service definitions (SRVD)',
|
|
30
|
+
serviceBindings: 'Service bindings (SRVB)',
|
|
31
|
+
accessControls: 'Access controls (DCLS)',
|
|
32
|
+
metadataExtensions: 'Metadata extensions (DDLX)',
|
|
33
|
+
abapConsumers: 'ABAP consumers',
|
|
34
|
+
tables: 'Tables',
|
|
35
|
+
documentation: 'Documentation (SKTD)',
|
|
36
|
+
other: 'Other',
|
|
37
|
+
};
|
|
38
|
+
const CDS_REACTIVATION_BUCKET_ORDER = [
|
|
39
|
+
'projectionViews',
|
|
40
|
+
'accessControls',
|
|
41
|
+
'metadataExtensions',
|
|
42
|
+
'bdefs',
|
|
43
|
+
'serviceDefinitions',
|
|
44
|
+
'serviceBindings',
|
|
45
|
+
'other',
|
|
46
|
+
];
|
|
47
|
+
const CDS_DELETE_BUCKET_ORDER = [
|
|
48
|
+
'serviceBindings',
|
|
49
|
+
'serviceDefinitions',
|
|
50
|
+
'bdefs',
|
|
51
|
+
'metadataExtensions',
|
|
52
|
+
'accessControls',
|
|
53
|
+
'projectionViews',
|
|
54
|
+
'other',
|
|
55
|
+
];
|
|
56
|
+
const CDS_ORDERABLE_TYPES = new Set(['DDLS', 'DCLS', 'DDLX', 'BDEF', 'SRVD', 'SRVB']);
|
|
57
|
+
const CDS_IMPACT_WHERE_USED_TYPES = new Set([
|
|
58
|
+
'DDLS',
|
|
59
|
+
'DCLS',
|
|
60
|
+
'DDLX',
|
|
61
|
+
'BDEF',
|
|
62
|
+
'SRVD',
|
|
63
|
+
'SRVB',
|
|
64
|
+
'CLAS',
|
|
65
|
+
'INTF',
|
|
66
|
+
'PROG',
|
|
67
|
+
'FUGR',
|
|
68
|
+
'TABL',
|
|
69
|
+
'SKTD',
|
|
70
|
+
]);
|
|
71
|
+
function formatCdsImpactBuckets(downstream, maxNames = 4) {
|
|
72
|
+
const lines = [];
|
|
73
|
+
for (const bucket of CDS_IMPACT_BUCKET_ORDER) {
|
|
74
|
+
const entries = downstream[bucket];
|
|
75
|
+
if (entries.length === 0)
|
|
76
|
+
continue;
|
|
77
|
+
const unique = Array.from(new Set(entries.map((entry) => {
|
|
78
|
+
const mainType = entry.type.split('/')[0] || entry.type || '?';
|
|
79
|
+
return `${entry.name} (${mainType})`;
|
|
80
|
+
})));
|
|
81
|
+
const listed = unique.slice(0, maxNames).join(', ');
|
|
82
|
+
const more = unique.length > maxNames ? ` (+${unique.length - maxNames} more)` : '';
|
|
83
|
+
lines.push(`- ${CDS_IMPACT_BUCKET_LABEL[bucket]}: ${listed}${more}`);
|
|
84
|
+
}
|
|
85
|
+
return lines;
|
|
86
|
+
}
|
|
87
|
+
function mainObjectType(type) {
|
|
88
|
+
// First consult SLASH_TYPE_MAP so collapsed types (TABL/DS → TABL, legacy
|
|
89
|
+
// STRU/DS → TABL) resolve to ARC-1's canonical short type. Then fall back to
|
|
90
|
+
// splitting on '/' so unknown slash forms (e.g. BDEF/BO from where-used
|
|
91
|
+
// results) still produce the parent type rather than the full slash form.
|
|
92
|
+
const normalized = normalizeObjectType(type);
|
|
93
|
+
if (normalized && !normalized.includes('/'))
|
|
94
|
+
return normalized;
|
|
95
|
+
return type.split('/')[0]?.toUpperCase() ?? '';
|
|
96
|
+
}
|
|
97
|
+
function collectOrderedCdsObjects(downstream, bucketOrder) {
|
|
98
|
+
const seen = new Set();
|
|
99
|
+
const ordered = [];
|
|
100
|
+
for (const bucket of bucketOrder) {
|
|
101
|
+
for (const entry of downstream[bucket]) {
|
|
102
|
+
const type = mainObjectType(entry.type);
|
|
103
|
+
const name = String(entry.name ?? '').toUpperCase();
|
|
104
|
+
if (!type || !name || !CDS_ORDERABLE_TYPES.has(type))
|
|
105
|
+
continue;
|
|
106
|
+
const key = `${type}:${name}`;
|
|
107
|
+
if (seen.has(key))
|
|
108
|
+
continue;
|
|
109
|
+
seen.add(key);
|
|
110
|
+
ordered.push({ type, name });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return ordered;
|
|
114
|
+
}
|
|
115
|
+
function dedupeCdsObjects(objects) {
|
|
116
|
+
const seen = new Set();
|
|
117
|
+
const deduped = [];
|
|
118
|
+
for (const obj of objects) {
|
|
119
|
+
const key = `${obj.type}:${obj.name.toUpperCase()}`;
|
|
120
|
+
if (seen.has(key))
|
|
121
|
+
continue;
|
|
122
|
+
seen.add(key);
|
|
123
|
+
deduped.push(obj);
|
|
124
|
+
}
|
|
125
|
+
return deduped;
|
|
126
|
+
}
|
|
127
|
+
function formatCdsObjectList(objects, max = 8) {
|
|
128
|
+
if (objects.length === 0)
|
|
129
|
+
return '';
|
|
130
|
+
const listed = objects
|
|
131
|
+
.slice(0, max)
|
|
132
|
+
.map((obj) => `${obj.type} ${obj.name}`)
|
|
133
|
+
.join(', ');
|
|
134
|
+
return objects.length > max ? `${listed} (+${objects.length - max} more)` : listed;
|
|
135
|
+
}
|
|
136
|
+
function formatCdsActivationPayload(objects, max = 8) {
|
|
137
|
+
if (objects.length === 0)
|
|
138
|
+
return '[]';
|
|
139
|
+
const listed = objects
|
|
140
|
+
.slice(0, max)
|
|
141
|
+
.map((obj) => `{type:"${obj.type}",name:"${obj.name}"}`)
|
|
142
|
+
.join(', ');
|
|
143
|
+
return objects.length > max ? `[${listed}, ...] (+${objects.length - max} more)` : `[${listed}]`;
|
|
144
|
+
}
|
|
145
|
+
function dedupeWhereUsedResults(results) {
|
|
146
|
+
const seen = new Set();
|
|
147
|
+
const deduped = [];
|
|
148
|
+
for (const result of results) {
|
|
149
|
+
const uriKey = result.uri.toLowerCase();
|
|
150
|
+
const fallbackKey = `${mainObjectType(result.type)}:${String(result.name ?? '').toUpperCase()}`;
|
|
151
|
+
const key = uriKey || fallbackKey;
|
|
152
|
+
if (!key || seen.has(key))
|
|
153
|
+
continue;
|
|
154
|
+
seen.add(key);
|
|
155
|
+
deduped.push(result);
|
|
156
|
+
}
|
|
157
|
+
return deduped;
|
|
158
|
+
}
|
|
159
|
+
function isCdsImpactWhereUsedType(objectType) {
|
|
160
|
+
return CDS_IMPACT_WHERE_USED_TYPES.has(mainObjectType(objectType));
|
|
161
|
+
}
|
|
162
|
+
async function loadScopedCdsWhereUsedResults(client, objectUrl) {
|
|
163
|
+
try {
|
|
164
|
+
const scope = await getWhereUsedScope(client.http, client.safety, objectUrl);
|
|
165
|
+
const scopedTypes = Array.from(new Set(scope.entries
|
|
166
|
+
.filter((entry) => entry.count > 0 && isCdsImpactWhereUsedType(entry.objectType))
|
|
167
|
+
.map((entry) => entry.objectType)));
|
|
168
|
+
const scopedResults = [];
|
|
169
|
+
for (const objectType of scopedTypes) {
|
|
170
|
+
try {
|
|
171
|
+
scopedResults.push(...(await findWhereUsed(client.http, client.safety, objectUrl, objectType)));
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
// Scoped results only enrich guidance; one unsupported filter must not
|
|
175
|
+
// make the write/delete/activate path fail.
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return scopedResults;
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
if (err instanceof AdtApiError && [404, 405, 415, 501].includes(err.statusCode)) {
|
|
182
|
+
return [];
|
|
183
|
+
}
|
|
184
|
+
// Where-used enrichment is advisory; the original write/delete/activate
|
|
185
|
+
// result should not fail just because a scoped lookup is unavailable.
|
|
186
|
+
return [];
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
async function loadCdsImpactDownstream(client, objectUrl) {
|
|
190
|
+
try {
|
|
191
|
+
const whereUsed = await findWhereUsed(client.http, client.safety, objectUrl);
|
|
192
|
+
// Some SAP releases return a shallow/default result set for unfiltered
|
|
193
|
+
// usageReferences. Scope + object-type filters usually expose the full
|
|
194
|
+
// bucket fan-out, which is exactly what CRUD guidance needs.
|
|
195
|
+
const scopedWhereUsed = await loadScopedCdsWhereUsedResults(client, objectUrl);
|
|
196
|
+
const combinedWhereUsed = dedupeWhereUsedResults([...whereUsed, ...scopedWhereUsed]);
|
|
197
|
+
return classifyCdsImpact(combinedWhereUsed, { includeIndirect: true });
|
|
198
|
+
}
|
|
199
|
+
catch (err) {
|
|
200
|
+
if (err instanceof AdtApiError && [404, 405, 415, 501].includes(err.statusCode)) {
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
return undefined;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
export async function buildCdsUpdateCrudHint(client, name, objectUrl) {
|
|
207
|
+
const lines = [];
|
|
208
|
+
lines.push(`CDS update follow-up for ${name}:`);
|
|
209
|
+
const downstream = await loadCdsImpactDownstream(client, objectUrl);
|
|
210
|
+
let orderedReactivation = [];
|
|
211
|
+
if (downstream) {
|
|
212
|
+
const bucketLines = formatCdsImpactBuckets(downstream);
|
|
213
|
+
if (bucketLines.length > 0) {
|
|
214
|
+
lines.push(`- Downstream consumers in ADT where-used index: ${downstream.summary.total}`);
|
|
215
|
+
lines.push(...bucketLines);
|
|
216
|
+
orderedReactivation = collectOrderedCdsObjects(downstream, CDS_REACTIVATION_BUCKET_ORDER);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
lines.push('- No downstream consumers found in the current ADT where-used index.');
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
lines.push('- Where-used index is unavailable on this system (impact list could not be fetched).');
|
|
224
|
+
}
|
|
225
|
+
lines.push(`- SAPWrite(update) stores inactive source only. Run SAPActivate(type="DDLS", name="${name}").`);
|
|
226
|
+
lines.push('- Field/alias/signature changes may require re-activation of dependent DDLS/BDEF/SRVD/DDLX objects.');
|
|
227
|
+
if (orderedReactivation.length > 0) {
|
|
228
|
+
const activationPlan = dedupeCdsObjects([{ type: 'DDLS', name }, ...orderedReactivation]);
|
|
229
|
+
lines.push(`- Suggested re-activation order: ${formatCdsObjectList(activationPlan)}.`);
|
|
230
|
+
lines.push(`- Batch call template: SAPActivate(objects=${formatCdsActivationPayload(activationPlan)}).`);
|
|
231
|
+
}
|
|
232
|
+
return lines.join('\n');
|
|
233
|
+
}
|
|
234
|
+
export async function buildCdsDeleteDependencyHint(client, type, name, objectUrl) {
|
|
235
|
+
const downstream = await loadCdsImpactDownstream(client, objectUrl);
|
|
236
|
+
if (!downstream || downstream.summary.total === 0) {
|
|
237
|
+
const lines = [];
|
|
238
|
+
lines.push(`Delete dependency follow-up for ${type} ${name}:`);
|
|
239
|
+
if (!downstream) {
|
|
240
|
+
lines.push('- ADT where-used lookup is unavailable on this system or failed during error enrichment.');
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
lines.push('- No current ADT where-used dependents were returned, but SAP still rejected delete with a DDIC dependency error.');
|
|
244
|
+
}
|
|
245
|
+
lines.push('- If dependents were just deleted, wait briefly and retry; SAP active dependency/index state can lag in the same cleanup session.');
|
|
246
|
+
lines.push(`- If source was stripped or restored, run SAPActivate(type="${type}", name="${name}") first; delete checks active DDIC dependencies.`);
|
|
247
|
+
lines.push(`- If it keeps failing, run SAPNavigate(action="references", type="${type}", name="${name}") and check for edit locks/inactive objects before retrying.`);
|
|
248
|
+
return lines.join('\n');
|
|
249
|
+
}
|
|
250
|
+
const lines = [];
|
|
251
|
+
lines.push(`Blocking dependents for ${type} ${name} (ADT where-used):`);
|
|
252
|
+
lines.push(...formatCdsImpactBuckets(downstream));
|
|
253
|
+
const orderedDelete = collectOrderedCdsObjects(downstream, CDS_DELETE_BUCKET_ORDER);
|
|
254
|
+
if (orderedDelete.length > 0) {
|
|
255
|
+
lines.push(`Suggested delete order: ${formatCdsObjectList(orderedDelete)}, then ${type} ${name}.`);
|
|
256
|
+
}
|
|
257
|
+
lines.push(`Delete/refactor these dependents first, then retry SAPWrite(action="delete", type="${type}", name="${name}").`);
|
|
258
|
+
lines.push('If the listed dependents were just deleted, wait briefly and retry; SAP active dependency/index state can lag in the same cleanup session.');
|
|
259
|
+
lines.push('For cyclic CDS projection graphs, temporarily strip redirected/composition associations, activate stripped DDLS, then delete.');
|
|
260
|
+
lines.push('If source was already stripped, activate first — delete checks active version dependencies.');
|
|
261
|
+
return lines.join('\n');
|
|
262
|
+
}
|
|
263
|
+
export async function buildCdsActivationDependencyHint(client, name, objectUrl) {
|
|
264
|
+
const lines = [];
|
|
265
|
+
const downstream = await loadCdsImpactDownstream(client, objectUrl);
|
|
266
|
+
let orderedReactivation = [];
|
|
267
|
+
lines.push(`CDS activation impact for ${name}:`);
|
|
268
|
+
if (!downstream || downstream.summary.total === 0) {
|
|
269
|
+
lines.push('- No downstream consumers found in ADT where-used index, or index is unavailable.');
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
lines.push(...formatCdsImpactBuckets(downstream));
|
|
273
|
+
orderedReactivation = collectOrderedCdsObjects(downstream, CDS_REACTIVATION_BUCKET_ORDER);
|
|
274
|
+
}
|
|
275
|
+
lines.push('- When fields/elements change, dependents may fail until re-activated in dependency order.');
|
|
276
|
+
if (orderedReactivation.length > 0) {
|
|
277
|
+
const activationPlan = dedupeCdsObjects([{ type: 'DDLS', name }, ...orderedReactivation]);
|
|
278
|
+
lines.push(`- Suggested re-activation order: ${formatCdsObjectList(activationPlan)}.`);
|
|
279
|
+
lines.push(`- Batch call template: SAPActivate(objects=${formatCdsActivationPayload(activationPlan)}).`);
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
lines.push(`- Try SAPActivate(objects=[{type:"DDLS",name:"${name}"}, ...dependents...]).`);
|
|
283
|
+
}
|
|
284
|
+
return lines.join('\n');
|
|
285
|
+
}
|
|
286
|
+
// ─── CDS Pre-Write Validation ──────────────────────────────────────
|
|
287
|
+
/** Common CDS reserved/function keywords that cause silent DDL save failures when used as field names */
|
|
288
|
+
const CDS_RESERVED_KEYWORDS = new Set([
|
|
289
|
+
'position',
|
|
290
|
+
'value',
|
|
291
|
+
'type',
|
|
292
|
+
'data',
|
|
293
|
+
'timestamp',
|
|
294
|
+
'language',
|
|
295
|
+
'text',
|
|
296
|
+
'source',
|
|
297
|
+
'target',
|
|
298
|
+
'name',
|
|
299
|
+
'description',
|
|
300
|
+
'concat',
|
|
301
|
+
'replace',
|
|
302
|
+
'substring',
|
|
303
|
+
'length',
|
|
304
|
+
'left',
|
|
305
|
+
'right',
|
|
306
|
+
'round',
|
|
307
|
+
'abs',
|
|
308
|
+
'floor',
|
|
309
|
+
'ceiling',
|
|
310
|
+
'division',
|
|
311
|
+
'mod',
|
|
312
|
+
'case',
|
|
313
|
+
'when',
|
|
314
|
+
'then',
|
|
315
|
+
'else',
|
|
316
|
+
'end',
|
|
317
|
+
'cast',
|
|
318
|
+
'coalesce',
|
|
319
|
+
'uuid',
|
|
320
|
+
]);
|
|
321
|
+
/**
|
|
322
|
+
* Guard CDS syntax against known version-dependent features.
|
|
323
|
+
* Returns an error result if the source uses unsupported syntax, or undefined to proceed.
|
|
324
|
+
* Best-effort: if cachedFeatures is not available (no probe yet), always proceeds.
|
|
325
|
+
*/
|
|
326
|
+
export function guardCdsSyntax(type, source, features) {
|
|
327
|
+
if (type !== 'DDLS' || !source)
|
|
328
|
+
return undefined;
|
|
329
|
+
// Guard: "define table entity" requires ABAP Cloud (BTP) or SAP_BASIS >= 757
|
|
330
|
+
if (/\bdefine\s+table\s+(entity|function)\b/i.test(source)) {
|
|
331
|
+
const release = features?.abapRelease;
|
|
332
|
+
const isBtp = features?.systemType === 'btp';
|
|
333
|
+
if (!isBtp && release) {
|
|
334
|
+
const releaseNum = Number.parseInt(release.replace(/\D/g, ''), 10);
|
|
335
|
+
if (releaseNum > 0 && releaseNum < 757) {
|
|
336
|
+
return errorResult(`"define table entity" syntax requires ABAP Cloud (BTP) or S/4HANA on-premise with SAP_BASIS >= 757. ` +
|
|
337
|
+
`This system reports SAP_BASIS ${release}. ` +
|
|
338
|
+
`Use DDIC transparent tables (SAPWrite type="TABL" or SE11) + CDS view entities ("define [root] view entity") instead.`);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
// Advisory: warn about CDS reserved keywords used as field names
|
|
343
|
+
const keywordWarning = warnCdsReservedKeywords(source);
|
|
344
|
+
if (keywordWarning) {
|
|
345
|
+
// Non-blocking — return undefined to proceed, but the warning will be
|
|
346
|
+
// appended to the success message by the caller if needed.
|
|
347
|
+
// For now we return it as an advisory error only when the keyword is
|
|
348
|
+
// highly likely to cause issues (position is the most common).
|
|
349
|
+
// We don't block the write — just append it as advisory context.
|
|
350
|
+
}
|
|
351
|
+
return undefined;
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Detect CDS reserved keywords used as field names in DDL source.
|
|
355
|
+
* Returns a warning string listing suspicious field names, or undefined if none found.
|
|
356
|
+
*/
|
|
357
|
+
export function warnCdsReservedKeywords(source) {
|
|
358
|
+
// Extract field-name-like tokens: lines inside { } that define fields
|
|
359
|
+
// Pattern: whitespace + identifier + colon (field definitions)
|
|
360
|
+
const fieldNames = [];
|
|
361
|
+
const braceStart = source.indexOf('{');
|
|
362
|
+
const braceEnd = source.lastIndexOf('}');
|
|
363
|
+
if (braceStart === -1 || braceEnd === -1)
|
|
364
|
+
return undefined;
|
|
365
|
+
const body = source.slice(braceStart + 1, braceEnd);
|
|
366
|
+
// Match field definitions: leading whitespace, optional "key", then identifier before ":"
|
|
367
|
+
const fieldPattern = /^\s*(?:key\s+)?(\w+)\s*:/gim;
|
|
368
|
+
let match;
|
|
369
|
+
while ((match = fieldPattern.exec(body)) !== null) {
|
|
370
|
+
const fieldName = match[1]?.toLowerCase();
|
|
371
|
+
if (fieldName && CDS_RESERVED_KEYWORDS.has(fieldName)) {
|
|
372
|
+
fieldNames.push(match[1]);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
if (fieldNames.length === 0)
|
|
376
|
+
return undefined;
|
|
377
|
+
return (`Warning: field name(s) ${fieldNames.map((f) => `'${f}'`).join(', ')} may be CDS reserved keywords. ` +
|
|
378
|
+
`If the DDL save fails with a generic syntax error, rename them (e.g., 'position' → 'playing_position', 'type' → 'obj_type').`);
|
|
379
|
+
}
|
|
380
|
+
//# sourceMappingURL=cds-hints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cds-hints.js","sourceRoot":"","sources":["../../src/handlers/cds-hints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SAPContext handler — object context: relatives, hierarchy, method listings, CDS upstream/
|
|
3
|
+
* downstream dependency analysis.
|
|
4
|
+
*/
|
|
5
|
+
import type { AdtClient } from '../adt/client.js';
|
|
6
|
+
import type { CachingLayer } from '../cache/caching-layer.js';
|
|
7
|
+
import { type CacheSecurityContext } from './cache-security.js';
|
|
8
|
+
import { type ToolResult } from './shared.js';
|
|
9
|
+
export declare function handleSAPContext(client: AdtClient, args: Record<string, unknown>, cachingLayer: CachingLayer | undefined, cacheSecurity: CacheSecurityContext): Promise<ToolResult>;
|
|
10
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/handlers/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAC;AAIpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,OAAO,EAAE,KAAK,oBAAoB,EAAqC,MAAM,qBAAqB,CAAC;AAGnG,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,aAAa,CAAC;AAcvE,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,aAAa,EAAE,oBAAoB,GAClC,OAAO,CAAC,UAAU,CAAC,CA4WrB"}
|