@feelflow/ffid-sdk 6.0.0 → 7.1.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/README.md +47 -0
- package/dist/{FFIDCookieLink-BJgVcJyw.d.cts → FFIDCookieLink-Bwr0FBrV.d.cts} +13 -46
- package/dist/{FFIDCookieLink-BJgVcJyw.d.ts → FFIDCookieLink-Bwr0FBrV.d.ts} +13 -46
- package/dist/{chunk-CI6RBG77.cjs → chunk-CI4N7KJK.cjs} +350 -61
- package/dist/{chunk-G7VOX64X.js → chunk-RHBZHSRD.js} +4 -30
- package/dist/{chunk-H5O2CCAY.cjs → chunk-XELXXL2F.cjs} +2 -29
- package/dist/{chunk-NBBHMLXO.js → chunk-Y4TUICQZ.js} +345 -62
- package/dist/components/index.cjs +8 -8
- package/dist/components/index.js +1 -1
- package/dist/consent/index.cjs +63 -67
- package/dist/consent/index.d.cts +2 -2
- package/dist/consent/index.d.ts +2 -2
- package/dist/consent/index.js +1 -1
- package/dist/{ffid-client-C8XV7lUt.d.cts → ffid-client-BFgoVPOZ.d.cts} +161 -1
- package/dist/{ffid-client-CpVixUM3.d.ts → ffid-client-QNEFA3mv.d.ts} +161 -1
- package/dist/index.cjs +103 -79
- package/dist/index.d.cts +162 -2
- package/dist/index.d.ts +162 -2
- package/dist/index.js +3 -3
- package/dist/server/index.cjs +350 -61
- package/dist/server/index.d.cts +2 -2
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +345 -62
- package/dist/server/test/index.d.cts +1 -1
- package/dist/server/test/index.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -397,6 +397,53 @@ await ffid.updateMemberRole({
|
|
|
397
397
|
- `role` は `admin` / `member` / `viewer` のみ指定可能です。`owner` は追加・昇格 API では扱いません。
|
|
398
398
|
- agency client と同じ呼び味が必要な場合は `ffid.addMember(organizationId, { email, role })` も使えます。
|
|
399
399
|
|
|
400
|
+
### Organization profile / public logo wall
|
|
401
|
+
|
|
402
|
+
hub 等の外部サービスが企業プロフィールを登録・照会し、FeelFlow 全サービス共通のロゴウォールを表示するためのメソッド(#5485 / #5547)。
|
|
403
|
+
|
|
404
|
+
- **`getOrganizationProfile` / `upsertOrganizationProfile` / `uploadOrganizationLogo`** は **`authMode: 'service-key'` 専用**(scope: `organization:read` / `organization:write`)。`token` / `cookie` モードで呼ぶとサーバーへ往復せず `VALIDATION_ERROR`。
|
|
405
|
+
- **`getPublicLogoWall`** は認証不要。service-key を送らない。エンドポイントは `GET /api/v1/organizations/logo-wall`(公開 API なので SDK を使わず直接 GET してもよいが、型付きエラーが欲しければ SDK 経由を推奨)。
|
|
406
|
+
- `upsert` の `listingConsent.consented: true` では `consentVersion` と `consentedByUserId` が必須。同意操作者が対象 org の active メンバーでないとサーバーが `CONSENTED_BY_NOT_MEMBER` を返す。
|
|
407
|
+
|
|
408
|
+
```ts
|
|
409
|
+
import {
|
|
410
|
+
createFFIDClient,
|
|
411
|
+
FFID_ORGANIZATION_PROFILE_ERROR_CODES,
|
|
412
|
+
} from '@feelflow/ffid-sdk/server'
|
|
413
|
+
|
|
414
|
+
const ffid = createFFIDClient({
|
|
415
|
+
serviceCode: 'feel-agent',
|
|
416
|
+
scope: '',
|
|
417
|
+
authMode: 'service-key',
|
|
418
|
+
serviceApiKey: process.env.FFID_SERVICE_API_KEY!,
|
|
419
|
+
})
|
|
420
|
+
|
|
421
|
+
const current = await ffid.getOrganizationProfile(organizationId)
|
|
422
|
+
if (current.error) throw new Error(current.error.message)
|
|
423
|
+
|
|
424
|
+
const upsert = await ffid.upsertOrganizationProfile(organizationId, {
|
|
425
|
+
displayName: '株式会社サンプル',
|
|
426
|
+
industry: 'it-software',
|
|
427
|
+
companySize: '11-50',
|
|
428
|
+
websiteUrl: 'https://example.co.jp',
|
|
429
|
+
listingConsent: {
|
|
430
|
+
consented: true,
|
|
431
|
+
consentVersion: 'v1.0',
|
|
432
|
+
consentedByUserId: userId,
|
|
433
|
+
},
|
|
434
|
+
})
|
|
435
|
+
if (upsert.error?.code === FFID_ORGANIZATION_PROFILE_ERROR_CODES.CONSENTED_BY_NOT_MEMBER) {
|
|
436
|
+
throw new Error(upsert.error.message)
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
await ffid.uploadOrganizationLogo(organizationId, logoFile)
|
|
440
|
+
|
|
441
|
+
const wall = await ffid.getPublicLogoWall()
|
|
442
|
+
// wall.data.entries: { displayName, logoUrl, websiteUrl }[]
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
位置引数と params オブジェクトの両方を受け付ける(`addMember` と同じ)。
|
|
446
|
+
|
|
400
447
|
### Provisioning(users / organizations)
|
|
401
448
|
|
|
402
449
|
外部サービスからの一括移行向けに、**service-key 認証**でユーザー・組織を冪等にプロビジョニングするメソッド。REST を直叩きせず `createFFIDClient` 経由で呼べる(SDK-first、#3790 / #4127)。
|
|
@@ -343,31 +343,20 @@ type GetDocumentWire = z.infer<typeof GetDocumentWireSchema>;
|
|
|
343
343
|
* call. Spec §5.3 requires non-null warnings to be visible to the user.
|
|
344
344
|
*
|
|
345
345
|
* @remarks
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
*
|
|
349
|
-
*
|
|
350
|
-
*
|
|
346
|
+
* Code-only since v7.0.0 (#3402). Copy lives in the consumer's own i18n layer:
|
|
347
|
+
* pattern-match on `code` and resolve it against a
|
|
348
|
+
* `Record<FFIDConsentMergeWarning, string>` so TypeScript exhaustiveness-checks
|
|
349
|
+
* every literal and the dictionary can never leak `undefined`.
|
|
350
|
+
*
|
|
351
|
+
* Kept as an object rather than collapsed into a bare
|
|
352
|
+
* `FFIDConsentMergeWarning` alias for two reasons: consumers that followed the
|
|
353
|
+
* v5.5 deprecation notice already read `warning.code`, so this shape needs no
|
|
354
|
+
* second migration from them; and it leaves room to widen into a discriminated
|
|
355
|
+
* union (`{ code: 'drift_detected', mergeStrategy: 'db_wins' } | ...`) without
|
|
356
|
+
* another breaking change.
|
|
351
357
|
*/
|
|
352
358
|
interface FFIDConsentMergeWarningEvent {
|
|
353
359
|
code: FFIDConsentMergeWarning;
|
|
354
|
-
/**
|
|
355
|
-
* Human-readable copy. Defaults to the SDK's built-in Japanese copy unless
|
|
356
|
-
* `<FFIDAnalyticsProvider mergeWarningMessages={...}>` overrides it.
|
|
357
|
-
*
|
|
358
|
-
* @deprecated Scheduled for removal in `@feelflow/ffid-sdk` v6.0 so that
|
|
359
|
-
* `FFIDConsentMergeWarningEvent` becomes symmetric with
|
|
360
|
-
* `FFIDConsentSyncResult.warning` (code-only). Consumers should
|
|
361
|
-
* pattern-match on `code` and resolve copy in their own i18n layer.
|
|
362
|
-
*
|
|
363
|
-
* Migration: replace `event.message` reads with `messages[event.code]`
|
|
364
|
-
* where `messages` is typed as
|
|
365
|
-
* `Record<FFIDConsentMergeWarning, string>` (not `Partial<...>`) so
|
|
366
|
-
* TypeScript exhaustiveness-checks every enum value at compile time
|
|
367
|
-
* and the dictionary can never leak `undefined` the way an unchecked
|
|
368
|
-
* `event.message` could in pre-v5.5 SDKs.
|
|
369
|
-
*/
|
|
370
|
-
message: string;
|
|
371
360
|
}
|
|
372
361
|
/**
|
|
373
362
|
* Result of a sync call surfaced to consumers — drops the wire envelope and
|
|
@@ -779,27 +768,11 @@ interface FFIDAnalyticsProviderProps {
|
|
|
779
768
|
* suppressed by a UX dismissal.
|
|
780
769
|
*/
|
|
781
770
|
dismissalCooldownMinutes?: number;
|
|
782
|
-
/**
|
|
783
|
-
* Per-locale override map for `FFIDConsentMergeWarningEvent.message`.
|
|
784
|
-
*
|
|
785
|
-
* The Provider derives `message` for the `onConsentChange(state, warning)`
|
|
786
|
-
* callback from this map, falling back to `DEFAULT_MERGE_WARNING_MESSAGES`
|
|
787
|
-
* (JP) for any missing key. Pass only the keys you need to translate —
|
|
788
|
-
* partial overrides are merged with the defaults.
|
|
789
|
-
*
|
|
790
|
-
* Note: the underlying `code` (`FFIDConsentMergeWarning`) is the canonical
|
|
791
|
-
* identifier — multi-locale consumers should prefer pattern-matching on
|
|
792
|
-
* `warning.code` over reading `warning.message` directly. The `message`
|
|
793
|
-
* field is `@deprecated` and scheduled for removal in v6.0; this prop is
|
|
794
|
-
* the interim escape hatch so non-JP consumers don't have to wait for the
|
|
795
|
-
* v6.0 major to surface localized copy.
|
|
796
|
-
*/
|
|
797
|
-
mergeWarningMessages?: Partial<Record<FFIDConsentMergeWarning, string>>;
|
|
798
771
|
/** Optional fetch override (mainly for tests). */
|
|
799
772
|
fetchImpl?: typeof fetch;
|
|
800
773
|
children: ReactNode;
|
|
801
774
|
}
|
|
802
|
-
declare function FFIDAnalyticsProvider({ baseUrl, serviceApiKey, getAccessToken, gaMeasurementId, gaEnabled, sentryReplay, sentry, onConsentChange, onError, autoShowBanner, dismissalCooldownMinutes,
|
|
775
|
+
declare function FFIDAnalyticsProvider({ baseUrl, serviceApiKey, getAccessToken, gaMeasurementId, gaEnabled, sentryReplay, sentry, onConsentChange, onError, autoShowBanner, dismissalCooldownMinutes, fetchImpl, children, }: FFIDAnalyticsProviderProps): React.JSX.Element;
|
|
803
776
|
|
|
804
777
|
interface FFIDConsentContextValue {
|
|
805
778
|
/** Current consent state. Always non-null; "not yet decided" is encoded by `hasDecided=false`. */
|
|
@@ -850,12 +823,6 @@ interface FFIDConsentContextValue {
|
|
|
850
823
|
}
|
|
851
824
|
declare const FFID_CONSENT_NOT_DECIDED_STATE: FFIDConsentState;
|
|
852
825
|
declare const FFIDConsentContext: React$1.Context<FFIDConsentContextValue>;
|
|
853
|
-
/**
|
|
854
|
-
* Warning literal-keyed default copy for `local_state_overridden` /
|
|
855
|
-
* `shared_device_detected` / `drift_detected`. Surfaced by the Provider via
|
|
856
|
-
* `onConsentChange(state, warning)` per spec §5.3.
|
|
857
|
-
*/
|
|
858
|
-
declare const DEFAULT_MERGE_WARNING_MESSAGES: Record<FFIDConsentMergeWarning, string>;
|
|
859
826
|
|
|
860
827
|
/**
|
|
861
828
|
* `useFFIDConsent` — primary hook for reading + updating cookie consent.
|
|
@@ -1071,4 +1038,4 @@ interface FFIDCookieLinkProps {
|
|
|
1071
1038
|
}
|
|
1072
1039
|
declare function FFIDCookieLink({ children, className, style, id, }: FFIDCookieLinkProps): React.JSX.Element;
|
|
1073
1040
|
|
|
1074
|
-
export {
|
|
1041
|
+
export { type GetCategoriesWire as $, ALL_DENIED_EXCEPT_NECESSARY as A, type FFIDConsentMergeWarningEvent 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, 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 };
|
|
@@ -343,31 +343,20 @@ type GetDocumentWire = z.infer<typeof GetDocumentWireSchema>;
|
|
|
343
343
|
* call. Spec §5.3 requires non-null warnings to be visible to the user.
|
|
344
344
|
*
|
|
345
345
|
* @remarks
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
*
|
|
349
|
-
*
|
|
350
|
-
*
|
|
346
|
+
* Code-only since v7.0.0 (#3402). Copy lives in the consumer's own i18n layer:
|
|
347
|
+
* pattern-match on `code` and resolve it against a
|
|
348
|
+
* `Record<FFIDConsentMergeWarning, string>` so TypeScript exhaustiveness-checks
|
|
349
|
+
* every literal and the dictionary can never leak `undefined`.
|
|
350
|
+
*
|
|
351
|
+
* Kept as an object rather than collapsed into a bare
|
|
352
|
+
* `FFIDConsentMergeWarning` alias for two reasons: consumers that followed the
|
|
353
|
+
* v5.5 deprecation notice already read `warning.code`, so this shape needs no
|
|
354
|
+
* second migration from them; and it leaves room to widen into a discriminated
|
|
355
|
+
* union (`{ code: 'drift_detected', mergeStrategy: 'db_wins' } | ...`) without
|
|
356
|
+
* another breaking change.
|
|
351
357
|
*/
|
|
352
358
|
interface FFIDConsentMergeWarningEvent {
|
|
353
359
|
code: FFIDConsentMergeWarning;
|
|
354
|
-
/**
|
|
355
|
-
* Human-readable copy. Defaults to the SDK's built-in Japanese copy unless
|
|
356
|
-
* `<FFIDAnalyticsProvider mergeWarningMessages={...}>` overrides it.
|
|
357
|
-
*
|
|
358
|
-
* @deprecated Scheduled for removal in `@feelflow/ffid-sdk` v6.0 so that
|
|
359
|
-
* `FFIDConsentMergeWarningEvent` becomes symmetric with
|
|
360
|
-
* `FFIDConsentSyncResult.warning` (code-only). Consumers should
|
|
361
|
-
* pattern-match on `code` and resolve copy in their own i18n layer.
|
|
362
|
-
*
|
|
363
|
-
* Migration: replace `event.message` reads with `messages[event.code]`
|
|
364
|
-
* where `messages` is typed as
|
|
365
|
-
* `Record<FFIDConsentMergeWarning, string>` (not `Partial<...>`) so
|
|
366
|
-
* TypeScript exhaustiveness-checks every enum value at compile time
|
|
367
|
-
* and the dictionary can never leak `undefined` the way an unchecked
|
|
368
|
-
* `event.message` could in pre-v5.5 SDKs.
|
|
369
|
-
*/
|
|
370
|
-
message: string;
|
|
371
360
|
}
|
|
372
361
|
/**
|
|
373
362
|
* Result of a sync call surfaced to consumers — drops the wire envelope and
|
|
@@ -779,27 +768,11 @@ interface FFIDAnalyticsProviderProps {
|
|
|
779
768
|
* suppressed by a UX dismissal.
|
|
780
769
|
*/
|
|
781
770
|
dismissalCooldownMinutes?: number;
|
|
782
|
-
/**
|
|
783
|
-
* Per-locale override map for `FFIDConsentMergeWarningEvent.message`.
|
|
784
|
-
*
|
|
785
|
-
* The Provider derives `message` for the `onConsentChange(state, warning)`
|
|
786
|
-
* callback from this map, falling back to `DEFAULT_MERGE_WARNING_MESSAGES`
|
|
787
|
-
* (JP) for any missing key. Pass only the keys you need to translate —
|
|
788
|
-
* partial overrides are merged with the defaults.
|
|
789
|
-
*
|
|
790
|
-
* Note: the underlying `code` (`FFIDConsentMergeWarning`) is the canonical
|
|
791
|
-
* identifier — multi-locale consumers should prefer pattern-matching on
|
|
792
|
-
* `warning.code` over reading `warning.message` directly. The `message`
|
|
793
|
-
* field is `@deprecated` and scheduled for removal in v6.0; this prop is
|
|
794
|
-
* the interim escape hatch so non-JP consumers don't have to wait for the
|
|
795
|
-
* v6.0 major to surface localized copy.
|
|
796
|
-
*/
|
|
797
|
-
mergeWarningMessages?: Partial<Record<FFIDConsentMergeWarning, string>>;
|
|
798
771
|
/** Optional fetch override (mainly for tests). */
|
|
799
772
|
fetchImpl?: typeof fetch;
|
|
800
773
|
children: ReactNode;
|
|
801
774
|
}
|
|
802
|
-
declare function FFIDAnalyticsProvider({ baseUrl, serviceApiKey, getAccessToken, gaMeasurementId, gaEnabled, sentryReplay, sentry, onConsentChange, onError, autoShowBanner, dismissalCooldownMinutes,
|
|
775
|
+
declare function FFIDAnalyticsProvider({ baseUrl, serviceApiKey, getAccessToken, gaMeasurementId, gaEnabled, sentryReplay, sentry, onConsentChange, onError, autoShowBanner, dismissalCooldownMinutes, fetchImpl, children, }: FFIDAnalyticsProviderProps): React.JSX.Element;
|
|
803
776
|
|
|
804
777
|
interface FFIDConsentContextValue {
|
|
805
778
|
/** Current consent state. Always non-null; "not yet decided" is encoded by `hasDecided=false`. */
|
|
@@ -850,12 +823,6 @@ interface FFIDConsentContextValue {
|
|
|
850
823
|
}
|
|
851
824
|
declare const FFID_CONSENT_NOT_DECIDED_STATE: FFIDConsentState;
|
|
852
825
|
declare const FFIDConsentContext: React$1.Context<FFIDConsentContextValue>;
|
|
853
|
-
/**
|
|
854
|
-
* Warning literal-keyed default copy for `local_state_overridden` /
|
|
855
|
-
* `shared_device_detected` / `drift_detected`. Surfaced by the Provider via
|
|
856
|
-
* `onConsentChange(state, warning)` per spec §5.3.
|
|
857
|
-
*/
|
|
858
|
-
declare const DEFAULT_MERGE_WARNING_MESSAGES: Record<FFIDConsentMergeWarning, string>;
|
|
859
826
|
|
|
860
827
|
/**
|
|
861
828
|
* `useFFIDConsent` — primary hook for reading + updating cookie consent.
|
|
@@ -1071,4 +1038,4 @@ interface FFIDCookieLinkProps {
|
|
|
1071
1038
|
}
|
|
1072
1039
|
declare function FFIDCookieLink({ children, className, style, id, }: FFIDCookieLinkProps): React.JSX.Element;
|
|
1073
1040
|
|
|
1074
|
-
export {
|
|
1041
|
+
export { type GetCategoriesWire as $, ALL_DENIED_EXCEPT_NECESSARY as A, type FFIDConsentMergeWarningEvent 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, 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 };
|