@rool-dev/client 0.3.0-dev.54184fd → 0.3.0-dev.f9b91b8
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 +25 -49
- package/dist/auth.d.ts +34 -6
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +326 -34
- package/dist/auth.js.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -2
- package/dist/client.js.map +1 -1
- package/dist/types.d.ts +7 -9
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -8
- package/dist/auth-browser.d.ts +0 -70
- package/dist/auth-browser.d.ts.map +0 -1
- package/dist/auth-browser.js +0 -335
- package/dist/auth-browser.js.map +0 -1
- package/dist/auth-node.d.ts +0 -35
- package/dist/auth-node.d.ts.map +0 -1
- package/dist/auth-node.js +0 -270
- package/dist/auth-node.js.map +0 -1
package/dist/client.js
CHANGED
|
@@ -8,6 +8,7 @@ import { GraphQLClient } from './graphql.js';
|
|
|
8
8
|
import { SubscriptionManager } from './subscription.js';
|
|
9
9
|
import { MediaClient } from './media.js';
|
|
10
10
|
import { RoolGraph, generateEntityId } from './graph.js';
|
|
11
|
+
const DEFAULT_STORAGE_PREFIX = 'rool_';
|
|
11
12
|
/**
|
|
12
13
|
* Rool Client - Manages authentication, graph lifecycle, and shared infrastructure.
|
|
13
14
|
*
|
|
@@ -33,10 +34,12 @@ export class RoolClient extends EventEmitter {
|
|
|
33
34
|
super();
|
|
34
35
|
this.config = {
|
|
35
36
|
baseUrl: config.baseUrl.replace(/\/+$/, ''), // Remove trailing slashes
|
|
37
|
+
storagePrefix: config.storagePrefix ?? DEFAULT_STORAGE_PREFIX,
|
|
36
38
|
};
|
|
37
39
|
this.connectionId = generateEntityId();
|
|
38
40
|
this.authManager = new AuthManager({
|
|
39
41
|
baseUrl: this.config.baseUrl,
|
|
42
|
+
storagePrefix: this.config.storagePrefix,
|
|
40
43
|
authProvider: config.authProvider,
|
|
41
44
|
onAuthStateChanged: (authenticated) => {
|
|
42
45
|
this.emit('authStateChanged', authenticated);
|
|
@@ -78,8 +81,8 @@ export class RoolClient extends EventEmitter {
|
|
|
78
81
|
/**
|
|
79
82
|
* Initiate login by redirecting to auth page.
|
|
80
83
|
*/
|
|
81
|
-
|
|
82
|
-
|
|
84
|
+
login() {
|
|
85
|
+
this.authManager.login();
|
|
83
86
|
}
|
|
84
87
|
/**
|
|
85
88
|
* Logout - clear all tokens and state.
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,cAAc;AACd,0EAA0E;AAC1E,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -105,8 +105,6 @@ export interface GraphEvent {
|
|
|
105
105
|
* When provided, rool-client delegates all auth operations to this provider.
|
|
106
106
|
*/
|
|
107
107
|
export interface AuthProvider {
|
|
108
|
-
/** Initialize the provider (e.g. check for callbacks, start timers) */
|
|
109
|
-
initialize?: () => boolean;
|
|
110
108
|
/** Get current access token */
|
|
111
109
|
getToken: () => Promise<string | undefined>;
|
|
112
110
|
/** Get user info from current session */
|
|
@@ -115,17 +113,17 @@ export interface AuthProvider {
|
|
|
115
113
|
name: string | null;
|
|
116
114
|
};
|
|
117
115
|
/** Check if currently authenticated */
|
|
118
|
-
isAuthenticated
|
|
119
|
-
/** Initiate login */
|
|
120
|
-
login
|
|
121
|
-
/** Logout and clear session */
|
|
122
|
-
logout
|
|
123
|
-
/** Clean up resources (e.g. stop timers) */
|
|
124
|
-
destroy?: () => void;
|
|
116
|
+
isAuthenticated?: () => boolean;
|
|
117
|
+
/** Initiate login (optional - some providers handle this externally) */
|
|
118
|
+
login?: () => void;
|
|
119
|
+
/** Logout and clear session (optional) */
|
|
120
|
+
logout?: () => void;
|
|
125
121
|
}
|
|
126
122
|
export interface RoolClientConfig {
|
|
127
123
|
/** Base URL of the Rool server (e.g., 'https://use.rool.dev') */
|
|
128
124
|
baseUrl: string;
|
|
125
|
+
/** localStorage key prefix (default: 'rool_') */
|
|
126
|
+
storagePrefix?: string;
|
|
129
127
|
/**
|
|
130
128
|
* External auth provider (e.g., for Electron).
|
|
131
129
|
* When provided, rool-client uses this instead of built-in web auth.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rool-dev/client",
|
|
3
|
-
"version": "0.3.0-dev.
|
|
3
|
+
"version": "0.3.0-dev.f9b91b8",
|
|
4
4
|
"description": "TypeScript client library for the Rool API",
|
|
5
5
|
"packageManager": "pnpm@10.17.1",
|
|
6
6
|
"type": "module",
|
|
@@ -11,10 +11,6 @@
|
|
|
11
11
|
".": {
|
|
12
12
|
"import": "./dist/index.js",
|
|
13
13
|
"types": "./dist/index.d.ts"
|
|
14
|
-
},
|
|
15
|
-
"./node": {
|
|
16
|
-
"import": "./dist/auth-node.js",
|
|
17
|
-
"types": "./dist/auth-node.d.ts"
|
|
18
14
|
}
|
|
19
15
|
},
|
|
20
16
|
"files": [
|
|
@@ -50,11 +46,9 @@
|
|
|
50
46
|
"dependencies": {
|
|
51
47
|
"fflate": "^0.8.2",
|
|
52
48
|
"graphql-sse": "^2.6.0",
|
|
53
|
-
"immutable-json-patch": "^6.0.2"
|
|
54
|
-
"open": "^11.0.0"
|
|
49
|
+
"immutable-json-patch": "^6.0.2"
|
|
55
50
|
},
|
|
56
51
|
"devDependencies": {
|
|
57
|
-
"@types/node": "^25.0.2",
|
|
58
52
|
"typescript": "^5.9.3"
|
|
59
53
|
}
|
|
60
54
|
}
|
package/dist/auth-browser.d.ts
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import type { AuthProvider, UserInfo } from './types.js';
|
|
2
|
-
export interface BrowserAuthConfig {
|
|
3
|
-
baseUrl: string;
|
|
4
|
-
storagePrefix?: string;
|
|
5
|
-
onAuthStateChanged: (authenticated: boolean) => void;
|
|
6
|
-
}
|
|
7
|
-
export declare class BrowserAuthProvider implements AuthProvider {
|
|
8
|
-
private config;
|
|
9
|
-
private apiKey;
|
|
10
|
-
private apiKeyFetchPromise;
|
|
11
|
-
private refreshPromise;
|
|
12
|
-
private refreshTimeoutId;
|
|
13
|
-
private get storageKeys();
|
|
14
|
-
/** Get the auth base URL (origin only, no path like /rool-server) */
|
|
15
|
-
private get authBaseUrl();
|
|
16
|
-
constructor(config: BrowserAuthConfig);
|
|
17
|
-
/**
|
|
18
|
-
* Initialize auth manager - should be called on app startup.
|
|
19
|
-
* Processes any auth callback in the URL and sets up auto-refresh.
|
|
20
|
-
*/
|
|
21
|
-
initialize(): boolean;
|
|
22
|
-
/**
|
|
23
|
-
* Check if user is currently authenticated (has valid token).
|
|
24
|
-
*/
|
|
25
|
-
isAuthenticated(): boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Get current access token, refreshing if expired.
|
|
28
|
-
* Returns undefined if not authenticated.
|
|
29
|
-
*/
|
|
30
|
-
getToken(): Promise<string | undefined>;
|
|
31
|
-
/**
|
|
32
|
-
* Get user info decoded from JWT token.
|
|
33
|
-
*/
|
|
34
|
-
getUser(): UserInfo;
|
|
35
|
-
/**
|
|
36
|
-
* Initiate login by redirecting to auth page.
|
|
37
|
-
*/
|
|
38
|
-
login(): void;
|
|
39
|
-
/**
|
|
40
|
-
* Logout - clear all tokens and state.
|
|
41
|
-
*/
|
|
42
|
-
logout(): void;
|
|
43
|
-
/**
|
|
44
|
-
* Process auth callback from URL fragment.
|
|
45
|
-
* Should be called on page load.
|
|
46
|
-
* @returns true if callback was processed
|
|
47
|
-
*/
|
|
48
|
-
processCallback(): boolean;
|
|
49
|
-
/**
|
|
50
|
-
* Destroy auth manager - clear refresh timers.
|
|
51
|
-
*/
|
|
52
|
-
destroy(): void;
|
|
53
|
-
/**
|
|
54
|
-
* Get the API key, fetching from server if not provided in config.
|
|
55
|
-
*/
|
|
56
|
-
private getApiKey;
|
|
57
|
-
private tryRefreshToken;
|
|
58
|
-
private scheduleTokenRefresh;
|
|
59
|
-
private cancelScheduledRefresh;
|
|
60
|
-
private readAccessToken;
|
|
61
|
-
private readExpiresAt;
|
|
62
|
-
private writeTokens;
|
|
63
|
-
private clearTokens;
|
|
64
|
-
private storeState;
|
|
65
|
-
private readState;
|
|
66
|
-
private clearState;
|
|
67
|
-
private generateState;
|
|
68
|
-
private decodeUserInfo;
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=auth-browser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth-browser.d.ts","sourceRoot":"","sources":["../src/auth-browser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOzD,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI,CAAC;CACxD;AAED,qBAAa,mBAAoB,YAAW,YAAY;IACpD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,kBAAkB,CAAuC;IACjE,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,gBAAgB,CAA8C;IAEtE,OAAO,KAAK,WAAW,GAQtB;IAED,qEAAqE;IACrE,OAAO,KAAK,WAAW,GAQtB;gBAEW,MAAM,EAAE,iBAAiB;IAIrC;;;OAGG;IACH,UAAU,IAAI,OAAO;IAMrB;;OAEG;IACH,eAAe,IAAI,OAAO;IAO1B;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgB7C;;OAEG;IACH,OAAO,IAAI,QAAQ;IAMnB;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb;;OAEG;IACH,MAAM,IAAI,IAAI;IAOd;;;;OAIG;IACH,eAAe,IAAI,OAAO;IAyC1B;;OAEG;IACH,OAAO,IAAI,IAAI;IAQf;;OAEG;YACW,SAAS;YAgCT,eAAe;IAyD7B,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,cAAc;CAYzB"}
|
package/dist/auth-browser.js
DELETED
|
@@ -1,335 +0,0 @@
|
|
|
1
|
-
const GCIP_REFRESH_ENDPOINT = 'https://securetoken.googleapis.com/v1/token';
|
|
2
|
-
const REFRESH_BUFFER_MS = 5 * 60 * 1000; // Refresh 5 minutes before expiry
|
|
3
|
-
const DEFAULT_STORAGE_PREFIX = 'rool_';
|
|
4
|
-
export class BrowserAuthProvider {
|
|
5
|
-
config;
|
|
6
|
-
apiKey = null;
|
|
7
|
-
apiKeyFetchPromise = null;
|
|
8
|
-
refreshPromise = null;
|
|
9
|
-
refreshTimeoutId = null;
|
|
10
|
-
get storageKeys() {
|
|
11
|
-
const prefix = this.config.storagePrefix ?? DEFAULT_STORAGE_PREFIX;
|
|
12
|
-
return {
|
|
13
|
-
access: `${prefix}access_token`,
|
|
14
|
-
refresh: `${prefix}refresh_token`,
|
|
15
|
-
expiresAt: `${prefix}token_expires_at`,
|
|
16
|
-
state: `${prefix}auth_state`,
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
/** Get the auth base URL (origin only, no path like /rool-server) */
|
|
20
|
-
get authBaseUrl() {
|
|
21
|
-
try {
|
|
22
|
-
const url = new URL(this.config.baseUrl);
|
|
23
|
-
return url.origin;
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
// Fallback for relative URLs
|
|
27
|
-
return this.config.baseUrl.replace(/\/rool-server\/?$/, '');
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
constructor(config) {
|
|
31
|
-
this.config = config;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Initialize auth manager - should be called on app startup.
|
|
35
|
-
* Processes any auth callback in the URL and sets up auto-refresh.
|
|
36
|
-
*/
|
|
37
|
-
initialize() {
|
|
38
|
-
const wasCallback = this.processCallback();
|
|
39
|
-
this.scheduleTokenRefresh();
|
|
40
|
-
return wasCallback;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Check if user is currently authenticated (has valid token).
|
|
44
|
-
*/
|
|
45
|
-
isAuthenticated() {
|
|
46
|
-
const accessToken = this.readAccessToken();
|
|
47
|
-
const expiresAt = this.readExpiresAt();
|
|
48
|
-
if (!accessToken || !expiresAt)
|
|
49
|
-
return false;
|
|
50
|
-
return Date.now() < expiresAt;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Get current access token, refreshing if expired.
|
|
54
|
-
* Returns undefined if not authenticated.
|
|
55
|
-
*/
|
|
56
|
-
async getToken() {
|
|
57
|
-
const accessToken = this.readAccessToken();
|
|
58
|
-
const expiresAt = this.readExpiresAt();
|
|
59
|
-
if (!accessToken)
|
|
60
|
-
return undefined;
|
|
61
|
-
// Token expired or about to expire - try refresh
|
|
62
|
-
if (expiresAt && Date.now() >= expiresAt - REFRESH_BUFFER_MS) {
|
|
63
|
-
const refreshed = await this.tryRefreshToken();
|
|
64
|
-
if (!refreshed)
|
|
65
|
-
return undefined;
|
|
66
|
-
return this.readAccessToken() ?? undefined;
|
|
67
|
-
}
|
|
68
|
-
return accessToken;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Get user info decoded from JWT token.
|
|
72
|
-
*/
|
|
73
|
-
getUser() {
|
|
74
|
-
const accessToken = this.readAccessToken();
|
|
75
|
-
if (!accessToken)
|
|
76
|
-
return { email: null, name: null };
|
|
77
|
-
return this.decodeUserInfo(accessToken);
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Initiate login by redirecting to auth page.
|
|
81
|
-
*/
|
|
82
|
-
login() {
|
|
83
|
-
const loginUrl = new URL(`${this.authBaseUrl}/auth/`);
|
|
84
|
-
const redirectTarget = window.location.origin + window.location.pathname + window.location.search;
|
|
85
|
-
loginUrl.searchParams.set('redirect_uri', redirectTarget);
|
|
86
|
-
const state = this.generateState();
|
|
87
|
-
this.storeState(state);
|
|
88
|
-
loginUrl.searchParams.set('state', state);
|
|
89
|
-
window.location.href = loginUrl.toString();
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Logout - clear all tokens and state.
|
|
93
|
-
*/
|
|
94
|
-
logout() {
|
|
95
|
-
this.clearTokens();
|
|
96
|
-
this.clearState();
|
|
97
|
-
this.cancelScheduledRefresh();
|
|
98
|
-
this.config.onAuthStateChanged(false);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Process auth callback from URL fragment.
|
|
102
|
-
* Should be called on page load.
|
|
103
|
-
* @returns true if callback was processed
|
|
104
|
-
*/
|
|
105
|
-
processCallback() {
|
|
106
|
-
const hash = window.location.hash ?? '';
|
|
107
|
-
const trimmed = hash.startsWith('#') ? hash.slice(1) : hash;
|
|
108
|
-
if (!trimmed)
|
|
109
|
-
return false;
|
|
110
|
-
const params = new URLSearchParams(trimmed);
|
|
111
|
-
const idToken = params.get('id_token');
|
|
112
|
-
if (!idToken)
|
|
113
|
-
return false;
|
|
114
|
-
const refreshToken = params.get('refresh_token');
|
|
115
|
-
const expiresIn = params.get('expires_in');
|
|
116
|
-
const expiresAt = expiresIn ? Date.now() + Number(expiresIn) * 1000 : NaN;
|
|
117
|
-
const incomingState = params.get('state');
|
|
118
|
-
const storedState = this.readState();
|
|
119
|
-
// Validate state - if we stored one, require it back
|
|
120
|
-
if (storedState && incomingState !== storedState) {
|
|
121
|
-
console.error('[RoolClient] Auth state mismatch. Token fragment ignored.');
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
|
-
if (!Number.isFinite(expiresAt)) {
|
|
125
|
-
console.error('[RoolClient] Auth response missing expires_in. Token ignored.');
|
|
126
|
-
return false;
|
|
127
|
-
}
|
|
128
|
-
// Clear state and store tokens
|
|
129
|
-
this.clearState();
|
|
130
|
-
this.writeTokens(idToken, refreshToken, expiresAt);
|
|
131
|
-
// Clean URL
|
|
132
|
-
const cleanUrl = window.location.origin + window.location.pathname + window.location.search;
|
|
133
|
-
window.history.replaceState({}, document.title, cleanUrl);
|
|
134
|
-
// Schedule refresh and notify
|
|
135
|
-
this.scheduleTokenRefresh();
|
|
136
|
-
this.config.onAuthStateChanged(true);
|
|
137
|
-
return true;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Destroy auth manager - clear refresh timers.
|
|
141
|
-
*/
|
|
142
|
-
destroy() {
|
|
143
|
-
this.cancelScheduledRefresh();
|
|
144
|
-
}
|
|
145
|
-
// ===========================================================================
|
|
146
|
-
// Private methods
|
|
147
|
-
// ===========================================================================
|
|
148
|
-
/**
|
|
149
|
-
* Get the API key, fetching from server if not provided in config.
|
|
150
|
-
*/
|
|
151
|
-
async getApiKey() {
|
|
152
|
-
// Already have it
|
|
153
|
-
if (this.apiKey)
|
|
154
|
-
return this.apiKey;
|
|
155
|
-
// Already fetching
|
|
156
|
-
if (this.apiKeyFetchPromise)
|
|
157
|
-
return this.apiKeyFetchPromise;
|
|
158
|
-
// Fetch from server
|
|
159
|
-
this.apiKeyFetchPromise = fetch(`${this.authBaseUrl}/auth/config.json`)
|
|
160
|
-
.then(async (response) => {
|
|
161
|
-
if (!response.ok) {
|
|
162
|
-
console.warn('[RoolClient] Failed to fetch API key from server');
|
|
163
|
-
return null;
|
|
164
|
-
}
|
|
165
|
-
const data = await response.json();
|
|
166
|
-
if (data.apiKey && typeof data.apiKey === 'string') {
|
|
167
|
-
this.apiKey = data.apiKey;
|
|
168
|
-
return this.apiKey;
|
|
169
|
-
}
|
|
170
|
-
return null;
|
|
171
|
-
})
|
|
172
|
-
.catch((error) => {
|
|
173
|
-
console.warn('[RoolClient] Failed to fetch API key:', error);
|
|
174
|
-
return null;
|
|
175
|
-
})
|
|
176
|
-
.finally(() => {
|
|
177
|
-
this.apiKeyFetchPromise = null;
|
|
178
|
-
});
|
|
179
|
-
return this.apiKeyFetchPromise;
|
|
180
|
-
}
|
|
181
|
-
async tryRefreshToken() {
|
|
182
|
-
// Deduplicate concurrent refresh attempts
|
|
183
|
-
if (this.refreshPromise) {
|
|
184
|
-
return this.refreshPromise;
|
|
185
|
-
}
|
|
186
|
-
const refreshToken = localStorage.getItem(this.storageKeys.refresh);
|
|
187
|
-
if (!refreshToken)
|
|
188
|
-
return false;
|
|
189
|
-
// Get API key (from config or server)
|
|
190
|
-
const apiKey = await this.getApiKey();
|
|
191
|
-
if (!apiKey) {
|
|
192
|
-
console.warn('[RoolClient] Cannot refresh token: no API key available');
|
|
193
|
-
return false;
|
|
194
|
-
}
|
|
195
|
-
const refreshUrl = new URL(GCIP_REFRESH_ENDPOINT);
|
|
196
|
-
refreshUrl.searchParams.set('key', apiKey);
|
|
197
|
-
this.refreshPromise = fetch(refreshUrl.toString(), {
|
|
198
|
-
method: 'POST',
|
|
199
|
-
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
200
|
-
body: new URLSearchParams({
|
|
201
|
-
grant_type: 'refresh_token',
|
|
202
|
-
refresh_token: refreshToken,
|
|
203
|
-
}),
|
|
204
|
-
})
|
|
205
|
-
.then(async (response) => {
|
|
206
|
-
if (!response.ok) {
|
|
207
|
-
throw new Error(`Refresh failed: ${response.status} ${response.statusText}`);
|
|
208
|
-
}
|
|
209
|
-
const data = await response.json();
|
|
210
|
-
const accessToken = data.id_token ?? data.access_token ?? null;
|
|
211
|
-
const nextRefreshToken = data.refresh_token ?? refreshToken;
|
|
212
|
-
const expiresAt = data.expires_in ? Date.now() + data.expires_in * 1000 : NaN;
|
|
213
|
-
if (!accessToken || !Number.isFinite(expiresAt)) {
|
|
214
|
-
throw new Error('Refresh response missing access token or expires_in');
|
|
215
|
-
}
|
|
216
|
-
this.writeTokens(accessToken, nextRefreshToken, expiresAt);
|
|
217
|
-
this.scheduleTokenRefresh();
|
|
218
|
-
return true;
|
|
219
|
-
})
|
|
220
|
-
.catch((error) => {
|
|
221
|
-
console.error('[RoolClient] Token refresh failed:', error);
|
|
222
|
-
this.clearTokens();
|
|
223
|
-
this.config.onAuthStateChanged(false);
|
|
224
|
-
return false;
|
|
225
|
-
})
|
|
226
|
-
.finally(() => {
|
|
227
|
-
this.refreshPromise = null;
|
|
228
|
-
});
|
|
229
|
-
return this.refreshPromise;
|
|
230
|
-
}
|
|
231
|
-
scheduleTokenRefresh() {
|
|
232
|
-
this.cancelScheduledRefresh();
|
|
233
|
-
const expiresAt = this.readExpiresAt();
|
|
234
|
-
if (!expiresAt)
|
|
235
|
-
return;
|
|
236
|
-
const refreshAt = expiresAt - REFRESH_BUFFER_MS;
|
|
237
|
-
const delay = refreshAt - Date.now();
|
|
238
|
-
if (delay <= 0) {
|
|
239
|
-
// Already needs refresh
|
|
240
|
-
void this.tryRefreshToken();
|
|
241
|
-
}
|
|
242
|
-
else {
|
|
243
|
-
this.refreshTimeoutId = setTimeout(() => {
|
|
244
|
-
void this.tryRefreshToken();
|
|
245
|
-
}, delay);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
cancelScheduledRefresh() {
|
|
249
|
-
if (this.refreshTimeoutId !== null) {
|
|
250
|
-
clearTimeout(this.refreshTimeoutId);
|
|
251
|
-
this.refreshTimeoutId = null;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
readAccessToken() {
|
|
255
|
-
return localStorage.getItem(this.storageKeys.access);
|
|
256
|
-
}
|
|
257
|
-
readExpiresAt() {
|
|
258
|
-
const raw = localStorage.getItem(this.storageKeys.expiresAt);
|
|
259
|
-
if (!raw)
|
|
260
|
-
return null;
|
|
261
|
-
const parsed = Number.parseInt(raw, 10);
|
|
262
|
-
return Number.isFinite(parsed) ? parsed : null;
|
|
263
|
-
}
|
|
264
|
-
writeTokens(accessToken, refreshToken, expiresAt) {
|
|
265
|
-
if (accessToken) {
|
|
266
|
-
localStorage.setItem(this.storageKeys.access, accessToken);
|
|
267
|
-
}
|
|
268
|
-
else {
|
|
269
|
-
localStorage.removeItem(this.storageKeys.access);
|
|
270
|
-
}
|
|
271
|
-
if (refreshToken) {
|
|
272
|
-
localStorage.setItem(this.storageKeys.refresh, refreshToken);
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
localStorage.removeItem(this.storageKeys.refresh);
|
|
276
|
-
}
|
|
277
|
-
if (expiresAt !== null && Number.isFinite(expiresAt)) {
|
|
278
|
-
localStorage.setItem(this.storageKeys.expiresAt, Math.floor(expiresAt).toString());
|
|
279
|
-
}
|
|
280
|
-
else {
|
|
281
|
-
localStorage.removeItem(this.storageKeys.expiresAt);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
clearTokens() {
|
|
285
|
-
this.writeTokens(null, null, null);
|
|
286
|
-
}
|
|
287
|
-
storeState(value) {
|
|
288
|
-
try {
|
|
289
|
-
sessionStorage.setItem(this.storageKeys.state, value);
|
|
290
|
-
}
|
|
291
|
-
catch {
|
|
292
|
-
// Ignore storage restrictions
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
readState() {
|
|
296
|
-
try {
|
|
297
|
-
return sessionStorage.getItem(this.storageKeys.state);
|
|
298
|
-
}
|
|
299
|
-
catch {
|
|
300
|
-
return null;
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
clearState() {
|
|
304
|
-
try {
|
|
305
|
-
sessionStorage.removeItem(this.storageKeys.state);
|
|
306
|
-
}
|
|
307
|
-
catch {
|
|
308
|
-
// Ignore storage restrictions
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
generateState() {
|
|
312
|
-
try {
|
|
313
|
-
const buffer = new Uint8Array(16);
|
|
314
|
-
window.crypto.getRandomValues(buffer);
|
|
315
|
-
return Array.from(buffer, (value) => value.toString(16).padStart(2, '0')).join('');
|
|
316
|
-
}
|
|
317
|
-
catch {
|
|
318
|
-
return Math.random().toString(36).slice(2) + Math.random().toString(36).slice(2);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
decodeUserInfo(accessToken) {
|
|
322
|
-
try {
|
|
323
|
-
const payload = JSON.parse(atob(accessToken.split('.')[1]));
|
|
324
|
-
return {
|
|
325
|
-
email: payload.email || null,
|
|
326
|
-
name: payload.name || null,
|
|
327
|
-
};
|
|
328
|
-
}
|
|
329
|
-
catch (error) {
|
|
330
|
-
console.error('[RoolClient] Failed to decode token:', error);
|
|
331
|
-
return { email: null, name: null };
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
//# sourceMappingURL=auth-browser.js.map
|
package/dist/auth-browser.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth-browser.js","sourceRoot":"","sources":["../src/auth-browser.ts"],"names":[],"mappings":"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"}
|
package/dist/auth-node.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { AuthProvider, UserInfo } from './types.js';
|
|
2
|
-
export interface NodeAuthConfig {
|
|
3
|
-
/** Explicit URL for the auth service (e.g. https://api.rool.dev/auth). If omitted, derived from server URL. */
|
|
4
|
-
authUrl?: string;
|
|
5
|
-
/** Path to store credentials (default: ~/.config/rool/credentials.json) */
|
|
6
|
-
credentialsPath?: string;
|
|
7
|
-
/** Timeout for login flow in ms (default: 5 minutes) */
|
|
8
|
-
loginTimeoutMs?: number;
|
|
9
|
-
onAuthStateChanged?: (authenticated: boolean) => void;
|
|
10
|
-
}
|
|
11
|
-
export declare class NodeAuthProvider implements AuthProvider {
|
|
12
|
-
private config;
|
|
13
|
-
private apiKey;
|
|
14
|
-
private _serverUrl;
|
|
15
|
-
constructor(config?: NodeAuthConfig);
|
|
16
|
-
setServerUrl(url: string): void;
|
|
17
|
-
private get credentialsPath();
|
|
18
|
-
/**
|
|
19
|
-
* Get the base URL for auth endpoints (e.g. https://api.rool.dev/auth).
|
|
20
|
-
* Does NOT include trailing slash.
|
|
21
|
-
*/
|
|
22
|
-
private get authEndpoint();
|
|
23
|
-
initialize(): boolean;
|
|
24
|
-
getToken(): Promise<string | undefined>;
|
|
25
|
-
getUser(): UserInfo;
|
|
26
|
-
isAuthenticated(): boolean;
|
|
27
|
-
login(): Promise<void>;
|
|
28
|
-
logout(): void;
|
|
29
|
-
private readCredentials;
|
|
30
|
-
private writeCredentials;
|
|
31
|
-
private getApiKey;
|
|
32
|
-
private refreshToken;
|
|
33
|
-
private startLoopbackServer;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=auth-node.d.ts.map
|
package/dist/auth-node.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth-node.d.ts","sourceRoot":"","sources":["../src/auth-node.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIzD,MAAM,WAAW,cAAc;IAC3B,+GAA+G;IAC/G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI,CAAC;CACzD;AAQD,qBAAa,gBAAiB,YAAW,YAAY;IACjD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,UAAU,CAAuB;gBAE7B,MAAM,GAAE,cAAmB;IAIvC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI/B,OAAO,KAAK,eAAe,GAO1B;IAED;;;OAGG;IACH,OAAO,KAAK,YAAY,GAkBvB;IAED,UAAU,IAAI,OAAO;IAIf,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAY7C,OAAO,IAAI,QAAQ;IAenB,eAAe,IAAI,OAAO;IAQpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6C5B,MAAM,IAAI,IAAI;IAYd,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,gBAAgB;YAYV,SAAS;YAcT,YAAY;IAqC1B,OAAO,CAAC,mBAAmB;CAuE9B"}
|