@mcp-abap-adt/adt-clients 23.0.1 → 23.0.2
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.
- package/dist/core/include/AdtInclude.d.ts +9 -18
- package/dist/core/include/AdtInclude.d.ts.map +1 -1
- package/dist/core/include/AdtInclude.js +10 -21
- package/dist/core/messageClass/AdtMessageClass.d.ts.map +1 -1
- package/dist/core/messageClass/AdtMessageClass.js +5 -3
- package/dist/core/service/AdtService.d.ts.map +1 -1
- package/dist/core/service/AdtService.js +4 -8
- package/docs/README.md +1 -1
- package/docs/usage/OBJECT_LIFECYCLE.md +9 -7
- package/docs/usage/STATEFUL_SESSION_GUIDE.md +14 -6
- package/docs/usage/WORKAROUNDS.md +14 -0
- package/package.json +2 -2
|
@@ -80,26 +80,17 @@ export declare class AdtInclude<R extends IIncludeResults = typeof includeDocume
|
|
|
80
80
|
* caller's `analyse` to say.
|
|
81
81
|
*/
|
|
82
82
|
lock<E extends IAdtError = IAdtError>(config: Partial<IIncludeConfig>, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<string, E>>;
|
|
83
|
-
/** Unlock the include, and go back to stateless either way. */
|
|
84
83
|
/**
|
|
85
|
-
*
|
|
84
|
+
* Release the lock: one `UNLOCK`, sent stateful, and stateless again after.
|
|
86
85
|
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
* lives as long as the connection — hours, in a test run — where the same
|
|
96
|
-
* activation sent statelessly leaves nothing behind. Eclipse holds a stateful
|
|
97
|
-
* session for the lock alone: its `LOCK` and `UNLOCK` are on one session and
|
|
98
|
-
* every other request, the source `PUT` included, goes stateless on a session
|
|
99
|
-
* of its own.
|
|
100
|
-
*
|
|
101
|
-
* Cleared after the request, not before: the unlock itself belongs to the
|
|
102
|
-
* window it is closing.
|
|
86
|
+
* The lock lives in the stateful context the `LOCK` opened, and only a
|
|
87
|
+
* request that reaches that context releases it. The connector sends the
|
|
88
|
+
* context cookie with stateful requests only, so an `UNLOCK` sent stateless
|
|
89
|
+
* runs in a fresh context, answers 200 and releases nothing — measured on
|
|
90
|
+
* an on-premise system 2026-09-27: the activation after it answered 403 `EU/510` "currently
|
|
91
|
+
* editing", and the delete was refused the same way. Both the `LOCK` and the
|
|
92
|
+
* `UNLOCK` are stateful for their own request only; everything between them,
|
|
93
|
+
* the source `PUT` included, goes stateless, as Eclipse sends it.
|
|
103
94
|
*/
|
|
104
95
|
unlock<E extends IAdtError = IAdtError>(config: Partial<IIncludeConfig>, lockHandle: string, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<void, E>>;
|
|
105
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdtInclude.d.ts","sourceRoot":"","sources":["../../../src/core/include/AdtInclude.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EAEf,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAY9D,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAQjE,qBAAa,UAAU,CAAC,CAAC,SAAS,eAAe,GAAG,OAAO,gBAAgB,CACzE,YACE,aAAa,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACvD,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EACrD,oBAAoB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAC/D,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAChE,aAAa,CACX,cAAc,EACd,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EACzB,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAC/B,EACD,eAAe,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAC5D,eAAe,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAC5D,YAAY,CAAC,cAAc,CAAC;IAG5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAK3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBARP,UAAU,EAAE,eAAe,EAK3B,MAAM,CAAC,EAAE,OAAO,YAAA,EAChB,YAAY,CAAC,EAAE,gBAAgB,YAAA,EAE/B,OAAO,GAAE,CAAoC;IAGhE;;;;;;;OAOG;IACG,QAAQ,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC5C,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA4BxD;;;;;;;OAOG;IACG,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC1C,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG;QAAE,MAAM,CAAC,EAAE,KAAK,CAAA;KAAE,EAC3D,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAqCrD,iCAAiC;IAC3B,IAAI,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAChE,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAYpD,mCAAmC;IAC7B,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAChD,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAChE,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAYtD;;;;;;;;;;OAUG;IACG,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC1C,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA4BrD;;;;;OAKG;IACG,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACjD,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAe3D;;;;;;OAMG;IACG,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC1C,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAatD,4BAA4B;IACtB,QAAQ,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC5C,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAYxD;;;;OAIG;IACG,IAAI,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAgBnC
|
|
1
|
+
{"version":3,"file":"AdtInclude.d.ts","sourceRoot":"","sources":["../../../src/core/include/AdtInclude.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EAEf,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAY9D,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAQjE,qBAAa,UAAU,CAAC,CAAC,SAAS,eAAe,GAAG,OAAO,gBAAgB,CACzE,YACE,aAAa,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACvD,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EACrD,oBAAoB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAC/D,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAChE,aAAa,CACX,cAAc,EACd,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EACzB,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAC/B,EACD,eAAe,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAC5D,eAAe,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAC5D,YAAY,CAAC,cAAc,CAAC;IAG5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAK3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBARP,UAAU,EAAE,eAAe,EAK3B,MAAM,CAAC,EAAE,OAAO,YAAA,EAChB,YAAY,CAAC,EAAE,gBAAgB,YAAA,EAE/B,OAAO,GAAE,CAAoC;IAGhE;;;;;;;OAOG;IACG,QAAQ,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC5C,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA4BxD;;;;;;;OAOG;IACG,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC1C,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG;QAAE,MAAM,CAAC,EAAE,KAAK,CAAA;KAAE,EAC3D,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAqCrD,iCAAiC;IAC3B,IAAI,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,EAC/B,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAChE,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAYpD,mCAAmC;IAC7B,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAChD,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAChE,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAYtD;;;;;;;;;;OAUG;IACG,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC1C,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA4BrD;;;;;OAKG;IACG,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACjD,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAe3D;;;;;;OAMG;IACG,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC1C,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAatD,4BAA4B;IACtB,QAAQ,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC5C,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAYxD;;;;OAIG;IACG,IAAI,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAgBnC;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC1C,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;CAWlC"}
|
|
@@ -178,32 +178,21 @@ class AdtInclude {
|
|
|
178
178
|
}
|
|
179
179
|
return answer;
|
|
180
180
|
}
|
|
181
|
-
/** Unlock the include, and go back to stateless either way. */
|
|
182
181
|
/**
|
|
183
|
-
*
|
|
182
|
+
* Release the lock: one `UNLOCK`, sent stateful, and stateless again after.
|
|
184
183
|
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
* lives as long as the connection — hours, in a test run — where the same
|
|
194
|
-
* activation sent statelessly leaves nothing behind. Eclipse holds a stateful
|
|
195
|
-
* session for the lock alone: its `LOCK` and `UNLOCK` are on one session and
|
|
196
|
-
* every other request, the source `PUT` included, goes stateless on a session
|
|
197
|
-
* of its own.
|
|
198
|
-
*
|
|
199
|
-
* Cleared after the request, not before: the unlock itself belongs to the
|
|
200
|
-
* window it is closing.
|
|
184
|
+
* The lock lives in the stateful context the `LOCK` opened, and only a
|
|
185
|
+
* request that reaches that context releases it. The connector sends the
|
|
186
|
+
* context cookie with stateful requests only, so an `UNLOCK` sent stateless
|
|
187
|
+
* runs in a fresh context, answers 200 and releases nothing — measured on
|
|
188
|
+
* an on-premise system 2026-09-27: the activation after it answered 403 `EU/510` "currently
|
|
189
|
+
* editing", and the delete was refused the same way. Both the `LOCK` and the
|
|
190
|
+
* `UNLOCK` are stateful for their own request only; everything between them,
|
|
191
|
+
* the source `PUT` included, goes stateless, as Eclipse sends it.
|
|
201
192
|
*/
|
|
202
193
|
async unlock(config, lockHandle, options) {
|
|
203
194
|
const includeName = requireName(config);
|
|
204
|
-
|
|
205
|
-
this.connection.setSessionType?.('stateless');
|
|
206
|
-
return answer;
|
|
195
|
+
return (0, adtResponse_1.answering)(() => (0, statefulSession_1.inStatefulSession)(this.connection, () => (0, unlock_1.unlockInclude)(this.connection, includeName, lockHandle)), resultStrategy_1.nothing, options?.analyse);
|
|
207
196
|
}
|
|
208
197
|
}
|
|
209
198
|
exports.AdtInclude = AdtInclude;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdtMessageClass.d.ts","sourceRoot":"","sources":["../../../src/core/messageClass/AdtMessageClass.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AdtMessageClass.d.ts","sourceRoot":"","sources":["../../../src/core/messageClass/AdtMessageClass.ts"],"names":[],"mappings":"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"}
|
|
@@ -172,12 +172,14 @@ class AdtMessageClass {
|
|
|
172
172
|
/** Unlock the message class. */
|
|
173
173
|
async unlock(config, lockHandle, options) {
|
|
174
174
|
const name = this.name(config);
|
|
175
|
-
return (0, adtResponse_1.answering)(
|
|
175
|
+
return (0, adtResponse_1.answering)(
|
|
176
|
+
// The UNLOCK reaches the context the LOCK opened only if it is sent
|
|
177
|
+
// stateful; stateless, it releases nothing and still answers 200.
|
|
178
|
+
async () => {
|
|
176
179
|
try {
|
|
177
|
-
return await (0, unlock_1.unlockMessageClass)(this.connection, name, lockHandle);
|
|
180
|
+
return await (0, statefulSession_1.inStatefulSession)(this.connection, () => (0, unlock_1.unlockMessageClass)(this.connection, name, lockHandle));
|
|
178
181
|
}
|
|
179
182
|
finally {
|
|
180
|
-
this.connection.setSessionType('stateless');
|
|
181
183
|
this.lockTracker.untrack(name);
|
|
182
184
|
}
|
|
183
185
|
}, resultStrategy_1.nothing, options?.analyse);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdtService.d.ts","sourceRoot":"","sources":["../../../src/core/service/AdtService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AdtService.d.ts","sourceRoot":"","sources":["../../../src/core/service/AdtService.ts"],"names":[],"mappings":"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"}
|
|
@@ -329,14 +329,10 @@ class AdtServiceBinding {
|
|
|
329
329
|
*/
|
|
330
330
|
async unlock(config, lockHandle, options) {
|
|
331
331
|
const name = this.name(config);
|
|
332
|
-
return (0, adtResponse_1.answering)(
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
finally {
|
|
337
|
-
this.connection.setSessionType?.('stateless');
|
|
338
|
-
}
|
|
339
|
-
}, resultStrategy_1.nothing, options?.analyse);
|
|
332
|
+
return (0, adtResponse_1.answering)(
|
|
333
|
+
// The UNLOCK reaches the context the LOCK opened only if it is sent
|
|
334
|
+
// stateful; stateless, it releases nothing and still answers 200.
|
|
335
|
+
() => (0, statefulSession_1.inStatefulSession)(this.connection, () => (0, lock_1.unlockServiceBinding)(this.connection, name, lockHandle)), resultStrategy_1.nothing, options?.analyse);
|
|
340
336
|
}
|
|
341
337
|
/**
|
|
342
338
|
* Delete the binding.
|
package/docs/README.md
CHANGED
|
@@ -118,7 +118,7 @@ See [ARCHITECTURE.md](architecture/ARCHITECTURE.md#type-system-organization) for
|
|
|
118
118
|
|
|
119
119
|
### Session Management
|
|
120
120
|
|
|
121
|
-
`
|
|
121
|
+
Only the `LOCK` and the `UNLOCK` request are stateful — `lock` and `unlock` each switch for their own request and back; everything between them goes stateless. The handle is what `lock` answers, and the sequence between them is yours.
|
|
122
122
|
|
|
123
123
|
See [STATEFUL_SESSION_GUIDE.md](usage/STATEFUL_SESSION_GUIDE.md) for implementation details.
|
|
124
124
|
|
|
@@ -95,24 +95,26 @@ other request:
|
|
|
95
95
|
const cls = client.getClass();
|
|
96
96
|
const config = { className: 'ZCL_TEST' };
|
|
97
97
|
|
|
98
|
-
const locked = await cls.lock(config); //
|
|
98
|
+
const locked = await cls.lock(config); // the LOCK goes stateful
|
|
99
99
|
if (!locked.ok) throw new Error(locked.getError().message);
|
|
100
100
|
const lockHandle = locked.getResult().value;
|
|
101
101
|
|
|
102
102
|
try {
|
|
103
103
|
await cls.update(config, { source, lockHandle });
|
|
104
104
|
} finally {
|
|
105
|
-
await cls.unlock(config, lockHandle); //
|
|
105
|
+
await cls.unlock(config, lockHandle); // so does the UNLOCK
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
await cls.activate(config); // when you want it active
|
|
109
109
|
```
|
|
110
110
|
|
|
111
|
-
`lock` and `unlock` are the only members that change the session type
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
111
|
+
`lock` and `unlock` are the only members that change the session type, and
|
|
112
|
+
each only for its own request: the `LOCK` and the `UNLOCK` go out stateful,
|
|
113
|
+
everything between them — the write included — stateless. The `UNLOCK` has to
|
|
114
|
+
reach the ABAP context that holds the lock, which is what the stateful request
|
|
115
|
+
carries it to; a stateless one answers `200` and releases nothing (see
|
|
116
|
+
[STATEFUL_SESSION_GUIDE.md](STATEFUL_SESSION_GUIDE.md)). The `finally` above is
|
|
117
|
+
the shape to copy, because a handle left held refuses the next write.
|
|
116
118
|
|
|
117
119
|
**`lock` answers the handle SAP sent; `unlock` answers SAP's reply.** The handle
|
|
118
120
|
is read from the `sap-adt-lm-handle` header or from `LOCK_HANDLE` in the body.
|
|
@@ -9,10 +9,18 @@ This guide explains how `@mcp-abap-adt/adt-clients` manages ADT sessions for CRU
|
|
|
9
9
|
- `lock` returns the `lockHandle`; `update` and `delete` carry it in
|
|
10
10
|
`options.lockHandle`, and `unlock` gives it back.
|
|
11
11
|
- **Only `lock` and `unlock` change the session type**, and each covers its own
|
|
12
|
-
request and nothing more: `lock`
|
|
13
|
-
|
|
14
|
-
`
|
|
15
|
-
the handle in `options.lockHandle`.
|
|
12
|
+
request and nothing more: `lock` sends its `LOCK` stateful and puts the
|
|
13
|
+
session back to stateless before returning; `unlock` does the same for its
|
|
14
|
+
`UNLOCK`. The window between them is *not* stateful — the write inside it
|
|
15
|
+
goes out stateless, carrying the handle in `options.lockHandle`.
|
|
16
|
+
- **The `UNLOCK` must be stateful.** From `@mcp-abap-adt/connection` 9.3.1 the
|
|
17
|
+
connector sends the context cookie `sap-contextid` with stateful requests
|
|
18
|
+
only. A stateless `UNLOCK` then runs in a fresh ABAP context, answers `200`
|
|
19
|
+
and releases nothing; the next activation or delete is refused with `403`
|
|
20
|
+
EU/510 "currently editing". Every `unlock` in this library sends it stateful
|
|
21
|
+
since 23.0.2 — before that, `AdtInclude`, `AdtService` and `AdtMessageClass`
|
|
22
|
+
did not. A caller with its own `IAbapConnection` needs the same: the cookie
|
|
23
|
+
on the `LOCK` and the `UNLOCK`.
|
|
16
24
|
- This is Eclipse's model, measured at two scales. A full run against the cloud
|
|
17
25
|
trial: 803 requests, of which exactly 100 carry `x-sap-adt-sessiontype:
|
|
18
26
|
stateful` — the 50 `LOCK`s and the 50 `UNLOCK`s, and nothing else. A probe
|
|
@@ -45,14 +53,14 @@ const config = { className: 'ZCL_TEST' };
|
|
|
45
53
|
// The POST that makes the class shell. Nothing else.
|
|
46
54
|
await cls.create({ ...config, packageName: 'ZPKG', description: 'Test' });
|
|
47
55
|
|
|
48
|
-
const locked = await cls.lock(config); //
|
|
56
|
+
const locked = await cls.lock(config); // the LOCK goes stateful
|
|
49
57
|
if (!locked.ok) throw new Error(locked.getError().message);
|
|
50
58
|
const lockHandle = locked.getResult().value;
|
|
51
59
|
|
|
52
60
|
try {
|
|
53
61
|
await cls.update(config, { source: updatedCode, lockHandle });
|
|
54
62
|
} finally {
|
|
55
|
-
await cls.unlock(config, lockHandle); //
|
|
63
|
+
await cls.unlock(config, lockHandle); // so does the UNLOCK
|
|
56
64
|
}
|
|
57
65
|
|
|
58
66
|
await cls.activate(config);
|
|
@@ -110,6 +110,20 @@ per ABAP session**.
|
|
|
110
110
|
second update in the same stateful session is refused, and so is a delete
|
|
111
111
|
from a session that updated the package.
|
|
112
112
|
|
|
113
|
+
**Handled by the connector.** `@mcp-abap-adt/connection` keeps a request that
|
|
114
|
+
is not stateful out of the stateful context: over HTTP from 9.3.1 (only the
|
|
115
|
+
`LOCK` and `UNLOCK` carry the context cookie `sap-contextid`; a `PUT` that
|
|
116
|
+
carried it ran in the lock's context and met the buffer), over RFC from 9.3.2
|
|
117
|
+
(such a request runs on a conversation of its own; from 9.3.4, with
|
|
118
|
+
`@mcp-abap-adt/sap-rfc-lite` 0.2.0 — required from 9.4.0 — on a reused one
|
|
119
|
+
whose server context is reset after each call). With it, create, two lock → update → unlock rounds and
|
|
120
|
+
a delete pass on one connection, over both transports — the connector's own
|
|
121
|
+
measurement on an on-premise system. On another BASIS release the same leak
|
|
122
|
+
showed as `423` "Resource … is not locked (invalid lock handle)" on every
|
|
123
|
+
`PUT`, and the same fix removed it. The rule above is still SAP's; the
|
|
124
|
+
workaround below is for a caller that holds sessions another way — its own
|
|
125
|
+
`IAbapConnection`, or a connector older than those releases.
|
|
126
|
+
|
|
113
127
|
**Workaround.** Run every stage that saves a package in an ABAP session no
|
|
114
128
|
earlier stage has saved it in:
|
|
115
129
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-abap-adt/adt-clients",
|
|
3
|
-
"version": "23.0.
|
|
3
|
+
"version": "23.0.2",
|
|
4
4
|
"description": "ADT clients for SAP ABAP systems - AdtClient and AdtRuntimeClient",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
},
|
|
131
131
|
"devDependencies": {
|
|
132
132
|
"@biomejs/biome": "^2.4.4",
|
|
133
|
-
"@mcp-abap-adt/connection": "^9.
|
|
133
|
+
"@mcp-abap-adt/connection": "^9.4.0",
|
|
134
134
|
"@mcp-abap-adt/interfaces-auth": "^2.0.1",
|
|
135
135
|
"@mcp-abap-adt/interfaces-auth-sap": "^1.0.1",
|
|
136
136
|
"@types/jest": "^30.0.0",
|