@icp-sdk/auth 10.0.1 → 10.0.2

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.
@@ -360,9 +360,10 @@ export declare class AuthClient {
360
360
  *
361
361
  * In 'window' mode the callback lets the identity provider window open while the
362
362
  * nonce is still resolving, avoiding a perceived delay before the user sees
363
- * the prompt; auto-close of the signer transport channel is temporarily
364
- * disabled while awaiting so the window cannot be closed out from under the
365
- * pending flow.
363
+ * the prompt; the signer keeps the channel open while the request waits for
364
+ * its nonce. In both modes the request takes its place with the signer when
365
+ * this method is called, so it can be issued alongside `signIn` in either
366
+ * order.
366
367
  *
367
368
  * @param params - Request parameters.
368
369
  * @param params.keys - Attribute keys to request (e.g. `['email', 'name']`).
@@ -438,18 +438,14 @@ export class AuthClient {
438
438
  this.#interactions += 1;
439
439
  }
440
440
  /**
441
- * Opens the signer channel and takes the lock that makes this the only
442
- * interaction on it.
441
+ * Takes the lock that makes this the only interaction on the signer channel.
443
442
  *
444
- * One method because the order is the whole point. A popup may only be opened
445
- * from the task the click started, so nothing may be asked of the browser
446
- * before `openChannel` — two lock requests in front of it were enough for
447
- * Chromium to refuse the window — and the lock has to be taken as soon as it
448
- * is open. Two callers doing that by hand is one place too many for the order
449
- * to come out backwards.
443
+ * Called right after a request is handed to the signer, which opens the
444
+ * channel within that call: a popup may only be opened from the task the
445
+ * click started, and lock requests in front of it were enough for Chromium to
446
+ * refuse the window, so the lock is asked for once the window exists.
450
447
  */
451
- async #openSignerChannel() {
452
- await this.#signer.openChannel();
448
+ #takeChannelLock() {
453
449
  if (this.#channelLock === undefined) {
454
450
  const lock = stealLock(CHANNEL_LOCK);
455
451
  // Whoever took the channel has already renavigated the window this one was
@@ -519,14 +515,11 @@ export class AuthClient {
519
515
  // carry across the round trip for the return leg to trust.
520
516
  const raw = options?.returnTo;
521
517
  const returnTo = raw === undefined ? undefined : this.memoize(() => sameOriginTarget(raw)?.href ?? null);
522
- // Start session-key acquisition BEFORE opening the channel, awaiting it only
523
- // after. In the redirect flow the acquisition's first `transport.memoize`
524
- // runs synchronously when invoked, so its in-flight bump lands in the same
525
- // tick `signIn` is called — holding the transport's batch flush from the
526
- // very start of the flow rather than only after the `openChannel` await.
527
- // Under `Promise.all([signIn, requestAttributes])` this is what keeps a
528
- // faster concurrent request from flushing before this flow's delegation
529
- // request is buffered.
518
+ // Session-key acquisition starts on the call, and the delegation request
519
+ // that needs it is handed to the signer on the call too, as a promise of the
520
+ // request. The signer places it in call order there, so in the redirect
521
+ // flow it replays into the slot it was sent from whatever the key costs on
522
+ // either load, and a `requestAttributes` issued alongside keeps its own.
530
523
  const sessionKeyPromise = this.#urlTransport
531
524
  ? this.#ensureSessionKeyForRedirectFlow(this.#urlTransport)
532
525
  : this.#ensureSessionKeyForWindowFlow().then((key) => ({ key }));
@@ -536,9 +529,21 @@ export class AuthClient {
536
529
  // surfacing as an unhandled rejection. The `await` below still observes a
537
530
  // rejection and propagates it when reached.
538
531
  void sessionKeyPromise.catch(() => undefined);
539
- // Must stay the first await: it opens the signer window, which the browser
540
- // allows only in the tick the click started.
541
- await this.#openSignerChannel();
532
+ // Opens the signer window within the call, which the browser allows only in
533
+ // the tick the click started, so nothing before it may ask the browser for
534
+ // anything.
535
+ const sessionChainPromise = requestSessionDelegation(this.#signer, sessionKeyPromise.then(({ key }) => ({
536
+ sessionPublicKey: key.getPublicKey().toDer(),
537
+ // Both bounds are sent only where the caller asked, so the provider's
538
+ // own defaults apply otherwise rather than numbers this library
539
+ // invented. How long a sign-in lasts is the provider's policy, narrowed
540
+ // by what the user chooses at consent and by an organization's cap.
541
+ maxTimeToLive: options?.maxTimeToLive,
542
+ maxTimeToIdle: options?.maxTimeToIdle,
543
+ derivationOrigin: this.#options.derivationOrigin?.toString(),
544
+ })));
545
+ void sessionChainPromise.catch(() => undefined);
546
+ this.#takeChannelLock();
542
547
  // The other lock a ceremony needs, taken once the window is open for the
543
548
  // same reason. Stolen rather than queued for, so the newer intent wins and
544
549
  // the loser learns of it before writing anything.
@@ -570,16 +575,7 @@ export class AuthClient {
570
575
  // an identity whose first request fails for a reason nothing explains.
571
576
  throw new Error('A session needs a key that can sign');
572
577
  }
573
- const sessionChain = await requestSessionDelegation(this.#signer, {
574
- sessionPublicKey: key.getPublicKey().toDer(),
575
- // Both bounds are sent only where the caller asked, so the provider's
576
- // own defaults apply otherwise rather than numbers this library
577
- // invented. How long a sign-in lasts is the provider's policy, narrowed
578
- // by what the user chooses at consent and by an organization's cap.
579
- maxTimeToLive: options?.maxTimeToLive,
580
- maxTimeToIdle: options?.maxTimeToIdle,
581
- derivationOrigin: this.#options.derivationOrigin?.toString(),
582
- });
578
+ const sessionChain = await sessionChainPromise;
583
579
  // The chain comes from the signer over a transport shared with others, so
584
580
  // the key it delegates to is checked here rather than assumed. A chain for
585
581
  // another key mints nothing, and failing now names the cause instead of
@@ -667,21 +663,10 @@ export class AuthClient {
667
663
  if (!this.#credentialStorage.durable) {
668
664
  throw new Error('A redirect sign-in needs a credential store that survives the navigation, and this one does not. Use a durable store or the window transport.');
669
665
  }
670
- // Acquire the key inside a `memoize` producer so the transport holds its
671
- // batch flush across the (async) key read/create + storage write. The
672
- // transport coalesces concurrently issued requests into one redirect by
673
- // flushing on a macrotask once no memoize producer is in flight; without
674
- // this hold, a faster concurrent request (e.g. the nonce path of
675
- // `requestAttributes`) buffers first and trips that flush before this flow's
676
- // delegation request — issued only once the key is ready — is buffered,
677
- // splitting what should be one redirect into two.
678
- //
679
- // The key is captured in a closure, not read back after the producer: on the
680
- // FIRST load the producer sets `acquired`, so the delegation request that
681
- // follows is issued with no intervening storage read — a read there would
682
- // re-open the very flush gap this closes. The producer is skipped on the
683
- // replay load (its result is journaled), where the key is instead read from
684
- // the pending slot.
666
+ // Acquired inside a `memoize` producer, so the first load journals which key
667
+ // this ceremony started with. The key is captured in a closure on the first
668
+ // load, where the producer runs; on the replay load the producer is skipped
669
+ // (its result is journaled) and the key is read from the pending slot.
685
670
  //
686
671
  // What is journaled is the key's *public* half: not a secret, it survives the
687
672
  // redirect as text, and on the return load it says whether the pending slot
@@ -720,9 +705,10 @@ export class AuthClient {
720
705
  *
721
706
  * In 'window' mode the callback lets the identity provider window open while the
722
707
  * nonce is still resolving, avoiding a perceived delay before the user sees
723
- * the prompt; auto-close of the signer transport channel is temporarily
724
- * disabled while awaiting so the window cannot be closed out from under the
725
- * pending flow.
708
+ * the prompt; the signer keeps the channel open while the request waits for
709
+ * its nonce. In both modes the request takes its place with the signer when
710
+ * this method is called, so it can be issued alongside `signIn` in either
711
+ * order.
726
712
  *
727
713
  * @param params - Request parameters.
728
714
  * @param params.keys - Attribute keys to request (e.g. `['email', 'name']`).
@@ -746,15 +732,21 @@ export class AuthClient {
746
732
  async #runRequestAttributes(params) {
747
733
  // In redirect mode the nonce is journaled (base64, since the journal is
748
734
  // JSON) so the replay on the return load signs against the same bytes.
749
- const nonceBytes = this.#urlTransport
750
- ? fromBase64(await this.#urlTransport.memoize(async () => toBase64(await params.nonce())))
751
- : await this.#resolveNonce(params.nonce);
752
- const response = await this.#signer.sendRequest({
735
+ const nonce = this.#urlTransport
736
+ ? this.#urlTransport.memoize(async () => toBase64(await params.nonce()))
737
+ : params.nonce().then(toBase64);
738
+ // Handed to the signer on the call, as a promise of the request: the signer
739
+ // window opens within the call while the nonce is still on its way, and the
740
+ // request keeps its place in call order however long the nonce takes on
741
+ // either load of a redirect flow.
742
+ const responsePromise = this.#signer.sendRequest(nonce.then((value) => ({
753
743
  jsonrpc: '2.0',
754
744
  id: globalThis.crypto.randomUUID(),
755
745
  method: 'ii-icrc3-attributes',
756
- params: { keys: params.keys, nonce: toBase64(nonceBytes) },
757
- });
746
+ params: { keys: params.keys, nonce: value },
747
+ })));
748
+ this.#takeChannelLock();
749
+ const response = await responsePromise;
758
750
  if ('error' in response) {
759
751
  throw new Error(response.error.message);
760
752
  }
@@ -835,24 +827,6 @@ export class AuthClient {
835
827
  }
836
828
  }
837
829
  }
838
- // Popup-mode nonce resolution. Start the fetch, then open the transport
839
- // channel so the identity provider window is visible while we wait, and
840
- // suspend auto-close so it can't fire mid-await (e.g. due to a close
841
- // scheduled by a prior request on the same signer). The original auto-close
842
- // setting is restored before sendRequest, so the next response resumes
843
- // normal close behaviour.
844
- async #resolveNonce(nonce) {
845
- const value = nonce();
846
- await this.#openSignerChannel();
847
- const previousAutoClose = this.#signer.autoCloseTransportChannel;
848
- this.#signer.autoCloseTransportChannel = false;
849
- try {
850
- return await value;
851
- }
852
- finally {
853
- this.#signer.autoCloseTransportChannel = previousAutoClose;
854
- }
855
- }
856
830
  /**
857
831
  * Mints ahead of the next request when the page comes back, if one is due.
858
832
  *
@@ -1 +1 @@
1
- {"version":3,"file":"auth-client.js","sourceRoot":"","sources":["../../../src/client/auth-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-client.js","sourceRoot":"","sources":["../../../src/client/auth-client.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,12 @@ export declare class InteractionRequiredError extends Error {
25
25
  readonly reason: string | undefined;
26
26
  constructor(message: string, reason?: string);
27
27
  }
28
+ interface SessionDelegationParams {
29
+ sessionPublicKey: DerEncodedPublicKey;
30
+ maxTimeToLive?: bigint;
31
+ maxTimeToIdle?: bigint;
32
+ derivationOrigin?: string;
33
+ }
28
34
  /**
29
35
  * Asks the identity provider for a session, and returns the chain it signed.
30
36
  *
@@ -32,9 +38,5 @@ export declare class InteractionRequiredError extends Error {
32
38
  * something an application can call its own canisters with. It is what app
33
39
  * delegations are minted from.
34
40
  */
35
- export declare function requestSessionDelegation(signer: Signer, params: {
36
- sessionPublicKey: DerEncodedPublicKey;
37
- maxTimeToLive?: bigint;
38
- maxTimeToIdle?: bigint;
39
- derivationOrigin?: string;
40
- }): Promise<DelegationChain>;
41
+ export declare function requestSessionDelegation(signer: Signer, params: SessionDelegationParams | Promise<SessionDelegationParams>): Promise<DelegationChain>;
42
+ export {};
@@ -50,6 +50,23 @@ const looksLikeResult = (value) => {
50
50
  // session that expired at the epoch rather than as a bad response.
51
51
  result.signerDelegation.length > 0);
52
52
  };
53
+ const sessionDelegationRequest = (params) => ({
54
+ jsonrpc: '2.0',
55
+ id: globalThis.crypto.randomUUID(),
56
+ method: SESSION_DELEGATION_METHOD,
57
+ params: {
58
+ sessionPublicKey: toBase64(params.sessionPublicKey),
59
+ ...(params.maxTimeToLive === undefined
60
+ ? {}
61
+ : { maxTimeToLive: params.maxTimeToLive.toString() }),
62
+ ...(params.maxTimeToIdle === undefined
63
+ ? {}
64
+ : { maxTimeToIdle: params.maxTimeToIdle.toString() }),
65
+ ...(params.derivationOrigin === undefined
66
+ ? {}
67
+ : { icrc95DerivationOrigin: params.derivationOrigin }),
68
+ },
69
+ });
53
70
  /**
54
71
  * Asks the identity provider for a session, and returns the chain it signed.
55
72
  *
@@ -58,23 +75,11 @@ const looksLikeResult = (value) => {
58
75
  * delegations are minted from.
59
76
  */
60
77
  export async function requestSessionDelegation(signer, params) {
61
- const response = await signer.sendRequest({
62
- jsonrpc: '2.0',
63
- id: globalThis.crypto.randomUUID(),
64
- method: SESSION_DELEGATION_METHOD,
65
- params: {
66
- sessionPublicKey: toBase64(params.sessionPublicKey),
67
- ...(params.maxTimeToLive === undefined
68
- ? {}
69
- : { maxTimeToLive: params.maxTimeToLive.toString() }),
70
- ...(params.maxTimeToIdle === undefined
71
- ? {}
72
- : { maxTimeToIdle: params.maxTimeToIdle.toString() }),
73
- ...(params.derivationOrigin === undefined
74
- ? {}
75
- : { icrc95DerivationOrigin: params.derivationOrigin }),
76
- },
77
- });
78
+ // Sent on the call, before any await, so the request takes its place in call
79
+ // order with the signer even while its params are still on their way.
80
+ const response = await signer.sendRequest(params instanceof Promise
81
+ ? params.then(sessionDelegationRequest)
82
+ : sessionDelegationRequest(params));
78
83
  if ('error' in response) {
79
84
  // The code carries the only thing a caller can act on, and dropping it left
80
85
  // `interaction_required` indistinguishable from a transport failure except by
@@ -1 +1 @@
1
- {"version":3,"file":"session-delegation.js","sourceRoot":"","sources":["../../../src/client/session-delegation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-delegation.js","sourceRoot":"","sources":["../../../src/client/session-delegation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@icp-sdk/auth",
3
- "version": "10.0.1",
3
+ "version": "10.0.2",
4
4
  "author": "DFINITY Stiftung <sdk@dfinity.org>",
5
5
  "license": "Apache-2.0",
6
6
  "description": "Authentication library for Internet Computer web apps",
@@ -54,7 +54,7 @@
54
54
  "@icp-sdk/core": "^6"
55
55
  },
56
56
  "dependencies": {
57
- "@icp-sdk/signer": "^6.0.0",
57
+ "@icp-sdk/signer": "^6.1.0",
58
58
  "idb": "^7.1.1"
59
59
  },
60
60
  "scripts": {
@@ -741,19 +741,14 @@ export class AuthClient {
741
741
  }
742
742
 
743
743
  /**
744
- * Opens the signer channel and takes the lock that makes this the only
745
- * interaction on it.
744
+ * Takes the lock that makes this the only interaction on the signer channel.
746
745
  *
747
- * One method because the order is the whole point. A popup may only be opened
748
- * from the task the click started, so nothing may be asked of the browser
749
- * before `openChannel` — two lock requests in front of it were enough for
750
- * Chromium to refuse the window — and the lock has to be taken as soon as it
751
- * is open. Two callers doing that by hand is one place too many for the order
752
- * to come out backwards.
746
+ * Called right after a request is handed to the signer, which opens the
747
+ * channel within that call: a popup may only be opened from the task the
748
+ * click started, and lock requests in front of it were enough for Chromium to
749
+ * refuse the window, so the lock is asked for once the window exists.
753
750
  */
754
- async #openSignerChannel(): Promise<void> {
755
- await this.#signer.openChannel();
756
-
751
+ #takeChannelLock(): void {
757
752
  if (this.#channelLock === undefined) {
758
753
  const lock = stealLock(CHANNEL_LOCK);
759
754
  // Whoever took the channel has already renavigated the window this one was
@@ -832,14 +827,11 @@ export class AuthClient {
832
827
  const returnTo =
833
828
  raw === undefined ? undefined : this.memoize(() => sameOriginTarget(raw)?.href ?? null);
834
829
 
835
- // Start session-key acquisition BEFORE opening the channel, awaiting it only
836
- // after. In the redirect flow the acquisition's first `transport.memoize`
837
- // runs synchronously when invoked, so its in-flight bump lands in the same
838
- // tick `signIn` is called — holding the transport's batch flush from the
839
- // very start of the flow rather than only after the `openChannel` await.
840
- // Under `Promise.all([signIn, requestAttributes])` this is what keeps a
841
- // faster concurrent request from flushing before this flow's delegation
842
- // request is buffered.
830
+ // Session-key acquisition starts on the call, and the delegation request
831
+ // that needs it is handed to the signer on the call too, as a promise of the
832
+ // request. The signer places it in call order there, so in the redirect
833
+ // flow it replays into the slot it was sent from whatever the key costs on
834
+ // either load, and a `requestAttributes` issued alongside keeps its own.
843
835
  const sessionKeyPromise: Promise<{
844
836
  key: SignIdentity | PartialIdentity;
845
837
  pending?: boolean;
@@ -853,9 +845,25 @@ export class AuthClient {
853
845
  // rejection and propagates it when reached.
854
846
  void sessionKeyPromise.catch(() => undefined);
855
847
 
856
- // Must stay the first await: it opens the signer window, which the browser
857
- // allows only in the tick the click started.
858
- await this.#openSignerChannel();
848
+ // Opens the signer window within the call, which the browser allows only in
849
+ // the tick the click started, so nothing before it may ask the browser for
850
+ // anything.
851
+ const sessionChainPromise = requestSessionDelegation(
852
+ this.#signer,
853
+ sessionKeyPromise.then(({ key }) => ({
854
+ sessionPublicKey: key.getPublicKey().toDer(),
855
+ // Both bounds are sent only where the caller asked, so the provider's
856
+ // own defaults apply otherwise rather than numbers this library
857
+ // invented. How long a sign-in lasts is the provider's policy, narrowed
858
+ // by what the user chooses at consent and by an organization's cap.
859
+ maxTimeToLive: options?.maxTimeToLive,
860
+ maxTimeToIdle: options?.maxTimeToIdle,
861
+ derivationOrigin: this.#options.derivationOrigin?.toString(),
862
+ })),
863
+ );
864
+ void sessionChainPromise.catch(() => undefined);
865
+
866
+ this.#takeChannelLock();
859
867
 
860
868
  // The other lock a ceremony needs, taken once the window is open for the
861
869
  // same reason. Stolen rather than queued for, so the newer intent wins and
@@ -893,16 +901,7 @@ export class AuthClient {
893
901
  throw new Error('A session needs a key that can sign');
894
902
  }
895
903
 
896
- const sessionChain = await requestSessionDelegation(this.#signer, {
897
- sessionPublicKey: key.getPublicKey().toDer(),
898
- // Both bounds are sent only where the caller asked, so the provider's
899
- // own defaults apply otherwise rather than numbers this library
900
- // invented. How long a sign-in lasts is the provider's policy, narrowed
901
- // by what the user chooses at consent and by an organization's cap.
902
- maxTimeToLive: options?.maxTimeToLive,
903
- maxTimeToIdle: options?.maxTimeToIdle,
904
- derivationOrigin: this.#options.derivationOrigin?.toString(),
905
- });
904
+ const sessionChain = await sessionChainPromise;
906
905
 
907
906
  // The chain comes from the signer over a transport shared with others, so
908
907
  // the key it delegates to is checked here rather than assumed. A chain for
@@ -1002,21 +1001,10 @@ export class AuthClient {
1002
1001
  );
1003
1002
  }
1004
1003
 
1005
- // Acquire the key inside a `memoize` producer so the transport holds its
1006
- // batch flush across the (async) key read/create + storage write. The
1007
- // transport coalesces concurrently issued requests into one redirect by
1008
- // flushing on a macrotask once no memoize producer is in flight; without
1009
- // this hold, a faster concurrent request (e.g. the nonce path of
1010
- // `requestAttributes`) buffers first and trips that flush before this flow's
1011
- // delegation request — issued only once the key is ready — is buffered,
1012
- // splitting what should be one redirect into two.
1013
- //
1014
- // The key is captured in a closure, not read back after the producer: on the
1015
- // FIRST load the producer sets `acquired`, so the delegation request that
1016
- // follows is issued with no intervening storage read — a read there would
1017
- // re-open the very flush gap this closes. The producer is skipped on the
1018
- // replay load (its result is journaled), where the key is instead read from
1019
- // the pending slot.
1004
+ // Acquired inside a `memoize` producer, so the first load journals which key
1005
+ // this ceremony started with. The key is captured in a closure on the first
1006
+ // load, where the producer runs; on the replay load the producer is skipped
1007
+ // (its result is journaled) and the key is read from the pending slot.
1020
1008
  //
1021
1009
  // What is journaled is the key's *public* half: not a secret, it survives the
1022
1010
  // redirect as text, and on the return load it says whether the pending slot
@@ -1057,9 +1045,10 @@ export class AuthClient {
1057
1045
  *
1058
1046
  * In 'window' mode the callback lets the identity provider window open while the
1059
1047
  * nonce is still resolving, avoiding a perceived delay before the user sees
1060
- * the prompt; auto-close of the signer transport channel is temporarily
1061
- * disabled while awaiting so the window cannot be closed out from under the
1062
- * pending flow.
1048
+ * the prompt; the signer keeps the channel open while the request waits for
1049
+ * its nonce. In both modes the request takes its place with the signer when
1050
+ * this method is called, so it can be issued alongside `signIn` in either
1051
+ * order.
1063
1052
  *
1064
1053
  * @param params - Request parameters.
1065
1054
  * @param params.keys - Attribute keys to request (e.g. `['email', 'name']`).
@@ -1089,16 +1078,24 @@ export class AuthClient {
1089
1078
  }): Promise<SignedAttributes> {
1090
1079
  // In redirect mode the nonce is journaled (base64, since the journal is
1091
1080
  // JSON) so the replay on the return load signs against the same bytes.
1092
- const nonceBytes = this.#urlTransport
1093
- ? fromBase64(await this.#urlTransport.memoize(async () => toBase64(await params.nonce())))
1094
- : await this.#resolveNonce(params.nonce);
1095
-
1096
- const response = await this.#signer.sendRequest({
1097
- jsonrpc: '2.0',
1098
- id: globalThis.crypto.randomUUID(),
1099
- method: 'ii-icrc3-attributes',
1100
- params: { keys: params.keys, nonce: toBase64(nonceBytes) },
1101
- });
1081
+ const nonce: Promise<string> = this.#urlTransport
1082
+ ? this.#urlTransport.memoize(async () => toBase64(await params.nonce()))
1083
+ : params.nonce().then(toBase64);
1084
+
1085
+ // Handed to the signer on the call, as a promise of the request: the signer
1086
+ // window opens within the call while the nonce is still on its way, and the
1087
+ // request keeps its place in call order however long the nonce takes on
1088
+ // either load of a redirect flow.
1089
+ const responsePromise = this.#signer.sendRequest(
1090
+ nonce.then((value) => ({
1091
+ jsonrpc: '2.0' as const,
1092
+ id: globalThis.crypto.randomUUID(),
1093
+ method: 'ii-icrc3-attributes',
1094
+ params: { keys: params.keys, nonce: value },
1095
+ })),
1096
+ );
1097
+ this.#takeChannelLock();
1098
+ const response = await responsePromise;
1102
1099
 
1103
1100
  if ('error' in response) {
1104
1101
  throw new Error(response.error.message);
@@ -1235,24 +1232,6 @@ export class AuthClient {
1235
1232
  }
1236
1233
  }
1237
1234
 
1238
- // Popup-mode nonce resolution. Start the fetch, then open the transport
1239
- // channel so the identity provider window is visible while we wait, and
1240
- // suspend auto-close so it can't fire mid-await (e.g. due to a close
1241
- // scheduled by a prior request on the same signer). The original auto-close
1242
- // setting is restored before sendRequest, so the next response resumes
1243
- // normal close behaviour.
1244
- async #resolveNonce(nonce: () => Promise<Uint8Array>): Promise<Uint8Array> {
1245
- const value = nonce();
1246
- await this.#openSignerChannel();
1247
- const previousAutoClose = this.#signer.autoCloseTransportChannel;
1248
- this.#signer.autoCloseTransportChannel = false;
1249
- try {
1250
- return await value;
1251
- } finally {
1252
- this.#signer.autoCloseTransportChannel = previousAutoClose;
1253
- }
1254
- }
1255
-
1256
1235
  /**
1257
1236
  * Mints ahead of the next request when the page comes back, if one is due.
1258
1237
  *
@@ -68,6 +68,31 @@ const looksLikeResult = (value: unknown): value is SessionDelegationResult => {
68
68
  );
69
69
  };
70
70
 
71
+ interface SessionDelegationParams {
72
+ sessionPublicKey: DerEncodedPublicKey;
73
+ maxTimeToLive?: bigint;
74
+ maxTimeToIdle?: bigint;
75
+ derivationOrigin?: string;
76
+ }
77
+
78
+ const sessionDelegationRequest = (params: SessionDelegationParams) => ({
79
+ jsonrpc: '2.0' as const,
80
+ id: globalThis.crypto.randomUUID(),
81
+ method: SESSION_DELEGATION_METHOD,
82
+ params: {
83
+ sessionPublicKey: toBase64(params.sessionPublicKey),
84
+ ...(params.maxTimeToLive === undefined
85
+ ? {}
86
+ : { maxTimeToLive: params.maxTimeToLive.toString() }),
87
+ ...(params.maxTimeToIdle === undefined
88
+ ? {}
89
+ : { maxTimeToIdle: params.maxTimeToIdle.toString() }),
90
+ ...(params.derivationOrigin === undefined
91
+ ? {}
92
+ : { icrc95DerivationOrigin: params.derivationOrigin }),
93
+ },
94
+ });
95
+
71
96
  /**
72
97
  * Asks the identity provider for a session, and returns the chain it signed.
73
98
  *
@@ -77,30 +102,15 @@ const looksLikeResult = (value: unknown): value is SessionDelegationResult => {
77
102
  */
78
103
  export async function requestSessionDelegation(
79
104
  signer: Signer,
80
- params: {
81
- sessionPublicKey: DerEncodedPublicKey;
82
- maxTimeToLive?: bigint;
83
- maxTimeToIdle?: bigint;
84
- derivationOrigin?: string;
85
- },
105
+ params: SessionDelegationParams | Promise<SessionDelegationParams>,
86
106
  ): Promise<DelegationChain> {
87
- const response = await signer.sendRequest({
88
- jsonrpc: '2.0',
89
- id: globalThis.crypto.randomUUID(),
90
- method: SESSION_DELEGATION_METHOD,
91
- params: {
92
- sessionPublicKey: toBase64(params.sessionPublicKey),
93
- ...(params.maxTimeToLive === undefined
94
- ? {}
95
- : { maxTimeToLive: params.maxTimeToLive.toString() }),
96
- ...(params.maxTimeToIdle === undefined
97
- ? {}
98
- : { maxTimeToIdle: params.maxTimeToIdle.toString() }),
99
- ...(params.derivationOrigin === undefined
100
- ? {}
101
- : { icrc95DerivationOrigin: params.derivationOrigin }),
102
- },
103
- });
107
+ // Sent on the call, before any await, so the request takes its place in call
108
+ // order with the signer even while its params are still on their way.
109
+ const response = await signer.sendRequest(
110
+ params instanceof Promise
111
+ ? params.then(sessionDelegationRequest)
112
+ : sessionDelegationRequest(params),
113
+ );
104
114
 
105
115
  if ('error' in response) {
106
116
  // The code carries the only thing a caller can act on, and dropping it left