@feelflow/ffid-sdk 5.18.0 → 5.19.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/README.md +77 -0
- package/dist/{chunk-L2H56C4W.js → chunk-D3PZ6SZB.js} +95 -1
- package/dist/{chunk-55S5VUWR.cjs → chunk-TW2FXASO.cjs} +95 -1
- package/dist/components/index.cjs +8 -8
- package/dist/components/index.js +1 -1
- package/dist/{ffid-client-Cwk6cG3b.d.cts → ffid-client-BuDM5tmq.d.cts} +214 -1
- package/dist/{ffid-client-w8Twi5lD.d.ts → ffid-client-D0x8TBS5.d.ts} +214 -1
- package/dist/index.cjs +42 -42
- package/dist/index.d.cts +214 -1
- package/dist/index.d.ts +214 -1
- package/dist/index.js +2 -2
- package/dist/server/index.cjs +95 -1
- package/dist/server/index.d.cts +2 -2
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +95 -1
- package/dist/server/test/index.d.cts +1 -1
- package/dist/server/test/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/server/index.js
CHANGED
|
@@ -869,6 +869,93 @@ function createMembersMethods(deps) {
|
|
|
869
869
|
return { listMembers, addMember, updateMemberRole, removeMember };
|
|
870
870
|
}
|
|
871
871
|
|
|
872
|
+
// src/client/provisioning-methods.ts
|
|
873
|
+
var USER_PROVISION_ENDPOINT = "/api/v1/ext/users/provision";
|
|
874
|
+
var ORGANIZATION_PROVISION_ENDPOINT = "/api/v1/ext/organizations/provision";
|
|
875
|
+
var MAX_PROVISION_MEMBERS = 100;
|
|
876
|
+
var ASSIGNABLE_MEMBER_ROLES = {
|
|
877
|
+
admin: true,
|
|
878
|
+
member: true,
|
|
879
|
+
viewer: true
|
|
880
|
+
};
|
|
881
|
+
function isAssignableMemberRole(role) {
|
|
882
|
+
return Object.hasOwn(ASSIGNABLE_MEMBER_ROLES, role);
|
|
883
|
+
}
|
|
884
|
+
function createProvisioningMethods(deps) {
|
|
885
|
+
const { fetchWithAuth, createError, authMode } = deps;
|
|
886
|
+
function serviceKeyModeError() {
|
|
887
|
+
if (authMode === "service-key") return null;
|
|
888
|
+
return createError(
|
|
889
|
+
"VALIDATION_ERROR",
|
|
890
|
+
"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"
|
|
891
|
+
);
|
|
892
|
+
}
|
|
893
|
+
async function provisionUser(params) {
|
|
894
|
+
const modeError = serviceKeyModeError();
|
|
895
|
+
if (modeError) return { error: modeError };
|
|
896
|
+
if (!params.email || !params.email.trim()) {
|
|
897
|
+
return { error: createError("VALIDATION_ERROR", "email \u306F\u5FC5\u9808\u3067\u3059") };
|
|
898
|
+
}
|
|
899
|
+
const body = { email: params.email.trim() };
|
|
900
|
+
if (params.profile !== void 0) body.profile = params.profile;
|
|
901
|
+
if (params.dryRun !== void 0) body.dryRun = params.dryRun;
|
|
902
|
+
return fetchWithAuth(USER_PROVISION_ENDPOINT, {
|
|
903
|
+
method: "POST",
|
|
904
|
+
body: JSON.stringify(body)
|
|
905
|
+
});
|
|
906
|
+
}
|
|
907
|
+
async function provisionOrganization(params) {
|
|
908
|
+
const modeError = serviceKeyModeError();
|
|
909
|
+
if (modeError) return { error: modeError };
|
|
910
|
+
if (!params.name || !params.name.trim()) {
|
|
911
|
+
return { error: createError("VALIDATION_ERROR", "name \u306F\u5FC5\u9808\u3067\u3059") };
|
|
912
|
+
}
|
|
913
|
+
if (!params.ownerEmail || !params.ownerEmail.trim()) {
|
|
914
|
+
return { error: createError("VALIDATION_ERROR", "ownerEmail \u306F\u5FC5\u9808\u3067\u3059") };
|
|
915
|
+
}
|
|
916
|
+
if (params.members) {
|
|
917
|
+
if (params.members.length > MAX_PROVISION_MEMBERS) {
|
|
918
|
+
return {
|
|
919
|
+
error: createError(
|
|
920
|
+
"VALIDATION_ERROR",
|
|
921
|
+
`members \u306F1\u30EA\u30AF\u30A8\u30B9\u30C8\u3042\u305F\u308A\u6700\u5927 ${MAX_PROVISION_MEMBERS} \u4EF6\u307E\u3067\u3067\u3059`
|
|
922
|
+
)
|
|
923
|
+
};
|
|
924
|
+
}
|
|
925
|
+
for (const member of params.members) {
|
|
926
|
+
if (!member.email || !member.email.trim()) {
|
|
927
|
+
return { error: createError("VALIDATION_ERROR", "members[].email \u306F\u5FC5\u9808\u3067\u3059") };
|
|
928
|
+
}
|
|
929
|
+
if (!isAssignableMemberRole(member.role)) {
|
|
930
|
+
return {
|
|
931
|
+
error: createError(
|
|
932
|
+
"VALIDATION_ERROR",
|
|
933
|
+
"members[].role \u306F admin\u3001member\u3001viewer \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"
|
|
934
|
+
)
|
|
935
|
+
};
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
const body = {
|
|
940
|
+
name: params.name.trim(),
|
|
941
|
+
ownerEmail: params.ownerEmail.trim()
|
|
942
|
+
};
|
|
943
|
+
if (params.billingEmail !== void 0) body.billingEmail = params.billingEmail.trim();
|
|
944
|
+
if (params.members !== void 0) {
|
|
945
|
+
body.members = params.members.map((member) => ({
|
|
946
|
+
email: member.email.trim(),
|
|
947
|
+
role: member.role
|
|
948
|
+
}));
|
|
949
|
+
}
|
|
950
|
+
if (params.dryRun !== void 0) body.dryRun = params.dryRun;
|
|
951
|
+
return fetchWithAuth(ORGANIZATION_PROVISION_ENDPOINT, {
|
|
952
|
+
method: "POST",
|
|
953
|
+
body: JSON.stringify(body)
|
|
954
|
+
});
|
|
955
|
+
}
|
|
956
|
+
return { provisionUser, provisionOrganization };
|
|
957
|
+
}
|
|
958
|
+
|
|
872
959
|
// src/client/seat-methods.ts
|
|
873
960
|
function seatsEndpoint(subscriptionId) {
|
|
874
961
|
return `/api/v1/subscriptions/ext/${encodeURIComponent(subscriptionId)}/seats/assignments`;
|
|
@@ -1113,7 +1200,7 @@ function createNonContractMethods(deps) {
|
|
|
1113
1200
|
}
|
|
1114
1201
|
|
|
1115
1202
|
// src/client/version-check.ts
|
|
1116
|
-
var SDK_VERSION = "5.
|
|
1203
|
+
var SDK_VERSION = "5.19.0";
|
|
1117
1204
|
var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
|
|
1118
1205
|
var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
|
|
1119
1206
|
function sdkHeaders() {
|
|
@@ -2954,6 +3041,11 @@ function createFFIDClient(config) {
|
|
|
2954
3041
|
createError,
|
|
2955
3042
|
serviceCode: config.serviceCode
|
|
2956
3043
|
});
|
|
3044
|
+
const { provisionUser, provisionOrganization } = createProvisioningMethods({
|
|
3045
|
+
fetchWithAuth,
|
|
3046
|
+
createError,
|
|
3047
|
+
authMode
|
|
3048
|
+
});
|
|
2957
3049
|
const { getProfile, updateProfile } = createProfileMethods({
|
|
2958
3050
|
fetchWithAuth,
|
|
2959
3051
|
createError
|
|
@@ -3049,6 +3141,8 @@ function createFFIDClient(config) {
|
|
|
3049
3141
|
addMember,
|
|
3050
3142
|
updateMemberRole,
|
|
3051
3143
|
removeMember,
|
|
3144
|
+
provisionUser,
|
|
3145
|
+
provisionOrganization,
|
|
3052
3146
|
getProfile,
|
|
3053
3147
|
updateProfile,
|
|
3054
3148
|
// Non-contract ext API coverage (#3783)
|