@feelflow/ffid-sdk 13.0.0 → 13.0.1
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 +1 -1
- package/dist/{FFIDCookieLink-yt5SUr-W.d.cts → FFIDCookieLink-B91Fpinc.d.cts} +2 -1
- package/dist/{FFIDCookieLink-yt5SUr-W.d.ts → FFIDCookieLink-B91Fpinc.d.ts} +2 -1
- package/dist/agency/index.cjs +7 -0
- package/dist/agency/index.d.cts +2 -1
- package/dist/agency/index.d.ts +2 -1
- package/dist/agency/index.js +7 -0
- package/dist/announcements/index.d.cts +2 -1
- package/dist/announcements/index.d.ts +2 -1
- package/dist/chunk-5FNSZ5WN.cjs +26 -0
- package/dist/chunk-D6CCHTHL.cjs +26 -0
- package/dist/chunk-HTFNV6DW.js +22 -0
- package/dist/{chunk-EDBG6KST.cjs → chunk-IA6JV3TN.cjs} +10 -1
- package/dist/chunk-IQSXIOPK.js +22 -0
- package/dist/{chunk-RZCQ22GH.cjs → chunk-LX4RRB44.cjs} +12 -2
- package/dist/{chunk-TCAKCSZG.js → chunk-TSFGRZLQ.js} +10 -1
- package/dist/{chunk-S2AEBJRX.js → chunk-ZIJ5SM4O.js} +12 -2
- package/dist/components/index.cjs +9 -8
- package/dist/components/index.d.cts +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +2 -1
- package/dist/consent/index.cjs +64 -63
- package/dist/consent/index.d.cts +4 -3
- package/dist/consent/index.d.ts +4 -3
- package/dist/consent/index.js +2 -1
- package/dist/{ffid-client-D-eAQFGR.d.cts → ffid-client-CW3siYTe.d.cts} +2 -1
- package/dist/{ffid-client-CFavjQTY.d.ts → ffid-client-CWvm_T2K.d.ts} +2 -1
- package/dist/{index-CP-YDHk1.d.ts → index-BCX5kug1.d.cts} +2 -1
- package/dist/{index-CP-YDHk1.d.cts → index-BCX5kug1.d.ts} +2 -1
- package/dist/index.cjs +115 -114
- package/dist/index.d.cts +5 -4
- package/dist/index.d.ts +5 -4
- package/dist/index.js +4 -3
- package/dist/legal/index.cjs +10 -0
- package/dist/legal/index.d.cts +2 -1
- package/dist/legal/index.d.ts +2 -1
- package/dist/legal/index.js +10 -0
- package/dist/server/index.cjs +15 -1
- package/dist/server/index.d.cts +4 -3
- package/dist/server/index.d.ts +4 -3
- package/dist/server/index.js +15 -1
- package/dist/server/test/index.d.cts +3 -2
- package/dist/server/test/index.d.ts +3 -2
- package/dist/webhooks/index.d.cts +2 -1
- package/dist/webhooks/index.d.ts +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ pnpm add @feelflow/ffid-sdk
|
|
|
27
27
|
利用側は次の順で移行してください。
|
|
28
28
|
|
|
29
29
|
1. サービスの実行環境(ローカル・CI・Vercel 等の配備先)を Node 26.12.1 以上へ移す
|
|
30
|
-
2. その後に `@feelflow/ffid-sdk` を `^13.0.
|
|
30
|
+
2. その後に `@feelflow/ffid-sdk` を `^13.0.1` へ上げる(13.0.1 は API キーを載せた要求が 3xx を追従しないようにした修正を含みます。詳細は [CHANGELOG](./CHANGELOG.md) の 13.0.1)
|
|
31
31
|
|
|
32
32
|
Node 26.12.1 未満の環境(26.0〜26.12.0 を含む)で 13 を入れると npm は `EBADENGINE` の警告を出し(`engine-strict=true` ならインストールを拒否します)、動作は保証しません。Node を上げられないサービスは 12.x に留めてください。
|
|
33
33
|
|
|
@@ -1082,4 +1082,5 @@ interface FFIDCookieLinkProps {
|
|
|
1082
1082
|
}
|
|
1083
1083
|
declare function FFIDCookieLink({ children, className, style, id, }: FFIDCookieLinkProps): React.JSX.Element;
|
|
1084
1084
|
|
|
1085
|
-
export {
|
|
1085
|
+
export { ALL_DENIED_EXCEPT_NECESSARY as A, CONSENT_COOKIE_MAX_AGE_SEC as C, DEFAULT_CONSENT_ERROR_MESSAGES as D, FFIDConsentMergeWarningSchema as E, FFIDConsentSourceSchema as I, FFIDConsentStateSchema as J, FFIDConsentUpdateSchema as K, FFIDCookieBanner as L, FFIDCookieLink as O, FFIDCookiePolicySchema as R, FFIDCookieSettings as S, FFIDInternalConsentSourceSchema as W, FFIDPublicConsentSourceSchema as Y, FFID_CONSENT_ERROR_CODES as Z, FFID_CONSENT_NOT_DECIDED_STATE as _, GetCategoriesWireSchema as a0, GetConsentMeWireSchema as a1, GetDocumentWireSchema as a3, PostConsentRequestSchema as a7, PostConsentWireSchema as a8, PostSyncRequestSchema as aa, PostSyncWireSchema as ab, PostWithdrawWireSchema as ac, clearConsentDismissalTimestamp as af, clearConsentSessionMirror as ag, createGtagBridge as ah, decodeConsentCookie as ai, deleteConsentCookie as aj, encodeConsentCookie as ak, mapCategoriesToGtagParams as al, readConsentCookie as am, readConsentDismissalTimestamp as an, readConsentSessionMirror as ao, useFFIDConsent as ap, useFFIDConsentPreferences as aq, writeConsentCookie as ar, writeConsentDismissalTimestamp as as, writeConsentSessionMirror as at, CONSENT_COOKIE_NAME as i, CONSENT_DISMISSAL_TIMESTAMP_KEY as j, CONSENT_SESSION_STORAGE_KEY as k, COOKIE_VERSION as l, DeviceIdSchema as m, FFIDAnalyticsProvider as n, FFIDConsentCategoriesSchema as p, FFIDConsentCategoryCodeSchema as r, FFIDConsentCategoryMetadataSchema as s, FFIDConsentContext as t, FFIDConsentError as v, FFIDConsentMergeStrategySchema as y };
|
|
1086
|
+
export type { GetCategoriesWire as $, FFIDConsentMergeWarningEvent as B, FFIDConsentResult as F, GetConsentMeWire as G, FFIDConsentSource as H, FFIDCookieBannerClassNames as M, FFIDCookieBannerProps as N, PostConsentWire as P, FFIDCookieLinkProps as Q, FFIDCookieSettingsClassNames as T, FFIDCookieSettingsProps as U, FFIDInternalConsentSource as V, FFIDPublicConsentSource as X, FFIDConsentState as a, GetDocumentWire as a2, GtagBridge as a4, GtagBridgeOptions as a5, PostConsentRequest as a6, PostSyncRequest as a9, UseFFIDConsentPreferencesReturn as ad, UseFFIDConsentReturn as ae, FFIDConsentUpdate as b, FFIDConsentCategories as c, FFIDConsentSyncResult as d, FFIDConsentCategoryMetadata as e, FFIDCookiePolicy as f, PostSyncWire as g, PostWithdrawWire as h, FFIDAnalyticsProviderProps as o, FFIDConsentCategoryCode as q, FFIDConsentContextValue as u, FFIDConsentErrorCode as w, FFIDConsentMergeStrategy as x, FFIDConsentMergeWarning as z };
|
|
@@ -1082,4 +1082,5 @@ interface FFIDCookieLinkProps {
|
|
|
1082
1082
|
}
|
|
1083
1083
|
declare function FFIDCookieLink({ children, className, style, id, }: FFIDCookieLinkProps): React.JSX.Element;
|
|
1084
1084
|
|
|
1085
|
-
export {
|
|
1085
|
+
export { ALL_DENIED_EXCEPT_NECESSARY as A, CONSENT_COOKIE_MAX_AGE_SEC as C, DEFAULT_CONSENT_ERROR_MESSAGES as D, FFIDConsentMergeWarningSchema as E, FFIDConsentSourceSchema as I, FFIDConsentStateSchema as J, FFIDConsentUpdateSchema as K, FFIDCookieBanner as L, FFIDCookieLink as O, FFIDCookiePolicySchema as R, FFIDCookieSettings as S, FFIDInternalConsentSourceSchema as W, FFIDPublicConsentSourceSchema as Y, FFID_CONSENT_ERROR_CODES as Z, FFID_CONSENT_NOT_DECIDED_STATE as _, GetCategoriesWireSchema as a0, GetConsentMeWireSchema as a1, GetDocumentWireSchema as a3, PostConsentRequestSchema as a7, PostConsentWireSchema as a8, PostSyncRequestSchema as aa, PostSyncWireSchema as ab, PostWithdrawWireSchema as ac, clearConsentDismissalTimestamp as af, clearConsentSessionMirror as ag, createGtagBridge as ah, decodeConsentCookie as ai, deleteConsentCookie as aj, encodeConsentCookie as ak, mapCategoriesToGtagParams as al, readConsentCookie as am, readConsentDismissalTimestamp as an, readConsentSessionMirror as ao, useFFIDConsent as ap, useFFIDConsentPreferences as aq, writeConsentCookie as ar, writeConsentDismissalTimestamp as as, writeConsentSessionMirror as at, CONSENT_COOKIE_NAME as i, CONSENT_DISMISSAL_TIMESTAMP_KEY as j, CONSENT_SESSION_STORAGE_KEY as k, COOKIE_VERSION as l, DeviceIdSchema as m, FFIDAnalyticsProvider as n, FFIDConsentCategoriesSchema as p, FFIDConsentCategoryCodeSchema as r, FFIDConsentCategoryMetadataSchema as s, FFIDConsentContext as t, FFIDConsentError as v, FFIDConsentMergeStrategySchema as y };
|
|
1086
|
+
export type { GetCategoriesWire as $, FFIDConsentMergeWarningEvent as B, FFIDConsentResult as F, GetConsentMeWire as G, FFIDConsentSource as H, FFIDCookieBannerClassNames as M, FFIDCookieBannerProps as N, PostConsentWire as P, FFIDCookieLinkProps as Q, FFIDCookieSettingsClassNames as T, FFIDCookieSettingsProps as U, FFIDInternalConsentSource as V, FFIDPublicConsentSource as X, FFIDConsentState as a, GetDocumentWire as a2, GtagBridge as a4, GtagBridgeOptions as a5, PostConsentRequest as a6, PostSyncRequest as a9, UseFFIDConsentPreferencesReturn as ad, UseFFIDConsentReturn as ae, FFIDConsentUpdate as b, FFIDConsentCategories as c, FFIDConsentSyncResult as d, FFIDConsentCategoryMetadata as e, FFIDCookiePolicy as f, PostSyncWire as g, PostWithdrawWire as h, FFIDAnalyticsProviderProps as o, FFIDConsentCategoryCode as q, FFIDConsentContextValue as u, FFIDConsentErrorCode as w, FFIDConsentMergeStrategy as x, FFIDConsentMergeWarning as z };
|
package/dist/agency/index.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunkD6CCHTHL_cjs = require('../chunk-D6CCHTHL.cjs');
|
|
3
4
|
var chunkMDHKSVLP_cjs = require('../chunk-MDHKSVLP.cjs');
|
|
4
5
|
|
|
5
6
|
// src/agency/ffid-agency-client.ts
|
|
@@ -319,6 +320,7 @@ function createFFIDAgencyServerClient(config) {
|
|
|
319
320
|
try {
|
|
320
321
|
response = await fetch(url, {
|
|
321
322
|
method: "POST",
|
|
323
|
+
...chunkD6CCHTHL_cjs.CREDENTIAL_REDIRECT_INIT,
|
|
322
324
|
headers: {
|
|
323
325
|
"Content-Type": "application/json",
|
|
324
326
|
[AGENCY_API_KEY_HEADER]: apiKey
|
|
@@ -336,6 +338,11 @@ function createFFIDAgencyServerClient(config) {
|
|
|
336
338
|
}
|
|
337
339
|
};
|
|
338
340
|
}
|
|
341
|
+
if (chunkD6CCHTHL_cjs.isRedirectResponse(response)) {
|
|
342
|
+
return {
|
|
343
|
+
error: { code: FFID_AGENCY_ERROR_CODES.NETWORK_ERROR, message: chunkD6CCHTHL_cjs.credentialRedirectMessage(response) }
|
|
344
|
+
};
|
|
345
|
+
}
|
|
339
346
|
let payload;
|
|
340
347
|
try {
|
|
341
348
|
payload = await response.json();
|
package/dist/agency/index.d.cts
CHANGED
|
@@ -546,4 +546,5 @@ declare const FFID_AGENCY_ERROR_CODES: {
|
|
|
546
546
|
};
|
|
547
547
|
declare function createFFIDAgencyClient(config?: FFIDAgencyClientConfig): FFIDAgencyClient;
|
|
548
548
|
|
|
549
|
-
export {
|
|
549
|
+
export { FFID_AGENCY_ERROR_CODES, createFFIDAgencyClient, createFFIDAgencyServerClient };
|
|
550
|
+
export type { FFIDAgency, FFIDAgencyApiResponse, FFIDAgencyAssetType, FFIDAgencyBillingConfig, FFIDAgencyBillingOverride, FFIDAgencyBillingSummary, FFIDAgencyBillingType, FFIDAgencyBrandingSettings, FFIDAgencyClient, FFIDAgencyClientConfig, FFIDAgencyDnsRecord, FFIDAgencyDomainSettings, FFIDAgencyEmailSettings, FFIDAgencyError, FFIDAgencyErrorCode, FFIDAgencyHierarchyNode, FFIDAgencyHierarchyResponse, FFIDAgencyInvoice, FFIDAgencyInvoiceStatus, FFIDAgencyLogger, FFIDAgencyOrganization, FFIDAgencyRevenue, FFIDAgencySdkErrorCode, FFIDAgencyServerClient, FFIDAgencyServerClientConfig, FFIDAgencyServerClientError, FFIDAgencyServerClientErrorCode, FFIDAgencyServerClientResponse, FFIDAgencyServerError, FFIDAgencyServerErrorCode, FFIDAgencyServerResponse, FFIDAgencySettings, FFIDAgencyStatus, FFIDLinkOrganizationRequest, FFIDProvisionOrganizationRequest, FFIDProvisionedOrganization, FFIDSetupDomainRequest, FFIDSslStatus, FFIDUpdateAgencyBillingRequest, FFIDUpdateAgencyBrandingRequest, FFIDUpdateAgencyRequest, FFIDUpdateEmailSettingsRequest, FFIDWelcomeEmailOutcome };
|
package/dist/agency/index.d.ts
CHANGED
|
@@ -546,4 +546,5 @@ declare const FFID_AGENCY_ERROR_CODES: {
|
|
|
546
546
|
};
|
|
547
547
|
declare function createFFIDAgencyClient(config?: FFIDAgencyClientConfig): FFIDAgencyClient;
|
|
548
548
|
|
|
549
|
-
export {
|
|
549
|
+
export { FFID_AGENCY_ERROR_CODES, createFFIDAgencyClient, createFFIDAgencyServerClient };
|
|
550
|
+
export type { FFIDAgency, FFIDAgencyApiResponse, FFIDAgencyAssetType, FFIDAgencyBillingConfig, FFIDAgencyBillingOverride, FFIDAgencyBillingSummary, FFIDAgencyBillingType, FFIDAgencyBrandingSettings, FFIDAgencyClient, FFIDAgencyClientConfig, FFIDAgencyDnsRecord, FFIDAgencyDomainSettings, FFIDAgencyEmailSettings, FFIDAgencyError, FFIDAgencyErrorCode, FFIDAgencyHierarchyNode, FFIDAgencyHierarchyResponse, FFIDAgencyInvoice, FFIDAgencyInvoiceStatus, FFIDAgencyLogger, FFIDAgencyOrganization, FFIDAgencyRevenue, FFIDAgencySdkErrorCode, FFIDAgencyServerClient, FFIDAgencyServerClientConfig, FFIDAgencyServerClientError, FFIDAgencyServerClientErrorCode, FFIDAgencyServerClientResponse, FFIDAgencyServerError, FFIDAgencyServerErrorCode, FFIDAgencyServerResponse, FFIDAgencySettings, FFIDAgencyStatus, FFIDLinkOrganizationRequest, FFIDProvisionOrganizationRequest, FFIDProvisionedOrganization, FFIDSetupDomainRequest, FFIDSslStatus, FFIDUpdateAgencyBillingRequest, FFIDUpdateAgencyBrandingRequest, FFIDUpdateAgencyRequest, FFIDUpdateEmailSettingsRequest, FFIDWelcomeEmailOutcome };
|
package/dist/agency/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CREDENTIAL_REDIRECT_INIT, isRedirectResponse, credentialRedirectMessage } from '../chunk-HTFNV6DW.js';
|
|
1
2
|
import { DEFAULT_API_BASE_URL } from '../chunk-JEVK2XUM.js';
|
|
2
3
|
export { DEFAULT_API_BASE_URL } from '../chunk-JEVK2XUM.js';
|
|
3
4
|
|
|
@@ -318,6 +319,7 @@ function createFFIDAgencyServerClient(config) {
|
|
|
318
319
|
try {
|
|
319
320
|
response = await fetch(url, {
|
|
320
321
|
method: "POST",
|
|
322
|
+
...CREDENTIAL_REDIRECT_INIT,
|
|
321
323
|
headers: {
|
|
322
324
|
"Content-Type": "application/json",
|
|
323
325
|
[AGENCY_API_KEY_HEADER]: apiKey
|
|
@@ -335,6 +337,11 @@ function createFFIDAgencyServerClient(config) {
|
|
|
335
337
|
}
|
|
336
338
|
};
|
|
337
339
|
}
|
|
340
|
+
if (isRedirectResponse(response)) {
|
|
341
|
+
return {
|
|
342
|
+
error: { code: FFID_AGENCY_ERROR_CODES.NETWORK_ERROR, message: credentialRedirectMessage(response) }
|
|
343
|
+
};
|
|
344
|
+
}
|
|
338
345
|
let payload;
|
|
339
346
|
try {
|
|
340
347
|
payload = await response.json();
|
|
@@ -162,4 +162,5 @@ declare function createFFIDAnnouncementsClient(config?: FFIDAnnouncementsClientC
|
|
|
162
162
|
/** Type of the FFID Announcements client */
|
|
163
163
|
type FFIDAnnouncementsClient = ReturnType<typeof createFFIDAnnouncementsClient>;
|
|
164
164
|
|
|
165
|
-
export {
|
|
165
|
+
export { FFID_ANNOUNCEMENTS_ERROR_CODES, createFFIDAnnouncementsClient };
|
|
166
|
+
export type { Announcement, AnnouncementListResponse, AnnouncementStatus, AnnouncementType, FFIDAnnouncementsApiResponse, FFIDAnnouncementsClient, FFIDAnnouncementsClientConfig, FFIDAnnouncementsError, FFIDAnnouncementsErrorCode, FFIDAnnouncementsLogger, FFIDAnnouncementsServerResponse, ListAnnouncementsOptions };
|
|
@@ -162,4 +162,5 @@ declare function createFFIDAnnouncementsClient(config?: FFIDAnnouncementsClientC
|
|
|
162
162
|
/** Type of the FFID Announcements client */
|
|
163
163
|
type FFIDAnnouncementsClient = ReturnType<typeof createFFIDAnnouncementsClient>;
|
|
164
164
|
|
|
165
|
-
export {
|
|
165
|
+
export { FFID_ANNOUNCEMENTS_ERROR_CODES, createFFIDAnnouncementsClient };
|
|
166
|
+
export type { Announcement, AnnouncementListResponse, AnnouncementStatus, AnnouncementType, FFIDAnnouncementsApiResponse, FFIDAnnouncementsClient, FFIDAnnouncementsClientConfig, FFIDAnnouncementsError, FFIDAnnouncementsErrorCode, FFIDAnnouncementsLogger, FFIDAnnouncementsServerResponse, ListAnnouncementsOptions };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/shared/credential-redirect.ts
|
|
4
|
+
var CREDENTIAL_REDIRECT_INIT = { redirect: "manual" };
|
|
5
|
+
var HTTP_MOVED_PERMANENTLY = 301;
|
|
6
|
+
var HTTP_FOUND = 302;
|
|
7
|
+
var HTTP_SEE_OTHER = 303;
|
|
8
|
+
var HTTP_TEMPORARY_REDIRECT = 307;
|
|
9
|
+
var HTTP_PERMANENT_REDIRECT = 308;
|
|
10
|
+
var REDIRECT_STATUSES = /* @__PURE__ */ new Set([
|
|
11
|
+
HTTP_MOVED_PERMANENTLY,
|
|
12
|
+
HTTP_FOUND,
|
|
13
|
+
HTTP_SEE_OTHER,
|
|
14
|
+
HTTP_TEMPORARY_REDIRECT,
|
|
15
|
+
HTTP_PERMANENT_REDIRECT
|
|
16
|
+
]);
|
|
17
|
+
function isRedirectResponse(response) {
|
|
18
|
+
return response.type === "opaqueredirect" || REDIRECT_STATUSES.has(response.status);
|
|
19
|
+
}
|
|
20
|
+
function credentialRedirectMessage(response) {
|
|
21
|
+
return `\u30B5\u30FC\u30D0\u30FC\u304C\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\uFF08status: ${response.status}\uFF09\u3092\u8FD4\u3057\u305F\u305F\u3081\u3001API \u30AD\u30FC\u3092\u8EE2\u9001\u5148\u3078\u9001\u3089\u305A\u306B\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002\u63A5\u7D9A\u5148 URL \u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044`;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
exports.CREDENTIAL_REDIRECT_INIT = CREDENTIAL_REDIRECT_INIT;
|
|
25
|
+
exports.credentialRedirectMessage = credentialRedirectMessage;
|
|
26
|
+
exports.isRedirectResponse = isRedirectResponse;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/shared/credential-redirect.ts
|
|
4
|
+
var CREDENTIAL_REDIRECT_INIT = { redirect: "manual" };
|
|
5
|
+
var HTTP_MOVED_PERMANENTLY = 301;
|
|
6
|
+
var HTTP_FOUND = 302;
|
|
7
|
+
var HTTP_SEE_OTHER = 303;
|
|
8
|
+
var HTTP_TEMPORARY_REDIRECT = 307;
|
|
9
|
+
var HTTP_PERMANENT_REDIRECT = 308;
|
|
10
|
+
var REDIRECT_STATUSES = /* @__PURE__ */ new Set([
|
|
11
|
+
HTTP_MOVED_PERMANENTLY,
|
|
12
|
+
HTTP_FOUND,
|
|
13
|
+
HTTP_SEE_OTHER,
|
|
14
|
+
HTTP_TEMPORARY_REDIRECT,
|
|
15
|
+
HTTP_PERMANENT_REDIRECT
|
|
16
|
+
]);
|
|
17
|
+
function isRedirectResponse(response) {
|
|
18
|
+
return response.type === "opaqueredirect" || REDIRECT_STATUSES.has(response.status);
|
|
19
|
+
}
|
|
20
|
+
function credentialRedirectMessage(response) {
|
|
21
|
+
return `\u30B5\u30FC\u30D0\u30FC\u304C\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\uFF08status: ${response.status}\uFF09\u3092\u8FD4\u3057\u305F\u305F\u3081\u3001API \u30AD\u30FC\u3092\u8EE2\u9001\u5148\u3078\u9001\u3089\u305A\u306B\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002\u63A5\u7D9A\u5148 URL \u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044`;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
exports.CREDENTIAL_REDIRECT_INIT = CREDENTIAL_REDIRECT_INIT;
|
|
25
|
+
exports.credentialRedirectMessage = credentialRedirectMessage;
|
|
26
|
+
exports.isRedirectResponse = isRedirectResponse;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// src/shared/credential-redirect.ts
|
|
2
|
+
var CREDENTIAL_REDIRECT_INIT = { redirect: "manual" };
|
|
3
|
+
var HTTP_MOVED_PERMANENTLY = 301;
|
|
4
|
+
var HTTP_FOUND = 302;
|
|
5
|
+
var HTTP_SEE_OTHER = 303;
|
|
6
|
+
var HTTP_TEMPORARY_REDIRECT = 307;
|
|
7
|
+
var HTTP_PERMANENT_REDIRECT = 308;
|
|
8
|
+
var REDIRECT_STATUSES = /* @__PURE__ */ new Set([
|
|
9
|
+
HTTP_MOVED_PERMANENTLY,
|
|
10
|
+
HTTP_FOUND,
|
|
11
|
+
HTTP_SEE_OTHER,
|
|
12
|
+
HTTP_TEMPORARY_REDIRECT,
|
|
13
|
+
HTTP_PERMANENT_REDIRECT
|
|
14
|
+
]);
|
|
15
|
+
function isRedirectResponse(response) {
|
|
16
|
+
return response.type === "opaqueredirect" || REDIRECT_STATUSES.has(response.status);
|
|
17
|
+
}
|
|
18
|
+
function credentialRedirectMessage(response) {
|
|
19
|
+
return `\u30B5\u30FC\u30D0\u30FC\u304C\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\uFF08status: ${response.status}\uFF09\u3092\u8FD4\u3057\u305F\u305F\u3081\u3001API \u30AD\u30FC\u3092\u8EE2\u9001\u5148\u3078\u9001\u3089\u305A\u306B\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002\u63A5\u7D9A\u5148 URL \u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { CREDENTIAL_REDIRECT_INIT, credentialRedirectMessage, isRedirectResponse };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunk5FNSZ5WN_cjs = require('./chunk-5FNSZ5WN.cjs');
|
|
3
4
|
var react = require('react');
|
|
4
5
|
var jose = require('jose');
|
|
5
6
|
var zod = require('zod');
|
|
@@ -413,6 +414,7 @@ function createVerifyAccessToken(deps) {
|
|
|
413
414
|
}
|
|
414
415
|
const fetchOptions = {
|
|
415
416
|
method: "POST",
|
|
417
|
+
...chunk5FNSZ5WN_cjs.CREDENTIAL_REDIRECT_INIT,
|
|
416
418
|
credentials: "omit",
|
|
417
419
|
headers: {
|
|
418
420
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
@@ -435,6 +437,9 @@ function createVerifyAccessToken(deps) {
|
|
|
435
437
|
}
|
|
436
438
|
};
|
|
437
439
|
}
|
|
440
|
+
if (chunk5FNSZ5WN_cjs.isRedirectResponse(response)) {
|
|
441
|
+
return { error: { code: errorCodes.NETWORK_ERROR, message: chunk5FNSZ5WN_cjs.credentialRedirectMessage(response) } };
|
|
442
|
+
}
|
|
438
443
|
const upstreamUnavailable = response.status === HTTP_TOO_MANY_REQUESTS || response.status >= HTTP_SERVER_ERROR_MIN && response.status < HTTP_SERVER_ERROR_LIMIT;
|
|
439
444
|
let introspectResponse;
|
|
440
445
|
try {
|
|
@@ -1394,7 +1399,7 @@ var FFID_ORGANIZATION_PROFILE_ERROR_CODES = {
|
|
|
1394
1399
|
};
|
|
1395
1400
|
|
|
1396
1401
|
// src/client/version-check.ts
|
|
1397
|
-
var SDK_VERSION = "13.0.
|
|
1402
|
+
var SDK_VERSION = "13.0.1";
|
|
1398
1403
|
var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
|
|
1399
1404
|
var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
|
|
1400
1405
|
function sdkHeaders() {
|
|
@@ -4263,6 +4268,7 @@ function createFFIDClient(config) {
|
|
|
4263
4268
|
if (authMode === "service-key") {
|
|
4264
4269
|
return {
|
|
4265
4270
|
...options,
|
|
4271
|
+
...chunk5FNSZ5WN_cjs.CREDENTIAL_REDIRECT_INIT,
|
|
4266
4272
|
credentials: "omit",
|
|
4267
4273
|
headers: {
|
|
4268
4274
|
...jsonContentTypeHeader(options.body),
|
|
@@ -4324,6 +4330,9 @@ function createFFIDClient(config) {
|
|
|
4324
4330
|
}
|
|
4325
4331
|
};
|
|
4326
4332
|
}
|
|
4333
|
+
if (fetchOptions.redirect === chunk5FNSZ5WN_cjs.CREDENTIAL_REDIRECT_INIT.redirect && chunk5FNSZ5WN_cjs.isRedirectResponse(response)) {
|
|
4334
|
+
return { error: { code: FFID_ERROR_CODES.NETWORK_ERROR, message: chunk5FNSZ5WN_cjs.credentialRedirectMessage(response) } };
|
|
4335
|
+
}
|
|
4327
4336
|
if (!authOverride && authMode === "token" && response.status === UNAUTHORIZED_STATUS2) {
|
|
4328
4337
|
const refreshResult = await refreshAccessToken();
|
|
4329
4338
|
if (!refreshResult.error) {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// src/shared/credential-redirect.ts
|
|
2
|
+
var CREDENTIAL_REDIRECT_INIT = { redirect: "manual" };
|
|
3
|
+
var HTTP_MOVED_PERMANENTLY = 301;
|
|
4
|
+
var HTTP_FOUND = 302;
|
|
5
|
+
var HTTP_SEE_OTHER = 303;
|
|
6
|
+
var HTTP_TEMPORARY_REDIRECT = 307;
|
|
7
|
+
var HTTP_PERMANENT_REDIRECT = 308;
|
|
8
|
+
var REDIRECT_STATUSES = /* @__PURE__ */ new Set([
|
|
9
|
+
HTTP_MOVED_PERMANENTLY,
|
|
10
|
+
HTTP_FOUND,
|
|
11
|
+
HTTP_SEE_OTHER,
|
|
12
|
+
HTTP_TEMPORARY_REDIRECT,
|
|
13
|
+
HTTP_PERMANENT_REDIRECT
|
|
14
|
+
]);
|
|
15
|
+
function isRedirectResponse(response) {
|
|
16
|
+
return response.type === "opaqueredirect" || REDIRECT_STATUSES.has(response.status);
|
|
17
|
+
}
|
|
18
|
+
function credentialRedirectMessage(response) {
|
|
19
|
+
return `\u30B5\u30FC\u30D0\u30FC\u304C\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\uFF08status: ${response.status}\uFF09\u3092\u8FD4\u3057\u305F\u305F\u3081\u3001API \u30AD\u30FC\u3092\u8EE2\u9001\u5148\u3078\u9001\u3089\u305A\u306B\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002\u63A5\u7D9A\u5148 URL \u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { CREDENTIAL_REDIRECT_INIT, credentialRedirectMessage, isRedirectResponse };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunk5FNSZ5WN_cjs = require('./chunk-5FNSZ5WN.cjs');
|
|
3
4
|
var zod = require('zod');
|
|
4
5
|
var react = require('react');
|
|
5
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -768,9 +769,9 @@ function createConsentClient(opts) {
|
|
|
768
769
|
return headers;
|
|
769
770
|
}
|
|
770
771
|
async function performFetch(url, init) {
|
|
772
|
+
let res;
|
|
771
773
|
try {
|
|
772
|
-
|
|
773
|
-
return { res };
|
|
774
|
+
res = await fetchImpl(url, init);
|
|
774
775
|
} catch (cause) {
|
|
775
776
|
if (isAbortError(cause)) {
|
|
776
777
|
return {
|
|
@@ -789,6 +790,14 @@ function createConsentClient(opts) {
|
|
|
789
790
|
)
|
|
790
791
|
};
|
|
791
792
|
}
|
|
793
|
+
if (chunk5FNSZ5WN_cjs.isRedirectResponse(res)) {
|
|
794
|
+
return {
|
|
795
|
+
err: new FFIDConsentError("cookie_consent_api_unreachable", chunk5FNSZ5WN_cjs.credentialRedirectMessage(res), {
|
|
796
|
+
httpStatus: res.status
|
|
797
|
+
})
|
|
798
|
+
};
|
|
799
|
+
}
|
|
800
|
+
return { res };
|
|
792
801
|
}
|
|
793
802
|
async function request(reqOpts, parseFn) {
|
|
794
803
|
const url = `${baseUrl}${reqOpts.path}`;
|
|
@@ -809,6 +818,7 @@ function createConsentClient(opts) {
|
|
|
809
818
|
}
|
|
810
819
|
const init = {
|
|
811
820
|
method: reqOpts.method,
|
|
821
|
+
...chunk5FNSZ5WN_cjs.CREDENTIAL_REDIRECT_INIT,
|
|
812
822
|
headers,
|
|
813
823
|
credentials: "include"
|
|
814
824
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CREDENTIAL_REDIRECT_INIT, isRedirectResponse, credentialRedirectMessage } from './chunk-IQSXIOPK.js';
|
|
1
2
|
import { createContext, useState, useRef, useEffect, useMemo, useCallback, useContext } from 'react';
|
|
2
3
|
import { createRemoteJWKSet, jwtVerify, errors } from 'jose';
|
|
3
4
|
import { z } from 'zod';
|
|
@@ -411,6 +412,7 @@ function createVerifyAccessToken(deps) {
|
|
|
411
412
|
}
|
|
412
413
|
const fetchOptions = {
|
|
413
414
|
method: "POST",
|
|
415
|
+
...CREDENTIAL_REDIRECT_INIT,
|
|
414
416
|
credentials: "omit",
|
|
415
417
|
headers: {
|
|
416
418
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
@@ -433,6 +435,9 @@ function createVerifyAccessToken(deps) {
|
|
|
433
435
|
}
|
|
434
436
|
};
|
|
435
437
|
}
|
|
438
|
+
if (isRedirectResponse(response)) {
|
|
439
|
+
return { error: { code: errorCodes.NETWORK_ERROR, message: credentialRedirectMessage(response) } };
|
|
440
|
+
}
|
|
436
441
|
const upstreamUnavailable = response.status === HTTP_TOO_MANY_REQUESTS || response.status >= HTTP_SERVER_ERROR_MIN && response.status < HTTP_SERVER_ERROR_LIMIT;
|
|
437
442
|
let introspectResponse;
|
|
438
443
|
try {
|
|
@@ -1392,7 +1397,7 @@ var FFID_ORGANIZATION_PROFILE_ERROR_CODES = {
|
|
|
1392
1397
|
};
|
|
1393
1398
|
|
|
1394
1399
|
// src/client/version-check.ts
|
|
1395
|
-
var SDK_VERSION = "13.0.
|
|
1400
|
+
var SDK_VERSION = "13.0.1";
|
|
1396
1401
|
var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
|
|
1397
1402
|
var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
|
|
1398
1403
|
function sdkHeaders() {
|
|
@@ -4261,6 +4266,7 @@ function createFFIDClient(config) {
|
|
|
4261
4266
|
if (authMode === "service-key") {
|
|
4262
4267
|
return {
|
|
4263
4268
|
...options,
|
|
4269
|
+
...CREDENTIAL_REDIRECT_INIT,
|
|
4264
4270
|
credentials: "omit",
|
|
4265
4271
|
headers: {
|
|
4266
4272
|
...jsonContentTypeHeader(options.body),
|
|
@@ -4322,6 +4328,9 @@ function createFFIDClient(config) {
|
|
|
4322
4328
|
}
|
|
4323
4329
|
};
|
|
4324
4330
|
}
|
|
4331
|
+
if (fetchOptions.redirect === CREDENTIAL_REDIRECT_INIT.redirect && isRedirectResponse(response)) {
|
|
4332
|
+
return { error: { code: FFID_ERROR_CODES.NETWORK_ERROR, message: credentialRedirectMessage(response) } };
|
|
4333
|
+
}
|
|
4325
4334
|
if (!authOverride && authMode === "token" && response.status === UNAUTHORIZED_STATUS2) {
|
|
4326
4335
|
const refreshResult = await refreshAccessToken();
|
|
4327
4336
|
if (!refreshResult.error) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CREDENTIAL_REDIRECT_INIT, isRedirectResponse, credentialRedirectMessage } from './chunk-IQSXIOPK.js';
|
|
1
2
|
import { z } from 'zod';
|
|
2
3
|
import { createContext, useCallback, useState, useRef, useEffect, useMemo, useContext } from 'react';
|
|
3
4
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -766,9 +767,9 @@ function createConsentClient(opts) {
|
|
|
766
767
|
return headers;
|
|
767
768
|
}
|
|
768
769
|
async function performFetch(url, init) {
|
|
770
|
+
let res;
|
|
769
771
|
try {
|
|
770
|
-
|
|
771
|
-
return { res };
|
|
772
|
+
res = await fetchImpl(url, init);
|
|
772
773
|
} catch (cause) {
|
|
773
774
|
if (isAbortError(cause)) {
|
|
774
775
|
return {
|
|
@@ -787,6 +788,14 @@ function createConsentClient(opts) {
|
|
|
787
788
|
)
|
|
788
789
|
};
|
|
789
790
|
}
|
|
791
|
+
if (isRedirectResponse(res)) {
|
|
792
|
+
return {
|
|
793
|
+
err: new FFIDConsentError("cookie_consent_api_unreachable", credentialRedirectMessage(res), {
|
|
794
|
+
httpStatus: res.status
|
|
795
|
+
})
|
|
796
|
+
};
|
|
797
|
+
}
|
|
798
|
+
return { res };
|
|
790
799
|
}
|
|
791
800
|
async function request(reqOpts, parseFn) {
|
|
792
801
|
const url = `${baseUrl}${reqOpts.path}`;
|
|
@@ -807,6 +816,7 @@ function createConsentClient(opts) {
|
|
|
807
816
|
}
|
|
808
817
|
const init = {
|
|
809
818
|
method: reqOpts.method,
|
|
819
|
+
...CREDENTIAL_REDIRECT_INIT,
|
|
810
820
|
headers,
|
|
811
821
|
credentials: "include"
|
|
812
822
|
};
|
|
@@ -1,34 +1,35 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkIA6JV3TN_cjs = require('../chunk-IA6JV3TN.cjs');
|
|
4
|
+
require('../chunk-5FNSZ5WN.cjs');
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
Object.defineProperty(exports, "FFIDAnnouncementBadge", {
|
|
8
9
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkIA6JV3TN_cjs.FFIDAnnouncementBadge; }
|
|
10
11
|
});
|
|
11
12
|
Object.defineProperty(exports, "FFIDAnnouncementList", {
|
|
12
13
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunkIA6JV3TN_cjs.FFIDAnnouncementList; }
|
|
14
15
|
});
|
|
15
16
|
Object.defineProperty(exports, "FFIDInquiryForm", {
|
|
16
17
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
18
|
+
get: function () { return chunkIA6JV3TN_cjs.FFIDInquiryForm; }
|
|
18
19
|
});
|
|
19
20
|
Object.defineProperty(exports, "FFIDLoginButton", {
|
|
20
21
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
22
|
+
get: function () { return chunkIA6JV3TN_cjs.FFIDLoginButton; }
|
|
22
23
|
});
|
|
23
24
|
Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
|
|
24
25
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
26
|
+
get: function () { return chunkIA6JV3TN_cjs.FFIDOrganizationSwitcher; }
|
|
26
27
|
});
|
|
27
28
|
Object.defineProperty(exports, "FFIDSubscriptionBadge", {
|
|
28
29
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
30
|
+
get: function () { return chunkIA6JV3TN_cjs.FFIDSubscriptionBadge; }
|
|
30
31
|
});
|
|
31
32
|
Object.defineProperty(exports, "FFIDUserMenu", {
|
|
32
33
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
34
|
+
get: function () { return chunkIA6JV3TN_cjs.FFIDUserMenu; }
|
|
34
35
|
});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { a8 as FFIDAnnouncementBadge, bk as FFIDAnnouncementBadgeClassNames, bl as FFIDAnnouncementBadgeProps, a9 as FFIDAnnouncementList, bm as FFIDAnnouncementListClassNames, bn as FFIDAnnouncementListProps, ar as FFIDInquiryForm, as as FFIDInquiryFormCategoryItem, at as FFIDInquiryFormClassNames, au as FFIDInquiryFormLegalLayout, av as FFIDInquiryFormOrganization, aw as FFIDInquiryFormPlaceholderContext, ax as FFIDInquiryFormPrefill, ay as FFIDInquiryFormProps, az as FFIDInquiryFormSubmitData, aA as FFIDInquiryFormSubmitResult, aC as FFIDLoginButton, bo as FFIDLoginButtonProps, aE as FFIDOrganizationSwitcher, bp as FFIDOrganizationSwitcherClassNames, bq as FFIDOrganizationSwitcherProps, aS as FFIDSubscriptionBadge, br as FFIDSubscriptionBadgeClassNames, bs as FFIDSubscriptionBadgeProps, aW as FFIDUserMenu, bt as FFIDUserMenuClassNames, bu as FFIDUserMenuProps } from '../index-
|
|
1
|
+
export { a8 as FFIDAnnouncementBadge, bk as FFIDAnnouncementBadgeClassNames, bl as FFIDAnnouncementBadgeProps, a9 as FFIDAnnouncementList, bm as FFIDAnnouncementListClassNames, bn as FFIDAnnouncementListProps, ar as FFIDInquiryForm, as as FFIDInquiryFormCategoryItem, at as FFIDInquiryFormClassNames, au as FFIDInquiryFormLegalLayout, av as FFIDInquiryFormOrganization, aw as FFIDInquiryFormPlaceholderContext, ax as FFIDInquiryFormPrefill, ay as FFIDInquiryFormProps, az as FFIDInquiryFormSubmitData, aA as FFIDInquiryFormSubmitResult, aC as FFIDLoginButton, bo as FFIDLoginButtonProps, aE as FFIDOrganizationSwitcher, bp as FFIDOrganizationSwitcherClassNames, bq as FFIDOrganizationSwitcherProps, aS as FFIDSubscriptionBadge, br as FFIDSubscriptionBadgeClassNames, bs as FFIDSubscriptionBadgeProps, aW as FFIDUserMenu, bt as FFIDUserMenuClassNames, bu as FFIDUserMenuProps } from '../index-BCX5kug1.cjs';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import 'react';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { a8 as FFIDAnnouncementBadge, bk as FFIDAnnouncementBadgeClassNames, bl as FFIDAnnouncementBadgeProps, a9 as FFIDAnnouncementList, bm as FFIDAnnouncementListClassNames, bn as FFIDAnnouncementListProps, ar as FFIDInquiryForm, as as FFIDInquiryFormCategoryItem, at as FFIDInquiryFormClassNames, au as FFIDInquiryFormLegalLayout, av as FFIDInquiryFormOrganization, aw as FFIDInquiryFormPlaceholderContext, ax as FFIDInquiryFormPrefill, ay as FFIDInquiryFormProps, az as FFIDInquiryFormSubmitData, aA as FFIDInquiryFormSubmitResult, aC as FFIDLoginButton, bo as FFIDLoginButtonProps, aE as FFIDOrganizationSwitcher, bp as FFIDOrganizationSwitcherClassNames, bq as FFIDOrganizationSwitcherProps, aS as FFIDSubscriptionBadge, br as FFIDSubscriptionBadgeClassNames, bs as FFIDSubscriptionBadgeProps, aW as FFIDUserMenu, bt as FFIDUserMenuClassNames, bu as FFIDUserMenuProps } from '../index-
|
|
1
|
+
export { a8 as FFIDAnnouncementBadge, bk as FFIDAnnouncementBadgeClassNames, bl as FFIDAnnouncementBadgeProps, a9 as FFIDAnnouncementList, bm as FFIDAnnouncementListClassNames, bn as FFIDAnnouncementListProps, ar as FFIDInquiryForm, as as FFIDInquiryFormCategoryItem, at as FFIDInquiryFormClassNames, au as FFIDInquiryFormLegalLayout, av as FFIDInquiryFormOrganization, aw as FFIDInquiryFormPlaceholderContext, ax as FFIDInquiryFormPrefill, ay as FFIDInquiryFormProps, az as FFIDInquiryFormSubmitData, aA as FFIDInquiryFormSubmitResult, aC as FFIDLoginButton, bo as FFIDLoginButtonProps, aE as FFIDOrganizationSwitcher, bp as FFIDOrganizationSwitcherClassNames, bq as FFIDOrganizationSwitcherProps, aS as FFIDSubscriptionBadge, br as FFIDSubscriptionBadgeClassNames, bs as FFIDSubscriptionBadgeProps, aW as FFIDUserMenu, bt as FFIDUserMenuClassNames, bu as FFIDUserMenuProps } from '../index-BCX5kug1.js';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import 'react';
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDInquiryForm, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDSubscriptionBadge, FFIDUserMenu } from '../chunk-
|
|
1
|
+
export { FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDInquiryForm, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDSubscriptionBadge, FFIDUserMenu } from '../chunk-TSFGRZLQ.js';
|
|
2
|
+
import '../chunk-IQSXIOPK.js';
|