@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.
- package/README.md +341 -319
- package/dist/api/admin/aliases.d.ts +54 -0
- package/dist/api/admin/aliases.d.ts.map +1 -0
- package/dist/api/admin/aliases.js +43 -0
- package/dist/api/admin/aliases.js.map +1 -0
- package/dist/api/admin/applications.d.ts +52 -0
- package/dist/api/admin/applications.d.ts.map +1 -0
- package/dist/api/admin/applications.js +31 -0
- package/dist/api/admin/applications.js.map +1 -0
- package/dist/api/admin/blobs.d.ts +24 -0
- package/dist/api/admin/blobs.d.ts.map +1 -0
- package/dist/api/admin/blobs.js +58 -0
- package/dist/api/admin/blobs.js.map +1 -0
- package/dist/api/admin/capabilities.d.ts +26 -0
- package/dist/api/admin/capabilities.d.ts.map +1 -0
- package/dist/api/admin/capabilities.js +13 -0
- package/dist/api/admin/capabilities.js.map +1 -0
- package/dist/api/admin/client.d.ts +63 -0
- package/dist/api/admin/client.d.ts.map +1 -0
- package/dist/api/admin/client.js +103 -0
- package/dist/api/admin/client.js.map +1 -0
- package/dist/api/admin/contexts.d.ts +110 -0
- package/dist/api/admin/contexts.d.ts.map +1 -0
- package/dist/api/admin/contexts.js +61 -0
- package/dist/api/admin/contexts.js.map +1 -0
- package/dist/api/admin/factory.d.ts +4 -0
- package/dist/api/admin/factory.d.ts.map +1 -0
- package/dist/api/admin/factory.js +5 -0
- package/dist/api/admin/factory.js.map +1 -0
- package/dist/api/admin/identity.d.ts +10 -0
- package/dist/api/admin/identity.d.ts.map +1 -0
- package/dist/api/admin/identity.js +10 -0
- package/dist/api/admin/identity.js.map +1 -0
- package/dist/api/admin/index.d.ts +23 -0
- package/dist/api/admin/index.d.ts.map +1 -0
- package/dist/api/admin/index.js +26 -0
- package/dist/api/admin/index.js.map +1 -0
- package/dist/api/admin/network.d.ts +10 -0
- package/dist/api/admin/network.d.ts.map +1 -0
- package/dist/api/admin/network.js +9 -0
- package/dist/api/admin/network.js.map +1 -0
- package/dist/api/admin/proposals.d.ts +49 -0
- package/dist/api/admin/proposals.d.ts.map +1 -0
- package/dist/api/admin/proposals.js +34 -0
- package/dist/api/admin/proposals.js.map +1 -0
- package/dist/api/admin/public.d.ts +15 -0
- package/dist/api/admin/public.d.ts.map +1 -0
- package/dist/api/admin/public.js +18 -0
- package/dist/api/admin/public.js.map +1 -0
- package/dist/api/admin/tee.d.ts +74 -0
- package/dist/api/admin/tee.d.ts.map +1 -0
- package/dist/api/admin/tee.js +16 -0
- package/dist/api/admin/tee.js.map +1 -0
- package/dist/api/auth/client.d.ts +55 -0
- package/dist/api/auth/client.d.ts.map +1 -0
- package/dist/api/auth/client.js +127 -0
- package/dist/api/auth/client.js.map +1 -0
- package/dist/api/auth/factory.d.ts +4 -0
- package/dist/api/auth/factory.d.ts.map +1 -0
- package/dist/api/auth/factory.js +5 -0
- package/dist/api/auth/factory.js.map +1 -0
- package/dist/api/auth/index.d.ts +4 -0
- package/dist/api/auth/index.d.ts.map +1 -0
- package/dist/api/auth/index.js +4 -0
- package/dist/api/auth/index.js.map +1 -0
- package/dist/api/auth/types.d.ts +94 -0
- package/dist/api/auth/types.d.ts.map +1 -0
- package/dist/api/auth/types.js +4 -0
- package/dist/api/auth/types.js.map +1 -0
- package/dist/api/index.d.ts +15 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +18 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/rpc/client.d.ts +76 -0
- package/dist/api/rpc/client.d.ts.map +1 -0
- package/dist/api/rpc/client.js +126 -0
- package/dist/api/rpc/client.js.map +1 -0
- package/dist/api/rpc/index.d.ts +3 -0
- package/dist/api/rpc/index.d.ts.map +1 -0
- package/dist/api/rpc/index.js +2 -0
- package/dist/api/rpc/index.js.map +1 -0
- package/dist/api/rpc/types.d.ts +74 -0
- package/dist/api/rpc/types.d.ts.map +1 -0
- package/dist/api/rpc/types.js +6 -0
- package/dist/api/rpc/types.js.map +1 -0
- package/dist/api/sse/client.d.ts +76 -0
- package/dist/api/sse/client.d.ts.map +1 -0
- package/dist/api/sse/client.js +203 -0
- package/dist/api/sse/client.js.map +1 -0
- package/dist/api/sse/index.d.ts +4 -0
- package/dist/api/sse/index.d.ts.map +1 -0
- package/dist/api/sse/index.js +2 -0
- package/dist/api/sse/index.js.map +1 -0
- package/dist/api/sse/types.d.ts +35 -0
- package/dist/api/sse/types.d.ts.map +1 -0
- package/dist/api/sse/types.js +6 -0
- package/dist/api/sse/types.js.map +1 -0
- package/dist/api/utils.d.ts +68 -0
- package/dist/api/utils.d.ts.map +1 -0
- package/dist/api/utils.js +83 -0
- package/dist/api/utils.js.map +1 -0
- package/dist/api/ws/client.d.ts +72 -0
- package/dist/api/ws/client.d.ts.map +1 -0
- package/dist/api/ws/client.js +202 -0
- package/dist/api/ws/client.js.map +1 -0
- package/dist/api/ws/index.d.ts +4 -0
- package/dist/api/ws/index.d.ts.map +1 -0
- package/dist/api/ws/index.js +2 -0
- package/dist/api/ws/index.js.map +1 -0
- package/dist/api/ws/types.d.ts +32 -0
- package/dist/api/ws/types.d.ts.map +1 -0
- package/dist/api/ws/types.js +6 -0
- package/dist/api/ws/types.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 +2 -1
- 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 +16 -6
- package/dist/http-client/web-client.js.map +1 -1
- package/dist/index.browser.mjs +1 -1
- package/dist/index.browser.mjs.map +4 -4
- package/dist/index.cjs +1590 -281
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1596 -281
- package/dist/index.mjs.map +4 -4
- package/dist/mero-js.d.ts +198 -7
- package/dist/mero-js.d.ts.map +1 -1
- package/dist/mero-js.js +329 -38
- package/dist/mero-js.js.map +1 -1
- package/package.json +42 -7
- package/dist/admin-api/admin-client.d.ts +0 -38
- package/dist/admin-api/admin-client.d.ts.map +0 -1
- package/dist/admin-api/admin-client.js +0 -104
- package/dist/admin-api/admin-client.js.map +0 -1
- package/dist/admin-api/admin-factory.d.ts +0 -8
- package/dist/admin-api/admin-factory.d.ts.map +0 -1
- package/dist/admin-api/admin-factory.js +0 -42
- package/dist/admin-api/admin-factory.js.map +0 -1
- package/dist/admin-api/admin-types.d.ts +0 -213
- package/dist/admin-api/admin-types.d.ts.map +0 -1
- package/dist/admin-api/admin-types.js +0 -3
- package/dist/admin-api/admin-types.js.map +0 -1
- package/dist/admin-api/index.d.ts +0 -4
- package/dist/admin-api/index.d.ts.map +0 -1
- package/dist/admin-api/index.js +0 -5
- package/dist/admin-api/index.js.map +0 -1
- package/dist/auth-api/auth-client.d.ts +0 -34
- package/dist/auth-api/auth-client.d.ts.map +0 -1
- package/dist/auth-api/auth-client.js +0 -112
- package/dist/auth-api/auth-client.js.map +0 -1
- package/dist/auth-api/auth-factory.d.ts +0 -8
- package/dist/auth-api/auth-factory.d.ts.map +0 -1
- package/dist/auth-api/auth-factory.js +0 -42
- package/dist/auth-api/auth-factory.js.map +0 -1
- package/dist/auth-api/auth-types.d.ts +0 -127
- package/dist/auth-api/auth-types.d.ts.map +0 -1
- package/dist/auth-api/auth-types.js +0 -3
- package/dist/auth-api/auth-types.js.map +0 -1
- package/dist/auth-api/index.d.ts +0 -4
- package/dist/auth-api/index.d.ts.map +0 -1
- package/dist/auth-api/index.js +0 -5
- package/dist/auth-api/index.js.map +0 -1
- package/dist/http-client/api-response.d.ts +0 -16
- package/dist/http-client/api-response.d.ts.map +0 -1
- package/dist/http-client/api-response.js +0 -2
- package/dist/http-client/api-response.js.map +0 -1
package/dist/mero-js.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { RpcClient } from './api/rpc';
|
|
2
|
+
import { WebSocketClient } from './api/ws';
|
|
3
|
+
import { SseClient } from './api/sse';
|
|
4
|
+
import type { AuthApiClient } from './api/auth';
|
|
5
|
+
import type { AdminApiClient } from './api/admin';
|
|
6
|
+
import type { WebSocketClientOptions } from './api/ws';
|
|
7
|
+
import type { SseClientOptions } from './api/sse';
|
|
3
8
|
export interface MeroJsConfig {
|
|
4
9
|
/** Base URL for the Calimero node */
|
|
5
10
|
baseUrl: string;
|
|
11
|
+
/** Auth service base URL (for proxied mode). If not specified, uses baseUrl (embedded mode) */
|
|
12
|
+
authBaseUrl?: string;
|
|
6
13
|
/** Initial credentials for authentication */
|
|
7
14
|
credentials?: {
|
|
8
15
|
username: string;
|
|
@@ -12,6 +19,63 @@ export interface MeroJsConfig {
|
|
|
12
19
|
timeoutMs?: number;
|
|
13
20
|
/** Request credentials mode for fetch (omit, same-origin, include) */
|
|
14
21
|
requestCredentials?: RequestCredentials;
|
|
22
|
+
/**
|
|
23
|
+
* Optional token storage for persistence across sessions.
|
|
24
|
+
* If not provided, tokens are stored in-memory only.
|
|
25
|
+
*
|
|
26
|
+
* @example Browser localStorage
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const mero = new MeroJs({
|
|
29
|
+
* baseUrl: 'http://localhost:3000',
|
|
30
|
+
* tokenStorage: {
|
|
31
|
+
* async get() {
|
|
32
|
+
* const data = localStorage.getItem('mero-token');
|
|
33
|
+
* return data ? JSON.parse(data) : null;
|
|
34
|
+
* },
|
|
35
|
+
* async set(token) {
|
|
36
|
+
* localStorage.setItem('mero-token', JSON.stringify(token));
|
|
37
|
+
* },
|
|
38
|
+
* async clear() {
|
|
39
|
+
* localStorage.removeItem('mero-token');
|
|
40
|
+
* },
|
|
41
|
+
* },
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @example React Native AsyncStorage
|
|
46
|
+
* ```typescript
|
|
47
|
+
* import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
48
|
+
*
|
|
49
|
+
* const mero = new MeroJs({
|
|
50
|
+
* baseUrl: 'http://localhost:3000',
|
|
51
|
+
* tokenStorage: {
|
|
52
|
+
* async get() {
|
|
53
|
+
* const data = await AsyncStorage.getItem('mero-token');
|
|
54
|
+
* return data ? JSON.parse(data) : null;
|
|
55
|
+
* },
|
|
56
|
+
* async set(token) {
|
|
57
|
+
* await AsyncStorage.setItem('mero-token', JSON.stringify(token));
|
|
58
|
+
* },
|
|
59
|
+
* async clear() {
|
|
60
|
+
* await AsyncStorage.removeItem('mero-token');
|
|
61
|
+
* },
|
|
62
|
+
* },
|
|
63
|
+
* });
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
tokenStorage?: TokenStorage;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Interface for custom token storage implementations.
|
|
70
|
+
* Allows persistence of tokens across sessions in any environment.
|
|
71
|
+
*/
|
|
72
|
+
export interface TokenStorage {
|
|
73
|
+
/** Get the stored token data */
|
|
74
|
+
get(): Promise<TokenData | null>;
|
|
75
|
+
/** Store the token data */
|
|
76
|
+
set(token: TokenData): Promise<void>;
|
|
77
|
+
/** Clear the stored token data */
|
|
78
|
+
clear(): Promise<void>;
|
|
15
79
|
}
|
|
16
80
|
export interface TokenData {
|
|
17
81
|
access_token: string;
|
|
@@ -26,9 +90,26 @@ export declare class MeroJs {
|
|
|
26
90
|
private httpClient;
|
|
27
91
|
private authClient;
|
|
28
92
|
private adminClient;
|
|
93
|
+
private rpcClient;
|
|
29
94
|
private tokenData;
|
|
30
95
|
private refreshPromise;
|
|
96
|
+
private tokenStorage;
|
|
31
97
|
constructor(config: MeroJsConfig);
|
|
98
|
+
/**
|
|
99
|
+
* Initialize the SDK by loading tokens from storage (if provided).
|
|
100
|
+
* Call this after construction if using tokenStorage.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* const mero = new MeroJs({ baseUrl: '...', tokenStorage: myStorage });
|
|
105
|
+
* await mero.init(); // Load stored tokens
|
|
106
|
+
*
|
|
107
|
+
* if (!mero.isAuthenticated()) {
|
|
108
|
+
* await mero.authenticate({ username: '...', password: '...' });
|
|
109
|
+
* }
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
init(): Promise<void>;
|
|
32
113
|
/**
|
|
33
114
|
* Get the Auth API client
|
|
34
115
|
*/
|
|
@@ -37,6 +118,37 @@ export declare class MeroJs {
|
|
|
37
118
|
* Get the Admin API client
|
|
38
119
|
*/
|
|
39
120
|
get admin(): AdminApiClient;
|
|
121
|
+
/**
|
|
122
|
+
* Get the RPC client for executing queries and mutations
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* // Execute a query
|
|
127
|
+
* const result = await meroJs.rpc.query(
|
|
128
|
+
* 'context-id',
|
|
129
|
+
* 'get',
|
|
130
|
+
* { key: 'myKey' },
|
|
131
|
+
* 'ed25519:executor-public-key'
|
|
132
|
+
* );
|
|
133
|
+
*
|
|
134
|
+
* // Execute a mutation
|
|
135
|
+
* await meroJs.rpc.mutate(
|
|
136
|
+
* 'context-id',
|
|
137
|
+
* 'set',
|
|
138
|
+
* { key: 'myKey', value: 'myValue' },
|
|
139
|
+
* 'ed25519:executor-public-key'
|
|
140
|
+
* );
|
|
141
|
+
*
|
|
142
|
+
* // Or use the generic execute method
|
|
143
|
+
* const result = await meroJs.rpc.execute({
|
|
144
|
+
* contextId: 'context-id',
|
|
145
|
+
* method: 'set',
|
|
146
|
+
* args: { key: 'myKey', value: 'myValue' },
|
|
147
|
+
* executorPublicKey: 'ed25519:...',
|
|
148
|
+
* });
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
get rpc(): RpcClient;
|
|
40
152
|
/**
|
|
41
153
|
* Authenticate with the provided credentials
|
|
42
154
|
* This will create the root key on first use
|
|
@@ -46,21 +158,37 @@ export declare class MeroJs {
|
|
|
46
158
|
password: string;
|
|
47
159
|
}): Promise<TokenData>;
|
|
48
160
|
/**
|
|
49
|
-
* Get a valid token, refreshing if necessary
|
|
161
|
+
* Get a valid token, refreshing if necessary.
|
|
162
|
+
* This is called automatically by the HTTP client.
|
|
163
|
+
*
|
|
164
|
+
* Note: The HTTP client also handles 401 errors with automatic refresh,
|
|
165
|
+
* so this preemptive check is an optimization to avoid unnecessary 401s.
|
|
50
166
|
*/
|
|
51
167
|
private getValidToken;
|
|
52
168
|
/**
|
|
53
|
-
* Refresh the access token using the refresh token
|
|
169
|
+
* Refresh the access token using the refresh token.
|
|
170
|
+
* Called automatically when token is about to expire or on 401.
|
|
171
|
+
*
|
|
172
|
+
* @deprecated Use performTokenRefresh instead - this is kept for compatibility
|
|
54
173
|
*/
|
|
55
174
|
private refreshToken;
|
|
56
175
|
/**
|
|
57
|
-
* Perform the actual token refresh
|
|
176
|
+
* Perform the actual token refresh.
|
|
177
|
+
* This is used by both preemptive refresh and HTTP client's 401 handler.
|
|
178
|
+
*
|
|
179
|
+
* Uses a shared promise to prevent multiple simultaneous refresh attempts,
|
|
180
|
+
* even when called from multiple sources (preemptive check, HTTP 401 handler, etc.)
|
|
58
181
|
*/
|
|
59
182
|
private performTokenRefresh;
|
|
60
183
|
/**
|
|
61
|
-
*
|
|
184
|
+
* Internal: Actually perform the refresh request.
|
|
185
|
+
* Called only from performTokenRefresh() which manages the deduplication.
|
|
62
186
|
*/
|
|
63
|
-
|
|
187
|
+
private doTokenRefresh;
|
|
188
|
+
/**
|
|
189
|
+
* Clear the current token from memory and storage
|
|
190
|
+
*/
|
|
191
|
+
clearToken(): Promise<void>;
|
|
64
192
|
/**
|
|
65
193
|
* Check if the SDK is authenticated
|
|
66
194
|
*/
|
|
@@ -69,6 +197,69 @@ export declare class MeroJs {
|
|
|
69
197
|
* Get the current token data (for debugging)
|
|
70
198
|
*/
|
|
71
199
|
getTokenData(): TokenData | null;
|
|
200
|
+
/**
|
|
201
|
+
* Manually set the token data.
|
|
202
|
+
* Use this when handling authentication externally (e.g., OAuth flows).
|
|
203
|
+
*
|
|
204
|
+
* @param tokenData - The token data to set, or null to clear
|
|
205
|
+
* @example
|
|
206
|
+
* ```typescript
|
|
207
|
+
* // After receiving tokens from external auth flow
|
|
208
|
+
* await meroJs.setToken({
|
|
209
|
+
* access_token: 'eyJ...',
|
|
210
|
+
* refresh_token: 'eyJ...',
|
|
211
|
+
* expires_at: Date.now() + 3600000,
|
|
212
|
+
* });
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
setToken(tokenData: TokenData | null): Promise<void>;
|
|
216
|
+
/**
|
|
217
|
+
* Create a WebSocket client for real-time event subscriptions
|
|
218
|
+
*
|
|
219
|
+
* @param options - Optional WebSocket client options to override defaults
|
|
220
|
+
* @returns A new WebSocketClient instance
|
|
221
|
+
*
|
|
222
|
+
* @example
|
|
223
|
+
* ```typescript
|
|
224
|
+
* const ws = meroJs.createWebSocket();
|
|
225
|
+
* await ws.connect();
|
|
226
|
+
*
|
|
227
|
+
* ws.onEvent((event) => {
|
|
228
|
+
* console.log('Received event:', event);
|
|
229
|
+
* });
|
|
230
|
+
*
|
|
231
|
+
* await ws.subscribe(['context-id-1', 'context-id-2']);
|
|
232
|
+
*
|
|
233
|
+
* // Later...
|
|
234
|
+
* ws.disconnect();
|
|
235
|
+
* ```
|
|
236
|
+
*/
|
|
237
|
+
createWebSocket(options?: Partial<Omit<WebSocketClientOptions, 'baseUrl' | 'getAuthToken'>>): WebSocketClient;
|
|
238
|
+
/**
|
|
239
|
+
* Create an SSE client for server-sent event streaming
|
|
240
|
+
*
|
|
241
|
+
* @param options - Optional SSE client options to override defaults
|
|
242
|
+
* @returns A new SseClient instance
|
|
243
|
+
*
|
|
244
|
+
* @example
|
|
245
|
+
* ```typescript
|
|
246
|
+
* const sse = meroJs.createSse();
|
|
247
|
+
* const sessionId = await sse.connect();
|
|
248
|
+
*
|
|
249
|
+
* sse.onEvent((event) => {
|
|
250
|
+
* console.log('Received event:', event);
|
|
251
|
+
* });
|
|
252
|
+
*
|
|
253
|
+
* await sse.subscribe(['context-id-1', 'context-id-2']);
|
|
254
|
+
*
|
|
255
|
+
* // Get session info
|
|
256
|
+
* const session = await sse.getSession();
|
|
257
|
+
*
|
|
258
|
+
* // Later...
|
|
259
|
+
* sse.disconnect();
|
|
260
|
+
* ```
|
|
261
|
+
*/
|
|
262
|
+
createSse(options?: Partial<Omit<SseClientOptions, 'baseUrl' | 'httpClient' | 'getAuthToken'>>): SseClient;
|
|
72
263
|
}
|
|
73
264
|
/**
|
|
74
265
|
* Create a new MeroJs SDK instance
|
package/dist/mero-js.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mero-js.d.ts","sourceRoot":"","sources":["../src/mero-js.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"mero-js.d.ts","sourceRoot":"","sources":["../src/mero-js.ts"],"names":[],"mappings":"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"}
|