@darkauth/client 1.14.0 → 1.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -20,6 +20,10 @@ export interface AuthSession {
20
20
  idToken: string;
21
21
  accessToken?: string;
22
22
  drk: Uint8Array;
23
+ clientAppKey?: Uint8Array;
24
+ rootKey?: Uint8Array;
25
+ deliveredKeyKind?: "client_app_key" | "root_key";
26
+ keyDeliveryVersion?: "v1-drk" | "v2";
23
27
  refreshToken?: string;
24
28
  }
25
29
  export interface JwtClaims {
package/dist/index.js CHANGED
@@ -190,6 +190,10 @@ function storeSession(session) {
190
190
  idToken: session.idToken,
191
191
  accessToken: session.accessToken,
192
192
  drk: session.drk,
193
+ clientAppKey: session.clientAppKey,
194
+ rootKey: session.rootKey,
195
+ deliveredKeyKind: session.deliveredKeyKind,
196
+ keyDeliveryVersion: session.keyDeliveryVersion,
193
197
  refreshToken: currentRefreshMode === "token" ? session.refreshToken : undefined,
194
198
  };
195
199
  memorySession = storedSession;
@@ -367,6 +371,10 @@ export async function handleCallback() {
367
371
  sessionStorage.removeItem("zk_eph_priv_jwk");
368
372
  const privateKey = await crypto.subtle.importKey("jwk", JSON.parse(privateJwkString), { name: "ECDH", namedCurve: "P-256" }, true, ["deriveBits", "deriveKey"]);
369
373
  let drk;
374
+ let clientAppKey;
375
+ let rootKey;
376
+ let deliveredKeyKind;
377
+ let keyDeliveryVersion;
370
378
  if (hasV2Artifacts) {
371
379
  if (hasLegacyArtifacts)
372
380
  throw new Error("Mixed key delivery metadata");
@@ -421,6 +429,9 @@ export async function handleCallback() {
421
429
  drk = base64UrlToBytes(requireString(payload.cak, "client app key"));
422
430
  if (drk.length === 0)
423
431
  throw new Error("Invalid client app key");
432
+ clientAppKey = drk;
433
+ deliveredKeyKind = "client_app_key";
434
+ keyDeliveryVersion = "v2";
424
435
  }
425
436
  else {
426
437
  if (!drkJwe || typeof drkJwe !== "string")
@@ -434,9 +445,21 @@ export async function handleCallback() {
434
445
  if (protectedHeader.alg !== "ECDH-ES" || protectedHeader.enc !== "A256GCM")
435
446
  throw new Error("Invalid DRK JWE header");
436
447
  drk = new Uint8Array(plaintext);
448
+ rootKey = drk;
449
+ deliveredKeyKind = "root_key";
450
+ keyDeliveryVersion = "v1-drk";
437
451
  }
438
452
  clearCallbackUrl();
439
- return storeSession({ idToken, accessToken, drk, refreshToken });
453
+ return storeSession({
454
+ idToken,
455
+ accessToken,
456
+ drk,
457
+ clientAppKey,
458
+ rootKey,
459
+ deliveredKeyKind,
460
+ keyDeliveryVersion,
461
+ refreshToken,
462
+ });
440
463
  }
441
464
  finally {
442
465
  clearCallbackStorage();
@@ -532,6 +555,10 @@ export async function refreshSession() {
532
555
  idToken,
533
556
  accessToken,
534
557
  drk,
558
+ clientAppKey: memorySession?.clientAppKey,
559
+ rootKey: memorySession?.rootKey,
560
+ deliveredKeyKind: memorySession?.deliveredKeyKind,
561
+ keyDeliveryVersion: memorySession?.keyDeliveryVersion,
535
562
  refreshToken: currentRefreshMode === "token" ? newRefreshToken || refreshToken || undefined : undefined,
536
563
  });
537
564
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darkauth/client",
3
- "version": "1.14.0",
3
+ "version": "1.15.1",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "directory": "packages/darkauth-client",