@feelflow/ffid-sdk 5.13.0 → 5.16.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.
Files changed (34) hide show
  1. package/README.md +4 -0
  2. package/dist/{FFIDCookieLink-D1WwE_ZO.d.cts → FFIDCookieLink-DrF5UXkd.d.cts} +37 -4
  3. package/dist/{FFIDCookieLink-D1WwE_ZO.d.ts → FFIDCookieLink-DrF5UXkd.d.ts} +37 -4
  4. package/dist/{chunk-R5WSZMUL.cjs → chunk-H2D52XCL.cjs} +43 -12
  5. package/dist/{chunk-M4N2PUX6.js → chunk-HAR75DTJ.js} +43 -12
  6. package/dist/{chunk-JFFRO2Q5.cjs → chunk-SNSIVY3Q.cjs} +175 -1
  7. package/dist/{chunk-RATTQIKM.js → chunk-XT4BAOKZ.js} +175 -1
  8. package/dist/components/index.cjs +8 -8
  9. package/dist/components/index.d.cts +1 -1
  10. package/dist/components/index.d.ts +1 -1
  11. package/dist/components/index.js +1 -1
  12. package/dist/consent/index.cjs +64 -64
  13. package/dist/consent/index.d.cts +2 -2
  14. package/dist/consent/index.d.ts +2 -2
  15. package/dist/consent/index.js +1 -1
  16. package/dist/{ffid-client-BG0Qr86U.d.ts → ffid-client-9-lh0G_h.d.ts} +331 -111
  17. package/dist/{ffid-client-C3K3sAqq.d.cts → ffid-client-CKFxY60u.d.cts} +331 -111
  18. package/dist/{index-C6dnexXf.d.cts → index-CsVJTuPv.d.cts} +1 -112
  19. package/dist/{index-C6dnexXf.d.ts → index-CsVJTuPv.d.ts} +1 -112
  20. package/dist/index.cjs +62 -62
  21. package/dist/index.d.cts +342 -4
  22. package/dist/index.d.ts +342 -4
  23. package/dist/index.js +3 -3
  24. package/dist/legal/index.cjs +14 -0
  25. package/dist/legal/index.d.cts +16 -1
  26. package/dist/legal/index.d.ts +16 -1
  27. package/dist/legal/index.js +14 -0
  28. package/dist/server/index.cjs +175 -1
  29. package/dist/server/index.d.cts +2 -2
  30. package/dist/server/index.d.ts +2 -2
  31. package/dist/server/index.js +175 -1
  32. package/dist/server/test/index.d.cts +1 -1
  33. package/dist/server/test/index.d.ts +1 -1
  34. package/package.json +1 -1
@@ -934,8 +934,163 @@ function createProfileMethods(deps) {
934
934
  return { getProfile, updateProfile };
935
935
  }
936
936
 
937
+ // src/client/login-history-methods.ts
938
+ var EXT_LOGIN_HISTORY_ENDPOINT = "/api/v1/users/ext/me/login-history";
939
+ function createLoginHistoryMethods(deps) {
940
+ const { fetchWithAuth, createError } = deps;
941
+ async function getLoginHistory(params) {
942
+ if (params?.limit !== void 0 && (!Number.isInteger(params.limit) || params.limit <= 0)) {
943
+ return {
944
+ error: createError(
945
+ "VALIDATION_ERROR",
946
+ "limit \u306F1\u4EE5\u4E0A\u306E\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"
947
+ )
948
+ };
949
+ }
950
+ const query = new URLSearchParams();
951
+ if (params?.userId !== void 0) {
952
+ query.set("userId", params.userId);
953
+ }
954
+ if (params?.limit !== void 0) {
955
+ query.set("limit", String(params.limit));
956
+ }
957
+ const queryString = query.toString();
958
+ const endpoint = queryString ? `${EXT_LOGIN_HISTORY_ENDPOINT}?${queryString}` : EXT_LOGIN_HISTORY_ENDPOINT;
959
+ return fetchWithAuth(endpoint);
960
+ }
961
+ return { getLoginHistory };
962
+ }
963
+
964
+ // src/client/organization-domains-methods.ts
965
+ var EXT_DOMAINS_ENDPOINT = "/api/v1/organizations/ext/domains";
966
+ function createOrganizationDomainsMethods(deps) {
967
+ const { fetchWithAuth, createError, serviceCode } = deps;
968
+ function buildQuery(organizationId) {
969
+ return new URLSearchParams({ organizationId, serviceCode }).toString();
970
+ }
971
+ async function getOrganizationDomains(params) {
972
+ if (!params.organizationId) {
973
+ return {
974
+ error: createError("VALIDATION_ERROR", "organizationId \u306F\u5FC5\u9808\u3067\u3059")
975
+ };
976
+ }
977
+ return fetchWithAuth(
978
+ `${EXT_DOMAINS_ENDPOINT}?${buildQuery(params.organizationId)}`
979
+ );
980
+ }
981
+ return { getOrganizationDomains };
982
+ }
983
+
984
+ // src/client/notification-preferences-methods.ts
985
+ var EXT_NOTIFICATION_PREFERENCES_ENDPOINT = "/api/v1/organizations/ext/notification-preferences";
986
+ function createNotificationPreferencesMethods(deps) {
987
+ const { fetchWithAuth, createError, serviceCode } = deps;
988
+ function buildQuery(organizationId) {
989
+ return new URLSearchParams({ organizationId, serviceCode }).toString();
990
+ }
991
+ async function getNotificationPreferences(params) {
992
+ if (!params.organizationId) {
993
+ return {
994
+ error: createError("VALIDATION_ERROR", "organizationId \u306F\u5FC5\u9808\u3067\u3059")
995
+ };
996
+ }
997
+ return fetchWithAuth(
998
+ `${EXT_NOTIFICATION_PREFERENCES_ENDPOINT}?${buildQuery(params.organizationId)}`
999
+ );
1000
+ }
1001
+ async function updateNotificationPreferences(params) {
1002
+ if (!params.organizationId) {
1003
+ return {
1004
+ error: createError("VALIDATION_ERROR", "organizationId \u306F\u5FC5\u9808\u3067\u3059")
1005
+ };
1006
+ }
1007
+ if (params.preferences === null || typeof params.preferences !== "object" || Array.isArray(params.preferences)) {
1008
+ return {
1009
+ error: createError("VALIDATION_ERROR", "preferences \u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059")
1010
+ };
1011
+ }
1012
+ if (Object.keys(params.preferences).length === 0) {
1013
+ return {
1014
+ error: createError("VALIDATION_ERROR", "\u66F4\u65B0\u3059\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")
1015
+ };
1016
+ }
1017
+ return fetchWithAuth(
1018
+ `${EXT_NOTIFICATION_PREFERENCES_ENDPOINT}?${buildQuery(params.organizationId)}`,
1019
+ {
1020
+ method: "PATCH",
1021
+ body: JSON.stringify({ preferences: params.preferences })
1022
+ }
1023
+ );
1024
+ }
1025
+ return { getNotificationPreferences, updateNotificationPreferences };
1026
+ }
1027
+
1028
+ // src/client/invite-methods.ts
1029
+ var EXT_INVITE_ENDPOINT = "/api/v1/organizations/ext/invite";
1030
+ function createInviteMethods(deps) {
1031
+ const { fetchWithAuth, createError, serviceCode } = deps;
1032
+ const assignableRoles = /* @__PURE__ */ new Set(["admin", "member", "viewer"]);
1033
+ async function inviteMember(params) {
1034
+ if (!params.organizationId || !params.email) {
1035
+ return {
1036
+ error: createError("VALIDATION_ERROR", "organizationId \u3068 email \u306F\u5FC5\u9808\u3067\u3059")
1037
+ };
1038
+ }
1039
+ if (params.role !== void 0 && !assignableRoles.has(params.role)) {
1040
+ return {
1041
+ error: createError(
1042
+ "VALIDATION_ERROR",
1043
+ "role \u306F admin\u3001member\u3001viewer \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"
1044
+ )
1045
+ };
1046
+ }
1047
+ const query = new URLSearchParams({
1048
+ organizationId: params.organizationId,
1049
+ serviceCode
1050
+ }).toString();
1051
+ return fetchWithAuth(`${EXT_INVITE_ENDPOINT}?${query}`, {
1052
+ method: "POST",
1053
+ body: JSON.stringify({ email: params.email, role: params.role })
1054
+ });
1055
+ }
1056
+ return { inviteMember };
1057
+ }
1058
+
1059
+ // src/client/org-membership-methods.ts
1060
+ var EXT_USER_ORGANIZATIONS_ENDPOINT = "/api/v1/users/ext/me/organizations";
1061
+ function createOrgMembershipMethods(deps) {
1062
+ const { fetchWithAuth, createError } = deps;
1063
+ async function leaveOrganization(params) {
1064
+ if (!params || !params.organizationId) {
1065
+ return {
1066
+ error: createError("VALIDATION_ERROR", "organizationId \u306F\u5FC5\u9808\u3067\u3059")
1067
+ };
1068
+ }
1069
+ let endpoint = `${EXT_USER_ORGANIZATIONS_ENDPOINT}/${encodeURIComponent(params.organizationId)}`;
1070
+ if (params.userId) {
1071
+ endpoint += `?${new URLSearchParams({ userId: params.userId }).toString()}`;
1072
+ }
1073
+ return fetchWithAuth(endpoint, {
1074
+ method: "DELETE"
1075
+ });
1076
+ }
1077
+ return { leaveOrganization };
1078
+ }
1079
+
1080
+ // src/client/noncontract-methods.ts
1081
+ function createNonContractMethods(deps) {
1082
+ const { fetchWithAuth, createError, serviceCode } = deps;
1083
+ return {
1084
+ ...createLoginHistoryMethods({ fetchWithAuth, createError }),
1085
+ ...createOrganizationDomainsMethods({ fetchWithAuth, createError, serviceCode }),
1086
+ ...createNotificationPreferencesMethods({ fetchWithAuth, createError, serviceCode }),
1087
+ ...createInviteMethods({ fetchWithAuth, createError, serviceCode }),
1088
+ ...createOrgMembershipMethods({ fetchWithAuth, createError })
1089
+ };
1090
+ }
1091
+
937
1092
  // src/client/version-check.ts
938
- var SDK_VERSION = "5.13.0";
1093
+ var SDK_VERSION = "5.16.1";
939
1094
  var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
940
1095
  var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
941
1096
  function sdkHeaders() {
@@ -2768,6 +2923,18 @@ function createFFIDClient(config) {
2768
2923
  fetchWithAuth,
2769
2924
  createError
2770
2925
  });
2926
+ const {
2927
+ getLoginHistory,
2928
+ getOrganizationDomains,
2929
+ getNotificationPreferences,
2930
+ updateNotificationPreferences,
2931
+ inviteMember,
2932
+ leaveOrganization
2933
+ } = createNonContractMethods({
2934
+ fetchWithAuth,
2935
+ createError,
2936
+ serviceCode: config.serviceCode
2937
+ });
2771
2938
  const { getAnalyticsConfig } = createAnalyticsMethods({
2772
2939
  fetchWithAuth,
2773
2940
  createError
@@ -2848,6 +3015,13 @@ function createFFIDClient(config) {
2848
3015
  removeMember,
2849
3016
  getProfile,
2850
3017
  updateProfile,
3018
+ // Non-contract ext API coverage (#3783)
3019
+ getLoginHistory,
3020
+ getOrganizationDomains,
3021
+ getNotificationPreferences,
3022
+ updateNotificationPreferences,
3023
+ inviteMember,
3024
+ leaveOrganization,
2851
3025
  getAnalyticsConfig,
2852
3026
  createCheckoutSession,
2853
3027
  createPortalSession,
@@ -1,5 +1,5 @@
1
- import { F as FFIDLogger, a as FFIDError, b as FFIDCacheAdapter, c as FFIDVerifyAccessTokenOptions, d as FFIDApiResponse, e as FFIDOAuthUserInfo } from '../ffid-client-C3K3sAqq.cjs';
2
- export { f as FFIDAddMemberParams, g as FFIDAddMemberRequest, h as FFIDAddMemberResponse, i as FFIDAssignableMemberRole, j as FFIDCacheConfig, k as FFIDClient, l as FFIDConfig, m as FFIDListMembersResponse, n as FFIDMemberRole, o as FFIDOrganization, p as FFIDOrganizationMember, q as FFIDOtpSendResponse, r as FFIDOtpVerifyResponse, s as FFIDPasswordResetConfirmResponse, t as FFIDPasswordResetResponse, u as FFIDPasswordResetVerifyResponse, v as FFIDProfileCallOptions, w as FFIDRemoveMemberResponse, x as FFIDResetSessionResponse, y as FFIDSubscription, z as FFIDUpdateMemberRoleResponse, A as FFIDUpdateUserProfileRequest, B as FFIDUser, C as FFIDUserProfile, T as TokenData, D as TokenStore, E as createFFIDClient, G as createTokenStore } from '../ffid-client-C3K3sAqq.cjs';
1
+ import { F as FFIDLogger, a as FFIDError, b as FFIDCacheAdapter, c as FFIDVerifyAccessTokenOptions, d as FFIDApiResponse, e as FFIDOAuthUserInfo } from '../ffid-client-CKFxY60u.cjs';
2
+ export { f as FFIDAddMemberParams, g as FFIDAddMemberRequest, h as FFIDAddMemberResponse, i as FFIDAssignableMemberRole, j as FFIDCacheConfig, k as FFIDClient, l as FFIDConfig, m as FFIDListMembersResponse, n as FFIDMemberRole, o as FFIDOrganization, p as FFIDOrganizationMember, q as FFIDOtpSendResponse, r as FFIDOtpVerifyResponse, s as FFIDPasswordResetConfirmResponse, t as FFIDPasswordResetResponse, u as FFIDPasswordResetVerifyResponse, v as FFIDProfileCallOptions, w as FFIDRemoveMemberResponse, x as FFIDResetSessionResponse, y as FFIDSubscription, z as FFIDUpdateMemberRoleResponse, A as FFIDUpdateUserProfileRequest, B as FFIDUser, C as FFIDUserProfile, T as TokenData, D as TokenStore, E as createFFIDClient, G as createTokenStore } from '../ffid-client-CKFxY60u.cjs';
3
3
  export { D as DEFAULT_API_BASE_URL, a as DEFAULT_OAUTH_SCOPES } from '../constants-D61jqRIO.cjs';
4
4
  import { z } from 'zod';
5
5
  import '../types-BeVl-z12.cjs';
@@ -1,5 +1,5 @@
1
- import { F as FFIDLogger, a as FFIDError, b as FFIDCacheAdapter, c as FFIDVerifyAccessTokenOptions, d as FFIDApiResponse, e as FFIDOAuthUserInfo } from '../ffid-client-BG0Qr86U.js';
2
- export { f as FFIDAddMemberParams, g as FFIDAddMemberRequest, h as FFIDAddMemberResponse, i as FFIDAssignableMemberRole, j as FFIDCacheConfig, k as FFIDClient, l as FFIDConfig, m as FFIDListMembersResponse, n as FFIDMemberRole, o as FFIDOrganization, p as FFIDOrganizationMember, q as FFIDOtpSendResponse, r as FFIDOtpVerifyResponse, s as FFIDPasswordResetConfirmResponse, t as FFIDPasswordResetResponse, u as FFIDPasswordResetVerifyResponse, v as FFIDProfileCallOptions, w as FFIDRemoveMemberResponse, x as FFIDResetSessionResponse, y as FFIDSubscription, z as FFIDUpdateMemberRoleResponse, A as FFIDUpdateUserProfileRequest, B as FFIDUser, C as FFIDUserProfile, T as TokenData, D as TokenStore, E as createFFIDClient, G as createTokenStore } from '../ffid-client-BG0Qr86U.js';
1
+ import { F as FFIDLogger, a as FFIDError, b as FFIDCacheAdapter, c as FFIDVerifyAccessTokenOptions, d as FFIDApiResponse, e as FFIDOAuthUserInfo } from '../ffid-client-9-lh0G_h.js';
2
+ export { f as FFIDAddMemberParams, g as FFIDAddMemberRequest, h as FFIDAddMemberResponse, i as FFIDAssignableMemberRole, j as FFIDCacheConfig, k as FFIDClient, l as FFIDConfig, m as FFIDListMembersResponse, n as FFIDMemberRole, o as FFIDOrganization, p as FFIDOrganizationMember, q as FFIDOtpSendResponse, r as FFIDOtpVerifyResponse, s as FFIDPasswordResetConfirmResponse, t as FFIDPasswordResetResponse, u as FFIDPasswordResetVerifyResponse, v as FFIDProfileCallOptions, w as FFIDRemoveMemberResponse, x as FFIDResetSessionResponse, y as FFIDSubscription, z as FFIDUpdateMemberRoleResponse, A as FFIDUpdateUserProfileRequest, B as FFIDUser, C as FFIDUserProfile, T as TokenData, D as TokenStore, E as createFFIDClient, G as createTokenStore } from '../ffid-client-9-lh0G_h.js';
3
3
  export { D as DEFAULT_API_BASE_URL, a as DEFAULT_OAUTH_SCOPES } from '../constants-D61jqRIO.js';
4
4
  import { z } from 'zod';
5
5
  import '../types-BeVl-z12.js';
@@ -933,8 +933,163 @@ function createProfileMethods(deps) {
933
933
  return { getProfile, updateProfile };
934
934
  }
935
935
 
936
+ // src/client/login-history-methods.ts
937
+ var EXT_LOGIN_HISTORY_ENDPOINT = "/api/v1/users/ext/me/login-history";
938
+ function createLoginHistoryMethods(deps) {
939
+ const { fetchWithAuth, createError } = deps;
940
+ async function getLoginHistory(params) {
941
+ if (params?.limit !== void 0 && (!Number.isInteger(params.limit) || params.limit <= 0)) {
942
+ return {
943
+ error: createError(
944
+ "VALIDATION_ERROR",
945
+ "limit \u306F1\u4EE5\u4E0A\u306E\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"
946
+ )
947
+ };
948
+ }
949
+ const query = new URLSearchParams();
950
+ if (params?.userId !== void 0) {
951
+ query.set("userId", params.userId);
952
+ }
953
+ if (params?.limit !== void 0) {
954
+ query.set("limit", String(params.limit));
955
+ }
956
+ const queryString = query.toString();
957
+ const endpoint = queryString ? `${EXT_LOGIN_HISTORY_ENDPOINT}?${queryString}` : EXT_LOGIN_HISTORY_ENDPOINT;
958
+ return fetchWithAuth(endpoint);
959
+ }
960
+ return { getLoginHistory };
961
+ }
962
+
963
+ // src/client/organization-domains-methods.ts
964
+ var EXT_DOMAINS_ENDPOINT = "/api/v1/organizations/ext/domains";
965
+ function createOrganizationDomainsMethods(deps) {
966
+ const { fetchWithAuth, createError, serviceCode } = deps;
967
+ function buildQuery(organizationId) {
968
+ return new URLSearchParams({ organizationId, serviceCode }).toString();
969
+ }
970
+ async function getOrganizationDomains(params) {
971
+ if (!params.organizationId) {
972
+ return {
973
+ error: createError("VALIDATION_ERROR", "organizationId \u306F\u5FC5\u9808\u3067\u3059")
974
+ };
975
+ }
976
+ return fetchWithAuth(
977
+ `${EXT_DOMAINS_ENDPOINT}?${buildQuery(params.organizationId)}`
978
+ );
979
+ }
980
+ return { getOrganizationDomains };
981
+ }
982
+
983
+ // src/client/notification-preferences-methods.ts
984
+ var EXT_NOTIFICATION_PREFERENCES_ENDPOINT = "/api/v1/organizations/ext/notification-preferences";
985
+ function createNotificationPreferencesMethods(deps) {
986
+ const { fetchWithAuth, createError, serviceCode } = deps;
987
+ function buildQuery(organizationId) {
988
+ return new URLSearchParams({ organizationId, serviceCode }).toString();
989
+ }
990
+ async function getNotificationPreferences(params) {
991
+ if (!params.organizationId) {
992
+ return {
993
+ error: createError("VALIDATION_ERROR", "organizationId \u306F\u5FC5\u9808\u3067\u3059")
994
+ };
995
+ }
996
+ return fetchWithAuth(
997
+ `${EXT_NOTIFICATION_PREFERENCES_ENDPOINT}?${buildQuery(params.organizationId)}`
998
+ );
999
+ }
1000
+ async function updateNotificationPreferences(params) {
1001
+ if (!params.organizationId) {
1002
+ return {
1003
+ error: createError("VALIDATION_ERROR", "organizationId \u306F\u5FC5\u9808\u3067\u3059")
1004
+ };
1005
+ }
1006
+ if (params.preferences === null || typeof params.preferences !== "object" || Array.isArray(params.preferences)) {
1007
+ return {
1008
+ error: createError("VALIDATION_ERROR", "preferences \u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059")
1009
+ };
1010
+ }
1011
+ if (Object.keys(params.preferences).length === 0) {
1012
+ return {
1013
+ error: createError("VALIDATION_ERROR", "\u66F4\u65B0\u3059\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")
1014
+ };
1015
+ }
1016
+ return fetchWithAuth(
1017
+ `${EXT_NOTIFICATION_PREFERENCES_ENDPOINT}?${buildQuery(params.organizationId)}`,
1018
+ {
1019
+ method: "PATCH",
1020
+ body: JSON.stringify({ preferences: params.preferences })
1021
+ }
1022
+ );
1023
+ }
1024
+ return { getNotificationPreferences, updateNotificationPreferences };
1025
+ }
1026
+
1027
+ // src/client/invite-methods.ts
1028
+ var EXT_INVITE_ENDPOINT = "/api/v1/organizations/ext/invite";
1029
+ function createInviteMethods(deps) {
1030
+ const { fetchWithAuth, createError, serviceCode } = deps;
1031
+ const assignableRoles = /* @__PURE__ */ new Set(["admin", "member", "viewer"]);
1032
+ async function inviteMember(params) {
1033
+ if (!params.organizationId || !params.email) {
1034
+ return {
1035
+ error: createError("VALIDATION_ERROR", "organizationId \u3068 email \u306F\u5FC5\u9808\u3067\u3059")
1036
+ };
1037
+ }
1038
+ if (params.role !== void 0 && !assignableRoles.has(params.role)) {
1039
+ return {
1040
+ error: createError(
1041
+ "VALIDATION_ERROR",
1042
+ "role \u306F admin\u3001member\u3001viewer \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"
1043
+ )
1044
+ };
1045
+ }
1046
+ const query = new URLSearchParams({
1047
+ organizationId: params.organizationId,
1048
+ serviceCode
1049
+ }).toString();
1050
+ return fetchWithAuth(`${EXT_INVITE_ENDPOINT}?${query}`, {
1051
+ method: "POST",
1052
+ body: JSON.stringify({ email: params.email, role: params.role })
1053
+ });
1054
+ }
1055
+ return { inviteMember };
1056
+ }
1057
+
1058
+ // src/client/org-membership-methods.ts
1059
+ var EXT_USER_ORGANIZATIONS_ENDPOINT = "/api/v1/users/ext/me/organizations";
1060
+ function createOrgMembershipMethods(deps) {
1061
+ const { fetchWithAuth, createError } = deps;
1062
+ async function leaveOrganization(params) {
1063
+ if (!params || !params.organizationId) {
1064
+ return {
1065
+ error: createError("VALIDATION_ERROR", "organizationId \u306F\u5FC5\u9808\u3067\u3059")
1066
+ };
1067
+ }
1068
+ let endpoint = `${EXT_USER_ORGANIZATIONS_ENDPOINT}/${encodeURIComponent(params.organizationId)}`;
1069
+ if (params.userId) {
1070
+ endpoint += `?${new URLSearchParams({ userId: params.userId }).toString()}`;
1071
+ }
1072
+ return fetchWithAuth(endpoint, {
1073
+ method: "DELETE"
1074
+ });
1075
+ }
1076
+ return { leaveOrganization };
1077
+ }
1078
+
1079
+ // src/client/noncontract-methods.ts
1080
+ function createNonContractMethods(deps) {
1081
+ const { fetchWithAuth, createError, serviceCode } = deps;
1082
+ return {
1083
+ ...createLoginHistoryMethods({ fetchWithAuth, createError }),
1084
+ ...createOrganizationDomainsMethods({ fetchWithAuth, createError, serviceCode }),
1085
+ ...createNotificationPreferencesMethods({ fetchWithAuth, createError, serviceCode }),
1086
+ ...createInviteMethods({ fetchWithAuth, createError, serviceCode }),
1087
+ ...createOrgMembershipMethods({ fetchWithAuth, createError })
1088
+ };
1089
+ }
1090
+
936
1091
  // src/client/version-check.ts
937
- var SDK_VERSION = "5.13.0";
1092
+ var SDK_VERSION = "5.16.1";
938
1093
  var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
939
1094
  var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
940
1095
  function sdkHeaders() {
@@ -2767,6 +2922,18 @@ function createFFIDClient(config) {
2767
2922
  fetchWithAuth,
2768
2923
  createError
2769
2924
  });
2925
+ const {
2926
+ getLoginHistory,
2927
+ getOrganizationDomains,
2928
+ getNotificationPreferences,
2929
+ updateNotificationPreferences,
2930
+ inviteMember,
2931
+ leaveOrganization
2932
+ } = createNonContractMethods({
2933
+ fetchWithAuth,
2934
+ createError,
2935
+ serviceCode: config.serviceCode
2936
+ });
2770
2937
  const { getAnalyticsConfig } = createAnalyticsMethods({
2771
2938
  fetchWithAuth,
2772
2939
  createError
@@ -2847,6 +3014,13 @@ function createFFIDClient(config) {
2847
3014
  removeMember,
2848
3015
  getProfile,
2849
3016
  updateProfile,
3017
+ // Non-contract ext API coverage (#3783)
3018
+ getLoginHistory,
3019
+ getOrganizationDomains,
3020
+ getNotificationPreferences,
3021
+ updateNotificationPreferences,
3022
+ inviteMember,
3023
+ leaveOrganization,
2850
3024
  getAnalyticsConfig,
2851
3025
  createCheckoutSession,
2852
3026
  createPortalSession,
@@ -1,4 +1,4 @@
1
- import { k as FFIDClient, e as FFIDOAuthUserInfo } from '../../ffid-client-C3K3sAqq.cjs';
1
+ import { k as FFIDClient, e as FFIDOAuthUserInfo } from '../../ffid-client-CKFxY60u.cjs';
2
2
  import '../../types-BeVl-z12.cjs';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { k as FFIDClient, e as FFIDOAuthUserInfo } from '../../ffid-client-BG0Qr86U.js';
1
+ import { k as FFIDClient, e as FFIDOAuthUserInfo } from '../../ffid-client-9-lh0G_h.js';
2
2
  import '../../types-BeVl-z12.js';
3
3
 
4
4
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feelflow/ffid-sdk",
3
- "version": "5.13.0",
3
+ "version": "5.16.1",
4
4
  "description": "FeelFlow ID Platform SDK for React/Next.js applications",
5
5
  "keywords": [
6
6
  "feelflow",