@schemavaults/auth-react-provider 0.9.13 → 0.9.14

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.
@@ -3,16 +3,26 @@ import { accessTokenExpiry } from "@schemavaults/auth-common";
3
3
  import { useEffect } from "react";
4
4
  import useAuth from "./use-auth";
5
5
  import useDefaultAccessTokenAudiences from "./use-default-access-token-audiences";
6
- const ACCESS_TOKEN_VALID_DURATION = accessTokenExpiry;
6
+ import useDebug from "./use-debug";
7
+ import useAppEnvironment from "./use-app-environment";
8
+ function secondsToMs(seconds) {
9
+ return seconds * 1000;
10
+ }
11
+ const ACCESS_TOKEN_VALID_DURATION = secondsToMs(accessTokenExpiry);
7
12
  const REACQUIRE_INTERVAL = ACCESS_TOKEN_VALID_DURATION / 10;
8
13
  // when 30% left in duration or less, reqacuire
9
14
  const REACQUIRE_THRESHOLD = ACCESS_TOKEN_VALID_DURATION * 0.3;
10
15
  export function useAutoReacquireDefaultAccessTokens() {
11
16
  const authContext = useAuth();
12
17
  const defaultAccessTokenAudiences = useDefaultAccessTokenAudiences();
18
+ const environment = useAppEnvironment();
19
+ const debug = useDebug(environment);
13
20
  useEffect(() => {
14
21
  if (typeof defaultAccessTokenAudiences === "undefined" ||
15
22
  !Array.isArray(defaultAccessTokenAudiences)) {
23
+ if (debug) {
24
+ console.warn("[useAutoReacquireDefaultAccessTokens] Default access token audiences not set.");
25
+ }
16
26
  return;
17
27
  }
18
28
  if (!authContext.ready || !authContext.client.current) {
@@ -20,16 +30,28 @@ export function useAutoReacquireDefaultAccessTokens() {
20
30
  }
21
31
  const auth = authContext.client.current;
22
32
  async function reacquireAccessTokenIfNearExpiry(audience) {
33
+ if (debug) {
34
+ console.log(`[useAutoReacquireDefaultAccessTokens] reacquireAccessTokenIfNearExpiry(audience="${audience}")`);
35
+ }
23
36
  const existingAccessToken = auth.getAccessTokenFromCache(audience);
24
37
  if (!existingAccessToken) {
38
+ if (debug) {
39
+ console.warn(`[useAutoReacquireDefaultAccessTokens] No existing access token for audience "${audience}" found!`);
40
+ }
25
41
  return null;
26
42
  }
27
43
  const timeUntilExpiry = existingAccessToken.exp - Date.now();
28
44
  if (timeUntilExpiry <= 0) {
29
45
  // expired
46
+ if (debug) {
47
+ console.warn(`[useAutoReacquireDefaultAccessTokens] Existing access token for audience "${audience}" expired!`);
48
+ }
30
49
  return null;
31
50
  }
32
51
  if (timeUntilExpiry < REACQUIRE_THRESHOLD) {
52
+ if (debug) {
53
+ console.log(`[useAutoReacquireDefaultAccessTokens] Attempting to acquire fresh access token for audience "${audience}"! Existing one is near expiration...`);
54
+ }
33
55
  return await auth.acquireAccessToken({
34
56
  audience,
35
57
  ensure_fresh: true,
@@ -48,6 +70,10 @@ export function useAutoReacquireDefaultAccessTokens() {
48
70
  return;
49
71
  }
50
72
  await Promise.all(defaultAccessTokenAudiences.map((audience) => reacquireAccessTokenIfNearExpiry(audience)));
73
+ return;
74
+ } // onTimer()
75
+ if (debug) {
76
+ console.log("[useAutoReacquireDefaultAccessTokens] Starting timer with interval (ms): ", REACQUIRE_INTERVAL);
51
77
  }
52
78
  const reacquire_timer = setInterval(onTimer, REACQUIRE_INTERVAL);
53
79
  return function unsubscribe() {
@@ -1 +1 @@
1
- {"version":3,"file":"use-auto-reacquire-default-access-tokens.js","sourceRoot":"","sources":["../../src/hooks/use-auto-reacquire-default-access-tokens.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAe,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,8BAA8B,MAAM,sCAAsC,CAAC;AAGlF,MAAM,2BAA2B,GAAW,iBAAiB,CAAC;AAC9D,MAAM,kBAAkB,GAAW,2BAA2B,GAAG,EAAE,CAAC;AACpE,+CAA+C;AAC/C,MAAM,mBAAmB,GAAW,2BAA2B,GAAG,GAAG,CAAC;AAEtE,MAAM,UAAU,mCAAmC;IACjD,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;IAC9B,MAAM,2BAA2B,GAAG,8BAA8B,EAAE,CAAC;IAErE,SAAS,CAAC,GAAG,EAAE;QACb,IACE,OAAO,2BAA2B,KAAK,WAAW;YAClD,CAAC,KAAK,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAC3C,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAA4B,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;QAEjE,KAAK,UAAU,gCAAgC,CAC7C,QAAqB;YAErB,MAAM,mBAAmB,GACvB,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,eAAe,GAAW,mBAAmB,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrE,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;gBACzB,UAAU;gBACV,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,eAAe,GAAG,mBAAmB,EAAE,CAAC;gBAC1C,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC;oBACnC,QAAQ;oBACR,YAAY,EAAE,IAAI;oBAClB,UAAU,EAAE,KAAK;iBAClB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,KAAK,UAAU,OAAO;YACpB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC1B,OAAO;YACT,CAAC;YACD,IAAI,OAAO,2BAA2B,KAAK,WAAW,EAAE,CAAC;gBACvD,OAAO;YACT,CAAC;YACD,MAAM,OAAO,CAAC,GAAG,CACf,2BAA2B,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC3C,gCAAgC,CAAC,QAAQ,CAAC,CAC3C,CACF,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAEjE,OAAO,SAAS,WAAW;YACzB,aAAa,CAAC,eAAe,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,eAAe,mCAAmC,CAAC"}
1
+ {"version":3,"file":"use-auto-reacquire-default-access-tokens.js","sourceRoot":"","sources":["../../src/hooks/use-auto-reacquire-default-access-tokens.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@schemavaults/auth-react-provider",
3
3
  "description": "React hooks and components to make using the @schemavaults/auth-client-sdk a breeze",
4
- "version": "0.9.13",
4
+ "version": "0.9.14",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,
7
7
  "repository": {
@@ -15,9 +15,9 @@
15
15
  "types": "dist/index.d.ts",
16
16
  "dependencies": {
17
17
  "zod": "3.25.8",
18
- "@schemavaults/auth-client-sdk": "0.9.11",
18
+ "@schemavaults/auth-client-sdk": "0.9.12",
19
19
  "@schemavaults/app-definitions": "0.6.18",
20
- "@schemavaults/auth-common": "0.9.2",
20
+ "@schemavaults/auth-common": "0.9.3",
21
21
  "cookies-next": "6.1.1",
22
22
  "uuid": "11.0.3",
23
23
  "swr": "2.3.4"