arc-1 0.6.9 → 0.7.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 +12 -9
- package/bin/arc1-cli.js +10 -0
- package/bin/arc1.js +1 -1
- package/dist/adt/abapgit.d.ts +39 -0
- package/dist/adt/abapgit.d.ts.map +1 -0
- package/dist/adt/abapgit.js +333 -0
- package/dist/adt/abapgit.js.map +1 -0
- package/dist/adt/cds-impact.d.ts +35 -0
- package/dist/adt/cds-impact.d.ts.map +1 -1
- package/dist/adt/cds-impact.js +71 -0
- package/dist/adt/cds-impact.js.map +1 -1
- package/dist/adt/client.d.ts +4 -1
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +18 -5
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/config.d.ts +1 -0
- package/dist/adt/config.d.ts.map +1 -1
- package/dist/adt/config.js +1 -0
- package/dist/adt/config.js.map +1 -1
- package/dist/adt/crud.d.ts.map +1 -1
- package/dist/adt/crud.js +74 -8
- package/dist/adt/crud.js.map +1 -1
- package/dist/adt/devtools.d.ts +39 -3
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +237 -25
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/diagnostics.d.ts +69 -7
- package/dist/adt/diagnostics.d.ts.map +1 -1
- package/dist/adt/diagnostics.js +694 -36
- package/dist/adt/diagnostics.js.map +1 -1
- package/dist/adt/errors.d.ts +36 -2
- package/dist/adt/errors.d.ts.map +1 -1
- package/dist/adt/errors.js +111 -11
- package/dist/adt/errors.js.map +1 -1
- package/dist/adt/features.d.ts.map +1 -1
- package/dist/adt/features.js +3 -0
- package/dist/adt/features.js.map +1 -1
- package/dist/adt/gcts.d.ts +68 -0
- package/dist/adt/gcts.d.ts.map +1 -0
- package/dist/adt/gcts.js +239 -0
- package/dist/adt/gcts.js.map +1 -0
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +86 -1
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/rap-handlers.d.ts +165 -0
- package/dist/adt/rap-handlers.d.ts.map +1 -0
- package/dist/adt/rap-handlers.js +835 -0
- package/dist/adt/rap-handlers.js.map +1 -0
- package/dist/adt/rap-preflight.d.ts +43 -0
- package/dist/adt/rap-preflight.d.ts.map +1 -0
- package/dist/adt/rap-preflight.js +405 -0
- package/dist/adt/rap-preflight.js.map +1 -0
- package/dist/adt/safety.d.ts +60 -33
- package/dist/adt/safety.d.ts.map +1 -1
- package/dist/adt/safety.js +204 -113
- package/dist/adt/safety.js.map +1 -1
- package/dist/adt/transport.d.ts +1 -1
- package/dist/adt/transport.d.ts.map +1 -1
- package/dist/adt/transport.js +6 -3
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/types.d.ts +225 -0
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/xml-parser.d.ts +15 -1
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +28 -15
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/authz/policy.d.ts +53 -0
- package/dist/authz/policy.d.ts.map +1 -0
- package/dist/authz/policy.js +199 -0
- package/dist/authz/policy.js.map +1 -0
- package/dist/cli-args.d.ts +14 -0
- package/dist/cli-args.d.ts.map +1 -0
- package/dist/cli-args.js +62 -0
- package/dist/cli-args.js.map +1 -0
- package/dist/cli.d.ts +13 -7
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +252 -55
- package/dist/cli.js.map +1 -1
- package/dist/extract-sap-cookies.d.ts +24 -0
- package/dist/extract-sap-cookies.d.ts.map +1 -0
- package/dist/extract-sap-cookies.js +317 -0
- package/dist/extract-sap-cookies.js.map +1 -0
- package/dist/handlers/hyperfocused.d.ts +4 -3
- package/dist/handlers/hyperfocused.d.ts.map +1 -1
- package/dist/handlers/hyperfocused.js +25 -16
- package/dist/handlers/hyperfocused.js.map +1 -1
- package/dist/handlers/intent.d.ts +4 -12
- package/dist/handlers/intent.d.ts.map +1 -1
- package/dist/handlers/intent.js +1448 -89
- package/dist/handlers/intent.js.map +1 -1
- package/dist/handlers/schemas.d.ts +83 -11
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +115 -4
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/tools.d.ts +4 -3
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +342 -143
- package/dist/handlers/tools.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +7 -6
- package/dist/index.js.map +1 -1
- package/dist/probe/catalog.d.ts +30 -0
- package/dist/probe/catalog.d.ts.map +1 -0
- package/dist/probe/catalog.js +196 -0
- package/dist/probe/catalog.js.map +1 -0
- package/dist/probe/fixtures.d.ts +54 -0
- package/dist/probe/fixtures.d.ts.map +1 -0
- package/dist/probe/fixtures.js +94 -0
- package/dist/probe/fixtures.js.map +1 -0
- package/dist/probe/format.d.ts +10 -0
- package/dist/probe/format.d.ts.map +1 -0
- package/dist/probe/format.js +114 -0
- package/dist/probe/format.js.map +1 -0
- package/dist/probe/quality.d.ts +13 -0
- package/dist/probe/quality.d.ts.map +1 -0
- package/dist/probe/quality.js +50 -0
- package/dist/probe/quality.js.map +1 -0
- package/dist/probe/runner.d.ts +48 -0
- package/dist/probe/runner.d.ts.map +1 -0
- package/dist/probe/runner.js +211 -0
- package/dist/probe/runner.js.map +1 -0
- package/dist/probe/types.d.ts +159 -0
- package/dist/probe/types.d.ts.map +1 -0
- package/dist/probe/types.js +11 -0
- package/dist/probe/types.js.map +1 -0
- package/dist/server/audit.d.ts +26 -3
- package/dist/server/audit.d.ts.map +1 -1
- package/dist/server/audit.js +12 -1
- package/dist/server/audit.js.map +1 -1
- package/dist/server/config.d.ts +34 -19
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +327 -187
- package/dist/server/config.js.map +1 -1
- package/dist/server/deny-actions.d.ts +31 -0
- package/dist/server/deny-actions.d.ts.map +1 -0
- package/dist/server/deny-actions.js +156 -0
- package/dist/server/deny-actions.js.map +1 -0
- package/dist/server/effective-policy-log.d.ts +27 -0
- package/dist/server/effective-policy-log.d.ts.map +1 -0
- package/dist/server/effective-policy-log.js +103 -0
- package/dist/server/effective-policy-log.js.map +1 -0
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +15 -16
- package/dist/server/http.js.map +1 -1
- package/dist/server/server.d.ts +38 -4
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +234 -31
- package/dist/server/server.js.map +1 -1
- package/dist/server/types.d.ts +31 -13
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +11 -10
- package/dist/server/types.js.map +1 -1
- package/dist/server/xsuaa.d.ts +1 -2
- package/dist/server/xsuaa.d.ts.map +1 -1
- package/dist/server/xsuaa.js +13 -14
- package/dist/server/xsuaa.js.map +1 -1
- package/package.json +9 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rap-handlers.js","sourceRoot":"","sources":["../../src/adt/rap-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { SystemType } from './types.js';
|
|
2
|
+
export type RapPreflightSeverity = 'error' | 'warning';
|
|
3
|
+
export interface RapPreflightFinding {
|
|
4
|
+
severity: RapPreflightSeverity;
|
|
5
|
+
ruleId: string;
|
|
6
|
+
message: string;
|
|
7
|
+
line?: number;
|
|
8
|
+
column?: number;
|
|
9
|
+
suggestion?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface RapPreflightContext {
|
|
12
|
+
systemType?: SystemType;
|
|
13
|
+
abapRelease?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface RapPreflightResult {
|
|
16
|
+
findings: RapPreflightFinding[];
|
|
17
|
+
errors: RapPreflightFinding[];
|
|
18
|
+
warnings: RapPreflightFinding[];
|
|
19
|
+
blocked: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Deterministic RAP pre-write checks for artifact types where activation-time
|
|
23
|
+
* round-trips are expensive and common failure patterns are known.
|
|
24
|
+
*
|
|
25
|
+
* Why deterministic static rules instead of letting SAP tell us?
|
|
26
|
+
* Every failed activation is a full lock → PUT → activate → unlock cycle
|
|
27
|
+
* against the ABAP backend. On a slow / loaded system that's 5-15 seconds
|
|
28
|
+
* per retry, and the error messages are often cryptic ("activation error:
|
|
29
|
+
* see error log"). Catching well-known patterns before the write keeps the
|
|
30
|
+
* LLM-driven agent loop tight and turns error output into actionable
|
|
31
|
+
* suggestions the model can act on immediately.
|
|
32
|
+
*
|
|
33
|
+
* This validator intentionally focuses on static checks with high signal —
|
|
34
|
+
* every rule maps to a concrete, reproducible failure observed on a real
|
|
35
|
+
* SAP system. We deliberately don't attempt full semantic validation (that's
|
|
36
|
+
* what activation is for); we just catch the traps that waste round-trips.
|
|
37
|
+
*
|
|
38
|
+
* Rules are tagged `error` only when the pattern is guaranteed to fail
|
|
39
|
+
* activation; anything ambiguous (heuristic, release-dependent) is a warning.
|
|
40
|
+
*/
|
|
41
|
+
export declare function validateRapSource(type: string, source: string, context?: RapPreflightContext): RapPreflightResult;
|
|
42
|
+
export declare function formatRapPreflightFindings(findings: RapPreflightFinding[]): string;
|
|
43
|
+
//# sourceMappingURL=rap-preflight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rap-preflight.d.ts","sourceRoot":"","sources":["../../src/adt/rap-preflight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,kBAAkB,CAiCrH;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,MAAM,CASlF"}
|
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic RAP pre-write checks for artifact types where activation-time
|
|
3
|
+
* round-trips are expensive and common failure patterns are known.
|
|
4
|
+
*
|
|
5
|
+
* Why deterministic static rules instead of letting SAP tell us?
|
|
6
|
+
* Every failed activation is a full lock → PUT → activate → unlock cycle
|
|
7
|
+
* against the ABAP backend. On a slow / loaded system that's 5-15 seconds
|
|
8
|
+
* per retry, and the error messages are often cryptic ("activation error:
|
|
9
|
+
* see error log"). Catching well-known patterns before the write keeps the
|
|
10
|
+
* LLM-driven agent loop tight and turns error output into actionable
|
|
11
|
+
* suggestions the model can act on immediately.
|
|
12
|
+
*
|
|
13
|
+
* This validator intentionally focuses on static checks with high signal —
|
|
14
|
+
* every rule maps to a concrete, reproducible failure observed on a real
|
|
15
|
+
* SAP system. We deliberately don't attempt full semantic validation (that's
|
|
16
|
+
* what activation is for); we just catch the traps that waste round-trips.
|
|
17
|
+
*
|
|
18
|
+
* Rules are tagged `error` only when the pattern is guaranteed to fail
|
|
19
|
+
* activation; anything ambiguous (heuristic, release-dependent) is a warning.
|
|
20
|
+
*/
|
|
21
|
+
export function validateRapSource(type, source, context = {}) {
|
|
22
|
+
const normalizedType = type.toUpperCase();
|
|
23
|
+
const findings = [];
|
|
24
|
+
if (!source.trim()) {
|
|
25
|
+
return { findings, errors: [], warnings: [], blocked: false };
|
|
26
|
+
}
|
|
27
|
+
switch (normalizedType) {
|
|
28
|
+
case 'TABL':
|
|
29
|
+
validateTabl(source, context, findings);
|
|
30
|
+
break;
|
|
31
|
+
case 'BDEF':
|
|
32
|
+
validateBdef(source, context, findings);
|
|
33
|
+
break;
|
|
34
|
+
case 'DDLX':
|
|
35
|
+
validateDdlx(source, context, findings);
|
|
36
|
+
break;
|
|
37
|
+
case 'DDLS':
|
|
38
|
+
validateDdls(source, context, findings);
|
|
39
|
+
break;
|
|
40
|
+
default:
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
const errors = findings.filter((f) => f.severity === 'error');
|
|
44
|
+
const warnings = findings.filter((f) => f.severity === 'warning');
|
|
45
|
+
return {
|
|
46
|
+
findings,
|
|
47
|
+
errors,
|
|
48
|
+
warnings,
|
|
49
|
+
blocked: errors.length > 0,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export function formatRapPreflightFindings(findings) {
|
|
53
|
+
if (findings.length === 0)
|
|
54
|
+
return '';
|
|
55
|
+
return findings
|
|
56
|
+
.map((f) => {
|
|
57
|
+
const loc = f.line ? ` (line ${f.line}${f.column ? `:${f.column}` : ''})` : '';
|
|
58
|
+
const suggestion = f.suggestion ? `\n Suggestion: ${f.suggestion}` : '';
|
|
59
|
+
return ` - [${f.ruleId}] ${f.message}${loc}${suggestion}`;
|
|
60
|
+
})
|
|
61
|
+
.join('\n');
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* TABL (database table) pre-write checks.
|
|
65
|
+
*
|
|
66
|
+
* Targets two categories of failure:
|
|
67
|
+
* 1. Missing currency/quantity metadata (universal — any release):
|
|
68
|
+
* RAP requires every `abap.curr` field to be paired with a
|
|
69
|
+
* `@Semantics.amount.currencyCode` annotation referencing a currency key
|
|
70
|
+
* field (`abap.cuky`). Without it, activation fails with "amount field
|
|
71
|
+
* requires currency code reference". Same pattern applies to `abap.quan`
|
|
72
|
+
* + `@Semantics.quantity.unitOfMeasure` + `abap.unit`.
|
|
73
|
+
*
|
|
74
|
+
* 2. Forbidden built-in types on on-prem 7.5x:
|
|
75
|
+
* SAP_BASIS 750-759 does not accept `abap.uname`, `abap.utclong`, or
|
|
76
|
+
* `abap.boolean` in TABL source (released builtin types matrix differs
|
|
77
|
+
* between on-prem NW and S/4HANA 2020+). These are the three most
|
|
78
|
+
* common migration stumbles when a developer copies a cloud CDS-TABL
|
|
79
|
+
* from help.sap.com into an older system.
|
|
80
|
+
*/
|
|
81
|
+
function validateTabl(source, context, findings) {
|
|
82
|
+
const lines = source.split('\n');
|
|
83
|
+
for (let i = 0; i < lines.length; i += 1) {
|
|
84
|
+
const line = lines[i] ?? '';
|
|
85
|
+
// Amount field: must carry @Semantics.amount.currencyCode on a line
|
|
86
|
+
// within 5 lines above the field (annotations may be stacked).
|
|
87
|
+
if (/\babap\.curr\s*\(/i.test(line) && !hasNearbyAnnotation(lines, i, /@Semantics\.amount\.currencyCode\b/i)) {
|
|
88
|
+
findings.push({
|
|
89
|
+
severity: 'error',
|
|
90
|
+
ruleId: 'TABL_CURR_REQUIRES_CURRENCY_CODE',
|
|
91
|
+
message: 'abap.curr field is missing @Semantics.amount.currencyCode.',
|
|
92
|
+
line: i + 1,
|
|
93
|
+
suggestion: 'Add @Semantics.amount.currencyCode above the amount field and pair it with an abap.cuky field.',
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
// Quantity field: symmetrical rule — must carry
|
|
97
|
+
// @Semantics.quantity.unitOfMeasure pointing at an abap.unit key field.
|
|
98
|
+
if (/\babap\.quan\s*\(/i.test(line) && !hasNearbyAnnotation(lines, i, /@Semantics\.quantity\.unitOfMeasure\b/i)) {
|
|
99
|
+
findings.push({
|
|
100
|
+
severity: 'error',
|
|
101
|
+
ruleId: 'TABL_QUAN_REQUIRES_UNIT',
|
|
102
|
+
message: 'abap.quan field is missing @Semantics.quantity.unitOfMeasure.',
|
|
103
|
+
line: i + 1,
|
|
104
|
+
suggestion: 'Add @Semantics.quantity.unitOfMeasure above the quantity field and pair it with an abap.unit field.',
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
// On-prem 7.5x only — these built-in types exist in modern systems but
|
|
108
|
+
// the TABL activator on older releases rejects them.
|
|
109
|
+
if (isOnPrem75x(context)) {
|
|
110
|
+
if (/\babap\.uname\b/i.test(line)) {
|
|
111
|
+
findings.push({
|
|
112
|
+
severity: 'error',
|
|
113
|
+
ruleId: 'TABL_FORBIDDEN_ABAP_UNAME',
|
|
114
|
+
message: 'abap.uname is not accepted in TABL source on on-prem 7.5x.',
|
|
115
|
+
line: i + 1,
|
|
116
|
+
suggestion: 'Use syuname for user fields.',
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
if (/\babap\.utclong\b/i.test(line)) {
|
|
120
|
+
findings.push({
|
|
121
|
+
severity: 'error',
|
|
122
|
+
ruleId: 'TABL_FORBIDDEN_ABAP_UTCLONG',
|
|
123
|
+
message: 'abap.utclong is not accepted in TABL source on on-prem 7.5x.',
|
|
124
|
+
line: i + 1,
|
|
125
|
+
suggestion: 'Use timestampl for timestamp fields.',
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
if (/\babap\.boolean\b/i.test(line)) {
|
|
129
|
+
findings.push({
|
|
130
|
+
severity: 'error',
|
|
131
|
+
ruleId: 'TABL_FORBIDDEN_ABAP_BOOLEAN',
|
|
132
|
+
message: 'abap.boolean is not accepted in TABL source on on-prem 7.5x.',
|
|
133
|
+
line: i + 1,
|
|
134
|
+
suggestion: 'Use abap.char(1) with X/space semantics for boolean-like fields.',
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* BDEF (behavior definition) pre-write checks.
|
|
142
|
+
*
|
|
143
|
+
* Rules in order of severity:
|
|
144
|
+
*
|
|
145
|
+
* 1. `authorization master ( none )` — error, all releases.
|
|
146
|
+
* This is a frequent copy-paste mistake: developers see `authorization
|
|
147
|
+
* master ( global )` in one template and `authorization master ( instance )`
|
|
148
|
+
* in another and guess that `none` is a valid "turn off auth" option.
|
|
149
|
+
* It isn't. The BDL parser rejects it outright. The right escape hatch
|
|
150
|
+
* is to omit the clause entirely until the handler class exists.
|
|
151
|
+
*
|
|
152
|
+
* 2. Projection BDEF + `use etag` — error on on-prem 7.5x only.
|
|
153
|
+
* Modern S/4 supports etag overrides in projection headers; on-prem 7.5x
|
|
154
|
+
* only accepts `projection;` as the entire projection header and
|
|
155
|
+
* requires etag semantics to be inherited from the interface BDEF. The
|
|
156
|
+
* activator error for this is particularly opaque ("syntax error in
|
|
157
|
+
* behavior definition header").
|
|
158
|
+
*
|
|
159
|
+
* 3. Duplicate `etag master <field>` — warning, all releases.
|
|
160
|
+
* Reusing the same field name across root + composition is *sometimes*
|
|
161
|
+
* intentional, but far more often it's a mistake where the developer
|
|
162
|
+
* copy-pasted a composition block and forgot to retarget the etag
|
|
163
|
+
* field. Surface it as a warning so the dev can confirm.
|
|
164
|
+
*/
|
|
165
|
+
function validateBdef(source, context, findings) {
|
|
166
|
+
const lines = source.split('\n');
|
|
167
|
+
for (let i = 0; i < lines.length; i += 1) {
|
|
168
|
+
const line = lines[i] ?? '';
|
|
169
|
+
if (/\bauthorization\s+master\s*\(\s*none\s*\)/i.test(line)) {
|
|
170
|
+
findings.push({
|
|
171
|
+
severity: 'error',
|
|
172
|
+
ruleId: 'BDEF_INVALID_AUTH_MASTER_NONE',
|
|
173
|
+
message: 'authorization master ( none ) is invalid. Only global or instance are allowed.',
|
|
174
|
+
line: i + 1,
|
|
175
|
+
suggestion: 'Use authorization master ( global ) or authorization master ( instance ), or omit until handlers exist.',
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (isOnPrem75x(context)) {
|
|
180
|
+
// Target ONLY header-level `use etag` — i.e. `use etag;` in the preamble
|
|
181
|
+
// between `projection;` and the first `define behavior` block. The
|
|
182
|
+
// per-entity form `define behavior for X alias Y use etag { ... }`
|
|
183
|
+
// (which SAP's own /DMO/C_TRAVEL_PROCESSOR_M uses, verified on-system)
|
|
184
|
+
// is valid on all modern releases and MUST NOT be flagged.
|
|
185
|
+
if (/\bprojection\s*;/i.test(source)) {
|
|
186
|
+
const firstBehaviorIdx = source.search(/\bdefine\s+behavior\b/i);
|
|
187
|
+
const preamble = firstBehaviorIdx >= 0 ? source.slice(0, firstBehaviorIdx) : source;
|
|
188
|
+
// Header-level form is terminated by a semicolon (or end-of-preamble);
|
|
189
|
+
// the per-entity form never has a terminating `;` directly after etag.
|
|
190
|
+
const headerUseEtagMatch = /\buse\s+etag\s*;/i.exec(preamble);
|
|
191
|
+
if (headerUseEtagMatch) {
|
|
192
|
+
findings.push({
|
|
193
|
+
severity: 'error',
|
|
194
|
+
ruleId: 'BDEF_PROJECTION_USE_ETAG_UNSUPPORTED',
|
|
195
|
+
message: 'Projection BDEF contains "use etag" as a header statement, which is not supported on on-prem 7.5x.',
|
|
196
|
+
line: source.slice(0, headerUseEtagMatch.index).split(/\r?\n/).length,
|
|
197
|
+
suggestion: 'Move "use etag" into each "define behavior for X alias Y use etag { ... }" block instead of declaring it at the projection header level.',
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// Same field name used as etag master across multiple entities. SAP's own
|
|
203
|
+
// /DMO/I_TRAVEL_M does this (both root and booking use last_changed_at) and
|
|
204
|
+
// activates fine — so this is NOT a guaranteed failure. But when the fields
|
|
205
|
+
// actually belong to different tables and have no semantic connection, etag
|
|
206
|
+
// comparisons can behave unexpectedly on draft/update round-trips. We surface
|
|
207
|
+
// it as a warning so the developer confirms the intent.
|
|
208
|
+
const etagNames = Array.from(source.matchAll(/\betag\s+master\s+([A-Za-z_]\w*)/gi), (m) => m[1]?.toLowerCase() ?? '');
|
|
209
|
+
const duplicate = firstDuplicate(etagNames);
|
|
210
|
+
if (duplicate) {
|
|
211
|
+
findings.push({
|
|
212
|
+
severity: 'warning',
|
|
213
|
+
ruleId: 'BDEF_DUPLICATE_ETAG_MASTER_NAME',
|
|
214
|
+
message: `Multiple etag master declarations reuse "${duplicate}". Verify each entity's etag master refers to its own timestamp field.`,
|
|
215
|
+
suggestion: 'Reusing the same identifier across root and dependent entities works when both tables contain a column of that name (SAP /DMO/* does this). Double-check the fields are actually present and semantically represent last-changed on each entity.',
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* DDLX (metadata extension) pre-write checks.
|
|
221
|
+
*
|
|
222
|
+
* Two distinct rule families here:
|
|
223
|
+
*
|
|
224
|
+
* 1. On-prem 7.5x only — DDLX_ANNOTATION_SCOPE_ONPREM_75X.
|
|
225
|
+
* The DDLX annotation scope was narrowed on older releases: headerInfo,
|
|
226
|
+
* searchable, and objectModel belong in the projection DDLS source
|
|
227
|
+
* instead. Modern S/4 relaxes this, which is why the rule is gated on
|
|
228
|
+
* `isOnPrem75x(context)`. The error rendered at activation is "unknown
|
|
229
|
+
* annotation in this scope" — doesn't tell the developer that the fix is
|
|
230
|
+
* to move the annotation to a different artifact.
|
|
231
|
+
*
|
|
232
|
+
* 2. All releases — DDLX_DUPLICATE_UI_ANNOTATION.
|
|
233
|
+
* Developers sometimes stack multiple @UI.lineItem / @UI.fieldGroup /
|
|
234
|
+
* @UI.selectionField blocks above the same field, expecting them to
|
|
235
|
+
* merge. They don't — activation rejects it as a duplicate.
|
|
236
|
+
*
|
|
237
|
+
* The duplicate-detection walker is state-machine-like: blank lines and
|
|
238
|
+
* non-UI annotation lines don't reset the `pendingKinds` buffer (stacking
|
|
239
|
+
* annotations on consecutive lines is idiomatic), but once a field
|
|
240
|
+
* declaration ends a block, we record what kinds were seen for that field
|
|
241
|
+
* and clear the buffer for the next field.
|
|
242
|
+
*/
|
|
243
|
+
function validateDdlx(source, context, findings) {
|
|
244
|
+
const lines = source.split('\n');
|
|
245
|
+
if (isOnPrem75x(context)) {
|
|
246
|
+
for (let i = 0; i < lines.length; i += 1) {
|
|
247
|
+
const line = lines[i] ?? '';
|
|
248
|
+
if (/@UI\.headerInfo\b/i.test(line) || /@Search\.searchable\b/i.test(line) || /@ObjectModel\./i.test(line)) {
|
|
249
|
+
findings.push({
|
|
250
|
+
severity: 'error',
|
|
251
|
+
ruleId: 'DDLX_ANNOTATION_SCOPE_ONPREM_75X',
|
|
252
|
+
message: 'Annotation scope is unsupported in DDLX on on-prem 7.5x (headerInfo/searchable/objectmodel).',
|
|
253
|
+
line: i + 1,
|
|
254
|
+
suggestion: 'Move these annotations to the projection DDLS source and keep DDLX to UI facet/lineItem/fieldGroup style annotations.',
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
// Track which UI annotation "kinds" (lineItem / fieldGroup / selectionField)
|
|
260
|
+
// have been applied per field. A second @UI.lineItem entry on the same
|
|
261
|
+
// field is a duplicate regardless of qualifier.
|
|
262
|
+
const perFieldSeen = new Map();
|
|
263
|
+
let pendingKinds = [];
|
|
264
|
+
for (let i = 0; i < lines.length; i += 1) {
|
|
265
|
+
const raw = lines[i] ?? '';
|
|
266
|
+
const line = raw.trim();
|
|
267
|
+
if (!line)
|
|
268
|
+
continue;
|
|
269
|
+
const annMatch = line.match(/^@UI\.(lineItem|fieldGroup|selectionField)\b/i);
|
|
270
|
+
if (annMatch) {
|
|
271
|
+
pendingKinds.push(`@UI.${annMatch[1].toLowerCase()}`);
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
if (line.startsWith('@')) {
|
|
275
|
+
// Non-targeted annotation — keep buffering UI kinds for the next field.
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
const fieldMatch = line.match(/^([A-Za-z_]\w*)\s*;/);
|
|
279
|
+
if (fieldMatch) {
|
|
280
|
+
const field = fieldMatch[1].toLowerCase();
|
|
281
|
+
const seenForField = perFieldSeen.get(field) ?? new Set();
|
|
282
|
+
const seenInCurrentBlock = new Set();
|
|
283
|
+
for (const kind of pendingKinds) {
|
|
284
|
+
if (seenInCurrentBlock.has(kind) || seenForField.has(kind)) {
|
|
285
|
+
findings.push({
|
|
286
|
+
severity: 'error',
|
|
287
|
+
ruleId: 'DDLX_DUPLICATE_UI_ANNOTATION',
|
|
288
|
+
message: `Field "${field}" has duplicate ${kind} annotation entries.`,
|
|
289
|
+
line: i + 1,
|
|
290
|
+
suggestion: 'Consolidate each UI annotation type into one block per field.',
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
seenInCurrentBlock.add(kind);
|
|
294
|
+
}
|
|
295
|
+
for (const kind of seenInCurrentBlock) {
|
|
296
|
+
seenForField.add(kind);
|
|
297
|
+
}
|
|
298
|
+
perFieldSeen.set(field, seenForField);
|
|
299
|
+
pendingKinds = [];
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
302
|
+
// Anything that's neither an annotation nor a field declaration ends the
|
|
303
|
+
// annotation-buffering window (e.g. `extend view entity ... with { ... }`).
|
|
304
|
+
pendingKinds = [];
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* DDLS (CDS view entity) pre-write checks.
|
|
309
|
+
*
|
|
310
|
+
* Warning-only: explicit `client` field in the select list.
|
|
311
|
+
*
|
|
312
|
+
* For CDS view entities (the RAP-era successor to DDIC views), SAP handles
|
|
313
|
+
* client filtering implicitly and including `client` in the select list
|
|
314
|
+
* either triggers an activation warning or a hard error depending on
|
|
315
|
+
* release. The safest guidance is to omit it entirely; existing customer
|
|
316
|
+
* sources may be intentional, hence warning-only.
|
|
317
|
+
*
|
|
318
|
+
* Regex limitation (intentional): the pattern matches one flat `{ ... }`
|
|
319
|
+
* select block and will miss `client` inside a nested association block
|
|
320
|
+
* like `{ key c, _Assoc.{ client } }`. Upgrading this to a full CDS parser
|
|
321
|
+
* isn't worth the complexity for a single warning — we accept the false
|
|
322
|
+
* negative.
|
|
323
|
+
*/
|
|
324
|
+
function validateDdls(source, _context, findings) {
|
|
325
|
+
const match = source.match(/\bselect\s+from\s+\w+\s*{\s*[^}]*\bclient\b[^}]*}/is);
|
|
326
|
+
if (match) {
|
|
327
|
+
findings.push({
|
|
328
|
+
severity: 'warning',
|
|
329
|
+
ruleId: 'DDLS_CLIENT_FIELD_IN_SELECT_LIST',
|
|
330
|
+
message: 'CDS view entity select list appears to include client explicitly.',
|
|
331
|
+
suggestion: 'For view entities, omit client from the select list and let SAP handle implicit client filtering.',
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* True if the given line is within 5 lines of an annotation matching the
|
|
337
|
+
* given pattern (stopping at the first non-annotation, non-blank line).
|
|
338
|
+
*
|
|
339
|
+
* Scope is kept small intentionally — TABL semantic annotations like
|
|
340
|
+
* `@Semantics.amount.currencyCode` are conventionally written on the
|
|
341
|
+
* immediately preceding line (or stacked with one or two other annotations
|
|
342
|
+
* above the field). Widening the scan would produce false negatives when an
|
|
343
|
+
* unrelated annotation block further up references the same currency key.
|
|
344
|
+
*/
|
|
345
|
+
function hasNearbyAnnotation(lines, lineIndex, annotationPattern) {
|
|
346
|
+
for (let i = lineIndex - 1; i >= 0 && i >= lineIndex - 5; i -= 1) {
|
|
347
|
+
const candidate = (lines[i] ?? '').trim();
|
|
348
|
+
if (!candidate)
|
|
349
|
+
continue;
|
|
350
|
+
if (annotationPattern.test(candidate))
|
|
351
|
+
return true;
|
|
352
|
+
if (candidate.startsWith('@'))
|
|
353
|
+
continue;
|
|
354
|
+
break;
|
|
355
|
+
}
|
|
356
|
+
return false;
|
|
357
|
+
}
|
|
358
|
+
function firstDuplicate(values) {
|
|
359
|
+
const seen = new Set();
|
|
360
|
+
for (const value of values) {
|
|
361
|
+
if (!value)
|
|
362
|
+
continue;
|
|
363
|
+
if (seen.has(value))
|
|
364
|
+
return value;
|
|
365
|
+
seen.add(value);
|
|
366
|
+
}
|
|
367
|
+
return undefined;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* True if the system is on-prem NetWeaver 7.5x (SAP_BASIS 750-759).
|
|
371
|
+
*
|
|
372
|
+
* Conservative by design — when we don't know the system type (e.g. feature
|
|
373
|
+
* detection hasn't run, or the system is an unknown self-hosted variant),
|
|
374
|
+
* we return false so on-prem-75x-only rules don't fire against modern
|
|
375
|
+
* systems as false positives. BTP never qualifies.
|
|
376
|
+
*
|
|
377
|
+
* If systemType is 'onprem' but we couldn't parse the release, assume the
|
|
378
|
+
* most common on-prem scenario (7.5x); customers on S/4 2020+ should always
|
|
379
|
+
* have an abapRelease, so the undefined-release case realistically means
|
|
380
|
+
* we're on older NW.
|
|
381
|
+
*/
|
|
382
|
+
function isOnPrem75x(context) {
|
|
383
|
+
if (context.systemType === 'btp')
|
|
384
|
+
return false;
|
|
385
|
+
if (context.systemType !== 'onprem')
|
|
386
|
+
return false;
|
|
387
|
+
const release = parseAbapRelease(context.abapRelease);
|
|
388
|
+
if (release === undefined)
|
|
389
|
+
return true;
|
|
390
|
+
return release >= 750 && release <= 759;
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Extract the numeric SAP_BASIS release from release strings like "754",
|
|
394
|
+
* "7.54", "754 SP3". Strips non-digits and parses — imperfect but adequate
|
|
395
|
+
* for the 75x / 75z comparison this module needs.
|
|
396
|
+
*/
|
|
397
|
+
function parseAbapRelease(value) {
|
|
398
|
+
if (!value)
|
|
399
|
+
return undefined;
|
|
400
|
+
const parsed = Number.parseInt(value.replace(/\D/g, ''), 10);
|
|
401
|
+
if (!Number.isFinite(parsed) || parsed <= 0)
|
|
402
|
+
return undefined;
|
|
403
|
+
return parsed;
|
|
404
|
+
}
|
|
405
|
+
//# sourceMappingURL=rap-preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rap-preflight.js","sourceRoot":"","sources":["../../src/adt/rap-preflight.ts"],"names":[],"mappings":"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"}
|