@feelflow/ffid-sdk 5.25.0 → 5.28.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.
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkZFKXOTFF_cjs = require('./chunk-ZFKXOTFF.cjs');
3
+ var chunkS5FV6H2U_cjs = require('./chunk-S5FV6H2U.cjs');
4
4
  var chunkH5O2CCAY_cjs = require('./chunk-H5O2CCAY.cjs');
5
5
  var react = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -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 } = chunkZFKXOTFF_cjs.useFFIDContext();
58
- const { effectiveStatus, isBlocked, isGrace } = chunkZFKXOTFF_cjs.useSubscription();
57
+ const { isLoading, error } = chunkS5FV6H2U_cjs.useFFIDContext();
58
+ const { effectiveStatus, isBlocked, isGrace } = chunkS5FV6H2U_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 } = chunkZFKXOTFF_cjs.useFFIDContext();
79
+ const { isLoading, isAuthenticated, login } = chunkS5FV6H2U_cjs.useFFIDContext();
80
80
  const hasRedirected = react.useRef(false);
81
81
  react.useEffect(() => {
82
82
  if (!isLoading && !isAuthenticated && options.redirectToLogin && !hasRedirected.current) {
@@ -105,155 +105,219 @@ var FFID_NEWSLETTER_DISPATCH_MAX_RECIPIENTS = 1e3;
105
105
 
106
106
  Object.defineProperty(exports, "ACCESS_GRANTING_EFFECTIVE_STATUSES", {
107
107
  enumerable: true,
108
- get: function () { return chunkZFKXOTFF_cjs.ACCESS_GRANTING_EFFECTIVE_STATUSES; }
108
+ get: function () { return chunkS5FV6H2U_cjs.ACCESS_GRANTING_EFFECTIVE_STATUSES; }
109
109
  });
110
110
  Object.defineProperty(exports, "BLOCKING_EFFECTIVE_STATUSES", {
111
111
  enumerable: true,
112
- get: function () { return chunkZFKXOTFF_cjs.BLOCKING_EFFECTIVE_STATUSES; }
112
+ get: function () { return chunkS5FV6H2U_cjs.BLOCKING_EFFECTIVE_STATUSES; }
113
+ });
114
+ Object.defineProperty(exports, "CATALOG_HASH_PATTERN", {
115
+ enumerable: true,
116
+ get: function () { return chunkS5FV6H2U_cjs.CATALOG_HASH_PATTERN; }
113
117
  });
114
118
  Object.defineProperty(exports, "DEFAULT_API_BASE_URL", {
115
119
  enumerable: true,
116
- get: function () { return chunkZFKXOTFF_cjs.DEFAULT_API_BASE_URL; }
120
+ get: function () { return chunkS5FV6H2U_cjs.DEFAULT_API_BASE_URL; }
117
121
  });
118
122
  Object.defineProperty(exports, "DEFAULT_OAUTH_SCOPES", {
119
123
  enumerable: true,
120
- get: function () { return chunkZFKXOTFF_cjs.DEFAULT_OAUTH_SCOPES; }
124
+ get: function () { return chunkS5FV6H2U_cjs.DEFAULT_OAUTH_SCOPES; }
121
125
  });
122
126
  Object.defineProperty(exports, "EFFECTIVE_SUBSCRIPTION_STATUSES", {
123
127
  enumerable: true,
124
- get: function () { return chunkZFKXOTFF_cjs.EFFECTIVE_SUBSCRIPTION_STATUSES; }
128
+ get: function () { return chunkS5FV6H2U_cjs.EFFECTIVE_SUBSCRIPTION_STATUSES; }
125
129
  });
126
130
  Object.defineProperty(exports, "FFIDAnnouncementBadge", {
127
131
  enumerable: true,
128
- get: function () { return chunkZFKXOTFF_cjs.FFIDAnnouncementBadge; }
132
+ get: function () { return chunkS5FV6H2U_cjs.FFIDAnnouncementBadge; }
129
133
  });
130
134
  Object.defineProperty(exports, "FFIDAnnouncementList", {
131
135
  enumerable: true,
132
- get: function () { return chunkZFKXOTFF_cjs.FFIDAnnouncementList; }
136
+ get: function () { return chunkS5FV6H2U_cjs.FFIDAnnouncementList; }
137
+ });
138
+ Object.defineProperty(exports, "FFIDCatalogHashError", {
139
+ enumerable: true,
140
+ get: function () { return chunkS5FV6H2U_cjs.FFIDCatalogHashError; }
133
141
  });
134
142
  Object.defineProperty(exports, "FFIDInquiryForm", {
135
143
  enumerable: true,
136
- get: function () { return chunkZFKXOTFF_cjs.FFIDInquiryForm; }
144
+ get: function () { return chunkS5FV6H2U_cjs.FFIDInquiryForm; }
137
145
  });
138
146
  Object.defineProperty(exports, "FFIDLoginButton", {
139
147
  enumerable: true,
140
- get: function () { return chunkZFKXOTFF_cjs.FFIDLoginButton; }
148
+ get: function () { return chunkS5FV6H2U_cjs.FFIDLoginButton; }
141
149
  });
142
150
  Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
143
151
  enumerable: true,
144
- get: function () { return chunkZFKXOTFF_cjs.FFIDOrganizationSwitcher; }
152
+ get: function () { return chunkS5FV6H2U_cjs.FFIDOrganizationSwitcher; }
145
153
  });
146
154
  Object.defineProperty(exports, "FFIDProvider", {
147
155
  enumerable: true,
148
- get: function () { return chunkZFKXOTFF_cjs.FFIDProvider; }
156
+ get: function () { return chunkS5FV6H2U_cjs.FFIDProvider; }
149
157
  });
150
158
  Object.defineProperty(exports, "FFIDSDKError", {
151
159
  enumerable: true,
152
- get: function () { return chunkZFKXOTFF_cjs.FFIDSDKError; }
160
+ get: function () { return chunkS5FV6H2U_cjs.FFIDSDKError; }
153
161
  });
154
162
  Object.defineProperty(exports, "FFIDSubscriptionBadge", {
155
163
  enumerable: true,
156
- get: function () { return chunkZFKXOTFF_cjs.FFIDSubscriptionBadge; }
164
+ get: function () { return chunkS5FV6H2U_cjs.FFIDSubscriptionBadge; }
157
165
  });
158
166
  Object.defineProperty(exports, "FFIDUserMenu", {
159
167
  enumerable: true,
160
- get: function () { return chunkZFKXOTFF_cjs.FFIDUserMenu; }
168
+ get: function () { return chunkS5FV6H2U_cjs.FFIDUserMenu; }
161
169
  });
162
170
  Object.defineProperty(exports, "FFID_ANNOUNCEMENTS_ERROR_CODES", {
163
171
  enumerable: true,
164
- get: function () { return chunkZFKXOTFF_cjs.FFID_ANNOUNCEMENTS_ERROR_CODES; }
172
+ get: function () { return chunkS5FV6H2U_cjs.FFID_ANNOUNCEMENTS_ERROR_CODES; }
173
+ });
174
+ Object.defineProperty(exports, "FFID_CATALOG_ENVIRONMENTS", {
175
+ enumerable: true,
176
+ get: function () { return chunkS5FV6H2U_cjs.FFID_CATALOG_ENVIRONMENTS; }
177
+ });
178
+ Object.defineProperty(exports, "FFID_CATALOG_PUBLICATION_STATUSES", {
179
+ enumerable: true,
180
+ get: function () { return chunkS5FV6H2U_cjs.FFID_CATALOG_PUBLICATION_STATUSES; }
165
181
  });
166
182
  Object.defineProperty(exports, "FFID_ERROR_CODES", {
167
183
  enumerable: true,
168
- get: function () { return chunkZFKXOTFF_cjs.FFID_ERROR_CODES; }
184
+ get: function () { return chunkS5FV6H2U_cjs.FFID_ERROR_CODES; }
185
+ });
186
+ Object.defineProperty(exports, "FFID_INQUIRY_ACQUISITION_SOURCES", {
187
+ enumerable: true,
188
+ get: function () { return chunkS5FV6H2U_cjs.FFID_INQUIRY_ACQUISITION_SOURCES; }
169
189
  });
170
190
  Object.defineProperty(exports, "FFID_INQUIRY_CATEGORIES", {
171
191
  enumerable: true,
172
- get: function () { return chunkZFKXOTFF_cjs.FFID_INQUIRY_CATEGORIES; }
192
+ get: function () { return chunkS5FV6H2U_cjs.FFID_INQUIRY_CATEGORIES; }
173
193
  });
174
194
  Object.defineProperty(exports, "FFID_INQUIRY_CATEGORIES_SITE_2026", {
175
195
  enumerable: true,
176
- get: function () { return chunkZFKXOTFF_cjs.FFID_INQUIRY_CATEGORIES_SITE_2026; }
196
+ get: function () { return chunkS5FV6H2U_cjs.FFID_INQUIRY_CATEGORIES_SITE_2026; }
197
+ });
198
+ Object.defineProperty(exports, "canonicalizeCatalogValue", {
199
+ enumerable: true,
200
+ get: function () { return chunkS5FV6H2U_cjs.canonicalizeCatalogValue; }
177
201
  });
178
202
  Object.defineProperty(exports, "clearState", {
179
203
  enumerable: true,
180
- get: function () { return chunkZFKXOTFF_cjs.cleanupStateStorage; }
204
+ get: function () { return chunkS5FV6H2U_cjs.cleanupStateStorage; }
181
205
  });
182
206
  Object.defineProperty(exports, "computeEffectiveStatusFromSession", {
183
207
  enumerable: true,
184
- get: function () { return chunkZFKXOTFF_cjs.computeEffectiveStatusFromSession; }
208
+ get: function () { return chunkS5FV6H2U_cjs.computeEffectiveStatusFromSession; }
209
+ });
210
+ Object.defineProperty(exports, "computeFFIDCheckoutCopyHash", {
211
+ enumerable: true,
212
+ get: function () { return chunkS5FV6H2U_cjs.computeFFIDCheckoutCopyHash; }
213
+ });
214
+ Object.defineProperty(exports, "computeLegalDisclosureHash", {
215
+ enumerable: true,
216
+ get: function () { return chunkS5FV6H2U_cjs.computeLegalDisclosureHash; }
217
+ });
218
+ Object.defineProperty(exports, "computePaymentConfigurationHash", {
219
+ enumerable: true,
220
+ get: function () { return chunkS5FV6H2U_cjs.computePaymentConfigurationHash; }
221
+ });
222
+ Object.defineProperty(exports, "computePraxisCopyHash", {
223
+ enumerable: true,
224
+ get: function () { return chunkS5FV6H2U_cjs.computePraxisCopyHash; }
225
+ });
226
+ Object.defineProperty(exports, "computeScopeHash", {
227
+ enumerable: true,
228
+ get: function () { return chunkS5FV6H2U_cjs.computeScopeHash; }
229
+ });
230
+ Object.defineProperty(exports, "computeTaxConfigurationHash", {
231
+ enumerable: true,
232
+ get: function () { return chunkS5FV6H2U_cjs.computeTaxConfigurationHash; }
185
233
  });
186
234
  Object.defineProperty(exports, "createFFIDAnnouncementsClient", {
187
235
  enumerable: true,
188
- get: function () { return chunkZFKXOTFF_cjs.createFFIDAnnouncementsClient; }
236
+ get: function () { return chunkS5FV6H2U_cjs.createFFIDAnnouncementsClient; }
189
237
  });
190
238
  Object.defineProperty(exports, "createFFIDClient", {
191
239
  enumerable: true,
192
- get: function () { return chunkZFKXOTFF_cjs.createFFIDClient; }
240
+ get: function () { return chunkS5FV6H2U_cjs.createFFIDClient; }
193
241
  });
194
242
  Object.defineProperty(exports, "createTokenStore", {
195
243
  enumerable: true,
196
- get: function () { return chunkZFKXOTFF_cjs.createTokenStore; }
244
+ get: function () { return chunkS5FV6H2U_cjs.createTokenStore; }
197
245
  });
198
246
  Object.defineProperty(exports, "generateCodeChallenge", {
199
247
  enumerable: true,
200
- get: function () { return chunkZFKXOTFF_cjs.generateCodeChallenge; }
248
+ get: function () { return chunkS5FV6H2U_cjs.generateCodeChallenge; }
201
249
  });
202
250
  Object.defineProperty(exports, "generateCodeVerifier", {
203
251
  enumerable: true,
204
- get: function () { return chunkZFKXOTFF_cjs.generateCodeVerifier; }
252
+ get: function () { return chunkS5FV6H2U_cjs.generateCodeVerifier; }
205
253
  });
206
254
  Object.defineProperty(exports, "handleRedirectCallback", {
207
255
  enumerable: true,
208
- get: function () { return chunkZFKXOTFF_cjs.handleRedirectCallback; }
256
+ get: function () { return chunkS5FV6H2U_cjs.handleRedirectCallback; }
209
257
  });
210
258
  Object.defineProperty(exports, "hasAccessFromUserinfo", {
211
259
  enumerable: true,
212
- get: function () { return chunkZFKXOTFF_cjs.hasAccessFromUserinfo; }
260
+ get: function () { return chunkS5FV6H2U_cjs.hasAccessFromUserinfo; }
261
+ });
262
+ Object.defineProperty(exports, "hashCanonicalJson", {
263
+ enumerable: true,
264
+ get: function () { return chunkS5FV6H2U_cjs.hashCanonicalJson; }
213
265
  });
214
266
  Object.defineProperty(exports, "isBlockedFromUserinfo", {
215
267
  enumerable: true,
216
- get: function () { return chunkZFKXOTFF_cjs.isBlockedFromUserinfo; }
268
+ get: function () { return chunkS5FV6H2U_cjs.isBlockedFromUserinfo; }
269
+ });
270
+ Object.defineProperty(exports, "isFFIDInquiryAcquisitionSource", {
271
+ enumerable: true,
272
+ get: function () { return chunkS5FV6H2U_cjs.isFFIDInquiryAcquisitionSource; }
217
273
  });
218
274
  Object.defineProperty(exports, "isFFIDInquiryCategorySite2026", {
219
275
  enumerable: true,
220
- get: function () { return chunkZFKXOTFF_cjs.isFFIDInquiryCategorySite2026; }
276
+ get: function () { return chunkS5FV6H2U_cjs.isFFIDInquiryCategorySite2026; }
221
277
  });
222
278
  Object.defineProperty(exports, "normalizeRedirectUri", {
223
279
  enumerable: true,
224
- get: function () { return chunkZFKXOTFF_cjs.normalizeRedirectUri; }
280
+ get: function () { return chunkS5FV6H2U_cjs.normalizeRedirectUri; }
225
281
  });
226
282
  Object.defineProperty(exports, "retrieveCodeVerifier", {
227
283
  enumerable: true,
228
- get: function () { return chunkZFKXOTFF_cjs.retrieveCodeVerifier; }
284
+ get: function () { return chunkS5FV6H2U_cjs.retrieveCodeVerifier; }
229
285
  });
230
286
  Object.defineProperty(exports, "retrieveState", {
231
287
  enumerable: true,
232
- get: function () { return chunkZFKXOTFF_cjs.retrieveState; }
288
+ get: function () { return chunkS5FV6H2U_cjs.retrieveState; }
289
+ });
290
+ Object.defineProperty(exports, "sha256Hex", {
291
+ enumerable: true,
292
+ get: function () { return chunkS5FV6H2U_cjs.sha256Hex; }
233
293
  });
234
294
  Object.defineProperty(exports, "storeCodeVerifier", {
235
295
  enumerable: true,
236
- get: function () { return chunkZFKXOTFF_cjs.storeCodeVerifier; }
296
+ get: function () { return chunkS5FV6H2U_cjs.storeCodeVerifier; }
237
297
  });
238
298
  Object.defineProperty(exports, "storeState", {
239
299
  enumerable: true,
240
- get: function () { return chunkZFKXOTFF_cjs.storeState; }
300
+ get: function () { return chunkS5FV6H2U_cjs.storeState; }
241
301
  });
242
302
  Object.defineProperty(exports, "useFFID", {
243
303
  enumerable: true,
244
- get: function () { return chunkZFKXOTFF_cjs.useFFID; }
304
+ get: function () { return chunkS5FV6H2U_cjs.useFFID; }
245
305
  });
246
306
  Object.defineProperty(exports, "useFFIDAnnouncements", {
247
307
  enumerable: true,
248
- get: function () { return chunkZFKXOTFF_cjs.useFFIDAnnouncements; }
308
+ get: function () { return chunkS5FV6H2U_cjs.useFFIDAnnouncements; }
249
309
  });
250
310
  Object.defineProperty(exports, "useSubscription", {
251
311
  enumerable: true,
252
- get: function () { return chunkZFKXOTFF_cjs.useSubscription; }
312
+ get: function () { return chunkS5FV6H2U_cjs.useSubscription; }
313
+ });
314
+ Object.defineProperty(exports, "validatePublishedCatalog", {
315
+ enumerable: true,
316
+ get: function () { return chunkS5FV6H2U_cjs.validatePublishedCatalog; }
253
317
  });
254
318
  Object.defineProperty(exports, "withSubscription", {
255
319
  enumerable: true,
256
- get: function () { return chunkZFKXOTFF_cjs.withSubscription; }
320
+ get: function () { return chunkS5FV6H2U_cjs.withSubscription; }
257
321
  });
258
322
  Object.defineProperty(exports, "ALL_DENIED_EXCEPT_NECESSARY", {
259
323
  enumerable: true,
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { F as FFIDSubscriptionStatus, a as FFIDOAuthUserInfoSubscription, b as FFIDPrompt, c as FFIDConfig, d as FFIDApiResponse, e as FFIDSessionResponse, f as FFIDSignOutResult, g as FFIDError, h as FFIDSubscriptionCheckResponse, i as FFIDCheckServiceAccessParams, j as FFIDServiceAccessDecision, k as FFIDAnalyticsConfig, l as FFIDVerifyAccessTokenOptions, m as FFIDOAuthUserInfo, n as FFIDInquiryCreateParams, o as FFIDInquiryCreateResponse, T as TokenStore, p as FFIDAuthMode, q as FFIDLogger, r as FFIDCacheAdapter, s as FFIDUser, t as FFIDOrganization, u as FFIDSubscription, v as FFIDSubscriptionContextValue, E as EffectiveSubscriptionStatus, w as FFIDAnnouncementsClientConfig, L as ListAnnouncementsOptions, x as FFIDAnnouncementsApiResponse, A as AnnouncementListResponse, y as FFIDAnnouncementsLogger } from './index-Dd6CMIBd.cjs';
2
- export { z as Announcement, B as AnnouncementStatus, C as AnnouncementType, D as EFFECTIVE_SUBSCRIPTION_STATUSES, G as FFIDAnnouncementBadge, H as FFIDAnnouncementList, I as FFIDAnnouncementsError, J as FFIDAnnouncementsErrorCode, K as FFIDAnnouncementsServerResponse, M as FFIDApiResponseMeta, N as FFIDCacheConfig, O as FFIDContextValue, P as FFIDInquiryCategory, Q as FFIDInquiryCategorySite2026, R as FFIDInquiryForm, S as FFIDInquiryFormCategoryItem, U as FFIDInquiryFormClassNames, V as FFIDInquiryFormLegalLayout, W as FFIDInquiryFormOrganization, X as FFIDInquiryFormPlaceholderContext, Y as FFIDInquiryFormPrefill, Z as FFIDInquiryFormProps, _ as FFIDInquiryFormSubmitData, $ as FFIDInquiryFormSubmitResult, a0 as FFIDJwtClaims, a1 as FFIDLoginButton, a2 as FFIDOAuthUserInfoMemberRole, a3 as FFIDOrganizationSwitcher, a4 as FFIDSeatModel, a5 as FFIDServiceAccessDenialReason, a6 as FFIDServiceAccessFailPolicy, a7 as FFIDSubscriptionBadge, a8 as FFIDUserMenu, a9 as FFID_INQUIRY_CATEGORIES, aa as FFID_INQUIRY_CATEGORIES_SITE_2026, ab as TokenData, ac as UseFFIDAnnouncementsOptions, ad as UseFFIDAnnouncementsReturn, ae as createTokenStore, af as isFFIDInquiryCategorySite2026, ag as useFFIDAnnouncements } from './index-Dd6CMIBd.cjs';
1
+ import { F as FFIDSubscriptionStatus, a as FFIDOAuthUserInfoSubscription, b as FFIDPrompt, c as FFIDConfig, d as FFIDApiResponse, e as FFIDSessionResponse, f as FFIDSignOutResult, g as FFIDError, h as FFIDSubscriptionCheckResponse, i as FFIDCheckServiceAccessParams, j as FFIDServiceAccessDecision, k as FFIDAnalyticsConfig, l as FFIDVerifyAccessTokenOptions, m as FFIDOAuthUserInfo, n as FFIDInquiryCreateParams, o as FFIDInquiryCreateResponse, T as TokenStore, p as FFIDAuthMode, q as FFIDLogger, r as FFIDCacheAdapter, s as FFIDUser, t as FFIDOrganization, u as FFIDSubscription, v as FFIDSubscriptionContextValue, E as EffectiveSubscriptionStatus, w as FFIDAnnouncementsClientConfig, L as ListAnnouncementsOptions, x as FFIDAnnouncementsApiResponse, A as AnnouncementListResponse, y as FFIDAnnouncementsLogger } from './index-_-MqJCN3.cjs';
2
+ export { z as Announcement, B as AnnouncementStatus, C as AnnouncementType, D as EFFECTIVE_SUBSCRIPTION_STATUSES, G as FFIDAnnouncementBadge, H as FFIDAnnouncementList, I as FFIDAnnouncementsError, J as FFIDAnnouncementsErrorCode, K as FFIDAnnouncementsServerResponse, M as FFIDApiResponseMeta, N as FFIDCacheConfig, O as FFIDContextValue, P as FFIDInquiryAcquisitionSource, Q as FFIDInquiryCategory, R as FFIDInquiryCategorySite2026, S as FFIDInquiryForm, U as FFIDInquiryFormCategoryItem, V as FFIDInquiryFormClassNames, W as FFIDInquiryFormLegalLayout, X as FFIDInquiryFormOrganization, Y as FFIDInquiryFormPlaceholderContext, Z as FFIDInquiryFormPrefill, _ as FFIDInquiryFormProps, $ as FFIDInquiryFormSubmitData, a0 as FFIDInquiryFormSubmitResult, a1 as FFIDJwtClaims, a2 as FFIDLoginButton, a3 as FFIDOAuthUserInfoMemberRole, a4 as FFIDOrganizationSwitcher, a5 as FFIDSeatAssignmentClaim, a6 as FFIDSeatAssignmentStatus, a7 as FFIDSeatModel, a8 as FFIDServiceAccessDenialReason, a9 as FFIDServiceAccessFailPolicy, aa as FFIDSubscriptionBadge, ab as FFIDUserMenu, ac as FFID_INQUIRY_ACQUISITION_SOURCES, ad as FFID_INQUIRY_CATEGORIES, ae as FFID_INQUIRY_CATEGORIES_SITE_2026, af as TokenData, ag as UseFFIDAnnouncementsOptions, ah as UseFFIDAnnouncementsReturn, ai as createTokenStore, aj as isFFIDInquiryAcquisitionSource, ak as isFFIDInquiryCategorySite2026, al as useFFIDAnnouncements } from './index-_-MqJCN3.cjs';
3
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, E as FFIDConsentMergeWarningEvent, F as FFIDConsentResult, I as FFIDConsentSource, a as FFIDConsentState, d as FFIDConsentSyncResult, M as FFIDCookieBanner, N as FFIDCookieBannerClassNames, O as FFIDCookieBannerProps, Q as FFIDCookieLink, R as FFIDCookieLinkProps, f as FFIDCookiePolicy, T as FFIDCookieSettings, U as FFIDCookieSettingsClassNames, V as FFIDCookieSettingsProps, _ as FFID_CONSENT_ERROR_CODES, ae as UseFFIDConsentPreferencesReturn, af as UseFFIDConsentReturn, ag as clearConsentDismissalTimestamp, aj as decodeConsentCookie, al as encodeConsentCookie, an as readConsentCookie, ao as readConsentDismissalTimestamp, aq as useFFIDConsent, ar as useFFIDConsentPreferences, as as writeConsentCookie, at as writeConsentDismissalTimestamp } from './FFIDCookieLink-BJgVcJyw.cjs';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import { ReactNode, ComponentType, FC } from 'react';
@@ -1249,6 +1249,11 @@ interface FFIDTokenIntrospectionResponse {
1249
1249
  organization_id: string | null;
1250
1250
  organization_name?: string | null;
1251
1251
  has_seat_assignment?: boolean;
1252
+ seat_assignment?: {
1253
+ organization_id?: unknown;
1254
+ subscription_id?: unknown;
1255
+ status?: unknown;
1256
+ };
1252
1257
  /**
1253
1258
  * Optional for backward compat with older FFID (< #4333), and omitted when
1254
1259
  * the service API key has `token:introspect` without `subscription:read`.
@@ -1257,6 +1262,107 @@ interface FFIDTokenIntrospectionResponse {
1257
1262
  };
1258
1263
  }
1259
1264
 
1265
+ /** Deployment environments a catalog publication can apply to (single source) */
1266
+ declare const FFID_CATALOG_ENVIRONMENTS: readonly ["staging", "production"];
1267
+ /** Deployment environment a catalog publication applies to */
1268
+ type FFIDCatalogEnvironment = (typeof FFID_CATALOG_ENVIRONMENTS)[number];
1269
+ /**
1270
+ * Tax behavior of a published price.
1271
+ * `inclusive`: displayed price contains Stripe-calculated tax (Personal/Pro).
1272
+ * `exclusive`: tax is added on top of the base price (Team).
1273
+ */
1274
+ type FFIDTaxBehavior = 'inclusive' | 'exclusive';
1275
+ /**
1276
+ * Publication lifecycle statuses (single source — the type, the SDK runtime
1277
+ * validator, and consumer sets all derive from this tuple so a new literal
1278
+ * cannot be added to one side only).
1279
+ */
1280
+ declare const FFID_CATALOG_PUBLICATION_STATUSES: readonly ["approved", "superseded", "revoking", "revoked"];
1281
+ /**
1282
+ * Publication lifecycle status.
1283
+ * - `approved`: sellable — the only status that permits new paid checkout
1284
+ * - `superseded`: replaced by a newer revision (old sessions may sell through
1285
+ * until `sellThroughUntil`)
1286
+ * - `revoking`: emergency stop in progress — never sellable
1287
+ * - `revoked`: emergency stop completed — never sellable
1288
+ */
1289
+ type FFIDCatalogPublicationStatus = (typeof FFID_CATALOG_PUBLICATION_STATUSES)[number];
1290
+ /**
1291
+ * Human-approved publication record binding a catalog revision to the
1292
+ * content/config hashes reviewed at approval time.
1293
+ *
1294
+ * All `*Hash` fields are lowercase SHA-256 hex computed with the shared
1295
+ * canonicalization helpers in `shared/catalog-hash` — consumers re-hash the
1296
+ * content they actually render and must refuse new sales on any mismatch.
1297
+ */
1298
+ interface FFIDCatalogPublication {
1299
+ serviceCode: string;
1300
+ environment: FFIDCatalogEnvironment;
1301
+ catalogVersion: string;
1302
+ praxisCopyHash: string;
1303
+ ffidCheckoutCopyHash: string;
1304
+ legalDisclosureHash: string;
1305
+ taxConfigurationHash: string;
1306
+ paymentConfigurationHash: string;
1307
+ scopeHash: string;
1308
+ /** Monotonically increasing per (service, environment) publication counter */
1309
+ salesEpoch: number;
1310
+ /** FFID-generated immutable human-review approval ID */
1311
+ approvalId: string;
1312
+ /** ISO 8601 timestamp of the recorded human review */
1313
+ reviewedAt: string;
1314
+ /** ISO 8601 timestamp the publication became effective */
1315
+ effectiveAt: string;
1316
+ /** ISO 8601 timestamp the publication was superseded (null while current) */
1317
+ supersededAt: string | null;
1318
+ /** ISO 8601 upper bound for old-session sell-through (null unless superseded) */
1319
+ sellThroughUntil: string | null;
1320
+ /** ISO 8601 timestamp an emergency revoke took effect (null unless revoking/revoked) */
1321
+ revocationEffectiveAt: string | null;
1322
+ status: FFIDCatalogPublicationStatus;
1323
+ }
1324
+ /**
1325
+ * A plan inside a published catalog revision (public-safe snapshot).
1326
+ * Never contains Stripe Product/Price identifiers or other secrets.
1327
+ */
1328
+ interface FFIDPublishedPlan {
1329
+ /**
1330
+ * Plan code — always a lowercase slug (`^[a-z0-9][a-z0-9_-]*$`).
1331
+ * Per-service open set; see the FFID repo's
1332
+ * `docs/04-api/PLAN_CODE_CONTRACT.md` for the full guarantees.
1333
+ */
1334
+ code: string;
1335
+ name: string;
1336
+ description: string | null;
1337
+ /** Monthly price in the catalog currency; null when monthly is not offered */
1338
+ priceMonthly: number | null;
1339
+ /** Yearly price in the catalog currency; null when yearly is not offered */
1340
+ priceYearly: number | null;
1341
+ currency: string;
1342
+ /** Billing intervals actually purchasable for this plan */
1343
+ billingIntervals: FFIDBillingInterval[];
1344
+ taxBehavior: FFIDTaxBehavior;
1345
+ minSeats: number;
1346
+ maxSeats: number | null;
1347
+ displayOrder: number;
1348
+ }
1349
+ /**
1350
+ * Response of GET /api/v1/subscriptions/ext/catalog/{serviceCode}.
1351
+ *
1352
+ * `catalogVersion` always equals `publication.catalogVersion`; it is hoisted
1353
+ * to the top level so consumers can pin the version (e.g. as
1354
+ * `expectedCatalogVersion` for checkout) without digging into the publication.
1355
+ */
1356
+ interface FFIDPublishedCatalog {
1357
+ service: {
1358
+ code: string;
1359
+ name: string;
1360
+ };
1361
+ catalogVersion: string;
1362
+ publication: FFIDCatalogPublication;
1363
+ plans: FFIDPublishedPlan[];
1364
+ }
1365
+
1260
1366
  /** OTP / magic link methods - sendOtp / verifyOtp */
1261
1367
 
1262
1368
  /** Response from sendOtp */
@@ -1501,6 +1607,7 @@ declare function createFFIDClient(config: FFIDConfig): {
1501
1607
  assignSeats: (params: FFIDAssignSeatsParams) => Promise<FFIDApiResponse<FFIDAssignSeatsResponse>>;
1502
1608
  unassignSeat: (params: FFIDUnassignSeatParams) => Promise<FFIDApiResponse<FFIDUnassignSeatResponse>>;
1503
1609
  listPlans: () => Promise<FFIDApiResponse<FFIDListPlansResponse>>;
1610
+ getPublishedCatalog: (serviceCode: string) => Promise<FFIDApiResponse<FFIDPublishedCatalog>>;
1504
1611
  getSubscription: (subscriptionId: string) => Promise<FFIDApiResponse<FFIDSubscriptionDetail>>;
1505
1612
  subscribe: (params: FFIDSubscribeParams) => Promise<FFIDApiResponse<FFIDSubscribeResponse>>;
1506
1613
  changePlan: (params: FFIDChangePlanParams) => Promise<FFIDApiResponse<FFIDChangePlanResponse>>;
@@ -2231,6 +2338,183 @@ declare function hasAccessFromUserinfo(sub: FFIDOAuthUserInfoSubscription | null
2231
2338
  */
2232
2339
  declare function isBlockedFromUserinfo(sub: FFIDOAuthUserInfoSubscription | null | undefined): boolean;
2233
2340
 
2341
+ /**
2342
+ * Catalog approval hash helpers (#4342 / ASDD-PRICING-002 SP4A)
2343
+ *
2344
+ * Shared canonicalization + SHA-256 helpers that FIX the cross-repo hash
2345
+ * contract between FFID (publisher) and consumers (Praxis). Both sides compute
2346
+ * hashes with these helpers and refuse new sales on any mismatch, so the
2347
+ * canonical form below is a compatibility contract:
2348
+ *
2349
+ * 1. Objects serialize with keys sorted by UTF-16 code unit order,
2350
+ * recursively. Arrays keep their element order.
2351
+ * 2. Serialization is `JSON.stringify`-compatible per token (string
2352
+ * escaping, number formatting) with NO whitespace.
2353
+ * 3. `undefined`, non-finite numbers (NaN/±Infinity), functions, symbols,
2354
+ * bigints and non-plain objects (Date, Map, class instances) are
2355
+ * REJECTED with FFIDCatalogHashError — never silently dropped, because a
2356
+ * dropped key would let two semantically different payloads collide.
2357
+ * Only own enumerable string-keyed properties participate; symbol-keyed
2358
+ * properties are ignored (same as `JSON.stringify`).
2359
+ * 4. The hash is lowercase SHA-256 hex over the UTF-8 bytes of the
2360
+ * canonical string (no domain-separation prefix).
2361
+ *
2362
+ * Changing ANY of these rules is a breaking change to published catalog
2363
+ * verification and requires re-publishing catalogs — the fixed test vectors
2364
+ * in `__tests__/catalog-hash.test.ts` exist to make such a change loud.
2365
+ */
2366
+
2367
+ /** Lowercase SHA-256 hex format shared by all catalog approval hashes */
2368
+ declare const CATALOG_HASH_PATTERN: RegExp;
2369
+ /**
2370
+ * Thrown when a value cannot be canonicalized (or an embedded hash is
2371
+ * malformed). Always indicates a programming error on the hashing side —
2372
+ * never caused by end-user input.
2373
+ */
2374
+ declare class FFIDCatalogHashError extends Error {
2375
+ constructor(message: string);
2376
+ }
2377
+ /** JSON value accepted by the canonicalizer */
2378
+ type FFIDCanonicalJsonValue = string | number | boolean | null | FFIDCanonicalJsonValue[] | {
2379
+ [key: string]: FFIDCanonicalJsonValue;
2380
+ };
2381
+ /**
2382
+ * Serializes a JSON-plain value into its canonical string form (see module
2383
+ * doc for the exact rules). Exposed so both sides can debug hash mismatches
2384
+ * by diffing canonical strings instead of opaque digests.
2385
+ */
2386
+ declare function canonicalizeCatalogValue(value: FFIDCanonicalJsonValue): string;
2387
+ /**
2388
+ * Lowercase SHA-256 hex of the UTF-8 bytes of `text`.
2389
+ *
2390
+ * Requires Web Crypto (`globalThis.crypto.subtle`) — available by default in
2391
+ * Node.js >= 19 (Node 18 needs `--experimental-global-webcrypto`), browsers,
2392
+ * and edge runtimes. Throws instead of falling back to a weaker digest so a
2393
+ * missing crypto implementation can never silently change the contract.
2394
+ */
2395
+ declare function sha256Hex(text: string): Promise<string>;
2396
+ /** Canonicalizes `value` and returns its lowercase SHA-256 hex digest. */
2397
+ declare function hashCanonicalJson(value: FFIDCanonicalJsonValue): Promise<string>;
2398
+ /**
2399
+ * Human-approved tax configuration snapshot hashed into
2400
+ * `publication.taxConfigurationHash`. FFID re-computes this from its live
2401
+ * Stripe Tax settings at paid-checkout start and refuses the session on
2402
+ * mismatch.
2403
+ */
2404
+ interface FFIDTaxConfiguration {
2405
+ /** ISO 3166-1 alpha-2 country/region codes where paid sales are allowed */
2406
+ allowedCountries: string[];
2407
+ /** Country/region codes with completed Stripe Tax registrations */
2408
+ stripeTaxRegistrations: string[];
2409
+ /** Whether full billing address collection is required before paid checkout */
2410
+ billingAddressRequired: boolean;
2411
+ /** Stripe Product tax code per plan code (e.g. `txcd_10000000`) */
2412
+ planTaxCodes: Record<string, string>;
2413
+ /** Tax behavior per plan code */
2414
+ planTaxBehaviors: Record<string, FFIDTaxBehavior>;
2415
+ }
2416
+ /**
2417
+ * Human-approved payment configuration snapshot hashed into
2418
+ * `publication.paymentConfigurationHash`.
2419
+ */
2420
+ interface FFIDPaymentConfiguration {
2421
+ environment: FFIDCatalogEnvironment;
2422
+ /** Lowercase ISO 4217 currency (e.g. `jpy`) */
2423
+ currency: string;
2424
+ /** Explicit Stripe payment method allow-list (initial sales: `['card']`) */
2425
+ paymentMethodTypes: string[];
2426
+ /** Stripe Dashboard dynamic payment methods must stay disabled for sales */
2427
+ dynamicPaymentMethodsEnabled: boolean;
2428
+ manualInvoiceAllowed: boolean;
2429
+ customerBalanceAllowed: boolean;
2430
+ delayedPaymentMethodsAllowed: boolean;
2431
+ /** Required Stripe Customer invoice credit balance before checkout (spec: 0) */
2432
+ customerInvoiceBalanceRequired: number;
2433
+ }
2434
+ /** Sales-scope-relevant snapshot of one published plan (subset of the catalog) */
2435
+ interface FFIDScopeHashPlan {
2436
+ code: string;
2437
+ priceMonthly: number | null;
2438
+ priceYearly: number | null;
2439
+ currency: string;
2440
+ billingIntervals: FFIDBillingInterval[];
2441
+ taxBehavior: FFIDTaxBehavior;
2442
+ minSeats: number;
2443
+ }
2444
+ /**
2445
+ * Input of `computeScopeHash` — the published plans' sales conditions plus
2446
+ * the five content/config hashes. Changing any of them changes `scopeHash`,
2447
+ * which invalidates the previous publication approval (fail-closed).
2448
+ */
2449
+ interface FFIDScopeHashInput {
2450
+ plans: FFIDScopeHashPlan[];
2451
+ praxisCopyHash: string;
2452
+ ffidCheckoutCopyHash: string;
2453
+ legalDisclosureHash: string;
2454
+ taxConfigurationHash: string;
2455
+ paymentConfigurationHash: string;
2456
+ }
2457
+ /**
2458
+ * `praxisCopyHash`: hash of the consumer's entire structured sales
2459
+ * presentation (`PRAXIS_SALES_PRESENTATION` — locales, plan display names,
2460
+ * prices, feature matrix, CTAs, eligibility). The consumer re-hashes what it
2461
+ * actually renders and must refuse new sales on mismatch.
2462
+ */
2463
+ declare function computePraxisCopyHash(presentation: Record<string, FFIDCanonicalJsonValue>): Promise<string>;
2464
+ /** `ffidCheckoutCopyHash`: hash of FFID's structured final-confirmation copy */
2465
+ declare function computeFFIDCheckoutCopyHash(checkoutCopy: Record<string, FFIDCanonicalJsonValue>): Promise<string>;
2466
+ /**
2467
+ * `legalDisclosureHash`: hash of the canonical body text of the reviewed
2468
+ * legal disclosure document version. Line endings are normalized to LF before
2469
+ * hashing so the digest is independent of platform line-ending conventions;
2470
+ * the text is otherwise hashed byte-exact (no trimming, no Unicode
2471
+ * normalization).
2472
+ */
2473
+ declare function computeLegalDisclosureHash(canonicalText: string): Promise<string>;
2474
+ /**
2475
+ * `taxConfigurationHash`: hash of the human-approved tax configuration.
2476
+ * Country lists are treated as sets (sorted + deduplicated) so representation
2477
+ * order cannot flip the digest.
2478
+ */
2479
+ declare function computeTaxConfigurationHash(config: FFIDTaxConfiguration): Promise<string>;
2480
+ /**
2481
+ * `paymentConfigurationHash`: hash of the human-approved payment
2482
+ * configuration. `paymentMethodTypes` is treated as a set.
2483
+ */
2484
+ declare function computePaymentConfigurationHash(config: FFIDPaymentConfiguration): Promise<string>;
2485
+ /**
2486
+ * `scopeHash`: hash of the published sales scope — plan codes, amounts,
2487
+ * currency, intervals, tax behavior, minimum seats, plus the five embedded
2488
+ * content/config hashes. Plans are sorted by `code`; duplicate codes are
2489
+ * rejected. Embedded hashes are validated for format so a malformed digest
2490
+ * can never be baked into an approval.
2491
+ */
2492
+ declare function computeScopeHash(input: FFIDScopeHashInput): Promise<string>;
2493
+
2494
+ /** Published catalog methods (#4342 / ASDD-PRICING-002 SP4A) */
2495
+
2496
+ /**
2497
+ * Validates the full published-catalog shape the SDK's compile-time types
2498
+ * promise to consumers:
2499
+ * - `service.code` / `service.name` are non-empty strings
2500
+ * - top-level `catalogVersion` equals `publication.catalogVersion`
2501
+ * - `publication.status` is one of the four known literals (unknown statuses
2502
+ * must fail loud here, NOT be treated as sellable downstream) and
2503
+ * `publication.environment` is a known environment
2504
+ * - the six approval hashes are lowercase SHA-256 hex; `salesEpoch` is a
2505
+ * positive integer; timestamps are present (or explicitly null where the
2506
+ * type allows null)
2507
+ * - every plan carries the full `FFIDPublishedPlan` field set with
2508
+ * cross-field invariants (an offered interval has its price;
2509
+ * `minSeats <= maxSeats`), and no plan field NAME mentions Stripe
2510
+ * (defense-in-depth heuristic — the authoritative no-Stripe-ID guard is
2511
+ * the FFID server's `.strict()` snapshot schema)
2512
+ *
2513
+ * Throws FFIDSDKError on violation so a server regression surfaces at the
2514
+ * SDK boundary instead of silently reaching a consumer's sales gate.
2515
+ */
2516
+ declare function validatePublishedCatalog(catalog: unknown): asserts catalog is FFIDPublishedCatalog;
2517
+
2234
2518
  /**
2235
2519
  * FFID Announcements API Client
2236
2520
  *
@@ -2394,4 +2678,4 @@ declare function createInquiryMethods(deps: InquiryMethodsDeps): {
2394
2678
  };
2395
2679
  type FFIDInquiryClient = ReturnType<typeof createInquiryMethods>;
2396
2680
 
2397
- export { ACCESS_GRANTING_EFFECTIVE_STATUSES, AnnouncementListResponse, BLOCKING_EFFECTIVE_STATUSES, type ComputeEffectiveStatusInput, type ContractWizardFlowType, type ContractWizardResubscribeOptions, type ContractWizardSubscribeOptions, type ContractWizardSubscriptionOptions, DEFAULT_API_BASE_URL, DEFAULT_OAUTH_SCOPES, EffectiveSubscriptionStatus, type ExchangeCodeForTokensOptions, type FFIDAddMemberParams, type FFIDAddMemberRequest, type FFIDAddMemberResponse, FFIDAnnouncementsApiResponse, type FFIDAnnouncementsClient, FFIDAnnouncementsClientConfig, FFIDAnnouncementsLogger, FFIDApiResponse, type FFIDAssignableMemberRole, type FFIDBillingInterval, FFIDCacheAdapter, type FFIDCancelPendingDowngradeResponse, type FFIDCancelSubscriptionParams, type FFIDCancelSubscriptionResponse, type FFIDChangePlanParams, type FFIDChangePlanResponse, FFIDCheckServiceAccessParams, type FFIDCheckoutSessionResponse, type FFIDClient, FFIDConfig, type FFIDCreateCheckoutParams, type FFIDCreatePortalParams, FFIDError, type FFIDErrorCode, type FFIDInquiryClient, FFIDInquiryCreateParams, FFIDInquiryCreateResponse, type FFIDInvitationStatus, type FFIDInviteMemberRequest, type FFIDInviteMemberResponse, type FFIDLeaveOrganizationParams, type FFIDLeaveOrganizationResponse, type FFIDListMembersResponse, type FFIDListPlansResponse, FFIDLogger, type FFIDLoginHistoryEntry, type FFIDLoginHistoryResponse, type FFIDMemberRole, type FFIDMemberStatus, type FFIDNewsletterBodySource, type FFIDNewsletterCampaignStatus, type FFIDNewsletterClient, type FFIDNewsletterConfirmParams, type FFIDNewsletterConfirmResponse, type FFIDNewsletterDispatchParams, type FFIDNewsletterDispatchResponse, type FFIDNewsletterSegment, type FFIDNewsletterSubscribeParams, type FFIDNewsletterSubscribeResponse, type FFIDNewsletterType, type FFIDNewsletterUnsubscribeParams, type FFIDNewsletterUnsubscribeResponse, type FFIDOAuthTokenResponse, FFIDOAuthUserInfo, FFIDOAuthUserInfoSubscription, FFIDOrganization, type FFIDOrganizationDomain, type FFIDOrganizationDomainsResponse, type FFIDOrganizationMember, type FFIDOrganizationNotificationPreferences, type FFIDOrganizationNotificationPreferencesResponse, type FFIDOtpSendResponse, type FFIDOtpVerifyResponse, type FFIDPasswordResetConfirmResponse, type FFIDPasswordResetResponse, type FFIDPasswordResetVerifyResponse, type FFIDPlanChangeLineItem, type FFIDPlanChangePreview, type FFIDPlanChangePreviewResponse, type FFIDPlanInfo, type FFIDPortalSessionResponse, type FFIDPreviewPlanChangeParams, type FFIDPreviewSeatChangeParams, type FFIDProfileCallOptions, FFIDProvider, type FFIDProviderProps, type FFIDProvisionMemberPlan, type FFIDProvisionMemberPlanStatus, type FFIDProvisionMemberResult, type FFIDProvisionMemberStatus, type FFIDProvisionOrganizationDryRun, type FFIDProvisionOrganizationMemberInput, type FFIDProvisionOrganizationOutcome, type FFIDProvisionOrganizationParams, type FFIDProvisionOrganizationResponse, type FFIDProvisionUserDryRun, type FFIDProvisionUserOutcome, type FFIDProvisionUserParams, type FFIDProvisionUserProfileInput, type FFIDProvisionUserResponse, type FFIDProvisionedOrganization, type FFIDProvisionedUser, type FFIDRedirectErrorCode, type FFIDRedirectResult, type FFIDRemoveMemberResponse, type FFIDResetSessionResponse, FFIDSDKError, type FFIDSeatChangeLineItem, type FFIDSeatChangePreview, type FFIDSeatChangePreviewResponse, FFIDServiceAccessDecision, type FFIDServiceInfo, FFIDSessionResponse, FFIDSignOutResult, type FFIDSubscribeParams, type FFIDSubscribeResponse, FFIDSubscription, FFIDSubscriptionCheckResponse, FFIDSubscriptionContextValue, type FFIDSubscriptionDetail, FFIDSubscriptionStatus, type FFIDSubscriptionSummary, type FFIDSupportedCurrency, type FFIDTokenIntrospectionResponse, type FFIDUpdateMemberRoleResponse, type FFIDUpdateNotificationPreferencesRequest, type FFIDUpdateUserProfileRequest, FFIDUser, type FFIDUserProfile, FFIDVerifyAccessTokenOptions, FFID_ANNOUNCEMENTS_ERROR_CODES, FFID_ERROR_CODES, FFID_NEWSLETTER_DISPATCH_MAX_RECIPIENTS, FFID_NEWSLETTER_TYPES, type HandleRedirectCallbackClient, type HandleRedirectCallbackOptions, type KVNamespaceLike, ListAnnouncementsOptions, type NormalizeRedirectUriResult, type RedirectToAuthorizeOptions, TokenStore, type UseFFIDReturn, type UseRequireActiveSubscriptionOptions, type UseRequireActiveSubscriptionReturn, type WithFFIDAuthOptions, type WithSubscriptionOptions, cleanupStateStorage as clearState, computeEffectiveStatusFromSession, createFFIDAnnouncementsClient, createFFIDClient, createKVCacheAdapter, createMemoryCacheAdapter, generateCodeChallenge, generateCodeVerifier, handleRedirectCallback, hasAccessFromUserinfo, isBlockedFromUserinfo, normalizeRedirectUri, retrieveCodeVerifier, retrieveState, storeCodeVerifier, storeState, useFFID, useRequireActiveSubscription, useSubscription, withFFIDAuth, withSubscription };
2681
+ export { ACCESS_GRANTING_EFFECTIVE_STATUSES, AnnouncementListResponse, BLOCKING_EFFECTIVE_STATUSES, CATALOG_HASH_PATTERN, type ComputeEffectiveStatusInput, type ContractWizardFlowType, type ContractWizardResubscribeOptions, type ContractWizardSubscribeOptions, type ContractWizardSubscriptionOptions, DEFAULT_API_BASE_URL, DEFAULT_OAUTH_SCOPES, EffectiveSubscriptionStatus, type ExchangeCodeForTokensOptions, type FFIDAddMemberParams, type FFIDAddMemberRequest, type FFIDAddMemberResponse, FFIDAnnouncementsApiResponse, type FFIDAnnouncementsClient, FFIDAnnouncementsClientConfig, FFIDAnnouncementsLogger, FFIDApiResponse, type FFIDAssignableMemberRole, type FFIDBillingInterval, FFIDCacheAdapter, type FFIDCancelPendingDowngradeResponse, type FFIDCancelSubscriptionParams, type FFIDCancelSubscriptionResponse, type FFIDCanonicalJsonValue, type FFIDCatalogEnvironment, FFIDCatalogHashError, type FFIDCatalogPublication, type FFIDCatalogPublicationStatus, type FFIDChangePlanParams, type FFIDChangePlanResponse, FFIDCheckServiceAccessParams, type FFIDCheckoutSessionResponse, type FFIDClient, FFIDConfig, type FFIDCreateCheckoutParams, type FFIDCreatePortalParams, FFIDError, type FFIDErrorCode, type FFIDInquiryClient, FFIDInquiryCreateParams, FFIDInquiryCreateResponse, type FFIDInvitationStatus, type FFIDInviteMemberRequest, type FFIDInviteMemberResponse, type FFIDLeaveOrganizationParams, type FFIDLeaveOrganizationResponse, type FFIDListMembersResponse, type FFIDListPlansResponse, FFIDLogger, type FFIDLoginHistoryEntry, type FFIDLoginHistoryResponse, type FFIDMemberRole, type FFIDMemberStatus, type FFIDNewsletterBodySource, type FFIDNewsletterCampaignStatus, type FFIDNewsletterClient, type FFIDNewsletterConfirmParams, type FFIDNewsletterConfirmResponse, type FFIDNewsletterDispatchParams, type FFIDNewsletterDispatchResponse, type FFIDNewsletterSegment, type FFIDNewsletterSubscribeParams, type FFIDNewsletterSubscribeResponse, type FFIDNewsletterType, type FFIDNewsletterUnsubscribeParams, type FFIDNewsletterUnsubscribeResponse, type FFIDOAuthTokenResponse, FFIDOAuthUserInfo, FFIDOAuthUserInfoSubscription, FFIDOrganization, type FFIDOrganizationDomain, type FFIDOrganizationDomainsResponse, type FFIDOrganizationMember, type FFIDOrganizationNotificationPreferences, type FFIDOrganizationNotificationPreferencesResponse, type FFIDOtpSendResponse, type FFIDOtpVerifyResponse, type FFIDPasswordResetConfirmResponse, type FFIDPasswordResetResponse, type FFIDPasswordResetVerifyResponse, type FFIDPaymentConfiguration, type FFIDPlanChangeLineItem, type FFIDPlanChangePreview, type FFIDPlanChangePreviewResponse, type FFIDPlanInfo, type FFIDPortalSessionResponse, type FFIDPreviewPlanChangeParams, type FFIDPreviewSeatChangeParams, type FFIDProfileCallOptions, FFIDProvider, type FFIDProviderProps, type FFIDProvisionMemberPlan, type FFIDProvisionMemberPlanStatus, type FFIDProvisionMemberResult, type FFIDProvisionMemberStatus, type FFIDProvisionOrganizationDryRun, type FFIDProvisionOrganizationMemberInput, type FFIDProvisionOrganizationOutcome, type FFIDProvisionOrganizationParams, type FFIDProvisionOrganizationResponse, type FFIDProvisionUserDryRun, type FFIDProvisionUserOutcome, type FFIDProvisionUserParams, type FFIDProvisionUserProfileInput, type FFIDProvisionUserResponse, type FFIDProvisionedOrganization, type FFIDProvisionedUser, type FFIDPublishedCatalog, type FFIDPublishedPlan, type FFIDRedirectErrorCode, type FFIDRedirectResult, type FFIDRemoveMemberResponse, type FFIDResetSessionResponse, FFIDSDKError, type FFIDScopeHashInput, type FFIDScopeHashPlan, type FFIDSeatChangeLineItem, type FFIDSeatChangePreview, type FFIDSeatChangePreviewResponse, FFIDServiceAccessDecision, type FFIDServiceInfo, FFIDSessionResponse, FFIDSignOutResult, type FFIDSubscribeParams, type FFIDSubscribeResponse, FFIDSubscription, FFIDSubscriptionCheckResponse, FFIDSubscriptionContextValue, type FFIDSubscriptionDetail, FFIDSubscriptionStatus, type FFIDSubscriptionSummary, type FFIDSupportedCurrency, type FFIDTaxBehavior, type FFIDTaxConfiguration, type FFIDTokenIntrospectionResponse, type FFIDUpdateMemberRoleResponse, type FFIDUpdateNotificationPreferencesRequest, type FFIDUpdateUserProfileRequest, FFIDUser, type FFIDUserProfile, FFIDVerifyAccessTokenOptions, FFID_ANNOUNCEMENTS_ERROR_CODES, FFID_CATALOG_ENVIRONMENTS, FFID_CATALOG_PUBLICATION_STATUSES, FFID_ERROR_CODES, FFID_NEWSLETTER_DISPATCH_MAX_RECIPIENTS, FFID_NEWSLETTER_TYPES, type HandleRedirectCallbackClient, type HandleRedirectCallbackOptions, type KVNamespaceLike, ListAnnouncementsOptions, type NormalizeRedirectUriResult, type RedirectToAuthorizeOptions, TokenStore, type UseFFIDReturn, type UseRequireActiveSubscriptionOptions, type UseRequireActiveSubscriptionReturn, type WithFFIDAuthOptions, type WithSubscriptionOptions, canonicalizeCatalogValue, cleanupStateStorage as clearState, computeEffectiveStatusFromSession, computeFFIDCheckoutCopyHash, computeLegalDisclosureHash, computePaymentConfigurationHash, computePraxisCopyHash, computeScopeHash, computeTaxConfigurationHash, createFFIDAnnouncementsClient, createFFIDClient, createKVCacheAdapter, createMemoryCacheAdapter, generateCodeChallenge, generateCodeVerifier, handleRedirectCallback, hasAccessFromUserinfo, hashCanonicalJson, isBlockedFromUserinfo, normalizeRedirectUri, retrieveCodeVerifier, retrieveState, sha256Hex, storeCodeVerifier, storeState, useFFID, useRequireActiveSubscription, useSubscription, validatePublishedCatalog, withFFIDAuth, withSubscription };