@feelflow/ffid-sdk 5.1.0 → 5.2.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.
@@ -477,6 +477,16 @@ declare const CONSENT_COOKIE_MAX_AGE_SEC: number;
477
477
  * first, then fall back to cookie. See `FFIDAnalyticsProvider.bootstrap`.
478
478
  */
479
479
  declare const CONSENT_SESSION_STORAGE_KEY = "ffid_consent_state";
480
+ /**
481
+ * sessionStorage key for the dismissal timestamp ("あとで" cooldown).
482
+ *
483
+ * EDPB Guidelines 05/2020 §86 forbids treating dismissal as a refusal, so we
484
+ * never write this to a cookie or DB. Holding the timestamp in sessionStorage
485
+ * keeps it scoped to the current tab session — once the tab closes, the user
486
+ * is reprompted on next visit. See `FFIDAnalyticsProvider`'s
487
+ * `dismissalCooldownMinutes` prop for the auto-show suppression policy.
488
+ */
489
+ declare const CONSENT_DISMISSAL_TIMESTAMP_KEY = "ffid_consent_dismissed_at";
480
490
  interface WriteConsentCookieOptions {
481
491
  /** Override Secure flag for non-https custom domains. Defaults to production. */
482
492
  secure?: boolean;
@@ -520,6 +530,34 @@ declare function deleteConsentCookie(opts?: WriteConsentCookieOptions): boolean;
520
530
  declare function readConsentSessionMirror(): FFIDConsentCategories | null;
521
531
  declare function writeConsentSessionMirror(cats: FFIDConsentCategories): boolean;
522
532
  declare function clearConsentSessionMirror(): void;
533
+ /**
534
+ * Read the millisecond unix timestamp at which the banner was last dismissed,
535
+ * or `null` if absent / invalid / sessionStorage unavailable.
536
+ *
537
+ * Defensive parsing rejects non-finite values, negatives, and future-dated
538
+ * timestamps (clock-skew / tampering). When a corrupted value is detected,
539
+ * the helper **auto-heals** by clearing the slot — otherwise the same bad
540
+ * value would be re-parsed on every Provider mount and a buggy / extension-
541
+ * polluted consumer site could leave the cooldown effectively permanently
542
+ * disabled with no surface signal.
543
+ */
544
+ declare function readConsentDismissalTimestamp(): number | null;
545
+ /**
546
+ * Write the dismissal timestamp. Returns `true` on success, `false` when
547
+ * sessionStorage is unavailable / throws (e.g., quota, old Safari Private
548
+ * Browsing) **or** when `nowMs` is non-finite / negative.
549
+ *
550
+ * Callers may safely ignore the return — failure degrades to the legacy
551
+ * "reprompt every Provider mount" behavior, which is the published v5.1.0
552
+ * baseline. Dismissal carries no GDPR weight (EDPB §86) so there is no
553
+ * obligation to surface storage failure via `onError`.
554
+ */
555
+ declare function writeConsentDismissalTimestamp(nowMs?: number): boolean;
556
+ /**
557
+ * Idempotent clear of the dismissal timestamp. Safe to call when no value is
558
+ * present or sessionStorage is unavailable; never throws.
559
+ */
560
+ declare function clearConsentDismissalTimestamp(): void;
523
561
 
524
562
  /**
525
563
  * Cookie Consent — Google Consent Mode v2 wiring.
@@ -652,11 +690,29 @@ interface FFIDAnalyticsProviderProps {
652
690
  onError?: (error: FFIDConsentError) => void;
653
691
  /** Whether to open banner automatically when no decision is on file. Default: true. */
654
692
  autoShowBanner?: boolean;
693
+ /**
694
+ * Minutes to suppress auto-reopen after the user presses "あとで" (closeBanner).
695
+ *
696
+ * The dismissal timestamp is held in `sessionStorage` only — never written
697
+ * to cookie or DB — so it expires when the tab closes. This is EDPB
698
+ * Guidelines 05/2020 §86 compliant: dismissal is not a refusal, and the
699
+ * user is reprompted on the next fresh visit regardless of cooldown.
700
+ *
701
+ * Accepts any `number`; non-finite (`NaN` / `±Infinity`) and negative
702
+ * values are treated as `0` (suppression disabled). `0` reverts to the
703
+ * legacy v5.1.0 "reprompt on every Provider mount" behavior. Default: 30.
704
+ *
705
+ * Manual `openBanner()` calls ignore the cooldown so consumer "Cookie 設定"
706
+ * links keep working, and `needsRenewal=true` overrides the cooldown so the
707
+ * renewal reprompt (CNIL/ICO renewal guidance — see PR #3261) is never
708
+ * suppressed by a UX dismissal.
709
+ */
710
+ dismissalCooldownMinutes?: number;
655
711
  /** Optional fetch override (mainly for tests). */
656
712
  fetchImpl?: typeof fetch;
657
713
  children: ReactNode;
658
714
  }
659
- declare function FFIDAnalyticsProvider({ baseUrl, serviceApiKey, getAccessToken, gaMeasurementId, sentryReplay, sentry, onConsentChange, onError, autoShowBanner, fetchImpl, children, }: FFIDAnalyticsProviderProps): React.JSX.Element;
715
+ declare function FFIDAnalyticsProvider({ baseUrl, serviceApiKey, getAccessToken, gaMeasurementId, sentryReplay, sentry, onConsentChange, onError, autoShowBanner, dismissalCooldownMinutes, fetchImpl, children, }: FFIDAnalyticsProviderProps): React.JSX.Element;
660
716
 
661
717
  interface FFIDConsentContextValue {
662
718
  /** Current consent state. Always non-null; "not yet decided" is encoded by `hasDecided=false`. */
@@ -916,4 +972,4 @@ interface FFIDCookieLinkProps {
916
972
  }
917
973
  declare function FFIDCookieLink({ children, className, style, id, }: FFIDCookieLinkProps): React.JSX.Element;
918
974
 
919
- export { GetCategoriesWireSchema as $, ALL_DENIED_EXCEPT_NECESSARY as A, FFIDConsentMergeWarningSchema as B, CONSENT_COOKIE_MAX_AGE_SEC as C, DEFAULT_CONSENT_ERROR_MESSAGES as D, type FFIDConsentSource as E, type FFIDConsentResult as F, type GetConsentMeWire as G, FFIDConsentSourceSchema as H, FFIDConsentStateSchema as I, FFIDConsentUpdateSchema as J, FFIDCookieBanner as K, type FFIDCookieBannerClassNames as L, type FFIDCookieBannerProps as M, FFIDCookieLink as N, type FFIDCookieLinkProps as O, type PostConsentWire as P, FFIDCookiePolicySchema as Q, FFIDCookieSettings as R, type FFIDCookieSettingsClassNames as S, type FFIDCookieSettingsProps as T, type FFIDInternalConsentSource as U, FFIDInternalConsentSourceSchema as V, type FFIDPublicConsentSource as W, FFIDPublicConsentSourceSchema as X, FFID_CONSENT_ERROR_CODES as Y, FFID_CONSENT_NOT_DECIDED_STATE as Z, type GetCategoriesWire as _, type FFIDConsentState as a, GetConsentMeWireSchema as a0, type GetDocumentWire as a1, GetDocumentWireSchema as a2, type GtagBridge as a3, type GtagBridgeOptions as a4, type PostConsentRequest as a5, PostConsentRequestSchema as a6, PostConsentWireSchema as a7, type PostSyncRequest as a8, PostSyncRequestSchema as a9, PostSyncWireSchema as aa, PostWithdrawWireSchema as ab, type UseFFIDConsentPreferencesReturn as ac, type UseFFIDConsentReturn as ad, clearConsentSessionMirror as ae, createGtagBridge as af, decodeConsentCookie as ag, deleteConsentCookie as ah, encodeConsentCookie as ai, mapCategoriesToGtagParams as aj, readConsentCookie as ak, readConsentSessionMirror as al, useFFIDConsent as am, useFFIDConsentPreferences as an, writeConsentCookie as ao, writeConsentSessionMirror as ap, type FFIDConsentUpdate as b, type FFIDConsentCategories as c, type FFIDConsentSyncResult as d, type FFIDConsentCategoryMetadata as e, type FFIDCookiePolicy as f, type PostSyncWire as g, type PostWithdrawWire as h, CONSENT_COOKIE_NAME as i, CONSENT_SESSION_STORAGE_KEY as j, COOKIE_VERSION as k, DEFAULT_MERGE_WARNING_MESSAGES as l, DeviceIdSchema as m, FFIDAnalyticsProvider as n, type FFIDAnalyticsProviderProps as o, FFIDConsentCategoriesSchema as p, type FFIDConsentCategoryCode as q, FFIDConsentCategoryCodeSchema as r, FFIDConsentCategoryMetadataSchema as s, FFIDConsentContext as t, type FFIDConsentContextValue as u, FFIDConsentError as v, type FFIDConsentErrorCode as w, type FFIDConsentMergeStrategy as x, FFIDConsentMergeStrategySchema as y, type FFIDConsentMergeWarning as z };
975
+ export { type GetCategoriesWire as $, ALL_DENIED_EXCEPT_NECESSARY as A, type FFIDConsentMergeWarning as B, CONSENT_COOKIE_MAX_AGE_SEC as C, DEFAULT_CONSENT_ERROR_MESSAGES as D, FFIDConsentMergeWarningSchema as E, type FFIDConsentResult as F, type GetConsentMeWire as G, type FFIDConsentSource as H, FFIDConsentSourceSchema as I, FFIDConsentStateSchema as J, FFIDConsentUpdateSchema as K, FFIDCookieBanner as L, type FFIDCookieBannerClassNames as M, type FFIDCookieBannerProps as N, FFIDCookieLink as O, type PostConsentWire as P, type FFIDCookieLinkProps as Q, FFIDCookiePolicySchema as R, FFIDCookieSettings as S, type FFIDCookieSettingsClassNames as T, type FFIDCookieSettingsProps as U, type FFIDInternalConsentSource as V, FFIDInternalConsentSourceSchema as W, type FFIDPublicConsentSource as X, FFIDPublicConsentSourceSchema as Y, FFID_CONSENT_ERROR_CODES as Z, FFID_CONSENT_NOT_DECIDED_STATE as _, type FFIDConsentState as a, GetCategoriesWireSchema as a0, GetConsentMeWireSchema as a1, type GetDocumentWire as a2, GetDocumentWireSchema as a3, type GtagBridge as a4, type GtagBridgeOptions as a5, type PostConsentRequest as a6, PostConsentRequestSchema as a7, PostConsentWireSchema as a8, type PostSyncRequest as a9, PostSyncRequestSchema as aa, PostSyncWireSchema as ab, PostWithdrawWireSchema as ac, type UseFFIDConsentPreferencesReturn as ad, type UseFFIDConsentReturn as ae, clearConsentDismissalTimestamp as af, clearConsentSessionMirror as ag, createGtagBridge as ah, decodeConsentCookie as ai, deleteConsentCookie as aj, encodeConsentCookie as ak, mapCategoriesToGtagParams as al, readConsentCookie as am, readConsentDismissalTimestamp as an, readConsentSessionMirror as ao, useFFIDConsent as ap, useFFIDConsentPreferences as aq, writeConsentCookie as ar, writeConsentDismissalTimestamp as as, writeConsentSessionMirror as at, type FFIDConsentUpdate as b, type FFIDConsentCategories as c, type FFIDConsentSyncResult as d, type FFIDConsentCategoryMetadata as e, type FFIDCookiePolicy as f, type PostSyncWire as g, type PostWithdrawWire as h, CONSENT_COOKIE_NAME as i, CONSENT_DISMISSAL_TIMESTAMP_KEY as j, CONSENT_SESSION_STORAGE_KEY as k, COOKIE_VERSION as l, DEFAULT_MERGE_WARNING_MESSAGES as m, DeviceIdSchema as n, FFIDAnalyticsProvider as o, type FFIDAnalyticsProviderProps as p, FFIDConsentCategoriesSchema as q, type FFIDConsentCategoryCode as r, FFIDConsentCategoryCodeSchema as s, FFIDConsentCategoryMetadataSchema as t, FFIDConsentContext as u, type FFIDConsentContextValue as v, FFIDConsentError as w, type FFIDConsentErrorCode as x, type FFIDConsentMergeStrategy as y, FFIDConsentMergeStrategySchema as z };
@@ -477,6 +477,16 @@ declare const CONSENT_COOKIE_MAX_AGE_SEC: number;
477
477
  * first, then fall back to cookie. See `FFIDAnalyticsProvider.bootstrap`.
478
478
  */
479
479
  declare const CONSENT_SESSION_STORAGE_KEY = "ffid_consent_state";
480
+ /**
481
+ * sessionStorage key for the dismissal timestamp ("あとで" cooldown).
482
+ *
483
+ * EDPB Guidelines 05/2020 §86 forbids treating dismissal as a refusal, so we
484
+ * never write this to a cookie or DB. Holding the timestamp in sessionStorage
485
+ * keeps it scoped to the current tab session — once the tab closes, the user
486
+ * is reprompted on next visit. See `FFIDAnalyticsProvider`'s
487
+ * `dismissalCooldownMinutes` prop for the auto-show suppression policy.
488
+ */
489
+ declare const CONSENT_DISMISSAL_TIMESTAMP_KEY = "ffid_consent_dismissed_at";
480
490
  interface WriteConsentCookieOptions {
481
491
  /** Override Secure flag for non-https custom domains. Defaults to production. */
482
492
  secure?: boolean;
@@ -520,6 +530,34 @@ declare function deleteConsentCookie(opts?: WriteConsentCookieOptions): boolean;
520
530
  declare function readConsentSessionMirror(): FFIDConsentCategories | null;
521
531
  declare function writeConsentSessionMirror(cats: FFIDConsentCategories): boolean;
522
532
  declare function clearConsentSessionMirror(): void;
533
+ /**
534
+ * Read the millisecond unix timestamp at which the banner was last dismissed,
535
+ * or `null` if absent / invalid / sessionStorage unavailable.
536
+ *
537
+ * Defensive parsing rejects non-finite values, negatives, and future-dated
538
+ * timestamps (clock-skew / tampering). When a corrupted value is detected,
539
+ * the helper **auto-heals** by clearing the slot — otherwise the same bad
540
+ * value would be re-parsed on every Provider mount and a buggy / extension-
541
+ * polluted consumer site could leave the cooldown effectively permanently
542
+ * disabled with no surface signal.
543
+ */
544
+ declare function readConsentDismissalTimestamp(): number | null;
545
+ /**
546
+ * Write the dismissal timestamp. Returns `true` on success, `false` when
547
+ * sessionStorage is unavailable / throws (e.g., quota, old Safari Private
548
+ * Browsing) **or** when `nowMs` is non-finite / negative.
549
+ *
550
+ * Callers may safely ignore the return — failure degrades to the legacy
551
+ * "reprompt every Provider mount" behavior, which is the published v5.1.0
552
+ * baseline. Dismissal carries no GDPR weight (EDPB §86) so there is no
553
+ * obligation to surface storage failure via `onError`.
554
+ */
555
+ declare function writeConsentDismissalTimestamp(nowMs?: number): boolean;
556
+ /**
557
+ * Idempotent clear of the dismissal timestamp. Safe to call when no value is
558
+ * present or sessionStorage is unavailable; never throws.
559
+ */
560
+ declare function clearConsentDismissalTimestamp(): void;
523
561
 
524
562
  /**
525
563
  * Cookie Consent — Google Consent Mode v2 wiring.
@@ -652,11 +690,29 @@ interface FFIDAnalyticsProviderProps {
652
690
  onError?: (error: FFIDConsentError) => void;
653
691
  /** Whether to open banner automatically when no decision is on file. Default: true. */
654
692
  autoShowBanner?: boolean;
693
+ /**
694
+ * Minutes to suppress auto-reopen after the user presses "あとで" (closeBanner).
695
+ *
696
+ * The dismissal timestamp is held in `sessionStorage` only — never written
697
+ * to cookie or DB — so it expires when the tab closes. This is EDPB
698
+ * Guidelines 05/2020 §86 compliant: dismissal is not a refusal, and the
699
+ * user is reprompted on the next fresh visit regardless of cooldown.
700
+ *
701
+ * Accepts any `number`; non-finite (`NaN` / `±Infinity`) and negative
702
+ * values are treated as `0` (suppression disabled). `0` reverts to the
703
+ * legacy v5.1.0 "reprompt on every Provider mount" behavior. Default: 30.
704
+ *
705
+ * Manual `openBanner()` calls ignore the cooldown so consumer "Cookie 設定"
706
+ * links keep working, and `needsRenewal=true` overrides the cooldown so the
707
+ * renewal reprompt (CNIL/ICO renewal guidance — see PR #3261) is never
708
+ * suppressed by a UX dismissal.
709
+ */
710
+ dismissalCooldownMinutes?: number;
655
711
  /** Optional fetch override (mainly for tests). */
656
712
  fetchImpl?: typeof fetch;
657
713
  children: ReactNode;
658
714
  }
659
- declare function FFIDAnalyticsProvider({ baseUrl, serviceApiKey, getAccessToken, gaMeasurementId, sentryReplay, sentry, onConsentChange, onError, autoShowBanner, fetchImpl, children, }: FFIDAnalyticsProviderProps): React.JSX.Element;
715
+ declare function FFIDAnalyticsProvider({ baseUrl, serviceApiKey, getAccessToken, gaMeasurementId, sentryReplay, sentry, onConsentChange, onError, autoShowBanner, dismissalCooldownMinutes, fetchImpl, children, }: FFIDAnalyticsProviderProps): React.JSX.Element;
660
716
 
661
717
  interface FFIDConsentContextValue {
662
718
  /** Current consent state. Always non-null; "not yet decided" is encoded by `hasDecided=false`. */
@@ -916,4 +972,4 @@ interface FFIDCookieLinkProps {
916
972
  }
917
973
  declare function FFIDCookieLink({ children, className, style, id, }: FFIDCookieLinkProps): React.JSX.Element;
918
974
 
919
- export { GetCategoriesWireSchema as $, ALL_DENIED_EXCEPT_NECESSARY as A, FFIDConsentMergeWarningSchema as B, CONSENT_COOKIE_MAX_AGE_SEC as C, DEFAULT_CONSENT_ERROR_MESSAGES as D, type FFIDConsentSource as E, type FFIDConsentResult as F, type GetConsentMeWire as G, FFIDConsentSourceSchema as H, FFIDConsentStateSchema as I, FFIDConsentUpdateSchema as J, FFIDCookieBanner as K, type FFIDCookieBannerClassNames as L, type FFIDCookieBannerProps as M, FFIDCookieLink as N, type FFIDCookieLinkProps as O, type PostConsentWire as P, FFIDCookiePolicySchema as Q, FFIDCookieSettings as R, type FFIDCookieSettingsClassNames as S, type FFIDCookieSettingsProps as T, type FFIDInternalConsentSource as U, FFIDInternalConsentSourceSchema as V, type FFIDPublicConsentSource as W, FFIDPublicConsentSourceSchema as X, FFID_CONSENT_ERROR_CODES as Y, FFID_CONSENT_NOT_DECIDED_STATE as Z, type GetCategoriesWire as _, type FFIDConsentState as a, GetConsentMeWireSchema as a0, type GetDocumentWire as a1, GetDocumentWireSchema as a2, type GtagBridge as a3, type GtagBridgeOptions as a4, type PostConsentRequest as a5, PostConsentRequestSchema as a6, PostConsentWireSchema as a7, type PostSyncRequest as a8, PostSyncRequestSchema as a9, PostSyncWireSchema as aa, PostWithdrawWireSchema as ab, type UseFFIDConsentPreferencesReturn as ac, type UseFFIDConsentReturn as ad, clearConsentSessionMirror as ae, createGtagBridge as af, decodeConsentCookie as ag, deleteConsentCookie as ah, encodeConsentCookie as ai, mapCategoriesToGtagParams as aj, readConsentCookie as ak, readConsentSessionMirror as al, useFFIDConsent as am, useFFIDConsentPreferences as an, writeConsentCookie as ao, writeConsentSessionMirror as ap, type FFIDConsentUpdate as b, type FFIDConsentCategories as c, type FFIDConsentSyncResult as d, type FFIDConsentCategoryMetadata as e, type FFIDCookiePolicy as f, type PostSyncWire as g, type PostWithdrawWire as h, CONSENT_COOKIE_NAME as i, CONSENT_SESSION_STORAGE_KEY as j, COOKIE_VERSION as k, DEFAULT_MERGE_WARNING_MESSAGES as l, DeviceIdSchema as m, FFIDAnalyticsProvider as n, type FFIDAnalyticsProviderProps as o, FFIDConsentCategoriesSchema as p, type FFIDConsentCategoryCode as q, FFIDConsentCategoryCodeSchema as r, FFIDConsentCategoryMetadataSchema as s, FFIDConsentContext as t, type FFIDConsentContextValue as u, FFIDConsentError as v, type FFIDConsentErrorCode as w, type FFIDConsentMergeStrategy as x, FFIDConsentMergeStrategySchema as y, type FFIDConsentMergeWarning as z };
975
+ export { type GetCategoriesWire as $, ALL_DENIED_EXCEPT_NECESSARY as A, type FFIDConsentMergeWarning as B, CONSENT_COOKIE_MAX_AGE_SEC as C, DEFAULT_CONSENT_ERROR_MESSAGES as D, FFIDConsentMergeWarningSchema as E, type FFIDConsentResult as F, type GetConsentMeWire as G, type FFIDConsentSource as H, FFIDConsentSourceSchema as I, FFIDConsentStateSchema as J, FFIDConsentUpdateSchema as K, FFIDCookieBanner as L, type FFIDCookieBannerClassNames as M, type FFIDCookieBannerProps as N, FFIDCookieLink as O, type PostConsentWire as P, type FFIDCookieLinkProps as Q, FFIDCookiePolicySchema as R, FFIDCookieSettings as S, type FFIDCookieSettingsClassNames as T, type FFIDCookieSettingsProps as U, type FFIDInternalConsentSource as V, FFIDInternalConsentSourceSchema as W, type FFIDPublicConsentSource as X, FFIDPublicConsentSourceSchema as Y, FFID_CONSENT_ERROR_CODES as Z, FFID_CONSENT_NOT_DECIDED_STATE as _, type FFIDConsentState as a, GetCategoriesWireSchema as a0, GetConsentMeWireSchema as a1, type GetDocumentWire as a2, GetDocumentWireSchema as a3, type GtagBridge as a4, type GtagBridgeOptions as a5, type PostConsentRequest as a6, PostConsentRequestSchema as a7, PostConsentWireSchema as a8, type PostSyncRequest as a9, PostSyncRequestSchema as aa, PostSyncWireSchema as ab, PostWithdrawWireSchema as ac, type UseFFIDConsentPreferencesReturn as ad, type UseFFIDConsentReturn as ae, clearConsentDismissalTimestamp as af, clearConsentSessionMirror as ag, createGtagBridge as ah, decodeConsentCookie as ai, deleteConsentCookie as aj, encodeConsentCookie as ak, mapCategoriesToGtagParams as al, readConsentCookie as am, readConsentDismissalTimestamp as an, readConsentSessionMirror as ao, useFFIDConsent as ap, useFFIDConsentPreferences as aq, writeConsentCookie as ar, writeConsentDismissalTimestamp as as, writeConsentSessionMirror as at, type FFIDConsentUpdate as b, type FFIDConsentCategories as c, type FFIDConsentSyncResult as d, type FFIDConsentCategoryMetadata as e, type FFIDCookiePolicy as f, type PostSyncWire as g, type PostWithdrawWire as h, CONSENT_COOKIE_NAME as i, CONSENT_DISMISSAL_TIMESTAMP_KEY as j, CONSENT_SESSION_STORAGE_KEY as k, COOKIE_VERSION as l, DEFAULT_MERGE_WARNING_MESSAGES as m, DeviceIdSchema as n, FFIDAnalyticsProvider as o, type FFIDAnalyticsProviderProps as p, FFIDConsentCategoriesSchema as q, type FFIDConsentCategoryCode as r, FFIDConsentCategoryCodeSchema as s, FFIDConsentCategoryMetadataSchema as t, FFIDConsentContext as u, type FFIDConsentContextValue as v, FFIDConsentError as w, type FFIDConsentErrorCode as x, type FFIDConsentMergeStrategy as y, FFIDConsentMergeStrategySchema as z };
@@ -840,7 +840,7 @@ function createProfileMethods(deps) {
840
840
  }
841
841
 
842
842
  // src/client/version-check.ts
843
- var SDK_VERSION = "5.1.0";
843
+ var SDK_VERSION = "5.2.0";
844
844
  var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
845
845
  var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
846
846
  function sdkHeaders() {
@@ -838,7 +838,7 @@ function createProfileMethods(deps) {
838
838
  }
839
839
 
840
840
  // src/client/version-check.ts
841
- var SDK_VERSION = "5.1.0";
841
+ var SDK_VERSION = "5.2.0";
842
842
  var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
843
843
  var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
844
844
  function sdkHeaders() {
@@ -284,6 +284,7 @@ var HOURS_PER_DAY = 24;
284
284
  var DAYS_PER_YEAR = 365;
285
285
  var CONSENT_COOKIE_MAX_AGE_SEC = SECONDS_PER_MINUTE * MINUTES_PER_HOUR * HOURS_PER_DAY * DAYS_PER_YEAR;
286
286
  var CONSENT_SESSION_STORAGE_KEY = "ffid_consent_state";
287
+ var CONSENT_DISMISSAL_TIMESTAMP_KEY = "ffid_consent_dismissed_at";
287
288
  function hasDocument() {
288
289
  return typeof document !== "undefined";
289
290
  }
@@ -374,6 +375,39 @@ function clearConsentSessionMirror() {
374
375
  } catch {
375
376
  }
376
377
  }
378
+ function readConsentDismissalTimestamp() {
379
+ if (!hasSessionStorage()) return null;
380
+ try {
381
+ const raw = sessionStorage.getItem(CONSENT_DISMISSAL_TIMESTAMP_KEY);
382
+ if (!raw) return null;
383
+ const parsed = Number(raw);
384
+ const CLOCK_SKEW_GRACE_MS = 6e4;
385
+ if (!Number.isFinite(parsed) || parsed < 0 || parsed > Date.now() + CLOCK_SKEW_GRACE_MS) {
386
+ clearConsentDismissalTimestamp();
387
+ return null;
388
+ }
389
+ return parsed;
390
+ } catch {
391
+ return null;
392
+ }
393
+ }
394
+ function writeConsentDismissalTimestamp(nowMs = Date.now()) {
395
+ if (!Number.isFinite(nowMs) || nowMs < 0) return false;
396
+ if (!hasSessionStorage()) return false;
397
+ try {
398
+ sessionStorage.setItem(CONSENT_DISMISSAL_TIMESTAMP_KEY, String(nowMs));
399
+ return true;
400
+ } catch {
401
+ return false;
402
+ }
403
+ }
404
+ function clearConsentDismissalTimestamp() {
405
+ if (!hasSessionStorage()) return;
406
+ try {
407
+ sessionStorage.removeItem(CONSENT_DISMISSAL_TIMESTAMP_KEY);
408
+ } catch {
409
+ }
410
+ }
377
411
 
378
412
  // src/consent/storage/device-id.ts
379
413
  var DEVICE_ID_LOCAL_STORAGE_KEY = "ffid_device_id";
@@ -1014,6 +1048,8 @@ var DEFAULT_MERGE_WARNING_MESSAGES = {
1014
1048
  shared_device_detected: "\u3053\u306E\u7AEF\u672B\u306F\u5225\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u3082\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u3002Cookie \u8A2D\u5B9A\u306F\u30A2\u30AB\u30A6\u30F3\u30C8\u3054\u3068\u306B\u4FDD\u5B58\u3055\u308C\u3066\u3044\u307E\u3059",
1015
1049
  drift_detected: "\u4FDD\u5B58\u3055\u308C\u3066\u3044\u305F\u8A2D\u5B9A\u3068\u7570\u306A\u308B\u9805\u76EE\u304C\u3042\u3063\u305F\u305F\u3081\u3001\u65B0\u3057\u304F\u8A18\u9332\u3055\u308C\u307E\u3057\u305F"
1016
1050
  };
1051
+ var DEFAULT_DISMISSAL_COOLDOWN_MINUTES = 30;
1052
+ var MS_PER_MINUTE = 6e4;
1017
1053
  function applyChanges(base, changes) {
1018
1054
  return {
1019
1055
  necessary: true,
@@ -1032,9 +1068,17 @@ function FFIDAnalyticsProvider({
1032
1068
  onConsentChange,
1033
1069
  onError,
1034
1070
  autoShowBanner = true,
1071
+ dismissalCooldownMinutes = DEFAULT_DISMISSAL_COOLDOWN_MINUTES,
1035
1072
  fetchImpl,
1036
1073
  children
1037
1074
  }) {
1075
+ const cooldownMs = Number.isFinite(dismissalCooldownMinutes) && dismissalCooldownMinutes > 0 ? dismissalCooldownMinutes * MS_PER_MINUTE : 0;
1076
+ const isWithinDismissalCooldown = react.useCallback(() => {
1077
+ if (cooldownMs <= 0) return false;
1078
+ const dismissedAt = readConsentDismissalTimestamp();
1079
+ if (dismissedAt === null) return false;
1080
+ return Date.now() - dismissedAt < cooldownMs;
1081
+ }, [cooldownMs]);
1038
1082
  const [state, setState] = react.useState(
1039
1083
  FFID_CONSENT_NOT_DECIDED_STATE
1040
1084
  );
@@ -1145,7 +1189,7 @@ function FFIDAnalyticsProvider({
1145
1189
  applyCategoriesSideEffects(result.value.categories);
1146
1190
  writeConsentSessionMirror(result.value.categories);
1147
1191
  setIsLoading(false);
1148
- if (!result.value.hasDecided && autoShowBanner) {
1192
+ if (!result.value.hasDecided && autoShowBanner && !isWithinDismissalCooldown()) {
1149
1193
  setIsBannerOpen(true);
1150
1194
  }
1151
1195
  if (result.value.needsRenewal && autoShowBanner) {
@@ -1273,7 +1317,10 @@ function FFIDAnalyticsProvider({
1273
1317
  persistCategories
1274
1318
  ]);
1275
1319
  const openBanner = react.useCallback(() => setIsBannerOpen(true), []);
1276
- const closeBanner = react.useCallback(() => setIsBannerOpen(false), []);
1320
+ const closeBanner = react.useCallback(() => {
1321
+ if (cooldownMs > 0) writeConsentDismissalTimestamp();
1322
+ setIsBannerOpen(false);
1323
+ }, [cooldownMs]);
1277
1324
  const openPreferences = react.useCallback(async () => {
1278
1325
  if (!categoryMetadata) {
1279
1326
  const client = clientRef.current;
@@ -1795,6 +1842,7 @@ function FFIDCookieLink({
1795
1842
  exports.ALL_DENIED_EXCEPT_NECESSARY = ALL_DENIED_EXCEPT_NECESSARY;
1796
1843
  exports.CONSENT_COOKIE_MAX_AGE_SEC = CONSENT_COOKIE_MAX_AGE_SEC;
1797
1844
  exports.CONSENT_COOKIE_NAME = CONSENT_COOKIE_NAME;
1845
+ exports.CONSENT_DISMISSAL_TIMESTAMP_KEY = CONSENT_DISMISSAL_TIMESTAMP_KEY;
1798
1846
  exports.CONSENT_SESSION_STORAGE_KEY = CONSENT_SESSION_STORAGE_KEY;
1799
1847
  exports.COOKIE_VERSION = COOKIE_VERSION;
1800
1848
  exports.DEFAULT_CONSENT_ERROR_MESSAGES = DEFAULT_CONSENT_ERROR_MESSAGES;
@@ -1829,6 +1877,7 @@ exports.PostConsentWireSchema = PostConsentWireSchema;
1829
1877
  exports.PostSyncRequestSchema = PostSyncRequestSchema;
1830
1878
  exports.PostSyncWireSchema = PostSyncWireSchema;
1831
1879
  exports.PostWithdrawWireSchema = PostWithdrawWireSchema;
1880
+ exports.clearConsentDismissalTimestamp = clearConsentDismissalTimestamp;
1832
1881
  exports.clearConsentSessionMirror = clearConsentSessionMirror;
1833
1882
  exports.clearDeviceId = clearDeviceId;
1834
1883
  exports.createConsentClient = createConsentClient;
@@ -1846,8 +1895,10 @@ exports.mapMeWireToState = mapMeWireToState;
1846
1895
  exports.mapSyncWireToResult = mapSyncWireToResult;
1847
1896
  exports.mapWithdrawWireToState = mapWithdrawWireToState;
1848
1897
  exports.readConsentCookie = readConsentCookie;
1898
+ exports.readConsentDismissalTimestamp = readConsentDismissalTimestamp;
1849
1899
  exports.readConsentSessionMirror = readConsentSessionMirror;
1850
1900
  exports.useFFIDConsent = useFFIDConsent;
1851
1901
  exports.useFFIDConsentPreferences = useFFIDConsentPreferences;
1852
1902
  exports.writeConsentCookie = writeConsentCookie;
1903
+ exports.writeConsentDismissalTimestamp = writeConsentDismissalTimestamp;
1853
1904
  exports.writeConsentSessionMirror = writeConsentSessionMirror;
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { createContext, useState, useRef, useCallback, useEffect, useMemo, useContext } from 'react';
2
+ import { createContext, useCallback, useState, useRef, useEffect, useMemo, useContext } from 'react';
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
4
 
5
5
  var FFIDConsentCategoryCodeSchema = z.enum([
@@ -282,6 +282,7 @@ var HOURS_PER_DAY = 24;
282
282
  var DAYS_PER_YEAR = 365;
283
283
  var CONSENT_COOKIE_MAX_AGE_SEC = SECONDS_PER_MINUTE * MINUTES_PER_HOUR * HOURS_PER_DAY * DAYS_PER_YEAR;
284
284
  var CONSENT_SESSION_STORAGE_KEY = "ffid_consent_state";
285
+ var CONSENT_DISMISSAL_TIMESTAMP_KEY = "ffid_consent_dismissed_at";
285
286
  function hasDocument() {
286
287
  return typeof document !== "undefined";
287
288
  }
@@ -372,6 +373,39 @@ function clearConsentSessionMirror() {
372
373
  } catch {
373
374
  }
374
375
  }
376
+ function readConsentDismissalTimestamp() {
377
+ if (!hasSessionStorage()) return null;
378
+ try {
379
+ const raw = sessionStorage.getItem(CONSENT_DISMISSAL_TIMESTAMP_KEY);
380
+ if (!raw) return null;
381
+ const parsed = Number(raw);
382
+ const CLOCK_SKEW_GRACE_MS = 6e4;
383
+ if (!Number.isFinite(parsed) || parsed < 0 || parsed > Date.now() + CLOCK_SKEW_GRACE_MS) {
384
+ clearConsentDismissalTimestamp();
385
+ return null;
386
+ }
387
+ return parsed;
388
+ } catch {
389
+ return null;
390
+ }
391
+ }
392
+ function writeConsentDismissalTimestamp(nowMs = Date.now()) {
393
+ if (!Number.isFinite(nowMs) || nowMs < 0) return false;
394
+ if (!hasSessionStorage()) return false;
395
+ try {
396
+ sessionStorage.setItem(CONSENT_DISMISSAL_TIMESTAMP_KEY, String(nowMs));
397
+ return true;
398
+ } catch {
399
+ return false;
400
+ }
401
+ }
402
+ function clearConsentDismissalTimestamp() {
403
+ if (!hasSessionStorage()) return;
404
+ try {
405
+ sessionStorage.removeItem(CONSENT_DISMISSAL_TIMESTAMP_KEY);
406
+ } catch {
407
+ }
408
+ }
375
409
 
376
410
  // src/consent/storage/device-id.ts
377
411
  var DEVICE_ID_LOCAL_STORAGE_KEY = "ffid_device_id";
@@ -1012,6 +1046,8 @@ var DEFAULT_MERGE_WARNING_MESSAGES = {
1012
1046
  shared_device_detected: "\u3053\u306E\u7AEF\u672B\u306F\u5225\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u3082\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u3002Cookie \u8A2D\u5B9A\u306F\u30A2\u30AB\u30A6\u30F3\u30C8\u3054\u3068\u306B\u4FDD\u5B58\u3055\u308C\u3066\u3044\u307E\u3059",
1013
1047
  drift_detected: "\u4FDD\u5B58\u3055\u308C\u3066\u3044\u305F\u8A2D\u5B9A\u3068\u7570\u306A\u308B\u9805\u76EE\u304C\u3042\u3063\u305F\u305F\u3081\u3001\u65B0\u3057\u304F\u8A18\u9332\u3055\u308C\u307E\u3057\u305F"
1014
1048
  };
1049
+ var DEFAULT_DISMISSAL_COOLDOWN_MINUTES = 30;
1050
+ var MS_PER_MINUTE = 6e4;
1015
1051
  function applyChanges(base, changes) {
1016
1052
  return {
1017
1053
  necessary: true,
@@ -1030,9 +1066,17 @@ function FFIDAnalyticsProvider({
1030
1066
  onConsentChange,
1031
1067
  onError,
1032
1068
  autoShowBanner = true,
1069
+ dismissalCooldownMinutes = DEFAULT_DISMISSAL_COOLDOWN_MINUTES,
1033
1070
  fetchImpl,
1034
1071
  children
1035
1072
  }) {
1073
+ const cooldownMs = Number.isFinite(dismissalCooldownMinutes) && dismissalCooldownMinutes > 0 ? dismissalCooldownMinutes * MS_PER_MINUTE : 0;
1074
+ const isWithinDismissalCooldown = useCallback(() => {
1075
+ if (cooldownMs <= 0) return false;
1076
+ const dismissedAt = readConsentDismissalTimestamp();
1077
+ if (dismissedAt === null) return false;
1078
+ return Date.now() - dismissedAt < cooldownMs;
1079
+ }, [cooldownMs]);
1036
1080
  const [state, setState] = useState(
1037
1081
  FFID_CONSENT_NOT_DECIDED_STATE
1038
1082
  );
@@ -1143,7 +1187,7 @@ function FFIDAnalyticsProvider({
1143
1187
  applyCategoriesSideEffects(result.value.categories);
1144
1188
  writeConsentSessionMirror(result.value.categories);
1145
1189
  setIsLoading(false);
1146
- if (!result.value.hasDecided && autoShowBanner) {
1190
+ if (!result.value.hasDecided && autoShowBanner && !isWithinDismissalCooldown()) {
1147
1191
  setIsBannerOpen(true);
1148
1192
  }
1149
1193
  if (result.value.needsRenewal && autoShowBanner) {
@@ -1271,7 +1315,10 @@ function FFIDAnalyticsProvider({
1271
1315
  persistCategories
1272
1316
  ]);
1273
1317
  const openBanner = useCallback(() => setIsBannerOpen(true), []);
1274
- const closeBanner = useCallback(() => setIsBannerOpen(false), []);
1318
+ const closeBanner = useCallback(() => {
1319
+ if (cooldownMs > 0) writeConsentDismissalTimestamp();
1320
+ setIsBannerOpen(false);
1321
+ }, [cooldownMs]);
1275
1322
  const openPreferences = useCallback(async () => {
1276
1323
  if (!categoryMetadata) {
1277
1324
  const client = clientRef.current;
@@ -1790,4 +1837,4 @@ function FFIDCookieLink({
1790
1837
  );
1791
1838
  }
1792
1839
 
1793
- export { ALL_DENIED_EXCEPT_NECESSARY, CONSENT_COOKIE_MAX_AGE_SEC, CONSENT_COOKIE_NAME, CONSENT_SESSION_STORAGE_KEY, COOKIE_VERSION, DEFAULT_CONSENT_ERROR_MESSAGES, DEFAULT_MERGE_WARNING_MESSAGES, DEVICE_ID_LOCAL_STORAGE_KEY, DEVICE_ID_SESSION_STORAGE_KEY, DeviceIdSchema, FFIDAnalyticsProvider, FFIDConsentCategoriesSchema, FFIDConsentCategoryCodeSchema, FFIDConsentCategoryMetadataSchema, FFIDConsentContext, FFIDConsentError, FFIDConsentMergeStrategySchema, FFIDConsentMergeWarningSchema, FFIDConsentSourceSchema, FFIDConsentStateSchema, FFIDConsentUpdateSchema, FFIDCookieBanner, FFIDCookieLink, FFIDCookiePolicySchema, FFIDCookieSettings, FFIDInternalConsentSourceSchema, FFIDPublicConsentSourceSchema, FFID_CONSENT_ERROR_CODES, FFID_CONSENT_NOT_DECIDED_STATE, GetCategoriesWireSchema, GetConsentMeWireSchema, GetDocumentWireSchema, PostConsentRequestSchema, PostConsentWireSchema, PostSyncRequestSchema, PostSyncWireSchema, PostWithdrawWireSchema, clearConsentSessionMirror, clearDeviceId, createConsentClient, createGtagBridge, decodeConsentCookie, deleteConsentCookie, encodeConsentCookie, generateDeviceId, getOrCreateDeviceId, isUuidV7, isValidDeviceId, mapCategoriesToGtagParams, mapConsentWireToState, mapMeWireToState, mapSyncWireToResult, mapWithdrawWireToState, readConsentCookie, readConsentSessionMirror, useFFIDConsent, useFFIDConsentPreferences, writeConsentCookie, writeConsentSessionMirror };
1840
+ export { ALL_DENIED_EXCEPT_NECESSARY, CONSENT_COOKIE_MAX_AGE_SEC, CONSENT_COOKIE_NAME, CONSENT_DISMISSAL_TIMESTAMP_KEY, CONSENT_SESSION_STORAGE_KEY, COOKIE_VERSION, DEFAULT_CONSENT_ERROR_MESSAGES, DEFAULT_MERGE_WARNING_MESSAGES, DEVICE_ID_LOCAL_STORAGE_KEY, DEVICE_ID_SESSION_STORAGE_KEY, DeviceIdSchema, FFIDAnalyticsProvider, FFIDConsentCategoriesSchema, FFIDConsentCategoryCodeSchema, FFIDConsentCategoryMetadataSchema, FFIDConsentContext, FFIDConsentError, FFIDConsentMergeStrategySchema, FFIDConsentMergeWarningSchema, FFIDConsentSourceSchema, FFIDConsentStateSchema, FFIDConsentUpdateSchema, FFIDCookieBanner, FFIDCookieLink, FFIDCookiePolicySchema, FFIDCookieSettings, FFIDInternalConsentSourceSchema, FFIDPublicConsentSourceSchema, FFID_CONSENT_ERROR_CODES, FFID_CONSENT_NOT_DECIDED_STATE, GetCategoriesWireSchema, GetConsentMeWireSchema, GetDocumentWireSchema, PostConsentRequestSchema, PostConsentWireSchema, PostSyncRequestSchema, PostSyncWireSchema, PostWithdrawWireSchema, clearConsentDismissalTimestamp, clearConsentSessionMirror, clearDeviceId, createConsentClient, createGtagBridge, decodeConsentCookie, deleteConsentCookie, encodeConsentCookie, generateDeviceId, getOrCreateDeviceId, isUuidV7, isValidDeviceId, mapCategoriesToGtagParams, mapConsentWireToState, mapMeWireToState, mapSyncWireToResult, mapWithdrawWireToState, readConsentCookie, readConsentDismissalTimestamp, readConsentSessionMirror, useFFIDConsent, useFFIDConsentPreferences, writeConsentCookie, writeConsentDismissalTimestamp, writeConsentSessionMirror };
@@ -1,34 +1,34 @@
1
1
  'use strict';
2
2
 
3
- var chunk7IOAHDFM_cjs = require('../chunk-7IOAHDFM.cjs');
3
+ var chunk4IIVIB2Q_cjs = require('../chunk-4IIVIB2Q.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "FFIDAnnouncementBadge", {
8
8
  enumerable: true,
9
- get: function () { return chunk7IOAHDFM_cjs.FFIDAnnouncementBadge; }
9
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDAnnouncementBadge; }
10
10
  });
11
11
  Object.defineProperty(exports, "FFIDAnnouncementList", {
12
12
  enumerable: true,
13
- get: function () { return chunk7IOAHDFM_cjs.FFIDAnnouncementList; }
13
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDAnnouncementList; }
14
14
  });
15
15
  Object.defineProperty(exports, "FFIDInquiryForm", {
16
16
  enumerable: true,
17
- get: function () { return chunk7IOAHDFM_cjs.FFIDInquiryForm; }
17
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDInquiryForm; }
18
18
  });
19
19
  Object.defineProperty(exports, "FFIDLoginButton", {
20
20
  enumerable: true,
21
- get: function () { return chunk7IOAHDFM_cjs.FFIDLoginButton; }
21
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDLoginButton; }
22
22
  });
23
23
  Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
24
24
  enumerable: true,
25
- get: function () { return chunk7IOAHDFM_cjs.FFIDOrganizationSwitcher; }
25
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDOrganizationSwitcher; }
26
26
  });
27
27
  Object.defineProperty(exports, "FFIDSubscriptionBadge", {
28
28
  enumerable: true,
29
- get: function () { return chunk7IOAHDFM_cjs.FFIDSubscriptionBadge; }
29
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDSubscriptionBadge; }
30
30
  });
31
31
  Object.defineProperty(exports, "FFIDUserMenu", {
32
32
  enumerable: true,
33
- get: function () { return chunk7IOAHDFM_cjs.FFIDUserMenu; }
33
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDUserMenu; }
34
34
  });
@@ -1 +1 @@
1
- export { FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDInquiryForm, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDSubscriptionBadge, FFIDUserMenu } from '../chunk-Y4JGEGPS.js';
1
+ export { FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDInquiryForm, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDSubscriptionBadge, FFIDUserMenu } from '../chunk-FACWGQHL.js';
@@ -1,242 +1,258 @@
1
1
  'use strict';
2
2
 
3
- var chunk5AJFDSMG_cjs = require('../chunk-5AJFDSMG.cjs');
3
+ var chunkI3QZJXQQ_cjs = require('../chunk-I3QZJXQQ.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "ALL_DENIED_EXCEPT_NECESSARY", {
8
8
  enumerable: true,
9
- get: function () { return chunk5AJFDSMG_cjs.ALL_DENIED_EXCEPT_NECESSARY; }
9
+ get: function () { return chunkI3QZJXQQ_cjs.ALL_DENIED_EXCEPT_NECESSARY; }
10
10
  });
11
11
  Object.defineProperty(exports, "CONSENT_COOKIE_MAX_AGE_SEC", {
12
12
  enumerable: true,
13
- get: function () { return chunk5AJFDSMG_cjs.CONSENT_COOKIE_MAX_AGE_SEC; }
13
+ get: function () { return chunkI3QZJXQQ_cjs.CONSENT_COOKIE_MAX_AGE_SEC; }
14
14
  });
15
15
  Object.defineProperty(exports, "CONSENT_COOKIE_NAME", {
16
16
  enumerable: true,
17
- get: function () { return chunk5AJFDSMG_cjs.CONSENT_COOKIE_NAME; }
17
+ get: function () { return chunkI3QZJXQQ_cjs.CONSENT_COOKIE_NAME; }
18
+ });
19
+ Object.defineProperty(exports, "CONSENT_DISMISSAL_TIMESTAMP_KEY", {
20
+ enumerable: true,
21
+ get: function () { return chunkI3QZJXQQ_cjs.CONSENT_DISMISSAL_TIMESTAMP_KEY; }
18
22
  });
19
23
  Object.defineProperty(exports, "CONSENT_SESSION_STORAGE_KEY", {
20
24
  enumerable: true,
21
- get: function () { return chunk5AJFDSMG_cjs.CONSENT_SESSION_STORAGE_KEY; }
25
+ get: function () { return chunkI3QZJXQQ_cjs.CONSENT_SESSION_STORAGE_KEY; }
22
26
  });
23
27
  Object.defineProperty(exports, "COOKIE_VERSION", {
24
28
  enumerable: true,
25
- get: function () { return chunk5AJFDSMG_cjs.COOKIE_VERSION; }
29
+ get: function () { return chunkI3QZJXQQ_cjs.COOKIE_VERSION; }
26
30
  });
27
31
  Object.defineProperty(exports, "DEFAULT_CONSENT_ERROR_MESSAGES", {
28
32
  enumerable: true,
29
- get: function () { return chunk5AJFDSMG_cjs.DEFAULT_CONSENT_ERROR_MESSAGES; }
33
+ get: function () { return chunkI3QZJXQQ_cjs.DEFAULT_CONSENT_ERROR_MESSAGES; }
30
34
  });
31
35
  Object.defineProperty(exports, "DEFAULT_MERGE_WARNING_MESSAGES", {
32
36
  enumerable: true,
33
- get: function () { return chunk5AJFDSMG_cjs.DEFAULT_MERGE_WARNING_MESSAGES; }
37
+ get: function () { return chunkI3QZJXQQ_cjs.DEFAULT_MERGE_WARNING_MESSAGES; }
34
38
  });
35
39
  Object.defineProperty(exports, "DEVICE_ID_LOCAL_STORAGE_KEY", {
36
40
  enumerable: true,
37
- get: function () { return chunk5AJFDSMG_cjs.DEVICE_ID_LOCAL_STORAGE_KEY; }
41
+ get: function () { return chunkI3QZJXQQ_cjs.DEVICE_ID_LOCAL_STORAGE_KEY; }
38
42
  });
39
43
  Object.defineProperty(exports, "DEVICE_ID_SESSION_STORAGE_KEY", {
40
44
  enumerable: true,
41
- get: function () { return chunk5AJFDSMG_cjs.DEVICE_ID_SESSION_STORAGE_KEY; }
45
+ get: function () { return chunkI3QZJXQQ_cjs.DEVICE_ID_SESSION_STORAGE_KEY; }
42
46
  });
43
47
  Object.defineProperty(exports, "DeviceIdSchema", {
44
48
  enumerable: true,
45
- get: function () { return chunk5AJFDSMG_cjs.DeviceIdSchema; }
49
+ get: function () { return chunkI3QZJXQQ_cjs.DeviceIdSchema; }
46
50
  });
47
51
  Object.defineProperty(exports, "FFIDAnalyticsProvider", {
48
52
  enumerable: true,
49
- get: function () { return chunk5AJFDSMG_cjs.FFIDAnalyticsProvider; }
53
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDAnalyticsProvider; }
50
54
  });
51
55
  Object.defineProperty(exports, "FFIDConsentCategoriesSchema", {
52
56
  enumerable: true,
53
- get: function () { return chunk5AJFDSMG_cjs.FFIDConsentCategoriesSchema; }
57
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDConsentCategoriesSchema; }
54
58
  });
55
59
  Object.defineProperty(exports, "FFIDConsentCategoryCodeSchema", {
56
60
  enumerable: true,
57
- get: function () { return chunk5AJFDSMG_cjs.FFIDConsentCategoryCodeSchema; }
61
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDConsentCategoryCodeSchema; }
58
62
  });
59
63
  Object.defineProperty(exports, "FFIDConsentCategoryMetadataSchema", {
60
64
  enumerable: true,
61
- get: function () { return chunk5AJFDSMG_cjs.FFIDConsentCategoryMetadataSchema; }
65
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDConsentCategoryMetadataSchema; }
62
66
  });
63
67
  Object.defineProperty(exports, "FFIDConsentContext", {
64
68
  enumerable: true,
65
- get: function () { return chunk5AJFDSMG_cjs.FFIDConsentContext; }
69
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDConsentContext; }
66
70
  });
67
71
  Object.defineProperty(exports, "FFIDConsentError", {
68
72
  enumerable: true,
69
- get: function () { return chunk5AJFDSMG_cjs.FFIDConsentError; }
73
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDConsentError; }
70
74
  });
71
75
  Object.defineProperty(exports, "FFIDConsentMergeStrategySchema", {
72
76
  enumerable: true,
73
- get: function () { return chunk5AJFDSMG_cjs.FFIDConsentMergeStrategySchema; }
77
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDConsentMergeStrategySchema; }
74
78
  });
75
79
  Object.defineProperty(exports, "FFIDConsentMergeWarningSchema", {
76
80
  enumerable: true,
77
- get: function () { return chunk5AJFDSMG_cjs.FFIDConsentMergeWarningSchema; }
81
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDConsentMergeWarningSchema; }
78
82
  });
79
83
  Object.defineProperty(exports, "FFIDConsentSourceSchema", {
80
84
  enumerable: true,
81
- get: function () { return chunk5AJFDSMG_cjs.FFIDConsentSourceSchema; }
85
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDConsentSourceSchema; }
82
86
  });
83
87
  Object.defineProperty(exports, "FFIDConsentStateSchema", {
84
88
  enumerable: true,
85
- get: function () { return chunk5AJFDSMG_cjs.FFIDConsentStateSchema; }
89
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDConsentStateSchema; }
86
90
  });
87
91
  Object.defineProperty(exports, "FFIDConsentUpdateSchema", {
88
92
  enumerable: true,
89
- get: function () { return chunk5AJFDSMG_cjs.FFIDConsentUpdateSchema; }
93
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDConsentUpdateSchema; }
90
94
  });
91
95
  Object.defineProperty(exports, "FFIDCookieBanner", {
92
96
  enumerable: true,
93
- get: function () { return chunk5AJFDSMG_cjs.FFIDCookieBanner; }
97
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDCookieBanner; }
94
98
  });
95
99
  Object.defineProperty(exports, "FFIDCookieLink", {
96
100
  enumerable: true,
97
- get: function () { return chunk5AJFDSMG_cjs.FFIDCookieLink; }
101
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDCookieLink; }
98
102
  });
99
103
  Object.defineProperty(exports, "FFIDCookiePolicySchema", {
100
104
  enumerable: true,
101
- get: function () { return chunk5AJFDSMG_cjs.FFIDCookiePolicySchema; }
105
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDCookiePolicySchema; }
102
106
  });
103
107
  Object.defineProperty(exports, "FFIDCookieSettings", {
104
108
  enumerable: true,
105
- get: function () { return chunk5AJFDSMG_cjs.FFIDCookieSettings; }
109
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDCookieSettings; }
106
110
  });
107
111
  Object.defineProperty(exports, "FFIDInternalConsentSourceSchema", {
108
112
  enumerable: true,
109
- get: function () { return chunk5AJFDSMG_cjs.FFIDInternalConsentSourceSchema; }
113
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDInternalConsentSourceSchema; }
110
114
  });
111
115
  Object.defineProperty(exports, "FFIDPublicConsentSourceSchema", {
112
116
  enumerable: true,
113
- get: function () { return chunk5AJFDSMG_cjs.FFIDPublicConsentSourceSchema; }
117
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDPublicConsentSourceSchema; }
114
118
  });
115
119
  Object.defineProperty(exports, "FFID_CONSENT_ERROR_CODES", {
116
120
  enumerable: true,
117
- get: function () { return chunk5AJFDSMG_cjs.FFID_CONSENT_ERROR_CODES; }
121
+ get: function () { return chunkI3QZJXQQ_cjs.FFID_CONSENT_ERROR_CODES; }
118
122
  });
119
123
  Object.defineProperty(exports, "FFID_CONSENT_NOT_DECIDED_STATE", {
120
124
  enumerable: true,
121
- get: function () { return chunk5AJFDSMG_cjs.FFID_CONSENT_NOT_DECIDED_STATE; }
125
+ get: function () { return chunkI3QZJXQQ_cjs.FFID_CONSENT_NOT_DECIDED_STATE; }
122
126
  });
123
127
  Object.defineProperty(exports, "GetCategoriesWireSchema", {
124
128
  enumerable: true,
125
- get: function () { return chunk5AJFDSMG_cjs.GetCategoriesWireSchema; }
129
+ get: function () { return chunkI3QZJXQQ_cjs.GetCategoriesWireSchema; }
126
130
  });
127
131
  Object.defineProperty(exports, "GetConsentMeWireSchema", {
128
132
  enumerable: true,
129
- get: function () { return chunk5AJFDSMG_cjs.GetConsentMeWireSchema; }
133
+ get: function () { return chunkI3QZJXQQ_cjs.GetConsentMeWireSchema; }
130
134
  });
131
135
  Object.defineProperty(exports, "GetDocumentWireSchema", {
132
136
  enumerable: true,
133
- get: function () { return chunk5AJFDSMG_cjs.GetDocumentWireSchema; }
137
+ get: function () { return chunkI3QZJXQQ_cjs.GetDocumentWireSchema; }
134
138
  });
135
139
  Object.defineProperty(exports, "PostConsentRequestSchema", {
136
140
  enumerable: true,
137
- get: function () { return chunk5AJFDSMG_cjs.PostConsentRequestSchema; }
141
+ get: function () { return chunkI3QZJXQQ_cjs.PostConsentRequestSchema; }
138
142
  });
139
143
  Object.defineProperty(exports, "PostConsentWireSchema", {
140
144
  enumerable: true,
141
- get: function () { return chunk5AJFDSMG_cjs.PostConsentWireSchema; }
145
+ get: function () { return chunkI3QZJXQQ_cjs.PostConsentWireSchema; }
142
146
  });
143
147
  Object.defineProperty(exports, "PostSyncRequestSchema", {
144
148
  enumerable: true,
145
- get: function () { return chunk5AJFDSMG_cjs.PostSyncRequestSchema; }
149
+ get: function () { return chunkI3QZJXQQ_cjs.PostSyncRequestSchema; }
146
150
  });
147
151
  Object.defineProperty(exports, "PostSyncWireSchema", {
148
152
  enumerable: true,
149
- get: function () { return chunk5AJFDSMG_cjs.PostSyncWireSchema; }
153
+ get: function () { return chunkI3QZJXQQ_cjs.PostSyncWireSchema; }
150
154
  });
151
155
  Object.defineProperty(exports, "PostWithdrawWireSchema", {
152
156
  enumerable: true,
153
- get: function () { return chunk5AJFDSMG_cjs.PostWithdrawWireSchema; }
157
+ get: function () { return chunkI3QZJXQQ_cjs.PostWithdrawWireSchema; }
158
+ });
159
+ Object.defineProperty(exports, "clearConsentDismissalTimestamp", {
160
+ enumerable: true,
161
+ get: function () { return chunkI3QZJXQQ_cjs.clearConsentDismissalTimestamp; }
154
162
  });
155
163
  Object.defineProperty(exports, "clearConsentSessionMirror", {
156
164
  enumerable: true,
157
- get: function () { return chunk5AJFDSMG_cjs.clearConsentSessionMirror; }
165
+ get: function () { return chunkI3QZJXQQ_cjs.clearConsentSessionMirror; }
158
166
  });
159
167
  Object.defineProperty(exports, "clearDeviceId", {
160
168
  enumerable: true,
161
- get: function () { return chunk5AJFDSMG_cjs.clearDeviceId; }
169
+ get: function () { return chunkI3QZJXQQ_cjs.clearDeviceId; }
162
170
  });
163
171
  Object.defineProperty(exports, "createConsentClient", {
164
172
  enumerable: true,
165
- get: function () { return chunk5AJFDSMG_cjs.createConsentClient; }
173
+ get: function () { return chunkI3QZJXQQ_cjs.createConsentClient; }
166
174
  });
167
175
  Object.defineProperty(exports, "createGtagBridge", {
168
176
  enumerable: true,
169
- get: function () { return chunk5AJFDSMG_cjs.createGtagBridge; }
177
+ get: function () { return chunkI3QZJXQQ_cjs.createGtagBridge; }
170
178
  });
171
179
  Object.defineProperty(exports, "decodeConsentCookie", {
172
180
  enumerable: true,
173
- get: function () { return chunk5AJFDSMG_cjs.decodeConsentCookie; }
181
+ get: function () { return chunkI3QZJXQQ_cjs.decodeConsentCookie; }
174
182
  });
175
183
  Object.defineProperty(exports, "deleteConsentCookie", {
176
184
  enumerable: true,
177
- get: function () { return chunk5AJFDSMG_cjs.deleteConsentCookie; }
185
+ get: function () { return chunkI3QZJXQQ_cjs.deleteConsentCookie; }
178
186
  });
179
187
  Object.defineProperty(exports, "encodeConsentCookie", {
180
188
  enumerable: true,
181
- get: function () { return chunk5AJFDSMG_cjs.encodeConsentCookie; }
189
+ get: function () { return chunkI3QZJXQQ_cjs.encodeConsentCookie; }
182
190
  });
183
191
  Object.defineProperty(exports, "generateDeviceId", {
184
192
  enumerable: true,
185
- get: function () { return chunk5AJFDSMG_cjs.generateDeviceId; }
193
+ get: function () { return chunkI3QZJXQQ_cjs.generateDeviceId; }
186
194
  });
187
195
  Object.defineProperty(exports, "getOrCreateDeviceId", {
188
196
  enumerable: true,
189
- get: function () { return chunk5AJFDSMG_cjs.getOrCreateDeviceId; }
197
+ get: function () { return chunkI3QZJXQQ_cjs.getOrCreateDeviceId; }
190
198
  });
191
199
  Object.defineProperty(exports, "isUuidV7", {
192
200
  enumerable: true,
193
- get: function () { return chunk5AJFDSMG_cjs.isUuidV7; }
201
+ get: function () { return chunkI3QZJXQQ_cjs.isUuidV7; }
194
202
  });
195
203
  Object.defineProperty(exports, "isValidDeviceId", {
196
204
  enumerable: true,
197
- get: function () { return chunk5AJFDSMG_cjs.isValidDeviceId; }
205
+ get: function () { return chunkI3QZJXQQ_cjs.isValidDeviceId; }
198
206
  });
199
207
  Object.defineProperty(exports, "mapCategoriesToGtagParams", {
200
208
  enumerable: true,
201
- get: function () { return chunk5AJFDSMG_cjs.mapCategoriesToGtagParams; }
209
+ get: function () { return chunkI3QZJXQQ_cjs.mapCategoriesToGtagParams; }
202
210
  });
203
211
  Object.defineProperty(exports, "mapConsentWireToState", {
204
212
  enumerable: true,
205
- get: function () { return chunk5AJFDSMG_cjs.mapConsentWireToState; }
213
+ get: function () { return chunkI3QZJXQQ_cjs.mapConsentWireToState; }
206
214
  });
207
215
  Object.defineProperty(exports, "mapMeWireToState", {
208
216
  enumerable: true,
209
- get: function () { return chunk5AJFDSMG_cjs.mapMeWireToState; }
217
+ get: function () { return chunkI3QZJXQQ_cjs.mapMeWireToState; }
210
218
  });
211
219
  Object.defineProperty(exports, "mapSyncWireToResult", {
212
220
  enumerable: true,
213
- get: function () { return chunk5AJFDSMG_cjs.mapSyncWireToResult; }
221
+ get: function () { return chunkI3QZJXQQ_cjs.mapSyncWireToResult; }
214
222
  });
215
223
  Object.defineProperty(exports, "mapWithdrawWireToState", {
216
224
  enumerable: true,
217
- get: function () { return chunk5AJFDSMG_cjs.mapWithdrawWireToState; }
225
+ get: function () { return chunkI3QZJXQQ_cjs.mapWithdrawWireToState; }
218
226
  });
219
227
  Object.defineProperty(exports, "readConsentCookie", {
220
228
  enumerable: true,
221
- get: function () { return chunk5AJFDSMG_cjs.readConsentCookie; }
229
+ get: function () { return chunkI3QZJXQQ_cjs.readConsentCookie; }
230
+ });
231
+ Object.defineProperty(exports, "readConsentDismissalTimestamp", {
232
+ enumerable: true,
233
+ get: function () { return chunkI3QZJXQQ_cjs.readConsentDismissalTimestamp; }
222
234
  });
223
235
  Object.defineProperty(exports, "readConsentSessionMirror", {
224
236
  enumerable: true,
225
- get: function () { return chunk5AJFDSMG_cjs.readConsentSessionMirror; }
237
+ get: function () { return chunkI3QZJXQQ_cjs.readConsentSessionMirror; }
226
238
  });
227
239
  Object.defineProperty(exports, "useFFIDConsent", {
228
240
  enumerable: true,
229
- get: function () { return chunk5AJFDSMG_cjs.useFFIDConsent; }
241
+ get: function () { return chunkI3QZJXQQ_cjs.useFFIDConsent; }
230
242
  });
231
243
  Object.defineProperty(exports, "useFFIDConsentPreferences", {
232
244
  enumerable: true,
233
- get: function () { return chunk5AJFDSMG_cjs.useFFIDConsentPreferences; }
245
+ get: function () { return chunkI3QZJXQQ_cjs.useFFIDConsentPreferences; }
234
246
  });
235
247
  Object.defineProperty(exports, "writeConsentCookie", {
236
248
  enumerable: true,
237
- get: function () { return chunk5AJFDSMG_cjs.writeConsentCookie; }
249
+ get: function () { return chunkI3QZJXQQ_cjs.writeConsentCookie; }
250
+ });
251
+ Object.defineProperty(exports, "writeConsentDismissalTimestamp", {
252
+ enumerable: true,
253
+ get: function () { return chunkI3QZJXQQ_cjs.writeConsentDismissalTimestamp; }
238
254
  });
239
255
  Object.defineProperty(exports, "writeConsentSessionMirror", {
240
256
  enumerable: true,
241
- get: function () { return chunk5AJFDSMG_cjs.writeConsentSessionMirror; }
257
+ get: function () { return chunkI3QZJXQQ_cjs.writeConsentSessionMirror; }
242
258
  });
@@ -1,5 +1,5 @@
1
- import { F as FFIDConsentResult, a as FFIDConsentState, b as FFIDConsentUpdate, c as FFIDConsentCategories, d as FFIDConsentSyncResult, e as FFIDConsentCategoryMetadata, f as FFIDCookiePolicy, P as PostConsentWire, G as GetConsentMeWire, g as PostSyncWire, h as PostWithdrawWire } from '../FFIDCookieLink-CAKupVSS.cjs';
2
- export { A as ALL_DENIED_EXCEPT_NECESSARY, C as CONSENT_COOKIE_MAX_AGE_SEC, i as CONSENT_COOKIE_NAME, j as CONSENT_SESSION_STORAGE_KEY, k as COOKIE_VERSION, D as DEFAULT_CONSENT_ERROR_MESSAGES, l as DEFAULT_MERGE_WARNING_MESSAGES, m as DeviceIdSchema, n as FFIDAnalyticsProvider, o as FFIDAnalyticsProviderProps, p as FFIDConsentCategoriesSchema, q as FFIDConsentCategoryCode, r as FFIDConsentCategoryCodeSchema, s as FFIDConsentCategoryMetadataSchema, t as FFIDConsentContext, u as FFIDConsentContextValue, v as FFIDConsentError, w as FFIDConsentErrorCode, x as FFIDConsentMergeStrategy, y as FFIDConsentMergeStrategySchema, z as FFIDConsentMergeWarning, B as FFIDConsentMergeWarningSchema, E as FFIDConsentSource, H as FFIDConsentSourceSchema, I as FFIDConsentStateSchema, J as FFIDConsentUpdateSchema, K as FFIDCookieBanner, L as FFIDCookieBannerClassNames, M as FFIDCookieBannerProps, N as FFIDCookieLink, O as FFIDCookieLinkProps, Q as FFIDCookiePolicySchema, R as FFIDCookieSettings, S as FFIDCookieSettingsClassNames, T as FFIDCookieSettingsProps, U as FFIDInternalConsentSource, V as FFIDInternalConsentSourceSchema, W as FFIDPublicConsentSource, X as FFIDPublicConsentSourceSchema, Y as FFID_CONSENT_ERROR_CODES, Z as FFID_CONSENT_NOT_DECIDED_STATE, _ as GetCategoriesWire, $ as GetCategoriesWireSchema, a0 as GetConsentMeWireSchema, a1 as GetDocumentWire, a2 as GetDocumentWireSchema, a3 as GtagBridge, a4 as GtagBridgeOptions, a5 as PostConsentRequest, a6 as PostConsentRequestSchema, a7 as PostConsentWireSchema, a8 as PostSyncRequest, a9 as PostSyncRequestSchema, aa as PostSyncWireSchema, ab as PostWithdrawWireSchema, ac as UseFFIDConsentPreferencesReturn, ad as UseFFIDConsentReturn, ae as clearConsentSessionMirror, af as createGtagBridge, ag as decodeConsentCookie, ah as deleteConsentCookie, ai as encodeConsentCookie, aj as mapCategoriesToGtagParams, ak as readConsentCookie, al as readConsentSessionMirror, am as useFFIDConsent, an as useFFIDConsentPreferences, ao as writeConsentCookie, ap as writeConsentSessionMirror } from '../FFIDCookieLink-CAKupVSS.cjs';
1
+ import { F as FFIDConsentResult, a as FFIDConsentState, b as FFIDConsentUpdate, c as FFIDConsentCategories, d as FFIDConsentSyncResult, e as FFIDConsentCategoryMetadata, f as FFIDCookiePolicy, P as PostConsentWire, G as GetConsentMeWire, g as PostSyncWire, h as PostWithdrawWire } from '../FFIDCookieLink-D37pN-v_.cjs';
2
+ export { A as ALL_DENIED_EXCEPT_NECESSARY, C as CONSENT_COOKIE_MAX_AGE_SEC, i as CONSENT_COOKIE_NAME, j as CONSENT_DISMISSAL_TIMESTAMP_KEY, k as CONSENT_SESSION_STORAGE_KEY, l as COOKIE_VERSION, D as DEFAULT_CONSENT_ERROR_MESSAGES, m as DEFAULT_MERGE_WARNING_MESSAGES, n as DeviceIdSchema, o as FFIDAnalyticsProvider, p as FFIDAnalyticsProviderProps, q as FFIDConsentCategoriesSchema, r as FFIDConsentCategoryCode, s as FFIDConsentCategoryCodeSchema, t as FFIDConsentCategoryMetadataSchema, u as FFIDConsentContext, v as FFIDConsentContextValue, w as FFIDConsentError, x as FFIDConsentErrorCode, y as FFIDConsentMergeStrategy, z as FFIDConsentMergeStrategySchema, B as FFIDConsentMergeWarning, E as FFIDConsentMergeWarningSchema, H as FFIDConsentSource, I as FFIDConsentSourceSchema, J as FFIDConsentStateSchema, K as FFIDConsentUpdateSchema, L as FFIDCookieBanner, M as FFIDCookieBannerClassNames, N as FFIDCookieBannerProps, O as FFIDCookieLink, Q as FFIDCookieLinkProps, R as FFIDCookiePolicySchema, S as FFIDCookieSettings, T as FFIDCookieSettingsClassNames, U as FFIDCookieSettingsProps, V as FFIDInternalConsentSource, W as FFIDInternalConsentSourceSchema, X as FFIDPublicConsentSource, Y as FFIDPublicConsentSourceSchema, Z as FFID_CONSENT_ERROR_CODES, _ as FFID_CONSENT_NOT_DECIDED_STATE, $ as GetCategoriesWire, a0 as GetCategoriesWireSchema, a1 as GetConsentMeWireSchema, a2 as GetDocumentWire, a3 as GetDocumentWireSchema, a4 as GtagBridge, a5 as GtagBridgeOptions, a6 as PostConsentRequest, a7 as PostConsentRequestSchema, a8 as PostConsentWireSchema, a9 as PostSyncRequest, aa as PostSyncRequestSchema, ab as PostSyncWireSchema, ac as PostWithdrawWireSchema, ad as UseFFIDConsentPreferencesReturn, ae as UseFFIDConsentReturn, af as clearConsentDismissalTimestamp, ag as clearConsentSessionMirror, ah as createGtagBridge, ai as decodeConsentCookie, aj as deleteConsentCookie, ak as encodeConsentCookie, al as mapCategoriesToGtagParams, am as readConsentCookie, an as readConsentDismissalTimestamp, ao as readConsentSessionMirror, ap as useFFIDConsent, aq as useFFIDConsentPreferences, ar as writeConsentCookie, as as writeConsentDismissalTimestamp, at as writeConsentSessionMirror } from '../FFIDCookieLink-D37pN-v_.cjs';
3
3
  import 'react';
4
4
  import 'zod';
5
5
 
@@ -1,5 +1,5 @@
1
- import { F as FFIDConsentResult, a as FFIDConsentState, b as FFIDConsentUpdate, c as FFIDConsentCategories, d as FFIDConsentSyncResult, e as FFIDConsentCategoryMetadata, f as FFIDCookiePolicy, P as PostConsentWire, G as GetConsentMeWire, g as PostSyncWire, h as PostWithdrawWire } from '../FFIDCookieLink-CAKupVSS.js';
2
- export { A as ALL_DENIED_EXCEPT_NECESSARY, C as CONSENT_COOKIE_MAX_AGE_SEC, i as CONSENT_COOKIE_NAME, j as CONSENT_SESSION_STORAGE_KEY, k as COOKIE_VERSION, D as DEFAULT_CONSENT_ERROR_MESSAGES, l as DEFAULT_MERGE_WARNING_MESSAGES, m as DeviceIdSchema, n as FFIDAnalyticsProvider, o as FFIDAnalyticsProviderProps, p as FFIDConsentCategoriesSchema, q as FFIDConsentCategoryCode, r as FFIDConsentCategoryCodeSchema, s as FFIDConsentCategoryMetadataSchema, t as FFIDConsentContext, u as FFIDConsentContextValue, v as FFIDConsentError, w as FFIDConsentErrorCode, x as FFIDConsentMergeStrategy, y as FFIDConsentMergeStrategySchema, z as FFIDConsentMergeWarning, B as FFIDConsentMergeWarningSchema, E as FFIDConsentSource, H as FFIDConsentSourceSchema, I as FFIDConsentStateSchema, J as FFIDConsentUpdateSchema, K as FFIDCookieBanner, L as FFIDCookieBannerClassNames, M as FFIDCookieBannerProps, N as FFIDCookieLink, O as FFIDCookieLinkProps, Q as FFIDCookiePolicySchema, R as FFIDCookieSettings, S as FFIDCookieSettingsClassNames, T as FFIDCookieSettingsProps, U as FFIDInternalConsentSource, V as FFIDInternalConsentSourceSchema, W as FFIDPublicConsentSource, X as FFIDPublicConsentSourceSchema, Y as FFID_CONSENT_ERROR_CODES, Z as FFID_CONSENT_NOT_DECIDED_STATE, _ as GetCategoriesWire, $ as GetCategoriesWireSchema, a0 as GetConsentMeWireSchema, a1 as GetDocumentWire, a2 as GetDocumentWireSchema, a3 as GtagBridge, a4 as GtagBridgeOptions, a5 as PostConsentRequest, a6 as PostConsentRequestSchema, a7 as PostConsentWireSchema, a8 as PostSyncRequest, a9 as PostSyncRequestSchema, aa as PostSyncWireSchema, ab as PostWithdrawWireSchema, ac as UseFFIDConsentPreferencesReturn, ad as UseFFIDConsentReturn, ae as clearConsentSessionMirror, af as createGtagBridge, ag as decodeConsentCookie, ah as deleteConsentCookie, ai as encodeConsentCookie, aj as mapCategoriesToGtagParams, ak as readConsentCookie, al as readConsentSessionMirror, am as useFFIDConsent, an as useFFIDConsentPreferences, ao as writeConsentCookie, ap as writeConsentSessionMirror } from '../FFIDCookieLink-CAKupVSS.js';
1
+ import { F as FFIDConsentResult, a as FFIDConsentState, b as FFIDConsentUpdate, c as FFIDConsentCategories, d as FFIDConsentSyncResult, e as FFIDConsentCategoryMetadata, f as FFIDCookiePolicy, P as PostConsentWire, G as GetConsentMeWire, g as PostSyncWire, h as PostWithdrawWire } from '../FFIDCookieLink-D37pN-v_.js';
2
+ export { A as ALL_DENIED_EXCEPT_NECESSARY, C as CONSENT_COOKIE_MAX_AGE_SEC, i as CONSENT_COOKIE_NAME, j as CONSENT_DISMISSAL_TIMESTAMP_KEY, k as CONSENT_SESSION_STORAGE_KEY, l as COOKIE_VERSION, D as DEFAULT_CONSENT_ERROR_MESSAGES, m as DEFAULT_MERGE_WARNING_MESSAGES, n as DeviceIdSchema, o as FFIDAnalyticsProvider, p as FFIDAnalyticsProviderProps, q as FFIDConsentCategoriesSchema, r as FFIDConsentCategoryCode, s as FFIDConsentCategoryCodeSchema, t as FFIDConsentCategoryMetadataSchema, u as FFIDConsentContext, v as FFIDConsentContextValue, w as FFIDConsentError, x as FFIDConsentErrorCode, y as FFIDConsentMergeStrategy, z as FFIDConsentMergeStrategySchema, B as FFIDConsentMergeWarning, E as FFIDConsentMergeWarningSchema, H as FFIDConsentSource, I as FFIDConsentSourceSchema, J as FFIDConsentStateSchema, K as FFIDConsentUpdateSchema, L as FFIDCookieBanner, M as FFIDCookieBannerClassNames, N as FFIDCookieBannerProps, O as FFIDCookieLink, Q as FFIDCookieLinkProps, R as FFIDCookiePolicySchema, S as FFIDCookieSettings, T as FFIDCookieSettingsClassNames, U as FFIDCookieSettingsProps, V as FFIDInternalConsentSource, W as FFIDInternalConsentSourceSchema, X as FFIDPublicConsentSource, Y as FFIDPublicConsentSourceSchema, Z as FFID_CONSENT_ERROR_CODES, _ as FFID_CONSENT_NOT_DECIDED_STATE, $ as GetCategoriesWire, a0 as GetCategoriesWireSchema, a1 as GetConsentMeWireSchema, a2 as GetDocumentWire, a3 as GetDocumentWireSchema, a4 as GtagBridge, a5 as GtagBridgeOptions, a6 as PostConsentRequest, a7 as PostConsentRequestSchema, a8 as PostConsentWireSchema, a9 as PostSyncRequest, aa as PostSyncRequestSchema, ab as PostSyncWireSchema, ac as PostWithdrawWireSchema, ad as UseFFIDConsentPreferencesReturn, ae as UseFFIDConsentReturn, af as clearConsentDismissalTimestamp, ag as clearConsentSessionMirror, ah as createGtagBridge, ai as decodeConsentCookie, aj as deleteConsentCookie, ak as encodeConsentCookie, al as mapCategoriesToGtagParams, am as readConsentCookie, an as readConsentDismissalTimestamp, ao as readConsentSessionMirror, ap as useFFIDConsent, aq as useFFIDConsentPreferences, ar as writeConsentCookie, as as writeConsentDismissalTimestamp, at as writeConsentSessionMirror } from '../FFIDCookieLink-D37pN-v_.js';
3
3
  import 'react';
4
4
  import 'zod';
5
5
 
@@ -1 +1 @@
1
- export { ALL_DENIED_EXCEPT_NECESSARY, CONSENT_COOKIE_MAX_AGE_SEC, CONSENT_COOKIE_NAME, CONSENT_SESSION_STORAGE_KEY, COOKIE_VERSION, DEFAULT_CONSENT_ERROR_MESSAGES, DEFAULT_MERGE_WARNING_MESSAGES, DEVICE_ID_LOCAL_STORAGE_KEY, DEVICE_ID_SESSION_STORAGE_KEY, DeviceIdSchema, FFIDAnalyticsProvider, FFIDConsentCategoriesSchema, FFIDConsentCategoryCodeSchema, FFIDConsentCategoryMetadataSchema, FFIDConsentContext, FFIDConsentError, FFIDConsentMergeStrategySchema, FFIDConsentMergeWarningSchema, FFIDConsentSourceSchema, FFIDConsentStateSchema, FFIDConsentUpdateSchema, FFIDCookieBanner, FFIDCookieLink, FFIDCookiePolicySchema, FFIDCookieSettings, FFIDInternalConsentSourceSchema, FFIDPublicConsentSourceSchema, FFID_CONSENT_ERROR_CODES, FFID_CONSENT_NOT_DECIDED_STATE, GetCategoriesWireSchema, GetConsentMeWireSchema, GetDocumentWireSchema, PostConsentRequestSchema, PostConsentWireSchema, PostSyncRequestSchema, PostSyncWireSchema, PostWithdrawWireSchema, clearConsentSessionMirror, clearDeviceId, createConsentClient, createGtagBridge, decodeConsentCookie, deleteConsentCookie, encodeConsentCookie, generateDeviceId, getOrCreateDeviceId, isUuidV7, isValidDeviceId, mapCategoriesToGtagParams, mapConsentWireToState, mapMeWireToState, mapSyncWireToResult, mapWithdrawWireToState, readConsentCookie, readConsentSessionMirror, useFFIDConsent, useFFIDConsentPreferences, writeConsentCookie, writeConsentSessionMirror } from '../chunk-VVACPX7Q.js';
1
+ export { ALL_DENIED_EXCEPT_NECESSARY, CONSENT_COOKIE_MAX_AGE_SEC, CONSENT_COOKIE_NAME, CONSENT_DISMISSAL_TIMESTAMP_KEY, CONSENT_SESSION_STORAGE_KEY, COOKIE_VERSION, DEFAULT_CONSENT_ERROR_MESSAGES, DEFAULT_MERGE_WARNING_MESSAGES, DEVICE_ID_LOCAL_STORAGE_KEY, DEVICE_ID_SESSION_STORAGE_KEY, DeviceIdSchema, FFIDAnalyticsProvider, FFIDConsentCategoriesSchema, FFIDConsentCategoryCodeSchema, FFIDConsentCategoryMetadataSchema, FFIDConsentContext, FFIDConsentError, FFIDConsentMergeStrategySchema, FFIDConsentMergeWarningSchema, FFIDConsentSourceSchema, FFIDConsentStateSchema, FFIDConsentUpdateSchema, FFIDCookieBanner, FFIDCookieLink, FFIDCookiePolicySchema, FFIDCookieSettings, FFIDInternalConsentSourceSchema, FFIDPublicConsentSourceSchema, FFID_CONSENT_ERROR_CODES, FFID_CONSENT_NOT_DECIDED_STATE, GetCategoriesWireSchema, GetConsentMeWireSchema, GetDocumentWireSchema, PostConsentRequestSchema, PostConsentWireSchema, PostSyncRequestSchema, PostSyncWireSchema, PostWithdrawWireSchema, clearConsentDismissalTimestamp, clearConsentSessionMirror, clearDeviceId, createConsentClient, createGtagBridge, decodeConsentCookie, deleteConsentCookie, encodeConsentCookie, generateDeviceId, getOrCreateDeviceId, isUuidV7, isValidDeviceId, mapCategoriesToGtagParams, mapConsentWireToState, mapMeWireToState, mapSyncWireToResult, mapWithdrawWireToState, readConsentCookie, readConsentDismissalTimestamp, readConsentSessionMirror, useFFIDConsent, useFFIDConsentPreferences, writeConsentCookie, writeConsentDismissalTimestamp, writeConsentSessionMirror } from '../chunk-KSCAUQLP.js';
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunk7IOAHDFM_cjs = require('./chunk-7IOAHDFM.cjs');
4
- var chunk5AJFDSMG_cjs = require('./chunk-5AJFDSMG.cjs');
3
+ var chunk4IIVIB2Q_cjs = require('./chunk-4IIVIB2Q.cjs');
4
+ var chunkI3QZJXQQ_cjs = require('./chunk-I3QZJXQQ.cjs');
5
5
  var react = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
 
@@ -54,8 +54,8 @@ function defaultRedirect(url) {
54
54
  }
55
55
  function useRequireActiveSubscription(options) {
56
56
  const { redirectTo, allowGrace = true, onRedirect } = options;
57
- const { isLoading, error } = chunk7IOAHDFM_cjs.useFFIDContext();
58
- const { effectiveStatus, isBlocked, isGrace } = chunk7IOAHDFM_cjs.useSubscription();
57
+ const { isLoading, error } = chunk4IIVIB2Q_cjs.useFFIDContext();
58
+ const { effectiveStatus, isBlocked, isGrace } = chunk4IIVIB2Q_cjs.useSubscription();
59
59
  const hasFetchError = error !== null && effectiveStatus === null;
60
60
  const shouldRedirect = !isLoading && !hasFetchError && (isBlocked || !allowGrace && isGrace || effectiveStatus === null);
61
61
  react.useEffect(() => {
@@ -76,7 +76,7 @@ function useRequireActiveSubscription(options) {
76
76
  }
77
77
  function withFFIDAuth(Component, options = {}) {
78
78
  const WrappedComponent = (props) => {
79
- const { isLoading, isAuthenticated, login } = chunk7IOAHDFM_cjs.useFFIDContext();
79
+ const { isLoading, isAuthenticated, login } = chunk4IIVIB2Q_cjs.useFFIDContext();
80
80
  const hasRedirected = react.useRef(false);
81
81
  react.useEffect(() => {
82
82
  if (!isLoading && !isAuthenticated && options.redirectToLogin && !hasRedirected.current) {
@@ -105,179 +105,195 @@ var FFID_NEWSLETTER_DISPATCH_MAX_RECIPIENTS = 1e3;
105
105
 
106
106
  Object.defineProperty(exports, "DEFAULT_API_BASE_URL", {
107
107
  enumerable: true,
108
- get: function () { return chunk7IOAHDFM_cjs.DEFAULT_API_BASE_URL; }
108
+ get: function () { return chunk4IIVIB2Q_cjs.DEFAULT_API_BASE_URL; }
109
109
  });
110
110
  Object.defineProperty(exports, "DEFAULT_OAUTH_SCOPES", {
111
111
  enumerable: true,
112
- get: function () { return chunk7IOAHDFM_cjs.DEFAULT_OAUTH_SCOPES; }
112
+ get: function () { return chunk4IIVIB2Q_cjs.DEFAULT_OAUTH_SCOPES; }
113
113
  });
114
114
  Object.defineProperty(exports, "FFIDAnnouncementBadge", {
115
115
  enumerable: true,
116
- get: function () { return chunk7IOAHDFM_cjs.FFIDAnnouncementBadge; }
116
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDAnnouncementBadge; }
117
117
  });
118
118
  Object.defineProperty(exports, "FFIDAnnouncementList", {
119
119
  enumerable: true,
120
- get: function () { return chunk7IOAHDFM_cjs.FFIDAnnouncementList; }
120
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDAnnouncementList; }
121
121
  });
122
122
  Object.defineProperty(exports, "FFIDInquiryForm", {
123
123
  enumerable: true,
124
- get: function () { return chunk7IOAHDFM_cjs.FFIDInquiryForm; }
124
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDInquiryForm; }
125
125
  });
126
126
  Object.defineProperty(exports, "FFIDLoginButton", {
127
127
  enumerable: true,
128
- get: function () { return chunk7IOAHDFM_cjs.FFIDLoginButton; }
128
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDLoginButton; }
129
129
  });
130
130
  Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
131
131
  enumerable: true,
132
- get: function () { return chunk7IOAHDFM_cjs.FFIDOrganizationSwitcher; }
132
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDOrganizationSwitcher; }
133
133
  });
134
134
  Object.defineProperty(exports, "FFIDProvider", {
135
135
  enumerable: true,
136
- get: function () { return chunk7IOAHDFM_cjs.FFIDProvider; }
136
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDProvider; }
137
137
  });
138
138
  Object.defineProperty(exports, "FFIDSDKError", {
139
139
  enumerable: true,
140
- get: function () { return chunk7IOAHDFM_cjs.FFIDSDKError; }
140
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDSDKError; }
141
141
  });
142
142
  Object.defineProperty(exports, "FFIDSubscriptionBadge", {
143
143
  enumerable: true,
144
- get: function () { return chunk7IOAHDFM_cjs.FFIDSubscriptionBadge; }
144
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDSubscriptionBadge; }
145
145
  });
146
146
  Object.defineProperty(exports, "FFIDUserMenu", {
147
147
  enumerable: true,
148
- get: function () { return chunk7IOAHDFM_cjs.FFIDUserMenu; }
148
+ get: function () { return chunk4IIVIB2Q_cjs.FFIDUserMenu; }
149
149
  });
150
150
  Object.defineProperty(exports, "FFID_ANNOUNCEMENTS_ERROR_CODES", {
151
151
  enumerable: true,
152
- get: function () { return chunk7IOAHDFM_cjs.FFID_ANNOUNCEMENTS_ERROR_CODES; }
152
+ get: function () { return chunk4IIVIB2Q_cjs.FFID_ANNOUNCEMENTS_ERROR_CODES; }
153
153
  });
154
154
  Object.defineProperty(exports, "FFID_INQUIRY_CATEGORIES", {
155
155
  enumerable: true,
156
- get: function () { return chunk7IOAHDFM_cjs.FFID_INQUIRY_CATEGORIES; }
156
+ get: function () { return chunk4IIVIB2Q_cjs.FFID_INQUIRY_CATEGORIES; }
157
157
  });
158
158
  Object.defineProperty(exports, "FFID_INQUIRY_CATEGORIES_SITE_2026", {
159
159
  enumerable: true,
160
- get: function () { return chunk7IOAHDFM_cjs.FFID_INQUIRY_CATEGORIES_SITE_2026; }
160
+ get: function () { return chunk4IIVIB2Q_cjs.FFID_INQUIRY_CATEGORIES_SITE_2026; }
161
161
  });
162
162
  Object.defineProperty(exports, "computeEffectiveStatusFromSession", {
163
163
  enumerable: true,
164
- get: function () { return chunk7IOAHDFM_cjs.computeEffectiveStatusFromSession; }
164
+ get: function () { return chunk4IIVIB2Q_cjs.computeEffectiveStatusFromSession; }
165
165
  });
166
166
  Object.defineProperty(exports, "createFFIDAnnouncementsClient", {
167
167
  enumerable: true,
168
- get: function () { return chunk7IOAHDFM_cjs.createFFIDAnnouncementsClient; }
168
+ get: function () { return chunk4IIVIB2Q_cjs.createFFIDAnnouncementsClient; }
169
169
  });
170
170
  Object.defineProperty(exports, "createFFIDClient", {
171
171
  enumerable: true,
172
- get: function () { return chunk7IOAHDFM_cjs.createFFIDClient; }
172
+ get: function () { return chunk4IIVIB2Q_cjs.createFFIDClient; }
173
173
  });
174
174
  Object.defineProperty(exports, "createTokenStore", {
175
175
  enumerable: true,
176
- get: function () { return chunk7IOAHDFM_cjs.createTokenStore; }
176
+ get: function () { return chunk4IIVIB2Q_cjs.createTokenStore; }
177
177
  });
178
178
  Object.defineProperty(exports, "generateCodeChallenge", {
179
179
  enumerable: true,
180
- get: function () { return chunk7IOAHDFM_cjs.generateCodeChallenge; }
180
+ get: function () { return chunk4IIVIB2Q_cjs.generateCodeChallenge; }
181
181
  });
182
182
  Object.defineProperty(exports, "generateCodeVerifier", {
183
183
  enumerable: true,
184
- get: function () { return chunk7IOAHDFM_cjs.generateCodeVerifier; }
184
+ get: function () { return chunk4IIVIB2Q_cjs.generateCodeVerifier; }
185
185
  });
186
186
  Object.defineProperty(exports, "isFFIDInquiryCategorySite2026", {
187
187
  enumerable: true,
188
- get: function () { return chunk7IOAHDFM_cjs.isFFIDInquiryCategorySite2026; }
188
+ get: function () { return chunk4IIVIB2Q_cjs.isFFIDInquiryCategorySite2026; }
189
189
  });
190
190
  Object.defineProperty(exports, "normalizeRedirectUri", {
191
191
  enumerable: true,
192
- get: function () { return chunk7IOAHDFM_cjs.normalizeRedirectUri; }
192
+ get: function () { return chunk4IIVIB2Q_cjs.normalizeRedirectUri; }
193
193
  });
194
194
  Object.defineProperty(exports, "retrieveCodeVerifier", {
195
195
  enumerable: true,
196
- get: function () { return chunk7IOAHDFM_cjs.retrieveCodeVerifier; }
196
+ get: function () { return chunk4IIVIB2Q_cjs.retrieveCodeVerifier; }
197
197
  });
198
198
  Object.defineProperty(exports, "storeCodeVerifier", {
199
199
  enumerable: true,
200
- get: function () { return chunk7IOAHDFM_cjs.storeCodeVerifier; }
200
+ get: function () { return chunk4IIVIB2Q_cjs.storeCodeVerifier; }
201
201
  });
202
202
  Object.defineProperty(exports, "useFFID", {
203
203
  enumerable: true,
204
- get: function () { return chunk7IOAHDFM_cjs.useFFID; }
204
+ get: function () { return chunk4IIVIB2Q_cjs.useFFID; }
205
205
  });
206
206
  Object.defineProperty(exports, "useFFIDAnnouncements", {
207
207
  enumerable: true,
208
- get: function () { return chunk7IOAHDFM_cjs.useFFIDAnnouncements; }
208
+ get: function () { return chunk4IIVIB2Q_cjs.useFFIDAnnouncements; }
209
209
  });
210
210
  Object.defineProperty(exports, "useSubscription", {
211
211
  enumerable: true,
212
- get: function () { return chunk7IOAHDFM_cjs.useSubscription; }
212
+ get: function () { return chunk4IIVIB2Q_cjs.useSubscription; }
213
213
  });
214
214
  Object.defineProperty(exports, "withSubscription", {
215
215
  enumerable: true,
216
- get: function () { return chunk7IOAHDFM_cjs.withSubscription; }
216
+ get: function () { return chunk4IIVIB2Q_cjs.withSubscription; }
217
217
  });
218
218
  Object.defineProperty(exports, "ALL_DENIED_EXCEPT_NECESSARY", {
219
219
  enumerable: true,
220
- get: function () { return chunk5AJFDSMG_cjs.ALL_DENIED_EXCEPT_NECESSARY; }
220
+ get: function () { return chunkI3QZJXQQ_cjs.ALL_DENIED_EXCEPT_NECESSARY; }
221
221
  });
222
222
  Object.defineProperty(exports, "CONSENT_COOKIE_NAME", {
223
223
  enumerable: true,
224
- get: function () { return chunk5AJFDSMG_cjs.CONSENT_COOKIE_NAME; }
224
+ get: function () { return chunkI3QZJXQQ_cjs.CONSENT_COOKIE_NAME; }
225
+ });
226
+ Object.defineProperty(exports, "CONSENT_DISMISSAL_TIMESTAMP_KEY", {
227
+ enumerable: true,
228
+ get: function () { return chunkI3QZJXQQ_cjs.CONSENT_DISMISSAL_TIMESTAMP_KEY; }
225
229
  });
226
230
  Object.defineProperty(exports, "COOKIE_VERSION", {
227
231
  enumerable: true,
228
- get: function () { return chunk5AJFDSMG_cjs.COOKIE_VERSION; }
232
+ get: function () { return chunkI3QZJXQQ_cjs.COOKIE_VERSION; }
229
233
  });
230
234
  Object.defineProperty(exports, "DEFAULT_CONSENT_ERROR_MESSAGES", {
231
235
  enumerable: true,
232
- get: function () { return chunk5AJFDSMG_cjs.DEFAULT_CONSENT_ERROR_MESSAGES; }
236
+ get: function () { return chunkI3QZJXQQ_cjs.DEFAULT_CONSENT_ERROR_MESSAGES; }
233
237
  });
234
238
  Object.defineProperty(exports, "FFIDAnalyticsProvider", {
235
239
  enumerable: true,
236
- get: function () { return chunk5AJFDSMG_cjs.FFIDAnalyticsProvider; }
240
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDAnalyticsProvider; }
237
241
  });
238
242
  Object.defineProperty(exports, "FFIDConsentError", {
239
243
  enumerable: true,
240
- get: function () { return chunk5AJFDSMG_cjs.FFIDConsentError; }
244
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDConsentError; }
241
245
  });
242
246
  Object.defineProperty(exports, "FFIDCookieBanner", {
243
247
  enumerable: true,
244
- get: function () { return chunk5AJFDSMG_cjs.FFIDCookieBanner; }
248
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDCookieBanner; }
245
249
  });
246
250
  Object.defineProperty(exports, "FFIDCookieLink", {
247
251
  enumerable: true,
248
- get: function () { return chunk5AJFDSMG_cjs.FFIDCookieLink; }
252
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDCookieLink; }
249
253
  });
250
254
  Object.defineProperty(exports, "FFIDCookieSettings", {
251
255
  enumerable: true,
252
- get: function () { return chunk5AJFDSMG_cjs.FFIDCookieSettings; }
256
+ get: function () { return chunkI3QZJXQQ_cjs.FFIDCookieSettings; }
253
257
  });
254
258
  Object.defineProperty(exports, "FFID_CONSENT_ERROR_CODES", {
255
259
  enumerable: true,
256
- get: function () { return chunk5AJFDSMG_cjs.FFID_CONSENT_ERROR_CODES; }
260
+ get: function () { return chunkI3QZJXQQ_cjs.FFID_CONSENT_ERROR_CODES; }
261
+ });
262
+ Object.defineProperty(exports, "clearConsentDismissalTimestamp", {
263
+ enumerable: true,
264
+ get: function () { return chunkI3QZJXQQ_cjs.clearConsentDismissalTimestamp; }
257
265
  });
258
266
  Object.defineProperty(exports, "decodeConsentCookie", {
259
267
  enumerable: true,
260
- get: function () { return chunk5AJFDSMG_cjs.decodeConsentCookie; }
268
+ get: function () { return chunkI3QZJXQQ_cjs.decodeConsentCookie; }
261
269
  });
262
270
  Object.defineProperty(exports, "encodeConsentCookie", {
263
271
  enumerable: true,
264
- get: function () { return chunk5AJFDSMG_cjs.encodeConsentCookie; }
272
+ get: function () { return chunkI3QZJXQQ_cjs.encodeConsentCookie; }
265
273
  });
266
274
  Object.defineProperty(exports, "readConsentCookie", {
267
275
  enumerable: true,
268
- get: function () { return chunk5AJFDSMG_cjs.readConsentCookie; }
276
+ get: function () { return chunkI3QZJXQQ_cjs.readConsentCookie; }
277
+ });
278
+ Object.defineProperty(exports, "readConsentDismissalTimestamp", {
279
+ enumerable: true,
280
+ get: function () { return chunkI3QZJXQQ_cjs.readConsentDismissalTimestamp; }
269
281
  });
270
282
  Object.defineProperty(exports, "useFFIDConsent", {
271
283
  enumerable: true,
272
- get: function () { return chunk5AJFDSMG_cjs.useFFIDConsent; }
284
+ get: function () { return chunkI3QZJXQQ_cjs.useFFIDConsent; }
273
285
  });
274
286
  Object.defineProperty(exports, "useFFIDConsentPreferences", {
275
287
  enumerable: true,
276
- get: function () { return chunk5AJFDSMG_cjs.useFFIDConsentPreferences; }
288
+ get: function () { return chunkI3QZJXQQ_cjs.useFFIDConsentPreferences; }
277
289
  });
278
290
  Object.defineProperty(exports, "writeConsentCookie", {
279
291
  enumerable: true,
280
- get: function () { return chunk5AJFDSMG_cjs.writeConsentCookie; }
292
+ get: function () { return chunkI3QZJXQQ_cjs.writeConsentCookie; }
293
+ });
294
+ Object.defineProperty(exports, "writeConsentDismissalTimestamp", {
295
+ enumerable: true,
296
+ get: function () { return chunkI3QZJXQQ_cjs.writeConsentDismissalTimestamp; }
281
297
  });
282
298
  exports.FFID_NEWSLETTER_DISPATCH_MAX_RECIPIENTS = FFID_NEWSLETTER_DISPATCH_MAX_RECIPIENTS;
283
299
  exports.FFID_NEWSLETTER_TYPES = FFID_NEWSLETTER_TYPES;
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { F as FFIDSubscriptionStatus, a as FFIDConfig, b as FFIDApiResponse, c as FFIDSessionResponse, d as FFIDRedirectResult, e as FFIDError, f as FFIDSubscriptionCheckResponse, g as FFIDCheckServiceAccessParams, h as FFIDServiceAccessDecision, i as FFIDListMembersResponse, j as FFIDAddMemberParams, k as FFIDAddMemberResponse, l as FFIDAddMemberRequest, m as FFIDMemberRole, n as FFIDUpdateMemberRoleResponse, o as FFIDRemoveMemberResponse, p as FFIDProfileCallOptions, q as FFIDUserProfile, r as FFIDUpdateUserProfileRequest, s as FFIDAnalyticsConfig, t as FFIDCreateCheckoutParams, u as FFIDCheckoutSessionResponse, v as FFIDCreatePortalParams, w as FFIDPortalSessionResponse, x as FFIDVerifyAccessTokenOptions, y as FFIDOAuthUserInfo, z as FFIDInquiryCreateParams, A as FFIDInquiryCreateResponse, B as FFIDAuthMode, C as FFIDLogger, D as FFIDCacheAdapter, E as FFIDUser, G as FFIDOrganization, H as FFIDSubscription, I as FFIDSubscriptionContextValue, J as EffectiveSubscriptionStatus, K as FFIDAnnouncementsClientConfig, L as ListAnnouncementsOptions, M as FFIDAnnouncementsApiResponse, N as AnnouncementListResponse, O as FFIDAnnouncementsLogger } from './index-CInGR4I9.cjs';
2
2
  export { P as Announcement, Q as AnnouncementStatus, R as AnnouncementType, S as FFIDAnnouncementBadge, T as FFIDAnnouncementList, U as FFIDAnnouncementsError, V as FFIDAnnouncementsErrorCode, W as FFIDAnnouncementsServerResponse, X as FFIDAssignableMemberRole, Y as FFIDCacheConfig, Z as FFIDContextValue, _ as FFIDInquiryCategory, $ as FFIDInquiryCategorySite2026, a0 as FFIDInquiryForm, a1 as FFIDInquiryFormCategoryItem, a2 as FFIDInquiryFormClassNames, a3 as FFIDInquiryFormLegalLayout, a4 as FFIDInquiryFormOrganization, a5 as FFIDInquiryFormPlaceholderContext, a6 as FFIDInquiryFormPrefill, a7 as FFIDInquiryFormProps, a8 as FFIDInquiryFormSubmitData, a9 as FFIDInquiryFormSubmitResult, aa as FFIDJwtClaims, ab as FFIDLoginButton, ac as FFIDMemberStatus, ad as FFIDOAuthTokenResponse, ae as FFIDOAuthUserInfoMemberRole, af as FFIDOAuthUserInfoSubscription, ag as FFIDOrganizationMember, ah as FFIDOrganizationSwitcher, ai as FFIDRedirectErrorCode, aj as FFIDSeatModel, ak as FFIDServiceAccessDenialReason, al as FFIDServiceAccessFailPolicy, am as FFIDSubscriptionBadge, an as FFIDTokenIntrospectionResponse, ao as FFIDUserMenu, ap as FFID_INQUIRY_CATEGORIES, aq as FFID_INQUIRY_CATEGORIES_SITE_2026, ar as UseFFIDAnnouncementsOptions, as as UseFFIDAnnouncementsReturn, at as isFFIDInquiryCategorySite2026, au as useFFIDAnnouncements } from './index-CInGR4I9.cjs';
3
- export { A as ALL_DENIED_EXCEPT_NECESSARY, i as CONSENT_COOKIE_NAME, k as COOKIE_VERSION, D as DEFAULT_CONSENT_ERROR_MESSAGES, n as FFIDAnalyticsProvider, o as FFIDAnalyticsProviderProps, c as FFIDConsentCategories, q as FFIDConsentCategoryCode, e as FFIDConsentCategoryMetadata, v as FFIDConsentError, w as FFIDConsentErrorCode, x as FFIDConsentMergeStrategy, z as FFIDConsentMergeWarning, F as FFIDConsentResult, E as FFIDConsentSource, a as FFIDConsentState, d as FFIDConsentSyncResult, K as FFIDCookieBanner, L as FFIDCookieBannerClassNames, M as FFIDCookieBannerProps, N as FFIDCookieLink, O as FFIDCookieLinkProps, f as FFIDCookiePolicy, R as FFIDCookieSettings, S as FFIDCookieSettingsClassNames, T as FFIDCookieSettingsProps, Y as FFID_CONSENT_ERROR_CODES, ac as UseFFIDConsentPreferencesReturn, ad as UseFFIDConsentReturn, ag as decodeConsentCookie, ai as encodeConsentCookie, ak as readConsentCookie, am as useFFIDConsent, an as useFFIDConsentPreferences, ao as writeConsentCookie } from './FFIDCookieLink-CAKupVSS.cjs';
3
+ export { A as ALL_DENIED_EXCEPT_NECESSARY, i as CONSENT_COOKIE_NAME, j as CONSENT_DISMISSAL_TIMESTAMP_KEY, l as COOKIE_VERSION, D as DEFAULT_CONSENT_ERROR_MESSAGES, o as FFIDAnalyticsProvider, p as FFIDAnalyticsProviderProps, c as FFIDConsentCategories, r as FFIDConsentCategoryCode, e as FFIDConsentCategoryMetadata, w as FFIDConsentError, x as FFIDConsentErrorCode, y as FFIDConsentMergeStrategy, B as FFIDConsentMergeWarning, F as FFIDConsentResult, H as FFIDConsentSource, a as FFIDConsentState, d as FFIDConsentSyncResult, L as FFIDCookieBanner, M as FFIDCookieBannerClassNames, N as FFIDCookieBannerProps, O as FFIDCookieLink, Q as FFIDCookieLinkProps, f as FFIDCookiePolicy, S as FFIDCookieSettings, T as FFIDCookieSettingsClassNames, U as FFIDCookieSettingsProps, Z as FFID_CONSENT_ERROR_CODES, ad as UseFFIDConsentPreferencesReturn, ae as UseFFIDConsentReturn, af as clearConsentDismissalTimestamp, ai as decodeConsentCookie, ak as encodeConsentCookie, am as readConsentCookie, an as readConsentDismissalTimestamp, ap as useFFIDConsent, aq as useFFIDConsentPreferences, ar as writeConsentCookie, as as writeConsentDismissalTimestamp } from './FFIDCookieLink-D37pN-v_.cjs';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import { ReactNode, ComponentType, FC } from 'react';
6
6
  import 'zod';
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { F as FFIDSubscriptionStatus, a as FFIDConfig, b as FFIDApiResponse, c as FFIDSessionResponse, d as FFIDRedirectResult, e as FFIDError, f as FFIDSubscriptionCheckResponse, g as FFIDCheckServiceAccessParams, h as FFIDServiceAccessDecision, i as FFIDListMembersResponse, j as FFIDAddMemberParams, k as FFIDAddMemberResponse, l as FFIDAddMemberRequest, m as FFIDMemberRole, n as FFIDUpdateMemberRoleResponse, o as FFIDRemoveMemberResponse, p as FFIDProfileCallOptions, q as FFIDUserProfile, r as FFIDUpdateUserProfileRequest, s as FFIDAnalyticsConfig, t as FFIDCreateCheckoutParams, u as FFIDCheckoutSessionResponse, v as FFIDCreatePortalParams, w as FFIDPortalSessionResponse, x as FFIDVerifyAccessTokenOptions, y as FFIDOAuthUserInfo, z as FFIDInquiryCreateParams, A as FFIDInquiryCreateResponse, B as FFIDAuthMode, C as FFIDLogger, D as FFIDCacheAdapter, E as FFIDUser, G as FFIDOrganization, H as FFIDSubscription, I as FFIDSubscriptionContextValue, J as EffectiveSubscriptionStatus, K as FFIDAnnouncementsClientConfig, L as ListAnnouncementsOptions, M as FFIDAnnouncementsApiResponse, N as AnnouncementListResponse, O as FFIDAnnouncementsLogger } from './index-CInGR4I9.js';
2
2
  export { P as Announcement, Q as AnnouncementStatus, R as AnnouncementType, S as FFIDAnnouncementBadge, T as FFIDAnnouncementList, U as FFIDAnnouncementsError, V as FFIDAnnouncementsErrorCode, W as FFIDAnnouncementsServerResponse, X as FFIDAssignableMemberRole, Y as FFIDCacheConfig, Z as FFIDContextValue, _ as FFIDInquiryCategory, $ as FFIDInquiryCategorySite2026, a0 as FFIDInquiryForm, a1 as FFIDInquiryFormCategoryItem, a2 as FFIDInquiryFormClassNames, a3 as FFIDInquiryFormLegalLayout, a4 as FFIDInquiryFormOrganization, a5 as FFIDInquiryFormPlaceholderContext, a6 as FFIDInquiryFormPrefill, a7 as FFIDInquiryFormProps, a8 as FFIDInquiryFormSubmitData, a9 as FFIDInquiryFormSubmitResult, aa as FFIDJwtClaims, ab as FFIDLoginButton, ac as FFIDMemberStatus, ad as FFIDOAuthTokenResponse, ae as FFIDOAuthUserInfoMemberRole, af as FFIDOAuthUserInfoSubscription, ag as FFIDOrganizationMember, ah as FFIDOrganizationSwitcher, ai as FFIDRedirectErrorCode, aj as FFIDSeatModel, ak as FFIDServiceAccessDenialReason, al as FFIDServiceAccessFailPolicy, am as FFIDSubscriptionBadge, an as FFIDTokenIntrospectionResponse, ao as FFIDUserMenu, ap as FFID_INQUIRY_CATEGORIES, aq as FFID_INQUIRY_CATEGORIES_SITE_2026, ar as UseFFIDAnnouncementsOptions, as as UseFFIDAnnouncementsReturn, at as isFFIDInquiryCategorySite2026, au as useFFIDAnnouncements } from './index-CInGR4I9.js';
3
- export { A as ALL_DENIED_EXCEPT_NECESSARY, i as CONSENT_COOKIE_NAME, k as COOKIE_VERSION, D as DEFAULT_CONSENT_ERROR_MESSAGES, n as FFIDAnalyticsProvider, o as FFIDAnalyticsProviderProps, c as FFIDConsentCategories, q as FFIDConsentCategoryCode, e as FFIDConsentCategoryMetadata, v as FFIDConsentError, w as FFIDConsentErrorCode, x as FFIDConsentMergeStrategy, z as FFIDConsentMergeWarning, F as FFIDConsentResult, E as FFIDConsentSource, a as FFIDConsentState, d as FFIDConsentSyncResult, K as FFIDCookieBanner, L as FFIDCookieBannerClassNames, M as FFIDCookieBannerProps, N as FFIDCookieLink, O as FFIDCookieLinkProps, f as FFIDCookiePolicy, R as FFIDCookieSettings, S as FFIDCookieSettingsClassNames, T as FFIDCookieSettingsProps, Y as FFID_CONSENT_ERROR_CODES, ac as UseFFIDConsentPreferencesReturn, ad as UseFFIDConsentReturn, ag as decodeConsentCookie, ai as encodeConsentCookie, ak as readConsentCookie, am as useFFIDConsent, an as useFFIDConsentPreferences, ao as writeConsentCookie } from './FFIDCookieLink-CAKupVSS.js';
3
+ export { A as ALL_DENIED_EXCEPT_NECESSARY, i as CONSENT_COOKIE_NAME, j as CONSENT_DISMISSAL_TIMESTAMP_KEY, l as COOKIE_VERSION, D as DEFAULT_CONSENT_ERROR_MESSAGES, o as FFIDAnalyticsProvider, p as FFIDAnalyticsProviderProps, c as FFIDConsentCategories, r as FFIDConsentCategoryCode, e as FFIDConsentCategoryMetadata, w as FFIDConsentError, x as FFIDConsentErrorCode, y as FFIDConsentMergeStrategy, B as FFIDConsentMergeWarning, F as FFIDConsentResult, H as FFIDConsentSource, a as FFIDConsentState, d as FFIDConsentSyncResult, L as FFIDCookieBanner, M as FFIDCookieBannerClassNames, N as FFIDCookieBannerProps, O as FFIDCookieLink, Q as FFIDCookieLinkProps, f as FFIDCookiePolicy, S as FFIDCookieSettings, T as FFIDCookieSettingsClassNames, U as FFIDCookieSettingsProps, Z as FFID_CONSENT_ERROR_CODES, ad as UseFFIDConsentPreferencesReturn, ae as UseFFIDConsentReturn, af as clearConsentDismissalTimestamp, ai as decodeConsentCookie, ak as encodeConsentCookie, am as readConsentCookie, an as readConsentDismissalTimestamp, ap as useFFIDConsent, aq as useFFIDConsentPreferences, ar as writeConsentCookie, as as writeConsentDismissalTimestamp } from './FFIDCookieLink-D37pN-v_.js';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import { ReactNode, ComponentType, FC } from 'react';
6
6
  import 'zod';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import { useFFIDContext, useSubscription } from './chunk-Y4JGEGPS.js';
2
- export { DEFAULT_API_BASE_URL, DEFAULT_OAUTH_SCOPES, FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDInquiryForm, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDProvider, FFIDSDKError, FFIDSubscriptionBadge, FFIDUserMenu, FFID_ANNOUNCEMENTS_ERROR_CODES, FFID_INQUIRY_CATEGORIES, FFID_INQUIRY_CATEGORIES_SITE_2026, computeEffectiveStatusFromSession, createFFIDAnnouncementsClient, createFFIDClient, createTokenStore, generateCodeChallenge, generateCodeVerifier, isFFIDInquiryCategorySite2026, normalizeRedirectUri, retrieveCodeVerifier, storeCodeVerifier, useFFID, useFFIDAnnouncements, useSubscription, withSubscription } from './chunk-Y4JGEGPS.js';
3
- export { ALL_DENIED_EXCEPT_NECESSARY, CONSENT_COOKIE_NAME, COOKIE_VERSION, DEFAULT_CONSENT_ERROR_MESSAGES, FFIDAnalyticsProvider, FFIDConsentError, FFIDCookieBanner, FFIDCookieLink, FFIDCookieSettings, FFID_CONSENT_ERROR_CODES, decodeConsentCookie, encodeConsentCookie, readConsentCookie, useFFIDConsent, useFFIDConsentPreferences, writeConsentCookie } from './chunk-VVACPX7Q.js';
1
+ import { useFFIDContext, useSubscription } from './chunk-FACWGQHL.js';
2
+ export { DEFAULT_API_BASE_URL, DEFAULT_OAUTH_SCOPES, FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDInquiryForm, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDProvider, FFIDSDKError, FFIDSubscriptionBadge, FFIDUserMenu, FFID_ANNOUNCEMENTS_ERROR_CODES, FFID_INQUIRY_CATEGORIES, FFID_INQUIRY_CATEGORIES_SITE_2026, computeEffectiveStatusFromSession, createFFIDAnnouncementsClient, createFFIDClient, createTokenStore, generateCodeChallenge, generateCodeVerifier, isFFIDInquiryCategorySite2026, normalizeRedirectUri, retrieveCodeVerifier, storeCodeVerifier, useFFID, useFFIDAnnouncements, useSubscription, withSubscription } from './chunk-FACWGQHL.js';
3
+ export { ALL_DENIED_EXCEPT_NECESSARY, CONSENT_COOKIE_NAME, CONSENT_DISMISSAL_TIMESTAMP_KEY, COOKIE_VERSION, DEFAULT_CONSENT_ERROR_MESSAGES, FFIDAnalyticsProvider, FFIDConsentError, FFIDCookieBanner, FFIDCookieLink, FFIDCookieSettings, FFID_CONSENT_ERROR_CODES, clearConsentDismissalTimestamp, decodeConsentCookie, encodeConsentCookie, readConsentCookie, readConsentDismissalTimestamp, useFFIDConsent, useFFIDConsentPreferences, writeConsentCookie, writeConsentDismissalTimestamp } from './chunk-KSCAUQLP.js';
4
4
  import { useEffect, useRef } from 'react';
5
5
  import { jsx, Fragment } from 'react/jsx-runtime';
6
6
 
@@ -835,7 +835,7 @@ function createProfileMethods(deps) {
835
835
  }
836
836
 
837
837
  // src/client/version-check.ts
838
- var SDK_VERSION = "5.1.0";
838
+ var SDK_VERSION = "5.2.0";
839
839
  var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
840
840
  var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
841
841
  function sdkHeaders() {
@@ -834,7 +834,7 @@ function createProfileMethods(deps) {
834
834
  }
835
835
 
836
836
  // src/client/version-check.ts
837
- var SDK_VERSION = "5.1.0";
837
+ var SDK_VERSION = "5.2.0";
838
838
  var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
839
839
  var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
840
840
  function sdkHeaders() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feelflow/ffid-sdk",
3
- "version": "5.1.0",
3
+ "version": "5.2.0",
4
4
  "description": "FeelFlow ID Platform SDK for React/Next.js applications",
5
5
  "keywords": [
6
6
  "feelflow",