@feelflow/ffid-sdk 2.20.0 → 3.0.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 +37 -0
- package/dist/agency/index.cjs +3 -3
- package/dist/agency/index.d.cts +1 -1
- package/dist/agency/index.d.ts +1 -1
- package/dist/agency/index.js +2 -2
- package/dist/announcements/index.cjs +2 -2
- package/dist/announcements/index.js +1 -1
- package/dist/chunk-JEVK2XUM.js +5 -0
- package/dist/{chunk-KNEZ5OUQ.cjs → chunk-JNR4AKL5.cjs} +133 -3
- package/dist/{chunk-YUIITYBE.cjs → chunk-MDHKSVLP.cjs} +2 -0
- package/dist/{chunk-GCUVFSB2.js → chunk-XWI4BFKW.js} +133 -4
- 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/constants-D61jqRIO.d.cts +35 -0
- package/dist/constants-D61jqRIO.d.ts +35 -0
- package/dist/{ffid-client-Cjm_TKUc.d.cts → ffid-client-B26jbUp5.d.cts} +72 -0
- package/dist/{ffid-client-Cjm_TKUc.d.ts → ffid-client-B26jbUp5.d.ts} +72 -0
- package/dist/{index-0D2vYSLq.d.cts → index-C3zyNa4j.d.cts} +37 -1
- package/dist/{index-0D2vYSLq.d.ts → index-C3zyNa4j.d.ts} +37 -1
- package/dist/index.cjs +37 -31
- package/dist/index.d.cts +68 -4
- package/dist/index.d.ts +68 -4
- package/dist/index.js +4 -3
- package/dist/legal/index.cjs +3 -3
- package/dist/legal/index.d.cts +1 -1
- package/dist/legal/index.d.ts +1 -1
- package/dist/legal/index.js +2 -2
- package/dist/server/index.cjs +135 -5
- package/dist/server/index.d.cts +3 -3
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.js +130 -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/chunk-QBRM2RRC.js +0 -4
- package/dist/constants-DvTGHPZn.d.cts +0 -10
- package/dist/constants-DvTGHPZn.d.ts +0 -10
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { N as FFIDAnnouncementBadge, am as FFIDAnnouncementBadgeClassNames, an as FFIDAnnouncementBadgeProps, O as FFIDAnnouncementList, ao as FFIDAnnouncementListClassNames, ap as FFIDAnnouncementListProps, W as FFIDInquiryForm, X as FFIDInquiryFormCategoryItem, Y as FFIDInquiryFormClassNames, Z as FFIDInquiryFormOrganization, _ as FFIDInquiryFormPlaceholderContext, $ as FFIDInquiryFormPrefill, a0 as FFIDInquiryFormProps, a1 as FFIDInquiryFormSubmitData, a2 as FFIDInquiryFormSubmitResult, a4 as FFIDLoginButton, aq as FFIDLoginButtonProps, aa as FFIDOrganizationSwitcher, ar as FFIDOrganizationSwitcherClassNames, as as FFIDOrganizationSwitcherProps, ad as FFIDSubscriptionBadge, at as FFIDSubscriptionBadgeClassNames, au as FFIDSubscriptionBadgeProps, af as FFIDUserMenu, av as FFIDUserMenuClassNames, aw as FFIDUserMenuProps } from '../index-C3zyNa4j.js';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import 'react';
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDInquiryForm, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDSubscriptionBadge, FFIDUserMenu } from '../chunk-
|
|
1
|
+
export { FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDInquiryForm, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDSubscriptionBadge, FFIDUserMenu } from '../chunk-XWI4BFKW.js';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FFID SDK Shared Constants
|
|
3
|
+
*
|
|
4
|
+
* Constants shared across all SDK entry points.
|
|
5
|
+
* Centralizing these prevents drift during domain/URL changes.
|
|
6
|
+
*/
|
|
7
|
+
/** Default FFID API base URL (production) */
|
|
8
|
+
declare const DEFAULT_API_BASE_URL = "https://id.feelflow.net";
|
|
9
|
+
/**
|
|
10
|
+
* Recommended default OAuth scope set for FFID-connected services (v3.0.0+).
|
|
11
|
+
*
|
|
12
|
+
* Coverage:
|
|
13
|
+
* - `openid email profile` — OIDC standard claims (always required)
|
|
14
|
+
* - `subscription:read` — `/api/v1/subscriptions/ext/*` 系(プラン / 課金 gate)
|
|
15
|
+
* - `legal:read` — `/api/v1/legal/ext` 系(利用規約・同意状態)
|
|
16
|
+
*
|
|
17
|
+
* Add feature-specific scopes on top of this when needed (browser SDK):
|
|
18
|
+
* - `analytics:read` for `/api/v1/ext/analytics/config`
|
|
19
|
+
* - `organization:read` / `organization:write` for `/api/v1/organizations/ext/members`
|
|
20
|
+
* - `subscription:write` for self-serve plan changes
|
|
21
|
+
* - `legal:write` for recording user consent
|
|
22
|
+
* - `profile:read` / `profile:write` for profile UI
|
|
23
|
+
* - `organization:api-key` for org-level API key issuance
|
|
24
|
+
*
|
|
25
|
+
* **Note**: kept as a widened `string` (not `as const`) so consumers can
|
|
26
|
+
* concatenate additional scopes (e.g. `\`${DEFAULT_OAUTH_SCOPES} analytics:read\``)
|
|
27
|
+
* and so it remains assignable to `FFIDConfig.scope: string`. `widget:verify`
|
|
28
|
+
* is intentionally excluded — it is a service-key-only scope (`/api/v1/widget/*`),
|
|
29
|
+
* not used by the browser OAuth flow.
|
|
30
|
+
*
|
|
31
|
+
* Survey: feel-flow/feelflow-id-platform#2656 issuecomment-4324082742
|
|
32
|
+
*/
|
|
33
|
+
declare const DEFAULT_OAUTH_SCOPES = "openid email profile subscription:read legal:read";
|
|
34
|
+
|
|
35
|
+
export { DEFAULT_API_BASE_URL as D, DEFAULT_OAUTH_SCOPES as a };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FFID SDK Shared Constants
|
|
3
|
+
*
|
|
4
|
+
* Constants shared across all SDK entry points.
|
|
5
|
+
* Centralizing these prevents drift during domain/URL changes.
|
|
6
|
+
*/
|
|
7
|
+
/** Default FFID API base URL (production) */
|
|
8
|
+
declare const DEFAULT_API_BASE_URL = "https://id.feelflow.net";
|
|
9
|
+
/**
|
|
10
|
+
* Recommended default OAuth scope set for FFID-connected services (v3.0.0+).
|
|
11
|
+
*
|
|
12
|
+
* Coverage:
|
|
13
|
+
* - `openid email profile` — OIDC standard claims (always required)
|
|
14
|
+
* - `subscription:read` — `/api/v1/subscriptions/ext/*` 系(プラン / 課金 gate)
|
|
15
|
+
* - `legal:read` — `/api/v1/legal/ext` 系(利用規約・同意状態)
|
|
16
|
+
*
|
|
17
|
+
* Add feature-specific scopes on top of this when needed (browser SDK):
|
|
18
|
+
* - `analytics:read` for `/api/v1/ext/analytics/config`
|
|
19
|
+
* - `organization:read` / `organization:write` for `/api/v1/organizations/ext/members`
|
|
20
|
+
* - `subscription:write` for self-serve plan changes
|
|
21
|
+
* - `legal:write` for recording user consent
|
|
22
|
+
* - `profile:read` / `profile:write` for profile UI
|
|
23
|
+
* - `organization:api-key` for org-level API key issuance
|
|
24
|
+
*
|
|
25
|
+
* **Note**: kept as a widened `string` (not `as const`) so consumers can
|
|
26
|
+
* concatenate additional scopes (e.g. `\`${DEFAULT_OAUTH_SCOPES} analytics:read\``)
|
|
27
|
+
* and so it remains assignable to `FFIDConfig.scope: string`. `widget:verify`
|
|
28
|
+
* is intentionally excluded — it is a service-key-only scope (`/api/v1/widget/*`),
|
|
29
|
+
* not used by the browser OAuth flow.
|
|
30
|
+
*
|
|
31
|
+
* Survey: feel-flow/feelflow-id-platform#2656 issuecomment-4324082742
|
|
32
|
+
*/
|
|
33
|
+
declare const DEFAULT_OAUTH_SCOPES = "openid email profile subscription:read legal:read";
|
|
34
|
+
|
|
35
|
+
export { DEFAULT_API_BASE_URL as D, DEFAULT_OAUTH_SCOPES as a };
|
|
@@ -127,6 +127,40 @@ interface FFIDNewsletterUnsubscribeParams {
|
|
|
127
127
|
interface FFIDNewsletterUnsubscribeResponse {
|
|
128
128
|
ok: true;
|
|
129
129
|
}
|
|
130
|
+
type FFIDNewsletterCampaignStatus = 'draft' | 'queued' | 'sending' | 'sent' | 'failed' | 'cancelled';
|
|
131
|
+
type FFIDNewsletterSegment = {
|
|
132
|
+
type: 'all';
|
|
133
|
+
} | {
|
|
134
|
+
type: 'filter';
|
|
135
|
+
conditions: Record<string, unknown>;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Body source XOR — exactly one of `htmlBody` / `templateId` must be set.
|
|
139
|
+
* V1 only ships `htmlBody`; `templateId` is reserved for SendGrid dynamic
|
|
140
|
+
* templates and is rejected server-side until that work lands.
|
|
141
|
+
*/
|
|
142
|
+
type FFIDNewsletterBodySource = {
|
|
143
|
+
htmlBody: string;
|
|
144
|
+
templateId?: never;
|
|
145
|
+
} | {
|
|
146
|
+
templateId: string;
|
|
147
|
+
htmlBody?: never;
|
|
148
|
+
};
|
|
149
|
+
interface FFIDNewsletterDispatchParams {
|
|
150
|
+
subject: string;
|
|
151
|
+
/** Optional landing-page URL persisted on `newsletter_campaigns.article_url`. */
|
|
152
|
+
articleUrl?: string;
|
|
153
|
+
body: FFIDNewsletterBodySource;
|
|
154
|
+
/** Defaults to `{ type: 'all' }` server-side when omitted. */
|
|
155
|
+
segment?: FFIDNewsletterSegment;
|
|
156
|
+
}
|
|
157
|
+
interface FFIDNewsletterDispatchResponse {
|
|
158
|
+
campaignId: string;
|
|
159
|
+
totalRecipients: number;
|
|
160
|
+
status: FFIDNewsletterCampaignStatus;
|
|
161
|
+
sentCount: number;
|
|
162
|
+
failedCount: number;
|
|
163
|
+
}
|
|
130
164
|
|
|
131
165
|
/** Cache adapter interface for FFID SDK token verification */
|
|
132
166
|
/**
|
|
@@ -589,6 +623,19 @@ interface FFIDVerifyAccessTokenOptions {
|
|
|
589
623
|
interface FFIDConfig {
|
|
590
624
|
/** Service code to identify your application */
|
|
591
625
|
serviceCode: string;
|
|
626
|
+
/**
|
|
627
|
+
* OAuth 2.0 scope (space-separated). Required since v3.0.0 (#2674).
|
|
628
|
+
*
|
|
629
|
+
* Use `DEFAULT_OAUTH_SCOPES` from `@feelflow/ffid-sdk` for the recommended
|
|
630
|
+
* baseline, or specify a least-privilege subset for your use case. Phase 3
|
|
631
|
+
* of `feelflow-id-platform#2656` will reject `/oauth/authorize` requests
|
|
632
|
+
* without this parameter, so passing an empty string here is also rejected
|
|
633
|
+
* — **except** in `service-key` mode (server-to-server, never calls
|
|
634
|
+
* `/oauth/authorize`), where `''` is permitted at runtime.
|
|
635
|
+
*
|
|
636
|
+
* @example 'openid email profile subscription:read legal:read'
|
|
637
|
+
*/
|
|
638
|
+
scope: string;
|
|
592
639
|
/** FFID API base URL (defaults to production) */
|
|
593
640
|
apiBaseUrl?: string | undefined;
|
|
594
641
|
/**
|
|
@@ -847,6 +894,29 @@ interface FFIDProfileCallOptions {
|
|
|
847
894
|
*/
|
|
848
895
|
accessToken?: string;
|
|
849
896
|
}
|
|
897
|
+
/**
|
|
898
|
+
* Response shape from `GET /api/v1/ext/analytics/config?service=<code>`.
|
|
899
|
+
*
|
|
900
|
+
* Returned by `FFIDClient.getAnalyticsConfig()`. Narrower than the admin-side
|
|
901
|
+
* `AnalyticsService` shape to avoid leaking internal columns
|
|
902
|
+
* (`ga4StreamId`, `lastSyncedAt`, `description`).
|
|
903
|
+
*
|
|
904
|
+
* @see Issue #2347
|
|
905
|
+
*/
|
|
906
|
+
interface FFIDAnalyticsConfig {
|
|
907
|
+
/** Service slug (kebab-case) — echoed back so callers can sanity-check */
|
|
908
|
+
code: string;
|
|
909
|
+
/** GA4 Measurement ID (`G-XXXXXXX`) */
|
|
910
|
+
measurementId: string;
|
|
911
|
+
/** GA4 displayName at the time of the last sync */
|
|
912
|
+
displayName: string;
|
|
913
|
+
/**
|
|
914
|
+
* `false` when the GA4 data stream has been archived. The measurement id is
|
|
915
|
+
* still returned so in-flight events do not 5xx during a cutover window —
|
|
916
|
+
* the caller should disable tracking on the next deploy.
|
|
917
|
+
*/
|
|
918
|
+
isActive: boolean;
|
|
919
|
+
}
|
|
850
920
|
/**
|
|
851
921
|
* Request payload for `updateProfile`.
|
|
852
922
|
*
|
|
@@ -1064,6 +1134,7 @@ declare function createFFIDClient(config: FFIDConfig): {
|
|
|
1064
1134
|
}) => Promise<FFIDApiResponse<FFIDRemoveMemberResponse>>;
|
|
1065
1135
|
getProfile: (options?: FFIDProfileCallOptions) => Promise<FFIDApiResponse<FFIDUserProfile>>;
|
|
1066
1136
|
updateProfile: (data: FFIDUpdateUserProfileRequest, options?: FFIDProfileCallOptions) => Promise<FFIDApiResponse<FFIDUserProfile>>;
|
|
1137
|
+
getAnalyticsConfig: (serviceCode: string, options?: FFIDProfileCallOptions) => Promise<FFIDApiResponse<FFIDAnalyticsConfig>>;
|
|
1067
1138
|
createCheckoutSession: (params: FFIDCreateCheckoutParams) => Promise<FFIDApiResponse<FFIDCheckoutSessionResponse>>;
|
|
1068
1139
|
createPortalSession: (params: FFIDCreatePortalParams) => Promise<FFIDApiResponse<FFIDPortalSessionResponse>>;
|
|
1069
1140
|
listPlans: () => Promise<FFIDApiResponse<FFIDListPlansResponse>>;
|
|
@@ -1101,6 +1172,7 @@ declare function createFFIDClient(config: FFIDConfig): {
|
|
|
1101
1172
|
subscribe: (params: FFIDNewsletterSubscribeParams) => Promise<FFIDApiResponse<FFIDNewsletterSubscribeResponse>>;
|
|
1102
1173
|
confirm: (params: FFIDNewsletterConfirmParams) => Promise<FFIDApiResponse<FFIDNewsletterConfirmResponse>>;
|
|
1103
1174
|
unsubscribe: (params: FFIDNewsletterUnsubscribeParams) => Promise<FFIDApiResponse<FFIDNewsletterUnsubscribeResponse>>;
|
|
1175
|
+
dispatch: (params: FFIDNewsletterDispatchParams) => Promise<FFIDApiResponse<FFIDNewsletterDispatchResponse>>;
|
|
1104
1176
|
};
|
|
1105
1177
|
/** Inquiry methods (create) */
|
|
1106
1178
|
inquiry: {
|
|
@@ -127,6 +127,40 @@ interface FFIDNewsletterUnsubscribeParams {
|
|
|
127
127
|
interface FFIDNewsletterUnsubscribeResponse {
|
|
128
128
|
ok: true;
|
|
129
129
|
}
|
|
130
|
+
type FFIDNewsletterCampaignStatus = 'draft' | 'queued' | 'sending' | 'sent' | 'failed' | 'cancelled';
|
|
131
|
+
type FFIDNewsletterSegment = {
|
|
132
|
+
type: 'all';
|
|
133
|
+
} | {
|
|
134
|
+
type: 'filter';
|
|
135
|
+
conditions: Record<string, unknown>;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Body source XOR — exactly one of `htmlBody` / `templateId` must be set.
|
|
139
|
+
* V1 only ships `htmlBody`; `templateId` is reserved for SendGrid dynamic
|
|
140
|
+
* templates and is rejected server-side until that work lands.
|
|
141
|
+
*/
|
|
142
|
+
type FFIDNewsletterBodySource = {
|
|
143
|
+
htmlBody: string;
|
|
144
|
+
templateId?: never;
|
|
145
|
+
} | {
|
|
146
|
+
templateId: string;
|
|
147
|
+
htmlBody?: never;
|
|
148
|
+
};
|
|
149
|
+
interface FFIDNewsletterDispatchParams {
|
|
150
|
+
subject: string;
|
|
151
|
+
/** Optional landing-page URL persisted on `newsletter_campaigns.article_url`. */
|
|
152
|
+
articleUrl?: string;
|
|
153
|
+
body: FFIDNewsletterBodySource;
|
|
154
|
+
/** Defaults to `{ type: 'all' }` server-side when omitted. */
|
|
155
|
+
segment?: FFIDNewsletterSegment;
|
|
156
|
+
}
|
|
157
|
+
interface FFIDNewsletterDispatchResponse {
|
|
158
|
+
campaignId: string;
|
|
159
|
+
totalRecipients: number;
|
|
160
|
+
status: FFIDNewsletterCampaignStatus;
|
|
161
|
+
sentCount: number;
|
|
162
|
+
failedCount: number;
|
|
163
|
+
}
|
|
130
164
|
|
|
131
165
|
/** Cache adapter interface for FFID SDK token verification */
|
|
132
166
|
/**
|
|
@@ -589,6 +623,19 @@ interface FFIDVerifyAccessTokenOptions {
|
|
|
589
623
|
interface FFIDConfig {
|
|
590
624
|
/** Service code to identify your application */
|
|
591
625
|
serviceCode: string;
|
|
626
|
+
/**
|
|
627
|
+
* OAuth 2.0 scope (space-separated). Required since v3.0.0 (#2674).
|
|
628
|
+
*
|
|
629
|
+
* Use `DEFAULT_OAUTH_SCOPES` from `@feelflow/ffid-sdk` for the recommended
|
|
630
|
+
* baseline, or specify a least-privilege subset for your use case. Phase 3
|
|
631
|
+
* of `feelflow-id-platform#2656` will reject `/oauth/authorize` requests
|
|
632
|
+
* without this parameter, so passing an empty string here is also rejected
|
|
633
|
+
* — **except** in `service-key` mode (server-to-server, never calls
|
|
634
|
+
* `/oauth/authorize`), where `''` is permitted at runtime.
|
|
635
|
+
*
|
|
636
|
+
* @example 'openid email profile subscription:read legal:read'
|
|
637
|
+
*/
|
|
638
|
+
scope: string;
|
|
592
639
|
/** FFID API base URL (defaults to production) */
|
|
593
640
|
apiBaseUrl?: string | undefined;
|
|
594
641
|
/**
|
|
@@ -847,6 +894,29 @@ interface FFIDProfileCallOptions {
|
|
|
847
894
|
*/
|
|
848
895
|
accessToken?: string;
|
|
849
896
|
}
|
|
897
|
+
/**
|
|
898
|
+
* Response shape from `GET /api/v1/ext/analytics/config?service=<code>`.
|
|
899
|
+
*
|
|
900
|
+
* Returned by `FFIDClient.getAnalyticsConfig()`. Narrower than the admin-side
|
|
901
|
+
* `AnalyticsService` shape to avoid leaking internal columns
|
|
902
|
+
* (`ga4StreamId`, `lastSyncedAt`, `description`).
|
|
903
|
+
*
|
|
904
|
+
* @see Issue #2347
|
|
905
|
+
*/
|
|
906
|
+
interface FFIDAnalyticsConfig {
|
|
907
|
+
/** Service slug (kebab-case) — echoed back so callers can sanity-check */
|
|
908
|
+
code: string;
|
|
909
|
+
/** GA4 Measurement ID (`G-XXXXXXX`) */
|
|
910
|
+
measurementId: string;
|
|
911
|
+
/** GA4 displayName at the time of the last sync */
|
|
912
|
+
displayName: string;
|
|
913
|
+
/**
|
|
914
|
+
* `false` when the GA4 data stream has been archived. The measurement id is
|
|
915
|
+
* still returned so in-flight events do not 5xx during a cutover window —
|
|
916
|
+
* the caller should disable tracking on the next deploy.
|
|
917
|
+
*/
|
|
918
|
+
isActive: boolean;
|
|
919
|
+
}
|
|
850
920
|
/**
|
|
851
921
|
* Request payload for `updateProfile`.
|
|
852
922
|
*
|
|
@@ -1064,6 +1134,7 @@ declare function createFFIDClient(config: FFIDConfig): {
|
|
|
1064
1134
|
}) => Promise<FFIDApiResponse<FFIDRemoveMemberResponse>>;
|
|
1065
1135
|
getProfile: (options?: FFIDProfileCallOptions) => Promise<FFIDApiResponse<FFIDUserProfile>>;
|
|
1066
1136
|
updateProfile: (data: FFIDUpdateUserProfileRequest, options?: FFIDProfileCallOptions) => Promise<FFIDApiResponse<FFIDUserProfile>>;
|
|
1137
|
+
getAnalyticsConfig: (serviceCode: string, options?: FFIDProfileCallOptions) => Promise<FFIDApiResponse<FFIDAnalyticsConfig>>;
|
|
1067
1138
|
createCheckoutSession: (params: FFIDCreateCheckoutParams) => Promise<FFIDApiResponse<FFIDCheckoutSessionResponse>>;
|
|
1068
1139
|
createPortalSession: (params: FFIDCreatePortalParams) => Promise<FFIDApiResponse<FFIDPortalSessionResponse>>;
|
|
1069
1140
|
listPlans: () => Promise<FFIDApiResponse<FFIDListPlansResponse>>;
|
|
@@ -1101,6 +1172,7 @@ declare function createFFIDClient(config: FFIDConfig): {
|
|
|
1101
1172
|
subscribe: (params: FFIDNewsletterSubscribeParams) => Promise<FFIDApiResponse<FFIDNewsletterSubscribeResponse>>;
|
|
1102
1173
|
confirm: (params: FFIDNewsletterConfirmParams) => Promise<FFIDApiResponse<FFIDNewsletterConfirmResponse>>;
|
|
1103
1174
|
unsubscribe: (params: FFIDNewsletterUnsubscribeParams) => Promise<FFIDApiResponse<FFIDNewsletterUnsubscribeResponse>>;
|
|
1175
|
+
dispatch: (params: FFIDNewsletterDispatchParams) => Promise<FFIDApiResponse<FFIDNewsletterDispatchResponse>>;
|
|
1104
1176
|
};
|
|
1105
1177
|
/** Inquiry methods (create) */
|
|
1106
1178
|
inquiry: {
|
|
@@ -192,6 +192,19 @@ interface FFIDVerifyAccessTokenOptions {
|
|
|
192
192
|
interface FFIDConfig {
|
|
193
193
|
/** Service code to identify your application */
|
|
194
194
|
serviceCode: string;
|
|
195
|
+
/**
|
|
196
|
+
* OAuth 2.0 scope (space-separated). Required since v3.0.0 (#2674).
|
|
197
|
+
*
|
|
198
|
+
* Use `DEFAULT_OAUTH_SCOPES` from `@feelflow/ffid-sdk` for the recommended
|
|
199
|
+
* baseline, or specify a least-privilege subset for your use case. Phase 3
|
|
200
|
+
* of `feelflow-id-platform#2656` will reject `/oauth/authorize` requests
|
|
201
|
+
* without this parameter, so passing an empty string here is also rejected
|
|
202
|
+
* — **except** in `service-key` mode (server-to-server, never calls
|
|
203
|
+
* `/oauth/authorize`), where `''` is permitted at runtime.
|
|
204
|
+
*
|
|
205
|
+
* @example 'openid email profile subscription:read legal:read'
|
|
206
|
+
*/
|
|
207
|
+
scope: string;
|
|
195
208
|
/** FFID API base URL (defaults to production) */
|
|
196
209
|
apiBaseUrl?: string | undefined;
|
|
197
210
|
/**
|
|
@@ -580,6 +593,29 @@ interface FFIDProfileCallOptions {
|
|
|
580
593
|
*/
|
|
581
594
|
accessToken?: string;
|
|
582
595
|
}
|
|
596
|
+
/**
|
|
597
|
+
* Response shape from `GET /api/v1/ext/analytics/config?service=<code>`.
|
|
598
|
+
*
|
|
599
|
+
* Returned by `FFIDClient.getAnalyticsConfig()`. Narrower than the admin-side
|
|
600
|
+
* `AnalyticsService` shape to avoid leaking internal columns
|
|
601
|
+
* (`ga4StreamId`, `lastSyncedAt`, `description`).
|
|
602
|
+
*
|
|
603
|
+
* @see Issue #2347
|
|
604
|
+
*/
|
|
605
|
+
interface FFIDAnalyticsConfig {
|
|
606
|
+
/** Service slug (kebab-case) — echoed back so callers can sanity-check */
|
|
607
|
+
code: string;
|
|
608
|
+
/** GA4 Measurement ID (`G-XXXXXXX`) */
|
|
609
|
+
measurementId: string;
|
|
610
|
+
/** GA4 displayName at the time of the last sync */
|
|
611
|
+
displayName: string;
|
|
612
|
+
/**
|
|
613
|
+
* `false` when the GA4 data stream has been archived. The measurement id is
|
|
614
|
+
* still returned so in-flight events do not 5xx during a cutover window —
|
|
615
|
+
* the caller should disable tracking on the next deploy.
|
|
616
|
+
*/
|
|
617
|
+
isActive: boolean;
|
|
618
|
+
}
|
|
583
619
|
/**
|
|
584
620
|
* Request payload for `updateProfile`.
|
|
585
621
|
*
|
|
@@ -1386,4 +1422,4 @@ interface FFIDInquiryFormPlaceholderContext {
|
|
|
1386
1422
|
}
|
|
1387
1423
|
declare function FFIDInquiryForm({ mode, prefill, organizations, preselectedOrganizationId, categories, termsVersion, privacyVersion, termsHref, privacyHref, turnstileToken, turnstileSlot, onSubmit, onChange, separateLegalCheckboxes, messagePlaceholder, requireCategorySelection, unstyled, classNames, locale, className, }: FFIDInquiryFormProps): react_jsx_runtime.JSX.Element;
|
|
1388
1424
|
|
|
1389
|
-
export { type
|
|
1425
|
+
export { type FFIDInquiryFormPrefill as $, type FFIDOrganization as A, type FFIDSubscription as B, type FFIDSubscriptionContextValue as C, type FFIDAnnouncementsClientConfig as D, type EffectiveSubscriptionStatus as E, type FFIDSubscriptionStatus as F, type FFIDAnnouncementsApiResponse as G, type AnnouncementListResponse as H, type FFIDAnnouncementsLogger as I, type Announcement as J, type AnnouncementStatus as K, type ListAnnouncementsOptions as L, type AnnouncementType as M, FFIDAnnouncementBadge as N, FFIDAnnouncementList as O, type FFIDAnnouncementsError as P, type FFIDAnnouncementsErrorCode as Q, type FFIDAnnouncementsServerResponse as R, type FFIDCacheConfig as S, type FFIDContextValue as T, type FFIDInquiryCategory as U, type FFIDInquiryCategorySite2026 as V, FFIDInquiryForm as W, type FFIDInquiryFormCategoryItem as X, type FFIDInquiryFormClassNames as Y, type FFIDInquiryFormOrganization as Z, type FFIDInquiryFormPlaceholderContext as _, type FFIDConfig as a, type FFIDInquiryFormProps as a0, type FFIDInquiryFormSubmitData as a1, type FFIDInquiryFormSubmitResult as a2, type FFIDJwtClaims as a3, FFIDLoginButton as a4, type FFIDMemberStatus as a5, type FFIDOAuthTokenResponse as a6, type FFIDOAuthUserInfoMemberRole as a7, type FFIDOAuthUserInfoSubscription as a8, type FFIDOrganizationMember as a9, FFIDOrganizationSwitcher as aa, type FFIDRedirectErrorCode as ab, type FFIDSeatModel as ac, FFIDSubscriptionBadge as ad, type FFIDTokenIntrospectionResponse as ae, FFIDUserMenu as af, FFID_INQUIRY_CATEGORIES as ag, FFID_INQUIRY_CATEGORIES_SITE_2026 as ah, type UseFFIDAnnouncementsOptions as ai, type UseFFIDAnnouncementsReturn as aj, isFFIDInquiryCategorySite2026 as ak, useFFIDAnnouncements as al, type FFIDAnnouncementBadgeClassNames as am, type FFIDAnnouncementBadgeProps as an, type FFIDAnnouncementListClassNames as ao, type FFIDAnnouncementListProps as ap, type FFIDLoginButtonProps as aq, type FFIDOrganizationSwitcherClassNames as ar, type FFIDOrganizationSwitcherProps as as, type FFIDSubscriptionBadgeClassNames as at, type FFIDSubscriptionBadgeProps as au, type FFIDUserMenuClassNames as av, type FFIDUserMenuProps as aw, type FFIDApiResponse as b, type FFIDSessionResponse as c, type FFIDRedirectResult as d, type FFIDError as e, type FFIDSubscriptionCheckResponse as f, type FFIDListMembersResponse as g, type FFIDMemberRole as h, type FFIDUpdateMemberRoleResponse as i, type FFIDRemoveMemberResponse as j, type FFIDProfileCallOptions as k, type FFIDUserProfile as l, type FFIDUpdateUserProfileRequest as m, type FFIDAnalyticsConfig as n, type FFIDCreateCheckoutParams as o, type FFIDCheckoutSessionResponse as p, type FFIDCreatePortalParams as q, type FFIDPortalSessionResponse as r, type FFIDVerifyAccessTokenOptions as s, type FFIDOAuthUserInfo as t, type FFIDInquiryCreateParams as u, type FFIDInquiryCreateResponse as v, type FFIDAuthMode as w, type FFIDLogger as x, type FFIDCacheAdapter as y, type FFIDUser as z };
|
|
@@ -192,6 +192,19 @@ interface FFIDVerifyAccessTokenOptions {
|
|
|
192
192
|
interface FFIDConfig {
|
|
193
193
|
/** Service code to identify your application */
|
|
194
194
|
serviceCode: string;
|
|
195
|
+
/**
|
|
196
|
+
* OAuth 2.0 scope (space-separated). Required since v3.0.0 (#2674).
|
|
197
|
+
*
|
|
198
|
+
* Use `DEFAULT_OAUTH_SCOPES` from `@feelflow/ffid-sdk` for the recommended
|
|
199
|
+
* baseline, or specify a least-privilege subset for your use case. Phase 3
|
|
200
|
+
* of `feelflow-id-platform#2656` will reject `/oauth/authorize` requests
|
|
201
|
+
* without this parameter, so passing an empty string here is also rejected
|
|
202
|
+
* — **except** in `service-key` mode (server-to-server, never calls
|
|
203
|
+
* `/oauth/authorize`), where `''` is permitted at runtime.
|
|
204
|
+
*
|
|
205
|
+
* @example 'openid email profile subscription:read legal:read'
|
|
206
|
+
*/
|
|
207
|
+
scope: string;
|
|
195
208
|
/** FFID API base URL (defaults to production) */
|
|
196
209
|
apiBaseUrl?: string | undefined;
|
|
197
210
|
/**
|
|
@@ -580,6 +593,29 @@ interface FFIDProfileCallOptions {
|
|
|
580
593
|
*/
|
|
581
594
|
accessToken?: string;
|
|
582
595
|
}
|
|
596
|
+
/**
|
|
597
|
+
* Response shape from `GET /api/v1/ext/analytics/config?service=<code>`.
|
|
598
|
+
*
|
|
599
|
+
* Returned by `FFIDClient.getAnalyticsConfig()`. Narrower than the admin-side
|
|
600
|
+
* `AnalyticsService` shape to avoid leaking internal columns
|
|
601
|
+
* (`ga4StreamId`, `lastSyncedAt`, `description`).
|
|
602
|
+
*
|
|
603
|
+
* @see Issue #2347
|
|
604
|
+
*/
|
|
605
|
+
interface FFIDAnalyticsConfig {
|
|
606
|
+
/** Service slug (kebab-case) — echoed back so callers can sanity-check */
|
|
607
|
+
code: string;
|
|
608
|
+
/** GA4 Measurement ID (`G-XXXXXXX`) */
|
|
609
|
+
measurementId: string;
|
|
610
|
+
/** GA4 displayName at the time of the last sync */
|
|
611
|
+
displayName: string;
|
|
612
|
+
/**
|
|
613
|
+
* `false` when the GA4 data stream has been archived. The measurement id is
|
|
614
|
+
* still returned so in-flight events do not 5xx during a cutover window —
|
|
615
|
+
* the caller should disable tracking on the next deploy.
|
|
616
|
+
*/
|
|
617
|
+
isActive: boolean;
|
|
618
|
+
}
|
|
583
619
|
/**
|
|
584
620
|
* Request payload for `updateProfile`.
|
|
585
621
|
*
|
|
@@ -1386,4 +1422,4 @@ interface FFIDInquiryFormPlaceholderContext {
|
|
|
1386
1422
|
}
|
|
1387
1423
|
declare function FFIDInquiryForm({ mode, prefill, organizations, preselectedOrganizationId, categories, termsVersion, privacyVersion, termsHref, privacyHref, turnstileToken, turnstileSlot, onSubmit, onChange, separateLegalCheckboxes, messagePlaceholder, requireCategorySelection, unstyled, classNames, locale, className, }: FFIDInquiryFormProps): react_jsx_runtime.JSX.Element;
|
|
1388
1424
|
|
|
1389
|
-
export { type
|
|
1425
|
+
export { type FFIDInquiryFormPrefill as $, type FFIDOrganization as A, type FFIDSubscription as B, type FFIDSubscriptionContextValue as C, type FFIDAnnouncementsClientConfig as D, type EffectiveSubscriptionStatus as E, type FFIDSubscriptionStatus as F, type FFIDAnnouncementsApiResponse as G, type AnnouncementListResponse as H, type FFIDAnnouncementsLogger as I, type Announcement as J, type AnnouncementStatus as K, type ListAnnouncementsOptions as L, type AnnouncementType as M, FFIDAnnouncementBadge as N, FFIDAnnouncementList as O, type FFIDAnnouncementsError as P, type FFIDAnnouncementsErrorCode as Q, type FFIDAnnouncementsServerResponse as R, type FFIDCacheConfig as S, type FFIDContextValue as T, type FFIDInquiryCategory as U, type FFIDInquiryCategorySite2026 as V, FFIDInquiryForm as W, type FFIDInquiryFormCategoryItem as X, type FFIDInquiryFormClassNames as Y, type FFIDInquiryFormOrganization as Z, type FFIDInquiryFormPlaceholderContext as _, type FFIDConfig as a, type FFIDInquiryFormProps as a0, type FFIDInquiryFormSubmitData as a1, type FFIDInquiryFormSubmitResult as a2, type FFIDJwtClaims as a3, FFIDLoginButton as a4, type FFIDMemberStatus as a5, type FFIDOAuthTokenResponse as a6, type FFIDOAuthUserInfoMemberRole as a7, type FFIDOAuthUserInfoSubscription as a8, type FFIDOrganizationMember as a9, FFIDOrganizationSwitcher as aa, type FFIDRedirectErrorCode as ab, type FFIDSeatModel as ac, FFIDSubscriptionBadge as ad, type FFIDTokenIntrospectionResponse as ae, FFIDUserMenu as af, FFID_INQUIRY_CATEGORIES as ag, FFID_INQUIRY_CATEGORIES_SITE_2026 as ah, type UseFFIDAnnouncementsOptions as ai, type UseFFIDAnnouncementsReturn as aj, isFFIDInquiryCategorySite2026 as ak, useFFIDAnnouncements as al, type FFIDAnnouncementBadgeClassNames as am, type FFIDAnnouncementBadgeProps as an, type FFIDAnnouncementListClassNames as ao, type FFIDAnnouncementListProps as ap, type FFIDLoginButtonProps as aq, type FFIDOrganizationSwitcherClassNames as ar, type FFIDOrganizationSwitcherProps as as, type FFIDSubscriptionBadgeClassNames as at, type FFIDSubscriptionBadgeProps as au, type FFIDUserMenuClassNames as av, type FFIDUserMenuProps as aw, type FFIDApiResponse as b, type FFIDSessionResponse as c, type FFIDRedirectResult as d, type FFIDError as e, type FFIDSubscriptionCheckResponse as f, type FFIDListMembersResponse as g, type FFIDMemberRole as h, type FFIDUpdateMemberRoleResponse as i, type FFIDRemoveMemberResponse as j, type FFIDProfileCallOptions as k, type FFIDUserProfile as l, type FFIDUpdateUserProfileRequest as m, type FFIDAnalyticsConfig as n, type FFIDCreateCheckoutParams as o, type FFIDCheckoutSessionResponse as p, type FFIDCreatePortalParams as q, type FFIDPortalSessionResponse as r, type FFIDVerifyAccessTokenOptions as s, type FFIDOAuthUserInfo as t, type FFIDInquiryCreateParams as u, type FFIDInquiryCreateResponse as v, type FFIDAuthMode as w, type FFIDLogger as x, type FFIDCacheAdapter as y, type FFIDUser as z };
|
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkJNR4AKL5_cjs = require('./chunk-JNR4AKL5.cjs');
|
|
4
4
|
var react = require('react');
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
|
|
@@ -53,8 +53,8 @@ function defaultRedirect(url) {
|
|
|
53
53
|
}
|
|
54
54
|
function useRequireActiveSubscription(options) {
|
|
55
55
|
const { redirectTo, allowGrace = true, onRedirect } = options;
|
|
56
|
-
const { isLoading, error } =
|
|
57
|
-
const { effectiveStatus, isBlocked, isGrace } =
|
|
56
|
+
const { isLoading, error } = chunkJNR4AKL5_cjs.useFFIDContext();
|
|
57
|
+
const { effectiveStatus, isBlocked, isGrace } = chunkJNR4AKL5_cjs.useSubscription();
|
|
58
58
|
const hasFetchError = error !== null && effectiveStatus === null;
|
|
59
59
|
const shouldRedirect = !isLoading && !hasFetchError && (isBlocked || !allowGrace && isGrace || effectiveStatus === null);
|
|
60
60
|
react.useEffect(() => {
|
|
@@ -75,7 +75,7 @@ function useRequireActiveSubscription(options) {
|
|
|
75
75
|
}
|
|
76
76
|
function withFFIDAuth(Component, options = {}) {
|
|
77
77
|
const WrappedComponent = (props) => {
|
|
78
|
-
const { isLoading, isAuthenticated, login } =
|
|
78
|
+
const { isLoading, isAuthenticated, login } = chunkJNR4AKL5_cjs.useFFIDContext();
|
|
79
79
|
const hasRedirected = react.useRef(false);
|
|
80
80
|
react.useEffect(() => {
|
|
81
81
|
if (!isLoading && !isAuthenticated && options.redirectToLogin && !hasRedirected.current) {
|
|
@@ -100,115 +100,121 @@ function withFFIDAuth(Component, options = {}) {
|
|
|
100
100
|
|
|
101
101
|
// src/newsletter/types.ts
|
|
102
102
|
var FFID_NEWSLETTER_TYPES = ["inquiry_followup", "general"];
|
|
103
|
+
var FFID_NEWSLETTER_DISPATCH_MAX_RECIPIENTS = 1e3;
|
|
103
104
|
|
|
104
105
|
Object.defineProperty(exports, "DEFAULT_API_BASE_URL", {
|
|
105
106
|
enumerable: true,
|
|
106
|
-
get: function () { return
|
|
107
|
+
get: function () { return chunkJNR4AKL5_cjs.DEFAULT_API_BASE_URL; }
|
|
108
|
+
});
|
|
109
|
+
Object.defineProperty(exports, "DEFAULT_OAUTH_SCOPES", {
|
|
110
|
+
enumerable: true,
|
|
111
|
+
get: function () { return chunkJNR4AKL5_cjs.DEFAULT_OAUTH_SCOPES; }
|
|
107
112
|
});
|
|
108
113
|
Object.defineProperty(exports, "FFIDAnnouncementBadge", {
|
|
109
114
|
enumerable: true,
|
|
110
|
-
get: function () { return
|
|
115
|
+
get: function () { return chunkJNR4AKL5_cjs.FFIDAnnouncementBadge; }
|
|
111
116
|
});
|
|
112
117
|
Object.defineProperty(exports, "FFIDAnnouncementList", {
|
|
113
118
|
enumerable: true,
|
|
114
|
-
get: function () { return
|
|
119
|
+
get: function () { return chunkJNR4AKL5_cjs.FFIDAnnouncementList; }
|
|
115
120
|
});
|
|
116
121
|
Object.defineProperty(exports, "FFIDInquiryForm", {
|
|
117
122
|
enumerable: true,
|
|
118
|
-
get: function () { return
|
|
123
|
+
get: function () { return chunkJNR4AKL5_cjs.FFIDInquiryForm; }
|
|
119
124
|
});
|
|
120
125
|
Object.defineProperty(exports, "FFIDLoginButton", {
|
|
121
126
|
enumerable: true,
|
|
122
|
-
get: function () { return
|
|
127
|
+
get: function () { return chunkJNR4AKL5_cjs.FFIDLoginButton; }
|
|
123
128
|
});
|
|
124
129
|
Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
|
|
125
130
|
enumerable: true,
|
|
126
|
-
get: function () { return
|
|
131
|
+
get: function () { return chunkJNR4AKL5_cjs.FFIDOrganizationSwitcher; }
|
|
127
132
|
});
|
|
128
133
|
Object.defineProperty(exports, "FFIDProvider", {
|
|
129
134
|
enumerable: true,
|
|
130
|
-
get: function () { return
|
|
135
|
+
get: function () { return chunkJNR4AKL5_cjs.FFIDProvider; }
|
|
131
136
|
});
|
|
132
137
|
Object.defineProperty(exports, "FFIDSDKError", {
|
|
133
138
|
enumerable: true,
|
|
134
|
-
get: function () { return
|
|
139
|
+
get: function () { return chunkJNR4AKL5_cjs.FFIDSDKError; }
|
|
135
140
|
});
|
|
136
141
|
Object.defineProperty(exports, "FFIDSubscriptionBadge", {
|
|
137
142
|
enumerable: true,
|
|
138
|
-
get: function () { return
|
|
143
|
+
get: function () { return chunkJNR4AKL5_cjs.FFIDSubscriptionBadge; }
|
|
139
144
|
});
|
|
140
145
|
Object.defineProperty(exports, "FFIDUserMenu", {
|
|
141
146
|
enumerable: true,
|
|
142
|
-
get: function () { return
|
|
147
|
+
get: function () { return chunkJNR4AKL5_cjs.FFIDUserMenu; }
|
|
143
148
|
});
|
|
144
149
|
Object.defineProperty(exports, "FFID_ANNOUNCEMENTS_ERROR_CODES", {
|
|
145
150
|
enumerable: true,
|
|
146
|
-
get: function () { return
|
|
151
|
+
get: function () { return chunkJNR4AKL5_cjs.FFID_ANNOUNCEMENTS_ERROR_CODES; }
|
|
147
152
|
});
|
|
148
153
|
Object.defineProperty(exports, "FFID_INQUIRY_CATEGORIES", {
|
|
149
154
|
enumerable: true,
|
|
150
|
-
get: function () { return
|
|
155
|
+
get: function () { return chunkJNR4AKL5_cjs.FFID_INQUIRY_CATEGORIES; }
|
|
151
156
|
});
|
|
152
157
|
Object.defineProperty(exports, "FFID_INQUIRY_CATEGORIES_SITE_2026", {
|
|
153
158
|
enumerable: true,
|
|
154
|
-
get: function () { return
|
|
159
|
+
get: function () { return chunkJNR4AKL5_cjs.FFID_INQUIRY_CATEGORIES_SITE_2026; }
|
|
155
160
|
});
|
|
156
161
|
Object.defineProperty(exports, "computeEffectiveStatusFromSession", {
|
|
157
162
|
enumerable: true,
|
|
158
|
-
get: function () { return
|
|
163
|
+
get: function () { return chunkJNR4AKL5_cjs.computeEffectiveStatusFromSession; }
|
|
159
164
|
});
|
|
160
165
|
Object.defineProperty(exports, "createFFIDAnnouncementsClient", {
|
|
161
166
|
enumerable: true,
|
|
162
|
-
get: function () { return
|
|
167
|
+
get: function () { return chunkJNR4AKL5_cjs.createFFIDAnnouncementsClient; }
|
|
163
168
|
});
|
|
164
169
|
Object.defineProperty(exports, "createFFIDClient", {
|
|
165
170
|
enumerable: true,
|
|
166
|
-
get: function () { return
|
|
171
|
+
get: function () { return chunkJNR4AKL5_cjs.createFFIDClient; }
|
|
167
172
|
});
|
|
168
173
|
Object.defineProperty(exports, "createTokenStore", {
|
|
169
174
|
enumerable: true,
|
|
170
|
-
get: function () { return
|
|
175
|
+
get: function () { return chunkJNR4AKL5_cjs.createTokenStore; }
|
|
171
176
|
});
|
|
172
177
|
Object.defineProperty(exports, "generateCodeChallenge", {
|
|
173
178
|
enumerable: true,
|
|
174
|
-
get: function () { return
|
|
179
|
+
get: function () { return chunkJNR4AKL5_cjs.generateCodeChallenge; }
|
|
175
180
|
});
|
|
176
181
|
Object.defineProperty(exports, "generateCodeVerifier", {
|
|
177
182
|
enumerable: true,
|
|
178
|
-
get: function () { return
|
|
183
|
+
get: function () { return chunkJNR4AKL5_cjs.generateCodeVerifier; }
|
|
179
184
|
});
|
|
180
185
|
Object.defineProperty(exports, "isFFIDInquiryCategorySite2026", {
|
|
181
186
|
enumerable: true,
|
|
182
|
-
get: function () { return
|
|
187
|
+
get: function () { return chunkJNR4AKL5_cjs.isFFIDInquiryCategorySite2026; }
|
|
183
188
|
});
|
|
184
189
|
Object.defineProperty(exports, "normalizeRedirectUri", {
|
|
185
190
|
enumerable: true,
|
|
186
|
-
get: function () { return
|
|
191
|
+
get: function () { return chunkJNR4AKL5_cjs.normalizeRedirectUri; }
|
|
187
192
|
});
|
|
188
193
|
Object.defineProperty(exports, "retrieveCodeVerifier", {
|
|
189
194
|
enumerable: true,
|
|
190
|
-
get: function () { return
|
|
195
|
+
get: function () { return chunkJNR4AKL5_cjs.retrieveCodeVerifier; }
|
|
191
196
|
});
|
|
192
197
|
Object.defineProperty(exports, "storeCodeVerifier", {
|
|
193
198
|
enumerable: true,
|
|
194
|
-
get: function () { return
|
|
199
|
+
get: function () { return chunkJNR4AKL5_cjs.storeCodeVerifier; }
|
|
195
200
|
});
|
|
196
201
|
Object.defineProperty(exports, "useFFID", {
|
|
197
202
|
enumerable: true,
|
|
198
|
-
get: function () { return
|
|
203
|
+
get: function () { return chunkJNR4AKL5_cjs.useFFID; }
|
|
199
204
|
});
|
|
200
205
|
Object.defineProperty(exports, "useFFIDAnnouncements", {
|
|
201
206
|
enumerable: true,
|
|
202
|
-
get: function () { return
|
|
207
|
+
get: function () { return chunkJNR4AKL5_cjs.useFFIDAnnouncements; }
|
|
203
208
|
});
|
|
204
209
|
Object.defineProperty(exports, "useSubscription", {
|
|
205
210
|
enumerable: true,
|
|
206
|
-
get: function () { return
|
|
211
|
+
get: function () { return chunkJNR4AKL5_cjs.useSubscription; }
|
|
207
212
|
});
|
|
208
213
|
Object.defineProperty(exports, "withSubscription", {
|
|
209
214
|
enumerable: true,
|
|
210
|
-
get: function () { return
|
|
215
|
+
get: function () { return chunkJNR4AKL5_cjs.withSubscription; }
|
|
211
216
|
});
|
|
217
|
+
exports.FFID_NEWSLETTER_DISPATCH_MAX_RECIPIENTS = FFID_NEWSLETTER_DISPATCH_MAX_RECIPIENTS;
|
|
212
218
|
exports.FFID_NEWSLETTER_TYPES = FFID_NEWSLETTER_TYPES;
|
|
213
219
|
exports.createKVCacheAdapter = createKVCacheAdapter;
|
|
214
220
|
exports.createMemoryCacheAdapter = createMemoryCacheAdapter;
|