@feelflow/ffid-sdk 5.27.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/{chunk-JZB2IM7Y.js → chunk-75UNNOLV.js} +24 -2
- package/dist/{chunk-R4KUHR4S.cjs → chunk-S5FV6H2U.cjs} +25 -1
- package/dist/components/index.cjs +8 -8
- package/dist/components/index.d.cts +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +1 -1
- package/dist/{ffid-client-BlVuH6ja.d.cts → ffid-client-B_VBvIt4.d.cts} +27 -1
- package/dist/{ffid-client-BqnzUmG7.d.ts → ffid-client-DEM1nYqe.d.ts} +27 -1
- package/dist/{index-D3S_Pkkv.d.cts → index-_-MqJCN3.d.cts} +56 -2
- package/dist/{index-D3S_Pkkv.d.ts → index-_-MqJCN3.d.ts} +56 -2
- package/dist/index.cjs +64 -56
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/server/index.cjs +173 -3
- package/dist/server/index.d.cts +180 -3
- package/dist/server/index.d.ts +180 -3
- package/dist/server/index.js +160 -4
- package/dist/server/test/index.d.cts +1 -1
- package/dist/server/test/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
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 } =
|
|
58
|
-
const { effectiveStatus, isBlocked, isGrace } =
|
|
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 } =
|
|
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,211 +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
|
|
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
|
|
112
|
+
get: function () { return chunkS5FV6H2U_cjs.BLOCKING_EFFECTIVE_STATUSES; }
|
|
113
113
|
});
|
|
114
114
|
Object.defineProperty(exports, "CATALOG_HASH_PATTERN", {
|
|
115
115
|
enumerable: true,
|
|
116
|
-
get: function () { return
|
|
116
|
+
get: function () { return chunkS5FV6H2U_cjs.CATALOG_HASH_PATTERN; }
|
|
117
117
|
});
|
|
118
118
|
Object.defineProperty(exports, "DEFAULT_API_BASE_URL", {
|
|
119
119
|
enumerable: true,
|
|
120
|
-
get: function () { return
|
|
120
|
+
get: function () { return chunkS5FV6H2U_cjs.DEFAULT_API_BASE_URL; }
|
|
121
121
|
});
|
|
122
122
|
Object.defineProperty(exports, "DEFAULT_OAUTH_SCOPES", {
|
|
123
123
|
enumerable: true,
|
|
124
|
-
get: function () { return
|
|
124
|
+
get: function () { return chunkS5FV6H2U_cjs.DEFAULT_OAUTH_SCOPES; }
|
|
125
125
|
});
|
|
126
126
|
Object.defineProperty(exports, "EFFECTIVE_SUBSCRIPTION_STATUSES", {
|
|
127
127
|
enumerable: true,
|
|
128
|
-
get: function () { return
|
|
128
|
+
get: function () { return chunkS5FV6H2U_cjs.EFFECTIVE_SUBSCRIPTION_STATUSES; }
|
|
129
129
|
});
|
|
130
130
|
Object.defineProperty(exports, "FFIDAnnouncementBadge", {
|
|
131
131
|
enumerable: true,
|
|
132
|
-
get: function () { return
|
|
132
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDAnnouncementBadge; }
|
|
133
133
|
});
|
|
134
134
|
Object.defineProperty(exports, "FFIDAnnouncementList", {
|
|
135
135
|
enumerable: true,
|
|
136
|
-
get: function () { return
|
|
136
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDAnnouncementList; }
|
|
137
137
|
});
|
|
138
138
|
Object.defineProperty(exports, "FFIDCatalogHashError", {
|
|
139
139
|
enumerable: true,
|
|
140
|
-
get: function () { return
|
|
140
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDCatalogHashError; }
|
|
141
141
|
});
|
|
142
142
|
Object.defineProperty(exports, "FFIDInquiryForm", {
|
|
143
143
|
enumerable: true,
|
|
144
|
-
get: function () { return
|
|
144
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDInquiryForm; }
|
|
145
145
|
});
|
|
146
146
|
Object.defineProperty(exports, "FFIDLoginButton", {
|
|
147
147
|
enumerable: true,
|
|
148
|
-
get: function () { return
|
|
148
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDLoginButton; }
|
|
149
149
|
});
|
|
150
150
|
Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
|
|
151
151
|
enumerable: true,
|
|
152
|
-
get: function () { return
|
|
152
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDOrganizationSwitcher; }
|
|
153
153
|
});
|
|
154
154
|
Object.defineProperty(exports, "FFIDProvider", {
|
|
155
155
|
enumerable: true,
|
|
156
|
-
get: function () { return
|
|
156
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDProvider; }
|
|
157
157
|
});
|
|
158
158
|
Object.defineProperty(exports, "FFIDSDKError", {
|
|
159
159
|
enumerable: true,
|
|
160
|
-
get: function () { return
|
|
160
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDSDKError; }
|
|
161
161
|
});
|
|
162
162
|
Object.defineProperty(exports, "FFIDSubscriptionBadge", {
|
|
163
163
|
enumerable: true,
|
|
164
|
-
get: function () { return
|
|
164
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDSubscriptionBadge; }
|
|
165
165
|
});
|
|
166
166
|
Object.defineProperty(exports, "FFIDUserMenu", {
|
|
167
167
|
enumerable: true,
|
|
168
|
-
get: function () { return
|
|
168
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDUserMenu; }
|
|
169
169
|
});
|
|
170
170
|
Object.defineProperty(exports, "FFID_ANNOUNCEMENTS_ERROR_CODES", {
|
|
171
171
|
enumerable: true,
|
|
172
|
-
get: function () { return
|
|
172
|
+
get: function () { return chunkS5FV6H2U_cjs.FFID_ANNOUNCEMENTS_ERROR_CODES; }
|
|
173
173
|
});
|
|
174
174
|
Object.defineProperty(exports, "FFID_CATALOG_ENVIRONMENTS", {
|
|
175
175
|
enumerable: true,
|
|
176
|
-
get: function () { return
|
|
176
|
+
get: function () { return chunkS5FV6H2U_cjs.FFID_CATALOG_ENVIRONMENTS; }
|
|
177
177
|
});
|
|
178
178
|
Object.defineProperty(exports, "FFID_CATALOG_PUBLICATION_STATUSES", {
|
|
179
179
|
enumerable: true,
|
|
180
|
-
get: function () { return
|
|
180
|
+
get: function () { return chunkS5FV6H2U_cjs.FFID_CATALOG_PUBLICATION_STATUSES; }
|
|
181
181
|
});
|
|
182
182
|
Object.defineProperty(exports, "FFID_ERROR_CODES", {
|
|
183
183
|
enumerable: true,
|
|
184
|
-
get: function () { return
|
|
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; }
|
|
185
189
|
});
|
|
186
190
|
Object.defineProperty(exports, "FFID_INQUIRY_CATEGORIES", {
|
|
187
191
|
enumerable: true,
|
|
188
|
-
get: function () { return
|
|
192
|
+
get: function () { return chunkS5FV6H2U_cjs.FFID_INQUIRY_CATEGORIES; }
|
|
189
193
|
});
|
|
190
194
|
Object.defineProperty(exports, "FFID_INQUIRY_CATEGORIES_SITE_2026", {
|
|
191
195
|
enumerable: true,
|
|
192
|
-
get: function () { return
|
|
196
|
+
get: function () { return chunkS5FV6H2U_cjs.FFID_INQUIRY_CATEGORIES_SITE_2026; }
|
|
193
197
|
});
|
|
194
198
|
Object.defineProperty(exports, "canonicalizeCatalogValue", {
|
|
195
199
|
enumerable: true,
|
|
196
|
-
get: function () { return
|
|
200
|
+
get: function () { return chunkS5FV6H2U_cjs.canonicalizeCatalogValue; }
|
|
197
201
|
});
|
|
198
202
|
Object.defineProperty(exports, "clearState", {
|
|
199
203
|
enumerable: true,
|
|
200
|
-
get: function () { return
|
|
204
|
+
get: function () { return chunkS5FV6H2U_cjs.cleanupStateStorage; }
|
|
201
205
|
});
|
|
202
206
|
Object.defineProperty(exports, "computeEffectiveStatusFromSession", {
|
|
203
207
|
enumerable: true,
|
|
204
|
-
get: function () { return
|
|
208
|
+
get: function () { return chunkS5FV6H2U_cjs.computeEffectiveStatusFromSession; }
|
|
205
209
|
});
|
|
206
210
|
Object.defineProperty(exports, "computeFFIDCheckoutCopyHash", {
|
|
207
211
|
enumerable: true,
|
|
208
|
-
get: function () { return
|
|
212
|
+
get: function () { return chunkS5FV6H2U_cjs.computeFFIDCheckoutCopyHash; }
|
|
209
213
|
});
|
|
210
214
|
Object.defineProperty(exports, "computeLegalDisclosureHash", {
|
|
211
215
|
enumerable: true,
|
|
212
|
-
get: function () { return
|
|
216
|
+
get: function () { return chunkS5FV6H2U_cjs.computeLegalDisclosureHash; }
|
|
213
217
|
});
|
|
214
218
|
Object.defineProperty(exports, "computePaymentConfigurationHash", {
|
|
215
219
|
enumerable: true,
|
|
216
|
-
get: function () { return
|
|
220
|
+
get: function () { return chunkS5FV6H2U_cjs.computePaymentConfigurationHash; }
|
|
217
221
|
});
|
|
218
222
|
Object.defineProperty(exports, "computePraxisCopyHash", {
|
|
219
223
|
enumerable: true,
|
|
220
|
-
get: function () { return
|
|
224
|
+
get: function () { return chunkS5FV6H2U_cjs.computePraxisCopyHash; }
|
|
221
225
|
});
|
|
222
226
|
Object.defineProperty(exports, "computeScopeHash", {
|
|
223
227
|
enumerable: true,
|
|
224
|
-
get: function () { return
|
|
228
|
+
get: function () { return chunkS5FV6H2U_cjs.computeScopeHash; }
|
|
225
229
|
});
|
|
226
230
|
Object.defineProperty(exports, "computeTaxConfigurationHash", {
|
|
227
231
|
enumerable: true,
|
|
228
|
-
get: function () { return
|
|
232
|
+
get: function () { return chunkS5FV6H2U_cjs.computeTaxConfigurationHash; }
|
|
229
233
|
});
|
|
230
234
|
Object.defineProperty(exports, "createFFIDAnnouncementsClient", {
|
|
231
235
|
enumerable: true,
|
|
232
|
-
get: function () { return
|
|
236
|
+
get: function () { return chunkS5FV6H2U_cjs.createFFIDAnnouncementsClient; }
|
|
233
237
|
});
|
|
234
238
|
Object.defineProperty(exports, "createFFIDClient", {
|
|
235
239
|
enumerable: true,
|
|
236
|
-
get: function () { return
|
|
240
|
+
get: function () { return chunkS5FV6H2U_cjs.createFFIDClient; }
|
|
237
241
|
});
|
|
238
242
|
Object.defineProperty(exports, "createTokenStore", {
|
|
239
243
|
enumerable: true,
|
|
240
|
-
get: function () { return
|
|
244
|
+
get: function () { return chunkS5FV6H2U_cjs.createTokenStore; }
|
|
241
245
|
});
|
|
242
246
|
Object.defineProperty(exports, "generateCodeChallenge", {
|
|
243
247
|
enumerable: true,
|
|
244
|
-
get: function () { return
|
|
248
|
+
get: function () { return chunkS5FV6H2U_cjs.generateCodeChallenge; }
|
|
245
249
|
});
|
|
246
250
|
Object.defineProperty(exports, "generateCodeVerifier", {
|
|
247
251
|
enumerable: true,
|
|
248
|
-
get: function () { return
|
|
252
|
+
get: function () { return chunkS5FV6H2U_cjs.generateCodeVerifier; }
|
|
249
253
|
});
|
|
250
254
|
Object.defineProperty(exports, "handleRedirectCallback", {
|
|
251
255
|
enumerable: true,
|
|
252
|
-
get: function () { return
|
|
256
|
+
get: function () { return chunkS5FV6H2U_cjs.handleRedirectCallback; }
|
|
253
257
|
});
|
|
254
258
|
Object.defineProperty(exports, "hasAccessFromUserinfo", {
|
|
255
259
|
enumerable: true,
|
|
256
|
-
get: function () { return
|
|
260
|
+
get: function () { return chunkS5FV6H2U_cjs.hasAccessFromUserinfo; }
|
|
257
261
|
});
|
|
258
262
|
Object.defineProperty(exports, "hashCanonicalJson", {
|
|
259
263
|
enumerable: true,
|
|
260
|
-
get: function () { return
|
|
264
|
+
get: function () { return chunkS5FV6H2U_cjs.hashCanonicalJson; }
|
|
261
265
|
});
|
|
262
266
|
Object.defineProperty(exports, "isBlockedFromUserinfo", {
|
|
263
267
|
enumerable: true,
|
|
264
|
-
get: function () { return
|
|
268
|
+
get: function () { return chunkS5FV6H2U_cjs.isBlockedFromUserinfo; }
|
|
269
|
+
});
|
|
270
|
+
Object.defineProperty(exports, "isFFIDInquiryAcquisitionSource", {
|
|
271
|
+
enumerable: true,
|
|
272
|
+
get: function () { return chunkS5FV6H2U_cjs.isFFIDInquiryAcquisitionSource; }
|
|
265
273
|
});
|
|
266
274
|
Object.defineProperty(exports, "isFFIDInquiryCategorySite2026", {
|
|
267
275
|
enumerable: true,
|
|
268
|
-
get: function () { return
|
|
276
|
+
get: function () { return chunkS5FV6H2U_cjs.isFFIDInquiryCategorySite2026; }
|
|
269
277
|
});
|
|
270
278
|
Object.defineProperty(exports, "normalizeRedirectUri", {
|
|
271
279
|
enumerable: true,
|
|
272
|
-
get: function () { return
|
|
280
|
+
get: function () { return chunkS5FV6H2U_cjs.normalizeRedirectUri; }
|
|
273
281
|
});
|
|
274
282
|
Object.defineProperty(exports, "retrieveCodeVerifier", {
|
|
275
283
|
enumerable: true,
|
|
276
|
-
get: function () { return
|
|
284
|
+
get: function () { return chunkS5FV6H2U_cjs.retrieveCodeVerifier; }
|
|
277
285
|
});
|
|
278
286
|
Object.defineProperty(exports, "retrieveState", {
|
|
279
287
|
enumerable: true,
|
|
280
|
-
get: function () { return
|
|
288
|
+
get: function () { return chunkS5FV6H2U_cjs.retrieveState; }
|
|
281
289
|
});
|
|
282
290
|
Object.defineProperty(exports, "sha256Hex", {
|
|
283
291
|
enumerable: true,
|
|
284
|
-
get: function () { return
|
|
292
|
+
get: function () { return chunkS5FV6H2U_cjs.sha256Hex; }
|
|
285
293
|
});
|
|
286
294
|
Object.defineProperty(exports, "storeCodeVerifier", {
|
|
287
295
|
enumerable: true,
|
|
288
|
-
get: function () { return
|
|
296
|
+
get: function () { return chunkS5FV6H2U_cjs.storeCodeVerifier; }
|
|
289
297
|
});
|
|
290
298
|
Object.defineProperty(exports, "storeState", {
|
|
291
299
|
enumerable: true,
|
|
292
|
-
get: function () { return
|
|
300
|
+
get: function () { return chunkS5FV6H2U_cjs.storeState; }
|
|
293
301
|
});
|
|
294
302
|
Object.defineProperty(exports, "useFFID", {
|
|
295
303
|
enumerable: true,
|
|
296
|
-
get: function () { return
|
|
304
|
+
get: function () { return chunkS5FV6H2U_cjs.useFFID; }
|
|
297
305
|
});
|
|
298
306
|
Object.defineProperty(exports, "useFFIDAnnouncements", {
|
|
299
307
|
enumerable: true,
|
|
300
|
-
get: function () { return
|
|
308
|
+
get: function () { return chunkS5FV6H2U_cjs.useFFIDAnnouncements; }
|
|
301
309
|
});
|
|
302
310
|
Object.defineProperty(exports, "useSubscription", {
|
|
303
311
|
enumerable: true,
|
|
304
|
-
get: function () { return
|
|
312
|
+
get: function () { return chunkS5FV6H2U_cjs.useSubscription; }
|
|
305
313
|
});
|
|
306
314
|
Object.defineProperty(exports, "validatePublishedCatalog", {
|
|
307
315
|
enumerable: true,
|
|
308
|
-
get: function () { return
|
|
316
|
+
get: function () { return chunkS5FV6H2U_cjs.validatePublishedCatalog; }
|
|
309
317
|
});
|
|
310
318
|
Object.defineProperty(exports, "withSubscription", {
|
|
311
319
|
enumerable: true,
|
|
312
|
-
get: function () { return
|
|
320
|
+
get: function () { return chunkS5FV6H2U_cjs.withSubscription; }
|
|
313
321
|
});
|
|
314
322
|
Object.defineProperty(exports, "ALL_DENIED_EXCEPT_NECESSARY", {
|
|
315
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-
|
|
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
|
|
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';
|
package/dist/index.d.ts
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-
|
|
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
|
|
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.js';
|
|
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.js';
|
|
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.js';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
5
|
import { ReactNode, ComponentType, FC } from 'react';
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useFFIDContext, useSubscription } from './chunk-
|
|
2
|
-
export { ACCESS_GRANTING_EFFECTIVE_STATUSES, BLOCKING_EFFECTIVE_STATUSES, CATALOG_HASH_PATTERN, DEFAULT_API_BASE_URL, DEFAULT_OAUTH_SCOPES, EFFECTIVE_SUBSCRIPTION_STATUSES, FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDCatalogHashError, FFIDInquiryForm, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDProvider, FFIDSDKError, FFIDSubscriptionBadge, FFIDUserMenu, FFID_ANNOUNCEMENTS_ERROR_CODES, FFID_CATALOG_ENVIRONMENTS, FFID_CATALOG_PUBLICATION_STATUSES, FFID_ERROR_CODES, FFID_INQUIRY_CATEGORIES, FFID_INQUIRY_CATEGORIES_SITE_2026, canonicalizeCatalogValue, cleanupStateStorage as clearState, computeEffectiveStatusFromSession, computeFFIDCheckoutCopyHash, computeLegalDisclosureHash, computePaymentConfigurationHash, computePraxisCopyHash, computeScopeHash, computeTaxConfigurationHash, createFFIDAnnouncementsClient, createFFIDClient, createTokenStore, generateCodeChallenge, generateCodeVerifier, handleRedirectCallback, hasAccessFromUserinfo, hashCanonicalJson, isBlockedFromUserinfo, isFFIDInquiryCategorySite2026, normalizeRedirectUri, retrieveCodeVerifier, retrieveState, sha256Hex, storeCodeVerifier, storeState, useFFID, useFFIDAnnouncements, useSubscription, validatePublishedCatalog, withSubscription } from './chunk-
|
|
1
|
+
import { useFFIDContext, useSubscription } from './chunk-75UNNOLV.js';
|
|
2
|
+
export { ACCESS_GRANTING_EFFECTIVE_STATUSES, BLOCKING_EFFECTIVE_STATUSES, CATALOG_HASH_PATTERN, DEFAULT_API_BASE_URL, DEFAULT_OAUTH_SCOPES, EFFECTIVE_SUBSCRIPTION_STATUSES, FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDCatalogHashError, FFIDInquiryForm, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDProvider, FFIDSDKError, FFIDSubscriptionBadge, FFIDUserMenu, FFID_ANNOUNCEMENTS_ERROR_CODES, FFID_CATALOG_ENVIRONMENTS, FFID_CATALOG_PUBLICATION_STATUSES, FFID_ERROR_CODES, FFID_INQUIRY_ACQUISITION_SOURCES, FFID_INQUIRY_CATEGORIES, FFID_INQUIRY_CATEGORIES_SITE_2026, canonicalizeCatalogValue, cleanupStateStorage as clearState, computeEffectiveStatusFromSession, computeFFIDCheckoutCopyHash, computeLegalDisclosureHash, computePaymentConfigurationHash, computePraxisCopyHash, computeScopeHash, computeTaxConfigurationHash, createFFIDAnnouncementsClient, createFFIDClient, createTokenStore, generateCodeChallenge, generateCodeVerifier, handleRedirectCallback, hasAccessFromUserinfo, hashCanonicalJson, isBlockedFromUserinfo, isFFIDInquiryAcquisitionSource, isFFIDInquiryCategorySite2026, normalizeRedirectUri, retrieveCodeVerifier, retrieveState, sha256Hex, storeCodeVerifier, storeState, useFFID, useFFIDAnnouncements, useSubscription, validatePublishedCatalog, withSubscription } from './chunk-75UNNOLV.js';
|
|
3
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-G7VOX64X.js';
|
|
4
4
|
import { useEffect, useRef } from 'react';
|
|
5
5
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
package/dist/server/index.cjs
CHANGED
|
@@ -851,6 +851,157 @@ var FFID_CATALOG_PUBLICATION_STATUSES = [
|
|
|
851
851
|
|
|
852
852
|
// src/shared/catalog-hash.ts
|
|
853
853
|
var CATALOG_HASH_PATTERN = /^[0-9a-f]{64}$/;
|
|
854
|
+
var HEX_RADIX = 16;
|
|
855
|
+
var HEX_DIGITS_PER_BYTE = 2;
|
|
856
|
+
var FFIDCatalogHashError = class extends Error {
|
|
857
|
+
constructor(message) {
|
|
858
|
+
super(message);
|
|
859
|
+
this.name = "FFIDCatalogHashError";
|
|
860
|
+
}
|
|
861
|
+
};
|
|
862
|
+
function isPlainObject(value) {
|
|
863
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
864
|
+
return false;
|
|
865
|
+
}
|
|
866
|
+
const proto = Object.getPrototypeOf(value);
|
|
867
|
+
return proto === Object.prototype || proto === null;
|
|
868
|
+
}
|
|
869
|
+
function canonicalize(value, path) {
|
|
870
|
+
if (value === null) return "null";
|
|
871
|
+
switch (typeof value) {
|
|
872
|
+
case "string":
|
|
873
|
+
return JSON.stringify(value);
|
|
874
|
+
case "boolean":
|
|
875
|
+
return value ? "true" : "false";
|
|
876
|
+
case "number":
|
|
877
|
+
if (!Number.isFinite(value)) {
|
|
878
|
+
throw new FFIDCatalogHashError(
|
|
879
|
+
`canonicalize: non-finite number at ${path} \u2014 hashes require finite numbers`
|
|
880
|
+
);
|
|
881
|
+
}
|
|
882
|
+
return JSON.stringify(value);
|
|
883
|
+
case "undefined":
|
|
884
|
+
throw new FFIDCatalogHashError(
|
|
885
|
+
`canonicalize: undefined at ${path} \u2014 omit the key entirely or use null`
|
|
886
|
+
);
|
|
887
|
+
}
|
|
888
|
+
if (Array.isArray(value)) {
|
|
889
|
+
const items = value.map((item, index) => canonicalize(item, `${path}[${index}]`));
|
|
890
|
+
return `[${items.join(",")}]`;
|
|
891
|
+
}
|
|
892
|
+
if (isPlainObject(value)) {
|
|
893
|
+
const keys = Object.keys(value).sort();
|
|
894
|
+
const entries = [];
|
|
895
|
+
for (const key of keys) {
|
|
896
|
+
const child = value[key];
|
|
897
|
+
if (child === void 0) {
|
|
898
|
+
throw new FFIDCatalogHashError(
|
|
899
|
+
`canonicalize: undefined at ${path}.${key} \u2014 omit the key entirely or use null`
|
|
900
|
+
);
|
|
901
|
+
}
|
|
902
|
+
entries.push(`${JSON.stringify(key)}:${canonicalize(child, `${path}.${key}`)}`);
|
|
903
|
+
}
|
|
904
|
+
return `{${entries.join(",")}}`;
|
|
905
|
+
}
|
|
906
|
+
throw new FFIDCatalogHashError(
|
|
907
|
+
`canonicalize: unsupported value type (${typeof value}${typeof value === "object" ? `: ${Object.prototype.toString.call(value)}` : ""}) at ${path} \u2014 only JSON-plain values are hashable`
|
|
908
|
+
);
|
|
909
|
+
}
|
|
910
|
+
function canonicalizeCatalogValue(value) {
|
|
911
|
+
return canonicalize(value, "$");
|
|
912
|
+
}
|
|
913
|
+
async function sha256Hex(text) {
|
|
914
|
+
const subtle = globalThis.crypto?.subtle;
|
|
915
|
+
if (!subtle) {
|
|
916
|
+
throw new FFIDCatalogHashError(
|
|
917
|
+
"sha256Hex: Web Crypto (crypto.subtle) is not available in this runtime"
|
|
918
|
+
);
|
|
919
|
+
}
|
|
920
|
+
const digest = await subtle.digest("SHA-256", new TextEncoder().encode(text));
|
|
921
|
+
return Array.from(new Uint8Array(digest)).map((byte) => byte.toString(HEX_RADIX).padStart(HEX_DIGITS_PER_BYTE, "0")).join("");
|
|
922
|
+
}
|
|
923
|
+
async function hashCanonicalJson(value) {
|
|
924
|
+
return sha256Hex(canonicalizeCatalogValue(value));
|
|
925
|
+
}
|
|
926
|
+
function assertHashFormat(hash, field) {
|
|
927
|
+
if (!CATALOG_HASH_PATTERN.test(hash)) {
|
|
928
|
+
throw new FFIDCatalogHashError(
|
|
929
|
+
`${field} must be lowercase SHA-256 hex (64 chars), got: ${JSON.stringify(hash)}`
|
|
930
|
+
);
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
function normalizeStringSet(values) {
|
|
934
|
+
return [...new Set(values)].sort();
|
|
935
|
+
}
|
|
936
|
+
function compareByCodeUnits(a, b) {
|
|
937
|
+
if (a.code < b.code) return -1;
|
|
938
|
+
if (a.code > b.code) return 1;
|
|
939
|
+
return 0;
|
|
940
|
+
}
|
|
941
|
+
async function computePraxisCopyHash(presentation) {
|
|
942
|
+
return hashCanonicalJson(presentation);
|
|
943
|
+
}
|
|
944
|
+
async function computeFFIDCheckoutCopyHash(checkoutCopy) {
|
|
945
|
+
return hashCanonicalJson(checkoutCopy);
|
|
946
|
+
}
|
|
947
|
+
async function computeLegalDisclosureHash(canonicalText) {
|
|
948
|
+
return sha256Hex(canonicalText.replace(/\r\n?/g, "\n"));
|
|
949
|
+
}
|
|
950
|
+
async function computeTaxConfigurationHash(config) {
|
|
951
|
+
return hashCanonicalJson({
|
|
952
|
+
allowedCountries: normalizeStringSet(config.allowedCountries),
|
|
953
|
+
stripeTaxRegistrations: normalizeStringSet(config.stripeTaxRegistrations),
|
|
954
|
+
billingAddressRequired: config.billingAddressRequired,
|
|
955
|
+
planTaxCodes: config.planTaxCodes,
|
|
956
|
+
planTaxBehaviors: config.planTaxBehaviors
|
|
957
|
+
});
|
|
958
|
+
}
|
|
959
|
+
async function computePaymentConfigurationHash(config) {
|
|
960
|
+
return hashCanonicalJson({
|
|
961
|
+
environment: config.environment,
|
|
962
|
+
currency: config.currency,
|
|
963
|
+
paymentMethodTypes: normalizeStringSet(config.paymentMethodTypes),
|
|
964
|
+
dynamicPaymentMethodsEnabled: config.dynamicPaymentMethodsEnabled,
|
|
965
|
+
manualInvoiceAllowed: config.manualInvoiceAllowed,
|
|
966
|
+
customerBalanceAllowed: config.customerBalanceAllowed,
|
|
967
|
+
delayedPaymentMethodsAllowed: config.delayedPaymentMethodsAllowed,
|
|
968
|
+
customerInvoiceBalanceRequired: config.customerInvoiceBalanceRequired
|
|
969
|
+
});
|
|
970
|
+
}
|
|
971
|
+
async function computeScopeHash(input) {
|
|
972
|
+
assertHashFormat(input.praxisCopyHash, "praxisCopyHash");
|
|
973
|
+
assertHashFormat(input.ffidCheckoutCopyHash, "ffidCheckoutCopyHash");
|
|
974
|
+
assertHashFormat(input.legalDisclosureHash, "legalDisclosureHash");
|
|
975
|
+
assertHashFormat(input.taxConfigurationHash, "taxConfigurationHash");
|
|
976
|
+
assertHashFormat(input.paymentConfigurationHash, "paymentConfigurationHash");
|
|
977
|
+
const seenCodes = /* @__PURE__ */ new Set();
|
|
978
|
+
for (const plan of input.plans) {
|
|
979
|
+
if (seenCodes.has(plan.code)) {
|
|
980
|
+
throw new FFIDCatalogHashError(
|
|
981
|
+
`computeScopeHash: duplicate plan code ${JSON.stringify(plan.code)}`
|
|
982
|
+
);
|
|
983
|
+
}
|
|
984
|
+
seenCodes.add(plan.code);
|
|
985
|
+
}
|
|
986
|
+
const plans = [...input.plans].sort(compareByCodeUnits).map((plan) => ({
|
|
987
|
+
code: plan.code,
|
|
988
|
+
priceMonthly: plan.priceMonthly,
|
|
989
|
+
priceYearly: plan.priceYearly,
|
|
990
|
+
currency: plan.currency,
|
|
991
|
+
// Set semantics — interval order must not flip the digest.
|
|
992
|
+
billingIntervals: normalizeStringSet(plan.billingIntervals),
|
|
993
|
+
taxBehavior: plan.taxBehavior,
|
|
994
|
+
minSeats: plan.minSeats
|
|
995
|
+
}));
|
|
996
|
+
return hashCanonicalJson({
|
|
997
|
+
plans,
|
|
998
|
+
praxisCopyHash: input.praxisCopyHash,
|
|
999
|
+
ffidCheckoutCopyHash: input.ffidCheckoutCopyHash,
|
|
1000
|
+
legalDisclosureHash: input.legalDisclosureHash,
|
|
1001
|
+
taxConfigurationHash: input.taxConfigurationHash,
|
|
1002
|
+
paymentConfigurationHash: input.paymentConfigurationHash
|
|
1003
|
+
});
|
|
1004
|
+
}
|
|
854
1005
|
|
|
855
1006
|
// src/client/catalog-methods.ts
|
|
856
1007
|
var EXT_CATALOG_ENDPOINT = "/api/v1/subscriptions/ext/catalog";
|
|
@@ -1489,7 +1640,7 @@ function validateTokenResponse(tokenResponse) {
|
|
|
1489
1640
|
}
|
|
1490
1641
|
|
|
1491
1642
|
// src/client/version-check.ts
|
|
1492
|
-
var SDK_VERSION = "5.
|
|
1643
|
+
var SDK_VERSION = "5.28.0";
|
|
1493
1644
|
var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
|
|
1494
1645
|
var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
|
|
1495
1646
|
function sdkHeaders() {
|
|
@@ -2901,6 +3052,11 @@ function createInquiryMethods(deps) {
|
|
|
2901
3052
|
name,
|
|
2902
3053
|
message,
|
|
2903
3054
|
category: params.category,
|
|
3055
|
+
// Normalize null ("survey not collected", e.g. forwarded verbatim
|
|
3056
|
+
// from FFIDInquiryFormSubmitData) to undefined so JSON.stringify
|
|
3057
|
+
// drops the key entirely — older FFID deployments never see it and
|
|
3058
|
+
// current ones treat the omission as NULL.
|
|
3059
|
+
acquisitionSource: params.acquisitionSource ?? void 0,
|
|
2904
3060
|
company: params.company,
|
|
2905
3061
|
phone: params.phone,
|
|
2906
3062
|
locale: params.locale,
|
|
@@ -3662,11 +3818,11 @@ function getFFIDConsentFromCookieHeader(cookieHeader) {
|
|
|
3662
3818
|
|
|
3663
3819
|
// src/server/auth/server-state.ts
|
|
3664
3820
|
var STATE_RANDOM_BYTES2 = 16;
|
|
3665
|
-
var
|
|
3821
|
+
var HEX_RADIX2 = 16;
|
|
3666
3822
|
function generateServerState() {
|
|
3667
3823
|
const bytes = new Uint8Array(STATE_RANDOM_BYTES2);
|
|
3668
3824
|
globalThis.crypto.getRandomValues(bytes);
|
|
3669
|
-
return Array.from(bytes, (b) => b.toString(
|
|
3825
|
+
return Array.from(bytes, (b) => b.toString(HEX_RADIX2).padStart(2, "0")).join("");
|
|
3670
3826
|
}
|
|
3671
3827
|
|
|
3672
3828
|
// src/server/auth/server-oauth-token.ts
|
|
@@ -3925,10 +4081,21 @@ Object.defineProperty(exports, "DEFAULT_OAUTH_SCOPES", {
|
|
|
3925
4081
|
get: function () { return chunkMDHKSVLP_cjs.DEFAULT_OAUTH_SCOPES; }
|
|
3926
4082
|
});
|
|
3927
4083
|
exports.ALL_DENIED_EXCEPT_NECESSARY = ALL_DENIED_EXCEPT_NECESSARY;
|
|
4084
|
+
exports.CATALOG_HASH_PATTERN = CATALOG_HASH_PATTERN;
|
|
3928
4085
|
exports.CONSENT_COOKIE_NAME = CONSENT_COOKIE_NAME;
|
|
3929
4086
|
exports.COOKIE_VERSION = COOKIE_VERSION;
|
|
4087
|
+
exports.FFIDCatalogHashError = FFIDCatalogHashError;
|
|
4088
|
+
exports.FFID_CATALOG_ENVIRONMENTS = FFID_CATALOG_ENVIRONMENTS;
|
|
4089
|
+
exports.FFID_CATALOG_PUBLICATION_STATUSES = FFID_CATALOG_PUBLICATION_STATUSES;
|
|
3930
4090
|
exports.FFID_ERROR_CODES = FFID_ERROR_CODES;
|
|
3931
4091
|
exports.FFID_SESSION_COOKIE_NAME = FFID_SESSION_COOKIE_NAME;
|
|
4092
|
+
exports.canonicalizeCatalogValue = canonicalizeCatalogValue;
|
|
4093
|
+
exports.computeFFIDCheckoutCopyHash = computeFFIDCheckoutCopyHash;
|
|
4094
|
+
exports.computeLegalDisclosureHash = computeLegalDisclosureHash;
|
|
4095
|
+
exports.computePaymentConfigurationHash = computePaymentConfigurationHash;
|
|
4096
|
+
exports.computePraxisCopyHash = computePraxisCopyHash;
|
|
4097
|
+
exports.computeScopeHash = computeScopeHash;
|
|
4098
|
+
exports.computeTaxConfigurationHash = computeTaxConfigurationHash;
|
|
3932
4099
|
exports.createFFIDClient = createFFIDClient;
|
|
3933
4100
|
exports.createKVCacheAdapter = createKVCacheAdapter;
|
|
3934
4101
|
exports.createMemoryCacheAdapter = createMemoryCacheAdapter;
|
|
@@ -3940,4 +4107,7 @@ exports.encodeConsentCookie = encodeConsentCookie;
|
|
|
3940
4107
|
exports.generateServerState = generateServerState;
|
|
3941
4108
|
exports.getFFIDConsentFromCookieHeader = getFFIDConsentFromCookieHeader;
|
|
3942
4109
|
exports.getFFIDConsentFromCookies = getFFIDConsentFromCookies;
|
|
4110
|
+
exports.hashCanonicalJson = hashCanonicalJson;
|
|
3943
4111
|
exports.sessionCookies = sessionCookies;
|
|
4112
|
+
exports.sha256Hex = sha256Hex;
|
|
4113
|
+
exports.validatePublishedCatalog = validatePublishedCatalog;
|