arc-1 1.3.0 → 1.5.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 (279) hide show
  1. package/README.md +1 -1
  2. package/dist/adt/abapgit.d.ts.map +1 -1
  3. package/dist/adt/abapgit.js +64 -7
  4. package/dist/adt/abapgit.js.map +1 -1
  5. package/dist/adt/aunit.js +4 -4
  6. package/dist/adt/aunit.js.map +1 -1
  7. package/dist/adt/class-structure.d.ts +4 -2
  8. package/dist/adt/class-structure.d.ts.map +1 -1
  9. package/dist/adt/class-structure.js +18 -9
  10. package/dist/adt/class-structure.js.map +1 -1
  11. package/dist/adt/client.d.ts +18 -52
  12. package/dist/adt/client.d.ts.map +1 -1
  13. package/dist/adt/client.js +69 -92
  14. package/dist/adt/client.js.map +1 -1
  15. package/dist/adt/config.d.ts +5 -0
  16. package/dist/adt/config.d.ts.map +1 -1
  17. package/dist/adt/config.js.map +1 -1
  18. package/dist/adt/create-request.d.ts +4 -0
  19. package/dist/adt/create-request.d.ts.map +1 -0
  20. package/dist/adt/create-request.js +16 -0
  21. package/dist/adt/create-request.js.map +1 -0
  22. package/dist/adt/crud.d.ts +3 -3
  23. package/dist/adt/crud.d.ts.map +1 -1
  24. package/dist/adt/crud.js +28 -9
  25. package/dist/adt/crud.js.map +1 -1
  26. package/dist/adt/data-source-policy.d.ts +20 -8
  27. package/dist/adt/data-source-policy.d.ts.map +1 -1
  28. package/dist/adt/data-source-policy.js +55 -109
  29. package/dist/adt/data-source-policy.js.map +1 -1
  30. package/dist/adt/ddic-xml.d.ts +9 -0
  31. package/dist/adt/ddic-xml.d.ts.map +1 -1
  32. package/dist/adt/ddic-xml.js +17 -3
  33. package/dist/adt/ddic-xml.js.map +1 -1
  34. package/dist/adt/devtools.d.ts.map +1 -1
  35. package/dist/adt/devtools.js +10 -7
  36. package/dist/adt/devtools.js.map +1 -1
  37. package/dist/adt/diagnostics.d.ts +11 -9
  38. package/dist/adt/diagnostics.d.ts.map +1 -1
  39. package/dist/adt/diagnostics.js +88 -14
  40. package/dist/adt/diagnostics.js.map +1 -1
  41. package/dist/adt/enhancements.d.ts +7 -0
  42. package/dist/adt/enhancements.d.ts.map +1 -0
  43. package/dist/adt/enhancements.js +89 -0
  44. package/dist/adt/enhancements.js.map +1 -0
  45. package/dist/adt/errors.d.ts +21 -10
  46. package/dist/adt/errors.d.ts.map +1 -1
  47. package/dist/adt/errors.js +76 -54
  48. package/dist/adt/errors.js.map +1 -1
  49. package/dist/adt/features.d.ts.map +1 -1
  50. package/dist/adt/features.js +2 -0
  51. package/dist/adt/features.js.map +1 -1
  52. package/dist/adt/flp.d.ts.map +1 -1
  53. package/dist/adt/flp.js +5 -4
  54. package/dist/adt/flp.js.map +1 -1
  55. package/dist/adt/fm-signature.d.ts +1 -1
  56. package/dist/adt/fm-signature.d.ts.map +1 -1
  57. package/dist/adt/fm-signature.js +9 -1
  58. package/dist/adt/fm-signature.js.map +1 -1
  59. package/dist/adt/http-deadline.d.ts +2 -0
  60. package/dist/adt/http-deadline.d.ts.map +1 -1
  61. package/dist/adt/http-deadline.js.map +1 -1
  62. package/dist/adt/http.d.ts +12 -29
  63. package/dist/adt/http.d.ts.map +1 -1
  64. package/dist/adt/http.js +102 -95
  65. package/dist/adt/http.js.map +1 -1
  66. package/dist/adt/internal-data-operations.d.ts +3 -2
  67. package/dist/adt/internal-data-operations.d.ts.map +1 -1
  68. package/dist/adt/internal-data-operations.js +8 -1
  69. package/dist/adt/internal-data-operations.js.map +1 -1
  70. package/dist/adt/lock-object.d.ts +92 -0
  71. package/dist/adt/lock-object.d.ts.map +1 -0
  72. package/dist/adt/lock-object.js +195 -0
  73. package/dist/adt/lock-object.js.map +1 -0
  74. package/dist/adt/publish-state.d.ts +4 -0
  75. package/dist/adt/publish-state.d.ts.map +1 -0
  76. package/dist/adt/publish-state.js +61 -0
  77. package/dist/adt/publish-state.js.map +1 -0
  78. package/dist/adt/rap-generate.d.ts +5 -1
  79. package/dist/adt/rap-generate.d.ts.map +1 -1
  80. package/dist/adt/rap-generate.js +112 -100
  81. package/dist/adt/rap-generate.js.map +1 -1
  82. package/dist/adt/server-driven.d.ts +56 -13
  83. package/dist/adt/server-driven.d.ts.map +1 -1
  84. package/dist/adt/server-driven.js +114 -23
  85. package/dist/adt/server-driven.js.map +1 -1
  86. package/dist/adt/source-precondition.d.ts +3 -0
  87. package/dist/adt/source-precondition.d.ts.map +1 -0
  88. package/dist/adt/source-precondition.js +12 -0
  89. package/dist/adt/source-precondition.js.map +1 -0
  90. package/dist/adt/text-search.js +5 -5
  91. package/dist/adt/text-search.js.map +1 -1
  92. package/dist/adt/transport.d.ts +1 -2
  93. package/dist/adt/transport.d.ts.map +1 -1
  94. package/dist/adt/transport.js +20 -15
  95. package/dist/adt/transport.js.map +1 -1
  96. package/dist/adt/types.d.ts +21 -1
  97. package/dist/adt/types.d.ts.map +1 -1
  98. package/dist/adt/user-agent.d.ts +4 -0
  99. package/dist/adt/user-agent.d.ts.map +1 -0
  100. package/dist/adt/user-agent.js +11 -0
  101. package/dist/adt/user-agent.js.map +1 -0
  102. package/dist/adt/xml-entities.d.ts +3 -0
  103. package/dist/adt/xml-entities.d.ts.map +1 -0
  104. package/dist/adt/xml-entities.js +19 -0
  105. package/dist/adt/xml-entities.js.map +1 -0
  106. package/dist/adt/xml-parser.d.ts +7 -30
  107. package/dist/adt/xml-parser.d.ts.map +1 -1
  108. package/dist/adt/xml-parser.js +25 -54
  109. package/dist/adt/xml-parser.js.map +1 -1
  110. package/dist/authz/policy.d.ts.map +1 -1
  111. package/dist/authz/policy.js +2 -0
  112. package/dist/authz/policy.js.map +1 -1
  113. package/dist/cache/caching-layer.d.ts.map +1 -1
  114. package/dist/cache/caching-layer.js +5 -10
  115. package/dist/cache/caching-layer.js.map +1 -1
  116. package/dist/cli.js +1 -1
  117. package/dist/cli.js.map +1 -1
  118. package/dist/context/grep.d.ts +14 -0
  119. package/dist/context/grep.d.ts.map +1 -1
  120. package/dist/context/grep.js +49 -0
  121. package/dist/context/grep.js.map +1 -1
  122. package/dist/context/unit-surgery.d.ts +4 -2
  123. package/dist/context/unit-surgery.d.ts.map +1 -1
  124. package/dist/context/unit-surgery.js +54 -6
  125. package/dist/context/unit-surgery.js.map +1 -1
  126. package/dist/handlers/activate.d.ts.map +1 -1
  127. package/dist/handlers/activate.js +11 -20
  128. package/dist/handlers/activate.js.map +1 -1
  129. package/dist/handlers/diagnose.d.ts.map +1 -1
  130. package/dist/handlers/diagnose.js +11 -30
  131. package/dist/handlers/diagnose.js.map +1 -1
  132. package/dist/handlers/dispatch.d.ts.map +1 -1
  133. package/dist/handlers/dispatch.js +63 -8
  134. package/dist/handlers/dispatch.js.map +1 -1
  135. package/dist/handlers/editable-source.d.ts +6 -0
  136. package/dist/handlers/editable-source.d.ts.map +1 -0
  137. package/dist/handlers/editable-source.js +53 -0
  138. package/dist/handlers/editable-source.js.map +1 -0
  139. package/dist/handlers/feature-cache.d.ts +2 -0
  140. package/dist/handlers/feature-cache.d.ts.map +1 -1
  141. package/dist/handlers/feature-cache.js +8 -0
  142. package/dist/handlers/feature-cache.js.map +1 -1
  143. package/dist/handlers/hyperfocused.js +1 -1
  144. package/dist/handlers/hyperfocused.js.map +1 -1
  145. package/dist/handlers/lint.d.ts.map +1 -1
  146. package/dist/handlers/lint.js +13 -4
  147. package/dist/handlers/lint.js.map +1 -1
  148. package/dist/handlers/object-types.d.ts +2 -3
  149. package/dist/handlers/object-types.d.ts.map +1 -1
  150. package/dist/handlers/object-types.js +13 -5
  151. package/dist/handlers/object-types.js.map +1 -1
  152. package/dist/handlers/publish-failure.d.ts +7 -0
  153. package/dist/handlers/publish-failure.d.ts.map +1 -0
  154. package/dist/handlers/publish-failure.js +42 -0
  155. package/dist/handlers/publish-failure.js.map +1 -0
  156. package/dist/handlers/read.d.ts.map +1 -1
  157. package/dist/handlers/read.js +39 -9
  158. package/dist/handlers/read.js.map +1 -1
  159. package/dist/handlers/schemas.d.ts +45 -0
  160. package/dist/handlers/schemas.d.ts.map +1 -1
  161. package/dist/handlers/schemas.js +50 -7
  162. package/dist/handlers/schemas.js.map +1 -1
  163. package/dist/handlers/syntax.d.ts +5 -0
  164. package/dist/handlers/syntax.d.ts.map +1 -0
  165. package/dist/handlers/syntax.js +35 -0
  166. package/dist/handlers/syntax.js.map +1 -0
  167. package/dist/handlers/tool-descriptions.d.ts.map +1 -1
  168. package/dist/handlers/tool-descriptions.js +7 -5
  169. package/dist/handlers/tool-descriptions.js.map +1 -1
  170. package/dist/handlers/tool-registry.d.ts +4 -4
  171. package/dist/handlers/tool-registry.d.ts.map +1 -1
  172. package/dist/handlers/tool-registry.js +4 -0
  173. package/dist/handlers/tool-registry.js.map +1 -1
  174. package/dist/handlers/tools.d.ts +1 -16
  175. package/dist/handlers/tools.d.ts.map +1 -1
  176. package/dist/handlers/tools.js +44 -55
  177. package/dist/handlers/tools.js.map +1 -1
  178. package/dist/handlers/transport.d.ts.map +1 -1
  179. package/dist/handlers/transport.js +17 -3
  180. package/dist/handlers/transport.js.map +1 -1
  181. package/dist/handlers/write/class-edit.d.ts +16 -0
  182. package/dist/handlers/write/class-edit.d.ts.map +1 -0
  183. package/dist/handlers/write/class-edit.js +55 -0
  184. package/dist/handlers/write/class-edit.js.map +1 -0
  185. package/dist/handlers/write/class-surgery.d.ts +2 -2
  186. package/dist/handlers/write/class-surgery.d.ts.map +1 -1
  187. package/dist/handlers/write/class-surgery.js +189 -220
  188. package/dist/handlers/write/class-surgery.js.map +1 -1
  189. package/dist/handlers/write/context.d.ts +1 -8
  190. package/dist/handlers/write/context.d.ts.map +1 -1
  191. package/dist/handlers/write/create.d.ts.map +1 -1
  192. package/dist/handlers/write/create.js +11 -4
  193. package/dist/handlers/write/create.js.map +1 -1
  194. package/dist/handlers/write/metadata-update.d.ts +4 -0
  195. package/dist/handlers/write/metadata-update.d.ts.map +1 -0
  196. package/dist/handlers/write/metadata-update.js +58 -0
  197. package/dist/handlers/write/metadata-update.js.map +1 -0
  198. package/dist/handlers/write/rap.d.ts.map +1 -1
  199. package/dist/handlers/write/rap.js +132 -155
  200. package/dist/handlers/write/rap.js.map +1 -1
  201. package/dist/handlers/write/unit-surgery.d.ts +2 -2
  202. package/dist/handlers/write/unit-surgery.d.ts.map +1 -1
  203. package/dist/handlers/write/unit-surgery.js +58 -34
  204. package/dist/handlers/write/unit-surgery.js.map +1 -1
  205. package/dist/handlers/write/update-delete.d.ts.map +1 -1
  206. package/dist/handlers/write/update-delete.js +34 -82
  207. package/dist/handlers/write/update-delete.js.map +1 -1
  208. package/dist/handlers/write-helpers.d.ts +4 -3
  209. package/dist/handlers/write-helpers.d.ts.map +1 -1
  210. package/dist/handlers/write-helpers.js +135 -21
  211. package/dist/handlers/write-helpers.js.map +1 -1
  212. package/dist/handlers/write.d.ts.map +1 -1
  213. package/dist/handlers/write.js +13 -31
  214. package/dist/handlers/write.js.map +1 -1
  215. package/dist/lint/config-builder.d.ts +10 -1
  216. package/dist/lint/config-builder.d.ts.map +1 -1
  217. package/dist/lint/config-builder.js +4 -0
  218. package/dist/lint/config-builder.js.map +1 -1
  219. package/dist/lint/lint.d.ts +3 -1
  220. package/dist/lint/lint.d.ts.map +1 -1
  221. package/dist/lint/lint.js +2 -1
  222. package/dist/lint/lint.js.map +1 -1
  223. package/dist/public/read-only-client.d.ts +6 -0
  224. package/dist/public/read-only-client.d.ts.map +1 -0
  225. package/dist/public/read-only-client.js +66 -0
  226. package/dist/public/read-only-client.js.map +1 -0
  227. package/dist/public/testing.d.ts +4 -0
  228. package/dist/public/testing.d.ts.map +1 -1
  229. package/dist/public/testing.js +6 -0
  230. package/dist/public/testing.js.map +1 -1
  231. package/dist/public/types.d.ts +14 -15
  232. package/dist/public/types.d.ts.map +1 -1
  233. package/dist/server/audit.d.ts +6 -1
  234. package/dist/server/audit.d.ts.map +1 -1
  235. package/dist/server/audit.js.map +1 -1
  236. package/dist/server/config.d.ts.map +1 -1
  237. package/dist/server/config.js +9 -2
  238. package/dist/server/config.js.map +1 -1
  239. package/dist/server/deny-actions.d.ts +2 -1
  240. package/dist/server/deny-actions.d.ts.map +1 -1
  241. package/dist/server/deny-actions.js +13 -2
  242. package/dist/server/deny-actions.js.map +1 -1
  243. package/dist/server/http.d.ts.map +1 -1
  244. package/dist/server/http.js +7 -5
  245. package/dist/server/http.js.map +1 -1
  246. package/dist/server/logger.d.ts +3 -3
  247. package/dist/server/logger.d.ts.map +1 -1
  248. package/dist/server/logger.js +7 -7
  249. package/dist/server/logger.js.map +1 -1
  250. package/dist/server/multi-target-basic-auth.d.ts.map +1 -1
  251. package/dist/server/multi-target-basic-auth.js +1 -0
  252. package/dist/server/multi-target-basic-auth.js.map +1 -1
  253. package/dist/server/multi-target-runtime.d.ts.map +1 -1
  254. package/dist/server/multi-target-runtime.js +1 -0
  255. package/dist/server/multi-target-runtime.js.map +1 -1
  256. package/dist/server/oauth-redirect-policy.d.ts +13 -0
  257. package/dist/server/oauth-redirect-policy.d.ts.map +1 -0
  258. package/dist/server/oauth-redirect-policy.js +21 -0
  259. package/dist/server/oauth-redirect-policy.js.map +1 -0
  260. package/dist/server/plugin-loader.d.ts.map +1 -1
  261. package/dist/server/plugin-loader.js +1 -3
  262. package/dist/server/plugin-loader.js.map +1 -1
  263. package/dist/server/safe-http-client.d.ts +8 -14
  264. package/dist/server/safe-http-client.d.ts.map +1 -1
  265. package/dist/server/safe-http-client.js +51 -73
  266. package/dist/server/safe-http-client.js.map +1 -1
  267. package/dist/server/server.d.ts +5 -4
  268. package/dist/server/server.d.ts.map +1 -1
  269. package/dist/server/server.js +36 -27
  270. package/dist/server/server.js.map +1 -1
  271. package/dist/server/types.d.ts +6 -4
  272. package/dist/server/types.d.ts.map +1 -1
  273. package/dist/server/types.js +2 -0
  274. package/dist/server/types.js.map +1 -1
  275. package/dist/version.d.ts +3 -0
  276. package/dist/version.d.ts.map +1 -0
  277. package/dist/version.js +3 -0
  278. package/dist/version.js.map +1 -0
  279. package/package.json +15 -15
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Generic "server-driven object" (SDO) read/write path. Most SDO types need ABAP Platform 2025
3
- * (SAP_BASIS 8.16+), but some (DTDC, DSFD, EVTB) also ship on S/4HANA 2023 (758) — availability is
3
+ * (SAP_BASIS 8.16+), but some (DTDC, DSFD, DRTY, EVTB) also ship on S/4HANA 2023 (758) — availability is
4
4
  * discovery-gated per type, never a hardcoded release.
5
5
  *
6
6
  * These repository object types share ONE AFF generic-object contract:
@@ -14,23 +14,25 @@
14
14
  * metadata body (blue:blueSource / dtdc:dtdcSource; adtcore:type/name/description + packageRef) → 201.
15
15
  * - SOURCE = lock (crud.ts) → PUT <url>/source/main?lockHandle=… → unlock. The Content-Type is
16
16
  * per-type (registry `sourceFormat`): application/json for the AFF-JSON types,
17
- * text/plain for the DDL-text ones (DTSC, DSFD, DTDC). The wrong one is a hard 415.
17
+ * text/plain for entries with sourceFormat='text'. The wrong one is a hard 415.
18
18
  * - DELETE = lock → http.delete(<url>?lockHandle=…) → unlock.
19
19
  * - ACTIVATE is the generic devtools activate() against the object URL (callers use SAPActivate).
20
- * Create leaves the object inactive — callers follow with SAPActivate (never auto-activated).
20
+ * Create never auto-activates. APLO (and UIAD source) saves are active immediately; the other
21
+ * types stay inactive until SAPActivate.
21
22
  *
22
23
  * The create `adtcore:type` subtype is NOT uniformly "<code>/TYP" (EVTB=EVTB/EVB, DTDC=DTDC/DF) and
23
24
  * the metadata content-type varies (blues v1, EVTO=blues v2, DTDC=ddic.dtdc.v1) — all stored per
24
25
  * registry entry, verified live: the blue family on 816, DTDC create→activate on 758 + 816.
25
26
  */
26
27
  import { logger } from '../server/logger.js';
28
+ import { postCreate } from './create-request.js';
27
29
  import { lockObject, unlockObject } from './crud.js';
28
30
  import { fetchDiscoveryDocument, resolveAcceptType } from './discovery.js';
29
- import { AdtApiError } from './errors.js';
31
+ import { AdtApiError, AdtError } from './errors.js';
30
32
  import { checkOperation, OperationType } from './safety.js';
31
- import { escapeXmlAttr, parseServerDrivenMetadata } from './xml-parser.js';
33
+ import { escapeXmlAttr, parseServerDrivenMetadata, parseXml } from './xml-parser.js';
32
34
  /**
33
- * Shared metadata-format fields for the "blue" family (DESD/DTSC/CSNM/EVTB/EVTO/COTA/DSFD) — every
35
+ * Shared metadata-format fields for registry entries using the "blue" family — every
34
36
  * blue type has the identical root element/namespace/discovery marker; only its content-type version
35
37
  * (v1/v2) and source flavor differ. Spread into each blue entry so the shape can't drift.
36
38
  */
@@ -68,7 +70,21 @@ export function serverDrivenSourceFormat(code) {
68
70
  * here is the ONLY step needed to expose it — `btp: true` by construction (runtime availability is
69
71
  * discovery-gated per system, so a type absent on a release degrades cleanly).
70
72
  */
71
- export const SDO_TYPES = ['DESD', 'DTSC', 'CSNM', 'EVTB', 'EVTO', 'COTA', 'DSFD', 'DTDC', 'UIAD'];
73
+ export const SDO_TYPES = [
74
+ 'DESD',
75
+ 'DTSC',
76
+ 'CSNM',
77
+ 'EVTB',
78
+ 'EVTO',
79
+ 'COTA',
80
+ 'DSFD',
81
+ 'DTDC',
82
+ 'UIAD',
83
+ 'DRTY',
84
+ 'APLO',
85
+ 'SAJC',
86
+ 'SAJT',
87
+ ];
72
88
  /** Curated registry of high-value server-driven object types — keys are exactly SDO_TYPES. */
73
89
  export const SDO_REGISTRY = {
74
90
  DESD: {
@@ -152,6 +168,43 @@ export const SDO_REGISTRY = {
152
168
  ...BLUE_METADATA,
153
169
  sourceFormat: 'json',
154
170
  },
171
+ // Plain blue sibling of DSFD. DRTY/STY covers scalar types AND enums, so create needs no subtype
172
+ // routing. DDL-text source (JSON PUT = 415). Verified 758/816: docs/research/2026-09-18-drty-cds-type-adt-contract.md
173
+ DRTY: {
174
+ href: '/sap/bc/adt/ddic/drty/sources',
175
+ label: 'CDS Type (scalar type / enum)',
176
+ createType: 'DRTY/STY',
177
+ metadataContentType: BLUES_V1,
178
+ ...BLUE_METADATA,
179
+ sourceFormat: 'text',
180
+ },
181
+ // Application Log Object (SLG0 successor for ABAP Cloud): header + subobjects in AFF JSON.
182
+ APLO: {
183
+ href: '/sap/bc/adt/applicationlog/objects',
184
+ label: 'Application Log Object',
185
+ createType: 'APLO/TYP',
186
+ metadataContentType: BLUES_V1,
187
+ ...BLUE_METADATA,
188
+ sourceFormat: 'json',
189
+ },
190
+ // Application Job Catalog Entry / Template: blues v2, and SAP reports the bare code (no subtype)
191
+ // as adtcore:type. Verified 816: docs/research/2026-09-28-aplo-sajc-sajt-adt-contract.md
192
+ SAJC: {
193
+ href: '/sap/bc/adt/applicationjob/catalogs',
194
+ label: 'Application Job Catalog Entry',
195
+ createType: 'SAJC',
196
+ metadataContentType: BLUES_V2,
197
+ ...BLUE_METADATA,
198
+ sourceFormat: 'json',
199
+ },
200
+ SAJT: {
201
+ href: '/sap/bc/adt/applicationjob/templates',
202
+ label: 'Application Job Template',
203
+ createType: 'SAJT',
204
+ metadataContentType: BLUES_V2,
205
+ ...BLUE_METADATA,
206
+ sourceFormat: 'json',
207
+ },
155
208
  };
156
209
  // String-indexed view of the registry for the unknown-code lookups below (the satisfies-typed
157
210
  // object has exactly the SDO_TYPES keys, which a plain `string` cannot index).
@@ -238,15 +291,22 @@ export function serverDrivenUnavailableMessage(tool, code) {
238
291
  /**
239
292
  * Read a server-driven object: its metadata (blue:blueSource or dtdc:dtdcSource) + source (AFF JSON
240
293
  * or DDL text). The source is JSON-parsed when possible (raw text otherwise). Throws AdtApiError 404
241
- * for a nonexistent object. Gate availability with supportsServerDrivenObject() on unknown systems.
294
+ * for a nonexistent object. Explicit versions must match the returned metadata; omission keeps
295
+ * SAP's developer view. Gate availability with supportsServerDrivenObject() on unknown systems.
242
296
  */
243
- export async function getServerDrivenObject(http, safety, code, name) {
297
+ export async function getServerDrivenObject(http, safety, code, name, version) {
244
298
  checkOperation(safety, OperationType.Read, 'GetServerDrivenObject');
245
299
  const entry = sdoEntry(code);
246
300
  const objUrl = serverDrivenObjectUrl(code, name);
247
- const metaResp = await http.get(objUrl, { Accept: entry.metadataContentType });
301
+ const query = version ? `?version=${version}` : '';
302
+ const metaResp = await http.get(`${objUrl}${query}`, { Accept: entry.metadataContentType });
248
303
  const metadata = parseServerDrivenMetadata(metaResp.body, entry.metadataRootLocalName);
249
- const srcResp = await http.get(`${objUrl}/source/main`, { Accept: 'application/json, */*' });
304
+ // SAP can substitute the other version when the requested one does not exist.
305
+ if (version && metadata.version !== version) {
306
+ throw new AdtError(`Cannot confirm ${version} version of ${code} ${name}: SAP metadata reports ${metadata.version || 'no version'}. ` +
307
+ 'No source returned. Use version="auto" for the available developer view.');
308
+ }
309
+ const srcResp = await http.get(`${objUrl}/source/main${query}`, { Accept: 'application/json, */*' });
250
310
  let source = srcResp.body;
251
311
  try {
252
312
  source = JSON.parse(srcResp.body);
@@ -256,31 +316,31 @@ export async function getServerDrivenObject(http, safety, code, name) {
256
316
  }
257
317
  return { ...metadata, source };
258
318
  }
259
- export function buildServerDrivenMetadataXml(code, name, pkg, description, uiadLanguageVersion) {
319
+ export function buildServerDrivenMetadataXml(code, name, pkg, description, uiadLanguageVersion, creationProperties) {
260
320
  const entry = sdoEntry(code);
261
321
  const [prefix] = entry.metadataRootQName.split(':');
262
322
  return `<?xml version="1.0" encoding="UTF-8"?>
263
323
  <${entry.metadataRootQName} xmlns:${prefix}="${entry.metadataNamespace}" xmlns:adtcore="http://www.sap.com/adt/core" adtcore:type="${escapeXmlAttr(entry.createType)}" adtcore:name="${escapeXmlAttr(name)}" adtcore:description="${escapeXmlAttr(description)}"${code === 'UIAD' && uiadLanguageVersion ? ` adtcore:abapLanguageVersion="${escapeXmlAttr(uiadLanguageVersion)}"` : ''}>
264
324
  <adtcore:packageRef adtcore:name="${escapeXmlAttr(pkg)}"/>
265
- </${entry.metadataRootQName}>`;
325
+ ${creationProperties ? ` <blue:additionalCreationProperties><adtcore:content adtcore:type="application/vnd.sap.adt.objecttype.new.content.additional.v1+json">${escapeXmlAttr(JSON.stringify(creationProperties))}</adtcore:content></blue:additionalCreationProperties>\n` : ''}</${entry.metadataRootQName}>`;
266
326
  }
267
327
  /**
268
328
  * Create a server-driven object (metadata only — POST the <blue:blueSource> body to the collection
269
- * href with the type's blues content-type). Leaves the object INACTIVE; callers follow with source
270
- * write + activation. Returns the raw response body. Verified live: 201 for all 6 registered types.
329
+ * href with the type's metadata content-type). APLO is immediately active; other generic types
330
+ * need activation. Job objects also need their creation reference. Returns the raw response body.
271
331
  */
272
332
  export async function createServerDrivenObject(http, safety, code, name, opts) {
273
333
  checkOperation(safety, OperationType.Create, 'CreateServerDrivenObject');
274
334
  const entry = sdoEntry(code);
275
- const body = buildServerDrivenMetadataXml(code, name, opts.package, opts.description, opts.uiadLanguageVersion);
335
+ const body = buildServerDrivenMetadataXml(code, name, opts.package, opts.description, opts.uiadLanguageVersion, opts.creationProperties);
276
336
  const url = opts.transport ? `${entry.href}?corrNr=${encodeURIComponent(opts.transport)}` : entry.href;
277
- const resp = await http.post(url, body, entry.metadataContentType);
337
+ const resp = await postCreate(http, url, body, entry.metadataContentType);
278
338
  return resp.body;
279
339
  }
280
340
  /**
281
341
  * Write the source of a server-driven object: lock → PUT …/source/main → unlock (guaranteed via
282
342
  * try-finally). The Content-Type comes from the type's declared sourceFormat — AFF-JSON types take
283
- * application/json, DDL-text types (DTSC, DSFD) take text/plain; sending the wrong one is a 415.
343
+ * application/json, entries with sourceFormat='text' take text/plain; the wrong one is a 415.
284
344
  * Auto-propagates the lock's corrNr when no explicit transport is supplied (same contract as
285
345
  * crud.ts safeUpdateSource).
286
346
  */
@@ -317,10 +377,29 @@ export async function updateServerDrivenObjectSource(http, safety, code, name, s
317
377
  throw unlockError;
318
378
  });
319
379
  }
320
- /**
321
- * Delete a server-driven object: lock → http.delete(…?lockHandle=…) → best-effort unlock.
322
- * The unlock is swallowed on failure (the object is already gone after the delete).
323
- */
380
+ /** Check only when advertised; older targets still receive the post-delete absence check. */
381
+ async function checkServerDrivenDeletion(http, safety, objUrl, lockHandle) {
382
+ const path = '/sap/bc/adt/deletion/check';
383
+ const contentType = 'application/vnd.sap.adt.deletion.check.request.v1+xml';
384
+ checkOperation(safety, OperationType.Read, 'CheckDeletion');
385
+ let advertised = http.discoveryAcceptFor(path);
386
+ if (!http.hasDiscoveryData()) {
387
+ const { map } = await fetchDiscoveryDocument(http);
388
+ if (map.size === 0)
389
+ throw new AdtError('Deletion check availability could not be determined. No DELETE was sent.');
390
+ advertised = resolveAcceptType(map, path);
391
+ }
392
+ if (!(advertised ?? '').includes(contentType))
393
+ return;
394
+ const response = await http.post(path, `<del:checkRequest xmlns:del="http://www.sap.com/adt/deletion" xmlns:adtcore="http://www.sap.com/adt/core"><del:object adtcore:uri="${escapeXmlAttr(objUrl)}"><del:lockHandle>${escapeXmlAttr(lockHandle)}</del:lockHandle></del:object></del:checkRequest>`, contentType, { Accept: 'application/vnd.sap.adt.deletion.check.response.v1+xml' });
395
+ const root = parseXml(response.body).checkResponse;
396
+ const objects = Array.isArray(root?.object) ? root.object : root?.object ? [root.object] : [];
397
+ const object = objects[0];
398
+ if (objects.length !== 1 || object?.['@_uri'] !== objUrl || object?.['@_isDeletable'] !== 'true') {
399
+ throw new AdtError('SAP did not confirm that this object can be deleted. Review its deletion check in ADT and resolve dependencies or other refusals. No DELETE was sent.');
400
+ }
401
+ }
402
+ /** Delete under a lock, then verify canonical metadata absence in a fresh request. */
324
403
  export async function deleteServerDrivenObject(http, safety, code, name, opts = {}) {
325
404
  checkOperation(safety, OperationType.Delete, 'DeleteServerDrivenObject');
326
405
  const objUrl = serverDrivenObjectUrl(code, name);
@@ -328,6 +407,7 @@ export async function deleteServerDrivenObject(http, safety, code, name, opts =
328
407
  const lock = await lockObject(session, safety, objUrl, 'MODIFY');
329
408
  const transport = opts.transport ?? (lock.corrNr || undefined);
330
409
  try {
410
+ await checkServerDrivenDeletion(session, safety, objUrl, lock.lockHandle);
331
411
  let url = `${objUrl}?lockHandle=${encodeURIComponent(lock.lockHandle)}`;
332
412
  if (transport)
333
413
  url += `&corrNr=${encodeURIComponent(transport)}`;
@@ -338,9 +418,20 @@ export async function deleteServerDrivenObject(http, safety, code, name, opts =
338
418
  await unlockObject(session, objUrl, lock.lockHandle);
339
419
  }
340
420
  catch {
341
- // Object already deleted — unlock failure is expected.
421
+ // Best-effort cleanup: deleted objects can reject unlock. The session closes next.
342
422
  }
343
423
  }
344
424
  });
425
+ checkOperation(safety, OperationType.Read, 'ConfirmDeletion');
426
+ try {
427
+ await http.get(objUrl, { Accept: serverDrivenMetadataContentType(code), 'Cache-Control': 'no-cache' }, { suppressNotFoundLog: true });
428
+ }
429
+ catch (error) {
430
+ if (error instanceof AdtApiError && error.isNotFound)
431
+ return;
432
+ // A failed confirmation is not proof of absence; keep SAP details out of this guidance.
433
+ throw new AdtError(`SAP accepted DELETE for ${code} ${name}, but absence could not be verified. Inspect the object in ADT before taking further action; do not blindly repeat DELETE.`);
434
+ }
435
+ throw new AdtError(`SAP accepted DELETE for ${code} ${name}, but the object still exists. Deletion is incomplete. Inspect dependencies and its package entry in ADT; do not blindly repeat DELETE.`);
345
436
  }
346
437
  //# sourceMappingURL=server-driven.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-driven.js","sourceRoot":"","sources":["../../src/adt/server-driven.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-driven.js","sourceRoot":"","sources":["../../src/adt/server-driven.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function sourceHash(source: string): string;
2
+ export declare function assertSourceHash(source: string, expected: string | undefined, sourceUrl: string): void;
3
+ //# sourceMappingURL=source-precondition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-precondition.d.ts","sourceRoot":"","sources":["../../src/adt/source-precondition.ts"],"names":[],"mappings":"AAIA,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAMtG"}
@@ -0,0 +1,12 @@
1
+ /** Content preconditions are checked against fresh editable bytes while holding the SAP lock. */
2
+ import { createHash } from 'node:crypto';
3
+ import { AdtSafetyError } from './errors.js';
4
+ export function sourceHash(source) {
5
+ return createHash('sha256').update(source, 'utf8').digest('hex');
6
+ }
7
+ export function assertSourceHash(source, expected, sourceUrl) {
8
+ if (expected !== undefined && sourceHash(source) !== expected) {
9
+ throw new AdtSafetyError(`Source changed, or expectedSourceHash came from a different object/include. No write was made. Checked ${sourceUrl}. Re-read the same object, include and group with SAPRead(format="editable"), review the changes, and pass its sourceHash.`);
10
+ }
11
+ }
12
+ //# sourceMappingURL=source-precondition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-precondition.js","sourceRoot":"","sources":["../../src/adt/source-precondition.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,QAA4B,EAAE,SAAiB;IAC9F,IAAI,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,IAAI,cAAc,CACtB,0GAA0G,SAAS,4HAA4H,CAChP,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -6,7 +6,7 @@
6
6
  * and release fallbacks.
7
7
  */
8
8
  import { checkOperation, OperationType } from './safety.js';
9
- import { decodeXmlEntities, findDeepNodes, getNestedArray, parseXml } from './xml-parser.js';
9
+ import { findDeepNodes, getNestedArray, parseXml } from './xml-parser.js';
10
10
  const MAX_SEARCH_RESULTS = 1_000;
11
11
  /** Coerce a caller-supplied search-result limit into a safe positive integer. */
12
12
  export function clampSearchResults(requested, fallback) {
@@ -46,7 +46,7 @@ export async function searchSource(http, safety, pattern, maxResults = 50, objec
46
46
  function parseProxyUriObjectName(uri) {
47
47
  if (!uri)
48
48
  return '';
49
- const content = /[?&]content=([^&]*)/.exec(uri.replace(/&amp;/g, '&'));
49
+ const content = /[?&]content=([^&]*)/.exec(uri);
50
50
  if (!content)
51
51
  return '';
52
52
  let decoded = content[1];
@@ -64,7 +64,7 @@ function parseProxyUriObjectName(uri) {
64
64
  function parseTextLineNumber(uri) {
65
65
  if (!uri)
66
66
  return 0;
67
- let decoded = uri.replace(/&amp;/g, '&');
67
+ let decoded = uri;
68
68
  try {
69
69
  decoded = decodeURIComponent(decoded);
70
70
  }
@@ -75,7 +75,7 @@ function parseTextLineNumber(uri) {
75
75
  return match ? Number(match[1]) : 0;
76
76
  }
77
77
  function cleanTextSearchSnippet(raw) {
78
- return decodeXmlEntities(String(raw ?? ''))
78
+ return String(raw ?? '')
79
79
  .replace(/<\/?b>/gi, '')
80
80
  .replace(/\s+/g, ' ')
81
81
  .trim();
@@ -94,7 +94,7 @@ export function parseSourceSearchResults(xml) {
94
94
  // Ancestor nodes provide navigation context but contain no actual hits.
95
95
  if (matches.length === 0)
96
96
  continue;
97
- const uri = decodeXmlEntities(String(obj['@_uri'] ?? ''));
97
+ const uri = String(obj['@_uri'] ?? '');
98
98
  const mainObject = (obj.adtMainObject ?? {});
99
99
  results.push({
100
100
  objectType: String(mainObject['@_type'] ?? ''),
@@ -1 +1 @@
1
- {"version":3,"file":"text-search.js","sourceRoot":"","sources":["../../src/adt/text-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-search.js","sourceRoot":"","sources":["../../src/adt/text-search.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAC;AAE/E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE1E,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC,iFAAiF;AACjF,MAAM,UAAU,kBAAkB,CAAC,SAA6B,EAAE,QAAgB;IAChF,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7F,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3D,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAC5C,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAmB,EACnB,MAAoB,EACpB,OAAe,EACf,UAAU,GAAG,EAAE,EACf,UAAmB,EACnB,WAAoB;IAEpB,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,YAAY,EAAE,OAAO;QACrB,eAAe,EAAE,GAAG;QACpB,aAAa,EAAE,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;KAC1D,CAAC,CAAC;IACH,IAAI,UAAU;QAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7E,IAAI,WAAW;QAAE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,uDAAuD,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC5G,OAAO,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,yDAAyD;AACzD,SAAS,uBAAuB,CAAC,GAAW;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,gEAAgE;IAClE,CAAC;IACD,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,iEAAiE;AACjE,SAAS,mBAAmB,CAAC,GAAW;IACtC,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,CAAC;IACnB,IAAI,OAAO,GAAG,GAAG,CAAC;IAClB,IAAI,CAAC;QACH,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,gEAAgE;IAClE,CAAC;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/E,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAY;IAC1C,OAAO,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;SACrB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,wBAAwB,CAAC,GAAW;IAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAyB,EAAE,CAAC;IAEzC,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAChE,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5D,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtD,OAAO,EAAE,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC;aAC9C,CAAC,CAAC,CAAC;YACJ,wEAAwE;YACxE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEnC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAA4B,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC;gBACX,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC9C,UAAU,EAAE,uBAAuB,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC9E,GAAG;gBACH,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;IAC3E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACrE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAClC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aAC5D,CAAC,CAAC,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC;gBACX,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACvC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACvC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC/B,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC;YACX,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE;YAC/C,GAAG;YACH,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC;gBACX,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAChE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAChC,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBACjC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;qBAC1D;iBACF;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -114,8 +114,7 @@ export declare function getTransport(http: AdtHttpClient, safety: SafetyConfig,
114
114
  * with no transport routes configured at all (e.g. a standalone dev system) — yields
115
115
  * an empty target ("Local Change Requests"), regardless of the value passed. Verified
116
116
  * live on a4h (S/4HANA 2023): the param is accepted but a route-less system always
117
- * resolves to an empty target. So this is a hint, not a guarantee; the request's real
118
- * target should be read back from the created request (see `handleSAPTransport`).
117
+ * resolves to an empty target; read back the actual target (see `handleSAPTransport`).
119
118
  *
120
119
  * @param targetPackage optional — DEVCLASS used by SAP for transport-route lookup; defaults to `$TMP`
121
120
  * @param objectUrl optional — ADT object URL hint for transport-route lookup; the object is NOT locked or attached to the transport
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/adt/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/adt/transport.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,10 @@
4
4
  * Transport mutations require explicit opt-in via allowWrites + allowTransportWrites.
5
5
  * Safety checks are applied at every entry point.
6
6
  */
7
+ import { postCreate } from './create-request.js';
7
8
  import { AdtApiError, AdtNetworkError, AdtSafetyError } from './errors.js';
8
9
  import { checkOperation, checkTransport, OperationType } from './safety.js';
9
- import { decodeXmlEntities, escapeXmlAttr, findDeepNodes, parseNamedItems, parseXml } from './xml-parser.js';
10
+ import { escapeXmlAttr, findDeepNodes, parseNamedItems, parseXml } from './xml-parser.js';
10
11
  /**
11
12
  * Filter inactive objects (from `getInactiveObjects()`) down to those that belong to transport
12
13
  * `transportId` — i.e. those that would block its release. SAP activates objects before exporting a
@@ -59,7 +60,7 @@ export async function listTransports(http, safety, user, status) {
59
60
  params.set('requestStatus', status && status !== '*' ? status : 'DR');
60
61
  const url = `/sap/bc/adt/cts/transportrequests?${params.toString()}`;
61
62
  const resp = await http.get(url, { Accept: CTS_ACCEPT_TREE });
62
- let transports = parseTransportList(resp.body);
63
+ let transports = parseTransportList(resp.body, url);
63
64
  // Client-side status filter as fallback (some systems ignore requestStatus)
64
65
  if (status && status !== '*') {
65
66
  transports = transports.filter((t) => t.status === status);
@@ -69,10 +70,9 @@ export async function listTransports(http, safety, user, status) {
69
70
  /** Get details of a specific transport request */
70
71
  export async function getTransport(http, safety, transportId) {
71
72
  checkTransport(safety, transportId, 'GetTransport', false);
72
- const resp = await http.get(`/sap/bc/adt/cts/transportrequests/${encodeURIComponent(transportId)}`, {
73
- Accept: CTS_CONTENT_TYPE_ORGANIZER,
74
- });
75
- const transports = parseTransportList(resp.body);
73
+ const url = `/sap/bc/adt/cts/transportrequests/${encodeURIComponent(transportId)}`;
74
+ const resp = await http.get(url, { Accept: CTS_CONTENT_TYPE_ORGANIZER });
75
+ const transports = parseTransportList(resp.body, url);
76
76
  // NW 7.50 returns HTTP 200 with the caller's full transport list when the
77
77
  // requested ID doesn't exist, instead of 404. Verify the parsed id matches.
78
78
  const match = transports.find((t) => t.id === transportId);
@@ -105,8 +105,7 @@ export async function getTransport(http, safety, transportId) {
105
105
  * with no transport routes configured at all (e.g. a standalone dev system) — yields
106
106
  * an empty target ("Local Change Requests"), regardless of the value passed. Verified
107
107
  * live on a4h (S/4HANA 2023): the param is accepted but a route-less system always
108
- * resolves to an empty target. So this is a hint, not a guarantee; the request's real
109
- * target should be read back from the created request (see `handleSAPTransport`).
108
+ * resolves to an empty target; read back the actual target (see `handleSAPTransport`).
110
109
  *
111
110
  * @param targetPackage optional — DEVCLASS used by SAP for transport-route lookup; defaults to `$TMP`
112
111
  * @param objectUrl optional — ADT object URL hint for transport-route lookup; the object is NOT locked or attached to the transport
@@ -130,9 +129,8 @@ export async function createTransport(http, safety, description, targetPackage,
130
129
  const url = layer
131
130
  ? `/sap/bc/adt/cts/transports?transportLayer=${encodeURIComponent(layer)}`
132
131
  : '/sap/bc/adt/cts/transports';
133
- const resp = await http.post(url, body, 'application/vnd.sap.as+xml; charset=UTF-8; dataname=com.sap.adt.CreateCorrectionRequest', { Accept: 'text/plain' });
134
- // Response body is a path like "/com.sap.cts/object_record/NPLK900026" —
135
- // the transport ID is the last path segment.
132
+ const resp = await postCreate(http, url, body, 'application/vnd.sap.as+xml; charset=UTF-8; dataname=com.sap.adt.CreateCorrectionRequest', { Accept: 'text/plain' });
133
+ // The response path ends with the transport ID.
136
134
  return (String(resp.body ?? '')
137
135
  .trim()
138
136
  .split('/')
@@ -166,7 +164,7 @@ export async function createTransportWithTarget(http, safety, description, targe
166
164
  <tm:task${ownerAttr}/>
167
165
  </tm:request>
168
166
  </tm:root>`;
169
- const resp = await http.post('/sap/bc/adt/cts/transportrequests', body, 'text/plain', {
167
+ const resp = await postCreate(http, '/sap/bc/adt/cts/transportrequests', body, 'text/plain', {
170
168
  Accept: CTS_CONTENT_TYPE_ORGANIZER,
171
169
  });
172
170
  // Response: <tm:root><tm:request tm:number="A4HK…"> — extract the new request id.
@@ -263,14 +261,14 @@ export function parseReleaseReports(xml) {
263
261
  return {
264
262
  severity: type === 'E' ? 'error' : type === 'W' ? 'warning' : 'info',
265
263
  type,
266
- text: decodeXmlEntities(String(msg['@_shortText'] ?? '')),
264
+ text: String(msg['@_shortText'] ?? ''),
267
265
  ...(uri ? { uri } : {}),
268
266
  };
269
267
  });
270
268
  return {
271
269
  reporter: String(r['@_reporter'] ?? ''),
272
270
  status,
273
- statusText: decodeXmlEntities(String(r['@_statusText'] ?? '')),
271
+ statusText: String(r['@_statusText'] ?? ''),
274
272
  ...(r['@_triggeringUri'] ? { triggeringUri: String(r['@_triggeringUri']) } : {}),
275
273
  released: status === 'released',
276
274
  messages,
@@ -1054,8 +1052,15 @@ function findDeepValue(obj, key) {
1054
1052
  return undefined;
1055
1053
  }
1056
1054
  // ─── Parsers ────────────────────────────────────────────────────────
1057
- function parseTransportList(xml) {
1055
+ function parseTransportList(xml, path) {
1058
1056
  const parsed = parseXml(xml);
1057
+ if (!Object.hasOwn(parsed, 'root')) {
1058
+ const explanation = 'Transport API unavailable or unexpected CTS response: no transport organizer document was returned. This response does not establish an empty list or a missing request.';
1059
+ const error = new AdtApiError(explanation, 200, path);
1060
+ // Minimal mode hides the message; extraHint preserves this fixed explanation, never SAP response text.
1061
+ error.extraHint = explanation;
1062
+ throw error;
1063
+ }
1059
1064
  const requests = findDeepNodes(parsed, 'request');
1060
1065
  return requests.map((req) => {
1061
1066
  const tasks = findDeepNodes(req, 'task').map((t) => {