arc-1 1.2.0 → 1.3.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 (292) hide show
  1. package/README.md +7 -5
  2. package/dist/adt/atc-batch.d.ts +71 -0
  3. package/dist/adt/atc-batch.d.ts.map +1 -0
  4. package/dist/adt/atc-batch.js +182 -0
  5. package/dist/adt/atc-batch.js.map +1 -0
  6. package/dist/adt/atc.d.ts +34 -0
  7. package/dist/adt/atc.d.ts.map +1 -1
  8. package/dist/adt/atc.js +58 -12
  9. package/dist/adt/atc.js.map +1 -1
  10. package/dist/adt/aunit.d.ts.map +1 -1
  11. package/dist/adt/aunit.js +50 -7
  12. package/dist/adt/aunit.js.map +1 -1
  13. package/dist/adt/bounded-response.d.ts +4 -1
  14. package/dist/adt/bounded-response.d.ts.map +1 -1
  15. package/dist/adt/bounded-response.js +33 -7
  16. package/dist/adt/bounded-response.js.map +1 -1
  17. package/dist/adt/ci-quality-xml.d.ts +44 -0
  18. package/dist/adt/ci-quality-xml.d.ts.map +1 -0
  19. package/dist/adt/ci-quality-xml.js +98 -0
  20. package/dist/adt/ci-quality-xml.js.map +1 -0
  21. package/dist/adt/ci-quality.d.ts +64 -0
  22. package/dist/adt/ci-quality.d.ts.map +1 -0
  23. package/dist/adt/ci-quality.js +132 -0
  24. package/dist/adt/ci-quality.js.map +1 -0
  25. package/dist/adt/client.d.ts +20 -16
  26. package/dist/adt/client.d.ts.map +1 -1
  27. package/dist/adt/client.js +35 -70
  28. package/dist/adt/client.js.map +1 -1
  29. package/dist/adt/data-source-policy.d.ts +6 -15
  30. package/dist/adt/data-source-policy.d.ts.map +1 -1
  31. package/dist/adt/data-source-policy.js +18 -11
  32. package/dist/adt/data-source-policy.js.map +1 -1
  33. package/dist/adt/ddic-xml.d.ts +78 -4
  34. package/dist/adt/ddic-xml.d.ts.map +1 -1
  35. package/dist/adt/ddic-xml.js +647 -54
  36. package/dist/adt/ddic-xml.js.map +1 -1
  37. package/dist/adt/devtools.d.ts +1 -0
  38. package/dist/adt/devtools.d.ts.map +1 -1
  39. package/dist/adt/devtools.js +24 -4
  40. package/dist/adt/devtools.js.map +1 -1
  41. package/dist/adt/http-deadline.d.ts +5 -0
  42. package/dist/adt/http-deadline.d.ts.map +1 -1
  43. package/dist/adt/http-deadline.js +2 -2
  44. package/dist/adt/http-deadline.js.map +1 -1
  45. package/dist/adt/http.d.ts +6 -3
  46. package/dist/adt/http.d.ts.map +1 -1
  47. package/dist/adt/http.js +57 -15
  48. package/dist/adt/http.js.map +1 -1
  49. package/dist/adt/internal-data-operations.d.ts +9 -4
  50. package/dist/adt/internal-data-operations.d.ts.map +1 -1
  51. package/dist/adt/internal-data-operations.js +11 -7
  52. package/dist/adt/internal-data-operations.js.map +1 -1
  53. package/dist/adt/package-contents.d.ts +12 -0
  54. package/dist/adt/package-contents.d.ts.map +1 -0
  55. package/dist/adt/package-contents.js +19 -0
  56. package/dist/adt/package-contents.js.map +1 -0
  57. package/dist/adt/relation-objects.d.ts +385 -0
  58. package/dist/adt/relation-objects.d.ts.map +1 -0
  59. package/dist/adt/relation-objects.js +262 -0
  60. package/dist/adt/relation-objects.js.map +1 -0
  61. package/dist/adt/repository-relations.d.ts +41 -0
  62. package/dist/adt/repository-relations.d.ts.map +1 -0
  63. package/dist/adt/repository-relations.js +246 -0
  64. package/dist/adt/repository-relations.js.map +1 -0
  65. package/dist/adt/request-attempt-budget.d.ts +26 -0
  66. package/dist/adt/request-attempt-budget.d.ts.map +1 -0
  67. package/dist/adt/request-attempt-budget.js +63 -0
  68. package/dist/adt/request-attempt-budget.js.map +1 -0
  69. package/dist/adt/result-limits.d.ts +3 -0
  70. package/dist/adt/result-limits.d.ts.map +1 -0
  71. package/dist/adt/result-limits.js +7 -0
  72. package/dist/adt/result-limits.js.map +1 -0
  73. package/dist/adt/server-driven.d.ts +6 -1
  74. package/dist/adt/server-driven.d.ts.map +1 -1
  75. package/dist/adt/server-driven.js +24 -20
  76. package/dist/adt/server-driven.js.map +1 -1
  77. package/dist/adt/table-query.d.ts +2 -0
  78. package/dist/adt/table-query.d.ts.map +1 -1
  79. package/dist/adt/table-query.js +61 -0
  80. package/dist/adt/table-query.js.map +1 -1
  81. package/dist/adt/text-elements.d.ts +48 -0
  82. package/dist/adt/text-elements.d.ts.map +1 -0
  83. package/dist/adt/text-elements.js +116 -0
  84. package/dist/adt/text-elements.js.map +1 -0
  85. package/dist/adt/types.d.ts +16 -0
  86. package/dist/adt/types.d.ts.map +1 -1
  87. package/dist/adt/uiad.d.ts +19 -0
  88. package/dist/adt/uiad.d.ts.map +1 -0
  89. package/dist/adt/uiad.js +173 -0
  90. package/dist/adt/uiad.js.map +1 -0
  91. package/dist/adt/xml-parser.d.ts +2 -0
  92. package/dist/adt/xml-parser.d.ts.map +1 -1
  93. package/dist/adt/xml-parser.js +20 -1
  94. package/dist/adt/xml-parser.js.map +1 -1
  95. package/dist/authz/policy.d.ts.map +1 -1
  96. package/dist/authz/policy.js +4 -1
  97. package/dist/authz/policy.js.map +1 -1
  98. package/dist/cache/cache.d.ts +3 -23
  99. package/dist/cache/cache.d.ts.map +1 -1
  100. package/dist/cache/cache.js +2 -3
  101. package/dist/cache/cache.js.map +1 -1
  102. package/dist/cache/caching-layer.d.ts +6 -25
  103. package/dist/cache/caching-layer.d.ts.map +1 -1
  104. package/dist/cache/caching-layer.js +3 -45
  105. package/dist/cache/caching-layer.js.map +1 -1
  106. package/dist/cache/memory.d.ts +1 -4
  107. package/dist/cache/memory.d.ts.map +1 -1
  108. package/dist/cache/memory.js +1 -10
  109. package/dist/cache/memory.js.map +1 -1
  110. package/dist/cache/sqlite.d.ts +1 -3
  111. package/dist/cache/sqlite.d.ts.map +1 -1
  112. package/dist/cache/sqlite.js +2 -17
  113. package/dist/cache/sqlite.js.map +1 -1
  114. package/dist/cli-checks.d.ts +3 -0
  115. package/dist/cli-checks.d.ts.map +1 -1
  116. package/dist/cli-checks.js +16 -0
  117. package/dist/cli-checks.js.map +1 -1
  118. package/dist/cli.d.ts.map +1 -1
  119. package/dist/cli.js +5 -2
  120. package/dist/cli.js.map +1 -1
  121. package/dist/context/compressor.d.ts +2 -3
  122. package/dist/context/compressor.d.ts.map +1 -1
  123. package/dist/context/compressor.js +30 -49
  124. package/dist/context/compressor.js.map +1 -1
  125. package/dist/context/contract.d.ts +5 -0
  126. package/dist/context/contract.d.ts.map +1 -1
  127. package/dist/context/contract.js +2 -2
  128. package/dist/context/contract.js.map +1 -1
  129. package/dist/context/deps.d.ts +11 -0
  130. package/dist/context/deps.d.ts.map +1 -1
  131. package/dist/context/deps.js +2 -2
  132. package/dist/context/deps.js.map +1 -1
  133. package/dist/context/parse-cache.d.ts +23 -0
  134. package/dist/context/parse-cache.d.ts.map +1 -0
  135. package/dist/context/parse-cache.js +71 -0
  136. package/dist/context/parse-cache.js.map +1 -0
  137. package/dist/context/relation-walk.d.ts +48 -0
  138. package/dist/context/relation-walk.d.ts.map +1 -0
  139. package/dist/context/relation-walk.js +137 -0
  140. package/dist/context/relation-walk.js.map +1 -0
  141. package/dist/context/types.d.ts +4 -4
  142. package/dist/context/types.d.ts.map +1 -1
  143. package/dist/handlers/activate.d.ts +1 -1
  144. package/dist/handlers/activate.d.ts.map +1 -1
  145. package/dist/handlers/activate.js +33 -56
  146. package/dist/handlers/activate.js.map +1 -1
  147. package/dist/handlers/activation-results.d.ts +3 -0
  148. package/dist/handlers/activation-results.d.ts.map +1 -0
  149. package/dist/handlers/activation-results.js +8 -0
  150. package/dist/handlers/activation-results.js.map +1 -0
  151. package/dist/handlers/context.d.ts.map +1 -1
  152. package/dist/handlers/context.js +8 -32
  153. package/dist/handlers/context.js.map +1 -1
  154. package/dist/handlers/data-element-fields.d.ts +26 -0
  155. package/dist/handlers/data-element-fields.d.ts.map +1 -0
  156. package/dist/handlers/data-element-fields.js +27 -0
  157. package/dist/handlers/data-element-fields.js.map +1 -0
  158. package/dist/handlers/diagnose-ci.d.ts +9 -0
  159. package/dist/handlers/diagnose-ci.d.ts.map +1 -0
  160. package/dist/handlers/diagnose-ci.js +120 -0
  161. package/dist/handlers/diagnose-ci.js.map +1 -0
  162. package/dist/handlers/diagnose-fields.d.ts +51 -0
  163. package/dist/handlers/diagnose-fields.d.ts.map +1 -0
  164. package/dist/handlers/diagnose-fields.js +48 -0
  165. package/dist/handlers/diagnose-fields.js.map +1 -0
  166. package/dist/handlers/diagnose.d.ts +4 -1
  167. package/dist/handlers/diagnose.d.ts.map +1 -1
  168. package/dist/handlers/diagnose.js +28 -6
  169. package/dist/handlers/diagnose.js.map +1 -1
  170. package/dist/handlers/dispatch.d.ts.map +1 -1
  171. package/dist/handlers/dispatch.js +22 -5
  172. package/dist/handlers/dispatch.js.map +1 -1
  173. package/dist/handlers/feature-cache.d.ts +4 -3
  174. package/dist/handlers/feature-cache.d.ts.map +1 -1
  175. package/dist/handlers/feature-cache.js +4 -3
  176. package/dist/handlers/feature-cache.js.map +1 -1
  177. package/dist/handlers/hyperfocused.js +1 -1
  178. package/dist/handlers/live-relations.d.ts +5 -0
  179. package/dist/handlers/live-relations.d.ts.map +1 -0
  180. package/dist/handlers/live-relations.js +89 -0
  181. package/dist/handlers/live-relations.js.map +1 -0
  182. package/dist/handlers/manage.d.ts.map +1 -1
  183. package/dist/handlers/manage.js +7 -4
  184. package/dist/handlers/manage.js.map +1 -1
  185. package/dist/handlers/navigate.d.ts +1 -1
  186. package/dist/handlers/navigate.d.ts.map +1 -1
  187. package/dist/handlers/navigate.js +11 -5
  188. package/dist/handlers/navigate.js.map +1 -1
  189. package/dist/handlers/object-types.d.ts +2 -0
  190. package/dist/handlers/object-types.d.ts.map +1 -1
  191. package/dist/handlers/object-types.js +41 -6
  192. package/dist/handlers/object-types.js.map +1 -1
  193. package/dist/handlers/query-errors.d.ts +9 -1
  194. package/dist/handlers/query-errors.d.ts.map +1 -1
  195. package/dist/handlers/query-errors.js +40 -28
  196. package/dist/handlers/query-errors.js.map +1 -1
  197. package/dist/handlers/query.d.ts +1 -1
  198. package/dist/handlers/query.d.ts.map +1 -1
  199. package/dist/handlers/query.js +2 -2
  200. package/dist/handlers/query.js.map +1 -1
  201. package/dist/handlers/read.d.ts +1 -1
  202. package/dist/handlers/read.d.ts.map +1 -1
  203. package/dist/handlers/read.js +48 -15
  204. package/dist/handlers/read.js.map +1 -1
  205. package/dist/handlers/relation-input.d.ts +42 -0
  206. package/dist/handlers/relation-input.d.ts.map +1 -0
  207. package/dist/handlers/relation-input.js +22 -0
  208. package/dist/handlers/relation-input.js.map +1 -0
  209. package/dist/handlers/relation-tool.d.ts +5 -0
  210. package/dist/handlers/relation-tool.d.ts.map +1 -0
  211. package/dist/handlers/relation-tool.js +36 -0
  212. package/dist/handlers/relation-tool.js.map +1 -0
  213. package/dist/handlers/schemas.d.ts +119 -62
  214. package/dist/handlers/schemas.d.ts.map +1 -1
  215. package/dist/handlers/schemas.js +150 -13
  216. package/dist/handlers/schemas.js.map +1 -1
  217. package/dist/handlers/search.d.ts +1 -1
  218. package/dist/handlers/search.d.ts.map +1 -1
  219. package/dist/handlers/search.js +18 -5
  220. package/dist/handlers/search.js.map +1 -1
  221. package/dist/handlers/tool-descriptions.d.ts.map +1 -1
  222. package/dist/handlers/tool-descriptions.js +12 -13
  223. package/dist/handlers/tool-descriptions.js.map +1 -1
  224. package/dist/handlers/tool-registry.d.ts +1 -0
  225. package/dist/handlers/tool-registry.d.ts.map +1 -1
  226. package/dist/handlers/tool-registry.js +4 -0
  227. package/dist/handlers/tool-registry.js.map +1 -1
  228. package/dist/handlers/tools.d.ts +2 -3
  229. package/dist/handlers/tools.d.ts.map +1 -1
  230. package/dist/handlers/tools.js +127 -72
  231. package/dist/handlers/tools.js.map +1 -1
  232. package/dist/handlers/write/batch-results.d.ts +28 -0
  233. package/dist/handlers/write/batch-results.d.ts.map +1 -0
  234. package/dist/handlers/write/batch-results.js +106 -0
  235. package/dist/handlers/write/batch-results.js.map +1 -0
  236. package/dist/handlers/write/create-transport.d.ts +7 -0
  237. package/dist/handlers/write/create-transport.d.ts.map +1 -0
  238. package/dist/handlers/write/create-transport.js +38 -0
  239. package/dist/handlers/write/create-transport.js.map +1 -0
  240. package/dist/handlers/write/create.d.ts.map +1 -1
  241. package/dist/handlers/write/create.js +276 -413
  242. package/dist/handlers/write/create.js.map +1 -1
  243. package/dist/handlers/write/uiad.d.ts +8 -0
  244. package/dist/handlers/write/uiad.d.ts.map +1 -0
  245. package/dist/handlers/write/uiad.js +115 -0
  246. package/dist/handlers/write/uiad.js.map +1 -0
  247. package/dist/handlers/write/update-delete.d.ts +6 -6
  248. package/dist/handlers/write/update-delete.d.ts.map +1 -1
  249. package/dist/handlers/write/update-delete.js +46 -15
  250. package/dist/handlers/write/update-delete.js.map +1 -1
  251. package/dist/handlers/write-helpers.d.ts +0 -6
  252. package/dist/handlers/write-helpers.d.ts.map +1 -1
  253. package/dist/handlers/write-helpers.js +88 -80
  254. package/dist/handlers/write-helpers.js.map +1 -1
  255. package/dist/handlers/write.d.ts.map +1 -1
  256. package/dist/handlers/write.js +5 -1
  257. package/dist/handlers/write.js.map +1 -1
  258. package/dist/public/ui/app.js +0 -2
  259. package/dist/server/audit.d.ts +1 -1
  260. package/dist/server/audit.d.ts.map +1 -1
  261. package/dist/server/http.d.ts +1 -1
  262. package/dist/server/http.d.ts.map +1 -1
  263. package/dist/server/http.js +1 -0
  264. package/dist/server/http.js.map +1 -1
  265. package/dist/server/logger.d.ts.map +1 -1
  266. package/dist/server/logger.js +4 -1
  267. package/dist/server/logger.js.map +1 -1
  268. package/dist/server/multi-target-tools.d.ts.map +1 -1
  269. package/dist/server/multi-target-tools.js +3 -1
  270. package/dist/server/multi-target-tools.js.map +1 -1
  271. package/dist/server/server-instructions.d.ts.map +1 -1
  272. package/dist/server/server-instructions.js +11 -5
  273. package/dist/server/server-instructions.js.map +1 -1
  274. package/dist/server/server.d.ts +1 -1
  275. package/dist/server/server.d.ts.map +1 -1
  276. package/dist/server/server.js +18 -44
  277. package/dist/server/server.js.map +1 -1
  278. package/dist/server/shutdown.d.ts +6 -0
  279. package/dist/server/shutdown.d.ts.map +1 -0
  280. package/dist/server/shutdown.js +52 -0
  281. package/dist/server/shutdown.js.map +1 -0
  282. package/dist/server/sinks/btp-auditlog.d.ts +10 -8
  283. package/dist/server/sinks/btp-auditlog.d.ts.map +1 -1
  284. package/dist/server/sinks/btp-auditlog.js +76 -68
  285. package/dist/server/sinks/btp-auditlog.js.map +1 -1
  286. package/dist/server/sinks/file.d.ts +1 -1
  287. package/dist/server/sinks/file.d.ts.map +1 -1
  288. package/dist/server/sinks/file.js +12 -21
  289. package/dist/server/sinks/file.js.map +1 -1
  290. package/dist/server/ui.js +0 -2
  291. package/dist/server/ui.js.map +1 -1
  292. package/package.json +15 -13
@@ -0,0 +1,98 @@
1
+ /** Bounded package selection and strict Checkstyle parsing for the ATC CI API. */
2
+ import { XMLValidator } from 'fast-xml-parser';
3
+ import { escapeXmlAttr, findDeepNodes, parseXml } from './xml-parser.js';
4
+ export const CI_REPORT_PARSE_LIMIT = 2 * 1024 * 1024;
5
+ export const DEFAULT_ATC_CI_VARIANT = 'ABAP_CLOUD_DEVELOPMENT_DEFAULT';
6
+ /** Input bounds are enforced by SAPDiagnose's strict schema before package verification. */
7
+ export function buildOslObjectSetXml(objectSet) {
8
+ return ('<osl:objectSet xsi:type="osl:packageSet" xmlns:osl="http://www.sap.com/api/osl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' +
9
+ objectSet.packages
10
+ .map((name) => `<osl:package name="${escapeXmlAttr(name)}" includeSubpackages="false"/>`)
11
+ .join('') +
12
+ objectSet.packageTrees
13
+ .map((name) => `<osl:package name="${escapeXmlAttr(name)}" includeSubpackages="true"/>`)
14
+ .join('') +
15
+ '</osl:objectSet>');
16
+ }
17
+ export function buildAtcCiRunParametersXml(objectSet, options = {}) {
18
+ const variant = options.variant?.trim() || DEFAULT_ATC_CI_VARIANT;
19
+ return `<?xml version="1.0" encoding="UTF-8"?><atc:runparameters xmlns:atc="http://www.sap.com/adt/atc" checkVariant="${escapeXmlAttr(variant)}"${options.configuration ? ` configuration="${escapeXmlAttr(options.configuration)}"` : ''}>${buildOslObjectSetXml(objectSet)}</atc:runparameters>`;
20
+ }
21
+ export function reportRoot(xml, name, label = name) {
22
+ if (Buffer.byteLength(xml) > CI_REPORT_PARSE_LIMIT)
23
+ throw new Error(`${label} report exceeded the 2 MiB parsing limit.`);
24
+ if (XMLValidator.validate(xml) !== true || /<!DOCTYPE/i.test(xml))
25
+ throw new Error(`CI API returned invalid ${label} XML.`);
26
+ const parsed = parseXml(xml);
27
+ const keys = Object.keys(parsed).filter((key) => !key.startsWith('?') && !key.startsWith('@_'));
28
+ if (keys.length !== 1 || keys[0] !== name)
29
+ throw new Error(`CI API returned a non-${label} report.`);
30
+ const root = parsed[name];
31
+ if (root === '')
32
+ return {};
33
+ if (!root || typeof root !== 'object' || Array.isArray(root))
34
+ throw new Error(`CI API returned an invalid ${label} root.`);
35
+ return root;
36
+ }
37
+ export function parseAtcCiRunStatus(xml) {
38
+ const run = reportRoot(xml, 'run');
39
+ const links = findDeepNodes(run, 'link').filter((link) => String(link['@_type'] ?? '').includes('atc.checkstyle') || String(link['@_rel'] ?? '').endsWith('/atc/result'));
40
+ const progress = findDeepNodes(run, 'progress')[0];
41
+ return {
42
+ status: String(run['@_status'] ?? '').trim(),
43
+ ...(progress?.['@_description'] ? { progress: String(progress['@_description']) } : {}),
44
+ ...(links.length === 1 && links[0]?.['@_href'] ? { resultHref: String(links[0]['@_href']) } : {}),
45
+ };
46
+ }
47
+ function nodes(value) {
48
+ if (value === undefined)
49
+ return [];
50
+ return (Array.isArray(value) ? value : [value]).map((node) => {
51
+ if (!node || typeof node !== 'object' || Array.isArray(node))
52
+ throw new Error('Malformed Checkstyle entry.');
53
+ return node;
54
+ });
55
+ }
56
+ export function parseAtcCheckstyle(xml) {
57
+ const root = reportRoot(xml, 'checkstyle');
58
+ if (Object.keys(root).some((key) => !key.startsWith('@_') && key !== 'file'))
59
+ throw new Error('Unexpected Checkstyle report content.');
60
+ const findings = [];
61
+ for (const file of nodes(root.file)) {
62
+ if (typeof file['@_name'] !== 'string' || !file['@_name'])
63
+ throw new Error('Checkstyle file lacks a name.');
64
+ if (Object.keys(file).some((key) => !key.startsWith('@_') && key !== 'error'))
65
+ throw new Error('Unexpected Checkstyle file content.');
66
+ for (const error of nodes(file.error)) {
67
+ const severity = error['@_severity'];
68
+ if (severity !== 'error' && severity !== 'warning' && severity !== 'info')
69
+ throw new Error('Invalid Checkstyle severity.');
70
+ if (typeof error['@_message'] !== 'string' || !error['@_message'])
71
+ throw new Error('Checkstyle finding lacks a message.');
72
+ const line = error['@_line'] === undefined ? undefined : Number(error['@_line']);
73
+ if (line !== undefined && (!Number.isSafeInteger(line) || line < 0))
74
+ throw new Error('Invalid Checkstyle line.');
75
+ findings.push({
76
+ file: file['@_name'],
77
+ message: error['@_message'],
78
+ source: String(error['@_source'] ?? ''),
79
+ severity,
80
+ ...(line === undefined ? {} : { line }),
81
+ });
82
+ }
83
+ }
84
+ return { findings, summary: summarizeAtcFindings(findings) };
85
+ }
86
+ export function summarizeAtcFindings(findings) {
87
+ return {
88
+ findingCount: findings.length,
89
+ errorCount: findings.filter((x) => x.severity === 'error').length,
90
+ warningCount: findings.filter((x) => x.severity === 'warning').length,
91
+ infoCount: findings.filter((x) => x.severity === 'info').length,
92
+ };
93
+ }
94
+ export function atcFindingsFail(findings, threshold) {
95
+ const ranks = { error: 3, warning: 2, info: 1 };
96
+ return findings.some((finding) => ranks[finding.severity] >= ranks[threshold]);
97
+ }
98
+ //# sourceMappingURL=ci-quality-xml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-quality-xml.js","sourceRoot":"","sources":["../../src/adt/ci-quality-xml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { type AtcCiSeverity, type CiObjectSet, type NormalizedCiObjectSet } from './ci-quality-xml.js';
2
+ import type { AdtHttpClient, AdtRequestOptions } from './http.js';
3
+ import { type SafetyConfig } from './safety.js';
4
+ export declare const ATC_CI_RUNS_PATH = "/sap/bc/adt/api/atc/runs";
5
+ export declare const ATC_CI_CONTENT_TYPE_RUN = "application/vnd.sap.atc.run.parameters.v1+xml; charset=utf-8";
6
+ export declare const ATC_CI_ACCEPT_CHECKSTYLE = "application/vnd.sap.atc.checkstyle.v1+xml";
7
+ export declare const CI_REPORT_XML_LIMIT: number;
8
+ export declare const CI_FINDINGS_LIMIT = 200;
9
+ export interface CiQualityClock {
10
+ now(): number;
11
+ sleep(ms: number, signal?: AbortSignal): Promise<void>;
12
+ }
13
+ export interface RunAtcCiOptions {
14
+ objectSet: CiObjectSet;
15
+ variant?: string;
16
+ configuration?: string;
17
+ failOnSeverity?: AtcCiSeverity;
18
+ timeoutSeconds: number;
19
+ signal?: AbortSignal;
20
+ clock?: CiQualityClock;
21
+ includeReportXml?: boolean;
22
+ }
23
+ /** Verify all named packages before starting any run; ATC additionally needs a nonempty selection. */
24
+ export declare function verifyCiPackages(http: AdtHttpClient, safety: SafetyConfig, input: CiObjectSet, requestOptions: AdtRequestOptions, requireObjects?: boolean): Promise<NormalizedCiObjectSet>;
25
+ export declare function probeAtcCi(http: AdtHttpClient, safety: SafetyConfig, requestOptions: AdtRequestOptions): Promise<boolean>;
26
+ export declare function runAtcCiCheck(http: AdtHttpClient, safety: SafetyConfig, options: RunAtcCiOptions): Promise<{
27
+ status: 'incomplete';
28
+ fail: boolean;
29
+ durationMs: number;
30
+ incompleteReason: string;
31
+ runPath: string | undefined;
32
+ lastStatus: string;
33
+ progress: string | undefined;
34
+ } | {
35
+ status: 'completed';
36
+ fail: boolean;
37
+ durationMs: number;
38
+ runPath: string;
39
+ resultPath: string;
40
+ summary: import("./ci-quality-xml.js").AtcCiSummary;
41
+ findings: import("./ci-quality-xml.js").AtcCiFinding[];
42
+ truncated: boolean;
43
+ reportXmlOmitted: string;
44
+ } | {
45
+ status: 'completed';
46
+ fail: boolean;
47
+ durationMs: number;
48
+ runPath: string;
49
+ resultPath: string;
50
+ summary: import("./ci-quality-xml.js").AtcCiSummary;
51
+ findings: import("./ci-quality-xml.js").AtcCiFinding[];
52
+ truncated: boolean;
53
+ reportXml: string;
54
+ } | {
55
+ status: 'completed';
56
+ fail: boolean;
57
+ durationMs: number;
58
+ runPath: string;
59
+ resultPath: string;
60
+ summary: import("./ci-quality-xml.js").AtcCiSummary;
61
+ findings: import("./ci-quality-xml.js").AtcCiFinding[];
62
+ truncated: boolean;
63
+ }>;
64
+ //# sourceMappingURL=ci-quality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-quality.d.ts","sourceRoot":"","sources":["../../src/adt/ci-quality.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,aAAa,EAIlB,KAAK,WAAW,EAEhB,KAAK,qBAAqB,EAG3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAe,MAAM,WAAW,CAAC;AAE/E,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAG/E,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAC3D,eAAO,MAAM,uBAAuB,iEAAiE,CAAC;AACtG,eAAO,MAAM,wBAAwB,8CAA8C,CAAC;AACpF,eAAO,MAAM,mBAAmB,QAAa,CAAC;AAC9C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,MAAM,WAAW,cAAc;IAC7B,GAAG,IAAI,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AACD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,sGAAsG;AACtG,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,EAClB,cAAc,EAAE,iBAAiB,EACjC,cAAc,UAAQ,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAoChC;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,iBAAiB,GAChC,OAAO,CAAC,OAAO,CAAC,CAalB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe;YAY3F,YAAY;;;;;;;;YAqCN,WAAW;;;;;;;;;;YAAX,WAAW;;;;;;;;;;YAAX,WAAW;;;;;;;;GA4B5B"}
@@ -0,0 +1,132 @@
1
+ /** Package-based ATC CI client. AUnit CI reuses the existing reconciled handler. */
2
+ import { setTimeout as sleep } from 'node:timers/promises';
3
+ import { ATC_RUN_STATUS_MEDIA_TYPE, isAtcRunFailure } from './atc.js';
4
+ import { atcFindingsFail, buildAtcCiRunParametersXml, CI_REPORT_PARSE_LIMIT, parseAtcCheckstyle, parseAtcCiRunStatus, } from './ci-quality-xml.js';
5
+ import { AdtApiError, AdtNetworkError } from './errors.js';
6
+ import { assertCanonicalHostRelativeAdtPath } from './path-safety.js';
7
+ import { checkOperation, OperationType } from './safety.js';
8
+ import { findDeepNodes, parseSearchResults, parseXml } from './xml-parser.js';
9
+ export const ATC_CI_RUNS_PATH = '/sap/bc/adt/api/atc/runs';
10
+ export const ATC_CI_CONTENT_TYPE_RUN = 'application/vnd.sap.atc.run.parameters.v1+xml; charset=utf-8';
11
+ export const ATC_CI_ACCEPT_CHECKSTYLE = 'application/vnd.sap.atc.checkstyle.v1+xml';
12
+ export const CI_REPORT_XML_LIMIT = 256 * 1024;
13
+ export const CI_FINDINGS_LIMIT = 200;
14
+ /** Verify all named packages before starting any run; ATC additionally needs a nonempty selection. */
15
+ export async function verifyCiPackages(http, safety, input, requestOptions, requireObjects = false) {
16
+ checkOperation(safety, OperationType.Read, 'VerifyCiPackages');
17
+ const normalize = (names = []) => [...new Set(names.map((name) => name.toUpperCase()))];
18
+ const packageTrees = normalize(input.packageTrees);
19
+ const objectSet = {
20
+ packages: normalize(input.packages).filter((name) => !packageTrees.includes(name)),
21
+ packageTrees,
22
+ };
23
+ for (const name of [...objectSet.packages, ...objectSet.packageTrees]) {
24
+ let response;
25
+ try {
26
+ response = await http.get(`/sap/bc/adt/packages/${encodeURIComponent(name)}`, undefined, requestOptions);
27
+ }
28
+ catch (error) {
29
+ if (error instanceof AdtApiError && error.statusCode === 404)
30
+ throw new Error(`CI package ${name} does not exist or is not accessible. No run was started.`);
31
+ throw error;
32
+ }
33
+ const packages = findDeepNodes(parseXml(response.body), 'package');
34
+ if (!packages.some((pkg) => String(pkg['@_name'] ?? '').toUpperCase() === name))
35
+ throw new Error(`CI package ${name} could not be verified. No run was started.`);
36
+ if (requireObjects) {
37
+ const result = await http.get(`/sap/bc/adt/repository/informationsystem/search?operation=quickSearch&query=*&packageName=${encodeURIComponent(name)}&maxResults=1000`, undefined, requestOptions);
38
+ const objects = parseSearchResults(result.body).filter((object) => !/^DEVC(?:\/|$)/i.test(object.objectType) &&
39
+ (objectSet.packageTrees.includes(name) || object.packageName.toUpperCase() === name));
40
+ if (!objects.length)
41
+ throw new Error(`CI package selection ${name} is empty or could not be verified. No run was started.`);
42
+ }
43
+ }
44
+ return objectSet;
45
+ }
46
+ export async function probeAtcCi(http, safety, requestOptions) {
47
+ checkOperation(safety, OperationType.Read, 'ProbeAtcCi');
48
+ try {
49
+ await http.get(`${ATC_CI_RUNS_PATH}/00000000000000000000000000000000`, { Accept: ATC_RUN_STATUS_MEDIA_TYPE }, { ...requestOptions, probe: true });
50
+ return true;
51
+ }
52
+ catch (error) {
53
+ if (error instanceof AdtApiError && [404, 405, 406, 415].includes(error.statusCode))
54
+ return false;
55
+ throw error;
56
+ }
57
+ }
58
+ export async function runAtcCiCheck(http, safety, options) {
59
+ checkOperation(safety, OperationType.Read, 'RunAtcCiCheck');
60
+ const clock = options.clock ?? {
61
+ now: Date.now,
62
+ sleep: (ms, signal) => sleep(ms, undefined, { signal }),
63
+ };
64
+ const started = clock.now();
65
+ const deadline = started + options.timeoutSeconds * 1000;
66
+ const requestOptions = { deadline, signal: options.signal };
67
+ let runPath;
68
+ let state = { status: 'not started' };
69
+ const incomplete = (reason) => ({
70
+ status: 'incomplete',
71
+ fail: true,
72
+ durationMs: clock.now() - started,
73
+ incompleteReason: reason,
74
+ runPath,
75
+ lastStatus: state.status,
76
+ progress: state.progress,
77
+ });
78
+ try {
79
+ options.signal?.throwIfAborted();
80
+ if (!(await probeAtcCi(http, safety, requestOptions)))
81
+ throw new Error('ATC CI API is not available on this system. Use SAPDiagnose action="atc" if supported.');
82
+ const objectSet = await verifyCiPackages(http, safety, options.objectSet, requestOptions, true);
83
+ const created = await http.post(`${ATC_CI_RUNS_PATH}?clientWait=false`, buildAtcCiRunParametersXml(objectSet, options), ATC_CI_CONTENT_TYPE_RUN, { Accept: ATC_RUN_STATUS_MEDIA_TYPE }, requestOptions);
84
+ runPath = assertCanonicalHostRelativeAdtPath(created.headers.location ?? created.headers.Location ?? '', `${ATC_CI_RUNS_PATH}/`);
85
+ while (clock.now() < deadline) {
86
+ options.signal?.throwIfAborted();
87
+ const response = await http.get(runPath, { Accept: ATC_RUN_STATUS_MEDIA_TYPE }, requestOptions);
88
+ state = parseAtcCiRunStatus(response.body);
89
+ if (/^completed$/i.test(state.status)) {
90
+ if (!state.resultHref)
91
+ return incomplete('Completed run has no unambiguous Checkstyle result link.');
92
+ const resultPath = assertCanonicalHostRelativeAdtPath(state.resultHref, '/sap/bc/adt/api/atc/results/');
93
+ const result = await http.get(resultPath, { Accept: ATC_CI_ACCEPT_CHECKSTYLE }, requestOptions);
94
+ if (Buffer.byteLength(result.body) > CI_REPORT_PARSE_LIMIT)
95
+ return incomplete('Checkstyle report exceeded the 2 MiB parsing limit.');
96
+ const parsed = parseAtcCheckstyle(result.body);
97
+ const reportTooLarge = Buffer.byteLength(result.body) > CI_REPORT_XML_LIMIT;
98
+ return {
99
+ status: 'completed',
100
+ fail: atcFindingsFail(parsed.findings, options.failOnSeverity ?? 'error'),
101
+ durationMs: clock.now() - started,
102
+ runPath,
103
+ resultPath,
104
+ summary: parsed.summary,
105
+ findings: parsed.findings.slice(0, CI_FINDINGS_LIMIT),
106
+ truncated: parsed.findings.length > CI_FINDINGS_LIMIT,
107
+ ...(options.includeReportXml
108
+ ? reportTooLarge
109
+ ? { reportXmlOmitted: 'Report exceeds 256 KiB.' }
110
+ : { reportXml: result.body }
111
+ : {}),
112
+ };
113
+ }
114
+ if (!state.status || isAtcRunFailure(state.status))
115
+ return incomplete('SAP did not complete the ATC CI run.');
116
+ const remaining = deadline - clock.now();
117
+ if (remaining <= 0)
118
+ break;
119
+ await clock.sleep(Math.min(5000, remaining), options.signal);
120
+ }
121
+ return incomplete('ATC CI deadline expired. Inspect the existing SAP run before starting another.');
122
+ }
123
+ catch (error) {
124
+ if (options.signal?.aborted)
125
+ return incomplete('ATC CI call cancelled; the SAP run may still exist.');
126
+ const cause = error instanceof AdtNetworkError ? error.cause : error;
127
+ if (cause instanceof Error && cause.name === 'TimeoutError')
128
+ return incomplete('ATC CI deadline expired. Inspect the existing SAP run before starting another.');
129
+ throw error;
130
+ }
131
+ }
132
+ //# sourceMappingURL=ci-quality.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-quality.js","sourceRoot":"","sources":["../../src/adt/ci-quality.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ import type { AdtRequestOptions } from './http-deadline.js';
23
23
  import { type PackageHierarchyResolver } from './package-hierarchy.js';
24
24
  import { type SafetyConfig } from './safety.js';
25
25
  import { buildTableQuerySql, clampPreviewRows } from './table-query.js';
26
+ import { type TextElementObjectType, type TextElementPart } from './text-elements.js';
26
27
  import { clampSearchResults, toTextSearchObjectType } from './text-search.js';
27
28
  import type { AdtObjectLookupResult, AdtSearchResult, ApiReleaseStateInfo, AuthorizationFieldInfo, BspAppInfo, BspFileNode, ClassMetadata, ClassStructure, DataElementInfo, DomainInfo, EnhancementImplementationInfo, FeatureToggleInfo, FunctionGroupStructure, FunctionModuleProperties, InactiveObject, MessageClassInfo, RevisionListResult, SourceSearchResult, StructuredClassResponse, TransactionInfo } from './types.js';
28
29
  import { type DataPreviewMeta } from './xml-parser.js';
@@ -49,6 +50,7 @@ export interface SourceReadOptions extends AdtRequestOptions {
49
50
  export declare const CLASS_REVISION_INCLUDES: readonly ['main', 'definitions', 'implementations', 'macros', 'testclasses'];
50
51
  /** Types with an addressable revisions feed — derived, never hand-maintained. */
51
52
  export declare const REVISION_TYPES: ReadonlySet<string>;
53
+ export { isTextElementObjectType, TEXT_ELEMENT_OBJECT_TYPES, TEXT_ELEMENT_PARTS, type TextElementObjectType, type TextElementPart, } from './text-elements.js';
52
54
  export declare class AdtClient {
53
55
  readonly http: AdtHttpClient;
54
56
  readonly safety: SafetyConfig;
@@ -271,8 +273,8 @@ export declare class AdtClient {
271
273
  getDomain(name: string): Promise<DomainInfo>;
272
274
  /** Get table type (TTYP) metadata: row type, access type, key kind. */
273
275
  getTableType(name: string): Promise<TableTypeInfo>;
274
- /** Get data element metadata (domain, labels, search help) */
275
- getDataElement(name: string): Promise<DataElementInfo>;
276
+ /** Get data element metadata (domain, labels/reserved lengths, search help, input-history flag) */
277
+ getDataElement(name: string, version?: 'active' | 'inactive'): Promise<DataElementInfo>;
276
278
  /** Get authorization field metadata (role, check table, domain, org-level flags) */
277
279
  getAuthorizationField(name: string): Promise<AuthorizationFieldInfo>;
278
280
  private revisionsUrlFor;
@@ -310,7 +312,7 @@ export declare class AdtClient {
310
312
  * `application/xml;q=0.5` fallback covers any release that ignores the vendor type. */
311
313
  getInactiveObjects(): Promise<InactiveObject[]>;
312
314
  /** Search for ABAP objects by name pattern */
313
- searchObject(query: string, maxResults?: number): Promise<AdtSearchResult[]>;
315
+ searchObject(query: string, maxResults?: number, objectType?: string): Promise<AdtSearchResult[]>;
314
316
  /**
315
317
  * Exact object-directory lookup for one or more names.
316
318
  *
@@ -367,8 +369,8 @@ export declare class AdtClient {
367
369
  *
368
370
  * @param packageName — DEVC name to inspect
369
371
  * @param maxResults — soft cap on number of returned entries (default 200,
370
- * clamped to [1, 1000]). Larger packages may be silently
371
- * truncated by SAP at this limit; raise it if needed.
372
+ * clamped to [1, 1000]). This array API has no completeness
373
+ * metadata; SAPRead supplies it alongside these entries.
372
374
  * @returns array of `{ type, name, description, uri }` (URIs may be empty
373
375
  * for objects that the workbench does not expose via ADT, e.g.
374
376
  * some `IWMO`/`IWPR`/`SICF/TYP` entries).
@@ -503,18 +505,20 @@ export declare class AdtClient {
503
505
  getMessages(messageClass: string): Promise<string>;
504
506
  /** Get structured message class info from /sap/bc/adt/messageclass/{name} */
505
507
  getMessageClassInfo(name: string): Promise<MessageClassInfo>;
506
- /** Get program text elements */
507
- getTextElements(program: string): Promise<string>;
508
- /** Fail clean when the ADT textelements service is absent (SAP_BASIS < 7.51, e.g. NW 7.50 — the
509
- * whole collection is missing from discovery). Only blocks when discovery is loaded, so a
510
- * not-yet-populated map does not false-block 758/816; otherwise a real 404 surfaces. */
511
- private assertClassTextElementsService;
512
- /** Read a global class's text symbols. Returns the raw properties-style body
513
- * (`@MaxLength:NN` then `NNN=text`, blank-line separated). */
508
+ /** Read an object's text elements (CLAS/PROG/FUGR). Without `part`, every subobject that carries
509
+ * text is returned under a `=== part ===` marker. See adt/text-elements.ts. */
510
+ getTextElements(name: string, options?: {
511
+ objectType?: string;
512
+ part?: TextElementPart;
513
+ }): Promise<string>;
514
+ /** Read one subobject of a textpool (symbols | selections | headings). */
515
+ getTextElementPart(objectType: TextElementObjectType, name: string, part: TextElementPart): Promise<string>;
516
+ /** Read a global class's text symbols. */
514
517
  getClassTextSymbols(name: string): Promise<string>;
515
- /** Write a global class's text symbols. Locks the textelements object (not the class), PUTs the
516
- * body with the symbols media type as BOTH Content-Type and Accept (SAP returns 400 "Accept header
517
- * missing" otherwise), then unlocks. Immediately active no SAPActivate needed. */
518
+ /** Write one subobject of a textpool. Locks the textelements object, PUTs, unlocks. Immediately
519
+ * active no SAPActivate needed. */
520
+ writeTextElementPart(objectType: TextElementObjectType, name: string, part: TextElementPart, source: string, transport?: string): Promise<void>;
521
+ /** Write a global class's text symbols. */
518
522
  writeClassTextSymbols(name: string, source: string, transport?: string): Promise<void>;
519
523
  /** Get program variants */
520
524
  getVariants(program: string): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/adt/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/adt/client.ts"],"names":[],"mappings":"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"}