@feelflow/ffid-sdk 1.6.0 → 1.7.0

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.
@@ -365,6 +365,53 @@ function createVerifyAccessToken(deps) {
365
365
  return verifyAccessToken;
366
366
  }
367
367
 
368
+ // src/client/billing-methods.ts
369
+ var BILLING_CHECKOUT_ENDPOINT = "/api/v1/billing/checkout";
370
+ var BILLING_PORTAL_ENDPOINT = "/api/v1/billing/portal";
371
+ function createBillingMethods(deps) {
372
+ const { fetchWithAuth, createError } = deps;
373
+ async function createCheckoutSession(params) {
374
+ if (!params.organizationId || !params.subscriptionId) {
375
+ return {
376
+ error: createError("VALIDATION_ERROR", "organizationId \u3068 subscriptionId \u306F\u5FC5\u9808\u3067\u3059")
377
+ };
378
+ }
379
+ if (!params.successUrl || !params.cancelUrl) {
380
+ return {
381
+ error: createError("VALIDATION_ERROR", "successUrl \u3068 cancelUrl \u306F\u5FC5\u9808\u3067\u3059")
382
+ };
383
+ }
384
+ return fetchWithAuth(
385
+ BILLING_CHECKOUT_ENDPOINT,
386
+ {
387
+ method: "POST",
388
+ body: JSON.stringify({
389
+ organizationId: params.organizationId,
390
+ subscriptionId: params.subscriptionId,
391
+ successUrl: params.successUrl,
392
+ cancelUrl: params.cancelUrl,
393
+ ...params.planId ? { planId: params.planId } : {}
394
+ })
395
+ }
396
+ );
397
+ }
398
+ async function createPortalSession(params) {
399
+ if (!params.organizationId || !params.returnUrl) {
400
+ return {
401
+ error: createError("VALIDATION_ERROR", "organizationId \u3068 returnUrl \u306F\u5FC5\u9808\u3067\u3059")
402
+ };
403
+ }
404
+ const query = new URLSearchParams({
405
+ organizationId: params.organizationId,
406
+ returnUrl: params.returnUrl
407
+ });
408
+ return fetchWithAuth(
409
+ `${BILLING_PORTAL_ENDPOINT}?${query.toString()}`
410
+ );
411
+ }
412
+ return { createCheckoutSession, createPortalSession };
413
+ }
414
+
368
415
  // src/client/ffid-client.ts
369
416
  var NO_CONTENT_STATUS = 204;
370
417
  var SESSION_ENDPOINT = "/api/v1/auth/session";
@@ -911,6 +958,10 @@ function createFFIDClient(config) {
911
958
  `${EXT_CHECK_ENDPOINT}?${query.toString()}`
912
959
  );
913
960
  }
961
+ const { createCheckoutSession, createPortalSession } = createBillingMethods({
962
+ fetchWithAuth,
963
+ createError
964
+ });
914
965
  const verifyAccessToken = createVerifyAccessToken({
915
966
  authMode,
916
967
  baseUrl,
@@ -931,6 +982,8 @@ function createFFIDClient(config) {
931
982
  exchangeCodeForTokens,
932
983
  refreshAccessToken,
933
984
  checkSubscription,
985
+ createCheckoutSession,
986
+ createPortalSession,
934
987
  verifyAccessToken,
935
988
  /** Token store (token mode only) */
936
989
  tokenStore,
@@ -1294,6 +1347,10 @@ function FFIDUserMenu({
1294
1347
  }) {
1295
1348
  const { user, currentOrganization, logout, isLoading, isAuthenticated } = useFFID();
1296
1349
  const [isOpen, setIsOpen] = react.useState(false);
1350
+ const [avatarError, setAvatarError] = react.useState(false);
1351
+ react.useEffect(() => {
1352
+ setAvatarError(false);
1353
+ }, [user?.avatarUrl]);
1297
1354
  if (!isAuthenticated || !user) {
1298
1355
  return null;
1299
1356
  }
@@ -1330,7 +1387,16 @@ function FFIDUserMenu({
1330
1387
  children: displayName.charAt(0).toUpperCase()
1331
1388
  }
1332
1389
  );
1333
- const avatarElement = renderAvatar ? renderAvatar({ avatarUrl: user.avatarUrl, displayName: user.displayName, email: user.email }) : user.avatarUrl && isValidAvatarUrl(user.avatarUrl) ? /* @__PURE__ */ jsxRuntime.jsx("img", { className: classNames.avatar, src: user.avatarUrl, alt: displayName, style: { width: SIZE_AVATAR_MD, height: SIZE_AVATAR_MD, borderRadius: "50%" } }) : defaultAvatar;
1390
+ const avatarElement = renderAvatar ? renderAvatar({ avatarUrl: user.avatarUrl, displayName: user.displayName, email: user.email }) : user.avatarUrl && isValidAvatarUrl(user.avatarUrl) && !avatarError ? /* @__PURE__ */ jsxRuntime.jsx(
1391
+ "img",
1392
+ {
1393
+ className: classNames.avatar,
1394
+ src: user.avatarUrl,
1395
+ alt: displayName,
1396
+ onError: () => setAvatarError(true),
1397
+ style: { width: SIZE_AVATAR_MD, height: SIZE_AVATAR_MD, borderRadius: "50%" }
1398
+ }
1399
+ ) : defaultAvatar;
1334
1400
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: [className, classNames.container].filter(Boolean).join(" ") || void 0, style: { position: "relative" }, children: [
1335
1401
  /* @__PURE__ */ jsxRuntime.jsx(
1336
1402
  "button",
@@ -363,6 +363,53 @@ function createVerifyAccessToken(deps) {
363
363
  return verifyAccessToken;
364
364
  }
365
365
 
366
+ // src/client/billing-methods.ts
367
+ var BILLING_CHECKOUT_ENDPOINT = "/api/v1/billing/checkout";
368
+ var BILLING_PORTAL_ENDPOINT = "/api/v1/billing/portal";
369
+ function createBillingMethods(deps) {
370
+ const { fetchWithAuth, createError } = deps;
371
+ async function createCheckoutSession(params) {
372
+ if (!params.organizationId || !params.subscriptionId) {
373
+ return {
374
+ error: createError("VALIDATION_ERROR", "organizationId \u3068 subscriptionId \u306F\u5FC5\u9808\u3067\u3059")
375
+ };
376
+ }
377
+ if (!params.successUrl || !params.cancelUrl) {
378
+ return {
379
+ error: createError("VALIDATION_ERROR", "successUrl \u3068 cancelUrl \u306F\u5FC5\u9808\u3067\u3059")
380
+ };
381
+ }
382
+ return fetchWithAuth(
383
+ BILLING_CHECKOUT_ENDPOINT,
384
+ {
385
+ method: "POST",
386
+ body: JSON.stringify({
387
+ organizationId: params.organizationId,
388
+ subscriptionId: params.subscriptionId,
389
+ successUrl: params.successUrl,
390
+ cancelUrl: params.cancelUrl,
391
+ ...params.planId ? { planId: params.planId } : {}
392
+ })
393
+ }
394
+ );
395
+ }
396
+ async function createPortalSession(params) {
397
+ if (!params.organizationId || !params.returnUrl) {
398
+ return {
399
+ error: createError("VALIDATION_ERROR", "organizationId \u3068 returnUrl \u306F\u5FC5\u9808\u3067\u3059")
400
+ };
401
+ }
402
+ const query = new URLSearchParams({
403
+ organizationId: params.organizationId,
404
+ returnUrl: params.returnUrl
405
+ });
406
+ return fetchWithAuth(
407
+ `${BILLING_PORTAL_ENDPOINT}?${query.toString()}`
408
+ );
409
+ }
410
+ return { createCheckoutSession, createPortalSession };
411
+ }
412
+
366
413
  // src/client/ffid-client.ts
367
414
  var NO_CONTENT_STATUS = 204;
368
415
  var SESSION_ENDPOINT = "/api/v1/auth/session";
@@ -909,6 +956,10 @@ function createFFIDClient(config) {
909
956
  `${EXT_CHECK_ENDPOINT}?${query.toString()}`
910
957
  );
911
958
  }
959
+ const { createCheckoutSession, createPortalSession } = createBillingMethods({
960
+ fetchWithAuth,
961
+ createError
962
+ });
912
963
  const verifyAccessToken = createVerifyAccessToken({
913
964
  authMode,
914
965
  baseUrl,
@@ -929,6 +980,8 @@ function createFFIDClient(config) {
929
980
  exchangeCodeForTokens,
930
981
  refreshAccessToken,
931
982
  checkSubscription,
983
+ createCheckoutSession,
984
+ createPortalSession,
932
985
  verifyAccessToken,
933
986
  /** Token store (token mode only) */
934
987
  tokenStore,
@@ -1292,6 +1345,10 @@ function FFIDUserMenu({
1292
1345
  }) {
1293
1346
  const { user, currentOrganization, logout, isLoading, isAuthenticated } = useFFID();
1294
1347
  const [isOpen, setIsOpen] = useState(false);
1348
+ const [avatarError, setAvatarError] = useState(false);
1349
+ useEffect(() => {
1350
+ setAvatarError(false);
1351
+ }, [user?.avatarUrl]);
1295
1352
  if (!isAuthenticated || !user) {
1296
1353
  return null;
1297
1354
  }
@@ -1328,7 +1385,16 @@ function FFIDUserMenu({
1328
1385
  children: displayName.charAt(0).toUpperCase()
1329
1386
  }
1330
1387
  );
1331
- const avatarElement = renderAvatar ? renderAvatar({ avatarUrl: user.avatarUrl, displayName: user.displayName, email: user.email }) : user.avatarUrl && isValidAvatarUrl(user.avatarUrl) ? /* @__PURE__ */ jsx("img", { className: classNames.avatar, src: user.avatarUrl, alt: displayName, style: { width: SIZE_AVATAR_MD, height: SIZE_AVATAR_MD, borderRadius: "50%" } }) : defaultAvatar;
1388
+ const avatarElement = renderAvatar ? renderAvatar({ avatarUrl: user.avatarUrl, displayName: user.displayName, email: user.email }) : user.avatarUrl && isValidAvatarUrl(user.avatarUrl) && !avatarError ? /* @__PURE__ */ jsx(
1389
+ "img",
1390
+ {
1391
+ className: classNames.avatar,
1392
+ src: user.avatarUrl,
1393
+ alt: displayName,
1394
+ onError: () => setAvatarError(true),
1395
+ style: { width: SIZE_AVATAR_MD, height: SIZE_AVATAR_MD, borderRadius: "50%" }
1396
+ }
1397
+ ) : defaultAvatar;
1332
1398
  return /* @__PURE__ */ jsxs("div", { className: [className, classNames.container].filter(Boolean).join(" ") || void 0, style: { position: "relative" }, children: [
1333
1399
  /* @__PURE__ */ jsx(
1334
1400
  "button",
@@ -1,30 +1,30 @@
1
1
  'use strict';
2
2
 
3
- var chunkLILTOMJP_cjs = require('../chunk-LILTOMJP.cjs');
3
+ var chunkFJKSIZMK_cjs = require('../chunk-FJKSIZMK.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "FFIDAnnouncementBadge", {
8
8
  enumerable: true,
9
- get: function () { return chunkLILTOMJP_cjs.FFIDAnnouncementBadge; }
9
+ get: function () { return chunkFJKSIZMK_cjs.FFIDAnnouncementBadge; }
10
10
  });
11
11
  Object.defineProperty(exports, "FFIDAnnouncementList", {
12
12
  enumerable: true,
13
- get: function () { return chunkLILTOMJP_cjs.FFIDAnnouncementList; }
13
+ get: function () { return chunkFJKSIZMK_cjs.FFIDAnnouncementList; }
14
14
  });
15
15
  Object.defineProperty(exports, "FFIDLoginButton", {
16
16
  enumerable: true,
17
- get: function () { return chunkLILTOMJP_cjs.FFIDLoginButton; }
17
+ get: function () { return chunkFJKSIZMK_cjs.FFIDLoginButton; }
18
18
  });
19
19
  Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
20
20
  enumerable: true,
21
- get: function () { return chunkLILTOMJP_cjs.FFIDOrganizationSwitcher; }
21
+ get: function () { return chunkFJKSIZMK_cjs.FFIDOrganizationSwitcher; }
22
22
  });
23
23
  Object.defineProperty(exports, "FFIDSubscriptionBadge", {
24
24
  enumerable: true,
25
- get: function () { return chunkLILTOMJP_cjs.FFIDSubscriptionBadge; }
25
+ get: function () { return chunkFJKSIZMK_cjs.FFIDSubscriptionBadge; }
26
26
  });
27
27
  Object.defineProperty(exports, "FFIDUserMenu", {
28
28
  enumerable: true,
29
- get: function () { return chunkLILTOMJP_cjs.FFIDUserMenu; }
29
+ get: function () { return chunkFJKSIZMK_cjs.FFIDUserMenu; }
30
30
  });
@@ -1,3 +1,3 @@
1
- export { p as FFIDAnnouncementBadge, M as FFIDAnnouncementBadgeClassNames, N as FFIDAnnouncementBadgeProps, q as FFIDAnnouncementList, O as FFIDAnnouncementListClassNames, P as FFIDAnnouncementListProps, w as FFIDLoginButton, Q as FFIDLoginButtonProps, B as FFIDOrganizationSwitcher, R as FFIDOrganizationSwitcherClassNames, S as FFIDOrganizationSwitcherProps, E as FFIDSubscriptionBadge, T as FFIDSubscriptionBadgeClassNames, V as FFIDSubscriptionBadgeProps, I as FFIDUserMenu, W as FFIDUserMenuClassNames, X as FFIDUserMenuProps } from '../index-oF_MAO2T.cjs';
1
+ export { t as FFIDAnnouncementBadge, Q as FFIDAnnouncementBadgeClassNames, R as FFIDAnnouncementBadgeProps, u as FFIDAnnouncementList, S as FFIDAnnouncementListClassNames, T as FFIDAnnouncementListProps, B as FFIDLoginButton, V as FFIDLoginButtonProps, G as FFIDOrganizationSwitcher, W as FFIDOrganizationSwitcherClassNames, X as FFIDOrganizationSwitcherProps, J as FFIDSubscriptionBadge, Y as FFIDSubscriptionBadgeClassNames, Z as FFIDSubscriptionBadgeProps, N as FFIDUserMenu, _ as FFIDUserMenuClassNames, $ as FFIDUserMenuProps } from '../index-Ca9M6Hde.cjs';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
@@ -1,3 +1,3 @@
1
- export { p as FFIDAnnouncementBadge, M as FFIDAnnouncementBadgeClassNames, N as FFIDAnnouncementBadgeProps, q as FFIDAnnouncementList, O as FFIDAnnouncementListClassNames, P as FFIDAnnouncementListProps, w as FFIDLoginButton, Q as FFIDLoginButtonProps, B as FFIDOrganizationSwitcher, R as FFIDOrganizationSwitcherClassNames, S as FFIDOrganizationSwitcherProps, E as FFIDSubscriptionBadge, T as FFIDSubscriptionBadgeClassNames, V as FFIDSubscriptionBadgeProps, I as FFIDUserMenu, W as FFIDUserMenuClassNames, X as FFIDUserMenuProps } from '../index-oF_MAO2T.js';
1
+ export { t as FFIDAnnouncementBadge, Q as FFIDAnnouncementBadgeClassNames, R as FFIDAnnouncementBadgeProps, u as FFIDAnnouncementList, S as FFIDAnnouncementListClassNames, T as FFIDAnnouncementListProps, B as FFIDLoginButton, V as FFIDLoginButtonProps, G as FFIDOrganizationSwitcher, W as FFIDOrganizationSwitcherClassNames, X as FFIDOrganizationSwitcherProps, J as FFIDSubscriptionBadge, Y as FFIDSubscriptionBadgeClassNames, Z as FFIDSubscriptionBadgeProps, N as FFIDUserMenu, _ as FFIDUserMenuClassNames, $ as FFIDUserMenuProps } from '../index-Ca9M6Hde.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
@@ -1 +1 @@
1
- export { FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDSubscriptionBadge, FFIDUserMenu } from '../chunk-4LSSBFZG.js';
1
+ export { FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDSubscriptionBadge, FFIDUserMenu } from '../chunk-WDRRWSZV.js';
@@ -285,6 +285,46 @@ interface FFIDSubscriptionCheckResponse {
285
285
  planCode: string | null;
286
286
  currentPeriodEnd: string | null;
287
287
  }
288
+ /**
289
+ * Checkout session response from billing checkout endpoint
290
+ */
291
+ interface FFIDCheckoutSessionResponse {
292
+ /** Stripe Checkout session ID */
293
+ sessionId: string;
294
+ /** Stripe Checkout session URL (null if session creation had issues) */
295
+ url: string | null;
296
+ }
297
+ /**
298
+ * Portal session response from billing portal endpoint
299
+ */
300
+ interface FFIDPortalSessionResponse {
301
+ /** Stripe Billing Portal URL */
302
+ url: string;
303
+ }
304
+ /**
305
+ * Parameters for creating a checkout session
306
+ */
307
+ interface FFIDCreateCheckoutParams {
308
+ /** Organization ID (UUID) */
309
+ organizationId: string;
310
+ /** Subscription ID (UUID) */
311
+ subscriptionId: string;
312
+ /** URL to redirect after successful checkout */
313
+ successUrl: string;
314
+ /** URL to redirect after cancelled checkout */
315
+ cancelUrl: string;
316
+ /** Optional plan ID for upgrade or resubscription */
317
+ planId?: string;
318
+ }
319
+ /**
320
+ * Parameters for creating a billing portal session
321
+ */
322
+ interface FFIDCreatePortalParams {
323
+ /** Organization ID (UUID) */
324
+ organizationId: string;
325
+ /** URL to redirect when user exits the portal */
326
+ returnUrl: string;
327
+ }
288
328
  /**
289
329
  * OAuth 2.0 token response from FFID token endpoint
290
330
  */
@@ -685,4 +725,4 @@ interface FFIDAnnouncementListProps {
685
725
  */
686
726
  declare function FFIDAnnouncementList({ announcements, isLoading, className, classNames, style, formatDate, emptyMessage, loadingRender, renderItem, maxContentLines, }: FFIDAnnouncementListProps): react_jsx_runtime.JSX.Element;
687
727
 
688
- export { type AnnouncementListResponse as A, FFIDOrganizationSwitcher as B, type FFIDSeatModel as C, type FFIDSubscription as D, FFIDSubscriptionBadge as E, type FFIDConfig as F, type FFIDSubscriptionStatus as G, type FFIDTokenIntrospectionResponse as H, FFIDUserMenu as I, type UseFFIDAnnouncementsReturn as J, useFFIDAnnouncements as K, type ListAnnouncementsOptions as L, type FFIDAnnouncementBadgeClassNames as M, type FFIDAnnouncementBadgeProps as N, type FFIDAnnouncementListClassNames as O, type FFIDAnnouncementListProps as P, type FFIDLoginButtonProps as Q, type FFIDOrganizationSwitcherClassNames as R, type FFIDOrganizationSwitcherProps as S, type FFIDSubscriptionBadgeClassNames as T, type UseFFIDAnnouncementsOptions as U, type FFIDSubscriptionBadgeProps as V, type FFIDUserMenuClassNames as W, type FFIDUserMenuProps as X, type FFIDApiResponse as a, type FFIDSessionResponse as b, type FFIDError as c, type FFIDSubscriptionCheckResponse as d, type FFIDOAuthUserInfo as e, type FFIDLogger as f, type FFIDUser as g, type FFIDOrganization as h, type FFIDSubscriptionContextValue as i, type FFIDAnnouncementsClientConfig as j, type FFIDAnnouncementsApiResponse as k, type FFIDAnnouncementsLogger as l, type Announcement as m, type AnnouncementStatus as n, type AnnouncementType as o, FFIDAnnouncementBadge as p, FFIDAnnouncementList as q, type FFIDAnnouncementsError as r, type FFIDAnnouncementsErrorCode as s, type FFIDAnnouncementsServerResponse as t, type FFIDContextValue as u, type FFIDJwtClaims as v, FFIDLoginButton as w, type FFIDOAuthTokenResponse as x, type FFIDOAuthUserInfoMemberRole as y, type FFIDOAuthUserInfoSubscription as z };
728
+ export { type FFIDUserMenuProps as $, type AnnouncementListResponse as A, FFIDLoginButton as B, type FFIDOAuthTokenResponse as C, type FFIDOAuthUserInfoMemberRole as D, type FFIDOAuthUserInfoSubscription as E, type FFIDConfig as F, FFIDOrganizationSwitcher as G, type FFIDSeatModel as H, type FFIDSubscription as I, FFIDSubscriptionBadge as J, type FFIDSubscriptionStatus as K, type ListAnnouncementsOptions as L, type FFIDTokenIntrospectionResponse as M, FFIDUserMenu as N, type UseFFIDAnnouncementsReturn as O, useFFIDAnnouncements as P, type FFIDAnnouncementBadgeClassNames as Q, type FFIDAnnouncementBadgeProps as R, type FFIDAnnouncementListClassNames as S, type FFIDAnnouncementListProps as T, type UseFFIDAnnouncementsOptions as U, type FFIDLoginButtonProps as V, type FFIDOrganizationSwitcherClassNames as W, type FFIDOrganizationSwitcherProps as X, type FFIDSubscriptionBadgeClassNames as Y, type FFIDSubscriptionBadgeProps as Z, type FFIDUserMenuClassNames as _, type FFIDApiResponse as a, type FFIDSessionResponse as b, type FFIDError as c, type FFIDSubscriptionCheckResponse as d, type FFIDCreateCheckoutParams as e, type FFIDCheckoutSessionResponse as f, type FFIDCreatePortalParams as g, type FFIDPortalSessionResponse as h, type FFIDOAuthUserInfo as i, type FFIDLogger as j, type FFIDUser as k, type FFIDOrganization as l, type FFIDSubscriptionContextValue as m, type FFIDAnnouncementsClientConfig as n, type FFIDAnnouncementsApiResponse as o, type FFIDAnnouncementsLogger as p, type Announcement as q, type AnnouncementStatus as r, type AnnouncementType as s, FFIDAnnouncementBadge as t, FFIDAnnouncementList as u, type FFIDAnnouncementsError as v, type FFIDAnnouncementsErrorCode as w, type FFIDAnnouncementsServerResponse as x, type FFIDContextValue as y, type FFIDJwtClaims as z };
@@ -285,6 +285,46 @@ interface FFIDSubscriptionCheckResponse {
285
285
  planCode: string | null;
286
286
  currentPeriodEnd: string | null;
287
287
  }
288
+ /**
289
+ * Checkout session response from billing checkout endpoint
290
+ */
291
+ interface FFIDCheckoutSessionResponse {
292
+ /** Stripe Checkout session ID */
293
+ sessionId: string;
294
+ /** Stripe Checkout session URL (null if session creation had issues) */
295
+ url: string | null;
296
+ }
297
+ /**
298
+ * Portal session response from billing portal endpoint
299
+ */
300
+ interface FFIDPortalSessionResponse {
301
+ /** Stripe Billing Portal URL */
302
+ url: string;
303
+ }
304
+ /**
305
+ * Parameters for creating a checkout session
306
+ */
307
+ interface FFIDCreateCheckoutParams {
308
+ /** Organization ID (UUID) */
309
+ organizationId: string;
310
+ /** Subscription ID (UUID) */
311
+ subscriptionId: string;
312
+ /** URL to redirect after successful checkout */
313
+ successUrl: string;
314
+ /** URL to redirect after cancelled checkout */
315
+ cancelUrl: string;
316
+ /** Optional plan ID for upgrade or resubscription */
317
+ planId?: string;
318
+ }
319
+ /**
320
+ * Parameters for creating a billing portal session
321
+ */
322
+ interface FFIDCreatePortalParams {
323
+ /** Organization ID (UUID) */
324
+ organizationId: string;
325
+ /** URL to redirect when user exits the portal */
326
+ returnUrl: string;
327
+ }
288
328
  /**
289
329
  * OAuth 2.0 token response from FFID token endpoint
290
330
  */
@@ -685,4 +725,4 @@ interface FFIDAnnouncementListProps {
685
725
  */
686
726
  declare function FFIDAnnouncementList({ announcements, isLoading, className, classNames, style, formatDate, emptyMessage, loadingRender, renderItem, maxContentLines, }: FFIDAnnouncementListProps): react_jsx_runtime.JSX.Element;
687
727
 
688
- export { type AnnouncementListResponse as A, FFIDOrganizationSwitcher as B, type FFIDSeatModel as C, type FFIDSubscription as D, FFIDSubscriptionBadge as E, type FFIDConfig as F, type FFIDSubscriptionStatus as G, type FFIDTokenIntrospectionResponse as H, FFIDUserMenu as I, type UseFFIDAnnouncementsReturn as J, useFFIDAnnouncements as K, type ListAnnouncementsOptions as L, type FFIDAnnouncementBadgeClassNames as M, type FFIDAnnouncementBadgeProps as N, type FFIDAnnouncementListClassNames as O, type FFIDAnnouncementListProps as P, type FFIDLoginButtonProps as Q, type FFIDOrganizationSwitcherClassNames as R, type FFIDOrganizationSwitcherProps as S, type FFIDSubscriptionBadgeClassNames as T, type UseFFIDAnnouncementsOptions as U, type FFIDSubscriptionBadgeProps as V, type FFIDUserMenuClassNames as W, type FFIDUserMenuProps as X, type FFIDApiResponse as a, type FFIDSessionResponse as b, type FFIDError as c, type FFIDSubscriptionCheckResponse as d, type FFIDOAuthUserInfo as e, type FFIDLogger as f, type FFIDUser as g, type FFIDOrganization as h, type FFIDSubscriptionContextValue as i, type FFIDAnnouncementsClientConfig as j, type FFIDAnnouncementsApiResponse as k, type FFIDAnnouncementsLogger as l, type Announcement as m, type AnnouncementStatus as n, type AnnouncementType as o, FFIDAnnouncementBadge as p, FFIDAnnouncementList as q, type FFIDAnnouncementsError as r, type FFIDAnnouncementsErrorCode as s, type FFIDAnnouncementsServerResponse as t, type FFIDContextValue as u, type FFIDJwtClaims as v, FFIDLoginButton as w, type FFIDOAuthTokenResponse as x, type FFIDOAuthUserInfoMemberRole as y, type FFIDOAuthUserInfoSubscription as z };
728
+ export { type FFIDUserMenuProps as $, type AnnouncementListResponse as A, FFIDLoginButton as B, type FFIDOAuthTokenResponse as C, type FFIDOAuthUserInfoMemberRole as D, type FFIDOAuthUserInfoSubscription as E, type FFIDConfig as F, FFIDOrganizationSwitcher as G, type FFIDSeatModel as H, type FFIDSubscription as I, FFIDSubscriptionBadge as J, type FFIDSubscriptionStatus as K, type ListAnnouncementsOptions as L, type FFIDTokenIntrospectionResponse as M, FFIDUserMenu as N, type UseFFIDAnnouncementsReturn as O, useFFIDAnnouncements as P, type FFIDAnnouncementBadgeClassNames as Q, type FFIDAnnouncementBadgeProps as R, type FFIDAnnouncementListClassNames as S, type FFIDAnnouncementListProps as T, type UseFFIDAnnouncementsOptions as U, type FFIDLoginButtonProps as V, type FFIDOrganizationSwitcherClassNames as W, type FFIDOrganizationSwitcherProps as X, type FFIDSubscriptionBadgeClassNames as Y, type FFIDSubscriptionBadgeProps as Z, type FFIDUserMenuClassNames as _, type FFIDApiResponse as a, type FFIDSessionResponse as b, type FFIDError as c, type FFIDSubscriptionCheckResponse as d, type FFIDCreateCheckoutParams as e, type FFIDCheckoutSessionResponse as f, type FFIDCreatePortalParams as g, type FFIDPortalSessionResponse as h, type FFIDOAuthUserInfo as i, type FFIDLogger as j, type FFIDUser as k, type FFIDOrganization as l, type FFIDSubscriptionContextValue as m, type FFIDAnnouncementsClientConfig as n, type FFIDAnnouncementsApiResponse as o, type FFIDAnnouncementsLogger as p, type Announcement as q, type AnnouncementStatus as r, type AnnouncementType as s, FFIDAnnouncementBadge as t, FFIDAnnouncementList as u, type FFIDAnnouncementsError as v, type FFIDAnnouncementsErrorCode as w, type FFIDAnnouncementsServerResponse as x, type FFIDContextValue as y, type FFIDJwtClaims as z };
package/dist/index.cjs CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkLILTOMJP_cjs = require('./chunk-LILTOMJP.cjs');
3
+ var chunkFJKSIZMK_cjs = require('./chunk-FJKSIZMK.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 } = chunkLILTOMJP_cjs.useFFIDContext();
9
+ const { isLoading, isAuthenticated, login } = chunkFJKSIZMK_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 chunkLILTOMJP_cjs.DEFAULT_API_BASE_URL; }
34
+ get: function () { return chunkFJKSIZMK_cjs.DEFAULT_API_BASE_URL; }
35
35
  });
36
36
  Object.defineProperty(exports, "FFIDAnnouncementBadge", {
37
37
  enumerable: true,
38
- get: function () { return chunkLILTOMJP_cjs.FFIDAnnouncementBadge; }
38
+ get: function () { return chunkFJKSIZMK_cjs.FFIDAnnouncementBadge; }
39
39
  });
40
40
  Object.defineProperty(exports, "FFIDAnnouncementList", {
41
41
  enumerable: true,
42
- get: function () { return chunkLILTOMJP_cjs.FFIDAnnouncementList; }
42
+ get: function () { return chunkFJKSIZMK_cjs.FFIDAnnouncementList; }
43
43
  });
44
44
  Object.defineProperty(exports, "FFIDLoginButton", {
45
45
  enumerable: true,
46
- get: function () { return chunkLILTOMJP_cjs.FFIDLoginButton; }
46
+ get: function () { return chunkFJKSIZMK_cjs.FFIDLoginButton; }
47
47
  });
48
48
  Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
49
49
  enumerable: true,
50
- get: function () { return chunkLILTOMJP_cjs.FFIDOrganizationSwitcher; }
50
+ get: function () { return chunkFJKSIZMK_cjs.FFIDOrganizationSwitcher; }
51
51
  });
52
52
  Object.defineProperty(exports, "FFIDProvider", {
53
53
  enumerable: true,
54
- get: function () { return chunkLILTOMJP_cjs.FFIDProvider; }
54
+ get: function () { return chunkFJKSIZMK_cjs.FFIDProvider; }
55
55
  });
56
56
  Object.defineProperty(exports, "FFIDSubscriptionBadge", {
57
57
  enumerable: true,
58
- get: function () { return chunkLILTOMJP_cjs.FFIDSubscriptionBadge; }
58
+ get: function () { return chunkFJKSIZMK_cjs.FFIDSubscriptionBadge; }
59
59
  });
60
60
  Object.defineProperty(exports, "FFIDUserMenu", {
61
61
  enumerable: true,
62
- get: function () { return chunkLILTOMJP_cjs.FFIDUserMenu; }
62
+ get: function () { return chunkFJKSIZMK_cjs.FFIDUserMenu; }
63
63
  });
64
64
  Object.defineProperty(exports, "FFID_ANNOUNCEMENTS_ERROR_CODES", {
65
65
  enumerable: true,
66
- get: function () { return chunkLILTOMJP_cjs.FFID_ANNOUNCEMENTS_ERROR_CODES; }
66
+ get: function () { return chunkFJKSIZMK_cjs.FFID_ANNOUNCEMENTS_ERROR_CODES; }
67
67
  });
68
68
  Object.defineProperty(exports, "createFFIDAnnouncementsClient", {
69
69
  enumerable: true,
70
- get: function () { return chunkLILTOMJP_cjs.createFFIDAnnouncementsClient; }
70
+ get: function () { return chunkFJKSIZMK_cjs.createFFIDAnnouncementsClient; }
71
71
  });
72
72
  Object.defineProperty(exports, "createFFIDClient", {
73
73
  enumerable: true,
74
- get: function () { return chunkLILTOMJP_cjs.createFFIDClient; }
74
+ get: function () { return chunkFJKSIZMK_cjs.createFFIDClient; }
75
75
  });
76
76
  Object.defineProperty(exports, "createTokenStore", {
77
77
  enumerable: true,
78
- get: function () { return chunkLILTOMJP_cjs.createTokenStore; }
78
+ get: function () { return chunkFJKSIZMK_cjs.createTokenStore; }
79
79
  });
80
80
  Object.defineProperty(exports, "generateCodeChallenge", {
81
81
  enumerable: true,
82
- get: function () { return chunkLILTOMJP_cjs.generateCodeChallenge; }
82
+ get: function () { return chunkFJKSIZMK_cjs.generateCodeChallenge; }
83
83
  });
84
84
  Object.defineProperty(exports, "generateCodeVerifier", {
85
85
  enumerable: true,
86
- get: function () { return chunkLILTOMJP_cjs.generateCodeVerifier; }
86
+ get: function () { return chunkFJKSIZMK_cjs.generateCodeVerifier; }
87
87
  });
88
88
  Object.defineProperty(exports, "retrieveCodeVerifier", {
89
89
  enumerable: true,
90
- get: function () { return chunkLILTOMJP_cjs.retrieveCodeVerifier; }
90
+ get: function () { return chunkFJKSIZMK_cjs.retrieveCodeVerifier; }
91
91
  });
92
92
  Object.defineProperty(exports, "storeCodeVerifier", {
93
93
  enumerable: true,
94
- get: function () { return chunkLILTOMJP_cjs.storeCodeVerifier; }
94
+ get: function () { return chunkFJKSIZMK_cjs.storeCodeVerifier; }
95
95
  });
96
96
  Object.defineProperty(exports, "useFFID", {
97
97
  enumerable: true,
98
- get: function () { return chunkLILTOMJP_cjs.useFFID; }
98
+ get: function () { return chunkFJKSIZMK_cjs.useFFID; }
99
99
  });
100
100
  Object.defineProperty(exports, "useFFIDAnnouncements", {
101
101
  enumerable: true,
102
- get: function () { return chunkLILTOMJP_cjs.useFFIDAnnouncements; }
102
+ get: function () { return chunkFJKSIZMK_cjs.useFFIDAnnouncements; }
103
103
  });
104
104
  Object.defineProperty(exports, "useSubscription", {
105
105
  enumerable: true,
106
- get: function () { return chunkLILTOMJP_cjs.useSubscription; }
106
+ get: function () { return chunkFJKSIZMK_cjs.useSubscription; }
107
107
  });
108
108
  Object.defineProperty(exports, "withSubscription", {
109
109
  enumerable: true,
110
- get: function () { return chunkLILTOMJP_cjs.withSubscription; }
110
+ get: function () { return chunkFJKSIZMK_cjs.withSubscription; }
111
111
  });
112
112
  exports.withFFIDAuth = withFFIDAuth;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { F as FFIDConfig, a as FFIDApiResponse, b as FFIDSessionResponse, c as FFIDError, d as FFIDSubscriptionCheckResponse, e as FFIDOAuthUserInfo, f as FFIDLogger, g as FFIDUser, h as FFIDOrganization, i as FFIDSubscriptionContextValue, j as FFIDAnnouncementsClientConfig, L as ListAnnouncementsOptions, k as FFIDAnnouncementsApiResponse, A as AnnouncementListResponse, l as FFIDAnnouncementsLogger } from './index-oF_MAO2T.cjs';
2
- export { m as Announcement, n as AnnouncementStatus, o as AnnouncementType, p as FFIDAnnouncementBadge, q as FFIDAnnouncementList, r as FFIDAnnouncementsError, s as FFIDAnnouncementsErrorCode, t as FFIDAnnouncementsServerResponse, u as FFIDContextValue, v as FFIDJwtClaims, w as FFIDLoginButton, x as FFIDOAuthTokenResponse, y as FFIDOAuthUserInfoMemberRole, z as FFIDOAuthUserInfoSubscription, B as FFIDOrganizationSwitcher, C as FFIDSeatModel, D as FFIDSubscription, E as FFIDSubscriptionBadge, G as FFIDSubscriptionStatus, H as FFIDTokenIntrospectionResponse, I as FFIDUserMenu, U as UseFFIDAnnouncementsOptions, J as UseFFIDAnnouncementsReturn, K as useFFIDAnnouncements } from './index-oF_MAO2T.cjs';
1
+ import { F as FFIDConfig, a as FFIDApiResponse, b as FFIDSessionResponse, c as FFIDError, d as FFIDSubscriptionCheckResponse, e as FFIDCreateCheckoutParams, f as FFIDCheckoutSessionResponse, g as FFIDCreatePortalParams, h as FFIDPortalSessionResponse, i as FFIDOAuthUserInfo, j as FFIDLogger, k as FFIDUser, l as FFIDOrganization, m as FFIDSubscriptionContextValue, n as FFIDAnnouncementsClientConfig, L as ListAnnouncementsOptions, o as FFIDAnnouncementsApiResponse, A as AnnouncementListResponse, p as FFIDAnnouncementsLogger } from './index-Ca9M6Hde.cjs';
2
+ export { q as Announcement, r as AnnouncementStatus, s as AnnouncementType, t as FFIDAnnouncementBadge, u as FFIDAnnouncementList, v as FFIDAnnouncementsError, w as FFIDAnnouncementsErrorCode, x as FFIDAnnouncementsServerResponse, y as FFIDContextValue, z as FFIDJwtClaims, B as FFIDLoginButton, C as FFIDOAuthTokenResponse, D as FFIDOAuthUserInfoMemberRole, E as FFIDOAuthUserInfoSubscription, G as FFIDOrganizationSwitcher, H as FFIDSeatModel, I as FFIDSubscription, J as FFIDSubscriptionBadge, K as FFIDSubscriptionStatus, M as FFIDTokenIntrospectionResponse, N as FFIDUserMenu, U as UseFFIDAnnouncementsOptions, O as UseFFIDAnnouncementsReturn, P as useFFIDAnnouncements } from './index-Ca9M6Hde.cjs';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { ReactNode, ComponentType, FC } from 'react';
5
5
 
@@ -98,6 +98,8 @@ declare function createFFIDClient(config: FFIDConfig): {
98
98
  userId: string;
99
99
  organizationId: string;
100
100
  }) => Promise<FFIDApiResponse<FFIDSubscriptionCheckResponse>>;
101
+ createCheckoutSession: (params: FFIDCreateCheckoutParams) => Promise<FFIDApiResponse<FFIDCheckoutSessionResponse>>;
102
+ createPortalSession: (params: FFIDCreatePortalParams) => Promise<FFIDApiResponse<FFIDPortalSessionResponse>>;
101
103
  verifyAccessToken: (accessToken: string) => Promise<FFIDApiResponse<FFIDOAuthUserInfo>>;
102
104
  /** Token store (token mode only) */
103
105
  tokenStore: TokenStore;
@@ -339,4 +341,4 @@ declare function createFFIDAnnouncementsClient(config?: FFIDAnnouncementsClientC
339
341
  /** Type of the FFID Announcements client */
340
342
  type FFIDAnnouncementsClient = ReturnType<typeof createFFIDAnnouncementsClient>;
341
343
 
342
- export { AnnouncementListResponse, DEFAULT_API_BASE_URL, FFIDAnnouncementsApiResponse, type FFIDAnnouncementsClient, FFIDAnnouncementsClientConfig, FFIDAnnouncementsLogger, FFIDApiResponse, type FFIDClient, FFIDConfig, FFIDError, FFIDLogger, FFIDOAuthUserInfo, FFIDOrganization, FFIDProvider, type FFIDProviderProps, FFIDSessionResponse, FFIDSubscriptionCheckResponse, FFIDSubscriptionContextValue, FFIDUser, FFID_ANNOUNCEMENTS_ERROR_CODES, ListAnnouncementsOptions, type TokenData, type TokenStore, type UseFFIDReturn, type WithFFIDAuthOptions, type WithSubscriptionOptions, createFFIDAnnouncementsClient, createFFIDClient, createTokenStore, generateCodeChallenge, generateCodeVerifier, retrieveCodeVerifier, storeCodeVerifier, useFFID, useSubscription, withFFIDAuth, withSubscription };
344
+ export { AnnouncementListResponse, DEFAULT_API_BASE_URL, FFIDAnnouncementsApiResponse, type FFIDAnnouncementsClient, FFIDAnnouncementsClientConfig, FFIDAnnouncementsLogger, FFIDApiResponse, FFIDCheckoutSessionResponse, type FFIDClient, FFIDConfig, FFIDCreateCheckoutParams, FFIDCreatePortalParams, FFIDError, FFIDLogger, FFIDOAuthUserInfo, FFIDOrganization, FFIDPortalSessionResponse, FFIDProvider, type FFIDProviderProps, FFIDSessionResponse, FFIDSubscriptionCheckResponse, FFIDSubscriptionContextValue, FFIDUser, FFID_ANNOUNCEMENTS_ERROR_CODES, ListAnnouncementsOptions, type TokenData, type TokenStore, type UseFFIDReturn, type WithFFIDAuthOptions, type WithSubscriptionOptions, createFFIDAnnouncementsClient, createFFIDClient, createTokenStore, generateCodeChallenge, generateCodeVerifier, retrieveCodeVerifier, storeCodeVerifier, useFFID, useSubscription, withFFIDAuth, withSubscription };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { F as FFIDConfig, a as FFIDApiResponse, b as FFIDSessionResponse, c as FFIDError, d as FFIDSubscriptionCheckResponse, e as FFIDOAuthUserInfo, f as FFIDLogger, g as FFIDUser, h as FFIDOrganization, i as FFIDSubscriptionContextValue, j as FFIDAnnouncementsClientConfig, L as ListAnnouncementsOptions, k as FFIDAnnouncementsApiResponse, A as AnnouncementListResponse, l as FFIDAnnouncementsLogger } from './index-oF_MAO2T.js';
2
- export { m as Announcement, n as AnnouncementStatus, o as AnnouncementType, p as FFIDAnnouncementBadge, q as FFIDAnnouncementList, r as FFIDAnnouncementsError, s as FFIDAnnouncementsErrorCode, t as FFIDAnnouncementsServerResponse, u as FFIDContextValue, v as FFIDJwtClaims, w as FFIDLoginButton, x as FFIDOAuthTokenResponse, y as FFIDOAuthUserInfoMemberRole, z as FFIDOAuthUserInfoSubscription, B as FFIDOrganizationSwitcher, C as FFIDSeatModel, D as FFIDSubscription, E as FFIDSubscriptionBadge, G as FFIDSubscriptionStatus, H as FFIDTokenIntrospectionResponse, I as FFIDUserMenu, U as UseFFIDAnnouncementsOptions, J as UseFFIDAnnouncementsReturn, K as useFFIDAnnouncements } from './index-oF_MAO2T.js';
1
+ import { F as FFIDConfig, a as FFIDApiResponse, b as FFIDSessionResponse, c as FFIDError, d as FFIDSubscriptionCheckResponse, e as FFIDCreateCheckoutParams, f as FFIDCheckoutSessionResponse, g as FFIDCreatePortalParams, h as FFIDPortalSessionResponse, i as FFIDOAuthUserInfo, j as FFIDLogger, k as FFIDUser, l as FFIDOrganization, m as FFIDSubscriptionContextValue, n as FFIDAnnouncementsClientConfig, L as ListAnnouncementsOptions, o as FFIDAnnouncementsApiResponse, A as AnnouncementListResponse, p as FFIDAnnouncementsLogger } from './index-Ca9M6Hde.js';
2
+ export { q as Announcement, r as AnnouncementStatus, s as AnnouncementType, t as FFIDAnnouncementBadge, u as FFIDAnnouncementList, v as FFIDAnnouncementsError, w as FFIDAnnouncementsErrorCode, x as FFIDAnnouncementsServerResponse, y as FFIDContextValue, z as FFIDJwtClaims, B as FFIDLoginButton, C as FFIDOAuthTokenResponse, D as FFIDOAuthUserInfoMemberRole, E as FFIDOAuthUserInfoSubscription, G as FFIDOrganizationSwitcher, H as FFIDSeatModel, I as FFIDSubscription, J as FFIDSubscriptionBadge, K as FFIDSubscriptionStatus, M as FFIDTokenIntrospectionResponse, N as FFIDUserMenu, U as UseFFIDAnnouncementsOptions, O as UseFFIDAnnouncementsReturn, P as useFFIDAnnouncements } from './index-Ca9M6Hde.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { ReactNode, ComponentType, FC } from 'react';
5
5
 
@@ -98,6 +98,8 @@ declare function createFFIDClient(config: FFIDConfig): {
98
98
  userId: string;
99
99
  organizationId: string;
100
100
  }) => Promise<FFIDApiResponse<FFIDSubscriptionCheckResponse>>;
101
+ createCheckoutSession: (params: FFIDCreateCheckoutParams) => Promise<FFIDApiResponse<FFIDCheckoutSessionResponse>>;
102
+ createPortalSession: (params: FFIDCreatePortalParams) => Promise<FFIDApiResponse<FFIDPortalSessionResponse>>;
101
103
  verifyAccessToken: (accessToken: string) => Promise<FFIDApiResponse<FFIDOAuthUserInfo>>;
102
104
  /** Token store (token mode only) */
103
105
  tokenStore: TokenStore;
@@ -339,4 +341,4 @@ declare function createFFIDAnnouncementsClient(config?: FFIDAnnouncementsClientC
339
341
  /** Type of the FFID Announcements client */
340
342
  type FFIDAnnouncementsClient = ReturnType<typeof createFFIDAnnouncementsClient>;
341
343
 
342
- export { AnnouncementListResponse, DEFAULT_API_BASE_URL, FFIDAnnouncementsApiResponse, type FFIDAnnouncementsClient, FFIDAnnouncementsClientConfig, FFIDAnnouncementsLogger, FFIDApiResponse, type FFIDClient, FFIDConfig, FFIDError, FFIDLogger, FFIDOAuthUserInfo, FFIDOrganization, FFIDProvider, type FFIDProviderProps, FFIDSessionResponse, FFIDSubscriptionCheckResponse, FFIDSubscriptionContextValue, FFIDUser, FFID_ANNOUNCEMENTS_ERROR_CODES, ListAnnouncementsOptions, type TokenData, type TokenStore, type UseFFIDReturn, type WithFFIDAuthOptions, type WithSubscriptionOptions, createFFIDAnnouncementsClient, createFFIDClient, createTokenStore, generateCodeChallenge, generateCodeVerifier, retrieveCodeVerifier, storeCodeVerifier, useFFID, useSubscription, withFFIDAuth, withSubscription };
344
+ export { AnnouncementListResponse, DEFAULT_API_BASE_URL, FFIDAnnouncementsApiResponse, type FFIDAnnouncementsClient, FFIDAnnouncementsClientConfig, FFIDAnnouncementsLogger, FFIDApiResponse, FFIDCheckoutSessionResponse, type FFIDClient, FFIDConfig, FFIDCreateCheckoutParams, FFIDCreatePortalParams, FFIDError, FFIDLogger, FFIDOAuthUserInfo, FFIDOrganization, FFIDPortalSessionResponse, FFIDProvider, type FFIDProviderProps, FFIDSessionResponse, FFIDSubscriptionCheckResponse, FFIDSubscriptionContextValue, FFIDUser, FFID_ANNOUNCEMENTS_ERROR_CODES, ListAnnouncementsOptions, type TokenData, type TokenStore, type UseFFIDReturn, type WithFFIDAuthOptions, type WithSubscriptionOptions, createFFIDAnnouncementsClient, createFFIDClient, createTokenStore, generateCodeChallenge, generateCodeVerifier, retrieveCodeVerifier, storeCodeVerifier, useFFID, useSubscription, withFFIDAuth, withSubscription };
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { useFFIDContext } from './chunk-4LSSBFZG.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-4LSSBFZG.js';
1
+ import { useFFIDContext } from './chunk-WDRRWSZV.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-WDRRWSZV.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.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "FeelFlow ID Platform SDK for React/Next.js applications",
5
5
  "keywords": [
6
6
  "feelflow",
@@ -93,6 +93,7 @@
93
93
  "@testing-library/react": "^16.0.0",
94
94
  "@types/react": "^19.0.0",
95
95
  "@types/react-dom": "^19.0.0",
96
+ "eslint-plugin-react-hooks": "^7.0.1",
96
97
  "jsdom": "^27.0.0",
97
98
  "react": "^19.0.0",
98
99
  "react-dom": "^19.0.0",