@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 +1 -3
- package/dist/Id.d.ts.map +1 -1
- package/dist/Id.js +17 -12
- package/dist/Id.js.map +1 -1
- package/dist/Session.d.ts +3 -2
- package/dist/Session.d.ts.map +1 -1
- package/dist/Session.js +6 -3
- package/dist/Session.js.map +1 -1
- package/dist/internal/backendSessions.d.ts.map +1 -1
- package/dist/internal/backendSessions.js +2 -6
- package/dist/internal/backendSessions.js.map +1 -1
- package/dist/internal/core.d.ts.map +1 -1
- package/dist/internal/core.js +32 -14
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/session.d.ts.map +1 -1
- package/dist/internal/session.js +81 -44
- package/dist/internal/session.js.map +1 -1
- package/package.json +1 -1
- package/src/Id.ts +27 -15
- package/src/Session.ts +5 -3
- package/src/internal/backendSessions.ts +2 -12
- package/src/internal/core.ts +36 -13
- package/src/internal/session.ts +81 -44
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
|
-
|
|
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
|
|
178
|
-
//
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
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
|
|
33
|
-
*
|
|
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
|
package/dist/Session.d.ts.map
CHANGED
|
@@ -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
|
|
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
|
|
19
|
-
*
|
|
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
|
-
|
|
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
|
package/dist/Session.js.map
CHANGED
|
@@ -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
|
|
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":"AAQA,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,KAAK,MAAM,EAAsC,MAAM,UAAU,CAAA;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAIxC,gGAAgG;AAChG,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,OAAO,CAAC,OAAO,EACf,SAAS,GAAG,cAAc,CAC3B,GAAG;IACF;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzB,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,OAAO,GACtB,MAAM,CAAC,UAAU,
|
|
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
|
-
|
|
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":"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
|
|
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,
|
|
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"}
|
package/dist/internal/core.js
CHANGED
|
@@ -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
|
|
58
|
-
// Without
|
|
59
|
-
// returns the same tokens, so
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
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":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,WAAW,CAAA;AAIhC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAuB,EACvB,UAAU,GAAyB,EAAE;IAErC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;IACvC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAEvE,sEAAsE;IACtE,MAAM,MAAM,GACV,MAAM,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;QAC9B,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,WAAW;KACZ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC9B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,+FAA+F;IAC/F,MAAM,OAAO,GACX,KAAK,IAAI,MAAM;QACb,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;YAC3B,KAAK,EAAE,UAAU,CAAC,KAAc;YAChC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;SACvB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IACxD,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC5B,OAAO,EAAE,GAAG,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAA;AAClE,CAAC;AAyBD;;;GAGG;AACH,MAAM,UAAU,OAAO,CACrB,OAAuB;IAEvB,8FAA8F;IAC9F,qEAAqE;IACrE,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QAC1C,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QAC5B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;QAC9C,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,CAAA;QAC1C,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAA;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACvD,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;QAEpE,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE;
|
|
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,
|
|
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"}
|
package/dist/internal/session.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
|
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":"AAAA;;;;GAIG;AACH,OAAO,EAEL,OAAO,EAEP,qBAAqB,GACtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAiB,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AA4BlD;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,OAAuB;IAC5C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAE3D,kGAAkG;IAClG,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,kFAAkF;IAClF,IAAI,SAA6B,CAAA;IACjC,iFAAiF;IACjF,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/C,MAAM,KAAK,GAAgC,OAAO;QAChD,CAAC,CAAC,WAAW,EAAS,CAClB,qBAAqB,CACnB,MAAM;YACJ,CAAC,CAAC,OAAO,CAAwC,OAAO,EAAE;gBACtD,iFAAiF;gBACjF,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAC5B,OAAO,GAAG,CAAC;oBACT,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,GAAI,SAA4B,EAAE;gBACtD,IAAI;gBACJ,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnD,8EAA8E;gBAC9E,aAAa,EAAE,IAAI;gBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,CAAC;aACX,CAAC;YACJ,CAAC,CAAC,OAAO,CACZ,CACF;QACH,CAAC,CAAC,SAAS,CAAA;IAEb,+CAA+C;IAC/C,SAAS,GAAG,CAAC,OAAoC;QAC/C,OAAO,EAAE,CAAA;QACT,KAAK,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAC9B,CAAC;IAED,6DAA6D;IAC7D,IAAI,SAAoC,CAAA;IACxC,6FAA6F;IAC7F,IAAI,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/internal/session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
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
|
-
|
|
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
|
|
516
|
-
//
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
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
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
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
|
|
38
|
-
*
|
|
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
|
-
|
|
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
|
-
|
|
220
|
-
|
|
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
|
package/src/internal/core.ts
CHANGED
|
@@ -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
|
|
95
|
-
// Without
|
|
96
|
-
// returns the same tokens, so
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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)
|
package/src/internal/session.ts
CHANGED
|
@@ -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
|
|
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
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
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
|
|
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
|
}
|