@tempoxyz/id 0.0.0-pr-464.sha-e80ae7b → 0.0.0-pr-464.sha-b9adb8d

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/Id.d.ts CHANGED
@@ -289,7 +289,5 @@ export declare namespace create {
289
289
  };
290
290
  }
291
291
  /** `plugins`, with the `dialog` plugin when none of them signs the user in. */
292
- export type WithSignIn<plugins extends readonly Plugin.Plugin[]> = [
293
- Extract<plugins[number]['id'], DefaultDialog.SignInId>
294
- ] extends [never] ? readonly [...plugins, DefaultDialog.Dialog] : plugins;
292
+ export type WithSignIn<plugins extends readonly Plugin.Plugin[]> = string extends plugins[number]['id'] ? plugins : [Extract<plugins[number]['id'], DefaultDialog.SignInId>] extends [never] ? readonly [...plugins, DefaultDialog.Dialog] : plugins;
295
293
  //# sourceMappingURL=Id.d.ts.map
package/dist/Id.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Id.d.ts","sourceRoot":"","sources":["../src/Id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Id.d.ts","sourceRoot":"","sources":["../src/Id.ts"],"names":[],"mappings":"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"}
package/dist/Id.js CHANGED
@@ -155,9 +155,15 @@ export function create(options = {}) {
155
155
  // A store of one user's, or a browser's IndexedDB, holds the session. A backend's instance passes
156
156
  // none, since it serves many users.
157
157
  const enabled = merged.store !== undefined || typeof indexedDB !== 'undefined';
158
- for (const plugin of plugins)
158
+ const ids = new Set();
159
+ for (const plugin of plugins) {
159
160
  if (reserved.has(plugin.id))
160
161
  throw new Error(`Invalid plugin ID: ${plugin.id} is a member of every instance. Give the plugin another \`id\`.`);
162
+ // Each namespace has one plugin, so a preset and its caller never both run one plugin's hooks.
163
+ if (ids.has(plugin.id))
164
+ throw new Error(`Invalid plugin ID: ${plugin.id} names two plugins. Pass the plugin once, such as by leaving it out of the preset's list.`);
165
+ ids.add(plugin.id);
166
+ }
161
167
  const session = InternalSession.create({
162
168
  enabled,
163
169
  // A session belongs to one deployment, app, and chain, so another one never restores it.
@@ -174,17 +180,12 @@ export function create(options = {}) {
174
180
  signOut: async (ended) => {
175
181
  if (ended?.refreshToken)
176
182
  await Api.revoke(config, { refreshToken: ended.refreshToken }).catch(() => undefined);
177
- // A third-party app's page has no CORS grant for the logout, so its fetch fails with a
178
- // `TypeError`. The Tempo ID session is the user's, which such an app does not end.
179
- const response = await Api.post(config, '/v1/auth/logout', {
180
- json: {},
181
- }).catch((error) => {
182
- if (error instanceof TypeError)
183
- return undefined;
184
- throw error;
185
- });
186
- if (response)
187
- await Api.json(response);
183
+ // A third-party app has no CORS grant for the logout, and the Tempo ID session is the user's,
184
+ // which such an app does not end. Its client ID shows it: an origin, a metadata document's
185
+ // URL, a registrar's `app_` ID, or a CLI's `cli:` name.
186
+ if (thirdParty(config.clientId))
187
+ return;
188
+ await Api.json(await Api.post(config, '/v1/auth/logout', { json: {} }));
188
189
  },
189
190
  store: DefaultStore.get(config.store),
190
191
  });
@@ -253,4 +254,8 @@ const reserved = new Set([
253
254
  'session',
254
255
  'signOut',
255
256
  ]);
257
+ /** Returns whether `clientId` names a third-party app, which Tempo ID grants no first-party route. */
258
+ function thirdParty(clientId) {
259
+ return /^(https?:\/\/|app_|cli:)/.test(clientId);
260
+ }
256
261
  //# sourceMappingURL=Id.js.map
package/dist/Id.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Id.js","sourceRoot":"","sources":["../src/Id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Id.js","sourceRoot":"","sources":["../src/Id.ts"],"names":[],"mappings":"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"}
package/dist/Session.d.ts CHANGED
@@ -29,8 +29,9 @@ export type Session = Tokens & {
29
29
  */
30
30
  export declare function from(value: Session): Session;
31
31
  /**
32
- * Returns whether the session's access key expired. A session without a key never expires here,
33
- * since its tokens refresh.
32
+ * Returns whether the session can no longer act: its access key expired, or, without a key, its
33
+ * access token expired and it holds no refresh token. A session without a key that holds a refresh
34
+ * token never expires here, since its tokens refresh.
34
35
  *
35
36
  * @example
36
37
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../src/Session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC,gFAAgF;AAChF,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC,YAAY,GAAG,SAAS,CAAA;IAC/C,qFAAqF;IACrF,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;IACzB,6CAA6C;IAC7C,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEjD"}
1
+ {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../src/Session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC,gFAAgF;AAChF,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC,YAAY,GAAG,SAAS,CAAA;IAC/C,qFAAqF;IACrF,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;IACzB,6CAA6C;IAC7C,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE5C;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAGjD"}
package/dist/Session.js CHANGED
@@ -15,8 +15,9 @@ export function from(value) {
15
15
  return value;
16
16
  }
17
17
  /**
18
- * Returns whether the session's access key expired. A session without a key never expires here,
19
- * since its tokens refresh.
18
+ * Returns whether the session can no longer act: its access key expired, or, without a key, its
19
+ * access token expired and it holds no refresh token. A session without a key that holds a refresh
20
+ * token never expires here, since its tokens refresh.
20
21
  *
21
22
  * @example
22
23
  * ```ts
@@ -24,6 +25,8 @@ export function from(value) {
24
25
  * ```
25
26
  */
26
27
  export function expired(session) {
27
- return session.key ? Key.expired(session.key) : false;
28
+ if (session.key)
29
+ return Key.expired(session.key);
30
+ return !session.refreshToken && session.expiresAt <= Date.now();
28
31
  }
29
32
  //# sourceMappingURL=Session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Session.js","sourceRoot":"","sources":["../src/Session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAmB/B;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAAC,KAAc;IACjC,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAAC,OAAgB;IACtC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AACvD,CAAC"}
1
+ {"version":3,"file":"Session.js","sourceRoot":"","sources":["../src/Session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAmB/B;;;;;;;GAOG;AACH,MAAM,UAAU,IAAI,CAAC,KAAc;IACjC,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAC,OAAgB;IACtC,IAAI,OAAO,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAChD,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AACjE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"backendSessions.d.ts","sourceRoot":"","sources":["../../src/internal/backendSessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backendSessions.d.ts","sourceRoot":"","sources":["../../src/internal/backendSessions.ts"],"names":[],"mappings":"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"}
@@ -184,13 +184,9 @@ export function create(auth, options) {
184
184
  await completing.get(id)?.catch(() => undefined);
185
185
  await refreshes.get(id)?.catch(() => undefined);
186
186
  await ended?.catch(() => undefined);
187
- const replaced = (await store.getItem(sessionKey(id)));
187
+ // The save revokes no replaced refresh token. Nothing holds that token any more, and Tempo ID
188
+ // reads a second revocation of a token as reuse, which revokes the user's other sessions.
188
189
  await store.setItem(sessionKey(id), toStored(options.session));
189
- // No reference to the replaced refresh token remains, so the save revokes it. A failed
190
- // revocation leaves the new session saved, and the token expires on its own.
191
- if (replaced?.refreshToken &&
192
- replaced.refreshToken !== options.session.refreshToken)
193
- await Api.revoke(auth, { refreshToken: replaced.refreshToken }).catch(() => undefined);
194
190
  })().finally(() => saving.delete(id));
195
191
  saving.set(id, saved);
196
192
  await saved;
@@ -1 +1 @@
1
- {"version":3,"file":"backendSessions.js","sourceRoot":"","sources":["../../src/internal/backendSessions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAA;AAClC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC,OAAO,EAAe,oBAAoB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAK1E,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAc/B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CACpB,IAAY,EACZ,OAAuB;IAEvB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAEzB,iGAAiG;IACjG,iDAAiD;IACjD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmC,CAAA;IAC7D,iGAAiG;IACjG,kGAAkG;IAClG,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAA;IAC/C,+DAA+D;IAC/D,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAA;IAClD,iFAAiF;IACjF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuC,CAAA;IAChE,gGAAgG;IAChG,6EAA6E;IAC7E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IAEjC;;;OAGG;IACH,KAAK,UAAU,OAAO,CAAC,EAAU;QAC/B,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAuB,CAAA;QAC1E,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAA;QAC3C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;QAC/B,6EAA6E;QAC7E,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;YAAE,OAAO,MAAM,CAAA;QACjE,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/C,MAAM,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;YACtC,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACzB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,sEAAsE;gBACtE,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBACpE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;oBAC5B,OAAO,SAAS,CAAA;gBAClB,CAAC;gBACD,0FAA0F;gBAC1F,IACE,KAAK,YAAY,YAAY;oBAC7B,KAAK,CAAC,MAAM,IAAI,GAAG;oBACnB,KAAK,CAAC,MAAM,GAAG,GAAG,EAClB,CAAC;oBACD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;oBAC5B,MAAM,KAAK,CAAA;gBACb,CAAC;gBACD,2FAA2F;gBAC3F,sCAAsC;gBACtC,MAAM,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;gBACtC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBAC5B,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC,CAAC,EAAE,CAAA;QACJ,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;YACtC,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;QACtC,MAAM,IAAI,GAAW,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,CAAA;QAC3C,yFAAyF;QACzF,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QACzC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,UAAU,GAAG,CAAC,OAAoB;QACrC,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAA;QACtB,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACpC,MAAM,MAAM,GAAG,UAAU;YACvB,CAAC,CAAC,MAAM,UAAU;YAClB,CAAC,CAAE,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAwB,CAAA;QACjE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,SAAS,CAAA;QAC/C,IAAI,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;QAEtC,wFAAwF;QACxF,MAAM,UAAU,GACd,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QACtE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QAC7B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAA;QAC7B,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO;QACL,QAAQ,CAAC,OAAO;YACd,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;YAC3B,mFAAmF;YACnF,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAA;YAEnD,MAAM,SAAS,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC5B,MAAM,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAEvC,CAAA;gBACb,uEAAuE;gBACvE,MAAM,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;gBACtC,IACE,CAAC,OAAO;oBACR,OAAO,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC;wBACvD,IAAI,CAAC,GAAG,EAAE;oBAEZ,MAAM,IAAI,oBAAoB,EAAE,CAAA;gBAElC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE;oBAChE,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,GAAG;iBACJ,CAAC,CAAA;gBACF,4FAA4F;gBAC5F,sCAAsC;gBACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAA;gBACtC,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;gBAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;YACrB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;YACzC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;YAC7B,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,GAAG,CAAC,OAAO;YACT,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAA;YACtB,8FAA8F;YAC9F,+CAA+C;YAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACjC,IAAI,UAAU;gBAAE,OAAO,UAAU,CAAA;YAEjC,6FAA6F;YAC7F,gEAAgE;YAChE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC5B,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE;gBACxB,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;gBAChD,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;gBAC/C,MAAM,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;gBACnC,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAEtC,CAAA;gBACb,IAAI,MAAM,EAAE,YAAY;oBACtB,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;gBAC/D,MAAM,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;YACxC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;YACrC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YACrB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,OAAO;YACjB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;YAC7C,IAAI,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAA;YAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;gBACzB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAA;QACJ,CAAC;QACD,GAAG;QACH,KAAK,CAAC,OAAO,CAAC,OAAO;YACnB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;YAC7C,IAAI,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAA;YAC9B,OAAO,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE;gBAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAO;YAChB,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;YACtE,8FAA8F;YAC9F,yDAAyD;YACzD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC5B,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE;gBACxB,8FAA8F;gBAC9F,yDAAyD;gBACzD,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;gBAChD,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;gBAC/C,MAAM,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;gBACnC,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAExC,CAAA;gBACb,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC9D,uFAAuF;gBACvF,6EAA6E;gBAC7E,IACE,QAAQ,EAAE,YAAY;oBACtB,QAAQ,CAAC,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,YAAY;oBAEtD,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CACnE,GAAG,EAAE,CAAC,SAAS,CAChB,CAAA;YACL,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;YACrC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YACrB,MAAM,KAAK,CAAA;YACX,OAAO,EAAE,EAAE,EAAE,CAAA;QACf,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE;YACtB,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;YACtE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;gBAC9D,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAA;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,4FAA4F;YAC5F,oBAAoB;YACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO;gBAC9B,CAAC,CAAC,eAAe,GAAG,eAAe;gBACnC,CAAC,CAAC,eAAe,CAAA;YACnB,MAAM,MAAM,GAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;YAC9D,+FAA+F;YAC/F,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;gBAC1C,SAAS,EAAE,SAAS,GAAG,QAAQ;aAChC,CAAC,CAAA;YACF,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAA;QACpB,CAAC;KACF,CAAA;AACH,CAAC;AA6HD,gDAAgD;AAChD,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAW,CAAA;AAEpD,6EAA6E;AAC7E,MAAM,MAAM,GAAG,MAAM,CAAA;AAErB,+EAA+E;AAC/E,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAEtC,kFAAkF;AAClF,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AActC,0EAA0E;AAC1E,SAAS,QAAQ,CAAC,OAAkD;IAClE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;IAC3D,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IAC9B,OAAO;QACL,GAAG,IAAI;QACP,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxB,CAAA;AACH,CAAC;AAeD,uFAAuF;AACvF,SAAS,KAAK,CAAC,MAAc;IAC3B,OAAO,MAAM,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;AAC/C,CAAC;AAED,4DAA4D;AAC5D,SAAS,SAAS,CAAC,OAA2B;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CACzB,CAAA;QACtB,OAAO,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,SAAS,IAAI,CAAC,MAAc;IAC1B,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAA;IACvD,OAAO,OAAO;QACZ,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;QAC5D,CAAC,CAAC,OAAO,CAAA;AACb,CAAC;AAED,yCAAyC;AACzC,SAAS,UAAU,CAAC,EAAU;IAC5B,OAAO,oBAAoB,EAAE,EAAE,CAAA;AACjC,CAAC;AAED,sDAAsD;AACtD,SAAS,UAAU,CAAC,EAAU;IAC5B,OAAO,oBAAoB,EAAE,EAAE,CAAA;AACjC,CAAC"}
1
+ {"version":3,"file":"backendSessions.js","sourceRoot":"","sources":["../../src/internal/backendSessions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/internal/core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAGxC,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,UAAU,GAAE,SAAS,CAAC,UAAe,GACpC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CA6B/B;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,KAAK,UAAU,GAAG;QAChB,iFAAiF;QACjF,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,qGAAqG;QACrG,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC1C,8FAA8F;QAC9F,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAA;KACvC,CAAA;IAED,KAAK,UAAU,GACX,CAAC,OAAO,CAAC,OAAO,GAAG;QACjB,kFAAkF;QAClF,gBAAgB,EAAE,OAAO,CAAA;KAC1B,CAAC,GACF,SAAS,CAAA;CACd;AAED;;;GAGG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,CAAC,OAAO,GACtB,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CA6BtC;AASD;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,UAAU,GAAE,UAAU,CAAC,UAAe,GACrC,OAAO,CAAC,YAAY,CAAC,YAAY,GAAG,SAAS,CAAC,CAMhD;AAED,MAAM,CAAC,OAAO,WAAW,UAAU,CAAC;IAClC,KAAK,UAAU,GAAG;QAChB,2FAA2F;QAC3F,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,oGAAoG;QACpG,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;KAC7C,CAAA;CACF;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,UAAU,GAAE,cAAc,CAAC,UAAe,GACzC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAiBpC;AAED,MAAM,CAAC,OAAO,WAAW,cAAc,CAAC;IACtC,KAAK,UAAU,GAAG;QAChB,8EAA8E;QAC9E,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC9B,2EAA2E;QAC3E,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;KACjD,CAAA;CACF"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/internal/core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAGxC,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,UAAU,GAAE,SAAS,CAAC,UAAe,GACpC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CA6B/B;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,KAAK,UAAU,GAAG;QAChB,iFAAiF;QACjF,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,qGAAqG;QACrG,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC1C,8FAA8F;QAC9F,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAA;KACvC,CAAA;IAED,KAAK,UAAU,GACX,CAAC,OAAO,CAAC,OAAO,GAAG;QACjB,kFAAkF;QAClF,gBAAgB,EAAE,OAAO,CAAA;KAC1B,CAAC,GACF,SAAS,CAAA;CACd;AAED;;;GAGG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,CAAC,OAAO,GACtB,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CA8CtC;AAeD;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,UAAU,GAAE,UAAU,CAAC,UAAe,GACrC,OAAO,CAAC,YAAY,CAAC,YAAY,GAAG,SAAS,CAAC,CAMhD;AAED,MAAM,CAAC,OAAO,WAAW,UAAU,CAAC;IAClC,KAAK,UAAU,GAAG;QAChB,2FAA2F;QAC3F,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,oGAAoG;QACpG,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;KAC7C,CAAA;CACF;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,UAAU,GAAE,cAAc,CAAC,UAAe,GACzC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAiBpC;AAED,MAAM,CAAC,OAAO,WAAW,cAAc,CAAC;IACtC,KAAK,UAAU,GAAG;QAChB,8EAA8E;QAC9E,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC9B,2EAA2E;QAC3E,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;KACjD,CAAA;CACF"}
@@ -54,27 +54,45 @@ export function refresh(context) {
54
54
  return undefined;
55
55
  const change = context.session.change({ update: true });
56
56
  const send = () => Actions.refresh(context.config, { refreshToken });
57
- const tokens = await send()
58
- // Without a response, Tempo ID may have rotated the token. For 30 seconds, the rotated token
59
- // returns the same tokens, so one retry at once recovers them.
60
- .catch((error) => {
61
- if (!unanswered(error))
57
+ const tokens = await (async () => {
58
+ // Without Tempo ID's answer, it may have rotated the token. For 30 seconds after a rotation,
59
+ // the rotated token returns the same tokens, so retries within that time recover them.
60
+ // After an unanswered attempt, Tempo ID can still be rotating the token, and refuses it until
61
+ // the rotation returns, so that refusal is retried too.
62
+ let rotating = false;
63
+ for (const delay of retryDelays) {
64
+ const result = await send().then((tokens) => ({ tokens }), (error) => ({ error }));
65
+ if ('tokens' in result)
66
+ return result.tokens;
67
+ const retry = unanswered(result.error) ||
68
+ (rotating &&
69
+ result.error instanceof RequestError &&
70
+ result.error.code === 'invalid_grant');
71
+ if (!retry || delay === undefined)
72
+ throw result.error;
73
+ rotating = true;
74
+ await new Promise((resolve) => setTimeout(resolve, delay));
75
+ }
76
+ throw new Error('Unreachable.');
77
+ })().catch(async (error) => {
78
+ // A refused refresh token never refreshes again, so the session ends. A device that stays
79
+ // offline keeps its token, so it signs in again only when Tempo ID refuses the token.
80
+ if (error instanceof RequestError && error.code === 'invalid_grant') {
81
+ await change.commit(undefined);
62
82
  throw error;
63
- return send();
64
- })
65
- .catch(async (error) => {
66
- if (!unanswered(error))
67
- return change.fail(error);
68
- // A token that Tempo ID may have rotated would revoke the user's other sessions of the app
69
- // when it is sent again later, so the session keeps none.
70
- await change.commit({ ...current, refreshToken: undefined });
71
- throw error;
83
+ }
84
+ return change.fail(error);
72
85
  });
73
86
  const session = { ...current, ...tokens };
74
87
  await change.commit(session);
75
88
  return session;
76
89
  });
77
90
  }
91
+ /**
92
+ * The waits before each retry of an unanswered refresh, in milliseconds, all within the 30 seconds
93
+ * in which a rotated token returns the same tokens. `undefined` ends the retries.
94
+ */
95
+ const retryDelays = [1_000, 3_000, 6_000, undefined];
78
96
  /** Returns whether a request failed without Tempo ID's answer: a network error, or a server error. */
79
97
  function unanswered(error) {
80
98
  if (error instanceof RequestError)
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/internal/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/internal/core.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/internal/session.ts"],"names":[],"mappings":"AAWA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE5D,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAGxC,gDAAgD;AAChD,MAAM,MAAM,KAAK,GAAG;IAClB,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;CACrC,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,yGAAyG;IACzG,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B;;;OAGG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D;;;OAGG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,CAAA;CACzC,CAAA;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAqKjE;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,OAAO,GAAG;QACb,mFAAmF;QACnF,OAAO,EAAE,OAAO,CAAA;QAChB,+CAA+C;QAC/C,IAAI,EAAE,MAAM,CAAA;QACZ,0CAA0C;QAC1C,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,CAAA;QAC3E,+FAA+F;QAC/F,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QAChE,gEAAgE;QAChE,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAC1B,CAAA;IAED,KAAK,UAAU,GAAG;QAChB,kGAAkG;QAClG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;SAAE,KAAK,MAAM,CAAA;QAC9D,sDAAsD;QACtD,GAAG,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;QACtC;;WAEG;QACH,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;QAChD;;;WAGG;QACH,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAA;QAC9D;;;WAGG;QACH,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;QAClD,wDAAwD;QACxD,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,0EAA0E;QAC1E,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;QAClC,6FAA6F;QAC7F,SAAS,EAAE,CACT,QAAQ,EAAE,CACR,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,EACpC,QAAQ,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,KAClC,IAAI,KACN,MAAM,IAAI,CAAA;KAChB,CAAA;CACF"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/internal/session.ts"],"names":[],"mappings":"AAWA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE5D,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAGxC,gDAAgD;AAChD,MAAM,MAAM,KAAK,GAAG;IAClB,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;CACrC,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,yGAAyG;IACzG,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B;;;OAGG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D;;;OAGG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,CAAA;CACzC,CAAA;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAgLjE;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,OAAO,GAAG;QACb,mFAAmF;QACnF,OAAO,EAAE,OAAO,CAAA;QAChB,+CAA+C;QAC/C,IAAI,EAAE,MAAM,CAAA;QACZ,0CAA0C;QAC1C,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,CAAA;QAC3E,+FAA+F;QAC/F,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QAChE,gEAAgE;QAChE,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAC1B,CAAA;IAED,KAAK,UAAU,GAAG;QAChB,kGAAkG;QAClG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;SAAE,KAAK,MAAM,CAAA;QAC9D,sDAAsD;QACtD,GAAG,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;QACtC;;WAEG;QACH,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;QAChD;;;WAGG;QACH,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAA;QAC9D;;;WAGG;QACH,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;QAClD,wDAAwD;QACxD,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,0EAA0E;QAC1E,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;QAClC,6FAA6F;QAC7F,SAAS,EAAE,CACT,QAAQ,EAAE,CACR,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,EACpC,QAAQ,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,KAClC,IAAI,KACN,MAAM,IAAI,CAAA;KAChB,CAAA;CACF"}
@@ -45,7 +45,7 @@ export function create(options) {
45
45
  // The read of the stored session, which every `load` shares.
46
46
  let hydrating;
47
47
  // The last run of `exclusive` where no lock spans the processes, which the next one follows.
48
- let exclusive = Promise.resolve();
48
+ let running = Promise.resolve();
49
49
  /** Reads the stored session once. Every read of the session before a change awaits it. */
50
50
  async function hydrate() {
51
51
  if (!state)
@@ -54,6 +54,40 @@ export function create(options) {
54
54
  hydrating ??= persisted?.rehydrate() ?? Promise.resolve();
55
55
  await hydrating;
56
56
  }
57
+ /**
58
+ * Runs `fn` while no other run of the session's `exclusive` does. A browser's tabs share the
59
+ * session through its store, so their Web Lock spans them.
60
+ */
61
+ function exclusive(fn) {
62
+ const locks = globalThis.navigator
63
+ ?.locks;
64
+ if (locks)
65
+ return locks.request(`${name}:exclusive`, fn);
66
+ const run = running.catch(() => undefined).then(fn);
67
+ running = run;
68
+ return run;
69
+ }
70
+ /**
71
+ * Reads the stored session again, and sets it when it is newer than the instance's: another tab's
72
+ * sign-out, another user's sign-in, or the same user's later tokens. An earlier copy, such as one
73
+ * that a failed save left behind, never replaces the session.
74
+ */
75
+ async function reload() {
76
+ if (!state)
77
+ return undefined;
78
+ await hydrate();
79
+ if (!writes)
80
+ return state.getState().session;
81
+ // A failed write fails only its own change. The store then holds an earlier copy.
82
+ await writes.flush().catch(() => undefined);
83
+ if (writes.failed())
84
+ return state.getState().session;
85
+ const stored = (await writes.storage.getItem(name))?.state.session;
86
+ const current = state.getState().session;
87
+ if (newer(stored, current))
88
+ set(stored);
89
+ return state.getState().session;
90
+ }
57
91
  return {
58
92
  change(options = {}) {
59
93
  // An instance without a session, such as a backend's, serves many users at once, so no
@@ -89,6 +123,10 @@ export function create(options) {
89
123
  throw await superseded(session);
90
124
  return;
91
125
  }
126
+ // An empty result, such as an `authorize` that found no Tempo ID session, never empties a
127
+ // session that a newer change set.
128
+ if (!session && version !== started)
129
+ return;
92
130
  set(session);
93
131
  await writes?.flush();
94
132
  if (session)
@@ -121,47 +159,25 @@ export function create(options) {
121
159
  }
122
160
  return session;
123
161
  },
124
- async exclusive(fn) {
125
- // A browser's tabs share the session through its store, so its lock spans them.
126
- const locks = globalThis.navigator?.locks;
127
- if (locks)
128
- return locks.request(`${name}:exclusive`, fn);
129
- const run = exclusive.catch(() => undefined).then(fn);
130
- exclusive = run;
131
- return run;
132
- },
133
- async reload() {
134
- if (!state)
135
- return undefined;
136
- await hydrate();
137
- if (!writes)
138
- return state.getState().session;
139
- await writes.flush();
140
- const stored = (await writes.storage.getItem(name))?.state.session;
141
- const current = state.getState().session;
142
- // Another tab or process of the same user saved new tokens, such as at its refresh.
143
- if (stored &&
144
- current &&
145
- stored.user.id === current.user.id &&
146
- stored.refreshToken !== current.refreshToken)
147
- set(stored);
148
- return state.getState().session;
149
- },
150
- async signOut() {
151
- // The stored session holds the refresh token to revoke, also in a process that read none yet.
152
- await hydrate();
153
- const current = state?.getState().session;
154
- // The session empties at once, even when the request fails.
155
- set(undefined);
156
- signOuts++;
157
- signedOut = version;
158
- // A failed save still ends the server session and revokes the refresh token.
159
- try {
160
- await writes?.flush();
161
- }
162
- finally {
163
- await signOut(current);
164
- }
162
+ exclusive,
163
+ reload,
164
+ signOut() {
165
+ // The sign-out reads the latest stored session under the lock that a refresh holds, so it
166
+ // revokes the refresh token that is current, never one that another tab rotated.
167
+ return exclusive(async () => {
168
+ await reload();
169
+ const current = state?.getState().session;
170
+ set(undefined);
171
+ signOuts++;
172
+ signedOut = version;
173
+ // A failed save still ends the server session and revokes the refresh token.
174
+ try {
175
+ await writes?.flush();
176
+ }
177
+ finally {
178
+ await signOut(current);
179
+ }
180
+ });
165
181
  },
166
182
  store: state,
167
183
  subscribe(listener) {
@@ -199,9 +215,19 @@ function fromSaved(saved) {
199
215
  */
200
216
  function queue(store) {
201
217
  let pending = Promise.resolve();
218
+ // Whether the last write failed, which leaves an earlier copy in the store.
219
+ let failed = false;
202
220
  /** Runs `write` after every earlier write. A failed write fails only its own change. */
203
221
  const enqueue = (write) => {
204
- const next = pending.catch(() => undefined).then(write);
222
+ const next = pending
223
+ .catch(() => undefined)
224
+ .then(write)
225
+ .then(() => {
226
+ failed = false;
227
+ }, (error) => {
228
+ failed = true;
229
+ throw error;
230
+ });
205
231
  pending = next;
206
232
  return next;
207
233
  };
@@ -219,6 +245,17 @@ function queue(store) {
219
245
  state: { session: toSaved(value.state.session) },
220
246
  })),
221
247
  };
222
- return { flush: () => pending, storage };
248
+ return { failed: () => failed, flush: () => pending, storage };
249
+ }
250
+ /**
251
+ * Returns whether the stored session is newer than the instance's: another tab's sign-out, another
252
+ * user's session, or the same user's session with later tokens, which a refresh issues.
253
+ */
254
+ function newer(stored, current) {
255
+ if (!stored || !current)
256
+ return stored !== current;
257
+ if (stored.user.id !== current.user.id)
258
+ return true;
259
+ return stored.expiresAt > current.expiresAt;
223
260
  }
224
261
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/internal/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/internal/session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tempoxyz/id",
3
- "version": "0.0.0-pr-464.sha-e80ae7b",
3
+ "version": "0.0.0-pr-464.sha-b9adb8d",
4
4
  "description": "Signs users in to Tempo with Tempo ID, and keeps their session, access keys, and Viem client.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
package/src/Id.ts CHANGED
@@ -488,11 +488,19 @@ export function create<const plugins extends readonly Plugin.Option[] = []>(
488
488
  // none, since it serves many users.
489
489
  const enabled = merged.store !== undefined || typeof indexedDB !== 'undefined'
490
490
 
491
- for (const plugin of plugins)
491
+ const ids = new Set<string>()
492
+ for (const plugin of plugins) {
492
493
  if (reserved.has(plugin.id))
493
494
  throw new Error(
494
495
  `Invalid plugin ID: ${plugin.id} is a member of every instance. Give the plugin another \`id\`.`,
495
496
  )
497
+ // Each namespace has one plugin, so a preset and its caller never both run one plugin's hooks.
498
+ if (ids.has(plugin.id))
499
+ throw new Error(
500
+ `Invalid plugin ID: ${plugin.id} names two plugins. Pass the plugin once, such as by leaving it out of the preset's list.`,
501
+ )
502
+ ids.add(plugin.id)
503
+ }
496
504
 
497
505
  const session = InternalSession.create({
498
506
  enabled,
@@ -512,15 +520,11 @@ export function create<const plugins extends readonly Plugin.Option[] = []>(
512
520
  await Api.revoke(config, { refreshToken: ended.refreshToken }).catch(
513
521
  () => undefined,
514
522
  )
515
- // A third-party app's page has no CORS grant for the logout, so its fetch fails with a
516
- // `TypeError`. The Tempo ID session is the user's, which such an app does not end.
517
- const response = await Api.post(config, '/v1/auth/logout', {
518
- json: {},
519
- }).catch((error: unknown) => {
520
- if (error instanceof TypeError) return undefined
521
- throw error
522
- })
523
- if (response) await Api.json(response)
523
+ // A third-party app has no CORS grant for the logout, and the Tempo ID session is the user's,
524
+ // which such an app does not end. Its client ID shows it: an origin, a metadata document's
525
+ // URL, a registrar's `app_` ID, or a CLI's `cli:` name.
526
+ if (thirdParty(config.clientId)) return
527
+ await Api.json(await Api.post(config, '/v1/auth/logout', { json: {} }))
524
528
  },
525
529
  store: DefaultStore.get(config.store),
526
530
  })
@@ -606,11 +610,14 @@ export declare namespace create {
606
610
  const chainIds = { mainnet: 4217, testnet: 42431 } as const
607
611
 
608
612
  /** `plugins`, with the `dialog` plugin when none of them signs the user in. */
609
- export type WithSignIn<plugins extends readonly Plugin.Plugin[]> = [
610
- Extract<plugins[number]['id'], DefaultDialog.SignInId>,
611
- ] extends [never]
612
- ? readonly [...plugins, DefaultDialog.Dialog]
613
- : plugins
613
+ export type WithSignIn<plugins extends readonly Plugin.Plugin[]> =
614
+ // A list whose IDs the type does not name, such as a widened `Plugin.Plugin[]`, may hold a
615
+ // sign-in plugin, so its type promises no dialog.
616
+ string extends plugins[number]['id']
617
+ ? plugins
618
+ : [Extract<plugins[number]['id'], DefaultDialog.SignInId>] extends [never]
619
+ ? readonly [...plugins, DefaultDialog.Dialog]
620
+ : plugins
614
621
 
615
622
  /** Where Tempo ID runs unless `create` receives a `url`. */
616
623
  const defaultUrl = 'https://id.tempo.xyz'
@@ -623,3 +630,8 @@ const reserved = new Set([
623
630
  'session',
624
631
  'signOut',
625
632
  ])
633
+
634
+ /** Returns whether `clientId` names a third-party app, which Tempo ID grants no first-party route. */
635
+ function thirdParty(clientId: string) {
636
+ return /^(https?:\/\/|app_|cli:)/.test(clientId)
637
+ }
package/src/Session.ts CHANGED
@@ -34,8 +34,9 @@ export function from(value: Session): Session {
34
34
  }
35
35
 
36
36
  /**
37
- * Returns whether the session's access key expired. A session without a key never expires here,
38
- * since its tokens refresh.
37
+ * Returns whether the session can no longer act: its access key expired, or, without a key, its
38
+ * access token expired and it holds no refresh token. A session without a key that holds a refresh
39
+ * token never expires here, since its tokens refresh.
39
40
  *
40
41
  * @example
41
42
  * ```ts
@@ -43,5 +44,6 @@ export function from(value: Session): Session {
43
44
  * ```
44
45
  */
45
46
  export function expired(session: Session): boolean {
46
- return session.key ? Key.expired(session.key) : false
47
+ if (session.key) return Key.expired(session.key)
48
+ return !session.refreshToken && session.expiresAt <= Date.now()
47
49
  }
@@ -216,19 +216,9 @@ export function create(
216
216
  await completing.get(id)?.catch(() => undefined)
217
217
  await refreshes.get(id)?.catch(() => undefined)
218
218
  await ended?.catch(() => undefined)
219
- const replaced = (await store.getItem(sessionKey(id))) as
220
- | Stored
221
- | undefined
219
+ // The save revokes no replaced refresh token. Nothing holds that token any more, and Tempo ID
220
+ // reads a second revocation of a token as reuse, which revokes the user's other sessions.
222
221
  await store.setItem(sessionKey(id), toStored(options.session))
223
- // No reference to the replaced refresh token remains, so the save revokes it. A failed
224
- // revocation leaves the new session saved, and the token expires on its own.
225
- if (
226
- replaced?.refreshToken &&
227
- replaced.refreshToken !== options.session.refreshToken
228
- )
229
- await Api.revoke(auth, { refreshToken: replaced.refreshToken }).catch(
230
- () => undefined,
231
- )
232
222
  })().finally(() => saving.delete(id))
233
223
  saving.set(id, saved)
234
224
  await saved
@@ -91,26 +91,49 @@ export function refresh(
91
91
  const change = context.session.change({ update: true })
92
92
  const send = () => Actions.refresh(context.config, { refreshToken })
93
93
 
94
- const tokens = await send()
95
- // Without a response, Tempo ID may have rotated the token. For 30 seconds, the rotated token
96
- // returns the same tokens, so one retry at once recovers them.
97
- .catch((error: unknown) => {
98
- if (!unanswered(error)) throw error
99
- return send()
100
- })
101
- .catch(async (error: unknown) => {
102
- if (!unanswered(error)) return change.fail(error)
103
- // A token that Tempo ID may have rotated would revoke the user's other sessions of the app
104
- // when it is sent again later, so the session keeps none.
105
- await change.commit({ ...current, refreshToken: undefined })
94
+ const tokens = await (async () => {
95
+ // Without Tempo ID's answer, it may have rotated the token. For 30 seconds after a rotation,
96
+ // the rotated token returns the same tokens, so retries within that time recover them.
97
+ // After an unanswered attempt, Tempo ID can still be rotating the token, and refuses it until
98
+ // the rotation returns, so that refusal is retried too.
99
+ let rotating = false
100
+ for (const delay of retryDelays) {
101
+ const result = await send().then(
102
+ (tokens) => ({ tokens }),
103
+ (error: unknown) => ({ error }),
104
+ )
105
+ if ('tokens' in result) return result.tokens
106
+ const retry =
107
+ unanswered(result.error) ||
108
+ (rotating &&
109
+ result.error instanceof RequestError &&
110
+ result.error.code === 'invalid_grant')
111
+ if (!retry || delay === undefined) throw result.error
112
+ rotating = true
113
+ await new Promise((resolve) => setTimeout(resolve, delay))
114
+ }
115
+ throw new Error('Unreachable.')
116
+ })().catch(async (error: unknown) => {
117
+ // A refused refresh token never refreshes again, so the session ends. A device that stays
118
+ // offline keeps its token, so it signs in again only when Tempo ID refuses the token.
119
+ if (error instanceof RequestError && error.code === 'invalid_grant') {
120
+ await change.commit(undefined)
106
121
  throw error
107
- })
122
+ }
123
+ return change.fail(error)
124
+ })
108
125
  const session = { ...current, ...tokens }
109
126
  await change.commit(session)
110
127
  return session
111
128
  })
112
129
  }
113
130
 
131
+ /**
132
+ * The waits before each retry of an unanswered refresh, in milliseconds, all within the 30 seconds
133
+ * in which a rotated token returns the same tokens. `undefined` ends the retries.
134
+ */
135
+ const retryDelays = [1_000, 3_000, 6_000, undefined] as const
136
+
114
137
  /** Returns whether a request failed without Tempo ID's answer: a network error, or a server error. */
115
138
  function unanswered(error: unknown) {
116
139
  if (error instanceof RequestError)
@@ -87,7 +87,7 @@ export function create(options: create.Options): create.ReturnType {
87
87
  // The read of the stored session, which every `load` shares.
88
88
  let hydrating: Promise<void> | undefined
89
89
  // The last run of `exclusive` where no lock spans the processes, which the next one follows.
90
- let exclusive: Promise<unknown> = Promise.resolve()
90
+ let running: Promise<unknown> = Promise.resolve()
91
91
 
92
92
  /** Reads the stored session once. Every read of the session before a change awaits it. */
93
93
  async function hydrate() {
@@ -97,6 +97,37 @@ export function create(options: create.Options): create.ReturnType {
97
97
  await hydrating
98
98
  }
99
99
 
100
+ /**
101
+ * Runs `fn` while no other run of the session's `exclusive` does. A browser's tabs share the
102
+ * session through its store, so their Web Lock spans them.
103
+ */
104
+ function exclusive<value>(fn: () => Promise<value>): Promise<value> {
105
+ const locks = (globalThis.navigator as { locks?: LockManager } | undefined)
106
+ ?.locks
107
+ if (locks) return locks.request(`${name}:exclusive`, fn)
108
+ const run = running.catch(() => undefined).then(fn)
109
+ running = run
110
+ return run
111
+ }
112
+
113
+ /**
114
+ * Reads the stored session again, and sets it when it is newer than the instance's: another tab's
115
+ * sign-out, another user's sign-in, or the same user's later tokens. An earlier copy, such as one
116
+ * that a failed save left behind, never replaces the session.
117
+ */
118
+ async function reload() {
119
+ if (!state) return undefined
120
+ await hydrate()
121
+ if (!writes) return state.getState().session
122
+ // A failed write fails only its own change. The store then holds an earlier copy.
123
+ await writes.flush().catch(() => undefined)
124
+ if (writes.failed()) return state.getState().session
125
+ const stored = (await writes.storage.getItem(name))?.state.session
126
+ const current = state.getState().session
127
+ if (newer(stored, current)) set(stored)
128
+ return state.getState().session
129
+ }
130
+
100
131
  return {
101
132
  change(options = {}) {
102
133
  // An instance without a session, such as a backend's, serves many users at once, so no
@@ -130,6 +161,9 @@ export function create(options: create.Options): create.ReturnType {
130
161
  if (session) throw await superseded(session)
131
162
  return
132
163
  }
164
+ // An empty result, such as an `authorize` that found no Tempo ID session, never empties a
165
+ // session that a newer change set.
166
+ if (!session && version !== started) return
133
167
  set(session)
134
168
  await writes?.flush()
135
169
  if (session) await onSignIn?.(session)
@@ -161,47 +195,24 @@ export function create(options: create.Options): create.ReturnType {
161
195
  }
162
196
  return session
163
197
  },
164
- async exclusive(fn) {
165
- // A browser's tabs share the session through its store, so its lock spans them.
166
- const locks = (
167
- globalThis.navigator as { locks?: LockManager } | undefined
168
- )?.locks
169
- if (locks) return locks.request(`${name}:exclusive`, fn)
170
- const run = exclusive.catch(() => undefined).then(fn)
171
- exclusive = run
172
- return run
173
- },
174
- async reload() {
175
- if (!state) return undefined
176
- await hydrate()
177
- if (!writes) return state.getState().session
178
- await writes.flush()
179
- const stored = (await writes.storage.getItem(name))?.state.session
180
- const current = state.getState().session
181
- // Another tab or process of the same user saved new tokens, such as at its refresh.
182
- if (
183
- stored &&
184
- current &&
185
- stored.user.id === current.user.id &&
186
- stored.refreshToken !== current.refreshToken
187
- )
188
- set(stored)
189
- return state.getState().session
190
- },
191
- async signOut() {
192
- // The stored session holds the refresh token to revoke, also in a process that read none yet.
193
- await hydrate()
194
- const current = state?.getState().session
195
- // The session empties at once, even when the request fails.
196
- set(undefined)
197
- signOuts++
198
- signedOut = version
199
- // A failed save still ends the server session and revokes the refresh token.
200
- try {
201
- await writes?.flush()
202
- } finally {
203
- await signOut(current)
204
- }
198
+ exclusive,
199
+ reload,
200
+ signOut() {
201
+ // The sign-out reads the latest stored session under the lock that a refresh holds, so it
202
+ // revokes the refresh token that is current, never one that another tab rotated.
203
+ return exclusive(async () => {
204
+ await reload()
205
+ const current = state?.getState().session
206
+ set(undefined)
207
+ signOuts++
208
+ signedOut = version
209
+ // A failed save still ends the server session and revokes the refresh token.
210
+ try {
211
+ await writes?.flush()
212
+ } finally {
213
+ await signOut(current)
214
+ }
215
+ })
205
216
  },
206
217
  store: state,
207
218
  subscribe(listener) {
@@ -311,9 +322,22 @@ type Subscribe = (
311
322
  */
312
323
  function queue(store: Store) {
313
324
  let pending: Promise<void> = Promise.resolve()
325
+ // Whether the last write failed, which leaves an earlier copy in the store.
326
+ let failed = false
314
327
  /** Runs `write` after every earlier write. A failed write fails only its own change. */
315
328
  const enqueue = (write: () => Promise<void>) => {
316
- const next = pending.catch(() => undefined).then(write)
329
+ const next = pending
330
+ .catch(() => undefined)
331
+ .then(write)
332
+ .then(
333
+ () => {
334
+ failed = false
335
+ },
336
+ (error: unknown) => {
337
+ failed = true
338
+ throw error
339
+ },
340
+ )
317
341
  pending = next
318
342
  return next
319
343
  }
@@ -333,5 +357,18 @@ function queue(store: Store) {
333
357
  }),
334
358
  ),
335
359
  }
336
- return { flush: () => pending, storage }
360
+ return { failed: () => failed, flush: () => pending, storage }
361
+ }
362
+
363
+ /**
364
+ * Returns whether the stored session is newer than the instance's: another tab's sign-out, another
365
+ * user's session, or the same user's session with later tokens, which a refresh issues.
366
+ */
367
+ function newer(
368
+ stored: Session.Session | undefined,
369
+ current: Session.Session | undefined,
370
+ ) {
371
+ if (!stored || !current) return stored !== current
372
+ if (stored.user.id !== current.user.id) return true
373
+ return stored.expiresAt > current.expiresAt
337
374
  }