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.
Files changed (157) hide show
  1. package/README.md +12 -9
  2. package/bin/arc1-cli.js +10 -0
  3. package/bin/arc1.js +1 -1
  4. package/dist/adt/abapgit.d.ts +39 -0
  5. package/dist/adt/abapgit.d.ts.map +1 -0
  6. package/dist/adt/abapgit.js +333 -0
  7. package/dist/adt/abapgit.js.map +1 -0
  8. package/dist/adt/cds-impact.d.ts +35 -0
  9. package/dist/adt/cds-impact.d.ts.map +1 -1
  10. package/dist/adt/cds-impact.js +71 -0
  11. package/dist/adt/cds-impact.js.map +1 -1
  12. package/dist/adt/client.d.ts +4 -1
  13. package/dist/adt/client.d.ts.map +1 -1
  14. package/dist/adt/client.js +18 -5
  15. package/dist/adt/client.js.map +1 -1
  16. package/dist/adt/config.d.ts +1 -0
  17. package/dist/adt/config.d.ts.map +1 -1
  18. package/dist/adt/config.js +1 -0
  19. package/dist/adt/config.js.map +1 -1
  20. package/dist/adt/crud.d.ts.map +1 -1
  21. package/dist/adt/crud.js +74 -8
  22. package/dist/adt/crud.js.map +1 -1
  23. package/dist/adt/devtools.d.ts +39 -3
  24. package/dist/adt/devtools.d.ts.map +1 -1
  25. package/dist/adt/devtools.js +237 -25
  26. package/dist/adt/devtools.js.map +1 -1
  27. package/dist/adt/diagnostics.d.ts +69 -7
  28. package/dist/adt/diagnostics.d.ts.map +1 -1
  29. package/dist/adt/diagnostics.js +694 -36
  30. package/dist/adt/diagnostics.js.map +1 -1
  31. package/dist/adt/errors.d.ts +36 -2
  32. package/dist/adt/errors.d.ts.map +1 -1
  33. package/dist/adt/errors.js +111 -11
  34. package/dist/adt/errors.js.map +1 -1
  35. package/dist/adt/features.d.ts.map +1 -1
  36. package/dist/adt/features.js +3 -0
  37. package/dist/adt/features.js.map +1 -1
  38. package/dist/adt/gcts.d.ts +68 -0
  39. package/dist/adt/gcts.d.ts.map +1 -0
  40. package/dist/adt/gcts.js +239 -0
  41. package/dist/adt/gcts.js.map +1 -0
  42. package/dist/adt/http.d.ts.map +1 -1
  43. package/dist/adt/http.js +86 -1
  44. package/dist/adt/http.js.map +1 -1
  45. package/dist/adt/rap-handlers.d.ts +165 -0
  46. package/dist/adt/rap-handlers.d.ts.map +1 -0
  47. package/dist/adt/rap-handlers.js +835 -0
  48. package/dist/adt/rap-handlers.js.map +1 -0
  49. package/dist/adt/rap-preflight.d.ts +43 -0
  50. package/dist/adt/rap-preflight.d.ts.map +1 -0
  51. package/dist/adt/rap-preflight.js +405 -0
  52. package/dist/adt/rap-preflight.js.map +1 -0
  53. package/dist/adt/safety.d.ts +60 -33
  54. package/dist/adt/safety.d.ts.map +1 -1
  55. package/dist/adt/safety.js +204 -113
  56. package/dist/adt/safety.js.map +1 -1
  57. package/dist/adt/transport.d.ts +1 -1
  58. package/dist/adt/transport.d.ts.map +1 -1
  59. package/dist/adt/transport.js +6 -3
  60. package/dist/adt/transport.js.map +1 -1
  61. package/dist/adt/types.d.ts +225 -0
  62. package/dist/adt/types.d.ts.map +1 -1
  63. package/dist/adt/xml-parser.d.ts +15 -1
  64. package/dist/adt/xml-parser.d.ts.map +1 -1
  65. package/dist/adt/xml-parser.js +28 -15
  66. package/dist/adt/xml-parser.js.map +1 -1
  67. package/dist/authz/policy.d.ts +53 -0
  68. package/dist/authz/policy.d.ts.map +1 -0
  69. package/dist/authz/policy.js +199 -0
  70. package/dist/authz/policy.js.map +1 -0
  71. package/dist/cli-args.d.ts +14 -0
  72. package/dist/cli-args.d.ts.map +1 -0
  73. package/dist/cli-args.js +62 -0
  74. package/dist/cli-args.js.map +1 -0
  75. package/dist/cli.d.ts +13 -7
  76. package/dist/cli.d.ts.map +1 -1
  77. package/dist/cli.js +252 -55
  78. package/dist/cli.js.map +1 -1
  79. package/dist/extract-sap-cookies.d.ts +24 -0
  80. package/dist/extract-sap-cookies.d.ts.map +1 -0
  81. package/dist/extract-sap-cookies.js +317 -0
  82. package/dist/extract-sap-cookies.js.map +1 -0
  83. package/dist/handlers/hyperfocused.d.ts +4 -3
  84. package/dist/handlers/hyperfocused.d.ts.map +1 -1
  85. package/dist/handlers/hyperfocused.js +25 -16
  86. package/dist/handlers/hyperfocused.js.map +1 -1
  87. package/dist/handlers/intent.d.ts +4 -12
  88. package/dist/handlers/intent.d.ts.map +1 -1
  89. package/dist/handlers/intent.js +1448 -89
  90. package/dist/handlers/intent.js.map +1 -1
  91. package/dist/handlers/schemas.d.ts +83 -11
  92. package/dist/handlers/schemas.d.ts.map +1 -1
  93. package/dist/handlers/schemas.js +115 -4
  94. package/dist/handlers/schemas.js.map +1 -1
  95. package/dist/handlers/tools.d.ts +4 -3
  96. package/dist/handlers/tools.d.ts.map +1 -1
  97. package/dist/handlers/tools.js +342 -143
  98. package/dist/handlers/tools.js.map +1 -1
  99. package/dist/index.d.ts +1 -1
  100. package/dist/index.js +7 -6
  101. package/dist/index.js.map +1 -1
  102. package/dist/probe/catalog.d.ts +30 -0
  103. package/dist/probe/catalog.d.ts.map +1 -0
  104. package/dist/probe/catalog.js +196 -0
  105. package/dist/probe/catalog.js.map +1 -0
  106. package/dist/probe/fixtures.d.ts +54 -0
  107. package/dist/probe/fixtures.d.ts.map +1 -0
  108. package/dist/probe/fixtures.js +94 -0
  109. package/dist/probe/fixtures.js.map +1 -0
  110. package/dist/probe/format.d.ts +10 -0
  111. package/dist/probe/format.d.ts.map +1 -0
  112. package/dist/probe/format.js +114 -0
  113. package/dist/probe/format.js.map +1 -0
  114. package/dist/probe/quality.d.ts +13 -0
  115. package/dist/probe/quality.d.ts.map +1 -0
  116. package/dist/probe/quality.js +50 -0
  117. package/dist/probe/quality.js.map +1 -0
  118. package/dist/probe/runner.d.ts +48 -0
  119. package/dist/probe/runner.d.ts.map +1 -0
  120. package/dist/probe/runner.js +211 -0
  121. package/dist/probe/runner.js.map +1 -0
  122. package/dist/probe/types.d.ts +159 -0
  123. package/dist/probe/types.d.ts.map +1 -0
  124. package/dist/probe/types.js +11 -0
  125. package/dist/probe/types.js.map +1 -0
  126. package/dist/server/audit.d.ts +26 -3
  127. package/dist/server/audit.d.ts.map +1 -1
  128. package/dist/server/audit.js +12 -1
  129. package/dist/server/audit.js.map +1 -1
  130. package/dist/server/config.d.ts +34 -19
  131. package/dist/server/config.d.ts.map +1 -1
  132. package/dist/server/config.js +327 -187
  133. package/dist/server/config.js.map +1 -1
  134. package/dist/server/deny-actions.d.ts +31 -0
  135. package/dist/server/deny-actions.d.ts.map +1 -0
  136. package/dist/server/deny-actions.js +156 -0
  137. package/dist/server/deny-actions.js.map +1 -0
  138. package/dist/server/effective-policy-log.d.ts +27 -0
  139. package/dist/server/effective-policy-log.d.ts.map +1 -0
  140. package/dist/server/effective-policy-log.js +103 -0
  141. package/dist/server/effective-policy-log.js.map +1 -0
  142. package/dist/server/http.d.ts.map +1 -1
  143. package/dist/server/http.js +15 -16
  144. package/dist/server/http.js.map +1 -1
  145. package/dist/server/server.d.ts +38 -4
  146. package/dist/server/server.d.ts.map +1 -1
  147. package/dist/server/server.js +234 -31
  148. package/dist/server/server.js.map +1 -1
  149. package/dist/server/types.d.ts +31 -13
  150. package/dist/server/types.d.ts.map +1 -1
  151. package/dist/server/types.js +11 -10
  152. package/dist/server/types.js.map +1 -1
  153. package/dist/server/xsuaa.d.ts +1 -2
  154. package/dist/server/xsuaa.d.ts.map +1 -1
  155. package/dist/server/xsuaa.js +13 -14
  156. package/dist/server/xsuaa.js.map +1 -1
  157. 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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"}