@feelflow/ffid-sdk 5.17.0 → 5.18.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-HBPYSPBY.cjs → chunk-55S5VUWR.cjs} +50 -20
- package/dist/{chunk-HLCHSKAF.js → chunk-L2H56C4W.js} +51 -22
- 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-DZEK3tkP.d.cts → ffid-client-Cwk6cG3b.d.cts} +19 -4
- package/dist/{ffid-client-BtS84epg.d.ts → ffid-client-w8Twi5lD.d.ts} +19 -4
- package/dist/{index-CG0vObax.d.cts → index-Bkul-fRw.d.cts} +19 -4
- package/dist/{index-CG0vObax.d.ts → index-Bkul-fRw.d.ts} +19 -4
- package/dist/index.cjs +45 -41
- package/dist/index.d.cts +30 -3
- package/dist/index.d.ts +30 -3
- package/dist/index.js +2 -2
- package/dist/server/index.cjs +50 -20
- package/dist/server/index.d.cts +34 -6
- package/dist/server/index.d.ts +34 -6
- package/dist/server/index.js +51 -22
- package/dist/server/test/index.d.cts +1 -1
- package/dist/server/test/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -117,10 +117,13 @@ function hasOwnKey(value, key) {
|
|
|
117
117
|
function normalizeUserinfo(raw) {
|
|
118
118
|
const hasOrganizationId = hasOwnKey(raw, "organization_id");
|
|
119
119
|
const hasOrganizationName = hasOwnKey(raw, "organization_name");
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
120
|
+
const hasOrganizationMemberRole = hasOwnKey(raw, "organization_member_role");
|
|
121
|
+
const organizationMemberRole = hasOrganizationMemberRole ? raw.organization_member_role ?? null : raw.subscription ? raw.subscription.member_role ?? null : void 0;
|
|
122
|
+
const organizationFields = {
|
|
123
|
+
...hasOrganizationId ? { organizationId: raw.organization_id ?? null } : {},
|
|
124
|
+
...hasOrganizationId || hasOrganizationName ? { organizationName: raw.organization_name ?? null } : {},
|
|
125
|
+
...organizationMemberRole !== void 0 ? { organizationMemberRole } : {}
|
|
126
|
+
};
|
|
124
127
|
return {
|
|
125
128
|
sub: raw.sub,
|
|
126
129
|
email: raw.email,
|
|
@@ -227,10 +230,29 @@ function createJwtVerifier(deps) {
|
|
|
227
230
|
return { data: userInfo };
|
|
228
231
|
} catch (error) {
|
|
229
232
|
const message = error instanceof Error ? error.message : "JWT\u691C\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F";
|
|
230
|
-
|
|
233
|
+
if (error instanceof jose.errors.JWTExpired) {
|
|
234
|
+
logger.debug("JWT verification failed (token expired):", message);
|
|
235
|
+
return {
|
|
236
|
+
error: createError(
|
|
237
|
+
errorCodes.TOKEN_EXPIRED,
|
|
238
|
+
"\u30A2\u30AF\u30BB\u30B9\u30C8\u30FC\u30AF\u30F3\u306E\u6709\u52B9\u671F\u9650\u304C\u5207\u308C\u3066\u3044\u307E\u3059"
|
|
239
|
+
)
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
const isTokenLevelError = error instanceof jose.errors.JWTClaimValidationFailed || error instanceof jose.errors.JWTInvalid || error instanceof jose.errors.JWSInvalid || error instanceof jose.errors.JWSSignatureVerificationFailed || error instanceof jose.errors.JOSEAlgNotAllowed || error instanceof jose.errors.JOSENotSupported || error instanceof jose.errors.JWKSNoMatchingKey || error instanceof jose.errors.JWKSMultipleMatchingKeys;
|
|
243
|
+
if (isTokenLevelError) {
|
|
244
|
+
logger.warn("JWT verification failed:", message);
|
|
245
|
+
return {
|
|
246
|
+
error: createError(
|
|
247
|
+
errorCodes.TOKEN_VERIFICATION_ERROR,
|
|
248
|
+
`JWT\u691C\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${message}`
|
|
249
|
+
)
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
logger.error("JWT verification failed (JWKS fetch):", message);
|
|
231
253
|
return {
|
|
232
254
|
error: createError(
|
|
233
|
-
errorCodes.
|
|
255
|
+
errorCodes.NETWORK_ERROR,
|
|
234
256
|
`JWT\u691C\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${message}`
|
|
235
257
|
)
|
|
236
258
|
};
|
|
@@ -255,7 +277,9 @@ function createVerifyAccessToken(deps) {
|
|
|
255
277
|
serviceCode,
|
|
256
278
|
logger,
|
|
257
279
|
createError,
|
|
258
|
-
|
|
280
|
+
// structural superset of JwtVerifierDeps.errorCodes — passing it
|
|
281
|
+
// wholesale removes the hand-transcription drift point
|
|
282
|
+
errorCodes
|
|
259
283
|
});
|
|
260
284
|
}
|
|
261
285
|
return jwtVerify2;
|
|
@@ -1095,7 +1119,7 @@ function createNonContractMethods(deps) {
|
|
|
1095
1119
|
}
|
|
1096
1120
|
|
|
1097
1121
|
// src/client/version-check.ts
|
|
1098
|
-
var SDK_VERSION = "5.
|
|
1122
|
+
var SDK_VERSION = "5.18.0";
|
|
1099
1123
|
var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
|
|
1100
1124
|
var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
|
|
1101
1125
|
function sdkHeaders() {
|
|
@@ -2692,6 +2716,19 @@ function isBlockedFromUserinfo(sub) {
|
|
|
2692
2716
|
return BLOCKING_EFFECTIVE_STATUSES.includes(effectiveStatus);
|
|
2693
2717
|
}
|
|
2694
2718
|
|
|
2719
|
+
// src/client/error-codes.ts
|
|
2720
|
+
var FFID_ERROR_CODES = {
|
|
2721
|
+
NETWORK_ERROR: "NETWORK_ERROR",
|
|
2722
|
+
PARSE_ERROR: "PARSE_ERROR",
|
|
2723
|
+
UNKNOWN_ERROR: "UNKNOWN_ERROR",
|
|
2724
|
+
TOKEN_EXCHANGE_ERROR: "TOKEN_EXCHANGE_ERROR",
|
|
2725
|
+
TOKEN_REFRESH_ERROR: "TOKEN_REFRESH_ERROR",
|
|
2726
|
+
NO_TOKENS: "NO_TOKENS",
|
|
2727
|
+
TOKEN_VERIFICATION_ERROR: "TOKEN_VERIFICATION_ERROR",
|
|
2728
|
+
TOKEN_EXPIRED: "TOKEN_EXPIRED",
|
|
2729
|
+
STATE_MISMATCH_ERROR: "STATE_MISMATCH_ERROR"
|
|
2730
|
+
};
|
|
2731
|
+
|
|
2695
2732
|
// src/client/ffid-client.ts
|
|
2696
2733
|
var UNAUTHORIZED_STATUS2 = 401;
|
|
2697
2734
|
var SDK_LOG_PREFIX = "[FFID SDK]";
|
|
@@ -2700,8 +2737,10 @@ var noopLogger = {
|
|
|
2700
2737
|
},
|
|
2701
2738
|
info: () => {
|
|
2702
2739
|
},
|
|
2703
|
-
warn: (
|
|
2704
|
-
|
|
2740
|
+
warn: () => {
|
|
2741
|
+
},
|
|
2742
|
+
error: () => {
|
|
2743
|
+
}
|
|
2705
2744
|
};
|
|
2706
2745
|
var consoleLogger = {
|
|
2707
2746
|
debug: (...args) => console.debug(SDK_LOG_PREFIX, ...args),
|
|
@@ -2709,16 +2748,6 @@ var consoleLogger = {
|
|
|
2709
2748
|
warn: (...args) => console.warn(SDK_LOG_PREFIX, ...args),
|
|
2710
2749
|
error: (...args) => console.error(SDK_LOG_PREFIX, ...args)
|
|
2711
2750
|
};
|
|
2712
|
-
var FFID_ERROR_CODES = {
|
|
2713
|
-
NETWORK_ERROR: "NETWORK_ERROR",
|
|
2714
|
-
PARSE_ERROR: "PARSE_ERROR",
|
|
2715
|
-
UNKNOWN_ERROR: "UNKNOWN_ERROR",
|
|
2716
|
-
TOKEN_EXCHANGE_ERROR: "TOKEN_EXCHANGE_ERROR",
|
|
2717
|
-
TOKEN_REFRESH_ERROR: "TOKEN_REFRESH_ERROR",
|
|
2718
|
-
NO_TOKENS: "NO_TOKENS",
|
|
2719
|
-
TOKEN_VERIFICATION_ERROR: "TOKEN_VERIFICATION_ERROR",
|
|
2720
|
-
STATE_MISMATCH_ERROR: "STATE_MISMATCH_ERROR"
|
|
2721
|
-
};
|
|
2722
2751
|
var EXT_CHECK_ENDPOINT = "/api/v1/subscriptions/ext/check";
|
|
2723
2752
|
var DEFAULT_ALLOW_GRACE = true;
|
|
2724
2753
|
var DEFAULT_SERVICE_ACCESS_FAIL_POLICY = "failClosed";
|
|
@@ -5348,6 +5377,7 @@ exports.FFIDSDKError = FFIDSDKError;
|
|
|
5348
5377
|
exports.FFIDSubscriptionBadge = FFIDSubscriptionBadge;
|
|
5349
5378
|
exports.FFIDUserMenu = FFIDUserMenu;
|
|
5350
5379
|
exports.FFID_ANNOUNCEMENTS_ERROR_CODES = FFID_ANNOUNCEMENTS_ERROR_CODES;
|
|
5380
|
+
exports.FFID_ERROR_CODES = FFID_ERROR_CODES;
|
|
5351
5381
|
exports.FFID_INQUIRY_CATEGORIES = FFID_INQUIRY_CATEGORIES;
|
|
5352
5382
|
exports.FFID_INQUIRY_CATEGORIES_SITE_2026 = FFID_INQUIRY_CATEGORIES_SITE_2026;
|
|
5353
5383
|
exports.cleanupStateStorage = cleanupStateStorage;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createContext, useState, useRef, useEffect, useMemo, useCallback, useContext } from 'react';
|
|
2
|
-
import { createRemoteJWKSet, jwtVerify } from 'jose';
|
|
2
|
+
import { createRemoteJWKSet, jwtVerify, errors } from 'jose';
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
|
|
5
5
|
// src/constants.ts
|
|
@@ -115,10 +115,13 @@ function hasOwnKey(value, key) {
|
|
|
115
115
|
function normalizeUserinfo(raw) {
|
|
116
116
|
const hasOrganizationId = hasOwnKey(raw, "organization_id");
|
|
117
117
|
const hasOrganizationName = hasOwnKey(raw, "organization_name");
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
118
|
+
const hasOrganizationMemberRole = hasOwnKey(raw, "organization_member_role");
|
|
119
|
+
const organizationMemberRole = hasOrganizationMemberRole ? raw.organization_member_role ?? null : raw.subscription ? raw.subscription.member_role ?? null : void 0;
|
|
120
|
+
const organizationFields = {
|
|
121
|
+
...hasOrganizationId ? { organizationId: raw.organization_id ?? null } : {},
|
|
122
|
+
...hasOrganizationId || hasOrganizationName ? { organizationName: raw.organization_name ?? null } : {},
|
|
123
|
+
...organizationMemberRole !== void 0 ? { organizationMemberRole } : {}
|
|
124
|
+
};
|
|
122
125
|
return {
|
|
123
126
|
sub: raw.sub,
|
|
124
127
|
email: raw.email,
|
|
@@ -225,10 +228,29 @@ function createJwtVerifier(deps) {
|
|
|
225
228
|
return { data: userInfo };
|
|
226
229
|
} catch (error) {
|
|
227
230
|
const message = error instanceof Error ? error.message : "JWT\u691C\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F";
|
|
228
|
-
|
|
231
|
+
if (error instanceof errors.JWTExpired) {
|
|
232
|
+
logger.debug("JWT verification failed (token expired):", message);
|
|
233
|
+
return {
|
|
234
|
+
error: createError(
|
|
235
|
+
errorCodes.TOKEN_EXPIRED,
|
|
236
|
+
"\u30A2\u30AF\u30BB\u30B9\u30C8\u30FC\u30AF\u30F3\u306E\u6709\u52B9\u671F\u9650\u304C\u5207\u308C\u3066\u3044\u307E\u3059"
|
|
237
|
+
)
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
const isTokenLevelError = error instanceof errors.JWTClaimValidationFailed || error instanceof errors.JWTInvalid || error instanceof errors.JWSInvalid || error instanceof errors.JWSSignatureVerificationFailed || error instanceof errors.JOSEAlgNotAllowed || error instanceof errors.JOSENotSupported || error instanceof errors.JWKSNoMatchingKey || error instanceof errors.JWKSMultipleMatchingKeys;
|
|
241
|
+
if (isTokenLevelError) {
|
|
242
|
+
logger.warn("JWT verification failed:", message);
|
|
243
|
+
return {
|
|
244
|
+
error: createError(
|
|
245
|
+
errorCodes.TOKEN_VERIFICATION_ERROR,
|
|
246
|
+
`JWT\u691C\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${message}`
|
|
247
|
+
)
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
logger.error("JWT verification failed (JWKS fetch):", message);
|
|
229
251
|
return {
|
|
230
252
|
error: createError(
|
|
231
|
-
errorCodes.
|
|
253
|
+
errorCodes.NETWORK_ERROR,
|
|
232
254
|
`JWT\u691C\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${message}`
|
|
233
255
|
)
|
|
234
256
|
};
|
|
@@ -253,7 +275,9 @@ function createVerifyAccessToken(deps) {
|
|
|
253
275
|
serviceCode,
|
|
254
276
|
logger,
|
|
255
277
|
createError,
|
|
256
|
-
|
|
278
|
+
// structural superset of JwtVerifierDeps.errorCodes — passing it
|
|
279
|
+
// wholesale removes the hand-transcription drift point
|
|
280
|
+
errorCodes
|
|
257
281
|
});
|
|
258
282
|
}
|
|
259
283
|
return jwtVerify2;
|
|
@@ -1093,7 +1117,7 @@ function createNonContractMethods(deps) {
|
|
|
1093
1117
|
}
|
|
1094
1118
|
|
|
1095
1119
|
// src/client/version-check.ts
|
|
1096
|
-
var SDK_VERSION = "5.
|
|
1120
|
+
var SDK_VERSION = "5.18.0";
|
|
1097
1121
|
var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
|
|
1098
1122
|
var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
|
|
1099
1123
|
function sdkHeaders() {
|
|
@@ -2690,6 +2714,19 @@ function isBlockedFromUserinfo(sub) {
|
|
|
2690
2714
|
return BLOCKING_EFFECTIVE_STATUSES.includes(effectiveStatus);
|
|
2691
2715
|
}
|
|
2692
2716
|
|
|
2717
|
+
// src/client/error-codes.ts
|
|
2718
|
+
var FFID_ERROR_CODES = {
|
|
2719
|
+
NETWORK_ERROR: "NETWORK_ERROR",
|
|
2720
|
+
PARSE_ERROR: "PARSE_ERROR",
|
|
2721
|
+
UNKNOWN_ERROR: "UNKNOWN_ERROR",
|
|
2722
|
+
TOKEN_EXCHANGE_ERROR: "TOKEN_EXCHANGE_ERROR",
|
|
2723
|
+
TOKEN_REFRESH_ERROR: "TOKEN_REFRESH_ERROR",
|
|
2724
|
+
NO_TOKENS: "NO_TOKENS",
|
|
2725
|
+
TOKEN_VERIFICATION_ERROR: "TOKEN_VERIFICATION_ERROR",
|
|
2726
|
+
TOKEN_EXPIRED: "TOKEN_EXPIRED",
|
|
2727
|
+
STATE_MISMATCH_ERROR: "STATE_MISMATCH_ERROR"
|
|
2728
|
+
};
|
|
2729
|
+
|
|
2693
2730
|
// src/client/ffid-client.ts
|
|
2694
2731
|
var UNAUTHORIZED_STATUS2 = 401;
|
|
2695
2732
|
var SDK_LOG_PREFIX = "[FFID SDK]";
|
|
@@ -2698,8 +2735,10 @@ var noopLogger = {
|
|
|
2698
2735
|
},
|
|
2699
2736
|
info: () => {
|
|
2700
2737
|
},
|
|
2701
|
-
warn: (
|
|
2702
|
-
|
|
2738
|
+
warn: () => {
|
|
2739
|
+
},
|
|
2740
|
+
error: () => {
|
|
2741
|
+
}
|
|
2703
2742
|
};
|
|
2704
2743
|
var consoleLogger = {
|
|
2705
2744
|
debug: (...args) => console.debug(SDK_LOG_PREFIX, ...args),
|
|
@@ -2707,16 +2746,6 @@ var consoleLogger = {
|
|
|
2707
2746
|
warn: (...args) => console.warn(SDK_LOG_PREFIX, ...args),
|
|
2708
2747
|
error: (...args) => console.error(SDK_LOG_PREFIX, ...args)
|
|
2709
2748
|
};
|
|
2710
|
-
var FFID_ERROR_CODES = {
|
|
2711
|
-
NETWORK_ERROR: "NETWORK_ERROR",
|
|
2712
|
-
PARSE_ERROR: "PARSE_ERROR",
|
|
2713
|
-
UNKNOWN_ERROR: "UNKNOWN_ERROR",
|
|
2714
|
-
TOKEN_EXCHANGE_ERROR: "TOKEN_EXCHANGE_ERROR",
|
|
2715
|
-
TOKEN_REFRESH_ERROR: "TOKEN_REFRESH_ERROR",
|
|
2716
|
-
NO_TOKENS: "NO_TOKENS",
|
|
2717
|
-
TOKEN_VERIFICATION_ERROR: "TOKEN_VERIFICATION_ERROR",
|
|
2718
|
-
STATE_MISMATCH_ERROR: "STATE_MISMATCH_ERROR"
|
|
2719
|
-
};
|
|
2720
2749
|
var EXT_CHECK_ENDPOINT = "/api/v1/subscriptions/ext/check";
|
|
2721
2750
|
var DEFAULT_ALLOW_GRACE = true;
|
|
2722
2751
|
var DEFAULT_SERVICE_ACCESS_FAIL_POLICY = "failClosed";
|
|
@@ -5331,4 +5360,4 @@ function FFIDInquiryForm({
|
|
|
5331
5360
|
);
|
|
5332
5361
|
}
|
|
5333
5362
|
|
|
5334
|
-
export { ACCESS_GRANTING_EFFECTIVE_STATUSES, BLOCKING_EFFECTIVE_STATUSES, DEFAULT_API_BASE_URL, DEFAULT_OAUTH_SCOPES, EFFECTIVE_SUBSCRIPTION_STATUSES, FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDInquiryForm, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDProvider, FFIDSDKError, FFIDSubscriptionBadge, FFIDUserMenu, FFID_ANNOUNCEMENTS_ERROR_CODES, FFID_INQUIRY_CATEGORIES, FFID_INQUIRY_CATEGORIES_SITE_2026, cleanupStateStorage, computeEffectiveStatusFromSession, createFFIDAnnouncementsClient, createFFIDClient, createTokenStore, generateCodeChallenge, generateCodeVerifier, handleRedirectCallback, hasAccessFromUserinfo, isBlockedFromUserinfo, isFFIDInquiryCategorySite2026, normalizeRedirectUri, retrieveCodeVerifier, retrieveState, storeCodeVerifier, storeState, useFFID, useFFIDAnnouncements, useFFIDContext, useSubscription, withSubscription };
|
|
5363
|
+
export { ACCESS_GRANTING_EFFECTIVE_STATUSES, BLOCKING_EFFECTIVE_STATUSES, DEFAULT_API_BASE_URL, DEFAULT_OAUTH_SCOPES, EFFECTIVE_SUBSCRIPTION_STATUSES, FFIDAnnouncementBadge, FFIDAnnouncementList, FFIDInquiryForm, FFIDLoginButton, FFIDOrganizationSwitcher, FFIDProvider, FFIDSDKError, FFIDSubscriptionBadge, FFIDUserMenu, FFID_ANNOUNCEMENTS_ERROR_CODES, FFID_ERROR_CODES, FFID_INQUIRY_CATEGORIES, FFID_INQUIRY_CATEGORIES_SITE_2026, cleanupStateStorage, computeEffectiveStatusFromSession, createFFIDAnnouncementsClient, createFFIDClient, createTokenStore, generateCodeChallenge, generateCodeVerifier, handleRedirectCallback, hasAccessFromUserinfo, isBlockedFromUserinfo, isFFIDInquiryCategorySite2026, normalizeRedirectUri, retrieveCodeVerifier, retrieveState, storeCodeVerifier, storeState, useFFID, useFFIDAnnouncements, useFFIDContext, useSubscription, withSubscription };
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk55S5VUWR_cjs = require('../chunk-55S5VUWR.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 chunk55S5VUWR_cjs.FFIDAnnouncementBadge; }
|
|
10
10
|
});
|
|
11
11
|
Object.defineProperty(exports, "FFIDAnnouncementList", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunk55S5VUWR_cjs.FFIDAnnouncementList; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "FFIDInquiryForm", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunk55S5VUWR_cjs.FFIDInquiryForm; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "FFIDLoginButton", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunk55S5VUWR_cjs.FFIDLoginButton; }
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "FFIDOrganizationSwitcher", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunk55S5VUWR_cjs.FFIDOrganizationSwitcher; }
|
|
26
26
|
});
|
|
27
27
|
Object.defineProperty(exports, "FFIDSubscriptionBadge", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunk55S5VUWR_cjs.FFIDSubscriptionBadge; }
|
|
30
30
|
});
|
|
31
31
|
Object.defineProperty(exports, "FFIDUserMenu", {
|
|
32
32
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunk55S5VUWR_cjs.FFIDUserMenu; }
|
|
34
34
|
});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { G as FFIDAnnouncementBadge, ag as FFIDAnnouncementBadgeClassNames, ah as FFIDAnnouncementBadgeProps, H as FFIDAnnouncementList, ai as FFIDAnnouncementListClassNames, aj as FFIDAnnouncementListProps, Q as FFIDInquiryForm, R as FFIDInquiryFormCategoryItem, S as FFIDInquiryFormClassNames, T as FFIDInquiryFormLegalLayout, U as FFIDInquiryFormOrganization, V as FFIDInquiryFormPlaceholderContext, W as FFIDInquiryFormPrefill, X as FFIDInquiryFormProps, Y as FFIDInquiryFormSubmitData, Z as FFIDInquiryFormSubmitResult, $ as FFIDLoginButton, ak as FFIDLoginButtonProps, a2 as FFIDOrganizationSwitcher, al as FFIDOrganizationSwitcherClassNames, am as FFIDOrganizationSwitcherProps, a7 as FFIDSubscriptionBadge, an as FFIDSubscriptionBadgeClassNames, ao as FFIDSubscriptionBadgeProps, a9 as FFIDUserMenu, ap as FFIDUserMenuClassNames, aq as FFIDUserMenuProps } from '../index-
|
|
1
|
+
export { G as FFIDAnnouncementBadge, ag as FFIDAnnouncementBadgeClassNames, ah as FFIDAnnouncementBadgeProps, H as FFIDAnnouncementList, ai as FFIDAnnouncementListClassNames, aj as FFIDAnnouncementListProps, Q as FFIDInquiryForm, R as FFIDInquiryFormCategoryItem, S as FFIDInquiryFormClassNames, T as FFIDInquiryFormLegalLayout, U as FFIDInquiryFormOrganization, V as FFIDInquiryFormPlaceholderContext, W as FFIDInquiryFormPrefill, X as FFIDInquiryFormProps, Y as FFIDInquiryFormSubmitData, Z as FFIDInquiryFormSubmitResult, $ as FFIDLoginButton, ak as FFIDLoginButtonProps, a2 as FFIDOrganizationSwitcher, al as FFIDOrganizationSwitcherClassNames, am as FFIDOrganizationSwitcherProps, a7 as FFIDSubscriptionBadge, an as FFIDSubscriptionBadgeClassNames, ao as FFIDSubscriptionBadgeProps, a9 as FFIDUserMenu, ap as FFIDUserMenuClassNames, aq as FFIDUserMenuProps } from '../index-Bkul-fRw.cjs';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import 'react';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { G as FFIDAnnouncementBadge, ag as FFIDAnnouncementBadgeClassNames, ah as FFIDAnnouncementBadgeProps, H as FFIDAnnouncementList, ai as FFIDAnnouncementListClassNames, aj as FFIDAnnouncementListProps, Q as FFIDInquiryForm, R as FFIDInquiryFormCategoryItem, S as FFIDInquiryFormClassNames, T as FFIDInquiryFormLegalLayout, U as FFIDInquiryFormOrganization, V as FFIDInquiryFormPlaceholderContext, W as FFIDInquiryFormPrefill, X as FFIDInquiryFormProps, Y as FFIDInquiryFormSubmitData, Z as FFIDInquiryFormSubmitResult, $ as FFIDLoginButton, ak as FFIDLoginButtonProps, a2 as FFIDOrganizationSwitcher, al as FFIDOrganizationSwitcherClassNames, am as FFIDOrganizationSwitcherProps, a7 as FFIDSubscriptionBadge, an as FFIDSubscriptionBadgeClassNames, ao as FFIDSubscriptionBadgeProps, a9 as FFIDUserMenu, ap as FFIDUserMenuClassNames, aq as FFIDUserMenuProps } from '../index-
|
|
1
|
+
export { G as FFIDAnnouncementBadge, ag as FFIDAnnouncementBadgeClassNames, ah as FFIDAnnouncementBadgeProps, H as FFIDAnnouncementList, ai as FFIDAnnouncementListClassNames, aj as FFIDAnnouncementListProps, Q as FFIDInquiryForm, R as FFIDInquiryFormCategoryItem, S as FFIDInquiryFormClassNames, T as FFIDInquiryFormLegalLayout, U as FFIDInquiryFormOrganization, V as FFIDInquiryFormPlaceholderContext, W as FFIDInquiryFormPrefill, X as FFIDInquiryFormProps, Y as FFIDInquiryFormSubmitData, Z as FFIDInquiryFormSubmitResult, $ as FFIDLoginButton, ak as FFIDLoginButtonProps, a2 as FFIDOrganizationSwitcher, al as FFIDOrganizationSwitcherClassNames, am as FFIDOrganizationSwitcherProps, a7 as FFIDSubscriptionBadge, an as FFIDSubscriptionBadgeClassNames, ao as FFIDSubscriptionBadgeProps, a9 as FFIDUserMenu, ap as FFIDUserMenuClassNames, aq as FFIDUserMenuProps } from '../index-Bkul-fRw.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-L2H56C4W.js';
|
|
@@ -1240,10 +1240,12 @@ interface FFIDOAuthUserInfoSubscription {
|
|
|
1240
1240
|
/**
|
|
1241
1241
|
* Unified user-identity shape returned by `getSession()` (→ `/oauth/userinfo`)
|
|
1242
1242
|
* and `verifyAccessToken()` (JWT or introspect path). `subscription`,
|
|
1243
|
-
* `organizationId`, and `
|
|
1244
|
-
* (FFID #3380, requires
|
|
1245
|
-
*
|
|
1246
|
-
*
|
|
1243
|
+
* `organizationId`, `organizationName`, and `organizationMemberRole` are
|
|
1244
|
+
* scope-gated on `/oauth/userinfo` (FFID #3380 / #4060, requires
|
|
1245
|
+
* `subscription:read`); JWT verification without `includeProfile`
|
|
1246
|
+
* additionally omits `subscription`, `organizationName`, and
|
|
1247
|
+
* `organizationMemberRole` because the JWT has `org_id` but no `org_name`
|
|
1248
|
+
* or membership-role claim.
|
|
1247
1249
|
* See per-field JSDoc — misreading `undefined` is a security regression.
|
|
1248
1250
|
*/
|
|
1249
1251
|
interface FFIDOAuthUserInfo {
|
|
@@ -1280,6 +1282,19 @@ interface FFIDOAuthUserInfo {
|
|
|
1280
1282
|
* claim.
|
|
1281
1283
|
*/
|
|
1282
1284
|
organizationName?: string | null | undefined;
|
|
1285
|
+
/**
|
|
1286
|
+
* Organization membership role, `null` if FFID cannot resolve a role for the
|
|
1287
|
+
* selected organization, or `undefined` if the granted scope omits
|
|
1288
|
+
* `subscription:read` on `/oauth/userinfo` (FFID #4060), or if the caller
|
|
1289
|
+
* used JWT verification without `includeProfile`. JWT payloads carry
|
|
1290
|
+
* `org_id` but no membership-role claim.
|
|
1291
|
+
*
|
|
1292
|
+
* This duplicates `subscription.memberRole` at the top level so consumers can
|
|
1293
|
+
* sync `(organizationId, organizationMemberRole)` without unpacking the full
|
|
1294
|
+
* subscription blob. Older FFID responses that omit the top-level wire field
|
|
1295
|
+
* are normalized from `subscription.member_role` when available.
|
|
1296
|
+
*/
|
|
1297
|
+
organizationMemberRole?: FFIDOAuthUserInfoMemberRole | null | undefined;
|
|
1283
1298
|
/**
|
|
1284
1299
|
* Subscription summary for `(user, service, organization)`. Branch on
|
|
1285
1300
|
* `effectiveStatus` (5.3.0+) for access decisions.
|
|
@@ -1240,10 +1240,12 @@ interface FFIDOAuthUserInfoSubscription {
|
|
|
1240
1240
|
/**
|
|
1241
1241
|
* Unified user-identity shape returned by `getSession()` (→ `/oauth/userinfo`)
|
|
1242
1242
|
* and `verifyAccessToken()` (JWT or introspect path). `subscription`,
|
|
1243
|
-
* `organizationId`, and `
|
|
1244
|
-
* (FFID #3380, requires
|
|
1245
|
-
*
|
|
1246
|
-
*
|
|
1243
|
+
* `organizationId`, `organizationName`, and `organizationMemberRole` are
|
|
1244
|
+
* scope-gated on `/oauth/userinfo` (FFID #3380 / #4060, requires
|
|
1245
|
+
* `subscription:read`); JWT verification without `includeProfile`
|
|
1246
|
+
* additionally omits `subscription`, `organizationName`, and
|
|
1247
|
+
* `organizationMemberRole` because the JWT has `org_id` but no `org_name`
|
|
1248
|
+
* or membership-role claim.
|
|
1247
1249
|
* See per-field JSDoc — misreading `undefined` is a security regression.
|
|
1248
1250
|
*/
|
|
1249
1251
|
interface FFIDOAuthUserInfo {
|
|
@@ -1280,6 +1282,19 @@ interface FFIDOAuthUserInfo {
|
|
|
1280
1282
|
* claim.
|
|
1281
1283
|
*/
|
|
1282
1284
|
organizationName?: string | null | undefined;
|
|
1285
|
+
/**
|
|
1286
|
+
* Organization membership role, `null` if FFID cannot resolve a role for the
|
|
1287
|
+
* selected organization, or `undefined` if the granted scope omits
|
|
1288
|
+
* `subscription:read` on `/oauth/userinfo` (FFID #4060), or if the caller
|
|
1289
|
+
* used JWT verification without `includeProfile`. JWT payloads carry
|
|
1290
|
+
* `org_id` but no membership-role claim.
|
|
1291
|
+
*
|
|
1292
|
+
* This duplicates `subscription.memberRole` at the top level so consumers can
|
|
1293
|
+
* sync `(organizationId, organizationMemberRole)` without unpacking the full
|
|
1294
|
+
* subscription blob. Older FFID responses that omit the top-level wire field
|
|
1295
|
+
* are normalized from `subscription.member_role` when available.
|
|
1296
|
+
*/
|
|
1297
|
+
organizationMemberRole?: FFIDOAuthUserInfoMemberRole | null | undefined;
|
|
1283
1298
|
/**
|
|
1284
1299
|
* Subscription summary for `(user, service, organization)`. Branch on
|
|
1285
1300
|
* `effectiveStatus` (5.3.0+) for access decisions.
|
|
@@ -316,10 +316,12 @@ interface FFIDOAuthUserInfoSubscription {
|
|
|
316
316
|
/**
|
|
317
317
|
* Unified user-identity shape returned by `getSession()` (→ `/oauth/userinfo`)
|
|
318
318
|
* and `verifyAccessToken()` (JWT or introspect path). `subscription`,
|
|
319
|
-
* `organizationId`, and `
|
|
320
|
-
* (FFID #3380, requires
|
|
321
|
-
*
|
|
322
|
-
*
|
|
319
|
+
* `organizationId`, `organizationName`, and `organizationMemberRole` are
|
|
320
|
+
* scope-gated on `/oauth/userinfo` (FFID #3380 / #4060, requires
|
|
321
|
+
* `subscription:read`); JWT verification without `includeProfile`
|
|
322
|
+
* additionally omits `subscription`, `organizationName`, and
|
|
323
|
+
* `organizationMemberRole` because the JWT has `org_id` but no `org_name`
|
|
324
|
+
* or membership-role claim.
|
|
323
325
|
* See per-field JSDoc — misreading `undefined` is a security regression.
|
|
324
326
|
*/
|
|
325
327
|
interface FFIDOAuthUserInfo {
|
|
@@ -356,6 +358,19 @@ interface FFIDOAuthUserInfo {
|
|
|
356
358
|
* claim.
|
|
357
359
|
*/
|
|
358
360
|
organizationName?: string | null | undefined;
|
|
361
|
+
/**
|
|
362
|
+
* Organization membership role, `null` if FFID cannot resolve a role for the
|
|
363
|
+
* selected organization, or `undefined` if the granted scope omits
|
|
364
|
+
* `subscription:read` on `/oauth/userinfo` (FFID #4060), or if the caller
|
|
365
|
+
* used JWT verification without `includeProfile`. JWT payloads carry
|
|
366
|
+
* `org_id` but no membership-role claim.
|
|
367
|
+
*
|
|
368
|
+
* This duplicates `subscription.memberRole` at the top level so consumers can
|
|
369
|
+
* sync `(organizationId, organizationMemberRole)` without unpacking the full
|
|
370
|
+
* subscription blob. Older FFID responses that omit the top-level wire field
|
|
371
|
+
* are normalized from `subscription.member_role` when available.
|
|
372
|
+
*/
|
|
373
|
+
organizationMemberRole?: FFIDOAuthUserInfoMemberRole | null | undefined;
|
|
359
374
|
/**
|
|
360
375
|
* Subscription summary for `(user, service, organization)`. Branch on
|
|
361
376
|
* `effectiveStatus` (5.3.0+) for access decisions.
|
|
@@ -316,10 +316,12 @@ interface FFIDOAuthUserInfoSubscription {
|
|
|
316
316
|
/**
|
|
317
317
|
* Unified user-identity shape returned by `getSession()` (→ `/oauth/userinfo`)
|
|
318
318
|
* and `verifyAccessToken()` (JWT or introspect path). `subscription`,
|
|
319
|
-
* `organizationId`, and `
|
|
320
|
-
* (FFID #3380, requires
|
|
321
|
-
*
|
|
322
|
-
*
|
|
319
|
+
* `organizationId`, `organizationName`, and `organizationMemberRole` are
|
|
320
|
+
* scope-gated on `/oauth/userinfo` (FFID #3380 / #4060, requires
|
|
321
|
+
* `subscription:read`); JWT verification without `includeProfile`
|
|
322
|
+
* additionally omits `subscription`, `organizationName`, and
|
|
323
|
+
* `organizationMemberRole` because the JWT has `org_id` but no `org_name`
|
|
324
|
+
* or membership-role claim.
|
|
323
325
|
* See per-field JSDoc — misreading `undefined` is a security regression.
|
|
324
326
|
*/
|
|
325
327
|
interface FFIDOAuthUserInfo {
|
|
@@ -356,6 +358,19 @@ interface FFIDOAuthUserInfo {
|
|
|
356
358
|
* claim.
|
|
357
359
|
*/
|
|
358
360
|
organizationName?: string | null | undefined;
|
|
361
|
+
/**
|
|
362
|
+
* Organization membership role, `null` if FFID cannot resolve a role for the
|
|
363
|
+
* selected organization, or `undefined` if the granted scope omits
|
|
364
|
+
* `subscription:read` on `/oauth/userinfo` (FFID #4060), or if the caller
|
|
365
|
+
* used JWT verification without `includeProfile`. JWT payloads carry
|
|
366
|
+
* `org_id` but no membership-role claim.
|
|
367
|
+
*
|
|
368
|
+
* This duplicates `subscription.memberRole` at the top level so consumers can
|
|
369
|
+
* sync `(organizationId, organizationMemberRole)` without unpacking the full
|
|
370
|
+
* subscription blob. Older FFID responses that omit the top-level wire field
|
|
371
|
+
* are normalized from `subscription.member_role` when available.
|
|
372
|
+
*/
|
|
373
|
+
organizationMemberRole?: FFIDOAuthUserInfoMemberRole | null | undefined;
|
|
359
374
|
/**
|
|
360
375
|
* Subscription summary for `(user, service, organization)`. Branch on
|
|
361
376
|
* `effectiveStatus` (5.3.0+) for access decisions.
|