arc-1 0.9.5 → 0.9.7

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 (107) hide show
  1. package/README.md +21 -3
  2. package/dist/adt/abapgit.d.ts +2 -1
  3. package/dist/adt/abapgit.d.ts.map +1 -1
  4. package/dist/adt/abapgit.js +2 -2
  5. package/dist/adt/abapgit.js.map +1 -1
  6. package/dist/adt/btp.d.ts.map +1 -1
  7. package/dist/adt/btp.js +7 -3
  8. package/dist/adt/btp.js.map +1 -1
  9. package/dist/adt/class-structure.d.ts +176 -0
  10. package/dist/adt/class-structure.d.ts.map +1 -0
  11. package/dist/adt/class-structure.js +317 -0
  12. package/dist/adt/class-structure.js.map +1 -0
  13. package/dist/adt/client.d.ts +150 -8
  14. package/dist/adt/client.d.ts.map +1 -1
  15. package/dist/adt/client.js +345 -12
  16. package/dist/adt/client.js.map +1 -1
  17. package/dist/adt/config.d.ts +7 -1
  18. package/dist/adt/config.d.ts.map +1 -1
  19. package/dist/adt/config.js.map +1 -1
  20. package/dist/adt/crud.d.ts +38 -0
  21. package/dist/adt/crud.d.ts.map +1 -1
  22. package/dist/adt/crud.js +73 -1
  23. package/dist/adt/crud.js.map +1 -1
  24. package/dist/adt/errors.d.ts +2 -2
  25. package/dist/adt/errors.d.ts.map +1 -1
  26. package/dist/adt/errors.js +50 -6
  27. package/dist/adt/errors.js.map +1 -1
  28. package/dist/adt/features.d.ts.map +1 -1
  29. package/dist/adt/features.js +27 -3
  30. package/dist/adt/features.js.map +1 -1
  31. package/dist/adt/gcts.d.ts +3 -2
  32. package/dist/adt/gcts.d.ts.map +1 -1
  33. package/dist/adt/gcts.js +4 -4
  34. package/dist/adt/gcts.js.map +1 -1
  35. package/dist/adt/http.d.ts +41 -0
  36. package/dist/adt/http.d.ts.map +1 -1
  37. package/dist/adt/http.js +132 -45
  38. package/dist/adt/http.js.map +1 -1
  39. package/dist/adt/package-hierarchy.d.ts +67 -0
  40. package/dist/adt/package-hierarchy.d.ts.map +1 -0
  41. package/dist/adt/package-hierarchy.js +100 -0
  42. package/dist/adt/package-hierarchy.js.map +1 -0
  43. package/dist/adt/release.d.ts +35 -0
  44. package/dist/adt/release.d.ts.map +1 -0
  45. package/dist/adt/release.js +48 -0
  46. package/dist/adt/release.js.map +1 -0
  47. package/dist/adt/safety.d.ts +39 -3
  48. package/dist/adt/safety.d.ts.map +1 -1
  49. package/dist/adt/safety.js +136 -15
  50. package/dist/adt/safety.js.map +1 -1
  51. package/dist/adt/types.d.ts +74 -0
  52. package/dist/adt/types.d.ts.map +1 -1
  53. package/dist/adt/xml-parser.d.ts +68 -1
  54. package/dist/adt/xml-parser.d.ts.map +1 -1
  55. package/dist/adt/xml-parser.js +263 -0
  56. package/dist/adt/xml-parser.js.map +1 -1
  57. package/dist/authz/policy.d.ts.map +1 -1
  58. package/dist/authz/policy.js +12 -0
  59. package/dist/authz/policy.js.map +1 -1
  60. package/dist/context/grep.d.ts +48 -0
  61. package/dist/context/grep.d.ts.map +1 -0
  62. package/dist/context/grep.js +146 -0
  63. package/dist/context/grep.js.map +1 -0
  64. package/dist/handlers/intent.d.ts +2 -1
  65. package/dist/handlers/intent.d.ts.map +1 -1
  66. package/dist/handlers/intent.js +614 -50
  67. package/dist/handlers/intent.js.map +1 -1
  68. package/dist/handlers/schemas.d.ts +52 -6
  69. package/dist/handlers/schemas.d.ts.map +1 -1
  70. package/dist/handlers/schemas.js +90 -9
  71. package/dist/handlers/schemas.js.map +1 -1
  72. package/dist/handlers/tools.d.ts.map +1 -1
  73. package/dist/handlers/tools.js +73 -12
  74. package/dist/handlers/tools.js.map +1 -1
  75. package/dist/lint/lint.d.ts.map +1 -1
  76. package/dist/lint/lint.js +6 -0
  77. package/dist/lint/lint.js.map +1 -1
  78. package/dist/lint/pre-write-hints.d.ts +45 -0
  79. package/dist/lint/pre-write-hints.d.ts.map +1 -0
  80. package/dist/lint/pre-write-hints.js +145 -0
  81. package/dist/lint/pre-write-hints.js.map +1 -0
  82. package/dist/server/audit.d.ts +27 -1
  83. package/dist/server/audit.d.ts.map +1 -1
  84. package/dist/server/audit.js.map +1 -1
  85. package/dist/server/auth-rate-limit.d.ts +78 -0
  86. package/dist/server/auth-rate-limit.d.ts.map +1 -0
  87. package/dist/server/auth-rate-limit.js +95 -0
  88. package/dist/server/auth-rate-limit.js.map +1 -0
  89. package/dist/server/config.d.ts.map +1 -1
  90. package/dist/server/config.js +32 -0
  91. package/dist/server/config.js.map +1 -1
  92. package/dist/server/http.d.ts.map +1 -1
  93. package/dist/server/http.js +73 -2
  94. package/dist/server/http.js.map +1 -1
  95. package/dist/server/mcp-rate-limit.d.ts +69 -0
  96. package/dist/server/mcp-rate-limit.d.ts.map +1 -0
  97. package/dist/server/mcp-rate-limit.js +92 -0
  98. package/dist/server/mcp-rate-limit.js.map +1 -0
  99. package/dist/server/server.d.ts +26 -6
  100. package/dist/server/server.d.ts.map +1 -1
  101. package/dist/server/server.js +87 -28
  102. package/dist/server/server.js.map +1 -1
  103. package/dist/server/types.d.ts +20 -1
  104. package/dist/server/types.d.ts.map +1 -1
  105. package/dist/server/types.js +2 -0
  106. package/dist/server/types.js.map +1 -1
  107. package/package.json +14 -12
@@ -16,11 +16,12 @@
16
16
  * This keeps the client class manageable (not a 2,400-line God class).
17
17
  */
18
18
  import { defaultAdtClientConfig } from './config.js';
19
- import { AdtApiError, isNotFoundError } from './errors.js';
19
+ import { AdtApiError, AdtSafetyError, isNotFoundError } from './errors.js';
20
20
  import { AdtHttpClient } from './http.js';
21
+ import { AdtPackageHierarchyResolver } from './package-hierarchy.js';
21
22
  import { checkOperation, OperationType } from './safety.js';
22
23
  import { Semaphore } from './semaphore.js';
23
- import { parseApiReleaseState, parseAuthorizationField, parseBspAppList, parseBspFolderListing, parseClassMetadata, parseDataElementMetadata, parseDomainMetadata, parseEnhancementImplementation, parseFeatureToggleStates, parseFunctionGroup, parseInactiveObjects, parseInstalledComponents, parseMessageClass, parseRevisionFeed, parseSearchResults, parseServiceBinding, parseSourceSearchResults, parseSystemInfo, parseTableContents, parseTransactionMetadata, } from './xml-parser.js';
24
+ import { parseApiReleaseState, parseAuthorizationField, parseBspAppList, parseBspFolderListing, parseClassMetadata, parseClassStructure, parseDataElementMetadata, parseDomainMetadata, parseEnhancementImplementation, parseFeatureToggleStates, parseFunctionGroup, parseInactiveObjects, parseInstalledComponents, parseMessageClass, parseRevisionFeed, parseSearchResults, parseServiceBinding, parseSourceSearchResults, parseSubpackageNodestructure, parseSystemInfo, parseTableContents, parseTransactionMetadata, } from './xml-parser.js';
24
25
  function appendQueryParam(path, key, value) {
25
26
  const [baseAndQuery, fragment] = path.split('#', 2);
26
27
  const [base, query = ''] = (baseAndQuery ?? path).split('?', 2);
@@ -94,14 +95,115 @@ function tadirObjectUrl(tadirType, name) {
94
95
  return '';
95
96
  }
96
97
  }
98
+ // ─── TABLE_QUERY SQL builder ───────────────────────────────────────────────
99
+ /** Allowed SQL comparison operators for TABLE_QUERY where conditions. */
100
+ const ALLOWED_OPS = new Set([
101
+ '=',
102
+ '!=',
103
+ '<>',
104
+ '<',
105
+ '<=',
106
+ '>',
107
+ '>=',
108
+ 'LIKE',
109
+ 'NOT LIKE',
110
+ 'IN',
111
+ 'NOT IN',
112
+ 'IS NULL',
113
+ 'IS NOT NULL',
114
+ ]);
115
+ // BETWEEN is intentionally excluded: the value would require parsing "low AND high"
116
+ // where AND is a reserved word, making safe escaping complex and error-prone.
117
+ // Use two separate conditions (>= low, <= high) instead.
118
+ /**
119
+ * Build a safe IN/NOT IN list from a comma-separated string of raw values.
120
+ * Each value is trimmed, single-quote-escaped, and wrapped in quotes.
121
+ * Surrounding parentheses are accepted for caller convenience but stripped.
122
+ * Subquery injection is impossible because every element becomes a string literal.
123
+ */
124
+ function buildInList(raw) {
125
+ const trimmed = raw.trim();
126
+ const inner = trimmed.startsWith('(') && trimmed.endsWith(')') ? trimmed.slice(1, -1) : trimmed;
127
+ const parts = inner.split(',').map((p) => {
128
+ const escaped = p.trim().replace(/'/g, "''");
129
+ return `'${escaped}'`;
130
+ });
131
+ return `(${parts.join(', ')})`;
132
+ }
133
+ /** Upper bound on rows returned by a single TABLE_QUERY — a memory-safety rail (the whole
134
+ * result set is buffered in `parseTableContents`), not a SAP-side limit. Page client-side
135
+ * for more. Generous on purpose; adjust if a real use case needs it. */
136
+ const MAX_TABLE_QUERY_ROWS = 10_000;
137
+ /** Coerce a caller-supplied row limit into a safe positive integer in [1, MAX_TABLE_QUERY_ROWS].
138
+ * NaN / non-finite / non-positive / undefined fall back to the default (prevents `rowNumber=NaN`
139
+ * and unbounded result buffering). */
140
+ export function clampPreviewRows(requested, fallback = 100) {
141
+ if (requested === undefined || !Number.isFinite(requested) || requested < 1)
142
+ return fallback;
143
+ return Math.min(Math.floor(requested), MAX_TABLE_QUERY_ROWS);
144
+ }
145
+ /** Sanitize a SQL identifier (table / column / field): uppercase, then strip everything but
146
+ * word characters and the namespace slash. Throws when nothing survives — a structurally
147
+ * invalid identifier must fail closed rather than emit malformed SQL (e.g. `SELECT , X FROM`).
148
+ * Stripping spaces is also what blocks keyword injection (UNION/JOIN/OR collapse to one token). */
149
+ function sanitizeIdentifier(raw, kind) {
150
+ const safe = raw.toUpperCase().replace(/[^\w/]/g, '');
151
+ if (!safe)
152
+ throw new Error(`TABLE_QUERY: ${kind} name "${raw}" is invalid (empty after sanitization)`);
153
+ return safe;
154
+ }
155
+ /**
156
+ * Build a safe SELECT statement from structured parameters.
157
+ * All identifiers are uppercased, stripped to word-chars + namespace slash, and rejected if empty.
158
+ * String values are single-quote escaped (doubled single quotes).
159
+ * IN/NOT IN values are strictly parsed as quoted literal lists (no subqueries).
160
+ * Raises if the table, any column, or any where-field is empty after sanitization.
161
+ * ORDER BY is intentionally omitted: the ADT freestyle endpoint rejects it on NW 7.50/7.51.
162
+ */
163
+ export function buildTableQuerySql(tableName, columns, where) {
164
+ const safeTable = sanitizeIdentifier(tableName, 'table');
165
+ const colList = columns && columns.length > 0 ? columns.map((c) => sanitizeIdentifier(c, 'column')).join(', ') : '*';
166
+ let sql = `SELECT ${colList} FROM ${safeTable}`;
167
+ if (where && where.length > 0) {
168
+ const clauses = where.map(({ field, op, value }) => {
169
+ const safeField = sanitizeIdentifier(field, 'field');
170
+ const safeOp = op.trim().toUpperCase();
171
+ if (!ALLOWED_OPS.has(safeOp))
172
+ throw new Error(`TABLE_QUERY: operator "${op}" is not allowed`);
173
+ if (safeOp === 'IS NULL' || safeOp === 'IS NOT NULL')
174
+ return `${safeField} ${safeOp}`;
175
+ if (safeOp === 'IN' || safeOp === 'NOT IN') {
176
+ // Each element is individually escaped — subquery injection impossible.
177
+ const safeList = buildInList(String(value ?? ''));
178
+ return `${safeField} ${safeOp} ${safeList}`;
179
+ }
180
+ const escaped = String(value ?? '').replace(/'/g, "''");
181
+ return `${safeField} ${safeOp} '${escaped}'`;
182
+ });
183
+ sql += ` WHERE ${clauses.join(' AND ')}`;
184
+ }
185
+ // ORDER BY intentionally omitted: the ADT freestyle SQL endpoint rejects it on
186
+ // NW 7.50/7.51 (parser error: '"DESC" is not allowed here'). Sort client-side if needed.
187
+ return sql;
188
+ }
97
189
  export class AdtClient {
98
190
  http;
99
191
  safety;
100
192
  /** The configured SAP username (from --user / SAP_USER) */
101
193
  username;
102
- /** Per-client cache of resolved TABL URLs (transparent table at /tables/, structure at /structures/).
103
- * Populated by getTabl() so subsequent write/activate paths skip the 404 retry. */
194
+ /** Per-client cache of resolved TABL URLs for **reads** (transparent table at
195
+ * /tables/, structure at /structures/). Populated by getTabl() via the
196
+ * /tables/→/structures/ 404 fallback. */
104
197
  tablUrlCache = new Map();
198
+ /** Per-client cache of resolved TABL URLs for **writes / activates / deletes**.
199
+ * Populated by `resolveTablObjectUrlForWrite()` after asking SAP for the
200
+ * actual `adtcore:type` (TABL/DT vs TABL/DS). Separate from `tablUrlCache`
201
+ * so the two contracts don't contaminate each other. See issue #285. */
202
+ tablWriteUrlCache = new Map();
203
+ /** Lazily-instantiated DEVCLASS hierarchy resolver — only built when a subtree
204
+ * allowedPackages rule is hit. Shared across `withSafety()` clones because the
205
+ * hierarchy is a property of the SAP system, not of the current safety scope. */
206
+ packageHierarchyResolverHolder = { resolver: null };
105
207
  constructor(options = {}) {
106
208
  const config = { ...defaultAdtClientConfig(), ...options };
107
209
  this.safety = config.safety;
@@ -121,7 +223,10 @@ export class AdtClient {
121
223
  ppProxyAuth: config.ppProxyAuth,
122
224
  bearerTokenProvider: config.bearerTokenProvider,
123
225
  disableSaml: config.disableSaml,
124
- semaphore: config.maxConcurrent ? new Semaphore(config.maxConcurrent) : undefined,
226
+ // Prefer the shared server-wide semaphore when provided so all per-user PP clients
227
+ // share one cap. Fall back to a private semaphore for stdio/tests when only maxConcurrent
228
+ // is set. When neither is set, no concurrency cap applies.
229
+ semaphore: config.adtSemaphore ?? (config.maxConcurrent ? new Semaphore(config.maxConcurrent) : undefined),
125
230
  };
126
231
  this.http = new AdtHttpClient(httpConfig);
127
232
  }
@@ -138,8 +243,35 @@ export class AdtClient {
138
243
  // Share the TABL URL resolution cache — it's purely about object addressing,
139
244
  // independent of per-request safety scope.
140
245
  Object.defineProperty(clone, 'tablUrlCache', { value: this.tablUrlCache, writable: false, enumerable: false });
246
+ // Share the package-hierarchy resolver holder so cached subtrees survive
247
+ // per-request safety derivation. Wrapping in a holder lets the clone see
248
+ // lazy instantiations performed on the original (or another clone).
249
+ Object.defineProperty(clone, 'packageHierarchyResolverHolder', {
250
+ value: this.packageHierarchyResolverHolder,
251
+ writable: false,
252
+ enumerable: false,
253
+ });
141
254
  return clone;
142
255
  }
256
+ /**
257
+ * Lazily build (and return) the DEVCLASS hierarchy resolver. The resolver
258
+ * powers `ZFOO/**` subtree rules in `allowedPackages`; reads/writes that
259
+ * don't trigger a subtree rule never instantiate it (zero cost).
260
+ *
261
+ * Shared across `withSafety()` clones — the hierarchy is per-SAP-system, not
262
+ * per-safety-scope. Cache invalidation is exposed via `invalidatePackageHierarchy()`.
263
+ */
264
+ getPackageHierarchyResolver() {
265
+ if (!this.packageHierarchyResolverHolder.resolver) {
266
+ this.packageHierarchyResolverHolder.resolver = new AdtPackageHierarchyResolver((root) => this.getSubpackages(root));
267
+ }
268
+ return this.packageHierarchyResolverHolder.resolver;
269
+ }
270
+ /** Invalidate the resolver cache. Called after admin actions that change the
271
+ * hierarchy (create_package / change_package / delete_package). */
272
+ invalidatePackageHierarchy(root) {
273
+ this.packageHierarchyResolverHolder.resolver?.invalidate(root);
274
+ }
143
275
  // ─── Source Code Read Operations ──────────────────────────────────
144
276
  async fetchSource(path, opts = {}) {
145
277
  const url = opts.version ? appendQueryParam(path, 'version', opts.version) : path;
@@ -199,6 +331,14 @@ export class AdtClient {
199
331
  }
200
332
  return { source: parts.join('\n\n'), notModified: false, statusCode: 200 };
201
333
  }
334
+ /**
335
+ * Get the RAW source of a single class include (no `=== inc ===` wrapper that
336
+ * `getClass(name, include)` adds), so line numbers stay accurate for grep.
337
+ */
338
+ async getClassInclude(name, include, opts) {
339
+ checkOperation(this.safety, OperationType.Read, 'GetClassInclude');
340
+ return this.fetchSource(`/sap/bc/adt/oo/classes/${encodeURIComponent(name)}/includes/${encodeURIComponent(include)}`, opts);
341
+ }
202
342
  /** Get class metadata (description, language, category, etc.) from the object endpoint */
203
343
  async getClassMetadata(name) {
204
344
  checkOperation(this.safety, OperationType.Read, 'GetClassMetadata');
@@ -239,6 +379,31 @@ export class AdtClient {
239
379
  macros,
240
380
  };
241
381
  }
382
+ /**
383
+ * Get the class structure map (line ranges for DEFINITION / IMPLEMENTATION
384
+ * blocks, per-method/attribute ranges) from `/sap/bc/adt/oo/classes/{name}/objectstructure`.
385
+ *
386
+ * The endpoint is read-only — the response carries `#start=L,C;end=L,C`
387
+ * coordinates that `class-section surgery` actions (`edit_class_definition`,
388
+ * `add_method`, `edit_method_signature`, `delete_method`) use to splice into
389
+ * `/source/main` without re-sending the full class. Issue #303.
390
+ *
391
+ * Cross-release: works on both NW 7.50 SP02 (split CLAS/OO + CLAS/OM elements
392
+ * merged by name) and S/4HANA 2023 kernel 7.58+ (single CLAS/OM per method).
393
+ * MIME negotiation is delegated to the discovery cache in http.ts — v1+xml on
394
+ * 7.50, v2+xml on 7.58+.
395
+ */
396
+ async getClassStructure(name, version = 'active') {
397
+ checkOperation(this.safety, OperationType.Read, 'GetClassStructure');
398
+ // version=inactive returns the draft's structure (verified live on a4h: a class
399
+ // with an unactivated draft reports the draft's method set + line ranges under
400
+ // ?version=inactive, the active set under ?version=active). Threading the same
401
+ // version here as the /source/main read keeps the spliced line ranges aligned
402
+ // with the bytes being edited — critical for chained surgery on a draft.
403
+ const suffix = version === 'inactive' ? '?version=inactive' : '';
404
+ const resp = await this.http.get(`/sap/bc/adt/oo/classes/${encodeURIComponent(name)}/objectstructure${suffix}`);
405
+ return parseClassStructure(resp.body, name.toUpperCase());
406
+ }
242
407
  /** Get interface source code */
243
408
  async getInterface(name, opts) {
244
409
  checkOperation(this.safety, OperationType.Read, 'GetInterface');
@@ -371,11 +536,15 @@ export class AdtClient {
371
536
  throw err;
372
537
  }
373
538
  }
374
- /** Resolve the canonical ADT URL for a TABL name (transparent table or structure).
375
- * Returns the cached URL if a previous getTabl() resolved it; otherwise probes
376
- * /tables/ first and /structures/ on 404. Result is cached per client.
377
- * Used by write/activate/delete paths where the URL must match the object's
378
- * actual location (transparent vs structure). */
539
+ /** Resolve the canonical ADT URL for a TABL name (transparent table or structure)
540
+ * for the **read** path. Probes /tables/ first and falls back to /structures/ on
541
+ * 404. The source body is identical either way, so the fallback is safe for reads.
542
+ * Result is cached per client.
543
+ *
544
+ * Do NOT use this for writes/activates — on NW 7.50 the /tables/ endpoint is
545
+ * absent entirely, so transparent tables (TABL/DT) fall through to /structures/
546
+ * and a PUT there silently sets DD02L-TABCLASS=INTTAB (corruption). Use
547
+ * `resolveTablObjectUrlForWrite()` instead. See issue #285. */
379
548
  async resolveTablObjectUrl(name) {
380
549
  const upper = name.toUpperCase();
381
550
  const cached = this.tablUrlCache.get(upper);
@@ -397,6 +566,84 @@ export class AdtClient {
397
566
  throw err;
398
567
  }
399
568
  }
569
+ /** Resolve the canonical ADT URL for a TABL name on the **write/activate/delete**
570
+ * path. Unlike `resolveTablObjectUrl()`, this never falls back blindly to
571
+ * /structures/ — it asks SAP what the object actually is (via repository search)
572
+ * and refuses transparent-table writes on systems where /sap/bc/adt/ddic/tables/
573
+ * is absent (NW 7.50 ships /ddic/structures/ only; the table editor was added
574
+ * in NW 7.52). Returning /structures/ for a TABL/DT object would let a PUT
575
+ * silently flip DD02L-TABCLASS to INTTAB on the inactive draft (issue #285).
576
+ *
577
+ * Resolution order:
578
+ * 1. Search returns `TABL/DT` → require /tables/ availability, return /tables/<n>
579
+ * or throw AdtSafetyError with SE11 hint.
580
+ * 2. Search returns `TABL/DS` → return /structures/<n> (always allowed).
581
+ * 3. Search returns nothing (or a different type) → fall through to the
582
+ * read-path resolver. The caller is creating something new or the object
583
+ * was just renamed; subsequent ADT calls will surface the real error.
584
+ *
585
+ * Caches separately from the read resolver so the two contracts don't
586
+ * contaminate each other. */
587
+ async resolveTablObjectUrlForWrite(name, options = {}) {
588
+ const upper = name.toUpperCase();
589
+ const cached = this.tablWriteUrlCache.get(upper);
590
+ if (cached) {
591
+ // Defense-in-depth: a cached /tables/ URL must still respect the current
592
+ // discovery state. The cache stores resolutions, but the availability of
593
+ // /sap/bc/adt/ddic/tables/ is a per-system property — if it ever resolves
594
+ // to "missing", the cached entry must not silently bypass the guard.
595
+ if (cached.startsWith('/sap/bc/adt/ddic/tables/') && options.tablesEndpointAvailable === false) {
596
+ throw new AdtSafetyError(`Transparent table writes via ADT REST are not available on this system ` +
597
+ `(/sap/bc/adt/ddic/tables/ is not exposed — NW 7.50/7.51 ship the DDIC ` +
598
+ `structures endpoint only; the table editor was added in NW 7.52). ` +
599
+ `Use SE11 in SAPGUI to modify transparent table "${name}", or connect ` +
600
+ `ARC-1 to an SAP_BASIS ≥ 7.52 system. Writing to /sap/bc/adt/ddic/structures/ ` +
601
+ `would silently flip DD02L-TABCLASS to INTTAB and corrupt the table.`);
602
+ }
603
+ return cached;
604
+ }
605
+ let actualType;
606
+ try {
607
+ const results = await this.searchObject(name, 5);
608
+ // NPL 7.50 appends a localized suffix to adtcore:name ("T000 (Database Table)",
609
+ // "BAPIRET2 (Structure)"), so strip parenthesized text before matching. A4H
610
+ // and modern releases return just the bare name; both forms must work.
611
+ const match = results.find((r) => {
612
+ const bare = String(r.objectName ?? '')
613
+ .replace(/\s*\(.*$/, '')
614
+ .toUpperCase();
615
+ return bare === upper;
616
+ });
617
+ actualType = match?.objectType;
618
+ }
619
+ catch {
620
+ // Search failure should not block writes — fall through to the read-path
621
+ // resolver. If the user lacks search authorization the write will still
622
+ // surface its own error downstream.
623
+ }
624
+ const tableUrl = `/sap/bc/adt/ddic/tables/${encodeURIComponent(name)}`;
625
+ const structUrl = `/sap/bc/adt/ddic/structures/${encodeURIComponent(name)}`;
626
+ if (actualType === 'TABL/DT') {
627
+ if (options.tablesEndpointAvailable === false) {
628
+ throw new AdtSafetyError(`Transparent table writes via ADT REST are not available on this system ` +
629
+ `(/sap/bc/adt/ddic/tables/ is not exposed — NW 7.50/7.51 ship the DDIC ` +
630
+ `structures endpoint only; the table editor was added in NW 7.52). ` +
631
+ `Use SE11 in SAPGUI to modify transparent table "${name}", or connect ` +
632
+ `ARC-1 to an SAP_BASIS ≥ 7.52 system. Writing to /sap/bc/adt/ddic/structures/ ` +
633
+ `would silently flip DD02L-TABCLASS to INTTAB and corrupt the table.`);
634
+ }
635
+ this.tablWriteUrlCache.set(upper, tableUrl);
636
+ return tableUrl;
637
+ }
638
+ if (actualType === 'TABL/DS') {
639
+ this.tablWriteUrlCache.set(upper, structUrl);
640
+ return structUrl;
641
+ }
642
+ // Unknown / not-yet-existing object — fall back to the read-path resolver.
643
+ // For create paths the caller has already checked tablesEndpointAvailable
644
+ // separately (no existing object to search for).
645
+ return this.resolveTablObjectUrl(name);
646
+ }
400
647
  /** Get domain metadata (type, length, value table, fixed values) */
401
648
  async getDomain(name) {
402
649
  checkOperation(this.safety, OperationType.Read, 'GetDomain');
@@ -700,6 +947,67 @@ export class AdtClient {
700
947
  uri: ref.uri,
701
948
  }));
702
949
  }
950
+ /**
951
+ * Direct sub-packages of `packageName` — names only, uppercased, deduplicated.
952
+ *
953
+ * Uses ADT's `POST /sap/bc/adt/repository/nodestructure` with
954
+ * `parent_type=DEVC/K`, which is the canonical primitive for "direct
955
+ * children of package X" — returning exactly the set of DEVCLASS rows
956
+ * whose `TDEVC.PARENTCL = packageName`. Verified live against S/4HANA
957
+ * 2023 to match `SELECT devclass FROM tdevc WHERE parentcl = ?` for
958
+ * a range of roots, including namespace packages (`/AIF/MAIN`) and
959
+ * deep subtrees (5 levels under `SABP_TOOLS`).
960
+ *
961
+ * NOTE: the previous implementation used
962
+ * `informationsystem/search?packageName=X&objectType=DEVC/K`, which
963
+ * silently ignores `packageName` and returns ~1000 unrelated packages.
964
+ * That bug caused `allowedPackages` `X/**` rules to silently over-grant
965
+ * writes to unrelated packages. See
966
+ * `docs/research/package-subtree-endpoints.md` for the comparative analysis.
967
+ *
968
+ * Backs the `allowedPackages` subtree-rule (`ZFOO/**`) safety gate, so any
969
+ * failure (network, 4xx/5xx, parse) is surfaced as an exception, NEVER as
970
+ * an empty list. An empty list always means "SAP returned no children" —
971
+ * `nodestructure` responds with HTTP 200 and an empty (or absent) body
972
+ * for an unknown `parent_name`.
973
+ *
974
+ * `maxResults` is preserved for API compatibility and applied as a
975
+ * defense-in-depth post-filter on the parsed result. `nodestructure`
976
+ * itself does not honour a maxResults parameter on the SAP side and
977
+ * returns the full child set in one round-trip.
978
+ */
979
+ async getSubpackages(packageName, maxResults = 1000) {
980
+ checkOperation(this.safety, OperationType.Read, 'GetSubpackages');
981
+ const limit = Math.max(1, Math.min(maxResults, 1000));
982
+ const enc = encodeURIComponent(packageName);
983
+ const url = `/sap/bc/adt/repository/nodestructure` +
984
+ `?parent_type=${encodeURIComponent('DEVC/K')}&parent_name=${enc}&parent_tech_name=${enc}` +
985
+ `&withShortDescriptions=true`;
986
+ // ADT requires the asx:abap envelope with a TV_NODEKEY even though
987
+ // `parent_name` carries the actual selector. Missing the body returns HTTP 406.
988
+ const body = `<?xml version="1.0" encoding="UTF-8"?>` +
989
+ `<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">` +
990
+ `<asx:values><DATA><TV_NODEKEY>000000</TV_NODEKEY></DATA></asx:values>` +
991
+ `</asx:abap>`;
992
+ const resp = await this.http.post(url, body, 'application/vnd.sap.as+xml; charset=UTF-8; dataname=null', {
993
+ Accept: 'application/vnd.sap.as+xml',
994
+ });
995
+ const names = parseSubpackageNodestructure(resp.body);
996
+ const upperSelf = packageName.toUpperCase();
997
+ // parseSubpackageNodestructure already filters to DEVC/K, drops empty names,
998
+ // uppercases, and dedupes. Here we additionally exclude the queried package
999
+ // itself (defensive — `nodestructure` does not normally include it under
1000
+ // its own subtree) and apply the maxResults cap.
1001
+ const out = [];
1002
+ for (const name of names) {
1003
+ if (name === upperSelf)
1004
+ continue;
1005
+ out.push(name);
1006
+ if (out.length >= limit)
1007
+ break;
1008
+ }
1009
+ return out;
1010
+ }
703
1011
  // ─── Table Data Operations ─────────────────────────────────────────
704
1012
  /** Get table contents via data preview */
705
1013
  async getTableContents(tableName, maxRows = 100, sqlFilter) {
@@ -713,6 +1021,20 @@ export class AdtClient {
713
1021
  const resp = await this.http.post(`/sap/bc/adt/datapreview/freestyle?rowNumber=${maxRows}`, sql, 'text/plain');
714
1022
  return parseTableContents(resp.body);
715
1023
  }
1024
+ /**
1025
+ * Query a table or CDS view with structured parameters.
1026
+ * Builds the SELECT server-side from structured params. IN/NOT IN values are strictly
1027
+ * parsed as quoted literal lists (no subqueries). Uses the freestyle endpoint so
1028
+ * multi-column WHERE and CDS views work on all SAP releases.
1029
+ * Gated by allowDataPreview (not allowFreeSQL).
1030
+ */
1031
+ async runTableQuery(tableName, opts = {}) {
1032
+ checkOperation(this.safety, OperationType.Query, 'RunTableQuery');
1033
+ const sql = buildTableQuerySql(tableName, opts.columns, opts.where);
1034
+ const maxRows = clampPreviewRows(opts.maxRows);
1035
+ const resp = await this.http.post(`/sap/bc/adt/datapreview/freestyle?rowNumber=${maxRows}`, sql, 'text/plain');
1036
+ return parseTableContents(resp.body);
1037
+ }
716
1038
  // ─── System Information ────────────────────────────────────────────
717
1039
  /** Get system info as structured JSON (user, system details from discovery XML) */
718
1040
  async getSystemInfo() {
@@ -792,12 +1114,23 @@ export class AdtClient {
792
1114
  * Resolve the ABAP package of an existing object by fetching its metadata.
793
1115
  * Returns the package name (e.g., "$TMP", "ZPACKAGE") or empty string if not found.
794
1116
  * Used by SAPWrite to enforce allowedPackages on update/delete/edit_method.
1117
+ *
1118
+ * Top-level objects (CLAS, INTF, PROG, TABL, DDLS, ...) expose
1119
+ * `<adtcore:packageRef adtcore:name="…"/>` directly. Contained objects
1120
+ * (notably FUNC, which lives inside a FUGR) instead expose the package via
1121
+ * `<adtcore:containerRef … adtcore:packageName="…"/>` since their own
1122
+ * `packageRef` would just point at the parent — the `containerRef` already
1123
+ * surfaces the package as a denormalised attribute. Both shapes resolve
1124
+ * to the same package; we accept either.
795
1125
  */
796
1126
  async resolveObjectPackage(objectUrl) {
797
1127
  checkOperation(this.safety, OperationType.Read, 'ResolveObjectPackage');
798
1128
  const resp = await this.http.get(objectUrl);
799
- const match = resp.body.match(/adtcore:packageRef[^>]*adtcore:name="([^"]*)"/);
800
- return match?.[1] ?? '';
1129
+ const packageRefMatch = resp.body.match(/adtcore:packageRef[^>]*adtcore:name="([^"]*)"/);
1130
+ if (packageRefMatch?.[1])
1131
+ return packageRefMatch[1];
1132
+ const containerRefMatch = resp.body.match(/adtcore:containerRef[^>]*adtcore:packageName="([^"]*)"/);
1133
+ return containerRefMatch?.[1] ?? '';
801
1134
  }
802
1135
  }
803
1136
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/adt/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/adt/client.ts"],"names":[],"mappings":"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"}
@@ -74,8 +74,14 @@ export interface AdtClientConfig {
74
74
  bearerTokenProvider?: () => Promise<string>;
75
75
  /** Opt-in: disable SAML redirect via X-SAP-SAML2 header + saml2 query param */
76
76
  disableSaml?: boolean;
77
- /** Maximum concurrent SAP HTTP requests. When set, requests beyond this limit queue. */
77
+ /** Maximum concurrent SAP HTTP requests. When set, requests beyond this limit queue.
78
+ * Falls back to constructing a private Semaphore if `adtSemaphore` is not provided.
79
+ * Used by stdio / tests that don't have a server-wide shared instance. */
78
80
  maxConcurrent?: number;
81
+ /** Shared SAP-bound Semaphore — when provided, this single instance gates ALL clients
82
+ * constructed with this config. The server constructs one at startup so principal-propagation
83
+ * per-user clients all share the same cap. Takes precedence over `maxConcurrent`. */
84
+ adtSemaphore?: import('./semaphore.js').Semaphore;
79
85
  }
80
86
  /** Create default ADT client config */
81
87
  export declare function defaultAdtClientConfig(): AdtClientConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/adt/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,gEAAgE;AAChE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AAEhD,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,WAAW,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,WAAW,CAAC;IACjB,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,WAAW,CAAC;CAClB;AAED,8CAA8C;AAC9C,wBAAgB,oBAAoB,IAAI,aAAa,CAYpD;AAED,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,+BAA+B;IAC/B,QAAQ,EAAE,aAAa,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wFAAwF;IACxF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,uCAAuC;AACvC,wBAAgB,sBAAsB,IAAI,eAAe,CAaxD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/adt/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,gEAAgE;AAChE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AAEhD,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,WAAW,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,WAAW,CAAC;IACjB,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,WAAW,CAAC;CAClB;AAED,8CAA8C;AAC9C,wBAAgB,oBAAoB,IAAI,aAAa,CAYpD;AAED,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,+BAA+B;IAC/B,QAAQ,EAAE,aAAa,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;+EAE2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;0FAEsF;IACtF,YAAY,CAAC,EAAE,OAAO,gBAAgB,EAAE,SAAS,CAAC;CACnD;AAED,uCAAuC;AACvC,wBAAgB,sBAAsB,IAAI,eAAe,CAaxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/adt/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAkBvD,8CAA8C;AAC9C,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,MAAM;KACZ,CAAC;AACJ,CAAC;AAyDD,uCAAuC;AACvC,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,wBAAwB,EAAE;QAClC,QAAQ,EAAE,oBAAoB,EAAE;QAChC,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/adt/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAkBvD,8CAA8C;AAC9C,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,MAAM;KACZ,CAAC;AACJ,CAAC;AA+DD,uCAAuC;AACvC,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,wBAAwB,EAAE;QAClC,QAAQ,EAAE,oBAAoB,EAAE;QAChC,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC"}