@calimero-network/mero-js 7.0.0 → 7.0.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/dist/http-client/http-factory.d.ts +18 -0
- package/dist/http-client/http-factory.d.ts.map +1 -1
- package/dist/http-client/http-factory.js +2 -0
- package/dist/http-client/http-factory.js.map +1 -1
- package/dist/http-client/http-types.d.ts +7 -0
- package/dist/http-client/http-types.d.ts.map +1 -1
- 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 -1
- package/dist/http-client/index.js.map +1 -1
- package/dist/http-client/web-client.d.ts +16 -1
- package/dist/http-client/web-client.d.ts.map +1 -1
- package/dist/http-client/web-client.js +48 -1
- package/dist/http-client/web-client.js.map +1 -1
- package/dist/index.browser.mjs +2 -2
- package/dist/index.browser.mjs.map +3 -3
- package/dist/index.cjs +80 -12
- package/dist/index.cjs.map +2 -2
- package/dist/index.mjs +80 -12
- package/dist/index.mjs.map +2 -2
- package/dist/mero-js.d.ts +17 -4
- package/dist/mero-js.d.ts.map +1 -1
- package/dist/mero-js.js +59 -13
- package/dist/mero-js.js.map +1 -1
- package/package.json +1 -1
package/dist/mero-js.d.ts
CHANGED
|
@@ -78,13 +78,26 @@ export declare class MeroJs {
|
|
|
78
78
|
*/
|
|
79
79
|
private getValidToken;
|
|
80
80
|
/**
|
|
81
|
-
* Refresh the access token
|
|
81
|
+
* Refresh the access token. Single-flight: every caller (including the HTTP
|
|
82
|
+
* transport's 401 hook) goes through here.
|
|
83
|
+
*
|
|
84
|
+
* Refresh tokens are single-use (calimero-network/core#3083): each refresh
|
|
85
|
+
* consumes the presented token and returns a new one, and replaying a consumed
|
|
86
|
+
* token makes the server revoke the whole family. A refresh must therefore
|
|
87
|
+
* happen exactly once per rotation, which needs three layers:
|
|
88
|
+
* - an in-process promise, so concurrent 401s in this instance share one call;
|
|
89
|
+
* - a Web Lock (when available), so other tabs/webviews don't refresh at the
|
|
90
|
+
* same time on the same stored token;
|
|
91
|
+
* - a re-read of the token store inside the lock, so a bundle that another
|
|
92
|
+
* instance already rotated is adopted instead of replaying a stale token.
|
|
82
93
|
*/
|
|
83
|
-
private
|
|
94
|
+
private performTokenRefresh;
|
|
95
|
+
/** Run `fn` under the cross-tab refresh lock, or directly if Web Locks are unavailable. */
|
|
96
|
+
private withRefreshLock;
|
|
84
97
|
/**
|
|
85
|
-
* Perform the actual token refresh
|
|
98
|
+
* Perform the actual token refresh. Runs with the refresh lock held.
|
|
86
99
|
*/
|
|
87
|
-
private
|
|
100
|
+
private performTokenRefreshLocked;
|
|
88
101
|
/**
|
|
89
102
|
* Clear the current token
|
|
90
103
|
*/
|
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;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,WAAW,CAAC,EAAE;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,2CAA2C;IAC3C,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;
|
|
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;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,WAAW,CAAC,EAAE;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,2CAA2C;IAC3C,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAoCD;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,YAAY;IA8DhC;;OAEG;IACH,IAAI,IAAI,IAAI,aAAa,CAExB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,cAAc,CAE1B;IAED;;OAEG;IACH,IAAI,GAAG,IAAI,SAAS,CAKnB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,SAAS,CAWtB;IAED;;;OAGG;IACH,IAAI,EAAE,IAAI,QAAQ,CAejB;IAED;;;OAGG;IACG,YAAY,CAAC,WAAW,CAAC,EAAE;QAC/B,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,SAAS,CAAC;IAsCtB;;;;;OAKG;YACW,aAAa;IAI3B;;;;;;;;;;;;;OAaG;YACW,mBAAmB;IAuBjC,2FAA2F;IAC3F,OAAO,CAAC,eAAe;IAKvB;;OAEG;YACW,yBAAyB;IAiDvC;;OAEG;IACI,UAAU,IAAI,IAAI;IAMzB;;OAEG;IACI,eAAe,IAAI,OAAO;IAIjC;;;;OAIG;IACI,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAM1C;;OAEG;IACI,YAAY,IAAI,SAAS,GAAG,IAAI;IAIvC;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAIhE;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM;CAG1E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEzD"}
|
package/dist/mero-js.js
CHANGED
|
@@ -5,6 +5,14 @@ import { parseAuthCallback, buildAuthLoginUrl } from './auth';
|
|
|
5
5
|
import { RpcClient } from './rpc';
|
|
6
6
|
import { SseClient } from './events/sse';
|
|
7
7
|
import { WsClient } from './events/ws';
|
|
8
|
+
/** Name of the Web Lock that serializes token refresh across tabs / webviews. */
|
|
9
|
+
const REFRESH_LOCK_NAME = 'mero-js:token-refresh';
|
|
10
|
+
/** Returns `navigator.locks` when the runtime supports the Web Locks API. */
|
|
11
|
+
function getLockManager() {
|
|
12
|
+
const nav = globalThis.navigator;
|
|
13
|
+
const locks = nav?.locks;
|
|
14
|
+
return locks && typeof locks.request === 'function' ? locks : null;
|
|
15
|
+
}
|
|
8
16
|
/** Try to extract `exp` (seconds) from a JWT, return ms timestamp or fallback. */
|
|
9
17
|
function expiresAtFromJwt(token, fallbackMs) {
|
|
10
18
|
try {
|
|
@@ -64,6 +72,12 @@ export class MeroJs {
|
|
|
64
72
|
this.tokenStore?.setTokens(this.tokenData);
|
|
65
73
|
}
|
|
66
74
|
},
|
|
75
|
+
onAuthRevoked: () => {
|
|
76
|
+
// The refresh-token family is gone (a single-use refresh token was
|
|
77
|
+
// replayed, or the token was revoked). Nothing left to refresh with —
|
|
78
|
+
// drop the bundle so the app can force a re-login.
|
|
79
|
+
this.clearToken();
|
|
80
|
+
},
|
|
67
81
|
timeoutMs: this.config.timeoutMs,
|
|
68
82
|
credentials: this.config.requestCredentials ?? (isTauri ? 'omit' : undefined),
|
|
69
83
|
});
|
|
@@ -186,29 +200,57 @@ export class MeroJs {
|
|
|
186
200
|
return this.tokenData;
|
|
187
201
|
}
|
|
188
202
|
/**
|
|
189
|
-
* Refresh the access token
|
|
203
|
+
* Refresh the access token. Single-flight: every caller (including the HTTP
|
|
204
|
+
* transport's 401 hook) goes through here.
|
|
205
|
+
*
|
|
206
|
+
* Refresh tokens are single-use (calimero-network/core#3083): each refresh
|
|
207
|
+
* consumes the presented token and returns a new one, and replaying a consumed
|
|
208
|
+
* token makes the server revoke the whole family. A refresh must therefore
|
|
209
|
+
* happen exactly once per rotation, which needs three layers:
|
|
210
|
+
* - an in-process promise, so concurrent 401s in this instance share one call;
|
|
211
|
+
* - a Web Lock (when available), so other tabs/webviews don't refresh at the
|
|
212
|
+
* same time on the same stored token;
|
|
213
|
+
* - a re-read of the token store inside the lock, so a bundle that another
|
|
214
|
+
* instance already rotated is adopted instead of replaying a stale token.
|
|
190
215
|
*/
|
|
191
|
-
async
|
|
192
|
-
if (!this.tokenData?.refresh_token) {
|
|
193
|
-
throw new Error('No refresh token available');
|
|
194
|
-
}
|
|
195
|
-
// Prevent multiple simultaneous refresh attempts
|
|
216
|
+
async performTokenRefresh() {
|
|
196
217
|
if (this.refreshPromise) {
|
|
197
218
|
return this.refreshPromise;
|
|
198
219
|
}
|
|
199
|
-
this.
|
|
220
|
+
// The access token that triggered this refresh. If the store holds a different
|
|
221
|
+
// one by the time we get the lock, someone else already rotated for us.
|
|
222
|
+
const triggeringAccessToken = this.tokenData?.access_token;
|
|
223
|
+
const promise = this.withRefreshLock(() => this.performTokenRefreshLocked(triggeringAccessToken));
|
|
224
|
+
this.refreshPromise = promise;
|
|
200
225
|
try {
|
|
201
|
-
|
|
202
|
-
return newToken;
|
|
226
|
+
return await promise;
|
|
203
227
|
}
|
|
204
228
|
finally {
|
|
205
|
-
this.refreshPromise
|
|
229
|
+
if (this.refreshPromise === promise) {
|
|
230
|
+
this.refreshPromise = null;
|
|
231
|
+
}
|
|
206
232
|
}
|
|
207
233
|
}
|
|
234
|
+
/** Run `fn` under the cross-tab refresh lock, or directly if Web Locks are unavailable. */
|
|
235
|
+
withRefreshLock(fn) {
|
|
236
|
+
const locks = getLockManager();
|
|
237
|
+
return locks ? locks.request(REFRESH_LOCK_NAME, fn) : fn();
|
|
238
|
+
}
|
|
208
239
|
/**
|
|
209
|
-
* Perform the actual token refresh
|
|
240
|
+
* Perform the actual token refresh. Runs with the refresh lock held.
|
|
210
241
|
*/
|
|
211
|
-
async
|
|
242
|
+
async performTokenRefreshLocked(triggeringAccessToken) {
|
|
243
|
+
// Another instance/tab may have rotated the bundle while we were queued behind
|
|
244
|
+
// the lock — the store, not our in-memory copy, is the source of truth.
|
|
245
|
+
const stored = this.tokenStore?.getTokens() ?? null;
|
|
246
|
+
if (stored?.refresh_token) {
|
|
247
|
+
this.tokenData = stored;
|
|
248
|
+
if (triggeringAccessToken && stored.access_token !== triggeringAccessToken) {
|
|
249
|
+
// Someone else already refreshed. Reuse their bundle rather than replaying
|
|
250
|
+
// our (now consumed) refresh token, which would revoke the family.
|
|
251
|
+
return stored;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
212
254
|
if (!this.tokenData?.refresh_token) {
|
|
213
255
|
throw new Error('No refresh token available');
|
|
214
256
|
}
|
|
@@ -220,6 +262,8 @@ export class MeroJs {
|
|
|
220
262
|
const accessToken = response.data.access_token;
|
|
221
263
|
this.tokenData = {
|
|
222
264
|
access_token: accessToken,
|
|
265
|
+
// The refresh token is rotated on every refresh — persist the new one or
|
|
266
|
+
// the next refresh replays a consumed token.
|
|
223
267
|
refresh_token: response.data.refresh_token,
|
|
224
268
|
expires_at: expiresAtFromJwt(accessToken, Date.now() + 3600000),
|
|
225
269
|
};
|
|
@@ -229,7 +273,8 @@ export class MeroJs {
|
|
|
229
273
|
catch (error) {
|
|
230
274
|
// Don't clear tokens on refresh failure — the access token may still be
|
|
231
275
|
// valid (server rejects refresh while access token hasn't expired yet).
|
|
232
|
-
//
|
|
276
|
+
// A genuinely dead family arrives as `x-auth-error: token_reuse` and is
|
|
277
|
+
// handled by the onAuthRevoked transport hook. Let the caller handle this.
|
|
233
278
|
throw new Error(`Token refresh failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
234
279
|
}
|
|
235
280
|
}
|
|
@@ -237,6 +282,7 @@ export class MeroJs {
|
|
|
237
282
|
* Clear the current token
|
|
238
283
|
*/
|
|
239
284
|
clearToken() {
|
|
285
|
+
this.refreshPromise = null;
|
|
240
286
|
this.tokenData = null;
|
|
241
287
|
this.tokenStore?.clear();
|
|
242
288
|
}
|
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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"}
|