@feelflow/ffid-sdk 1.2.1 → 1.2.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.
@@ -630,6 +630,11 @@ function createFFIDClient(config) {
630
630
  if (!response.ok) {
631
631
  const errorBody = tokenResponse;
632
632
  logger.error("Token refresh failed:", errorBody);
633
+ const irrecoverableErrors = ["token_revoked", "invalid_grant"];
634
+ if (errorBody.error && irrecoverableErrors.includes(errorBody.error)) {
635
+ tokenStore.clearTokens();
636
+ logger.debug("Cleared tokens due to irrecoverable refresh error:", errorBody.error);
637
+ }
633
638
  return {
634
639
  error: {
635
640
  code: errorBody.error ?? FFID_ERROR_CODES.TOKEN_REFRESH_ERROR,
@@ -628,6 +628,11 @@ function createFFIDClient(config) {
628
628
  if (!response.ok) {
629
629
  const errorBody = tokenResponse;
630
630
  logger.error("Token refresh failed:", errorBody);
631
+ const irrecoverableErrors = ["token_revoked", "invalid_grant"];
632
+ if (errorBody.error && irrecoverableErrors.includes(errorBody.error)) {
633
+ tokenStore.clearTokens();
634
+ logger.debug("Cleared tokens due to irrecoverable refresh error:", errorBody.error);
635
+ }
631
636
  return {
632
637
  error: {
633
638
  code: errorBody.error ?? FFID_ERROR_CODES.TOKEN_REFRESH_ERROR,
@@ -1,30 +1,30 @@
1
1
  'use strict';
2
2
 
3
- var chunk5SXV6Y7Z_cjs = require('../chunk-5SXV6Y7Z.cjs');
3
+ var chunk2IGDU2LY_cjs = require('../chunk-2IGDU2LY.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "FFIDAnnouncementBadge", {
8
8
  enumerable: true,
9
- get: function () { return chunk5SXV6Y7Z_cjs.FFIDAnnouncementBadge; }
9
+ get: function () { return chunk2IGDU2LY_cjs.FFIDAnnouncementBadge; }
10
10
  });
11
11
  Object.defineProperty(exports, "FFIDAnnouncementList", {
12
12
  enumerable: true,
13
- get: function () { return chunk5SXV6Y7Z_cjs.FFIDAnnouncementList; }
13
+ get: function () { return chunk2IGDU2LY_cjs.FFIDAnnouncementList; }
14
14
  });
15
15
  Object.defineProperty(exports, "FFIDLoginButton", {
16
16
  enumerable: true,
17
- get: function () { return chunk5SXV6Y7Z_cjs.FFIDLoginButton; }
17
+ get: function () { return chunk2IGDU2LY_cjs.FFIDLoginButton; }
18
18
  });
19
19
  Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
20
20
  enumerable: true,
21
- get: function () { return chunk5SXV6Y7Z_cjs.FFIDOrganizationSwitcher; }
21
+ get: function () { return chunk2IGDU2LY_cjs.FFIDOrganizationSwitcher; }
22
22
  });
23
23
  Object.defineProperty(exports, "FFIDSubscriptionBadge", {
24
24
  enumerable: true,
25
- get: function () { return chunk5SXV6Y7Z_cjs.FFIDSubscriptionBadge; }
25
+ get: function () { return chunk2IGDU2LY_cjs.FFIDSubscriptionBadge; }
26
26
  });
27
27
  Object.defineProperty(exports, "FFIDUserMenu", {
28
28
  enumerable: true,
29
- get: function () { return chunk5SXV6Y7Z_cjs.FFIDUserMenu; }
29
+ get: function () { return chunk2IGDU2LY_cjs.FFIDUserMenu; }
30
30
  });
@@ -1 +1 @@
1
- export { FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDSubscriptionBadge, FFIDUserMenu } from '../chunk-ELCMZ7KU.js';
1
+ export { FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDSubscriptionBadge, FFIDUserMenu } from '../chunk-FZWW3B4X.js';
package/dist/index.cjs CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunk5SXV6Y7Z_cjs = require('./chunk-5SXV6Y7Z.cjs');
3
+ var chunk2IGDU2LY_cjs = require('./chunk-2IGDU2LY.cjs');
4
4
  var react = require('react');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
 
7
7
  function withFFIDAuth(Component, options = {}) {
8
8
  const WrappedComponent = (props) => {
9
- const { isLoading, isAuthenticated, login } = chunk5SXV6Y7Z_cjs.useFFIDContext();
9
+ const { isLoading, isAuthenticated, login } = chunk2IGDU2LY_cjs.useFFIDContext();
10
10
  const hasRedirected = react.useRef(false);
11
11
  react.useEffect(() => {
12
12
  if (!isLoading && !isAuthenticated && options.redirectToLogin && !hasRedirected.current) {
@@ -31,82 +31,82 @@ function withFFIDAuth(Component, options = {}) {
31
31
 
32
32
  Object.defineProperty(exports, "DEFAULT_API_BASE_URL", {
33
33
  enumerable: true,
34
- get: function () { return chunk5SXV6Y7Z_cjs.DEFAULT_API_BASE_URL; }
34
+ get: function () { return chunk2IGDU2LY_cjs.DEFAULT_API_BASE_URL; }
35
35
  });
36
36
  Object.defineProperty(exports, "FFIDAnnouncementBadge", {
37
37
  enumerable: true,
38
- get: function () { return chunk5SXV6Y7Z_cjs.FFIDAnnouncementBadge; }
38
+ get: function () { return chunk2IGDU2LY_cjs.FFIDAnnouncementBadge; }
39
39
  });
40
40
  Object.defineProperty(exports, "FFIDAnnouncementList", {
41
41
  enumerable: true,
42
- get: function () { return chunk5SXV6Y7Z_cjs.FFIDAnnouncementList; }
42
+ get: function () { return chunk2IGDU2LY_cjs.FFIDAnnouncementList; }
43
43
  });
44
44
  Object.defineProperty(exports, "FFIDLoginButton", {
45
45
  enumerable: true,
46
- get: function () { return chunk5SXV6Y7Z_cjs.FFIDLoginButton; }
46
+ get: function () { return chunk2IGDU2LY_cjs.FFIDLoginButton; }
47
47
  });
48
48
  Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
49
49
  enumerable: true,
50
- get: function () { return chunk5SXV6Y7Z_cjs.FFIDOrganizationSwitcher; }
50
+ get: function () { return chunk2IGDU2LY_cjs.FFIDOrganizationSwitcher; }
51
51
  });
52
52
  Object.defineProperty(exports, "FFIDProvider", {
53
53
  enumerable: true,
54
- get: function () { return chunk5SXV6Y7Z_cjs.FFIDProvider; }
54
+ get: function () { return chunk2IGDU2LY_cjs.FFIDProvider; }
55
55
  });
56
56
  Object.defineProperty(exports, "FFIDSubscriptionBadge", {
57
57
  enumerable: true,
58
- get: function () { return chunk5SXV6Y7Z_cjs.FFIDSubscriptionBadge; }
58
+ get: function () { return chunk2IGDU2LY_cjs.FFIDSubscriptionBadge; }
59
59
  });
60
60
  Object.defineProperty(exports, "FFIDUserMenu", {
61
61
  enumerable: true,
62
- get: function () { return chunk5SXV6Y7Z_cjs.FFIDUserMenu; }
62
+ get: function () { return chunk2IGDU2LY_cjs.FFIDUserMenu; }
63
63
  });
64
64
  Object.defineProperty(exports, "FFID_ANNOUNCEMENTS_ERROR_CODES", {
65
65
  enumerable: true,
66
- get: function () { return chunk5SXV6Y7Z_cjs.FFID_ANNOUNCEMENTS_ERROR_CODES; }
66
+ get: function () { return chunk2IGDU2LY_cjs.FFID_ANNOUNCEMENTS_ERROR_CODES; }
67
67
  });
68
68
  Object.defineProperty(exports, "createFFIDAnnouncementsClient", {
69
69
  enumerable: true,
70
- get: function () { return chunk5SXV6Y7Z_cjs.createFFIDAnnouncementsClient; }
70
+ get: function () { return chunk2IGDU2LY_cjs.createFFIDAnnouncementsClient; }
71
71
  });
72
72
  Object.defineProperty(exports, "createFFIDClient", {
73
73
  enumerable: true,
74
- get: function () { return chunk5SXV6Y7Z_cjs.createFFIDClient; }
74
+ get: function () { return chunk2IGDU2LY_cjs.createFFIDClient; }
75
75
  });
76
76
  Object.defineProperty(exports, "createTokenStore", {
77
77
  enumerable: true,
78
- get: function () { return chunk5SXV6Y7Z_cjs.createTokenStore; }
78
+ get: function () { return chunk2IGDU2LY_cjs.createTokenStore; }
79
79
  });
80
80
  Object.defineProperty(exports, "generateCodeChallenge", {
81
81
  enumerable: true,
82
- get: function () { return chunk5SXV6Y7Z_cjs.generateCodeChallenge; }
82
+ get: function () { return chunk2IGDU2LY_cjs.generateCodeChallenge; }
83
83
  });
84
84
  Object.defineProperty(exports, "generateCodeVerifier", {
85
85
  enumerable: true,
86
- get: function () { return chunk5SXV6Y7Z_cjs.generateCodeVerifier; }
86
+ get: function () { return chunk2IGDU2LY_cjs.generateCodeVerifier; }
87
87
  });
88
88
  Object.defineProperty(exports, "retrieveCodeVerifier", {
89
89
  enumerable: true,
90
- get: function () { return chunk5SXV6Y7Z_cjs.retrieveCodeVerifier; }
90
+ get: function () { return chunk2IGDU2LY_cjs.retrieveCodeVerifier; }
91
91
  });
92
92
  Object.defineProperty(exports, "storeCodeVerifier", {
93
93
  enumerable: true,
94
- get: function () { return chunk5SXV6Y7Z_cjs.storeCodeVerifier; }
94
+ get: function () { return chunk2IGDU2LY_cjs.storeCodeVerifier; }
95
95
  });
96
96
  Object.defineProperty(exports, "useFFID", {
97
97
  enumerable: true,
98
- get: function () { return chunk5SXV6Y7Z_cjs.useFFID; }
98
+ get: function () { return chunk2IGDU2LY_cjs.useFFID; }
99
99
  });
100
100
  Object.defineProperty(exports, "useFFIDAnnouncements", {
101
101
  enumerable: true,
102
- get: function () { return chunk5SXV6Y7Z_cjs.useFFIDAnnouncements; }
102
+ get: function () { return chunk2IGDU2LY_cjs.useFFIDAnnouncements; }
103
103
  });
104
104
  Object.defineProperty(exports, "useSubscription", {
105
105
  enumerable: true,
106
- get: function () { return chunk5SXV6Y7Z_cjs.useSubscription; }
106
+ get: function () { return chunk2IGDU2LY_cjs.useSubscription; }
107
107
  });
108
108
  Object.defineProperty(exports, "withSubscription", {
109
109
  enumerable: true,
110
- get: function () { return chunk5SXV6Y7Z_cjs.withSubscription; }
110
+ get: function () { return chunk2IGDU2LY_cjs.withSubscription; }
111
111
  });
112
112
  exports.withFFIDAuth = withFFIDAuth;
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { useFFIDContext } from './chunk-ELCMZ7KU.js';
2
- export { DEFAULT_API_BASE_URL, FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDProvider, FFIDSubscriptionBadge, FFIDUserMenu, FFID_ANNOUNCEMENTS_ERROR_CODES, createFFIDAnnouncementsClient, createFFIDClient, createTokenStore, generateCodeChallenge, generateCodeVerifier, retrieveCodeVerifier, storeCodeVerifier, useFFID, useFFIDAnnouncements, useSubscription, withSubscription } from './chunk-ELCMZ7KU.js';
1
+ import { useFFIDContext } from './chunk-FZWW3B4X.js';
2
+ export { DEFAULT_API_BASE_URL, FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDProvider, FFIDSubscriptionBadge, FFIDUserMenu, FFID_ANNOUNCEMENTS_ERROR_CODES, createFFIDAnnouncementsClient, createFFIDClient, createTokenStore, generateCodeChallenge, generateCodeVerifier, retrieveCodeVerifier, storeCodeVerifier, useFFID, useFFIDAnnouncements, useSubscription, withSubscription } from './chunk-FZWW3B4X.js';
3
3
  import { useRef, useEffect } from 'react';
4
4
  import { jsx, Fragment } from 'react/jsx-runtime';
5
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feelflow/ffid-sdk",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "FeelFlow ID Platform SDK for React/Next.js applications",
5
5
  "keywords": [
6
6
  "feelflow",