@calimero-network/mero-js 1.1.0 → 2.0.0-beta.1

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.
Files changed (172) hide show
  1. package/README.md +341 -319
  2. package/dist/api/admin/aliases.d.ts +54 -0
  3. package/dist/api/admin/aliases.d.ts.map +1 -0
  4. package/dist/api/admin/aliases.js +43 -0
  5. package/dist/api/admin/aliases.js.map +1 -0
  6. package/dist/api/admin/applications.d.ts +52 -0
  7. package/dist/api/admin/applications.d.ts.map +1 -0
  8. package/dist/api/admin/applications.js +31 -0
  9. package/dist/api/admin/applications.js.map +1 -0
  10. package/dist/api/admin/blobs.d.ts +24 -0
  11. package/dist/api/admin/blobs.d.ts.map +1 -0
  12. package/dist/api/admin/blobs.js +58 -0
  13. package/dist/api/admin/blobs.js.map +1 -0
  14. package/dist/api/admin/capabilities.d.ts +26 -0
  15. package/dist/api/admin/capabilities.d.ts.map +1 -0
  16. package/dist/api/admin/capabilities.js +13 -0
  17. package/dist/api/admin/capabilities.js.map +1 -0
  18. package/dist/api/admin/client.d.ts +63 -0
  19. package/dist/api/admin/client.d.ts.map +1 -0
  20. package/dist/api/admin/client.js +103 -0
  21. package/dist/api/admin/client.js.map +1 -0
  22. package/dist/api/admin/contexts.d.ts +110 -0
  23. package/dist/api/admin/contexts.d.ts.map +1 -0
  24. package/dist/api/admin/contexts.js +61 -0
  25. package/dist/api/admin/contexts.js.map +1 -0
  26. package/dist/api/admin/factory.d.ts +4 -0
  27. package/dist/api/admin/factory.d.ts.map +1 -0
  28. package/dist/api/admin/factory.js +5 -0
  29. package/dist/api/admin/factory.js.map +1 -0
  30. package/dist/api/admin/identity.d.ts +10 -0
  31. package/dist/api/admin/identity.d.ts.map +1 -0
  32. package/dist/api/admin/identity.js +10 -0
  33. package/dist/api/admin/identity.js.map +1 -0
  34. package/dist/api/admin/index.d.ts +23 -0
  35. package/dist/api/admin/index.d.ts.map +1 -0
  36. package/dist/api/admin/index.js +26 -0
  37. package/dist/api/admin/index.js.map +1 -0
  38. package/dist/api/admin/network.d.ts +10 -0
  39. package/dist/api/admin/network.d.ts.map +1 -0
  40. package/dist/api/admin/network.js +9 -0
  41. package/dist/api/admin/network.js.map +1 -0
  42. package/dist/api/admin/proposals.d.ts +49 -0
  43. package/dist/api/admin/proposals.d.ts.map +1 -0
  44. package/dist/api/admin/proposals.js +34 -0
  45. package/dist/api/admin/proposals.js.map +1 -0
  46. package/dist/api/admin/public.d.ts +15 -0
  47. package/dist/api/admin/public.d.ts.map +1 -0
  48. package/dist/api/admin/public.js +18 -0
  49. package/dist/api/admin/public.js.map +1 -0
  50. package/dist/api/admin/tee.d.ts +74 -0
  51. package/dist/api/admin/tee.d.ts.map +1 -0
  52. package/dist/api/admin/tee.js +16 -0
  53. package/dist/api/admin/tee.js.map +1 -0
  54. package/dist/api/auth/client.d.ts +55 -0
  55. package/dist/api/auth/client.d.ts.map +1 -0
  56. package/dist/api/auth/client.js +127 -0
  57. package/dist/api/auth/client.js.map +1 -0
  58. package/dist/api/auth/factory.d.ts +4 -0
  59. package/dist/api/auth/factory.d.ts.map +1 -0
  60. package/dist/api/auth/factory.js +5 -0
  61. package/dist/api/auth/factory.js.map +1 -0
  62. package/dist/api/auth/index.d.ts +4 -0
  63. package/dist/api/auth/index.d.ts.map +1 -0
  64. package/dist/api/auth/index.js +4 -0
  65. package/dist/api/auth/index.js.map +1 -0
  66. package/dist/api/auth/types.d.ts +94 -0
  67. package/dist/api/auth/types.d.ts.map +1 -0
  68. package/dist/api/auth/types.js +4 -0
  69. package/dist/api/auth/types.js.map +1 -0
  70. package/dist/api/index.d.ts +15 -0
  71. package/dist/api/index.d.ts.map +1 -0
  72. package/dist/api/index.js +18 -0
  73. package/dist/api/index.js.map +1 -0
  74. package/dist/api/rpc/client.d.ts +76 -0
  75. package/dist/api/rpc/client.d.ts.map +1 -0
  76. package/dist/api/rpc/client.js +126 -0
  77. package/dist/api/rpc/client.js.map +1 -0
  78. package/dist/api/rpc/index.d.ts +3 -0
  79. package/dist/api/rpc/index.d.ts.map +1 -0
  80. package/dist/api/rpc/index.js +2 -0
  81. package/dist/api/rpc/index.js.map +1 -0
  82. package/dist/api/rpc/types.d.ts +74 -0
  83. package/dist/api/rpc/types.d.ts.map +1 -0
  84. package/dist/api/rpc/types.js +6 -0
  85. package/dist/api/rpc/types.js.map +1 -0
  86. package/dist/api/sse/client.d.ts +76 -0
  87. package/dist/api/sse/client.d.ts.map +1 -0
  88. package/dist/api/sse/client.js +203 -0
  89. package/dist/api/sse/client.js.map +1 -0
  90. package/dist/api/sse/index.d.ts +4 -0
  91. package/dist/api/sse/index.d.ts.map +1 -0
  92. package/dist/api/sse/index.js +2 -0
  93. package/dist/api/sse/index.js.map +1 -0
  94. package/dist/api/sse/types.d.ts +35 -0
  95. package/dist/api/sse/types.d.ts.map +1 -0
  96. package/dist/api/sse/types.js +6 -0
  97. package/dist/api/sse/types.js.map +1 -0
  98. package/dist/api/utils.d.ts +68 -0
  99. package/dist/api/utils.d.ts.map +1 -0
  100. package/dist/api/utils.js +83 -0
  101. package/dist/api/utils.js.map +1 -0
  102. package/dist/api/ws/client.d.ts +72 -0
  103. package/dist/api/ws/client.d.ts.map +1 -0
  104. package/dist/api/ws/client.js +202 -0
  105. package/dist/api/ws/client.js.map +1 -0
  106. package/dist/api/ws/index.d.ts +4 -0
  107. package/dist/api/ws/index.d.ts.map +1 -0
  108. package/dist/api/ws/index.js +2 -0
  109. package/dist/api/ws/index.js.map +1 -0
  110. package/dist/api/ws/types.d.ts +32 -0
  111. package/dist/api/ws/types.d.ts.map +1 -0
  112. package/dist/api/ws/types.js +6 -0
  113. package/dist/api/ws/types.js.map +1 -0
  114. package/dist/http-client/index.d.ts +1 -1
  115. package/dist/http-client/index.d.ts.map +1 -1
  116. package/dist/http-client/index.js +2 -1
  117. package/dist/http-client/index.js.map +1 -1
  118. package/dist/http-client/web-client.d.ts +3 -3
  119. package/dist/http-client/web-client.d.ts.map +1 -1
  120. package/dist/http-client/web-client.js +16 -6
  121. package/dist/http-client/web-client.js.map +1 -1
  122. package/dist/index.browser.mjs +1 -1
  123. package/dist/index.browser.mjs.map +4 -4
  124. package/dist/index.cjs +1590 -281
  125. package/dist/index.cjs.map +4 -4
  126. package/dist/index.d.ts +8 -3
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +7 -5
  129. package/dist/index.js.map +1 -1
  130. package/dist/index.mjs +1596 -281
  131. package/dist/index.mjs.map +4 -4
  132. package/dist/mero-js.d.ts +198 -7
  133. package/dist/mero-js.d.ts.map +1 -1
  134. package/dist/mero-js.js +329 -38
  135. package/dist/mero-js.js.map +1 -1
  136. package/package.json +42 -7
  137. package/dist/admin-api/admin-client.d.ts +0 -38
  138. package/dist/admin-api/admin-client.d.ts.map +0 -1
  139. package/dist/admin-api/admin-client.js +0 -104
  140. package/dist/admin-api/admin-client.js.map +0 -1
  141. package/dist/admin-api/admin-factory.d.ts +0 -8
  142. package/dist/admin-api/admin-factory.d.ts.map +0 -1
  143. package/dist/admin-api/admin-factory.js +0 -42
  144. package/dist/admin-api/admin-factory.js.map +0 -1
  145. package/dist/admin-api/admin-types.d.ts +0 -213
  146. package/dist/admin-api/admin-types.d.ts.map +0 -1
  147. package/dist/admin-api/admin-types.js +0 -3
  148. package/dist/admin-api/admin-types.js.map +0 -1
  149. package/dist/admin-api/index.d.ts +0 -4
  150. package/dist/admin-api/index.d.ts.map +0 -1
  151. package/dist/admin-api/index.js +0 -5
  152. package/dist/admin-api/index.js.map +0 -1
  153. package/dist/auth-api/auth-client.d.ts +0 -34
  154. package/dist/auth-api/auth-client.d.ts.map +0 -1
  155. package/dist/auth-api/auth-client.js +0 -112
  156. package/dist/auth-api/auth-client.js.map +0 -1
  157. package/dist/auth-api/auth-factory.d.ts +0 -8
  158. package/dist/auth-api/auth-factory.d.ts.map +0 -1
  159. package/dist/auth-api/auth-factory.js +0 -42
  160. package/dist/auth-api/auth-factory.js.map +0 -1
  161. package/dist/auth-api/auth-types.d.ts +0 -127
  162. package/dist/auth-api/auth-types.d.ts.map +0 -1
  163. package/dist/auth-api/auth-types.js +0 -3
  164. package/dist/auth-api/auth-types.js.map +0 -1
  165. package/dist/auth-api/index.d.ts +0 -4
  166. package/dist/auth-api/index.d.ts.map +0 -1
  167. package/dist/auth-api/index.js +0 -5
  168. package/dist/auth-api/index.js.map +0 -1
  169. package/dist/http-client/api-response.d.ts +0 -16
  170. package/dist/http-client/api-response.d.ts.map +0 -1
  171. package/dist/http-client/api-response.js +0 -2
  172. package/dist/http-client/api-response.js.map +0 -1
package/dist/mero-js.js CHANGED
@@ -1,6 +1,9 @@
1
1
  import { createBrowserHttpClient } from './http-client';
2
- import { createAuthApiClientFromHttpClient } from './auth-api';
3
- import { createAdminApiClientFromHttpClient } from './admin-api';
2
+ import { createAuthApiClient } from './api/auth';
3
+ import { createAdminApiClient } from './api/admin';
4
+ import { RpcClient } from './api/rpc';
5
+ import { WebSocketClient } from './api/ws';
6
+ import { SseClient } from './api/sse';
4
7
  /**
5
8
  * Main MeroJs SDK class that manages all API clients and authentication
6
9
  */
@@ -8,40 +11,91 @@ export class MeroJs {
8
11
  constructor(config) {
9
12
  this.tokenData = null;
10
13
  this.refreshPromise = null;
14
+ this.tokenStorage = null;
11
15
  this.config = {
12
16
  timeoutMs: 10000,
13
17
  ...config,
14
18
  };
19
+ this.tokenStorage = config.tokenStorage || null;
15
20
  // Create HTTP client with token management
16
21
  // For Tauri, explicitly set credentials to 'omit' to avoid network errors
17
22
  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
18
27
  this.httpClient = createBrowserHttpClient({
19
28
  baseUrl: this.config.baseUrl,
20
29
  getAuthToken: async () => {
21
30
  const token = await this.getValidToken();
22
31
  return token?.access_token || '';
23
32
  },
33
+ // Wire up automatic token refresh on 401
34
+ refreshToken: async () => {
35
+ const refreshed = await this.performTokenRefresh();
36
+ return refreshed.access_token;
37
+ },
38
+ onTokenRefresh: async (_newToken) => {
39
+ // Token is already updated in performTokenRefresh, but we need
40
+ // to ensure storage is updated if provided
41
+ if (this.tokenData && this.tokenStorage) {
42
+ await this.tokenStorage.set(this.tokenData);
43
+ }
44
+ },
24
45
  timeoutMs: this.config.timeoutMs,
25
46
  credentials: this.config.requestCredentials ?? (isTauri ? 'omit' : undefined),
26
47
  });
27
- // Create API clients
28
- this.authClient = createAuthApiClientFromHttpClient(this.httpClient, {
29
- baseUrl: this.config.baseUrl,
48
+ // Create auth HTTP client (uses authBaseUrl when different from baseUrl)
49
+ // IMPORTANT: Auth client does NOT have refreshToken wired up to prevent infinite loops
50
+ // when the refresh endpoint itself returns 401
51
+ const authHttpClient = createBrowserHttpClient({
52
+ baseUrl: authBaseUrl,
30
53
  getAuthToken: async () => {
31
54
  const token = await this.getValidToken();
32
55
  return token?.access_token || '';
33
56
  },
57
+ // NO refreshToken callback - auth endpoints handle their own auth
58
+ // Wiring refreshToken here would cause infinite loops when refresh fails
34
59
  timeoutMs: this.config.timeoutMs,
60
+ credentials: this.config.requestCredentials ?? (isTauri ? 'omit' : undefined),
35
61
  });
36
- this.adminClient = createAdminApiClientFromHttpClient(this.httpClient, {
37
- baseUrl: this.config.baseUrl,
38
- getAuthToken: async () => {
39
- const token = await this.getValidToken();
40
- return token?.access_token || '';
41
- },
42
- timeoutMs: this.config.timeoutMs,
62
+ // Create API clients
63
+ this.authClient = createAuthApiClient(authHttpClient, {
64
+ baseUrl: authBaseUrl,
65
+ embedded: isEmbedded,
43
66
  });
44
- // Token management is in-memory only
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
+ }
45
99
  }
46
100
  /**
47
101
  * Get the Auth API client
@@ -55,6 +109,39 @@ export class MeroJs {
55
109
  get admin() {
56
110
  return this.adminClient;
57
111
  }
112
+ /**
113
+ * Get the RPC client for executing queries and mutations
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
+ * ```
141
+ */
142
+ get rpc() {
143
+ return this.rpcClient;
144
+ }
58
145
  /**
59
146
  * Authenticate with the provided credentials
60
147
  * This will create the root key on first use
@@ -65,6 +152,7 @@ export class MeroJs {
65
152
  throw new Error('No credentials provided for authentication');
66
153
  }
67
154
  try {
155
+ // Note: Auth API expects snake_case, not camelCase (despite OpenAPI spec showing camelCase)
68
156
  const requestBody = {
69
157
  auth_method: 'user_password',
70
158
  public_key: creds.username,
@@ -76,44 +164,95 @@ export class MeroJs {
76
164
  password: creds.password,
77
165
  },
78
166
  };
79
- const response = await this.authClient.generateTokens(requestBody);
167
+ const response = await this.authClient.getToken(requestBody);
168
+ // Extract expiry from JWT (more reliable than response.expires_in)
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
+ }
80
180
  this.tokenData = {
81
- access_token: response.data.access_token,
82
- refresh_token: response.data.refresh_token,
83
- expires_at: Date.now() + 24 * 60 * 60 * 1000, // Default to 24 hours
181
+ access_token: response.access_token,
182
+ refresh_token: response.refresh_token,
183
+ expires_at: expiresAt,
84
184
  };
185
+ // Persist to storage if provided
186
+ if (this.tokenStorage) {
187
+ await this.tokenStorage.set(this.tokenData);
188
+ }
85
189
  return this.tokenData;
86
190
  }
87
191
  catch (error) {
88
- throw new Error(`Authentication failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
192
+ // Include HTTP error details if available
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}`);
89
204
  }
90
205
  }
91
206
  /**
92
- * Get a valid token, refreshing if necessary
207
+ * Get a valid token, refreshing if necessary.
208
+ * This is called automatically by the HTTP client.
209
+ *
210
+ * Note: The HTTP client also handles 401 errors with automatic refresh,
211
+ * so this preemptive check is an optimization to avoid unnecessary 401s.
93
212
  */
94
213
  async getValidToken() {
214
+ console.log('[mero-js] getValidToken called, tokenData:', this.tokenData ? 'EXISTS' : 'NULL');
95
215
  if (!this.tokenData) {
216
+ console.log('[mero-js] No tokenData, returning null');
96
217
  return null;
97
218
  }
98
- // Check if token is expired (with 5 minute buffer)
99
- const bufferTime = 5 * 60 * 1000; // 5 minutes
100
- if (Date.now() >= this.tokenData.expires_at - bufferTime) {
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');
101
226
  return await this.refreshToken();
102
227
  }
228
+ console.log('[mero-js] Token valid, returning tokenData');
103
229
  return this.tokenData;
104
230
  }
105
231
  /**
106
- * Refresh the access token using the refresh token
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
107
236
  */
108
237
  async refreshToken() {
109
- if (!this.tokenData?.refresh_token) {
110
- throw new Error('No refresh token available');
111
- }
238
+ return this.performTokenRefresh();
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() {
112
248
  // Prevent multiple simultaneous refresh attempts
249
+ // This is critical for avoiding 100+ refresh requests when multiple 401s come in
113
250
  if (this.refreshPromise) {
251
+ console.log('[mero-js] Refresh already in progress, waiting for existing promise');
114
252
  return this.refreshPromise;
115
253
  }
116
- this.refreshPromise = this.performTokenRefresh();
254
+ console.log('[mero-js] Starting new refresh attempt');
255
+ this.refreshPromise = this.doTokenRefresh();
117
256
  try {
118
257
  const newToken = await this.refreshPromise;
119
258
  return newToken;
@@ -123,35 +262,101 @@ export class MeroJs {
123
262
  }
124
263
  }
125
264
  /**
126
- * Perform the actual token refresh
265
+ * Internal: Actually perform the refresh request.
266
+ * Called only from performTokenRefresh() which manages the deduplication.
127
267
  */
128
- async performTokenRefresh() {
268
+ async doTokenRefresh() {
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);
129
273
  if (!this.tokenData?.refresh_token) {
130
274
  throw new Error('No refresh token available');
131
275
  }
276
+ if (!this.tokenData?.access_token) {
277
+ throw new Error('No access token available for refresh (server requires both tokens)');
278
+ }
132
279
  try {
133
- const response = await this.authClient.refreshToken({
280
+ // Server requires BOTH access_token and refresh_token (snake_case)
281
+ const refreshPayload = {
134
282
  access_token: this.tokenData.access_token,
135
283
  refresh_token: this.tokenData.refresh_token,
136
- });
284
+ };
285
+ console.log('[mero-js doTokenRefresh] Payload keys:', Object.keys(refreshPayload));
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
+ }
137
301
  this.tokenData = {
138
- access_token: response.data.access_token,
139
- refresh_token: response.data.refresh_token,
140
- expires_at: Date.now() + 24 * 60 * 60 * 1000, // Default to 24 hours
302
+ access_token: response.access_token,
303
+ refresh_token: response.refresh_token,
304
+ expires_at: expiresAt,
141
305
  };
306
+ // Persist to storage if provided
307
+ if (this.tokenStorage) {
308
+ await this.tokenStorage.set(this.tokenData);
309
+ }
142
310
  return this.tokenData;
143
311
  }
144
312
  catch (error) {
145
- // If refresh fails, clear the token and require re-authentication
146
- this.clearToken();
313
+ console.error('[mero-js] Token refresh failed:', error);
314
+ // Check if it's an HTTP error with status code
315
+ const httpError = error;
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();
147
349
  throw new Error(`Token refresh failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
148
350
  }
149
351
  }
150
352
  /**
151
- * Clear the current token
353
+ * Clear the current token from memory and storage
152
354
  */
153
- clearToken() {
355
+ async clearToken() {
154
356
  this.tokenData = null;
357
+ if (this.tokenStorage) {
358
+ await this.tokenStorage.clear();
359
+ }
155
360
  }
156
361
  /**
157
362
  * Check if the SDK is authenticated
@@ -165,6 +370,92 @@ export class MeroJs {
165
370
  getTokenData() {
166
371
  return this.tokenData;
167
372
  }
373
+ /**
374
+ * Manually set the token data.
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
+ * ```
387
+ */
388
+ async setToken(tokenData) {
389
+ this.tokenData = tokenData;
390
+ if (this.tokenStorage) {
391
+ if (tokenData) {
392
+ await this.tokenStorage.set(tokenData);
393
+ }
394
+ else {
395
+ await this.tokenStorage.clear();
396
+ }
397
+ }
398
+ }
399
+ /**
400
+ * Create a WebSocket client for real-time event subscriptions
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
+ * ```
419
+ */
420
+ createWebSocket(options) {
421
+ return new WebSocketClient({
422
+ baseUrl: this.config.baseUrl,
423
+ getAuthToken: async () => this.tokenData?.access_token || null,
424
+ ...options,
425
+ });
426
+ }
427
+ /**
428
+ * Create an SSE client for server-sent event streaming
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
+ * ```
450
+ */
451
+ createSse(options) {
452
+ return new SseClient({
453
+ baseUrl: this.config.baseUrl,
454
+ httpClient: this.httpClient,
455
+ getAuthToken: async () => this.tokenData?.access_token || null,
456
+ ...options,
457
+ });
458
+ }
168
459
  }
169
460
  /**
170
461
  * Create a new MeroJs SDK instance
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calimero-network/mero-js",
3
- "version": "1.1.0",
3
+ "version": "2.0.0-beta.1",
4
4
  "description": "Pure JavaScript SDK for Calimero",
5
5
  "type": "module",
6
6
  "exports": {
@@ -10,13 +10,42 @@
10
10
  "import": "./dist/index.mjs",
11
11
  "require": "./dist/index.cjs",
12
12
  "default": "./dist/index.mjs"
13
+ },
14
+ "./http-client": {
15
+ "types": "./dist/http-client/index.d.ts",
16
+ "import": "./dist/http-client/index.js",
17
+ "default": "./dist/http-client/index.js"
18
+ },
19
+ "./api/admin": {
20
+ "types": "./dist/api/admin/index.d.ts",
21
+ "import": "./dist/api/admin/index.js",
22
+ "default": "./dist/api/admin/index.js"
23
+ },
24
+ "./api/auth": {
25
+ "types": "./dist/api/auth/index.d.ts",
26
+ "import": "./dist/api/auth/index.js",
27
+ "default": "./dist/api/auth/index.js"
28
+ },
29
+ "./api/rpc": {
30
+ "types": "./dist/api/rpc/index.d.ts",
31
+ "import": "./dist/api/rpc/index.js",
32
+ "default": "./dist/api/rpc/index.js"
33
+ },
34
+ "./api/ws": {
35
+ "types": "./dist/api/ws/index.d.ts",
36
+ "import": "./dist/api/ws/index.js",
37
+ "default": "./dist/api/ws/index.js"
38
+ },
39
+ "./api/sse": {
40
+ "types": "./dist/api/sse/index.d.ts",
41
+ "import": "./dist/api/sse/index.js",
42
+ "default": "./dist/api/sse/index.js"
13
43
  }
14
44
  },
15
45
  "main": "./dist/index.cjs",
16
46
  "module": "./dist/index.mjs",
17
47
  "types": "./dist/index.d.ts",
18
48
  "sideEffects": false,
19
- "dependencies": {},
20
49
  "devDependencies": {
21
50
  "@semantic-release/changelog": "^6.0.3",
22
51
  "@semantic-release/commit-analyzer": "^13.0.0",
@@ -25,26 +54,32 @@
25
54
  "@semantic-release/github": "^9.2.6",
26
55
  "@semantic-release/npm": "^12.0.1",
27
56
  "@semantic-release/release-notes-generator": "^12.1.0",
28
- "conventional-changelog-conventionalcommits": "^7.0.0",
29
57
  "@types/node": "^18.19.34",
30
58
  "@typescript-eslint/eslint-plugin": "^5.62.0",
31
59
  "@typescript-eslint/parser": "^5.62.0",
60
+ "conventional-changelog-conventionalcommits": "^7.0.0",
32
61
  "esbuild": "^0.25.8",
33
62
  "eslint": "^8.57.0",
63
+ "js-yaml": "4",
64
+ "msw": "^2.12.7",
65
+ "openapi-types": "^12.1.3",
34
66
  "rimraf": "^3.0.0",
35
67
  "semantic-release": "^24.2.9",
68
+ "tsx": "^4.21.0",
36
69
  "typescript": "^4.9.5",
37
70
  "vitest": "^2.0.0"
38
71
  },
39
72
  "scripts": {
40
- "build": "tsc && esbuild src/index.ts --bundle --platform=neutral --target=es2020 --format=esm --outfile=dist/index.mjs --sourcemap && esbuild src/index.ts --bundle --platform=neutral --target=es2020 --format=cjs --outfile=dist/index.cjs --sourcemap && esbuild src/index.ts --bundle --platform=browser --target=es2020 --format=esm --outfile=dist/index.browser.mjs --sourcemap --minify",
73
+ "build": "tsc -p tsconfig.build.json && esbuild src/index.ts --bundle --platform=neutral --target=es2020 --format=esm --outfile=dist/index.mjs --sourcemap && esbuild src/index.ts --bundle --platform=neutral --target=es2020 --format=cjs --outfile=dist/index.cjs --sourcemap && esbuild src/index.ts --bundle --platform=browser --target=es2020 --format=esm --outfile=dist/index.browser.mjs --sourcemap --minify",
41
74
  "test": "vitest run --passWithNoTests",
42
75
  "test:unit": "vitest run --config vitest.config.ts",
76
+ "test:integration": "vitest run --config vitest.integration.config.ts",
43
77
  "test:e2e": "vitest run --config vitest.e2e.config.ts",
78
+ "test:e2e:smoke": "vitest run --config vitest.e2e.config.ts tests/e2e/smoke.test.ts",
79
+ "test:e2e:full": "vitest run --config vitest.e2e.config.ts tests/e2e/admin-api.test.ts tests/e2e/auth-api.test.ts",
44
80
  "test:e2e:watch": "vitest --config vitest.e2e.config.ts",
45
- "test:e2e:auth": "vitest run --config vitest.e2e.config.ts tests/e2e/auth-api.test.ts",
46
- "test:e2e:admin": "vitest run --config vitest.e2e.config.ts tests/e2e/admin-api.test.ts",
47
- "test:e2e:examples": "vitest run --config vitest.e2e.config.ts tests/e2e/examples.test.ts",
81
+ "test:all": "pnpm test:unit && pnpm test:integration && pnpm test:e2e:smoke",
82
+ "generate:msw": "node scripts/generate-msw-handlers.mjs",
48
83
  "lint": "eslint .",
49
84
  "lint:fix": "eslint . --fix",
50
85
  "eslint": "eslint .",
@@ -1,38 +0,0 @@
1
- import { HttpClient } from '../http-client';
2
- import { HealthStatus, AdminAuthStatus, InstallApplicationRequest, InstallDevApplicationRequest, InstallApplicationResponse, UninstallApplicationResponse, ListApplicationsResponse, GetApplicationResponse, CreateContextRequest, CreateContextResponse, DeleteContextResponse, ListContextsResponse, GetContextResponse, UploadBlobRequest, UploadBlobResponse, DeleteBlobResponse, ListBlobsResponse, GetBlobResponse, CreateAliasRequest, CreateAliasResponse, DeleteAliasResponse, ListAliasesResponse, GetAliasResponse, GetNetworkPeersResponse, GetNetworkStatsResponse, GetNetworkConfigResponse, UpdateNetworkConfigRequest, UpdateNetworkConfigResponse, GetSystemInfoResponse, GetSystemLogsResponse, GetSystemMetricsResponse, RestartSystemResponse, ShutdownSystemResponse } from './admin-types';
3
- export declare class AdminApiClient {
4
- private httpClient;
5
- constructor(httpClient: HttpClient);
6
- healthCheck(): Promise<HealthStatus>;
7
- isAuthed(): Promise<AdminAuthStatus>;
8
- installApplication(request: InstallApplicationRequest): Promise<InstallApplicationResponse>;
9
- installDevApplication(request: InstallDevApplicationRequest): Promise<InstallApplicationResponse>;
10
- uninstallApplication(appId: string): Promise<UninstallApplicationResponse>;
11
- listApplications(): Promise<ListApplicationsResponse>;
12
- getApplication(appId: string): Promise<GetApplicationResponse>;
13
- createContext(request: CreateContextRequest): Promise<CreateContextResponse>;
14
- deleteContext(contextId: string): Promise<DeleteContextResponse>;
15
- getContexts(): Promise<ListContextsResponse>;
16
- getContext(contextId: string): Promise<GetContextResponse>;
17
- uploadBlob(request: UploadBlobRequest): Promise<UploadBlobResponse>;
18
- deleteBlob(blobId: string): Promise<DeleteBlobResponse>;
19
- listBlobs(): Promise<ListBlobsResponse>;
20
- getBlob(blobId: string): Promise<GetBlobResponse>;
21
- createAlias(request: CreateAliasRequest): Promise<CreateAliasResponse>;
22
- deleteAlias(aliasId: string): Promise<DeleteAliasResponse>;
23
- listAliases(): Promise<ListAliasesResponse>;
24
- getAlias(aliasId: string): Promise<GetAliasResponse>;
25
- getNetworkPeers(): Promise<GetNetworkPeersResponse>;
26
- getNetworkStats(): Promise<GetNetworkStatsResponse>;
27
- getNetworkConfig(): Promise<GetNetworkConfigResponse>;
28
- updateNetworkConfig(request: UpdateNetworkConfigRequest): Promise<UpdateNetworkConfigResponse>;
29
- getPeersCount(): Promise<{
30
- count: number;
31
- }>;
32
- getSystemInfo(): Promise<GetSystemInfoResponse>;
33
- getSystemLogs(): Promise<GetSystemLogsResponse>;
34
- getSystemMetrics(): Promise<GetSystemMetricsResponse>;
35
- restartSystem(): Promise<RestartSystemResponse>;
36
- shutdownSystem(): Promise<ShutdownSystemResponse>;
37
- }
38
- //# sourceMappingURL=admin-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin-client.d.ts","sourceRoot":"","sources":["../../src/admin-api/admin-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAIL,YAAY,EACZ,eAAe,EAGf,yBAAyB,EACzB,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EAGtB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAGlB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EAGf,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAGhB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAG3B,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,eAAe,CAAC;AAEvB,qBAAa,cAAc;IACb,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAGpC,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IASpC,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAKpC,kBAAkB,CACtB,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,0BAA0B,CAAC;IAOhC,qBAAqB,CACzB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,0BAA0B,CAAC;IAOhC,oBAAoB,CACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,4BAA4B,CAAC;IAMlC,gBAAgB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAIrD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAO9D,aAAa,CACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAI3B,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAMhE,WAAW,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAI5C,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK1D,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAInE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIvD,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAIvC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAKjD,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAItE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI1D,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI3C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKpD,eAAe,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAInD,eAAe,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAInD,gBAAgB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAIrD,mBAAmB,CACvB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,2BAA2B,CAAC;IAOjC,aAAa,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAK3C,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAI/C,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAI/C,gBAAgB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAIrD,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAI/C,cAAc,IAAI,OAAO,CAAC,sBAAsB,CAAC;CAGxD"}