arc-1 0.9.6 → 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 (72) hide show
  1. package/README.md +2 -2
  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 +112 -1
  14. package/dist/adt/client.d.ts.map +1 -1
  15. package/dist/adt/client.js +245 -3
  16. package/dist/adt/client.js.map +1 -1
  17. package/dist/adt/crud.d.ts +38 -0
  18. package/dist/adt/crud.d.ts.map +1 -1
  19. package/dist/adt/crud.js +73 -1
  20. package/dist/adt/crud.js.map +1 -1
  21. package/dist/adt/errors.d.ts +2 -2
  22. package/dist/adt/errors.d.ts.map +1 -1
  23. package/dist/adt/errors.js +50 -6
  24. package/dist/adt/errors.js.map +1 -1
  25. package/dist/adt/gcts.d.ts +3 -2
  26. package/dist/adt/gcts.d.ts.map +1 -1
  27. package/dist/adt/gcts.js +4 -4
  28. package/dist/adt/gcts.js.map +1 -1
  29. package/dist/adt/http.d.ts +18 -0
  30. package/dist/adt/http.d.ts.map +1 -1
  31. package/dist/adt/http.js +50 -43
  32. package/dist/adt/http.js.map +1 -1
  33. package/dist/adt/package-hierarchy.d.ts +67 -0
  34. package/dist/adt/package-hierarchy.d.ts.map +1 -0
  35. package/dist/adt/package-hierarchy.js +100 -0
  36. package/dist/adt/package-hierarchy.js.map +1 -0
  37. package/dist/adt/release.d.ts +35 -0
  38. package/dist/adt/release.d.ts.map +1 -0
  39. package/dist/adt/release.js +48 -0
  40. package/dist/adt/release.js.map +1 -0
  41. package/dist/adt/safety.d.ts +39 -3
  42. package/dist/adt/safety.d.ts.map +1 -1
  43. package/dist/adt/safety.js +136 -15
  44. package/dist/adt/safety.js.map +1 -1
  45. package/dist/adt/types.d.ts +74 -0
  46. package/dist/adt/types.d.ts.map +1 -1
  47. package/dist/adt/xml-parser.d.ts +46 -1
  48. package/dist/adt/xml-parser.d.ts.map +1 -1
  49. package/dist/adt/xml-parser.js +231 -0
  50. package/dist/adt/xml-parser.js.map +1 -1
  51. package/dist/authz/policy.d.ts.map +1 -1
  52. package/dist/authz/policy.js +12 -0
  53. package/dist/authz/policy.js.map +1 -1
  54. package/dist/context/grep.d.ts +48 -0
  55. package/dist/context/grep.d.ts.map +1 -0
  56. package/dist/context/grep.js +146 -0
  57. package/dist/context/grep.js.map +1 -0
  58. package/dist/handlers/intent.d.ts.map +1 -1
  59. package/dist/handlers/intent.js +430 -24
  60. package/dist/handlers/intent.js.map +1 -1
  61. package/dist/handlers/schemas.d.ts +42 -4
  62. package/dist/handlers/schemas.d.ts.map +1 -1
  63. package/dist/handlers/schemas.js +85 -9
  64. package/dist/handlers/schemas.js.map +1 -1
  65. package/dist/handlers/tools.d.ts.map +1 -1
  66. package/dist/handlers/tools.js +68 -12
  67. package/dist/handlers/tools.js.map +1 -1
  68. package/dist/server/server.d.ts +20 -2
  69. package/dist/server/server.d.ts.map +1 -1
  70. package/dist/server/server.js +45 -11
  71. package/dist/server/server.js.map +1 -1
  72. package/package.json +1 -1
@@ -18,9 +18,10 @@
18
18
  import { defaultAdtClientConfig } from './config.js';
19
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,6 +95,97 @@ 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;
@@ -108,6 +200,10 @@ export class AdtClient {
108
200
  * actual `adtcore:type` (TABL/DT vs TABL/DS). Separate from `tablUrlCache`
109
201
  * so the two contracts don't contaminate each other. See issue #285. */
110
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 };
111
207
  constructor(options = {}) {
112
208
  const config = { ...defaultAdtClientConfig(), ...options };
113
209
  this.safety = config.safety;
@@ -147,8 +243,35 @@ export class AdtClient {
147
243
  // Share the TABL URL resolution cache — it's purely about object addressing,
148
244
  // independent of per-request safety scope.
149
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
+ });
150
254
  return clone;
151
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
+ }
152
275
  // ─── Source Code Read Operations ──────────────────────────────────
153
276
  async fetchSource(path, opts = {}) {
154
277
  const url = opts.version ? appendQueryParam(path, 'version', opts.version) : path;
@@ -208,6 +331,14 @@ export class AdtClient {
208
331
  }
209
332
  return { source: parts.join('\n\n'), notModified: false, statusCode: 200 };
210
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
+ }
211
342
  /** Get class metadata (description, language, category, etc.) from the object endpoint */
212
343
  async getClassMetadata(name) {
213
344
  checkOperation(this.safety, OperationType.Read, 'GetClassMetadata');
@@ -248,6 +379,31 @@ export class AdtClient {
248
379
  macros,
249
380
  };
250
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
+ }
251
407
  /** Get interface source code */
252
408
  async getInterface(name, opts) {
253
409
  checkOperation(this.safety, OperationType.Read, 'GetInterface');
@@ -791,6 +947,67 @@ export class AdtClient {
791
947
  uri: ref.uri,
792
948
  }));
793
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
+ }
794
1011
  // ─── Table Data Operations ─────────────────────────────────────────
795
1012
  /** Get table contents via data preview */
796
1013
  async getTableContents(tableName, maxRows = 100, sqlFilter) {
@@ -804,6 +1021,20 @@ export class AdtClient {
804
1021
  const resp = await this.http.post(`/sap/bc/adt/datapreview/freestyle?rowNumber=${maxRows}`, sql, 'text/plain');
805
1022
  return parseTableContents(resp.body);
806
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
+ }
807
1038
  // ─── System Information ────────────────────────────────────────────
808
1039
  /** Get system info as structured JSON (user, system details from discovery XML) */
809
1040
  async getSystemInfo() {
@@ -883,12 +1114,23 @@ export class AdtClient {
883
1114
  * Resolve the ABAP package of an existing object by fetching its metadata.
884
1115
  * Returns the package name (e.g., "$TMP", "ZPACKAGE") or empty string if not found.
885
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.
886
1125
  */
887
1126
  async resolveObjectPackage(objectUrl) {
888
1127
  checkOperation(this.safety, OperationType.Read, 'ResolveObjectPackage');
889
1128
  const resp = await this.http.get(objectUrl);
890
- const match = resp.body.match(/adtcore:packageRef[^>]*adtcore:name="([^"]*)"/);
891
- 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] ?? '';
892
1134
  }
893
1135
  }
894
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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"}
@@ -35,6 +35,44 @@ export declare function deleteObject(http: AdtHttpClient, safety: SafetyConfig,
35
35
  * lock → updateSource → unlock (in try-finally)
36
36
  */
37
37
  export declare function safeUpdateSource(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string, sourceUrl: string, source: string, transport?: string, abapRelease?: string): Promise<void>;
38
+ /**
39
+ * Initialise (create) an empty class-local include (CCDEF/CCIMP/CCMAC/CCAU).
40
+ *
41
+ * On a freshly-created class the optional includes — notably `testclasses`
42
+ * (CCAU) — do not exist yet: `GET …/includes/testclasses` → 404, and a content
43
+ * PUT fails with `HTTP 500 "…CCAU does not have any inactive version"`. SAP's
44
+ * ADT contract is that the include must be created first.
45
+ *
46
+ * Live-verified mechanism (a4h S/4HANA 2023): inside a locked stateful session,
47
+ * an empty `POST …/includes/{include}?lockHandle=<LH>` (no body, no content-type)
48
+ * returns 201 and creates the include (SAP generates an empty skeleton). A bare
49
+ * POST without the lock handle returns 423 ("Resource CLASS_INCLUDE … is not
50
+ * locked"), so this MUST run with a valid lock on the parent class.
51
+ *
52
+ * Caller contract: invoke inside `withStatefulSession`, holding the parent
53
+ * class lock; pass that `lockHandle`.
54
+ */
55
+ export declare function initClassInclude(http: AdtHttpClient, safety: SafetyConfig, includeUrl: string, lockHandle: string): Promise<void>;
56
+ /**
57
+ * High-level: update a class-local include, auto-initialising it first if it
58
+ * doesn't exist yet. lock → GET-probe include → (POST-create if 404) → PUT → unlock,
59
+ * all in one stateful session sharing a single lock.
60
+ *
61
+ * Why probe-first instead of catch-the-500: the missing-include PUT failure is a
62
+ * release/language-dependent 500 ("does not have any inactive version"), whereas
63
+ * a `GET` 404 is deterministic and release-agnostic. Probing before the write
64
+ * also avoids relying on an untested "POST-init + retry-PUT after a failed PUT in
65
+ * the same locked session" path. The extra GET is cheap — include writes are
66
+ * deliberate edits, not a hot path — and when the include already exists (the
67
+ * common case, including the auto-existing CCDEF/CCIMP/CCMAC) the probe returns
68
+ * 200 and init is skipped, so behaviour for those includes is unchanged.
69
+ *
70
+ * Returns `{ initialized }` so the handler can tell the caller whether the
71
+ * include was created as part of this write.
72
+ */
73
+ export declare function safeUpdateClassInclude(http: AdtHttpClient, safety: SafetyConfig, classObjectUrl: string, includeUrl: string, source: string, transport?: string, abapRelease?: string): Promise<{
74
+ initialized: boolean;
75
+ }>;
38
76
  /**
39
77
  * High-level: update object metadata with guaranteed unlock.
40
78
  * lock → updateObject → unlock (in try-finally)
@@ -1 +1 @@
1
- {"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../src/adt/crud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAwB,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/E,2BAA2B;AAC3B,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,sCAAsC;AACtC,wBAAsB,UAAU,CAC9B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,SAAW,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,CAAC,CAmCrB;AAED,4BAA4B;AAC5B,wBAAsB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5G;AAkBD,+BAA+B;AAC/B,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,SAAkB,EAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAOD,2DAA2D;AAC3D,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,iDAAiD;AACjD,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,4CAA4C;AAC5C,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAUf;AASD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,WAAW,GAAG,SAAS,CA2CzB"}
1
+ {"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../src/adt/crud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAyC,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/E,2BAA2B;AAC3B,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,sCAAsC;AACtC,wBAAsB,UAAU,CAC9B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,SAAW,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,CAAC,CAmCrB;AAED,4BAA4B;AAC5B,wBAAsB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5G;AAkBD,+BAA+B;AAC/B,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,SAAkB,EAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAOD,2DAA2D;AAC3D,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,iDAAiD;AACjD,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,4CAA4C;AAC5C,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC,CA2BnC;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAUf;AASD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,WAAW,GAAG,SAAS,CA2CzB"}
package/dist/adt/crud.js CHANGED
@@ -9,7 +9,7 @@
9
9
  * This was a hard-won lesson in the fr0ster codebase — earlier versions
10
10
  * leaked locks on error, blocking the object for other developers.
11
11
  */
12
- import { AdtApiError, extractExceptionType } from './errors.js';
12
+ import { AdtApiError, extractExceptionType, isNotFoundError } from './errors.js';
13
13
  import { checkOperation, OperationType } from './safety.js';
14
14
  /** Lock an ABAP object for editing */
15
15
  export async function lockObject(http, safety, objectUrl, accessMode = 'MODIFY', abapRelease) {
@@ -155,6 +155,78 @@ export async function safeUpdateSource(http, safety, objectUrl, sourceUrl, sourc
155
155
  }
156
156
  });
157
157
  }
158
+ /**
159
+ * Initialise (create) an empty class-local include (CCDEF/CCIMP/CCMAC/CCAU).
160
+ *
161
+ * On a freshly-created class the optional includes — notably `testclasses`
162
+ * (CCAU) — do not exist yet: `GET …/includes/testclasses` → 404, and a content
163
+ * PUT fails with `HTTP 500 "…CCAU does not have any inactive version"`. SAP's
164
+ * ADT contract is that the include must be created first.
165
+ *
166
+ * Live-verified mechanism (a4h S/4HANA 2023): inside a locked stateful session,
167
+ * an empty `POST …/includes/{include}?lockHandle=<LH>` (no body, no content-type)
168
+ * returns 201 and creates the include (SAP generates an empty skeleton). A bare
169
+ * POST without the lock handle returns 423 ("Resource CLASS_INCLUDE … is not
170
+ * locked"), so this MUST run with a valid lock on the parent class.
171
+ *
172
+ * Caller contract: invoke inside `withStatefulSession`, holding the parent
173
+ * class lock; pass that `lockHandle`.
174
+ */
175
+ export async function initClassInclude(http, safety, includeUrl, lockHandle) {
176
+ // Creating the include is a mutation — gated by allowWrites like every other
177
+ // write (package gating already happened in the handler before this point).
178
+ checkOperation(safety, OperationType.Create, 'InitClassInclude');
179
+ const url = `${includeUrl}?lockHandle=${encodeURIComponent(lockHandle)}`;
180
+ await http.post(url, '', undefined);
181
+ }
182
+ /**
183
+ * High-level: update a class-local include, auto-initialising it first if it
184
+ * doesn't exist yet. lock → GET-probe include → (POST-create if 404) → PUT → unlock,
185
+ * all in one stateful session sharing a single lock.
186
+ *
187
+ * Why probe-first instead of catch-the-500: the missing-include PUT failure is a
188
+ * release/language-dependent 500 ("does not have any inactive version"), whereas
189
+ * a `GET` 404 is deterministic and release-agnostic. Probing before the write
190
+ * also avoids relying on an untested "POST-init + retry-PUT after a failed PUT in
191
+ * the same locked session" path. The extra GET is cheap — include writes are
192
+ * deliberate edits, not a hot path — and when the include already exists (the
193
+ * common case, including the auto-existing CCDEF/CCIMP/CCMAC) the probe returns
194
+ * 200 and init is skipped, so behaviour for those includes is unchanged.
195
+ *
196
+ * Returns `{ initialized }` so the handler can tell the caller whether the
197
+ * include was created as part of this write.
198
+ */
199
+ export async function safeUpdateClassInclude(http, safety, classObjectUrl, includeUrl, source, transport, abapRelease) {
200
+ return await http.withStatefulSession(async (session) => {
201
+ const lock = await lockObject(session, safety, classObjectUrl, 'MODIFY', abapRelease);
202
+ const effectiveTransport = transport ?? (lock.corrNr || undefined);
203
+ let initialized = false;
204
+ try {
205
+ // Probe whether the include exists. 404 → not initialised yet.
206
+ let exists = true;
207
+ try {
208
+ await session.get(includeUrl, undefined, { suppressNotFoundLog: true });
209
+ }
210
+ catch (err) {
211
+ if (isNotFoundError(err)) {
212
+ exists = false;
213
+ }
214
+ else {
215
+ throw err;
216
+ }
217
+ }
218
+ if (!exists) {
219
+ await initClassInclude(session, safety, includeUrl, lock.lockHandle);
220
+ initialized = true;
221
+ }
222
+ await updateSource(session, safety, includeUrl, source, lock.lockHandle, effectiveTransport);
223
+ }
224
+ finally {
225
+ await unlockObject(session, classObjectUrl, lock.lockHandle);
226
+ }
227
+ return { initialized };
228
+ });
229
+ }
158
230
  /**
159
231
  * High-level: update object metadata with guaranteed unlock.
160
232
  * lock → updateObject → unlock (in try-finally)