@walde.ai/walde-sdk 0.1.7 → 0.1.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/dist/sdk/dev/mock-credentials-provider.d.ts +7 -5
- package/dist/sdk/dev/mock-credentials-provider.d.ts.map +1 -1
- package/dist/sdk/dev/mock-credentials-provider.js +31 -3
- package/dist/sdk/dev/mock-credentials-provider.js.map +1 -1
- package/dist/sdk/domain/entities/credentials.d.ts +5 -0
- package/dist/sdk/domain/entities/credentials.d.ts.map +1 -1
- package/dist/sdk/domain/entities/credentials.js +41 -0
- package/dist/sdk/domain/entities/credentials.js.map +1 -1
- package/dist/sdk/infra/adapters/default-token-provider.d.ts +8 -1
- package/dist/sdk/infra/adapters/default-token-provider.d.ts.map +1 -1
- package/dist/sdk/infra/adapters/default-token-provider.js +34 -1
- package/dist/sdk/infra/adapters/default-token-provider.js.map +1 -1
- package/dist/sdk/infra/factories/walde-admin-factory.d.ts.map +1 -1
- package/dist/sdk/infra/factories/walde-admin-factory.js +1 -1
- package/dist/sdk/infra/factories/walde-admin-factory.js.map +1 -1
- package/dist/sdk/infra/futures/credentials-future.d.ts.map +1 -1
- package/dist/sdk/infra/futures/credentials-future.js +38 -7
- package/dist/sdk/infra/futures/credentials-future.js.map +1 -1
- package/package.json +2 -2
|
@@ -2,14 +2,16 @@ import { CredentialsProvider } from '../../sdk/domain/ports/out/credentials-prov
|
|
|
2
2
|
import { Credentials } from '../../sdk/domain/entities/credentials';
|
|
3
3
|
/**
|
|
4
4
|
* Mock credentials provider for testing
|
|
5
|
+
* Generates valid JWT-formatted tokens with configurable expiry
|
|
5
6
|
*/
|
|
6
7
|
export declare class MockCredentialsProvider implements CredentialsProvider {
|
|
7
|
-
private readonly accessToken
|
|
8
|
-
private readonly refreshToken
|
|
9
|
-
private readonly idToken
|
|
10
|
-
|
|
8
|
+
private readonly accessToken?;
|
|
9
|
+
private readonly refreshToken?;
|
|
10
|
+
private readonly idToken?;
|
|
11
|
+
private readonly tokenExpirySeconds;
|
|
12
|
+
constructor(accessToken?: string | undefined, refreshToken?: string | undefined, idToken?: string | undefined, tokenExpirySeconds?: number);
|
|
11
13
|
/**
|
|
12
|
-
* Retrieve mock credentials
|
|
14
|
+
* Retrieve mock credentials with valid JWT tokens
|
|
13
15
|
*/
|
|
14
16
|
retrieve(): Promise<Credentials>;
|
|
15
17
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-credentials-provider.d.ts","sourceRoot":"","sources":["../../../src/sdk/dev/mock-credentials-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"mock-credentials-provider.d.ts","sourceRoot":"","sources":["../../../src/sdk/dev/mock-credentials-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AA+BhE;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB;IAE/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAHlB,WAAW,CAAC,EAAE,MAAM,YAAA,EACpB,YAAY,CAAC,EAAE,MAAM,YAAA,EACrB,OAAO,CAAC,EAAE,MAAM,YAAA,EAChB,kBAAkB,GAAE,MAAa;IAGpD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAQtC;;OAEG;IACG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAGpD"}
|
|
@@ -2,23 +2,51 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MockCredentialsProvider = void 0;
|
|
4
4
|
const credentials_1 = require("../../sdk/domain/entities/credentials");
|
|
5
|
+
/**
|
|
6
|
+
* Create a mock JWT token with specified expiry
|
|
7
|
+
* @param expirySeconds Seconds from now until token expires (default: 1 hour)
|
|
8
|
+
* @returns Valid JWT-formatted mock token
|
|
9
|
+
*/
|
|
10
|
+
function createMockJwt(expirySeconds = 3600) {
|
|
11
|
+
const header = { alg: 'HS256', typ: 'JWT' };
|
|
12
|
+
const payload = {
|
|
13
|
+
sub: 'mock-user-id',
|
|
14
|
+
name: 'Mock User',
|
|
15
|
+
iat: Math.floor(Date.now() / 1000),
|
|
16
|
+
exp: Math.floor(Date.now() / 1000) + expirySeconds
|
|
17
|
+
};
|
|
18
|
+
const base64UrlEncode = (obj) => {
|
|
19
|
+
return Buffer.from(JSON.stringify(obj))
|
|
20
|
+
.toString('base64')
|
|
21
|
+
.replace(/\+/g, '-')
|
|
22
|
+
.replace(/\//g, '_')
|
|
23
|
+
.replace(/=/g, '');
|
|
24
|
+
};
|
|
25
|
+
const encodedHeader = base64UrlEncode(header);
|
|
26
|
+
const encodedPayload = base64UrlEncode(payload);
|
|
27
|
+
const signature = 'mock-signature';
|
|
28
|
+
return `${encodedHeader}.${encodedPayload}.${signature}`;
|
|
29
|
+
}
|
|
5
30
|
/**
|
|
6
31
|
* Mock credentials provider for testing
|
|
32
|
+
* Generates valid JWT-formatted tokens with configurable expiry
|
|
7
33
|
*/
|
|
8
34
|
class MockCredentialsProvider {
|
|
9
35
|
accessToken;
|
|
10
36
|
refreshToken;
|
|
11
37
|
idToken;
|
|
12
|
-
|
|
38
|
+
tokenExpirySeconds;
|
|
39
|
+
constructor(accessToken, refreshToken, idToken, tokenExpirySeconds = 3600) {
|
|
13
40
|
this.accessToken = accessToken;
|
|
14
41
|
this.refreshToken = refreshToken;
|
|
15
42
|
this.idToken = idToken;
|
|
43
|
+
this.tokenExpirySeconds = tokenExpirySeconds;
|
|
16
44
|
}
|
|
17
45
|
/**
|
|
18
|
-
* Retrieve mock credentials
|
|
46
|
+
* Retrieve mock credentials with valid JWT tokens
|
|
19
47
|
*/
|
|
20
48
|
async retrieve() {
|
|
21
|
-
return new credentials_1.Credentials(this.accessToken, this.refreshToken, this.idToken);
|
|
49
|
+
return new credentials_1.Credentials(this.accessToken || createMockJwt(this.tokenExpirySeconds), this.refreshToken || 'mock-refresh-token', this.idToken || createMockJwt(this.tokenExpirySeconds));
|
|
22
50
|
}
|
|
23
51
|
/**
|
|
24
52
|
* Save credentials (no-op for mock)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-credentials-provider.js","sourceRoot":"","sources":["../../../src/sdk/dev/mock-credentials-provider.ts"],"names":[],"mappings":";;;AACA,mEAAgE;AAEhE
|
|
1
|
+
{"version":3,"file":"mock-credentials-provider.js","sourceRoot":"","sources":["../../../src/sdk/dev/mock-credentials-provider.ts"],"names":[],"mappings":";;;AACA,mEAAgE;AAEhE;;;;GAIG;AACH,SAAS,aAAa,CAAC,gBAAwB,IAAI;IACjD,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,cAAc;QACnB,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAClC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,aAAa;KACnD,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,GAAQ,EAAU,EAAE;QAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aACpC,QAAQ,CAAC,QAAQ,CAAC;aAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,gBAAgB,CAAC;IAEnC,OAAO,GAAG,aAAa,IAAI,cAAc,IAAI,SAAS,EAAE,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAa,uBAAuB;IAEf;IACA;IACA;IACA;IAJnB,YACmB,WAAoB,EACpB,YAAqB,EACrB,OAAgB,EAChB,qBAA6B,IAAI;QAHjC,gBAAW,GAAX,WAAW,CAAS;QACpB,iBAAY,GAAZ,YAAY,CAAS;QACrB,YAAO,GAAP,OAAO,CAAS;QAChB,uBAAkB,GAAlB,kBAAkB,CAAe;IACjD,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,yBAAW,CACpB,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAC1D,IAAI,CAAC,YAAY,IAAI,oBAAoB,EACzC,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CACvD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,WAAwB;QACjC,gCAAgC;IAClC,CAAC;CACF;AAzBD,0DAyBC"}
|
|
@@ -10,5 +10,10 @@ export declare class Credentials {
|
|
|
10
10
|
* Check if credentials are complete (at least access token is present)
|
|
11
11
|
*/
|
|
12
12
|
isComplete(): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Returns time in milliseconds until idToken expires.
|
|
15
|
+
* Returns 0 if expired or if expiry cannot be determined.
|
|
16
|
+
*/
|
|
17
|
+
timeToExpirationMs(): number;
|
|
13
18
|
}
|
|
14
19
|
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../../src/sdk/domain/entities/credentials.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../../src/sdk/domain/entities/credentials.ts"],"names":[],"mappings":"AAkCA;;GAEG;AACH,qBAAa,WAAW;aAEJ,WAAW,EAAE,MAAM;aACnB,YAAY,EAAE,MAAM;aACpB,OAAO,EAAE,MAAM;gBAFf,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM;IAGjC;;OAEG;IACI,UAAU,IAAI,OAAO;IAI5B;;;OAGG;IACI,kBAAkB,IAAI,MAAM;CAgBpC"}
|
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Credentials = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Decode the payload of a JWT without verification
|
|
6
|
+
* NOTE: Uses Node.js Buffer API - this file is only used in Node.js context (admin SDK)
|
|
7
|
+
* @param token JWT token string
|
|
8
|
+
* @returns Decoded payload or null if invalid
|
|
9
|
+
*/
|
|
10
|
+
function decodeJwtPayload(token) {
|
|
11
|
+
try {
|
|
12
|
+
const parts = token.split('.');
|
|
13
|
+
if (parts.length !== 3) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
// Decode base64url (replace URL-safe chars and add padding)
|
|
17
|
+
const base64 = parts[1].replace(/-/g, '+').replace(/_/g, '/');
|
|
18
|
+
const padding = '='.repeat((4 - base64.length % 4) % 4);
|
|
19
|
+
const base64WithPadding = base64 + padding;
|
|
20
|
+
// Decode base64 to string (Buffer is Node.js only - acceptable since credentials are admin-only)
|
|
21
|
+
const jsonPayload = Buffer.from(base64WithPadding, 'base64').toString('utf-8');
|
|
22
|
+
return JSON.parse(jsonPayload);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
4
28
|
/**
|
|
5
29
|
* User authentication credentials
|
|
6
30
|
*/
|
|
@@ -19,6 +43,23 @@ class Credentials {
|
|
|
19
43
|
isComplete() {
|
|
20
44
|
return !!this.accessToken;
|
|
21
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Returns time in milliseconds until idToken expires.
|
|
48
|
+
* Returns 0 if expired or if expiry cannot be determined.
|
|
49
|
+
*/
|
|
50
|
+
timeToExpirationMs() {
|
|
51
|
+
if (!this.idToken) {
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
const payload = decodeJwtPayload(this.idToken);
|
|
55
|
+
if (!payload || typeof payload.exp !== 'number') {
|
|
56
|
+
return 0;
|
|
57
|
+
}
|
|
58
|
+
const expiryTimeMs = payload.exp * 1000;
|
|
59
|
+
const nowMs = Date.now();
|
|
60
|
+
const timeToExpiry = expiryTimeMs - nowMs;
|
|
61
|
+
return timeToExpiry > 0 ? timeToExpiry : 0;
|
|
62
|
+
}
|
|
22
63
|
}
|
|
23
64
|
exports.Credentials = Credentials;
|
|
24
65
|
//# sourceMappingURL=credentials.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../../src/sdk/domain/entities/credentials.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../../src/sdk/domain/entities/credentials.ts"],"names":[],"mappings":";;;AAQA;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4DAA4D;QAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,CAAC;QAE3C,iGAAiG;QACjG,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAa,WAAW;IAEJ;IACA;IACA;IAHlB,YACkB,WAAmB,EACnB,YAAoB,EACpB,OAAe;QAFf,gBAAW,GAAX,WAAW,CAAQ;QACnB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,YAAO,GAAP,OAAO,CAAQ;IAC9B,CAAC;IAEJ;;OAEG;IACI,UAAU;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACI,kBAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,YAAY,GAAG,KAAK,CAAC;QAE1C,OAAO,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF;AAlCD,kCAkCC"}
|
|
@@ -2,12 +2,19 @@ import { TokenProvider } from '../../domain/ports/in/token-provider';
|
|
|
2
2
|
import { CredentialsProvider } from '../../../sdk/domain/ports/out/credentials-provider';
|
|
3
3
|
/**
|
|
4
4
|
* Default implementation of TokenProvider using CredentialsProvider
|
|
5
|
+
* with automatic token refresh on expiry
|
|
5
6
|
*/
|
|
6
7
|
export declare class DefaultTokenProvider implements TokenProvider {
|
|
7
8
|
private readonly credentialsProvider;
|
|
8
|
-
|
|
9
|
+
private readonly tokenRefreshProvider?;
|
|
10
|
+
private readonly refreshInteractor?;
|
|
11
|
+
constructor(credentialsProvider: CredentialsProvider, clientId?: string, region?: string);
|
|
9
12
|
/**
|
|
10
13
|
* Get the access token from stored credentials
|
|
14
|
+
* Automatically refreshes token if expired or expiring within 5 minutes
|
|
15
|
+
*
|
|
16
|
+
* Note: Despite the method name, this returns the idToken for Cognito authentication.
|
|
17
|
+
* AWS Cognito uses the idToken (not accessToken) for API Gateway authorization.
|
|
11
18
|
*/
|
|
12
19
|
getAccessToken(): Promise<string>;
|
|
13
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-token-provider.d.ts","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/default-token-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"default-token-provider.d.ts","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/default-token-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAWlF;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IAKtD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAJtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAuB;IAC7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAqB;gBAGrC,mBAAmB,EAAE,mBAAmB,EACzD,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM;IAejB;;;;;;OAMG;IACU,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;CA+B/C"}
|
|
@@ -2,23 +2,56 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DefaultTokenProvider = void 0;
|
|
4
4
|
const errors_1 = require("../../../sdk/domain/errors");
|
|
5
|
+
const refresh_credentials_1 = require("../../../sdk/domain/interactors/refresh-credentials");
|
|
6
|
+
const cognito_token_refresh_provider_1 = require("./cognito-token-refresh-provider");
|
|
7
|
+
/**
|
|
8
|
+
* Threshold in milliseconds (5 minutes) for auto-refresh
|
|
9
|
+
*/
|
|
10
|
+
const AUTO_REFRESH_THRESHOLD_MS = 5 * 60 * 1000;
|
|
5
11
|
/**
|
|
6
12
|
* Default implementation of TokenProvider using CredentialsProvider
|
|
13
|
+
* with automatic token refresh on expiry
|
|
7
14
|
*/
|
|
8
15
|
class DefaultTokenProvider {
|
|
9
16
|
credentialsProvider;
|
|
10
|
-
|
|
17
|
+
tokenRefreshProvider;
|
|
18
|
+
refreshInteractor;
|
|
19
|
+
constructor(credentialsProvider, clientId, region) {
|
|
11
20
|
this.credentialsProvider = credentialsProvider;
|
|
21
|
+
// Initialize refresh dependencies once if clientId is provided
|
|
22
|
+
if (clientId) {
|
|
23
|
+
this.tokenRefreshProvider = new cognito_token_refresh_provider_1.CognitoTokenRefreshProvider(clientId, region || 'us-east-1');
|
|
24
|
+
this.refreshInteractor = new refresh_credentials_1.RefreshCredentials(this.credentialsProvider, this.tokenRefreshProvider);
|
|
25
|
+
}
|
|
12
26
|
}
|
|
13
27
|
/**
|
|
14
28
|
* Get the access token from stored credentials
|
|
29
|
+
* Automatically refreshes token if expired or expiring within 5 minutes
|
|
30
|
+
*
|
|
31
|
+
* Note: Despite the method name, this returns the idToken for Cognito authentication.
|
|
32
|
+
* AWS Cognito uses the idToken (not accessToken) for API Gateway authorization.
|
|
15
33
|
*/
|
|
16
34
|
async getAccessToken() {
|
|
17
35
|
try {
|
|
18
36
|
const credentials = await this.credentialsProvider.retrieve();
|
|
37
|
+
const timeToExpiry = credentials.timeToExpirationMs();
|
|
38
|
+
// Auto-refresh if token is expired or about to expire (≤5 minutes left)
|
|
39
|
+
if (timeToExpiry <= AUTO_REFRESH_THRESHOLD_MS) {
|
|
40
|
+
if (!credentials.refreshToken) {
|
|
41
|
+
throw new errors_1.WaldeAuthenticationError('Token is expired or expiring soon, but no refresh token is available. Please log in again.');
|
|
42
|
+
}
|
|
43
|
+
if (!this.refreshInteractor) {
|
|
44
|
+
throw new errors_1.WaldeConfigurationError('Cognito client ID not configured for auto-refresh. Cannot refresh expired token.');
|
|
45
|
+
}
|
|
46
|
+
const refreshedCredentials = await this.refreshInteractor.execute();
|
|
47
|
+
return refreshedCredentials.idToken;
|
|
48
|
+
}
|
|
19
49
|
return credentials.idToken;
|
|
20
50
|
}
|
|
21
51
|
catch (error) {
|
|
52
|
+
if (error instanceof errors_1.WaldeAuthenticationError || error instanceof errors_1.WaldeConfigurationError) {
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
22
55
|
throw new errors_1.WaldeAuthenticationError('Credentials file not found');
|
|
23
56
|
}
|
|
24
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-token-provider.js","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/default-token-provider.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"default-token-provider.js","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/default-token-provider.ts"],"names":[],"mappings":";;;AAEA,gDAAwF;AACxF,sFAAkF;AAClF,qFAA+E;AAG/E;;GAEG;AACH,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhD;;;GAGG;AACH,MAAa,oBAAoB;IAKZ;IAJF,oBAAoB,CAAwB;IAC5C,iBAAiB,CAAsB;IAExD,YACmB,mBAAwC,EACzD,QAAiB,EACjB,MAAe;QAFE,wBAAmB,GAAnB,mBAAmB,CAAqB;QAIzD,+DAA+D;QAC/D,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,oBAAoB,GAAG,IAAI,4DAA2B,CACzD,QAAQ,EACR,MAAM,IAAI,WAAW,CACtB,CAAC;YACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,wCAAkB,CAC7C,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,oBAAoB,CAC1B,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,cAAc;QACzB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YAC9D,MAAM,YAAY,GAAG,WAAW,CAAC,kBAAkB,EAAE,CAAC;YAEtD,wEAAwE;YACxE,IAAI,YAAY,IAAI,yBAAyB,EAAE,CAAC;gBAC9C,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;oBAC9B,MAAM,IAAI,iCAAwB,CAChC,4FAA4F,CAC7F,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC5B,MAAM,IAAI,gCAAuB,CAC/B,kFAAkF,CACnF,CAAC;gBACJ,CAAC;gBAED,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBACpE,OAAO,oBAAoB,CAAC,OAAO,CAAC;YACtC,CAAC;YAED,OAAO,WAAW,CAAC,OAAO,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iCAAwB,IAAI,KAAK,YAAY,gCAAuB,EAAE,CAAC;gBAC1F,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,iCAAwB,CAAC,4BAA4B,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF;AA5DD,oDA4DC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walde-admin-factory.d.ts","sourceRoot":"","sources":["../../../../src/sdk/infra/factories/walde-admin-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAMlF,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAa3E,UAAU,uBAAuB;IAC/B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,iBAAiB;WACd,WAAW,CAAC,MAAM,EAAE,uBAAuB,GAAG,UAAU;
|
|
1
|
+
{"version":3,"file":"walde-admin-factory.d.ts","sourceRoot":"","sources":["../../../../src/sdk/infra/factories/walde-admin-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAMlF,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAa3E,UAAU,uBAAuB;IAC/B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,iBAAiB;WACd,WAAW,CAAC,MAAM,EAAE,uBAAuB,GAAG,UAAU;CAiCvE"}
|
|
@@ -22,7 +22,7 @@ class WaldeAdminFactory {
|
|
|
22
22
|
region: config.region,
|
|
23
23
|
s3ClientFactory: config.s3ClientFactory
|
|
24
24
|
}, config.stage);
|
|
25
|
-
const tokenProvider = new default_token_provider_1.DefaultTokenProvider(config.credentialsProvider);
|
|
25
|
+
const tokenProvider = new default_token_provider_1.DefaultTokenProvider(config.credentialsProvider, completeConfig.clientId, completeConfig.region);
|
|
26
26
|
const httpClient = new admin_http_client_1.AdminHttpClient(completeConfig.endpoint, tokenProvider);
|
|
27
27
|
const apiClient = new api_client_1.ApiClient(httpClient);
|
|
28
28
|
const sitesRepo = new http_site_repo_1.HttpSiteRepository(apiClient);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walde-admin-factory.js","sourceRoot":"","sources":["../../../../src/sdk/infra/factories/walde-admin-factory.ts"],"names":[],"mappings":";;;AAAA,+EAAoE;AASpE,qFAAsF;AACtF,mFAA8E;AAC9E,6GAAuG;AACvG,2IAAkI;AAClI,mEAAoE;AAEpE,gEAA4D;AAC5D,8EAAyE;AACzE,wFAAmF;AACnF,6EAAuE;AAWvE;;GAEG;AACH,MAAa,iBAAiB;IACrB,MAAM,CAAC,WAAW,CAAC,MAA+B;QACvD,MAAM,cAAc,GAAG,oDAAuB,CAAC,MAAM,CAAC;YACpD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAEjB,MAAM,aAAa,GAAG,IAAI,6CAAoB,
|
|
1
|
+
{"version":3,"file":"walde-admin-factory.js","sourceRoot":"","sources":["../../../../src/sdk/infra/factories/walde-admin-factory.ts"],"names":[],"mappings":";;;AAAA,+EAAoE;AASpE,qFAAsF;AACtF,mFAA8E;AAC9E,6GAAuG;AACvG,2IAAkI;AAClI,mEAAoE;AAEpE,gEAA4D;AAC5D,8EAAyE;AACzE,wFAAmF;AACnF,6EAAuE;AAWvE;;GAEG;AACH,MAAa,iBAAiB;IACrB,MAAM,CAAC,WAAW,CAAC,MAA+B;QACvD,MAAM,cAAc,GAAG,oDAAuB,CAAC,MAAM,CAAC;YACpD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAEjB,MAAM,aAAa,GAAG,IAAI,6CAAoB,CAC5C,MAAM,CAAC,mBAAmB,EAC1B,cAAc,CAAC,QAAQ,EACvB,cAAc,CAAC,MAAM,CACtB,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,mCAAe,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAmB,IAAI,mCAAkB,CAAC,SAAS,CAAC,CAAC;QACpE,MAAM,WAAW,GAAgB,IAAI,mCAAe,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,mBAAmB,GAAwB,IAAI,oDAAuB,EAAE,CAAC;QAC/E,MAAM,uBAAuB,GAA4B,IAAI,+EAAmC,CAAC,SAAS,CAAC,CAAC;QAC5G,MAAM,kBAAkB,GAAuB,IAAI,iDAAyB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC7G,MAAM,oBAAoB,GAAyB,SAAS,CAAC;QAE7D,OAAO,IAAI,+BAAU,CAAC;YACpB,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,SAAS;YACT,WAAW;YACX,mBAAmB;YACnB,uBAAuB;YACvB,kBAAkB;YAClB,oBAAoB;YACpB,MAAM,EAAE,cAAc;SACvB,CAAC,CAAC;IACL,CAAC;CACF;AAlCD,8CAkCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials-future.d.ts","sourceRoot":"","sources":["../../../../src/sdk/infra/futures/credentials-future.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAW,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"credentials-future.d.ts","sourceRoot":"","sources":["../../../../src/sdk/infra/futures/credentials-future.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAW,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAkDhE,qBAAa,iBAAkB,SAAQ,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;IACpE,OAAO,CAAC,SAAS,CAA+C;gBAEpD,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE;IAI9C,GAAG,IAAI,iBAAiB;IAMxB,OAAO,IAAI,iBAAiB;IAM5B,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;IAIhC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;CA6BnD"}
|
|
@@ -4,9 +4,40 @@ exports.CredentialsFuture = void 0;
|
|
|
4
4
|
const std_1 = require("../../../std");
|
|
5
5
|
const get_credentials_1 = require("../../../sdk/domain/interactors/get-credentials");
|
|
6
6
|
const refresh_credentials_1 = require("../../../sdk/domain/interactors/refresh-credentials");
|
|
7
|
-
const get_token_1 = require("../../../sdk/domain/interactors/get-token");
|
|
8
7
|
const cognito_token_refresh_provider_1 = require("../../../sdk/infra/adapters/cognito-token-refresh-provider");
|
|
9
8
|
const errors_1 = require("../../../sdk/domain/errors");
|
|
9
|
+
/**
|
|
10
|
+
* Threshold in milliseconds (5 minutes) for auto-refresh
|
|
11
|
+
*/
|
|
12
|
+
const AUTO_REFRESH_THRESHOLD_MS = 5 * 60 * 1000;
|
|
13
|
+
/**
|
|
14
|
+
* Get valid credentials, automatically refreshing if needed
|
|
15
|
+
* @param parent WaldeAdmin instance for config access
|
|
16
|
+
* @returns Valid credentials
|
|
17
|
+
*/
|
|
18
|
+
async function getValidCredentials(parent) {
|
|
19
|
+
const config = parent.getConfig();
|
|
20
|
+
const getCredentialsInteractor = new get_credentials_1.GetCredentials(config.credentialsProvider);
|
|
21
|
+
const credentials = await getCredentialsInteractor.execute();
|
|
22
|
+
const timeToExpiry = credentials.timeToExpirationMs();
|
|
23
|
+
// Auto-refresh if token is expired or about to expire (≤5 minutes left)
|
|
24
|
+
if (timeToExpiry <= AUTO_REFRESH_THRESHOLD_MS) {
|
|
25
|
+
if (!credentials.refreshToken) {
|
|
26
|
+
// No refresh token available - return credentials as-is
|
|
27
|
+
// This will likely result in authentication errors when used
|
|
28
|
+
return credentials;
|
|
29
|
+
}
|
|
30
|
+
if (!config.config.clientId) {
|
|
31
|
+
throw new errors_1.WaldeConfigurationError('Cognito client ID not configured');
|
|
32
|
+
}
|
|
33
|
+
const tokenRefreshProvider = new cognito_token_refresh_provider_1.CognitoTokenRefreshProvider(config.config.clientId, config.config.region);
|
|
34
|
+
const refreshInteractor = new refresh_credentials_1.RefreshCredentials(config.credentialsProvider, tokenRefreshProvider);
|
|
35
|
+
return await refreshInteractor.execute();
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return credentials;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
10
41
|
class CredentialsFuture extends std_1.Future {
|
|
11
42
|
operation = null;
|
|
12
43
|
constructor({ parent }) {
|
|
@@ -29,8 +60,7 @@ class CredentialsFuture extends std_1.Future {
|
|
|
29
60
|
try {
|
|
30
61
|
const config = this.parent.getConfig();
|
|
31
62
|
if (this.operation === 'get') {
|
|
32
|
-
const
|
|
33
|
-
const credentials = await interactor.execute();
|
|
63
|
+
const credentials = await getValidCredentials(this.parent);
|
|
34
64
|
return (0, std_1.ok)(credentials);
|
|
35
65
|
}
|
|
36
66
|
else if (this.operation === 'refresh') {
|
|
@@ -58,10 +88,11 @@ class TokenFuture extends std_1.Future {
|
|
|
58
88
|
}
|
|
59
89
|
async resolve() {
|
|
60
90
|
try {
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
91
|
+
const credentials = await getValidCredentials(this.parent);
|
|
92
|
+
if (!credentials.isComplete()) {
|
|
93
|
+
throw new errors_1.WaldeConfigurationError('No valid credentials available');
|
|
94
|
+
}
|
|
95
|
+
return (0, std_1.ok)(credentials.accessToken);
|
|
65
96
|
}
|
|
66
97
|
catch (error) {
|
|
67
98
|
return (0, std_1.err)(error.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials-future.js","sourceRoot":"","sources":["../../../../src/sdk/infra/futures/credentials-future.ts"],"names":[],"mappings":";;;AAAA,+BAAgD;AAGhD,8EAA0E;AAC1E,sFAAkF;
|
|
1
|
+
{"version":3,"file":"credentials-future.js","sourceRoot":"","sources":["../../../../src/sdk/infra/futures/credentials-future.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@walde.ai/walde-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "TypeScript SDK for Walde",
|
|
5
5
|
"main": "dist/node.js",
|
|
6
6
|
"types": "dist/node.d.ts",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"default": "./dist/browser.js"
|
|
16
16
|
},
|
|
17
17
|
"./node": {
|
|
18
|
-
"types": "./dist/node.d.ts",
|
|
18
|
+
"types": "./dist/node.d.ts",
|
|
19
19
|
"default": "./dist/node.js"
|
|
20
20
|
}
|
|
21
21
|
},
|