@mcp-abap-adt/connection 0.1.5 → 0.1.6

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.
@@ -15,11 +15,11 @@ declare abstract class AbstractAbapConnection implements AbapConnection {
15
15
  private sessionMode;
16
16
  protected constructor(config: SapConfig, logger: ILogger, sessionStorage?: ISessionStorage, sessionId?: string);
17
17
  /**
18
- * Enable stateful session mode with storage
19
- * @param sessionId - Unique session identifier
20
- * @param storage - Storage implementation for persisting session state
18
+ * Enable stateful session mode (tells SAP to maintain stateful session)
19
+ * This controls whether x-sap-adt-sessiontype: stateful header is used
20
+ * Storage is controlled separately via setSessionStorage()
21
21
  */
22
- enableStatefulSession(sessionId: string, storage: ISessionStorage): Promise<void>;
22
+ enableStatefulSession(): void;
23
23
  /**
24
24
  * Disable stateful session mode (switch to stateless)
25
25
  * Optionally saves current state before switching
@@ -41,8 +41,9 @@ declare abstract class AbstractAbapConnection implements AbapConnection {
41
41
  getSessionId(): string | null;
42
42
  /**
43
43
  * Set session storage (can be changed at runtime)
44
+ * This controls whether session state (cookies, CSRF token) is persisted to disk/storage
44
45
  */
45
- setSessionStorage(storage: ISessionStorage | null): void;
46
+ setSessionStorage(storage: ISessionStorage | null): Promise<void>;
46
47
  /**
47
48
  * Get current session storage
48
49
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractAbapConnection.d.ts","sourceRoot":"","sources":["../../src/connection/AbstractAbapConnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractAbapConnection.d.ts","sourceRoot":"","sources":["../../src/connection/AbstractAbapConnection.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiD,aAAa,EAAE,MAAM,OAAO,CAAC;AAG5F,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,uBAAe,sBAAuB,YAAW,cAAc;IAW3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO;IAXpC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,WAAW,CAAyC;IAE5D,SAAS,aACU,MAAM,EAAE,SAAS,EACf,MAAM,EAAE,OAAO,EAClC,cAAc,CAAC,EAAE,eAAe,EAChC,SAAS,CAAC,EAAE,MAAM;IAWpB;;;;OAIG;IACH,qBAAqB,IAAI,IAAI;IAQ7B;;;OAGG;IACG,sBAAsB,CAAC,iBAAiB,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/E;;OAEG;IACH,cAAc,IAAI,WAAW,GAAG,UAAU;IAI1C;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IASrC;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B;;;OAGG;IACG,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvE;;OAEG;IACH,iBAAiB,IAAI,eAAe,GAAG,IAAI;IAI3C;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBvC;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBvC;;;;OAIG;IACH,eAAe,IAAI,YAAY,GAAG,IAAI;IAYtC;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAY1C;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBxC,SAAS,IAAI,SAAS;IAItB,KAAK,IAAI,IAAI;IAYP,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAkB7B,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAevD;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE3B,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IAwMzE,SAAS,CAAC,QAAQ,CAAC,wBAAwB,IAAI,MAAM;IAErD;;;OAGG;cACa,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,SAAI,EAAE,UAAU,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAgL/F;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,MAAM,GAAG,IAAI;IAIvC;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIlD;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM,GAAG,IAAI;IAIrC,OAAO,CAAC,yBAAyB;IAuDjC,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,mBAAmB;YAOb,oBAAoB;IAwBlC,OAAO,CAAC,eAAe;CAyBxB;AAGD,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -53,25 +53,22 @@ class AbstractAbapConnection {
53
53
  this.config = config;
54
54
  this.logger = logger;
55
55
  this.sessionStorage = sessionStorage || null;
56
- // Generate sessionId if not provided (like Eclipse ADT does on connect)
56
+ // Always generate sessionId (used for sap-adt-connection-id header in all session types)
57
57
  this.sessionId = sessionId || (0, crypto_1.randomUUID)();
58
- this.sessionMode = this.sessionId && sessionStorage ? "stateful" : "stateless";
59
- this.logger.debug(`AbstractAbapConnection - Session ID: ${this.sessionId.substring(0, 8)}...`);
58
+ // Session mode depends only on storage availability (sessionId exists for both modes)
59
+ this.sessionMode = sessionStorage ? "stateful" : "stateless";
60
+ this.logger.debug(`AbstractAbapConnection - Session ID: ${this.sessionId.substring(0, 8)}..., mode: ${this.sessionMode}`);
60
61
  }
61
62
  /**
62
- * Enable stateful session mode with storage
63
- * @param sessionId - Unique session identifier
64
- * @param storage - Storage implementation for persisting session state
63
+ * Enable stateful session mode (tells SAP to maintain stateful session)
64
+ * This controls whether x-sap-adt-sessiontype: stateful header is used
65
+ * Storage is controlled separately via setSessionStorage()
65
66
  */
66
- async enableStatefulSession(sessionId, storage) {
67
- this.sessionId = sessionId;
68
- this.sessionStorage = storage;
67
+ enableStatefulSession() {
69
68
  this.sessionMode = "stateful";
70
- // Try to load existing session state
71
- await this.loadSessionState();
72
- this.logger.debug("Stateful session enabled", {
73
- sessionId,
74
- hasExistingState: !!this.csrfToken || !!this.cookies
69
+ this.logger.debug("Stateful session mode enabled", {
70
+ sessionId: this.sessionId?.substring(0, 8),
71
+ hasStorage: !!this.sessionStorage
75
72
  });
76
73
  }
77
74
  /**
@@ -86,9 +83,7 @@ class AbstractAbapConnection {
86
83
  await this.saveSessionState();
87
84
  }
88
85
  this.sessionMode = "stateless";
89
- this.sessionId = null;
90
- this.sessionStorage = null;
91
- this.logger.debug("Stateful session disabled", {
86
+ this.logger.debug("Stateful session mode disabled", {
92
87
  savedBeforeDisable: saveBeforeDisable
93
88
  });
94
89
  }
@@ -120,15 +115,18 @@ class AbstractAbapConnection {
120
115
  }
121
116
  /**
122
117
  * Set session storage (can be changed at runtime)
118
+ * This controls whether session state (cookies, CSRF token) is persisted to disk/storage
123
119
  */
124
- setSessionStorage(storage) {
120
+ async setSessionStorage(storage) {
125
121
  this.sessionStorage = storage;
122
+ // Load existing session state if storage is provided
126
123
  if (storage && this.sessionId) {
127
- this.sessionMode = "stateful";
128
- }
129
- else if (!storage) {
130
- this.sessionMode = "stateless";
124
+ await this.loadSessionState();
131
125
  }
126
+ this.logger.debug("Session storage configured", {
127
+ hasStorage: !!storage,
128
+ sessionMode: this.sessionMode
129
+ });
132
130
  }
133
131
  /**
134
132
  * Get current session storage
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/connection",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "ABAP connection layer for MCP ABAP ADT server",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",