better-auth-organization-member 1.0.2 → 1.0.3

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 CHANGED
@@ -167,11 +167,13 @@ const client = createAuthClient({
167
167
  // Update member information (role + additional fields)
168
168
  await client.organization.updateMember({
169
169
  memberId: 'member-id',
170
- role: 'admin', // Can update role
171
- firstName: 'John',
172
- lastName: 'Doe',
173
- avatar: 'https://example.com/avatar.jpg',
174
- // any other custom fields defined in your member schema
170
+ data: {
171
+ role: 'admin', // Can update role
172
+ firstName: 'John',
173
+ lastName: 'Doe',
174
+ avatar: 'https://example.com/avatar.jpg',
175
+ // any other custom fields defined in your member schema
176
+ },
175
177
  fetchOptions: {
176
178
  headers: {
177
179
  'X-Custom-Header': 'value',
@@ -182,11 +184,13 @@ await client.organization.updateMember({
182
184
  // Update invitation information
183
185
  await client.organization.updateInvitation({
184
186
  invitationId: 'invitation-id',
185
- role: 'admin', // Can update role
186
- firstName: 'John',
187
- lastName: 'Doe',
188
- avatar: 'https://example.com/avatar.jpg',
189
- // any other custom fields defined in your invitation schema
187
+ data: {
188
+ role: 'admin', // Can update role
189
+ firstName: 'John',
190
+ lastName: 'Doe',
191
+ avatar: 'https://example.com/avatar.jpg',
192
+ // any other custom fields defined in your invitation schema
193
+ },
190
194
  fetchOptions: {
191
195
  headers: {
192
196
  'X-Custom-Header': 'value',
@@ -207,12 +211,13 @@ Updates member information in an organization. Follows the **exact same permissi
207
211
  ```typescript
208
212
  {
209
213
  memberId: string; // Required: ID of the member to update
210
- role?: string | string[]; // Optional: Role(s) to assign
211
214
  organizationId?: string; // Optional: defaults to active organization
212
- teamId?: string; // Optional: team ID (if teams are enabled)
213
- fetchOptions?: ClientFetchOption; // Optional: fetch options (headers, etc.)
214
- // ... any additional fields defined in member.additionalFields
215
- // Examples: firstName, lastName, avatar, etc.
215
+ data: {
216
+ role?: string | string[]; // Optional: Role(s) to assign
217
+ // ... any additional fields defined in member.additionalFields
218
+ // Examples: firstName, lastName, avatar, etc.
219
+ };
220
+ fetchOptions?: BetterFetchOption; // Optional: fetch options (headers, etc.)
216
221
  }
217
222
  ```
218
223
 
@@ -298,11 +303,13 @@ await client.organization.updateMemberRole({
298
303
  // Updates role AND additional fields in one call
299
304
  await client.organization.updateMember({
300
305
  memberId: 'member-id',
301
- role: 'admin', // ✅ Can update role
302
- firstName: 'John', // ✅ Plus additional fields
303
- lastName: 'Doe',
304
- avatar: 'https://example.com/avatar.jpg',
305
- customField: 'value', // ✅ Plus any custom fields
306
+ data: {
307
+ role: 'admin', // ✅ Can update role
308
+ firstName: 'John', // ✅ Plus additional fields
309
+ lastName: 'Doe',
310
+ avatar: 'https://example.com/avatar.jpg',
311
+ customField: 'value', // ✅ Plus any custom fields
312
+ },
306
313
  });
307
314
  ```
308
315
 
@@ -1 +1 @@
1
- {"version":3,"file":"client-BxYSj_vy.mjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import type {\n BetterAuthClientPlugin,\n BetterFetch,\n BetterFetchOption,\n} from \"better-auth/client\";\nimport type { InferAdditionalFieldsFromPluginOptions } from \"better-auth/db\";\nimport type {\n InferInvitation,\n InferMember,\n OrganizationOptions,\n} from \"better-auth/plugins\";\nimport type { BetterAuthOptions, BetterAuthPlugin } from \"better-auth/types\";\n\nexport interface OrganizationMemberClientOptions {\n schema?: OrganizationOptions[\"schema\"];\n}\n\nexport interface OrganizationMemberClient {\n updateMember: <T extends Record<string, any> = {}>(\n data: {\n memberId: string;\n organizationId?: string;\n fetchOptions?: BetterFetchOption;\n } & T\n ) => Promise<{\n data: any | null;\n error: Error | null;\n }>;\n updateInvitation: <T extends Record<string, any> = {}>(\n data: {\n invitationId: string;\n organizationId?: string;\n fetchOptions?: BetterFetchOption;\n } & T\n ) => Promise<{\n data: any | 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, false>,\n Invitation: {} as InferInvitation<CO, false>,\n },\n organization: {\n updateMember: async (\n data: {\n memberId: string;\n organizationId?: string;\n role?: string | string[];\n fetchOptions?: BetterFetchOption;\n } & InferAdditionalFieldsFromPluginOptions<\"member\", CO>\n ) => {\n const { fetchOptions, ...body } = data;\n return await $fetch(\"/organization/update-member\", {\n method: \"POST\",\n body,\n fetchOptions,\n });\n },\n updateInvitation: async (\n data: {\n invitationId: string;\n organizationId?: string;\n role?: string | string[];\n fetchOptions?: BetterFetchOption;\n } & InferAdditionalFieldsFromPluginOptions<\"invitation\", CO>\n ) => {\n const { fetchOptions, ...body } = data;\n return await $fetch(\"/organization/update-invitation\", {\n method: \"POST\",\n body,\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":";AAwCA,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,OACZ,SAMG;KACH,MAAM,EAAE,cAAc,GAAG,SAAS;AAClC,YAAO,MAAM,OAAO,+BAA+B;MACjD,QAAQ;MACR;MACA;MACD,CAAC;;IAEJ,kBAAkB,OAChB,SAMG;KACH,MAAM,EAAE,cAAc,GAAG,SAAS;AAClC,YAAO,MAAM,OAAO,mCAAmC;MACrD,QAAQ;MACR;MACA;MACD,CAAC;;IAEL;GACF;EACF;;;;;;AAOH,MAAa,kCAMX,WACG;AAiCH,QAAO,EAAE"}
1
+ {"version":3,"file":"client-BxYSj_vy.mjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import type {\n BetterAuthClientPlugin,\n BetterFetch,\n BetterFetchOption,\n} from \"better-auth/client\";\nimport type { InferAdditionalFieldsFromPluginOptions } from \"better-auth/db\";\nimport type {\n InferInvitation,\n InferMember,\n OrganizationOptions,\n} from \"better-auth/plugins\";\nimport type { BetterAuthOptions, BetterAuthPlugin } from \"better-auth/types\";\n\nexport interface OrganizationMemberClientOptions {\n schema?: OrganizationOptions[\"schema\"];\n}\n\nexport interface OrganizationMemberClient {\n updateMember: <T extends Record<string, any> = {}>(\n data: {\n memberId: string;\n organizationId?: string;\n data: {\n role?: string | string[];\n } & Partial<T>;\n fetchOptions?: BetterFetchOption;\n }\n ) => Promise<{\n data: any | null;\n error: Error | null;\n }>;\n updateInvitation: <T extends Record<string, any> = {}>(\n data: {\n invitationId: string;\n organizationId?: string;\n data: {\n role?: string | string[];\n } & Partial<T>;\n fetchOptions?: BetterFetchOption;\n }\n ) => Promise<{\n data: any | 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, false>,\n Invitation: {} as InferInvitation<CO, false>,\n },\n organization: {\n updateMember: async (\n data: {\n memberId: string;\n organizationId?: string;\n data: {\n role?: string | string[];\n } & Partial<\n InferAdditionalFieldsFromPluginOptions<\"member\", CO>\n >;\n fetchOptions?: BetterFetchOption;\n }\n ) => {\n const { fetchOptions, ...body } = data;\n return await $fetch(\"/organization/update-member\", {\n method: \"POST\",\n body,\n fetchOptions,\n });\n },\n updateInvitation: async (\n data: {\n invitationId: string;\n organizationId?: string;\n data: {\n role?: string | string[];\n } & Partial<\n InferAdditionalFieldsFromPluginOptions<\"invitation\", CO>\n >;\n fetchOptions?: BetterFetchOption;\n }\n ) => {\n const { fetchOptions, ...body } = data;\n return await $fetch(\"/organization/update-invitation\", {\n method: \"POST\",\n body,\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":";AA8CA,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,OACZ,SAUG;KACH,MAAM,EAAE,cAAc,GAAG,SAAS;AAClC,YAAO,MAAM,OAAO,+BAA+B;MACjD,QAAQ;MACR;MACA;MACD,CAAC;;IAEJ,kBAAkB,OAChB,SAUG;KACH,MAAM,EAAE,cAAc,GAAG,SAAS;AAClC,YAAO,MAAM,OAAO,mCAAmC;MACrD,QAAQ;MACR;MACA;MACD,CAAC;;IAEL;GACF;EACF;;;;;;AAOH,MAAa,kCAMX,WACG;AAiCH,QAAO,EAAE"}
@@ -14,16 +14,22 @@ interface OrganizationMemberClient {
14
14
  updateMember: <T extends Record<string, any> = {}>(data: {
15
15
  memberId: string;
16
16
  organizationId?: string;
17
+ data: {
18
+ role?: string | string[];
19
+ } & Partial<T>;
17
20
  fetchOptions?: BetterFetchOption;
18
- } & T) => Promise<{
21
+ }) => Promise<{
19
22
  data: any | null;
20
23
  error: Error | null;
21
24
  }>;
22
25
  updateInvitation: <T extends Record<string, any> = {}>(data: {
23
26
  invitationId: string;
24
27
  organizationId?: string;
28
+ data: {
29
+ role?: string | string[];
30
+ } & Partial<T>;
25
31
  fetchOptions?: BetterFetchOption;
26
- } & T) => Promise<{
32
+ }) => Promise<{
27
33
  data: any | null;
28
34
  error: Error | null;
29
35
  }>;
@@ -40,9 +46,11 @@ declare const organizationMemberClient: <CO extends OrganizationMemberClientOpti
40
46
  updateMember: (data: {
41
47
  memberId: string;
42
48
  organizationId?: string;
43
- role?: string | string[];
49
+ data: {
50
+ role?: string | string[];
51
+ } & Partial<InferAdditionalFieldsFromPluginOptions<"member", CO>>;
44
52
  fetchOptions?: BetterFetchOption;
45
- } & InferAdditionalFieldsFromPluginOptions<"member", CO>) => Promise<{
53
+ }) => Promise<{
46
54
  data: unknown;
47
55
  error: null;
48
56
  } | {
@@ -56,9 +64,11 @@ declare const organizationMemberClient: <CO extends OrganizationMemberClientOpti
56
64
  updateInvitation: (data: {
57
65
  invitationId: string;
58
66
  organizationId?: string;
59
- role?: string | string[];
67
+ data: {
68
+ role?: string | string[];
69
+ } & Partial<InferAdditionalFieldsFromPluginOptions<"invitation", CO>>;
60
70
  fetchOptions?: BetterFetchOption;
61
- } & InferAdditionalFieldsFromPluginOptions<"invitation", CO>) => Promise<{
71
+ }) => Promise<{
62
72
  data: unknown;
63
73
  error: null;
64
74
  } | {
@@ -137,4 +147,4 @@ declare const inferOrgMemberAdditionalFields: <O extends {
137
147
  } ? S_1[K] : undefined } : undefined : undefined : undefined : S;
138
148
  //#endregion
139
149
  export { organizationMemberClient as i, OrganizationMemberClientOptions as n, inferOrgMemberAdditionalFields as r, OrganizationMemberClient as t };
140
- //# sourceMappingURL=client-D1TOQax8.d.mts.map
150
+ //# sourceMappingURL=client-C8Kd58Mh.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-C8Kd58Mh.d.mts","names":[],"sources":["../src/client.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/client.d.mts CHANGED
@@ -1,3 +1,3 @@
1
1
  import "./server-DzmSHpFU.mjs";
2
- import { i as organizationMemberClient, n as OrganizationMemberClientOptions, r as inferOrgMemberAdditionalFields, t as OrganizationMemberClient } from "./client-D1TOQax8.mjs";
2
+ import { i as organizationMemberClient, n as OrganizationMemberClientOptions, r as inferOrgMemberAdditionalFields, t as OrganizationMemberClient } from "./client-C8Kd58Mh.mjs";
3
3
  export { OrganizationMemberClient, OrganizationMemberClientOptions, inferOrgMemberAdditionalFields, organizationMemberClient };
package/dist/client.d.ts CHANGED
@@ -9,16 +9,22 @@ export interface OrganizationMemberClient {
9
9
  updateMember: <T extends Record<string, any> = {}>(data: {
10
10
  memberId: string;
11
11
  organizationId?: string;
12
+ data: {
13
+ role?: string | string[];
14
+ } & Partial<T>;
12
15
  fetchOptions?: BetterFetchOption;
13
- } & T) => Promise<{
16
+ }) => Promise<{
14
17
  data: any | null;
15
18
  error: Error | null;
16
19
  }>;
17
20
  updateInvitation: <T extends Record<string, any> = {}>(data: {
18
21
  invitationId: string;
19
22
  organizationId?: string;
23
+ data: {
24
+ role?: string | string[];
25
+ } & Partial<T>;
20
26
  fetchOptions?: BetterFetchOption;
21
- } & T) => Promise<{
27
+ }) => Promise<{
22
28
  data: any | null;
23
29
  error: Error | null;
24
30
  }>;
@@ -35,9 +41,11 @@ export declare const organizationMemberClient: <CO extends OrganizationMemberCli
35
41
  updateMember: (data: {
36
42
  memberId: string;
37
43
  organizationId?: string;
38
- role?: string | string[];
44
+ data: {
45
+ role?: string | string[];
46
+ } & Partial<InferAdditionalFieldsFromPluginOptions<"member", CO>>;
39
47
  fetchOptions?: BetterFetchOption;
40
- } & InferAdditionalFieldsFromPluginOptions<"member", CO>) => Promise<{
48
+ }) => Promise<{
41
49
  data: unknown;
42
50
  error: null;
43
51
  } | {
@@ -51,9 +59,11 @@ export declare const organizationMemberClient: <CO extends OrganizationMemberCli
51
59
  updateInvitation: (data: {
52
60
  invitationId: string;
53
61
  organizationId?: string;
54
- role?: string | string[];
62
+ data: {
63
+ role?: string | string[];
64
+ } & Partial<InferAdditionalFieldsFromPluginOptions<"invitation", CO>>;
55
65
  fetchOptions?: BetterFetchOption;
56
- } & InferAdditionalFieldsFromPluginOptions<"invitation", CO>) => Promise<{
66
+ }) => Promise<{
57
67
  data: unknown;
58
68
  error: null;
59
69
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAwCA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAGtC,OAAY,EACZ,EAAE;IACF,OAAO;QACL,EAAE,EAAE,qBAAqB;QACzB,kBAAkB,EAAE,EAEnB;QACD,UAAU,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC;YACpC,MAAM,EAAE;gBACN,MAAM,EAAE,EAA4B;gBACpC,UAAU,EAAE,EAAgC;aAC7C;YACD,YAAY,EAAE;gBACZ,YAAY,EAAE,KAAK,EACjB,IAKwD,EACxD,EAAE;oBACF,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;oBACvC,OAAO,MAAM,MAAM,CAAC,6BAA6B,EAAE;wBACjD,MAAM,EAAE,MAAM;wBACd,IAAI;wBACJ,YAAY;qBACb,CAAC,CAAC;gBACL,CAAC;gBACD,gBAAgB,EAAE,KAAK,EACrB,IAK4D,EAC5D,EAAE;oBACF,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;oBACvC,OAAO,MAAM,MAAM,CAAC,iCAAiC,EAAE;wBACrD,MAAM,EAAE,MAAM;wBACd,IAAI;wBACJ,YAAY;qBACb,CAAC,CAAC;gBACL,CAAC;aACF;SACF,CAAC;KAC8B,CAAC;AACrC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAM5C,MAAsB,EACtB,EAAE;IAiCF,OAAO,EAAsC,CAAC;AAChD,CAAC,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AA8CA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAGtC,OAAY,EACZ,EAAE;IACF,OAAO;QACL,EAAE,EAAE,qBAAqB;QACzB,kBAAkB,EAAE,EAEnB;QACD,UAAU,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC;YACpC,MAAM,EAAE;gBACN,MAAM,EAAE,EAA4B;gBACpC,UAAU,EAAE,EAAgC;aAC7C;YACD,YAAY,EAAE;gBACZ,YAAY,EAAE,KAAK,EACjB,IASC,EACD,EAAE;oBACF,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;oBACvC,OAAO,MAAM,MAAM,CAAC,6BAA6B,EAAE;wBACjD,MAAM,EAAE,MAAM;wBACd,IAAI;wBACJ,YAAY;qBACb,CAAC,CAAC;gBACL,CAAC;gBACD,gBAAgB,EAAE,KAAK,EACrB,IASC,EACD,EAAE;oBACF,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;oBACvC,OAAO,MAAM,MAAM,CAAC,iCAAiC,EAAE;wBACrD,MAAM,EAAE,MAAM;wBACd,IAAI;wBACJ,YAAY;qBACb,CAAC,CAAC;gBACL,CAAC;aACF;SACF,CAAC;KAC8B,CAAC;AACrC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAM5C,MAAsB,EACtB,EAAE;IAiCF,OAAO,EAAsC,CAAC;AAChD,CAAC,CAAC"}
package/dist/index.d.mts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { i as organizationMember, t as OrganizationMemberOptions } from "./server-DzmSHpFU.mjs";
2
- import { i as organizationMemberClient, n as OrganizationMemberClientOptions, r as inferOrgMemberAdditionalFields, t as OrganizationMemberClient } from "./client-D1TOQax8.mjs";
2
+ import { i as organizationMemberClient, n as OrganizationMemberClientOptions, r as inferOrgMemberAdditionalFields, t as OrganizationMemberClient } from "./client-C8Kd58Mh.mjs";
3
3
  export { type OrganizationMemberClient, type OrganizationMemberClientOptions, type OrganizationMemberOptions, inferOrgMemberAdditionalFields, organizationMember, organizationMemberClient };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { r as organizationMember } from "./server-Big_p9zG.mjs";
1
+ import { r as organizationMember } from "./server-CO0gB_2G.mjs";
2
2
  import { n as organizationMemberClient, t as inferOrgMemberAdditionalFields } from "./client-BxYSj_vy.mjs";
3
3
 
4
4
  export { inferOrgMemberAdditionalFields, organizationMember, organizationMemberClient };
@@ -665,7 +665,7 @@ const orgSessionMiddleware = createAuthMiddleware({ use: [sessionMiddleware] },
665
665
  * @requires organization plugin
666
666
  */
667
667
  const createUpdateMemberEndpoint = (options) => {
668
- const baseMemberSchema = z.object({
668
+ z.object({
669
669
  role: z.union([z.string(), z.array(z.string())]).meta({ description: "The new role to be applied. This can be a string or array of strings representing the roles. Eg: [\"admin\", \"sale\"]" }),
670
670
  memberId: z.string().meta({ description: "The member id to apply the role update to. Eg: \"member-id\"" }),
671
671
  organizationId: z.string().meta({ description: "An optional organization ID which the member is a part of to apply the role update. If not provided, you must provide session headers to get the active organization. Eg: \"organization-id\"" }).optional(),
@@ -681,8 +681,12 @@ const createUpdateMemberEndpoint = (options) => {
681
681
  return createAuthEndpoint("/organization/update-member", {
682
682
  method: "POST",
683
683
  body: z.object({
684
- ...baseMemberSchema.shape,
685
- ...additionalFieldsWithoutStatus.shape
684
+ memberId: z.string().meta({ description: "The member id to apply the update to. Eg: \"member-id\"" }),
685
+ organizationId: z.string().meta({ description: "An optional organization ID which the member is a part of. If not provided, you must provide session headers to get the active organization. Eg: \"organization-id\"" }).optional(),
686
+ data: z.object({
687
+ role: z.union([z.string(), z.array(z.string())]).optional().meta({ description: "The new role to be applied. This can be a string or array of strings representing the roles. Eg: [\"admin\", \"sale\"]" }),
688
+ ...additionalFieldsWithoutStatus.shape
689
+ }).partial()
686
690
  }),
687
691
  use: [orgMiddleware, orgSessionMiddleware],
688
692
  requireHeaders: true,
@@ -718,11 +722,10 @@ const createUpdateMemberEndpoint = (options) => {
718
722
  const session = ctx.context.session;
719
723
  const organizationPlugin = getOrganizationPlugin(ctx.context);
720
724
  if (!organizationPlugin) throw new Error("organization-member plugin requires the organization plugin");
721
- if (!ctx.body.role) throw new APIError("BAD_REQUEST");
722
725
  const organizationId = ctx.body.organizationId || session.session.activeOrganizationId;
723
726
  if (!organizationId) throw new APIError("BAD_REQUEST", { message: ORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION });
724
727
  const adapter = getOrgAdapter(ctx.context, organizationPlugin.options);
725
- const roleToSet = Array.isArray(ctx.body.role) ? ctx.body.role : ctx.body.role ? [ctx.body.role] : [];
728
+ const roleToSet = ctx.body.data?.role ? Array.isArray(ctx.body.data.role) ? ctx.body.data.role : [ctx.body.data.role] : [];
726
729
  const member = await adapter.findMemberByOrgId({
727
730
  userId: session.user.id,
728
731
  organizationId
@@ -759,7 +762,7 @@ const createUpdateMemberEndpoint = (options) => {
759
762
  if (!organization) throw new APIError("BAD_REQUEST", { message: ORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND });
760
763
  const userBeingUpdated = await ctx.context.internalAdapter.findUserById(toBeUpdatedMember.userId);
761
764
  if (!userBeingUpdated) throw new APIError("BAD_REQUEST", { message: BASE_ERROR_CODES.USER_NOT_FOUND });
762
- const { memberId: _, organizationId: __, ...updates } = ctx.body;
765
+ const updates = ctx.body.data || {};
763
766
  let finalUpdates = updates;
764
767
  if (options?.organizationMemberHooks?.beforeUpdateMember) {
765
768
  const response = await options.organizationMemberHooks.beforeUpdateMember({
@@ -787,79 +790,8 @@ const createUpdateMemberEndpoint = (options) => {
787
790
  return ctx.json(updatedMember);
788
791
  });
789
792
  };
790
- const createGetMemberEndpoint = () => {
791
- return createAuthEndpoint("/organization/get-member", {
792
- method: "GET",
793
- query: z.object({
794
- userId: z.string().meta({ description: "The user id of the member to retrieve. Eg: \"user-id\"" }).optional(),
795
- organizationId: z.string().meta({ description: "The organization ID which the member belongs to. If not provided, will default to the user's active organization. Eg: \"organization-id\"" }).optional(),
796
- organizationSlug: z.string().meta({ description: "The organization slug to get member for. If not provided, will default to the user's active organization. Eg: \"organization-slug\"" }).optional()
797
- }),
798
- use: [orgMiddleware, orgSessionMiddleware],
799
- requireHeaders: true,
800
- metadata: {
801
- $Infer: { query: {} },
802
- openapi: {
803
- operationId: "getOrganizationMember",
804
- description: "Get a member from an organization by user ID",
805
- responses: { "200": {
806
- description: "Success",
807
- content: { "application/json": { schema: {
808
- type: "object",
809
- properties: {
810
- id: { type: "string" },
811
- userId: { type: "string" },
812
- organizationId: { type: "string" },
813
- role: { type: "string" },
814
- firstName: { type: "string" },
815
- lastName: { type: "string" },
816
- avatar: { type: "string" },
817
- status: { type: "string" },
818
- createdAt: {
819
- type: "string",
820
- format: "date-time"
821
- }
822
- },
823
- required: [
824
- "id",
825
- "userId",
826
- "organizationId",
827
- "role"
828
- ]
829
- } } }
830
- } }
831
- }
832
- }
833
- }, async (ctx) => {
834
- const session = ctx.context.session;
835
- const organizationPlugin = getOrganizationPlugin(ctx.context);
836
- if (!organizationPlugin) throw new Error("organization-member plugin requires the organization plugin");
837
- const adapter = getOrgAdapter(ctx.context, organizationPlugin.options);
838
- let organizationId = ctx.query?.organizationId || session.session.activeOrganizationId;
839
- const userId = ctx.query.userId || session.user.id;
840
- if (!userId) throw new APIError("BAD_REQUEST", { message: BASE_ERROR_CODES.USER_NOT_FOUND });
841
- if (ctx.query?.organizationSlug) {
842
- const organization = await adapter.findOrganizationBySlug(ctx.query.organizationSlug);
843
- if (!organization) throw new APIError("BAD_REQUEST", { message: ORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND });
844
- organizationId = organization.id;
845
- }
846
- if (!organizationId) throw new APIError("BAD_REQUEST", { message: ORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION });
847
- const currentUserMember = await adapter.findMemberByOrgId({
848
- userId: session.user.id,
849
- organizationId
850
- });
851
- if (!currentUserMember) throw new APIError("FORBIDDEN", { message: ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION });
852
- if (!ctx.query.userId && (ctx.query.organizationSlug || ctx.query.organizationId)) return ctx.json(currentUserMember);
853
- const requestedMember = await adapter.findMemberByOrgId({
854
- userId,
855
- organizationId
856
- });
857
- if (!requestedMember) throw new APIError("BAD_REQUEST", { message: ORGANIZATION_ERROR_CODES.MEMBER_NOT_FOUND });
858
- return ctx.json(requestedMember);
859
- });
860
- };
861
793
  const createUpdateInvitationEndpoint = (options) => {
862
- const baseInvitationSchema = z.object({
794
+ z.object({
863
795
  invitationId: z.string().meta({ description: "The invitation id to update. Eg: \"invitation-id\"" }),
864
796
  organizationId: z.string().meta({ description: "An optional organization ID which the invitation belongs to. If not provided, you must provide session headers to get the active organization. Eg: \"organization-id\"" }).optional()
865
797
  });
@@ -870,9 +802,12 @@ const createUpdateInvitationEndpoint = (options) => {
870
802
  return createAuthEndpoint("/organization/update-invitation", {
871
803
  method: "POST",
872
804
  body: z.object({
873
- ...baseInvitationSchema.shape,
874
- ...additionalFieldsSchema.shape,
875
- role: z.union([z.string(), z.array(z.string())]).optional().meta({ description: "The new role to be applied. This can be a string or array of strings representing the roles. Eg: [\"admin\", \"sale\"]" })
805
+ invitationId: z.string().meta({ description: "The invitation id to update. Eg: \"invitation-id\"" }),
806
+ organizationId: z.string().meta({ description: "An optional organization ID which the invitation belongs to. If not provided, you must provide session headers to get the active organization. Eg: \"organization-id\"" }).optional(),
807
+ data: z.object({
808
+ role: z.union([z.string(), z.array(z.string())]).optional().meta({ description: "The new role to be applied. This can be a string or array of strings representing the roles. Eg: [\"admin\", \"sale\"]" }),
809
+ ...additionalFieldsSchema.shape
810
+ }).partial()
876
811
  }),
877
812
  use: [orgMiddleware, orgSessionMiddleware],
878
813
  requireHeaders: true,
@@ -937,7 +872,7 @@ const createUpdateInvitationEndpoint = (options) => {
937
872
  if (invitation.status !== "pending") throw new APIError("BAD_REQUEST", { message: ORGANIZATION_ERROR_CODES.ONLY_PENDING_INVITATIONS_CAN_BE_UPDATED });
938
873
  const organization = await adapter.findOrganizationById(organizationId);
939
874
  if (!organization) throw new APIError("BAD_REQUEST", { message: ORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND });
940
- const { invitationId: _, organizationId: __, ...updates } = ctx.body;
875
+ const updates = ctx.body.data || {};
941
876
  let finalUpdates = updates;
942
877
  if (options?.organizationMemberHooks?.beforeUpdateInvitation) {
943
878
  const response = await options.organizationMemberHooks.beforeUpdateInvitation({
@@ -1003,7 +938,6 @@ const organizationMember = (userConfig) => {
1003
938
  };
1004
939
  },
1005
940
  endpoints: {
1006
- getMember: createGetMemberEndpoint(),
1007
941
  updateMember: createUpdateMemberEndpoint(userConfig),
1008
942
  updateInvitation: createUpdateInvitationEndpoint(userConfig)
1009
943
  },
@@ -1014,4 +948,4 @@ const organizationMember = (userConfig) => {
1014
948
 
1015
949
  //#endregion
1016
950
  export { orgSessionMiddleware as n, organizationMember as r, orgMiddleware as t };
1017
- //# sourceMappingURL=server-Big_p9zG.mjs.map
951
+ //# sourceMappingURL=server-CO0gB_2G.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-CO0gB_2G.mjs","names":["#hiddenStack","roleToSet: string[]","member","finalUpdates: Record<string, any>","updateData: Record<string, unknown>"],"sources":["../../../node_modules/better-call/dist/error.mjs","../../../node_modules/better-call/dist/utils.mjs","../../../node_modules/better-call/dist/to-response.mjs","../../../node_modules/@better-auth/utils/dist/index.mjs","../../../node_modules/better-call/dist/crypto.mjs","../../../node_modules/better-call/dist/cookies.mjs","../../../node_modules/better-call/dist/validator.mjs","../../../node_modules/better-call/dist/context.mjs","../../../node_modules/better-call/dist/endpoint.mjs","../../../node_modules/better-call/dist/middleware.mjs","../src/server.ts"],"sourcesContent":["//#region src/error.ts\nfunction isErrorStackTraceLimitWritable() {\n\tconst desc = Object.getOwnPropertyDescriptor(Error, \"stackTraceLimit\");\n\tif (desc === void 0) return Object.isExtensible(Error);\n\treturn Object.prototype.hasOwnProperty.call(desc, \"writable\") ? desc.writable : desc.set !== void 0;\n}\n/**\n* Hide internal stack frames from the error stack trace.\n*/\nfunction hideInternalStackFrames(stack) {\n\tconst lines = stack.split(\"\\n at \");\n\tif (lines.length <= 1) return stack;\n\tlines.splice(1, 1);\n\treturn lines.join(\"\\n at \");\n}\n/**\n* Creates a custom error class that hides stack frames.\n*/\nfunction makeErrorForHideStackFrame(Base, clazz) {\n\tclass HideStackFramesError extends Base {\n\t\t#hiddenStack;\n\t\tconstructor(...args) {\n\t\t\tif (isErrorStackTraceLimitWritable()) {\n\t\t\t\tconst limit = Error.stackTraceLimit;\n\t\t\t\tError.stackTraceLimit = 0;\n\t\t\t\tsuper(...args);\n\t\t\t\tError.stackTraceLimit = limit;\n\t\t\t} else super(...args);\n\t\t\tconst stack = (/* @__PURE__ */ new Error()).stack;\n\t\t\tif (stack) this.#hiddenStack = hideInternalStackFrames(stack.replace(/^Error/, this.name));\n\t\t}\n\t\tget errorStack() {\n\t\t\treturn this.#hiddenStack;\n\t\t}\n\t}\n\tObject.defineProperty(HideStackFramesError.prototype, \"constructor\", {\n\t\tget() {\n\t\t\treturn clazz;\n\t\t},\n\t\tenumerable: false,\n\t\tconfigurable: true\n\t});\n\treturn HideStackFramesError;\n}\nconst statusCodes = {\n\tOK: 200,\n\tCREATED: 201,\n\tACCEPTED: 202,\n\tNO_CONTENT: 204,\n\tMULTIPLE_CHOICES: 300,\n\tMOVED_PERMANENTLY: 301,\n\tFOUND: 302,\n\tSEE_OTHER: 303,\n\tNOT_MODIFIED: 304,\n\tTEMPORARY_REDIRECT: 307,\n\tBAD_REQUEST: 400,\n\tUNAUTHORIZED: 401,\n\tPAYMENT_REQUIRED: 402,\n\tFORBIDDEN: 403,\n\tNOT_FOUND: 404,\n\tMETHOD_NOT_ALLOWED: 405,\n\tNOT_ACCEPTABLE: 406,\n\tPROXY_AUTHENTICATION_REQUIRED: 407,\n\tREQUEST_TIMEOUT: 408,\n\tCONFLICT: 409,\n\tGONE: 410,\n\tLENGTH_REQUIRED: 411,\n\tPRECONDITION_FAILED: 412,\n\tPAYLOAD_TOO_LARGE: 413,\n\tURI_TOO_LONG: 414,\n\tUNSUPPORTED_MEDIA_TYPE: 415,\n\tRANGE_NOT_SATISFIABLE: 416,\n\tEXPECTATION_FAILED: 417,\n\t\"I'M_A_TEAPOT\": 418,\n\tMISDIRECTED_REQUEST: 421,\n\tUNPROCESSABLE_ENTITY: 422,\n\tLOCKED: 423,\n\tFAILED_DEPENDENCY: 424,\n\tTOO_EARLY: 425,\n\tUPGRADE_REQUIRED: 426,\n\tPRECONDITION_REQUIRED: 428,\n\tTOO_MANY_REQUESTS: 429,\n\tREQUEST_HEADER_FIELDS_TOO_LARGE: 431,\n\tUNAVAILABLE_FOR_LEGAL_REASONS: 451,\n\tINTERNAL_SERVER_ERROR: 500,\n\tNOT_IMPLEMENTED: 501,\n\tBAD_GATEWAY: 502,\n\tSERVICE_UNAVAILABLE: 503,\n\tGATEWAY_TIMEOUT: 504,\n\tHTTP_VERSION_NOT_SUPPORTED: 505,\n\tVARIANT_ALSO_NEGOTIATES: 506,\n\tINSUFFICIENT_STORAGE: 507,\n\tLOOP_DETECTED: 508,\n\tNOT_EXTENDED: 510,\n\tNETWORK_AUTHENTICATION_REQUIRED: 511\n};\nvar InternalAPIError = class extends Error {\n\tconstructor(status = \"INTERNAL_SERVER_ERROR\", body = void 0, headers = {}, statusCode = typeof status === \"number\" ? status : statusCodes[status]) {\n\t\tsuper(body?.message, body?.cause ? { cause: body.cause } : void 0);\n\t\tthis.status = status;\n\t\tthis.body = body;\n\t\tthis.headers = headers;\n\t\tthis.statusCode = statusCode;\n\t\tthis.name = \"APIError\";\n\t\tthis.status = status;\n\t\tthis.headers = headers;\n\t\tthis.statusCode = statusCode;\n\t\tthis.body = body ? {\n\t\t\tcode: body?.message?.toUpperCase().replace(/ /g, \"_\").replace(/[^A-Z0-9_]/g, \"\"),\n\t\t\t...body\n\t\t} : void 0;\n\t}\n};\nvar ValidationError = class extends InternalAPIError {\n\tconstructor(message, issues) {\n\t\tsuper(400, {\n\t\t\tmessage,\n\t\t\tcode: \"VALIDATION_ERROR\"\n\t\t});\n\t\tthis.message = message;\n\t\tthis.issues = issues;\n\t\tthis.issues = issues;\n\t}\n};\nvar BetterCallError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"BetterCallError\";\n\t}\n};\nconst APIError = makeErrorForHideStackFrame(InternalAPIError, Error);\n\n//#endregion\nexport { APIError, BetterCallError, ValidationError, hideInternalStackFrames, makeErrorForHideStackFrame, statusCodes };\n//# sourceMappingURL=error.mjs.map","import { APIError } from \"./error.mjs\";\n\n//#region src/utils.ts\nconst jsonContentTypeRegex = /^application\\/([a-z0-9.+-]*\\+)?json/i;\nasync function getBody(request, allowedMediaTypes) {\n\tconst contentType = request.headers.get(\"content-type\") || \"\";\n\tconst normalizedContentType = contentType.toLowerCase();\n\tif (!request.body) return;\n\tif (allowedMediaTypes && allowedMediaTypes.length > 0) {\n\t\tif (!allowedMediaTypes.some((allowed) => {\n\t\t\tconst normalizedContentTypeBase = normalizedContentType.split(\";\")[0].trim();\n\t\t\tconst normalizedAllowed = allowed.toLowerCase().trim();\n\t\t\treturn normalizedContentTypeBase === normalizedAllowed || normalizedContentTypeBase.includes(normalizedAllowed);\n\t\t})) {\n\t\t\tif (!normalizedContentType) throw new APIError(415, {\n\t\t\t\tmessage: `Content-Type is required. Allowed types: ${allowedMediaTypes.join(\", \")}`,\n\t\t\t\tcode: \"UNSUPPORTED_MEDIA_TYPE\"\n\t\t\t});\n\t\t\tthrow new APIError(415, {\n\t\t\t\tmessage: `Content-Type \"${contentType}\" is not allowed. Allowed types: ${allowedMediaTypes.join(\", \")}`,\n\t\t\t\tcode: \"UNSUPPORTED_MEDIA_TYPE\"\n\t\t\t});\n\t\t}\n\t}\n\tif (jsonContentTypeRegex.test(normalizedContentType)) return await request.json();\n\tif (normalizedContentType.includes(\"application/x-www-form-urlencoded\")) {\n\t\tconst formData = await request.formData();\n\t\tconst result = {};\n\t\tformData.forEach((value, key) => {\n\t\t\tresult[key] = value.toString();\n\t\t});\n\t\treturn result;\n\t}\n\tif (normalizedContentType.includes(\"multipart/form-data\")) {\n\t\tconst formData = await request.formData();\n\t\tconst result = {};\n\t\tformData.forEach((value, key) => {\n\t\t\tresult[key] = value;\n\t\t});\n\t\treturn result;\n\t}\n\tif (normalizedContentType.includes(\"text/plain\")) return await request.text();\n\tif (normalizedContentType.includes(\"application/octet-stream\")) return await request.arrayBuffer();\n\tif (normalizedContentType.includes(\"application/pdf\") || normalizedContentType.includes(\"image/\") || normalizedContentType.includes(\"video/\")) return await request.blob();\n\tif (normalizedContentType.includes(\"application/stream\") || request.body instanceof ReadableStream) return request.body;\n\treturn await request.text();\n}\nfunction isAPIError(error) {\n\treturn error instanceof APIError || error?.name === \"APIError\";\n}\nfunction tryDecode(str) {\n\ttry {\n\t\treturn str.includes(\"%\") ? decodeURIComponent(str) : str;\n\t} catch {\n\t\treturn str;\n\t}\n}\nasync function tryCatch(promise) {\n\ttry {\n\t\treturn {\n\t\t\tdata: await promise,\n\t\t\terror: null\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\tdata: null,\n\t\t\terror\n\t\t};\n\t}\n}\n/**\n* Check if an object is a `Request`\n* - `instanceof`: works for native Request instances\n* - `toString`: handles where instanceof check fails but the object is still a valid Request\n*/\nfunction isRequest(obj) {\n\treturn obj instanceof Request || Object.prototype.toString.call(obj) === \"[object Request]\";\n}\n\n//#endregion\nexport { getBody, isAPIError, isRequest, tryCatch, tryDecode };\n//# sourceMappingURL=utils.mjs.map","import \"./error.mjs\";\nimport { isAPIError } from \"./utils.mjs\";\n\n//#region src/to-response.ts\nfunction isJSONSerializable(value) {\n\tif (value === void 0) return false;\n\tconst t = typeof value;\n\tif (t === \"string\" || t === \"number\" || t === \"boolean\" || t === null) return true;\n\tif (t !== \"object\") return false;\n\tif (Array.isArray(value)) return true;\n\tif (value.buffer) return false;\n\treturn value.constructor && value.constructor.name === \"Object\" || typeof value.toJSON === \"function\";\n}\nfunction safeStringify(obj, replacer, space) {\n\tlet id = 0;\n\tconst seen = /* @__PURE__ */ new WeakMap();\n\tconst safeReplacer = (key, value) => {\n\t\tif (typeof value === \"bigint\") return value.toString();\n\t\tif (typeof value === \"object\" && value !== null) {\n\t\t\tif (seen.has(value)) return `[Circular ref-${seen.get(value)}]`;\n\t\t\tseen.set(value, id++);\n\t\t}\n\t\tif (replacer) return replacer(key, value);\n\t\treturn value;\n\t};\n\treturn JSON.stringify(obj, safeReplacer, space);\n}\nfunction isJSONResponse(value) {\n\tif (!value || typeof value !== \"object\") return false;\n\treturn \"_flag\" in value && value._flag === \"json\";\n}\nfunction toResponse(data, init) {\n\tif (data instanceof Response) {\n\t\tif (init?.headers instanceof Headers) init.headers.forEach((value, key) => {\n\t\t\tdata.headers.set(key, value);\n\t\t});\n\t\treturn data;\n\t}\n\tif (isJSONResponse(data)) {\n\t\tconst body$1 = data.body;\n\t\tconst routerResponse = data.routerResponse;\n\t\tif (routerResponse instanceof Response) return routerResponse;\n\t\tconst headers$1 = new Headers();\n\t\tif (routerResponse?.headers) {\n\t\t\tconst headers$2 = new Headers(routerResponse.headers);\n\t\t\tfor (const [key, value] of headers$2.entries()) headers$2.set(key, value);\n\t\t}\n\t\tif (data.headers) for (const [key, value] of new Headers(data.headers).entries()) headers$1.set(key, value);\n\t\tif (init?.headers) for (const [key, value] of new Headers(init.headers).entries()) headers$1.set(key, value);\n\t\theaders$1.set(\"Content-Type\", \"application/json\");\n\t\treturn new Response(JSON.stringify(body$1), {\n\t\t\t...routerResponse,\n\t\t\theaders: headers$1,\n\t\t\tstatus: data.status ?? init?.status ?? routerResponse?.status,\n\t\t\tstatusText: init?.statusText ?? routerResponse?.statusText\n\t\t});\n\t}\n\tif (isAPIError(data)) return toResponse(data.body, {\n\t\tstatus: init?.status ?? data.statusCode,\n\t\tstatusText: data.status.toString(),\n\t\theaders: init?.headers || data.headers\n\t});\n\tlet body = data;\n\tlet headers = new Headers(init?.headers);\n\tif (!data) {\n\t\tif (data === null) body = JSON.stringify(null);\n\t\theaders.set(\"content-type\", \"application/json\");\n\t} else if (typeof data === \"string\") {\n\t\tbody = data;\n\t\theaders.set(\"Content-Type\", \"text/plain\");\n\t} else if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {\n\t\tbody = data;\n\t\theaders.set(\"Content-Type\", \"application/octet-stream\");\n\t} else if (data instanceof Blob) {\n\t\tbody = data;\n\t\theaders.set(\"Content-Type\", data.type || \"application/octet-stream\");\n\t} else if (data instanceof FormData) body = data;\n\telse if (data instanceof URLSearchParams) {\n\t\tbody = data;\n\t\theaders.set(\"Content-Type\", \"application/x-www-form-urlencoded\");\n\t} else if (data instanceof ReadableStream) {\n\t\tbody = data;\n\t\theaders.set(\"Content-Type\", \"application/octet-stream\");\n\t} else if (isJSONSerializable(data)) {\n\t\tbody = safeStringify(data);\n\t\theaders.set(\"Content-Type\", \"application/json\");\n\t}\n\treturn new Response(body, {\n\t\t...init,\n\t\theaders\n\t});\n}\n\n//#endregion\nexport { toResponse };\n//# sourceMappingURL=to-response.mjs.map","function getWebcryptoSubtle() {\n const cr = typeof globalThis !== \"undefined\" && globalThis.crypto;\n if (cr && typeof cr.subtle === \"object\" && cr.subtle != null)\n return cr.subtle;\n throw new Error(\"crypto.subtle must be defined\");\n}\n\nexport { getWebcryptoSubtle };\n","import { getWebcryptoSubtle } from \"@better-auth/utils\";\n\n//#region src/crypto.ts\nconst algorithm = {\n\tname: \"HMAC\",\n\thash: \"SHA-256\"\n};\nconst getCryptoKey = async (secret) => {\n\tconst secretBuf = typeof secret === \"string\" ? new TextEncoder().encode(secret) : secret;\n\treturn await getWebcryptoSubtle().importKey(\"raw\", secretBuf, algorithm, false, [\"sign\", \"verify\"]);\n};\nconst verifySignature = async (base64Signature, value, secret) => {\n\ttry {\n\t\tconst signatureBinStr = atob(base64Signature);\n\t\tconst signature = new Uint8Array(signatureBinStr.length);\n\t\tfor (let i = 0, len = signatureBinStr.length; i < len; i++) signature[i] = signatureBinStr.charCodeAt(i);\n\t\treturn await getWebcryptoSubtle().verify(algorithm, secret, signature, new TextEncoder().encode(value));\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nconst makeSignature = async (value, secret) => {\n\tconst key = await getCryptoKey(secret);\n\tconst signature = await getWebcryptoSubtle().sign(algorithm.name, key, new TextEncoder().encode(value));\n\treturn btoa(String.fromCharCode(...new Uint8Array(signature)));\n};\nconst signCookieValue = async (value, secret) => {\n\tconst signature = await makeSignature(value, secret);\n\tvalue = `${value}.${signature}`;\n\tvalue = encodeURIComponent(value);\n\treturn value;\n};\n\n//#endregion\nexport { getCryptoKey, signCookieValue, verifySignature };\n//# sourceMappingURL=crypto.mjs.map","import { tryDecode } from \"./utils.mjs\";\nimport { signCookieValue } from \"./crypto.mjs\";\n\n//#region src/cookies.ts\nconst getCookieKey = (key, prefix) => {\n\tlet finalKey = key;\n\tif (prefix) if (prefix === \"secure\") finalKey = \"__Secure-\" + key;\n\telse if (prefix === \"host\") finalKey = \"__Host-\" + key;\n\telse return;\n\treturn finalKey;\n};\n/**\n* Parse an HTTP Cookie header string and returning an object of all cookie\n* name-value pairs.\n*\n* Inspired by https://github.com/unjs/cookie-es/blob/main/src/cookie/parse.ts\n*\n* @param str the string representing a `Cookie` header value\n*/\nfunction parseCookies(str) {\n\tif (typeof str !== \"string\") throw new TypeError(\"argument str must be a string\");\n\tconst cookies = /* @__PURE__ */ new Map();\n\tlet index = 0;\n\twhile (index < str.length) {\n\t\tconst eqIdx = str.indexOf(\"=\", index);\n\t\tif (eqIdx === -1) break;\n\t\tlet endIdx = str.indexOf(\";\", index);\n\t\tif (endIdx === -1) endIdx = str.length;\n\t\telse if (endIdx < eqIdx) {\n\t\t\tindex = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n\t\t\tcontinue;\n\t\t}\n\t\tconst key = str.slice(index, eqIdx).trim();\n\t\tif (!cookies.has(key)) {\n\t\t\tlet val = str.slice(eqIdx + 1, endIdx).trim();\n\t\t\tif (val.codePointAt(0) === 34) val = val.slice(1, -1);\n\t\t\tcookies.set(key, tryDecode(val));\n\t\t}\n\t\tindex = endIdx + 1;\n\t}\n\treturn cookies;\n}\nconst _serialize = (key, value, opt = {}) => {\n\tlet cookie;\n\tif (opt?.prefix === \"secure\") cookie = `${`__Secure-${key}`}=${value}`;\n\telse if (opt?.prefix === \"host\") cookie = `${`__Host-${key}`}=${value}`;\n\telse cookie = `${key}=${value}`;\n\tif (key.startsWith(\"__Secure-\") && !opt.secure) opt.secure = true;\n\tif (key.startsWith(\"__Host-\")) {\n\t\tif (!opt.secure) opt.secure = true;\n\t\tif (opt.path !== \"/\") opt.path = \"/\";\n\t\tif (opt.domain) opt.domain = void 0;\n\t}\n\tif (opt && typeof opt.maxAge === \"number\" && opt.maxAge >= 0) {\n\t\tif (opt.maxAge > 3456e4) throw new Error(\"Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.\");\n\t\tcookie += `; Max-Age=${Math.floor(opt.maxAge)}`;\n\t}\n\tif (opt.domain && opt.prefix !== \"host\") cookie += `; Domain=${opt.domain}`;\n\tif (opt.path) cookie += `; Path=${opt.path}`;\n\tif (opt.expires) {\n\t\tif (opt.expires.getTime() - Date.now() > 3456e7) throw new Error(\"Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.\");\n\t\tcookie += `; Expires=${opt.expires.toUTCString()}`;\n\t}\n\tif (opt.httpOnly) cookie += \"; HttpOnly\";\n\tif (opt.secure) cookie += \"; Secure\";\n\tif (opt.sameSite) cookie += `; SameSite=${opt.sameSite.charAt(0).toUpperCase() + opt.sameSite.slice(1)}`;\n\tif (opt.partitioned) {\n\t\tif (!opt.secure) opt.secure = true;\n\t\tcookie += \"; Partitioned\";\n\t}\n\treturn cookie;\n};\nconst serializeCookie = (key, value, opt) => {\n\tvalue = encodeURIComponent(value);\n\treturn _serialize(key, value, opt);\n};\nconst serializeSignedCookie = async (key, value, secret, opt) => {\n\tvalue = await signCookieValue(value, secret);\n\treturn _serialize(key, value, opt);\n};\n\n//#endregion\nexport { getCookieKey, parseCookies, serializeCookie, serializeSignedCookie };\n//# sourceMappingURL=cookies.mjs.map","//#region src/validator.ts\n/**\n* Runs validation on body and query\n* @returns error and data object\n*/\nasync function runValidation(options, context = {}) {\n\tlet request = {\n\t\tbody: context.body,\n\t\tquery: context.query\n\t};\n\tif (options.body) {\n\t\tconst result = await options.body[\"~standard\"].validate(context.body);\n\t\tif (result.issues) return {\n\t\t\tdata: null,\n\t\t\terror: fromError(result.issues, \"body\")\n\t\t};\n\t\trequest.body = result.value;\n\t}\n\tif (options.query) {\n\t\tconst result = await options.query[\"~standard\"].validate(context.query);\n\t\tif (result.issues) return {\n\t\t\tdata: null,\n\t\t\terror: fromError(result.issues, \"query\")\n\t\t};\n\t\trequest.query = result.value;\n\t}\n\tif (options.requireHeaders && !context.headers) return {\n\t\tdata: null,\n\t\terror: {\n\t\t\tmessage: \"Headers is required\",\n\t\t\tissues: []\n\t\t}\n\t};\n\tif (options.requireRequest && !context.request) return {\n\t\tdata: null,\n\t\terror: {\n\t\t\tmessage: \"Request is required\",\n\t\t\tissues: []\n\t\t}\n\t};\n\treturn {\n\t\tdata: request,\n\t\terror: null\n\t};\n}\nfunction fromError(error, validating) {\n\treturn {\n\t\tmessage: error.map((e) => {\n\t\t\treturn `[${e.path?.length ? `${validating}.` + e.path.map((x) => typeof x === \"object\" ? x.key : x).join(\".\") : validating}] ${e.message}`;\n\t\t}).join(\"; \"),\n\t\tissues: error\n\t};\n}\n\n//#endregion\nexport { runValidation };\n//# sourceMappingURL=validator.mjs.map","import { APIError, ValidationError } from \"./error.mjs\";\nimport { isRequest } from \"./utils.mjs\";\nimport { runValidation } from \"./validator.mjs\";\nimport { getCryptoKey, verifySignature } from \"./crypto.mjs\";\nimport { getCookieKey, parseCookies, serializeCookie, serializeSignedCookie } from \"./cookies.mjs\";\n\n//#region src/context.ts\nconst createInternalContext = async (context, { options, path }) => {\n\tconst headers = new Headers();\n\tlet responseStatus = void 0;\n\tconst { data, error } = await runValidation(options, context);\n\tif (error) throw new ValidationError(error.message, error.issues);\n\tconst requestHeaders = \"headers\" in context ? context.headers instanceof Headers ? context.headers : new Headers(context.headers) : \"request\" in context && isRequest(context.request) ? context.request.headers : null;\n\tconst requestCookies = requestHeaders?.get(\"cookie\");\n\tconst parsedCookies = requestCookies ? parseCookies(requestCookies) : void 0;\n\tconst internalContext = {\n\t\t...context,\n\t\tbody: data.body,\n\t\tquery: data.query,\n\t\tpath: context.path || path || \"virtual:\",\n\t\tcontext: \"context\" in context && context.context ? context.context : {},\n\t\treturned: void 0,\n\t\theaders: context?.headers,\n\t\trequest: context?.request,\n\t\tparams: \"params\" in context ? context.params : void 0,\n\t\tmethod: context.method ?? (Array.isArray(options.method) ? options.method[0] : options.method === \"*\" ? \"GET\" : options.method),\n\t\tsetHeader: (key, value) => {\n\t\t\theaders.set(key, value);\n\t\t},\n\t\tgetHeader: (key) => {\n\t\t\tif (!requestHeaders) return null;\n\t\t\treturn requestHeaders.get(key);\n\t\t},\n\t\tgetCookie: (key, prefix) => {\n\t\t\tconst finalKey = getCookieKey(key, prefix);\n\t\t\tif (!finalKey) return null;\n\t\t\treturn parsedCookies?.get(finalKey) || null;\n\t\t},\n\t\tgetSignedCookie: async (key, secret, prefix) => {\n\t\t\tconst finalKey = getCookieKey(key, prefix);\n\t\t\tif (!finalKey) return null;\n\t\t\tconst value = parsedCookies?.get(finalKey);\n\t\t\tif (!value) return null;\n\t\t\tconst signatureStartPos = value.lastIndexOf(\".\");\n\t\t\tif (signatureStartPos < 1) return null;\n\t\t\tconst signedValue = value.substring(0, signatureStartPos);\n\t\t\tconst signature = value.substring(signatureStartPos + 1);\n\t\t\tif (signature.length !== 44 || !signature.endsWith(\"=\")) return null;\n\t\t\treturn await verifySignature(signature, signedValue, await getCryptoKey(secret)) ? signedValue : false;\n\t\t},\n\t\tsetCookie: (key, value, options$1) => {\n\t\t\tconst cookie = serializeCookie(key, value, options$1);\n\t\t\theaders.append(\"set-cookie\", cookie);\n\t\t\treturn cookie;\n\t\t},\n\t\tsetSignedCookie: async (key, value, secret, options$1) => {\n\t\t\tconst cookie = await serializeSignedCookie(key, value, secret, options$1);\n\t\t\theaders.append(\"set-cookie\", cookie);\n\t\t\treturn cookie;\n\t\t},\n\t\tredirect: (url) => {\n\t\t\theaders.set(\"location\", url);\n\t\t\treturn new APIError(\"FOUND\", void 0, headers);\n\t\t},\n\t\terror: (status, body, headers$1) => {\n\t\t\treturn new APIError(status, body, headers$1);\n\t\t},\n\t\tsetStatus: (status) => {\n\t\t\tresponseStatus = status;\n\t\t},\n\t\tjson: (json, routerResponse) => {\n\t\t\tif (!context.asResponse) return json;\n\t\t\treturn {\n\t\t\t\tbody: routerResponse?.body || json,\n\t\t\t\trouterResponse,\n\t\t\t\t_flag: \"json\"\n\t\t\t};\n\t\t},\n\t\tresponseHeaders: headers,\n\t\tget responseStatus() {\n\t\t\treturn responseStatus;\n\t\t}\n\t};\n\tfor (const middleware of options.use || []) {\n\t\tconst response = await middleware({\n\t\t\t...internalContext,\n\t\t\treturnHeaders: true,\n\t\t\tasResponse: false\n\t\t});\n\t\tif (response.response) Object.assign(internalContext.context, response.response);\n\t\t/**\n\t\t* Apply headers from the middleware to the endpoint headers\n\t\t*/\n\t\tif (response.headers) response.headers.forEach((value, key) => {\n\t\t\tinternalContext.responseHeaders.set(key, value);\n\t\t});\n\t}\n\treturn internalContext;\n};\n\n//#endregion\nexport { createInternalContext };\n//# sourceMappingURL=context.mjs.map","import { APIError, BetterCallError, ValidationError } from \"./error.mjs\";\nimport { isAPIError, tryCatch } from \"./utils.mjs\";\nimport { toResponse } from \"./to-response.mjs\";\nimport { createInternalContext } from \"./context.mjs\";\n\n//#region src/endpoint.ts\nfunction createEndpoint(pathOrOptions, handlerOrOptions, handlerOrNever) {\n\tconst path = typeof pathOrOptions === \"string\" ? pathOrOptions : void 0;\n\tconst options = typeof handlerOrOptions === \"object\" ? handlerOrOptions : pathOrOptions;\n\tconst handler = typeof handlerOrOptions === \"function\" ? handlerOrOptions : handlerOrNever;\n\tif ((options.method === \"GET\" || options.method === \"HEAD\") && options.body) throw new BetterCallError(\"Body is not allowed with GET or HEAD methods\");\n\tif (path && /\\/{2,}/.test(path)) throw new BetterCallError(\"Path cannot contain consecutive slashes\");\n\tconst internalHandler = async (...inputCtx) => {\n\t\tconst context = inputCtx[0] || {};\n\t\tconst { data: internalContext, error: validationError } = await tryCatch(createInternalContext(context, {\n\t\t\toptions,\n\t\t\tpath\n\t\t}));\n\t\tif (validationError) {\n\t\t\tif (!(validationError instanceof ValidationError)) throw validationError;\n\t\t\tif (options.onValidationError) await options.onValidationError({\n\t\t\t\tmessage: validationError.message,\n\t\t\t\tissues: validationError.issues\n\t\t\t});\n\t\t\tthrow new APIError(400, {\n\t\t\t\tmessage: validationError.message,\n\t\t\t\tcode: \"VALIDATION_ERROR\"\n\t\t\t});\n\t\t}\n\t\tconst response = await handler(internalContext).catch(async (e) => {\n\t\t\tif (isAPIError(e)) {\n\t\t\t\tconst onAPIError = options.onAPIError;\n\t\t\t\tif (onAPIError) await onAPIError(e);\n\t\t\t\tif (context.asResponse) return e;\n\t\t\t}\n\t\t\tthrow e;\n\t\t});\n\t\tconst headers = internalContext.responseHeaders;\n\t\tconst status = internalContext.responseStatus;\n\t\treturn context.asResponse ? toResponse(response, {\n\t\t\theaders,\n\t\t\tstatus\n\t\t}) : context.returnHeaders ? context.returnStatus ? {\n\t\t\theaders,\n\t\t\tresponse,\n\t\t\tstatus\n\t\t} : {\n\t\t\theaders,\n\t\t\tresponse\n\t\t} : context.returnStatus ? {\n\t\t\tresponse,\n\t\t\tstatus\n\t\t} : response;\n\t};\n\tinternalHandler.options = options;\n\tinternalHandler.path = path;\n\treturn internalHandler;\n}\ncreateEndpoint.create = (opts) => {\n\treturn (path, options, handler) => {\n\t\treturn createEndpoint(path, {\n\t\t\t...options,\n\t\t\tuse: [...options?.use || [], ...opts?.use || []]\n\t\t}, handler);\n\t};\n};\n\n//#endregion\nexport { createEndpoint };\n//# sourceMappingURL=endpoint.mjs.map","import { createInternalContext } from \"./context.mjs\";\nimport \"./endpoint.mjs\";\n\n//#region src/middleware.ts\nfunction createMiddleware(optionsOrHandler, handler) {\n\tconst internalHandler = async (inputCtx) => {\n\t\tconst context = inputCtx;\n\t\tconst _handler = typeof optionsOrHandler === \"function\" ? optionsOrHandler : handler;\n\t\tconst internalContext = await createInternalContext(context, {\n\t\t\toptions: typeof optionsOrHandler === \"function\" ? {} : optionsOrHandler,\n\t\t\tpath: \"/\"\n\t\t});\n\t\tif (!_handler) throw new Error(\"handler must be defined\");\n\t\tconst response = await _handler(internalContext);\n\t\tconst headers = internalContext.responseHeaders;\n\t\treturn context.returnHeaders ? {\n\t\t\theaders,\n\t\t\tresponse\n\t\t} : response;\n\t};\n\tinternalHandler.options = typeof optionsOrHandler === \"function\" ? {} : optionsOrHandler;\n\treturn internalHandler;\n}\ncreateMiddleware.create = (opts) => {\n\tfunction fn(optionsOrHandler, handler) {\n\t\tif (typeof optionsOrHandler === \"function\") return createMiddleware({ use: opts?.use }, optionsOrHandler);\n\t\tif (!handler) throw new Error(\"Middleware handler is required\");\n\t\treturn createMiddleware({\n\t\t\t...optionsOrHandler,\n\t\t\tmethod: \"*\",\n\t\t\tuse: [...opts?.use || [], ...optionsOrHandler.use || []]\n\t\t}, handler);\n\t}\n\treturn fn;\n};\n\n//#endregion\nexport { createMiddleware };\n//# sourceMappingURL=middleware.mjs.map","/** @format */\n\nimport {\n type AuthContext,\n BASE_ERROR_CODES,\n type BetterAuthOptions,\n type BetterAuthPlugin,\n defineErrorCodes,\n type GenericEndpointContext,\n type Session,\n type User,\n} from \"better-auth\";\nimport {\n createAuthEndpoint,\n createAuthMiddleware,\n sessionMiddleware,\n} from \"better-auth/api\";\nimport { clientSideHasPermission } from \"better-auth/client/plugins\";\nimport type { InferAdditionalFieldsFromPluginOptions } from \"better-auth/db\";\nimport { toZodSchema } from \"better-auth/db\";\nimport {\n getOrgAdapter,\n InferInvitation,\n type InferMember,\n type InferOrganization,\n type Member,\n type OrganizationOptions,\n type OrganizationPlugin,\n type Role,\n} from \"better-auth/plugins\";\nimport { defaultRoles } from \"better-auth/plugins/organization/access\";\nimport { APIError } from \"better-call\";\nimport z from \"zod\";\n\nconst ORGANIZATION_ERROR_CODES = defineErrorCodes({\n NO_ACTIVE_ORGANIZATION: \"No active organization\",\n MEMBER_NOT_FOUND: \"Member not found\",\n ORGANIZATION_NOT_FOUND: \"Organization not found\",\n YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_MEMBER:\n \"You are not allowed to update this member\",\n YOU_CANNOT_LEAVE_THE_ORGANIZATION_WITHOUT_AN_OWNER:\n \"You cannot leave the organization without an owner\",\n INVITATION_NOT_FOUND: \"Invitation not found\",\n YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_INVITATION:\n \"You are not allowed to update this invitation\",\n ONLY_PENDING_INVITATIONS_CAN_BE_UPDATED:\n \"Only pending invitations can be updated\",\n YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION:\n \"You are not a member of this organization\",\n});\n\nconst getOrganizationPlugin = <\n Options extends BetterAuthOptions = BetterAuthOptions,\n>(\n ctx: AuthContext<Options>\n) => {\n return ctx.options.plugins?.find(\n (plugin) => plugin.id === \"organization\"\n ) as OrganizationPlugin<OrganizationOptions>;\n};\n\nexport interface OrganizationMemberOptions {\n schema?: OrganizationOptions[\"schema\"];\n /**\n * Hooks for the organization member plugin\n */\n organizationMemberHooks?: {\n /**\n * A callback that runs before a member's info is updated\n *\n * You can return a `data` object to override the default data.\n */\n beforeUpdateMember?: (data: {\n member: InferMember<OrganizationOptions, false>;\n updates: {\n role?: string | string[];\n } & InferAdditionalFieldsFromPluginOptions<\"member\", OrganizationOptions>;\n user: User;\n organization: InferOrganization<OrganizationOptions, false>;\n }) => Promise<void | {\n data: {\n role?: string | string[];\n } & InferAdditionalFieldsFromPluginOptions<\"member\", OrganizationOptions>;\n }>;\n\n /**\n * A callback that runs after a member's info is updated\n */\n afterUpdateMember?: (data: {\n member: InferMember<OrganizationOptions, false>;\n user: User;\n organization: InferOrganization<OrganizationOptions, false>;\n }) => Promise<void>;\n\n /**\n * A callback that runs before an invitation is updated\n *\n * You can return a `data` object to override the default data.\n */\n beforeUpdateInvitation?: (data: {\n invitation: InferInvitation<OrganizationOptions, false>;\n updates: {\n role?: string | string[];\n } & InferAdditionalFieldsFromPluginOptions<\n \"invitation\",\n OrganizationOptions\n >;\n inviter: User;\n organization: InferOrganization<OrganizationOptions, false>;\n }) => Promise<void | {\n data: {\n role?: string | string[];\n } & InferAdditionalFieldsFromPluginOptions<\n \"invitation\",\n OrganizationOptions\n >;\n }>;\n\n /**\n * A callback that runs after an invitation is updated\n */\n afterUpdateInvitation?: (data: {\n invitation: InferInvitation<OrganizationOptions, false>;\n inviter: User;\n organization: InferOrganization<OrganizationOptions, false>;\n }) => Promise<void>;\n };\n}\n\nexport const orgMiddleware = createAuthMiddleware(async () => {\n return {} as {\n orgOptions: OrganizationOptions;\n roles: typeof defaultRoles & {\n [key: string]: Role<{}>;\n };\n getSession: (context: GenericEndpointContext) => Promise<{\n session: Session & {\n activeTeamId?: string | undefined;\n activeOrganizationId?: string | undefined;\n };\n user: User;\n }>;\n };\n});\n\n/**\n * The middleware forces the endpoint to require a valid session by utilizing the `sessionMiddleware`.\n * It also appends additional types to the session type regarding organizations.\n */\nexport const orgSessionMiddleware = createAuthMiddleware(\n {\n use: [sessionMiddleware],\n },\n async (ctx) => {\n const session = ctx.context.session as {\n session: Session & {\n activeTeamId?: string | undefined;\n activeOrganizationId?: string | undefined;\n };\n user: User;\n };\n return {\n session,\n };\n }\n);\n\n/**\n * Organization Member Plugin\n *\n * Extends the organization plugin with:\n * - updateMember endpoint to update member fields (not just role)\n * - Automatically adds afterAcceptInvitation hook to transfer invitation data to member\n *\n * @requires organization plugin\n */\n\nconst createUpdateMemberEndpoint = (options?: OrganizationMemberOptions) => {\n // from /better-auth/packages/better-auth/src/plugins/organization/routes/crud-members.ts\n const baseMemberSchema = z.object({\n role: z.union([z.string(), z.array(z.string())]).meta({\n description:\n 'The new role to be applied. This can be a string or array of strings representing the roles. Eg: [\"admin\", \"sale\"]',\n }),\n memberId: z.string().meta({\n description: 'The member id to apply the role update to. Eg: \"member-id\"',\n }),\n organizationId: z\n .string()\n .meta({\n description:\n 'An optional organization ID which the member is a part of to apply the role update. If not provided, you must provide session headers to get the active organization. Eg: \"organization-id\"',\n })\n .optional(),\n // Manually add default member fields\n firstName: z.string().optional().meta({\n description: \"First name of the member\",\n }),\n lastName: z.string().optional().meta({\n description: \"Last name of the member\",\n }),\n avatar: z.string().optional().meta({\n description: \"Avatar URL of the member\",\n }),\n status: z.enum([\"active\", \"inactive\"]).optional(),\n });\n\n const additionalFieldsSchema = toZodSchema({\n fields: options?.schema?.member?.additionalFields || {},\n isClientSide: true,\n });\n\n // Remove status field from additionalFieldsSchema to prevent overriding the strict enum in baseMemberSchema\n const { status: _status, ...additionalFieldsWithoutStatus } =\n additionalFieldsSchema.shape;\n\n return createAuthEndpoint(\n \"/organization/update-member\",\n {\n method: \"POST\",\n body: z.object({\n memberId: z.string().meta({\n description: 'The member id to apply the update to. Eg: \"member-id\"',\n }),\n organizationId: z\n .string()\n .meta({\n description:\n 'An optional organization ID which the member is a part of. If not provided, you must provide session headers to get the active organization. Eg: \"organization-id\"',\n })\n .optional(),\n data: z\n .object({\n role: z.union([z.string(), z.array(z.string())]).optional().meta({\n description:\n 'The new role to be applied. This can be a string or array of strings representing the roles. Eg: [\"admin\", \"sale\"]',\n }),\n ...additionalFieldsWithoutStatus.shape,\n })\n .partial(),\n }),\n use: [orgMiddleware, orgSessionMiddleware],\n requireHeaders: true,\n metadata: {\n $Infer: {\n body: {} as {\n memberId: string;\n organizationId?: string;\n data: {\n role?: string | string[];\n firstName?: string;\n lastName?: string;\n avatar?: string;\n status?: \"active\" | \"inactive\";\n } & Partial<\n InferAdditionalFieldsFromPluginOptions<\n \"member\",\n OrganizationOptions\n >\n >;\n },\n },\n openapi: {\n operationId: \"updateOrganizationMember\",\n description: \"Update a member in an organization\",\n responses: {\n \"200\": {\n description: \"Success\",\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n id: {\n type: \"string\",\n },\n userId: {\n type: \"string\",\n },\n organizationId: {\n type: \"string\",\n },\n firstName: {\n type: \"string\",\n },\n lastName: {\n type: \"string\",\n },\n avatar: {\n type: \"string\",\n },\n status: {\n type: \"string\",\n },\n },\n required: [\"id\", \"userId\", \"organizationId\", \"role\"],\n },\n },\n },\n },\n },\n },\n },\n },\n async (ctx) => {\n const session = ctx.context.session;\n\n const organizationPlugin = getOrganizationPlugin(ctx.context);\n if (!organizationPlugin) {\n throw new Error(\n \"organization-member plugin requires the organization plugin\"\n );\n }\n\n const organizationId =\n ctx.body.organizationId || session.session.activeOrganizationId;\n\n if (!organizationId) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION,\n });\n }\n\n const adapter = getOrgAdapter(ctx.context, organizationPlugin.options);\n const roleToSet: string[] = ctx.body.data?.role\n ? Array.isArray(ctx.body.data.role)\n ? ctx.body.data.role\n : [ctx.body.data.role]\n : [];\n\n const member = await adapter.findMemberByOrgId({\n userId: session.user.id,\n organizationId: organizationId,\n });\n\n if (!member) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.MEMBER_NOT_FOUND,\n });\n }\n\n const toBeUpdatedMember =\n member.id !== ctx.body.memberId\n ? await adapter.findMemberById(ctx.body.memberId)\n : member;\n\n if (!toBeUpdatedMember) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.MEMBER_NOT_FOUND,\n });\n }\n\n const memberBelongsToOrganization =\n toBeUpdatedMember.organizationId === organizationId;\n\n if (!memberBelongsToOrganization) {\n throw new APIError(\"FORBIDDEN\", {\n message:\n ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_MEMBER,\n });\n }\n\n const creatorRole = organizationPlugin.options?.creatorRole || \"owner\";\n\n const updatingMemberRoles = member.role.split(\",\");\n const toBeUpdatedMemberRoles = toBeUpdatedMember.role.split(\",\");\n\n const isUpdatingCreator = toBeUpdatedMemberRoles.includes(creatorRole);\n const updaterIsCreator = updatingMemberRoles.includes(creatorRole);\n\n const isSettingCreatorRole = roleToSet.includes(creatorRole);\n\n const memberIsUpdatingThemselves = member.id === toBeUpdatedMember.id;\n\n if (\n (isUpdatingCreator && !updaterIsCreator) ||\n (isSettingCreatorRole && !updaterIsCreator)\n ) {\n throw new APIError(\"FORBIDDEN\", {\n message:\n ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_MEMBER,\n });\n }\n\n if (updaterIsCreator && memberIsUpdatingThemselves) {\n const members = await ctx.context.adapter.findMany<\n InferMember<OrganizationOptions, false>\n >({\n model: \"member\",\n where: [\n {\n field: \"organizationId\",\n value: organizationId,\n },\n ],\n });\n const owners = members.filter((member: Member) => {\n const roles = member.role.split(\",\");\n return roles.includes(creatorRole);\n });\n if (owners.length <= 1 && !isSettingCreatorRole) {\n throw new APIError(\"BAD_REQUEST\", {\n message:\n ORGANIZATION_ERROR_CODES.YOU_CANNOT_LEAVE_THE_ORGANIZATION_WITHOUT_AN_OWNER,\n });\n }\n }\n\n // currently use clientSideHasPermission instead of hasPermission\n // this does not support dynamic access control yet\n // TODO: improve me\n const canUpdateMember = clientSideHasPermission({\n role: member.role,\n options: organizationPlugin.options,\n permissions: {\n member: [\"update\"],\n },\n allowCreatorAllPermissions: true,\n });\n\n if (!canUpdateMember) {\n throw new APIError(\"FORBIDDEN\", {\n message:\n ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_MEMBER,\n });\n }\n\n // Get organization\n const organization = await adapter.findOrganizationById(organizationId);\n\n if (!organization) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND,\n });\n }\n\n const userBeingUpdated = await ctx.context.internalAdapter.findUserById(\n toBeUpdatedMember.userId\n );\n\n if (!userBeingUpdated) {\n throw new APIError(\"BAD_REQUEST\", {\n message: BASE_ERROR_CODES.USER_NOT_FOUND,\n });\n }\n\n // Extract updates from data object\n const updates = ctx.body.data || {};\n let finalUpdates: Record<string, any> = updates;\n\n // Run beforeUpdateMember hook (if provided via options parameter)\n if (options?.organizationMemberHooks?.beforeUpdateMember) {\n const response =\n await options.organizationMemberHooks.beforeUpdateMember({\n member: toBeUpdatedMember,\n updates,\n user: userBeingUpdated,\n organization: organization as InferOrganization<\n OrganizationOptions,\n false\n >,\n });\n if (response && typeof response === \"object\" && \"data\" in response) {\n finalUpdates = response.data;\n }\n }\n\n // Update the member - NOTE: this is different from updateMemberRole\n // which only updates the role field. We update any additional fields.\n const updatedMember = await ctx.context.adapter.update<\n InferMember<OrganizationOptions, false>\n >({\n model: \"member\",\n where: [{ field: \"id\", value: ctx.body.memberId }],\n update: finalUpdates,\n });\n\n if (!updatedMember) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.MEMBER_NOT_FOUND,\n });\n }\n\n // Run afterUpdateMember hook (if provided via options parameter)\n if (options?.organizationMemberHooks?.afterUpdateMember) {\n await options.organizationMemberHooks.afterUpdateMember({\n member: updatedMember,\n user: userBeingUpdated,\n organization: organization as InferOrganization<\n OrganizationOptions,\n false\n >,\n });\n }\n\n return ctx.json(updatedMember);\n }\n );\n};\n\nconst createUpdateInvitationEndpoint = (\n options?: OrganizationMemberOptions\n) => {\n const baseInvitationSchema = z.object({\n invitationId: z.string().meta({\n description: 'The invitation id to update. Eg: \"invitation-id\"',\n }),\n organizationId: z\n .string()\n .meta({\n description:\n 'An optional organization ID which the invitation belongs to. If not provided, you must provide session headers to get the active organization. Eg: \"organization-id\"',\n })\n .optional(),\n });\n\n const additionalFieldsSchema = toZodSchema({\n fields: options?.schema?.invitation?.additionalFields || {},\n isClientSide: true,\n });\n\n return createAuthEndpoint(\n \"/organization/update-invitation\",\n {\n method: \"POST\",\n body: z.object({\n invitationId: z.string().meta({\n description: 'The invitation id to update. Eg: \"invitation-id\"',\n }),\n organizationId: z\n .string()\n .meta({\n description:\n 'An optional organization ID which the invitation belongs to. If not provided, you must provide session headers to get the active organization. Eg: \"organization-id\"',\n })\n .optional(),\n data: z\n .object({\n role: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .meta({\n description:\n 'The new role to be applied. This can be a string or array of strings representing the roles. Eg: [\"admin\", \"sale\"]',\n }),\n ...additionalFieldsSchema.shape,\n })\n .partial(),\n }),\n use: [orgMiddleware, orgSessionMiddleware],\n requireHeaders: true,\n metadata: {\n $Infer: {\n body: {} as {\n invitationId: string;\n organizationId?: string;\n data: {\n role?: string | string[];\n } & Partial<\n InferAdditionalFieldsFromPluginOptions<\n \"invitation\",\n OrganizationOptions\n >\n >;\n },\n },\n openapi: {\n operationId: \"updateOrganizationInvitation\",\n description: \"Update a pending invitation in an organization\",\n responses: {\n \"200\": {\n description: \"Success\",\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n id: {\n type: \"string\",\n },\n organizationId: {\n type: \"string\",\n },\n email: {\n type: \"string\",\n },\n role: {\n type: \"string\",\n },\n status: {\n type: \"string\",\n },\n createdAt: {\n type: \"string\",\n format: \"date-time\",\n description: \"Timestamp when the team was created\",\n },\n updatedAt: {\n type: \"string\",\n format: \"date-time\",\n description: \"Timestamp when the team was last updated\",\n },\n },\n required: [\n \"id\",\n \"organizationId\",\n \"email\",\n \"role\",\n \"status\",\n ],\n },\n },\n },\n },\n },\n },\n },\n },\n async (ctx) => {\n const session = ctx.context.session;\n\n const organizationPlugin = getOrganizationPlugin(ctx.context);\n if (!organizationPlugin) {\n throw new Error(\n \"organization-member plugin requires the organization plugin\"\n );\n }\n\n const organizationId =\n ctx.body.organizationId || session.session.activeOrganizationId;\n\n if (!organizationId) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION,\n });\n }\n\n const adapter = getOrgAdapter(ctx.context, organizationPlugin.options);\n\n // Get the current user's member record\n const member = await adapter.findMemberByOrgId({\n userId: session.user.id,\n organizationId: organizationId,\n });\n\n if (!member) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.MEMBER_NOT_FOUND,\n });\n }\n\n // Check permissions - user must have permission to manage invitations\n const canManageInvitations = clientSideHasPermission({\n role: member.role,\n options: organizationPlugin.options,\n permissions: {\n invitation: [\"create\"],\n },\n allowCreatorAllPermissions: true,\n });\n\n if (!canManageInvitations) {\n throw new APIError(\"FORBIDDEN\", {\n message:\n ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_INVITATION,\n });\n }\n\n // Get the invitation\n const invitation = await adapter.findInvitationById(\n ctx.body.invitationId\n );\n\n if (!invitation) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.INVITATION_NOT_FOUND,\n });\n }\n\n // Verify invitation belongs to the organization\n if (invitation.organizationId !== organizationId) {\n throw new APIError(\"FORBIDDEN\", {\n message:\n ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_INVITATION,\n });\n }\n\n // Only allow updating pending invitations\n if (invitation.status !== \"pending\") {\n throw new APIError(\"BAD_REQUEST\", {\n message:\n ORGANIZATION_ERROR_CODES.ONLY_PENDING_INVITATIONS_CAN_BE_UPDATED,\n });\n }\n\n // Get organization\n const organization = await adapter.findOrganizationById(organizationId);\n\n if (!organization) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND,\n });\n }\n\n // Extract updates from data object\n const updates = ctx.body.data || {};\n let finalUpdates: Record<string, any> = updates;\n\n // Run beforeUpdateInvitation hook (if provided via options parameter)\n if (options?.organizationMemberHooks?.beforeUpdateInvitation) {\n const response =\n await options.organizationMemberHooks.beforeUpdateInvitation({\n invitation,\n updates,\n inviter: session.user,\n organization,\n });\n if (response && typeof response === \"object\" && \"data\" in response) {\n finalUpdates = response.data;\n }\n }\n\n // Update the invitation\n const updatedInvitation = await ctx.context.adapter.update<\n InferInvitation<OrganizationOptions, false>\n >({\n model: \"invitation\",\n where: [{ field: \"id\", value: ctx.body.invitationId }],\n update: finalUpdates,\n });\n\n if (!updatedInvitation) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.INVITATION_NOT_FOUND,\n });\n }\n\n // Run afterUpdateInvitation hook (if provided via options parameter)\n if (options?.organizationMemberHooks?.afterUpdateInvitation) {\n await options.organizationMemberHooks.afterUpdateInvitation({\n invitation: updatedInvitation,\n inviter: session.user,\n organization,\n });\n }\n\n return ctx.json(updatedInvitation);\n }\n );\n};\n\nexport const organizationMember = (\n userConfig?: OrganizationMemberOptions\n): BetterAuthPlugin => {\n const config = {\n ...userConfig,\n } satisfies OrganizationMemberOptions;\n\n return {\n id: \"organization-member\",\n init(ctx) {\n const organizationPlugin = getOrganizationPlugin(ctx);\n if (!organizationPlugin) {\n throw new Error(\n \"organization-member plugin requires the organization plugin\"\n );\n }\n\n // Get or create organizationHooks\n if (!organizationPlugin.options.organizationHooks) {\n organizationPlugin.options.organizationHooks = {};\n }\n\n const existingAfterAcceptInvitation =\n organizationPlugin.options.organizationHooks?.afterAcceptInvitation;\n organizationPlugin.options.organizationHooks.afterAcceptInvitation =\n async (data) => {\n await existingAfterAcceptInvitation?.(data);\n\n try {\n const { invitation, member } = data;\n const updateData: Record<string, unknown> = {};\n\n // TODO improve me\n for (const field of Object.keys(\n organizationPlugin.options?.schema?.invitation\n ?.additionalFields ?? {}\n )) {\n const fieldName =\n organizationPlugin.options?.schema?.invitation\n ?.additionalFields?.[field]?.fieldName || field;\n updateData[fieldName] = invitation[fieldName];\n }\n\n // Only update if there are fields to transfer\n if (Object.keys(updateData).length > 0) {\n await ctx.adapter.update({\n model: \"member\",\n where: [{ field: \"id\", value: member.id }],\n update: updateData,\n });\n\n ctx.logger?.info(\"Member fields updated from invitation:\", {\n memberId: member.id,\n fields: Object.keys(updateData),\n });\n }\n } catch (error) {\n ctx.logger?.error(\n \"Failed to update member fields from invitation:\",\n error\n );\n // Don't throw - let the invitation acceptance succeed\n }\n };\n },\n endpoints: {\n updateMember: createUpdateMemberEndpoint(userConfig),\n updateInvitation: createUpdateInvitationEndpoint(userConfig),\n },\n options: userConfig as NoInfer<OrganizationMemberOptions>,\n $ERROR_CODES: ORGANIZATION_ERROR_CODES,\n } satisfies BetterAuthPlugin;\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server-DzmSHpFU.d.mts","names":[],"sources":["../src/server.ts"],"sourcesContent":[],"mappings":";;;;;;;UA6DiB,yBAAA;WACN;EADM;;;EAYH,uBAAA,CAAA,EAAA;IAG6C;;;;;IAMA,kBAAA,CAAA,EAAA,CAAA,IAAA,EAAA;MAAjD,MAAA,EATI,WASJ,CATgB,mBAShB,EAAA,KAAA,CAAA;MAHA,OAAA,EAAA;QAUgB,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;MAAZ,CAAA,GAbJ,sCAaI,CAAA,QAAA,EAb6C,mBAa7C,CAAA;MACF,IAAA,EAbA,IAaA;MAC0B,YAAA,EAblB,iBAakB,CAbA,mBAaA,EAAA,KAAA,CAAA;IAAlB,CAAA,EAAA,GAZV,OAYU,CAAA,IAAA,GAAA;MACV,IAAA,EAAA;QAQwB,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;MAAhB,CAAA,GAlBR,sCAkBQ,CAAA,QAAA,EAlByC,mBAkBzC,CAAA;IAKV,CAAA,CAAA;IAFE;;;IAKU,iBAAA,CAAA,EAAA,CAAA,IAAA,EAAA;MAMZ,MAAA,EAzBM,WAyBN,CAzBkB,mBAyBlB,EAAA,KAAA,CAAA;MAFE,IAAA,EAtBE,IAsBF;MAHA,YAAA,EAlBU,iBAkBV,CAlB4B,mBAkB5B,EAAA,KAAA,CAAA;IAawB,CAAA,EAAA,GA9BxB,OA8BwB,CAAA,IAAA,CAAA;IAAhB;;;;;IAGD,sBAAA,CAAA,EAAA,CAAA,IAAA,EAAA;MAIJ,UAcX,EA3CgB,eA2ChB,CA3CgC,mBA2ChC,EAAA,KAAA,CAAA;MAAA,OAdwB,EAAA;QAAA,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;MAEV,CAAA,GA5BN,sCA4BM,CAAA,YAAA,EA1BR,mBA0BQ,CAAA;MACE,OAAA,EAzBH,IAyBG;MACG,YAAA,EAzBD,iBAyBC,CAzBiB,mBAyBjB,EAAA,KAAA,CAAA;IAEK,CAAA,EAAA,GA1BhB,OA0BgB,CAAA,IAAA,GAAA;MACX,IAAA,EAAA;QAIH,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;MALyC,CAAA,GAvB3C,sCAuB2C,CAAA,YAAA,EArB7C,mBAqB6C,CAAA;IAN3B,CAAA,CAAA;IAAA;AAoB1B;;;kBA3BkB,gBAAgB;eACnB;oBACK,kBAAkB;UAC5B;;;cAIG,8BAAa,YAAA,CAAA,uBAcxB,YAAA,CAdwB,iBAAA,MAAA;cAEV;gBACE,YAiBe,GAAA;IAMlB,CAAA,GAAA,EAAA,MAAA,CAAA,EAtBM,IAsBN,CAAA,CAAA,CAAA,CAAA;EAIH,CAAA;wBAxBc,2BAA2B;aACtC;MAsuBF,YAAA,CAyEZ,EAAA,MAAA,GAxEc,SAAA;;;UAnuBH;;;;;;;cASC,kDAAoB;2DAgBhC,YAAA,CAAA,iBAAA;;;;;;;;;;;;;;;;;;;;;;;;;aAVc;;;;UAIH;;;cA+sBC,kCACE,8BACZ"}
1
+ {"version":3,"file":"server-DzmSHpFU.d.mts","names":[],"sources":["../src/server.ts"],"sourcesContent":[],"mappings":";;;;;;;UA6DiB,yBAAA;WACN;EADM;;;EAYH,uBAAA,CAAA,EAAA;IAG6C;;;;;IAMA,kBAAA,CAAA,EAAA,CAAA,IAAA,EAAA;MAAjD,MAAA,EATI,WASJ,CATgB,mBAShB,EAAA,KAAA,CAAA;MAHA,OAAA,EAAA;QAUgB,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;MAAZ,CAAA,GAbJ,sCAaI,CAAA,QAAA,EAb6C,mBAa7C,CAAA;MACF,IAAA,EAbA,IAaA;MAC0B,YAAA,EAblB,iBAakB,CAbA,mBAaA,EAAA,KAAA,CAAA;IAAlB,CAAA,EAAA,GAZV,OAYU,CAAA,IAAA,GAAA;MACV,IAAA,EAAA;QAQwB,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;MAAhB,CAAA,GAlBR,sCAkBQ,CAAA,QAAA,EAlByC,mBAkBzC,CAAA;IAKV,CAAA,CAAA;IAFE;;;IAKU,iBAAA,CAAA,EAAA,CAAA,IAAA,EAAA;MAMZ,MAAA,EAzBM,WAyBN,CAzBkB,mBAyBlB,EAAA,KAAA,CAAA;MAFE,IAAA,EAtBE,IAsBF;MAHA,YAAA,EAlBU,iBAkBV,CAlB4B,mBAkB5B,EAAA,KAAA,CAAA;IAawB,CAAA,EAAA,GA9BxB,OA8BwB,CAAA,IAAA,CAAA;IAAhB;;;;;IAGD,sBAAA,CAAA,EAAA,CAAA,IAAA,EAAA;MAIJ,UAcX,EA3CgB,eA2ChB,CA3CgC,mBA2ChC,EAAA,KAAA,CAAA;MAAA,OAdwB,EAAA;QAAA,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;MAEV,CAAA,GA5BN,sCA4BM,CAAA,YAAA,EA1BR,mBA0BQ,CAAA;MACE,OAAA,EAzBH,IAyBG;MACG,YAAA,EAzBD,iBAyBC,CAzBiB,mBAyBjB,EAAA,KAAA,CAAA;IAEK,CAAA,EAAA,GA1BhB,OA0BgB,CAAA,IAAA,GAAA;MACX,IAAA,EAAA;QAIH,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;MALyC,CAAA,GAvB3C,sCAuB2C,CAAA,YAAA,EArB7C,mBAqB6C,CAAA;IAN3B,CAAA,CAAA;IAAA;AAoB1B;;;kBA3BkB,gBAAgB;eACnB;oBACK,kBAAkB;UAC5B;;;cAIG,8BAAa,YAAA,CAAA,uBAcxB,YAAA,CAdwB,iBAAA,MAAA;cAEV;gBACE,YAiBe,GAAA;IAMlB,CAAA,GAAA,EAAA,MAAA,CAAA,EAtBM,IAsBN,CAAA,CAAA,CAAA,CAAA;EAIH,CAAA;wBAxBc,2BAA2B;aACtC;MAumBF,YAAA,CAwEZ,EAAA,MAAA,GAvEc,SAAA;;;UApmBH;;;;;;;cASC,kDAAoB;2DAgBhC,YAAA,CAAA,iBAAA;;;;;;;;;;;;;;;;;;;;;;;;;aAVc;;;;UAIH;;;cAglBC,kCACE,8BACZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -80,8 +80,23 @@ const createUpdateMemberEndpoint = (options) => {
80
80
  return createAuthEndpoint("/organization/update-member", {
81
81
  method: "POST",
82
82
  body: z.object({
83
- ...baseMemberSchema.shape,
84
- ...additionalFieldsWithoutStatus.shape,
83
+ memberId: z.string().meta({
84
+ description: 'The member id to apply the update to. Eg: "member-id"',
85
+ }),
86
+ organizationId: z
87
+ .string()
88
+ .meta({
89
+ description: 'An optional organization ID which the member is a part of. If not provided, you must provide session headers to get the active organization. Eg: "organization-id"',
90
+ })
91
+ .optional(),
92
+ data: z
93
+ .object({
94
+ role: z.union([z.string(), z.array(z.string())]).optional().meta({
95
+ description: 'The new role to be applied. This can be a string or array of strings representing the roles. Eg: ["admin", "sale"]',
96
+ }),
97
+ ...additionalFieldsWithoutStatus.shape,
98
+ })
99
+ .partial(),
85
100
  }),
86
101
  use: [orgMiddleware, orgSessionMiddleware],
87
102
  requireHeaders: true,
@@ -136,9 +151,6 @@ const createUpdateMemberEndpoint = (options) => {
136
151
  if (!organizationPlugin) {
137
152
  throw new Error("organization-member plugin requires the organization plugin");
138
153
  }
139
- if (!ctx.body.role) {
140
- throw new APIError("BAD_REQUEST");
141
- }
142
154
  const organizationId = ctx.body.organizationId || session.session.activeOrganizationId;
143
155
  if (!organizationId) {
144
156
  throw new APIError("BAD_REQUEST", {
@@ -146,11 +158,11 @@ const createUpdateMemberEndpoint = (options) => {
146
158
  });
147
159
  }
148
160
  const adapter = getOrgAdapter(ctx.context, organizationPlugin.options);
149
- const roleToSet = Array.isArray(ctx.body.role)
150
- ? ctx.body.role
151
- : ctx.body.role
152
- ? [ctx.body.role]
153
- : [];
161
+ const roleToSet = ctx.body.data?.role
162
+ ? Array.isArray(ctx.body.data.role)
163
+ ? ctx.body.data.role
164
+ : [ctx.body.data.role]
165
+ : [];
154
166
  const member = await adapter.findMemberByOrgId({
155
167
  userId: session.user.id,
156
168
  organizationId: organizationId,
@@ -236,8 +248,8 @@ const createUpdateMemberEndpoint = (options) => {
236
248
  message: BASE_ERROR_CODES.USER_NOT_FOUND,
237
249
  });
238
250
  }
239
- // Extract updates (exclude memberId and organizationId from body)
240
- const { memberId: _, organizationId: __, ...updates } = ctx.body;
251
+ // Extract updates from data object
252
+ const updates = ctx.body.data || {};
241
253
  let finalUpdates = updates;
242
254
  // Run beforeUpdateMember hook (if provided via options parameter)
243
255
  if (options?.organizationMemberHooks?.beforeUpdateMember) {
@@ -274,136 +286,6 @@ const createUpdateMemberEndpoint = (options) => {
274
286
  return ctx.json(updatedMember);
275
287
  });
276
288
  };
277
- const createGetMemberEndpoint = () => {
278
- return createAuthEndpoint("/organization/get-member", {
279
- method: "GET",
280
- query: z.object({
281
- userId: z.string().meta({
282
- description: 'The user id of the member to retrieve. Eg: "user-id"',
283
- }).optional(),
284
- organizationId: z
285
- .string()
286
- .meta({
287
- description: 'The organization ID which the member belongs to. If not provided, will default to the user\'s active organization. Eg: "organization-id"',
288
- })
289
- .optional(),
290
- organizationSlug: z
291
- .string()
292
- .meta({
293
- description: 'The organization slug to get member for. If not provided, will default to the user\'s active organization. Eg: "organization-slug"',
294
- })
295
- .optional(),
296
- }),
297
- use: [orgMiddleware, orgSessionMiddleware],
298
- requireHeaders: true,
299
- metadata: {
300
- $Infer: {
301
- query: {},
302
- },
303
- openapi: {
304
- operationId: "getOrganizationMember",
305
- description: "Get a member from an organization by user ID",
306
- responses: {
307
- "200": {
308
- description: "Success",
309
- content: {
310
- "application/json": {
311
- schema: {
312
- type: "object",
313
- properties: {
314
- id: {
315
- type: "string",
316
- },
317
- userId: {
318
- type: "string",
319
- },
320
- organizationId: {
321
- type: "string",
322
- },
323
- role: {
324
- type: "string",
325
- },
326
- firstName: {
327
- type: "string",
328
- },
329
- lastName: {
330
- type: "string",
331
- },
332
- avatar: {
333
- type: "string",
334
- },
335
- status: {
336
- type: "string",
337
- },
338
- createdAt: {
339
- type: "string",
340
- format: "date-time",
341
- },
342
- },
343
- required: ["id", "userId", "organizationId", "role"],
344
- },
345
- },
346
- },
347
- },
348
- },
349
- },
350
- },
351
- }, async (ctx) => {
352
- const session = ctx.context.session;
353
- const organizationPlugin = getOrganizationPlugin(ctx.context);
354
- if (!organizationPlugin) {
355
- throw new Error("organization-member plugin requires the organization plugin");
356
- }
357
- const adapter = getOrgAdapter(ctx.context, organizationPlugin.options);
358
- // Resolve organizationId from slug if provided
359
- let organizationId = ctx.query?.organizationId || session.session.activeOrganizationId;
360
- const userId = ctx.query.userId || session.user.id;
361
- if (!userId) {
362
- throw new APIError("BAD_REQUEST", {
363
- message: BASE_ERROR_CODES.USER_NOT_FOUND,
364
- });
365
- }
366
- if (ctx.query?.organizationSlug) {
367
- const organization = await adapter.findOrganizationBySlug(ctx.query.organizationSlug);
368
- if (!organization) {
369
- throw new APIError("BAD_REQUEST", {
370
- message: ORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND,
371
- });
372
- }
373
- organizationId = organization.id;
374
- }
375
- if (!organizationId) {
376
- throw new APIError("BAD_REQUEST", {
377
- message: ORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION,
378
- });
379
- }
380
- // Verify the current user is a member of the organization
381
- const currentUserMember = await adapter.findMemberByOrgId({
382
- userId: session.user.id,
383
- organizationId: organizationId,
384
- });
385
- if (!currentUserMember) {
386
- throw new APIError("FORBIDDEN", {
387
- message: ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION,
388
- });
389
- }
390
- // Return current user member if the query is empty
391
- if (!ctx.query.userId && (ctx.query.organizationSlug || ctx.query.organizationId)) {
392
- return ctx.json(currentUserMember);
393
- }
394
- // Get the requested member by userId and organizationId
395
- const requestedMember = await adapter.findMemberByOrgId({
396
- userId: userId,
397
- organizationId: organizationId,
398
- });
399
- if (!requestedMember) {
400
- throw new APIError("BAD_REQUEST", {
401
- message: ORGANIZATION_ERROR_CODES.MEMBER_NOT_FOUND,
402
- });
403
- }
404
- return ctx.json(requestedMember);
405
- });
406
- };
407
289
  const createUpdateInvitationEndpoint = (options) => {
408
290
  const baseInvitationSchema = z.object({
409
291
  invitationId: z.string().meta({
@@ -423,14 +305,26 @@ const createUpdateInvitationEndpoint = (options) => {
423
305
  return createAuthEndpoint("/organization/update-invitation", {
424
306
  method: "POST",
425
307
  body: z.object({
426
- ...baseInvitationSchema.shape,
427
- ...additionalFieldsSchema.shape,
428
- role: z
429
- .union([z.string(), z.array(z.string())])
430
- .optional()
431
- .meta({
432
- description: 'The new role to be applied. This can be a string or array of strings representing the roles. Eg: ["admin", "sale"]',
308
+ invitationId: z.string().meta({
309
+ description: 'The invitation id to update. Eg: "invitation-id"',
433
310
  }),
311
+ organizationId: z
312
+ .string()
313
+ .meta({
314
+ description: 'An optional organization ID which the invitation belongs to. If not provided, you must provide session headers to get the active organization. Eg: "organization-id"',
315
+ })
316
+ .optional(),
317
+ data: z
318
+ .object({
319
+ role: z
320
+ .union([z.string(), z.array(z.string())])
321
+ .optional()
322
+ .meta({
323
+ description: 'The new role to be applied. This can be a string or array of strings representing the roles. Eg: ["admin", "sale"]',
324
+ }),
325
+ ...additionalFieldsSchema.shape,
326
+ })
327
+ .partial(),
434
328
  }),
435
329
  use: [orgMiddleware, orgSessionMiddleware],
436
330
  requireHeaders: true,
@@ -552,8 +446,8 @@ const createUpdateInvitationEndpoint = (options) => {
552
446
  message: ORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND,
553
447
  });
554
448
  }
555
- // Extract updates (exclude invitationId and organizationId from body)
556
- const { invitationId: _, organizationId: __, ...updates } = ctx.body;
449
+ // Extract updates from data object
450
+ const updates = ctx.body.data || {};
557
451
  let finalUpdates = updates;
558
452
  // Run beforeUpdateInvitation hook (if provided via options parameter)
559
453
  if (options?.organizationMemberHooks?.beforeUpdateInvitation) {
@@ -638,7 +532,6 @@ export const organizationMember = (userConfig) => {
638
532
  };
639
533
  },
640
534
  endpoints: {
641
- getMember: createGetMemberEndpoint(),
642
535
  updateMember: createUpdateMemberEndpoint(userConfig),
643
536
  updateInvitation: createUpdateInvitationEndpoint(userConfig),
644
537
  },
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/server.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import { n as orgSessionMiddleware, r as organizationMember, t as orgMiddleware } from "./server-Big_p9zG.mjs";
1
+ import { n as orgSessionMiddleware, r as organizationMember, t as orgMiddleware } from "./server-CO0gB_2G.mjs";
2
2
 
3
3
  export { orgMiddleware, orgSessionMiddleware, organizationMember };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "better-auth-organization-member",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Better Auth plugin to list organization members with full user data",
5
5
  "author": "Alex Do <alex.donh@gmail.com>",
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- {"version":3,"file":"client-D1TOQax8.d.mts","names":[],"sources":["../src/client.ts"],"sourcesContent":[],"mappings":";;;;;;;;;UAaiB,+BAAA;WACN;;UAGM,wBAAA;2BACU;IALV,QAAA,EAAA,MAAA;IAIA,cAAA,CAAA,EAAA,MAAwB;IACd,YAAA,CAAA,EAIN,iBAJM;EAIN,CAAA,GACb,CADa,EAAA,GAEd,OAFc,CAAA;IACb,IAAA,EAAA,GAAA,GAAA,IAAA;IAGG,KAAA,EAAA,KAAA,GAAA,IAAA;EAFJ,CAAA,CAAA;EAIwB,gBAAA,EAAA,CAAA,UAAA,MAAA,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA;IAIV,YAAA,EAAA,MAAA;IACb,cAAA,CAAA,EAAA,MAAA;IAGG,YAAA,CAAA,EAJU,iBAIV;EAFJ,CAAA,GADC,CACD,EAAA,GAAA,OAAA,CAAA;IAAO,IAAA,EAAA,GAAA,GAAA,IAAA;IAMD,KAAA,EAJF,KAIE,GAAA,IAAA;EACA,CAAA,CAAA;;AAED,cAHC,wBAGD,EAAA,CAAA,WAFC,+BAED,GAFmC,+BAEnC,CAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,GAAA;EAAE,EAAA,EAAA,qBAAA;EAIgB,kBAAA,EAAA,UAAA,CAAA,OAJhB,kBAIgB,CAAA;EAGL,UAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,GAAA;IAES,MAAA,EAAA;MAAZ,MAAA,EAAA,WAAA,CAAY,EAAZ,EAAA,KAAA,CAAA;MACoB,UAAA,EAAhB,eAAgB,CAAA,EAAA,EAAA,KAAA,CAAA;IAAhB,CAAA;IAQC,YAAA,EAAA;MACoC,YAAA,EAAA,CAAA,IAAA,EAAA;QAAjD,QAAA,EAAA,MAAA;QAAoD,cAAA,CAAA,EAAA,MAAA;QAcvC,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;QACwC,YAAA,CAAA,EAhBxC,iBAgBwC;MAArD,CAAA,GAfA,sCAeA,CAAA,QAAA,EAfiD,EAejD,CAAA,EAAA,GAfoD,OAepD,CAAA;QAAwD,IAAA,EAAA,OAAA;QAAA,KAAA,EAAA,IAAA;MAkBzD,CAAA,GAAA;QAEA,IAAA,EAAA,IAAA;QAED,KAAA,EAAA;UAED,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA;UAkCsB,MAAA,EAAA,MAAA;UAAC,UAAA,EAAA,MAAA;QAAA,CAAA;MAAA,CAAA,CAAA;MAAA,gBAAA,EAAA,CAAA,IAAA,EAAA;QAAA,YAAA,EAAA,MAAA;QAAA,cAAA,CAAA,EAAA,MAAA;QAAA,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;uBA3DP;UACb,qDAAqD,QAAG;;eA4Dg5E,IAAA;MAAA,CAAA,GAAA;QAA+E,IAAA,EAAA,IAAA;QAAA,KAAA,EAAsG;UAAA,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA;UAAyE,MAAA,EAAA,MAAA;UAAA,UAA0G,EAAA,MAAA;QAAA,CAAA;MAAA,CAAA,CAA6E;IAAA,CAAA;EAAoG,CAAA;CAAA;;;;;AAA8S,cA1ChxG,8BA0Cm2G,EAAA,CAAA,UAAA;EAjB12G,OAAA,EAvBO,iBAuBP;CAAA,EAAA,UArBM,+BAqBN,CAAA,QAAA,CAAA,GAAA,SAAA,CAAA,CAAA,MAAA,CAAA,EAnBK,CAmBL,GAAA,SAAA,EAAA,GAAA,SAAA,SAe2B,CAf3B,GAe4B,CAf5B,SAe4B,MAf5B,GAe4B,CAf5B,SAe4B,OAf5B,CAe4B,CAf5B,EAAA,SAAA,CAAA,GAe4B,CAf5B,GAAA,CAAA,CAe4B,CAf5B,SAAA;EAAA,OAAA,EAAA,GAAA;;;IAewC,OAAA,EAAA,EAAA;EAC7C,CAAA;;;;;;;;;;;;;;;;;;;;;;6BACq9E,0BAAA,YAAA;0CAAA,YAAA,CAA+E,gBAAA;;;;6BAAsG,KAAtG,oBAAA,CAAsG,MAAA;0CAAA,YAAA,CAAyE,gBAAA;;;;6BAA0G,KAA1G,oBAAA,CAA0G,UAAA;0CAAA,YAAA,CAA6E,gBAAA;;;;6BAAoG,KAApG,oBAAA,CAAoG,IAAA;0CAAA,YAAA,CAAuE,gBAAA;;;;6BAA0G,KAA1G,oBAAA,CAA0G,UAAA;;;;6BAA6H,KAA7H,oBAAA,CAA6H,gBAAA;0CAAA,YAAA,CAAmF,gBAAA;;8BAjB12G,MAAA,IAAA;;+DAewC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"server-Big_p9zG.mjs","names":["#hiddenStack","roleToSet: string[]","member","finalUpdates: Record<string, any>","updateData: Record<string, unknown>"],"sources":["../../../node_modules/better-call/dist/error.mjs","../../../node_modules/better-call/dist/utils.mjs","../../../node_modules/better-call/dist/to-response.mjs","../../../node_modules/@better-auth/utils/dist/index.mjs","../../../node_modules/better-call/dist/crypto.mjs","../../../node_modules/better-call/dist/cookies.mjs","../../../node_modules/better-call/dist/validator.mjs","../../../node_modules/better-call/dist/context.mjs","../../../node_modules/better-call/dist/endpoint.mjs","../../../node_modules/better-call/dist/middleware.mjs","../src/server.ts"],"sourcesContent":["//#region src/error.ts\nfunction isErrorStackTraceLimitWritable() {\n\tconst desc = Object.getOwnPropertyDescriptor(Error, \"stackTraceLimit\");\n\tif (desc === void 0) return Object.isExtensible(Error);\n\treturn Object.prototype.hasOwnProperty.call(desc, \"writable\") ? desc.writable : desc.set !== void 0;\n}\n/**\n* Hide internal stack frames from the error stack trace.\n*/\nfunction hideInternalStackFrames(stack) {\n\tconst lines = stack.split(\"\\n at \");\n\tif (lines.length <= 1) return stack;\n\tlines.splice(1, 1);\n\treturn lines.join(\"\\n at \");\n}\n/**\n* Creates a custom error class that hides stack frames.\n*/\nfunction makeErrorForHideStackFrame(Base, clazz) {\n\tclass HideStackFramesError extends Base {\n\t\t#hiddenStack;\n\t\tconstructor(...args) {\n\t\t\tif (isErrorStackTraceLimitWritable()) {\n\t\t\t\tconst limit = Error.stackTraceLimit;\n\t\t\t\tError.stackTraceLimit = 0;\n\t\t\t\tsuper(...args);\n\t\t\t\tError.stackTraceLimit = limit;\n\t\t\t} else super(...args);\n\t\t\tconst stack = (/* @__PURE__ */ new Error()).stack;\n\t\t\tif (stack) this.#hiddenStack = hideInternalStackFrames(stack.replace(/^Error/, this.name));\n\t\t}\n\t\tget errorStack() {\n\t\t\treturn this.#hiddenStack;\n\t\t}\n\t}\n\tObject.defineProperty(HideStackFramesError.prototype, \"constructor\", {\n\t\tget() {\n\t\t\treturn clazz;\n\t\t},\n\t\tenumerable: false,\n\t\tconfigurable: true\n\t});\n\treturn HideStackFramesError;\n}\nconst statusCodes = {\n\tOK: 200,\n\tCREATED: 201,\n\tACCEPTED: 202,\n\tNO_CONTENT: 204,\n\tMULTIPLE_CHOICES: 300,\n\tMOVED_PERMANENTLY: 301,\n\tFOUND: 302,\n\tSEE_OTHER: 303,\n\tNOT_MODIFIED: 304,\n\tTEMPORARY_REDIRECT: 307,\n\tBAD_REQUEST: 400,\n\tUNAUTHORIZED: 401,\n\tPAYMENT_REQUIRED: 402,\n\tFORBIDDEN: 403,\n\tNOT_FOUND: 404,\n\tMETHOD_NOT_ALLOWED: 405,\n\tNOT_ACCEPTABLE: 406,\n\tPROXY_AUTHENTICATION_REQUIRED: 407,\n\tREQUEST_TIMEOUT: 408,\n\tCONFLICT: 409,\n\tGONE: 410,\n\tLENGTH_REQUIRED: 411,\n\tPRECONDITION_FAILED: 412,\n\tPAYLOAD_TOO_LARGE: 413,\n\tURI_TOO_LONG: 414,\n\tUNSUPPORTED_MEDIA_TYPE: 415,\n\tRANGE_NOT_SATISFIABLE: 416,\n\tEXPECTATION_FAILED: 417,\n\t\"I'M_A_TEAPOT\": 418,\n\tMISDIRECTED_REQUEST: 421,\n\tUNPROCESSABLE_ENTITY: 422,\n\tLOCKED: 423,\n\tFAILED_DEPENDENCY: 424,\n\tTOO_EARLY: 425,\n\tUPGRADE_REQUIRED: 426,\n\tPRECONDITION_REQUIRED: 428,\n\tTOO_MANY_REQUESTS: 429,\n\tREQUEST_HEADER_FIELDS_TOO_LARGE: 431,\n\tUNAVAILABLE_FOR_LEGAL_REASONS: 451,\n\tINTERNAL_SERVER_ERROR: 500,\n\tNOT_IMPLEMENTED: 501,\n\tBAD_GATEWAY: 502,\n\tSERVICE_UNAVAILABLE: 503,\n\tGATEWAY_TIMEOUT: 504,\n\tHTTP_VERSION_NOT_SUPPORTED: 505,\n\tVARIANT_ALSO_NEGOTIATES: 506,\n\tINSUFFICIENT_STORAGE: 507,\n\tLOOP_DETECTED: 508,\n\tNOT_EXTENDED: 510,\n\tNETWORK_AUTHENTICATION_REQUIRED: 511\n};\nvar InternalAPIError = class extends Error {\n\tconstructor(status = \"INTERNAL_SERVER_ERROR\", body = void 0, headers = {}, statusCode = typeof status === \"number\" ? status : statusCodes[status]) {\n\t\tsuper(body?.message, body?.cause ? { cause: body.cause } : void 0);\n\t\tthis.status = status;\n\t\tthis.body = body;\n\t\tthis.headers = headers;\n\t\tthis.statusCode = statusCode;\n\t\tthis.name = \"APIError\";\n\t\tthis.status = status;\n\t\tthis.headers = headers;\n\t\tthis.statusCode = statusCode;\n\t\tthis.body = body ? {\n\t\t\tcode: body?.message?.toUpperCase().replace(/ /g, \"_\").replace(/[^A-Z0-9_]/g, \"\"),\n\t\t\t...body\n\t\t} : void 0;\n\t}\n};\nvar ValidationError = class extends InternalAPIError {\n\tconstructor(message, issues) {\n\t\tsuper(400, {\n\t\t\tmessage,\n\t\t\tcode: \"VALIDATION_ERROR\"\n\t\t});\n\t\tthis.message = message;\n\t\tthis.issues = issues;\n\t\tthis.issues = issues;\n\t}\n};\nvar BetterCallError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"BetterCallError\";\n\t}\n};\nconst APIError = makeErrorForHideStackFrame(InternalAPIError, Error);\n\n//#endregion\nexport { APIError, BetterCallError, ValidationError, hideInternalStackFrames, makeErrorForHideStackFrame, statusCodes };\n//# sourceMappingURL=error.mjs.map","import { APIError } from \"./error.mjs\";\n\n//#region src/utils.ts\nconst jsonContentTypeRegex = /^application\\/([a-z0-9.+-]*\\+)?json/i;\nasync function getBody(request, allowedMediaTypes) {\n\tconst contentType = request.headers.get(\"content-type\") || \"\";\n\tconst normalizedContentType = contentType.toLowerCase();\n\tif (!request.body) return;\n\tif (allowedMediaTypes && allowedMediaTypes.length > 0) {\n\t\tif (!allowedMediaTypes.some((allowed) => {\n\t\t\tconst normalizedContentTypeBase = normalizedContentType.split(\";\")[0].trim();\n\t\t\tconst normalizedAllowed = allowed.toLowerCase().trim();\n\t\t\treturn normalizedContentTypeBase === normalizedAllowed || normalizedContentTypeBase.includes(normalizedAllowed);\n\t\t})) {\n\t\t\tif (!normalizedContentType) throw new APIError(415, {\n\t\t\t\tmessage: `Content-Type is required. Allowed types: ${allowedMediaTypes.join(\", \")}`,\n\t\t\t\tcode: \"UNSUPPORTED_MEDIA_TYPE\"\n\t\t\t});\n\t\t\tthrow new APIError(415, {\n\t\t\t\tmessage: `Content-Type \"${contentType}\" is not allowed. Allowed types: ${allowedMediaTypes.join(\", \")}`,\n\t\t\t\tcode: \"UNSUPPORTED_MEDIA_TYPE\"\n\t\t\t});\n\t\t}\n\t}\n\tif (jsonContentTypeRegex.test(normalizedContentType)) return await request.json();\n\tif (normalizedContentType.includes(\"application/x-www-form-urlencoded\")) {\n\t\tconst formData = await request.formData();\n\t\tconst result = {};\n\t\tformData.forEach((value, key) => {\n\t\t\tresult[key] = value.toString();\n\t\t});\n\t\treturn result;\n\t}\n\tif (normalizedContentType.includes(\"multipart/form-data\")) {\n\t\tconst formData = await request.formData();\n\t\tconst result = {};\n\t\tformData.forEach((value, key) => {\n\t\t\tresult[key] = value;\n\t\t});\n\t\treturn result;\n\t}\n\tif (normalizedContentType.includes(\"text/plain\")) return await request.text();\n\tif (normalizedContentType.includes(\"application/octet-stream\")) return await request.arrayBuffer();\n\tif (normalizedContentType.includes(\"application/pdf\") || normalizedContentType.includes(\"image/\") || normalizedContentType.includes(\"video/\")) return await request.blob();\n\tif (normalizedContentType.includes(\"application/stream\") || request.body instanceof ReadableStream) return request.body;\n\treturn await request.text();\n}\nfunction isAPIError(error) {\n\treturn error instanceof APIError || error?.name === \"APIError\";\n}\nfunction tryDecode(str) {\n\ttry {\n\t\treturn str.includes(\"%\") ? decodeURIComponent(str) : str;\n\t} catch {\n\t\treturn str;\n\t}\n}\nasync function tryCatch(promise) {\n\ttry {\n\t\treturn {\n\t\t\tdata: await promise,\n\t\t\terror: null\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\tdata: null,\n\t\t\terror\n\t\t};\n\t}\n}\n/**\n* Check if an object is a `Request`\n* - `instanceof`: works for native Request instances\n* - `toString`: handles where instanceof check fails but the object is still a valid Request\n*/\nfunction isRequest(obj) {\n\treturn obj instanceof Request || Object.prototype.toString.call(obj) === \"[object Request]\";\n}\n\n//#endregion\nexport { getBody, isAPIError, isRequest, tryCatch, tryDecode };\n//# sourceMappingURL=utils.mjs.map","import \"./error.mjs\";\nimport { isAPIError } from \"./utils.mjs\";\n\n//#region src/to-response.ts\nfunction isJSONSerializable(value) {\n\tif (value === void 0) return false;\n\tconst t = typeof value;\n\tif (t === \"string\" || t === \"number\" || t === \"boolean\" || t === null) return true;\n\tif (t !== \"object\") return false;\n\tif (Array.isArray(value)) return true;\n\tif (value.buffer) return false;\n\treturn value.constructor && value.constructor.name === \"Object\" || typeof value.toJSON === \"function\";\n}\nfunction safeStringify(obj, replacer, space) {\n\tlet id = 0;\n\tconst seen = /* @__PURE__ */ new WeakMap();\n\tconst safeReplacer = (key, value) => {\n\t\tif (typeof value === \"bigint\") return value.toString();\n\t\tif (typeof value === \"object\" && value !== null) {\n\t\t\tif (seen.has(value)) return `[Circular ref-${seen.get(value)}]`;\n\t\t\tseen.set(value, id++);\n\t\t}\n\t\tif (replacer) return replacer(key, value);\n\t\treturn value;\n\t};\n\treturn JSON.stringify(obj, safeReplacer, space);\n}\nfunction isJSONResponse(value) {\n\tif (!value || typeof value !== \"object\") return false;\n\treturn \"_flag\" in value && value._flag === \"json\";\n}\nfunction toResponse(data, init) {\n\tif (data instanceof Response) {\n\t\tif (init?.headers instanceof Headers) init.headers.forEach((value, key) => {\n\t\t\tdata.headers.set(key, value);\n\t\t});\n\t\treturn data;\n\t}\n\tif (isJSONResponse(data)) {\n\t\tconst body$1 = data.body;\n\t\tconst routerResponse = data.routerResponse;\n\t\tif (routerResponse instanceof Response) return routerResponse;\n\t\tconst headers$1 = new Headers();\n\t\tif (routerResponse?.headers) {\n\t\t\tconst headers$2 = new Headers(routerResponse.headers);\n\t\t\tfor (const [key, value] of headers$2.entries()) headers$2.set(key, value);\n\t\t}\n\t\tif (data.headers) for (const [key, value] of new Headers(data.headers).entries()) headers$1.set(key, value);\n\t\tif (init?.headers) for (const [key, value] of new Headers(init.headers).entries()) headers$1.set(key, value);\n\t\theaders$1.set(\"Content-Type\", \"application/json\");\n\t\treturn new Response(JSON.stringify(body$1), {\n\t\t\t...routerResponse,\n\t\t\theaders: headers$1,\n\t\t\tstatus: data.status ?? init?.status ?? routerResponse?.status,\n\t\t\tstatusText: init?.statusText ?? routerResponse?.statusText\n\t\t});\n\t}\n\tif (isAPIError(data)) return toResponse(data.body, {\n\t\tstatus: init?.status ?? data.statusCode,\n\t\tstatusText: data.status.toString(),\n\t\theaders: init?.headers || data.headers\n\t});\n\tlet body = data;\n\tlet headers = new Headers(init?.headers);\n\tif (!data) {\n\t\tif (data === null) body = JSON.stringify(null);\n\t\theaders.set(\"content-type\", \"application/json\");\n\t} else if (typeof data === \"string\") {\n\t\tbody = data;\n\t\theaders.set(\"Content-Type\", \"text/plain\");\n\t} else if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {\n\t\tbody = data;\n\t\theaders.set(\"Content-Type\", \"application/octet-stream\");\n\t} else if (data instanceof Blob) {\n\t\tbody = data;\n\t\theaders.set(\"Content-Type\", data.type || \"application/octet-stream\");\n\t} else if (data instanceof FormData) body = data;\n\telse if (data instanceof URLSearchParams) {\n\t\tbody = data;\n\t\theaders.set(\"Content-Type\", \"application/x-www-form-urlencoded\");\n\t} else if (data instanceof ReadableStream) {\n\t\tbody = data;\n\t\theaders.set(\"Content-Type\", \"application/octet-stream\");\n\t} else if (isJSONSerializable(data)) {\n\t\tbody = safeStringify(data);\n\t\theaders.set(\"Content-Type\", \"application/json\");\n\t}\n\treturn new Response(body, {\n\t\t...init,\n\t\theaders\n\t});\n}\n\n//#endregion\nexport { toResponse };\n//# sourceMappingURL=to-response.mjs.map","function getWebcryptoSubtle() {\n const cr = typeof globalThis !== \"undefined\" && globalThis.crypto;\n if (cr && typeof cr.subtle === \"object\" && cr.subtle != null)\n return cr.subtle;\n throw new Error(\"crypto.subtle must be defined\");\n}\n\nexport { getWebcryptoSubtle };\n","import { getWebcryptoSubtle } from \"@better-auth/utils\";\n\n//#region src/crypto.ts\nconst algorithm = {\n\tname: \"HMAC\",\n\thash: \"SHA-256\"\n};\nconst getCryptoKey = async (secret) => {\n\tconst secretBuf = typeof secret === \"string\" ? new TextEncoder().encode(secret) : secret;\n\treturn await getWebcryptoSubtle().importKey(\"raw\", secretBuf, algorithm, false, [\"sign\", \"verify\"]);\n};\nconst verifySignature = async (base64Signature, value, secret) => {\n\ttry {\n\t\tconst signatureBinStr = atob(base64Signature);\n\t\tconst signature = new Uint8Array(signatureBinStr.length);\n\t\tfor (let i = 0, len = signatureBinStr.length; i < len; i++) signature[i] = signatureBinStr.charCodeAt(i);\n\t\treturn await getWebcryptoSubtle().verify(algorithm, secret, signature, new TextEncoder().encode(value));\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nconst makeSignature = async (value, secret) => {\n\tconst key = await getCryptoKey(secret);\n\tconst signature = await getWebcryptoSubtle().sign(algorithm.name, key, new TextEncoder().encode(value));\n\treturn btoa(String.fromCharCode(...new Uint8Array(signature)));\n};\nconst signCookieValue = async (value, secret) => {\n\tconst signature = await makeSignature(value, secret);\n\tvalue = `${value}.${signature}`;\n\tvalue = encodeURIComponent(value);\n\treturn value;\n};\n\n//#endregion\nexport { getCryptoKey, signCookieValue, verifySignature };\n//# sourceMappingURL=crypto.mjs.map","import { tryDecode } from \"./utils.mjs\";\nimport { signCookieValue } from \"./crypto.mjs\";\n\n//#region src/cookies.ts\nconst getCookieKey = (key, prefix) => {\n\tlet finalKey = key;\n\tif (prefix) if (prefix === \"secure\") finalKey = \"__Secure-\" + key;\n\telse if (prefix === \"host\") finalKey = \"__Host-\" + key;\n\telse return;\n\treturn finalKey;\n};\n/**\n* Parse an HTTP Cookie header string and returning an object of all cookie\n* name-value pairs.\n*\n* Inspired by https://github.com/unjs/cookie-es/blob/main/src/cookie/parse.ts\n*\n* @param str the string representing a `Cookie` header value\n*/\nfunction parseCookies(str) {\n\tif (typeof str !== \"string\") throw new TypeError(\"argument str must be a string\");\n\tconst cookies = /* @__PURE__ */ new Map();\n\tlet index = 0;\n\twhile (index < str.length) {\n\t\tconst eqIdx = str.indexOf(\"=\", index);\n\t\tif (eqIdx === -1) break;\n\t\tlet endIdx = str.indexOf(\";\", index);\n\t\tif (endIdx === -1) endIdx = str.length;\n\t\telse if (endIdx < eqIdx) {\n\t\t\tindex = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n\t\t\tcontinue;\n\t\t}\n\t\tconst key = str.slice(index, eqIdx).trim();\n\t\tif (!cookies.has(key)) {\n\t\t\tlet val = str.slice(eqIdx + 1, endIdx).trim();\n\t\t\tif (val.codePointAt(0) === 34) val = val.slice(1, -1);\n\t\t\tcookies.set(key, tryDecode(val));\n\t\t}\n\t\tindex = endIdx + 1;\n\t}\n\treturn cookies;\n}\nconst _serialize = (key, value, opt = {}) => {\n\tlet cookie;\n\tif (opt?.prefix === \"secure\") cookie = `${`__Secure-${key}`}=${value}`;\n\telse if (opt?.prefix === \"host\") cookie = `${`__Host-${key}`}=${value}`;\n\telse cookie = `${key}=${value}`;\n\tif (key.startsWith(\"__Secure-\") && !opt.secure) opt.secure = true;\n\tif (key.startsWith(\"__Host-\")) {\n\t\tif (!opt.secure) opt.secure = true;\n\t\tif (opt.path !== \"/\") opt.path = \"/\";\n\t\tif (opt.domain) opt.domain = void 0;\n\t}\n\tif (opt && typeof opt.maxAge === \"number\" && opt.maxAge >= 0) {\n\t\tif (opt.maxAge > 3456e4) throw new Error(\"Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.\");\n\t\tcookie += `; Max-Age=${Math.floor(opt.maxAge)}`;\n\t}\n\tif (opt.domain && opt.prefix !== \"host\") cookie += `; Domain=${opt.domain}`;\n\tif (opt.path) cookie += `; Path=${opt.path}`;\n\tif (opt.expires) {\n\t\tif (opt.expires.getTime() - Date.now() > 3456e7) throw new Error(\"Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.\");\n\t\tcookie += `; Expires=${opt.expires.toUTCString()}`;\n\t}\n\tif (opt.httpOnly) cookie += \"; HttpOnly\";\n\tif (opt.secure) cookie += \"; Secure\";\n\tif (opt.sameSite) cookie += `; SameSite=${opt.sameSite.charAt(0).toUpperCase() + opt.sameSite.slice(1)}`;\n\tif (opt.partitioned) {\n\t\tif (!opt.secure) opt.secure = true;\n\t\tcookie += \"; Partitioned\";\n\t}\n\treturn cookie;\n};\nconst serializeCookie = (key, value, opt) => {\n\tvalue = encodeURIComponent(value);\n\treturn _serialize(key, value, opt);\n};\nconst serializeSignedCookie = async (key, value, secret, opt) => {\n\tvalue = await signCookieValue(value, secret);\n\treturn _serialize(key, value, opt);\n};\n\n//#endregion\nexport { getCookieKey, parseCookies, serializeCookie, serializeSignedCookie };\n//# sourceMappingURL=cookies.mjs.map","//#region src/validator.ts\n/**\n* Runs validation on body and query\n* @returns error and data object\n*/\nasync function runValidation(options, context = {}) {\n\tlet request = {\n\t\tbody: context.body,\n\t\tquery: context.query\n\t};\n\tif (options.body) {\n\t\tconst result = await options.body[\"~standard\"].validate(context.body);\n\t\tif (result.issues) return {\n\t\t\tdata: null,\n\t\t\terror: fromError(result.issues, \"body\")\n\t\t};\n\t\trequest.body = result.value;\n\t}\n\tif (options.query) {\n\t\tconst result = await options.query[\"~standard\"].validate(context.query);\n\t\tif (result.issues) return {\n\t\t\tdata: null,\n\t\t\terror: fromError(result.issues, \"query\")\n\t\t};\n\t\trequest.query = result.value;\n\t}\n\tif (options.requireHeaders && !context.headers) return {\n\t\tdata: null,\n\t\terror: {\n\t\t\tmessage: \"Headers is required\",\n\t\t\tissues: []\n\t\t}\n\t};\n\tif (options.requireRequest && !context.request) return {\n\t\tdata: null,\n\t\terror: {\n\t\t\tmessage: \"Request is required\",\n\t\t\tissues: []\n\t\t}\n\t};\n\treturn {\n\t\tdata: request,\n\t\terror: null\n\t};\n}\nfunction fromError(error, validating) {\n\treturn {\n\t\tmessage: error.map((e) => {\n\t\t\treturn `[${e.path?.length ? `${validating}.` + e.path.map((x) => typeof x === \"object\" ? x.key : x).join(\".\") : validating}] ${e.message}`;\n\t\t}).join(\"; \"),\n\t\tissues: error\n\t};\n}\n\n//#endregion\nexport { runValidation };\n//# sourceMappingURL=validator.mjs.map","import { APIError, ValidationError } from \"./error.mjs\";\nimport { isRequest } from \"./utils.mjs\";\nimport { runValidation } from \"./validator.mjs\";\nimport { getCryptoKey, verifySignature } from \"./crypto.mjs\";\nimport { getCookieKey, parseCookies, serializeCookie, serializeSignedCookie } from \"./cookies.mjs\";\n\n//#region src/context.ts\nconst createInternalContext = async (context, { options, path }) => {\n\tconst headers = new Headers();\n\tlet responseStatus = void 0;\n\tconst { data, error } = await runValidation(options, context);\n\tif (error) throw new ValidationError(error.message, error.issues);\n\tconst requestHeaders = \"headers\" in context ? context.headers instanceof Headers ? context.headers : new Headers(context.headers) : \"request\" in context && isRequest(context.request) ? context.request.headers : null;\n\tconst requestCookies = requestHeaders?.get(\"cookie\");\n\tconst parsedCookies = requestCookies ? parseCookies(requestCookies) : void 0;\n\tconst internalContext = {\n\t\t...context,\n\t\tbody: data.body,\n\t\tquery: data.query,\n\t\tpath: context.path || path || \"virtual:\",\n\t\tcontext: \"context\" in context && context.context ? context.context : {},\n\t\treturned: void 0,\n\t\theaders: context?.headers,\n\t\trequest: context?.request,\n\t\tparams: \"params\" in context ? context.params : void 0,\n\t\tmethod: context.method ?? (Array.isArray(options.method) ? options.method[0] : options.method === \"*\" ? \"GET\" : options.method),\n\t\tsetHeader: (key, value) => {\n\t\t\theaders.set(key, value);\n\t\t},\n\t\tgetHeader: (key) => {\n\t\t\tif (!requestHeaders) return null;\n\t\t\treturn requestHeaders.get(key);\n\t\t},\n\t\tgetCookie: (key, prefix) => {\n\t\t\tconst finalKey = getCookieKey(key, prefix);\n\t\t\tif (!finalKey) return null;\n\t\t\treturn parsedCookies?.get(finalKey) || null;\n\t\t},\n\t\tgetSignedCookie: async (key, secret, prefix) => {\n\t\t\tconst finalKey = getCookieKey(key, prefix);\n\t\t\tif (!finalKey) return null;\n\t\t\tconst value = parsedCookies?.get(finalKey);\n\t\t\tif (!value) return null;\n\t\t\tconst signatureStartPos = value.lastIndexOf(\".\");\n\t\t\tif (signatureStartPos < 1) return null;\n\t\t\tconst signedValue = value.substring(0, signatureStartPos);\n\t\t\tconst signature = value.substring(signatureStartPos + 1);\n\t\t\tif (signature.length !== 44 || !signature.endsWith(\"=\")) return null;\n\t\t\treturn await verifySignature(signature, signedValue, await getCryptoKey(secret)) ? signedValue : false;\n\t\t},\n\t\tsetCookie: (key, value, options$1) => {\n\t\t\tconst cookie = serializeCookie(key, value, options$1);\n\t\t\theaders.append(\"set-cookie\", cookie);\n\t\t\treturn cookie;\n\t\t},\n\t\tsetSignedCookie: async (key, value, secret, options$1) => {\n\t\t\tconst cookie = await serializeSignedCookie(key, value, secret, options$1);\n\t\t\theaders.append(\"set-cookie\", cookie);\n\t\t\treturn cookie;\n\t\t},\n\t\tredirect: (url) => {\n\t\t\theaders.set(\"location\", url);\n\t\t\treturn new APIError(\"FOUND\", void 0, headers);\n\t\t},\n\t\terror: (status, body, headers$1) => {\n\t\t\treturn new APIError(status, body, headers$1);\n\t\t},\n\t\tsetStatus: (status) => {\n\t\t\tresponseStatus = status;\n\t\t},\n\t\tjson: (json, routerResponse) => {\n\t\t\tif (!context.asResponse) return json;\n\t\t\treturn {\n\t\t\t\tbody: routerResponse?.body || json,\n\t\t\t\trouterResponse,\n\t\t\t\t_flag: \"json\"\n\t\t\t};\n\t\t},\n\t\tresponseHeaders: headers,\n\t\tget responseStatus() {\n\t\t\treturn responseStatus;\n\t\t}\n\t};\n\tfor (const middleware of options.use || []) {\n\t\tconst response = await middleware({\n\t\t\t...internalContext,\n\t\t\treturnHeaders: true,\n\t\t\tasResponse: false\n\t\t});\n\t\tif (response.response) Object.assign(internalContext.context, response.response);\n\t\t/**\n\t\t* Apply headers from the middleware to the endpoint headers\n\t\t*/\n\t\tif (response.headers) response.headers.forEach((value, key) => {\n\t\t\tinternalContext.responseHeaders.set(key, value);\n\t\t});\n\t}\n\treturn internalContext;\n};\n\n//#endregion\nexport { createInternalContext };\n//# sourceMappingURL=context.mjs.map","import { APIError, BetterCallError, ValidationError } from \"./error.mjs\";\nimport { isAPIError, tryCatch } from \"./utils.mjs\";\nimport { toResponse } from \"./to-response.mjs\";\nimport { createInternalContext } from \"./context.mjs\";\n\n//#region src/endpoint.ts\nfunction createEndpoint(pathOrOptions, handlerOrOptions, handlerOrNever) {\n\tconst path = typeof pathOrOptions === \"string\" ? pathOrOptions : void 0;\n\tconst options = typeof handlerOrOptions === \"object\" ? handlerOrOptions : pathOrOptions;\n\tconst handler = typeof handlerOrOptions === \"function\" ? handlerOrOptions : handlerOrNever;\n\tif ((options.method === \"GET\" || options.method === \"HEAD\") && options.body) throw new BetterCallError(\"Body is not allowed with GET or HEAD methods\");\n\tif (path && /\\/{2,}/.test(path)) throw new BetterCallError(\"Path cannot contain consecutive slashes\");\n\tconst internalHandler = async (...inputCtx) => {\n\t\tconst context = inputCtx[0] || {};\n\t\tconst { data: internalContext, error: validationError } = await tryCatch(createInternalContext(context, {\n\t\t\toptions,\n\t\t\tpath\n\t\t}));\n\t\tif (validationError) {\n\t\t\tif (!(validationError instanceof ValidationError)) throw validationError;\n\t\t\tif (options.onValidationError) await options.onValidationError({\n\t\t\t\tmessage: validationError.message,\n\t\t\t\tissues: validationError.issues\n\t\t\t});\n\t\t\tthrow new APIError(400, {\n\t\t\t\tmessage: validationError.message,\n\t\t\t\tcode: \"VALIDATION_ERROR\"\n\t\t\t});\n\t\t}\n\t\tconst response = await handler(internalContext).catch(async (e) => {\n\t\t\tif (isAPIError(e)) {\n\t\t\t\tconst onAPIError = options.onAPIError;\n\t\t\t\tif (onAPIError) await onAPIError(e);\n\t\t\t\tif (context.asResponse) return e;\n\t\t\t}\n\t\t\tthrow e;\n\t\t});\n\t\tconst headers = internalContext.responseHeaders;\n\t\tconst status = internalContext.responseStatus;\n\t\treturn context.asResponse ? toResponse(response, {\n\t\t\theaders,\n\t\t\tstatus\n\t\t}) : context.returnHeaders ? context.returnStatus ? {\n\t\t\theaders,\n\t\t\tresponse,\n\t\t\tstatus\n\t\t} : {\n\t\t\theaders,\n\t\t\tresponse\n\t\t} : context.returnStatus ? {\n\t\t\tresponse,\n\t\t\tstatus\n\t\t} : response;\n\t};\n\tinternalHandler.options = options;\n\tinternalHandler.path = path;\n\treturn internalHandler;\n}\ncreateEndpoint.create = (opts) => {\n\treturn (path, options, handler) => {\n\t\treturn createEndpoint(path, {\n\t\t\t...options,\n\t\t\tuse: [...options?.use || [], ...opts?.use || []]\n\t\t}, handler);\n\t};\n};\n\n//#endregion\nexport { createEndpoint };\n//# sourceMappingURL=endpoint.mjs.map","import { createInternalContext } from \"./context.mjs\";\nimport \"./endpoint.mjs\";\n\n//#region src/middleware.ts\nfunction createMiddleware(optionsOrHandler, handler) {\n\tconst internalHandler = async (inputCtx) => {\n\t\tconst context = inputCtx;\n\t\tconst _handler = typeof optionsOrHandler === \"function\" ? optionsOrHandler : handler;\n\t\tconst internalContext = await createInternalContext(context, {\n\t\t\toptions: typeof optionsOrHandler === \"function\" ? {} : optionsOrHandler,\n\t\t\tpath: \"/\"\n\t\t});\n\t\tif (!_handler) throw new Error(\"handler must be defined\");\n\t\tconst response = await _handler(internalContext);\n\t\tconst headers = internalContext.responseHeaders;\n\t\treturn context.returnHeaders ? {\n\t\t\theaders,\n\t\t\tresponse\n\t\t} : response;\n\t};\n\tinternalHandler.options = typeof optionsOrHandler === \"function\" ? {} : optionsOrHandler;\n\treturn internalHandler;\n}\ncreateMiddleware.create = (opts) => {\n\tfunction fn(optionsOrHandler, handler) {\n\t\tif (typeof optionsOrHandler === \"function\") return createMiddleware({ use: opts?.use }, optionsOrHandler);\n\t\tif (!handler) throw new Error(\"Middleware handler is required\");\n\t\treturn createMiddleware({\n\t\t\t...optionsOrHandler,\n\t\t\tmethod: \"*\",\n\t\t\tuse: [...opts?.use || [], ...optionsOrHandler.use || []]\n\t\t}, handler);\n\t}\n\treturn fn;\n};\n\n//#endregion\nexport { createMiddleware };\n//# sourceMappingURL=middleware.mjs.map","/** @format */\n\nimport {\n type AuthContext,\n BASE_ERROR_CODES,\n type BetterAuthOptions,\n type BetterAuthPlugin,\n defineErrorCodes,\n type GenericEndpointContext,\n type Session,\n type User,\n} from \"better-auth\";\nimport {\n createAuthEndpoint,\n createAuthMiddleware,\n sessionMiddleware,\n} from \"better-auth/api\";\nimport { clientSideHasPermission } from \"better-auth/client/plugins\";\nimport type { InferAdditionalFieldsFromPluginOptions } from \"better-auth/db\";\nimport { toZodSchema } from \"better-auth/db\";\nimport {\n getOrgAdapter,\n InferInvitation,\n type InferMember,\n type InferOrganization,\n type Member,\n type OrganizationOptions,\n type OrganizationPlugin,\n type Role,\n} from \"better-auth/plugins\";\nimport { defaultRoles } from \"better-auth/plugins/organization/access\";\nimport { APIError } from \"better-call\";\nimport z from \"zod\";\n\nconst ORGANIZATION_ERROR_CODES = defineErrorCodes({\n NO_ACTIVE_ORGANIZATION: \"No active organization\",\n MEMBER_NOT_FOUND: \"Member not found\",\n ORGANIZATION_NOT_FOUND: \"Organization not found\",\n YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_MEMBER:\n \"You are not allowed to update this member\",\n YOU_CANNOT_LEAVE_THE_ORGANIZATION_WITHOUT_AN_OWNER:\n \"You cannot leave the organization without an owner\",\n INVITATION_NOT_FOUND: \"Invitation not found\",\n YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_INVITATION:\n \"You are not allowed to update this invitation\",\n ONLY_PENDING_INVITATIONS_CAN_BE_UPDATED:\n \"Only pending invitations can be updated\",\n YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION:\n \"You are not a member of this organization\",\n});\n\nconst getOrganizationPlugin = <\n Options extends BetterAuthOptions = BetterAuthOptions,\n>(\n ctx: AuthContext<Options>\n) => {\n return ctx.options.plugins?.find(\n (plugin) => plugin.id === \"organization\"\n ) as OrganizationPlugin<OrganizationOptions>;\n};\n\nexport interface OrganizationMemberOptions {\n schema?: OrganizationOptions[\"schema\"];\n /**\n * Hooks for the organization member plugin\n */\n organizationMemberHooks?: {\n /**\n * A callback that runs before a member's info is updated\n *\n * You can return a `data` object to override the default data.\n */\n beforeUpdateMember?: (data: {\n member: InferMember<OrganizationOptions, false>;\n updates: {\n role?: string | string[];\n } & InferAdditionalFieldsFromPluginOptions<\"member\", OrganizationOptions>;\n user: User;\n organization: InferOrganization<OrganizationOptions, false>;\n }) => Promise<void | {\n data: {\n role?: string | string[];\n } & InferAdditionalFieldsFromPluginOptions<\"member\", OrganizationOptions>;\n }>;\n\n /**\n * A callback that runs after a member's info is updated\n */\n afterUpdateMember?: (data: {\n member: InferMember<OrganizationOptions, false>;\n user: User;\n organization: InferOrganization<OrganizationOptions, false>;\n }) => Promise<void>;\n\n /**\n * A callback that runs before an invitation is updated\n *\n * You can return a `data` object to override the default data.\n */\n beforeUpdateInvitation?: (data: {\n invitation: InferInvitation<OrganizationOptions, false>;\n updates: {\n role?: string | string[];\n } & InferAdditionalFieldsFromPluginOptions<\n \"invitation\",\n OrganizationOptions\n >;\n inviter: User;\n organization: InferOrganization<OrganizationOptions, false>;\n }) => Promise<void | {\n data: {\n role?: string | string[];\n } & InferAdditionalFieldsFromPluginOptions<\n \"invitation\",\n OrganizationOptions\n >;\n }>;\n\n /**\n * A callback that runs after an invitation is updated\n */\n afterUpdateInvitation?: (data: {\n invitation: InferInvitation<OrganizationOptions, false>;\n inviter: User;\n organization: InferOrganization<OrganizationOptions, false>;\n }) => Promise<void>;\n };\n}\n\nexport const orgMiddleware = createAuthMiddleware(async () => {\n return {} as {\n orgOptions: OrganizationOptions;\n roles: typeof defaultRoles & {\n [key: string]: Role<{}>;\n };\n getSession: (context: GenericEndpointContext) => Promise<{\n session: Session & {\n activeTeamId?: string | undefined;\n activeOrganizationId?: string | undefined;\n };\n user: User;\n }>;\n };\n});\n\n/**\n * The middleware forces the endpoint to require a valid session by utilizing the `sessionMiddleware`.\n * It also appends additional types to the session type regarding organizations.\n */\nexport const orgSessionMiddleware = createAuthMiddleware(\n {\n use: [sessionMiddleware],\n },\n async (ctx) => {\n const session = ctx.context.session as {\n session: Session & {\n activeTeamId?: string | undefined;\n activeOrganizationId?: string | undefined;\n };\n user: User;\n };\n return {\n session,\n };\n }\n);\n\n/**\n * Organization Member Plugin\n *\n * Extends the organization plugin with:\n * - updateMember endpoint to update member fields (not just role)\n * - Automatically adds afterAcceptInvitation hook to transfer invitation data to member\n *\n * @requires organization plugin\n */\n\nconst createUpdateMemberEndpoint = (options?: OrganizationMemberOptions) => {\n // from /better-auth/packages/better-auth/src/plugins/organization/routes/crud-members.ts\n const baseMemberSchema = z.object({\n role: z.union([z.string(), z.array(z.string())]).meta({\n description:\n 'The new role to be applied. This can be a string or array of strings representing the roles. Eg: [\"admin\", \"sale\"]',\n }),\n memberId: z.string().meta({\n description: 'The member id to apply the role update to. Eg: \"member-id\"',\n }),\n organizationId: z\n .string()\n .meta({\n description:\n 'An optional organization ID which the member is a part of to apply the role update. If not provided, you must provide session headers to get the active organization. Eg: \"organization-id\"',\n })\n .optional(),\n // Manually add default member fields\n firstName: z.string().optional().meta({\n description: \"First name of the member\",\n }),\n lastName: z.string().optional().meta({\n description: \"Last name of the member\",\n }),\n avatar: z.string().optional().meta({\n description: \"Avatar URL of the member\",\n }),\n status: z.enum([\"active\", \"inactive\"]).optional(),\n });\n\n const additionalFieldsSchema = toZodSchema({\n fields: options?.schema?.member?.additionalFields || {},\n isClientSide: true,\n });\n\n // Remove status field from additionalFieldsSchema to prevent overriding the strict enum in baseMemberSchema\n const { status: _status, ...additionalFieldsWithoutStatus } =\n additionalFieldsSchema.shape;\n\n return createAuthEndpoint(\n \"/organization/update-member\",\n {\n method: \"POST\",\n body: z.object({\n ...baseMemberSchema.shape,\n ...additionalFieldsWithoutStatus.shape,\n }),\n use: [orgMiddleware, orgSessionMiddleware],\n requireHeaders: true,\n metadata: {\n $Infer: {\n body: {} as {\n memberId: string;\n role?: string | string[];\n organizationId?: string;\n firstName?: string;\n lastName?: string;\n avatar?: string;\n status?: \"active\" | \"inactive\";\n } & InferAdditionalFieldsFromPluginOptions<\n \"member\",\n OrganizationOptions\n >,\n },\n openapi: {\n operationId: \"updateOrganizationMember\",\n description: \"Update a member in an organization\",\n responses: {\n \"200\": {\n description: \"Success\",\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n id: {\n type: \"string\",\n },\n userId: {\n type: \"string\",\n },\n organizationId: {\n type: \"string\",\n },\n firstName: {\n type: \"string\",\n },\n lastName: {\n type: \"string\",\n },\n avatar: {\n type: \"string\",\n },\n status: {\n type: \"string\",\n },\n },\n required: [\"id\", \"userId\", \"organizationId\", \"role\"],\n },\n },\n },\n },\n },\n },\n },\n },\n async (ctx) => {\n const session = ctx.context.session;\n\n const organizationPlugin = getOrganizationPlugin(ctx.context);\n if (!organizationPlugin) {\n throw new Error(\n \"organization-member plugin requires the organization plugin\"\n );\n }\n\n if (!ctx.body.role) {\n throw new APIError(\"BAD_REQUEST\");\n }\n\n const organizationId =\n ctx.body.organizationId || session.session.activeOrganizationId;\n\n if (!organizationId) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION,\n });\n }\n\n const adapter = getOrgAdapter(ctx.context, organizationPlugin.options);\n const roleToSet: string[] = Array.isArray(ctx.body.role)\n ? ctx.body.role\n : ctx.body.role\n ? [ctx.body.role]\n : [];\n\n const member = await adapter.findMemberByOrgId({\n userId: session.user.id,\n organizationId: organizationId,\n });\n\n if (!member) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.MEMBER_NOT_FOUND,\n });\n }\n\n const toBeUpdatedMember =\n member.id !== ctx.body.memberId\n ? await adapter.findMemberById(ctx.body.memberId)\n : member;\n\n if (!toBeUpdatedMember) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.MEMBER_NOT_FOUND,\n });\n }\n\n const memberBelongsToOrganization =\n toBeUpdatedMember.organizationId === organizationId;\n\n if (!memberBelongsToOrganization) {\n throw new APIError(\"FORBIDDEN\", {\n message:\n ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_MEMBER,\n });\n }\n\n const creatorRole = organizationPlugin.options?.creatorRole || \"owner\";\n\n const updatingMemberRoles = member.role.split(\",\");\n const toBeUpdatedMemberRoles = toBeUpdatedMember.role.split(\",\");\n\n const isUpdatingCreator = toBeUpdatedMemberRoles.includes(creatorRole);\n const updaterIsCreator = updatingMemberRoles.includes(creatorRole);\n\n const isSettingCreatorRole = roleToSet.includes(creatorRole);\n\n const memberIsUpdatingThemselves = member.id === toBeUpdatedMember.id;\n\n if (\n (isUpdatingCreator && !updaterIsCreator) ||\n (isSettingCreatorRole && !updaterIsCreator)\n ) {\n throw new APIError(\"FORBIDDEN\", {\n message:\n ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_MEMBER,\n });\n }\n\n if (updaterIsCreator && memberIsUpdatingThemselves) {\n const members = await ctx.context.adapter.findMany<\n InferMember<OrganizationOptions, false>\n >({\n model: \"member\",\n where: [\n {\n field: \"organizationId\",\n value: organizationId,\n },\n ],\n });\n const owners = members.filter((member: Member) => {\n const roles = member.role.split(\",\");\n return roles.includes(creatorRole);\n });\n if (owners.length <= 1 && !isSettingCreatorRole) {\n throw new APIError(\"BAD_REQUEST\", {\n message:\n ORGANIZATION_ERROR_CODES.YOU_CANNOT_LEAVE_THE_ORGANIZATION_WITHOUT_AN_OWNER,\n });\n }\n }\n\n // currently use clientSideHasPermission instead of hasPermission\n // this does not support dynamic access control yet\n // TODO: improve me\n const canUpdateMember = clientSideHasPermission({\n role: member.role,\n options: organizationPlugin.options,\n permissions: {\n member: [\"update\"],\n },\n allowCreatorAllPermissions: true,\n });\n\n if (!canUpdateMember) {\n throw new APIError(\"FORBIDDEN\", {\n message:\n ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_MEMBER,\n });\n }\n\n // Get organization\n const organization = await adapter.findOrganizationById(organizationId);\n\n if (!organization) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND,\n });\n }\n\n const userBeingUpdated = await ctx.context.internalAdapter.findUserById(\n toBeUpdatedMember.userId\n );\n\n if (!userBeingUpdated) {\n throw new APIError(\"BAD_REQUEST\", {\n message: BASE_ERROR_CODES.USER_NOT_FOUND,\n });\n }\n\n // Extract updates (exclude memberId and organizationId from body)\n const { memberId: _, organizationId: __, ...updates } = ctx.body;\n\n let finalUpdates: Record<string, any> = updates;\n\n // Run beforeUpdateMember hook (if provided via options parameter)\n if (options?.organizationMemberHooks?.beforeUpdateMember) {\n const response =\n await options.organizationMemberHooks.beforeUpdateMember({\n member: toBeUpdatedMember,\n updates,\n user: userBeingUpdated,\n organization: organization as InferOrganization<\n OrganizationOptions,\n false\n >,\n });\n if (response && typeof response === \"object\" && \"data\" in response) {\n finalUpdates = response.data;\n }\n }\n\n // Update the member - NOTE: this is different from updateMemberRole\n // which only updates the role field. We update any additional fields.\n const updatedMember = await ctx.context.adapter.update<\n InferMember<OrganizationOptions, false>\n >({\n model: \"member\",\n where: [{ field: \"id\", value: ctx.body.memberId }],\n update: finalUpdates,\n });\n\n if (!updatedMember) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.MEMBER_NOT_FOUND,\n });\n }\n\n // Run afterUpdateMember hook (if provided via options parameter)\n if (options?.organizationMemberHooks?.afterUpdateMember) {\n await options.organizationMemberHooks.afterUpdateMember({\n member: updatedMember,\n user: userBeingUpdated,\n organization: organization as InferOrganization<\n OrganizationOptions,\n false\n >,\n });\n }\n\n return ctx.json(updatedMember);\n }\n );\n};\n\nconst createGetMemberEndpoint = () => {\n return createAuthEndpoint(\n \"/organization/get-member\",\n {\n method: \"GET\",\n query: z.object({\n userId: z.string().meta({\n description: 'The user id of the member to retrieve. Eg: \"user-id\"',\n }).optional(),\n organizationId: z\n .string()\n .meta({\n description:\n 'The organization ID which the member belongs to. If not provided, will default to the user\\'s active organization. Eg: \"organization-id\"',\n })\n .optional(),\n organizationSlug: z\n .string()\n .meta({\n description:\n 'The organization slug to get member for. If not provided, will default to the user\\'s active organization. Eg: \"organization-slug\"',\n })\n .optional(),\n }),\n use: [orgMiddleware, orgSessionMiddleware],\n requireHeaders: true,\n metadata: {\n $Infer: {\n query: {} as {\n userId?: string;\n organizationId?: string;\n organizationSlug?: string;\n },\n },\n openapi: {\n operationId: \"getOrganizationMember\",\n description: \"Get a member from an organization by user ID\",\n responses: {\n \"200\": {\n description: \"Success\",\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n id: {\n type: \"string\",\n },\n userId: {\n type: \"string\",\n },\n organizationId: {\n type: \"string\",\n },\n role: {\n type: \"string\",\n },\n firstName: {\n type: \"string\",\n },\n lastName: {\n type: \"string\",\n },\n avatar: {\n type: \"string\",\n },\n status: {\n type: \"string\",\n },\n createdAt: {\n type: \"string\",\n format: \"date-time\",\n },\n },\n required: [\"id\", \"userId\", \"organizationId\", \"role\"],\n },\n },\n },\n },\n },\n },\n },\n },\n async (ctx) => {\n const session = ctx.context.session;\n\n const organizationPlugin = getOrganizationPlugin(ctx.context);\n if (!organizationPlugin) {\n throw new Error(\n \"organization-member plugin requires the organization plugin\"\n );\n }\n\n const adapter = getOrgAdapter(ctx.context, organizationPlugin.options);\n\n // Resolve organizationId from slug if provided\n let organizationId =\n ctx.query?.organizationId || session.session.activeOrganizationId;\n\n const userId = ctx.query.userId || session.user.id;\n if (!userId) {\n throw new APIError(\"BAD_REQUEST\", {\n message: BASE_ERROR_CODES.USER_NOT_FOUND,\n });\n }\n\n if (ctx.query?.organizationSlug) {\n const organization = await adapter.findOrganizationBySlug(\n ctx.query.organizationSlug\n );\n if (!organization) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND,\n });\n }\n organizationId = organization.id;\n }\n\n if (!organizationId) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION,\n });\n }\n\n // Verify the current user is a member of the organization\n const currentUserMember = await adapter.findMemberByOrgId({\n userId: session.user.id,\n organizationId: organizationId,\n });\n\n if (!currentUserMember) {\n throw new APIError(\"FORBIDDEN\", {\n message:\n ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION,\n });\n }\n\n // Return current user member if the query is empty\n if(!ctx.query.userId && (ctx.query.organizationSlug || ctx.query.organizationId)) {\n return ctx.json(currentUserMember);\n }\n\n // Get the requested member by userId and organizationId\n const requestedMember = await adapter.findMemberByOrgId({\n userId: userId,\n organizationId: organizationId,\n });\n\n if (!requestedMember) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.MEMBER_NOT_FOUND,\n });\n }\n\n return ctx.json(requestedMember);\n }\n );\n};\n\nconst createUpdateInvitationEndpoint = (\n options?: OrganizationMemberOptions\n) => {\n const baseInvitationSchema = z.object({\n invitationId: z.string().meta({\n description: 'The invitation id to update. Eg: \"invitation-id\"',\n }),\n organizationId: z\n .string()\n .meta({\n description:\n 'An optional organization ID which the invitation belongs to. If not provided, you must provide session headers to get the active organization. Eg: \"organization-id\"',\n })\n .optional(),\n });\n\n const additionalFieldsSchema = toZodSchema({\n fields: options?.schema?.invitation?.additionalFields || {},\n isClientSide: true,\n });\n\n return createAuthEndpoint(\n \"/organization/update-invitation\",\n {\n method: \"POST\",\n body: z.object({\n ...baseInvitationSchema.shape,\n ...additionalFieldsSchema.shape,\n role: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .meta({\n description:\n 'The new role to be applied. This can be a string or array of strings representing the roles. Eg: [\"admin\", \"sale\"]',\n }),\n }),\n use: [orgMiddleware, orgSessionMiddleware],\n requireHeaders: true,\n metadata: {\n $Infer: {\n body: {} as {\n invitationId: string;\n role?: string | string[];\n organizationId?: string;\n } & InferAdditionalFieldsFromPluginOptions<\n \"invitation\",\n OrganizationOptions\n >,\n },\n openapi: {\n operationId: \"updateOrganizationInvitation\",\n description: \"Update a pending invitation in an organization\",\n responses: {\n \"200\": {\n description: \"Success\",\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n id: {\n type: \"string\",\n },\n organizationId: {\n type: \"string\",\n },\n email: {\n type: \"string\",\n },\n role: {\n type: \"string\",\n },\n status: {\n type: \"string\",\n },\n createdAt: {\n type: \"string\",\n format: \"date-time\",\n description: \"Timestamp when the team was created\",\n },\n updatedAt: {\n type: \"string\",\n format: \"date-time\",\n description: \"Timestamp when the team was last updated\",\n },\n },\n required: [\n \"id\",\n \"organizationId\",\n \"email\",\n \"role\",\n \"status\",\n ],\n },\n },\n },\n },\n },\n },\n },\n },\n async (ctx) => {\n const session = ctx.context.session;\n\n const organizationPlugin = getOrganizationPlugin(ctx.context);\n if (!organizationPlugin) {\n throw new Error(\n \"organization-member plugin requires the organization plugin\"\n );\n }\n\n const organizationId =\n ctx.body.organizationId || session.session.activeOrganizationId;\n\n if (!organizationId) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.NO_ACTIVE_ORGANIZATION,\n });\n }\n\n const adapter = getOrgAdapter(ctx.context, organizationPlugin.options);\n\n // Get the current user's member record\n const member = await adapter.findMemberByOrgId({\n userId: session.user.id,\n organizationId: organizationId,\n });\n\n if (!member) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.MEMBER_NOT_FOUND,\n });\n }\n\n // Check permissions - user must have permission to manage invitations\n const canManageInvitations = clientSideHasPermission({\n role: member.role,\n options: organizationPlugin.options,\n permissions: {\n invitation: [\"create\"],\n },\n allowCreatorAllPermissions: true,\n });\n\n if (!canManageInvitations) {\n throw new APIError(\"FORBIDDEN\", {\n message:\n ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_INVITATION,\n });\n }\n\n // Get the invitation\n const invitation = await adapter.findInvitationById(\n ctx.body.invitationId\n );\n\n if (!invitation) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.INVITATION_NOT_FOUND,\n });\n }\n\n // Verify invitation belongs to the organization\n if (invitation.organizationId !== organizationId) {\n throw new APIError(\"FORBIDDEN\", {\n message:\n ORGANIZATION_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_INVITATION,\n });\n }\n\n // Only allow updating pending invitations\n if (invitation.status !== \"pending\") {\n throw new APIError(\"BAD_REQUEST\", {\n message:\n ORGANIZATION_ERROR_CODES.ONLY_PENDING_INVITATIONS_CAN_BE_UPDATED,\n });\n }\n\n // Get organization\n const organization = await adapter.findOrganizationById(organizationId);\n\n if (!organization) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.ORGANIZATION_NOT_FOUND,\n });\n }\n\n // Extract updates (exclude invitationId and organizationId from body)\n const { invitationId: _, organizationId: __, ...updates } = ctx.body;\n\n let finalUpdates: Record<string, any> = updates;\n\n // Run beforeUpdateInvitation hook (if provided via options parameter)\n if (options?.organizationMemberHooks?.beforeUpdateInvitation) {\n const response =\n await options.organizationMemberHooks.beforeUpdateInvitation({\n invitation,\n updates,\n inviter: session.user,\n organization,\n });\n if (response && typeof response === \"object\" && \"data\" in response) {\n finalUpdates = response.data;\n }\n }\n\n // Update the invitation\n const updatedInvitation = await ctx.context.adapter.update<\n InferInvitation<OrganizationOptions, false>\n >({\n model: \"invitation\",\n where: [{ field: \"id\", value: ctx.body.invitationId }],\n update: finalUpdates,\n });\n\n if (!updatedInvitation) {\n throw new APIError(\"BAD_REQUEST\", {\n message: ORGANIZATION_ERROR_CODES.INVITATION_NOT_FOUND,\n });\n }\n\n // Run afterUpdateInvitation hook (if provided via options parameter)\n if (options?.organizationMemberHooks?.afterUpdateInvitation) {\n await options.organizationMemberHooks.afterUpdateInvitation({\n invitation: updatedInvitation,\n inviter: session.user,\n organization,\n });\n }\n\n return ctx.json(updatedInvitation);\n }\n );\n};\n\nexport const organizationMember = (\n userConfig?: OrganizationMemberOptions\n): BetterAuthPlugin => {\n const config = {\n ...userConfig,\n } satisfies OrganizationMemberOptions;\n\n return {\n id: \"organization-member\",\n init(ctx) {\n const organizationPlugin = getOrganizationPlugin(ctx);\n if (!organizationPlugin) {\n throw new Error(\n \"organization-member plugin requires the organization plugin\"\n );\n }\n\n // Get or create organizationHooks\n if (!organizationPlugin.options.organizationHooks) {\n organizationPlugin.options.organizationHooks = {};\n }\n\n const existingAfterAcceptInvitation =\n organizationPlugin.options.organizationHooks?.afterAcceptInvitation;\n organizationPlugin.options.organizationHooks.afterAcceptInvitation =\n async (data) => {\n await existingAfterAcceptInvitation?.(data);\n\n try {\n const { invitation, member } = data;\n const updateData: Record<string, unknown> = {};\n\n // TODO improve me\n for (const field of Object.keys(\n organizationPlugin.options?.schema?.invitation\n ?.additionalFields ?? {}\n )) {\n const fieldName =\n organizationPlugin.options?.schema?.invitation\n ?.additionalFields?.[field]?.fieldName || field;\n updateData[fieldName] = invitation[fieldName];\n }\n\n // Only update if there are fields to transfer\n if (Object.keys(updateData).length > 0) {\n await ctx.adapter.update({\n model: \"member\",\n where: [{ field: \"id\", value: member.id }],\n update: updateData,\n });\n\n ctx.logger?.info(\"Member fields updated from invitation:\", {\n memberId: member.id,\n fields: Object.keys(updateData),\n });\n }\n } catch (error) {\n ctx.logger?.error(\n \"Failed to update member fields from invitation:\",\n error\n );\n // Don't throw - let the invitation acceptance succeed\n }\n };\n },\n endpoints: {\n getMember: createGetMemberEndpoint(),\n updateMember: createUpdateMemberEndpoint(userConfig),\n updateInvitation: createUpdateInvitationEndpoint(userConfig),\n },\n options: userConfig as NoInfer<OrganizationMemberOptions>,\n $ERROR_CODES: ORGANIZATION_ERROR_CODES,\n } satisfies BetterAuthPlugin;\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9],"mappings":"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"}