@feelflow/ffid-sdk 4.2.0 → 5.0.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.
@@ -710,6 +710,7 @@ function createSubscriptionMethods(deps) {
710
710
  var EXT_MEMBERS_ENDPOINT = "/api/v1/organizations/ext/members";
711
711
  function createMembersMethods(deps) {
712
712
  const { fetchWithAuth, createError, serviceCode } = deps;
713
+ const assignableRoles = /* @__PURE__ */ new Set(["admin", "member", "viewer"]);
713
714
  function buildQuery(organizationId) {
714
715
  return new URLSearchParams({ organizationId, serviceCode }).toString();
715
716
  }
@@ -723,6 +724,37 @@ function createMembersMethods(deps) {
723
724
  `${EXT_MEMBERS_ENDPOINT}?${buildQuery(params.organizationId)}`
724
725
  );
725
726
  }
727
+ function normalizeAddMemberArgs(paramsOrOrganizationId, data) {
728
+ if (typeof paramsOrOrganizationId === "string") {
729
+ const params = {
730
+ organizationId: paramsOrOrganizationId,
731
+ email: data?.email ?? ""
732
+ };
733
+ if (data?.role !== void 0) params.role = data.role;
734
+ return params;
735
+ }
736
+ return paramsOrOrganizationId;
737
+ }
738
+ async function addMember(paramsOrOrganizationId, data) {
739
+ const params = normalizeAddMemberArgs(paramsOrOrganizationId, data);
740
+ if (!params.organizationId || !params.email) {
741
+ return {
742
+ error: createError("VALIDATION_ERROR", "organizationId \u3068 email \u306F\u5FC5\u9808\u3067\u3059")
743
+ };
744
+ }
745
+ if (params.role !== void 0 && !assignableRoles.has(params.role)) {
746
+ return {
747
+ error: createError("VALIDATION_ERROR", "role \u306F admin\u3001member\u3001viewer \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")
748
+ };
749
+ }
750
+ return fetchWithAuth(
751
+ `${EXT_MEMBERS_ENDPOINT}?${buildQuery(params.organizationId)}`,
752
+ {
753
+ method: "POST",
754
+ body: JSON.stringify({ email: params.email, role: params.role })
755
+ }
756
+ );
757
+ }
726
758
  async function updateMemberRole(params) {
727
759
  if (!params.organizationId || !params.userId) {
728
760
  return {
@@ -755,7 +787,7 @@ function createMembersMethods(deps) {
755
787
  }
756
788
  );
757
789
  }
758
- return { listMembers, updateMemberRole, removeMember };
790
+ return { listMembers, addMember, updateMemberRole, removeMember };
759
791
  }
760
792
 
761
793
  // src/client/profile-methods.ts
@@ -808,7 +840,7 @@ function createProfileMethods(deps) {
808
840
  }
809
841
 
810
842
  // src/client/version-check.ts
811
- var SDK_VERSION = "4.2.0";
843
+ var SDK_VERSION = "5.0.0";
812
844
  var SDK_USER_AGENT = `FFID-SDK/${SDK_VERSION} (TypeScript)`;
813
845
  var SDK_VERSION_HEADER = "X-FFID-SDK-Version";
814
846
  function sdkHeaders() {
@@ -2597,7 +2629,7 @@ function createFFIDClient(config) {
2597
2629
  fetchWithAuth,
2598
2630
  createError
2599
2631
  });
2600
- const { listMembers, updateMemberRole, removeMember } = createMembersMethods({
2632
+ const { listMembers, addMember, updateMemberRole, removeMember } = createMembersMethods({
2601
2633
  fetchWithAuth,
2602
2634
  createError,
2603
2635
  serviceCode: config.serviceCode
@@ -2681,6 +2713,7 @@ function createFFIDClient(config) {
2681
2713
  checkServiceAccess,
2682
2714
  requireServiceAccess,
2683
2715
  listMembers,
2716
+ addMember,
2684
2717
  updateMemberRole,
2685
2718
  removeMember,
2686
2719
  getProfile,