{"version":3,"file":"client-oou0TGyi.mjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import type {\n  BetterAuthClientPlugin,\n  BetterFetch,\n  BetterFetchOption,\n  InferInvitation,\n  InferMember,\n} from \"better-auth/client\";\nimport type { InferAdditionalFieldsFromPluginOptions } from \"better-auth/db\";\nimport type { OrganizationOptions } from \"better-auth/plugins\";\nimport type {\n  BetterAuthOptions,\n  BetterAuthPlugin,\n  Where,\n} from \"better-auth/types\";\n\nexport interface OrganizationMemberClientOptions {\n  schema?: OrganizationOptions[\"schema\"];\n}\n\nexport interface OrganizationMemberClient<\n  CO extends OrganizationMemberClientOptions = OrganizationMemberClientOptions,\n> {\n  updateMember: <T extends Record<string, any> = {}>(data: {\n    memberId: string;\n    organizationId?: string;\n    data: {\n      role?: string | string[];\n    } & Partial<T>;\n    fetchOptions?: BetterFetchOption;\n  }) => Promise<{\n    data: any | null;\n    error: Error | null;\n  }>;\n  updateInvitation: <T extends Record<string, any> = {}>(data: {\n    invitationId: string;\n    organizationId?: string;\n    data: {\n      role?: string | string[];\n    } & Partial<T>;\n    fetchOptions?: BetterFetchOption;\n  }) => Promise<{\n    data: any | null;\n    error: Error | null;\n  }>;\n  listMembers: (data?: {\n    query?: {\n      limit?: number;\n      offset?: number;\n      sortBy?: string;\n      sortDirection?: \"asc\" | \"desc\";\n      filterJson?: Where[]; // Array of Where filters\n      // Legacy single filter support (for backward compatibility)\n      filterField?: string;\n      filterValue?: string | number | boolean;\n      filterOperator?: \"eq\" | \"ne\" | \"lt\" | \"lte\" | \"gt\" | \"gte\" | \"contains\";\n      organizationId?: string;\n      organizationSlug?: string;\n    };\n    fetchOptions?: BetterFetchOption;\n  }) => Promise<{\n    data: {\n      members: InferMember<CO>[];\n      total: number;\n    } | null;\n    error: Error | null;\n  }>;\n  listInvitations: (data?: {\n    query?: {\n      limit?: number;\n      offset?: number;\n      sortBy?: string;\n      sortDirection?: \"asc\" | \"desc\";\n      filterJson?: Where[]; // Array of Where filters\n      // Legacy single filter support (for backward compatibility)\n      filterField?: string;\n      filterValue?: string | number | boolean;\n      filterOperator?: \"eq\" | \"ne\" | \"lt\" | \"lte\" | \"gt\" | \"gte\" | \"contains\";\n      organizationId?: string;\n      organizationSlug?: string;\n    };\n    fetchOptions?: BetterFetchOption;\n  }) => Promise<{\n    data: {\n      invitations: InferInvitation<CO>[];\n      total: number;\n    } | null;\n    error: Error | null;\n  }>;\n  countInvitations: (data?: {\n    query?: {\n      filterJson?: Where[]; // Array of Where filters\n      // Legacy single filter support (for backward compatibility)\n      filterField?: string;\n      filterValue?: string | number | boolean;\n      filterOperator?: \"eq\" | \"ne\" | \"lt\" | \"lte\" | \"gt\" | \"gte\" | \"contains\";\n      organizationId?: string;\n      organizationSlug?: string;\n    };\n    fetchOptions?: BetterFetchOption;\n  }) => Promise<{\n    data: {\n      count: number;\n    } | null;\n    error: Error | null;\n  }>;\n}\n\nexport const organizationMemberClient = <\n  CO extends OrganizationMemberClientOptions = OrganizationMemberClientOptions,\n>(\n  options?: CO\n) => {\n  return {\n    id: \"organization-member\",\n    $InferServerPlugin: {} as ReturnType<\n      typeof import(\"./server\").organizationMember\n    >,\n    getActions: ($fetch: BetterFetch) => ({\n      $Infer: {\n        Member: {} as InferMember<CO>,\n        Invitation: {} as InferInvitation<CO>,\n      },\n      organization: {\n        updateMember: async (data: {\n          memberId: string;\n          organizationId?: string;\n          data: {\n            role?: string | string[];\n          } & Partial<InferAdditionalFieldsFromPluginOptions<\"member\", CO>>;\n          fetchOptions?: BetterFetchOption;\n        }) => {\n          const { fetchOptions, ...body } = data;\n          return await $fetch<InferMember<CO>>(\"/organization/update-member\", {\n            method: \"POST\",\n            body,\n            ...fetchOptions,\n          });\n        },\n        updateInvitation: async (data: {\n          invitationId: string;\n          organizationId?: string;\n          data: {\n            role?: string | string[];\n          } & Partial<InferAdditionalFieldsFromPluginOptions<\"invitation\", CO>>;\n          fetchOptions?: BetterFetchOption;\n        }) => {\n          const { fetchOptions, ...body } = data;\n          return await $fetch<InferInvitation<CO>>(\n            \"/organization/update-invitation\",\n            {\n              method: \"POST\",\n              body,\n              ...fetchOptions,\n            }\n          );\n        },\n        listMembers: async (data?: {\n          query?: {\n            limit?: number;\n            offset?: number;\n            sortBy?: string;\n            sortDirection?: \"asc\" | \"desc\";\n            filterJson?: Where[]; // Array of Where filters\n            // Legacy single filter support (for backward compatibility)\n            filterField?: string;\n            filterValue?: string | number | boolean;\n            filterOperator?:\n              | \"eq\"\n              | \"ne\"\n              | \"lt\"\n              | \"lte\"\n              | \"gt\"\n              | \"gte\"\n              | \"contains\";\n            organizationId?: string;\n            organizationSlug?: string;\n          };\n          fetchOptions?: BetterFetchOption;\n        }) => {\n          const { fetchOptions, query } = data || {};\n          // Serialize where array to JSON string for query parameter\n          const queryParams = query\n            ? {\n                ...query,\n                filterJson: query.filterJson\n                  ? JSON.stringify(query.filterJson)\n                  : undefined,\n              }\n            : undefined;\n          return await $fetch<{\n            members: InferMember<CO>[];\n            total: number;\n          }>(\"/organization/list-members\", {\n            method: \"GET\",\n            query: queryParams,\n            ...fetchOptions,\n          });\n        },\n        listInvitations: async (data?: {\n          query?: {\n            limit?: number;\n            offset?: number;\n            sortBy?: string;\n            sortDirection?: \"asc\" | \"desc\";\n            filterJson?: Where[]; // Array of Where filters\n            // Legacy single filter support (for backward compatibility)\n            filterField?: string;\n            filterValue?: string | number | boolean;\n            filterOperator?:\n              | \"eq\"\n              | \"ne\"\n              | \"lt\"\n              | \"lte\"\n              | \"gt\"\n              | \"gte\"\n              | \"contains\";\n            organizationId?: string;\n            organizationSlug?: string;\n          };\n          fetchOptions?: BetterFetchOption;\n        }) => {\n          const { fetchOptions, query } = data || {};\n          // Serialize where array to JSON string for query parameter\n          const queryParams = query\n            ? {\n                ...query,\n                filterJson: query.filterJson\n                  ? JSON.stringify(query.filterJson)\n                  : undefined,\n              }\n            : undefined;\n          return await $fetch<{\n            invitations: InferInvitation<CO>[];\n            total: number;\n          }>(\"/organization/list-invitations\", {\n            method: \"GET\",\n            query: queryParams,\n            ...fetchOptions,\n          });\n        },\n        countInvitations: async (data?: {\n          query?: {\n            filterJson?: Where[]; // Array of Where filters\n            // Legacy single filter support (for backward compatibility)\n            filterField?: string;\n            filterValue?: string | number | boolean;\n            filterOperator?:\n              | \"eq\"\n              | \"ne\"\n              | \"lt\"\n              | \"lte\"\n              | \"gt\"\n              | \"gte\"\n              | \"contains\";\n            organizationId?: string;\n            organizationSlug?: string;\n          };\n          fetchOptions?: BetterFetchOption;\n        }) => {\n          const { fetchOptions, query } = data || {};\n          // Serialize where array to JSON string for query parameter\n          const queryParams = query\n            ? {\n                ...query,\n                filterJson: query.filterJson\n                  ? JSON.stringify(query.filterJson)\n                  : undefined,\n              }\n            : undefined;\n          return await $fetch<{\n            count: number;\n          }>(\"/organization/count-invitations\", {\n            method: \"GET\",\n            query: queryParams,\n            ...fetchOptions,\n          });\n        },\n      },\n    }),\n  } satisfies BetterAuthClientPlugin;\n};\n\n/**\n * Infer additional fields from the auth object type or schema\n * Similar to inferOrgAdditionalFields from better-auth/plugins/organization/client\n */\nexport const inferOrgMemberAdditionalFields = <\n  O extends {\n    options: BetterAuthOptions;\n  },\n  S extends OrganizationMemberClientOptions[\"schema\"] = undefined,\n>(\n  schema?: S | undefined\n) => {\n  type FindById<\n    T extends readonly BetterAuthPlugin[],\n    TargetId extends string,\n  > = Extract<T[number], { id: TargetId }>;\n\n  type Auth = O extends { options: any } ? O : { options: { plugins: [] } };\n\n  type OrganizationMemberPlugin = FindById<\n    // @ts-expect-error\n    Auth[\"options\"][\"plugins\"],\n    \"organization-member\"\n  >;\n\n  // The server schema can contain more properties other than additionalFields, but the client only supports additionalFields\n  // if we don't remove all other properties we may see assignability issues\n\n  type ExtractClientOnlyFields<T> = {\n    [K in keyof T]: T[K] extends { additionalFields: infer _AF }\n      ? T[K]\n      : undefined;\n  };\n\n  type Schema = O extends Object\n    ? O extends Exclude<S, undefined>\n      ? O\n      : OrganizationMemberPlugin extends { options: { schema: infer S } }\n        ? S extends OrganizationMemberClientOptions[\"schema\"]\n          ? ExtractClientOnlyFields<S>\n          : undefined\n        : undefined\n    : undefined;\n\n  return {} as undefined extends S ? Schema : S;\n};\n"],"mappings":";AA2GA,MAAa,4BAGX,YACG;AACH,QAAO;EACL,IAAI;EACJ,oBAAoB,EAAE;EAGtB,aAAa,YAAyB;GACpC,QAAQ;IACN,QAAQ,EAAE;IACV,YAAY,EAAE;IACf;GACD,cAAc;IACZ,cAAc,OAAO,SAOf;KACJ,MAAM,EAAE,cAAc,GAAG,SAAS;AAClC,YAAO,MAAM,OAAwB,+BAA+B;MAClE,QAAQ;MACR;MACA,GAAG;MACJ,CAAC;;IAEJ,kBAAkB,OAAO,SAOnB;KACJ,MAAM,EAAE,cAAc,GAAG,SAAS;AAClC,YAAO,MAAM,OACX,mCACA;MACE,QAAQ;MACR;MACA,GAAG;MACJ,CACF;;IAEH,aAAa,OAAO,SAsBd;KACJ,MAAM,EAAE,cAAc,UAAU,QAAQ,EAAE;AAU1C,YAAO,MAAM,OAGV,8BAA8B;MAC/B,QAAQ;MACR,OAbkB,QAChB;OACE,GAAG;OACH,YAAY,MAAM,aACd,KAAK,UAAU,MAAM,WAAW,GAChC;OACL,GACD;MAOF,GAAG;MACJ,CAAC;;IAEJ,iBAAiB,OAAO,SAsBlB;KACJ,MAAM,EAAE,cAAc,UAAU,QAAQ,EAAE;AAU1C,YAAO,MAAM,OAGV,kCAAkC;MACnC,QAAQ;MACR,OAbkB,QAChB;OACE,GAAG;OACH,YAAY,MAAM,aACd,KAAK,UAAU,MAAM,WAAW,GAChC;OACL,GACD;MAOF,GAAG;MACJ,CAAC;;IAEJ,kBAAkB,OAAO,SAkBnB;KACJ,MAAM,EAAE,cAAc,UAAU,QAAQ,EAAE;AAU1C,YAAO,MAAM,OAEV,mCAAmC;MACpC,QAAQ;MACR,OAZkB,QAChB;OACE,GAAG;OACH,YAAY,MAAM,aACd,KAAK,UAAU,MAAM,WAAW,GAChC;OACL,GACD;MAMF,GAAG;MACJ,CAAC;;IAEL;GACF;EACF;;;;;;AAOH,MAAa,kCAMX,WACG;AAiCH,QAAO,EAAE"}