@babamba2/mcp-abap-connection 1.5.3

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 (46) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +522 -0
  3. package/bin/sap-abap-auth.js +665 -0
  4. package/dist/config/sapConfig.d.ts +5 -0
  5. package/dist/config/sapConfig.d.ts.map +1 -0
  6. package/dist/config/sapConfig.js +26 -0
  7. package/dist/connection/AbapConnection.d.ts +4 -0
  8. package/dist/connection/AbapConnection.d.ts.map +1 -0
  9. package/dist/connection/AbapConnection.js +2 -0
  10. package/dist/connection/AbstractAbapConnection.d.ts +89 -0
  11. package/dist/connection/AbstractAbapConnection.d.ts.map +1 -0
  12. package/dist/connection/AbstractAbapConnection.js +612 -0
  13. package/dist/connection/BaseAbapConnection.d.ts +19 -0
  14. package/dist/connection/BaseAbapConnection.d.ts.map +1 -0
  15. package/dist/connection/BaseAbapConnection.js +65 -0
  16. package/dist/connection/GenericWebSocketTransport.d.ts +46 -0
  17. package/dist/connection/GenericWebSocketTransport.d.ts.map +1 -0
  18. package/dist/connection/GenericWebSocketTransport.js +135 -0
  19. package/dist/connection/JwtAbapConnection.d.ts +37 -0
  20. package/dist/connection/JwtAbapConnection.d.ts.map +1 -0
  21. package/dist/connection/JwtAbapConnection.js +181 -0
  22. package/dist/connection/RfcAbapConnection.d.ts +49 -0
  23. package/dist/connection/RfcAbapConnection.d.ts.map +1 -0
  24. package/dist/connection/RfcAbapConnection.js +322 -0
  25. package/dist/connection/SamlAbapConnection.d.ts +21 -0
  26. package/dist/connection/SamlAbapConnection.d.ts.map +1 -0
  27. package/dist/connection/SamlAbapConnection.js +65 -0
  28. package/dist/connection/connectionFactory.d.ts +8 -0
  29. package/dist/connection/connectionFactory.d.ts.map +1 -0
  30. package/dist/connection/connectionFactory.js +23 -0
  31. package/dist/connection/csrfConfig.d.ts +46 -0
  32. package/dist/connection/csrfConfig.d.ts.map +1 -0
  33. package/dist/connection/csrfConfig.js +48 -0
  34. package/dist/index.d.ts +14 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +32 -0
  37. package/dist/logger.d.ts +3 -0
  38. package/dist/logger.d.ts.map +1 -0
  39. package/dist/logger.js +2 -0
  40. package/dist/utils/timeouts.d.ts +5 -0
  41. package/dist/utils/timeouts.d.ts.map +1 -0
  42. package/dist/utils/timeouts.js +21 -0
  43. package/dist/utils/tokenRefresh.d.ts +15 -0
  44. package/dist/utils/tokenRefresh.d.ts.map +1 -0
  45. package/dist/utils/tokenRefresh.js +55 -0
  46. package/package.json +70 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbapConnection.d.ts","sourceRoot":"","sources":["../../src/connection/AbapConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACpB,MAAM,mCAAmC,CAAC;AAG3C,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AACrD,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,89 @@
1
+ import { type IAdtResponse } from '@babamba2/mcp-abap-adt-interfaces';
2
+ import type { SapConfig } from '../config/sapConfig.js';
3
+ import type { ILogger } from '../logger.js';
4
+ import type { AbapConnection, AbapRequestOptions } from './AbapConnection.js';
5
+ declare abstract class AbstractAbapConnection implements AbapConnection {
6
+ private readonly config;
7
+ protected readonly logger: ILogger | null;
8
+ private axiosInstance;
9
+ private csrfToken;
10
+ private cookies;
11
+ private cookieStore;
12
+ private baseUrl;
13
+ private sessionId;
14
+ private sessionMode;
15
+ private skipSessionType;
16
+ protected constructor(config: SapConfig, logger: ILogger | null, sessionId?: string, options?: {
17
+ skipSessionType?: boolean;
18
+ });
19
+ /**
20
+ * Set session type (stateful or stateless)
21
+ * Controls whether x-sap-adt-sessiontype: stateful header is added to requests
22
+ * - stateful: SAP maintains session state between requests (locks, transactions)
23
+ * - stateless: Each request is independent
24
+ *
25
+ * When skipSessionType is enabled (via constructor options), this is a no-op:
26
+ * the x-sap-adt-sessiontype header will never be sent. This is needed for
27
+ * older BASIS versions (e.g. 7.40) where the stateful header causes locks
28
+ * to be stored in ABAP session memory instead of the global enqueue table,
29
+ * resulting in HTTP 423 on subsequent PUT requests.
30
+ */
31
+ setSessionType(type: 'stateful' | 'stateless'): void;
32
+ /**
33
+ * Get current session mode
34
+ */
35
+ getSessionMode(): 'stateless' | 'stateful';
36
+ /**
37
+ * Set session ID
38
+ * @deprecated Session ID is auto-generated, use setSessionType() to control session mode
39
+ */
40
+ setSessionId(sessionId: string): void;
41
+ /**
42
+ * Get current session ID
43
+ */
44
+ getSessionId(): string | null;
45
+ getConfig(): SapConfig;
46
+ reset(): void;
47
+ getBaseUrl(): Promise<string>;
48
+ getAuthHeaders(): Promise<Record<string, string>>;
49
+ /**
50
+ * Connect to SAP system and initialize session (get CSRF token and cookies)
51
+ * This should be called explicitly before making the first request to ensure
52
+ * proper authentication and session initialization.
53
+ *
54
+ * Concrete implementations must provide auth-specific connection logic:
55
+ * - BaseAbapConnection: Basic auth with CSRF token fetch
56
+ * - JwtAbapConnection: JWT auth with token refresh on 401/403
57
+ */
58
+ abstract connect(): Promise<void>;
59
+ makeAdtRequest<T = any, D = any>(options: AbapRequestOptions): Promise<IAdtResponse<T, D>>;
60
+ protected abstract buildAuthorizationHeader(): string;
61
+ /**
62
+ * Fetch CSRF token from SAP system
63
+ * Protected method for use by concrete implementations in their connect() method
64
+ */
65
+ protected fetchCsrfToken(url: string, retryCount?: number, retryDelay?: number): Promise<string>;
66
+ /**
67
+ * Fetch CSRF token from a specific endpoint with retries
68
+ */
69
+ private fetchCsrfTokenFromEndpoint;
70
+ /**
71
+ * Get CSRF token (protected for use by subclasses)
72
+ */
73
+ protected getCsrfToken(): string | null;
74
+ /**
75
+ * Set CSRF token (protected for use by subclasses)
76
+ */
77
+ protected setCsrfToken(token: string | null): void;
78
+ /**
79
+ * Get cookies (protected for use by subclasses)
80
+ */
81
+ protected getCookies(): string | null;
82
+ protected setInitialCookies(cookies: string): void;
83
+ private updateCookiesFromResponse;
84
+ private getAxiosInstance;
85
+ private ensureFreshCsrfToken;
86
+ private shouldRetryCsrf;
87
+ }
88
+ export { AbstractAbapConnection };
89
+ //# sourceMappingURL=AbstractAbapConnection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractAbapConnection.d.ts","sourceRoot":"","sources":["../../src/connection/AbstractAbapConnection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,mCAAmC,CAAC;AAMtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,uBAAe,sBAAuB,YAAW,cAAc;IAW3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAX3C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,eAAe,CAAU;IAEjC,SAAS,aACU,MAAM,EAAE,SAAS,EACf,MAAM,EAAE,OAAO,GAAG,IAAI,EACzC,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE;IAqBzC;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI;IAUpD;;OAEG;IACH,cAAc,IAAI,WAAW,GAAG,UAAU;IAI1C;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKrC;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,SAAS,IAAI,SAAS;IAItB,KAAK,IAAI,IAAI;IAYP,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,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,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EACnC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA4P9B,SAAS,CAAC,QAAQ,CAAC,wBAAwB,IAAI,MAAM;IAErD;;;OAGG;cACa,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,UAAU,GAAE,MAAgC,EAC5C,UAAU,GAAE,MAAgC,GAC3C,OAAO,CAAC,MAAM,CAAC;IA2ClB;;OAEG;YACW,0BAA0B;IAsKxC;;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,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlD,OAAO,CAAC,yBAAyB;IAkEjC,OAAO,CAAC,gBAAgB;YAqBV,oBAAoB;IAiClC,OAAO,CAAC,eAAe;CA+BxB;AAGD,OAAO,EAAE,sBAAsB,EAAE,CAAC"}