@calimero-network/mero-js 2.0.0-beta.1 → 2.0.0
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 +358 -341
- package/dist/admin-api/admin-client.d.ts +90 -0
- package/dist/admin-api/admin-client.d.ts.map +1 -0
- package/dist/admin-api/admin-client.js +289 -0
- package/dist/admin-api/admin-client.js.map +1 -0
- package/dist/admin-api/admin-factory.d.ts +8 -0
- package/dist/admin-api/admin-factory.d.ts.map +1 -0
- package/dist/admin-api/admin-factory.js +42 -0
- package/dist/admin-api/admin-factory.js.map +1 -0
- package/dist/admin-api/admin-types.d.ts +490 -0
- package/dist/admin-api/admin-types.d.ts.map +1 -0
- package/dist/admin-api/admin-types.js +4 -0
- package/dist/admin-api/admin-types.js.map +1 -0
- package/dist/admin-api/index.d.ts +4 -0
- package/dist/admin-api/index.d.ts.map +1 -0
- package/dist/admin-api/index.js +5 -0
- package/dist/admin-api/index.js.map +1 -0
- package/dist/auth/index.d.ts +26 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +51 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth-api/auth-client.d.ts +34 -0
- package/dist/auth-api/auth-client.d.ts.map +1 -0
- package/dist/auth-api/auth-client.js +112 -0
- package/dist/auth-api/auth-client.js.map +1 -0
- package/dist/auth-api/auth-factory.d.ts +8 -0
- package/dist/auth-api/auth-factory.d.ts.map +1 -0
- package/dist/auth-api/auth-factory.js +42 -0
- package/dist/auth-api/auth-factory.js.map +1 -0
- package/dist/auth-api/auth-types.d.ts +127 -0
- package/dist/auth-api/auth-types.d.ts.map +1 -0
- package/dist/auth-api/auth-types.js +3 -0
- package/dist/auth-api/auth-types.js.map +1 -0
- package/dist/auth-api/index.d.ts +4 -0
- package/dist/auth-api/index.d.ts.map +1 -0
- package/dist/auth-api/index.js +5 -0
- package/dist/auth-api/index.js.map +1 -0
- package/dist/cloud/cloud-client.d.ts +20 -0
- package/dist/cloud/cloud-client.d.ts.map +1 -0
- package/dist/cloud/cloud-client.js +26 -0
- package/dist/cloud/cloud-client.js.map +1 -0
- package/dist/cloud/index.d.ts +3 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/cloud/index.js +2 -0
- package/dist/cloud/index.js.map +1 -0
- package/dist/events/index.d.ts +5 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +3 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/sse.d.ts +41 -0
- package/dist/events/sse.d.ts.map +1 -0
- package/dist/events/sse.js +237 -0
- package/dist/events/sse.js.map +1 -0
- package/dist/events/ws.d.ts +42 -0
- package/dist/events/ws.d.ts.map +1 -0
- package/dist/events/ws.js +178 -0
- package/dist/events/ws.js.map +1 -0
- package/dist/http-client/api-response.d.ts +16 -0
- package/dist/http-client/api-response.d.ts.map +1 -0
- package/dist/http-client/api-response.js +2 -0
- package/dist/http-client/api-response.js.map +1 -0
- package/dist/http-client/index.d.ts +1 -1
- package/dist/http-client/index.d.ts.map +1 -1
- package/dist/http-client/index.js +1 -2
- package/dist/http-client/index.js.map +1 -1
- package/dist/http-client/web-client.d.ts +3 -3
- package/dist/http-client/web-client.d.ts.map +1 -1
- package/dist/http-client/web-client.js +6 -18
- package/dist/http-client/web-client.js.map +1 -1
- package/dist/index.browser.mjs +2 -1
- package/dist/index.browser.mjs.map +4 -4
- package/dist/index.cjs +1076 -1467
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +12 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -7
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1024 -1421
- package/dist/index.mjs.map +4 -4
- package/dist/mero-js.d.ts +44 -189
- package/dist/mero-js.d.ts.map +1 -1
- package/dist/mero-js.js +139 -314
- package/dist/mero-js.js.map +1 -1
- package/dist/rpc/index.d.ts +22 -0
- package/dist/rpc/index.d.ts.map +1 -0
- package/dist/rpc/index.js +38 -0
- package/dist/rpc/index.js.map +1 -0
- package/dist/token-store/index.d.ts +20 -0
- package/dist/token-store/index.d.ts.map +1 -0
- package/dist/token-store/index.js +62 -0
- package/dist/token-store/index.js.map +1 -0
- package/package.json +7 -42
- package/dist/api/admin/aliases.d.ts +0 -54
- package/dist/api/admin/aliases.d.ts.map +0 -1
- package/dist/api/admin/aliases.js +0 -43
- package/dist/api/admin/aliases.js.map +0 -1
- package/dist/api/admin/applications.d.ts +0 -52
- package/dist/api/admin/applications.d.ts.map +0 -1
- package/dist/api/admin/applications.js +0 -31
- package/dist/api/admin/applications.js.map +0 -1
- package/dist/api/admin/blobs.d.ts +0 -24
- package/dist/api/admin/blobs.d.ts.map +0 -1
- package/dist/api/admin/blobs.js +0 -58
- package/dist/api/admin/blobs.js.map +0 -1
- package/dist/api/admin/capabilities.d.ts +0 -26
- package/dist/api/admin/capabilities.d.ts.map +0 -1
- package/dist/api/admin/capabilities.js +0 -13
- package/dist/api/admin/capabilities.js.map +0 -1
- package/dist/api/admin/client.d.ts +0 -63
- package/dist/api/admin/client.d.ts.map +0 -1
- package/dist/api/admin/client.js +0 -103
- package/dist/api/admin/client.js.map +0 -1
- package/dist/api/admin/contexts.d.ts +0 -110
- package/dist/api/admin/contexts.d.ts.map +0 -1
- package/dist/api/admin/contexts.js +0 -61
- package/dist/api/admin/contexts.js.map +0 -1
- package/dist/api/admin/factory.d.ts +0 -4
- package/dist/api/admin/factory.d.ts.map +0 -1
- package/dist/api/admin/factory.js +0 -5
- package/dist/api/admin/factory.js.map +0 -1
- package/dist/api/admin/identity.d.ts +0 -10
- package/dist/api/admin/identity.d.ts.map +0 -1
- package/dist/api/admin/identity.js +0 -10
- package/dist/api/admin/identity.js.map +0 -1
- package/dist/api/admin/index.d.ts +0 -23
- package/dist/api/admin/index.d.ts.map +0 -1
- package/dist/api/admin/index.js +0 -26
- package/dist/api/admin/index.js.map +0 -1
- package/dist/api/admin/network.d.ts +0 -10
- package/dist/api/admin/network.d.ts.map +0 -1
- package/dist/api/admin/network.js +0 -9
- package/dist/api/admin/network.js.map +0 -1
- package/dist/api/admin/proposals.d.ts +0 -49
- package/dist/api/admin/proposals.d.ts.map +0 -1
- package/dist/api/admin/proposals.js +0 -34
- package/dist/api/admin/proposals.js.map +0 -1
- package/dist/api/admin/public.d.ts +0 -15
- package/dist/api/admin/public.d.ts.map +0 -1
- package/dist/api/admin/public.js +0 -18
- package/dist/api/admin/public.js.map +0 -1
- package/dist/api/admin/tee.d.ts +0 -74
- package/dist/api/admin/tee.d.ts.map +0 -1
- package/dist/api/admin/tee.js +0 -16
- package/dist/api/admin/tee.js.map +0 -1
- package/dist/api/auth/client.d.ts +0 -55
- package/dist/api/auth/client.d.ts.map +0 -1
- package/dist/api/auth/client.js +0 -127
- package/dist/api/auth/client.js.map +0 -1
- package/dist/api/auth/factory.d.ts +0 -4
- package/dist/api/auth/factory.d.ts.map +0 -1
- package/dist/api/auth/factory.js +0 -5
- package/dist/api/auth/factory.js.map +0 -1
- package/dist/api/auth/index.d.ts +0 -4
- package/dist/api/auth/index.d.ts.map +0 -1
- package/dist/api/auth/index.js +0 -4
- package/dist/api/auth/index.js.map +0 -1
- package/dist/api/auth/types.d.ts +0 -94
- package/dist/api/auth/types.d.ts.map +0 -1
- package/dist/api/auth/types.js +0 -4
- package/dist/api/auth/types.js.map +0 -1
- package/dist/api/index.d.ts +0 -15
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js +0 -18
- package/dist/api/index.js.map +0 -1
- package/dist/api/rpc/client.d.ts +0 -76
- package/dist/api/rpc/client.d.ts.map +0 -1
- package/dist/api/rpc/client.js +0 -126
- package/dist/api/rpc/client.js.map +0 -1
- package/dist/api/rpc/index.d.ts +0 -3
- package/dist/api/rpc/index.d.ts.map +0 -1
- package/dist/api/rpc/index.js +0 -2
- package/dist/api/rpc/index.js.map +0 -1
- package/dist/api/rpc/types.d.ts +0 -74
- package/dist/api/rpc/types.d.ts.map +0 -1
- package/dist/api/rpc/types.js +0 -6
- package/dist/api/rpc/types.js.map +0 -1
- package/dist/api/sse/client.d.ts +0 -76
- package/dist/api/sse/client.d.ts.map +0 -1
- package/dist/api/sse/client.js +0 -203
- package/dist/api/sse/client.js.map +0 -1
- package/dist/api/sse/index.d.ts +0 -4
- package/dist/api/sse/index.d.ts.map +0 -1
- package/dist/api/sse/index.js +0 -2
- package/dist/api/sse/index.js.map +0 -1
- package/dist/api/sse/types.d.ts +0 -35
- package/dist/api/sse/types.d.ts.map +0 -1
- package/dist/api/sse/types.js +0 -6
- package/dist/api/sse/types.js.map +0 -1
- package/dist/api/utils.d.ts +0 -68
- package/dist/api/utils.d.ts.map +0 -1
- package/dist/api/utils.js +0 -83
- package/dist/api/utils.js.map +0 -1
- package/dist/api/ws/client.d.ts +0 -72
- package/dist/api/ws/client.d.ts.map +0 -1
- package/dist/api/ws/client.js +0 -202
- package/dist/api/ws/client.js.map +0 -1
- package/dist/api/ws/index.d.ts +0 -4
- package/dist/api/ws/index.d.ts.map +0 -1
- package/dist/api/ws/index.js +0 -2
- package/dist/api/ws/index.js.map +0 -1
- package/dist/api/ws/types.d.ts +0 -32
- package/dist/api/ws/types.d.ts.map +0 -1
- package/dist/api/ws/types.js +0 -6
- package/dist/api/ws/types.js.map +0 -1
package/dist/mero-js.js
CHANGED
|
@@ -1,9 +1,30 @@
|
|
|
1
1
|
import { createBrowserHttpClient } from './http-client';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { SseClient } from './
|
|
2
|
+
import { createAuthApiClientFromHttpClient } from './auth-api';
|
|
3
|
+
import { createAdminApiClientFromHttpClient } from './admin-api';
|
|
4
|
+
import { parseAuthCallback, buildAuthLoginUrl } from './auth';
|
|
5
|
+
import { RpcClient } from './rpc';
|
|
6
|
+
import { SseClient } from './events/sse';
|
|
7
|
+
import { WsClient } from './events/ws';
|
|
8
|
+
/** Try to extract `exp` (seconds) from a JWT, return ms timestamp or fallback. */
|
|
9
|
+
function expiresAtFromJwt(token, fallbackMs) {
|
|
10
|
+
try {
|
|
11
|
+
const parts = token.split('.');
|
|
12
|
+
if (parts.length === 3) {
|
|
13
|
+
// JWT uses base64url encoding: replace -/_ with +// and add padding
|
|
14
|
+
let b64 = parts[1].replace(/-/g, '+').replace(/_/g, '/');
|
|
15
|
+
while (b64.length % 4)
|
|
16
|
+
b64 += '=';
|
|
17
|
+
const payload = JSON.parse(atob(b64));
|
|
18
|
+
if (typeof payload.exp === 'number') {
|
|
19
|
+
return payload.exp * 1000;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
// not a JWT or can't parse
|
|
25
|
+
}
|
|
26
|
+
return fallbackMs;
|
|
27
|
+
}
|
|
7
28
|
/**
|
|
8
29
|
* Main MeroJs SDK class that manages all API clients and authentication
|
|
9
30
|
*/
|
|
@@ -11,91 +32,58 @@ export class MeroJs {
|
|
|
11
32
|
constructor(config) {
|
|
12
33
|
this.tokenData = null;
|
|
13
34
|
this.refreshPromise = null;
|
|
14
|
-
this.
|
|
35
|
+
this.rpcClient = null;
|
|
36
|
+
this.sseClient = null;
|
|
37
|
+
this.wsClient = null;
|
|
38
|
+
this.wsWarned = false;
|
|
15
39
|
this.config = {
|
|
16
40
|
timeoutMs: 10000,
|
|
17
41
|
...config,
|
|
18
42
|
};
|
|
19
|
-
this.
|
|
43
|
+
this.tokenStore = config.tokenStore ?? null;
|
|
44
|
+
// Restore tokens from store if available
|
|
45
|
+
if (this.tokenStore) {
|
|
46
|
+
this.tokenData = this.tokenStore.getTokens();
|
|
47
|
+
}
|
|
20
48
|
// Create HTTP client with token management
|
|
21
49
|
// For Tauri, explicitly set credentials to 'omit' to avoid network errors
|
|
22
50
|
const isTauri = typeof window !== 'undefined' && '__TAURI_INTERNALS__' in window;
|
|
23
|
-
// Determine auth base URL and whether we need separate HTTP clients
|
|
24
|
-
const authBaseUrl = this.config.authBaseUrl ?? this.config.baseUrl;
|
|
25
|
-
const isEmbedded = authBaseUrl === this.config.baseUrl;
|
|
26
|
-
// Create admin HTTP client (always uses baseUrl) with automatic 401 refresh
|
|
27
51
|
this.httpClient = createBrowserHttpClient({
|
|
28
52
|
baseUrl: this.config.baseUrl,
|
|
29
53
|
getAuthToken: async () => {
|
|
30
54
|
const token = await this.getValidToken();
|
|
31
55
|
return token?.access_token || '';
|
|
32
56
|
},
|
|
33
|
-
// Wire up automatic token refresh on 401
|
|
34
57
|
refreshToken: async () => {
|
|
35
58
|
const refreshed = await this.performTokenRefresh();
|
|
36
59
|
return refreshed.access_token;
|
|
37
60
|
},
|
|
38
|
-
onTokenRefresh: async (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
await this.tokenStorage.set(this.tokenData);
|
|
61
|
+
onTokenRefresh: async (newToken) => {
|
|
62
|
+
if (this.tokenData) {
|
|
63
|
+
this.tokenData.access_token = newToken;
|
|
64
|
+
this.tokenStore?.setTokens(this.tokenData);
|
|
43
65
|
}
|
|
44
66
|
},
|
|
45
67
|
timeoutMs: this.config.timeoutMs,
|
|
46
68
|
credentials: this.config.requestCredentials ?? (isTauri ? 'omit' : undefined),
|
|
47
69
|
});
|
|
48
|
-
// Create
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const authHttpClient = createBrowserHttpClient({
|
|
52
|
-
baseUrl: authBaseUrl,
|
|
70
|
+
// Create API clients
|
|
71
|
+
this.authClient = createAuthApiClientFromHttpClient(this.httpClient, {
|
|
72
|
+
baseUrl: this.config.baseUrl,
|
|
53
73
|
getAuthToken: async () => {
|
|
54
74
|
const token = await this.getValidToken();
|
|
55
75
|
return token?.access_token || '';
|
|
56
76
|
},
|
|
57
|
-
// NO refreshToken callback - auth endpoints handle their own auth
|
|
58
|
-
// Wiring refreshToken here would cause infinite loops when refresh fails
|
|
59
77
|
timeoutMs: this.config.timeoutMs,
|
|
60
|
-
credentials: this.config.requestCredentials ?? (isTauri ? 'omit' : undefined),
|
|
61
78
|
});
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
79
|
+
this.adminClient = createAdminApiClientFromHttpClient(this.httpClient, {
|
|
80
|
+
baseUrl: this.config.baseUrl,
|
|
81
|
+
getAuthToken: async () => {
|
|
82
|
+
const token = await this.getValidToken();
|
|
83
|
+
return token?.access_token || '';
|
|
84
|
+
},
|
|
85
|
+
timeoutMs: this.config.timeoutMs,
|
|
66
86
|
});
|
|
67
|
-
this.adminClient = createAdminApiClient(this.httpClient);
|
|
68
|
-
// Create RPC client for executing queries/mutations
|
|
69
|
-
this.rpcClient = new RpcClient(this.httpClient);
|
|
70
|
-
// Token management is in-memory by default, or uses provided storage
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Initialize the SDK by loading tokens from storage (if provided).
|
|
74
|
-
* Call this after construction if using tokenStorage.
|
|
75
|
-
*
|
|
76
|
-
* @example
|
|
77
|
-
* ```typescript
|
|
78
|
-
* const mero = new MeroJs({ baseUrl: '...', tokenStorage: myStorage });
|
|
79
|
-
* await mero.init(); // Load stored tokens
|
|
80
|
-
*
|
|
81
|
-
* if (!mero.isAuthenticated()) {
|
|
82
|
-
* await mero.authenticate({ username: '...', password: '...' });
|
|
83
|
-
* }
|
|
84
|
-
* ```
|
|
85
|
-
*/
|
|
86
|
-
async init() {
|
|
87
|
-
console.log('[mero-js] init() called, tokenStorage:', this.tokenStorage ? 'EXISTS' : 'NULL');
|
|
88
|
-
if (this.tokenStorage) {
|
|
89
|
-
const storedToken = await this.tokenStorage.get();
|
|
90
|
-
console.log('[mero-js] init() storedToken:', storedToken ? 'LOADED' : 'NULL');
|
|
91
|
-
if (storedToken) {
|
|
92
|
-
this.tokenData = storedToken;
|
|
93
|
-
console.log('[mero-js] init() tokenData set, expires_at:', storedToken.expires_at);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
console.log('[mero-js] init() no tokenStorage configured');
|
|
98
|
-
}
|
|
99
87
|
}
|
|
100
88
|
/**
|
|
101
89
|
* Get the Auth API client
|
|
@@ -110,38 +98,49 @@ export class MeroJs {
|
|
|
110
98
|
return this.adminClient;
|
|
111
99
|
}
|
|
112
100
|
/**
|
|
113
|
-
* Get the RPC client
|
|
114
|
-
*
|
|
115
|
-
* @example
|
|
116
|
-
* ```typescript
|
|
117
|
-
* // Execute a query
|
|
118
|
-
* const result = await meroJs.rpc.query(
|
|
119
|
-
* 'context-id',
|
|
120
|
-
* 'get',
|
|
121
|
-
* { key: 'myKey' },
|
|
122
|
-
* 'ed25519:executor-public-key'
|
|
123
|
-
* );
|
|
124
|
-
*
|
|
125
|
-
* // Execute a mutation
|
|
126
|
-
* await meroJs.rpc.mutate(
|
|
127
|
-
* 'context-id',
|
|
128
|
-
* 'set',
|
|
129
|
-
* { key: 'myKey', value: 'myValue' },
|
|
130
|
-
* 'ed25519:executor-public-key'
|
|
131
|
-
* );
|
|
132
|
-
*
|
|
133
|
-
* // Or use the generic execute method
|
|
134
|
-
* const result = await meroJs.rpc.execute({
|
|
135
|
-
* contextId: 'context-id',
|
|
136
|
-
* method: 'set',
|
|
137
|
-
* args: { key: 'myKey', value: 'myValue' },
|
|
138
|
-
* executorPublicKey: 'ed25519:...',
|
|
139
|
-
* });
|
|
140
|
-
* ```
|
|
101
|
+
* Get the RPC client (lazy initialized)
|
|
141
102
|
*/
|
|
142
103
|
get rpc() {
|
|
104
|
+
if (!this.rpcClient) {
|
|
105
|
+
this.rpcClient = new RpcClient({ httpClient: this.httpClient });
|
|
106
|
+
}
|
|
143
107
|
return this.rpcClient;
|
|
144
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Get the SSE event client (lazy initialized)
|
|
111
|
+
*/
|
|
112
|
+
get events() {
|
|
113
|
+
if (!this.sseClient) {
|
|
114
|
+
this.sseClient = new SseClient({
|
|
115
|
+
baseUrl: this.config.baseUrl,
|
|
116
|
+
getAuthToken: async () => {
|
|
117
|
+
const token = await this.getValidToken();
|
|
118
|
+
return token?.access_token || '';
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
return this.sseClient;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get the WebSocket event client (lazy initialized).
|
|
126
|
+
* @experimental Use `events` (SSE) for production. WsClient is experimental.
|
|
127
|
+
*/
|
|
128
|
+
get ws() {
|
|
129
|
+
if (!this.wsWarned) {
|
|
130
|
+
this.wsWarned = true;
|
|
131
|
+
console.warn('[mero-js] WsClient is experimental. Use mero.events (SSE) for production.');
|
|
132
|
+
}
|
|
133
|
+
if (!this.wsClient) {
|
|
134
|
+
this.wsClient = new WsClient({
|
|
135
|
+
baseUrl: this.config.baseUrl,
|
|
136
|
+
getAuthToken: async () => {
|
|
137
|
+
const token = await this.getValidToken();
|
|
138
|
+
return token?.access_token || '';
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
return this.wsClient;
|
|
143
|
+
}
|
|
145
144
|
/**
|
|
146
145
|
* Authenticate with the provided credentials
|
|
147
146
|
* This will create the root key on first use
|
|
@@ -152,7 +151,6 @@ export class MeroJs {
|
|
|
152
151
|
throw new Error('No credentials provided for authentication');
|
|
153
152
|
}
|
|
154
153
|
try {
|
|
155
|
-
// Note: Auth API expects snake_case, not camelCase (despite OpenAPI spec showing camelCase)
|
|
156
154
|
const requestBody = {
|
|
157
155
|
auth_method: 'user_password',
|
|
158
156
|
public_key: creds.username,
|
|
@@ -164,95 +162,41 @@ export class MeroJs {
|
|
|
164
162
|
password: creds.password,
|
|
165
163
|
},
|
|
166
164
|
};
|
|
167
|
-
const response = await this.authClient.
|
|
168
|
-
|
|
169
|
-
let expiresAt;
|
|
170
|
-
try {
|
|
171
|
-
const payload = JSON.parse(atob(response.access_token.split('.')[1]));
|
|
172
|
-
expiresAt = payload.exp * 1000; // JWT exp is in seconds, convert to ms
|
|
173
|
-
console.log('[mero-js] Extracted exp from JWT:', payload.exp, '-> expires_at:', expiresAt);
|
|
174
|
-
}
|
|
175
|
-
catch (e) {
|
|
176
|
-
// Fallback to response.expires_in if JWT parsing fails
|
|
177
|
-
expiresAt = Date.now() + (response.expires_in || 3600) * 1000;
|
|
178
|
-
console.warn('[mero-js] Failed to parse JWT, using expires_in fallback:', expiresAt);
|
|
179
|
-
}
|
|
165
|
+
const response = await this.authClient.generateTokens(requestBody);
|
|
166
|
+
const accessToken = response.data.access_token;
|
|
180
167
|
this.tokenData = {
|
|
181
|
-
access_token:
|
|
182
|
-
refresh_token: response.refresh_token,
|
|
183
|
-
expires_at:
|
|
168
|
+
access_token: accessToken,
|
|
169
|
+
refresh_token: response.data.refresh_token,
|
|
170
|
+
expires_at: expiresAtFromJwt(accessToken, Date.now() + 3600000),
|
|
184
171
|
};
|
|
185
|
-
|
|
186
|
-
if (this.tokenStorage) {
|
|
187
|
-
await this.tokenStorage.set(this.tokenData);
|
|
188
|
-
}
|
|
172
|
+
this.tokenStore?.setTokens(this.tokenData);
|
|
189
173
|
return this.tokenData;
|
|
190
174
|
}
|
|
191
175
|
catch (error) {
|
|
192
|
-
|
|
193
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
194
|
-
const httpStatus = error && typeof error === 'object' && 'status' in error
|
|
195
|
-
? `HTTP ${String(error.status)}`
|
|
196
|
-
: '';
|
|
197
|
-
const httpStatusText = error && typeof error === 'object' && 'statusText' in error
|
|
198
|
-
? ` ${String(error.statusText)}`
|
|
199
|
-
: '';
|
|
200
|
-
const bodyText = error && typeof error === 'object' && 'bodyText' in error
|
|
201
|
-
? `: ${String(error.bodyText)}`
|
|
202
|
-
: '';
|
|
203
|
-
throw new Error(`Authentication failed: ${httpStatus}${httpStatusText}${bodyText || errorMessage}`);
|
|
176
|
+
throw new Error(`Authentication failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
204
177
|
}
|
|
205
178
|
}
|
|
206
179
|
/**
|
|
207
|
-
* Get a valid token
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
* so this preemptive check is an optimization to avoid unnecessary 401s.
|
|
180
|
+
* Get a valid token. Returns the current token as-is.
|
|
181
|
+
* The server rejects refresh attempts while the access token is still valid,
|
|
182
|
+
* so we never proactively refresh. Instead, the WebHttpClient handles 401
|
|
183
|
+
* responses reactively via the refreshToken transport hook.
|
|
212
184
|
*/
|
|
213
185
|
async getValidToken() {
|
|
214
|
-
console.log('[mero-js] getValidToken called, tokenData:', this.tokenData ? 'EXISTS' : 'NULL');
|
|
215
|
-
if (!this.tokenData) {
|
|
216
|
-
console.log('[mero-js] No tokenData, returning null');
|
|
217
|
-
return null;
|
|
218
|
-
}
|
|
219
|
-
// Check if token is actually expired
|
|
220
|
-
const now = Date.now();
|
|
221
|
-
const expiresAt = this.tokenData.expires_at;
|
|
222
|
-
const isExpired = now >= expiresAt;
|
|
223
|
-
console.log('[mero-js] Token check: now=', now, 'expires_at=', expiresAt, 'isExpired=', isExpired);
|
|
224
|
-
if (isExpired) {
|
|
225
|
-
console.log('[mero-js] Token expired, attempting preemptive refresh');
|
|
226
|
-
return await this.refreshToken();
|
|
227
|
-
}
|
|
228
|
-
console.log('[mero-js] Token valid, returning tokenData');
|
|
229
186
|
return this.tokenData;
|
|
230
187
|
}
|
|
231
188
|
/**
|
|
232
|
-
* Refresh the access token using the refresh token
|
|
233
|
-
* Called automatically when token is about to expire or on 401.
|
|
234
|
-
*
|
|
235
|
-
* @deprecated Use performTokenRefresh instead - this is kept for compatibility
|
|
189
|
+
* Refresh the access token using the refresh token
|
|
236
190
|
*/
|
|
237
191
|
async refreshToken() {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
* Perform the actual token refresh.
|
|
242
|
-
* This is used by both preemptive refresh and HTTP client's 401 handler.
|
|
243
|
-
*
|
|
244
|
-
* Uses a shared promise to prevent multiple simultaneous refresh attempts,
|
|
245
|
-
* even when called from multiple sources (preemptive check, HTTP 401 handler, etc.)
|
|
246
|
-
*/
|
|
247
|
-
async performTokenRefresh() {
|
|
192
|
+
if (!this.tokenData?.refresh_token) {
|
|
193
|
+
throw new Error('No refresh token available');
|
|
194
|
+
}
|
|
248
195
|
// Prevent multiple simultaneous refresh attempts
|
|
249
|
-
// This is critical for avoiding 100+ refresh requests when multiple 401s come in
|
|
250
196
|
if (this.refreshPromise) {
|
|
251
|
-
console.log('[mero-js] Refresh already in progress, waiting for existing promise');
|
|
252
197
|
return this.refreshPromise;
|
|
253
198
|
}
|
|
254
|
-
|
|
255
|
-
this.refreshPromise = this.doTokenRefresh();
|
|
199
|
+
this.refreshPromise = this.performTokenRefresh();
|
|
256
200
|
try {
|
|
257
201
|
const newToken = await this.refreshPromise;
|
|
258
202
|
return newToken;
|
|
@@ -262,101 +206,39 @@ export class MeroJs {
|
|
|
262
206
|
}
|
|
263
207
|
}
|
|
264
208
|
/**
|
|
265
|
-
*
|
|
266
|
-
* Called only from performTokenRefresh() which manages the deduplication.
|
|
209
|
+
* Perform the actual token refresh
|
|
267
210
|
*/
|
|
268
|
-
async
|
|
269
|
-
console.log('[mero-js doTokenRefresh] STARTING refresh...');
|
|
270
|
-
console.log('[mero-js doTokenRefresh] tokenData exists:', !!this.tokenData);
|
|
271
|
-
console.log('[mero-js doTokenRefresh] access_token exists:', !!this.tokenData?.access_token);
|
|
272
|
-
console.log('[mero-js doTokenRefresh] refresh_token exists:', !!this.tokenData?.refresh_token);
|
|
211
|
+
async performTokenRefresh() {
|
|
273
212
|
if (!this.tokenData?.refresh_token) {
|
|
274
213
|
throw new Error('No refresh token available');
|
|
275
214
|
}
|
|
276
|
-
if (!this.tokenData?.access_token) {
|
|
277
|
-
throw new Error('No access token available for refresh (server requires both tokens)');
|
|
278
|
-
}
|
|
279
215
|
try {
|
|
280
|
-
|
|
281
|
-
const refreshPayload = {
|
|
216
|
+
const response = await this.authClient.refreshToken({
|
|
282
217
|
access_token: this.tokenData.access_token,
|
|
283
218
|
refresh_token: this.tokenData.refresh_token,
|
|
284
|
-
};
|
|
285
|
-
|
|
286
|
-
console.log('[mero-js doTokenRefresh] access_token length:', refreshPayload.access_token?.length);
|
|
287
|
-
console.log('[mero-js doTokenRefresh] refresh_token length:', refreshPayload.refresh_token?.length);
|
|
288
|
-
const response = await this.authClient.refreshToken(refreshPayload);
|
|
289
|
-
// Extract expiry from JWT (more reliable than response.expires_in)
|
|
290
|
-
let expiresAt;
|
|
291
|
-
try {
|
|
292
|
-
const payload = JSON.parse(atob(response.access_token.split('.')[1]));
|
|
293
|
-
expiresAt = payload.exp * 1000; // JWT exp is in seconds, convert to ms
|
|
294
|
-
console.log('[mero-js] Extracted exp from JWT:', payload.exp, '-> expires_at:', expiresAt);
|
|
295
|
-
}
|
|
296
|
-
catch (e) {
|
|
297
|
-
// Fallback to response.expires_in if JWT parsing fails
|
|
298
|
-
expiresAt = Date.now() + (response.expires_in || 3600) * 1000;
|
|
299
|
-
console.warn('[mero-js] Failed to parse JWT, using expires_in fallback:', expiresAt);
|
|
300
|
-
}
|
|
219
|
+
});
|
|
220
|
+
const accessToken = response.data.access_token;
|
|
301
221
|
this.tokenData = {
|
|
302
|
-
access_token:
|
|
303
|
-
refresh_token: response.refresh_token,
|
|
304
|
-
expires_at:
|
|
222
|
+
access_token: accessToken,
|
|
223
|
+
refresh_token: response.data.refresh_token,
|
|
224
|
+
expires_at: expiresAtFromJwt(accessToken, Date.now() + 3600000),
|
|
305
225
|
};
|
|
306
|
-
|
|
307
|
-
if (this.tokenStorage) {
|
|
308
|
-
await this.tokenStorage.set(this.tokenData);
|
|
309
|
-
}
|
|
226
|
+
this.tokenStore?.setTokens(this.tokenData);
|
|
310
227
|
return this.tokenData;
|
|
311
228
|
}
|
|
312
229
|
catch (error) {
|
|
313
|
-
|
|
314
|
-
//
|
|
315
|
-
|
|
316
|
-
const status = httpError?.status;
|
|
317
|
-
const errorBody = httpError?.body || httpError?.message || '';
|
|
318
|
-
if (status) {
|
|
319
|
-
console.error('[mero-js] Refresh error status:', status);
|
|
320
|
-
console.error('[mero-js] Refresh error body:', errorBody);
|
|
321
|
-
}
|
|
322
|
-
// Special case: server says "Access token still valid"
|
|
323
|
-
// This means the token IS valid but some other endpoint returned 401
|
|
324
|
-
// Don't clear tokens, don't retry - something else is wrong
|
|
325
|
-
if (errorBody.includes('still valid') || errorBody.includes('token valid')) {
|
|
326
|
-
console.warn('[mero-js] Server says token is still valid - NOT clearing tokens');
|
|
327
|
-
console.warn('[mero-js] This usually means the 401 came from a different issue (wrong endpoint, missing header, etc.)');
|
|
328
|
-
// Create a special error that the HTTP client won't retry
|
|
329
|
-
const tokenValidError = new Error('Token is valid but request failed. Check Authorization header.');
|
|
330
|
-
tokenValidError.tokenStillValid = true;
|
|
331
|
-
throw tokenValidError;
|
|
332
|
-
}
|
|
333
|
-
// On ANY 4XX error, tokens are invalid - clear them and require re-auth
|
|
334
|
-
// This handles: 400 (bad request), 401 (unauthorized), 403 (forbidden), etc.
|
|
335
|
-
if (status && status >= 400 && status < 500) {
|
|
336
|
-
console.warn('[mero-js] Refresh failed with 4XX - clearing tokens, user must re-authenticate');
|
|
337
|
-
await this.clearToken();
|
|
338
|
-
throw new Error(`Session expired. Please log in again. (${status})`);
|
|
339
|
-
}
|
|
340
|
-
// On 5XX errors, don't clear tokens - might be transient server issue
|
|
341
|
-
// User can retry later
|
|
342
|
-
if (status && status >= 500) {
|
|
343
|
-
console.warn('[mero-js] Refresh failed with 5XX - server error, keeping tokens');
|
|
344
|
-
throw new Error(`Server error during refresh. Please try again later. (${status})`);
|
|
345
|
-
}
|
|
346
|
-
// Unknown error - clear tokens to be safe
|
|
347
|
-
console.warn('[mero-js] Refresh failed with unknown error - clearing tokens');
|
|
348
|
-
await this.clearToken();
|
|
230
|
+
// Don't clear tokens on refresh failure — the access token may still be
|
|
231
|
+
// valid (server rejects refresh while access token hasn't expired yet).
|
|
232
|
+
// Let the caller handle the error.
|
|
349
233
|
throw new Error(`Token refresh failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
350
234
|
}
|
|
351
235
|
}
|
|
352
236
|
/**
|
|
353
|
-
* Clear the current token
|
|
237
|
+
* Clear the current token
|
|
354
238
|
*/
|
|
355
|
-
|
|
239
|
+
clearToken() {
|
|
356
240
|
this.tokenData = null;
|
|
357
|
-
|
|
358
|
-
await this.tokenStorage.clear();
|
|
359
|
-
}
|
|
241
|
+
this.tokenStore?.clear();
|
|
360
242
|
}
|
|
361
243
|
/**
|
|
362
244
|
* Check if the SDK is authenticated
|
|
@@ -364,6 +246,16 @@ export class MeroJs {
|
|
|
364
246
|
isAuthenticated() {
|
|
365
247
|
return this.tokenData !== null;
|
|
366
248
|
}
|
|
249
|
+
/**
|
|
250
|
+
* Set token data directly (e.g., from auth callback).
|
|
251
|
+
* If `expires_at` is missing or 0, attempts to parse the JWT exp claim,
|
|
252
|
+
* falling back to 1 hour from now.
|
|
253
|
+
*/
|
|
254
|
+
setTokenData(data) {
|
|
255
|
+
const expiresAt = data.expires_at || expiresAtFromJwt(data.access_token, Date.now() + 3600000);
|
|
256
|
+
this.tokenData = { ...data, expires_at: expiresAt };
|
|
257
|
+
this.tokenStore?.setTokens(this.tokenData);
|
|
258
|
+
}
|
|
367
259
|
/**
|
|
368
260
|
* Get the current token data (for debugging)
|
|
369
261
|
*/
|
|
@@ -371,90 +263,23 @@ export class MeroJs {
|
|
|
371
263
|
return this.tokenData;
|
|
372
264
|
}
|
|
373
265
|
/**
|
|
374
|
-
*
|
|
375
|
-
* Use this when handling authentication externally (e.g., OAuth flows).
|
|
376
|
-
*
|
|
377
|
-
* @param tokenData - The token data to set, or null to clear
|
|
378
|
-
* @example
|
|
379
|
-
* ```typescript
|
|
380
|
-
* // After receiving tokens from external auth flow
|
|
381
|
-
* await meroJs.setToken({
|
|
382
|
-
* access_token: 'eyJ...',
|
|
383
|
-
* refresh_token: 'eyJ...',
|
|
384
|
-
* expires_at: Date.now() + 3600000,
|
|
385
|
-
* });
|
|
386
|
-
* ```
|
|
266
|
+
* Close all event connections and clean up resources
|
|
387
267
|
*/
|
|
388
|
-
|
|
389
|
-
this.
|
|
390
|
-
|
|
391
|
-
if (tokenData) {
|
|
392
|
-
await this.tokenStorage.set(tokenData);
|
|
393
|
-
}
|
|
394
|
-
else {
|
|
395
|
-
await this.tokenStorage.clear();
|
|
396
|
-
}
|
|
397
|
-
}
|
|
268
|
+
close() {
|
|
269
|
+
this.sseClient?.close();
|
|
270
|
+
this.wsClient?.close();
|
|
398
271
|
}
|
|
399
272
|
/**
|
|
400
|
-
*
|
|
401
|
-
*
|
|
402
|
-
* @param options - Optional WebSocket client options to override defaults
|
|
403
|
-
* @returns A new WebSocketClient instance
|
|
404
|
-
*
|
|
405
|
-
* @example
|
|
406
|
-
* ```typescript
|
|
407
|
-
* const ws = meroJs.createWebSocket();
|
|
408
|
-
* await ws.connect();
|
|
409
|
-
*
|
|
410
|
-
* ws.onEvent((event) => {
|
|
411
|
-
* console.log('Received event:', event);
|
|
412
|
-
* });
|
|
413
|
-
*
|
|
414
|
-
* await ws.subscribe(['context-id-1', 'context-id-2']);
|
|
415
|
-
*
|
|
416
|
-
* // Later...
|
|
417
|
-
* ws.disconnect();
|
|
418
|
-
* ```
|
|
273
|
+
* Parse an auth callback URL hash fragment (static utility)
|
|
419
274
|
*/
|
|
420
|
-
|
|
421
|
-
return
|
|
422
|
-
baseUrl: this.config.baseUrl,
|
|
423
|
-
getAuthToken: async () => this.tokenData?.access_token || null,
|
|
424
|
-
...options,
|
|
425
|
-
});
|
|
275
|
+
static parseAuthCallback(url) {
|
|
276
|
+
return parseAuthCallback(url);
|
|
426
277
|
}
|
|
427
278
|
/**
|
|
428
|
-
*
|
|
429
|
-
*
|
|
430
|
-
* @param options - Optional SSE client options to override defaults
|
|
431
|
-
* @returns A new SseClient instance
|
|
432
|
-
*
|
|
433
|
-
* @example
|
|
434
|
-
* ```typescript
|
|
435
|
-
* const sse = meroJs.createSse();
|
|
436
|
-
* const sessionId = await sse.connect();
|
|
437
|
-
*
|
|
438
|
-
* sse.onEvent((event) => {
|
|
439
|
-
* console.log('Received event:', event);
|
|
440
|
-
* });
|
|
441
|
-
*
|
|
442
|
-
* await sse.subscribe(['context-id-1', 'context-id-2']);
|
|
443
|
-
*
|
|
444
|
-
* // Get session info
|
|
445
|
-
* const session = await sse.getSession();
|
|
446
|
-
*
|
|
447
|
-
* // Later...
|
|
448
|
-
* sse.disconnect();
|
|
449
|
-
* ```
|
|
279
|
+
* Build an auth login URL (static utility)
|
|
450
280
|
*/
|
|
451
|
-
|
|
452
|
-
return
|
|
453
|
-
baseUrl: this.config.baseUrl,
|
|
454
|
-
httpClient: this.httpClient,
|
|
455
|
-
getAuthToken: async () => this.tokenData?.access_token || null,
|
|
456
|
-
...options,
|
|
457
|
-
});
|
|
281
|
+
static buildAuthLoginUrl(nodeUrl, opts) {
|
|
282
|
+
return buildAuthLoginUrl(nodeUrl, opts);
|
|
458
283
|
}
|
|
459
284
|
}
|
|
460
285
|
/**
|
package/dist/mero-js.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mero-js.js","sourceRoot":"","sources":["../src/mero-js.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mero-js.js","sourceRoot":"","sources":["../src/mero-js.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { HttpClient } from '../http-client';
|
|
2
|
+
export interface ExecuteParams {
|
|
3
|
+
contextId: string;
|
|
4
|
+
method: string;
|
|
5
|
+
argsJson?: Record<string, unknown>;
|
|
6
|
+
/** @deprecated No longer used by the server. Ignored if provided. */
|
|
7
|
+
executorPublicKey?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class RpcError extends Error {
|
|
10
|
+
code: number;
|
|
11
|
+
type?: string;
|
|
12
|
+
data?: unknown;
|
|
13
|
+
constructor(code: number, message: string, data?: unknown, type?: string);
|
|
14
|
+
}
|
|
15
|
+
export declare class RpcClient {
|
|
16
|
+
private httpClient;
|
|
17
|
+
constructor(opts: {
|
|
18
|
+
httpClient: HttpClient;
|
|
19
|
+
});
|
|
20
|
+
execute<T = unknown>(params: ExecuteParams): Promise<T>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;gBAEH,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM;CAOzE;AAmBD,qBAAa,SAAS;IACpB,OAAO,CAAC,UAAU,CAAa;gBAEnB,IAAI,EAAE;QAAE,UAAU,EAAE,UAAU,CAAA;KAAE;IAItC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;CA8B9D"}
|