@mcp-abap-adt/interfaces 0.2.7 → 0.2.8

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/CHANGELOG.md CHANGED
@@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.8] - 2025-12-23
11
+
12
+ ### Added
13
+ - **New Token Provider Interface**: Added `getTokens()` method to `ITokenProvider` for stateful token management
14
+ - New `ITokenResult` interface with `authorizationToken`, `refreshToken`, `authType`, and `expiresIn` fields
15
+ - New `OAuth2GrantType` type and constants for OAuth2 grant types:
16
+ - `AUTH_TYPE_AUTHORIZATION_CODE` - Standard authorization code flow
17
+ - `AUTH_TYPE_AUTHORIZATION_CODE_PKCE` - Authorization code with PKCE
18
+ - `AUTH_TYPE_IMPLICIT` - Implicit grant (legacy)
19
+ - `AUTH_TYPE_PASSWORD` - Password credentials grant
20
+ - `AUTH_TYPE_CLIENT_CREDENTIALS` - Client credentials grant
21
+ - All old methods (`getConnectionConfig`, `refreshTokenFromSession`, `refreshTokenFromServiceKey`) remain optional for backward compatibility
22
+
23
+ ### Changed
24
+ - **ITokenProvider Interface**: Extended with optional `getTokens()` method
25
+ - Old stateless methods are now optional (marked with `?`)
26
+ - New stateful `getTokens()` method is optional (marked with `?`)
27
+ - Allows gradual migration from old to new API
28
+
10
29
  ## [0.2.7] - 2025-12-22
11
30
 
12
31
  ### Changed
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  export type { IAdtObject, IAdtOperationOptions } from './adt/IAdtObject';
8
8
  export { AdtObjectErrorCodes } from './adt/IAdtObject';
9
9
  export type { IAdtObjectConfig, IAdtObjectState } from './adt/IAdtObjectState';
10
- export type { AuthType } from './auth/AuthType';
10
+ export type { AuthType as AuthTypeEnum } from './auth/AuthType';
11
11
  export type { IAuthorizationConfig } from './auth/IAuthorizationConfig';
12
12
  export type { IConfig } from './auth/IConfig';
13
13
  export type { IConnectionConfig } from './auth/IConnectionConfig';
@@ -26,10 +26,13 @@ export type { ISessionState } from './storage/ISessionState';
26
26
  export type { ISessionStorage } from './storage/ISessionStorage';
27
27
  export type { StoreErrorCode } from './store/StoreErrorCodes';
28
28
  export { STORE_ERROR_CODES } from './store/StoreErrorCodes';
29
+ export type { OAuth2GrantType } from './token/AuthType';
30
+ export { AUTH_TYPE_AUTHORIZATION_CODE, AUTH_TYPE_AUTHORIZATION_CODE_PKCE, AUTH_TYPE_CLIENT_CREDENTIALS, AUTH_TYPE_IMPLICIT, AUTH_TYPE_PASSWORD, } from './token/AuthType';
29
31
  export type { ITokenProvider } from './token/ITokenProvider';
30
32
  export type { ITokenProviderOptions } from './token/ITokenProviderOptions';
31
33
  export type { ITokenProviderResult } from './token/ITokenProviderResult';
32
34
  export type { ITokenRefresher } from './token/ITokenRefresher';
35
+ export type { ITokenResult } from './token/ITokenResult';
33
36
  export type { TokenProviderErrorCode } from './token/TokenProviderErrorCodes';
34
37
  export { TOKEN_PROVIDER_ERROR_CODES } from './token/TokenProviderErrorCodes';
35
38
  export type { ITimeoutConfig } from './utils/ITimeoutConfig';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,YAAY,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EACL,cAAc,EACd,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAEpC,cAAc,WAAW,CAAC;AAE1B,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAEpF,YAAY,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEhE,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,YAAY,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EACL,cAAc,EACd,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAEpC,cAAc,WAAW,CAAC;AAE1B,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,4BAA4B,EAC5B,iCAAiC,EACjC,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAEpF,YAAY,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC"}
package/dist/index.js CHANGED
@@ -20,7 +20,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
20
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.AuthMethodPriority = exports.TOKEN_PROVIDER_ERROR_CODES = exports.STORE_ERROR_CODES = exports.LogLevel = exports.NETWORK_ERROR_CODES = exports.isNetworkError = exports.AdtObjectErrorCodes = void 0;
23
+ exports.AuthMethodPriority = exports.TOKEN_PROVIDER_ERROR_CODES = exports.AUTH_TYPE_PASSWORD = exports.AUTH_TYPE_IMPLICIT = exports.AUTH_TYPE_CLIENT_CREDENTIALS = exports.AUTH_TYPE_AUTHORIZATION_CODE_PKCE = exports.AUTH_TYPE_AUTHORIZATION_CODE = exports.STORE_ERROR_CODES = exports.LogLevel = exports.NETWORK_ERROR_CODES = exports.isNetworkError = exports.AdtObjectErrorCodes = void 0;
24
24
  var IAdtObject_1 = require("./adt/IAdtObject");
25
25
  Object.defineProperty(exports, "AdtObjectErrorCodes", { enumerable: true, get: function () { return IAdtObject_1.AdtObjectErrorCodes; } });
26
26
  var NetworkErrors_1 = require("./connection/NetworkErrors");
@@ -33,6 +33,12 @@ Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function ()
33
33
  // Store domain
34
34
  var StoreErrorCodes_1 = require("./store/StoreErrorCodes");
35
35
  Object.defineProperty(exports, "STORE_ERROR_CODES", { enumerable: true, get: function () { return StoreErrorCodes_1.STORE_ERROR_CODES; } });
36
+ var AuthType_1 = require("./token/AuthType");
37
+ Object.defineProperty(exports, "AUTH_TYPE_AUTHORIZATION_CODE", { enumerable: true, get: function () { return AuthType_1.AUTH_TYPE_AUTHORIZATION_CODE; } });
38
+ Object.defineProperty(exports, "AUTH_TYPE_AUTHORIZATION_CODE_PKCE", { enumerable: true, get: function () { return AuthType_1.AUTH_TYPE_AUTHORIZATION_CODE_PKCE; } });
39
+ Object.defineProperty(exports, "AUTH_TYPE_CLIENT_CREDENTIALS", { enumerable: true, get: function () { return AuthType_1.AUTH_TYPE_CLIENT_CREDENTIALS; } });
40
+ Object.defineProperty(exports, "AUTH_TYPE_IMPLICIT", { enumerable: true, get: function () { return AuthType_1.AUTH_TYPE_IMPLICIT; } });
41
+ Object.defineProperty(exports, "AUTH_TYPE_PASSWORD", { enumerable: true, get: function () { return AuthType_1.AUTH_TYPE_PASSWORD; } });
36
42
  var TokenProviderErrorCodes_1 = require("./token/TokenProviderErrorCodes");
37
43
  Object.defineProperty(exports, "TOKEN_PROVIDER_ERROR_CODES", { enumerable: true, get: function () { return TokenProviderErrorCodes_1.TOKEN_PROVIDER_ERROR_CODES; } });
38
44
  var IValidatedAuthConfig_1 = require("./validation/IValidatedAuthConfig");
@@ -0,0 +1,35 @@
1
+ /**
2
+ * OAuth2 Grant Types
3
+ *
4
+ * Constants for different OAuth2 authentication flows (grant types)
5
+ */
6
+ /**
7
+ * Authorization Code grant type
8
+ * Standard OAuth2 flow with browser-based authorization
9
+ */
10
+ export declare const AUTH_TYPE_AUTHORIZATION_CODE: "authorization_code";
11
+ /**
12
+ * Authorization Code with PKCE grant type
13
+ * More secure variant for public clients
14
+ */
15
+ export declare const AUTH_TYPE_AUTHORIZATION_CODE_PKCE: "authorization_code_pkce";
16
+ /**
17
+ * Implicit grant type
18
+ * Legacy OAuth2 flow (deprecated, not recommended)
19
+ */
20
+ export declare const AUTH_TYPE_IMPLICIT: "implicit";
21
+ /**
22
+ * Password Credentials grant type
23
+ * Direct username/password authentication
24
+ */
25
+ export declare const AUTH_TYPE_PASSWORD: "password";
26
+ /**
27
+ * Client Credentials grant type
28
+ * Service-to-service authentication
29
+ */
30
+ export declare const AUTH_TYPE_CLIENT_CREDENTIALS: "client_credentials";
31
+ /**
32
+ * Union type for all OAuth2 grant types
33
+ */
34
+ export type OAuth2GrantType = typeof AUTH_TYPE_AUTHORIZATION_CODE | typeof AUTH_TYPE_AUTHORIZATION_CODE_PKCE | typeof AUTH_TYPE_IMPLICIT | typeof AUTH_TYPE_PASSWORD | typeof AUTH_TYPE_CLIENT_CREDENTIALS;
35
+ //# sourceMappingURL=AuthType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthType.d.ts","sourceRoot":"","sources":["../../src/token/AuthType.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAG,oBAA6B,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,iCAAiC,EAC5C,yBAAkC,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAG,UAAmB,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAG,UAAmB,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAG,oBAA6B,CAAC;AAE1E;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,OAAO,4BAA4B,GACnC,OAAO,iCAAiC,GACxC,OAAO,kBAAkB,GACzB,OAAO,kBAAkB,GACzB,OAAO,4BAA4B,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ /**
3
+ * OAuth2 Grant Types
4
+ *
5
+ * Constants for different OAuth2 authentication flows (grant types)
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.AUTH_TYPE_CLIENT_CREDENTIALS = exports.AUTH_TYPE_PASSWORD = exports.AUTH_TYPE_IMPLICIT = exports.AUTH_TYPE_AUTHORIZATION_CODE_PKCE = exports.AUTH_TYPE_AUTHORIZATION_CODE = void 0;
9
+ /**
10
+ * Authorization Code grant type
11
+ * Standard OAuth2 flow with browser-based authorization
12
+ */
13
+ exports.AUTH_TYPE_AUTHORIZATION_CODE = 'authorization_code';
14
+ /**
15
+ * Authorization Code with PKCE grant type
16
+ * More secure variant for public clients
17
+ */
18
+ exports.AUTH_TYPE_AUTHORIZATION_CODE_PKCE = 'authorization_code_pkce';
19
+ /**
20
+ * Implicit grant type
21
+ * Legacy OAuth2 flow (deprecated, not recommended)
22
+ */
23
+ exports.AUTH_TYPE_IMPLICIT = 'implicit';
24
+ /**
25
+ * Password Credentials grant type
26
+ * Direct username/password authentication
27
+ */
28
+ exports.AUTH_TYPE_PASSWORD = 'password';
29
+ /**
30
+ * Client Credentials grant type
31
+ * Service-to-service authentication
32
+ */
33
+ exports.AUTH_TYPE_CLIENT_CREDENTIALS = 'client_credentials';
@@ -1,45 +1,55 @@
1
1
  /**
2
2
  * Token Provider interface
3
3
  *
4
- * Converts IAuthorizationConfig to IConnectionConfig by obtaining tokens.
5
- * Different implementations handle different authentication flows:
6
- * - XSUAA: client_credentials grant type (no browser)
7
- * - BTP/ABAP: browser-based OAuth2 or refresh token
4
+ * Stateful providers that manage token lifecycle internally.
5
+ * Supports both old stateless methods (for backward compatibility) and new stateful getTokens() method.
8
6
  */
9
7
  import type { IAuthorizationConfig } from '../auth/IAuthorizationConfig';
10
8
  import type { ITokenProviderOptions } from './ITokenProviderOptions';
11
9
  import type { ITokenProviderResult } from './ITokenProviderResult';
10
+ import type { ITokenResult } from './ITokenResult';
12
11
  /**
13
12
  * Interface for token providers
14
13
  *
15
- * Takes authorization configuration and returns connection configuration with token.
14
+ * Supports both:
15
+ * - Old stateless methods (for backward compatibility with existing code)
16
+ * - New stateful getTokens() method (for new implementations)
16
17
  */
17
18
  export interface ITokenProvider {
18
19
  /**
19
- * Get connection configuration with token from authorization configuration
20
+ * Get tokens with automatic refresh/relogin logic (NEW - stateful method)
21
+ *
22
+ * Stateful providers cache tokens internally and handle refresh automatically.
23
+ * Checks token expiration, refreshes if needed, or triggers login.
24
+ *
25
+ * @returns Promise that resolves to token result with authorization token, optional refresh token, auth type, and expiration
26
+ */
27
+ getTokens?(): Promise<ITokenResult>;
28
+ /**
29
+ * Get connection configuration with token from authorization configuration (OLD - stateless method)
20
30
  * @param authConfig Authorization configuration (UAA credentials, optional refresh token)
21
31
  * @param options Optional provider-specific options (e.g., browser type for BTP)
22
32
  * @returns Promise that resolves to connection configuration with authorization token and optional refresh token
23
33
  */
24
- getConnectionConfig(authConfig: IAuthorizationConfig, options?: ITokenProviderOptions): Promise<ITokenProviderResult>;
34
+ getConnectionConfig?(authConfig: IAuthorizationConfig, options?: ITokenProviderOptions): Promise<ITokenProviderResult>;
25
35
  /**
26
- * Refresh token using refresh token from session (authorization config with refreshToken)
36
+ * Refresh token using refresh token from session (OLD - stateless method)
27
37
  * This method uses the refresh token from the session to get a new access token.
28
38
  * Typically uses refresh_token grant type or browser-based re-authentication.
29
39
  * @param authConfig Authorization configuration including refreshToken from session
30
40
  * @param options Optional provider-specific options (e.g., browser type for BTP)
31
41
  * @returns Promise that resolves to connection configuration with new authorization token and optional new refresh token
32
42
  */
33
- refreshTokenFromSession(authConfig: IAuthorizationConfig, options?: ITokenProviderOptions): Promise<ITokenProviderResult>;
43
+ refreshTokenFromSession?(authConfig: IAuthorizationConfig, options?: ITokenProviderOptions): Promise<ITokenProviderResult>;
34
44
  /**
35
- * Refresh token using UAA credentials from service key (authorization config without refreshToken)
45
+ * Refresh token using UAA credentials from service key (OLD - stateless method)
36
46
  * This method uses UAA credentials (uaaUrl, uaaClientId, uaaClientSecret) to get a new token.
37
47
  * Typically uses browser-based authorization flow to ensure proper role assignment.
38
48
  * @param authConfig Authorization configuration with UAA credentials from service key (no refreshToken)
39
49
  * @param options Optional provider-specific options (e.g., browser type for BTP)
40
50
  * @returns Promise that resolves to connection configuration with new authorization token and optional refresh token
41
51
  */
42
- refreshTokenFromServiceKey(authConfig: IAuthorizationConfig, options?: ITokenProviderOptions): Promise<ITokenProviderResult>;
52
+ refreshTokenFromServiceKey?(authConfig: IAuthorizationConfig, options?: ITokenProviderOptions): Promise<ITokenProviderResult>;
43
53
  /**
44
54
  * Validate JWT token by testing connection to service
45
55
  * @param token JWT token to validate
@@ -1 +1 @@
1
- {"version":3,"file":"ITokenProvider.d.ts","sourceRoot":"","sources":["../../src/token/ITokenProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,mBAAmB,CACjB,UAAU,EAAE,oBAAoB,EAChC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC;;;;;;;OAOG;IACH,uBAAuB,CACrB,UAAU,EAAE,oBAAoB,EAChC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC;;;;;;;OAOG;IACH,0BAA0B,CACxB,UAAU,EAAE,oBAAoB,EAChC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC;;;;;OAKG;IACH,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE"}
1
+ {"version":3,"file":"ITokenProvider.d.ts","sourceRoot":"","sources":["../../src/token/ITokenProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,SAAS,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAEpC;;;;;OAKG;IACH,mBAAmB,CAAC,CAClB,UAAU,EAAE,oBAAoB,EAChC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC;;;;;;;OAOG;IACH,uBAAuB,CAAC,CACtB,UAAU,EAAE,oBAAoB,EAChC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC;;;;;;;OAOG;IACH,0BAA0B,CAAC,CACzB,UAAU,EAAE,oBAAoB,EAChC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC;;;;;OAKG;IACH,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE"}
@@ -2,9 +2,7 @@
2
2
  /**
3
3
  * Token Provider interface
4
4
  *
5
- * Converts IAuthorizationConfig to IConnectionConfig by obtaining tokens.
6
- * Different implementations handle different authentication flows:
7
- * - XSUAA: client_credentials grant type (no browser)
8
- * - BTP/ABAP: browser-based OAuth2 or refresh token
5
+ * Stateful providers that manage token lifecycle internally.
6
+ * Supports both old stateless methods (for backward compatibility) and new stateful getTokens() method.
9
7
  */
10
8
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Token result interface
3
+ *
4
+ * Result returned by ITokenProvider.getTokens() method
5
+ */
6
+ import type { OAuth2GrantType } from './AuthType';
7
+ export interface ITokenResult {
8
+ /**
9
+ * Authorization token (access token)
10
+ */
11
+ authorizationToken: string;
12
+ /**
13
+ * Refresh token (optional, not all grant types provide it)
14
+ */
15
+ refreshToken?: string;
16
+ /**
17
+ * Authentication type (OAuth2 grant type used)
18
+ */
19
+ authType: OAuth2GrantType;
20
+ /**
21
+ * Token expiration time in seconds
22
+ * If not provided, token expiration is determined from JWT exp claim
23
+ */
24
+ expiresIn?: number;
25
+ }
26
+ //# sourceMappingURL=ITokenResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITokenResult.d.ts","sourceRoot":"","sources":["../../src/token/ITokenResult.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;IAE1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Token result interface
4
+ *
5
+ * Result returned by ITokenProvider.getTokens() method
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/interfaces",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "Shared interfaces for MCP ABAP ADT packages",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",