arc-1 1.4.0 → 1.5.1
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 +1 -1
- package/dist/adt/abapgit.d.ts.map +1 -1
- package/dist/adt/abapgit.js +64 -7
- package/dist/adt/abapgit.js.map +1 -1
- package/dist/adt/aunit.js +4 -4
- package/dist/adt/aunit.js.map +1 -1
- package/dist/adt/class-structure.d.ts +4 -2
- package/dist/adt/class-structure.d.ts.map +1 -1
- package/dist/adt/class-structure.js +18 -9
- package/dist/adt/class-structure.js.map +1 -1
- package/dist/adt/client.d.ts +19 -53
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +72 -96
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/codeintel.d.ts +1 -1
- package/dist/adt/codeintel.d.ts.map +1 -1
- package/dist/adt/codeintel.js +11 -4
- package/dist/adt/codeintel.js.map +1 -1
- package/dist/adt/config.d.ts +5 -0
- package/dist/adt/config.d.ts.map +1 -1
- package/dist/adt/config.js.map +1 -1
- package/dist/adt/crud.d.ts +3 -3
- package/dist/adt/crud.d.ts.map +1 -1
- package/dist/adt/crud.js +21 -6
- package/dist/adt/crud.js.map +1 -1
- package/dist/adt/data-source-policy.d.ts +21 -13
- package/dist/adt/data-source-policy.d.ts.map +1 -1
- package/dist/adt/data-source-policy.js +63 -114
- package/dist/adt/data-source-policy.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 +17 -3
- package/dist/adt/ddic-xml.js.map +1 -1
- package/dist/adt/devtools.js +3 -3
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/diagnostics.js +4 -4
- package/dist/adt/diagnostics.js.map +1 -1
- package/dist/adt/enhancements.d.ts +7 -0
- package/dist/adt/enhancements.d.ts.map +1 -0
- package/dist/adt/enhancements.js +89 -0
- package/dist/adt/enhancements.js.map +1 -0
- package/dist/adt/errors.d.ts +19 -10
- package/dist/adt/errors.d.ts.map +1 -1
- package/dist/adt/errors.js +73 -53
- package/dist/adt/errors.js.map +1 -1
- package/dist/adt/fm-signature.d.ts +1 -1
- package/dist/adt/fm-signature.d.ts.map +1 -1
- package/dist/adt/fm-signature.js +9 -1
- package/dist/adt/fm-signature.js.map +1 -1
- package/dist/adt/http.d.ts +7 -27
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +34 -32
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/internal-data-operations.d.ts +3 -2
- package/dist/adt/internal-data-operations.d.ts.map +1 -1
- package/dist/adt/internal-data-operations.js +8 -1
- package/dist/adt/internal-data-operations.js.map +1 -1
- package/dist/adt/legacy-content-handler.d.ts +3 -0
- package/dist/adt/legacy-content-handler.d.ts.map +1 -0
- package/dist/adt/legacy-content-handler.js +21 -0
- package/dist/adt/legacy-content-handler.js.map +1 -0
- package/dist/adt/lock-object.d.ts +92 -0
- package/dist/adt/lock-object.d.ts.map +1 -0
- package/dist/adt/lock-object.js +195 -0
- package/dist/adt/lock-object.js.map +1 -0
- package/dist/adt/rap-generate.d.ts +5 -1
- package/dist/adt/rap-generate.d.ts.map +1 -1
- package/dist/adt/rap-generate.js +112 -100
- package/dist/adt/rap-generate.js.map +1 -1
- package/dist/adt/server-driven.d.ts +42 -10
- package/dist/adt/server-driven.d.ts.map +1 -1
- package/dist/adt/server-driven.js +98 -18
- package/dist/adt/server-driven.js.map +1 -1
- package/dist/adt/source-precondition.d.ts +3 -0
- package/dist/adt/source-precondition.d.ts.map +1 -0
- package/dist/adt/source-precondition.js +12 -0
- package/dist/adt/source-precondition.js.map +1 -0
- package/dist/adt/text-search.js +5 -5
- package/dist/adt/text-search.js.map +1 -1
- package/dist/adt/transport.js +3 -3
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/types.d.ts +19 -1
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/user-agent.d.ts +4 -0
- package/dist/adt/user-agent.d.ts.map +1 -0
- package/dist/adt/user-agent.js +11 -0
- package/dist/adt/user-agent.js.map +1 -0
- package/dist/adt/xml-entities.d.ts +3 -0
- package/dist/adt/xml-entities.d.ts.map +1 -0
- package/dist/adt/xml-entities.js +19 -0
- package/dist/adt/xml-entities.js.map +1 -0
- package/dist/adt/xml-parser.d.ts +7 -30
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +25 -54
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/authz/policy.d.ts.map +1 -1
- package/dist/authz/policy.js +2 -0
- package/dist/authz/policy.js.map +1 -1
- package/dist/cache/caching-layer.d.ts.map +1 -1
- package/dist/cache/caching-layer.js +7 -11
- package/dist/cache/caching-layer.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/context/compressor.d.ts.map +1 -1
- package/dist/context/compressor.js +5 -25
- package/dist/context/compressor.js.map +1 -1
- package/dist/context/deps.d.ts.map +1 -1
- package/dist/context/deps.js +50 -4
- package/dist/context/deps.js.map +1 -1
- package/dist/context/grep.d.ts +14 -0
- package/dist/context/grep.d.ts.map +1 -1
- package/dist/context/grep.js +49 -0
- package/dist/context/grep.js.map +1 -1
- package/dist/context/unit-surgery.d.ts +3 -1
- package/dist/context/unit-surgery.d.ts.map +1 -1
- package/dist/context/unit-surgery.js +52 -5
- package/dist/context/unit-surgery.js.map +1 -1
- package/dist/handlers/activate.d.ts +1 -1
- package/dist/handlers/activate.d.ts.map +1 -1
- package/dist/handlers/activate.js +23 -35
- package/dist/handlers/activate.js.map +1 -1
- package/dist/handlers/diagnose.d.ts.map +1 -1
- package/dist/handlers/diagnose.js +8 -29
- package/dist/handlers/diagnose.js.map +1 -1
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +21 -5
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/editable-source.d.ts +6 -0
- package/dist/handlers/editable-source.d.ts.map +1 -0
- package/dist/handlers/editable-source.js +53 -0
- package/dist/handlers/editable-source.js.map +1 -0
- package/dist/handlers/feature-cache.d.ts +2 -0
- package/dist/handlers/feature-cache.d.ts.map +1 -1
- package/dist/handlers/feature-cache.js +8 -0
- package/dist/handlers/feature-cache.js.map +1 -1
- package/dist/handlers/hyperfocused.js +1 -1
- package/dist/handlers/hyperfocused.js.map +1 -1
- package/dist/handlers/lint.js +1 -1
- package/dist/handlers/lint.js.map +1 -1
- package/dist/handlers/navigate.d.ts.map +1 -1
- package/dist/handlers/navigate.js +12 -2
- package/dist/handlers/navigate.js.map +1 -1
- package/dist/handlers/object-types.d.ts +2 -3
- package/dist/handlers/object-types.d.ts.map +1 -1
- package/dist/handlers/object-types.js +13 -5
- package/dist/handlers/object-types.js.map +1 -1
- package/dist/handlers/read.d.ts.map +1 -1
- package/dist/handlers/read.js +38 -7
- package/dist/handlers/read.js.map +1 -1
- package/dist/handlers/schemas.d.ts +39 -0
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +50 -7
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/syntax.d.ts +5 -0
- package/dist/handlers/syntax.d.ts.map +1 -0
- package/dist/handlers/syntax.js +35 -0
- package/dist/handlers/syntax.js.map +1 -0
- package/dist/handlers/tool-descriptions.d.ts.map +1 -1
- package/dist/handlers/tool-descriptions.js +8 -6
- package/dist/handlers/tool-descriptions.js.map +1 -1
- package/dist/handlers/tool-registry.d.ts +4 -4
- package/dist/handlers/tool-registry.d.ts.map +1 -1
- package/dist/handlers/tool-registry.js +4 -0
- package/dist/handlers/tool-registry.js.map +1 -1
- package/dist/handlers/tools.d.ts +1 -16
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +44 -55
- package/dist/handlers/tools.js.map +1 -1
- package/dist/handlers/transport.d.ts.map +1 -1
- package/dist/handlers/transport.js +17 -3
- package/dist/handlers/transport.js.map +1 -1
- package/dist/handlers/where-used.d.ts.map +1 -1
- package/dist/handlers/where-used.js +0 -5
- package/dist/handlers/where-used.js.map +1 -1
- package/dist/handlers/write/class-edit.d.ts +16 -0
- package/dist/handlers/write/class-edit.d.ts.map +1 -0
- package/dist/handlers/write/class-edit.js +55 -0
- package/dist/handlers/write/class-edit.js.map +1 -0
- package/dist/handlers/write/class-surgery.d.ts +2 -2
- package/dist/handlers/write/class-surgery.d.ts.map +1 -1
- package/dist/handlers/write/class-surgery.js +189 -220
- package/dist/handlers/write/class-surgery.js.map +1 -1
- package/dist/handlers/write/context.d.ts +1 -8
- package/dist/handlers/write/context.d.ts.map +1 -1
- package/dist/handlers/write/create.d.ts.map +1 -1
- package/dist/handlers/write/create.js +11 -4
- package/dist/handlers/write/create.js.map +1 -1
- package/dist/handlers/write/metadata-update.d.ts +4 -0
- package/dist/handlers/write/metadata-update.d.ts.map +1 -0
- package/dist/handlers/write/metadata-update.js +58 -0
- package/dist/handlers/write/metadata-update.js.map +1 -0
- package/dist/handlers/write/rap.d.ts.map +1 -1
- package/dist/handlers/write/rap.js +132 -155
- package/dist/handlers/write/rap.js.map +1 -1
- package/dist/handlers/write/unit-surgery.d.ts +2 -2
- package/dist/handlers/write/unit-surgery.d.ts.map +1 -1
- package/dist/handlers/write/unit-surgery.js +14 -8
- package/dist/handlers/write/unit-surgery.js.map +1 -1
- package/dist/handlers/write/update-delete.d.ts.map +1 -1
- package/dist/handlers/write/update-delete.js +34 -82
- package/dist/handlers/write/update-delete.js.map +1 -1
- package/dist/handlers/write-helpers.d.ts +3 -2
- package/dist/handlers/write-helpers.d.ts.map +1 -1
- package/dist/handlers/write-helpers.js +123 -18
- package/dist/handlers/write-helpers.js.map +1 -1
- package/dist/handlers/write.d.ts.map +1 -1
- package/dist/handlers/write.js +15 -29
- package/dist/handlers/write.js.map +1 -1
- package/dist/public/read-only-client.d.ts +6 -0
- package/dist/public/read-only-client.d.ts.map +1 -0
- package/dist/public/read-only-client.js +66 -0
- package/dist/public/read-only-client.js.map +1 -0
- package/dist/public/types.d.ts +2 -13
- package/dist/public/types.d.ts.map +1 -1
- package/dist/server/audit.d.ts +6 -1
- package/dist/server/audit.d.ts.map +1 -1
- package/dist/server/audit.js.map +1 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +3 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/deny-actions.d.ts +2 -1
- package/dist/server/deny-actions.d.ts.map +1 -1
- package/dist/server/deny-actions.js +13 -2
- package/dist/server/deny-actions.js.map +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +4 -0
- package/dist/server/http.js.map +1 -1
- package/dist/server/logger.d.ts +3 -3
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/logger.js +7 -7
- package/dist/server/logger.js.map +1 -1
- package/dist/server/multi-target-basic-auth.d.ts.map +1 -1
- package/dist/server/multi-target-basic-auth.js +1 -0
- package/dist/server/multi-target-basic-auth.js.map +1 -1
- package/dist/server/multi-target-runtime.d.ts.map +1 -1
- package/dist/server/multi-target-runtime.js +1 -0
- package/dist/server/multi-target-runtime.js.map +1 -1
- package/dist/server/plugin-loader.d.ts.map +1 -1
- package/dist/server/plugin-loader.js +1 -3
- package/dist/server/plugin-loader.js.map +1 -1
- package/dist/server/safe-http-client.d.ts +6 -12
- package/dist/server/safe-http-client.d.ts.map +1 -1
- package/dist/server/safe-http-client.js +28 -63
- package/dist/server/safe-http-client.js.map +1 -1
- package/dist/server/server.d.ts +5 -4
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +58 -51
- package/dist/server/server.js.map +1 -1
- package/dist/server/types.d.ts +1 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +2 -0
- package/dist/server/types.js.map +1 -1
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +7 -7
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SAPWrite actions — class-section surgery (issue #303).
|
|
3
3
|
*
|
|
4
|
-
* These actions share a common shape:
|
|
5
|
-
* /source/main (or /includes/<inc> when include= is set) → PUT
|
|
4
|
+
* These actions share a common shape: lock → fresh source/structure → optional diff/refuse → splice into
|
|
5
|
+
* /source/main (or /includes/<inc> when include= is set) → PUT → unlock, with no auto-activation.
|
|
6
6
|
* Pre-write lint runs on the SPLICED FULL source (not the partial input fragment) because a raw
|
|
7
7
|
* DEFINITION block alone fails abaplint with "Expected CLASSIMPLEMENTATION" (verified live on a4h);
|
|
8
8
|
* lint is skipped for include= writes (same precedent as the `update include=` path).
|
|
9
9
|
*/
|
|
10
|
-
import { diffMethodSets, extractMethodNameFromClause, findSectionAnchor, insertMethodPair, moveMethodDefinition, removeMethodPair, spliceClassDefinition, spliceMethodSignature, } from '../../adt/class-structure.js';
|
|
11
|
-
import { safeUpdateClassInclude
|
|
10
|
+
import { diffMethodSets, extractMethodNameFromClause, findSectionAnchor, insertMethodPair, isMethodRedefinition, moveMethodDefinition, removeMethodPair, spliceClassDefinition, spliceMethodSignature, } from '../../adt/class-structure.js';
|
|
11
|
+
import { safeUpdateClassInclude } from '../../adt/crud.js';
|
|
12
|
+
import { isNotFoundError } from '../../adt/errors.js';
|
|
12
13
|
import { mapSapReleaseToAbaplintVersion } from '../../adt/features.js';
|
|
13
14
|
import { spliceMethod } from '../../context/method-surgery.js';
|
|
14
15
|
import { getCachedFeatures } from '../feature-cache.js';
|
|
15
|
-
import { CLASS_WRITE_INCLUDES, classIncludeUrl, detectLocalHandlerInclude,
|
|
16
|
-
import { resolveVersionAndDraftInfo } from '../read.js';
|
|
16
|
+
import { CLASS_WRITE_INCLUDES, classIncludeUrl, detectLocalHandlerInclude, } from '../object-types.js';
|
|
17
17
|
import { errorResult, textResult } from '../shared.js';
|
|
18
18
|
import { runPreWriteLint, runPreWriteSyntaxCheck } from '../write-helpers.js';
|
|
19
|
+
import { withClassEdit } from './class-edit.js';
|
|
19
20
|
export async function writeActionEditMethod(ctx) {
|
|
20
|
-
const { client, args, config,
|
|
21
|
+
const { client, args, config, type, name, source, include, lintOverride, checkOverride, objectUrl, srcUrl, enforcePackageForExistingObject, } = ctx;
|
|
21
22
|
const method = String(args.method ?? '');
|
|
22
23
|
if (!method)
|
|
23
24
|
return errorResult('"method" is required for edit_method action.');
|
|
@@ -41,83 +42,58 @@ export async function writeActionEditMethod(ctx) {
|
|
|
41
42
|
}
|
|
42
43
|
const detectedInclude = include ? undefined : detectLocalHandlerInclude(method);
|
|
43
44
|
const resolvedInclude = include ?? detectedInclude;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
// path also bypasses these checks for the same reason — keep parity.
|
|
94
|
-
// The full-class activation pass after the write is the authoritative
|
|
95
|
-
// syntax check.
|
|
96
|
-
let lintWarnings = { blocked: false };
|
|
97
|
-
let checkNotes = '';
|
|
98
|
-
if (!resolvedInclude) {
|
|
99
|
-
lintWarnings = runPreWriteLint(spliced.newSource, type, name, config, lintOverride);
|
|
100
|
-
if (lintWarnings.blocked)
|
|
101
|
-
return lintWarnings.result;
|
|
102
|
-
checkNotes = await runPreWriteSyntaxCheck(client, type, spliced.newSource, objectUrl, config, checkOverride);
|
|
103
|
-
}
|
|
104
|
-
// Write the full source back. Include writes use the class-include helper so
|
|
105
|
-
// a missing CCAU/CCDEF/CCIMP/CCMAC include is initialised under the same lock
|
|
106
|
-
// before the content PUT.
|
|
107
|
-
if (resolvedInclude) {
|
|
108
|
-
await safeUpdateClassInclude(client.http, client.safety, objectUrl, classIncludeUrl(name, resolvedInclude), spliced.newSource, transport, getCachedFeatures()?.abapRelease);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
await safeUpdateSource(client.http, client.safety, objectUrl, srcUrl, spliced.newSource, transport, getCachedFeatures()?.abapRelease);
|
|
112
|
-
}
|
|
113
|
-
invalidateWrittenObject(type, name);
|
|
114
|
-
const where = resolvedInclude ? ` (include: ${resolvedInclude})` : '';
|
|
115
|
-
const msg = `Successfully updated method "${method}" in ${type} ${name}${where}.`;
|
|
116
|
-
const extras = [lintWarnings.warnings, checkNotes].filter(Boolean).join('\n\n');
|
|
117
|
-
return extras ? textResult(`${msg}\n\n${extras}`) : textResult(msg);
|
|
45
|
+
return withClassEdit(ctx, async (edit) => {
|
|
46
|
+
const writeUrl = resolvedInclude ? classIncludeUrl(name, resolvedInclude) : srcUrl;
|
|
47
|
+
let currentSource;
|
|
48
|
+
try {
|
|
49
|
+
currentSource = await edit.read(writeUrl);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
if (!resolvedInclude || !isNotFoundError(error))
|
|
53
|
+
throw error;
|
|
54
|
+
return errorResult(`Include "${resolvedInclude}" does not exist in ${name}. Create it with SAPWrite(action="update", type="CLAS", name="${name}", include="${resolvedInclude}", source=...) before editing a method in it.`);
|
|
55
|
+
}
|
|
56
|
+
// Use detected ABAP version from probe if available
|
|
57
|
+
const probedAbapRelease = getCachedFeatures()?.abapRelease;
|
|
58
|
+
const abaplintVer = probedAbapRelease ? mapSapReleaseToAbaplintVersion(probedAbapRelease) : undefined;
|
|
59
|
+
// Splice in the new method body
|
|
60
|
+
const spliced = spliceMethod(currentSource, name, method, source, abaplintVer);
|
|
61
|
+
if (!spliced.success) {
|
|
62
|
+
// Augment the error with which include was searched, so the LLM can
|
|
63
|
+
// either correct the method specifier or override include= explicitly.
|
|
64
|
+
const where = resolvedInclude ? `include "${resolvedInclude}"` : 'main source';
|
|
65
|
+
const baseError = spliced.error ?? `Failed to splice method "${method}" in ${name}.`;
|
|
66
|
+
const hint = detectedInclude
|
|
67
|
+
? ` (auto-routed via "${method}" prefix; pass include= explicitly to override).`
|
|
68
|
+
: '';
|
|
69
|
+
return errorResult(`${baseError} Searched ${where} of ${name}.${hint}`);
|
|
70
|
+
}
|
|
71
|
+
// Pre-write lint + server-side syntax check on the spliced source.
|
|
72
|
+
//
|
|
73
|
+
// Skip BOTH for include= writes. abaplint cannot parse a CCIMP/CCDEF
|
|
74
|
+
// fragment as a complete class (the DEFINITION/IMPLEMENTATION halves
|
|
75
|
+
// live in different files), so it would block legitimate writes with
|
|
76
|
+
// "Expected CLASSDEFINITION" errors. The existing `case 'update'` include=
|
|
77
|
+
// path also bypasses these checks for the same reason — keep parity.
|
|
78
|
+
// The full-class activation pass after the write is the authoritative
|
|
79
|
+
// syntax check.
|
|
80
|
+
let lintWarnings = { blocked: false };
|
|
81
|
+
let checkNotes = '';
|
|
82
|
+
if (!resolvedInclude) {
|
|
83
|
+
lintWarnings = runPreWriteLint(spliced.newSource, type, name, config, lintOverride);
|
|
84
|
+
if (lintWarnings.blocked)
|
|
85
|
+
return lintWarnings.result;
|
|
86
|
+
checkNotes = await runPreWriteSyntaxCheck({ http: edit.http, safety: client.safety }, type, spliced.newSource, objectUrl, config, checkOverride);
|
|
87
|
+
}
|
|
88
|
+
await edit.save(writeUrl, spliced.newSource);
|
|
89
|
+
const where = resolvedInclude ? ` (include: ${resolvedInclude})` : '';
|
|
90
|
+
const msg = `Successfully updated method "${method}" in ${type} ${name}${where}.`;
|
|
91
|
+
const extras = [lintWarnings.warnings, checkNotes].filter(Boolean).join('\n\n');
|
|
92
|
+
return extras ? textResult(`${msg}\n\n${extras}`) : textResult(msg);
|
|
93
|
+
});
|
|
118
94
|
}
|
|
119
95
|
export async function writeActionEditClassDefinition(ctx) {
|
|
120
|
-
const { client, args, config, type, name, source, hasSource, include, includeProvided, transport, lintOverride, objectUrl, srcUrl, invalidateWrittenObject, enforcePackageForExistingObject,
|
|
96
|
+
const { client, args, config, type, name, source, hasSource, include, includeProvided, transport, lintOverride, objectUrl, srcUrl, invalidateWrittenObject, enforcePackageForExistingObject, } = ctx;
|
|
121
97
|
if (type !== 'CLAS')
|
|
122
98
|
return errorResult('edit_class_definition is only supported for type=CLAS.');
|
|
123
99
|
if (!hasSource)
|
|
@@ -126,21 +102,16 @@ export async function writeActionEditClassDefinition(ctx) {
|
|
|
126
102
|
return errorResult(`Invalid CLAS include "${String(args.include)}". Valid values: ${CLASS_WRITE_INCLUDES.join(', ')}.`);
|
|
127
103
|
}
|
|
128
104
|
await enforcePackageForExistingObject();
|
|
129
|
-
const writeUrl = include ? classIncludeUrl(name, include) : srcUrl;
|
|
130
|
-
let spliced;
|
|
131
105
|
if (include) {
|
|
132
|
-
// include
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
// MAIN path: fetch structure + source at the same effective version so
|
|
142
|
-
// the spliced line ranges align with the bytes being edited.
|
|
143
|
-
const { structure, main } = await fetchClassStructureAndMain(name);
|
|
106
|
+
// Whole include replacement has no read/modify race; retain missing-include initialization.
|
|
107
|
+
const spliced = source.endsWith('\n') ? source : `${source}\n`;
|
|
108
|
+
const initialized = await safeUpdateClassInclude(client.http, client.safety, objectUrl, classIncludeUrl(name, include), spliced, transport, getCachedFeatures()?.abapRelease, args.expectedSourceHash);
|
|
109
|
+
invalidateWrittenObject(type, name);
|
|
110
|
+
const initNote = initialized.initialized ? ` Initialised the ${include} include first.` : '';
|
|
111
|
+
return textResult(`Successfully updated include ${include} of ${type} ${name}.${initNote} Active version unchanged until activation; read with SAPRead(version="inactive") to verify, then SAPActivate.`);
|
|
112
|
+
}
|
|
113
|
+
return withClassEdit(ctx, async (edit) => {
|
|
114
|
+
const { structure, main } = await edit.readMainAndStructure();
|
|
144
115
|
// Refuse-policy: compute the method-set diff against the NEW DEFINITION.
|
|
145
116
|
const diff = diffMethodSets(structure, source);
|
|
146
117
|
const missingImpls = [];
|
|
@@ -149,13 +120,8 @@ export async function writeActionEditClassDefinition(ctx) {
|
|
|
149
120
|
// Exempt declarations that never have a METHOD…ENDMETHOD body.
|
|
150
121
|
if (add.isAbstract || add.isEvent || add.isInterface || add.isAlias)
|
|
151
122
|
continue;
|
|
152
|
-
//
|
|
153
|
-
|
|
154
|
-
// multi-line headers (`METHOD x BY DATABASE PROCEDURE…`, `METHOD x FOR
|
|
155
|
-
// EVENT…`, `METHOD x\n IMPORTING…`) are recognized — NOT only the bare
|
|
156
|
-
// `METHOD x.` form. \b after the name prevents matching a longer name
|
|
157
|
-
// with the same prefix (METHOD x_helper for added X).
|
|
158
|
-
const re = new RegExp(`^\\s*METHOD\\s+${add.name}\\b`, 'im');
|
|
123
|
+
// Match a complete method name, including AMDP / event-handler headers.
|
|
124
|
+
const re = new RegExp(`^[ \\t]*METHOD\\s+${add.name}(?=\\s|\\.)`, 'im');
|
|
159
125
|
if (!re.test(main))
|
|
160
126
|
missingImpls.push(add.name);
|
|
161
127
|
}
|
|
@@ -175,28 +141,16 @@ export async function writeActionEditClassDefinition(ctx) {
|
|
|
175
141
|
}
|
|
176
142
|
return errorResult(parts.join('\n\n'));
|
|
177
143
|
}
|
|
178
|
-
spliced = spliceClassDefinition(main, structure, source);
|
|
179
|
-
}
|
|
180
|
-
// Pre-write lint on the spliced full source (MAIN path only — include=
|
|
181
|
-
// fragments can't be lint-parsed standalone).
|
|
182
|
-
if (!include) {
|
|
144
|
+
const spliced = spliceClassDefinition(main, structure, source);
|
|
183
145
|
const lintWarnings = runPreWriteLint(spliced, type, name, config, lintOverride);
|
|
184
146
|
if (lintWarnings.blocked)
|
|
185
147
|
return lintWarnings.result;
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
: undefined;
|
|
190
|
-
if (!include) {
|
|
191
|
-
await safeUpdateSource(client.http, client.safety, objectUrl, writeUrl, spliced, transport, getCachedFeatures()?.abapRelease);
|
|
192
|
-
}
|
|
193
|
-
invalidateWrittenObject(type, name);
|
|
194
|
-
const initNote = includeInit?.initialized ? ` Initialised the ${include} include first.` : '';
|
|
195
|
-
const targetLabel = include ? `include ${include} of ${type} ${name}` : `DEFINITION of ${type} ${name}`;
|
|
196
|
-
return textResult(`Successfully updated ${targetLabel}.${initNote} Active version unchanged until activation; read with SAPRead(version="inactive") to verify, then SAPActivate.`);
|
|
148
|
+
await edit.save(srcUrl, spliced);
|
|
149
|
+
return textResult(`Successfully updated DEFINITION of ${type} ${name}. Active version unchanged until activation; read with SAPRead(version="inactive") to verify, then SAPActivate.`);
|
|
150
|
+
});
|
|
197
151
|
}
|
|
198
152
|
export async function writeActionEditMethodSignature(ctx) {
|
|
199
|
-
const {
|
|
153
|
+
const { args, type, name, source, hasSource, includeProvided, srcUrl, enforcePackageForExistingObject } = ctx;
|
|
200
154
|
if (type !== 'CLAS')
|
|
201
155
|
return errorResult('edit_method_signature is only supported for type=CLAS.');
|
|
202
156
|
const methodSpecifier = String(args.method ?? '').trim();
|
|
@@ -213,28 +167,29 @@ export async function writeActionEditMethodSignature(ctx) {
|
|
|
213
167
|
return errorResult('edit_method_signature targets the global class DEFINITION (/source/main). For local-class (CCDEF) signatures, use edit_class_definition with include=definitions.');
|
|
214
168
|
}
|
|
215
169
|
await enforcePackageForExistingObject();
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
170
|
+
return withClassEdit(ctx, async (edit) => {
|
|
171
|
+
const { structure, main } = await edit.readMainAndStructure();
|
|
172
|
+
const upperName = methodSpecifier.toUpperCase();
|
|
173
|
+
const method = structure.methods.find((m) => m.name === upperName);
|
|
174
|
+
if (!method) {
|
|
175
|
+
const available = structure.methods.map((m) => m.name).join(', ');
|
|
176
|
+
const hint = methodSpecifier.includes('~')
|
|
177
|
+
? ' Methods supplied by INTERFACES have no separate METHODS declaration here. Change their signature in the interface; use edit_method for an existing body.'
|
|
178
|
+
: '';
|
|
179
|
+
return errorResult(`Method "${methodSpecifier}" not found in CLAS ${name}. Available methods: ${available || '(none)'}.${hint}`);
|
|
180
|
+
}
|
|
181
|
+
const spliced = spliceMethodSignature(main, method, source);
|
|
182
|
+
// No pre-write lint: edit_method_signature changes ONLY the declaration; the
|
|
183
|
+
// method body still references the old signature until the caller follows up
|
|
184
|
+
// with edit_method. Linting the spliced full source here would flag legitimate
|
|
185
|
+
// in-progress renames (e.g. "param `name` not declared"). SAP activation is the
|
|
186
|
+
// authoritative check — same rationale as the include= lint skip on edit_method.
|
|
187
|
+
await edit.save(srcUrl, spliced);
|
|
188
|
+
return textResult(`Successfully updated signature of method "${method.name}" in ${type} ${name}. Active version unchanged until activation; if the body still references the old signature, follow up with edit_method, then SAPActivate.`);
|
|
189
|
+
});
|
|
235
190
|
}
|
|
236
191
|
export async function writeActionAddMethod(ctx) {
|
|
237
|
-
const {
|
|
192
|
+
const { args, config, type, name, includeProvided, lintOverride, srcUrl, enforcePackageForExistingObject } = ctx;
|
|
238
193
|
if (type !== 'CLAS')
|
|
239
194
|
return errorResult('add_method is only supported for type=CLAS.');
|
|
240
195
|
const clause = String(args.method ?? '');
|
|
@@ -245,13 +200,14 @@ export async function writeActionAddMethod(ctx) {
|
|
|
245
200
|
if (!methodName) {
|
|
246
201
|
return errorResult('Could not extract method name from the METHODS clause. Provide a clause starting with "METHODS <name>" or "CLASS-METHODS <name>".');
|
|
247
202
|
}
|
|
248
|
-
//
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
if (methodName.includes('~')) {
|
|
252
|
-
return errorResult(`add_method cannot add the interface-qualified method "${methodName}" to a global class. Implement the interface via "INTERFACES <name>." in the DEFINITION (use edit_class_definition), then provide the body with edit_method.`);
|
|
203
|
+
// New interface methods belong to INTERFACES; inherited ones can be redefined.
|
|
204
|
+
if (methodName.includes('~') && (!isMethodRedefinition(clause) || args.abstract === true)) {
|
|
205
|
+
return errorResult(`To add the inherited interface-qualified method "${methodName}", use "METHODS <name> REDEFINITION." with visibility="public" and without abstract=true. Methods of an interface this class implements itself are declared by "INTERFACES <name>."; add their bodies with SAPWrite(action="update"), preserving the full source. edit_method only replaces an existing body.`);
|
|
253
206
|
}
|
|
254
207
|
const visibility = args.visibility ?? 'public';
|
|
208
|
+
if (methodName.includes('~') && visibility !== 'public') {
|
|
209
|
+
return errorResult('Interface method redefinitions must keep public visibility. Use visibility="public".');
|
|
210
|
+
}
|
|
255
211
|
const isAbstract = args.abstract === true;
|
|
256
212
|
// MAIN-only action: include= is rejected at the schema layer (not in
|
|
257
213
|
// SAPWRITE_INCLUDE_AWARE_ACTIONS). Defensive guard for direct CLI calls.
|
|
@@ -259,38 +215,43 @@ export async function writeActionAddMethod(ctx) {
|
|
|
259
215
|
return errorResult('add_method targets the global class DEFINITION (/source/main). For local-class (CCDEF) method additions, use edit_class_definition with include=definitions.');
|
|
260
216
|
}
|
|
261
217
|
await enforcePackageForExistingObject();
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
218
|
+
return withClassEdit(ctx, async (edit) => {
|
|
219
|
+
const { structure, main } = await edit.readMainAndStructure();
|
|
220
|
+
// Refuse if method already exists (would silently duplicate).
|
|
221
|
+
if (structure.methods.some((m) => m.name === methodName)) {
|
|
222
|
+
return errorResult(`Method "${methodName}" already exists in CLAS ${name}. Use SAPWrite(action="edit_method_signature", method="${methodName}", source="<new METHODS clause>") to change its signature.`);
|
|
223
|
+
}
|
|
224
|
+
// Bodies supplied by INTERFACES have no METHODS declaration range in objectstructure.
|
|
225
|
+
if (new RegExp(`^[ \\t]*METHOD\\s+${methodName}(?=\\s|\\.)`, 'im').test(main)) {
|
|
226
|
+
return errorResult(`CLAS ${name} already implements "${methodName}". Use SAPWrite(action="edit_method", method="${methodName}") to change its body.`);
|
|
227
|
+
}
|
|
228
|
+
// A concrete (non-abstract) method needs an IMPLEMENTATION block to receive
|
|
229
|
+
// its METHOD…ENDMETHOD stub. A purely-abstract class has no IMPLEMENTATION
|
|
230
|
+
// half, so inserting a concrete declaration there would leave it unimplemented.
|
|
231
|
+
if (!isAbstract && !structure.classImplementationBlock) {
|
|
232
|
+
return errorResult(`CLAS ${name} has no IMPLEMENTATION block (purely abstract class). Pass abstract=true to add an abstract method, or add the IMPLEMENTATION half first via edit_class_definition.`);
|
|
233
|
+
}
|
|
234
|
+
// Refuse with hint if the target visibility section header is missing.
|
|
235
|
+
const anchor = findSectionAnchor(main, structure, visibility);
|
|
236
|
+
if (!anchor) {
|
|
237
|
+
return errorResult(`No ${visibility.toUpperCase()} SECTION exists in CLAS ${name}. Use SAPWrite(action="edit_class_definition") to add the section header first, then re-run add_method.`);
|
|
238
|
+
}
|
|
239
|
+
const spliced = insertMethodPair(main, structure, {
|
|
240
|
+
decl: clause,
|
|
241
|
+
visibility,
|
|
242
|
+
methodName,
|
|
243
|
+
isAbstract,
|
|
244
|
+
});
|
|
245
|
+
const lintWarnings = runPreWriteLint(spliced, type, name, config, lintOverride);
|
|
246
|
+
if (lintWarnings.blocked)
|
|
247
|
+
return lintWarnings.result;
|
|
248
|
+
await edit.save(srcUrl, spliced);
|
|
249
|
+
const stubNote = isAbstract ? ' (abstract — no IMPL stub inserted)' : '';
|
|
250
|
+
return textResult(`Successfully added method "${methodName}" (${visibility}) to ${type} ${name}${stubNote}. Active version unchanged until activation; SAPActivate next.`);
|
|
283
251
|
});
|
|
284
|
-
const lintWarnings = runPreWriteLint(spliced, type, name, config, lintOverride);
|
|
285
|
-
if (lintWarnings.blocked)
|
|
286
|
-
return lintWarnings.result;
|
|
287
|
-
await safeUpdateSource(client.http, client.safety, objectUrl, srcUrl, spliced, transport, getCachedFeatures()?.abapRelease);
|
|
288
|
-
invalidateWrittenObject(type, name);
|
|
289
|
-
const stubNote = isAbstract ? ' (abstract — no IMPL stub inserted)' : '';
|
|
290
|
-
return textResult(`Successfully added method "${methodName}" (${visibility}) to ${type} ${name}${stubNote}. Active version unchanged until activation; SAPActivate next.`);
|
|
291
252
|
}
|
|
292
253
|
export async function writeActionDeleteMethod(ctx) {
|
|
293
|
-
const {
|
|
254
|
+
const { args, config, type, name, includeProvided, lintOverride, srcUrl, enforcePackageForExistingObject } = ctx;
|
|
294
255
|
if (type !== 'CLAS')
|
|
295
256
|
return errorResult('delete_method is only supported for type=CLAS.');
|
|
296
257
|
const methodSpecifier = String(args.method ?? '').trim();
|
|
@@ -303,27 +264,28 @@ export async function writeActionDeleteMethod(ctx) {
|
|
|
303
264
|
return errorResult('delete_method targets the global class DEFINITION (/source/main). For local-class (CCDEF/CCIMP) method removal, use edit_class_definition with include=...');
|
|
304
265
|
}
|
|
305
266
|
await enforcePackageForExistingObject();
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
267
|
+
return withClassEdit(ctx, async (edit) => {
|
|
268
|
+
const { structure, main } = await edit.readMainAndStructure();
|
|
269
|
+
const upperName = methodSpecifier.toUpperCase();
|
|
270
|
+
const method = structure.methods.find((m) => m.name === upperName);
|
|
271
|
+
if (!method) {
|
|
272
|
+
const available = structure.methods.map((m) => m.name).join(', ');
|
|
273
|
+
const hint = methodSpecifier.includes('~')
|
|
274
|
+
? ' Methods supplied by INTERFACES have no separate METHODS declaration to delete here; removing the interface requires a consistent full-source update.'
|
|
275
|
+
: '';
|
|
276
|
+
return errorResult(`Method "${methodSpecifier}" not found in CLAS ${name}. Available methods: ${available || '(none)'}.${hint}`);
|
|
277
|
+
}
|
|
278
|
+
const spliced = removeMethodPair(main, method);
|
|
279
|
+
const lintWarnings = runPreWriteLint(spliced, type, name, config, lintOverride);
|
|
280
|
+
if (lintWarnings.blocked)
|
|
281
|
+
return lintWarnings.result;
|
|
282
|
+
await edit.save(srcUrl, spliced);
|
|
283
|
+
const where = method.implementation ? ' (DEFINITION + IMPLEMENTATION)' : ' (DEFINITION only — was ABSTRACT)';
|
|
284
|
+
return textResult(`Successfully deleted method "${method.name}" from ${type} ${name}${where}. Active version unchanged until activation; SAPActivate next.`);
|
|
285
|
+
});
|
|
324
286
|
}
|
|
325
287
|
export async function writeActionChangeMethodVisibility(ctx) {
|
|
326
|
-
const {
|
|
288
|
+
const { args, config, type, name, includeProvided, lintOverride, srcUrl, enforcePackageForExistingObject } = ctx;
|
|
327
289
|
// Body-preserving visibility move (issue #303 follow-up). Moves the METHODS
|
|
328
290
|
// clause from its current section to the target section; the IMPLEMENTATION
|
|
329
291
|
// block is never touched, so the method body survives. This is the safe
|
|
@@ -344,32 +306,39 @@ export async function writeActionChangeMethodVisibility(ctx) {
|
|
|
344
306
|
return errorResult('change_method_visibility targets the global class DEFINITION (/source/main). For local-class (CCDEF) methods, use edit_class_definition with include=definitions.');
|
|
345
307
|
}
|
|
346
308
|
await enforcePackageForExistingObject();
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
309
|
+
return withClassEdit(ctx, async (edit) => {
|
|
310
|
+
const { structure, main } = await edit.readMainAndStructure();
|
|
311
|
+
const upperName = methodSpecifier.toUpperCase();
|
|
312
|
+
const method = structure.methods.find((m) => m.name === upperName);
|
|
313
|
+
if (!method) {
|
|
314
|
+
const available = structure.methods.map((m) => m.name).join(', ');
|
|
315
|
+
const hint = methodSpecifier.includes('~')
|
|
316
|
+
? ' Methods supplied by INTERFACES have no separate METHODS declaration to move; interface components retain public visibility.'
|
|
317
|
+
: '';
|
|
318
|
+
return errorResult(`Method "${methodSpecifier}" not found in CLAS ${name}. Available methods: ${available || '(none)'}.${hint}`);
|
|
319
|
+
}
|
|
320
|
+
if (method.name.includes('~') && target !== 'public') {
|
|
321
|
+
return errorResult('Interface method redefinitions must keep public visibility.');
|
|
322
|
+
}
|
|
323
|
+
// Idempotent: already in the requested section → no write.
|
|
324
|
+
if (method.visibility === target) {
|
|
325
|
+
return textResult(`Method "${method.name}" is already in the ${target.toUpperCase()} SECTION of ${type} ${name}. No change made.`);
|
|
326
|
+
}
|
|
327
|
+
if (method.redefinition) {
|
|
328
|
+
return errorResult('Redefined methods must keep their inherited visibility. To repair an invalid draft, use edit_class_definition with the visibility declared by the superclass.');
|
|
329
|
+
}
|
|
330
|
+
// The target section header must already exist (same constraint as add_method).
|
|
331
|
+
const anchor = findSectionAnchor(main, structure, target);
|
|
332
|
+
if (!anchor) {
|
|
333
|
+
return errorResult(`No ${target.toUpperCase()} SECTION exists in CLAS ${name}. Use SAPWrite(action="edit_class_definition") to add the section header first, then re-run change_method_visibility.`);
|
|
334
|
+
}
|
|
335
|
+
// DEFINITION-only move — IMPLEMENTATION (the method body) is preserved verbatim.
|
|
336
|
+
const spliced = moveMethodDefinition(main, method, anchor.afterLine);
|
|
337
|
+
const lintWarnings = runPreWriteLint(spliced, type, name, config, lintOverride);
|
|
338
|
+
if (lintWarnings.blocked)
|
|
339
|
+
return lintWarnings.result;
|
|
340
|
+
await edit.save(srcUrl, spliced);
|
|
341
|
+
return textResult(`Successfully moved method "${method.name}" from ${method.visibility.toUpperCase()} to ${target.toUpperCase()} SECTION of ${type} ${name} (IMPLEMENTATION preserved). Active version unchanged until activation; SAPActivate next.`);
|
|
342
|
+
});
|
|
374
343
|
}
|
|
375
344
|
//# sourceMappingURL=class-surgery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-surgery.js","sourceRoot":"","sources":["../../../src/handlers/write/class-surgery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"class-surgery.js","sourceRoot":"","sources":["../../../src/handlers/write/class-surgery.ts"],"names":[],"mappings":"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"}
|