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 +27 -20
- package/dist/client-BxYSj_vy.mjs.map +1 -1
- package/dist/{client-D1TOQax8.d.mts → client-C8Kd58Mh.d.mts} +17 -7
- package/dist/client-C8Kd58Mh.d.mts.map +1 -0
- package/dist/client.d.mts +1 -1
- package/dist/client.d.ts +16 -6
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- 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-D1TOQax8.d.mts.map +0 -1
- package/dist/server-Big_p9zG.mjs.map +0 -1
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
|
-
|
|
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
|
+
},
|
|
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
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
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
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
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
|
|
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
|
-
}
|
|
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
|
-
}
|
|
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
|
-
|
|
49
|
+
data: {
|
|
50
|
+
role?: string | string[];
|
|
51
|
+
} & Partial<InferAdditionalFieldsFromPluginOptions<"member", CO>>;
|
|
44
52
|
fetchOptions?: BetterFetchOption;
|
|
45
|
-
}
|
|
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
|
-
|
|
67
|
+
data: {
|
|
68
|
+
role?: string | string[];
|
|
69
|
+
} & Partial<InferAdditionalFieldsFromPluginOptions<"invitation", CO>>;
|
|
60
70
|
fetchOptions?: BetterFetchOption;
|
|
61
|
-
}
|
|
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-
|
|
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-
|
|
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
|
-
}
|
|
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
|
-
}
|
|
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
|
-
|
|
44
|
+
data: {
|
|
45
|
+
role?: string | string[];
|
|
46
|
+
} & Partial<InferAdditionalFieldsFromPluginOptions<"member", CO>>;
|
|
39
47
|
fetchOptions?: BetterFetchOption;
|
|
40
|
-
}
|
|
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
|
-
|
|
62
|
+
data: {
|
|
63
|
+
role?: string | string[];
|
|
64
|
+
} & Partial<InferAdditionalFieldsFromPluginOptions<"invitation", CO>>;
|
|
55
65
|
fetchOptions?: BetterFetchOption;
|
|
56
|
-
}
|
|
66
|
+
}) => Promise<{
|
|
57
67
|
data: unknown;
|
|
58
68
|
error: null;
|
|
59
69
|
} | {
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,mBAAmB,CAAC;AAE7E,MAAM,WAAW,+BAA+B;IAC9C,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,EAC/C,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
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/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-
|
|
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
|
-
|
|
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
|
|
@@ -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;
|
|
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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -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
|
-
|
|
84
|
-
|
|
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 =
|
|
150
|
-
? ctx.body.role
|
|
151
|
-
|
|
152
|
-
|
|
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
|
|
240
|
-
const
|
|
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
|
-
|
|
427
|
-
|
|
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
|
|
556
|
-
const
|
|
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
|
},
|
package/dist/server.js.map
CHANGED
|
@@ -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-
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client-D1TOQax8.d.mts","names":[],"sources":["../src/client.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -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":";;;;;;;;AACA,SAAS,iCAAiC;CACzC,MAAM,OAAO,OAAO,yBAAyB,OAAO,kBAAkB;AACtE,KAAI,SAAS,KAAK,EAAG,QAAO,OAAO,aAAa,MAAM;AACtD,QAAO,OAAO,UAAU,eAAe,KAAK,MAAM,WAAW,GAAG,KAAK,WAAW,KAAK,QAAQ,KAAK;;;;;AAKnG,SAAS,wBAAwB,OAAO;CACvC,MAAM,QAAQ,MAAM,MAAM,YAAY;AACtC,KAAI,MAAM,UAAU,EAAG,QAAO;AAC9B,OAAM,OAAO,GAAG,EAAE;AAClB,QAAO,MAAM,KAAK,YAAY;;;;;AAK/B,SAAS,2BAA2B,MAAM,OAAO;CAChD,MAAM,6BAA6B,KAAK;EACvC;EACA,YAAY,GAAG,MAAM;AACpB,OAAI,gCAAgC,EAAE;IACrC,MAAM,QAAQ,MAAM;AACpB,UAAM,kBAAkB;AACxB,UAAM,GAAG,KAAK;AACd,UAAM,kBAAkB;SAClB,OAAM,GAAG,KAAK;GACrB,MAAM,yBAAyB,IAAI,OAAO,EAAE;AAC5C,OAAI,MAAO,OAAKA,cAAe,wBAAwB,MAAM,QAAQ,UAAU,KAAK,KAAK,CAAC;;EAE3F,IAAI,aAAa;AAChB,UAAO,MAAKA;;;AAGd,QAAO,eAAe,qBAAqB,WAAW,eAAe;EACpE,MAAM;AACL,UAAO;;EAER,YAAY;EACZ,cAAc;EACd,CAAC;AACF,QAAO;;AAER,MAAM,cAAc;CACnB,IAAI;CACJ,SAAS;CACT,UAAU;CACV,YAAY;CACZ,kBAAkB;CAClB,mBAAmB;CACnB,OAAO;CACP,WAAW;CACX,cAAc;CACd,oBAAoB;CACpB,aAAa;CACb,cAAc;CACd,kBAAkB;CAClB,WAAW;CACX,WAAW;CACX,oBAAoB;CACpB,gBAAgB;CAChB,+BAA+B;CAC/B,iBAAiB;CACjB,UAAU;CACV,MAAM;CACN,iBAAiB;CACjB,qBAAqB;CACrB,mBAAmB;CACnB,cAAc;CACd,wBAAwB;CACxB,uBAAuB;CACvB,oBAAoB;CACpB,gBAAgB;CAChB,qBAAqB;CACrB,sBAAsB;CACtB,QAAQ;CACR,mBAAmB;CACnB,WAAW;CACX,kBAAkB;CAClB,uBAAuB;CACvB,mBAAmB;CACnB,iCAAiC;CACjC,+BAA+B;CAC/B,uBAAuB;CACvB,iBAAiB;CACjB,aAAa;CACb,qBAAqB;CACrB,iBAAiB;CACjB,4BAA4B;CAC5B,yBAAyB;CACzB,sBAAsB;CACtB,eAAe;CACf,cAAc;CACd,iCAAiC;CACjC;AACD,IAAI,mBAAmB,cAAc,MAAM;CAC1C,YAAY,SAAS,yBAAyB,OAAO,KAAK,GAAG,UAAU,EAAE,EAAE,aAAa,OAAO,WAAW,WAAW,SAAS,YAAY,SAAS;AAClJ,QAAM,MAAM,SAAS,MAAM,QAAQ,EAAE,OAAO,KAAK,OAAO,GAAG,KAAK,EAAE;AAClE,OAAK,SAAS;AACd,OAAK,OAAO;AACZ,OAAK,UAAU;AACf,OAAK,aAAa;AAClB,OAAK,OAAO;AACZ,OAAK,SAAS;AACd,OAAK,UAAU;AACf,OAAK,aAAa;AAClB,OAAK,OAAO,OAAO;GAClB,MAAM,MAAM,SAAS,aAAa,CAAC,QAAQ,MAAM,IAAI,CAAC,QAAQ,eAAe,GAAG;GAChF,GAAG;GACH,GAAG,KAAK;;;AAGX,IAAI,kBAAkB,cAAc,iBAAiB;CACpD,YAAY,SAAS,QAAQ;AAC5B,QAAM,KAAK;GACV;GACA,MAAM;GACN,CAAC;AACF,OAAK,UAAU;AACf,OAAK,SAAS;AACd,OAAK,SAAS;;;AAGhB,IAAI,kBAAkB,cAAc,MAAM;CACzC,YAAY,SAAS;AACpB,QAAM,QAAQ;AACd,OAAK,OAAO;;;AAGd,MAAM,WAAW,2BAA2B,kBAAkB,MAAM;;;;ACnFpE,SAAS,WAAW,OAAO;AAC1B,QAAO,iBAAiB,YAAY,OAAO,SAAS;;AAErD,SAAS,UAAU,KAAK;AACvB,KAAI;AACH,SAAO,IAAI,SAAS,IAAI,GAAG,mBAAmB,IAAI,GAAG;SAC9C;AACP,SAAO;;;AAGT,eAAe,SAAS,SAAS;AAChC,KAAI;AACH,SAAO;GACN,MAAM,MAAM;GACZ,OAAO;GACP;UACO,OAAO;AACf,SAAO;GACN,MAAM;GACN;GACA;;;;;;;;AAQH,SAAS,UAAU,KAAK;AACvB,QAAO,eAAe,WAAW,OAAO,UAAU,SAAS,KAAK,IAAI,KAAK;;;;;ACxE1E,SAAS,mBAAmB,OAAO;AAClC,KAAI,UAAU,KAAK,EAAG,QAAO;CAC7B,MAAM,IAAI,OAAO;AACjB,KAAI,MAAM,YAAY,MAAM,YAAY,MAAM,aAAa,MAAM,KAAM,QAAO;AAC9E,KAAI,MAAM,SAAU,QAAO;AAC3B,KAAI,MAAM,QAAQ,MAAM,CAAE,QAAO;AACjC,KAAI,MAAM,OAAQ,QAAO;AACzB,QAAO,MAAM,eAAe,MAAM,YAAY,SAAS,YAAY,OAAO,MAAM,WAAW;;AAE5F,SAAS,cAAc,KAAK,UAAU,OAAO;CAC5C,IAAI,KAAK;CACT,MAAM,uBAAuB,IAAI,SAAS;CAC1C,MAAM,gBAAgB,KAAK,UAAU;AACpC,MAAI,OAAO,UAAU,SAAU,QAAO,MAAM,UAAU;AACtD,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAChD,OAAI,KAAK,IAAI,MAAM,CAAE,QAAO,iBAAiB,KAAK,IAAI,MAAM,CAAC;AAC7D,QAAK,IAAI,OAAO,KAAK;;AAEtB,MAAI,SAAU,QAAO,SAAS,KAAK,MAAM;AACzC,SAAO;;AAER,QAAO,KAAK,UAAU,KAAK,cAAc,MAAM;;AAEhD,SAAS,eAAe,OAAO;AAC9B,KAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAChD,QAAO,WAAW,SAAS,MAAM,UAAU;;AAE5C,SAAS,WAAW,MAAM,MAAM;AAC/B,KAAI,gBAAgB,UAAU;AAC7B,MAAI,MAAM,mBAAmB,QAAS,MAAK,QAAQ,SAAS,OAAO,QAAQ;AAC1E,QAAK,QAAQ,IAAI,KAAK,MAAM;IAC3B;AACF,SAAO;;AAER,KAAI,eAAe,KAAK,EAAE;EACzB,MAAM,SAAS,KAAK;EACpB,MAAM,iBAAiB,KAAK;AAC5B,MAAI,0BAA0B,SAAU,QAAO;EAC/C,MAAM,YAAY,IAAI,SAAS;AAC/B,MAAI,gBAAgB,SAAS;GAC5B,MAAM,YAAY,IAAI,QAAQ,eAAe,QAAQ;AACrD,QAAK,MAAM,CAAC,KAAK,UAAU,UAAU,SAAS,CAAE,WAAU,IAAI,KAAK,MAAM;;AAE1E,MAAI,KAAK,QAAS,MAAK,MAAM,CAAC,KAAK,UAAU,IAAI,QAAQ,KAAK,QAAQ,CAAC,SAAS,CAAE,WAAU,IAAI,KAAK,MAAM;AAC3G,MAAI,MAAM,QAAS,MAAK,MAAM,CAAC,KAAK,UAAU,IAAI,QAAQ,KAAK,QAAQ,CAAC,SAAS,CAAE,WAAU,IAAI,KAAK,MAAM;AAC5G,YAAU,IAAI,gBAAgB,mBAAmB;AACjD,SAAO,IAAI,SAAS,KAAK,UAAU,OAAO,EAAE;GAC3C,GAAG;GACH,SAAS;GACT,QAAQ,KAAK,UAAU,MAAM,UAAU,gBAAgB;GACvD,YAAY,MAAM,cAAc,gBAAgB;GAChD,CAAC;;AAEH,KAAI,WAAW,KAAK,CAAE,QAAO,WAAW,KAAK,MAAM;EAClD,QAAQ,MAAM,UAAU,KAAK;EAC7B,YAAY,KAAK,OAAO,UAAU;EAClC,SAAS,MAAM,WAAW,KAAK;EAC/B,CAAC;CACF,IAAI,OAAO;CACX,IAAI,UAAU,IAAI,QAAQ,MAAM,QAAQ;AACxC,KAAI,CAAC,MAAM;AACV,MAAI,SAAS,KAAM,QAAO,KAAK,UAAU,KAAK;AAC9C,UAAQ,IAAI,gBAAgB,mBAAmB;YACrC,OAAO,SAAS,UAAU;AACpC,SAAO;AACP,UAAQ,IAAI,gBAAgB,aAAa;YAC/B,gBAAgB,eAAe,YAAY,OAAO,KAAK,EAAE;AACnE,SAAO;AACP,UAAQ,IAAI,gBAAgB,2BAA2B;YAC7C,gBAAgB,MAAM;AAChC,SAAO;AACP,UAAQ,IAAI,gBAAgB,KAAK,QAAQ,2BAA2B;YAC1D,gBAAgB,SAAU,QAAO;UACnC,gBAAgB,iBAAiB;AACzC,SAAO;AACP,UAAQ,IAAI,gBAAgB,oCAAoC;YACtD,gBAAgB,gBAAgB;AAC1C,SAAO;AACP,UAAQ,IAAI,gBAAgB,2BAA2B;YAC7C,mBAAmB,KAAK,EAAE;AACpC,SAAO,cAAc,KAAK;AAC1B,UAAQ,IAAI,gBAAgB,mBAAmB;;AAEhD,QAAO,IAAI,SAAS,MAAM;EACzB,GAAG;EACH;EACA,CAAC;;;;;AC1FH,SAAS,qBAAqB;CAC5B,MAAM,KAAK,OAAO,eAAe,eAAe,WAAW;AAC3D,KAAI,MAAM,OAAO,GAAG,WAAW,YAAY,GAAG,UAAU,KACtD,QAAO,GAAG;AACZ,OAAM,IAAI,MAAM,gCAAgC;;;;;ACDlD,MAAM,YAAY;CACjB,MAAM;CACN,MAAM;CACN;AACD,MAAM,eAAe,OAAO,WAAW;CACtC,MAAM,YAAY,OAAO,WAAW,WAAW,IAAI,aAAa,CAAC,OAAO,OAAO,GAAG;AAClF,QAAO,MAAM,oBAAoB,CAAC,UAAU,OAAO,WAAW,WAAW,OAAO,CAAC,QAAQ,SAAS,CAAC;;AAEpG,MAAM,kBAAkB,OAAO,iBAAiB,OAAO,WAAW;AACjE,KAAI;EACH,MAAM,kBAAkB,KAAK,gBAAgB;EAC7C,MAAM,YAAY,IAAI,WAAW,gBAAgB,OAAO;AACxD,OAAK,IAAI,IAAI,GAAG,MAAM,gBAAgB,QAAQ,IAAI,KAAK,IAAK,WAAU,KAAK,gBAAgB,WAAW,EAAE;AACxG,SAAO,MAAM,oBAAoB,CAAC,OAAO,WAAW,QAAQ,WAAW,IAAI,aAAa,CAAC,OAAO,MAAM,CAAC;UAC/F,GAAG;AACX,SAAO;;;AAGT,MAAM,gBAAgB,OAAO,OAAO,WAAW;CAC9C,MAAM,MAAM,MAAM,aAAa,OAAO;CACtC,MAAM,YAAY,MAAM,oBAAoB,CAAC,KAAK,UAAU,MAAM,KAAK,IAAI,aAAa,CAAC,OAAO,MAAM,CAAC;AACvG,QAAO,KAAK,OAAO,aAAa,GAAG,IAAI,WAAW,UAAU,CAAC,CAAC;;AAE/D,MAAM,kBAAkB,OAAO,OAAO,WAAW;CAChD,MAAM,YAAY,MAAM,cAAc,OAAO,OAAO;AACpD,SAAQ,GAAG,MAAM,GAAG;AACpB,SAAQ,mBAAmB,MAAM;AACjC,QAAO;;;;;AC1BR,MAAM,gBAAgB,KAAK,WAAW;CACrC,IAAI,WAAW;AACf,KAAI,OAAQ,KAAI,WAAW,SAAU,YAAW,cAAc;UACrD,WAAW,OAAQ,YAAW,YAAY;KAC9C;AACL,QAAO;;;;;;;;;;AAUR,SAAS,aAAa,KAAK;AAC1B,KAAI,OAAO,QAAQ,SAAU,OAAM,IAAI,UAAU,gCAAgC;CACjF,MAAM,0BAA0B,IAAI,KAAK;CACzC,IAAI,QAAQ;AACZ,QAAO,QAAQ,IAAI,QAAQ;EAC1B,MAAM,QAAQ,IAAI,QAAQ,KAAK,MAAM;AACrC,MAAI,UAAU,GAAI;EAClB,IAAI,SAAS,IAAI,QAAQ,KAAK,MAAM;AACpC,MAAI,WAAW,GAAI,UAAS,IAAI;WACvB,SAAS,OAAO;AACxB,WAAQ,IAAI,YAAY,KAAK,QAAQ,EAAE,GAAG;AAC1C;;EAED,MAAM,MAAM,IAAI,MAAM,OAAO,MAAM,CAAC,MAAM;AAC1C,MAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;GACtB,IAAI,MAAM,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM;AAC7C,OAAI,IAAI,YAAY,EAAE,KAAK,GAAI,OAAM,IAAI,MAAM,GAAG,GAAG;AACrD,WAAQ,IAAI,KAAK,UAAU,IAAI,CAAC;;AAEjC,UAAQ,SAAS;;AAElB,QAAO;;AAER,MAAM,cAAc,KAAK,OAAO,MAAM,EAAE,KAAK;CAC5C,IAAI;AACJ,KAAI,KAAK,WAAW,SAAU,UAAS,GAAG,YAAY,MAAM,GAAG;UACtD,KAAK,WAAW,OAAQ,UAAS,GAAG,UAAU,MAAM,GAAG;KAC3D,UAAS,GAAG,IAAI,GAAG;AACxB,KAAI,IAAI,WAAW,YAAY,IAAI,CAAC,IAAI,OAAQ,KAAI,SAAS;AAC7D,KAAI,IAAI,WAAW,UAAU,EAAE;AAC9B,MAAI,CAAC,IAAI,OAAQ,KAAI,SAAS;AAC9B,MAAI,IAAI,SAAS,IAAK,KAAI,OAAO;AACjC,MAAI,IAAI,OAAQ,KAAI,SAAS,KAAK;;AAEnC,KAAI,OAAO,OAAO,IAAI,WAAW,YAAY,IAAI,UAAU,GAAG;AAC7D,MAAI,IAAI,SAAS,OAAQ,OAAM,IAAI,MAAM,sFAAsF;AAC/H,YAAU,aAAa,KAAK,MAAM,IAAI,OAAO;;AAE9C,KAAI,IAAI,UAAU,IAAI,WAAW,OAAQ,WAAU,YAAY,IAAI;AACnE,KAAI,IAAI,KAAM,WAAU,UAAU,IAAI;AACtC,KAAI,IAAI,SAAS;AAChB,MAAI,IAAI,QAAQ,SAAS,GAAG,KAAK,KAAK,GAAG,OAAQ,OAAM,IAAI,MAAM,wFAAwF;AACzJ,YAAU,aAAa,IAAI,QAAQ,aAAa;;AAEjD,KAAI,IAAI,SAAU,WAAU;AAC5B,KAAI,IAAI,OAAQ,WAAU;AAC1B,KAAI,IAAI,SAAU,WAAU,cAAc,IAAI,SAAS,OAAO,EAAE,CAAC,aAAa,GAAG,IAAI,SAAS,MAAM,EAAE;AACtG,KAAI,IAAI,aAAa;AACpB,MAAI,CAAC,IAAI,OAAQ,KAAI,SAAS;AAC9B,YAAU;;AAEX,QAAO;;AAER,MAAM,mBAAmB,KAAK,OAAO,QAAQ;AAC5C,SAAQ,mBAAmB,MAAM;AACjC,QAAO,WAAW,KAAK,OAAO,IAAI;;AAEnC,MAAM,wBAAwB,OAAO,KAAK,OAAO,QAAQ,QAAQ;AAChE,SAAQ,MAAM,gBAAgB,OAAO,OAAO;AAC5C,QAAO,WAAW,KAAK,OAAO,IAAI;;;;;;;;;ACzEnC,eAAe,cAAc,SAAS,UAAU,EAAE,EAAE;CACnD,IAAI,UAAU;EACb,MAAM,QAAQ;EACd,OAAO,QAAQ;EACf;AACD,KAAI,QAAQ,MAAM;EACjB,MAAM,SAAS,MAAM,QAAQ,KAAK,aAAa,SAAS,QAAQ,KAAK;AACrE,MAAI,OAAO,OAAQ,QAAO;GACzB,MAAM;GACN,OAAO,UAAU,OAAO,QAAQ,OAAO;GACvC;AACD,UAAQ,OAAO,OAAO;;AAEvB,KAAI,QAAQ,OAAO;EAClB,MAAM,SAAS,MAAM,QAAQ,MAAM,aAAa,SAAS,QAAQ,MAAM;AACvE,MAAI,OAAO,OAAQ,QAAO;GACzB,MAAM;GACN,OAAO,UAAU,OAAO,QAAQ,QAAQ;GACxC;AACD,UAAQ,QAAQ,OAAO;;AAExB,KAAI,QAAQ,kBAAkB,CAAC,QAAQ,QAAS,QAAO;EACtD,MAAM;EACN,OAAO;GACN,SAAS;GACT,QAAQ,EAAE;GACV;EACD;AACD,KAAI,QAAQ,kBAAkB,CAAC,QAAQ,QAAS,QAAO;EACtD,MAAM;EACN,OAAO;GACN,SAAS;GACT,QAAQ,EAAE;GACV;EACD;AACD,QAAO;EACN,MAAM;EACN,OAAO;EACP;;AAEF,SAAS,UAAU,OAAO,YAAY;AACrC,QAAO;EACN,SAAS,MAAM,KAAK,MAAM;AACzB,UAAO,IAAI,EAAE,MAAM,SAAS,GAAG,WAAW,KAAK,EAAE,KAAK,KAAK,MAAM,OAAO,MAAM,WAAW,EAAE,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,WAAW,IAAI,EAAE;IAChI,CAAC,KAAK,KAAK;EACb,QAAQ;EACR;;;;;AC5CF,MAAM,wBAAwB,OAAO,SAAS,EAAE,SAAS,WAAW;CACnE,MAAM,UAAU,IAAI,SAAS;CAC7B,IAAI,iBAAiB,KAAK;CAC1B,MAAM,EAAE,MAAM,UAAU,MAAM,cAAc,SAAS,QAAQ;AAC7D,KAAI,MAAO,OAAM,IAAI,gBAAgB,MAAM,SAAS,MAAM,OAAO;CACjE,MAAM,iBAAiB,aAAa,UAAU,QAAQ,mBAAmB,UAAU,QAAQ,UAAU,IAAI,QAAQ,QAAQ,QAAQ,GAAG,aAAa,WAAW,UAAU,QAAQ,QAAQ,GAAG,QAAQ,QAAQ,UAAU;CACnN,MAAM,iBAAiB,gBAAgB,IAAI,SAAS;CACpD,MAAM,gBAAgB,iBAAiB,aAAa,eAAe,GAAG,KAAK;CAC3E,MAAM,kBAAkB;EACvB,GAAG;EACH,MAAM,KAAK;EACX,OAAO,KAAK;EACZ,MAAM,QAAQ,QAAQ,QAAQ;EAC9B,SAAS,aAAa,WAAW,QAAQ,UAAU,QAAQ,UAAU,EAAE;EACvE,UAAU,KAAK;EACf,SAAS,SAAS;EAClB,SAAS,SAAS;EAClB,QAAQ,YAAY,UAAU,QAAQ,SAAS,KAAK;EACpD,QAAQ,QAAQ,WAAW,MAAM,QAAQ,QAAQ,OAAO,GAAG,QAAQ,OAAO,KAAK,QAAQ,WAAW,MAAM,QAAQ,QAAQ;EACxH,YAAY,KAAK,UAAU;AAC1B,WAAQ,IAAI,KAAK,MAAM;;EAExB,YAAY,QAAQ;AACnB,OAAI,CAAC,eAAgB,QAAO;AAC5B,UAAO,eAAe,IAAI,IAAI;;EAE/B,YAAY,KAAK,WAAW;GAC3B,MAAM,WAAW,aAAa,KAAK,OAAO;AAC1C,OAAI,CAAC,SAAU,QAAO;AACtB,UAAO,eAAe,IAAI,SAAS,IAAI;;EAExC,iBAAiB,OAAO,KAAK,QAAQ,WAAW;GAC/C,MAAM,WAAW,aAAa,KAAK,OAAO;AAC1C,OAAI,CAAC,SAAU,QAAO;GACtB,MAAM,QAAQ,eAAe,IAAI,SAAS;AAC1C,OAAI,CAAC,MAAO,QAAO;GACnB,MAAM,oBAAoB,MAAM,YAAY,IAAI;AAChD,OAAI,oBAAoB,EAAG,QAAO;GAClC,MAAM,cAAc,MAAM,UAAU,GAAG,kBAAkB;GACzD,MAAM,YAAY,MAAM,UAAU,oBAAoB,EAAE;AACxD,OAAI,UAAU,WAAW,MAAM,CAAC,UAAU,SAAS,IAAI,CAAE,QAAO;AAChE,UAAO,MAAM,gBAAgB,WAAW,aAAa,MAAM,aAAa,OAAO,CAAC,GAAG,cAAc;;EAElG,YAAY,KAAK,OAAO,cAAc;GACrC,MAAM,SAAS,gBAAgB,KAAK,OAAO,UAAU;AACrD,WAAQ,OAAO,cAAc,OAAO;AACpC,UAAO;;EAER,iBAAiB,OAAO,KAAK,OAAO,QAAQ,cAAc;GACzD,MAAM,SAAS,MAAM,sBAAsB,KAAK,OAAO,QAAQ,UAAU;AACzE,WAAQ,OAAO,cAAc,OAAO;AACpC,UAAO;;EAER,WAAW,QAAQ;AAClB,WAAQ,IAAI,YAAY,IAAI;AAC5B,UAAO,IAAI,SAAS,SAAS,KAAK,GAAG,QAAQ;;EAE9C,QAAQ,QAAQ,MAAM,cAAc;AACnC,UAAO,IAAI,SAAS,QAAQ,MAAM,UAAU;;EAE7C,YAAY,WAAW;AACtB,oBAAiB;;EAElB,OAAO,MAAM,mBAAmB;AAC/B,OAAI,CAAC,QAAQ,WAAY,QAAO;AAChC,UAAO;IACN,MAAM,gBAAgB,QAAQ;IAC9B;IACA,OAAO;IACP;;EAEF,iBAAiB;EACjB,IAAI,iBAAiB;AACpB,UAAO;;EAER;AACD,MAAK,MAAM,cAAc,QAAQ,OAAO,EAAE,EAAE;EAC3C,MAAM,WAAW,MAAM,WAAW;GACjC,GAAG;GACH,eAAe;GACf,YAAY;GACZ,CAAC;AACF,MAAI,SAAS,SAAU,QAAO,OAAO,gBAAgB,SAAS,SAAS,SAAS;;;;AAIhF,MAAI,SAAS,QAAS,UAAS,QAAQ,SAAS,OAAO,QAAQ;AAC9D,mBAAgB,gBAAgB,IAAI,KAAK,MAAM;IAC9C;;AAEH,QAAO;;;;;AC3FR,SAAS,eAAe,eAAe,kBAAkB,gBAAgB;CACxE,MAAM,OAAO,OAAO,kBAAkB,WAAW,gBAAgB,KAAK;CACtE,MAAM,UAAU,OAAO,qBAAqB,WAAW,mBAAmB;CAC1E,MAAM,UAAU,OAAO,qBAAqB,aAAa,mBAAmB;AAC5E,MAAK,QAAQ,WAAW,SAAS,QAAQ,WAAW,WAAW,QAAQ,KAAM,OAAM,IAAI,gBAAgB,+CAA+C;AACtJ,KAAI,QAAQ,SAAS,KAAK,KAAK,CAAE,OAAM,IAAI,gBAAgB,0CAA0C;CACrG,MAAM,kBAAkB,OAAO,GAAG,aAAa;EAC9C,MAAM,UAAU,SAAS,MAAM,EAAE;EACjC,MAAM,EAAE,MAAM,iBAAiB,OAAO,oBAAoB,MAAM,SAAS,sBAAsB,SAAS;GACvG;GACA;GACA,CAAC,CAAC;AACH,MAAI,iBAAiB;AACpB,OAAI,EAAE,2BAA2B,iBAAkB,OAAM;AACzD,OAAI,QAAQ,kBAAmB,OAAM,QAAQ,kBAAkB;IAC9D,SAAS,gBAAgB;IACzB,QAAQ,gBAAgB;IACxB,CAAC;AACF,SAAM,IAAI,SAAS,KAAK;IACvB,SAAS,gBAAgB;IACzB,MAAM;IACN,CAAC;;EAEH,MAAM,WAAW,MAAM,QAAQ,gBAAgB,CAAC,MAAM,OAAO,MAAM;AAClE,OAAI,WAAW,EAAE,EAAE;IAClB,MAAM,aAAa,QAAQ;AAC3B,QAAI,WAAY,OAAM,WAAW,EAAE;AACnC,QAAI,QAAQ,WAAY,QAAO;;AAEhC,SAAM;IACL;EACF,MAAM,UAAU,gBAAgB;EAChC,MAAM,SAAS,gBAAgB;AAC/B,SAAO,QAAQ,aAAa,WAAW,UAAU;GAChD;GACA;GACA,CAAC,GAAG,QAAQ,gBAAgB,QAAQ,eAAe;GACnD;GACA;GACA;GACA,GAAG;GACH;GACA;GACA,GAAG,QAAQ,eAAe;GAC1B;GACA;GACA,GAAG;;AAEL,iBAAgB,UAAU;AAC1B,iBAAgB,OAAO;AACvB,QAAO;;AAER,eAAe,UAAU,SAAS;AACjC,SAAQ,MAAM,SAAS,YAAY;AAClC,SAAO,eAAe,MAAM;GAC3B,GAAG;GACH,KAAK,CAAC,GAAG,SAAS,OAAO,EAAE,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;GAChD,EAAE,QAAQ;;;;;;AC3Db,SAAS,iBAAiB,kBAAkB,SAAS;CACpD,MAAM,kBAAkB,OAAO,aAAa;EAC3C,MAAM,UAAU;EAChB,MAAM,WAAW,OAAO,qBAAqB,aAAa,mBAAmB;EAC7E,MAAM,kBAAkB,MAAM,sBAAsB,SAAS;GAC5D,SAAS,OAAO,qBAAqB,aAAa,EAAE,GAAG;GACvD,MAAM;GACN,CAAC;AACF,MAAI,CAAC,SAAU,OAAM,IAAI,MAAM,0BAA0B;EACzD,MAAM,WAAW,MAAM,SAAS,gBAAgB;EAChD,MAAM,UAAU,gBAAgB;AAChC,SAAO,QAAQ,gBAAgB;GAC9B;GACA;GACA,GAAG;;AAEL,iBAAgB,UAAU,OAAO,qBAAqB,aAAa,EAAE,GAAG;AACxE,QAAO;;AAER,iBAAiB,UAAU,SAAS;CACnC,SAAS,GAAG,kBAAkB,SAAS;AACtC,MAAI,OAAO,qBAAqB,WAAY,QAAO,iBAAiB,EAAE,KAAK,MAAM,KAAK,EAAE,iBAAiB;AACzG,MAAI,CAAC,QAAS,OAAM,IAAI,MAAM,iCAAiC;AAC/D,SAAO,iBAAiB;GACvB,GAAG;GACH,QAAQ;GACR,KAAK,CAAC,GAAG,MAAM,OAAO,EAAE,EAAE,GAAG,iBAAiB,OAAO,EAAE,CAAC;GACxD,EAAE,QAAQ;;AAEZ,QAAO;;;;;;ACCR,MAAM,2BAA2B,iBAAiB;CAChD,wBAAwB;CACxB,kBAAkB;CAClB,wBAAwB;CACxB,2CACE;CACF,oDACE;CACF,sBAAsB;CACtB,+CACE;CACF,yCACE;CACF,2CACE;CACH,CAAC;AAEF,MAAM,yBAGJ,QACG;AACH,QAAO,IAAI,QAAQ,SAAS,MACzB,WAAW,OAAO,OAAO,eAC3B;;AAuEH,MAAa,gBAAgB,qBAAqB,YAAY;AAC5D,QAAO,EAAE;EAaT;;;;;AAMF,MAAa,uBAAuB,qBAClC,EACE,KAAK,CAAC,kBAAkB,EACzB,EACD,OAAO,QAAQ;AAQb,QAAO,EACL,SARc,IAAI,QAAQ,SAS3B;EAEJ;;;;;;;;;;AAYD,MAAM,8BAA8B,YAAwC;CAE1E,MAAM,mBAAmB,EAAE,OAAO;EAChC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EACpD,aACE,0HACH,CAAC;EACF,UAAU,EAAE,QAAQ,CAAC,KAAK,EACxB,aAAa,gEACd,CAAC;EACF,gBAAgB,EACb,QAAQ,CACR,KAAK,EACJ,aACE,iMACH,CAAC,CACD,UAAU;EAEb,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,EACpC,aAAa,4BACd,CAAC;EACF,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,EACnC,aAAa,2BACd,CAAC;EACF,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,EACjC,aAAa,4BACd,CAAC;EACF,QAAQ,EAAE,KAAK,CAAC,UAAU,WAAW,CAAC,CAAC,UAAU;EAClD,CAAC;CAQF,MAAM,EAAE,QAAQ,SAAS,GAAG,kCANG,YAAY;EACzC,QAAQ,SAAS,QAAQ,QAAQ,oBAAoB,EAAE;EACvD,cAAc;EACf,CAAC,CAIuB;AAEzB,QAAO,mBACL,+BACA;EACE,QAAQ;EACR,MAAM,EAAE,OAAO;GACb,GAAG,iBAAiB;GACpB,GAAG,8BAA8B;GAClC,CAAC;EACF,KAAK,CAAC,eAAe,qBAAqB;EAC1C,gBAAgB;EAChB,UAAU;GACR,QAAQ,EACN,MAAM,EAAE,EAYT;GACD,SAAS;IACP,aAAa;IACb,aAAa;IACb,WAAW,EACT,OAAO;KACL,aAAa;KACb,SAAS,EACP,oBAAoB,EAClB,QAAQ;MACN,MAAM;MACN,YAAY;OACV,IAAI,EACF,MAAM,UACP;OACD,QAAQ,EACN,MAAM,UACP;OACD,gBAAgB,EACd,MAAM,UACP;OACD,WAAW,EACT,MAAM,UACP;OACD,UAAU,EACR,MAAM,UACP;OACD,QAAQ,EACN,MAAM,UACP;OACD,QAAQ,EACN,MAAM,UACP;OACF;MACD,UAAU;OAAC;OAAM;OAAU;OAAkB;OAAO;MACrD,EACF,EACF;KACF,EACF;IACF;GACF;EACF,EACD,OAAO,QAAQ;EACb,MAAM,UAAU,IAAI,QAAQ;EAE5B,MAAM,qBAAqB,sBAAsB,IAAI,QAAQ;AAC7D,MAAI,CAAC,mBACH,OAAM,IAAI,MACR,8DACD;AAGH,MAAI,CAAC,IAAI,KAAK,KACZ,OAAM,IAAI,SAAS,cAAc;EAGnC,MAAM,iBACJ,IAAI,KAAK,kBAAkB,QAAQ,QAAQ;AAE7C,MAAI,CAAC,eACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,yBAAyB,wBACnC,CAAC;EAGJ,MAAM,UAAU,cAAc,IAAI,SAAS,mBAAmB,QAAQ;EACtE,MAAMC,YAAsB,MAAM,QAAQ,IAAI,KAAK,KAAK,GACpD,IAAI,KAAK,OACT,IAAI,KAAK,OACP,CAAC,IAAI,KAAK,KAAK,GACf,EAAE;EAER,MAAM,SAAS,MAAM,QAAQ,kBAAkB;GAC7C,QAAQ,QAAQ,KAAK;GACL;GACjB,CAAC;AAEF,MAAI,CAAC,OACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,yBAAyB,kBACnC,CAAC;EAGJ,MAAM,oBACJ,OAAO,OAAO,IAAI,KAAK,WACnB,MAAM,QAAQ,eAAe,IAAI,KAAK,SAAS,GAC/C;AAEN,MAAI,CAAC,kBACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,yBAAyB,kBACnC,CAAC;AAMJ,MAAI,EAFF,kBAAkB,mBAAmB,gBAGrC,OAAM,IAAI,SAAS,aAAa,EAC9B,SACE,yBAAyB,2CAC5B,CAAC;EAGJ,MAAM,cAAc,mBAAmB,SAAS,eAAe;EAE/D,MAAM,sBAAsB,OAAO,KAAK,MAAM,IAAI;EAGlD,MAAM,oBAFyB,kBAAkB,KAAK,MAAM,IAAI,CAEf,SAAS,YAAY;EACtE,MAAM,mBAAmB,oBAAoB,SAAS,YAAY;EAElE,MAAM,uBAAuB,UAAU,SAAS,YAAY;EAE5D,MAAM,6BAA6B,OAAO,OAAO,kBAAkB;AAEnE,MACG,qBAAqB,CAAC,oBACtB,wBAAwB,CAAC,iBAE1B,OAAM,IAAI,SAAS,aAAa,EAC9B,SACE,yBAAyB,2CAC5B,CAAC;AAGJ,MAAI,oBAAoB,4BAgBtB;QAfgB,MAAM,IAAI,QAAQ,QAAQ,SAExC;IACA,OAAO;IACP,OAAO,CACL;KACE,OAAO;KACP,OAAO;KACR,CACF;IACF,CAAC,EACqB,QAAQ,aAAmB;AAEhD,WADcC,SAAO,KAAK,MAAM,IAAI,CACvB,SAAS,YAAY;KAClC,CACS,UAAU,KAAK,CAAC,qBACzB,OAAM,IAAI,SAAS,eAAe,EAChC,SACE,yBAAyB,oDAC5B,CAAC;;AAgBN,MAAI,CAToB,wBAAwB;GAC9C,MAAM,OAAO;GACb,SAAS,mBAAmB;GAC5B,aAAa,EACX,QAAQ,CAAC,SAAS,EACnB;GACD,4BAA4B;GAC7B,CAAC,CAGA,OAAM,IAAI,SAAS,aAAa,EAC9B,SACE,yBAAyB,2CAC5B,CAAC;EAIJ,MAAM,eAAe,MAAM,QAAQ,qBAAqB,eAAe;AAEvE,MAAI,CAAC,aACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,yBAAyB,wBACnC,CAAC;EAGJ,MAAM,mBAAmB,MAAM,IAAI,QAAQ,gBAAgB,aACzD,kBAAkB,OACnB;AAED,MAAI,CAAC,iBACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,iBAAiB,gBAC3B,CAAC;EAIJ,MAAM,EAAE,UAAU,GAAG,gBAAgB,IAAI,GAAG,YAAY,IAAI;EAE5D,IAAIC,eAAoC;AAGxC,MAAI,SAAS,yBAAyB,oBAAoB;GACxD,MAAM,WACJ,MAAM,QAAQ,wBAAwB,mBAAmB;IACvD,QAAQ;IACR;IACA,MAAM;IACQ;IAIf,CAAC;AACJ,OAAI,YAAY,OAAO,aAAa,YAAY,UAAU,SACxD,gBAAe,SAAS;;EAM5B,MAAM,gBAAgB,MAAM,IAAI,QAAQ,QAAQ,OAE9C;GACA,OAAO;GACP,OAAO,CAAC;IAAE,OAAO;IAAM,OAAO,IAAI,KAAK;IAAU,CAAC;GAClD,QAAQ;GACT,CAAC;AAEF,MAAI,CAAC,cACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,yBAAyB,kBACnC,CAAC;AAIJ,MAAI,SAAS,yBAAyB,kBACpC,OAAM,QAAQ,wBAAwB,kBAAkB;GACtD,QAAQ;GACR,MAAM;GACQ;GAIf,CAAC;AAGJ,SAAO,IAAI,KAAK,cAAc;GAEjC;;AAGH,MAAM,gCAAgC;AACpC,QAAO,mBACL,4BACA;EACE,QAAQ;EACR,OAAO,EAAE,OAAO;GACd,QAAQ,EAAE,QAAQ,CAAC,KAAK,EACtB,aAAa,0DACd,CAAC,CAAC,UAAU;GACb,gBAAgB,EACb,QAAQ,CACR,KAAK,EACJ,aACE,6IACH,CAAC,CACD,UAAU;GACb,kBAAkB,EACf,QAAQ,CACR,KAAK,EACJ,aACE,uIACH,CAAC,CACD,UAAU;GACd,CAAC;EACF,KAAK,CAAC,eAAe,qBAAqB;EAC1C,gBAAgB;EAChB,UAAU;GACR,QAAQ,EACN,OAAO,EAAE,EAKV;GACD,SAAS;IACP,aAAa;IACb,aAAa;IACb,WAAW,EACT,OAAO;KACL,aAAa;KACb,SAAS,EACP,oBAAoB,EAClB,QAAQ;MACN,MAAM;MACN,YAAY;OACV,IAAI,EACF,MAAM,UACP;OACD,QAAQ,EACN,MAAM,UACP;OACD,gBAAgB,EACd,MAAM,UACP;OACD,MAAM,EACJ,MAAM,UACP;OACD,WAAW,EACT,MAAM,UACP;OACD,UAAU,EACR,MAAM,UACP;OACD,QAAQ,EACN,MAAM,UACP;OACD,QAAQ,EACN,MAAM,UACP;OACD,WAAW;QACT,MAAM;QACN,QAAQ;QACT;OACF;MACD,UAAU;OAAC;OAAM;OAAU;OAAkB;OAAO;MACrD,EACF,EACF;KACF,EACF;IACF;GACF;EACF,EACD,OAAO,QAAQ;EACb,MAAM,UAAU,IAAI,QAAQ;EAE5B,MAAM,qBAAqB,sBAAsB,IAAI,QAAQ;AAC7D,MAAI,CAAC,mBACH,OAAM,IAAI,MACR,8DACD;EAGH,MAAM,UAAU,cAAc,IAAI,SAAS,mBAAmB,QAAQ;EAGtE,IAAI,iBACF,IAAI,OAAO,kBAAkB,QAAQ,QAAQ;EAE/C,MAAM,SAAS,IAAI,MAAM,UAAU,QAAQ,KAAK;AAChD,MAAI,CAAC,OACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,iBAAiB,gBAC3B,CAAC;AAGJ,MAAI,IAAI,OAAO,kBAAkB;GAC/B,MAAM,eAAe,MAAM,QAAQ,uBACjC,IAAI,MAAM,iBACX;AACD,OAAI,CAAC,aACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,yBAAyB,wBACnC,CAAC;AAEJ,oBAAiB,aAAa;;AAGhC,MAAI,CAAC,eACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,yBAAyB,wBACnC,CAAC;EAIJ,MAAM,oBAAoB,MAAM,QAAQ,kBAAkB;GACxD,QAAQ,QAAQ,KAAK;GACL;GACjB,CAAC;AAEF,MAAI,CAAC,kBACH,OAAM,IAAI,SAAS,aAAa,EAC9B,SACE,yBAAyB,2CAC5B,CAAC;AAIJ,MAAG,CAAC,IAAI,MAAM,WAAW,IAAI,MAAM,oBAAoB,IAAI,MAAM,gBAC/D,QAAO,IAAI,KAAK,kBAAkB;EAIpC,MAAM,kBAAkB,MAAM,QAAQ,kBAAkB;GAC9C;GACQ;GACjB,CAAC;AAEF,MAAI,CAAC,gBACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,yBAAyB,kBACnC,CAAC;AAGJ,SAAO,IAAI,KAAK,gBAAgB;GAEnC;;AAGH,MAAM,kCACJ,YACG;CACH,MAAM,uBAAuB,EAAE,OAAO;EACpC,cAAc,EAAE,QAAQ,CAAC,KAAK,EAC5B,aAAa,sDACd,CAAC;EACF,gBAAgB,EACb,QAAQ,CACR,KAAK,EACJ,aACE,0KACH,CAAC,CACD,UAAU;EACd,CAAC;CAEF,MAAM,yBAAyB,YAAY;EACzC,QAAQ,SAAS,QAAQ,YAAY,oBAAoB,EAAE;EAC3D,cAAc;EACf,CAAC;AAEF,QAAO,mBACL,mCACA;EACE,QAAQ;EACR,MAAM,EAAE,OAAO;GACb,GAAG,qBAAqB;GACxB,GAAG,uBAAuB;GAC1B,MAAM,EACH,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CACxC,UAAU,CACV,KAAK,EACJ,aACE,0HACH,CAAC;GACL,CAAC;EACF,KAAK,CAAC,eAAe,qBAAqB;EAC1C,gBAAgB;EAChB,UAAU;GACR,QAAQ,EACN,MAAM,EAAE,EAQT;GACD,SAAS;IACP,aAAa;IACb,aAAa;IACb,WAAW,EACT,OAAO;KACL,aAAa;KACb,SAAS,EACP,oBAAoB,EAClB,QAAQ;MACN,MAAM;MACN,YAAY;OACV,IAAI,EACF,MAAM,UACP;OACD,gBAAgB,EACd,MAAM,UACP;OACD,OAAO,EACL,MAAM,UACP;OACD,MAAM,EACJ,MAAM,UACP;OACD,QAAQ,EACN,MAAM,UACP;OACD,WAAW;QACT,MAAM;QACN,QAAQ;QACR,aAAa;QACd;OACD,WAAW;QACT,MAAM;QACN,QAAQ;QACR,aAAa;QACd;OACF;MACD,UAAU;OACR;OACA;OACA;OACA;OACA;OACD;MACF,EACF,EACF;KACF,EACF;IACF;GACF;EACF,EACD,OAAO,QAAQ;EACb,MAAM,UAAU,IAAI,QAAQ;EAE5B,MAAM,qBAAqB,sBAAsB,IAAI,QAAQ;AAC7D,MAAI,CAAC,mBACH,OAAM,IAAI,MACR,8DACD;EAGH,MAAM,iBACJ,IAAI,KAAK,kBAAkB,QAAQ,QAAQ;AAE7C,MAAI,CAAC,eACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,yBAAyB,wBACnC,CAAC;EAGJ,MAAM,UAAU,cAAc,IAAI,SAAS,mBAAmB,QAAQ;EAGtE,MAAM,SAAS,MAAM,QAAQ,kBAAkB;GAC7C,QAAQ,QAAQ,KAAK;GACL;GACjB,CAAC;AAEF,MAAI,CAAC,OACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,yBAAyB,kBACnC,CAAC;AAaJ,MAAI,CATyB,wBAAwB;GACnD,MAAM,OAAO;GACb,SAAS,mBAAmB;GAC5B,aAAa,EACX,YAAY,CAAC,SAAS,EACvB;GACD,4BAA4B;GAC7B,CAAC,CAGA,OAAM,IAAI,SAAS,aAAa,EAC9B,SACE,yBAAyB,+CAC5B,CAAC;EAIJ,MAAM,aAAa,MAAM,QAAQ,mBAC/B,IAAI,KAAK,aACV;AAED,MAAI,CAAC,WACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,yBAAyB,sBACnC,CAAC;AAIJ,MAAI,WAAW,mBAAmB,eAChC,OAAM,IAAI,SAAS,aAAa,EAC9B,SACE,yBAAyB,+CAC5B,CAAC;AAIJ,MAAI,WAAW,WAAW,UACxB,OAAM,IAAI,SAAS,eAAe,EAChC,SACE,yBAAyB,yCAC5B,CAAC;EAIJ,MAAM,eAAe,MAAM,QAAQ,qBAAqB,eAAe;AAEvE,MAAI,CAAC,aACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,yBAAyB,wBACnC,CAAC;EAIJ,MAAM,EAAE,cAAc,GAAG,gBAAgB,IAAI,GAAG,YAAY,IAAI;EAEhE,IAAIA,eAAoC;AAGxC,MAAI,SAAS,yBAAyB,wBAAwB;GAC5D,MAAM,WACJ,MAAM,QAAQ,wBAAwB,uBAAuB;IAC3D;IACA;IACA,SAAS,QAAQ;IACjB;IACD,CAAC;AACJ,OAAI,YAAY,OAAO,aAAa,YAAY,UAAU,SACxD,gBAAe,SAAS;;EAK5B,MAAM,oBAAoB,MAAM,IAAI,QAAQ,QAAQ,OAElD;GACA,OAAO;GACP,OAAO,CAAC;IAAE,OAAO;IAAM,OAAO,IAAI,KAAK;IAAc,CAAC;GACtD,QAAQ;GACT,CAAC;AAEF,MAAI,CAAC,kBACH,OAAM,IAAI,SAAS,eAAe,EAChC,SAAS,yBAAyB,sBACnC,CAAC;AAIJ,MAAI,SAAS,yBAAyB,sBACpC,OAAM,QAAQ,wBAAwB,sBAAsB;GAC1D,YAAY;GACZ,SAAS,QAAQ;GACjB;GACD,CAAC;AAGJ,SAAO,IAAI,KAAK,kBAAkB;GAErC;;AAGH,MAAa,sBACX,eACqB;AACN,IACb,GAAG,YACJ;AAED,QAAO;EACL,IAAI;EACJ,KAAK,KAAK;GACR,MAAM,qBAAqB,sBAAsB,IAAI;AACrD,OAAI,CAAC,mBACH,OAAM,IAAI,MACR,8DACD;AAIH,OAAI,CAAC,mBAAmB,QAAQ,kBAC9B,oBAAmB,QAAQ,oBAAoB,EAAE;GAGnD,MAAM,gCACJ,mBAAmB,QAAQ,mBAAmB;AAChD,sBAAmB,QAAQ,kBAAkB,wBAC3C,OAAO,SAAS;AACd,UAAM,gCAAgC,KAAK;AAE3C,QAAI;KACF,MAAM,EAAE,YAAY,WAAW;KAC/B,MAAMC,aAAsC,EAAE;AAG9C,UAAK,MAAM,SAAS,OAAO,KACzB,mBAAmB,SAAS,QAAQ,YAChC,oBAAoB,EAAE,CAC3B,EAAE;MACD,MAAM,YACJ,mBAAmB,SAAS,QAAQ,YAChC,mBAAmB,QAAQ,aAAa;AAC9C,iBAAW,aAAa,WAAW;;AAIrC,SAAI,OAAO,KAAK,WAAW,CAAC,SAAS,GAAG;AACtC,YAAM,IAAI,QAAQ,OAAO;OACvB,OAAO;OACP,OAAO,CAAC;QAAE,OAAO;QAAM,OAAO,OAAO;QAAI,CAAC;OAC1C,QAAQ;OACT,CAAC;AAEF,UAAI,QAAQ,KAAK,0CAA0C;OACzD,UAAU,OAAO;OACjB,QAAQ,OAAO,KAAK,WAAW;OAChC,CAAC;;aAEG,OAAO;AACd,SAAI,QAAQ,MACV,mDACA,MACD;;;;EAKT,WAAW;GACT,WAAW,yBAAyB;GACpC,cAAc,2BAA2B,WAAW;GACpD,kBAAkB,+BAA+B,WAAW;GAC7D;EACD,SAAS;EACT,cAAc;EACf"}
|