@feelflow/ffid-sdk 5.27.0 → 5.29.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-4QQJMLL7.js} +40 -5
- package/dist/{chunk-R4KUHR4S.cjs → chunk-MESRDT7H.cjs} +41 -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/{ffid-client-BqnzUmG7.d.ts → ffid-client-DCS-MoxK.d.ts} +53 -1
- package/dist/{ffid-client-BlVuH6ja.d.cts → ffid-client-hv2PuUr7.d.cts} +53 -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 +28 -2
- package/dist/index.d.ts +28 -2
- package/dist/index.js +2 -2
- package/dist/server/index.cjs +189 -6
- package/dist/server/index.d.cts +180 -3
- package/dist/server/index.d.ts +180 -3
- package/dist/server/index.js +176 -7
- package/dist/server/test/index.d.cts +1 -1
- package/dist/server/test/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1287,6 +1287,7 @@ function createMembersMethods(deps) {
|
|
|
1287
1287
|
|
|
1288
1288
|
// src/client/provisioning-methods.ts
|
|
1289
1289
|
var USER_PROVISION_ENDPOINT = "/api/v1/ext/users/provision";
|
|
1290
|
+
var USER_WELCOME_EMAIL_ENDPOINT = "/api/v1/ext/users/welcome-email";
|
|
1290
1291
|
var ORGANIZATION_PROVISION_ENDPOINT = "/api/v1/ext/organizations/provision";
|
|
1291
1292
|
var MAX_PROVISION_MEMBERS = 100;
|
|
1292
1293
|
var ASSIGNABLE_MEMBER_ROLES = {
|
|
@@ -1303,7 +1304,7 @@ function createProvisioningMethods(deps) {
|
|
|
1303
1304
|
if (authMode === "service-key") return null;
|
|
1304
1305
|
return createError(
|
|
1305
1306
|
"VALIDATION_ERROR",
|
|
1306
|
-
"provisionUser / provisionOrganization \u306F service-key \u8A8D\u8A3C\uFF08X-Service-Api-Key\uFF09\u3067\u306E\u307F\u5229\u7528\u3067\u304D\u307E\u3059\u3002Bearer / cookie \u30E2\u30FC\u30C9\u3067\u306F\u547C\u3073\u51FA\u305B\u307E\u305B\u3093"
|
|
1307
|
+
"provisionUser / sendProvisionWelcomeEmail / provisionOrganization \u306F service-key \u8A8D\u8A3C\uFF08X-Service-Api-Key\uFF09\u3067\u306E\u307F\u5229\u7528\u3067\u304D\u307E\u3059\u3002Bearer / cookie \u30E2\u30FC\u30C9\u3067\u306F\u547C\u3073\u51FA\u305B\u307E\u305B\u3093"
|
|
1307
1308
|
);
|
|
1308
1309
|
}
|
|
1309
1310
|
async function provisionUser(params) {
|
|
@@ -1320,6 +1321,17 @@ function createProvisioningMethods(deps) {
|
|
|
1320
1321
|
body: JSON.stringify(body)
|
|
1321
1322
|
});
|
|
1322
1323
|
}
|
|
1324
|
+
async function sendProvisionWelcomeEmail(params) {
|
|
1325
|
+
const modeError = serviceKeyModeError();
|
|
1326
|
+
if (modeError) return { error: modeError };
|
|
1327
|
+
if (!params.email || !params.email.trim()) {
|
|
1328
|
+
return { error: createError("VALIDATION_ERROR", "email \u306F\u5FC5\u9808\u3067\u3059") };
|
|
1329
|
+
}
|
|
1330
|
+
return fetchWithAuth(USER_WELCOME_EMAIL_ENDPOINT, {
|
|
1331
|
+
method: "POST",
|
|
1332
|
+
body: JSON.stringify({ email: params.email.trim() })
|
|
1333
|
+
});
|
|
1334
|
+
}
|
|
1323
1335
|
async function provisionOrganization(params) {
|
|
1324
1336
|
const modeError = serviceKeyModeError();
|
|
1325
1337
|
if (modeError) return { error: modeError };
|
|
@@ -1369,7 +1381,7 @@ function createProvisioningMethods(deps) {
|
|
|
1369
1381
|
body: JSON.stringify(body)
|
|
1370
1382
|
});
|
|
1371
1383
|
}
|
|
1372
|
-
return { provisionUser, provisionOrganization };
|
|
1384
|
+
return { provisionUser, sendProvisionWelcomeEmail, provisionOrganization };
|
|
1373
1385
|
}
|
|
1374
1386
|
|
|
1375
1387
|
// src/client/seat-methods.ts
|
|
@@ -1643,7 +1655,7 @@ function validateTokenResponse(tokenResponse) {
|
|
|
1643
1655
|
}
|
|
1644
1656
|
|
|
1645
1657
|
// src/client/version-check.ts
|
|
1646
|
-
var SDK_VERSION = "5.
|
|
1658
|
+
var SDK_VERSION = "5.29.0";
|
|
1647
1659
|
var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
|
|
1648
1660
|
var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
|
|
1649
1661
|
function sdkHeaders() {
|
|
@@ -3150,6 +3162,11 @@ function createInquiryMethods(deps) {
|
|
|
3150
3162
|
name,
|
|
3151
3163
|
message,
|
|
3152
3164
|
category: params.category,
|
|
3165
|
+
// Normalize null ("survey not collected", e.g. forwarded verbatim
|
|
3166
|
+
// from FFIDInquiryFormSubmitData) to undefined so JSON.stringify
|
|
3167
|
+
// drops the key entirely — older FFID deployments never see it and
|
|
3168
|
+
// current ones treat the omission as NULL.
|
|
3169
|
+
acquisitionSource: params.acquisitionSource ?? void 0,
|
|
3153
3170
|
company: params.company,
|
|
3154
3171
|
phone: params.phone,
|
|
3155
3172
|
locale: params.locale,
|
|
@@ -3684,7 +3701,7 @@ function createFFIDClient(config) {
|
|
|
3684
3701
|
createError,
|
|
3685
3702
|
serviceCode: config.serviceCode
|
|
3686
3703
|
});
|
|
3687
|
-
const { provisionUser, provisionOrganization } = createProvisioningMethods({
|
|
3704
|
+
const { provisionUser, sendProvisionWelcomeEmail, provisionOrganization } = createProvisioningMethods({
|
|
3688
3705
|
fetchWithAuth,
|
|
3689
3706
|
createError,
|
|
3690
3707
|
authMode
|
|
@@ -3785,6 +3802,7 @@ function createFFIDClient(config) {
|
|
|
3785
3802
|
updateMemberRole,
|
|
3786
3803
|
removeMember,
|
|
3787
3804
|
provisionUser,
|
|
3805
|
+
sendProvisionWelcomeEmail,
|
|
3788
3806
|
provisionOrganization,
|
|
3789
3807
|
getProfile,
|
|
3790
3808
|
updateProfile,
|
|
@@ -5360,6 +5378,19 @@ var FFID_INQUIRY_CATEGORIES_SITE_2026 = [
|
|
|
5360
5378
|
"other"
|
|
5361
5379
|
];
|
|
5362
5380
|
var isFFIDInquiryCategorySite2026 = (value) => FFID_INQUIRY_CATEGORIES_SITE_2026.includes(value);
|
|
5381
|
+
var FFID_INQUIRY_ACQUISITION_SOURCES = [
|
|
5382
|
+
"referral",
|
|
5383
|
+
"generative-ai",
|
|
5384
|
+
"social-media",
|
|
5385
|
+
"networking-event",
|
|
5386
|
+
"web-search",
|
|
5387
|
+
"company-blog",
|
|
5388
|
+
"sales-outreach",
|
|
5389
|
+
"press-release",
|
|
5390
|
+
"web-advertising",
|
|
5391
|
+
"other"
|
|
5392
|
+
];
|
|
5393
|
+
var isFFIDInquiryAcquisitionSource = (value) => FFID_INQUIRY_ACQUISITION_SOURCES.includes(value);
|
|
5363
5394
|
var CATEGORY_PLACEHOLDER_LABEL_JA = "\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044";
|
|
5364
5395
|
var CATEGORY_REQUIRED_ERROR_JA = "\u304A\u554F\u3044\u5408\u308F\u305B\u7A2E\u5225\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
5365
5396
|
var TERMS_REQUIRED_ERROR_JA = "\u5229\u7528\u898F\u7D04\u3078\u306E\u540C\u610F\u304C\u5FC5\u8981\u3067\u3059\u3002";
|
|
@@ -5492,6 +5523,7 @@ function FFIDInquiryForm({
|
|
|
5492
5523
|
termsHref,
|
|
5493
5524
|
privacyHref,
|
|
5494
5525
|
turnstileToken = null,
|
|
5526
|
+
acquisitionSource = null,
|
|
5495
5527
|
turnstileSlot,
|
|
5496
5528
|
onSubmit,
|
|
5497
5529
|
onChange,
|
|
@@ -5573,6 +5605,7 @@ function FFIDInquiryForm({
|
|
|
5573
5605
|
company: company.trim() || null,
|
|
5574
5606
|
phone: phone.trim() || null,
|
|
5575
5607
|
category,
|
|
5608
|
+
acquisitionSource,
|
|
5576
5609
|
message: message.trim(),
|
|
5577
5610
|
organizationId,
|
|
5578
5611
|
inquiryFollowupOptIn: inquiryFollowup,
|
|
@@ -5588,6 +5621,7 @@ function FFIDInquiryForm({
|
|
|
5588
5621
|
company,
|
|
5589
5622
|
phone,
|
|
5590
5623
|
category,
|
|
5624
|
+
acquisitionSource,
|
|
5591
5625
|
message,
|
|
5592
5626
|
organizationId,
|
|
5593
5627
|
inquiryFollowup,
|
|
@@ -5636,6 +5670,7 @@ function FFIDInquiryForm({
|
|
|
5636
5670
|
company: company.trim() || null,
|
|
5637
5671
|
phone: phone.trim() || null,
|
|
5638
5672
|
category,
|
|
5673
|
+
acquisitionSource,
|
|
5639
5674
|
message: message.trim(),
|
|
5640
5675
|
organizationId,
|
|
5641
5676
|
inquiryFollowupOptIn: inquiryFollowup,
|
|
@@ -5954,4 +5989,4 @@ function FFIDInquiryForm({
|
|
|
5954
5989
|
);
|
|
5955
5990
|
}
|
|
5956
5991
|
|
|
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 };
|
|
5992
|
+
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 };
|
|
@@ -1289,6 +1289,7 @@ function createMembersMethods(deps) {
|
|
|
1289
1289
|
|
|
1290
1290
|
// src/client/provisioning-methods.ts
|
|
1291
1291
|
var USER_PROVISION_ENDPOINT = "/api/v1/ext/users/provision";
|
|
1292
|
+
var USER_WELCOME_EMAIL_ENDPOINT = "/api/v1/ext/users/welcome-email";
|
|
1292
1293
|
var ORGANIZATION_PROVISION_ENDPOINT = "/api/v1/ext/organizations/provision";
|
|
1293
1294
|
var MAX_PROVISION_MEMBERS = 100;
|
|
1294
1295
|
var ASSIGNABLE_MEMBER_ROLES = {
|
|
@@ -1305,7 +1306,7 @@ function createProvisioningMethods(deps) {
|
|
|
1305
1306
|
if (authMode === "service-key") return null;
|
|
1306
1307
|
return createError(
|
|
1307
1308
|
"VALIDATION_ERROR",
|
|
1308
|
-
"provisionUser / provisionOrganization \u306F service-key \u8A8D\u8A3C\uFF08X-Service-Api-Key\uFF09\u3067\u306E\u307F\u5229\u7528\u3067\u304D\u307E\u3059\u3002Bearer / cookie \u30E2\u30FC\u30C9\u3067\u306F\u547C\u3073\u51FA\u305B\u307E\u305B\u3093"
|
|
1309
|
+
"provisionUser / sendProvisionWelcomeEmail / provisionOrganization \u306F service-key \u8A8D\u8A3C\uFF08X-Service-Api-Key\uFF09\u3067\u306E\u307F\u5229\u7528\u3067\u304D\u307E\u3059\u3002Bearer / cookie \u30E2\u30FC\u30C9\u3067\u306F\u547C\u3073\u51FA\u305B\u307E\u305B\u3093"
|
|
1309
1310
|
);
|
|
1310
1311
|
}
|
|
1311
1312
|
async function provisionUser(params) {
|
|
@@ -1322,6 +1323,17 @@ function createProvisioningMethods(deps) {
|
|
|
1322
1323
|
body: JSON.stringify(body)
|
|
1323
1324
|
});
|
|
1324
1325
|
}
|
|
1326
|
+
async function sendProvisionWelcomeEmail(params) {
|
|
1327
|
+
const modeError = serviceKeyModeError();
|
|
1328
|
+
if (modeError) return { error: modeError };
|
|
1329
|
+
if (!params.email || !params.email.trim()) {
|
|
1330
|
+
return { error: createError("VALIDATION_ERROR", "email \u306F\u5FC5\u9808\u3067\u3059") };
|
|
1331
|
+
}
|
|
1332
|
+
return fetchWithAuth(USER_WELCOME_EMAIL_ENDPOINT, {
|
|
1333
|
+
method: "POST",
|
|
1334
|
+
body: JSON.stringify({ email: params.email.trim() })
|
|
1335
|
+
});
|
|
1336
|
+
}
|
|
1325
1337
|
async function provisionOrganization(params) {
|
|
1326
1338
|
const modeError = serviceKeyModeError();
|
|
1327
1339
|
if (modeError) return { error: modeError };
|
|
@@ -1371,7 +1383,7 @@ function createProvisioningMethods(deps) {
|
|
|
1371
1383
|
body: JSON.stringify(body)
|
|
1372
1384
|
});
|
|
1373
1385
|
}
|
|
1374
|
-
return { provisionUser, provisionOrganization };
|
|
1386
|
+
return { provisionUser, sendProvisionWelcomeEmail, provisionOrganization };
|
|
1375
1387
|
}
|
|
1376
1388
|
|
|
1377
1389
|
// src/client/seat-methods.ts
|
|
@@ -1645,7 +1657,7 @@ function validateTokenResponse(tokenResponse) {
|
|
|
1645
1657
|
}
|
|
1646
1658
|
|
|
1647
1659
|
// src/client/version-check.ts
|
|
1648
|
-
var SDK_VERSION = "5.
|
|
1660
|
+
var SDK_VERSION = "5.29.0";
|
|
1649
1661
|
var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
|
|
1650
1662
|
var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
|
|
1651
1663
|
function sdkHeaders() {
|
|
@@ -3152,6 +3164,11 @@ function createInquiryMethods(deps) {
|
|
|
3152
3164
|
name,
|
|
3153
3165
|
message,
|
|
3154
3166
|
category: params.category,
|
|
3167
|
+
// Normalize null ("survey not collected", e.g. forwarded verbatim
|
|
3168
|
+
// from FFIDInquiryFormSubmitData) to undefined so JSON.stringify
|
|
3169
|
+
// drops the key entirely — older FFID deployments never see it and
|
|
3170
|
+
// current ones treat the omission as NULL.
|
|
3171
|
+
acquisitionSource: params.acquisitionSource ?? void 0,
|
|
3155
3172
|
company: params.company,
|
|
3156
3173
|
phone: params.phone,
|
|
3157
3174
|
locale: params.locale,
|
|
@@ -3686,7 +3703,7 @@ function createFFIDClient(config) {
|
|
|
3686
3703
|
createError,
|
|
3687
3704
|
serviceCode: config.serviceCode
|
|
3688
3705
|
});
|
|
3689
|
-
const { provisionUser, provisionOrganization } = createProvisioningMethods({
|
|
3706
|
+
const { provisionUser, sendProvisionWelcomeEmail, provisionOrganization } = createProvisioningMethods({
|
|
3690
3707
|
fetchWithAuth,
|
|
3691
3708
|
createError,
|
|
3692
3709
|
authMode
|
|
@@ -3787,6 +3804,7 @@ function createFFIDClient(config) {
|
|
|
3787
3804
|
updateMemberRole,
|
|
3788
3805
|
removeMember,
|
|
3789
3806
|
provisionUser,
|
|
3807
|
+
sendProvisionWelcomeEmail,
|
|
3790
3808
|
provisionOrganization,
|
|
3791
3809
|
getProfile,
|
|
3792
3810
|
updateProfile,
|
|
@@ -5362,6 +5380,19 @@ var FFID_INQUIRY_CATEGORIES_SITE_2026 = [
|
|
|
5362
5380
|
"other"
|
|
5363
5381
|
];
|
|
5364
5382
|
var isFFIDInquiryCategorySite2026 = (value) => FFID_INQUIRY_CATEGORIES_SITE_2026.includes(value);
|
|
5383
|
+
var FFID_INQUIRY_ACQUISITION_SOURCES = [
|
|
5384
|
+
"referral",
|
|
5385
|
+
"generative-ai",
|
|
5386
|
+
"social-media",
|
|
5387
|
+
"networking-event",
|
|
5388
|
+
"web-search",
|
|
5389
|
+
"company-blog",
|
|
5390
|
+
"sales-outreach",
|
|
5391
|
+
"press-release",
|
|
5392
|
+
"web-advertising",
|
|
5393
|
+
"other"
|
|
5394
|
+
];
|
|
5395
|
+
var isFFIDInquiryAcquisitionSource = (value) => FFID_INQUIRY_ACQUISITION_SOURCES.includes(value);
|
|
5365
5396
|
var CATEGORY_PLACEHOLDER_LABEL_JA = "\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044";
|
|
5366
5397
|
var CATEGORY_REQUIRED_ERROR_JA = "\u304A\u554F\u3044\u5408\u308F\u305B\u7A2E\u5225\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
5367
5398
|
var TERMS_REQUIRED_ERROR_JA = "\u5229\u7528\u898F\u7D04\u3078\u306E\u540C\u610F\u304C\u5FC5\u8981\u3067\u3059\u3002";
|
|
@@ -5494,6 +5525,7 @@ function FFIDInquiryForm({
|
|
|
5494
5525
|
termsHref,
|
|
5495
5526
|
privacyHref,
|
|
5496
5527
|
turnstileToken = null,
|
|
5528
|
+
acquisitionSource = null,
|
|
5497
5529
|
turnstileSlot,
|
|
5498
5530
|
onSubmit,
|
|
5499
5531
|
onChange,
|
|
@@ -5575,6 +5607,7 @@ function FFIDInquiryForm({
|
|
|
5575
5607
|
company: company.trim() || null,
|
|
5576
5608
|
phone: phone.trim() || null,
|
|
5577
5609
|
category,
|
|
5610
|
+
acquisitionSource,
|
|
5578
5611
|
message: message.trim(),
|
|
5579
5612
|
organizationId,
|
|
5580
5613
|
inquiryFollowupOptIn: inquiryFollowup,
|
|
@@ -5590,6 +5623,7 @@ function FFIDInquiryForm({
|
|
|
5590
5623
|
company,
|
|
5591
5624
|
phone,
|
|
5592
5625
|
category,
|
|
5626
|
+
acquisitionSource,
|
|
5593
5627
|
message,
|
|
5594
5628
|
organizationId,
|
|
5595
5629
|
inquiryFollowup,
|
|
@@ -5638,6 +5672,7 @@ function FFIDInquiryForm({
|
|
|
5638
5672
|
company: company.trim() || null,
|
|
5639
5673
|
phone: phone.trim() || null,
|
|
5640
5674
|
category,
|
|
5675
|
+
acquisitionSource,
|
|
5641
5676
|
message: message.trim(),
|
|
5642
5677
|
organizationId,
|
|
5643
5678
|
inquiryFollowupOptIn: inquiryFollowup,
|
|
@@ -5976,6 +6011,7 @@ exports.FFID_ANNOUNCEMENTS_ERROR_CODES = FFID_ANNOUNCEMENTS_ERROR_CODES;
|
|
|
5976
6011
|
exports.FFID_CATALOG_ENVIRONMENTS = FFID_CATALOG_ENVIRONMENTS;
|
|
5977
6012
|
exports.FFID_CATALOG_PUBLICATION_STATUSES = FFID_CATALOG_PUBLICATION_STATUSES;
|
|
5978
6013
|
exports.FFID_ERROR_CODES = FFID_ERROR_CODES;
|
|
6014
|
+
exports.FFID_INQUIRY_ACQUISITION_SOURCES = FFID_INQUIRY_ACQUISITION_SOURCES;
|
|
5979
6015
|
exports.FFID_INQUIRY_CATEGORIES = FFID_INQUIRY_CATEGORIES;
|
|
5980
6016
|
exports.FFID_INQUIRY_CATEGORIES_SITE_2026 = FFID_INQUIRY_CATEGORIES_SITE_2026;
|
|
5981
6017
|
exports.canonicalizeCatalogValue = canonicalizeCatalogValue;
|
|
@@ -5996,6 +6032,7 @@ exports.handleRedirectCallback = handleRedirectCallback;
|
|
|
5996
6032
|
exports.hasAccessFromUserinfo = hasAccessFromUserinfo;
|
|
5997
6033
|
exports.hashCanonicalJson = hashCanonicalJson;
|
|
5998
6034
|
exports.isBlockedFromUserinfo = isBlockedFromUserinfo;
|
|
6035
|
+
exports.isFFIDInquiryAcquisitionSource = isFFIDInquiryAcquisitionSource;
|
|
5999
6036
|
exports.isFFIDInquiryCategorySite2026 = isFFIDInquiryCategorySite2026;
|
|
6000
6037
|
exports.normalizeRedirectUri = normalizeRedirectUri;
|
|
6001
6038
|
exports.retrieveCodeVerifier = retrieveCodeVerifier;
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkMESRDT7H_cjs = require('../chunk-MESRDT7H.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 chunkMESRDT7H_cjs.FFIDAnnouncementBadge; }
|
|
10
10
|
});
|
|
11
11
|
Object.defineProperty(exports, "FFIDAnnouncementList", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkMESRDT7H_cjs.FFIDAnnouncementList; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "FFIDInquiryForm", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkMESRDT7H_cjs.FFIDInquiryForm; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "FFIDLoginButton", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkMESRDT7H_cjs.FFIDLoginButton; }
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkMESRDT7H_cjs.FFIDOrganizationSwitcher; }
|
|
26
26
|
});
|
|
27
27
|
Object.defineProperty(exports, "FFIDSubscriptionBadge", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkMESRDT7H_cjs.FFIDSubscriptionBadge; }
|
|
30
30
|
});
|
|
31
31
|
Object.defineProperty(exports, "FFIDUserMenu", {
|
|
32
32
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunkMESRDT7H_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-4QQJMLL7.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';
|
|
@@ -826,6 +852,31 @@ interface FFIDProvisionUserDryRun {
|
|
|
826
852
|
* response. This mirrors how `FFIDApiResponse` is narrowed on `data` / `error`.
|
|
827
853
|
*/
|
|
828
854
|
type FFIDProvisionUserResponse = FFIDProvisionUserOutcome | FFIDProvisionUserDryRun;
|
|
855
|
+
/** Parameters for `sendProvisionWelcomeEmail` (#4449). */
|
|
856
|
+
interface FFIDProvisionWelcomeEmailParams {
|
|
857
|
+
/** Email of the provisioned FFID user to notify (must already exist). */
|
|
858
|
+
email: string;
|
|
859
|
+
}
|
|
860
|
+
/**
|
|
861
|
+
* Response from `sendProvisionWelcomeEmail` (#4449).
|
|
862
|
+
*
|
|
863
|
+
* `status` is always `'sent'` on the data branch. Non-success outcomes arrive
|
|
864
|
+
* on the error branch instead:
|
|
865
|
+
* - `USER_NOT_FOUND` (404) — provision the user first.
|
|
866
|
+
* - `RATE_LIMITED` (429) — per-recipient cooldown; `details.retryAfterSeconds`
|
|
867
|
+
* says when a resend will be accepted. The cooldown is claimed only after a
|
|
868
|
+
* successful send, so a 429 always means an email really was just sent.
|
|
869
|
+
* - `RECOVERY_LINK_GENERATION_FAILED` (502) — the password-setup link could
|
|
870
|
+
* not be generated; nothing was sent.
|
|
871
|
+
* - `EMAIL_SEND_FAILED` / `EMAIL_SEND_FAILED_PERMANENT` (502),
|
|
872
|
+
* `EMAIL_SERVICE_UNAVAILABLE` (503) — delivery-side failures; the caller
|
|
873
|
+
* should surface "not delivered" and offer a resend (failed attempts do not
|
|
874
|
+
* consume the cooldown, so an immediate retry is accepted).
|
|
875
|
+
*/
|
|
876
|
+
interface FFIDProvisionWelcomeEmailResponse {
|
|
877
|
+
status: 'sent';
|
|
878
|
+
user: FFIDProvisionedUser;
|
|
879
|
+
}
|
|
829
880
|
/** A member to add to the provisioned organization. */
|
|
830
881
|
interface FFIDProvisionOrganizationMemberInput {
|
|
831
882
|
email: string;
|
|
@@ -2152,6 +2203,7 @@ declare function createFFIDClient(config: FFIDConfig): {
|
|
|
2152
2203
|
userId: string;
|
|
2153
2204
|
}) => Promise<FFIDApiResponse<FFIDRemoveMemberResponse>>;
|
|
2154
2205
|
provisionUser: (params: FFIDProvisionUserParams) => Promise<FFIDApiResponse<FFIDProvisionUserResponse>>;
|
|
2206
|
+
sendProvisionWelcomeEmail: (params: FFIDProvisionWelcomeEmailParams) => Promise<FFIDApiResponse<FFIDProvisionWelcomeEmailResponse>>;
|
|
2155
2207
|
provisionOrganization: (params: FFIDProvisionOrganizationParams) => Promise<FFIDApiResponse<FFIDProvisionOrganizationResponse>>;
|
|
2156
2208
|
getProfile: (options?: FFIDProfileCallOptions) => Promise<FFIDApiResponse<FFIDUserProfile>>;
|
|
2157
2209
|
updateProfile: (data: FFIDUpdateUserProfileRequest, options?: FFIDProfileCallOptions) => Promise<FFIDApiResponse<FFIDUserProfile>>;
|
|
@@ -2242,4 +2294,4 @@ declare function createFFIDClient(config: FFIDConfig): {
|
|
|
2242
2294
|
/** Type of the FFID client */
|
|
2243
2295
|
type FFIDClient = ReturnType<typeof createFFIDClient>;
|
|
2244
2296
|
|
|
2245
|
-
export { type
|
|
2297
|
+
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';
|
|
@@ -826,6 +852,31 @@ interface FFIDProvisionUserDryRun {
|
|
|
826
852
|
* response. This mirrors how `FFIDApiResponse` is narrowed on `data` / `error`.
|
|
827
853
|
*/
|
|
828
854
|
type FFIDProvisionUserResponse = FFIDProvisionUserOutcome | FFIDProvisionUserDryRun;
|
|
855
|
+
/** Parameters for `sendProvisionWelcomeEmail` (#4449). */
|
|
856
|
+
interface FFIDProvisionWelcomeEmailParams {
|
|
857
|
+
/** Email of the provisioned FFID user to notify (must already exist). */
|
|
858
|
+
email: string;
|
|
859
|
+
}
|
|
860
|
+
/**
|
|
861
|
+
* Response from `sendProvisionWelcomeEmail` (#4449).
|
|
862
|
+
*
|
|
863
|
+
* `status` is always `'sent'` on the data branch. Non-success outcomes arrive
|
|
864
|
+
* on the error branch instead:
|
|
865
|
+
* - `USER_NOT_FOUND` (404) — provision the user first.
|
|
866
|
+
* - `RATE_LIMITED` (429) — per-recipient cooldown; `details.retryAfterSeconds`
|
|
867
|
+
* says when a resend will be accepted. The cooldown is claimed only after a
|
|
868
|
+
* successful send, so a 429 always means an email really was just sent.
|
|
869
|
+
* - `RECOVERY_LINK_GENERATION_FAILED` (502) — the password-setup link could
|
|
870
|
+
* not be generated; nothing was sent.
|
|
871
|
+
* - `EMAIL_SEND_FAILED` / `EMAIL_SEND_FAILED_PERMANENT` (502),
|
|
872
|
+
* `EMAIL_SERVICE_UNAVAILABLE` (503) — delivery-side failures; the caller
|
|
873
|
+
* should surface "not delivered" and offer a resend (failed attempts do not
|
|
874
|
+
* consume the cooldown, so an immediate retry is accepted).
|
|
875
|
+
*/
|
|
876
|
+
interface FFIDProvisionWelcomeEmailResponse {
|
|
877
|
+
status: 'sent';
|
|
878
|
+
user: FFIDProvisionedUser;
|
|
879
|
+
}
|
|
829
880
|
/** A member to add to the provisioned organization. */
|
|
830
881
|
interface FFIDProvisionOrganizationMemberInput {
|
|
831
882
|
email: string;
|
|
@@ -2152,6 +2203,7 @@ declare function createFFIDClient(config: FFIDConfig): {
|
|
|
2152
2203
|
userId: string;
|
|
2153
2204
|
}) => Promise<FFIDApiResponse<FFIDRemoveMemberResponse>>;
|
|
2154
2205
|
provisionUser: (params: FFIDProvisionUserParams) => Promise<FFIDApiResponse<FFIDProvisionUserResponse>>;
|
|
2206
|
+
sendProvisionWelcomeEmail: (params: FFIDProvisionWelcomeEmailParams) => Promise<FFIDApiResponse<FFIDProvisionWelcomeEmailResponse>>;
|
|
2155
2207
|
provisionOrganization: (params: FFIDProvisionOrganizationParams) => Promise<FFIDApiResponse<FFIDProvisionOrganizationResponse>>;
|
|
2156
2208
|
getProfile: (options?: FFIDProfileCallOptions) => Promise<FFIDApiResponse<FFIDUserProfile>>;
|
|
2157
2209
|
updateProfile: (data: FFIDUpdateUserProfileRequest, options?: FFIDProfileCallOptions) => Promise<FFIDApiResponse<FFIDUserProfile>>;
|
|
@@ -2242,4 +2294,4 @@ declare function createFFIDClient(config: FFIDConfig): {
|
|
|
2242
2294
|
/** Type of the FFID client */
|
|
2243
2295
|
type FFIDClient = ReturnType<typeof createFFIDClient>;
|
|
2244
2296
|
|
|
2245
|
-
export { type
|
|
2297
|
+
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 };
|