better-auth-organization-member 1.0.1 → 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 +37 -19
- package/dist/{client-CUJ-RLFe.mjs → client-BxYSj_vy.mjs} +7 -3
- package/dist/client-BxYSj_vy.mjs.map +1 -0
- package/dist/{client-C-W17NqK.d.mts → client-C8Kd58Mh.d.mts} +43 -8
- package/dist/client-C8Kd58Mh.d.mts.map +1 -0
- package/dist/client.d.mts +1 -1
- package/dist/client.d.ts +42 -7
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +6 -2
- package/dist/client.js.map +1 -1
- package/dist/client.mjs +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +2 -2
- package/dist/{server-Big_p9zG.mjs → server-CO0gB_2G.mjs} +18 -84
- package/dist/server-CO0gB_2G.mjs.map +1 -0
- package/dist/server-DzmSHpFU.d.mts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +45 -152
- package/dist/server.js.map +1 -1
- package/dist/server.mjs +1 -1
- package/package.json +1 -1
- package/dist/client-C-W17NqK.d.mts.map +0 -1
- package/dist/client-CUJ-RLFe.mjs.map +0 -1
- package/dist/server-Big_p9zG.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -167,21 +167,35 @@ const client = createAuthClient({
|
|
|
167
167
|
// Update member information (role + additional fields)
|
|
168
168
|
await client.organization.updateMember({
|
|
169
169
|
memberId: 'member-id',
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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
|
+
},
|
|
177
|
+
fetchOptions: {
|
|
178
|
+
headers: {
|
|
179
|
+
'X-Custom-Header': 'value',
|
|
180
|
+
},
|
|
181
|
+
},
|
|
175
182
|
});
|
|
176
183
|
|
|
177
184
|
// Update invitation information
|
|
178
185
|
await client.organization.updateInvitation({
|
|
179
186
|
invitationId: 'invitation-id',
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
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
|
+
},
|
|
194
|
+
fetchOptions: {
|
|
195
|
+
headers: {
|
|
196
|
+
'X-Custom-Header': 'value',
|
|
197
|
+
},
|
|
198
|
+
},
|
|
185
199
|
});
|
|
186
200
|
```
|
|
187
201
|
|
|
@@ -197,11 +211,13 @@ Updates member information in an organization. Follows the **exact same permissi
|
|
|
197
211
|
```typescript
|
|
198
212
|
{
|
|
199
213
|
memberId: string; // Required: ID of the member to update
|
|
200
|
-
role: string | string[]; // Required: Role(s) to assign
|
|
201
214
|
organizationId?: string; // Optional: defaults to active organization
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
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.)
|
|
205
221
|
}
|
|
206
222
|
```
|
|
207
223
|
|
|
@@ -287,11 +303,13 @@ await client.organization.updateMemberRole({
|
|
|
287
303
|
// Updates role AND additional fields in one call
|
|
288
304
|
await client.organization.updateMember({
|
|
289
305
|
memberId: 'member-id',
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
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
|
+
},
|
|
295
313
|
});
|
|
296
314
|
```
|
|
297
315
|
|
|
@@ -10,15 +10,19 @@ const organizationMemberClient = (options) => {
|
|
|
10
10
|
},
|
|
11
11
|
organization: {
|
|
12
12
|
updateMember: async (data) => {
|
|
13
|
+
const { fetchOptions, ...body } = data;
|
|
13
14
|
return await $fetch("/organization/update-member", {
|
|
14
15
|
method: "POST",
|
|
15
|
-
body
|
|
16
|
+
body,
|
|
17
|
+
fetchOptions
|
|
16
18
|
});
|
|
17
19
|
},
|
|
18
20
|
updateInvitation: async (data) => {
|
|
21
|
+
const { fetchOptions, ...body } = data;
|
|
19
22
|
return await $fetch("/organization/update-invitation", {
|
|
20
23
|
method: "POST",
|
|
21
|
-
body
|
|
24
|
+
body,
|
|
25
|
+
fetchOptions
|
|
22
26
|
});
|
|
23
27
|
}
|
|
24
28
|
}
|
|
@@ -35,4 +39,4 @@ const inferOrgMemberAdditionalFields = (schema) => {
|
|
|
35
39
|
|
|
36
40
|
//#endregion
|
|
37
41
|
export { organizationMemberClient as n, inferOrgMemberAdditionalFields as t };
|
|
38
|
-
//# sourceMappingURL=client-
|
|
42
|
+
//# sourceMappingURL=client-BxYSj_vy.mjs.map
|
|
@@ -0,0 +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 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"}
|
|
@@ -3,6 +3,7 @@ import * as better_auth0 from "better-auth";
|
|
|
3
3
|
import { InferAdditionalFieldsFromPluginOptions } from "better-auth/db";
|
|
4
4
|
import * as better_auth_plugins0 from "better-auth/plugins";
|
|
5
5
|
import { InferInvitation, InferMember, OrganizationOptions } from "better-auth/plugins";
|
|
6
|
+
import { BetterFetch, BetterFetchOption } from "better-auth/client";
|
|
6
7
|
import { BetterAuthOptions } from "better-auth/types";
|
|
7
8
|
|
|
8
9
|
//#region src/client.d.ts
|
|
@@ -13,14 +14,22 @@ interface OrganizationMemberClient {
|
|
|
13
14
|
updateMember: <T extends Record<string, any> = {}>(data: {
|
|
14
15
|
memberId: string;
|
|
15
16
|
organizationId?: string;
|
|
16
|
-
|
|
17
|
+
data: {
|
|
18
|
+
role?: string | string[];
|
|
19
|
+
} & Partial<T>;
|
|
20
|
+
fetchOptions?: BetterFetchOption;
|
|
21
|
+
}) => Promise<{
|
|
17
22
|
data: any | null;
|
|
18
23
|
error: Error | null;
|
|
19
24
|
}>;
|
|
20
25
|
updateInvitation: <T extends Record<string, any> = {}>(data: {
|
|
21
26
|
invitationId: string;
|
|
22
27
|
organizationId?: string;
|
|
23
|
-
|
|
28
|
+
data: {
|
|
29
|
+
role?: string | string[];
|
|
30
|
+
} & Partial<T>;
|
|
31
|
+
fetchOptions?: BetterFetchOption;
|
|
32
|
+
}) => Promise<{
|
|
24
33
|
data: any | null;
|
|
25
34
|
error: Error | null;
|
|
26
35
|
}>;
|
|
@@ -28,7 +37,7 @@ interface OrganizationMemberClient {
|
|
|
28
37
|
declare const organizationMemberClient: <CO extends OrganizationMemberClientOptions = OrganizationMemberClientOptions>(options?: CO) => {
|
|
29
38
|
id: "organization-member";
|
|
30
39
|
$InferServerPlugin: ReturnType<typeof organizationMember>;
|
|
31
|
-
getActions: ($fetch:
|
|
40
|
+
getActions: ($fetch: BetterFetch) => {
|
|
32
41
|
$Infer: {
|
|
33
42
|
Member: InferMember<CO, false>;
|
|
34
43
|
Invitation: InferInvitation<CO, false>;
|
|
@@ -37,13 +46,39 @@ declare const organizationMemberClient: <CO extends OrganizationMemberClientOpti
|
|
|
37
46
|
updateMember: (data: {
|
|
38
47
|
memberId: string;
|
|
39
48
|
organizationId?: string;
|
|
40
|
-
|
|
41
|
-
|
|
49
|
+
data: {
|
|
50
|
+
role?: string | string[];
|
|
51
|
+
} & Partial<InferAdditionalFieldsFromPluginOptions<"member", CO>>;
|
|
52
|
+
fetchOptions?: BetterFetchOption;
|
|
53
|
+
}) => Promise<{
|
|
54
|
+
data: unknown;
|
|
55
|
+
error: null;
|
|
56
|
+
} | {
|
|
57
|
+
data: null;
|
|
58
|
+
error: {
|
|
59
|
+
message?: string | undefined;
|
|
60
|
+
status: number;
|
|
61
|
+
statusText: string;
|
|
62
|
+
};
|
|
63
|
+
}>;
|
|
42
64
|
updateInvitation: (data: {
|
|
43
65
|
invitationId: string;
|
|
44
66
|
organizationId?: string;
|
|
45
|
-
|
|
46
|
-
|
|
67
|
+
data: {
|
|
68
|
+
role?: string | string[];
|
|
69
|
+
} & Partial<InferAdditionalFieldsFromPluginOptions<"invitation", CO>>;
|
|
70
|
+
fetchOptions?: BetterFetchOption;
|
|
71
|
+
}) => Promise<{
|
|
72
|
+
data: unknown;
|
|
73
|
+
error: null;
|
|
74
|
+
} | {
|
|
75
|
+
data: null;
|
|
76
|
+
error: {
|
|
77
|
+
message?: string | undefined;
|
|
78
|
+
status: number;
|
|
79
|
+
statusText: string;
|
|
80
|
+
};
|
|
81
|
+
}>;
|
|
47
82
|
};
|
|
48
83
|
};
|
|
49
84
|
};
|
|
@@ -112,4 +147,4 @@ declare const inferOrgMemberAdditionalFields: <O extends {
|
|
|
112
147
|
} ? S_1[K] : undefined } : undefined : undefined : undefined : S;
|
|
113
148
|
//#endregion
|
|
114
149
|
export { organizationMemberClient as i, OrganizationMemberClientOptions as n, inferOrgMemberAdditionalFields as r, OrganizationMemberClient as t };
|
|
115
|
-
//# sourceMappingURL=client-
|
|
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":";;;;;;;;;UAaiB,+BAAA;WACN;;UAGM,wBAAA;2BACU;IALV,QAAA,EAAA,MAAA;IAIA,cAAA,CAAA,EAAA,MAAwB;IACd,IAAA,EAAA;MAMT,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;IAAR,CAAA,GAAA,OAAA,CAAQ,CAAR,CAAA;IACW,YAAA,CAAA,EAAA,iBAAA;EAIV,CAAA,EAAA,GAFJ,OAEI,CAAA;IAFJ,IAAA,EAAA,GAAA,GAAA,IAAA;IAIwB,KAAA,EAFpB,KAEoB,GAAA,IAAA;EAMb,CAAA,CAAA;EAAR,gBAAA,EAAA,CAAA,UANqB,MAMrB,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA;IACW,YAAA,EAAA,MAAA;IAIV,cAAA,CAAA,EAAA,MAAA;IAFJ,IAAA,EAAA;MAAO,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;IAMD,CAAA,GATH,OASG,CATK,CASL,CAAA;IACA,YAAA,CAAA,EATQ,iBASR;EAAkC,CAAA,EAAA,GAPxC,OAOwC,CAAA;IAEnC,IAAA,EAAA,GAAA,GAAA,IAAA;IAAE,KAAA,EAPH,KAOG,GAAA,IAAA;EAIgB,CAAA,CAAA;;AAKI,cAZrB,wBAYqB,EAAA,CAAA,WAXrB,+BAWqB,GAXa,+BAWb,CAAA,CAAA,OAAA,CAAA,EATtB,EASsB,EAAA,GAAA;EAAZ,EAAA,EAAA,qBAAA;EACoB,kBAAA,EANZ,UAMY,CAAA,OAV5B,kBAU4B,CAAA;EAAhB,UAAA,EAAA,CAAA,MAAA,EAHD,WAGC,EAAA,GAAA;IAUqC,MAAA,EAAA;MAAjD,MAAA,EAXQ,WAWR,CAXoB,EAWpB,EAAA,KAAA,CAAA;MADE,UAAA,EATU,eASV,CAT0B,EAS1B,EAAA,KAAA,CAAA;IAGW,CAAA;IAChB,YAAA,EAAA;MAgBwD,YAAA,EAAA,CAAA,IAAA,EAAA;QAArD,QAAA,EAAA,MAAA;QADE,cAAA,CAAA,EAAA,MAAA;QAGW,IAAA,EAAA;UAChB,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;QAAA,CAAA,GAvBK,OAuBL,CAtBG,sCAsBH,CAAA,QAAA,EAtBoD,EAsBpD,CAAA,CAAA;QAkBE,YAAA,CAAA,EAtCc,iBA+E1B;MAvCY,CAAA,EAAA,GAvCF,OAuCE,CAAA;QAED,IAAA,EAAA,OAAA;QAED,KAAA,EAAA,IAAA;MAkCsB,CAAA,GAAA;QAAC,IAAA,EAAA,IAAA;QAAA,KAAA,EAAA;UAAA,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA;UAAA,MAAA,EAAA,MAAA;UAAA,UAAA,EAAA,MAAA;QAAA,CAAA;MAAA,CAAA,CAAA;;;;cAE4pE;UAAA,IAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;QAA+E,CAAA,GAhE7vE,OAgE6vE,CA/D/vE,sCA+D+vE,CAAA,YAAA,EA/D1sE,EA+D0sE,CAAA,CAAA;QAAA,YAAsG,CAAA,EA7Dx1E,iBA6Dw1E;MAAA,CAAA,EAAA,GA5Dx2E,OA4Dw2E,CAAA;QAAyE,IAAA,EAAA,OAAA;QAAA,KAAA,EAA0G,IAAA;MAAA,CAAA,GAAA;QAA6E,IAAA,EAAA,IAAA;QAAA,KAAA,EAAoG;UAAA,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA;UAAuE,MAAA,EAAA,MAAA;UAAA,UAA0G,EAAA,MAAA;QAAA,CAAA;MAAA,CAAA,CAAA;IAA6H,CAAA;EAAA,CAAA;CAjB//F;;;;;AAewC,cAxCjC,8BAwCiC,EAAA,CAAA,UAAA;EAC7C,OAAA,EAvCY,iBAuCZ;aArCW,gEAED,oCAkCsB,IAAC,UAAA,SAAA,UAAA,QAAA,gBAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAE4pE,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;;8BAjBllG,MAAA,IAAA;;+DAewC"}
|
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-
|
|
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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BetterFetch, BetterFetchOption } from "better-auth/client";
|
|
1
2
|
import type { InferAdditionalFieldsFromPluginOptions } from "better-auth/db";
|
|
2
3
|
import type { InferInvitation, InferMember, OrganizationOptions } from "better-auth/plugins";
|
|
3
4
|
import type { BetterAuthOptions } from "better-auth/types";
|
|
@@ -8,14 +9,22 @@ export interface OrganizationMemberClient {
|
|
|
8
9
|
updateMember: <T extends Record<string, any> = {}>(data: {
|
|
9
10
|
memberId: string;
|
|
10
11
|
organizationId?: string;
|
|
11
|
-
|
|
12
|
+
data: {
|
|
13
|
+
role?: string | string[];
|
|
14
|
+
} & Partial<T>;
|
|
15
|
+
fetchOptions?: BetterFetchOption;
|
|
16
|
+
}) => Promise<{
|
|
12
17
|
data: any | null;
|
|
13
18
|
error: Error | null;
|
|
14
19
|
}>;
|
|
15
20
|
updateInvitation: <T extends Record<string, any> = {}>(data: {
|
|
16
21
|
invitationId: string;
|
|
17
22
|
organizationId?: string;
|
|
18
|
-
|
|
23
|
+
data: {
|
|
24
|
+
role?: string | string[];
|
|
25
|
+
} & Partial<T>;
|
|
26
|
+
fetchOptions?: BetterFetchOption;
|
|
27
|
+
}) => Promise<{
|
|
19
28
|
data: any | null;
|
|
20
29
|
error: Error | null;
|
|
21
30
|
}>;
|
|
@@ -23,7 +32,7 @@ export interface OrganizationMemberClient {
|
|
|
23
32
|
export declare const organizationMemberClient: <CO extends OrganizationMemberClientOptions = OrganizationMemberClientOptions>(options?: CO) => {
|
|
24
33
|
id: "organization-member";
|
|
25
34
|
$InferServerPlugin: ReturnType<typeof import("./server").organizationMember>;
|
|
26
|
-
getActions: ($fetch:
|
|
35
|
+
getActions: ($fetch: BetterFetch) => {
|
|
27
36
|
$Infer: {
|
|
28
37
|
Member: InferMember<CO, false>;
|
|
29
38
|
Invitation: InferInvitation<CO, false>;
|
|
@@ -32,13 +41,39 @@ export declare const organizationMemberClient: <CO extends OrganizationMemberCli
|
|
|
32
41
|
updateMember: (data: {
|
|
33
42
|
memberId: string;
|
|
34
43
|
organizationId?: string;
|
|
35
|
-
|
|
36
|
-
|
|
44
|
+
data: {
|
|
45
|
+
role?: string | string[];
|
|
46
|
+
} & Partial<InferAdditionalFieldsFromPluginOptions<"member", CO>>;
|
|
47
|
+
fetchOptions?: BetterFetchOption;
|
|
48
|
+
}) => Promise<{
|
|
49
|
+
data: unknown;
|
|
50
|
+
error: null;
|
|
51
|
+
} | {
|
|
52
|
+
data: null;
|
|
53
|
+
error: {
|
|
54
|
+
message?: string | undefined;
|
|
55
|
+
status: number;
|
|
56
|
+
statusText: string;
|
|
57
|
+
};
|
|
58
|
+
}>;
|
|
37
59
|
updateInvitation: (data: {
|
|
38
60
|
invitationId: string;
|
|
39
61
|
organizationId?: string;
|
|
40
|
-
|
|
41
|
-
|
|
62
|
+
data: {
|
|
63
|
+
role?: string | string[];
|
|
64
|
+
} & Partial<InferAdditionalFieldsFromPluginOptions<"invitation", CO>>;
|
|
65
|
+
fetchOptions?: BetterFetchOption;
|
|
66
|
+
}) => Promise<{
|
|
67
|
+
data: unknown;
|
|
68
|
+
error: null;
|
|
69
|
+
} | {
|
|
70
|
+
data: null;
|
|
71
|
+
error: {
|
|
72
|
+
message?: string | undefined;
|
|
73
|
+
status: number;
|
|
74
|
+
statusText: string;
|
|
75
|
+
};
|
|
76
|
+
}>;
|
|
42
77
|
};
|
|
43
78
|
};
|
|
44
79
|
};
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -9,15 +9,19 @@ export const organizationMemberClient = (options) => {
|
|
|
9
9
|
},
|
|
10
10
|
organization: {
|
|
11
11
|
updateMember: async (data) => {
|
|
12
|
+
const { fetchOptions, ...body } = data;
|
|
12
13
|
return await $fetch("/organization/update-member", {
|
|
13
14
|
method: "POST",
|
|
14
|
-
body
|
|
15
|
+
body,
|
|
16
|
+
fetchOptions,
|
|
15
17
|
});
|
|
16
18
|
},
|
|
17
19
|
updateInvitation: async (data) => {
|
|
20
|
+
const { fetchOptions, ...body } = data;
|
|
18
21
|
return await $fetch("/organization/update-invitation", {
|
|
19
22
|
method: "POST",
|
|
20
|
-
body
|
|
23
|
+
body,
|
|
24
|
+
fetchOptions,
|
|
21
25
|
});
|
|
22
26
|
},
|
|
23
27
|
},
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
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/client.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as organizationMemberClient, t as inferOrgMemberAdditionalFields } from "./client-
|
|
1
|
+
import { n as organizationMemberClient, t as inferOrgMemberAdditionalFields } from "./client-BxYSj_vy.mjs";
|
|
2
2
|
|
|
3
3
|
export { inferOrgMemberAdditionalFields, organizationMemberClient };
|
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-
|
|
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-
|
|
2
|
-
import { n as organizationMemberClient, t as inferOrgMemberAdditionalFields } from "./client-
|
|
1
|
+
import { r as organizationMember } from "./server-CO0gB_2G.mjs";
|
|
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
|
-
|
|
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
|
-
|
|
685
|
-
|
|
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 =
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
874
|
-
|
|
875
|
-
|
|
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
|
|
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-
|
|
951
|
+
//# sourceMappingURL=server-CO0gB_2G.mjs.map
|