@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
|
@@ -1643,7 +1643,7 @@ function validateTokenResponse(tokenResponse) {
|
|
|
1643
1643
|
}
|
|
1644
1644
|
|
|
1645
1645
|
// src/client/version-check.ts
|
|
1646
|
-
var SDK_VERSION = "5.
|
|
1646
|
+
var SDK_VERSION = "5.28.0";
|
|
1647
1647
|
var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
|
|
1648
1648
|
var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
|
|
1649
1649
|
function sdkHeaders() {
|
|
@@ -3150,6 +3150,11 @@ function createInquiryMethods(deps) {
|
|
|
3150
3150
|
name,
|
|
3151
3151
|
message,
|
|
3152
3152
|
category: params.category,
|
|
3153
|
+
// Normalize null ("survey not collected", e.g. forwarded verbatim
|
|
3154
|
+
// from FFIDInquiryFormSubmitData) to undefined so JSON.stringify
|
|
3155
|
+
// drops the key entirely — older FFID deployments never see it and
|
|
3156
|
+
// current ones treat the omission as NULL.
|
|
3157
|
+
acquisitionSource: params.acquisitionSource ?? void 0,
|
|
3153
3158
|
company: params.company,
|
|
3154
3159
|
phone: params.phone,
|
|
3155
3160
|
locale: params.locale,
|
|
@@ -5360,6 +5365,19 @@ var FFID_INQUIRY_CATEGORIES_SITE_2026 = [
|
|
|
5360
5365
|
"other"
|
|
5361
5366
|
];
|
|
5362
5367
|
var isFFIDInquiryCategorySite2026 = (value) => FFID_INQUIRY_CATEGORIES_SITE_2026.includes(value);
|
|
5368
|
+
var FFID_INQUIRY_ACQUISITION_SOURCES = [
|
|
5369
|
+
"referral",
|
|
5370
|
+
"generative-ai",
|
|
5371
|
+
"social-media",
|
|
5372
|
+
"networking-event",
|
|
5373
|
+
"web-search",
|
|
5374
|
+
"company-blog",
|
|
5375
|
+
"sales-outreach",
|
|
5376
|
+
"press-release",
|
|
5377
|
+
"web-advertising",
|
|
5378
|
+
"other"
|
|
5379
|
+
];
|
|
5380
|
+
var isFFIDInquiryAcquisitionSource = (value) => FFID_INQUIRY_ACQUISITION_SOURCES.includes(value);
|
|
5363
5381
|
var CATEGORY_PLACEHOLDER_LABEL_JA = "\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044";
|
|
5364
5382
|
var CATEGORY_REQUIRED_ERROR_JA = "\u304A\u554F\u3044\u5408\u308F\u305B\u7A2E\u5225\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
5365
5383
|
var TERMS_REQUIRED_ERROR_JA = "\u5229\u7528\u898F\u7D04\u3078\u306E\u540C\u610F\u304C\u5FC5\u8981\u3067\u3059\u3002";
|
|
@@ -5492,6 +5510,7 @@ function FFIDInquiryForm({
|
|
|
5492
5510
|
termsHref,
|
|
5493
5511
|
privacyHref,
|
|
5494
5512
|
turnstileToken = null,
|
|
5513
|
+
acquisitionSource = null,
|
|
5495
5514
|
turnstileSlot,
|
|
5496
5515
|
onSubmit,
|
|
5497
5516
|
onChange,
|
|
@@ -5573,6 +5592,7 @@ function FFIDInquiryForm({
|
|
|
5573
5592
|
company: company.trim() || null,
|
|
5574
5593
|
phone: phone.trim() || null,
|
|
5575
5594
|
category,
|
|
5595
|
+
acquisitionSource,
|
|
5576
5596
|
message: message.trim(),
|
|
5577
5597
|
organizationId,
|
|
5578
5598
|
inquiryFollowupOptIn: inquiryFollowup,
|
|
@@ -5588,6 +5608,7 @@ function FFIDInquiryForm({
|
|
|
5588
5608
|
company,
|
|
5589
5609
|
phone,
|
|
5590
5610
|
category,
|
|
5611
|
+
acquisitionSource,
|
|
5591
5612
|
message,
|
|
5592
5613
|
organizationId,
|
|
5593
5614
|
inquiryFollowup,
|
|
@@ -5636,6 +5657,7 @@ function FFIDInquiryForm({
|
|
|
5636
5657
|
company: company.trim() || null,
|
|
5637
5658
|
phone: phone.trim() || null,
|
|
5638
5659
|
category,
|
|
5660
|
+
acquisitionSource,
|
|
5639
5661
|
message: message.trim(),
|
|
5640
5662
|
organizationId,
|
|
5641
5663
|
inquiryFollowupOptIn: inquiryFollowup,
|
|
@@ -5954,4 +5976,4 @@ function FFIDInquiryForm({
|
|
|
5954
5976
|
);
|
|
5955
5977
|
}
|
|
5956
5978
|
|
|
5957
|
-
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, 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, useFFIDContext, useSubscription, validatePublishedCatalog, withSubscription };
|
|
5979
|
+
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, 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, useFFIDContext, useSubscription, validatePublishedCatalog, withSubscription };
|
|
@@ -1645,7 +1645,7 @@ function validateTokenResponse(tokenResponse) {
|
|
|
1645
1645
|
}
|
|
1646
1646
|
|
|
1647
1647
|
// src/client/version-check.ts
|
|
1648
|
-
var SDK_VERSION = "5.
|
|
1648
|
+
var SDK_VERSION = "5.28.0";
|
|
1649
1649
|
var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
|
|
1650
1650
|
var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
|
|
1651
1651
|
function sdkHeaders() {
|
|
@@ -3152,6 +3152,11 @@ function createInquiryMethods(deps) {
|
|
|
3152
3152
|
name,
|
|
3153
3153
|
message,
|
|
3154
3154
|
category: params.category,
|
|
3155
|
+
// Normalize null ("survey not collected", e.g. forwarded verbatim
|
|
3156
|
+
// from FFIDInquiryFormSubmitData) to undefined so JSON.stringify
|
|
3157
|
+
// drops the key entirely — older FFID deployments never see it and
|
|
3158
|
+
// current ones treat the omission as NULL.
|
|
3159
|
+
acquisitionSource: params.acquisitionSource ?? void 0,
|
|
3155
3160
|
company: params.company,
|
|
3156
3161
|
phone: params.phone,
|
|
3157
3162
|
locale: params.locale,
|
|
@@ -5362,6 +5367,19 @@ var FFID_INQUIRY_CATEGORIES_SITE_2026 = [
|
|
|
5362
5367
|
"other"
|
|
5363
5368
|
];
|
|
5364
5369
|
var isFFIDInquiryCategorySite2026 = (value) => FFID_INQUIRY_CATEGORIES_SITE_2026.includes(value);
|
|
5370
|
+
var FFID_INQUIRY_ACQUISITION_SOURCES = [
|
|
5371
|
+
"referral",
|
|
5372
|
+
"generative-ai",
|
|
5373
|
+
"social-media",
|
|
5374
|
+
"networking-event",
|
|
5375
|
+
"web-search",
|
|
5376
|
+
"company-blog",
|
|
5377
|
+
"sales-outreach",
|
|
5378
|
+
"press-release",
|
|
5379
|
+
"web-advertising",
|
|
5380
|
+
"other"
|
|
5381
|
+
];
|
|
5382
|
+
var isFFIDInquiryAcquisitionSource = (value) => FFID_INQUIRY_ACQUISITION_SOURCES.includes(value);
|
|
5365
5383
|
var CATEGORY_PLACEHOLDER_LABEL_JA = "\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044";
|
|
5366
5384
|
var CATEGORY_REQUIRED_ERROR_JA = "\u304A\u554F\u3044\u5408\u308F\u305B\u7A2E\u5225\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
5367
5385
|
var TERMS_REQUIRED_ERROR_JA = "\u5229\u7528\u898F\u7D04\u3078\u306E\u540C\u610F\u304C\u5FC5\u8981\u3067\u3059\u3002";
|
|
@@ -5494,6 +5512,7 @@ function FFIDInquiryForm({
|
|
|
5494
5512
|
termsHref,
|
|
5495
5513
|
privacyHref,
|
|
5496
5514
|
turnstileToken = null,
|
|
5515
|
+
acquisitionSource = null,
|
|
5497
5516
|
turnstileSlot,
|
|
5498
5517
|
onSubmit,
|
|
5499
5518
|
onChange,
|
|
@@ -5575,6 +5594,7 @@ function FFIDInquiryForm({
|
|
|
5575
5594
|
company: company.trim() || null,
|
|
5576
5595
|
phone: phone.trim() || null,
|
|
5577
5596
|
category,
|
|
5597
|
+
acquisitionSource,
|
|
5578
5598
|
message: message.trim(),
|
|
5579
5599
|
organizationId,
|
|
5580
5600
|
inquiryFollowupOptIn: inquiryFollowup,
|
|
@@ -5590,6 +5610,7 @@ function FFIDInquiryForm({
|
|
|
5590
5610
|
company,
|
|
5591
5611
|
phone,
|
|
5592
5612
|
category,
|
|
5613
|
+
acquisitionSource,
|
|
5593
5614
|
message,
|
|
5594
5615
|
organizationId,
|
|
5595
5616
|
inquiryFollowup,
|
|
@@ -5638,6 +5659,7 @@ function FFIDInquiryForm({
|
|
|
5638
5659
|
company: company.trim() || null,
|
|
5639
5660
|
phone: phone.trim() || null,
|
|
5640
5661
|
category,
|
|
5662
|
+
acquisitionSource,
|
|
5641
5663
|
message: message.trim(),
|
|
5642
5664
|
organizationId,
|
|
5643
5665
|
inquiryFollowupOptIn: inquiryFollowup,
|
|
@@ -5976,6 +5998,7 @@ exports.FFID_ANNOUNCEMENTS_ERROR_CODES = FFID_ANNOUNCEMENTS_ERROR_CODES;
|
|
|
5976
5998
|
exports.FFID_CATALOG_ENVIRONMENTS = FFID_CATALOG_ENVIRONMENTS;
|
|
5977
5999
|
exports.FFID_CATALOG_PUBLICATION_STATUSES = FFID_CATALOG_PUBLICATION_STATUSES;
|
|
5978
6000
|
exports.FFID_ERROR_CODES = FFID_ERROR_CODES;
|
|
6001
|
+
exports.FFID_INQUIRY_ACQUISITION_SOURCES = FFID_INQUIRY_ACQUISITION_SOURCES;
|
|
5979
6002
|
exports.FFID_INQUIRY_CATEGORIES = FFID_INQUIRY_CATEGORIES;
|
|
5980
6003
|
exports.FFID_INQUIRY_CATEGORIES_SITE_2026 = FFID_INQUIRY_CATEGORIES_SITE_2026;
|
|
5981
6004
|
exports.canonicalizeCatalogValue = canonicalizeCatalogValue;
|
|
@@ -5996,6 +6019,7 @@ exports.handleRedirectCallback = handleRedirectCallback;
|
|
|
5996
6019
|
exports.hasAccessFromUserinfo = hasAccessFromUserinfo;
|
|
5997
6020
|
exports.hashCanonicalJson = hashCanonicalJson;
|
|
5998
6021
|
exports.isBlockedFromUserinfo = isBlockedFromUserinfo;
|
|
6022
|
+
exports.isFFIDInquiryAcquisitionSource = isFFIDInquiryAcquisitionSource;
|
|
5999
6023
|
exports.isFFIDInquiryCategorySite2026 = isFFIDInquiryCategorySite2026;
|
|
6000
6024
|
exports.normalizeRedirectUri = normalizeRedirectUri;
|
|
6001
6025
|
exports.retrieveCodeVerifier = retrieveCodeVerifier;
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkS5FV6H2U_cjs = require('../chunk-S5FV6H2U.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "FFIDAnnouncementBadge", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDAnnouncementBadge; }
|
|
10
10
|
});
|
|
11
11
|
Object.defineProperty(exports, "FFIDAnnouncementList", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDAnnouncementList; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "FFIDInquiryForm", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDInquiryForm; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "FFIDLoginButton", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDLoginButton; }
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDOrganizationSwitcher; }
|
|
26
26
|
});
|
|
27
27
|
Object.defineProperty(exports, "FFIDSubscriptionBadge", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDSubscriptionBadge; }
|
|
30
30
|
});
|
|
31
31
|
Object.defineProperty(exports, "FFIDUserMenu", {
|
|
32
32
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunkS5FV6H2U_cjs.FFIDUserMenu; }
|
|
34
34
|
});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { G as FFIDAnnouncementBadge,
|
|
1
|
+
export { G as FFIDAnnouncementBadge, am as FFIDAnnouncementBadgeClassNames, an as FFIDAnnouncementBadgeProps, H as FFIDAnnouncementList, ao as FFIDAnnouncementListClassNames, ap as FFIDAnnouncementListProps, 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, a2 as FFIDLoginButton, aq as FFIDLoginButtonProps, a4 as FFIDOrganizationSwitcher, ar as FFIDOrganizationSwitcherClassNames, as as FFIDOrganizationSwitcherProps, aa as FFIDSubscriptionBadge, at as FFIDSubscriptionBadgeClassNames, au as FFIDSubscriptionBadgeProps, ab as FFIDUserMenu, av as FFIDUserMenuClassNames, aw as FFIDUserMenuProps } from '../index-_-MqJCN3.cjs';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import 'react';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { G as FFIDAnnouncementBadge,
|
|
1
|
+
export { G as FFIDAnnouncementBadge, am as FFIDAnnouncementBadgeClassNames, an as FFIDAnnouncementBadgeProps, H as FFIDAnnouncementList, ao as FFIDAnnouncementListClassNames, ap as FFIDAnnouncementListProps, 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, a2 as FFIDLoginButton, aq as FFIDLoginButtonProps, a4 as FFIDOrganizationSwitcher, ar as FFIDOrganizationSwitcherClassNames, as as FFIDOrganizationSwitcherProps, aa as FFIDSubscriptionBadge, at as FFIDSubscriptionBadgeClassNames, au as FFIDSubscriptionBadgeProps, ab as FFIDUserMenu, av as FFIDUserMenuClassNames, aw as FFIDUserMenuProps } from '../index-_-MqJCN3.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-75UNNOLV.js';
|
|
@@ -46,6 +46,20 @@ type FFIDInquiryCategory = (typeof FFID_INQUIRY_CATEGORIES)[number];
|
|
|
46
46
|
*/
|
|
47
47
|
declare const FFID_INQUIRY_CATEGORIES_SITE_2026: readonly ["consulting", "saas", "development", "agent-hub", "ai-feel-chatbot", "knowledge-db", "biz-simulator", "discussion-board", "realtime-ai", "partnership", "media", "recruiting", "other"];
|
|
48
48
|
type FFIDInquiryCategorySite2026 = (typeof FFID_INQUIRY_CATEGORIES_SITE_2026)[number];
|
|
49
|
+
/**
|
|
50
|
+
* Acquisition-source ("how did you first hear about us") survey slugs
|
|
51
|
+
* accepted by `/api/v1/ext/inquiry` (feelflow-id-platform#4377). Mirrors
|
|
52
|
+
* feelflow-website-2026 `ACQUISITION_SOURCE_OPTIONS`
|
|
53
|
+
* (`feelflow-site/src/lib/acquisition-source.ts`); FFID
|
|
54
|
+
* `src/lib/inquiry/acquisition-sources.ts` is the persistence-side
|
|
55
|
+
* source of truth.
|
|
56
|
+
*
|
|
57
|
+
* Unlike `category`, the server validates this field strictly: a value
|
|
58
|
+
* outside this list is rejected with `INQUIRY_VALIDATION_ERROR` rather than
|
|
59
|
+
* stored as-is. Ship a new slug to FFID first, then start sending it.
|
|
60
|
+
*/
|
|
61
|
+
declare const FFID_INQUIRY_ACQUISITION_SOURCES: readonly ["referral", "generative-ai", "social-media", "networking-event", "web-search", "company-blog", "sales-outreach", "press-release", "web-advertising", "other"];
|
|
62
|
+
type FFIDInquiryAcquisitionSource = (typeof FFID_INQUIRY_ACQUISITION_SOURCES)[number];
|
|
49
63
|
/**
|
|
50
64
|
* Parameters for `client.inquiry.create()`. When submitting from a
|
|
51
65
|
* server-side SDK (Service API Key), set `source` to a stable
|
|
@@ -65,6 +79,18 @@ interface FFIDInquiryCreateParams {
|
|
|
65
79
|
name: string;
|
|
66
80
|
message: string;
|
|
67
81
|
category?: FFIDInquiryCategorySite2026 | FFIDInquiryCategory | (string & {});
|
|
82
|
+
/**
|
|
83
|
+
* "How did you first hear about us" survey answer (#4377). Optional and
|
|
84
|
+
* backward compatible — `undefined` and `null` are both normalized to
|
|
85
|
+
* an omitted key on the wire (`null` is accepted so
|
|
86
|
+
* `FFIDInquiryFormSubmitData.acquisitionSource` can be forwarded
|
|
87
|
+
* verbatim) and the row is stored with NULL.
|
|
88
|
+
* Server-side validation is a strict allowlist (unlike `category`):
|
|
89
|
+
* values outside {@link FFID_INQUIRY_ACQUISITION_SOURCES} fail with
|
|
90
|
+
* `INQUIRY_VALIDATION_ERROR`. Narrow untrusted strings with
|
|
91
|
+
* {@link isFFIDInquiryAcquisitionSource} before submitting.
|
|
92
|
+
*/
|
|
93
|
+
acquisitionSource?: FFIDInquiryAcquisitionSource | null;
|
|
68
94
|
company?: string;
|
|
69
95
|
phone?: string;
|
|
70
96
|
locale?: 'ja' | 'en';
|
|
@@ -2242,4 +2268,4 @@ declare function createFFIDClient(config: FFIDConfig): {
|
|
|
2242
2268
|
/** Type of the FFID client */
|
|
2243
2269
|
type FFIDClient = ReturnType<typeof createFFIDClient>;
|
|
2244
2270
|
|
|
2245
|
-
export { type
|
|
2271
|
+
export { FFID_CATALOG_ENVIRONMENTS as $, type FFIDPasswordResetVerifyResponse as A, type FFIDProfileCallOptions as B, type FFIDProvisionMemberPlan as C, type FFIDProvisionMemberPlanStatus as D, type FFIDProvisionMemberResult as E, type FFIDLogger as F, type FFIDProvisionMemberStatus as G, type FFIDProvisionOrganizationDryRun as H, type FFIDProvisionOrganizationMemberInput as I, type FFIDProvisionOrganizationOutcome as J, type FFIDProvisionOrganizationParams as K, type FFIDProvisionOrganizationResponse as L, type FFIDProvisionUserDryRun as M, type FFIDProvisionUserOutcome as N, type FFIDProvisionUserParams as O, type FFIDProvisionUserProfileInput as P, type FFIDProvisionUserResponse as Q, type FFIDProvisionedOrganization as R, type FFIDProvisionedUser as S, type FFIDPublishedPlan as T, type FFIDRemoveMemberResponse as U, type FFIDResetSessionResponse as V, type FFIDSubscription as W, type FFIDUpdateMemberRoleResponse as X, type FFIDUpdateUserProfileRequest as Y, type FFIDUser as Z, type FFIDUserProfile as _, type FFIDError as a, FFID_CATALOG_PUBLICATION_STATUSES as a0, type TokenData as a1, type TokenStore as a2, createFFIDClient as a3, createTokenStore as a4, type FFIDCacheAdapter as b, type FFIDVerifyAccessTokenOptions as c, type FFIDApiResponse as d, type FFIDOAuthUserInfo as e, type FFIDCatalogEnvironment as f, type FFIDBillingInterval as g, type FFIDTaxBehavior as h, type FFIDPublishedCatalog as i, type FFIDAddMemberParams as j, type FFIDAddMemberRequest as k, type FFIDAddMemberResponse as l, type FFIDAssignableMemberRole as m, type FFIDCacheConfig as n, type FFIDCatalogPublication as o, type FFIDCatalogPublicationStatus as p, type FFIDClient as q, type FFIDConfig as r, type FFIDListMembersResponse as s, type FFIDMemberRole as t, type FFIDOrganization as u, type FFIDOrganizationMember as v, type FFIDOtpSendResponse as w, type FFIDOtpVerifyResponse as x, type FFIDPasswordResetConfirmResponse as y, type FFIDPasswordResetResponse as z };
|
|
@@ -46,6 +46,20 @@ type FFIDInquiryCategory = (typeof FFID_INQUIRY_CATEGORIES)[number];
|
|
|
46
46
|
*/
|
|
47
47
|
declare const FFID_INQUIRY_CATEGORIES_SITE_2026: readonly ["consulting", "saas", "development", "agent-hub", "ai-feel-chatbot", "knowledge-db", "biz-simulator", "discussion-board", "realtime-ai", "partnership", "media", "recruiting", "other"];
|
|
48
48
|
type FFIDInquiryCategorySite2026 = (typeof FFID_INQUIRY_CATEGORIES_SITE_2026)[number];
|
|
49
|
+
/**
|
|
50
|
+
* Acquisition-source ("how did you first hear about us") survey slugs
|
|
51
|
+
* accepted by `/api/v1/ext/inquiry` (feelflow-id-platform#4377). Mirrors
|
|
52
|
+
* feelflow-website-2026 `ACQUISITION_SOURCE_OPTIONS`
|
|
53
|
+
* (`feelflow-site/src/lib/acquisition-source.ts`); FFID
|
|
54
|
+
* `src/lib/inquiry/acquisition-sources.ts` is the persistence-side
|
|
55
|
+
* source of truth.
|
|
56
|
+
*
|
|
57
|
+
* Unlike `category`, the server validates this field strictly: a value
|
|
58
|
+
* outside this list is rejected with `INQUIRY_VALIDATION_ERROR` rather than
|
|
59
|
+
* stored as-is. Ship a new slug to FFID first, then start sending it.
|
|
60
|
+
*/
|
|
61
|
+
declare const FFID_INQUIRY_ACQUISITION_SOURCES: readonly ["referral", "generative-ai", "social-media", "networking-event", "web-search", "company-blog", "sales-outreach", "press-release", "web-advertising", "other"];
|
|
62
|
+
type FFIDInquiryAcquisitionSource = (typeof FFID_INQUIRY_ACQUISITION_SOURCES)[number];
|
|
49
63
|
/**
|
|
50
64
|
* Parameters for `client.inquiry.create()`. When submitting from a
|
|
51
65
|
* server-side SDK (Service API Key), set `source` to a stable
|
|
@@ -65,6 +79,18 @@ interface FFIDInquiryCreateParams {
|
|
|
65
79
|
name: string;
|
|
66
80
|
message: string;
|
|
67
81
|
category?: FFIDInquiryCategorySite2026 | FFIDInquiryCategory | (string & {});
|
|
82
|
+
/**
|
|
83
|
+
* "How did you first hear about us" survey answer (#4377). Optional and
|
|
84
|
+
* backward compatible — `undefined` and `null` are both normalized to
|
|
85
|
+
* an omitted key on the wire (`null` is accepted so
|
|
86
|
+
* `FFIDInquiryFormSubmitData.acquisitionSource` can be forwarded
|
|
87
|
+
* verbatim) and the row is stored with NULL.
|
|
88
|
+
* Server-side validation is a strict allowlist (unlike `category`):
|
|
89
|
+
* values outside {@link FFID_INQUIRY_ACQUISITION_SOURCES} fail with
|
|
90
|
+
* `INQUIRY_VALIDATION_ERROR`. Narrow untrusted strings with
|
|
91
|
+
* {@link isFFIDInquiryAcquisitionSource} before submitting.
|
|
92
|
+
*/
|
|
93
|
+
acquisitionSource?: FFIDInquiryAcquisitionSource | null;
|
|
68
94
|
company?: string;
|
|
69
95
|
phone?: string;
|
|
70
96
|
locale?: 'ja' | 'en';
|
|
@@ -2242,4 +2268,4 @@ declare function createFFIDClient(config: FFIDConfig): {
|
|
|
2242
2268
|
/** Type of the FFID client */
|
|
2243
2269
|
type FFIDClient = ReturnType<typeof createFFIDClient>;
|
|
2244
2270
|
|
|
2245
|
-
export { type
|
|
2271
|
+
export { FFID_CATALOG_ENVIRONMENTS as $, type FFIDPasswordResetVerifyResponse as A, type FFIDProfileCallOptions as B, type FFIDProvisionMemberPlan as C, type FFIDProvisionMemberPlanStatus as D, type FFIDProvisionMemberResult as E, type FFIDLogger as F, type FFIDProvisionMemberStatus as G, type FFIDProvisionOrganizationDryRun as H, type FFIDProvisionOrganizationMemberInput as I, type FFIDProvisionOrganizationOutcome as J, type FFIDProvisionOrganizationParams as K, type FFIDProvisionOrganizationResponse as L, type FFIDProvisionUserDryRun as M, type FFIDProvisionUserOutcome as N, type FFIDProvisionUserParams as O, type FFIDProvisionUserProfileInput as P, type FFIDProvisionUserResponse as Q, type FFIDProvisionedOrganization as R, type FFIDProvisionedUser as S, type FFIDPublishedPlan as T, type FFIDRemoveMemberResponse as U, type FFIDResetSessionResponse as V, type FFIDSubscription as W, type FFIDUpdateMemberRoleResponse as X, type FFIDUpdateUserProfileRequest as Y, type FFIDUser as Z, type FFIDUserProfile as _, type FFIDError as a, FFID_CATALOG_PUBLICATION_STATUSES as a0, type TokenData as a1, type TokenStore as a2, createFFIDClient as a3, createTokenStore as a4, type FFIDCacheAdapter as b, type FFIDVerifyAccessTokenOptions as c, type FFIDApiResponse as d, type FFIDOAuthUserInfo as e, type FFIDCatalogEnvironment as f, type FFIDBillingInterval as g, type FFIDTaxBehavior as h, type FFIDPublishedCatalog as i, type FFIDAddMemberParams as j, type FFIDAddMemberRequest as k, type FFIDAddMemberResponse as l, type FFIDAssignableMemberRole as m, type FFIDCacheConfig as n, type FFIDCatalogPublication as o, type FFIDCatalogPublicationStatus as p, type FFIDClient as q, type FFIDConfig as r, type FFIDListMembersResponse as s, type FFIDMemberRole as t, type FFIDOrganization as u, type FFIDOrganizationMember as v, type FFIDOtpSendResponse as w, type FFIDOtpVerifyResponse as x, type FFIDPasswordResetConfirmResponse as y, type FFIDPasswordResetResponse as z };
|
|
@@ -1036,6 +1036,26 @@ type FFIDInquiryCategorySite2026 = (typeof FFID_INQUIRY_CATEGORIES_SITE_2026)[nu
|
|
|
1036
1036
|
* parameter) to the canonical union.
|
|
1037
1037
|
*/
|
|
1038
1038
|
declare const isFFIDInquiryCategorySite2026: (value: string) => value is FFIDInquiryCategorySite2026;
|
|
1039
|
+
/**
|
|
1040
|
+
* Acquisition-source ("how did you first hear about us") survey slugs
|
|
1041
|
+
* accepted by `/api/v1/ext/inquiry` (feelflow-id-platform#4377). Mirrors
|
|
1042
|
+
* feelflow-website-2026 `ACQUISITION_SOURCE_OPTIONS`
|
|
1043
|
+
* (`feelflow-site/src/lib/acquisition-source.ts`); FFID
|
|
1044
|
+
* `src/lib/inquiry/acquisition-sources.ts` is the persistence-side
|
|
1045
|
+
* source of truth.
|
|
1046
|
+
*
|
|
1047
|
+
* Unlike `category`, the server validates this field strictly: a value
|
|
1048
|
+
* outside this list is rejected with `INQUIRY_VALIDATION_ERROR` rather than
|
|
1049
|
+
* stored as-is. Ship a new slug to FFID first, then start sending it.
|
|
1050
|
+
*/
|
|
1051
|
+
declare const FFID_INQUIRY_ACQUISITION_SOURCES: readonly ["referral", "generative-ai", "social-media", "networking-event", "web-search", "company-blog", "sales-outreach", "press-release", "web-advertising", "other"];
|
|
1052
|
+
type FFIDInquiryAcquisitionSource = (typeof FFID_INQUIRY_ACQUISITION_SOURCES)[number];
|
|
1053
|
+
/**
|
|
1054
|
+
* Runtime type guard for the acquisition-source allowlist. Use when
|
|
1055
|
+
* narrowing an unknown string (e.g., a URL query parameter or analytics
|
|
1056
|
+
* value) before passing it to `client.inquiry.create()`.
|
|
1057
|
+
*/
|
|
1058
|
+
declare const isFFIDInquiryAcquisitionSource: (value: string) => value is FFIDInquiryAcquisitionSource;
|
|
1039
1059
|
/**
|
|
1040
1060
|
* Parameters for `client.inquiry.create()`. When submitting from a
|
|
1041
1061
|
* server-side SDK (Service API Key), set `source` to a stable
|
|
@@ -1055,6 +1075,18 @@ interface FFIDInquiryCreateParams {
|
|
|
1055
1075
|
name: string;
|
|
1056
1076
|
message: string;
|
|
1057
1077
|
category?: FFIDInquiryCategorySite2026 | FFIDInquiryCategory | (string & {});
|
|
1078
|
+
/**
|
|
1079
|
+
* "How did you first hear about us" survey answer (#4377). Optional and
|
|
1080
|
+
* backward compatible — `undefined` and `null` are both normalized to
|
|
1081
|
+
* an omitted key on the wire (`null` is accepted so
|
|
1082
|
+
* `FFIDInquiryFormSubmitData.acquisitionSource` can be forwarded
|
|
1083
|
+
* verbatim) and the row is stored with NULL.
|
|
1084
|
+
* Server-side validation is a strict allowlist (unlike `category`):
|
|
1085
|
+
* values outside {@link FFID_INQUIRY_ACQUISITION_SOURCES} fail with
|
|
1086
|
+
* `INQUIRY_VALIDATION_ERROR`. Narrow untrusted strings with
|
|
1087
|
+
* {@link isFFIDInquiryAcquisitionSource} before submitting.
|
|
1088
|
+
*/
|
|
1089
|
+
acquisitionSource?: FFIDInquiryAcquisitionSource | null;
|
|
1058
1090
|
company?: string;
|
|
1059
1091
|
phone?: string;
|
|
1060
1092
|
locale?: 'ja' | 'en';
|
|
@@ -1420,6 +1452,15 @@ interface FFIDInquiryFormSubmitData {
|
|
|
1420
1452
|
company: string | null;
|
|
1421
1453
|
phone: string | null;
|
|
1422
1454
|
category: string;
|
|
1455
|
+
/**
|
|
1456
|
+
* Acquisition-source slug forwarded verbatim from the
|
|
1457
|
+
* `acquisitionSource` prop (#4377). `null` when the consumer does not
|
|
1458
|
+
* collect the survey — existing `onSubmit` handlers that ignore the
|
|
1459
|
+
* field keep working unchanged. Typed as the closed allowlist union so
|
|
1460
|
+
* the payload can be handed to `client.inquiry.create()` without a
|
|
1461
|
+
* re-narrowing cast.
|
|
1462
|
+
*/
|
|
1463
|
+
acquisitionSource: FFIDInquiryAcquisitionSource | null;
|
|
1423
1464
|
message: string;
|
|
1424
1465
|
organizationId: string | null;
|
|
1425
1466
|
inquiryFollowupOptIn: boolean;
|
|
@@ -1449,6 +1490,19 @@ interface FFIDInquiryFormProps {
|
|
|
1449
1490
|
privacyHref?: string;
|
|
1450
1491
|
/** Must be refreshed by the consumer when the Turnstile widget reissues a token. */
|
|
1451
1492
|
turnstileToken?: string | null;
|
|
1493
|
+
/**
|
|
1494
|
+
* Acquisition-source survey answer collected by the consumer's own UI
|
|
1495
|
+
* (#4377). The form renders no input for it — like `turnstileToken`,
|
|
1496
|
+
* it is a consumer-controlled value passed through into
|
|
1497
|
+
* `FFIDInquiryFormSubmitData.acquisitionSource` on every submit /
|
|
1498
|
+
* `onChange` broadcast. Typed as the closed
|
|
1499
|
+
* `FFID_INQUIRY_ACQUISITION_SOURCES` union so an invalid slug (e.g. a
|
|
1500
|
+
* display label, or a new value not yet deployed to FFID) fails at the
|
|
1501
|
+
* consumer's compile step instead of rejecting every end-user
|
|
1502
|
+
* submission with `INQUIRY_VALIDATION_ERROR` at runtime. Narrow
|
|
1503
|
+
* untrusted strings with `isFFIDInquiryAcquisitionSource` first.
|
|
1504
|
+
*/
|
|
1505
|
+
acquisitionSource?: FFIDInquiryAcquisitionSource | null;
|
|
1452
1506
|
/** Slot for the consumer's Turnstile widget (anonymous mode only). */
|
|
1453
1507
|
turnstileSlot?: ReactNode;
|
|
1454
1508
|
onSubmit: (data: FFIDInquiryFormSubmitData) => Promise<FFIDInquiryFormSubmitResult>;
|
|
@@ -1534,6 +1588,6 @@ interface FFIDInquiryFormProps {
|
|
|
1534
1588
|
interface FFIDInquiryFormPlaceholderContext {
|
|
1535
1589
|
category: string | null;
|
|
1536
1590
|
}
|
|
1537
|
-
declare function FFIDInquiryForm({ mode, prefill, organizations, preselectedOrganizationId, categories, termsVersion, privacyVersion, termsHref, privacyHref, turnstileToken, turnstileSlot, onSubmit, onChange, legalLayout, messagePlaceholder, requireCategorySelection, unstyled, classNames, locale, className, }: FFIDInquiryFormProps): react_jsx_runtime.JSX.Element;
|
|
1591
|
+
declare function FFIDInquiryForm({ mode, prefill, organizations, preselectedOrganizationId, categories, termsVersion, privacyVersion, termsHref, privacyHref, turnstileToken, acquisitionSource, turnstileSlot, onSubmit, onChange, legalLayout, messagePlaceholder, requireCategorySelection, unstyled, classNames, locale, className, }: FFIDInquiryFormProps): react_jsx_runtime.JSX.Element;
|
|
1538
1592
|
|
|
1539
|
-
export { type
|
|
1593
|
+
export { type FFIDInquiryFormSubmitData as $, type AnnouncementListResponse as A, type AnnouncementStatus as B, type AnnouncementType as C, EFFECTIVE_SUBSCRIPTION_STATUSES as D, type EffectiveSubscriptionStatus as E, type FFIDSubscriptionStatus as F, FFIDAnnouncementBadge as G, FFIDAnnouncementList as H, type FFIDAnnouncementsError as I, type FFIDAnnouncementsErrorCode as J, type FFIDAnnouncementsServerResponse as K, type ListAnnouncementsOptions as L, type FFIDApiResponseMeta as M, type FFIDCacheConfig as N, type FFIDContextValue as O, type FFIDInquiryAcquisitionSource as P, type FFIDInquiryCategory as Q, type FFIDInquiryCategorySite2026 as R, FFIDInquiryForm as S, type TokenStore as T, type FFIDInquiryFormCategoryItem as U, type FFIDInquiryFormClassNames as V, type FFIDInquiryFormLegalLayout as W, type FFIDInquiryFormOrganization as X, type FFIDInquiryFormPlaceholderContext as Y, type FFIDInquiryFormPrefill as Z, type FFIDInquiryFormProps as _, type FFIDOAuthUserInfoSubscription as a, type FFIDInquiryFormSubmitResult as a0, type FFIDJwtClaims as a1, FFIDLoginButton as a2, type FFIDOAuthUserInfoMemberRole as a3, FFIDOrganizationSwitcher as a4, type FFIDSeatAssignmentClaim as a5, type FFIDSeatAssignmentStatus as a6, type FFIDSeatModel as a7, type FFIDServiceAccessDenialReason as a8, type FFIDServiceAccessFailPolicy as a9, FFIDSubscriptionBadge as aa, FFIDUserMenu as ab, FFID_INQUIRY_ACQUISITION_SOURCES as ac, FFID_INQUIRY_CATEGORIES as ad, FFID_INQUIRY_CATEGORIES_SITE_2026 as ae, type TokenData as af, type UseFFIDAnnouncementsOptions as ag, type UseFFIDAnnouncementsReturn as ah, createTokenStore as ai, isFFIDInquiryAcquisitionSource 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 FFIDPrompt as b, type FFIDConfig as c, type FFIDApiResponse as d, type FFIDSessionResponse as e, type FFIDSignOutResult as f, type FFIDError as g, type FFIDSubscriptionCheckResponse as h, type FFIDCheckServiceAccessParams as i, type FFIDServiceAccessDecision as j, type FFIDAnalyticsConfig as k, type FFIDVerifyAccessTokenOptions as l, type FFIDOAuthUserInfo as m, type FFIDInquiryCreateParams as n, type FFIDInquiryCreateResponse as o, type FFIDAuthMode as p, type FFIDLogger as q, type FFIDCacheAdapter as r, type FFIDUser as s, type FFIDOrganization as t, type FFIDSubscription as u, type FFIDSubscriptionContextValue as v, type FFIDAnnouncementsClientConfig as w, type FFIDAnnouncementsApiResponse as x, type FFIDAnnouncementsLogger as y, type Announcement as z };
|
|
@@ -1036,6 +1036,26 @@ type FFIDInquiryCategorySite2026 = (typeof FFID_INQUIRY_CATEGORIES_SITE_2026)[nu
|
|
|
1036
1036
|
* parameter) to the canonical union.
|
|
1037
1037
|
*/
|
|
1038
1038
|
declare const isFFIDInquiryCategorySite2026: (value: string) => value is FFIDInquiryCategorySite2026;
|
|
1039
|
+
/**
|
|
1040
|
+
* Acquisition-source ("how did you first hear about us") survey slugs
|
|
1041
|
+
* accepted by `/api/v1/ext/inquiry` (feelflow-id-platform#4377). Mirrors
|
|
1042
|
+
* feelflow-website-2026 `ACQUISITION_SOURCE_OPTIONS`
|
|
1043
|
+
* (`feelflow-site/src/lib/acquisition-source.ts`); FFID
|
|
1044
|
+
* `src/lib/inquiry/acquisition-sources.ts` is the persistence-side
|
|
1045
|
+
* source of truth.
|
|
1046
|
+
*
|
|
1047
|
+
* Unlike `category`, the server validates this field strictly: a value
|
|
1048
|
+
* outside this list is rejected with `INQUIRY_VALIDATION_ERROR` rather than
|
|
1049
|
+
* stored as-is. Ship a new slug to FFID first, then start sending it.
|
|
1050
|
+
*/
|
|
1051
|
+
declare const FFID_INQUIRY_ACQUISITION_SOURCES: readonly ["referral", "generative-ai", "social-media", "networking-event", "web-search", "company-blog", "sales-outreach", "press-release", "web-advertising", "other"];
|
|
1052
|
+
type FFIDInquiryAcquisitionSource = (typeof FFID_INQUIRY_ACQUISITION_SOURCES)[number];
|
|
1053
|
+
/**
|
|
1054
|
+
* Runtime type guard for the acquisition-source allowlist. Use when
|
|
1055
|
+
* narrowing an unknown string (e.g., a URL query parameter or analytics
|
|
1056
|
+
* value) before passing it to `client.inquiry.create()`.
|
|
1057
|
+
*/
|
|
1058
|
+
declare const isFFIDInquiryAcquisitionSource: (value: string) => value is FFIDInquiryAcquisitionSource;
|
|
1039
1059
|
/**
|
|
1040
1060
|
* Parameters for `client.inquiry.create()`. When submitting from a
|
|
1041
1061
|
* server-side SDK (Service API Key), set `source` to a stable
|
|
@@ -1055,6 +1075,18 @@ interface FFIDInquiryCreateParams {
|
|
|
1055
1075
|
name: string;
|
|
1056
1076
|
message: string;
|
|
1057
1077
|
category?: FFIDInquiryCategorySite2026 | FFIDInquiryCategory | (string & {});
|
|
1078
|
+
/**
|
|
1079
|
+
* "How did you first hear about us" survey answer (#4377). Optional and
|
|
1080
|
+
* backward compatible — `undefined` and `null` are both normalized to
|
|
1081
|
+
* an omitted key on the wire (`null` is accepted so
|
|
1082
|
+
* `FFIDInquiryFormSubmitData.acquisitionSource` can be forwarded
|
|
1083
|
+
* verbatim) and the row is stored with NULL.
|
|
1084
|
+
* Server-side validation is a strict allowlist (unlike `category`):
|
|
1085
|
+
* values outside {@link FFID_INQUIRY_ACQUISITION_SOURCES} fail with
|
|
1086
|
+
* `INQUIRY_VALIDATION_ERROR`. Narrow untrusted strings with
|
|
1087
|
+
* {@link isFFIDInquiryAcquisitionSource} before submitting.
|
|
1088
|
+
*/
|
|
1089
|
+
acquisitionSource?: FFIDInquiryAcquisitionSource | null;
|
|
1058
1090
|
company?: string;
|
|
1059
1091
|
phone?: string;
|
|
1060
1092
|
locale?: 'ja' | 'en';
|
|
@@ -1420,6 +1452,15 @@ interface FFIDInquiryFormSubmitData {
|
|
|
1420
1452
|
company: string | null;
|
|
1421
1453
|
phone: string | null;
|
|
1422
1454
|
category: string;
|
|
1455
|
+
/**
|
|
1456
|
+
* Acquisition-source slug forwarded verbatim from the
|
|
1457
|
+
* `acquisitionSource` prop (#4377). `null` when the consumer does not
|
|
1458
|
+
* collect the survey — existing `onSubmit` handlers that ignore the
|
|
1459
|
+
* field keep working unchanged. Typed as the closed allowlist union so
|
|
1460
|
+
* the payload can be handed to `client.inquiry.create()` without a
|
|
1461
|
+
* re-narrowing cast.
|
|
1462
|
+
*/
|
|
1463
|
+
acquisitionSource: FFIDInquiryAcquisitionSource | null;
|
|
1423
1464
|
message: string;
|
|
1424
1465
|
organizationId: string | null;
|
|
1425
1466
|
inquiryFollowupOptIn: boolean;
|
|
@@ -1449,6 +1490,19 @@ interface FFIDInquiryFormProps {
|
|
|
1449
1490
|
privacyHref?: string;
|
|
1450
1491
|
/** Must be refreshed by the consumer when the Turnstile widget reissues a token. */
|
|
1451
1492
|
turnstileToken?: string | null;
|
|
1493
|
+
/**
|
|
1494
|
+
* Acquisition-source survey answer collected by the consumer's own UI
|
|
1495
|
+
* (#4377). The form renders no input for it — like `turnstileToken`,
|
|
1496
|
+
* it is a consumer-controlled value passed through into
|
|
1497
|
+
* `FFIDInquiryFormSubmitData.acquisitionSource` on every submit /
|
|
1498
|
+
* `onChange` broadcast. Typed as the closed
|
|
1499
|
+
* `FFID_INQUIRY_ACQUISITION_SOURCES` union so an invalid slug (e.g. a
|
|
1500
|
+
* display label, or a new value not yet deployed to FFID) fails at the
|
|
1501
|
+
* consumer's compile step instead of rejecting every end-user
|
|
1502
|
+
* submission with `INQUIRY_VALIDATION_ERROR` at runtime. Narrow
|
|
1503
|
+
* untrusted strings with `isFFIDInquiryAcquisitionSource` first.
|
|
1504
|
+
*/
|
|
1505
|
+
acquisitionSource?: FFIDInquiryAcquisitionSource | null;
|
|
1452
1506
|
/** Slot for the consumer's Turnstile widget (anonymous mode only). */
|
|
1453
1507
|
turnstileSlot?: ReactNode;
|
|
1454
1508
|
onSubmit: (data: FFIDInquiryFormSubmitData) => Promise<FFIDInquiryFormSubmitResult>;
|
|
@@ -1534,6 +1588,6 @@ interface FFIDInquiryFormProps {
|
|
|
1534
1588
|
interface FFIDInquiryFormPlaceholderContext {
|
|
1535
1589
|
category: string | null;
|
|
1536
1590
|
}
|
|
1537
|
-
declare function FFIDInquiryForm({ mode, prefill, organizations, preselectedOrganizationId, categories, termsVersion, privacyVersion, termsHref, privacyHref, turnstileToken, turnstileSlot, onSubmit, onChange, legalLayout, messagePlaceholder, requireCategorySelection, unstyled, classNames, locale, className, }: FFIDInquiryFormProps): react_jsx_runtime.JSX.Element;
|
|
1591
|
+
declare function FFIDInquiryForm({ mode, prefill, organizations, preselectedOrganizationId, categories, termsVersion, privacyVersion, termsHref, privacyHref, turnstileToken, acquisitionSource, turnstileSlot, onSubmit, onChange, legalLayout, messagePlaceholder, requireCategorySelection, unstyled, classNames, locale, className, }: FFIDInquiryFormProps): react_jsx_runtime.JSX.Element;
|
|
1538
1592
|
|
|
1539
|
-
export { type
|
|
1593
|
+
export { type FFIDInquiryFormSubmitData as $, type AnnouncementListResponse as A, type AnnouncementStatus as B, type AnnouncementType as C, EFFECTIVE_SUBSCRIPTION_STATUSES as D, type EffectiveSubscriptionStatus as E, type FFIDSubscriptionStatus as F, FFIDAnnouncementBadge as G, FFIDAnnouncementList as H, type FFIDAnnouncementsError as I, type FFIDAnnouncementsErrorCode as J, type FFIDAnnouncementsServerResponse as K, type ListAnnouncementsOptions as L, type FFIDApiResponseMeta as M, type FFIDCacheConfig as N, type FFIDContextValue as O, type FFIDInquiryAcquisitionSource as P, type FFIDInquiryCategory as Q, type FFIDInquiryCategorySite2026 as R, FFIDInquiryForm as S, type TokenStore as T, type FFIDInquiryFormCategoryItem as U, type FFIDInquiryFormClassNames as V, type FFIDInquiryFormLegalLayout as W, type FFIDInquiryFormOrganization as X, type FFIDInquiryFormPlaceholderContext as Y, type FFIDInquiryFormPrefill as Z, type FFIDInquiryFormProps as _, type FFIDOAuthUserInfoSubscription as a, type FFIDInquiryFormSubmitResult as a0, type FFIDJwtClaims as a1, FFIDLoginButton as a2, type FFIDOAuthUserInfoMemberRole as a3, FFIDOrganizationSwitcher as a4, type FFIDSeatAssignmentClaim as a5, type FFIDSeatAssignmentStatus as a6, type FFIDSeatModel as a7, type FFIDServiceAccessDenialReason as a8, type FFIDServiceAccessFailPolicy as a9, FFIDSubscriptionBadge as aa, FFIDUserMenu as ab, FFID_INQUIRY_ACQUISITION_SOURCES as ac, FFID_INQUIRY_CATEGORIES as ad, FFID_INQUIRY_CATEGORIES_SITE_2026 as ae, type TokenData as af, type UseFFIDAnnouncementsOptions as ag, type UseFFIDAnnouncementsReturn as ah, createTokenStore as ai, isFFIDInquiryAcquisitionSource 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 FFIDPrompt as b, type FFIDConfig as c, type FFIDApiResponse as d, type FFIDSessionResponse as e, type FFIDSignOutResult as f, type FFIDError as g, type FFIDSubscriptionCheckResponse as h, type FFIDCheckServiceAccessParams as i, type FFIDServiceAccessDecision as j, type FFIDAnalyticsConfig as k, type FFIDVerifyAccessTokenOptions as l, type FFIDOAuthUserInfo as m, type FFIDInquiryCreateParams as n, type FFIDInquiryCreateResponse as o, type FFIDAuthMode as p, type FFIDLogger as q, type FFIDCacheAdapter as r, type FFIDUser as s, type FFIDOrganization as t, type FFIDSubscription as u, type FFIDSubscriptionContextValue as v, type FFIDAnnouncementsClientConfig as w, type FFIDAnnouncementsApiResponse as x, type FFIDAnnouncementsLogger as y, type Announcement as z };
|