@prmichaelsen/agentbase-core 0.1.0 → 0.1.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/README.md +351 -0
- package/dist/client/api-types.generated.d.ts +4024 -0
- package/dist/client/api-types.generated.d.ts.map +1 -0
- package/dist/client/api-types.generated.js +6 -0
- package/dist/client/api-types.generated.js.map +1 -0
- package/dist/client/app.d.ts +126 -0
- package/dist/client/app.d.ts.map +1 -0
- package/dist/client/app.js +107 -0
- package/dist/client/app.js.map +1 -0
- package/dist/client/http-transport.d.ts +42 -0
- package/dist/client/http-transport.d.ts.map +1 -0
- package/dist/client/http-transport.js +113 -0
- package/dist/client/http-transport.js.map +1 -0
- package/dist/client/index.d.ts +6 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +9 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/oauth.d.ts +86 -0
- package/dist/client/oauth.d.ts.map +1 -0
- package/dist/client/oauth.js +148 -0
- package/dist/client/oauth.js.map +1 -0
- package/dist/client/svc.d.ts +511 -0
- package/dist/client/svc.d.ts.map +1 -0
- package/dist/client/svc.js +409 -0
- package/dist/client/svc.js.map +1 -0
- package/dist/config/index.d.ts +34 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +50 -0
- package/dist/config/index.js.map +1 -0
- package/dist/errors/app-errors.d.ts +34 -0
- package/dist/errors/app-errors.d.ts.map +1 -0
- package/dist/errors/app-errors.js +34 -0
- package/dist/errors/app-errors.js.map +1 -0
- package/dist/errors/base.error.d.ts +8 -0
- package/dist/errors/base.error.d.ts.map +1 -0
- package/dist/errors/base.error.js +9 -0
- package/dist/errors/base.error.js.map +1 -0
- package/dist/errors/index.d.ts +6 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +12 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/auth/error-handler.d.ts +6 -0
- package/dist/lib/auth/error-handler.d.ts.map +1 -0
- package/dist/lib/auth/error-handler.js +18 -0
- package/dist/lib/auth/error-handler.js.map +1 -0
- package/dist/lib/auth/guards.d.ts +5 -6
- package/dist/lib/auth/guards.d.ts.map +1 -1
- package/dist/lib/auth/guards.js +7 -18
- package/dist/lib/auth/guards.js.map +1 -1
- package/dist/lib/auth/index.d.ts +1 -0
- package/dist/lib/auth/index.d.ts.map +1 -1
- package/dist/lib/auth/index.js +1 -0
- package/dist/lib/auth/index.js.map +1 -1
- package/dist/lib/auth/session.d.ts.map +1 -1
- package/dist/lib/auth/session.js +8 -7
- package/dist/lib/auth/session.js.map +1 -1
- package/dist/lib/rate-limiter.d.ts.map +1 -1
- package/dist/lib/rate-limiter.js +2 -1
- package/dist/lib/rate-limiter.js.map +1 -1
- package/dist/services/auth.interface.d.ts +15 -0
- package/dist/services/auth.interface.d.ts.map +1 -0
- package/dist/services/auth.interface.js +2 -0
- package/dist/services/auth.interface.js.map +1 -0
- package/dist/services/base.service.d.ts +17 -1
- package/dist/services/base.service.d.ts.map +1 -1
- package/dist/services/base.service.js +26 -3
- package/dist/services/base.service.js.map +1 -1
- package/dist/services/confirmation-token.service.d.ts +5 -1
- package/dist/services/confirmation-token.service.d.ts.map +1 -1
- package/dist/services/confirmation-token.service.js.map +1 -1
- package/dist/services/index.d.ts +3 -2
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/index.js.map +1 -1
- package/dist/types/branded.d.ts +24 -0
- package/dist/types/branded.d.ts.map +1 -0
- package/dist/types/branded.js +9 -0
- package/dist/types/branded.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/result.d.ts +20 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +44 -0
- package/dist/types/result.js.map +1 -0
- package/package.json +22 -3
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { HttpClient, type SdkResponse, type AuthStrategy, type HttpClientConfig } from './http-transport.js';
|
|
2
|
+
export { AuthSvc, OAuthSvc, MemoriesSvc, ConversationsSvc, ProfilesSvc, GroupsSvc, DmsSvc, SearchSvc, NotificationsSvc, RelationshipsSvc, BoardsSvc, TokensSvc, IntegrationsSvc, SettingsSvc, PaymentsSvc, UsageSvc, JobsSvc, } from './svc.js';
|
|
3
|
+
export { AppClient } from './app.js';
|
|
4
|
+
export { OAuthClient, InMemoryTokenStorage, type TokenStorage, generateCodeVerifier, generateCodeChallenge, buildAuthorizationUrl, } from './oauth.js';
|
|
5
|
+
export type { paths, components, operations } from './api-types.generated.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAG5G,OAAO,EACL,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAC7D,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAChE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAC/D,QAAQ,EAAE,OAAO,GAClB,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGpC,OAAO,EACL,WAAW,EAAE,oBAAoB,EAAE,KAAK,YAAY,EACpD,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB,GACnE,MAAM,YAAY,CAAA;AAGnB,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// HTTP Transport
|
|
2
|
+
export { HttpClient } from './http-transport.js';
|
|
3
|
+
// Service Clients
|
|
4
|
+
export { AuthSvc, OAuthSvc, MemoriesSvc, ConversationsSvc, ProfilesSvc, GroupsSvc, DmsSvc, SearchSvc, NotificationsSvc, RelationshipsSvc, BoardsSvc, TokensSvc, IntegrationsSvc, SettingsSvc, PaymentsSvc, UsageSvc, JobsSvc, } from './svc.js';
|
|
5
|
+
// App Client
|
|
6
|
+
export { AppClient } from './app.js';
|
|
7
|
+
// OAuth
|
|
8
|
+
export { OAuthClient, InMemoryTokenStorage, generateCodeVerifier, generateCodeChallenge, buildAuthorizationUrl, } from './oauth.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EAAE,UAAU,EAA8D,MAAM,qBAAqB,CAAA;AAE5G,kBAAkB;AAClB,OAAO,EACL,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAC7D,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAChE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAC/D,QAAQ,EAAE,OAAO,GAClB,MAAM,UAAU,CAAA;AAEjB,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,QAAQ;AACR,OAAO,EACL,WAAW,EAAE,oBAAoB,EACjC,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB,GACnE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { HttpClient } from './http-transport.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generate a random PKCE code verifier (43-128 chars, URL-safe)
|
|
4
|
+
*/
|
|
5
|
+
export declare function generateCodeVerifier(length?: number): string;
|
|
6
|
+
/**
|
|
7
|
+
* Generate PKCE code challenge from verifier (S256)
|
|
8
|
+
*/
|
|
9
|
+
export declare function generateCodeChallenge(verifier: string): Promise<string>;
|
|
10
|
+
/**
|
|
11
|
+
* Build OAuth authorization URL
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildAuthorizationUrl(baseUrl: string, params: {
|
|
14
|
+
clientId: string;
|
|
15
|
+
redirectUri: string;
|
|
16
|
+
scope?: string;
|
|
17
|
+
state?: string;
|
|
18
|
+
codeChallenge?: string;
|
|
19
|
+
}): string;
|
|
20
|
+
/**
|
|
21
|
+
* Token storage interface — implement to persist tokens
|
|
22
|
+
*/
|
|
23
|
+
export interface TokenStorage {
|
|
24
|
+
getAccessToken(): Promise<string | null>;
|
|
25
|
+
getRefreshToken(): Promise<string | null>;
|
|
26
|
+
setTokens(accessToken: string, refreshToken: string | null, expiresIn: number): Promise<void>;
|
|
27
|
+
clearTokens(): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* In-memory token storage (default, not persistent)
|
|
31
|
+
*/
|
|
32
|
+
export declare class InMemoryTokenStorage implements TokenStorage {
|
|
33
|
+
private accessToken;
|
|
34
|
+
private refreshToken;
|
|
35
|
+
private expiresAt;
|
|
36
|
+
getAccessToken(): Promise<string | null>;
|
|
37
|
+
getRefreshToken(): Promise<string | null>;
|
|
38
|
+
setTokens(accessToken: string, refreshToken: string | null, expiresIn: number): Promise<void>;
|
|
39
|
+
clearTokens(): Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* OAuth client — handles token exchange and refresh
|
|
43
|
+
*/
|
|
44
|
+
export declare class OAuthClient {
|
|
45
|
+
private http;
|
|
46
|
+
private storage;
|
|
47
|
+
private clientId;
|
|
48
|
+
private clientSecret?;
|
|
49
|
+
constructor(http: HttpClient, options: {
|
|
50
|
+
clientId: string;
|
|
51
|
+
clientSecret?: string;
|
|
52
|
+
storage?: TokenStorage;
|
|
53
|
+
});
|
|
54
|
+
/**
|
|
55
|
+
* Exchange authorization code for tokens
|
|
56
|
+
*/
|
|
57
|
+
exchangeCode(code: string, redirectUri: string, codeVerifier?: string): Promise<import("./http-transport.js").SdkResponse<{
|
|
58
|
+
access_token: string;
|
|
59
|
+
token_type: string;
|
|
60
|
+
expires_in: number;
|
|
61
|
+
refresh_token?: string;
|
|
62
|
+
}>>;
|
|
63
|
+
/**
|
|
64
|
+
* Refresh access token using refresh token
|
|
65
|
+
*/
|
|
66
|
+
refreshAccessToken(): Promise<import("./http-transport.js").SdkResponse<{
|
|
67
|
+
access_token: string;
|
|
68
|
+
token_type: string;
|
|
69
|
+
expires_in: number;
|
|
70
|
+
refresh_token?: string;
|
|
71
|
+
}> | null>;
|
|
72
|
+
/**
|
|
73
|
+
* Exchange API token for access token
|
|
74
|
+
*/
|
|
75
|
+
exchangeApiToken(apiToken: string): Promise<import("./http-transport.js").SdkResponse<{
|
|
76
|
+
access_token: string;
|
|
77
|
+
token_type: string;
|
|
78
|
+
expires_in: number;
|
|
79
|
+
}>>;
|
|
80
|
+
/**
|
|
81
|
+
* Get a valid access token (refreshes if expired)
|
|
82
|
+
*/
|
|
83
|
+
getValidToken(): Promise<string | null>;
|
|
84
|
+
getStorage(): TokenStorage;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/client/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,SAAK,GAAG,MAAM,CAKxD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ7E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GACA,MAAM,CAYR;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACxC,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACzC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7F,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,YAAY;IACvD,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,SAAS,CAAY;IAEvB,cAAc;IAKd,eAAe;IAIf,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM;IAM7E,WAAW;CAKlB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,YAAY,CAAC,CAAQ;gBAG3B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAA;QAChB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,OAAO,CAAC,EAAE,YAAY,CAAA;KACvB;IAQH;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;sBAWzD,MAAM;oBACR,MAAM;oBACN,MAAM;wBACF,MAAM;;IAc1B;;OAEG;IACG,kBAAkB;sBAYN,MAAM;oBACR,MAAM;oBACN,MAAM;wBACF,MAAM;;IAc1B;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM;sBAErB,MAAM;oBACR,MAAM;oBACN,MAAM;;IActB;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ7C,UAAU;CAGX"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate a random PKCE code verifier (43-128 chars, URL-safe)
|
|
3
|
+
*/
|
|
4
|
+
export function generateCodeVerifier(length = 64) {
|
|
5
|
+
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';
|
|
6
|
+
const array = new Uint8Array(length);
|
|
7
|
+
crypto.getRandomValues(array);
|
|
8
|
+
return Array.from(array, (byte) => chars[byte % chars.length]).join('');
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Generate PKCE code challenge from verifier (S256)
|
|
12
|
+
*/
|
|
13
|
+
export async function generateCodeChallenge(verifier) {
|
|
14
|
+
const encoder = new TextEncoder();
|
|
15
|
+
const data = encoder.encode(verifier);
|
|
16
|
+
const hash = await crypto.subtle.digest('SHA-256', data);
|
|
17
|
+
return btoa(String.fromCharCode(...new Uint8Array(hash)))
|
|
18
|
+
.replace(/\+/g, '-')
|
|
19
|
+
.replace(/\//g, '_')
|
|
20
|
+
.replace(/=+$/, '');
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Build OAuth authorization URL
|
|
24
|
+
*/
|
|
25
|
+
export function buildAuthorizationUrl(baseUrl, params) {
|
|
26
|
+
const url = new URL('/oauth/authorize', baseUrl);
|
|
27
|
+
url.searchParams.set('response_type', 'code');
|
|
28
|
+
url.searchParams.set('client_id', params.clientId);
|
|
29
|
+
url.searchParams.set('redirect_uri', params.redirectUri);
|
|
30
|
+
if (params.scope)
|
|
31
|
+
url.searchParams.set('scope', params.scope);
|
|
32
|
+
if (params.state)
|
|
33
|
+
url.searchParams.set('state', params.state);
|
|
34
|
+
if (params.codeChallenge) {
|
|
35
|
+
url.searchParams.set('code_challenge', params.codeChallenge);
|
|
36
|
+
url.searchParams.set('code_challenge_method', 'S256');
|
|
37
|
+
}
|
|
38
|
+
return url.toString();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* In-memory token storage (default, not persistent)
|
|
42
|
+
*/
|
|
43
|
+
export class InMemoryTokenStorage {
|
|
44
|
+
accessToken = null;
|
|
45
|
+
refreshToken = null;
|
|
46
|
+
expiresAt = 0;
|
|
47
|
+
async getAccessToken() {
|
|
48
|
+
if (this.accessToken && Date.now() < this.expiresAt)
|
|
49
|
+
return this.accessToken;
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
async getRefreshToken() {
|
|
53
|
+
return this.refreshToken;
|
|
54
|
+
}
|
|
55
|
+
async setTokens(accessToken, refreshToken, expiresIn) {
|
|
56
|
+
this.accessToken = accessToken;
|
|
57
|
+
this.refreshToken = refreshToken ?? this.refreshToken;
|
|
58
|
+
this.expiresAt = Date.now() + expiresIn * 1000;
|
|
59
|
+
}
|
|
60
|
+
async clearTokens() {
|
|
61
|
+
this.accessToken = null;
|
|
62
|
+
this.refreshToken = null;
|
|
63
|
+
this.expiresAt = 0;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* OAuth client — handles token exchange and refresh
|
|
68
|
+
*/
|
|
69
|
+
export class OAuthClient {
|
|
70
|
+
http;
|
|
71
|
+
storage;
|
|
72
|
+
clientId;
|
|
73
|
+
clientSecret;
|
|
74
|
+
constructor(http, options) {
|
|
75
|
+
this.http = http;
|
|
76
|
+
this.clientId = options.clientId;
|
|
77
|
+
this.clientSecret = options.clientSecret;
|
|
78
|
+
this.storage = options.storage ?? new InMemoryTokenStorage();
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Exchange authorization code for tokens
|
|
82
|
+
*/
|
|
83
|
+
async exchangeCode(code, redirectUri, codeVerifier) {
|
|
84
|
+
const body = {
|
|
85
|
+
grant_type: 'authorization_code',
|
|
86
|
+
code,
|
|
87
|
+
redirect_uri: redirectUri,
|
|
88
|
+
client_id: this.clientId,
|
|
89
|
+
};
|
|
90
|
+
if (this.clientSecret)
|
|
91
|
+
body.client_secret = this.clientSecret;
|
|
92
|
+
if (codeVerifier)
|
|
93
|
+
body.code_verifier = codeVerifier;
|
|
94
|
+
const result = await this.http.post('/api/oauth/token', body);
|
|
95
|
+
if (result.data) {
|
|
96
|
+
await this.storage.setTokens(result.data.access_token, result.data.refresh_token ?? null, result.data.expires_in);
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Refresh access token using refresh token
|
|
102
|
+
*/
|
|
103
|
+
async refreshAccessToken() {
|
|
104
|
+
const refreshToken = await this.storage.getRefreshToken();
|
|
105
|
+
if (!refreshToken)
|
|
106
|
+
return null;
|
|
107
|
+
const body = {
|
|
108
|
+
grant_type: 'refresh_token',
|
|
109
|
+
refresh_token: refreshToken,
|
|
110
|
+
client_id: this.clientId,
|
|
111
|
+
};
|
|
112
|
+
if (this.clientSecret)
|
|
113
|
+
body.client_secret = this.clientSecret;
|
|
114
|
+
const result = await this.http.post('/api/oauth/token', body);
|
|
115
|
+
if (result.data) {
|
|
116
|
+
await this.storage.setTokens(result.data.access_token, result.data.refresh_token ?? null, result.data.expires_in);
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Exchange API token for access token
|
|
122
|
+
*/
|
|
123
|
+
async exchangeApiToken(apiToken) {
|
|
124
|
+
const result = await this.http.post('/api/oauth/token', {
|
|
125
|
+
grant_type: 'api_token',
|
|
126
|
+
api_token: apiToken,
|
|
127
|
+
client_id: this.clientId,
|
|
128
|
+
});
|
|
129
|
+
if (result.data) {
|
|
130
|
+
await this.storage.setTokens(result.data.access_token, null, result.data.expires_in);
|
|
131
|
+
}
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get a valid access token (refreshes if expired)
|
|
136
|
+
*/
|
|
137
|
+
async getValidToken() {
|
|
138
|
+
const token = await this.storage.getAccessToken();
|
|
139
|
+
if (token)
|
|
140
|
+
return token;
|
|
141
|
+
const refreshResult = await this.refreshAccessToken();
|
|
142
|
+
return refreshResult?.data?.access_token ?? null;
|
|
143
|
+
}
|
|
144
|
+
getStorage() {
|
|
145
|
+
return this.storage;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=oauth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/client/oauth.ts"],"names":[],"mappings":"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"}
|