better-auth 1.2.2-beta.5 → 1.2.2

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.
@@ -660,7 +660,7 @@ declare const adminClient: <O extends AdminClientOptions>(options?: O) => {
660
660
  id: "better-auth-client";
661
661
  $InferServerPlugin: ReturnType<typeof admin<{
662
662
  ac: O["ac"] extends AccessControl ? O["ac"] : AccessControl<{
663
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
663
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
664
664
  readonly session: readonly ["list", "revoke", "delete"];
665
665
  }>;
666
666
  roles: O["roles"] extends Record<string, Role> ? O["roles"] : {
@@ -675,10 +675,10 @@ declare const adminClient: <O extends AdminClientOptions>(options?: O) => {
675
675
  } ? keyof O["roles"] : "admin" | "user">(data: {
676
676
  role: R;
677
677
  permission: { [key in keyof (O["ac"] extends AccessControl<infer S extends Statements> ? S : {
678
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
678
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
679
679
  readonly session: readonly ["list", "revoke", "delete"];
680
680
  })]?: (O["ac"] extends AccessControl<infer S extends Statements> ? S : {
681
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
681
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
682
682
  readonly session: readonly ["list", "revoke", "delete"];
683
683
  })[key][number][]; };
684
684
  }) => boolean;
@@ -660,7 +660,7 @@ declare const adminClient: <O extends AdminClientOptions>(options?: O) => {
660
660
  id: "better-auth-client";
661
661
  $InferServerPlugin: ReturnType<typeof admin<{
662
662
  ac: O["ac"] extends AccessControl ? O["ac"] : AccessControl<{
663
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
663
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
664
664
  readonly session: readonly ["list", "revoke", "delete"];
665
665
  }>;
666
666
  roles: O["roles"] extends Record<string, Role> ? O["roles"] : {
@@ -675,10 +675,10 @@ declare const adminClient: <O extends AdminClientOptions>(options?: O) => {
675
675
  } ? keyof O["roles"] : "admin" | "user">(data: {
676
676
  role: R;
677
677
  permission: { [key in keyof (O["ac"] extends AccessControl<infer S extends Statements> ? S : {
678
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
678
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
679
679
  readonly session: readonly ["list", "revoke", "delete"];
680
680
  })]?: (O["ac"] extends AccessControl<infer S extends Statements> ? S : {
681
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
681
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
682
682
  readonly session: readonly ["list", "revoke", "delete"];
683
683
  })[key][number][]; };
684
684
  }) => boolean;
@@ -660,7 +660,7 @@ declare const adminClient: <O extends AdminClientOptions>(options?: O) => {
660
660
  id: "better-auth-client";
661
661
  $InferServerPlugin: ReturnType<typeof admin<{
662
662
  ac: O["ac"] extends AccessControl ? O["ac"] : AccessControl<{
663
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
663
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
664
664
  readonly session: readonly ["list", "revoke", "delete"];
665
665
  }>;
666
666
  roles: O["roles"] extends Record<string, Role> ? O["roles"] : {
@@ -675,10 +675,10 @@ declare const adminClient: <O extends AdminClientOptions>(options?: O) => {
675
675
  } ? keyof O["roles"] : "admin" | "user">(data: {
676
676
  role: R;
677
677
  permission: { [key in keyof (O["ac"] extends AccessControl<infer S extends Statements> ? S : {
678
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
678
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
679
679
  readonly session: readonly ["list", "revoke", "delete"];
680
680
  })]?: (O["ac"] extends AccessControl<infer S extends Statements> ? S : {
681
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
681
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
682
682
  readonly session: readonly ["list", "revoke", "delete"];
683
683
  })[key][number][]; };
684
684
  }) => boolean;
@@ -4,12 +4,28 @@ const plugins_access_index = require('../../access/index.cjs');
4
4
  require('../../../shared/better-auth.ANpbi45u.cjs');
5
5
 
6
6
  const defaultStatements = {
7
- user: ["create", "list", "set-role", "ban", "impersonate", "delete"],
7
+ user: [
8
+ "create",
9
+ "list",
10
+ "set-role",
11
+ "ban",
12
+ "impersonate",
13
+ "delete",
14
+ "set-password"
15
+ ],
8
16
  session: ["list", "revoke", "delete"]
9
17
  };
10
18
  const defaultAc = plugins_access_index.createAccessControl(defaultStatements);
11
19
  const adminAc = defaultAc.newRole({
12
- user: ["create", "list", "set-role", "ban", "impersonate", "delete"],
20
+ user: [
21
+ "create",
22
+ "list",
23
+ "set-role",
24
+ "ban",
25
+ "impersonate",
26
+ "delete",
27
+ "set-password"
28
+ ],
13
29
  session: ["list", "revoke", "delete"]
14
30
  });
15
31
  const userAc = defaultAc.newRole({
@@ -3,111 +3,111 @@ import '../../../shared/better-auth.Bi8FQwDD.cjs';
3
3
  import 'zod';
4
4
 
5
5
  declare const defaultStatements: {
6
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
6
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
7
7
  readonly session: readonly ["list", "revoke", "delete"];
8
8
  };
9
9
  declare const defaultAc: {
10
10
  newRole<K extends "session" | "user">(statements: Subset<K, {
11
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
11
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
12
12
  readonly session: readonly ["list", "revoke", "delete"];
13
13
  }>): {
14
14
  authorize<K_1 extends K>(request: K_1 extends infer T extends keyof Subset<K, {
15
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
15
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
16
16
  readonly session: readonly ["list", "revoke", "delete"];
17
17
  }> ? { [key in T]?: Subset<K, {
18
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
18
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
19
19
  readonly session: readonly ["list", "revoke", "delete"];
20
20
  }>[key] | {
21
21
  actions: Subset<K, {
22
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
22
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
23
23
  readonly session: readonly ["list", "revoke", "delete"];
24
24
  }>[key];
25
25
  connector: "OR" | "AND";
26
26
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
27
27
  statements: Subset<K, {
28
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
28
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
29
29
  readonly session: readonly ["list", "revoke", "delete"];
30
30
  }>;
31
31
  };
32
32
  statements: {
33
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
33
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
34
34
  readonly session: readonly ["list", "revoke", "delete"];
35
35
  };
36
36
  };
37
37
  declare const adminAc: {
38
38
  authorize<K extends "session" | "user">(request: K extends infer T extends keyof Subset<"session" | "user", {
39
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
39
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
40
40
  readonly session: readonly ["list", "revoke", "delete"];
41
41
  }> ? { [key in T]?: Subset<"session" | "user", {
42
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
42
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
43
43
  readonly session: readonly ["list", "revoke", "delete"];
44
44
  }>[key] | {
45
45
  actions: Subset<"session" | "user", {
46
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
46
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
47
47
  readonly session: readonly ["list", "revoke", "delete"];
48
48
  }>[key];
49
49
  connector: "OR" | "AND";
50
50
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
51
51
  statements: Subset<"session" | "user", {
52
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
52
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
53
53
  readonly session: readonly ["list", "revoke", "delete"];
54
54
  }>;
55
55
  };
56
56
  declare const userAc: {
57
57
  authorize<K extends "session" | "user">(request: K extends infer T extends keyof Subset<"session" | "user", {
58
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
58
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
59
59
  readonly session: readonly ["list", "revoke", "delete"];
60
60
  }> ? { [key in T]?: Subset<"session" | "user", {
61
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
61
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
62
62
  readonly session: readonly ["list", "revoke", "delete"];
63
63
  }>[key] | {
64
64
  actions: Subset<"session" | "user", {
65
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
65
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
66
66
  readonly session: readonly ["list", "revoke", "delete"];
67
67
  }>[key];
68
68
  connector: "OR" | "AND";
69
69
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
70
70
  statements: Subset<"session" | "user", {
71
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
71
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
72
72
  readonly session: readonly ["list", "revoke", "delete"];
73
73
  }>;
74
74
  };
75
75
  declare const defaultRoles: {
76
76
  admin: {
77
77
  authorize<K extends "session" | "user">(request: K extends infer T extends keyof Subset<"session" | "user", {
78
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
78
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
79
79
  readonly session: readonly ["list", "revoke", "delete"];
80
80
  }> ? { [key in T]?: Subset<"session" | "user", {
81
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
81
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
82
82
  readonly session: readonly ["list", "revoke", "delete"];
83
83
  }>[key] | {
84
84
  actions: Subset<"session" | "user", {
85
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
85
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
86
86
  readonly session: readonly ["list", "revoke", "delete"];
87
87
  }>[key];
88
88
  connector: "OR" | "AND";
89
89
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
90
90
  statements: Subset<"session" | "user", {
91
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
91
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
92
92
  readonly session: readonly ["list", "revoke", "delete"];
93
93
  }>;
94
94
  };
95
95
  user: {
96
96
  authorize<K extends "session" | "user">(request: K extends infer T extends keyof Subset<"session" | "user", {
97
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
97
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
98
98
  readonly session: readonly ["list", "revoke", "delete"];
99
99
  }> ? { [key in T]?: Subset<"session" | "user", {
100
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
100
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
101
101
  readonly session: readonly ["list", "revoke", "delete"];
102
102
  }>[key] | {
103
103
  actions: Subset<"session" | "user", {
104
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
104
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
105
105
  readonly session: readonly ["list", "revoke", "delete"];
106
106
  }>[key];
107
107
  connector: "OR" | "AND";
108
108
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
109
109
  statements: Subset<"session" | "user", {
110
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
110
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
111
111
  readonly session: readonly ["list", "revoke", "delete"];
112
112
  }>;
113
113
  };
@@ -3,111 +3,111 @@ import '../../../shared/better-auth.Bi8FQwDD.mjs';
3
3
  import 'zod';
4
4
 
5
5
  declare const defaultStatements: {
6
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
6
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
7
7
  readonly session: readonly ["list", "revoke", "delete"];
8
8
  };
9
9
  declare const defaultAc: {
10
10
  newRole<K extends "session" | "user">(statements: Subset<K, {
11
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
11
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
12
12
  readonly session: readonly ["list", "revoke", "delete"];
13
13
  }>): {
14
14
  authorize<K_1 extends K>(request: K_1 extends infer T extends keyof Subset<K, {
15
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
15
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
16
16
  readonly session: readonly ["list", "revoke", "delete"];
17
17
  }> ? { [key in T]?: Subset<K, {
18
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
18
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
19
19
  readonly session: readonly ["list", "revoke", "delete"];
20
20
  }>[key] | {
21
21
  actions: Subset<K, {
22
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
22
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
23
23
  readonly session: readonly ["list", "revoke", "delete"];
24
24
  }>[key];
25
25
  connector: "OR" | "AND";
26
26
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
27
27
  statements: Subset<K, {
28
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
28
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
29
29
  readonly session: readonly ["list", "revoke", "delete"];
30
30
  }>;
31
31
  };
32
32
  statements: {
33
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
33
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
34
34
  readonly session: readonly ["list", "revoke", "delete"];
35
35
  };
36
36
  };
37
37
  declare const adminAc: {
38
38
  authorize<K extends "session" | "user">(request: K extends infer T extends keyof Subset<"session" | "user", {
39
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
39
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
40
40
  readonly session: readonly ["list", "revoke", "delete"];
41
41
  }> ? { [key in T]?: Subset<"session" | "user", {
42
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
42
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
43
43
  readonly session: readonly ["list", "revoke", "delete"];
44
44
  }>[key] | {
45
45
  actions: Subset<"session" | "user", {
46
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
46
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
47
47
  readonly session: readonly ["list", "revoke", "delete"];
48
48
  }>[key];
49
49
  connector: "OR" | "AND";
50
50
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
51
51
  statements: Subset<"session" | "user", {
52
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
52
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
53
53
  readonly session: readonly ["list", "revoke", "delete"];
54
54
  }>;
55
55
  };
56
56
  declare const userAc: {
57
57
  authorize<K extends "session" | "user">(request: K extends infer T extends keyof Subset<"session" | "user", {
58
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
58
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
59
59
  readonly session: readonly ["list", "revoke", "delete"];
60
60
  }> ? { [key in T]?: Subset<"session" | "user", {
61
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
61
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
62
62
  readonly session: readonly ["list", "revoke", "delete"];
63
63
  }>[key] | {
64
64
  actions: Subset<"session" | "user", {
65
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
65
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
66
66
  readonly session: readonly ["list", "revoke", "delete"];
67
67
  }>[key];
68
68
  connector: "OR" | "AND";
69
69
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
70
70
  statements: Subset<"session" | "user", {
71
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
71
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
72
72
  readonly session: readonly ["list", "revoke", "delete"];
73
73
  }>;
74
74
  };
75
75
  declare const defaultRoles: {
76
76
  admin: {
77
77
  authorize<K extends "session" | "user">(request: K extends infer T extends keyof Subset<"session" | "user", {
78
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
78
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
79
79
  readonly session: readonly ["list", "revoke", "delete"];
80
80
  }> ? { [key in T]?: Subset<"session" | "user", {
81
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
81
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
82
82
  readonly session: readonly ["list", "revoke", "delete"];
83
83
  }>[key] | {
84
84
  actions: Subset<"session" | "user", {
85
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
85
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
86
86
  readonly session: readonly ["list", "revoke", "delete"];
87
87
  }>[key];
88
88
  connector: "OR" | "AND";
89
89
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
90
90
  statements: Subset<"session" | "user", {
91
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
91
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
92
92
  readonly session: readonly ["list", "revoke", "delete"];
93
93
  }>;
94
94
  };
95
95
  user: {
96
96
  authorize<K extends "session" | "user">(request: K extends infer T extends keyof Subset<"session" | "user", {
97
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
97
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
98
98
  readonly session: readonly ["list", "revoke", "delete"];
99
99
  }> ? { [key in T]?: Subset<"session" | "user", {
100
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
100
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
101
101
  readonly session: readonly ["list", "revoke", "delete"];
102
102
  }>[key] | {
103
103
  actions: Subset<"session" | "user", {
104
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
104
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
105
105
  readonly session: readonly ["list", "revoke", "delete"];
106
106
  }>[key];
107
107
  connector: "OR" | "AND";
108
108
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
109
109
  statements: Subset<"session" | "user", {
110
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
110
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
111
111
  readonly session: readonly ["list", "revoke", "delete"];
112
112
  }>;
113
113
  };
@@ -3,111 +3,111 @@ import '../../../shared/better-auth.Bi8FQwDD.js';
3
3
  import 'zod';
4
4
 
5
5
  declare const defaultStatements: {
6
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
6
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
7
7
  readonly session: readonly ["list", "revoke", "delete"];
8
8
  };
9
9
  declare const defaultAc: {
10
10
  newRole<K extends "session" | "user">(statements: Subset<K, {
11
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
11
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
12
12
  readonly session: readonly ["list", "revoke", "delete"];
13
13
  }>): {
14
14
  authorize<K_1 extends K>(request: K_1 extends infer T extends keyof Subset<K, {
15
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
15
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
16
16
  readonly session: readonly ["list", "revoke", "delete"];
17
17
  }> ? { [key in T]?: Subset<K, {
18
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
18
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
19
19
  readonly session: readonly ["list", "revoke", "delete"];
20
20
  }>[key] | {
21
21
  actions: Subset<K, {
22
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
22
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
23
23
  readonly session: readonly ["list", "revoke", "delete"];
24
24
  }>[key];
25
25
  connector: "OR" | "AND";
26
26
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
27
27
  statements: Subset<K, {
28
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
28
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
29
29
  readonly session: readonly ["list", "revoke", "delete"];
30
30
  }>;
31
31
  };
32
32
  statements: {
33
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
33
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
34
34
  readonly session: readonly ["list", "revoke", "delete"];
35
35
  };
36
36
  };
37
37
  declare const adminAc: {
38
38
  authorize<K extends "session" | "user">(request: K extends infer T extends keyof Subset<"session" | "user", {
39
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
39
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
40
40
  readonly session: readonly ["list", "revoke", "delete"];
41
41
  }> ? { [key in T]?: Subset<"session" | "user", {
42
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
42
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
43
43
  readonly session: readonly ["list", "revoke", "delete"];
44
44
  }>[key] | {
45
45
  actions: Subset<"session" | "user", {
46
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
46
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
47
47
  readonly session: readonly ["list", "revoke", "delete"];
48
48
  }>[key];
49
49
  connector: "OR" | "AND";
50
50
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
51
51
  statements: Subset<"session" | "user", {
52
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
52
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
53
53
  readonly session: readonly ["list", "revoke", "delete"];
54
54
  }>;
55
55
  };
56
56
  declare const userAc: {
57
57
  authorize<K extends "session" | "user">(request: K extends infer T extends keyof Subset<"session" | "user", {
58
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
58
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
59
59
  readonly session: readonly ["list", "revoke", "delete"];
60
60
  }> ? { [key in T]?: Subset<"session" | "user", {
61
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
61
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
62
62
  readonly session: readonly ["list", "revoke", "delete"];
63
63
  }>[key] | {
64
64
  actions: Subset<"session" | "user", {
65
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
65
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
66
66
  readonly session: readonly ["list", "revoke", "delete"];
67
67
  }>[key];
68
68
  connector: "OR" | "AND";
69
69
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
70
70
  statements: Subset<"session" | "user", {
71
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
71
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
72
72
  readonly session: readonly ["list", "revoke", "delete"];
73
73
  }>;
74
74
  };
75
75
  declare const defaultRoles: {
76
76
  admin: {
77
77
  authorize<K extends "session" | "user">(request: K extends infer T extends keyof Subset<"session" | "user", {
78
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
78
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
79
79
  readonly session: readonly ["list", "revoke", "delete"];
80
80
  }> ? { [key in T]?: Subset<"session" | "user", {
81
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
81
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
82
82
  readonly session: readonly ["list", "revoke", "delete"];
83
83
  }>[key] | {
84
84
  actions: Subset<"session" | "user", {
85
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
85
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
86
86
  readonly session: readonly ["list", "revoke", "delete"];
87
87
  }>[key];
88
88
  connector: "OR" | "AND";
89
89
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
90
90
  statements: Subset<"session" | "user", {
91
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
91
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
92
92
  readonly session: readonly ["list", "revoke", "delete"];
93
93
  }>;
94
94
  };
95
95
  user: {
96
96
  authorize<K extends "session" | "user">(request: K extends infer T extends keyof Subset<"session" | "user", {
97
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
97
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
98
98
  readonly session: readonly ["list", "revoke", "delete"];
99
99
  }> ? { [key in T]?: Subset<"session" | "user", {
100
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
100
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
101
101
  readonly session: readonly ["list", "revoke", "delete"];
102
102
  }>[key] | {
103
103
  actions: Subset<"session" | "user", {
104
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
104
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
105
105
  readonly session: readonly ["list", "revoke", "delete"];
106
106
  }>[key];
107
107
  connector: "OR" | "AND";
108
108
  } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse;
109
109
  statements: Subset<"session" | "user", {
110
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
110
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
111
111
  readonly session: readonly ["list", "revoke", "delete"];
112
112
  }>;
113
113
  };
@@ -2,12 +2,28 @@ import { createAccessControl } from '../../access/index.mjs';
2
2
  import '../../../shared/better-auth.DdzSJf-n.mjs';
3
3
 
4
4
  const defaultStatements = {
5
- user: ["create", "list", "set-role", "ban", "impersonate", "delete"],
5
+ user: [
6
+ "create",
7
+ "list",
8
+ "set-role",
9
+ "ban",
10
+ "impersonate",
11
+ "delete",
12
+ "set-password"
13
+ ],
6
14
  session: ["list", "revoke", "delete"]
7
15
  };
8
16
  const defaultAc = createAccessControl(defaultStatements);
9
17
  const adminAc = defaultAc.newRole({
10
- user: ["create", "list", "set-role", "ban", "impersonate", "delete"],
18
+ user: [
19
+ "create",
20
+ "list",
21
+ "set-role",
22
+ "ban",
23
+ "impersonate",
24
+ "delete",
25
+ "set-password"
26
+ ],
11
27
  session: ["list", "revoke", "delete"]
12
28
  });
13
29
  const userAc = defaultAc.newRole({
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const admin = require('../../shared/better-auth.BWtlZYUl.cjs');
3
+ const admin = require('../../shared/better-auth.CuAZQpGO.cjs');
4
4
  require('zod');
5
5
  require('better-call');
6
6
  require('../../shared/better-auth.BzKRBwSF.cjs');
@@ -1193,6 +1193,30 @@ declare const admin: <O extends AdminOptions>(options?: O) => {
1193
1193
  [key: string]: Role;
1194
1194
  };
1195
1195
  }>)[];
1196
+ metadata: {
1197
+ openapi: {
1198
+ operationId: string;
1199
+ summary: string;
1200
+ description: string;
1201
+ responses: {
1202
+ 200: {
1203
+ description: string;
1204
+ content: {
1205
+ "application/json": {
1206
+ schema: {
1207
+ type: "object";
1208
+ properties: {
1209
+ status: {
1210
+ type: string;
1211
+ };
1212
+ };
1213
+ };
1214
+ };
1215
+ };
1216
+ };
1217
+ };
1218
+ };
1219
+ };
1196
1220
  } & {
1197
1221
  use: any[];
1198
1222
  };
@@ -1202,10 +1226,10 @@ declare const admin: <O extends AdminOptions>(options?: O) => {
1202
1226
  <C extends [{
1203
1227
  body: {
1204
1228
  permission: { [key in keyof (O["ac"] extends AccessControl<infer S extends Statements> ? S : {
1205
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
1229
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
1206
1230
  readonly session: readonly ["list", "revoke", "delete"];
1207
1231
  })]?: Array<(O["ac"] extends AccessControl<infer S extends Statements> ? S : {
1208
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
1232
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
1209
1233
  readonly session: readonly ["list", "revoke", "delete"];
1210
1234
  })[key][number]>; };
1211
1235
  userId?: string;
@@ -1293,10 +1317,10 @@ declare const admin: <O extends AdminOptions>(options?: O) => {
1293
1317
  $Infer: {
1294
1318
  body: {
1295
1319
  permission: { [key in keyof (O["ac"] extends AccessControl<infer S extends Statements> ? S : {
1296
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
1320
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
1297
1321
  readonly session: readonly ["list", "revoke", "delete"];
1298
1322
  })]?: Array<(O["ac"] extends AccessControl<infer S extends Statements> ? S : {
1299
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
1323
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
1300
1324
  readonly session: readonly ["list", "revoke", "delete"];
1301
1325
  })[key][number]>; };
1302
1326
  userId?: string;
@@ -1322,6 +1346,7 @@ declare const admin: <O extends AdminOptions>(options?: O) => {
1322
1346
  readonly YOU_ARE_NOT_ALLOWED_TO_IMPERSONATE_USERS: "You are not allowed to impersonate users";
1323
1347
  readonly YOU_ARE_NOT_ALLOWED_TO_REVOKE_USERS_SESSIONS: "You are not allowed to revoke users sessions";
1324
1348
  readonly YOU_ARE_NOT_ALLOWED_TO_DELETE_USERS: "You are not allowed to delete users";
1349
+ readonly YOU_ARE_NOT_ALLOWED_TO_SET_USERS_PASSWORD: "You are not allowed to set users password";
1325
1350
  };
1326
1351
  schema: {
1327
1352
  user: {
@@ -1193,6 +1193,30 @@ declare const admin: <O extends AdminOptions>(options?: O) => {
1193
1193
  [key: string]: Role;
1194
1194
  };
1195
1195
  }>)[];
1196
+ metadata: {
1197
+ openapi: {
1198
+ operationId: string;
1199
+ summary: string;
1200
+ description: string;
1201
+ responses: {
1202
+ 200: {
1203
+ description: string;
1204
+ content: {
1205
+ "application/json": {
1206
+ schema: {
1207
+ type: "object";
1208
+ properties: {
1209
+ status: {
1210
+ type: string;
1211
+ };
1212
+ };
1213
+ };
1214
+ };
1215
+ };
1216
+ };
1217
+ };
1218
+ };
1219
+ };
1196
1220
  } & {
1197
1221
  use: any[];
1198
1222
  };
@@ -1202,10 +1226,10 @@ declare const admin: <O extends AdminOptions>(options?: O) => {
1202
1226
  <C extends [{
1203
1227
  body: {
1204
1228
  permission: { [key in keyof (O["ac"] extends AccessControl<infer S extends Statements> ? S : {
1205
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
1229
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
1206
1230
  readonly session: readonly ["list", "revoke", "delete"];
1207
1231
  })]?: Array<(O["ac"] extends AccessControl<infer S extends Statements> ? S : {
1208
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
1232
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
1209
1233
  readonly session: readonly ["list", "revoke", "delete"];
1210
1234
  })[key][number]>; };
1211
1235
  userId?: string;
@@ -1293,10 +1317,10 @@ declare const admin: <O extends AdminOptions>(options?: O) => {
1293
1317
  $Infer: {
1294
1318
  body: {
1295
1319
  permission: { [key in keyof (O["ac"] extends AccessControl<infer S extends Statements> ? S : {
1296
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
1320
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
1297
1321
  readonly session: readonly ["list", "revoke", "delete"];
1298
1322
  })]?: Array<(O["ac"] extends AccessControl<infer S extends Statements> ? S : {
1299
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
1323
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
1300
1324
  readonly session: readonly ["list", "revoke", "delete"];
1301
1325
  })[key][number]>; };
1302
1326
  userId?: string;
@@ -1322,6 +1346,7 @@ declare const admin: <O extends AdminOptions>(options?: O) => {
1322
1346
  readonly YOU_ARE_NOT_ALLOWED_TO_IMPERSONATE_USERS: "You are not allowed to impersonate users";
1323
1347
  readonly YOU_ARE_NOT_ALLOWED_TO_REVOKE_USERS_SESSIONS: "You are not allowed to revoke users sessions";
1324
1348
  readonly YOU_ARE_NOT_ALLOWED_TO_DELETE_USERS: "You are not allowed to delete users";
1349
+ readonly YOU_ARE_NOT_ALLOWED_TO_SET_USERS_PASSWORD: "You are not allowed to set users password";
1325
1350
  };
1326
1351
  schema: {
1327
1352
  user: {
@@ -1193,6 +1193,30 @@ declare const admin: <O extends AdminOptions>(options?: O) => {
1193
1193
  [key: string]: Role;
1194
1194
  };
1195
1195
  }>)[];
1196
+ metadata: {
1197
+ openapi: {
1198
+ operationId: string;
1199
+ summary: string;
1200
+ description: string;
1201
+ responses: {
1202
+ 200: {
1203
+ description: string;
1204
+ content: {
1205
+ "application/json": {
1206
+ schema: {
1207
+ type: "object";
1208
+ properties: {
1209
+ status: {
1210
+ type: string;
1211
+ };
1212
+ };
1213
+ };
1214
+ };
1215
+ };
1216
+ };
1217
+ };
1218
+ };
1219
+ };
1196
1220
  } & {
1197
1221
  use: any[];
1198
1222
  };
@@ -1202,10 +1226,10 @@ declare const admin: <O extends AdminOptions>(options?: O) => {
1202
1226
  <C extends [{
1203
1227
  body: {
1204
1228
  permission: { [key in keyof (O["ac"] extends AccessControl<infer S extends Statements> ? S : {
1205
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
1229
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
1206
1230
  readonly session: readonly ["list", "revoke", "delete"];
1207
1231
  })]?: Array<(O["ac"] extends AccessControl<infer S extends Statements> ? S : {
1208
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
1232
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
1209
1233
  readonly session: readonly ["list", "revoke", "delete"];
1210
1234
  })[key][number]>; };
1211
1235
  userId?: string;
@@ -1293,10 +1317,10 @@ declare const admin: <O extends AdminOptions>(options?: O) => {
1293
1317
  $Infer: {
1294
1318
  body: {
1295
1319
  permission: { [key in keyof (O["ac"] extends AccessControl<infer S extends Statements> ? S : {
1296
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
1320
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
1297
1321
  readonly session: readonly ["list", "revoke", "delete"];
1298
1322
  })]?: Array<(O["ac"] extends AccessControl<infer S extends Statements> ? S : {
1299
- readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete"];
1323
+ readonly user: readonly ["create", "list", "set-role", "ban", "impersonate", "delete", "set-password"];
1300
1324
  readonly session: readonly ["list", "revoke", "delete"];
1301
1325
  })[key][number]>; };
1302
1326
  userId?: string;
@@ -1322,6 +1346,7 @@ declare const admin: <O extends AdminOptions>(options?: O) => {
1322
1346
  readonly YOU_ARE_NOT_ALLOWED_TO_IMPERSONATE_USERS: "You are not allowed to impersonate users";
1323
1347
  readonly YOU_ARE_NOT_ALLOWED_TO_REVOKE_USERS_SESSIONS: "You are not allowed to revoke users sessions";
1324
1348
  readonly YOU_ARE_NOT_ALLOWED_TO_DELETE_USERS: "You are not allowed to delete users";
1349
+ readonly YOU_ARE_NOT_ALLOWED_TO_SET_USERS_PASSWORD: "You are not allowed to set users password";
1325
1350
  };
1326
1351
  schema: {
1327
1352
  user: {
@@ -1,4 +1,4 @@
1
- export { a as admin } from '../../shared/better-auth.BGjbSDNr.mjs';
1
+ export { a as admin } from '../../shared/better-auth.B3YXOPWc.mjs';
2
2
  import 'zod';
3
3
  import 'better-call';
4
4
  import '../../shared/better-auth.npe3WWSD.mjs';
@@ -8,7 +8,7 @@ const account = require('../shared/better-auth.BzKRBwSF.cjs');
8
8
  const plugins_magicLink_index = require('./magic-link/index.cjs');
9
9
  const plugins_phoneNumber_index = require('./phone-number/index.cjs');
10
10
  const plugins_anonymous_index = require('./anonymous/index.cjs');
11
- const admin = require('../shared/better-auth.BWtlZYUl.cjs');
11
+ const admin = require('../shared/better-auth.CuAZQpGO.cjs');
12
12
  const plugins_genericOauth_index = require('./generic-oauth/index.cjs');
13
13
  const plugins_jwt_index = require('./jwt/index.cjs');
14
14
  const plugins_multiSession_index = require('./multi-session/index.cjs');
@@ -7,7 +7,7 @@ export { H as HIDE_METADATA, N as optionsMiddleware } from '../shared/better-aut
7
7
  export { magicLink } from './magic-link/index.mjs';
8
8
  export { phoneNumber } from './phone-number/index.mjs';
9
9
  export { anonymous } from './anonymous/index.mjs';
10
- export { a as admin } from '../shared/better-auth.BGjbSDNr.mjs';
10
+ export { a as admin } from '../shared/better-auth.B3YXOPWc.mjs';
11
11
  export { genericOAuth } from './generic-oauth/index.mjs';
12
12
  export { getJwtToken, jwt } from './jwt/index.mjs';
13
13
  export { multiSession } from './multi-session/index.mjs';
@@ -22,7 +22,8 @@ const ADMIN_ERROR_CODES = {
22
22
  YOU_ARE_NOT_ALLOWED_TO_BAN_USERS: "You are not allowed to ban users",
23
23
  YOU_ARE_NOT_ALLOWED_TO_IMPERSONATE_USERS: "You are not allowed to impersonate users",
24
24
  YOU_ARE_NOT_ALLOWED_TO_REVOKE_USERS_SESSIONS: "You are not allowed to revoke users sessions",
25
- YOU_ARE_NOT_ALLOWED_TO_DELETE_USERS: "You are not allowed to delete users"
25
+ YOU_ARE_NOT_ALLOWED_TO_DELETE_USERS: "You are not allowed to delete users",
26
+ YOU_ARE_NOT_ALLOWED_TO_SET_USERS_PASSWORD: "You are not allowed to set users password"
26
27
  };
27
28
 
28
29
  const hasPermission = (input) => {
@@ -925,12 +926,53 @@ const admin = (options) => {
925
926
  {
926
927
  method: "POST",
927
928
  body: z.object({
928
- newPassword: z.string(),
929
- userId: z.string()
929
+ newPassword: z.string({
930
+ description: "The new password"
931
+ }),
932
+ userId: z.string({
933
+ description: "The user id"
934
+ })
930
935
  }),
931
- use: [adminMiddleware]
936
+ use: [adminMiddleware],
937
+ metadata: {
938
+ openapi: {
939
+ operationId: "setUserPassword",
940
+ summary: "Set a user's password",
941
+ description: "Set a user's password",
942
+ responses: {
943
+ 200: {
944
+ description: "Password set",
945
+ content: {
946
+ "application/json": {
947
+ schema: {
948
+ type: "object",
949
+ properties: {
950
+ status: {
951
+ type: "boolean"
952
+ }
953
+ }
954
+ }
955
+ }
956
+ }
957
+ }
958
+ }
959
+ }
960
+ }
932
961
  },
933
962
  async (ctx) => {
963
+ const canSetUserPassword = hasPermission({
964
+ userId: ctx.context.session.user.id,
965
+ role: ctx.context.session.user.role,
966
+ options: ctx.context.adminOptions,
967
+ permission: {
968
+ user: ["set-password"]
969
+ }
970
+ });
971
+ if (!canSetUserPassword) {
972
+ throw new APIError("FORBIDDEN", {
973
+ message: ADMIN_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_SET_USERS_PASSWORD
974
+ });
975
+ }
934
976
  const hashedPassword = await ctx.context.password.hash(
935
977
  ctx.body.newPassword
936
978
  );
@@ -24,7 +24,8 @@ const ADMIN_ERROR_CODES = {
24
24
  YOU_ARE_NOT_ALLOWED_TO_BAN_USERS: "You are not allowed to ban users",
25
25
  YOU_ARE_NOT_ALLOWED_TO_IMPERSONATE_USERS: "You are not allowed to impersonate users",
26
26
  YOU_ARE_NOT_ALLOWED_TO_REVOKE_USERS_SESSIONS: "You are not allowed to revoke users sessions",
27
- YOU_ARE_NOT_ALLOWED_TO_DELETE_USERS: "You are not allowed to delete users"
27
+ YOU_ARE_NOT_ALLOWED_TO_DELETE_USERS: "You are not allowed to delete users",
28
+ YOU_ARE_NOT_ALLOWED_TO_SET_USERS_PASSWORD: "You are not allowed to set users password"
28
29
  };
29
30
 
30
31
  const hasPermission = (input) => {
@@ -927,12 +928,53 @@ const admin = (options) => {
927
928
  {
928
929
  method: "POST",
929
930
  body: zod.z.object({
930
- newPassword: zod.z.string(),
931
- userId: zod.z.string()
931
+ newPassword: zod.z.string({
932
+ description: "The new password"
933
+ }),
934
+ userId: zod.z.string({
935
+ description: "The user id"
936
+ })
932
937
  }),
933
- use: [call.adminMiddleware]
938
+ use: [call.adminMiddleware],
939
+ metadata: {
940
+ openapi: {
941
+ operationId: "setUserPassword",
942
+ summary: "Set a user's password",
943
+ description: "Set a user's password",
944
+ responses: {
945
+ 200: {
946
+ description: "Password set",
947
+ content: {
948
+ "application/json": {
949
+ schema: {
950
+ type: "object",
951
+ properties: {
952
+ status: {
953
+ type: "boolean"
954
+ }
955
+ }
956
+ }
957
+ }
958
+ }
959
+ }
960
+ }
961
+ }
962
+ }
934
963
  },
935
964
  async (ctx) => {
965
+ const canSetUserPassword = hasPermission({
966
+ userId: ctx.context.session.user.id,
967
+ role: ctx.context.session.user.role,
968
+ options: ctx.context.adminOptions,
969
+ permission: {
970
+ user: ["set-password"]
971
+ }
972
+ });
973
+ if (!canSetUserPassword) {
974
+ throw new betterCall.APIError("FORBIDDEN", {
975
+ message: ADMIN_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_SET_USERS_PASSWORD
976
+ });
977
+ }
936
978
  const hashedPassword = await ctx.context.password.hash(
937
979
  ctx.body.newPassword
938
980
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "better-auth",
3
- "version": "1.2.2-beta.5",
3
+ "version": "1.2.2",
4
4
  "description": "The most comprehensive authentication library for TypeScript.",
5
5
  "type": "module",
6
6
  "repository": {