@mcp-abap-adt/adt-clients 9.0.0 → 10.0.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 (119) hide show
  1. package/README.md +25 -8
  2. package/dist/core/accessControl/AdtAccessControl.d.ts.map +1 -1
  3. package/dist/core/accessControl/AdtAccessControl.js +14 -20
  4. package/dist/core/accessControl/check.d.ts +2 -1
  5. package/dist/core/accessControl/check.d.ts.map +1 -1
  6. package/dist/core/appendStructure/AdtAppendStructure.d.ts.map +1 -1
  7. package/dist/core/appendStructure/AdtAppendStructure.js +30 -5
  8. package/dist/core/appendStructure/check.d.ts +2 -1
  9. package/dist/core/appendStructure/check.d.ts.map +1 -1
  10. package/dist/core/authorizationField/AdtAuthorizationField.d.ts.map +1 -1
  11. package/dist/core/authorizationField/AdtAuthorizationField.js +19 -22
  12. package/dist/core/behaviorDefinition/AdtBehaviorDefinition.d.ts.map +1 -1
  13. package/dist/core/behaviorDefinition/AdtBehaviorDefinition.js +14 -20
  14. package/dist/core/behaviorDefinition/check.d.ts +4 -3
  15. package/dist/core/behaviorDefinition/check.d.ts.map +1 -1
  16. package/dist/core/behaviorDefinition/check.js +0 -3
  17. package/dist/core/class/AdtClass.d.ts.map +1 -1
  18. package/dist/core/class/AdtClass.js +31 -18
  19. package/dist/core/class/AdtClassLegacy.d.ts.map +1 -1
  20. package/dist/core/class/AdtClassLegacy.js +9 -13
  21. package/dist/core/dataElement/AdtDataElement.d.ts.map +1 -1
  22. package/dist/core/dataElement/AdtDataElement.js +19 -25
  23. package/dist/core/dataElement/check.d.ts +2 -1
  24. package/dist/core/dataElement/check.d.ts.map +1 -1
  25. package/dist/core/ddl/AdtDdl.d.ts.map +1 -1
  26. package/dist/core/ddl/AdtDdl.js +14 -23
  27. package/dist/core/ddl/AdtDdlLegacy.d.ts +0 -5
  28. package/dist/core/ddl/AdtDdlLegacy.d.ts.map +1 -1
  29. package/dist/core/ddl/AdtDdlLegacy.js +7 -2
  30. package/dist/core/ddl/check.d.ts +2 -1
  31. package/dist/core/ddl/check.d.ts.map +1 -1
  32. package/dist/core/domain/AdtDomain.d.ts.map +1 -1
  33. package/dist/core/domain/AdtDomain.js +19 -25
  34. package/dist/core/enhancement/AdtEnhancement.d.ts.map +1 -1
  35. package/dist/core/enhancement/AdtEnhancement.js +14 -27
  36. package/dist/core/featureToggle/AdtFeatureToggle.d.ts.map +1 -1
  37. package/dist/core/featureToggle/AdtFeatureToggle.js +25 -26
  38. package/dist/core/functionGroup/AdtFunctionGroup.d.ts.map +1 -1
  39. package/dist/core/functionGroup/AdtFunctionGroup.js +14 -23
  40. package/dist/core/functionGroup/AdtFunctionGroupLegacy.d.ts +0 -5
  41. package/dist/core/functionGroup/AdtFunctionGroupLegacy.d.ts.map +1 -1
  42. package/dist/core/functionGroup/AdtFunctionGroupLegacy.js +7 -2
  43. package/dist/core/functionInclude/AdtFunctionInclude.d.ts.map +1 -1
  44. package/dist/core/functionInclude/AdtFunctionInclude.js +25 -22
  45. package/dist/core/functionModule/AdtFunctionModule.d.ts.map +1 -1
  46. package/dist/core/functionModule/AdtFunctionModule.js +14 -20
  47. package/dist/core/functionModule/AdtFunctionModuleLegacy.d.ts +0 -5
  48. package/dist/core/functionModule/AdtFunctionModuleLegacy.d.ts.map +1 -1
  49. package/dist/core/functionModule/AdtFunctionModuleLegacy.js +7 -2
  50. package/dist/core/functionModule/check.d.ts.map +1 -1
  51. package/dist/core/interface/AdtInterface.d.ts.map +1 -1
  52. package/dist/core/interface/AdtInterface.js +19 -25
  53. package/dist/core/interface/AdtInterfaceLegacy.d.ts +0 -5
  54. package/dist/core/interface/AdtInterfaceLegacy.d.ts.map +1 -1
  55. package/dist/core/interface/AdtInterfaceLegacy.js +7 -2
  56. package/dist/core/interface/check.d.ts +2 -1
  57. package/dist/core/interface/check.d.ts.map +1 -1
  58. package/dist/core/messageClass/AdtMessageClass.d.ts +3 -1
  59. package/dist/core/messageClass/AdtMessageClass.d.ts.map +1 -1
  60. package/dist/core/messageClass/AdtMessageClass.js +19 -19
  61. package/dist/core/messageClass/AdtMessageClassMessage.d.ts.map +1 -1
  62. package/dist/core/messageClass/AdtMessageClassMessage.js +13 -26
  63. package/dist/core/messageClass/read.d.ts +3 -1
  64. package/dist/core/messageClass/read.d.ts.map +1 -1
  65. package/dist/core/messageClass/read.js +7 -2
  66. package/dist/core/metadataExtension/AdtMetadataExtension.d.ts.map +1 -1
  67. package/dist/core/metadataExtension/AdtMetadataExtension.js +7 -19
  68. package/dist/core/package/AdtPackage.d.ts.map +1 -1
  69. package/dist/core/package/AdtPackage.js +7 -22
  70. package/dist/core/program/AdtProgram.d.ts.map +1 -1
  71. package/dist/core/program/AdtProgram.js +19 -25
  72. package/dist/core/program/AdtProgramLegacy.d.ts +0 -5
  73. package/dist/core/program/AdtProgramLegacy.d.ts.map +1 -1
  74. package/dist/core/program/AdtProgramLegacy.js +7 -2
  75. package/dist/core/program/check.d.ts +2 -1
  76. package/dist/core/program/check.d.ts.map +1 -1
  77. package/dist/core/scalarFunction/AdtScalarFunction.d.ts.map +1 -1
  78. package/dist/core/scalarFunction/AdtScalarFunction.js +14 -1
  79. package/dist/core/scalarFunction/check.d.ts +2 -1
  80. package/dist/core/scalarFunction/check.d.ts.map +1 -1
  81. package/dist/core/scalarFunctionImplementation/AdtScalarFunctionImplementation.d.ts.map +1 -1
  82. package/dist/core/scalarFunctionImplementation/AdtScalarFunctionImplementation.js +16 -1
  83. package/dist/core/scalarFunctionImplementation/check.d.ts +2 -1
  84. package/dist/core/scalarFunctionImplementation/check.d.ts.map +1 -1
  85. package/dist/core/serviceDefinition/AdtServiceDefinition.d.ts.map +1 -1
  86. package/dist/core/serviceDefinition/AdtServiceDefinition.js +14 -21
  87. package/dist/core/serviceDefinition/check.d.ts +2 -1
  88. package/dist/core/serviceDefinition/check.d.ts.map +1 -1
  89. package/dist/core/structure/AdtStructure.d.ts.map +1 -1
  90. package/dist/core/structure/AdtStructure.js +14 -20
  91. package/dist/core/structure/check.d.ts +2 -1
  92. package/dist/core/structure/check.d.ts.map +1 -1
  93. package/dist/core/table/AdtTable.d.ts.map +1 -1
  94. package/dist/core/table/AdtTable.js +14 -20
  95. package/dist/core/table/check.d.ts +2 -1
  96. package/dist/core/table/check.d.ts.map +1 -1
  97. package/dist/core/table/check.js +0 -3
  98. package/dist/core/tabletype/AdtDdicTableType.d.ts.map +1 -1
  99. package/dist/core/tabletype/AdtDdicTableType.js +14 -20
  100. package/dist/core/tabletype/check.d.ts +2 -1
  101. package/dist/core/tabletype/check.d.ts.map +1 -1
  102. package/dist/core/tabletype/check.js +0 -3
  103. package/dist/core/transformation/AdtTransformation.d.ts.map +1 -1
  104. package/dist/core/transformation/AdtTransformation.js +14 -20
  105. package/dist/core/transformation/check.d.ts +2 -1
  106. package/dist/core/transformation/check.d.ts.map +1 -1
  107. package/dist/utils/checkRun.d.ts +50 -5
  108. package/dist/utils/checkRun.d.ts.map +1 -1
  109. package/dist/utils/checkRun.js +45 -12
  110. package/dist/utils/criticalSection.d.ts +24 -0
  111. package/dist/utils/criticalSection.d.ts.map +1 -0
  112. package/dist/utils/criticalSection.js +43 -0
  113. package/dist/utils/deletionCheck.d.ts +71 -0
  114. package/dist/utils/deletionCheck.d.ts.map +1 -0
  115. package/dist/utils/deletionCheck.js +70 -0
  116. package/dist/utils/managementOperations.d.ts +2 -1
  117. package/dist/utils/managementOperations.d.ts.map +1 -1
  118. package/dist/utils/managementOperations.js +0 -4
  119. package/package.json +1 -1
package/README.md CHANGED
@@ -316,7 +316,19 @@ await utils.readObjectSource('view' satisfies AdtSourceObjectType, 'ZOK_I_CDS_TE
316
316
 
317
317
  ### Using Long Polling for Object Readiness
318
318
 
319
- The `withLongPolling` parameter allows you to wait for objects to become available after create/update/activate operations, replacing fixed timeouts with server-driven waiting:
319
+ The `withLongPolling` parameter asks ADT to hold a read until the object is
320
+ available, instead of answering from whatever is there right now:
321
+
322
+ > **Measured caveat — do not rely on it for readiness.** On an SAP BTP trial the
323
+ > parameter changes nothing on an object read. Reading a message class straight
324
+ > after creating it returned `404` in ~650ms **with** the flag — the same
325
+ > latency as without it — and the server did not hold the request. The system's
326
+ > own discovery document declares `withLongPolling` for exactly one resource out
327
+ > of 601 templates: `/sap/bc/adt/activation/runs/{run_id}`, background activation
328
+ > runs. Other systems may honour it more widely; this one does not, so treat it
329
+ > as a hint and not a guarantee. **No ADT operation that changes system state
330
+ > guarantees when the change becomes visible** — where readiness matters, poll
331
+ > with a bound.
320
332
 
321
333
  ```typescript
322
334
  import { AdtClient } from '@mcp-abap-adt/adt-clients';
@@ -344,11 +356,13 @@ await client.getClass().update({
344
356
  }, { sourceCode: updatedCode });
345
357
  ```
346
358
 
347
- **Benefits of Long Polling:**
348
- - ✅ **No arbitrary timeouts** - waits for actual object readiness
349
- - ✅ **Faster tests** - no unnecessary delays when object is ready quickly
350
- - ✅ **More reliable** - server-driven waiting ensures object is actually available
351
- - ✅ **Automatic in create/update** - `AdtObject` implementations use long polling internally
359
+ **What it is intended to do**, where a system honours it: avoid an arbitrary
360
+ timeout by letting the server decide when the object is ready. `AdtObject`
361
+ implementations pass it internally on reads after create/update.
362
+
363
+ **What it does not do:** guarantee the object is there when the call returns.
364
+ See the caveat above — on the system measured, the flag had no effect on object
365
+ reads at all.
352
366
 
353
367
  **Note:** Long polling is automatically used in `create()` and `update()` methods of all `AdtObject` implementations to ensure objects are ready before proceeding with subsequent operations.
354
368
 
@@ -432,7 +446,7 @@ See [Tools Documentation](tools/README.md) for complete details and options.
432
446
 
433
447
  ### AdtObject Methods (with Long Polling Support)
434
448
 
435
- All `AdtObject` implementations support the `withLongPolling` parameter for read operations:
449
+ All `AdtObject` implementations accept the `withLongPolling` parameter on read operations (whether the server acts on it is another matter — see the caveat above):
436
450
 
437
451
  ```typescript
438
452
  // Read with long polling - waits for object to be ready
@@ -629,7 +643,10 @@ See [Architecture Documentation](docs/architecture/ARCHITECTURE.md#type-system-a
629
643
 
630
644
  **Migration from fixed timeouts to long polling:**
631
645
 
632
- The package now uses long polling (`?withLongPolling=true`) instead of fixed timeouts for waiting object readiness. This provides better reliability and faster execution.
646
+ The package passes long polling (`?withLongPolling=true`) instead of fixed
647
+ timeouts when reading after a create or update. It is the better default — a
648
+ fixed sleep is guesswork either way — but it is **not** a readiness guarantee:
649
+ see the measured caveat above before depending on it.
633
650
 
634
651
  ```typescript
635
652
  // ❌ Before - Using fixed timeouts
@@ -1 +1 @@
1
- {"version":3,"file":"AdtAccessControl.d.ts","sourceRoot":"","sources":["../../../src/core/accessControl/AdtAccessControl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAWpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AASzE,qBAAa,gBACX,YAAW,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;IAEtE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAmB;gBAGnD,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAa7B;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC;IA6B/B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,OAAO,CAAC,mBAAmB,CAAC;IAqC/B;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IA2B3C;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,mBAAmB,CAAC;IAkC/B;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,mBAAmB,CAAC;IAkC/B;;;;OAIG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IAoN/B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAmC/B;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAqB/B;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC;IAoB/B;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAclE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC;IAmB/B,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAIjD,gBAAgB,CAAC,UAAU,EAAE,MAAM;CAGpC"}
1
+ {"version":3,"file":"AdtAccessControl.d.ts","sourceRoot":"","sources":["../../../src/core/accessControl/AdtAccessControl.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAWpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AASzE,qBAAa,gBACX,YAAW,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;IAEtE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAmB;gBAGnD,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAa7B;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC;IA6B/B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,OAAO,CAAC,mBAAmB,CAAC;IAqC/B;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IA2B3C;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,mBAAmB,CAAC;IAkC/B;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,mBAAmB,CAAC;IAkC/B;;;;OAIG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IA4N/B;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAwC/B;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAqB/B;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC;IAqB/B;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAclE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACrC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC;IAmB/B,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAIjD,gBAAgB,CAAC,UAAU,EAAE,MAAM;CAGpC"}
@@ -1,25 +1,8 @@
1
1
  "use strict";
2
- /**
3
- * AdtAccessControl - High-level CRUD operations for Access Control (DCLS) objects
4
- *
5
- * Implements IAdtObject interface with automatic operation chains,
6
- * error handling, and resource cleanup.
7
- *
8
- * Uses low-level functions directly (not Builder classes).
9
- *
10
- * Session management:
11
- * - stateful: only when doing lock/update/unlock operations
12
- * - stateless: obligatory after unlock
13
- * - If no lock/unlock, no stateful needed
14
- * - activate uses same session/cookies (no stateful needed)
15
- *
16
- * Operation chains:
17
- * - Create: validate → create → check → lock → check(inactive) → update → unlock → check → activate
18
- * - Update: lock → check(inactive) → update → unlock → check → activate
19
- * - Delete: check(deletion) → delete
20
- */
21
2
  Object.defineProperty(exports, "__esModule", { value: true });
22
3
  exports.AdtAccessControl = void 0;
4
+ const criticalSection_1 = require("../../utils/criticalSection");
5
+ const deletionCheck_1 = require("../../utils/deletionCheck");
23
6
  const internalUtils_1 = require("../../utils/internalUtils");
24
7
  const LockRegistry_1 = require("../shared/LockRegistry");
25
8
  const activation_1 = require("./activation");
@@ -225,6 +208,9 @@ class AdtAccessControl {
225
208
  };
226
209
  }
227
210
  let lockHandle;
211
+ // This try is a LOCK…UNLOCK window; a timeout in the middle releases
212
+ // the lock but leaves the work half-done.
213
+ const endCriticalSection = (0, criticalSection_1.beginCriticalSection)(this.connection);
228
214
  try {
229
215
  // 1. Lock (update always starts with lock, stateful ONLY before lock)
230
216
  this.logger?.info?.('Step 1: Locking access control');
@@ -335,6 +321,9 @@ class AdtAccessControl {
335
321
  this.logger?.error('Update failed:', (0, internalUtils_1.safeErrorMessage)(error));
336
322
  throw error;
337
323
  }
324
+ finally {
325
+ endCriticalSection();
326
+ }
338
327
  }
339
328
  /**
340
329
  * Delete access control
@@ -349,10 +338,15 @@ class AdtAccessControl {
349
338
  try {
350
339
  // Check for deletion (no stateful needed)
351
340
  this.logger?.info?.('Checking access control for deletion');
352
- await (0, delete_1.checkDeletion)(this.connection, {
341
+ const deletionCheck = await (0, delete_1.checkDeletion)(this.connection, {
353
342
  access_control_name: config.accessControlName,
354
343
  transport_request: config.transportRequest,
355
344
  });
345
+ // ADT already said whether this may be deleted; refusing to read that
346
+ // answer is how a delete came to report success while the object
347
+ // stayed. Throws on isDeletable=false or a message of type E; a W
348
+ // is a warning and passes.
349
+ (0, deletionCheck_1.assertDeletable)(deletionCheck.data);
356
350
  this.logger?.info?.('Deletion check passed');
357
351
  // Delete (no stateful needed - no lock/unlock)
358
352
  this.logger?.info?.('Deleting access control');
@@ -1,4 +1,5 @@
1
1
  import type { IAbapConnection, IAdtResponse, ILogger } from '@mcp-abap-adt/interfaces';
2
+ import { type CheckRunVersion } from '../../utils/checkRun';
2
3
  /**
3
4
  * Check access control syntax
4
5
  *
@@ -9,5 +10,5 @@ import type { IAbapConnection, IAdtResponse, ILogger } from '@mcp-abap-adt/inter
9
10
  * persists with no real errors, downgrade to a warning and return the
10
11
  * response instead of throwing with an empty message.
11
12
  */
12
- export declare function checkAccessControl(connection: IAbapConnection, accessControlName: string, version?: string, sourceCode?: string, logger?: ILogger): Promise<IAdtResponse>;
13
+ export declare function checkAccessControl(connection: IAbapConnection, accessControlName: string, version?: CheckRunVersion, sourceCode?: string, logger?: ILogger): Promise<IAdtResponse>;
13
14
  //# sourceMappingURL=check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/accessControl/check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,OAAO,EACR,MAAM,0BAA0B,CAAC;AAOlC;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,eAAe,EAC3B,iBAAiB,EAAE,MAAM,EACzB,OAAO,GAAE,MAAmB,EAC5B,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,YAAY,CAAC,CA2CvB"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/accessControl/check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,OAAO,EACR,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,sBAAsB,CAAC;AAM9B;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,eAAe,EAC3B,iBAAiB,EAAE,MAAM,EACzB,OAAO,GAAE,eAA4B,EACrC,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,YAAY,CAAC,CA2CvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AdtAppendStructure.d.ts","sourceRoot":"","sources":["../../../src/core/appendStructure/AdtAppendStructure.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAWpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAW7E,qBAAa,kBACX,YAAW,gBAAgB,CAAC,sBAAsB,EAAE,qBAAqB,CAAC;IAE1E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAqB;gBAGrD,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAavB,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACtC,OAAO,CAAC,qBAAqB,CAAC;IA6B3B,MAAM,CACV,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;IA0B3B,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACvC,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAkBvC,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACvC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,qBAAqB,CAAC;IAa3B,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACvC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,qBAAqB,CAAC;IAa3B,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACvC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,qBAAqB,CAAC;IAgJ3B,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACtC,OAAO,CAAC,qBAAqB,CAAC;IAmB3B,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACtC,OAAO,CAAC,qBAAqB,CAAC;IAU3B,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACvC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC;IAY3B,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAY9D,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACvC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,CAAC;IAiBjC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC;IAInD,gBAAgB,CAAC,UAAU,EAAE,MAAM;CAGpC"}
1
+ {"version":3,"file":"AdtAppendStructure.d.ts","sourceRoot":"","sources":["../../../src/core/appendStructure/AdtAppendStructure.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAKjE,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAWpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAW7E,qBAAa,kBACX,YAAW,gBAAgB,CAAC,sBAAsB,EAAE,qBAAqB,CAAC;IAE1E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAqB;gBAGrD,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAavB,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACtC,OAAO,CAAC,qBAAqB,CAAC;IA6B3B,MAAM,CACV,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;IA8B3B,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACvC,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAkBvC,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACvC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,qBAAqB,CAAC;IAa3B,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACvC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,qBAAqB,CAAC;IAa3B,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACvC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,qBAAqB,CAAC;IAmJ3B,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACtC,OAAO,CAAC,qBAAqB,CAAC;IAwB3B,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACtC,OAAO,CAAC,qBAAqB,CAAC;IAU3B,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACvC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC;IAY3B,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAY9D,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACvC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,CAAC;IAiBjC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC;IAInD,gBAAgB,CAAC,UAAU,EAAE,MAAM;CAGpC"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AdtAppendStructure = void 0;
4
+ const criticalSection_1 = require("../../utils/criticalSection");
5
+ const deletionCheck_1 = require("../../utils/deletionCheck");
4
6
  const internalUtils_1 = require("../../utils/internalUtils");
5
7
  const LockRegistry_1 = require("../shared/LockRegistry");
6
8
  const activation_1 = require("./activation");
@@ -53,6 +55,10 @@ class AdtAppendStructure {
53
55
  const state = { errors: [] };
54
56
  if (!config.appendStructureName)
55
57
  throw new Error('Append structure name is required');
58
+ // Captured before the critical-section closure: narrowing does not survive
59
+ // into an arrow function, and threading `config.appendStructureName!`
60
+ // through every call would hide the guard rather than honour it.
61
+ const structureName = config.appendStructureName;
56
62
  if (!config.baseObject)
57
63
  throw new Error('Base object is required');
58
64
  if (!config.packageName)
@@ -119,20 +125,30 @@ class AdtAppendStructure {
119
125
  return { updateResult, errors: [] };
120
126
  }
121
127
  let lockHandle;
128
+ // This try is a LOCK…UNLOCK window; a timeout in the middle releases
129
+ // the lock but leaves the work half-done.
130
+ const endCriticalSection = (0, criticalSection_1.beginCriticalSection)(this.connection);
122
131
  try {
123
132
  this.connection.setSessionType('stateful');
124
133
  lockHandle = await (0, lock_1.lockAppendStructure)(this.connection, config.appendStructureName);
125
134
  this.lockTracker.track(config.appendStructureName, lockHandle);
126
135
  const codeToCheck = options?.sourceCode || config.sourceCode;
127
136
  if (codeToCheck) {
128
- await (0, check_1.checkAppendStructure)(this.connection, config.appendStructureName, 'inactive', codeToCheck);
137
+ // No check is run here on the caller's behalf. Verifying the source
138
+ // about to be written is the CONSUMER's decision: only they know
139
+ // whether the object is new or merely inactive, and only they can say
140
+ // what a finding should mean for their flow. `check()` and
141
+ // `waitForCleanCheckRun()` are available for that; the handler no
142
+ // longer inserts an opinion between the caller and the write.
129
143
  await (0, update_1.updateAppendStructure)(this.connection, {
130
144
  append_structure_name: config.appendStructureName,
131
145
  source_code: codeToCheck,
132
146
  transport_request: config.transportRequest,
133
147
  }, lockHandle);
134
148
  try {
135
- await this.read({ appendStructureName: config.appendStructureName }, 'active', { withLongPolling: true });
149
+ await this.read({ appendStructureName: config.appendStructureName }, 'active', {
150
+ withLongPolling: true,
151
+ });
136
152
  }
137
153
  catch (readError) {
138
154
  this.logger?.warn?.('read with long polling failed (object may not be ready yet):', (0, internalUtils_1.safeErrorMessage)(readError));
@@ -149,11 +165,12 @@ class AdtAppendStructure {
149
165
  this.lockTracker.untrack(config.appendStructureName);
150
166
  lockHandle = undefined;
151
167
  }
152
- await (0, check_1.checkAppendStructure)(this.connection, config.appendStructureName, 'inactive');
153
168
  if (options?.activateOnUpdate) {
154
169
  const activateResult = await (0, activation_1.activateAppendStructure)(this.connection, config.appendStructureName);
155
170
  try {
156
- await this.read({ appendStructureName: config.appendStructureName }, 'active', { withLongPolling: true });
171
+ await this.read({ appendStructureName: config.appendStructureName }, 'active', {
172
+ withLongPolling: true,
173
+ });
157
174
  }
158
175
  catch (readError) {
159
176
  this.logger?.warn?.('read with long polling failed (object may not be ready yet):', (0, internalUtils_1.safeErrorMessage)(readError));
@@ -194,15 +211,23 @@ class AdtAppendStructure {
194
211
  this.logger?.error('Update failed:', (0, internalUtils_1.safeErrorMessage)(error));
195
212
  throw error;
196
213
  }
214
+ finally {
215
+ endCriticalSection();
216
+ }
197
217
  }
198
218
  async delete(config) {
199
219
  if (!config.appendStructureName)
200
220
  throw new Error('Append structure name is required');
201
221
  try {
202
- await (0, delete_1.checkDeletion)(this.connection, {
222
+ const deletionCheck = await (0, delete_1.checkDeletion)(this.connection, {
203
223
  append_structure_name: config.appendStructureName,
204
224
  transport_request: config.transportRequest,
205
225
  });
226
+ // ADT already said whether this may be deleted; refusing to read that
227
+ // answer is how a delete came to report success while the object
228
+ // stayed. Throws on isDeletable=false or a message of type E; a W
229
+ // is a warning and passes.
230
+ (0, deletionCheck_1.assertDeletable)(deletionCheck.data);
206
231
  const deleteResult = await (0, delete_1.deleteAppendStructure)(this.connection, {
207
232
  append_structure_name: config.appendStructureName,
208
233
  transport_request: config.transportRequest,
@@ -1,3 +1,4 @@
1
1
  import type { IAbapConnection, IAdtResponse } from '@mcp-abap-adt/interfaces';
2
- export declare function checkAppendStructure(connection: IAbapConnection, name: string, version?: string, sourceCode?: string): Promise<IAdtResponse>;
2
+ import { type CheckRunVersion } from '../../utils/checkRun';
3
+ export declare function checkAppendStructure(connection: IAbapConnection, name: string, version?: CheckRunVersion, sourceCode?: string): Promise<IAdtResponse>;
3
4
  //# sourceMappingURL=check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/appendStructure/check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG9E,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAAmB,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAevB"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/appendStructure/check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,sBAAsB,CAAC;AAE9B,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,eAA4B,EACrC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAevB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AdtAuthorizationField.d.ts","sourceRoot":"","sources":["../../../src/core/authorizationField/AdtAuthorizationField.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,eAAe,EACf,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,OAAO,EACP,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAWhC,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,QAAQ,CAAC;AACnE,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EAEzB,MAAM,SAAS,CAAC;AAIjB,qBAAa,qBACX,YACE,QAAQ,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,EAC7D,eAAe,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,EACpE,aAAa,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,EAClE,eAAe,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,EACpE,YAAY,CAAC,yBAAyB,EAAE,wBAAwB,CAAC;IAEnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAwB;gBAGxD,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAa7B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GACzC,OAAO,CAAC,wBAAwB,CAAC;IAkBpC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;IAgDpC;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC;IA0BhD;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE,YAAY,GAAG;QAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;KAAE,GAC3D,OAAO,CAAC,wBAAwB,CAAC;IA6CpC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;IAsMpC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GACzC,OAAO,CAAC,wBAAwB,CAAC;IA+BpC;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GACzC,OAAO,CAAC,wBAAwB,CAAC;IAoBpC;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAmBpC;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,wBAAwB,CAAC;IASxD;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAevE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC;IAgBpC,+FAA+F;IACzF,WAAW,CACf,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAC1C,OAAO,CAAC,cAAc,EAAE,CAAC;IAI5B,+FAA+F;IACzF,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG7D"}
1
+ {"version":3,"file":"AdtAuthorizationField.d.ts","sourceRoot":"","sources":["../../../src/core/authorizationField/AdtAuthorizationField.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,8 @@
1
1
  "use strict";
2
- /**
3
- * AdtAuthorizationField - High-level CRUD operations for SUSO / AUTH objects
4
- *
5
- * Implements IAdtObject with automatic operation chains, error handling,
6
- * and resource cleanup.
7
- *
8
- * Session management:
9
- * - stateful: only when doing lock / unlock
10
- * - stateless: obligatory after unlock
11
- * - activate uses the same session / cookies (no stateful required)
12
- *
13
- * Operation chains:
14
- * - Create: validate (caller) → create
15
- * - Update: lock → check(inactive, xmlContent?) → update → read(longPolling) → unlock → check(inactive) → optional activate + read
16
- * - Delete: check(deletion) → delete
17
- */
18
2
  Object.defineProperty(exports, "__esModule", { value: true });
19
3
  exports.AdtAuthorizationField = void 0;
4
+ const criticalSection_1 = require("../../utils/criticalSection");
5
+ const deletionCheck_1 = require("../../utils/deletionCheck");
20
6
  const internalUtils_1 = require("../../utils/internalUtils");
21
7
  const LockRegistry_1 = require("../shared/LockRegistry");
22
8
  const versions_1 = require("../shared/versions");
@@ -215,6 +201,9 @@ class AdtAuthorizationField {
215
201
  }
216
202
  let lockHandle;
217
203
  const state = { errors: [] };
204
+ // This try is a LOCK…UNLOCK window; a timeout in the middle releases
205
+ // the lock but leaves the work half-done.
206
+ const endCriticalSection = (0, criticalSection_1.beginCriticalSection)(this.connection);
218
207
  try {
219
208
  // 1. Lock
220
209
  this.logger?.info?.('Step 1: Locking authorization field');
@@ -228,8 +217,8 @@ class AdtAuthorizationField {
228
217
  const xmlToCheck = options?.xmlContent;
229
218
  if (xmlToCheck) {
230
219
  this.logger?.info?.('Step 2: Checking inactive version with update content');
231
- const checkResponse = await (0, check_1.checkAuthorizationField)(this.connection, fullConfig.authorizationFieldName, 'inactive', xmlToCheck);
232
- state.checkResult = checkResponse;
220
+ const deletionCheck = await (0, check_1.checkAuthorizationField)(this.connection, fullConfig.authorizationFieldName, 'inactive', xmlToCheck);
221
+ state.checkResult = deletionCheck;
233
222
  this.logger?.info?.('Check inactive with update content passed');
234
223
  }
235
224
  // 3. Update
@@ -314,6 +303,9 @@ class AdtAuthorizationField {
314
303
  this.logger?.error('Update failed:', (0, internalUtils_1.safeErrorMessage)(error));
315
304
  throw error;
316
305
  }
306
+ finally {
307
+ endCriticalSection();
308
+ }
317
309
  }
318
310
  /**
319
311
  * Delete authorization field.
@@ -325,8 +317,13 @@ class AdtAuthorizationField {
325
317
  const state = { errors: [] };
326
318
  try {
327
319
  this.logger?.info?.('Checking authorization field for deletion');
328
- const checkResponse = await (0, delete_1.checkDeletion)(this.connection, this.buildDeleteParams(config));
329
- state.checkResult = checkResponse;
320
+ const deletionCheck = await (0, delete_1.checkDeletion)(this.connection, this.buildDeleteParams(config));
321
+ // ADT already said whether this may be deleted; refusing to read that
322
+ // answer is how a delete came to report success while the object
323
+ // stayed. Throws on isDeletable=false or a message of type E; a W
324
+ // is a warning and passes.
325
+ (0, deletionCheck_1.assertDeletable)(deletionCheck.data);
326
+ state.checkResult = deletionCheck;
330
327
  this.logger?.info?.('Deletion check passed');
331
328
  this.logger?.info?.('Deleting authorization field');
332
329
  const deleteResponse = await (0, delete_1.deleteAuthorizationField)(this.connection, this.buildDeleteParams(config));
@@ -365,9 +362,9 @@ class AdtAuthorizationField {
365
362
  throw new Error('Authorization field name is required');
366
363
  }
367
364
  const version = status === 'active' ? 'active' : 'inactive';
368
- const checkResponse = await (0, check_1.checkAuthorizationField)(this.connection, config.authorizationFieldName, version);
365
+ const deletionCheck = await (0, check_1.checkAuthorizationField)(this.connection, config.authorizationFieldName, version);
369
366
  return {
370
- checkResult: checkResponse,
367
+ checkResult: deletionCheck,
371
368
  errors: [],
372
369
  };
373
370
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AdtBehaviorDefinition.d.ts","sourceRoot":"","sources":["../../../src/core/behaviorDefinition/AdtBehaviorDefinition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAWpD,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,SAAS,CAAC;AASjB,qBAAa,qBACX,YACE,gBAAgB,CAAC,yBAAyB,EAAE,wBAAwB,CAAC;IAEvE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAwB;gBAGxD,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAY7B;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GACzC,OAAO,CAAC,wBAAwB,CAAC;IA+CpC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;IAuEpC;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC;IA8BhD;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,wBAAwB,CAAC;IAoCpC;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,wBAAwB,CAAC;IAoCpC;;;;OAIG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;IAwMpC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GACzC,OAAO,CAAC,wBAAwB,CAAC;IAqCpC;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GACzC,OAAO,CAAC,wBAAwB,CAAC;IAwBpC;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IA4BpC;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAWvE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC;IAepC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAItD,gBAAgB,CAAC,UAAU,EAAE,MAAM;CAGpC"}
1
+ {"version":3,"file":"AdtBehaviorDefinition.d.ts","sourceRoot":"","sources":["../../../src/core/behaviorDefinition/AdtBehaviorDefinition.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,OAAO,EACR,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAWpD,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,SAAS,CAAC;AASjB,qBAAa,qBACX,YACE,gBAAgB,CAAC,yBAAyB,EAAE,wBAAwB,CAAC;IAEvE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,SAAgB,UAAU,EAAE,MAAM,CAAwB;gBAGxD,UAAU,EAAE,eAAe,EAC3B,MAAM,CAAC,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,iBAAiB,EACjC,YAAY,CAAC,EAAE,YAAY;IAY7B;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GACzC,OAAO,CAAC,wBAAwB,CAAC;IA+CpC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;IAuEpC;;OAEG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC;IA8BhD;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,wBAAwB,CAAC;IAoCpC;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,wBAAwB,CAAC;IAoCpC;;;;OAIG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;IAgNpC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GACzC,OAAO,CAAC,wBAAwB,CAAC;IA0CpC;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GACzC,OAAO,CAAC,wBAAwB,CAAC;IAwBpC;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IA6BpC;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAWvE;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC;IAepC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAItD,gBAAgB,CAAC,UAAU,EAAE,MAAM;CAGpC"}
@@ -1,25 +1,8 @@
1
1
  "use strict";
2
- /**
3
- * AdtBehaviorDefinition - High-level CRUD operations for Behavior Definition objects
4
- *
5
- * Implements IAdtObject interface with automatic operation chains,
6
- * error handling, and resource cleanup.
7
- *
8
- * Uses low-level functions directly (not Builder classes).
9
- *
10
- * Session management:
11
- * - stateful: only when doing lock/update/unlock operations
12
- * - stateless: obligatory after unlock
13
- * - If no lock/unlock, no stateful needed
14
- * - activate uses same session/cookies (no stateful needed)
15
- *
16
- * Operation chains:
17
- * - Create: validate → create → check → lock → check(inactive) → update → unlock → check → activate
18
- * - Update: lock → check(inactive) → update → unlock → check → activate
19
- * - Delete: check(deletion) → delete
20
- */
21
2
  Object.defineProperty(exports, "__esModule", { value: true });
22
3
  exports.AdtBehaviorDefinition = void 0;
4
+ const criticalSection_1 = require("../../utils/criticalSection");
5
+ const deletionCheck_1 = require("../../utils/deletionCheck");
23
6
  const internalUtils_1 = require("../../utils/internalUtils");
24
7
  const LockRegistry_1 = require("../shared/LockRegistry");
25
8
  const activation_1 = require("./activation");
@@ -276,6 +259,9 @@ class AdtBehaviorDefinition {
276
259
  };
277
260
  }
278
261
  let lockHandle;
262
+ // This try is a LOCK…UNLOCK window; a timeout in the middle releases
263
+ // the lock but leaves the work half-done.
264
+ const endCriticalSection = (0, criticalSection_1.beginCriticalSection)(this.connection);
279
265
  try {
280
266
  // 1. Lock (update always starts with lock, stateful ONLY before lock)
281
267
  this.logger?.info?.('Step 1: Locking behavior definition');
@@ -389,6 +375,9 @@ class AdtBehaviorDefinition {
389
375
  this.logger?.error('Update failed:', (0, internalUtils_1.safeErrorMessage)(error));
390
376
  throw error;
391
377
  }
378
+ finally {
379
+ endCriticalSection();
380
+ }
392
381
  }
393
382
  /**
394
383
  * Delete behavior definition
@@ -403,7 +392,12 @@ class AdtBehaviorDefinition {
403
392
  try {
404
393
  // Check for deletion (no stateful needed)
405
394
  this.logger?.info?.('Checking behavior definition for deletion');
406
- await (0, delete_1.checkDeletion)(this.connection, config.name);
395
+ const deletionCheck = await (0, delete_1.checkDeletion)(this.connection, config.name);
396
+ // ADT already said whether this may be deleted; refusing to read that
397
+ // answer is how a delete came to report success while the object
398
+ // stayed. Throws on isDeletable=false or a message of type E; a W
399
+ // is a warning and passes.
400
+ (0, deletionCheck_1.assertDeletable)(deletionCheck.data);
407
401
  this.logger?.info?.('Deletion check passed');
408
402
  // Delete (no stateful needed - no lock/unlock)
409
403
  this.logger?.info?.('Deleting behavior definition');
@@ -1,3 +1,4 @@
1
+ import type { CheckRunVersion } from '../../utils/checkRun';
1
2
  /**
2
3
  * Behavior Definition check operations
3
4
  */
@@ -25,7 +26,7 @@ import type { CheckReporter } from './types';
25
26
  * const syntaxResult = await check(connection, 'Z_MY_BDEF', 'abapCheckRun', sessionId, 'inactive', sourceCode);
26
27
  * ```
27
28
  */
28
- export declare function check(connection: IAbapConnection, name: string, reporter: CheckReporter, _sessionId: string, version?: string, sourceCode?: string): Promise<IAdtResponse>;
29
+ export declare function check(connection: IAbapConnection, name: string, reporter: CheckReporter, _sessionId: string, version?: CheckRunVersion, sourceCode?: string): Promise<IAdtResponse>;
29
30
  /**
30
31
  * Check behavior definition implementation
31
32
  *
@@ -47,7 +48,7 @@ export declare function check(connection: IAbapConnection, name: string, reporte
47
48
  * const result = await checkImplementation(connection, 'Z_MY_BDEF', sessionId, 'inactive', sourceCode);
48
49
  * ```
49
50
  */
50
- export declare function checkImplementation(connection: IAbapConnection, name: string, sessionId: string, version?: string, sourceCode?: string): Promise<IAdtResponse>;
51
+ export declare function checkImplementation(connection: IAbapConnection, name: string, sessionId: string, version?: CheckRunVersion, sourceCode?: string): Promise<IAdtResponse>;
51
52
  /**
52
53
  * Check behavior definition ABAP syntax
53
54
  *
@@ -69,5 +70,5 @@ export declare function checkImplementation(connection: IAbapConnection, name: s
69
70
  * const result = await checkAbap(connection, 'Z_MY_BDEF', sessionId, 'inactive', sourceCode);
70
71
  * ```
71
72
  */
72
- export declare function checkAbap(connection: IAbapConnection, name: string, sessionId: string, version?: string, sourceCode?: string): Promise<IAdtResponse>;
73
+ export declare function checkAbap(connection: IAbapConnection, name: string, sessionId: string, version?: CheckRunVersion, sourceCode?: string): Promise<IAdtResponse>;
73
74
  //# sourceMappingURL=check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/behaviorDefinition/check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAO9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,KAAK,CACzB,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,MAAmB,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAqCvB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,MAAmB,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CASvB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,MAAmB,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CASvB"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/behaviorDefinition/check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAO9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,KAAK,CACzB,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,eAA4B,EACrC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAqCvB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAA4B,EACrC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CASvB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,eAA4B,EACrC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CASvB"}
@@ -1,7 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * Behavior Definition check operations
4
- */
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.check = check;
7
4
  exports.checkImplementation = checkImplementation;
@@ -1 +1 @@
1
- {"version":3,"file":"AdtClass.d.ts","sourceRoot":"","sources":["../../../src/core/class/AdtClass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AdtClass.d.ts","sourceRoot":"","sources":["../../../src/core/class/AdtClass.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * AdtClass - High-level CRUD operations for Class objects
4
- *
5
- * Implements IAdtObject interface with automatic operation chains,
6
- * error handling, and resource cleanup.
7
- *
8
- * Uses low-level functions directly (not Builder classes).
9
- *
10
- * Session management:
11
- * - stateful: only when doing lock operations
12
- * - stateless: obligatory after unlock
13
- * - If no lock/unlock, no stateful needed
14
- *
15
- * Operation chains:
16
- * - Create: validate → create → check → lock → check(inactive) → update → unlock → check → activate
17
- * - Update: lock → check(inactive) → update → unlock → check → activate
18
- * - Delete: check(deletion) → delete
19
- */
20
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
3
  if (k2 === undefined) k2 = k;
22
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -52,6 +34,25 @@ var __importStar = (this && this.__importStar) || (function () {
52
34
  })();
53
35
  Object.defineProperty(exports, "__esModule", { value: true });
54
36
  exports.AdtClass = void 0;
37
+ const criticalSection_1 = require("../../utils/criticalSection");
38
+ /**
39
+ * AdtClass - High-level CRUD operations for Class objects
40
+ *
41
+ * Implements IAdtObject interface with automatic operation chains,
42
+ * error handling, and resource cleanup.
43
+ *
44
+ * Uses low-level functions directly (not Builder classes).
45
+ *
46
+ * Session management:
47
+ * - stateful: only when doing lock operations
48
+ * - stateless: obligatory after unlock
49
+ * - If no lock/unlock, no stateful needed
50
+ *
51
+ * Operation chains:
52
+ * - Create: validate → create → check → lock → check(inactive) → update → unlock → check → activate
53
+ * - Update: lock → check(inactive) → update → unlock → check → activate
54
+ * - Delete: check(deletion) → delete
55
+ */
55
56
  const interfaces_1 = require("@mcp-abap-adt/interfaces");
56
57
  const internalUtils_1 = require("../../utils/internalUtils");
57
58
  const capabilities_1 = require("../shared/capabilities");
@@ -306,6 +307,9 @@ class AdtClass {
306
307
  const state = {
307
308
  errors: [],
308
309
  };
310
+ // This try is a LOCK…UNLOCK window; a timeout in the middle releases
311
+ // the lock but leaves the work half-done.
312
+ const endCriticalSection = (0, criticalSection_1.beginCriticalSection)(this.connection);
309
313
  try {
310
314
  // 1. Lock — stay stateful for the whole lock→check→update→unlock chain.
311
315
  // On older BASIS (#106) the lock handle is only valid inside stateful
@@ -414,6 +418,9 @@ class AdtClass {
414
418
  this.logger?.error('Update failed:', (0, internalUtils_1.safeErrorMessage)(error));
415
419
  throw error;
416
420
  }
421
+ finally {
422
+ endCriticalSection();
423
+ }
417
424
  }
418
425
  /**
419
426
  * Delete class
@@ -630,6 +637,9 @@ class AdtClass {
630
637
  throw new Error('Test class code is required');
631
638
  }
632
639
  let lockHandle;
640
+ // This try is a LOCK…UNLOCK window; a timeout in the middle releases
641
+ // the lock but leaves the work half-done.
642
+ const endCriticalSection = (0, criticalSection_1.beginCriticalSection)(this.connection);
633
643
  try {
634
644
  // 1. Lock parent class (stateful only for lock)
635
645
  // Lock handle from parent class is sufficient for updating testclasses include
@@ -666,6 +676,9 @@ class AdtClass {
666
676
  }
667
677
  throw error;
668
678
  }
679
+ finally {
680
+ endCriticalSection();
681
+ }
669
682
  }
670
683
  /**
671
684
  * Activate test classes (local classes)
@@ -1 +1 @@
1
- {"version":3,"file":"AdtClassLegacy.d.ts","sourceRoot":"","sources":["../../../src/core/class/AdtClassLegacy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAa,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAMhF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIzD,qBAAa,cAAe,SAAQ,QAAQ;IAC1C;;;;;OAKG;IACY,MAAM,CACnB,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAC7B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,WAAW,CAAC;IA6HR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;CA+C3E"}
1
+ {"version":3,"file":"AdtClassLegacy.d.ts","sourceRoot":"","sources":["../../../src/core/class/AdtClassLegacy.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAa,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAMhF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIzD,qBAAa,cAAe,SAAQ,QAAQ;IAC1C;;;;;OAKG;IACY,MAAM,CACnB,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAC7B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,WAAW,CAAC;IAqIR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;CAuD3E"}